cmat 0.0.7 → 0.0.9
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/card/card.component.d.ts +1 -1
- package/components/cascade/cascade-list/cascade-list.component.d.ts +45 -21
- 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 +26 -0
- package/components/custom-formly/types/button/button.component.d.ts +18 -0
- package/components/custom-formly/types/cascade/cascade.component.d.ts +38 -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/color-picker/color-picker.component.d.ts +7 -0
- package/components/custom-formly/types/date-range/date-range.component.d.ts +20 -0
- package/components/custom-formly/types/datepicker/datepicker.component.d.ts +41 -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/types/upload/upload.component.d.ts +31 -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/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/popover/popover-trigger.d.ts +1 -1
- package/components/popover/popover.component.d.ts +3 -3
- package/components/rating/rating.component.d.ts +38 -9
- package/components/select-search/select-search.component.d.ts +4 -4
- package/components/select-tree/select-tree.component.d.ts +50 -21
- 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/card/card.component.mjs +5 -5
- 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/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 +27 -0
- package/esm2022/components/custom-formly/types/button/button.component.mjs +39 -0
- package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +71 -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/color-picker/color-picker.component.mjs +15 -0
- package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +25 -0
- package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +51 -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/types/upload/upload.component.mjs +58 -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/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/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 +5 -5
- package/esm2022/components/popover/popover.component.mjs +8 -9
- package/esm2022/components/popover/popover.target.mjs +3 -3
- 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/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/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 +1331 -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 +13 -14
- 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 +281 -157
- 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 +30 -18
- 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-highlight.mjs","sources":["../../../projects/cmat/components/highlight/highlight.service.ts","../../../projects/cmat/components/highlight/highlight.component.ts","../../../projects/cmat/components/highlight/highlight.component.html","../../../projects/cmat/components/highlight/cmat-components-highlight.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport hljs from 'highlight.js';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatHighlightService {\r\n highlight(code: string, language: string): string {\r\n // Format the code\r\n code = this._format(code);\r\n\r\n // Highlight and return the code\r\n return hljs.highlight(code, { language }).value;\r\n }\r\n\r\n private _format(code: string): string {\r\n let indentation = 0;\r\n\r\n // Split the code into lines and store the lines\r\n const lines = code.split('\\n');\r\n\r\n // Trim the empty lines around the code block\r\n while (lines.length && lines[0].trim() === '') {\r\n lines.shift();\r\n }\r\n\r\n while (lines.length && lines[lines.length - 1].trim() === '') {\r\n lines.pop();\r\n }\r\n\r\n // Iterate through the lines\r\n lines.filter(line => line.length)\r\n .forEach((line, index) => {\r\n\r\n // Always get the indentation of the first line so we can\r\n // have something to compare with\r\n if (index === 0) {\r\n indentation = line.search(/\\S|$/);\r\n return;\r\n }\r\n\r\n // Look at all the remaining lines to figure out the smallest indentation.\r\n indentation = Math.min(line.search(/\\S|$/), indentation);\r\n });\r\n\r\n // Iterate through the lines one more time, remove the extra\r\n // indentation, join them together and return it\r\n return lines.map(line => line.substring(indentation)).join('\\n');\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SecurityContext,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { CmatHighlightService } from './highlight.service';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'textarea[cmat-highlight]',\r\n templateUrl: './highlight.component.html',\r\n styleUrls: ['./highlight.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatHighlight',\r\n standalone: true,\r\n imports: [NgClass]\r\n})\r\nexport class CmatHighlightComponent implements OnChanges, AfterViewInit {\r\n @Input() code: string;\r\n @Input() lang: string;\r\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\r\n\r\n highlightedCode: string | null;\r\n private _viewRef: EmbeddedViewRef<any> | null;\r\n\r\n constructor(\r\n private _domSanitizer: DomSanitizer,\r\n private _elementRef: ElementRef,\r\n private _cmatHighlightService: CmatHighlightService,\r\n private _viewContainerRef: ViewContainerRef\r\n ) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // Code & Lang\r\n if ('code' in changes || 'lang' in changes) {\r\n // Return if the viewContainerRef is not available\r\n if (!this._viewContainerRef.length) {\r\n return;\r\n }\r\n\r\n // Highlight and insert the code\r\n this._highlightAndInsert();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Return if there is no language set\r\n if (!this.lang) {\r\n return;\r\n }\r\n\r\n // If there is no code input, get the code from\r\n // the textarea\r\n if (!this.code) {\r\n // Get the code\r\n this.code = this._elementRef.nativeElement.value;\r\n }\r\n\r\n // Highlight and insert\r\n this._highlightAndInsert();\r\n }\r\n\r\n private _highlightAndInsert(): void {\r\n // Return if the template reference is not available\r\n if (!this.templateRef) {\r\n return;\r\n }\r\n\r\n // Return if the code or language is not defined\r\n if (!this.code || !this.lang) {\r\n return;\r\n }\r\n\r\n // Destroy the component if there is already one\r\n if (this._viewRef) {\r\n this._viewRef.destroy();\r\n this._viewRef = null;\r\n }\r\n\r\n // Highlight and sanitize the code just in case\r\n this.highlightedCode = this._domSanitizer.sanitize(SecurityContext.HTML, this._cmatHighlightService.highlight(this.code, this.lang));\r\n\r\n // Return if the highlighted code is null\r\n if (this.highlightedCode === null) {\r\n return;\r\n }\r\n\r\n // Render and insert the template\r\n this._viewRef = this._viewContainerRef.createEmbeddedView(this.templateRef, {\r\n highlightedCode: this.highlightedCode,\r\n lang: this.lang\r\n });\r\n\r\n // Detect the changes\r\n this._viewRef.detectChanges();\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n<ng-template let-highlightedCode=\"highlightedCode\" let-lang=\"lang\">\r\n <div class=\"cmat-highlight cmat-highlight-code-container\">\r\n <pre [ngClass]=\"'language-' + lang\"><code [ngClass]=\"'language-' + lang\" [innerHTML]=\"highlightedCode\"></code>\r\n </pre>\r\n </div>\r\n</ng-template>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.CmatHighlightService"],"mappings":";;;;;;MAMa,oBAAoB,CAAA;IAC7B,SAAS,CAAC,IAAY,EAAE,QAAgB,EAAA;;AAEpC,QAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;AAG1B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC;KACnD;AAEO,IAAA,OAAO,CAAC,IAAY,EAAA;QACxB,IAAI,WAAW,GAAG,CAAC,CAAC;;QAGpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;AAG/B,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3C,KAAK,CAAC,KAAK,EAAE,CAAC;AACjB,SAAA;AAED,QAAA,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC1D,KAAK,CAAC,GAAG,EAAE,CAAC;AACf,SAAA;;QAGD,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;AAC5B,aAAA,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;;;YAIrB,IAAI,KAAK,KAAK,CAAC,EAAE;AACb,gBAAA,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClC,OAAO;AACV,aAAA;;AAGD,YAAA,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;AAC7D,SAAC,CAAC,CAAC;;;QAIP,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpE;8GA1CQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCwBY,sBAAsB,CAAA;AAQ/B,IAAA,WAAA,CACY,aAA2B,EAC3B,WAAuB,EACvB,qBAA2C,EAC3C,iBAAmC,EAAA;QAHnC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAc;QAC3B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACvB,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAsB;QAC3C,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;KAE9C;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;;AAE9B,QAAA,IAAI,MAAM,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,EAAE;;AAExC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;gBAChC,OAAO;AACV,aAAA;;YAGD,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,SAAA;KACJ;IAED,eAAe,GAAA;;AAEX,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO;AACV,SAAA;;;AAID,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;;YAEZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC;AACpD,SAAA;;QAGD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IAEO,mBAAmB,GAAA;;AAEvB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;AACV,SAAA;;QAGD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAC1B,OAAO;AACV,SAAA;;QAGD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,SAAA;;AAGD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;AAGrI,QAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;YAC/B,OAAO;AACV,SAAA;;AAGD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE;YACxE,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;AAClB,SAAA,CAAC,CAAC;;AAGH,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;KACjC;8GA/EQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAGpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAW,EChC1B,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gWAOc,kGDoBA,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAER,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGrB,aAAA,EAAA,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EACrC,eAAe,EACb,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,gWAAA,EAAA,MAAA,EAAA,CAAA,0CAAA,CAAA,EAAA,CAAA;yKAGT,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACkB,WAAW,EAAA,CAAA;sBAAlC,SAAS;uBAAC,WAAW,CAAA;;;AEhC1B;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"cmat-components-highlight.mjs","sources":["../../../projects/cmat/components/highlight/highlight.service.ts","../../../projects/cmat/components/highlight/highlight.component.ts","../../../projects/cmat/components/highlight/highlight.component.html","../../../projects/cmat/components/highlight/cmat-components-highlight.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport hljs from 'highlight.js';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatHighlightService {\r\n highlight(code: string, language: string): string {\r\n // Format the code\r\n code = this._format(code);\r\n\r\n // Highlight and return the code\r\n return hljs.highlight(code, { language }).value;\r\n }\r\n\r\n private _format(code: string): string {\r\n let indentation = 0;\r\n\r\n // Split the code into lines and store the lines\r\n const lines = code.split('\\n');\r\n\r\n // Trim the empty lines around the code block\r\n while (lines.length && lines[0].trim() === '') {\r\n lines.shift();\r\n }\r\n\r\n while (lines.length && lines[lines.length - 1].trim() === '') {\r\n lines.pop();\r\n }\r\n\r\n // Iterate through the lines\r\n lines.filter(line => line.length)\r\n .forEach((line, index) => {\r\n\r\n // Always get the indentation of the first line so we can\r\n // have something to compare with\r\n if (index === 0) {\r\n indentation = line.search(/\\S|$/);\r\n return;\r\n }\r\n\r\n // Look at all the remaining lines to figure out the smallest indentation.\r\n indentation = Math.min(line.search(/\\S|$/), indentation);\r\n });\r\n\r\n // Iterate through the lines one more time, remove the extra\r\n // indentation, join them together and return it\r\n return lines.map(line => line.substring(indentation)).join('\\n');\r\n }\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EmbeddedViewRef,\r\n Input,\r\n OnChanges,\r\n SecurityContext,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ViewContainerRef,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { CmatHighlightService } from './highlight.service';\r\n\r\n@Component({\r\n selector: 'textarea[cmat-highlight]',\r\n templateUrl: './highlight.component.html',\r\n styleUrls: ['./highlight.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatHighlight',\r\n standalone: true,\r\n imports: [NgClass]\r\n})\r\nexport class CmatHighlightComponent implements OnChanges, AfterViewInit {\r\n @Input() code: string;\r\n @Input() lang: string;\r\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\r\n\r\n highlightedCode: string | null;\r\n private _viewRef: EmbeddedViewRef<any> | null;\r\n\r\n constructor(\r\n private _domSanitizer: DomSanitizer,\r\n private _elementRef: ElementRef,\r\n private _cmatHighlightService: CmatHighlightService,\r\n private _viewContainerRef: ViewContainerRef\r\n ) {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // Code & Lang\r\n if ('code' in changes || 'lang' in changes) {\r\n // Return if the viewContainerRef is not available\r\n if (!this._viewContainerRef.length) {\r\n return;\r\n }\r\n\r\n // Highlight and insert the code\r\n this._highlightAndInsert();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Return if there is no language set\r\n if (!this.lang) {\r\n return;\r\n }\r\n\r\n // If there is no code input, get the code from\r\n // the textarea\r\n if (!this.code) {\r\n // Get the code\r\n this.code = this._elementRef.nativeElement.value;\r\n }\r\n\r\n // Highlight and insert\r\n this._highlightAndInsert();\r\n }\r\n\r\n private _highlightAndInsert(): void {\r\n // Return if the template reference is not available\r\n if (!this.templateRef) {\r\n return;\r\n }\r\n\r\n // Return if the code or language is not defined\r\n if (!this.code || !this.lang) {\r\n return;\r\n }\r\n\r\n // Destroy the component if there is already one\r\n if (this._viewRef) {\r\n this._viewRef.destroy();\r\n this._viewRef = null;\r\n }\r\n\r\n // Highlight and sanitize the code just in case\r\n this.highlightedCode = this._domSanitizer.sanitize(SecurityContext.HTML, this._cmatHighlightService.highlight(this.code, this.lang));\r\n\r\n // Return if the highlighted code is null\r\n if (this.highlightedCode === null) {\r\n return;\r\n }\r\n\r\n // Render and insert the template\r\n this._viewRef = this._viewContainerRef.createEmbeddedView(this.templateRef, {\r\n highlightedCode: this.highlightedCode,\r\n lang: this.lang\r\n });\r\n\r\n // Detect the changes\r\n this._viewRef.detectChanges();\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n<ng-template let-highlightedCode=\"highlightedCode\" let-lang=\"lang\">\r\n <div class=\"cmat-highlight cmat-highlight-code-container\">\r\n <pre [ngClass]=\"'language-' + lang\"><code [ngClass]=\"'language-' + lang\" [innerHTML]=\"highlightedCode\"></code>\r\n </pre>\r\n </div>\r\n</ng-template>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.CmatHighlightService"],"mappings":"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"}
|
|
@@ -156,10 +156,10 @@ class CmatJsonEditorComponent {
|
|
|
156
156
|
this.pathChanged.emit(st);
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
160
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatJsonEditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
160
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: CmatJsonEditorComponent, isStandalone: true, selector: "cmat-json-editor", inputs: { options: "options", data: "data" }, outputs: { contentChanged: "contentChanged", pathChanged: "pathChanged" }, viewQueries: [{ propertyName: "jsonEditorContainer", first: true, predicate: ["jsonEditorContainer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: '<div class="cmat-jsoneditor" [id]="id" #jsonEditorContainer></div>', isInline: true, styles: [".cmat-jsoneditor .jse-main.svelte-sxaskb{min-height:24rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
161
161
|
}
|
|
162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatJsonEditorComponent, decorators: [{
|
|
163
163
|
type: Component,
|
|
164
164
|
args: [{ selector: 'cmat-json-editor', template: '<div class="cmat-jsoneditor" [id]="id" #jsonEditorContainer></div>', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [], styles: [".cmat-jsoneditor .jse-main.svelte-sxaskb{min-height:24rem}\n"] }]
|
|
165
165
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { jsonEditorContainer: [{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
3
|
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
3
4
|
import { cmatAnimations } from 'cmat/animations';
|
|
4
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
5
5
|
|
|
6
6
|
class CmatMasonryComponent {
|
|
7
7
|
constructor() {
|
|
@@ -37,10 +37,10 @@ class CmatMasonryComponent {
|
|
|
37
37
|
this.distributedColumns[i % this.columns].items.push(this.items[i]);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
41
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatMasonryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: CmatMasonryComponent, isStandalone: true, selector: "cmat-masonry", inputs: { columnsTemplate: "columnsTemplate", columns: "columns", items: "items" }, exportAs: ["cmatMasonry"], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex p-2\">\r\n <ng-container *ngTemplateOutlet=\"columnsTemplate; context: { $implicit: distributedColumns }\"></ng-container>\r\n</div>", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
42
42
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatMasonryComponent, decorators: [{
|
|
44
44
|
type: Component,
|
|
45
45
|
args: [{ selector: 'cmat-masonry', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: cmatAnimations, exportAs: 'cmatMasonry', standalone: true, imports: [NgTemplateOutlet], template: "<div class=\"flex p-2\">\r\n <ng-container *ngTemplateOutlet=\"columnsTemplate; context: { $implicit: distributedColumns }\"></ng-container>\r\n</div>" }]
|
|
46
46
|
}], propDecorators: { columnsTemplate: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-masonry.mjs","sources":["../../../projects/cmat/components/masonry/masonry.component.ts","../../../projects/cmat/components/masonry/masonry.component.html","../../../projects/cmat/components/masonry/cmat-components-masonry.ts"],"sourcesContent":["import {AfterViewInit, ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges, TemplateRef, ViewEncapsulation} from '@angular/core';\r\nimport {cmatAnimations} from 'cmat/animations';\r\
|
|
1
|
+
{"version":3,"file":"cmat-components-masonry.mjs","sources":["../../../projects/cmat/components/masonry/masonry.component.ts","../../../projects/cmat/components/masonry/masonry.component.html","../../../projects/cmat/components/masonry/cmat-components-masonry.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\r\nimport {AfterViewInit, ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges, TemplateRef, ViewEncapsulation} from '@angular/core';\r\nimport {cmatAnimations} from 'cmat/animations';\r\n\r\n@Component({\r\n selector: 'cmat-masonry',\r\n templateUrl: './masonry.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: cmatAnimations,\r\n exportAs: 'cmatMasonry',\r\n standalone: true,\r\n imports: [NgTemplateOutlet]\r\n})\r\nexport class CmatMasonryComponent implements OnChanges, AfterViewInit {\r\n @Input({ required: true }) columnsTemplate: TemplateRef<any>;\r\n @Input({ required: true }) columns: number;\r\n @Input() items: any[] = [];\r\n distributedColumns: any[] = [];\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // Columns\r\n if ('columns' in changes) {\r\n // Distribute the items\r\n this._distributeItems();\r\n }\r\n\r\n // Items\r\n if ('items' in changes) {\r\n // Distribute the items\r\n this._distributeItems();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n // Distribute the items for the first time\r\n this._distributeItems();\r\n }\r\n\r\n private _distributeItems(): void {\r\n // Return an empty array if there are no items\r\n if (this.items.length === 0) {\r\n this.distributedColumns = [];\r\n return;\r\n }\r\n\r\n // Prepare the distributed columns array\r\n this.distributedColumns = Array.from(Array(this.columns), () => ({items: []}));\r\n\r\n // Distribute the items to columns\r\n for (let i = 0; i < this.items.length; i++) {\r\n this.distributedColumns[i % this.columns].items.push(this.items[i]);\r\n }\r\n }\r\n}\r\n","<div class=\"flex p-2\">\r\n <ng-container *ngTemplateOutlet=\"columnsTemplate; context: { $implicit: distributedColumns }\"></ng-container>\r\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAca,oBAAoB,CAAA;AAVjC,IAAA,WAAA,GAAA;QAaa,IAAK,CAAA,KAAA,GAAU,EAAE,CAAC;QAC3B,IAAkB,CAAA,kBAAA,GAAU,EAAE,CAAC;AAoClC,KAAA;AAlCG,IAAA,WAAW,CAAC,OAAsB,EAAA;;QAE9B,IAAI,SAAS,IAAI,OAAO,EAAE;;YAEtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;;QAGD,IAAI,OAAO,IAAI,OAAO,EAAE;;YAEpB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;KACJ;IAED,eAAe,GAAA;;QAEX,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IAEO,gBAAgB,GAAA;;AAEpB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,OAAO;AACV,SAAA;;QAGD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;;AAG/E,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,SAAA;KACJ;8GAvCQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,ECdjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2JAEM,EDUQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,sIAHd,cAAc,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAKjB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,iBAET,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,cAAc,YAChB,aAAa,EAAA,UAAA,EACX,IAAI,EACP,OAAA,EAAA,CAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,2JAAA,EAAA,CAAA;8BAGA,eAAe,EAAA,CAAA;sBAAzC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBACE,OAAO,EAAA,CAAA;sBAAjC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAChB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AEjBV;;AAEG;;;;"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
3
|
import { forwardRef, EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Output, Input } from '@angular/core';
|
|
3
|
-
import { cmatAnimations } from 'cmat/animations';
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
|
-
import * as i5 from '@angular/material/tooltip';
|
|
6
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
7
5
|
import * as i4 from '@angular/material/button';
|
|
8
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
9
7
|
import * as i3 from '@angular/material/icon';
|
|
10
8
|
import { MatIconModule } from '@angular/material/icon';
|
|
11
9
|
import * as i1 from '@angular/material/select';
|
|
12
10
|
import { MatSelectModule } from '@angular/material/select';
|
|
13
|
-
import
|
|
11
|
+
import * as i5 from '@angular/material/tooltip';
|
|
12
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
13
|
+
import { cmatAnimations } from 'cmat/animations';
|
|
14
14
|
import * as i2 from '@angular/material/core';
|
|
15
15
|
|
|
16
16
|
const baseColors = [
|
|
@@ -26,14 +26,14 @@ const baseColors = [
|
|
|
26
26
|
'bg-pink'
|
|
27
27
|
];
|
|
28
28
|
|
|
29
|
-
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
30
29
|
const CMAT_MATERIAL_COLOR_PICKER_VALUE_ACCESSOR = {
|
|
31
30
|
provide: NG_VALUE_ACCESSOR,
|
|
32
31
|
useExisting: forwardRef(() => CmatMaterialColorPickerComponent),
|
|
33
32
|
multi: true
|
|
34
33
|
};
|
|
35
34
|
class CmatMaterialColorPickerComponent {
|
|
36
|
-
constructor() {
|
|
35
|
+
constructor(_changeDetectorRef) {
|
|
36
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
37
37
|
// Set the defaults
|
|
38
38
|
this.colorChanged = new EventEmitter();
|
|
39
39
|
this.palettes = baseColors;
|
|
@@ -70,6 +70,13 @@ class CmatMaterialColorPickerComponent {
|
|
|
70
70
|
set title(value) {
|
|
71
71
|
this._title = value;
|
|
72
72
|
}
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
74
|
+
get readonly() {
|
|
75
|
+
return this._readonly;
|
|
76
|
+
}
|
|
77
|
+
set readonly(value) {
|
|
78
|
+
this._readonly = value;
|
|
79
|
+
}
|
|
73
80
|
registerOnChange(fn) {
|
|
74
81
|
this._modelChange = fn;
|
|
75
82
|
}
|
|
@@ -123,6 +130,7 @@ class CmatMaterialColorPickerComponent {
|
|
|
123
130
|
this._modelTouched(this.selectedColor.color);
|
|
124
131
|
// Update the model
|
|
125
132
|
this._modelChange(this.selectedColor.color);
|
|
133
|
+
this._changeDetectorRef.markForCheck();
|
|
126
134
|
}
|
|
127
135
|
goToPalettesView() {
|
|
128
136
|
this.view = 'palettes';
|
|
@@ -135,18 +143,20 @@ class CmatMaterialColorPickerComponent {
|
|
|
135
143
|
trackByFn(index, item) {
|
|
136
144
|
return index || item;
|
|
137
145
|
}
|
|
138
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.
|
|
139
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatMaterialColorPickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
147
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.7", type: CmatMaterialColorPickerComponent, isStandalone: true, selector: "cmat-material-color-picker", inputs: { color: "color", title: "title", readonly: "readonly" }, outputs: { colorChanged: "colorChanged" }, providers: [CMAT_MATERIAL_COLOR_PICKER_VALUE_ACCESSOR], exportAs: ["cmatMaterialColorPicker"], ngImport: i0, template: "<div class=\"rounded\" [ngClass]=\"selectedColor.color\">\n <mat-select value=\"init\" [disableOptionCentering]=\"true\" [hideSingleSelectionIndicator]=\"true\" [disabled]=\"readonly\"\n (openedChange)=\"onMenuOpen($event)\" panelClass=\"min-w-64\">\n <mat-select-trigger class=\"flex p-1\">\n <mat-icon [svgIcon]=\"'heroicons_outline:paint-brush'\"></mat-icon>\n </mat-select-trigger>\n\n <header [ngClass]=\"'accent'\" class=\"shadow flex flex-row content-between justify-between p-2\">\n <button type=\"button\" mat-icon-button class=\"secondary-text\" [class.invisible]=\"view === 'palettes'\"\n (click)=\"goToPalettesView()\" aria-label=\"\u8C03\u8272\u677F\">\n <mat-icon svgIcon=\"mat_outline:arrow_back\"></mat-icon>\n </button>\n <span class=\"align-middle leading-loose text-xl font-bold\">{{title}}</span>\n <button type=\"button\" mat-icon-button class=\"remove-color-button secondary-text\" (click)=\"removeColor()\"\n aria-label=\"\u79FB\u9664\u989C\u8272\" matTooltip=\"\u79FB\u9664\u989C\u8272\">\n <mat-icon color=\"warn\" [svgIcon]=\"'mat_outline:cleaning_services'\"></mat-icon>\n </button>\n </header>\n\n <div class=\"flex flex-wrap w-60 m-2\">\n <mat-option value=\"init\" class=\"hidden\">\u521D\u59CB\u5316</mat-option>\n <div>\n @switch (view) {\n @case ('palettes') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (palette of palettes; track trackByFn($index, palette)) {\n <div role=\"presentation\"\n class=\"cursor-pointer\" (click)=\"selectPalette(palette)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedPalette\">\n @if (selectedColor.color===palette + '-' + selectedHue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"palette + '-' + selectedHue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n @case ('hues') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (hue of hues; track trackByFn($index, hue)) {\n <div role=\"presentation\" class=\"cursor-pointer\"\n (click)=\"selectHue(hue)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedHue\">\n @if (selectedColor.color===selectedPalette + '-' + hue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"selectedPalette + '-' + hue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </mat-select>\n</div>", styles: ["cmat-material-color-picker .mat-mdc-select-arrow-wrapper{display:none!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], animations: cmatAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
140
148
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CmatMaterialColorPickerComponent, decorators: [{
|
|
142
150
|
type: Component,
|
|
143
|
-
args: [{ selector: 'cmat-material-color-picker', animations: cmatAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatMaterialColorPicker', providers: [CMAT_MATERIAL_COLOR_PICKER_VALUE_ACCESSOR], standalone: true, imports: [NgClass, MatSelectModule, MatIconModule, MatButtonModule, MatTooltipModule], template: "<div class=\"rounded\" [ngClass]=\"selectedColor.color\">\n <mat-select value=\"init\" [disableOptionCentering]=\"true\" [hideSingleSelectionIndicator]=\"true\"\n (openedChange)=\"onMenuOpen($event)\" panelClass=\"min-w-64\">\n <mat-select-trigger class=\"flex p-1\">\n <mat-icon [svgIcon]=\"'heroicons_outline:paint-brush'\"></mat-icon>\n </mat-select-trigger>\n\n <header [ngClass]=\"'accent'\" class=\"shadow flex flex-row content-between justify-between p-2\">\n <button type=\"button\" mat-icon-button class=\"secondary-text\" [class.invisible]=\"view === 'palettes'\"\n (click)=\"goToPalettesView()\" aria-label=\"\u8C03\u8272\u677F\">\n <mat-icon svgIcon=\"mat_outline:arrow_back\"></mat-icon>\n </button>\n <span class=\"align-middle leading-loose text-xl font-bold\">{{title}}</span>\n <button type=\"button\" mat-icon-button class=\"remove-color-button secondary-text\" (click)=\"removeColor()\"\n aria-label=\"\u79FB\u9664\u989C\u8272\" matTooltip=\"\u79FB\u9664\u989C\u8272\">\n <mat-icon color=\"warn\" [svgIcon]=\"'mat_outline:cleaning_services'\"></mat-icon>\n </button>\n </header>\n\n <div class=\"flex flex-wrap w-60 m-2\">\n <mat-option value=\"init\" class=\"hidden\">\u521D\u59CB\u5316</mat-option>\n <div>\n @switch (view) {\n @case ('palettes') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (palette of palettes; track trackByFn($index, palette)) {\n <div role=\"presentation\"\n class=\"cursor-pointer\" (click)=\"selectPalette(palette)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedPalette\">\n @if (selectedColor.color===palette + '-' + selectedHue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"palette + '-' + selectedHue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n @case ('hues') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (hue of hues; track trackByFn($index, hue)) {\n <div role=\"presentation\" class=\"cursor-pointer\"\n (click)=\"selectHue(hue)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedHue\">\n @if (selectedColor.color===selectedPalette + '-' + hue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"selectedPalette + '-' + hue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </mat-select>\n</div>", styles: ["cmat-material-color-picker .mat-mdc-select-arrow-wrapper{display:none!important}\n"] }]
|
|
144
|
-
}], ctorParameters: () => [], propDecorators: { colorChanged: [{
|
|
151
|
+
args: [{ selector: 'cmat-material-color-picker', animations: cmatAnimations, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatMaterialColorPicker', providers: [CMAT_MATERIAL_COLOR_PICKER_VALUE_ACCESSOR], standalone: true, imports: [NgClass, MatSelectModule, MatIconModule, MatButtonModule, MatTooltipModule], template: "<div class=\"rounded\" [ngClass]=\"selectedColor.color\">\n <mat-select value=\"init\" [disableOptionCentering]=\"true\" [hideSingleSelectionIndicator]=\"true\" [disabled]=\"readonly\"\n (openedChange)=\"onMenuOpen($event)\" panelClass=\"min-w-64\">\n <mat-select-trigger class=\"flex p-1\">\n <mat-icon [svgIcon]=\"'heroicons_outline:paint-brush'\"></mat-icon>\n </mat-select-trigger>\n\n <header [ngClass]=\"'accent'\" class=\"shadow flex flex-row content-between justify-between p-2\">\n <button type=\"button\" mat-icon-button class=\"secondary-text\" [class.invisible]=\"view === 'palettes'\"\n (click)=\"goToPalettesView()\" aria-label=\"\u8C03\u8272\u677F\">\n <mat-icon svgIcon=\"mat_outline:arrow_back\"></mat-icon>\n </button>\n <span class=\"align-middle leading-loose text-xl font-bold\">{{title}}</span>\n <button type=\"button\" mat-icon-button class=\"remove-color-button secondary-text\" (click)=\"removeColor()\"\n aria-label=\"\u79FB\u9664\u989C\u8272\" matTooltip=\"\u79FB\u9664\u989C\u8272\">\n <mat-icon color=\"warn\" [svgIcon]=\"'mat_outline:cleaning_services'\"></mat-icon>\n </button>\n </header>\n\n <div class=\"flex flex-wrap w-60 m-2\">\n <mat-option value=\"init\" class=\"hidden\">\u521D\u59CB\u5316</mat-option>\n <div>\n @switch (view) {\n @case ('palettes') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (palette of palettes; track trackByFn($index, palette)) {\n <div role=\"presentation\"\n class=\"cursor-pointer\" (click)=\"selectPalette(palette)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedPalette\">\n @if (selectedColor.color===palette + '-' + selectedHue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"palette + '-' + selectedHue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n @case ('hues') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (hue of hues; track trackByFn($index, hue)) {\n <div role=\"presentation\" class=\"cursor-pointer\"\n (click)=\"selectHue(hue)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedHue\">\n @if (selectedColor.color===selectedPalette + '-' + hue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"selectedPalette + '-' + hue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </mat-select>\n</div>", styles: ["cmat-material-color-picker .mat-mdc-select-arrow-wrapper{display:none!important}\n"] }]
|
|
152
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { colorChanged: [{
|
|
145
153
|
type: Output
|
|
146
154
|
}], color: [{
|
|
147
155
|
type: Input
|
|
148
156
|
}], title: [{
|
|
149
157
|
type: Input
|
|
158
|
+
}], readonly: [{
|
|
159
|
+
type: Input
|
|
150
160
|
}] } });
|
|
151
161
|
|
|
152
162
|
class CmatSelectedColor {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmat-components-material-color-picker.mjs","sources":["../../../projects/cmat/components/material-color-picker/base-color.ts","../../../projects/cmat/components/material-color-picker/material-color-picker.component.ts","../../../projects/cmat/components/material-color-picker/material-color-picker.component.html","../../../projects/cmat/components/material-color-picker/selected-color.ts","../../../projects/cmat/components/material-color-picker/cmat-components-material-color-picker.ts"],"sourcesContent":["export const baseColors = [\r\n 'bg-slate',\r\n 'bg-red',\r\n 'bg-amber',\r\n 'bg-orange',\r\n 'bg-emerald',\r\n 'bg-teal',\r\n 'bg-blue',\r\n 'bg-indigo',\r\n 'bg-violet',\r\n 'bg-pink'\r\n];\r\n","/* eslint-disable @typescript-eslint/no-empty-function */\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewEncapsulation } from '@angular/core';\r\n\r\nimport { cmatAnimations } from 'cmat/animations';\r\nimport { CmatSelectedColor } from './selected-color';\r\nimport { baseColors } from './base-color';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { NgClass } from '@angular/common';\r\n\r\nexport const CMAT_MATERIAL_COLOR_PICKER_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CmatMaterialColorPickerComponent),\r\n multi: true\r\n};\r\n\r\n\r\n@Component({\r\n selector: 'cmat-material-color-picker',\r\n templateUrl: './material-color-picker.component.html',\r\n styleUrls: ['./material-color-picker.component.scss'],\r\n animations: cmatAnimations,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatMaterialColorPicker',\r\n providers: [CMAT_MATERIAL_COLOR_PICKER_VALUE_ACCESSOR],\r\n standalone: true,\r\n imports: [NgClass, MatSelectModule, MatIconModule, MatButtonModule, MatTooltipModule]\r\n})\r\nexport class CmatMaterialColorPickerComponent implements ControlValueAccessor {\r\n // Color changed\r\n @Output()\r\n colorChanged: EventEmitter<any>;\r\n\r\n palettes: string[];\r\n hues: string[];\r\n view: string;\r\n selectedColor: CmatSelectedColor;\r\n selectedPalette: string;\r\n selectedHue: string;\r\n\r\n // Private\r\n private _color: string;\r\n private _title: string;\r\n private _modelChange: (value: any) => void;\r\n private _modelTouched: (value: any) => void;\r\n\r\n constructor() {\r\n // Set the defaults\r\n this.colorChanged = new EventEmitter();\r\n this.palettes = baseColors;\r\n this.hues = ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\r\n this.selectedHue = '500';\r\n this.selectedPalette = 'bg-indigo';\r\n this.view = 'palettes';\r\n\r\n this._modelChange = (): any => { };\r\n this._modelTouched = (): any => { };\r\n\r\n this.updateSelectedColor();\r\n }\r\n\r\n get color(): string {\r\n return this._color;\r\n }\r\n\r\n @Input()\r\n set color(value) {\r\n if (!value || value === '' || this._color === value) {\r\n return;\r\n }\r\n\r\n // Split the color value (bg-red-400, bg-blue-500 etc.)\r\n const colorParts = value.split('-');\r\n\r\n // Take the very last part as the selected hue value\r\n this.selectedHue = colorParts[colorParts.length - 1];\r\n\r\n // Remove the last part\r\n colorParts.pop();\r\n\r\n // Rejoin the remaining parts as the selected palette name\r\n this.selectedPalette = colorParts.join('-');\r\n\r\n // Update the selected color\r\n this.updateSelectedColor();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get title(): string {\r\n return this._title;\r\n }\r\n\r\n @Input()\r\n set title(value) {\r\n this._title = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._modelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._modelTouched = fn;\r\n }\r\n\r\n writeValue(color: any): void {\r\n // Return if null\r\n if (!color) {\r\n return;\r\n }\r\n\r\n // Set the color\r\n this.color = color;\r\n }\r\n\r\n selectPalette(palette: string): void {\r\n // Go to 'hues' view\r\n this.view = 'hues';\r\n\r\n // Update the selected palette\r\n this.selectedPalette = palette;\r\n\r\n // Update the selected color\r\n this.updateSelectedColor();\r\n }\r\n\r\n selectHue(hue: string): void {\r\n // Update the selected hue\r\n this.selectedHue = hue;\r\n\r\n // Update the selected color\r\n this.updateSelectedColor();\r\n }\r\n\r\n removeColor(): void {\r\n // Return to the 'palettes' view\r\n this.view = 'palettes';\r\n\r\n // Clear the selected palette and hue\r\n this.selectedPalette = 'bg-indigo';\r\n this.selectedHue = '500';\r\n\r\n // Update the selected color\r\n this.updateSelectedColor();\r\n }\r\n\r\n updateSelectedColor(): void {\r\n if (this.selectedColor && this.selectedColor.palette === this.selectedPalette && this.selectedColor.hue === this.selectedHue) {\r\n return;\r\n }\r\n\r\n // Set the selected color object\r\n this.selectedColor = {\r\n palette: this.selectedPalette,\r\n hue: this.selectedHue,\r\n color: this.selectedPalette + '-' + this.selectedHue\r\n };\r\n\r\n this._color = this.selectedColor.color;\r\n\r\n this.colorChanged.emit(this.selectedColor);\r\n\r\n // Mark the model as touched\r\n this._modelTouched(this.selectedColor.color);\r\n\r\n // Update the model\r\n this._modelChange(this.selectedColor.color);\r\n\r\n }\r\n\r\n goToPalettesView(): void {\r\n this.view = 'palettes';\r\n }\r\n\r\n onMenuOpen(opened: boolean): void {\r\n if (opened) {\r\n this.view = 'hues';\r\n }\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return index || item;\r\n }\r\n}\r\n","<div class=\"rounded\" [ngClass]=\"selectedColor.color\">\n <mat-select value=\"init\" [disableOptionCentering]=\"true\" [hideSingleSelectionIndicator]=\"true\"\n (openedChange)=\"onMenuOpen($event)\" panelClass=\"min-w-64\">\n <mat-select-trigger class=\"flex p-1\">\n <mat-icon [svgIcon]=\"'heroicons_outline:paint-brush'\"></mat-icon>\n </mat-select-trigger>\n\n <header [ngClass]=\"'accent'\" class=\"shadow flex flex-row content-between justify-between p-2\">\n <button type=\"button\" mat-icon-button class=\"secondary-text\" [class.invisible]=\"view === 'palettes'\"\n (click)=\"goToPalettesView()\" aria-label=\"调色板\">\n <mat-icon svgIcon=\"mat_outline:arrow_back\"></mat-icon>\n </button>\n <span class=\"align-middle leading-loose text-xl font-bold\">{{title}}</span>\n <button type=\"button\" mat-icon-button class=\"remove-color-button secondary-text\" (click)=\"removeColor()\"\n aria-label=\"移除颜色\" matTooltip=\"移除颜色\">\n <mat-icon color=\"warn\" [svgIcon]=\"'mat_outline:cleaning_services'\"></mat-icon>\n </button>\n </header>\n\n <div class=\"flex flex-wrap w-60 m-2\">\n <mat-option value=\"init\" class=\"hidden\">初始化</mat-option>\n <div>\n @switch (view) {\n @case ('palettes') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (palette of palettes; track trackByFn($index, palette)) {\n <div role=\"presentation\"\n class=\"cursor-pointer\" (click)=\"selectPalette(palette)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedPalette\">\n @if (selectedColor.color===palette + '-' + selectedHue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"palette + '-' + selectedHue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n @case ('hues') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (hue of hues; track trackByFn($index, hue)) {\n <div role=\"presentation\" class=\"cursor-pointer\"\n (click)=\"selectHue(hue)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedHue\">\n @if (selectedColor.color===selectedPalette + '-' + hue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"selectedPalette + '-' + hue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </mat-select>\n</div>","export class CmatSelectedColor {\r\n palette: string;\r\n hue: string;\r\n color: string;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cmat-components-material-color-picker.mjs","sources":["../../../projects/cmat/components/material-color-picker/base-color.ts","../../../projects/cmat/components/material-color-picker/material-color-picker.component.ts","../../../projects/cmat/components/material-color-picker/material-color-picker.component.html","../../../projects/cmat/components/material-color-picker/selected-color.ts","../../../projects/cmat/components/material-color-picker/cmat-components-material-color-picker.ts"],"sourcesContent":["export const baseColors = [\r\n 'bg-slate',\r\n 'bg-red',\r\n 'bg-amber',\r\n 'bg-orange',\r\n 'bg-emerald',\r\n 'bg-teal',\r\n 'bg-blue',\r\n 'bg-indigo',\r\n 'bg-violet',\r\n 'bg-pink'\r\n];\r\n","import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, forwardRef, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { cmatAnimations } from 'cmat/animations';\r\nimport { baseColors } from './base-color';\r\nimport { CmatSelectedColor } from './selected-color';\r\n\r\nexport const CMAT_MATERIAL_COLOR_PICKER_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CmatMaterialColorPickerComponent),\r\n multi: true\r\n};\r\n\r\n\r\n@Component({\r\n selector: 'cmat-material-color-picker',\r\n templateUrl: './material-color-picker.component.html',\r\n styleUrls: ['./material-color-picker.component.scss'],\r\n animations: cmatAnimations,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatMaterialColorPicker',\r\n providers: [CMAT_MATERIAL_COLOR_PICKER_VALUE_ACCESSOR],\r\n standalone: true,\r\n imports: [NgClass, MatSelectModule, MatIconModule, MatButtonModule, MatTooltipModule]\r\n})\r\nexport class CmatMaterialColorPickerComponent implements ControlValueAccessor {\r\n // Color changed\r\n @Output()\r\n colorChanged: EventEmitter<any>;\r\n\r\n palettes: string[];\r\n hues: string[];\r\n view: string;\r\n selectedColor: CmatSelectedColor;\r\n selectedPalette: string;\r\n selectedHue: string;\r\n\r\n // Private\r\n private _color: string;\r\n private _title: string;\r\n private _readonly:boolean;\r\n private _modelChange: (value: any) => void;\r\n private _modelTouched: (value: any) => void;\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) {\r\n // Set the defaults\r\n this.colorChanged = new EventEmitter();\r\n this.palettes = baseColors;\r\n this.hues = ['50', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\r\n this.selectedHue = '500';\r\n this.selectedPalette = 'bg-indigo';\r\n this.view = 'palettes';\r\n\r\n this._modelChange = (): any => { };\r\n this._modelTouched = (): any => { };\r\n\r\n this.updateSelectedColor();\r\n }\r\n\r\n get color(): string {\r\n return this._color;\r\n }\r\n\r\n @Input()\r\n set color(value) {\r\n if (!value || value === '' || this._color === value) {\r\n return;\r\n }\r\n\r\n // Split the color value (bg-red-400, bg-blue-500 etc.)\r\n const colorParts = value.split('-');\r\n\r\n // Take the very last part as the selected hue value\r\n this.selectedHue = colorParts[colorParts.length - 1];\r\n\r\n // Remove the last part\r\n colorParts.pop();\r\n\r\n // Rejoin the remaining parts as the selected palette name\r\n this.selectedPalette = colorParts.join('-');\r\n\r\n // Update the selected color\r\n this.updateSelectedColor();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get title(): string {\r\n return this._title;\r\n }\r\n\r\n @Input()\r\n set title(value) {\r\n this._title = value;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n get readonly(): boolean {\r\n return this._readonly;\r\n }\r\n\r\n @Input()\r\n set readonly(value) {\r\n this._readonly = value;\r\n }\r\n \r\n\r\n registerOnChange(fn: any): void {\r\n this._modelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._modelTouched = fn;\r\n }\r\n\r\n writeValue(color: any): void {\r\n // Return if null\r\n if (!color) {\r\n return;\r\n }\r\n\r\n // Set the color\r\n this.color = color;\r\n }\r\n\r\n selectPalette(palette: string): void {\r\n // Go to 'hues' view\r\n this.view = 'hues';\r\n\r\n // Update the selected palette\r\n this.selectedPalette = palette;\r\n\r\n // Update the selected color\r\n this.updateSelectedColor();\r\n }\r\n\r\n selectHue(hue: string): void {\r\n // Update the selected hue\r\n this.selectedHue = hue;\r\n\r\n // Update the selected color\r\n this.updateSelectedColor();\r\n }\r\n\r\n removeColor(): void {\r\n // Return to the 'palettes' view\r\n this.view = 'palettes';\r\n\r\n // Clear the selected palette and hue\r\n this.selectedPalette = 'bg-indigo';\r\n this.selectedHue = '500';\r\n\r\n // Update the selected color\r\n this.updateSelectedColor();\r\n }\r\n\r\n updateSelectedColor(): void {\r\n if (this.selectedColor && this.selectedColor.palette === this.selectedPalette && this.selectedColor.hue === this.selectedHue) {\r\n return;\r\n }\r\n\r\n // Set the selected color object\r\n this.selectedColor = {\r\n palette: this.selectedPalette,\r\n hue: this.selectedHue,\r\n color: this.selectedPalette + '-' + this.selectedHue\r\n };\r\n\r\n this._color = this.selectedColor.color;\r\n\r\n this.colorChanged.emit(this.selectedColor);\r\n\r\n // Mark the model as touched\r\n this._modelTouched(this.selectedColor.color);\r\n\r\n // Update the model\r\n this._modelChange(this.selectedColor.color);\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n goToPalettesView(): void {\r\n this.view = 'palettes';\r\n }\r\n\r\n onMenuOpen(opened: boolean): void {\r\n if (opened) {\r\n this.view = 'hues';\r\n }\r\n }\r\n\r\n trackByFn(index: number, item: any): any {\r\n return index || item;\r\n }\r\n}\r\n","<div class=\"rounded\" [ngClass]=\"selectedColor.color\">\n <mat-select value=\"init\" [disableOptionCentering]=\"true\" [hideSingleSelectionIndicator]=\"true\" [disabled]=\"readonly\"\n (openedChange)=\"onMenuOpen($event)\" panelClass=\"min-w-64\">\n <mat-select-trigger class=\"flex p-1\">\n <mat-icon [svgIcon]=\"'heroicons_outline:paint-brush'\"></mat-icon>\n </mat-select-trigger>\n\n <header [ngClass]=\"'accent'\" class=\"shadow flex flex-row content-between justify-between p-2\">\n <button type=\"button\" mat-icon-button class=\"secondary-text\" [class.invisible]=\"view === 'palettes'\"\n (click)=\"goToPalettesView()\" aria-label=\"调色板\">\n <mat-icon svgIcon=\"mat_outline:arrow_back\"></mat-icon>\n </button>\n <span class=\"align-middle leading-loose text-xl font-bold\">{{title}}</span>\n <button type=\"button\" mat-icon-button class=\"remove-color-button secondary-text\" (click)=\"removeColor()\"\n aria-label=\"移除颜色\" matTooltip=\"移除颜色\">\n <mat-icon color=\"warn\" [svgIcon]=\"'mat_outline:cleaning_services'\"></mat-icon>\n </button>\n </header>\n\n <div class=\"flex flex-wrap w-60 m-2\">\n <mat-option value=\"init\" class=\"hidden\">初始化</mat-option>\n <div>\n @switch (view) {\n @case ('palettes') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (palette of palettes; track trackByFn($index, palette)) {\n <div role=\"presentation\"\n class=\"cursor-pointer\" (click)=\"selectPalette(palette)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedPalette\">\n @if (selectedColor.color===palette + '-' + selectedHue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"palette + '-' + selectedHue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n @case ('hues') {\n <div>\n <div class=\"flex flex-row flex-wrap justify-start content-start colors\">\n @for (hue of hues; track trackByFn($index, hue)) {\n <div role=\"presentation\" class=\"cursor-pointer\"\n (click)=\"selectHue(hue)\">\n <mat-option\n class=\"relative flex w-12 h-12 p-0 pointer-events-none rounded-full bg-transparent hover:opacity-50\"\n [value]=\"selectedHue\">\n @if (selectedColor.color===selectedPalette + '-' + hue) {\n <mat-icon class=\"absolute m-3 text-white\"\n [svgIcon]=\"'heroicons_outline:check'\"></mat-icon>\n }\n <span class=\"flex w-10 h-10 m-1 rounded-full\"\n [ngClass]=\"selectedPalette + '-' + hue\"></span>\n </mat-option>\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </mat-select>\n</div>","export class CmatSelectedColor {\r\n palette: string;\r\n hue: string;\r\n color: string;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|