cmat 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/adapter/dayjs-datetime-adapter.d.ts +1 -1
- package/components/breadcrumb/breadcrumb.service.d.ts +1 -1
- package/components/breadcrumb/public-api.d.ts +2 -0
- package/components/card/card.component.d.ts +1 -1
- package/components/card/public-api.d.ts +1 -0
- package/components/cascade/cascade-list/cascade-list.component.d.ts +45 -21
- package/components/cascade/public-api.d.ts +1 -0
- package/components/chip-input/chip-input.component.d.ts +39 -12
- package/components/custom-formly/extension/addons.extension.d.ts +2 -0
- package/components/custom-formly/index.d.ts +5 -0
- package/components/custom-formly/public-api.d.ts +21 -0
- package/components/custom-formly/types/button/button.component.d.ts +18 -0
- package/components/custom-formly/types/checklist/checklist.component.d.ts +41 -0
- package/components/custom-formly/types/chips/chips.component.d.ts +27 -0
- package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +44 -0
- package/components/custom-formly/types/number/number.component.d.ts +20 -0
- package/components/custom-formly/types/radio/radio.component.d.ts +44 -0
- package/components/custom-formly/types/rating/rating.component.d.ts +24 -0
- package/components/custom-formly/types/repeat/repeat.component.d.ts +16 -0
- package/components/custom-formly/types/select/select.component.d.ts +54 -0
- package/components/custom-formly/types/select-tree/select-tree.component.d.ts +43 -0
- package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +9 -0
- package/components/custom-formly/types/stepper/stepper.type.d.ts +6 -0
- package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +9 -0
- package/components/custom-formly/types/table/table.component.d.ts +43 -0
- package/components/custom-formly/types/tabs/tab.component.d.ts +8 -0
- package/components/custom-formly/types/tags/tags.component.d.ts +41 -0
- package/components/custom-formly/types/textarea/textarea.component.d.ts +13 -0
- package/components/custom-formly/wrappers/addons/addons.component.d.ts +10 -0
- package/components/custom-formly/wrappers/card/card.component.d.ts +6 -0
- package/components/custom-formly/wrappers/expansion/expansion.component.d.ts +6 -0
- package/components/custom-formly/wrappers/panel/panel.component.d.ts +6 -0
- package/components/date-range/date-range.component.d.ts +8 -6
- package/components/drawer/drawer.component.d.ts +2 -2
- package/components/fullscreen/fullscreen.component.d.ts +2 -9
- package/components/fullscreen/public-api.d.ts +0 -1
- package/components/material-color-picker/material-color-picker.component.d.ts +8 -4
- package/components/material-datetimepicker/calendar.d.ts +2 -2
- package/components/material-datetimepicker/clock.d.ts +1 -1
- package/components/material-datetimepicker/datetimepicker-input.d.ts +1 -1
- package/components/material-datetimepicker/datetimepicker-toggle.d.ts +1 -1
- package/components/material-datetimepicker/datetimepicker.d.ts +5 -10
- package/components/material-datetimepicker/month-view.d.ts +1 -2
- package/components/material-datetimepicker/multi-year-view.d.ts +1 -1
- package/components/material-datetimepicker/public-api.d.ts +1 -0
- package/components/material-datetimepicker/time.d.ts +2 -2
- package/components/material-datetimepicker/year-view.d.ts +1 -1
- package/components/navigation/horizontal/components/basic/basic.component.d.ts +1 -1
- package/components/navigation/horizontal/components/branch/branch.component.d.ts +1 -1
- package/components/navigation/horizontal/horizontal.component.d.ts +2 -2
- package/components/navigation/vertical/components/aside/aside.component.d.ts +1 -1
- package/components/navigation/vertical/components/basic/basic.component.d.ts +1 -7
- package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +1 -1
- package/components/navigation/vertical/components/group/group.component.d.ts +1 -1
- package/components/navigation/vertical/vertical.component.d.ts +5 -5
- package/components/pagination/public-api.d.ts +1 -0
- package/components/popover/popover-trigger.d.ts +121 -0
- package/components/popover/popover.component.d.ts +3 -3
- package/components/popover/popover.target.d.ts +8 -0
- package/components/popover/public-api.d.ts +3 -0
- package/components/rating/rating.component.d.ts +38 -9
- package/components/select-search/select-search.component.d.ts +4 -4
- package/components/select-tree/public-api.d.ts +2 -0
- package/components/select-tree/select-tree.component.d.ts +50 -21
- package/components/toast/public-api.d.ts +4 -0
- package/components/toast/toast.component.d.ts +4 -4
- package/components/transfer-picker/filter/filter.component.d.ts +1 -1
- package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +2 -2
- package/components/transfer-picker/transfer-picker.component.d.ts +1 -1
- package/components/upload/files.type.d.ts +22 -0
- package/components/upload/files.util.service.d.ts +20 -0
- package/components/upload/index.d.ts +5 -0
- package/components/upload/public-api.d.ts +4 -0
- package/components/upload/upload-queue/upload-queue.component.d.ts +39 -0
- package/components/upload/upload.component.d.ts +32 -0
- package/esm2022/animations/public-api.mjs +2 -2
- package/esm2022/components/adapter/dayjs-date-adapter.mjs +6 -6
- package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +5 -5
- package/esm2022/components/adapter/native-datetime-adapter.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
- package/esm2022/components/breadcrumb/breadcrumb.component.mjs +6 -6
- package/esm2022/components/breadcrumb/breadcrumb.service.mjs +5 -5
- package/esm2022/components/breadcrumb/public-api.mjs +3 -1
- package/esm2022/components/card/card.component.mjs +5 -5
- package/esm2022/components/card/public-api.mjs +2 -1
- package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +7 -7
- package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +207 -114
- package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +4 -4
- package/esm2022/components/cascade/public-api.mjs +2 -1
- package/esm2022/components/chip-input/chip-input.component.mjs +152 -49
- package/esm2022/components/custom-formly/cmat-components-custom-formly.mjs +5 -0
- package/esm2022/components/custom-formly/extension/addons.extension.mjs +13 -0
- package/esm2022/components/custom-formly/public-api.mjs +22 -0
- package/esm2022/components/custom-formly/types/button/button.component.mjs +39 -0
- package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +161 -0
- package/esm2022/components/custom-formly/types/chips/chips.component.mjs +55 -0
- package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +89 -0
- package/esm2022/components/custom-formly/types/number/number.component.mjs +27 -0
- package/esm2022/components/custom-formly/types/radio/radio.component.mjs +88 -0
- package/esm2022/components/custom-formly/types/rating/rating.component.mjs +27 -0
- package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +28 -0
- package/esm2022/components/custom-formly/types/select/select.component.mjs +169 -0
- package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +66 -0
- package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +31 -0
- package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +2 -0
- package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +31 -0
- package/esm2022/components/custom-formly/types/table/table.component.mjs +116 -0
- package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +19 -0
- package/esm2022/components/custom-formly/types/tags/tags.component.mjs +149 -0
- package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +25 -0
- package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +92 -0
- package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +14 -0
- package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +14 -0
- package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +12 -0
- package/esm2022/components/date-range/date-range.component.mjs +26 -17
- package/esm2022/components/drawer/drawer.component.mjs +5 -5
- package/esm2022/components/drawer/drawer.service.mjs +3 -3
- package/esm2022/components/fullscreen/fullscreen.component.mjs +16 -73
- package/esm2022/components/fullscreen/public-api.mjs +1 -2
- package/esm2022/components/highlight/highlight.component.mjs +5 -5
- package/esm2022/components/highlight/highlight.service.mjs +3 -3
- package/esm2022/components/json-editor/json-editor.component.mjs +3 -3
- package/esm2022/components/masonry/masonry.component.mjs +5 -5
- package/esm2022/components/material-color-picker/material-color-picker.component.mjs +22 -12
- package/esm2022/components/material-datetimepicker/calendar-body.mjs +3 -3
- package/esm2022/components/material-datetimepicker/calendar.mjs +11 -12
- package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
- package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +4 -5
- package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
- package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +9 -9
- package/esm2022/components/material-datetimepicker/datetimepicker.mjs +17 -22
- package/esm2022/components/material-datetimepicker/month-view.mjs +5 -6
- package/esm2022/components/material-datetimepicker/multi-year-view.mjs +7 -8
- package/esm2022/components/material-datetimepicker/public-api.mjs +2 -1
- package/esm2022/components/material-datetimepicker/time.mjs +8 -8
- package/esm2022/components/material-datetimepicker/year-view.mjs +7 -8
- package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +8 -8
- package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +8 -8
- package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +5 -5
- package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +6 -6
- package/esm2022/components/navigation/horizontal/horizontal.component.mjs +6 -6
- package/esm2022/components/navigation/navigation.service.mjs +3 -3
- package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +11 -11
- package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +7 -24
- package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +10 -10
- package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +5 -5
- package/esm2022/components/navigation/vertical/components/group/group.component.mjs +9 -9
- package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +6 -6
- package/esm2022/components/navigation/vertical/vertical.component.mjs +11 -11
- package/esm2022/components/pagination/pagination.component.mjs +10 -10
- package/esm2022/components/pagination/pagination.directive.mjs +4 -4
- package/esm2022/components/pagination/pagination.pipe.mjs +4 -4
- package/esm2022/components/pagination/pagination.service.mjs +3 -3
- package/esm2022/components/pagination/public-api.mjs +2 -1
- package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +6 -6
- package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +5 -5
- package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +6 -6
- package/esm2022/components/popover/popover-trigger.mjs +444 -0
- package/esm2022/components/popover/popover.component.mjs +8 -9
- package/esm2022/components/popover/popover.target.mjs +18 -0
- package/esm2022/components/popover/public-api.mjs +4 -1
- package/esm2022/components/progress-bar/progress-bar.component.mjs +6 -6
- package/esm2022/components/rating/rating.component.mjs +122 -23
- package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
- package/esm2022/components/select-search/select-search-clear.directive.mjs +3 -3
- package/esm2022/components/select-search/select-search.component.mjs +15 -15
- package/esm2022/components/select-tree/public-api.mjs +3 -1
- package/esm2022/components/select-tree/select-tree.component.mjs +281 -157
- package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +9 -9
- package/esm2022/components/timeline/timeline.component.mjs +5 -5
- package/esm2022/components/toast/public-api.mjs +5 -1
- package/esm2022/components/toast/toast-modal.component.mjs +5 -5
- package/esm2022/components/toast/toast.component.mjs +6 -6
- package/esm2022/components/toast/toast.service.mjs +3 -3
- package/esm2022/components/transfer-picker/filter/filter.component.mjs +9 -9
- package/esm2022/components/transfer-picker/search/search.component.mjs +6 -6
- package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +11 -11
- package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
- package/esm2022/components/transfer-picker/transfer-picker.component.mjs +7 -7
- package/esm2022/components/transfer-picker/transfer-picker.service.mjs +4 -4
- package/esm2022/components/upload/cmat-components-upload.mjs +5 -0
- package/esm2022/components/upload/files.type.mjs +2 -0
- package/esm2022/components/upload/files.util.service.mjs +100 -0
- package/esm2022/components/upload/public-api.mjs +5 -0
- package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +154 -0
- package/esm2022/components/upload/upload.component.mjs +118 -0
- package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +3 -3
- package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
- package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
- package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
- package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
- package/esm2022/directives/digit-only/digit-only.directive.mjs +3 -3
- package/esm2022/directives/digit-only/mask.directive.mjs +3 -3
- package/esm2022/directives/equal-validator/equal-validator.directive.mjs +3 -3
- package/esm2022/lib/mock-api/mock-api.interceptor.mjs +5 -5
- package/esm2022/lib/mock-api/mock-api.service.mjs +3 -3
- package/esm2022/pipes/bytes/bytes.pipe.mjs +3 -3
- package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
- package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
- package/esm2022/pipes/group-by/group-by.pipe.mjs +3 -3
- package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
- package/esm2022/pipes/secure/secure-pipe.mjs +5 -5
- package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/services/alert/alert.service.mjs +7 -7
- package/esm2022/services/alert/enum.mjs +2 -2
- package/esm2022/services/config/config.service.mjs +5 -5
- package/esm2022/services/config/urlStateConfig.service.mjs +5 -5
- package/esm2022/services/confirmation/confirmation.service.mjs +5 -5
- package/esm2022/services/confirmation/dialog/dialog.component.mjs +7 -7
- package/esm2022/services/data/data.service.mjs +5 -5
- package/esm2022/services/loading/loading.interceptor.mjs +4 -4
- package/esm2022/services/loading/loading.service.mjs +3 -3
- package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
- package/esm2022/services/media-watcher/media-watcher.service.mjs +5 -5
- package/esm2022/services/platform/platform.service.mjs +4 -4
- package/esm2022/services/splash-screen/splash-screen.service.mjs +6 -6
- package/esm2022/services/title/title.service.mjs +4 -4
- package/esm2022/services/translation/translation.service.mjs +3 -3
- package/esm2022/services/utils/utils.service.mjs +54 -9
- package/fesm2022/cmat-animations.mjs +15 -15
- package/fesm2022/cmat-animations.mjs.map +1 -1
- package/fesm2022/cmat-components-adapter.mjs +11 -11
- package/fesm2022/cmat-components-adapter.mjs.map +1 -1
- package/fesm2022/cmat-components-breadcrumb.mjs +11 -11
- package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/cmat-components-card.mjs +4 -4
- package/fesm2022/cmat-components-card.mjs.map +1 -1
- package/fesm2022/cmat-components-cascade.mjs +215 -123
- package/fesm2022/cmat-components-cascade.mjs.map +1 -1
- package/fesm2022/cmat-components-chip-input.mjs +153 -50
- package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
- package/fesm2022/cmat-components-custom-formly.mjs +1141 -0
- package/fesm2022/cmat-components-custom-formly.mjs.map +1 -0
- package/fesm2022/cmat-components-date-range.mjs +27 -18
- package/fesm2022/cmat-components-date-range.mjs.map +1 -1
- package/fesm2022/cmat-components-drawer.mjs +8 -8
- package/fesm2022/cmat-components-drawer.mjs.map +1 -1
- package/fesm2022/cmat-components-fullscreen.mjs +16 -73
- package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
- package/fesm2022/cmat-components-highlight.mjs +7 -7
- package/fesm2022/cmat-components-highlight.mjs.map +1 -1
- package/fesm2022/cmat-components-json-editor.mjs +3 -3
- package/fesm2022/cmat-components-masonry.mjs +4 -4
- package/fesm2022/cmat-components-masonry.mjs.map +1 -1
- package/fesm2022/cmat-components-material-color-picker.mjs +21 -11
- package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-material-datetimepicker.mjs +189 -195
- package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
- package/fesm2022/cmat-components-navigation.mjs +166 -183
- package/fesm2022/cmat-components-navigation.mjs.map +1 -1
- package/fesm2022/cmat-components-pagination.mjs +20 -20
- package/fesm2022/cmat-components-pagination.mjs.map +1 -1
- package/fesm2022/cmat-components-password-strength.mjs +13 -13
- package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
- package/fesm2022/cmat-components-popover.mjs +464 -10
- package/fesm2022/cmat-components-popover.mjs.map +1 -1
- package/fesm2022/cmat-components-progress-bar.mjs +6 -6
- package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
- package/fesm2022/cmat-components-rating.mjs +121 -22
- package/fesm2022/cmat-components-rating.mjs.map +1 -1
- package/fesm2022/cmat-components-select-search.mjs +41 -41
- package/fesm2022/cmat-components-select-search.mjs.map +1 -1
- package/fesm2022/cmat-components-select-tree.mjs +285 -158
- package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
- package/fesm2022/cmat-components-timeline.mjs +12 -12
- package/fesm2022/cmat-components-timeline.mjs.map +1 -1
- package/fesm2022/cmat-components-toast.mjs +12 -12
- package/fesm2022/cmat-components-toast.mjs.map +1 -1
- package/fesm2022/cmat-components-transfer-picker.mjs +33 -33
- package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
- package/fesm2022/cmat-components-upload.mjs +366 -0
- package/fesm2022/cmat-components-upload.mjs.map +1 -0
- package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
- package/fesm2022/cmat-directives-autofocus.mjs +3 -3
- package/fesm2022/cmat-directives-debounce.mjs +9 -9
- package/fesm2022/cmat-directives-digit-only.mjs +6 -6
- package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
- package/fesm2022/cmat-lib-mock-api.mjs +6 -6
- package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
- package/fesm2022/cmat-pipes-bytes.mjs +3 -3
- package/fesm2022/cmat-pipes-date-format.mjs +3 -3
- package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
- package/fesm2022/cmat-pipes-group-by.mjs +3 -3
- package/fesm2022/cmat-pipes-keys.mjs +3 -3
- package/fesm2022/cmat-pipes-secure.mjs +4 -4
- package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
- package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
- package/fesm2022/cmat-services-alert.mjs +6 -6
- package/fesm2022/cmat-services-alert.mjs.map +1 -1
- package/fesm2022/cmat-services-config.mjs +7 -7
- package/fesm2022/cmat-services-config.mjs.map +1 -1
- package/fesm2022/cmat-services-confirmation.mjs +11 -11
- package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
- package/fesm2022/cmat-services-data.mjs +5 -5
- package/fesm2022/cmat-services-data.mjs.map +1 -1
- package/fesm2022/cmat-services-loading.mjs +6 -6
- package/fesm2022/cmat-services-loading.mjs.map +1 -1
- package/fesm2022/cmat-services-local-storage.mjs +3 -3
- package/fesm2022/cmat-services-media-watcher.mjs +4 -4
- package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
- package/fesm2022/cmat-services-platform.mjs +3 -3
- package/fesm2022/cmat-services-platform.mjs.map +1 -1
- package/fesm2022/cmat-services-splash-screen.mjs +5 -5
- package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
- package/fesm2022/cmat-services-title.mjs +3 -3
- package/fesm2022/cmat-services-title.mjs.map +1 -1
- package/fesm2022/cmat-services-translation.mjs +3 -3
- package/fesm2022/cmat-services-utils.mjs +53 -8
- package/fesm2022/cmat-services-utils.mjs.map +1 -1
- package/package.json +75 -63
- package/pipes/secure/secure-pipe.d.ts +1 -1
- package/services/alert/enum.d.ts +1 -1
- package/services/confirmation/confirmation.service.d.ts +1 -1
- package/services/data/data.service.d.ts +1 -1
- package/services/media-watcher/media-watcher.service.d.ts +1 -1
- package/services/title/title.service.d.ts +1 -1
- package/services/utils/utils.service.d.ts +1 -0
- package/styles/components/bundle.scss +18 -5
- package/styles/overrides/angular-material.scss +51 -52
- package/styles/tailwind.scss +2 -8
- package/styles/themes.scss +7 -7
- package/styles/user-themes.scss +1 -1
- package/tailwind/plugins/utilities.js +1 -1
- package/components/fullscreen/fullscreen.types.d.ts +0 -13
- package/esm2022/components/fullscreen/fullscreen.types.mjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-popover.mjs","sources":["../../../projects/cmat/components/popover/popover.errors.ts","../../../projects/cmat/components/popover/popover.component.ts","../../../projects/cmat/components/popover/popover.component.html","../../../projects/cmat/components/popover/cmat-components-popover.ts"],"sourcesContent":["\r\n/**\r\n * Throws an exception for the case when popover trigger doesn't have a valid cmat-popover instance\r\n */\r\nexport function throwCmatPopoverMissingError(): void {\r\n throw Error(`cmat-popover-trigger: must pass in an cmat-popover instance.\r\n\r\n Example:\r\n <cmat-popover #popover=\"cmatPopover\"></cmat-popover>\r\n <button [cmatPopoverTriggerFor]=\"popover\"></button>`);\r\n}\r\n\r\n/**\r\n * Throws an exception for the case when popover's cmatPopoverPosition[0] value isn't valid.\r\n * In other words, it doesn't match 'above', 'below', 'before' or 'after'.\r\n */\r\nexport function throwCmatPopoverInvalidPositionStart(): void {\r\n throw Error(`cmatPopoverPosition[0] value must be either 'above', 'below', 'before' or 'after'.\r\n Example: <cmat-popover [position]=\"['below', 'after']\" #popover=\"cmatPopover\"></cmat-popover>`);\r\n}\r\n\r\n/**\r\n * Throws an exception for the case when popover's cmatPopoverPosition[1] value isn't valid.\r\n * In other words, it doesn't match 'above', 'below', 'before', 'after' or 'center'.\r\n */\r\nexport function throwCmatPopoverInvalidPositionEnd(): void {\r\n throw Error(`cmatPopoverPosition[1] value must be either 'above', 'below', 'before', 'after' or 'center'.\r\n Example: <cmat-popover [position]=\"['below', 'after']\" #popover=\"cmatPopover\"></cmat-popover>`);\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { AnimationEvent } from '@angular/animations';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\n\r\nimport { CmatPopoverPosition, CmatPopoverScrollStrategy, CmatPopoverTriggerEvent } from './popover.type';\r\nimport { throwCmatPopoverInvalidPositionEnd, throwCmatPopoverInvalidPositionStart } from './popover.errors';\r\nimport { CmatPopoverPanel } from './popover.interfaces';\r\nimport { cmatAnimations } from 'cmat/animations';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\n\r\n@Component({\r\n selector: 'cmat-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [cmatAnimations],\r\n exportAs: 'cmatPopover',\r\n standalone: true,\r\n imports: [NgStyle, NgClass,A11yModule]\r\n})\r\nexport class CmatPopoverComponent implements CmatPopoverPanel, OnDestroy {\r\n static ngAcceptInputType_closeOnPanelClick: BooleanInput;\r\n static ngAcceptInputType_closeOnBackdropClick: BooleanInput;\r\n static ngAcceptInputType_disableAnimation: BooleanInput;\r\n static ngAcceptInputType_focusTrapEnabled: BooleanInput;\r\n static ngAcceptInputType_focusTrapAutoCaptureEnabled: BooleanInput;\r\n\r\n /** Event emitted when the popover is closed. */\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n @ViewChild(TemplateRef) templateRef!: TemplateRef<any>;\r\n\r\n @HostBinding('attr.role') role = 'dialog';\r\n /** Config object to be passed into the popover's arrow ngStyle */\r\n @Input()\r\n popoverPanelStyles = {};\r\n\r\n /** Config object to be passed into the popover's arrow ngStyle */\r\n @Input()\r\n public popoverArrowStyles = {};\r\n\r\n /** Config object to be passed into the popover's content ngStyle */\r\n @Input()\r\n public popoverContentStyles = {};\r\n /** Whether popover's `targetElement` is defined */\r\n public containerPositioning = false;\r\n\r\n /** Closing disabled on popover */\r\n public closeDisabled = false;\r\n\r\n /** Config object to be passed into the popover's ngClass */\r\n classList: { [key: string]: boolean } = {};\r\n\r\n /** Emits the current animation state whenever it changes. */\r\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\r\n\r\n /** Settings for popover, view setters and getters for more detail */\r\n private _position: CmatPopoverPosition = ['below', 'after'];\r\n private _triggerEvent: CmatPopoverTriggerEvent = 'hover';\r\n private _scrollStrategy: CmatPopoverScrollStrategy = 'reposition';\r\n private _enterDelay = 100;\r\n private _leaveDelay = 100;\r\n private _panelOffsetX = 0;\r\n private _panelOffsetY = 0;\r\n private _closeOnPanelClick = false;\r\n private _closeOnBackdropClick = true;\r\n private _disableAnimation = false;\r\n private _focusTrapEnabled = true;\r\n private _focusTrapAutoCaptureEnabled = true;\r\n private _arrowOffsetX = 20;\r\n private _arrowOffsetY = 20;\r\n private _arrowWidth = 16;\r\n private _arrowHeight = 16;\r\n\r\n constructor(\r\n @Optional() private _dir: Directionality,\r\n private _elementRef: ElementRef,\r\n public zone: NgZone\r\n ) {\r\n this.setPositionClasses();\r\n }\r\n\r\n get position(): CmatPopoverPosition {\r\n return this._position;\r\n }\r\n /** Position of the popover. */\r\n @Input()\r\n set position(value: CmatPopoverPosition) {\r\n if (!['before', 'after', 'above', 'below'].includes(value[0])) {\r\n throwCmatPopoverInvalidPositionStart();\r\n }\r\n if (!['before', 'after', 'above', 'below', 'center'].includes(value[1])) {\r\n throwCmatPopoverInvalidPositionEnd();\r\n }\r\n this._position = value;\r\n this.setPositionClasses();\r\n }\r\n\r\n /** Popover trigger event */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get triggerEvent(): CmatPopoverTriggerEvent {\r\n return this._triggerEvent;\r\n }\r\n @Input()\r\n set triggerEvent(value: CmatPopoverTriggerEvent) {\r\n this._triggerEvent = value;\r\n }\r\n\r\n /** Popover scroll strategy */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get scrollStrategy(): CmatPopoverScrollStrategy {\r\n return this._scrollStrategy;\r\n }\r\n @Input()\r\n set scrollStrategy(value: CmatPopoverScrollStrategy) {\r\n this._scrollStrategy = value;\r\n }\r\n\r\n /** Popover enter delay */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get enterDelay(): number {\r\n return this._enterDelay;\r\n }\r\n\r\n @Input()\r\n set enterDelay(value: number) {\r\n this._enterDelay = value;\r\n }\r\n\r\n /** Popover leave delay */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get leaveDelay(): number {\r\n return this._leaveDelay;\r\n }\r\n\r\n @Input()\r\n set leaveDelay(value: number) {\r\n this._leaveDelay = value;\r\n }\r\n\r\n /** Popover target offset x */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get xOffset(): number {\r\n return this._panelOffsetX;\r\n }\r\n @Input()\r\n set xOffset(value: number) {\r\n this._panelOffsetX = value;\r\n }\r\n\r\n /** Popover target offset y */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get yOffset(): number {\r\n return this._panelOffsetY;\r\n }\r\n\r\n @Input()\r\n set yOffset(value: number) {\r\n this._panelOffsetY = value;\r\n }\r\n\r\n /** Popover arrow offset x */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowOffsetX(): number {\r\n return this._arrowOffsetX;\r\n }\r\n\r\n @Input()\r\n set arrowOffsetX(value: number) {\r\n this._arrowOffsetX = value;\r\n }\r\n\r\n /** Popover arrow offset y */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowOffsetY(): number {\r\n return this._arrowOffsetY;\r\n }\r\n\r\n @Input()\r\n set arrowOffsetY(value: number) {\r\n this._arrowOffsetY = value;\r\n }\r\n\r\n /** Popover arrow width */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowWidth(): number {\r\n return this._arrowWidth;\r\n }\r\n\r\n @Input()\r\n set arrowWidth(value: number) {\r\n this._arrowWidth = value;\r\n }\r\n\r\n /** Popover arrow height */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowHeight(): number {\r\n return this._arrowHeight;\r\n }\r\n @Input()\r\n set arrowHeight(value: number) {\r\n this._arrowHeight = value;\r\n }\r\n\r\n /** Popover close on container click */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get closeOnPanelClick(): boolean {\r\n return this._closeOnPanelClick;\r\n }\r\n\r\n @Input()\r\n set closeOnPanelClick(value: boolean) {\r\n this._closeOnPanelClick = coerceBooleanProperty(value);\r\n }\r\n\r\n /** Popover close on backdrop click */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get closeOnBackdropClick(): boolean {\r\n return this._closeOnBackdropClick;\r\n }\r\n @Input()\r\n set closeOnBackdropClick(value: boolean) {\r\n this._closeOnBackdropClick = coerceBooleanProperty(value);\r\n }\r\n\r\n /** Disable animations of popover and all child elements */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get disableAnimation(): boolean {\r\n return this._disableAnimation;\r\n }\r\n\r\n @Input()\r\n set disableAnimation(value: boolean) {\r\n this._disableAnimation = coerceBooleanProperty(value);\r\n }\r\n\r\n /** Popover focus trap using cdkTrapFocus */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get focusTrapEnabled(): boolean {\r\n return this._focusTrapEnabled;\r\n }\r\n\r\n @Input()\r\n set focusTrapEnabled(value: boolean) {\r\n this._focusTrapEnabled = coerceBooleanProperty(value);\r\n }\r\n\r\n /** Popover focus trap auto capture using cdkTrapFocusAutoCapture */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get focusTrapAutoCaptureEnabled(): boolean {\r\n return this._focusTrapAutoCaptureEnabled;\r\n }\r\n\r\n @Input()\r\n set focusTrapAutoCaptureEnabled(value: boolean) {\r\n this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);\r\n }\r\n\r\n /**\r\n * This method takes classes set on the host md-popover element and applies them on the\r\n * popover template that displays in the overlay container. Otherwise, it's difficult\r\n * to style the containing popover from outside the component.\r\n *\r\n * @param classes list of class names\r\n */\r\n @Input()\r\n set panelClass(classes: string) {\r\n if (classes && classes.length) {\r\n this.classList = classes.split(' ').reduce((obj: any, className: string) => {\r\n obj[className] = true;\r\n return obj;\r\n }, {});\r\n\r\n this._elementRef.nativeElement.className = '';\r\n this.setPositionClasses();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.emitCloseEvent();\r\n this.closed.complete();\r\n }\r\n\r\n /** Handle a keyboard event from the popover, delegating to the appropriate action. */\r\n handleKeydown(event: KeyboardEvent): void {\r\n switch (event.code) {\r\n case 'Escape':\r\n this.emitCloseEvent();\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * This emits a close event to which the trigger is subscribed. When emitted, the\r\n * trigger will close the popover.\r\n */\r\n emitCloseEvent(): void {\r\n this.closed.emit();\r\n }\r\n\r\n /** Close popover on click if closeOnPanelClick is true */\r\n onClick(): void {\r\n if (this.closeOnPanelClick) {\r\n this.emitCloseEvent();\r\n }\r\n }\r\n\r\n /**\r\n * TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.\r\n * https://github.com/angular/material2/pull/5493#issuecomment-313085323\r\n */\r\n /** Disables close of popover when leaving trigger element and mouse over the popover */\r\n onMouseOver(): void {\r\n if (this.triggerEvent === 'hover') {\r\n this.closeDisabled = true;\r\n }\r\n }\r\n\r\n onFocus(): void {\r\n //do someting\r\n }\r\n\r\n /** Enables close of popover when mouse leaving popover element */\r\n onMouseLeave(): void {\r\n if (this.triggerEvent === 'hover') {\r\n this.closeDisabled = false;\r\n this.emitCloseEvent();\r\n }\r\n }\r\n\r\n // TODO: Refactor how styles are set and updated on the component, use best practices.\r\n // TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.\r\n /** Sets the current styles for the popover to allow for dynamically changing settings */\r\n setCurrentStyles(pos = this.position): void {\r\n const left =\r\n pos[1] === 'after'\r\n ? `${this.arrowOffsetX - this.arrowWidth / 2}px`\r\n : pos[1] === 'center'\r\n ? `calc(50% - ${this.arrowWidth / 2}px)`\r\n : '';\r\n const right = pos[1] === 'before' ? `${this.arrowOffsetX - this.arrowWidth / 2}px` : '';\r\n\r\n const bottom =\r\n pos[1] === 'above'\r\n ? `${this.arrowOffsetY - this.arrowHeight / 2}px`\r\n : pos[1] === 'center'\r\n ? `calc(50% - ${this.arrowHeight / 2}px)`\r\n : '';\r\n const top = pos[1] === 'below' ? `${this.arrowOffsetY - this.arrowHeight / 2}px` : '';\r\n\r\n this.popoverArrowStyles =\r\n pos[0] === 'above' || pos[0] === 'below'\r\n ? {\r\n left: this._dir.value === 'ltr' ? left : right,\r\n right: this._dir.value === 'ltr' ? right : left,\r\n }\r\n : {\r\n top,\r\n bottom,\r\n };\r\n }\r\n\r\n /**\r\n * It's necessary to set position-based classes to ensure the popover panel animation\r\n * folds out from the correct direction.\r\n */\r\n setPositionClasses(pos = this.position): void {\r\n this.classList['cmat-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';\r\n this.classList['cmat-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';\r\n this.classList['cmat-popover-before-below'] = pos[0] === 'before' && pos[1] === 'below';\r\n this.classList['cmat-popover-after-above'] = pos[0] === 'after' && pos[1] === 'above';\r\n this.classList['cmat-popover-after-center'] = pos[0] === 'after' && pos[1] === 'center';\r\n this.classList['cmat-popover-after-below'] = pos[0] === 'after' && pos[1] === 'below';\r\n this.classList['cmat-popover-above-before'] = pos[0] === 'above' && pos[1] === 'before';\r\n this.classList['cmat-popover-above-center'] = pos[0] === 'above' && pos[1] === 'center';\r\n this.classList['cmat-popover-above-after'] = pos[0] === 'above' && pos[1] === 'after';\r\n this.classList['cmat-popover-below-before'] = pos[0] === 'below' && pos[1] === 'before';\r\n this.classList['cmat-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';\r\n this.classList['cmat-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';\r\n }\r\n}\r\n","<ng-template>\r\n <div class=\"cmat-popover-panel shadow\" role=\"dialog\" [ngClass]=\"classList\" [ngStyle]=\"popoverPanelStyles\"\r\n (keydown)=\"handleKeydown($event)\" (click)=\"onClick()\" (focus)=\"onFocus()\" (mouseover)=\"onMouseOver()\" (mouseleave)=\"onMouseLeave()\"\r\n [@.disabled]=\"disableAnimation\" [@transform]=\"'enter'\">\r\n <div class=\"cmat-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"cmat-popover-content\" [ngStyle]=\"popoverContentStyles\" [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>","/**\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-popover.mjs","sources":["../../../projects/cmat/components/popover/popover.errors.ts","../../../projects/cmat/components/popover/popover.component.ts","../../../projects/cmat/components/popover/popover.component.html","../../../projects/cmat/components/popover/popover-trigger.ts","../../../projects/cmat/components/popover/popover.target.ts","../../../projects/cmat/components/popover/cmat-components-popover.ts"],"sourcesContent":["\r\n/**\r\n * Throws an exception for the case when popover trigger doesn't have a valid cmat-popover instance\r\n */\r\nexport function throwCmatPopoverMissingError(): void {\r\n throw Error(`cmat-popover-trigger: must pass in an cmat-popover instance.\r\n\r\n Example:\r\n <cmat-popover #popover=\"cmatPopover\"></cmat-popover>\r\n <button [cmatPopoverTriggerFor]=\"popover\"></button>`);\r\n}\r\n\r\n/**\r\n * Throws an exception for the case when popover's cmatPopoverPosition[0] value isn't valid.\r\n * In other words, it doesn't match 'above', 'below', 'before' or 'after'.\r\n */\r\nexport function throwCmatPopoverInvalidPositionStart(): void {\r\n throw Error(`cmatPopoverPosition[0] value must be either 'above', 'below', 'before' or 'after'.\r\n Example: <cmat-popover [position]=\"['below', 'after']\" #popover=\"cmatPopover\"></cmat-popover>`);\r\n}\r\n\r\n/**\r\n * Throws an exception for the case when popover's cmatPopoverPosition[1] value isn't valid.\r\n * In other words, it doesn't match 'above', 'below', 'before', 'after' or 'center'.\r\n */\r\nexport function throwCmatPopoverInvalidPositionEnd(): void {\r\n throw Error(`cmatPopoverPosition[1] value must be either 'above', 'below', 'before', 'after' or 'center'.\r\n Example: <cmat-popover [position]=\"['below', 'after']\" #popover=\"cmatPopover\"></cmat-popover>`);\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { AnimationEvent } from '@angular/animations';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { Directionality } from '@angular/cdk/bidi';\r\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport { cmatAnimations } from 'cmat/animations';\r\nimport { throwCmatPopoverInvalidPositionEnd, throwCmatPopoverInvalidPositionStart } from './popover.errors';\r\nimport { CmatPopoverPanel } from './popover.interfaces';\r\nimport { CmatPopoverPosition, CmatPopoverScrollStrategy, CmatPopoverTriggerEvent } from './popover.type';\r\n\r\n@Component({\r\n selector: 'cmat-popover',\r\n templateUrl: './popover.component.html',\r\n styleUrls: ['./popover.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n animations: [cmatAnimations],\r\n exportAs: 'cmatPopover',\r\n standalone: true,\r\n imports: [NgStyle, NgClass,A11yModule]\r\n})\r\nexport class CmatPopoverComponent implements CmatPopoverPanel, OnDestroy {\r\n static ngAcceptInputType_closeOnPanelClick: BooleanInput;\r\n static ngAcceptInputType_closeOnBackdropClick: BooleanInput;\r\n static ngAcceptInputType_disableAnimation: BooleanInput;\r\n static ngAcceptInputType_focusTrapEnabled: BooleanInput;\r\n static ngAcceptInputType_focusTrapAutoCaptureEnabled: BooleanInput;\r\n\r\n /** Event emitted when the popover is closed. */\r\n @Output() closed = new EventEmitter<void>();\r\n\r\n @ViewChild(TemplateRef) templateRef!: TemplateRef<any>;\r\n\r\n @HostBinding('attr.role') role = 'dialog';\r\n /** Config object to be passed into the popover's arrow ngStyle */\r\n @Input()\r\n popoverPanelStyles = {};\r\n\r\n /** Config object to be passed into the popover's arrow ngStyle */\r\n @Input()\r\n public popoverArrowStyles = {};\r\n\r\n /** Config object to be passed into the popover's content ngStyle */\r\n @Input()\r\n public popoverContentStyles = {};\r\n /** Whether popover's `targetElement` is defined */\r\n public containerPositioning = false;\r\n\r\n /** Closing disabled on popover */\r\n public closeDisabled = false;\r\n\r\n /** Config object to be passed into the popover's ngClass */\r\n classList: { [key: string]: boolean } = {};\r\n\r\n /** Emits the current animation state whenever it changes. */\r\n _onAnimationStateChange = new EventEmitter<AnimationEvent>();\r\n\r\n /** Settings for popover, view setters and getters for more detail */\r\n private _position: CmatPopoverPosition = ['below', 'after'];\r\n private _triggerEvent: CmatPopoverTriggerEvent = 'hover';\r\n private _scrollStrategy: CmatPopoverScrollStrategy = 'reposition';\r\n private _enterDelay = 100;\r\n private _leaveDelay = 100;\r\n private _panelOffsetX = 0;\r\n private _panelOffsetY = 0;\r\n private _closeOnPanelClick = false;\r\n private _closeOnBackdropClick = true;\r\n private _disableAnimation = false;\r\n private _focusTrapEnabled = true;\r\n private _focusTrapAutoCaptureEnabled = true;\r\n private _arrowOffsetX = 20;\r\n private _arrowOffsetY = 20;\r\n private _arrowWidth = 16;\r\n private _arrowHeight = 16;\r\n\r\n constructor(\r\n @Optional() private _dir: Directionality,\r\n private _elementRef: ElementRef,\r\n public zone: NgZone\r\n ) {\r\n this.setPositionClasses();\r\n }\r\n\r\n get position(): CmatPopoverPosition {\r\n return this._position;\r\n }\r\n /** Position of the popover. */\r\n @Input()\r\n set position(value: CmatPopoverPosition) {\r\n if (!['before', 'after', 'above', 'below'].includes(value[0])) {\r\n throwCmatPopoverInvalidPositionStart();\r\n }\r\n if (!['before', 'after', 'above', 'below', 'center'].includes(value[1])) {\r\n throwCmatPopoverInvalidPositionEnd();\r\n }\r\n this._position = value;\r\n this.setPositionClasses();\r\n }\r\n\r\n /** Popover trigger event */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get triggerEvent(): CmatPopoverTriggerEvent {\r\n return this._triggerEvent;\r\n }\r\n @Input()\r\n set triggerEvent(value: CmatPopoverTriggerEvent) {\r\n this._triggerEvent = value;\r\n }\r\n\r\n /** Popover scroll strategy */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get scrollStrategy(): CmatPopoverScrollStrategy {\r\n return this._scrollStrategy;\r\n }\r\n @Input()\r\n set scrollStrategy(value: CmatPopoverScrollStrategy) {\r\n this._scrollStrategy = value;\r\n }\r\n\r\n /** Popover enter delay */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get enterDelay(): number {\r\n return this._enterDelay;\r\n }\r\n\r\n @Input()\r\n set enterDelay(value: number) {\r\n this._enterDelay = value;\r\n }\r\n\r\n /** Popover leave delay */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get leaveDelay(): number {\r\n return this._leaveDelay;\r\n }\r\n\r\n @Input()\r\n set leaveDelay(value: number) {\r\n this._leaveDelay = value;\r\n }\r\n\r\n /** Popover target offset x */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get xOffset(): number {\r\n return this._panelOffsetX;\r\n }\r\n @Input()\r\n set xOffset(value: number) {\r\n this._panelOffsetX = value;\r\n }\r\n\r\n /** Popover target offset y */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get yOffset(): number {\r\n return this._panelOffsetY;\r\n }\r\n\r\n @Input()\r\n set yOffset(value: number) {\r\n this._panelOffsetY = value;\r\n }\r\n\r\n /** Popover arrow offset x */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowOffsetX(): number {\r\n return this._arrowOffsetX;\r\n }\r\n\r\n @Input()\r\n set arrowOffsetX(value: number) {\r\n this._arrowOffsetX = value;\r\n }\r\n\r\n /** Popover arrow offset y */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowOffsetY(): number {\r\n return this._arrowOffsetY;\r\n }\r\n\r\n @Input()\r\n set arrowOffsetY(value: number) {\r\n this._arrowOffsetY = value;\r\n }\r\n\r\n /** Popover arrow width */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowWidth(): number {\r\n return this._arrowWidth;\r\n }\r\n\r\n @Input()\r\n set arrowWidth(value: number) {\r\n this._arrowWidth = value;\r\n }\r\n\r\n /** Popover arrow height */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get arrowHeight(): number {\r\n return this._arrowHeight;\r\n }\r\n @Input()\r\n set arrowHeight(value: number) {\r\n this._arrowHeight = value;\r\n }\r\n\r\n /** Popover close on container click */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get closeOnPanelClick(): boolean {\r\n return this._closeOnPanelClick;\r\n }\r\n\r\n @Input()\r\n set closeOnPanelClick(value: boolean) {\r\n this._closeOnPanelClick = coerceBooleanProperty(value);\r\n }\r\n\r\n /** Popover close on backdrop click */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get closeOnBackdropClick(): boolean {\r\n return this._closeOnBackdropClick;\r\n }\r\n @Input()\r\n set closeOnBackdropClick(value: boolean) {\r\n this._closeOnBackdropClick = coerceBooleanProperty(value);\r\n }\r\n\r\n /** Disable animations of popover and all child elements */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get disableAnimation(): boolean {\r\n return this._disableAnimation;\r\n }\r\n\r\n @Input()\r\n set disableAnimation(value: boolean) {\r\n this._disableAnimation = coerceBooleanProperty(value);\r\n }\r\n\r\n /** Popover focus trap using cdkTrapFocus */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get focusTrapEnabled(): boolean {\r\n return this._focusTrapEnabled;\r\n }\r\n\r\n @Input()\r\n set focusTrapEnabled(value: boolean) {\r\n this._focusTrapEnabled = coerceBooleanProperty(value);\r\n }\r\n\r\n /** Popover focus trap auto capture using cdkTrapFocusAutoCapture */\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get focusTrapAutoCaptureEnabled(): boolean {\r\n return this._focusTrapAutoCaptureEnabled;\r\n }\r\n\r\n @Input()\r\n set focusTrapAutoCaptureEnabled(value: boolean) {\r\n this._focusTrapAutoCaptureEnabled = coerceBooleanProperty(value);\r\n }\r\n\r\n /**\r\n * This method takes classes set on the host md-popover element and applies them on the\r\n * popover template that displays in the overlay container. Otherwise, it's difficult\r\n * to style the containing popover from outside the component.\r\n *\r\n * @param classes list of class names\r\n */\r\n @Input()\r\n set panelClass(classes: string) {\r\n if (classes && classes.length) {\r\n this.classList = classes.split(' ').reduce((obj: any, className: string) => {\r\n obj[className] = true;\r\n return obj;\r\n }, {});\r\n\r\n this._elementRef.nativeElement.className = '';\r\n this.setPositionClasses();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.emitCloseEvent();\r\n this.closed.complete();\r\n }\r\n\r\n /** Handle a keyboard event from the popover, delegating to the appropriate action. */\r\n handleKeydown(event: KeyboardEvent): void {\r\n switch (event.code) {\r\n case 'Escape':\r\n this.emitCloseEvent();\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * This emits a close event to which the trigger is subscribed. When emitted, the\r\n * trigger will close the popover.\r\n */\r\n emitCloseEvent(): void {\r\n this.closed.emit();\r\n }\r\n\r\n /** Close popover on click if closeOnPanelClick is true */\r\n onClick(): void {\r\n if (this.closeOnPanelClick) {\r\n this.emitCloseEvent();\r\n }\r\n }\r\n\r\n /**\r\n * TODO: Refactor when @angular/cdk includes feature I mentioned on github see link below.\r\n * https://github.com/angular/material2/pull/5493#issuecomment-313085323\r\n */\r\n /** Disables close of popover when leaving trigger element and mouse over the popover */\r\n onMouseOver(): void {\r\n if (this.triggerEvent === 'hover') {\r\n this.closeDisabled = true;\r\n }\r\n }\r\n\r\n onFocus(): void {\r\n //do someting\r\n }\r\n\r\n /** Enables close of popover when mouse leaving popover element */\r\n onMouseLeave(): void {\r\n if (this.triggerEvent === 'hover') {\r\n this.closeDisabled = false;\r\n this.emitCloseEvent();\r\n }\r\n }\r\n\r\n // TODO: Refactor how styles are set and updated on the component, use best practices.\r\n // TODO: If arrow left and right positioning is requested, see if flex direction can be used to work with order.\r\n /** Sets the current styles for the popover to allow for dynamically changing settings */\r\n setCurrentStyles(pos = this.position): void {\r\n const left =\r\n pos[1] === 'after'\r\n ? `${this.arrowOffsetX - this.arrowWidth / 2}px`\r\n : pos[1] === 'center'\r\n ? `calc(50% - ${this.arrowWidth / 2}px)`\r\n : '';\r\n const right = pos[1] === 'before' ? `${this.arrowOffsetX - this.arrowWidth / 2}px` : '';\r\n\r\n const bottom =\r\n pos[1] === 'above'\r\n ? `${this.arrowOffsetY - this.arrowHeight / 2}px`\r\n : pos[1] === 'center'\r\n ? `calc(50% - ${this.arrowHeight / 2}px)`\r\n : '';\r\n const top = pos[1] === 'below' ? `${this.arrowOffsetY - this.arrowHeight / 2}px` : '';\r\n\r\n this.popoverArrowStyles =\r\n pos[0] === 'above' || pos[0] === 'below'\r\n ? {\r\n left: this._dir.value === 'ltr' ? left : right,\r\n right: this._dir.value === 'ltr' ? right : left,\r\n }\r\n : {\r\n top,\r\n bottom,\r\n };\r\n }\r\n\r\n /**\r\n * It's necessary to set position-based classes to ensure the popover panel animation\r\n * folds out from the correct direction.\r\n */\r\n setPositionClasses(pos = this.position): void {\r\n this.classList['cmat-popover-before-above'] = pos[0] === 'before' && pos[1] === 'above';\r\n this.classList['cmat-popover-before-center'] = pos[0] === 'before' && pos[1] === 'center';\r\n this.classList['cmat-popover-before-below'] = pos[0] === 'before' && pos[1] === 'below';\r\n this.classList['cmat-popover-after-above'] = pos[0] === 'after' && pos[1] === 'above';\r\n this.classList['cmat-popover-after-center'] = pos[0] === 'after' && pos[1] === 'center';\r\n this.classList['cmat-popover-after-below'] = pos[0] === 'after' && pos[1] === 'below';\r\n this.classList['cmat-popover-above-before'] = pos[0] === 'above' && pos[1] === 'before';\r\n this.classList['cmat-popover-above-center'] = pos[0] === 'above' && pos[1] === 'center';\r\n this.classList['cmat-popover-above-after'] = pos[0] === 'above' && pos[1] === 'after';\r\n this.classList['cmat-popover-below-before'] = pos[0] === 'below' && pos[1] === 'before';\r\n this.classList['cmat-popover-below-center'] = pos[0] === 'below' && pos[1] === 'center';\r\n this.classList['cmat-popover-below-after'] = pos[0] === 'below' && pos[1] === 'after';\r\n }\r\n}\r\n","<ng-template>\r\n <div class=\"cmat-popover-panel shadow\" role=\"dialog\" [ngClass]=\"classList\" [ngStyle]=\"popoverPanelStyles\"\r\n (keydown)=\"handleKeydown($event)\" (click)=\"onClick()\" (focus)=\"onFocus()\" (mouseover)=\"onMouseOver()\" (mouseleave)=\"onMouseLeave()\"\r\n [@.disabled]=\"disableAnimation\" [@transform]=\"'enter'\">\r\n <div class=\"cmat-popover-direction-arrow\" [ngStyle]=\"popoverArrowStyles\"></div>\r\n <div class=\"cmat-popover-content\" [ngStyle]=\"popoverContentStyles\" [cdkTrapFocus]=\"focusTrapEnabled\"\r\n [cdkTrapFocusAutoCapture]=\"focusTrapAutoCaptureEnabled\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</ng-template>","\r\nimport { isFakeMousedownFromScreenReader } from '@angular/cdk/a11y';\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n ConnectedPosition,\r\n FlexibleConnectedPositionStrategy,\r\n HorizontalConnectionPos,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef,\r\n ScrollStrategy,\r\n VerticalConnectionPos,\r\n} from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { throwCmatPopoverMissingError } from './popover.errors';\r\nimport { CmatPopoverPanel, CmatTarget } from './popover.interfaces';\r\nimport {\r\n CmatPopoverPosition,\r\n CmatPopoverPositionStart,\r\n CmatPopoverScrollStrategy,\r\n CmatPopoverTriggerEvent,\r\n} from './popover.type';\r\n\r\n/**\r\n * This directive is intended to be used in conjunction with an cmat-popover tag. It is\r\n * responsible for toggling the display of the provided popover instance.\r\n */\r\n\r\n@Directive({\r\n selector: '[cmatPopoverTriggerFor],[cmatPopoverTargetAt],[cmatPopoverTriggerOn]',\r\n standalone:true,\r\n exportAs: 'cmatPopoverTrigger'\r\n})\r\nexport class CmatPopoverTriggerDirective implements AfterViewInit, OnDestroy {\r\n @HostBinding('attr.aria-haspopup') ariaHaspopup = true;\r\n /** References the popover instance that the trigger is associated with. */\r\n @Input('cmatPopoverTriggerFor') popover!: CmatPopoverPanel;\r\n\r\n /** References the popover target instance that the trigger is associated with. */\r\n @Input('cmatPopoverTargetAt') targetElement!: CmatTarget;\r\n\r\n /** Popover trigger event */\r\n @Input('cmatPopoverTriggerOn') triggerEvent!: CmatPopoverTriggerEvent;\r\n\r\n /** Event emitted when the associated popover is opened. */\r\n @Output() popoverOpened = new EventEmitter<void>();\r\n\r\n /** Event emitted when the associated popover is closed. */\r\n @Output() popoverClosed = new EventEmitter<void>();\r\n\r\n popoverOpened$ = new Subject<void>();\r\n popoverClosed$ = new Subject<void>();\r\n\r\n private _portal!: TemplatePortal;\r\n private _overlayRef: OverlayRef | null = null;\r\n private _popoverOpen = false;\r\n private _halt = false;\r\n private _backdropSubscription!: Subscription;\r\n private _positionSubscription!: Subscription;\r\n private _detachmentsSubscription!: Subscription;\r\n\r\n private _mouseoverTimer: any;\r\n\r\n // tracking input type is necessary so it's possible to only auto-focus\r\n // the first item of the list when the popover is opened via the keyboard\r\n private _openedByMouse = false;\r\n\r\n private _onDestroy = new Subject<void>();\r\n\r\n\r\n\r\n constructor(\r\n private _overlay: Overlay,\r\n private _elementRef: ElementRef,\r\n private _viewContainerRef: ViewContainerRef,\r\n @Optional() private _dir: Directionality,\r\n private _changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n /** Whether the popover is open. */\r\n get popoverOpen(): boolean {\r\n return this._popoverOpen;\r\n }\r\n /** The text direction of the containing app. */\r\n get dir(): Direction {\r\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(): void {\r\n if (this.popover.triggerEvent === 'click') {\r\n this.togglePopover();\r\n }\r\n }\r\n\r\n @HostListener('mouseenter', ['$event'])\r\n onMouseEnter(): void {\r\n this._halt = false;\r\n if (this.popover.triggerEvent === 'hover') {\r\n this._mouseoverTimer = setTimeout(() => {\r\n this.openPopover();\r\n }, this.popover.enterDelay);\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event'])\r\n onMouseLeave(): void {\r\n if (this.popover.triggerEvent === 'hover') {\r\n if (this._mouseoverTimer) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n if (this._popoverOpen) {\r\n setTimeout(() => {\r\n if (!this.popover.closeDisabled) {\r\n this.closePopover();\r\n }\r\n }, this.popover.leaveDelay);\r\n } else {\r\n this._halt = true;\r\n }\r\n }\r\n }\r\n @HostListener('mousedown', ['$event'])\r\n handleMousedown(event: MouseEvent): void {\r\n if (event && !isFakeMousedownFromScreenReader(event)) {\r\n this._openedByMouse = true;\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n this._checkPopover();\r\n this._setCurrentConfig();\r\n this.popover.closed.subscribe(() => this.closePopover());\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroyPopover();\r\n }\r\n\r\n\r\n\r\n /** Toggles the popover between the open and closed states. */\r\n togglePopover(): void {\r\n return this._popoverOpen ? this.closePopover() : this.openPopover();\r\n }\r\n\r\n /** Opens the popover. */\r\n openPopover(): void {\r\n if (!this._popoverOpen && !this._halt) {\r\n this._createOverlay().attach(this._portal);\r\n\r\n this._subscribeToBackdrop();\r\n this._subscribeToDetachments();\r\n\r\n this._initPopover();\r\n }\r\n }\r\n\r\n /** Closes the popover. */\r\n closePopover(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef.detach();\r\n this._resetPopover();\r\n }\r\n\r\n this.destroyPopover();\r\n }\r\n\r\n /** Removes the popover from the DOM. */\r\n destroyPopover(): void {\r\n if (this._mouseoverTimer) {\r\n clearTimeout(this._mouseoverTimer);\r\n this._mouseoverTimer = null;\r\n }\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n this._overlayRef = null;\r\n this._cleanUpSubscriptions();\r\n }\r\n\r\n this._onDestroy.next();\r\n this._onDestroy.complete();\r\n }\r\n\r\n /** Focuses the popover trigger. */\r\n focus(): void {\r\n this._elementRef.nativeElement.focus();\r\n }\r\n\r\n /**\r\n * This method ensures that the popover closes when the overlay backdrop is clicked.\r\n * We do not use first() here because doing so would not catch clicks from within\r\n * the popover, and it would fail to unsubscribe properly. Instead, we unsubscribe\r\n * explicitly when the popover is closed or destroyed.\r\n */\r\n private _subscribeToBackdrop(): void {\r\n if (this._overlayRef) {\r\n /** Only subscribe to backdrop if trigger event is click */\r\n if (this.triggerEvent === 'click' && this.popover.closeOnBackdropClick === true) {\r\n this._overlayRef\r\n .backdropClick()\r\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this.popover.emitCloseEvent();\r\n });\r\n }\r\n }\r\n }\r\n\r\n private _subscribeToDetachments(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef\r\n .detachments()\r\n .pipe(takeUntil(this.popoverClosed$), takeUntil(this._onDestroy))\r\n .subscribe(() => {\r\n this._setPopoverClosed();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * This method sets the popover state to open and focuses the first item if\r\n * the popover was opened via the keyboard.\r\n */\r\n private _initPopover(): void {\r\n this._setPopoverOpened();\r\n }\r\n\r\n /**\r\n * This method resets the popover when it's closed, most importantly restoring\r\n * focus to the popover trigger if the popover was opened via the keyboard.\r\n */\r\n private _resetPopover(): void {\r\n this._setPopoverClosed();\r\n\r\n // Focus only needs to be reset to the host element if the popover was opened\r\n // by the keyboard and manually shifted to the first popover item.\r\n if (!this._openedByMouse) {\r\n this.focus();\r\n }\r\n this._openedByMouse = false;\r\n }\r\n\r\n /** set state rather than toggle to support triggers sharing a popover */\r\n private _setPopoverOpened(): void {\r\n if (!this._popoverOpen) {\r\n this._popoverOpen = true;\r\n\r\n this.popoverOpened$.next();\r\n this.popoverOpened.emit();\r\n }\r\n }\r\n\r\n /** set state rather than toggle to support triggers sharing a popover */\r\n private _setPopoverClosed(): void {\r\n if (this._popoverOpen) {\r\n this._popoverOpen = false;\r\n\r\n this.popoverClosed$.next();\r\n this.popoverClosed.emit();\r\n }\r\n }\r\n\r\n /**\r\n * This method checks that a valid instance of MdPopover has been passed into\r\n * mdPopoverTriggerFor. If not, an exception is thrown.\r\n */\r\n private _checkPopover(): void {\r\n if (!this.popover) {\r\n throwCmatPopoverMissingError();\r\n }\r\n }\r\n\r\n /**\r\n * This method creates the overlay from the provided popover's template and saves its\r\n * OverlayRef so that it can be attached to the DOM when openPopover is called.\r\n */\r\n private _createOverlay(): OverlayRef {\r\n if (!this._overlayRef) {\r\n this._portal = new TemplatePortal(this.popover.templateRef, this._viewContainerRef);\r\n const config = this._getOverlayConfig();\r\n this._subscribeToPositions(config.positionStrategy as FlexibleConnectedPositionStrategy);\r\n this._overlayRef = this._overlay.create(config);\r\n }\r\n\r\n return this._overlayRef;\r\n }\r\n\r\n /**\r\n * This method builds the configuration object needed to create the overlay, the OverlayConfig.\r\n *\r\n * @returns OverlayConfig\r\n */\r\n private _getOverlayConfig(): OverlayConfig {\r\n const overlayState = new OverlayConfig();\r\n overlayState.positionStrategy = this._getPosition();\r\n\r\n /** Display overlay backdrop if trigger event is click */\r\n if (this.triggerEvent === 'click') {\r\n overlayState.hasBackdrop = true;\r\n overlayState.backdropClass = 'cdk-overlay-transparent-backdrop';\r\n }\r\n\r\n overlayState.direction = this._dir;\r\n overlayState.scrollStrategy = this._getOverlayScrollStrategy(this.popover.scrollStrategy);\r\n\r\n return overlayState;\r\n }\r\n\r\n /**\r\n * This method returns the scroll strategy used by the cdk/overlay.\r\n */\r\n private _getOverlayScrollStrategy(strategy: CmatPopoverScrollStrategy): ScrollStrategy {\r\n switch (strategy) {\r\n case 'noop':\r\n return this._overlay.scrollStrategies.noop();\r\n case 'close':\r\n return this._overlay.scrollStrategies.close();\r\n case 'block':\r\n return this._overlay.scrollStrategies.block();\r\n case 'reposition':\r\n default:\r\n return this._overlay.scrollStrategies.reposition();\r\n }\r\n }\r\n\r\n /**\r\n * Listens to changes in the position of the overlay and sets the correct classes\r\n * on the popover based on the new position. This ensures the animation origin is always\r\n * correct, even if a fallback position is used for the overlay.\r\n */\r\n private _subscribeToPositions(position: FlexibleConnectedPositionStrategy): void {\r\n this._positionSubscription = position.positionChanges.subscribe((change) => {\r\n const posX =\r\n change.connectionPair.overlayX === 'start'\r\n ? 'after'\r\n : change.connectionPair.overlayX === 'end'\r\n ? 'before'\r\n : 'center';\r\n const posY =\r\n change.connectionPair.overlayY === 'top'\r\n ? 'below'\r\n : change.connectionPair.overlayY === 'bottom'\r\n ? 'above'\r\n : 'center';\r\n\r\n const pos: CmatPopoverPosition =\r\n this.popover.position[0] === 'above' || this.popover.position[0] === 'below'\r\n ? [posY as CmatPopoverPositionStart, posX]\r\n : [posX as CmatPopoverPositionStart, posY];\r\n\r\n // required for ChangeDetectionStrategy.OnPush\r\n this._changeDetectorRef.markForCheck();\r\n\r\n this.popover.zone.run(() => {\r\n this.popover.setCurrentStyles(pos);\r\n this.popover.setPositionClasses(pos);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * This method builds the position strategy for the overlay, so the popover is properly connected\r\n * to the trigger.\r\n *\r\n * @returns ConnectedPositionStrategy\r\n */\r\n private _getPosition(): FlexibleConnectedPositionStrategy {\r\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] =\r\n this.popover.position[0] === 'before' || this.popover.position[1] === 'after'\r\n ? ['start', 'center', 'end']\r\n : this.popover.position[0] === 'after' || this.popover.position[1] === 'before'\r\n ? ['end', 'center', 'start']\r\n : ['center', 'start', 'end'];\r\n\r\n const [originY, origin2ndY, origin3rdY]: VerticalConnectionPos[] =\r\n this.popover.position[0] === 'above' || this.popover.position[1] === 'below'\r\n ? ['top', 'center', 'bottom']\r\n : this.popover.position[0] === 'below' || this.popover.position[1] === 'above'\r\n ? ['bottom', 'center', 'top']\r\n : ['center', 'top', 'bottom'];\r\n\r\n const [overlayX, overlayFallbackX]: HorizontalConnectionPos[] =\r\n this.popover.position[0] === 'below' || this.popover.position[0] === 'above'\r\n ? [originX, originX]\r\n : this.popover.position[0] === 'before'\r\n ? ['end', 'start']\r\n : ['start', 'end'];\r\n\r\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] =\r\n this.popover.position[0] === 'before' || this.popover.position[0] === 'after'\r\n ? [originY, originY]\r\n : this.popover.position[0] === 'below'\r\n ? ['top', 'bottom']\r\n : ['bottom', 'top'];\r\n\r\n const originFallbackX = overlayX;\r\n const originFallbackY = overlayY;\r\n\r\n const offsetX =\r\n this.popover.xOffset && !isNaN(Number(this.popover.xOffset))\r\n ? Number(this.dir === 'ltr' ? this.popover.xOffset : -this.popover.xOffset)\r\n : 0;\r\n const offsetY =\r\n this.popover.yOffset && !isNaN(Number(this.popover.yOffset))\r\n ? Number(this.popover.yOffset)\r\n : 0;\r\n\r\n /**\r\n * For overriding position element, when `cmatPopoverTargetAt` has a valid element reference.\r\n * Useful for sticking popover to parent element and offsetting arrow to trigger element.\r\n * If undefined defaults to the trigger element reference.\r\n */\r\n let element = this._elementRef;\r\n if (typeof this.targetElement !== 'undefined') {\r\n this.popover.containerPositioning = true;\r\n element = this.targetElement._elementRef;\r\n }\r\n\r\n let positions: ConnectedPosition[] = [{ originX, originY, overlayX, overlayY }];\r\n\r\n if (this.popover.position[0] === 'above' || this.popover.position[0] === 'below') {\r\n positions = [\r\n { originX, originY, overlayX, overlayY, offsetY },\r\n { originX: origin2ndX, originY, overlayX: origin2ndX, overlayY, offsetY },\r\n { originX: origin3rdX, originY, overlayX: origin3rdX, overlayY, offsetY },\r\n {\r\n originX,\r\n originY: originFallbackY,\r\n overlayX,\r\n overlayY: overlayFallbackY,\r\n offsetY: -offsetY,\r\n },\r\n {\r\n originX: origin2ndX,\r\n originY: originFallbackY,\r\n overlayX: origin2ndX,\r\n overlayY: overlayFallbackY,\r\n offsetY: -offsetY,\r\n },\r\n {\r\n originX: origin3rdX,\r\n originY: originFallbackY,\r\n overlayX: origin3rdX,\r\n overlayY: overlayFallbackY,\r\n offsetY: -offsetY,\r\n },\r\n ];\r\n }\r\n\r\n if (this.popover.position[0] === 'before' || this.popover.position[0] === 'after') {\r\n positions = [\r\n { originX, originY, overlayX, overlayY, offsetX },\r\n { originX, originY: origin2ndY, overlayX, overlayY: origin2ndY, offsetX },\r\n { originX, originY: origin3rdY, overlayX, overlayY: origin3rdY, offsetX },\r\n {\r\n originX: originFallbackX,\r\n originY,\r\n overlayX: overlayFallbackX,\r\n overlayY,\r\n offsetX: -offsetX,\r\n },\r\n {\r\n originX: originFallbackX,\r\n originY: origin2ndY,\r\n overlayX: overlayFallbackX,\r\n overlayY: origin2ndY,\r\n offsetX: -offsetX,\r\n },\r\n {\r\n originX: originFallbackX,\r\n originY: origin3rdY,\r\n overlayX: overlayFallbackX,\r\n overlayY: origin3rdY,\r\n offsetX: -offsetX,\r\n },\r\n ];\r\n }\r\n\r\n return this._overlay\r\n .position()\r\n .flexibleConnectedTo(element)\r\n .withLockedPosition()\r\n .withPositions(positions)\r\n .withDefaultOffsetX(offsetX)\r\n .withDefaultOffsetY(offsetY);\r\n }\r\n\r\n private _cleanUpSubscriptions(): void {\r\n if (this._backdropSubscription) {\r\n this._backdropSubscription.unsubscribe();\r\n }\r\n if (this._positionSubscription) {\r\n this._positionSubscription.unsubscribe();\r\n }\r\n if (this._detachmentsSubscription) {\r\n this._detachmentsSubscription.unsubscribe();\r\n }\r\n }\r\n private _setCurrentConfig(): void {\r\n if (this.triggerEvent) {\r\n this.popover.triggerEvent = this.triggerEvent;\r\n }\r\n\r\n this.popover.setCurrentStyles();\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: 'cmat-popover-target, [cmatPopoverTarget]',\r\n standalone:true,\r\n exportAs: 'cmatPopoverTarget',\r\n})\r\nexport class CmatPopoverTargetDirective {\r\n constructor(public elementRef: ElementRef) {\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
3
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
6
4
|
import * as i2 from '@angular/material/progress-bar';
|
|
7
5
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
6
|
+
import { Subject } from 'rxjs';
|
|
7
|
+
import { takeUntil } from 'rxjs/operators';
|
|
8
8
|
import * as i1 from 'cmat/services/loading';
|
|
9
9
|
|
|
10
10
|
class CmatProgressBarComponent {
|
|
@@ -47,10 +47,10 @@ class CmatProgressBarComponent {
|
|
|
47
47
|
this._unsubscribeAll.next(null);
|
|
48
48
|
this._unsubscribeAll.complete();
|
|
49
49
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatProgressBarComponent, deps: [{ token: i1.CmatLoadingService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatProgressBarComponent, isStandalone: true, selector: "cmat-progress-bar", inputs: { autoMode: "autoMode" }, exportAs: ["cmatProgressBar"], usesOnChanges: true, ngImport: i0, template: "@if (show) {\n <mat-progress-bar\n [mode]=\"mode\"\n [value]=\"progress\"></mat-progress-bar>\n}\n", styles: ["cmat-progress-bar{position:fixed;top:0;z-index:999;width:100%;height:6px}\n"], dependencies: [{ kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatProgressBarComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
55
|
args: [{ selector: 'cmat-progress-bar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatProgressBar', standalone: true, imports: [MatProgressBarModule], template: "@if (show) {\n <mat-progress-bar\n [mode]=\"mode\"\n [value]=\"progress\"></mat-progress-bar>\n}\n", styles: ["cmat-progress-bar{position:fixed;top:0;z-index:999;width:100%;height:6px}\n"] }]
|
|
56
56
|
}], ctorParameters: () => [{ type: i1.CmatLoadingService }, { type: i0.ChangeDetectorRef }], propDecorators: { autoMode: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-progress-bar.mjs","sources":["../../../projects/cmat/components/progress-bar/progress-bar.component.ts","../../../projects/cmat/components/progress-bar/progress-bar.component.html","../../../projects/cmat/components/progress-bar/cmat-components-progress-bar.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport {
|
|
1
|
+
{"version":3,"file":"cmat-components-progress-bar.mjs","sources":["../../../projects/cmat/components/progress-bar/progress-bar.component.ts","../../../projects/cmat/components/progress-bar/progress-bar.component.html","../../../projects/cmat/components/progress-bar/cmat-components-progress-bar.ts"],"sourcesContent":["import { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CmatLoadingService } from 'cmat/services/loading';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatProgressBar',\r\n standalone: true,\r\n imports: [MatProgressBarModule]\r\n})\r\nexport class CmatProgressBarComponent implements OnChanges, OnInit, OnDestroy {\r\n @Input() autoMode: boolean = true;\r\n mode: 'determinate' | 'indeterminate';\r\n progress: number | null = 0;\r\n show: boolean = false;\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(\r\n private _cmatLoadingService: CmatLoadingService,private _changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // Auto mode\r\n if ('autoMode' in changes) {\r\n // Set the auto mode in the service\r\n this._cmatLoadingService.setAutoMode(coerceBooleanProperty(changes['autoMode'].currentValue));\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this._cmatLoadingService.mode$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((value) => {\r\n this.mode = value;\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n this._cmatLoadingService.progress$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((value) => {\r\n this.progress = value;\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n this._cmatLoadingService.show$\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((value) => {\r\n this.show = value;\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(null);\r\n this._unsubscribeAll.complete();\r\n }\r\n}\r\n","@if (show) {\n <mat-progress-bar\n [mode]=\"mode\"\n [value]=\"progress\"></mat-progress-bar>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,35 @@
|
|
|
1
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
1
2
|
import { NgStyle, NgClass } from '@angular/common';
|
|
2
3
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import * as
|
|
4
|
+
import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Self, HostBinding, Input, ViewChild, Output } from '@angular/core';
|
|
5
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
6
|
+
import * as i2 from '@angular/material/icon';
|
|
6
7
|
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
+
import { Subject } from 'rxjs';
|
|
9
|
+
import * as i1 from '@angular/forms';
|
|
7
10
|
|
|
8
|
-
/* eslint-disable @typescript-eslint/
|
|
9
|
-
|
|
10
|
-
provide: NG_VALUE_ACCESSOR,
|
|
11
|
-
useExisting: forwardRef(() => CmatRatingComponent),
|
|
12
|
-
multi: true
|
|
13
|
-
};
|
|
11
|
+
/* eslint-disable @typescript-eslint/member-ordering */
|
|
12
|
+
let NEXT_ID = 0;
|
|
14
13
|
class CmatRatingComponent {
|
|
15
|
-
constructor() {
|
|
14
|
+
constructor(ngControl, _changeDetectorRef) {
|
|
15
|
+
this.ngControl = ngControl;
|
|
16
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
17
|
+
this.id = `cmat-chip-input-${NEXT_ID++}`;
|
|
16
18
|
this.stars = 5;
|
|
19
|
+
this.readonly = false;
|
|
17
20
|
this.showMode = 'horizontal';
|
|
18
21
|
this.valueChange = new EventEmitter();
|
|
22
|
+
this.stateChanges = new Subject();
|
|
23
|
+
this.focused = false;
|
|
24
|
+
this.touched = false;
|
|
25
|
+
this.controlType = 'cmat-rating';
|
|
19
26
|
this.onModelChange = () => { };
|
|
20
27
|
this.onTouchedChange = () => { };
|
|
28
|
+
this._placeholder = '';
|
|
29
|
+
this._required = false;
|
|
30
|
+
if (this.ngControl != null) {
|
|
31
|
+
this.ngControl.valueAccessor = this;
|
|
32
|
+
}
|
|
21
33
|
}
|
|
22
34
|
ngOnInit() {
|
|
23
35
|
this.starArray = [];
|
|
@@ -33,17 +45,86 @@ class CmatRatingComponent {
|
|
|
33
45
|
}
|
|
34
46
|
}
|
|
35
47
|
}
|
|
48
|
+
ngOnDestroy() {
|
|
49
|
+
this.stateChanges.complete();
|
|
50
|
+
}
|
|
51
|
+
onFocus() {
|
|
52
|
+
}
|
|
53
|
+
get placeholder() {
|
|
54
|
+
return this._placeholder;
|
|
55
|
+
}
|
|
56
|
+
set placeholder(value) {
|
|
57
|
+
this._placeholder = value;
|
|
58
|
+
this.stateChanges.next();
|
|
59
|
+
}
|
|
60
|
+
get value() {
|
|
61
|
+
return this._value;
|
|
62
|
+
}
|
|
63
|
+
set value(value) {
|
|
64
|
+
if (value !== this.value) {
|
|
65
|
+
this._value = value;
|
|
66
|
+
this.stateChanges.next();
|
|
67
|
+
this.onModelChange(value);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
get empty() {
|
|
71
|
+
return !this._value;
|
|
72
|
+
}
|
|
73
|
+
get errorState() {
|
|
74
|
+
if (this.ngControl == null)
|
|
75
|
+
return false;
|
|
76
|
+
return (this.touched && this.ngControl?.invalid) ?? false;
|
|
77
|
+
}
|
|
78
|
+
get shouldLabelFloat() {
|
|
79
|
+
return this.focused || !this.empty;
|
|
80
|
+
}
|
|
81
|
+
get required() { return this._required; }
|
|
82
|
+
set required(value) {
|
|
83
|
+
this._required = coerceBooleanProperty(value);
|
|
84
|
+
this.stateChanges.next();
|
|
85
|
+
}
|
|
86
|
+
get disabled() {
|
|
87
|
+
if (this.ngControl && this.ngControl.disabled !== null) {
|
|
88
|
+
return this.ngControl.disabled;
|
|
89
|
+
}
|
|
90
|
+
return this.readonly;
|
|
91
|
+
}
|
|
92
|
+
set disabled(value) {
|
|
93
|
+
this.readonly = coerceBooleanProperty(value);
|
|
94
|
+
if (this.focused) {
|
|
95
|
+
this.focused = false;
|
|
96
|
+
this.stateChanges.next();
|
|
97
|
+
}
|
|
98
|
+
}
|
|
36
99
|
writeValue(value) {
|
|
37
100
|
if (value) {
|
|
38
101
|
this.value = value;
|
|
102
|
+
this.currentValue = value;
|
|
103
|
+
this._changeDetectorRef.markForCheck();
|
|
39
104
|
}
|
|
40
105
|
}
|
|
106
|
+
setDisabledState(isDisabled) {
|
|
107
|
+
this.disabled = isDisabled;
|
|
108
|
+
}
|
|
41
109
|
registerOnChange(fn) {
|
|
42
110
|
this.onModelChange = fn;
|
|
43
111
|
}
|
|
44
112
|
registerOnTouched(fn) {
|
|
45
113
|
this.onTouchedChange = fn;
|
|
46
114
|
}
|
|
115
|
+
setDescribedByIds(ids) {
|
|
116
|
+
if (ids.length) {
|
|
117
|
+
this._ratingElementRef?.nativeElement.setAttribute('aria-describedby', ids.join(' '));
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this._ratingElementRef?.nativeElement.removeAttribute('aria-describedby');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
onContainerClick() {
|
|
124
|
+
if (!this.focused) {
|
|
125
|
+
this._ratingElementRef.nativeElement.focus();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
47
128
|
isIn(value) {
|
|
48
129
|
const ex = this.value - value;
|
|
49
130
|
return ex > 0 && ex < 1;
|
|
@@ -56,8 +137,8 @@ class CmatRatingComponent {
|
|
|
56
137
|
this.value -= 0.5;
|
|
57
138
|
}
|
|
58
139
|
this.currentValue = this.value;
|
|
59
|
-
this.valueChange.emit(this.
|
|
60
|
-
this.onModelChange(this.
|
|
140
|
+
this.valueChange.emit(this.currentValue);
|
|
141
|
+
this.onModelChange(this.currentValue);
|
|
61
142
|
}
|
|
62
143
|
}
|
|
63
144
|
onMouseover(event, value, half) {
|
|
@@ -70,17 +151,29 @@ class CmatRatingComponent {
|
|
|
70
151
|
}
|
|
71
152
|
}
|
|
72
153
|
onMouseleave() {
|
|
73
|
-
this.value
|
|
74
|
-
|
|
75
|
-
|
|
154
|
+
if (this.value !== this.currentValue) {
|
|
155
|
+
this.value = this.currentValue;
|
|
156
|
+
}
|
|
76
157
|
}
|
|
77
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
78
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.
|
|
158
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatRatingComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
159
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatRatingComponent, isStandalone: true, selector: "cmat-rating", inputs: { id: "id", stars: "stars", readonly: "readonly", hover: "hover", half: "half", color: "color", showMode: "showMode", placeholder: "placeholder", value: "value", required: "required", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CmatRatingComponent }], viewQueries: [{ propertyName: "_ratingElementRef", first: true, predicate: ["rating"], descendants: true }], exportAs: ["cmatRating"], usesOnChanges: true, ngImport: i0, template: "<div [class.cmat-rating-readonly]=\"readonly||disabled\" class=\"flex\" #rating (focus)=\"onFocus()\"\n [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\" (mouseleave)=\"onMouseleave()\">\n @for (star of starArray; track star; let i = $index) {\n <div class=\"cmat-rating-item\">\n @if (half) {\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\" (focus)=\"onFocus()\"\n (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\"\n [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n }\n <div role=\"presentation\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\" (focus)=\"onFocus()\">\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n </div>\n }\n</div>", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
79
160
|
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatRatingComponent, decorators: [{
|
|
81
162
|
type: Component,
|
|
82
|
-
args: [{ selector: 'cmat-rating', providers: [
|
|
83
|
-
}],
|
|
163
|
+
args: [{ selector: 'cmat-rating', providers: [{ provide: MatFormFieldControl, useExisting: CmatRatingComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatRating', standalone: true, imports: [MatIconModule, NgStyle, NgClass], template: "<div [class.cmat-rating-readonly]=\"readonly||disabled\" class=\"flex\" #rating (focus)=\"onFocus()\"\n [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\" (mouseleave)=\"onMouseleave()\">\n @for (star of starArray; track star; let i = $index) {\n <div class=\"cmat-rating-item\">\n @if (half) {\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\" (focus)=\"onFocus()\"\n (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\"\n [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n }\n <div role=\"presentation\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\" (focus)=\"onFocus()\">\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n </div>\n }\n</div>", styles: ["cmat-rating{display:flex;align-items:center}cmat-rating .cmat-rating-item{position:relative;cursor:pointer;line-height:0}cmat-rating .cmat-rating-item div{display:inline-block;font-size:1rem;padding:0 .1rem}cmat-rating .cmat-rating-item .cmat-rating-half{position:absolute;top:0;left:0;width:45%;z-index:10;opacity:0;overflow:hidden;padding-right:0}cmat-rating .cmat-rating-readonly .cmat-rating-item{cursor:not-allowed}\n"] }]
|
|
164
|
+
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
165
|
+
type: Optional
|
|
166
|
+
}, {
|
|
167
|
+
type: Self
|
|
168
|
+
}] }, { type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
169
|
+
type: HostBinding,
|
|
170
|
+
args: ['attr.id']
|
|
171
|
+
}, {
|
|
172
|
+
type: Input
|
|
173
|
+
}], _ratingElementRef: [{
|
|
174
|
+
type: ViewChild,
|
|
175
|
+
args: ['rating', { static: false }]
|
|
176
|
+
}], stars: [{
|
|
84
177
|
type: Input
|
|
85
178
|
}], readonly: [{
|
|
86
179
|
type: Input
|
|
@@ -90,12 +183,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
90
183
|
type: Input
|
|
91
184
|
}], color: [{
|
|
92
185
|
type: Input
|
|
93
|
-
}], value: [{
|
|
94
|
-
type: Input
|
|
95
186
|
}], showMode: [{
|
|
96
187
|
type: Input
|
|
97
188
|
}], valueChange: [{
|
|
98
189
|
type: Output
|
|
190
|
+
}], placeholder: [{
|
|
191
|
+
type: Input
|
|
192
|
+
}], value: [{
|
|
193
|
+
type: Input
|
|
194
|
+
}], required: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}], disabled: [{
|
|
197
|
+
type: Input
|
|
99
198
|
}] } });
|
|
100
199
|
|
|
101
200
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-rating.mjs","sources":["../../../projects/cmat/components/rating/rating.component.ts","../../../projects/cmat/components/rating/rating.component.html","../../../projects/cmat/components/rating/cmat-components-rating.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport {\r\n Component, Input, Output, EventEmitter, forwardRef, ChangeDetectionStrategy, ViewEncapsulation, OnChanges, SimpleChanges, OnInit\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CmatRatingComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'cmat-rating',\r\n templateUrl: './rating.component.html',\r\n styleUrls: ['./rating.component.scss'],\r\n providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatRating',\r\n standalone: true,\r\n imports: [MatIconModule, NgStyle, NgClass]\r\n})\r\nexport class CmatRatingComponent implements ControlValueAccessor, OnInit,OnChanges {\r\n @Input() stars: number = 5;\r\n @Input() readonly: boolean;\r\n @Input() hover: boolean;\r\n @Input() half: boolean;\r\n @Input() color: string;\r\n @Input() value: number;\r\n @Input() showMode: 'horizontal' | 'vertical' = 'horizontal';\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n\r\n starArray: number[];\r\n currentValue: number;\r\n\r\n onModelChange: (value: any) => void = () => { };\r\n onTouchedChange: () => any = () => { };\r\n\r\n ngOnInit(): void {\r\n this.starArray = [];\r\n for (let i = 0; i < this.stars; i++) {\r\n this.starArray.push(i);\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('stars' in changes) {\r\n this.starArray = [];\r\n for (let i = 0; i < this.stars; i++) {\r\n this.starArray.push(i);\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: number): void {\r\n if (value) {\r\n this.value = value;\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 isIn(value: number): boolean {\r\n const ex = this.value - value;\r\n return ex > 0 && ex < 1;\r\n }\r\n\r\n onClick(event: any, value: number, half?: boolean): void {\r\n event.stopPropagation();\r\n if (!this.readonly) {\r\n this.value = value + 1;\r\n if (half && this.half) {\r\n this.value -= 0.5;\r\n }\r\n this.currentValue = this.value;\r\n this.valueChange.emit(this.value);\r\n this.onModelChange(this.value);\r\n }\r\n }\r\n\r\n onMouseover(event: any, value: number, half?: boolean): void {\r\n event.stopPropagation();\r\n if (this.hover && !this.readonly) {\r\n this.value = value + 1;\r\n if (half && this.half) {\r\n this.value -= 0.5;\r\n }\r\n }\r\n }\r\n\r\n onMouseleave(): void {\r\n this.value = this.currentValue;\r\n }\r\n\r\n onFocus(): void {\r\n\r\n }\r\n}\r\n\r\n","<div [class.cmat-rating-readonly]=\"readonly\" class=\"flex\"\n [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\" (mouseleave)=\"onMouseleave()\">\n @for (star of starArray; track star; let i = $index) {\n <div class=\"cmat-rating-item\">\n @if (half) {\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\"\n (focus)=\"onFocus()\" (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\" [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n }\n <div role=\"presentation\" (focus)=\"onFocus()\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\">\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n </div>\n }\n</div>","/**\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-rating.mjs","sources":["../../../projects/cmat/components/rating/rating.component.ts","../../../projects/cmat/components/rating/rating.component.html","../../../projects/cmat/components/rating/cmat-components-rating.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\r\nimport { NgClass, NgStyle } from '@angular/common';\r\nimport {\r\n Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, OnChanges, SimpleChanges, OnInit, ChangeDetectorRef,\r\n Optional,\r\n Self,\r\n ElementRef,\r\n HostBinding,\r\n ViewChild,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { Subject } from 'rxjs';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-rating',\r\n templateUrl: './rating.component.html',\r\n styleUrls: ['./rating.component.scss'],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatRatingComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatRating',\r\n standalone: true,\r\n imports: [MatIconModule, NgStyle, NgClass]\r\n})\r\nexport class CmatRatingComponent implements MatFormFieldControl<any>, ControlValueAccessor, OnInit, OnChanges, OnDestroy {\r\n @HostBinding('attr.id')\r\n @Input()\r\n public id = `cmat-chip-input-${NEXT_ID++}`;\r\n\r\n @ViewChild('rating', { static: false }) private _ratingElementRef: ElementRef<HTMLDivElement>;\r\n\r\n @Input() stars: number = 5;\r\n @Input() readonly: boolean = false;\r\n @Input() hover: boolean;\r\n @Input() half: boolean;\r\n @Input() color?: string;\r\n @Input() showMode?: 'horizontal' | 'vertical' = 'horizontal';\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n\r\n starArray: number[];\r\n currentValue: number;\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n focused: boolean = false;\r\n touched: boolean = false;\r\n controlType: string = 'cmat-rating';\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl, private _changeDetectorRef: ChangeDetectorRef) {\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n onModelChange: (value: any) => void = () => { };\r\n onTouchedChange: () => any = () => { };\r\n\r\n ngOnInit(): void {\r\n this.starArray = [];\r\n for (let i = 0; i < this.stars; i++) {\r\n this.starArray.push(i);\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if ('stars' in changes) {\r\n this.starArray = [];\r\n for (let i = 0; i < this.stars; i++) {\r\n this.starArray.push(i);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n }\r\n\r\n onFocus(): void {\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 errorState(): boolean {\r\n if (this.ngControl == null)\r\n return false;\r\n\r\n return (this.touched && this.ngControl?.invalid) ?? false;\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 (this.ngControl && this.ngControl.disabled !== null) {\r\n return this.ngControl.disabled;\r\n }\r\n return this.readonly;\r\n }\r\n set disabled(value: BooleanInput) {\r\n this.readonly = coerceBooleanProperty(value);\r\n\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n writeValue(value: number): void {\r\n if (value) {\r\n this.value = value;\r\n this.currentValue = value;\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\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 setDescribedByIds(ids: string[]): void {\r\n if (ids.length) {\r\n this._ratingElementRef?.nativeElement.setAttribute('aria-describedby', ids.join(' '));\r\n } else {\r\n this._ratingElementRef?.nativeElement.removeAttribute('aria-describedby');\r\n }\r\n }\r\n\r\n onContainerClick(): void {\r\n if (!this.focused) {\r\n this._ratingElementRef.nativeElement.focus();\r\n }\r\n }\r\n\r\n isIn(value: number): boolean {\r\n const ex = this.value - value;\r\n return ex > 0 && ex < 1;\r\n }\r\n\r\n onClick(event: any, value: number, half?: boolean): void {\r\n event.stopPropagation();\r\n if (!this.readonly) {\r\n this.value = value + 1;\r\n if (half && this.half) {\r\n this.value -= 0.5;\r\n }\r\n this.currentValue = this.value;\r\n this.valueChange.emit(this.currentValue);\r\n this.onModelChange(this.currentValue);\r\n }\r\n }\r\n\r\n onMouseover(event: any, value: number, half?: boolean): void {\r\n event.stopPropagation();\r\n if (this.hover && !this.readonly) {\r\n this.value = value + 1;\r\n if (half && this.half) {\r\n this.value -= 0.5;\r\n }\r\n }\r\n }\r\n\r\n onMouseleave(): void {\r\n if (this.value !== this.currentValue) {\r\n this.value = this.currentValue;\r\n }\r\n }\r\n}\r\n\r\n","<div [class.cmat-rating-readonly]=\"readonly||disabled\" class=\"flex\" #rating (focus)=\"onFocus()\"\n [ngClass]=\"{'flex-col':showMode==='vertical','flex-row':showMode==='horizontal'}\" (mouseleave)=\"onMouseleave()\">\n @for (star of starArray; track star; let i = $index) {\n <div class=\"cmat-rating-item\">\n @if (half) {\n <div role=\"presentation\" class=\"cmat-rating-half\" [ngStyle]=\"{'opacity': isIn(i)?1:0}\" (focus)=\"onFocus()\"\n (mouseover)=\"onMouseover($event, i, true)\" (click)=\"onClick($event, i, true)\">\n <mat-icon [ngClass]=\"{'text-current': !color}\" [color]=\"color\"\n [svgIcon]=\"'mat_outline:'+((!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n }\n <div role=\"presentation\" (mouseover)=\"onMouseover($event, i)\" (click)=\"onClick($event, i)\" (focus)=\"onFocus()\">\n <mat-icon [color]=\"color\" [ngClass]=\"{'text-current': !color}\"\n [svgIcon]=\"'mat_outline:'+((half && isIn(i)) || (!value || i >= value)?'star_border':'star')\">\n </mat-icon>\n </div>\n </div>\n }\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|