@ptsecurity/mosaic 13.10.0 → 14.1.0
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/_theming.scss +90 -7388
- package/_visual.scss +6 -2778
- package/autocomplete/autocomplete-origin.directive.d.ts +1 -1
- package/autocomplete/autocomplete-trigger.directive.d.ts +1 -1
- package/autocomplete/autocomplete.component.d.ts +1 -1
- package/button/button.component.d.ts +4 -4
- package/button-toggle/button-toggle.component.d.ts +2 -2
- package/card/card.component.d.ts +3 -3
- package/checkbox/checkbox-required-validator.d.ts +1 -1
- package/checkbox/checkbox.d.ts +7 -16
- package/core/common-behaviors/color.d.ts +4 -1
- package/core/common-behaviors/error-state.d.ts +7 -4
- package/core/error/error-options.d.ts +3 -3
- package/core/formatters/date/formatter.pipe.d.ts +95 -0
- package/core/formatters/index.d.ts +3 -1
- package/core/formatters/number/formatter.d.ts +1 -1
- package/core/forms/forms.directive.d.ts +2 -2
- package/core/highlight/highlight.pipe.d.ts +1 -1
- package/core/line/line.d.ts +1 -1
- package/core/option/action.d.ts +2 -2
- package/core/option/optgroup.d.ts +2 -2
- package/core/option/option.d.ts +1 -1
- package/core/pop-up/pop-up-trigger.d.ts +5 -4
- package/core/pop-up/pop-up.d.ts +2 -2
- package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +3 -3
- package/core/validation/validation.d.ts +1 -12
- package/datepicker/calendar-body.component.d.ts +1 -1
- package/datepicker/calendar.component.d.ts +30 -30
- package/datepicker/datepicker-input.directive.d.ts +6 -11
- package/datepicker/datepicker-toggle.component.d.ts +2 -2
- package/datepicker/datepicker.component.d.ts +2 -2
- package/datepicker/month-view.component.d.ts +1 -1
- package/datepicker/multi-year-view.component.d.ts +1 -1
- package/datepicker/year-view.component.d.ts +1 -1
- package/design-tokens/legacy-2017/tokens/components/badge.json5 +46 -46
- package/design-tokens/legacy-2017/tokens/components/button-toggle.json5 +2 -1
- package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +20 -15
- package/design-tokens/legacy-2017/tokens/components/forms.json5 +0 -4
- package/design-tokens/legacy-2017/tokens/components/progress-spinner.json5 +10 -1
- package/design-tokens/legacy-2017/tokens/components/timezone.json5 +23 -0
- package/design-tokens/legacy-2017/tokens.d.ts +55 -35
- package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +2 -1
- package/design-tokens/pt-2022/tokens/components/checkbox.json5 +21 -16
- package/design-tokens/pt-2022/tokens/components/forms.json5 +0 -4
- package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +10 -1
- package/design-tokens/pt-2022/tokens/components/timezone.json5 +23 -0
- package/design-tokens/pt-2022/tokens/properties/colors.json5 +2 -2
- package/design-tokens/pt-2022/tokens/properties/typography.json5 +17 -17
- package/design-tokens/pt-2022/tokens.d.ts +43 -23
- package/design-tokens/style-dictionary/formats/figma.js +2 -2
- package/design-tokens/style-dictionary/transforms/attribute/palette.js +1 -1
- package/design-tokens/style-dictionary/transforms/attribute/size.js +1 -1
- package/design-tokens/style-dictionary/transforms/attribute/typography.js +1 -1
- package/divider/divider.component.d.ts +1 -1
- package/dl/dl.component.d.ts +3 -3
- package/dropdown/dropdown-content.directive.d.ts +1 -1
- package/dropdown/dropdown-item.component.d.ts +1 -1
- package/dropdown/dropdown-trigger.directive.d.ts +1 -1
- package/dropdown/dropdown.component.d.ts +1 -1
- package/esm2020/autocomplete/autocomplete-origin.directive.mjs +4 -4
- package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +7 -7
- package/esm2020/autocomplete/autocomplete.component.mjs +5 -6
- package/esm2020/autocomplete/autocomplete.module.mjs +5 -5
- package/esm2020/button/button.component.mjs +13 -13
- package/esm2020/button/button.module.mjs +7 -9
- package/esm2020/button-toggle/button-toggle.component.mjs +9 -9
- package/esm2020/button-toggle/button-toggle.module.mjs +5 -5
- package/esm2020/card/card.component.mjs +9 -9
- package/esm2020/card/card.module.mjs +7 -9
- package/esm2020/checkbox/checkbox-module.mjs +5 -5
- package/esm2020/checkbox/checkbox-required-validator.mjs +4 -4
- package/esm2020/checkbox/checkbox.mjs +22 -38
- package/esm2020/core/common-behaviors/color.mjs +6 -3
- package/esm2020/core/common-behaviors/common-module.mjs +5 -5
- package/esm2020/core/common-behaviors/disabled.mjs +1 -1
- package/esm2020/core/common-behaviors/error-state.mjs +1 -11
- package/esm2020/core/error/error-options.mjs +7 -7
- package/esm2020/core/formatters/date/formatter.mjs +4 -4
- package/esm2020/core/formatters/date/formatter.pipe.mjs +187 -0
- package/esm2020/core/formatters/index.mjs +65 -7
- package/esm2020/core/formatters/number/formatter.mjs +5 -5
- package/esm2020/core/forms/forms-module.mjs +5 -5
- package/esm2020/core/forms/forms.directive.mjs +7 -7
- package/esm2020/core/highlight/highlight.pipe.mjs +4 -4
- package/esm2020/core/highlight/index.mjs +5 -5
- package/esm2020/core/line/line.mjs +8 -8
- package/esm2020/core/option/action.mjs +6 -6
- package/esm2020/core/option/optgroup.mjs +6 -6
- package/esm2020/core/option/option-module.mjs +6 -6
- package/esm2020/core/option/option.mjs +6 -6
- package/esm2020/core/pop-up/pop-up-trigger.mjs +16 -14
- package/esm2020/core/pop-up/pop-up.mjs +4 -4
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +6 -7
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +5 -5
- package/esm2020/core/services/measure-scrollbar.service.mjs +4 -4
- package/esm2020/core/validation/validation.mjs +1 -114
- package/esm2020/datepicker/calendar-body.component.mjs +4 -4
- package/esm2020/datepicker/calendar.component.mjs +125 -128
- package/esm2020/datepicker/datepicker-input.directive.mjs +14 -32
- package/esm2020/datepicker/datepicker-intl.mjs +4 -4
- package/esm2020/datepicker/datepicker-module.mjs +11 -17
- package/esm2020/datepicker/datepicker-toggle.component.mjs +10 -10
- package/esm2020/datepicker/datepicker.component.mjs +10 -10
- package/esm2020/datepicker/month-view.component.mjs +6 -6
- package/esm2020/datepicker/multi-year-view.component.mjs +4 -4
- package/esm2020/datepicker/year-view.component.mjs +4 -4
- package/esm2020/design-tokens/legacy-2017/tokens.mjs +56 -36
- package/esm2020/design-tokens/pt-2022/tokens.mjs +44 -24
- package/esm2020/divider/divider.component.mjs +4 -4
- package/esm2020/divider/divider.module.mjs +5 -5
- package/esm2020/dl/dl.component.mjs +11 -11
- package/esm2020/dl/dl.module.mjs +7 -9
- package/esm2020/dropdown/dropdown-content.directive.mjs +4 -4
- package/esm2020/dropdown/dropdown-item.component.mjs +7 -7
- package/esm2020/dropdown/dropdown-trigger.directive.mjs +4 -4
- package/esm2020/dropdown/dropdown.component.mjs +5 -5
- package/esm2020/dropdown/dropdown.module.mjs +7 -9
- package/esm2020/form-field/cleaner.mjs +4 -4
- package/esm2020/form-field/form-field.mjs +24 -21
- package/esm2020/form-field/form-field.module.mjs +14 -9
- package/esm2020/form-field/hint.mjs +6 -7
- package/esm2020/form-field/password-hint.mjs +11 -12
- package/esm2020/form-field/prefix.mjs +4 -4
- package/esm2020/form-field/public-api.mjs +2 -1
- package/esm2020/form-field/stepper.mjs +4 -4
- package/esm2020/form-field/suffix.mjs +4 -4
- package/esm2020/form-field/validate.directive.mjs +156 -0
- package/esm2020/icon/icon.component.mjs +10 -11
- package/esm2020/icon/icon.module.mjs +7 -9
- package/esm2020/input/input-number-validators.mjs +7 -7
- package/esm2020/input/input-number.mjs +4 -4
- package/esm2020/input/input-password.mjs +17 -50
- package/esm2020/input/input.mjs +19 -46
- package/esm2020/input/input.module.mjs +8 -10
- package/esm2020/link/link.component.mjs +4 -4
- package/esm2020/link/link.module.mjs +6 -8
- package/esm2020/list/list-selection.component.mjs +10 -10
- package/esm2020/list/list.component.mjs +8 -8
- package/esm2020/list/list.module.mjs +9 -11
- package/esm2020/loader-overlay/loader-overlay.component.mjs +15 -15
- package/esm2020/loader-overlay/loader-overlay.module.mjs +8 -10
- package/esm2020/modal/css-unit.pipe.mjs +4 -4
- package/esm2020/modal/modal-control.service.mjs +4 -4
- package/esm2020/modal/modal.component.mjs +8 -8
- package/esm2020/modal/modal.directive.mjs +13 -13
- package/esm2020/modal/modal.module.mjs +11 -14
- package/esm2020/modal/modal.service.mjs +6 -6
- package/esm2020/navbar/navbar-item.component.mjs +36 -36
- package/esm2020/navbar/navbar.component.mjs +11 -11
- package/esm2020/navbar/navbar.module.mjs +9 -11
- package/esm2020/navbar/vertical-navbar.component.mjs +6 -6
- package/esm2020/popover/popover-confirm.component.mjs +11 -11
- package/esm2020/popover/popover.component.mjs +20 -11
- package/esm2020/popover/popover.module.mjs +6 -7
- package/esm2020/progress-bar/progress-bar.component.mjs +7 -8
- package/esm2020/progress-bar/progress-bar.module.mjs +6 -8
- package/esm2020/progress-spinner/progress-spinner.component.mjs +25 -11
- package/esm2020/progress-spinner/progress-spinner.module.mjs +6 -8
- package/esm2020/radio/radio.component.mjs +53 -54
- package/esm2020/radio/radio.module.mjs +5 -5
- package/esm2020/select/select-option.directive.mjs +4 -4
- package/esm2020/select/select.component.mjs +41 -55
- package/esm2020/select/select.module.mjs +10 -12
- package/esm2020/sidebar/sidebar.component.mjs +10 -10
- package/esm2020/sidebar/sidebar.module.mjs +5 -5
- package/esm2020/sidepanel/sidepanel-container.component.mjs +7 -7
- package/esm2020/sidepanel/sidepanel-directives.mjs +22 -20
- package/esm2020/sidepanel/sidepanel.module.mjs +11 -14
- package/esm2020/sidepanel/sidepanel.service.mjs +33 -29
- package/esm2020/splitter/splitter.component.mjs +37 -37
- package/esm2020/splitter/splitter.module.mjs +6 -8
- package/esm2020/table/table.component.mjs +4 -4
- package/esm2020/table/table.module.mjs +7 -9
- package/esm2020/tabs/paginated-tab-header.mjs +4 -4
- package/esm2020/tabs/tab-body.component.mjs +7 -7
- package/esm2020/tabs/tab-content.directive.mjs +4 -4
- package/esm2020/tabs/tab-group.component.mjs +29 -30
- package/esm2020/tabs/tab-header.component.mjs +5 -5
- package/esm2020/tabs/tab-label-wrapper.directive.mjs +4 -4
- package/esm2020/tabs/tab-label.directive.mjs +4 -4
- package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +7 -7
- package/esm2020/tabs/tab.component.mjs +4 -4
- package/esm2020/tabs/tabs.module.mjs +11 -13
- package/esm2020/tags/tag-input.mjs +4 -4
- package/esm2020/tags/tag-list.component.mjs +26 -35
- package/esm2020/tags/tag.component.mjs +23 -21
- package/esm2020/tags/tag.module.mjs +6 -6
- package/esm2020/textarea/textarea.component.mjs +24 -39
- package/esm2020/textarea/textarea.module.mjs +5 -5
- package/esm2020/timepicker/timepicker.directive.mjs +10 -27
- package/esm2020/timepicker/timepicker.module.mjs +8 -10
- package/esm2020/timezone/cities-by-filter.pipe.mjs +17 -0
- package/esm2020/timezone/index.mjs +2 -0
- package/esm2020/timezone/ptsecurity-mosaic-timezone.mjs +5 -0
- package/esm2020/timezone/public-api.mjs +7 -0
- package/esm2020/timezone/timezone-option.component.mjs +48 -0
- package/esm2020/timezone/timezone-option.directive.mjs +58 -0
- package/esm2020/timezone/timezone-select.component.mjs +40 -0
- package/esm2020/timezone/timezone.models.mjs +3 -0
- package/esm2020/timezone/timezone.module.mjs +75 -0
- package/esm2020/timezone/timezone.utils.mjs +72 -0
- package/esm2020/timezone/utc-offset.pipe.mjs +17 -0
- package/esm2020/toast/toast-container.component.mjs +5 -5
- package/esm2020/toast/toast.component.mjs +9 -9
- package/esm2020/toast/toast.module.mjs +12 -12
- package/esm2020/toast/toast.service.mjs +23 -14
- package/esm2020/toggle/toggle.component.mjs +13 -16
- package/esm2020/toggle/toggle.module.mjs +5 -5
- package/esm2020/tooltip/tooltip.component.mjs +14 -14
- package/esm2020/tooltip/tooltip.module.mjs +7 -8
- package/esm2020/tree/control/flat-tree-control.mjs +1 -1
- package/esm2020/tree/data-source/nested-data-source.mjs +1 -1
- package/esm2020/tree/node.mjs +4 -4
- package/esm2020/tree/outlet.mjs +4 -4
- package/esm2020/tree/padding.directive.mjs +4 -4
- package/esm2020/tree/toggle.mjs +10 -10
- package/esm2020/tree/tree-base.mjs +7 -7
- package/esm2020/tree/tree-option.component.mjs +8 -8
- package/esm2020/tree/tree-selection.component.mjs +5 -5
- package/esm2020/tree/tree.mjs +4 -4
- package/esm2020/tree/tree.module.mjs +5 -5
- package/esm2020/tree-select/tree-select.component.mjs +39 -53
- package/esm2020/tree-select/tree-select.module.mjs +11 -13
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +17 -18
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +12 -12
- package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button.mjs +18 -20
- package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-card.mjs +14 -16
- package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs +28 -44
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-core.mjs +341 -217
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs +174 -201
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +153 -93
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-divider.mjs +7 -7
- package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dl.mjs +16 -18
- package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs +22 -24
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +216 -57
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-icon.mjs +15 -18
- package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-input.mjs +45 -107
- package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-link.mjs +8 -10
- package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-list.mjs +24 -26
- package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +21 -23
- package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-modal.mjs +41 -44
- package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-navbar.mjs +58 -60
- package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-popover.mjs +33 -25
- package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +11 -14
- package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +29 -17
- package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-radio.mjs +57 -57
- package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-select.mjs +52 -68
- package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidebar.mjs +13 -13
- package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +69 -66
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-splitter.mjs +41 -43
- package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-table.mjs +9 -11
- package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tabs.mjs +137 -140
- package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tags.mjs +54 -61
- package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-textarea.mjs +28 -42
- package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-timepicker.mjs +15 -34
- package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-timezone.mjs +308 -0
- package/fesm2015/ptsecurity-mosaic-timezone.mjs.map +1 -0
- package/fesm2015/ptsecurity-mosaic-toast.mjs +135 -125
- package/fesm2015/ptsecurity-mosaic-toast.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-toggle.mjs +16 -19
- package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs +19 -20
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs +50 -66
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree.mjs +43 -43
- package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +17 -18
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +12 -12
- package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-button.mjs +18 -20
- package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-card.mjs +14 -16
- package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs +28 -44
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs +338 -217
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs +173 -200
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +153 -93
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-divider.mjs +7 -7
- package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dl.mjs +16 -18
- package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs +22 -24
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +214 -57
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-icon.mjs +15 -18
- package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-input.mjs +45 -107
- package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-link.mjs +8 -10
- package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-list.mjs +24 -26
- package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +21 -23
- package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-modal.mjs +41 -44
- package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-navbar.mjs +58 -60
- package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-popover.mjs +33 -25
- package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +11 -14
- package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +29 -17
- package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-radio.mjs +56 -57
- package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-select.mjs +50 -67
- package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidebar.mjs +13 -13
- package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +69 -66
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-splitter.mjs +41 -43
- package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-table.mjs +9 -11
- package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tabs.mjs +66 -69
- package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tags.mjs +53 -61
- package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-textarea.mjs +26 -41
- package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-timepicker.mjs +15 -34
- package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-timezone.mjs +306 -0
- package/fesm2020/ptsecurity-mosaic-timezone.mjs.map +1 -0
- package/fesm2020/ptsecurity-mosaic-toast.mjs +130 -120
- package/fesm2020/ptsecurity-mosaic-toast.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-toggle.mjs +16 -19
- package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs +19 -20
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs +47 -64
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree.mjs +43 -43
- package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/form-field/cleaner.d.ts +1 -1
- package/form-field/form-field.d.ts +13 -7
- package/form-field/form-field.module.d.ts +4 -3
- package/form-field/hint.d.ts +3 -3
- package/form-field/password-hint.d.ts +2 -3
- package/form-field/prefix.d.ts +1 -1
- package/form-field/public-api.d.ts +1 -0
- package/form-field/stepper.d.ts +1 -1
- package/form-field/suffix.d.ts +1 -1
- package/form-field/validate.directive.d.ts +32 -0
- package/icon/icon.component.d.ts +4 -4
- package/input/input-number-validators.d.ts +2 -2
- package/input/input-number.d.ts +1 -1
- package/input/input-password.d.ts +9 -15
- package/input/input.d.ts +14 -14
- package/link/link.component.d.ts +1 -1
- package/list/list-selection.component.d.ts +2 -2
- package/list/list.component.d.ts +2 -2
- package/loader-overlay/loader-overlay.component.d.ts +4 -4
- package/modal/css-unit.pipe.d.ts +1 -1
- package/modal/modal.component.d.ts +1 -1
- package/modal/modal.directive.d.ts +4 -4
- package/navbar/navbar-item.component.d.ts +11 -11
- package/navbar/navbar.component.d.ts +3 -3
- package/navbar/vertical-navbar.component.d.ts +1 -1
- package/package.json +56 -48
- package/popover/popover-confirm.component.d.ts +2 -2
- package/popover/popover.component.d.ts +5 -5
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/prebuilt-visual/default-visual.css +1 -1
- package/progress-bar/progress-bar.component.d.ts +3 -3
- package/progress-spinner/progress-spinner.component.d.ts +8 -3
- package/radio/radio.component.d.ts +11 -17
- package/select/select-option.directive.d.ts +1 -1
- package/select/select.component.d.ts +16 -14
- package/sidebar/sidebar.component.d.ts +3 -3
- package/sidepanel/sidepanel-container.component.d.ts +1 -1
- package/sidepanel/sidepanel-directives.d.ts +5 -5
- package/splitter/splitter.component.d.ts +4 -4
- package/table/table.component.d.ts +1 -1
- package/tabs/paginated-tab-header.d.ts +1 -1
- package/tabs/tab-body.component.d.ts +2 -2
- package/tabs/tab-content.directive.d.ts +1 -1
- package/tabs/tab-group.component.d.ts +8 -8
- package/tabs/tab-header.component.d.ts +1 -1
- package/tabs/tab-label-wrapper.directive.d.ts +1 -1
- package/tabs/tab-label.directive.d.ts +1 -1
- package/tabs/tab-nav-bar/tab-nav-bar.d.ts +2 -2
- package/tabs/tab.component.d.ts +1 -1
- package/tags/tag-input.d.ts +1 -1
- package/tags/tag-list.component.d.ts +14 -10
- package/tags/tag.component.d.ts +8 -6
- package/textarea/textarea.component.d.ts +14 -13
- package/timepicker/timepicker.directive.d.ts +5 -10
- package/timezone/README.md +0 -0
- package/timezone/cities-by-filter.pipe.d.ts +7 -0
- package/timezone/index.d.ts +1 -0
- package/timezone/public-api.d.ts +6 -0
- package/timezone/timezone-option.component.d.ts +15 -0
- package/timezone/timezone-option.directive.d.ts +20 -0
- package/timezone/timezone-select.component.d.ts +14 -0
- package/timezone/timezone.models.d.ts +16 -0
- package/timezone/timezone.module.d.ts +19 -0
- package/timezone/timezone.utils.d.ts +18 -0
- package/timezone/utc-offset.pipe.d.ts +7 -0
- package/toast/toast-container.component.d.ts +1 -1
- package/toast/toast.component.d.ts +1 -1
- package/toast/toast.service.d.ts +6 -4
- package/toggle/toggle.component.d.ts +5 -5
- package/tooltip/tooltip.component.d.ts +5 -6
- package/tree/control/flat-tree-control.d.ts +8 -8
- package/tree/node.d.ts +1 -1
- package/tree/outlet.d.ts +1 -1
- package/tree/padding.directive.d.ts +1 -1
- package/tree/toggle.d.ts +3 -3
- package/tree/tree-base.d.ts +2 -2
- package/tree/tree-option.component.d.ts +1 -1
- package/tree/tree-selection.component.d.ts +1 -1
- package/tree/tree.d.ts +1 -1
- package/tree-select/tree-select.component.d.ts +14 -12
- package/autocomplete/package.json +0 -10
- package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +0 -5
- package/button/package.json +0 -10
- package/button/ptsecurity-mosaic-button.d.ts +0 -5
- package/button-toggle/package.json +0 -10
- package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +0 -5
- package/card/package.json +0 -10
- package/card/ptsecurity-mosaic-card.d.ts +0 -5
- package/checkbox/package.json +0 -10
- package/checkbox/ptsecurity-mosaic-checkbox.d.ts +0 -5
- package/core/package.json +0 -10
- package/core/ptsecurity-mosaic-core.d.ts +0 -5
- package/datepicker/package.json +0 -10
- package/datepicker/ptsecurity-mosaic-datepicker.d.ts +0 -5
- package/design-tokens/package.json +0 -10
- package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +0 -5
- package/divider/package.json +0 -10
- package/divider/ptsecurity-mosaic-divider.d.ts +0 -5
- package/dl/package.json +0 -10
- package/dl/ptsecurity-mosaic-dl.d.ts +0 -5
- package/dropdown/package.json +0 -10
- package/dropdown/ptsecurity-mosaic-dropdown.d.ts +0 -5
- package/form-field/package.json +0 -10
- package/form-field/ptsecurity-mosaic-form-field.d.ts +0 -5
- package/icon/package.json +0 -10
- package/icon/ptsecurity-mosaic-icon.d.ts +0 -5
- package/input/package.json +0 -10
- package/input/ptsecurity-mosaic-input.d.ts +0 -5
- package/link/package.json +0 -10
- package/link/ptsecurity-mosaic-link.d.ts +0 -5
- package/list/package.json +0 -10
- package/list/ptsecurity-mosaic-list.d.ts +0 -5
- package/loader-overlay/package.json +0 -10
- package/loader-overlay/ptsecurity-mosaic-loader-overlay.d.ts +0 -5
- package/modal/package.json +0 -10
- package/modal/ptsecurity-mosaic-modal.d.ts +0 -5
- package/navbar/package.json +0 -10
- package/navbar/ptsecurity-mosaic-navbar.d.ts +0 -5
- package/popover/package.json +0 -10
- package/popover/ptsecurity-mosaic-popover.d.ts +0 -5
- package/progress-bar/package.json +0 -10
- package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +0 -5
- package/progress-spinner/package.json +0 -10
- package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +0 -5
- package/ptsecurity-mosaic.d.ts +0 -5
- package/radio/package.json +0 -10
- package/radio/ptsecurity-mosaic-radio.d.ts +0 -5
- package/select/package.json +0 -10
- package/select/ptsecurity-mosaic-select.d.ts +0 -5
- package/sidebar/package.json +0 -10
- package/sidebar/ptsecurity-mosaic-sidebar.d.ts +0 -5
- package/sidepanel/package.json +0 -10
- package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +0 -5
- package/splitter/package.json +0 -10
- package/splitter/ptsecurity-mosaic-splitter.d.ts +0 -5
- package/table/package.json +0 -10
- package/table/ptsecurity-mosaic-table.d.ts +0 -5
- package/tabs/package.json +0 -10
- package/tabs/ptsecurity-mosaic-tabs.d.ts +0 -5
- package/tags/package.json +0 -10
- package/tags/ptsecurity-mosaic-tags.d.ts +0 -5
- package/textarea/package.json +0 -10
- package/textarea/ptsecurity-mosaic-textarea.d.ts +0 -5
- package/timepicker/package.json +0 -10
- package/timepicker/ptsecurity-mosaic-timepicker.d.ts +0 -5
- package/toast/package.json +0 -10
- package/toast/ptsecurity-mosaic-toast.d.ts +0 -5
- package/toggle/package.json +0 -10
- package/toggle/ptsecurity-mosaic-toggle.d.ts +0 -5
- package/tooltip/package.json +0 -10
- package/tooltip/ptsecurity-mosaic-tooltip.d.ts +0 -5
- package/tree/package.json +0 -10
- package/tree/ptsecurity-mosaic-tree.d.ts +0 -5
- package/tree-select/package.json +0 -10
- package/tree-select/ptsecurity-mosaic-tree-select.d.ts +0 -5
@@ -4,25 +4,36 @@ import { CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
5
5
|
import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';
|
6
6
|
import { mixinColor, ThemePalette } from '@ptsecurity/mosaic/core';
|
7
|
+
import { ProgressSpinnerSizeDefaultSvgCircleRadius, ProgressSpinnerSizeLargeSvgCircleRadius } from '@ptsecurity/mosaic/design-tokens';
|
7
8
|
|
8
|
-
let
|
9
|
+
let id = 0;
|
9
10
|
const MIN_PERCENT = 0;
|
10
11
|
const MAX_PERCENT = 100;
|
11
12
|
class McProgressSpinnerBase {
|
12
|
-
|
13
|
-
|
14
|
-
this._elementRef = _elementRef;
|
13
|
+
constructor(elementRef) {
|
14
|
+
this.elementRef = elementRef;
|
15
15
|
}
|
16
16
|
}
|
17
17
|
// tslint:disable-next-line:naming-convention
|
18
18
|
const McProgressSpinnerMixinBase = mixinColor(McProgressSpinnerBase, ThemePalette.Primary);
|
19
|
-
const MAX_DASH_ARRAY =
|
19
|
+
const MAX_DASH_ARRAY = 295;
|
20
20
|
class McProgressSpinner extends McProgressSpinnerMixinBase {
|
21
21
|
constructor(elementRef) {
|
22
22
|
super(elementRef);
|
23
|
-
this.id = `mc-progress-spinner-${
|
23
|
+
this.id = `mc-progress-spinner-${id++}`;
|
24
24
|
this.value = 0;
|
25
25
|
this.mode = 'determinate';
|
26
|
+
this._size = 'default';
|
27
|
+
this.svgCircleRadius = ProgressSpinnerSizeDefaultSvgCircleRadius;
|
28
|
+
}
|
29
|
+
get size() {
|
30
|
+
return this._size;
|
31
|
+
}
|
32
|
+
set size(value) {
|
33
|
+
this._size = value;
|
34
|
+
this.svgCircleRadius = value === 'large' ?
|
35
|
+
ProgressSpinnerSizeLargeSvgCircleRadius :
|
36
|
+
ProgressSpinnerSizeDefaultSvgCircleRadius;
|
26
37
|
}
|
27
38
|
get percentage() {
|
28
39
|
return Math.max(MIN_PERCENT, Math.min(MAX_PERCENT, this.value)) / MAX_PERCENT;
|
@@ -31,32 +42,33 @@ class McProgressSpinner extends McProgressSpinnerMixinBase {
|
|
31
42
|
return `${MAX_DASH_ARRAY - this.percentage * MAX_DASH_ARRAY}%`;
|
32
43
|
}
|
33
44
|
}
|
34
|
-
/** @nocollapse */
|
35
|
-
/** @nocollapse */
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
45
|
+
/** @nocollapse */ McProgressSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McProgressSpinner, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
46
|
+
/** @nocollapse */ McProgressSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: McProgressSpinner, selector: "mc-progress-spinner", inputs: { color: "color", id: "id", value: "value", mode: "mode", size: "size" }, host: { properties: { "class.mc-progress-spinner_large": "size === 'large'", "attr.id": "id" }, classAttribute: "mc-progress-spinner" }, usesInheritance: true, ngImport: i0, template: "<div class=\"mc-progress-spinner__inner\"\n [ngClass]=\"{'mc-progress-spinner__inner_indeterminate': mode === 'indeterminate'}\">\n <svg focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n viewBox=\"0 0 100 100\"\n class=\"mc-progress-spinner__svg\">\n\n <circle cx=\"50%\"\n cy=\"50%\"\n [attr.r]=\"svgCircleRadius\"\n class=\"mc-progress-spinner__circle\"\n [ngStyle]=\"{'stroke-dashoffset': mode === 'determinate' ? dashOffsetPercent : null}\">\n </circle>\n </svg>\n</div>\n\n", styles: ["@keyframes mc-progress-spinner-indeterminate{to{transform:rotate(270deg)}}.mc-progress-spinner{display:inline-block;overflow:hidden;width:16px;width:var(--mc-progress-spinner-size-default-size, 16px);height:16px;height:var(--mc-progress-spinner-size-default-size, 16px)}.mc-progress-spinner__circle{fill:none;stroke:#000;stroke-dasharray:295%;stroke-width:13%;stroke-width:var(--mc-progress-spinner-size-default-svg-stroke-width, 13%);transition:stroke-dashoffset .3s;transform-origin:center center}.mc-progress-spinner_large{width:48px;width:var(--mc-progress-spinner-size-large-size, 48px);height:48px;height:var(--mc-progress-spinner-size-large-size, 48px)}.mc-progress-spinner_large .mc-progress-spinner__circle{stroke-width:6%;stroke-width:var(--mc-progress-spinner-size-large-svg-stroke-width, 6%)}.mc-progress-spinner__inner{width:100%;height:100%;transform:rotate(-90deg);font-size:0}.mc-progress-spinner__inner .mc-progress-spinner_indeterminate{animation:mc-progress-spinner-indeterminate 1.5s cubic-bezier(.455,.03,.515,.955) infinite}.mc-progress-spinner__inner .mc-progress-spinner_indeterminate .mc-progress-spinner__circle{stroke-dashoffset:80%}.mc-progress-spinner__svg{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McProgressSpinner, decorators: [{
|
37
48
|
type: Component,
|
38
49
|
args: [{ selector: 'mc-progress-spinner', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['color'], host: {
|
39
50
|
class: 'mc-progress-spinner',
|
51
|
+
'[class.mc-progress-spinner_large]': `size === 'large'`,
|
40
52
|
'[attr.id]': 'id'
|
41
|
-
}, template: "<div class=\"mc-progress-spinner__inner\"\n [ngClass]=\"{'mc-progress-
|
53
|
+
}, template: "<div class=\"mc-progress-spinner__inner\"\n [ngClass]=\"{'mc-progress-spinner__inner_indeterminate': mode === 'indeterminate'}\">\n <svg focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n viewBox=\"0 0 100 100\"\n class=\"mc-progress-spinner__svg\">\n\n <circle cx=\"50%\"\n cy=\"50%\"\n [attr.r]=\"svgCircleRadius\"\n class=\"mc-progress-spinner__circle\"\n [ngStyle]=\"{'stroke-dashoffset': mode === 'determinate' ? dashOffsetPercent : null}\">\n </circle>\n </svg>\n</div>\n\n", styles: ["@keyframes mc-progress-spinner-indeterminate{to{transform:rotate(270deg)}}.mc-progress-spinner{display:inline-block;overflow:hidden;width:16px;width:var(--mc-progress-spinner-size-default-size, 16px);height:16px;height:var(--mc-progress-spinner-size-default-size, 16px)}.mc-progress-spinner__circle{fill:none;stroke:#000;stroke-dasharray:295%;stroke-width:13%;stroke-width:var(--mc-progress-spinner-size-default-svg-stroke-width, 13%);transition:stroke-dashoffset .3s;transform-origin:center center}.mc-progress-spinner_large{width:48px;width:var(--mc-progress-spinner-size-large-size, 48px);height:48px;height:var(--mc-progress-spinner-size-large-size, 48px)}.mc-progress-spinner_large .mc-progress-spinner__circle{stroke-width:6%;stroke-width:var(--mc-progress-spinner-size-large-svg-stroke-width, 6%)}.mc-progress-spinner__inner{width:100%;height:100%;transform:rotate(-90deg);font-size:0}.mc-progress-spinner__inner .mc-progress-spinner_indeterminate{animation:mc-progress-spinner-indeterminate 1.5s cubic-bezier(.455,.03,.515,.955) infinite}.mc-progress-spinner__inner .mc-progress-spinner_indeterminate .mc-progress-spinner__circle{stroke-dashoffset:80%}.mc-progress-spinner__svg{width:100%;height:100%}\n"] }]
|
42
54
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { id: [{
|
43
55
|
type: Input
|
44
56
|
}], value: [{
|
45
57
|
type: Input
|
46
58
|
}], mode: [{
|
47
59
|
type: Input
|
60
|
+
}], size: [{
|
61
|
+
type: Input
|
48
62
|
}] } });
|
49
63
|
|
50
64
|
class McProgressSpinnerModule {
|
51
65
|
}
|
52
|
-
/** @nocollapse */
|
53
|
-
/** @nocollapse */
|
66
|
+
/** @nocollapse */ McProgressSpinnerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McProgressSpinnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
67
|
+
/** @nocollapse */ McProgressSpinnerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: McProgressSpinnerModule, declarations: [McProgressSpinner], imports: [CommonModule,
|
54
68
|
PlatformModule], exports: [McProgressSpinner] });
|
55
|
-
/** @nocollapse */
|
56
|
-
|
57
|
-
|
58
|
-
]] });
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McProgressSpinnerModule, decorators: [{
|
69
|
+
/** @nocollapse */ McProgressSpinnerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McProgressSpinnerModule, imports: [CommonModule,
|
70
|
+
PlatformModule] });
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McProgressSpinnerModule, decorators: [{
|
60
72
|
type: NgModule,
|
61
73
|
args: [{
|
62
74
|
imports: [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ptsecurity-mosaic-progress-spinner.mjs","sources":["../../../packages/mosaic/progress-spinner/progress-spinner.component.ts","../../../packages/mosaic/progress-spinner/progress-spinner.component.html","../../../packages/mosaic/progress-spinner/progress-spinner.module.ts","../../../packages/mosaic/progress-spinner/ptsecurity-mosaic-progress-spinner.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n ElementRef,\n Input\n} from '@angular/core';\nimport { CanColor, CanColorCtor, mixinColor, ThemePalette } from '@ptsecurity/mosaic/core';\n\n\nexport type ProgressSpinnerMode = 'determinate' | 'indeterminate';\n\nlet
|
1
|
+
{"version":3,"file":"ptsecurity-mosaic-progress-spinner.mjs","sources":["../../../packages/mosaic/progress-spinner/progress-spinner.component.ts","../../../packages/mosaic/progress-spinner/progress-spinner.component.html","../../../packages/mosaic/progress-spinner/progress-spinner.module.ts","../../../packages/mosaic/progress-spinner/ptsecurity-mosaic-progress-spinner.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n ElementRef,\n Input\n} from '@angular/core';\nimport { CanColor, CanColorCtor, mixinColor, ThemePalette } from '@ptsecurity/mosaic/core';\nimport {\n ProgressSpinnerSizeDefaultSvgCircleRadius,\n ProgressSpinnerSizeLargeSvgCircleRadius\n} from '@ptsecurity/mosaic/design-tokens';\n\n\nexport type ProgressSpinnerMode = 'determinate' | 'indeterminate';\n\nexport type ProgressSpinnerSize = 'default' | 'large';\n\nlet id = 0;\n\nconst MIN_PERCENT = 0;\nconst MAX_PERCENT = 100;\n\nexport class McProgressSpinnerBase {\n constructor(public elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McProgressSpinnerMixinBase:\n CanColorCtor & typeof McProgressSpinnerBase = mixinColor(McProgressSpinnerBase, ThemePalette.Primary);\n\nconst MAX_DASH_ARRAY = 295;\n\n@Component({\n selector: 'mc-progress-spinner',\n templateUrl: './progress-spinner.component.html',\n styleUrls: ['./progress-spinner.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: ['color'],\n host: {\n class: 'mc-progress-spinner',\n '[class.mc-progress-spinner_large]': `size === 'large'`,\n '[attr.id]': 'id'\n }\n})\nexport class McProgressSpinner extends McProgressSpinnerMixinBase implements CanColor {\n @Input() id: string = `mc-progress-spinner-${id++}`;\n @Input() value: number = 0;\n @Input() mode: ProgressSpinnerMode = 'determinate';\n\n @Input()\n get size(): ProgressSpinnerSize {\n return this._size;\n }\n\n set size(value: ProgressSpinnerSize) {\n this._size = value;\n\n this.svgCircleRadius = value === 'large' ?\n ProgressSpinnerSizeLargeSvgCircleRadius :\n ProgressSpinnerSizeDefaultSvgCircleRadius;\n }\n\n private _size: ProgressSpinnerSize = 'default';\n\n svgCircleRadius: string = ProgressSpinnerSizeDefaultSvgCircleRadius;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n\n get percentage(): number {\n return Math.max(MIN_PERCENT, Math.min(MAX_PERCENT, this.value)) / MAX_PERCENT;\n }\n\n get dashOffsetPercent(): string {\n return `${MAX_DASH_ARRAY - this.percentage * MAX_DASH_ARRAY}%`;\n }\n}\n","<div class=\"mc-progress-spinner__inner\"\n [ngClass]=\"{'mc-progress-spinner__inner_indeterminate': mode === 'indeterminate'}\">\n <svg focusable=\"false\"\n preserveAspectRatio=\"xMidYMid meet\"\n viewBox=\"0 0 100 100\"\n class=\"mc-progress-spinner__svg\">\n\n <circle cx=\"50%\"\n cy=\"50%\"\n [attr.r]=\"svgCircleRadius\"\n class=\"mc-progress-spinner__circle\"\n [ngStyle]=\"{'stroke-dashoffset': mode === 'determinate' ? dashOffsetPercent : null}\">\n </circle>\n </svg>\n</div>\n\n","import { PlatformModule } from '@angular/cdk/platform';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { McProgressSpinner } from './progress-spinner.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n PlatformModule\n ],\n exports: [\n McProgressSpinner\n ],\n declarations: [\n McProgressSpinner\n ]\n})\nexport class McProgressSpinnerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -23,9 +23,8 @@ class McRadioChange {
|
|
23
23
|
// Boilerplate for applying mixins to McRadioGroup.
|
24
24
|
/** @docs-private */
|
25
25
|
class McRadioGroupBase {
|
26
|
-
|
27
|
-
|
28
|
-
this._elementRef = _elementRef;
|
26
|
+
constructor(elementRef) {
|
27
|
+
this.elementRef = elementRef;
|
29
28
|
}
|
30
29
|
}
|
31
30
|
// tslint:disable-next-line:naming-convention
|
@@ -41,9 +40,9 @@ const MC_RADIO_GROUP_CONTROL_VALUE_ACCESSOR = {
|
|
41
40
|
multi: true
|
42
41
|
};
|
43
42
|
class McRadioGroup extends McRadioGroupMixinBase {
|
44
|
-
constructor(elementRef,
|
43
|
+
constructor(elementRef, changeDetector) {
|
45
44
|
super(elementRef);
|
46
|
-
this.
|
45
|
+
this.changeDetector = changeDetector;
|
47
46
|
/**
|
48
47
|
* Event emitted when the group value changes.
|
49
48
|
* Change events are only emitted when the value changes due to user interaction with
|
@@ -80,7 +79,9 @@ class McRadioGroup extends McRadioGroupMixinBase {
|
|
80
79
|
this.onTouched = () => { };
|
81
80
|
}
|
82
81
|
/** Name of the radio button group. All radio buttons inside this group will use this name. */
|
83
|
-
get name() {
|
82
|
+
get name() {
|
83
|
+
return this._name;
|
84
|
+
}
|
84
85
|
set name(value) {
|
85
86
|
this._name = value;
|
86
87
|
this.updateRadioButtonNames();
|
@@ -94,7 +95,9 @@ class McRadioGroup extends McRadioGroupMixinBase {
|
|
94
95
|
this.markRadiosForCheck();
|
95
96
|
}
|
96
97
|
/** Value of the radio button. */
|
97
|
-
get value() {
|
98
|
+
get value() {
|
99
|
+
return this._value;
|
100
|
+
}
|
98
101
|
set value(newValue) {
|
99
102
|
if (this._value !== newValue) {
|
100
103
|
// Set this before proceeding to ensure no circular loop occurs with selection.
|
@@ -104,20 +107,26 @@ class McRadioGroup extends McRadioGroupMixinBase {
|
|
104
107
|
}
|
105
108
|
}
|
106
109
|
/** Whether the radio button is selected. */
|
107
|
-
get selected() {
|
110
|
+
get selected() {
|
111
|
+
return this._selected;
|
112
|
+
}
|
108
113
|
set selected(selected) {
|
109
114
|
this._selected = selected;
|
110
115
|
this.value = selected ? selected.value : null;
|
111
116
|
this.checkSelectedRadioButton();
|
112
117
|
}
|
113
118
|
/** Whether the radio group is disabled */
|
114
|
-
get disabled() {
|
119
|
+
get disabled() {
|
120
|
+
return this._disabled;
|
121
|
+
}
|
115
122
|
set disabled(value) {
|
116
123
|
this._disabled = toBoolean(value);
|
117
124
|
this.markRadiosForCheck();
|
118
125
|
}
|
119
126
|
/** Whether the radio group is required */
|
120
|
-
get required() {
|
127
|
+
get required() {
|
128
|
+
return this._required;
|
129
|
+
}
|
121
130
|
set required(value) {
|
122
131
|
this._required = toBoolean(value);
|
123
132
|
this.markRadiosForCheck();
|
@@ -162,7 +171,7 @@ class McRadioGroup extends McRadioGroupMixinBase {
|
|
162
171
|
*/
|
163
172
|
writeValue(value) {
|
164
173
|
this.value = value;
|
165
|
-
this.
|
174
|
+
this.changeDetector.markForCheck();
|
166
175
|
}
|
167
176
|
/**
|
168
177
|
* Registers a callback to be triggered when the model value changes.
|
@@ -186,14 +195,11 @@ class McRadioGroup extends McRadioGroupMixinBase {
|
|
186
195
|
*/
|
187
196
|
setDisabledState(isDisabled) {
|
188
197
|
this.disabled = isDisabled;
|
189
|
-
this.
|
198
|
+
this.changeDetector.markForCheck();
|
190
199
|
}
|
191
200
|
updateRadioButtonNames() {
|
192
|
-
|
193
|
-
|
194
|
-
radio.name = this.name;
|
195
|
-
});
|
196
|
-
}
|
201
|
+
var _a;
|
202
|
+
(_a = this.radios) === null || _a === void 0 ? void 0 : _a.forEach((radio) => radio.name = this.name);
|
197
203
|
}
|
198
204
|
/** Updates the `selected` radio button from the internal _value state. */
|
199
205
|
updateSelectedRadioFromValue() {
|
@@ -210,9 +216,9 @@ class McRadioGroup extends McRadioGroupMixinBase {
|
|
210
216
|
}
|
211
217
|
}
|
212
218
|
}
|
213
|
-
/** @nocollapse */
|
214
|
-
/** @nocollapse */
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
219
|
+
/** @nocollapse */ McRadioGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McRadioGroup, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
220
|
+
/** @nocollapse */ McRadioGroup.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: McRadioGroup, selector: "mc-radio-group", inputs: { name: "name", labelPosition: "labelPosition", value: "value", selected: "selected", disabled: "disabled", required: "required" }, outputs: { change: "change" }, host: { attributes: { "role": "radiogroup" }, classAttribute: "mc-radio-group" }, providers: [MC_RADIO_GROUP_CONTROL_VALUE_ACCESSOR], queries: [{ propertyName: "radios", predicate: i0.forwardRef(function () { return McRadioButton; }), descendants: true }], exportAs: ["mcRadioGroup"], usesInheritance: true, ngImport: i0 });
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McRadioGroup, decorators: [{
|
216
222
|
type: Directive,
|
217
223
|
args: [{
|
218
224
|
selector: 'mc-radio-group',
|
@@ -245,19 +251,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
245
251
|
/** @docs-private */
|
246
252
|
// tslint:disable-next-line:naming-convention
|
247
253
|
class McRadioButtonBase {
|
248
|
-
|
249
|
-
|
250
|
-
this._elementRef = _elementRef;
|
254
|
+
constructor(elementRef) {
|
255
|
+
this.elementRef = elementRef;
|
251
256
|
}
|
252
257
|
}
|
253
258
|
// tslint:disable-next-line:naming-convention
|
254
259
|
const McRadioButtonMixinBase = mixinColor(mixinTabIndex(McRadioButtonBase));
|
255
260
|
class McRadioButton extends McRadioButtonMixinBase {
|
256
|
-
constructor(radioGroup, elementRef,
|
261
|
+
constructor(radioGroup, elementRef, changeDetector, focusMonitor, radioDispatcher) {
|
257
262
|
super(elementRef);
|
258
|
-
this.
|
263
|
+
this.changeDetector = changeDetector;
|
259
264
|
this.focusMonitor = focusMonitor;
|
260
|
-
this.
|
265
|
+
this.radioDispatcher = radioDispatcher;
|
261
266
|
/**
|
262
267
|
* Event emitted when the checked state of this radio button changes.
|
263
268
|
* Change events are only emitted when the value changes due to user interaction with
|
@@ -276,15 +281,17 @@ class McRadioButton extends McRadioButtonMixinBase {
|
|
276
281
|
this.removeUniqueSelectionListener = () => { };
|
277
282
|
this.id = this.uniqueId;
|
278
283
|
this.radioGroup = radioGroup;
|
279
|
-
this.removeUniqueSelectionListener =
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
284
|
+
this.removeUniqueSelectionListener = radioDispatcher
|
285
|
+
.listen((id, name) => {
|
286
|
+
if (id !== this.id && name === this.name) {
|
287
|
+
this.checked = false;
|
288
|
+
}
|
289
|
+
});
|
285
290
|
}
|
286
291
|
/** Whether this radio button is checked. */
|
287
|
-
get checked() {
|
292
|
+
get checked() {
|
293
|
+
return this._checked;
|
294
|
+
}
|
288
295
|
set checked(value) {
|
289
296
|
const newCheckedState = toBoolean(value);
|
290
297
|
if (this._checked !== newCheckedState) {
|
@@ -299,13 +306,15 @@ class McRadioButton extends McRadioButtonMixinBase {
|
|
299
306
|
}
|
300
307
|
if (newCheckedState) {
|
301
308
|
// Notify all radio buttons with the same name to un-check.
|
302
|
-
this.
|
309
|
+
this.radioDispatcher.notify(this.id, this.name);
|
303
310
|
}
|
304
|
-
this.
|
311
|
+
this.changeDetector.markForCheck();
|
305
312
|
}
|
306
313
|
}
|
307
314
|
/** The value of this radio button. */
|
308
|
-
get value() {
|
315
|
+
get value() {
|
316
|
+
return this._value;
|
317
|
+
}
|
309
318
|
set value(value) {
|
310
319
|
if (this._value !== value) {
|
311
320
|
this._value = value;
|
@@ -328,7 +337,7 @@ class McRadioButton extends McRadioButtonMixinBase {
|
|
328
337
|
const newDisabledState = toBoolean(value);
|
329
338
|
if (this._disabled !== newDisabledState) {
|
330
339
|
this._disabled = newDisabledState;
|
331
|
-
this.
|
340
|
+
this.changeDetector.markForCheck();
|
332
341
|
}
|
333
342
|
}
|
334
343
|
/** Whether the radio button is required. */
|
@@ -357,7 +366,7 @@ class McRadioButton extends McRadioButtonMixinBase {
|
|
357
366
|
}
|
358
367
|
ngAfterViewInit() {
|
359
368
|
this.focusMonitor
|
360
|
-
.monitor(this.
|
369
|
+
.monitor(this.elementRef, true)
|
361
370
|
.subscribe((focusOrigin) => {
|
362
371
|
if (!focusOrigin && this.radioGroup) {
|
363
372
|
this.radioGroup.touch();
|
@@ -365,7 +374,7 @@ class McRadioButton extends McRadioButtonMixinBase {
|
|
365
374
|
});
|
366
375
|
}
|
367
376
|
ngOnDestroy() {
|
368
|
-
this.focusMonitor.stopMonitoring(this.
|
377
|
+
this.focusMonitor.stopMonitoring(this.elementRef);
|
369
378
|
this.removeUniqueSelectionListener();
|
370
379
|
}
|
371
380
|
/** Focuses the radio button. */
|
@@ -380,7 +389,7 @@ class McRadioButton extends McRadioButtonMixinBase {
|
|
380
389
|
markForCheck() {
|
381
390
|
// When group value changes, the button will not be notified. Use `markForCheck` to explicit
|
382
391
|
// update radio button's status
|
383
|
-
this.
|
392
|
+
this.changeDetector.markForCheck();
|
384
393
|
}
|
385
394
|
onInputClick(event) {
|
386
395
|
// We have to stop propagation for click events on the visual hidden input element.
|
@@ -413,16 +422,16 @@ class McRadioButton extends McRadioButtonMixinBase {
|
|
413
422
|
this.change.emit(new McRadioChange(this, this._value));
|
414
423
|
}
|
415
424
|
}
|
416
|
-
/** @nocollapse */
|
417
|
-
/** @nocollapse */
|
418
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
425
|
+
/** @nocollapse */ McRadioButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McRadioButton, deps: [{ token: McRadioGroup, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i2.UniqueSelectionDispatcher }], target: i0.ɵɵFactoryTarget.Component });
|
426
|
+
/** @nocollapse */ McRadioButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: McRadioButton, selector: "mc-radio-button", inputs: { color: "color", tabIndex: "tabIndex", checked: "checked", value: "value", disabled: "disabled", required: "required", labelPosition: "labelPosition", name: "name", isFocused: "isFocused", id: "id" }, outputs: { change: "change" }, host: { properties: { "attr.id": "id", "class.mc-selected": "checked", "class.mc-disabled": "disabled" }, classAttribute: "mc-radio-button" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], exportAs: ["mcRadioButton"], usesInheritance: true, ngImport: i0, template: "<label class=\"mc-radio-label\" [attr.for]=\"inputId\" #label>\n <input type=\"radio\"\n class=\"mc-radio-input cdk-visually-hidden\"\n #input\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [attr.name]=\"name\"\n [required]=\"required\"\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($event)\">\n\n <div class=\"mc-radio-label-content\" [class.mc-radio-label-before]=\"labelPosition == 'before'\">\n <div class=\"mc-radio-button__outer-circle\">\n <div class=\"mc-radio-button__inner-circle\">\n <div class=\"mc-radio-button__inner-circle-cap\"></div>\n </div>\n </div>\n\n <div class=\"mc-radio__text-container\">\n <span class=\"mc-radio__text\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"mc-hint\"></ng-content>\n </div>\n </div>\n</label>\n", styles: [".mc-radio-button{display:inline-block}.mc-radio-label{display:inline-flex;align-items:center;vertical-align:middle;cursor:pointer;white-space:nowrap;width:100%}.mc-radio-label-content{display:inline-block;position:relative;order:0;line-height:inherit;padding-left:22px;padding-left:calc(var(--mc-radio-size-outer-size, 14px) + var(--mc-radio-size-padding, 8px));padding-right:0}.mc-radio-label-content .mc-radio-button__outer-circle,.mc-radio-label-content .mc-radio-button__inner-circle{box-sizing:content-box;position:absolute;display:flex;content:\"\";border-style:solid;border-radius:50%}.mc-radio-label-content .mc-radio-button__outer-circle{left:0;top:2px;width:14px;width:var(--mc-radio-size-outer-size, 14px);height:14px;height:var(--mc-radio-size-outer-size, 14px);border-width:1px}.mc-radio-label-content .mc-radio-button__inner-circle{position:relative;margin:auto;width:10px;width:var(--mc-radio-size-inner-size, 10px);height:10px;height:var(--mc-radio-size-inner-size, 10px);border-width:1px}.mc-radio-label-content .mc-radio-button__inner-circle .mc-radio-button__inner-circle-cap{margin:auto;width:6px;width:var(--mc-radio-size-cap-size, 6px);height:6px;height:var(--mc-radio-size-cap-size, 6px);border-radius:50%}.mc-radio-label-content .mc-radio__text-container{display:flex;flex-direction:column}.mc-radio-label-content .mc-radio__text-container .mc-hint{margin-top:2px}[dir=rtl] .mc-radio-label-content{padding-right:8px;padding-right:var(--mc-radio-size-padding, 8px);padding-left:0}.mc-radio-input{position:absolute;outline:none;opacity:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McRadioButton, decorators: [{
|
419
428
|
type: Component,
|
420
429
|
args: [{ selector: 'mc-radio-button', inputs: ['color', 'tabIndex'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'mcRadioButton', host: {
|
421
430
|
class: 'mc-radio-button',
|
422
431
|
'[attr.id]': 'id',
|
423
432
|
'[class.mc-selected]': 'checked',
|
424
433
|
'[class.mc-disabled]': 'disabled'
|
425
|
-
}, template: "<label class=\"mc-radio-label\" [attr.for]=\"inputId\" #label>\n <input type=\"radio\"\n class=\"mc-radio-input cdk-visually-hidden\"\n #input\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [attr.name]=\"name\"\n [required]=\"required\"\n
|
434
|
+
}, template: "<label class=\"mc-radio-label\" [attr.for]=\"inputId\" #label>\n <input type=\"radio\"\n class=\"mc-radio-input cdk-visually-hidden\"\n #input\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [attr.name]=\"name\"\n [required]=\"required\"\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($event)\">\n\n <div class=\"mc-radio-label-content\" [class.mc-radio-label-before]=\"labelPosition == 'before'\">\n <div class=\"mc-radio-button__outer-circle\">\n <div class=\"mc-radio-button__inner-circle\">\n <div class=\"mc-radio-button__inner-circle-cap\"></div>\n </div>\n </div>\n\n <div class=\"mc-radio__text-container\">\n <span class=\"mc-radio__text\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"mc-hint\"></ng-content>\n </div>\n </div>\n</label>\n", styles: [".mc-radio-button{display:inline-block}.mc-radio-label{display:inline-flex;align-items:center;vertical-align:middle;cursor:pointer;white-space:nowrap;width:100%}.mc-radio-label-content{display:inline-block;position:relative;order:0;line-height:inherit;padding-left:22px;padding-left:calc(var(--mc-radio-size-outer-size, 14px) + var(--mc-radio-size-padding, 8px));padding-right:0}.mc-radio-label-content .mc-radio-button__outer-circle,.mc-radio-label-content .mc-radio-button__inner-circle{box-sizing:content-box;position:absolute;display:flex;content:\"\";border-style:solid;border-radius:50%}.mc-radio-label-content .mc-radio-button__outer-circle{left:0;top:2px;width:14px;width:var(--mc-radio-size-outer-size, 14px);height:14px;height:var(--mc-radio-size-outer-size, 14px);border-width:1px}.mc-radio-label-content .mc-radio-button__inner-circle{position:relative;margin:auto;width:10px;width:var(--mc-radio-size-inner-size, 10px);height:10px;height:var(--mc-radio-size-inner-size, 10px);border-width:1px}.mc-radio-label-content .mc-radio-button__inner-circle .mc-radio-button__inner-circle-cap{margin:auto;width:6px;width:var(--mc-radio-size-cap-size, 6px);height:6px;height:var(--mc-radio-size-cap-size, 6px);border-radius:50%}.mc-radio-label-content .mc-radio__text-container{display:flex;flex-direction:column}.mc-radio-label-content .mc-radio__text-container .mc-hint{margin-top:2px}[dir=rtl] .mc-radio-label-content{padding-right:8px;padding-right:var(--mc-radio-size-padding, 8px);padding-left:0}.mc-radio-input{position:absolute;outline:none;opacity:0}\n"] }]
|
426
435
|
}], ctorParameters: function () {
|
427
436
|
return [{ type: McRadioGroup, decorators: [{
|
428
437
|
type: Optional
|
@@ -439,15 +448,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
439
448
|
type: Input
|
440
449
|
}], name: [{
|
441
450
|
type: Input
|
442
|
-
}], ariaLabel: [{
|
443
|
-
type: Input,
|
444
|
-
args: ['aria-label']
|
445
|
-
}], ariaLabelledby: [{
|
446
|
-
type: Input,
|
447
|
-
args: ['aria-labelledby']
|
448
|
-
}], ariaDescribedby: [{
|
449
|
-
type: Input,
|
450
|
-
args: ['aria-describedby']
|
451
451
|
}], inputElement: [{
|
452
452
|
type: ViewChild,
|
453
453
|
args: ['input', { static: false }]
|
@@ -461,10 +461,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
461
461
|
|
462
462
|
class McRadioModule {
|
463
463
|
}
|
464
|
-
/** @nocollapse */
|
465
|
-
/** @nocollapse */
|
466
|
-
/** @nocollapse */
|
467
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
464
|
+
/** @nocollapse */ McRadioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
465
|
+
/** @nocollapse */ McRadioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: McRadioModule, declarations: [McRadioGroup, McRadioButton], imports: [CommonModule, A11yModule, McCommonModule], exports: [McRadioGroup, McRadioButton] });
|
466
|
+
/** @nocollapse */ McRadioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McRadioModule, imports: [CommonModule, A11yModule, McCommonModule] });
|
467
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: McRadioModule, decorators: [{
|
468
468
|
type: NgModule,
|
469
469
|
args: [{
|
470
470
|
imports: [CommonModule, A11yModule, McCommonModule],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ptsecurity-mosaic-radio.mjs","sources":["../../../packages/mosaic/radio/radio.component.ts","../../../packages/mosaic/radio/radio.component.html","../../../packages/mosaic/radio/radio.module.ts","../../../packages/mosaic/radio/ptsecurity-mosaic-radio.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n CanColor,\n CanColorCtor,\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n mixinColor,\n mixinDisabled,\n mixinTabIndex,\n toBoolean\n} from '@ptsecurity/mosaic/core';\n\n\n// Increasing integer for generating unique ids for radio components.\nlet nextUniqueId = 0;\n\n/** Change event object emitted by McRadio. */\nexport class McRadioChange {\n constructor(\n /** The McRadioButton that emits the change event. */\n public source: McRadioButton,\n /** The value of the McRadioButton. */\n public value: any) {}\n}\n\n// Boilerplate for applying mixins to McRadioGroup.\n/** @docs-private */\nexport class McRadioGroupBase {\n // tslint:disable-next-line:naming-convention\n constructor(public _elementRef: ElementRef) {}\n}\n// tslint:disable-next-line:naming-convention\nexport const McRadioGroupMixinBase: CanDisableCtor & typeof McRadioGroupBase = mixinDisabled(McRadioGroupBase);\n\n/**\n * Provider Expression that allows mc-radio-group to register as a ControlValueAccessor. This\n * allows it to support [(ngModel)] and ngControl.\n * @docs-private\n */\nexport const MC_RADIO_GROUP_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McRadioGroup),\n multi: true\n};\n\n@Directive({\n selector: 'mc-radio-group',\n exportAs: 'mcRadioGroup',\n host: {\n role: 'radiogroup',\n class: 'mc-radio-group'\n },\n providers: [MC_RADIO_GROUP_CONTROL_VALUE_ACCESSOR]\n})\nexport class McRadioGroup extends McRadioGroupMixinBase\n implements AfterContentInit, ControlValueAccessor, CanDisable {\n\n /** Name of the radio button group. All radio buttons inside this group will use this name. */\n @Input()\n get name(): string { return this._name; }\n set name(value: string) {\n this._name = value;\n this.updateRadioButtonNames();\n }\n\n /** Whether the labels should appear after or before the radio-buttons. Defaults to 'after' */\n @Input()\n get labelPosition(): 'before' | 'after' {\n return this._labelPosition;\n }\n set labelPosition(v) {\n this._labelPosition = v === 'before' ? 'before' : 'after';\n this.markRadiosForCheck();\n }\n\n /** Value of the radio button. */\n @Input()\n get value(): any { return this._value; }\n set value(newValue: any) {\n if (this._value !== newValue) {\n // Set this before proceeding to ensure no circular loop occurs with selection.\n this._value = newValue;\n\n this.updateSelectedRadioFromValue();\n this.checkSelectedRadioButton();\n }\n }\n\n /** Whether the radio button is selected. */\n @Input()\n get selected() { return this._selected; }\n set selected(selected: McRadioButton | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this.checkSelectedRadioButton();\n }\n\n /** Whether the radio group is disabled */\n @Input()\n get disabled(): boolean { return this._disabled; }\n set disabled(value) {\n this._disabled = toBoolean(value);\n this.markRadiosForCheck();\n }\n\n /** Whether the radio group is required */\n @Input()\n get required(): boolean { return this._required; }\n set required(value: boolean) {\n this._required = toBoolean(value);\n this.markRadiosForCheck();\n }\n\n /**\n * Event emitted when the group value changes.\n * Change events are only emitted when the value changes due to user interaction with\n * a radio button (the same behavior as `<input type-\"radio\">`).\n */\n @Output() readonly change: EventEmitter<McRadioChange> = new EventEmitter<McRadioChange>();\n\n /** Child radio buttons. */\n @ContentChildren(forwardRef(() => McRadioButton), { descendants: true })\n radios: QueryList<McRadioButton>;\n\n /**\n * Selected value for group. Should equal the value of the selected radio button if there *is*\n * a corresponding radio button with a matching value. If there is *not* such a corresponding\n * radio button, this value persists to be applied in case a new radio button is added with a\n * matching value.\n */\n private _value: any = null;\n\n /** The HTML name attribute applied to radio buttons in this group. */\n private _name: string = `mc-radio-group-${nextUniqueId++}`;\n\n /** The currently selected radio button. Should match value. */\n private _selected: McRadioButton | null = null;\n\n /** Whether the `value` has been set to its initial value. */\n private isInitialized: boolean = false;\n\n /** Whether the labels should appear after or before the radio-buttons. Defaults to 'after' */\n private _labelPosition: 'before' | 'after' = 'after';\n\n /** Whether the radio group is disabled. */\n private _disabled: boolean = false;\n\n /** Whether the radio group is required. */\n private _required: boolean = false;\n\n constructor(elementRef: ElementRef, private readonly _changeDetector: ChangeDetectorRef) {\n super(elementRef);\n }\n\n /** The method to be called in order to update ngModel */\n // tslint:disable-next-line\n controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n * @docs-private\n */\n // tslint:disable-next-line\n onTouched: () => any = () => {};\n\n checkSelectedRadioButton() {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n }\n\n /**\n * Initialize properties once content children are available.\n * This allows us to propagate relevant attributes to associated buttons.\n */\n ngAfterContentInit() {\n // Mark this component as initialized in AfterContentInit because the initial value can\n // possibly be set by NgModel on McRadioGroup, and it is possible that the OnInit of the\n // NgModel occurs *after* the OnInit of the McRadioGroup.\n this.isInitialized = true;\n }\n\n /**\n * Mark this group as being \"touched\" (for ngModel). Meant to be called by the contained\n * radio buttons upon their blur.\n */\n touch() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n /** Dispatch change event with current selection and group value. */\n emitChangeEvent(): void {\n if (this.isInitialized) {\n this.change.emit(new McRadioChange(this._selected!, this._value));\n }\n }\n\n markRadiosForCheck() {\n if (this.radios) {\n this.radios.forEach((radio) => radio.markForCheck());\n }\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n */\n writeValue(value: any) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n\n /**\n * Registers a callback to be triggered when the model value changes.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control is touched.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param isDisabled Whether the control should be disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this._changeDetector.markForCheck();\n }\n\n private updateRadioButtonNames(): void {\n if (this.radios) {\n this.radios.forEach((radio) => {\n radio.name = this.name;\n });\n }\n }\n\n /** Updates the `selected` radio button from the internal _value state. */\n private updateSelectedRadioFromValue(): void {\n // If the value already matches the selected radio, do nothing.\n const isAlreadySelected = this._selected !== null && this._selected.value === this._value;\n\n if (this.radios != null && !isAlreadySelected) {\n this._selected = null;\n this.radios.forEach((radio) => {\n radio.checked = this.value === radio.value;\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n }\n}\n\n\n// Boilerplate for applying mixins to McRadioButton.\n/** @docs-private */\n// tslint:disable-next-line:naming-convention\nabstract class McRadioButtonBase {\n // Since the disabled property is manually defined for the McRadioButton and isn't set up in\n // the mixin base class. To be able to use the tabindex mixin, a disabled property must be\n // defined to properly work.\n abstract disabled: boolean;\n\n // tslint:disable-next-line:naming-convention\n constructor(public _elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McRadioButtonMixinBase:\n CanColorCtor & HasTabIndexCtor & typeof McRadioButtonBase = mixinColor(mixinTabIndex(McRadioButtonBase));\n\n\n@Component({\n selector: 'mc-radio-button',\n templateUrl: 'radio.component.html',\n styleUrls: ['radio.scss'],\n inputs: ['color', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'mcRadioButton',\n host: {\n class: 'mc-radio-button',\n '[attr.id]': 'id',\n '[class.mc-selected]': 'checked',\n '[class.mc-disabled]': 'disabled'\n }\n})\nexport class McRadioButton extends McRadioButtonMixinBase\n implements OnInit, AfterViewInit, OnDestroy, CanColor, HasTabIndex {\n\n /** Whether this radio button is checked. */\n @Input()\n get checked(): boolean { return this._checked; }\n set checked(value: boolean) {\n const newCheckedState = toBoolean(value);\n\n if (this._checked !== newCheckedState) {\n this._checked = newCheckedState;\n\n if (newCheckedState && this.radioGroup && this.radioGroup.value !== this.value) {\n this.radioGroup.selected = this;\n } else if (!newCheckedState && this.radioGroup && this.radioGroup.value === this.value) {\n // When unchecking the selected radio button, update the selected radio\n // property on the group.\n this.radioGroup.selected = null;\n }\n\n if (newCheckedState) {\n // Notify all radio buttons with the same name to un-check.\n this._radioDispatcher.notify(this.id, this.name);\n }\n this._changeDetector.markForCheck();\n }\n }\n\n /** The value of this radio button. */\n @Input()\n get value(): any { return this._value; }\n set value(value: any) {\n if (this._value !== value) {\n this._value = value;\n if (this.radioGroup != null) {\n if (!this.checked) {\n // Update checked when the value changed to match the radio group's value\n this.checked = this.radioGroup.value === value;\n }\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n }\n\n /** Whether the radio button is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.radioGroup != null && this.radioGroup.disabled);\n }\n set disabled(value: boolean) {\n const newDisabledState = toBoolean(value);\n\n if (this._disabled !== newDisabledState) {\n\n this._disabled = newDisabledState;\n this._changeDetector.markForCheck();\n }\n }\n\n /** Whether the radio button is required. */\n @Input()\n get required(): boolean {\n return this._required || (this.radioGroup && this.radioGroup.required);\n }\n set required(value: boolean) {\n this._required = toBoolean(value);\n }\n\n /** Whether the label should appear after or before the radio button. Defaults to 'after' */\n @Input()\n get labelPosition(): 'before' | 'after' {\n return this._labelPosition || (this.radioGroup && this.radioGroup.labelPosition) || 'after';\n }\n set labelPosition(value) {\n this._labelPosition = value;\n }\n\n /** Analog to HTML 'name' attribute used to group radios for unique selection. */\n @Input() name: string;\n\n /** Used to set the 'aria-label' attribute on the underlying input element. */\n @Input('aria-label') ariaLabel: string;\n\n /** The 'aria-labelledby' attribute takes precedence as the element's text alternative. */\n @Input('aria-labelledby') ariaLabelledby: string;\n\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\n @Input('aria-describedby') ariaDescribedby: string;\n\n /** The native `<input type=radio>` element */\n @ViewChild('input', {static: false}) inputElement: ElementRef;\n\n /**\n * Event emitted when the checked state of this radio button changes.\n * Change events are only emitted when the value changes due to user interaction with\n * the radio button (the same behavior as `<input type-\"radio\">`).\n */\n @Output() readonly change: EventEmitter<McRadioChange> = new EventEmitter<McRadioChange>();\n\n /** The parent radio group. May or may not be present. */\n radioGroup: McRadioGroup;\n\n @Input()\n isFocused: boolean = false;\n\n /** The unique ID for the radio button. */\n @Input() id: string;\n\n /** ID of the native input element inside `<mc-radio-button>` */\n get inputId(): string { return `${this.id || this.uniqueId}-input`; }\n\n private _labelPosition: 'before' | 'after';\n\n /* tslint:disable:member-ordering */\n private readonly uniqueId: string = `mc-radio-${++nextUniqueId}`;\n\n /** Whether this radio is checked. */\n private _checked: boolean = false;\n\n /** Whether this radio is disabled. */\n private _disabled: boolean;\n\n /** Whether this radio is required. */\n private _required: boolean;\n\n /** Value assigned to this radio. */\n private _value: any = null;\n\n constructor(\n @Optional() radioGroup: McRadioGroup,\n elementRef: ElementRef,\n private readonly _changeDetector: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private readonly _radioDispatcher: UniqueSelectionDispatcher\n ) {\n super(elementRef);\n\n this.id = this.uniqueId;\n\n this.radioGroup = radioGroup;\n\n this.removeUniqueSelectionListener =\n _radioDispatcher.listen((id: string, name: string) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n });\n }\n\n ngOnInit() {\n if (this.radioGroup) {\n // If the radio is inside a radio group, determine if it should be checked\n this.checked = this.radioGroup.value === this._value;\n // Copy name from parent radio group\n this.name = this.radioGroup.name;\n }\n }\n\n ngAfterViewInit() {\n this.focusMonitor\n .monitor(this._elementRef, true)\n .subscribe((focusOrigin) => {\n if (!focusOrigin && this.radioGroup) {\n this.radioGroup.touch();\n }\n });\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this._elementRef);\n this.removeUniqueSelectionListener();\n }\n\n /** Focuses the radio button. */\n focus(): void {\n this.inputElement.nativeElement.focus();\n }\n\n /**\n * Marks the radio button as needing checking for change detection.\n * This method is exposed because the parent radio group will directly\n * update bound properties of the radio button.\n */\n markForCheck() {\n // When group value changes, the button will not be notified. Use `markForCheck` to explicit\n // update radio button's status\n this._changeDetector.markForCheck();\n }\n\n onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `radio-button` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n }\n\n onInputChange(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n\n const groupValueChanged = this.radioGroup && this.value !== this.radioGroup.value;\n this.checked = true;\n this.emitChangeEvent();\n\n if (this.radioGroup) {\n this.radioGroup.controlValueAccessorChangeFn(this.value);\n this.radioGroup.touch();\n if (groupValueChanged) {\n this.radioGroup.emitChangeEvent();\n }\n }\n }\n\n /** Unregister function for _radioDispatcher */\n // tslint:disable-next-line\n private readonly removeUniqueSelectionListener: () => void = () => {};\n\n /** Dispatch change event with current value. */\n private emitChangeEvent(): void {\n this.change.emit(new McRadioChange(this, this._value));\n }\n}\n","<label class=\"mc-radio-label\" [attr.for]=\"inputId\" #label>\n <input type=\"radio\"\n class=\"mc-radio-input cdk-visually-hidden\"\n #input\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [attr.name]=\"name\"\n [required]=\"required\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-describedby]=\"ariaDescribedby\"\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($event)\">\n\n <div class=\"mc-radio-label-content\" [class.mc-radio-label-before]=\"labelPosition == 'before'\">\n <div class=\"mc-radio-button__outer-circle\">\n <div class=\"mc-radio-button__inner-circle\">\n <div class=\"mc-radio-button__inner-circle-cap\"></div>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n</label>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McRadioButton, McRadioGroup } from './radio.component';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, McCommonModule],\n exports: [McRadioGroup, McRadioButton],\n declarations: [McRadioGroup, McRadioButton]\n})\nexport class McRadioModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ptsecurity-mosaic-radio.mjs","sources":["../../../packages/mosaic/radio/radio.component.ts","../../../packages/mosaic/radio/radio.component.html","../../../packages/mosaic/radio/radio.module.ts","../../../packages/mosaic/radio/ptsecurity-mosaic-radio.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n CanColor,\n CanColorCtor,\n CanDisable,\n CanDisableCtor,\n HasTabIndex,\n HasTabIndexCtor,\n mixinColor,\n mixinDisabled,\n mixinTabIndex,\n toBoolean\n} from '@ptsecurity/mosaic/core';\n\n\n// Increasing integer for generating unique ids for radio components.\nlet nextUniqueId = 0;\n\n/** Change event object emitted by McRadio. */\nexport class McRadioChange {\n constructor(\n /** The McRadioButton that emits the change event. */\n public source: McRadioButton,\n /** The value of the McRadioButton. */\n public value: any\n ) {}\n}\n\n// Boilerplate for applying mixins to McRadioGroup.\n/** @docs-private */\nexport class McRadioGroupBase {\n constructor(public elementRef: ElementRef) {}\n}\n// tslint:disable-next-line:naming-convention\nexport const McRadioGroupMixinBase: CanDisableCtor & typeof McRadioGroupBase = mixinDisabled(McRadioGroupBase);\n\n/**\n * Provider Expression that allows mc-radio-group to register as a ControlValueAccessor. This\n * allows it to support [(ngModel)] and ngControl.\n * @docs-private\n */\nexport const MC_RADIO_GROUP_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => McRadioGroup),\n multi: true\n};\n\n@Directive({\n selector: 'mc-radio-group',\n exportAs: 'mcRadioGroup',\n host: {\n role: 'radiogroup',\n class: 'mc-radio-group'\n },\n providers: [MC_RADIO_GROUP_CONTROL_VALUE_ACCESSOR]\n})\nexport class McRadioGroup extends McRadioGroupMixinBase\n implements AfterContentInit, ControlValueAccessor, CanDisable {\n\n /** Name of the radio button group. All radio buttons inside this group will use this name. */\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(value: string) {\n this._name = value;\n this.updateRadioButtonNames();\n }\n\n /** Whether the labels should appear after or before the radio-buttons. Defaults to 'after' */\n @Input()\n get labelPosition(): 'before' | 'after' {\n return this._labelPosition;\n }\n\n set labelPosition(v) {\n this._labelPosition = v === 'before' ? 'before' : 'after';\n this.markRadiosForCheck();\n }\n\n /** Value of the radio button. */\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(newValue: any) {\n if (this._value !== newValue) {\n // Set this before proceeding to ensure no circular loop occurs with selection.\n this._value = newValue;\n\n this.updateSelectedRadioFromValue();\n this.checkSelectedRadioButton();\n }\n }\n\n /** Whether the radio button is selected. */\n @Input()\n get selected() {\n return this._selected;\n }\n\n set selected(selected: McRadioButton | null) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this.checkSelectedRadioButton();\n }\n\n /** Whether the radio group is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value) {\n this._disabled = toBoolean(value);\n this.markRadiosForCheck();\n }\n\n /** Whether the radio group is required */\n @Input()\n get required(): boolean {\n return this._required;\n }\n\n set required(value: boolean) {\n this._required = toBoolean(value);\n this.markRadiosForCheck();\n }\n\n /**\n * Event emitted when the group value changes.\n * Change events are only emitted when the value changes due to user interaction with\n * a radio button (the same behavior as `<input type-\"radio\">`).\n */\n @Output() readonly change: EventEmitter<McRadioChange> = new EventEmitter<McRadioChange>();\n\n /** Child radio buttons. */\n @ContentChildren(forwardRef(() => McRadioButton), { descendants: true })\n radios: QueryList<McRadioButton>;\n\n /**\n * Selected value for group. Should equal the value of the selected radio button if there *is*\n * a corresponding radio button with a matching value. If there is *not* such a corresponding\n * radio button, this value persists to be applied in case a new radio button is added with a\n * matching value.\n */\n private _value: any = null;\n\n /** The HTML name attribute applied to radio buttons in this group. */\n private _name: string = `mc-radio-group-${nextUniqueId++}`;\n\n /** The currently selected radio button. Should match value. */\n private _selected: McRadioButton | null = null;\n\n /** Whether the `value` has been set to its initial value. */\n private isInitialized: boolean = false;\n\n /** Whether the labels should appear after or before the radio-buttons. Defaults to 'after' */\n private _labelPosition: 'before' | 'after' = 'after';\n\n /** Whether the radio group is disabled. */\n private _disabled: boolean = false;\n\n /** Whether the radio group is required. */\n private _required: boolean = false;\n\n constructor(\n elementRef: ElementRef,\n private readonly changeDetector: ChangeDetectorRef\n ) {\n super(elementRef);\n }\n\n /** The method to be called in order to update ngModel */\n // tslint:disable-next-line\n controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n * @docs-private\n */\n // tslint:disable-next-line\n onTouched: () => any = () => {};\n\n checkSelectedRadioButton() {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n }\n\n /**\n * Initialize properties once content children are available.\n * This allows us to propagate relevant attributes to associated buttons.\n */\n ngAfterContentInit() {\n // Mark this component as initialized in AfterContentInit because the initial value can\n // possibly be set by NgModel on McRadioGroup, and it is possible that the OnInit of the\n // NgModel occurs *after* the OnInit of the McRadioGroup.\n this.isInitialized = true;\n }\n\n /**\n * Mark this group as being \"touched\" (for ngModel). Meant to be called by the contained\n * radio buttons upon their blur.\n */\n touch() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n /** Dispatch change event with current selection and group value. */\n emitChangeEvent(): void {\n if (this.isInitialized) {\n this.change.emit(new McRadioChange(this._selected!, this._value));\n }\n }\n\n markRadiosForCheck() {\n if (this.radios) {\n this.radios.forEach((radio) => radio.markForCheck());\n }\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n */\n writeValue(value: any) {\n this.value = value;\n this.changeDetector.markForCheck();\n }\n\n /**\n * Registers a callback to be triggered when the model value changes.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n /**\n * Registers a callback to be triggered when the control is touched.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n /**\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param isDisabled Whether the control should be disabled.\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n this.changeDetector.markForCheck();\n }\n\n private updateRadioButtonNames(): void {\n this.radios?.forEach((radio) => radio.name = this.name);\n }\n\n /** Updates the `selected` radio button from the internal _value state. */\n private updateSelectedRadioFromValue(): void {\n // If the value already matches the selected radio, do nothing.\n const isAlreadySelected = this._selected !== null && this._selected.value === this._value;\n\n if (this.radios != null && !isAlreadySelected) {\n this._selected = null;\n\n this.radios.forEach((radio) => {\n radio.checked = this.value === radio.value;\n\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n }\n}\n\n\n// Boilerplate for applying mixins to McRadioButton.\n/** @docs-private */\n// tslint:disable-next-line:naming-convention\nabstract class McRadioButtonBase {\n // Since the disabled property is manually defined for the McRadioButton and isn't set up in\n // the mixin base class. To be able to use the tabindex mixin, a disabled property must be\n // defined to properly work.\n abstract disabled: boolean;\n\n constructor(public elementRef: ElementRef) {}\n}\n\n// tslint:disable-next-line:naming-convention\nexport const McRadioButtonMixinBase:\n CanColorCtor & HasTabIndexCtor & typeof McRadioButtonBase = mixinColor(mixinTabIndex(McRadioButtonBase));\n\n\n@Component({\n selector: 'mc-radio-button',\n templateUrl: 'radio.component.html',\n styleUrls: ['radio.scss'],\n inputs: ['color', 'tabIndex'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'mcRadioButton',\n host: {\n class: 'mc-radio-button',\n '[attr.id]': 'id',\n '[class.mc-selected]': 'checked',\n '[class.mc-disabled]': 'disabled'\n }\n})\nexport class McRadioButton extends McRadioButtonMixinBase\n implements OnInit, AfterViewInit, OnDestroy, CanColor, HasTabIndex {\n\n /** Whether this radio button is checked. */\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: boolean) {\n const newCheckedState = toBoolean(value);\n\n if (this._checked !== newCheckedState) {\n this._checked = newCheckedState;\n\n if (newCheckedState && this.radioGroup && this.radioGroup.value !== this.value) {\n this.radioGroup.selected = this;\n } else if (!newCheckedState && this.radioGroup && this.radioGroup.value === this.value) {\n // When unchecking the selected radio button, update the selected radio\n // property on the group.\n this.radioGroup.selected = null;\n }\n\n if (newCheckedState) {\n // Notify all radio buttons with the same name to un-check.\n this.radioDispatcher.notify(this.id, this.name);\n }\n this.changeDetector.markForCheck();\n }\n }\n\n /** The value of this radio button. */\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n if (this._value !== value) {\n this._value = value;\n\n if (this.radioGroup != null) {\n if (!this.checked) {\n // Update checked when the value changed to match the radio group's value\n this.checked = this.radioGroup.value === value;\n }\n\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n }\n\n /** Whether the radio button is disabled. */\n @Input()\n get disabled(): boolean {\n return this._disabled || (this.radioGroup != null && this.radioGroup.disabled);\n }\n set disabled(value: boolean) {\n const newDisabledState = toBoolean(value);\n\n if (this._disabled !== newDisabledState) {\n\n this._disabled = newDisabledState;\n this.changeDetector.markForCheck();\n }\n }\n\n /** Whether the radio button is required. */\n @Input()\n get required(): boolean {\n return this._required || (this.radioGroup && this.radioGroup.required);\n }\n set required(value: boolean) {\n this._required = toBoolean(value);\n }\n\n /** Whether the label should appear after or before the radio button. Defaults to 'after' */\n @Input()\n get labelPosition(): 'before' | 'after' {\n return this._labelPosition || (this.radioGroup && this.radioGroup.labelPosition) || 'after';\n }\n set labelPosition(value) {\n this._labelPosition = value;\n }\n\n /** Analog to HTML 'name' attribute used to group radios for unique selection. */\n @Input() name: string;\n\n /** The native `<input type=radio>` element */\n @ViewChild('input', { static: false }) inputElement: ElementRef;\n\n /**\n * Event emitted when the checked state of this radio button changes.\n * Change events are only emitted when the value changes due to user interaction with\n * the radio button (the same behavior as `<input type-\"radio\">`).\n */\n @Output() readonly change: EventEmitter<McRadioChange> = new EventEmitter<McRadioChange>();\n\n /** The parent radio group. May or may not be present. */\n radioGroup: McRadioGroup;\n\n @Input()\n isFocused: boolean = false;\n\n /** The unique ID for the radio button. */\n @Input() id: string;\n\n /** ID of the native input element inside `<mc-radio-button>` */\n get inputId(): string { return `${this.id || this.uniqueId}-input`; }\n\n private _labelPosition: 'before' | 'after';\n\n /* tslint:disable:member-ordering */\n private readonly uniqueId: string = `mc-radio-${++nextUniqueId}`;\n\n /** Whether this radio is checked. */\n private _checked: boolean = false;\n\n /** Whether this radio is disabled. */\n private _disabled: boolean;\n\n /** Whether this radio is required. */\n private _required: boolean;\n\n /** Value assigned to this radio. */\n private _value: any = null;\n\n constructor(\n @Optional() radioGroup: McRadioGroup,\n elementRef: ElementRef,\n private readonly changeDetector: ChangeDetectorRef,\n private focusMonitor: FocusMonitor,\n private readonly radioDispatcher: UniqueSelectionDispatcher\n ) {\n super(elementRef);\n\n this.id = this.uniqueId;\n\n this.radioGroup = radioGroup;\n\n this.removeUniqueSelectionListener = radioDispatcher\n .listen((id: string, name: string) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n });\n }\n\n ngOnInit() {\n if (this.radioGroup) {\n // If the radio is inside a radio group, determine if it should be checked\n this.checked = this.radioGroup.value === this._value;\n // Copy name from parent radio group\n this.name = this.radioGroup.name;\n }\n }\n\n ngAfterViewInit() {\n this.focusMonitor\n .monitor(this.elementRef, true)\n .subscribe((focusOrigin) => {\n if (!focusOrigin && this.radioGroup) {\n this.radioGroup.touch();\n }\n });\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.elementRef);\n this.removeUniqueSelectionListener();\n }\n\n /** Focuses the radio button. */\n focus(): void {\n this.inputElement.nativeElement.focus();\n }\n\n /**\n * Marks the radio button as needing checking for change detection.\n * This method is exposed because the parent radio group will directly\n * update bound properties of the radio button.\n */\n markForCheck() {\n // When group value changes, the button will not be notified. Use `markForCheck` to explicit\n // update radio button's status\n this.changeDetector.markForCheck();\n }\n\n onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `radio-button` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n }\n\n onInputChange(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n\n const groupValueChanged = this.radioGroup && this.value !== this.radioGroup.value;\n this.checked = true;\n this.emitChangeEvent();\n\n if (this.radioGroup) {\n this.radioGroup.controlValueAccessorChangeFn(this.value);\n this.radioGroup.touch();\n\n if (groupValueChanged) {\n this.radioGroup.emitChangeEvent();\n }\n }\n }\n\n /** Unregister function for _radioDispatcher */\n // tslint:disable-next-line\n private readonly removeUniqueSelectionListener: () => void = () => {};\n\n /** Dispatch change event with current value. */\n private emitChangeEvent(): void {\n this.change.emit(new McRadioChange(this, this._value));\n }\n}\n","<label class=\"mc-radio-label\" [attr.for]=\"inputId\" #label>\n <input type=\"radio\"\n class=\"mc-radio-input cdk-visually-hidden\"\n #input\n [id]=\"inputId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [attr.name]=\"name\"\n [required]=\"required\"\n (change)=\"onInputChange($event)\"\n (click)=\"onInputClick($event)\">\n\n <div class=\"mc-radio-label-content\" [class.mc-radio-label-before]=\"labelPosition == 'before'\">\n <div class=\"mc-radio-button__outer-circle\">\n <div class=\"mc-radio-button__inner-circle\">\n <div class=\"mc-radio-button__inner-circle-cap\"></div>\n </div>\n </div>\n\n <div class=\"mc-radio__text-container\">\n <span class=\"mc-radio__text\">\n <ng-content></ng-content>\n </span>\n\n <ng-content select=\"mc-hint\"></ng-content>\n </div>\n </div>\n</label>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { McCommonModule } from '@ptsecurity/mosaic/core';\n\nimport { McRadioButton, McRadioGroup } from './radio.component';\n\n\n@NgModule({\n imports: [CommonModule, A11yModule, McCommonModule],\n exports: [McRadioGroup, McRadioButton],\n declarations: [McRadioGroup, McRadioButton]\n})\nexport class McRadioModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|