@ptsecurity/mosaic 13.4.0 → 13.5.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/LICENSE +21 -21
- package/README.md +6 -6
- package/_theming.scss +7091 -6963
- package/_visual.scss +2690 -2658
- package/autocomplete/autocomplete-origin.directive.d.ts +12 -12
- package/autocomplete/autocomplete-trigger.directive.d.ts +167 -167
- package/autocomplete/autocomplete.component.d.ts +73 -73
- package/autocomplete/autocomplete.module.d.ts +12 -12
- package/autocomplete/index.d.ts +1 -1
- package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +5 -5
- package/autocomplete/public-api.d.ts +4 -4
- package/button/button.component.d.ts +40 -40
- package/button/button.module.d.ts +10 -10
- package/button/index.d.ts +1 -1
- package/button/ptsecurity-mosaic-button.d.ts +5 -5
- package/button/public-api.d.ts +2 -2
- package/button-toggle/button-toggle.component.d.ts +141 -141
- package/button-toggle/button-toggle.module.d.ts +9 -9
- package/button-toggle/index.d.ts +1 -1
- package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +5 -5
- package/button-toggle/public-api.d.ts +2 -2
- package/card/card.component.d.ts +26 -26
- package/card/card.module.d.ts +10 -10
- package/card/index.d.ts +1 -1
- package/card/ptsecurity-mosaic-card.d.ts +5 -5
- package/card/public-api.d.ts +2 -2
- package/checkbox/README.md +1 -1
- package/checkbox/checkbox-config.d.ts +13 -13
- package/checkbox/checkbox-module.d.ts +9 -9
- package/checkbox/checkbox-required-validator.d.ts +13 -13
- package/checkbox/checkbox.d.ts +140 -140
- package/checkbox/index.d.ts +1 -1
- package/checkbox/ptsecurity-mosaic-checkbox.d.ts +5 -5
- package/checkbox/public-api.d.ts +4 -4
- package/core/animation/animation.d.ts +6 -6
- package/core/animation/fade-animations.d.ts +2 -2
- package/core/animation/index.d.ts +3 -3
- package/core/animation/select-animations.d.ts +12 -12
- package/core/common-behaviors/color.d.ts +19 -19
- package/core/common-behaviors/common-module.d.ts +25 -25
- package/core/common-behaviors/constructor.d.ts +9 -9
- package/core/common-behaviors/disabled.d.ts +8 -8
- package/core/common-behaviors/error-state.d.ts +25 -25
- package/core/common-behaviors/index.d.ts +5 -5
- package/core/common-behaviors/tabindex.d.ts +8 -8
- package/core/error/error-options.d.ts +14 -14
- package/core/formatters/date/formatter.d.ts +203 -203
- package/core/formatters/date/templates/en-US.d.ts +74 -74
- package/core/formatters/date/templates/ru-RU.d.ts +74 -74
- package/core/formatters/index.d.ts +9 -9
- package/core/formatters/number/formatter.d.ts +27 -27
- package/core/forms/forms-module.d.ts +7 -7
- package/core/forms/forms.directive.d.ts +22 -22
- package/core/forms/index.d.ts +2 -2
- package/core/highlight/highlight.pipe.d.ts +7 -7
- package/core/highlight/index.d.ts +9 -9
- package/core/index.d.ts +1 -1
- package/core/label/label-options.d.ts +13 -13
- package/core/line/line.d.ts +28 -28
- package/core/option/action.d.ts +42 -42
- package/core/option/index.d.ts +4 -4
- package/core/option/optgroup.d.ts +16 -16
- package/core/option/option-module.d.ts +11 -11
- package/core/option/option.d.ts +115 -115
- package/core/overlay/overlay-position-map.d.ts +34 -34
- package/core/pop-up/constants.d.ts +29 -29
- package/core/pop-up/index.d.ts +3 -3
- package/core/pop-up/pop-up-trigger.d.ts +70 -70
- package/core/pop-up/pop-up.d.ts +36 -36
- package/core/ptsecurity-mosaic-core.d.ts +5 -5
- package/core/public-api.d.ts +17 -17
- package/core/select/constants.d.ts +23 -23
- package/core/select/errors.d.ts +19 -19
- package/core/select/events.d.ts +1 -1
- package/core/select/index.d.ts +3 -3
- package/core/selection/constants.d.ts +4 -4
- package/core/selection/index.d.ts +3 -3
- package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +21 -21
- package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +8 -8
- package/core/services/measure-scrollbar.service.d.ts +11 -11
- package/core/utils/index.d.ts +1 -1
- package/core/utils/public-api.d.ts +1 -1
- package/core/utils/utils.d.ts +2 -2
- package/core/validation/index.d.ts +1 -1
- package/core/validation/validation.d.ts +18 -16
- package/core/version.d.ts +2 -2
- package/datepicker/calendar-body.component.d.ts +63 -63
- package/datepicker/calendar.component.d.ts +151 -151
- package/datepicker/datepicker-animations.d.ts +9 -9
- package/datepicker/datepicker-errors.d.ts +2 -2
- package/datepicker/datepicker-input.directive.d.ts +178 -172
- package/datepicker/datepicker-intl.d.ts +32 -32
- package/datepicker/datepicker-module.d.ts +20 -20
- package/datepicker/datepicker-toggle.component.d.ts +35 -35
- package/datepicker/datepicker.component.d.ts +158 -158
- package/datepicker/index.d.ts +1 -1
- package/datepicker/month-view.component.d.ts +93 -93
- package/datepicker/multi-year-view.component.d.ts +72 -72
- package/datepicker/ptsecurity-mosaic-datepicker.d.ts +5 -5
- package/datepicker/public-api.d.ts +11 -11
- package/datepicker/year-view.component.d.ts +90 -90
- package/design-tokens/index.d.ts +1 -1
- package/design-tokens/legacy-2017/tokens/components/alert.json5 +83 -83
- package/design-tokens/legacy-2017/tokens/components/autocomplete.json5 +11 -11
- package/design-tokens/legacy-2017/tokens/components/badge.json5 +174 -174
- package/design-tokens/legacy-2017/tokens/components/button-toggle.json5 +10 -10
- package/design-tokens/legacy-2017/tokens/components/button.json5 +142 -142
- package/design-tokens/legacy-2017/tokens/components/card.json5 +51 -51
- package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +97 -39
- package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +64 -64
- package/design-tokens/legacy-2017/tokens/components/divider.json5 +8 -8
- package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -38
- package/design-tokens/legacy-2017/tokens/components/dropdown.json5 +48 -48
- package/design-tokens/legacy-2017/tokens/components/form-field.json5 +92 -92
- package/design-tokens/legacy-2017/tokens/components/forms.json5 +52 -52
- package/design-tokens/legacy-2017/tokens/components/icon.json5 +104 -104
- package/design-tokens/legacy-2017/tokens/components/input.json5 +12 -12
- package/design-tokens/legacy-2017/tokens/components/link.json5 +50 -50
- package/design-tokens/legacy-2017/tokens/components/list.json5 +13 -13
- package/design-tokens/legacy-2017/tokens/components/modal.json5 +81 -81
- package/design-tokens/legacy-2017/tokens/components/navbar.json5 +70 -70
- package/design-tokens/legacy-2017/tokens/components/optgroup.json5 +10 -10
- package/design-tokens/legacy-2017/tokens/components/option.json5 +12 -12
- package/design-tokens/legacy-2017/tokens/components/popover.json5 +68 -68
- package/design-tokens/legacy-2017/tokens/components/popup.json5 +18 -18
- package/design-tokens/legacy-2017/tokens/components/progress-bar.json5 +13 -13
- package/design-tokens/legacy-2017/tokens/components/progress-spinner.json5 +7 -7
- package/design-tokens/legacy-2017/tokens/components/radio.json5 +44 -44
- package/design-tokens/legacy-2017/tokens/components/select.json5 +24 -24
- package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +32 -32
- package/design-tokens/legacy-2017/tokens/components/table.json5 +15 -15
- package/design-tokens/legacy-2017/tokens/components/tabs.json5 +101 -101
- package/design-tokens/legacy-2017/tokens/components/tags.json5 +134 -131
- package/design-tokens/legacy-2017/tokens/components/textarea.json5 +12 -12
- package/design-tokens/legacy-2017/tokens/components/timepicker.json5 +7 -7
- package/design-tokens/legacy-2017/tokens/components/toggle.json5 +79 -79
- package/design-tokens/legacy-2017/tokens/components/tooltip.json5 +83 -83
- package/design-tokens/legacy-2017/tokens/components/tree.json5 +15 -15
- package/design-tokens/legacy-2017/tokens/properties/aliases.json5 +3 -3
- package/design-tokens/legacy-2017/tokens/properties/colors.json5 +118 -118
- package/design-tokens/legacy-2017/tokens/properties/font.json5 +12 -12
- package/design-tokens/legacy-2017/tokens/properties/globals.json5 +49 -49
- package/design-tokens/legacy-2017/tokens/properties/padding.json5 +3 -3
- package/design-tokens/legacy-2017/tokens/properties/palette.json5 +163 -163
- package/design-tokens/legacy-2017/tokens/properties/typography.json5 +175 -175
- package/design-tokens/legacy-2017/tokens.d.ts +7839 -7810
- package/design-tokens/pt-2022/tokens/components/alert.json5 +83 -83
- package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +11 -11
- package/design-tokens/pt-2022/tokens/components/badge.json5 +174 -174
- package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +10 -10
- package/design-tokens/pt-2022/tokens/components/button.json5 +142 -142
- package/design-tokens/pt-2022/tokens/components/card.json5 +51 -51
- package/design-tokens/pt-2022/tokens/components/checkbox.json5 +97 -39
- package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -64
- package/design-tokens/pt-2022/tokens/components/divider.json5 +8 -8
- package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -38
- package/design-tokens/pt-2022/tokens/components/dropdown.json5 +48 -48
- package/design-tokens/pt-2022/tokens/components/form-field.json5 +92 -92
- package/design-tokens/pt-2022/tokens/components/forms.json5 +52 -52
- package/design-tokens/pt-2022/tokens/components/icon.json5 +104 -104
- package/design-tokens/pt-2022/tokens/components/input.json5 +12 -12
- package/design-tokens/pt-2022/tokens/components/link.json5 +50 -50
- package/design-tokens/pt-2022/tokens/components/list.json5 +13 -13
- package/design-tokens/pt-2022/tokens/components/modal.json5 +81 -81
- package/design-tokens/pt-2022/tokens/components/navbar.json5 +70 -70
- package/design-tokens/pt-2022/tokens/components/optgroup.json5 +10 -10
- package/design-tokens/pt-2022/tokens/components/option.json5 +12 -12
- package/design-tokens/pt-2022/tokens/components/popover.json5 +68 -68
- package/design-tokens/pt-2022/tokens/components/popup.json5 +18 -18
- package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +13 -13
- package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +7 -7
- package/design-tokens/pt-2022/tokens/components/radio.json5 +44 -44
- package/design-tokens/pt-2022/tokens/components/select.json5 +24 -24
- package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +32 -32
- package/design-tokens/pt-2022/tokens/components/table.json5 +15 -15
- package/design-tokens/pt-2022/tokens/components/tabs.json5 +101 -101
- package/design-tokens/pt-2022/tokens/components/tags.json5 +137 -131
- package/design-tokens/pt-2022/tokens/components/textarea.json5 +12 -12
- package/design-tokens/pt-2022/tokens/components/timepicker.json5 +7 -7
- package/design-tokens/pt-2022/tokens/components/toggle.json5 +79 -79
- package/design-tokens/pt-2022/tokens/components/tooltip.json5 +83 -83
- package/design-tokens/pt-2022/tokens/components/tree.json5 +15 -15
- package/design-tokens/pt-2022/tokens/properties/aliases.json5 +3 -3
- package/design-tokens/pt-2022/tokens/properties/colors.json5 +120 -120
- package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -15
- package/design-tokens/pt-2022/tokens/properties/globals.json5 +49 -49
- package/design-tokens/pt-2022/tokens/properties/padding.json5 +3 -3
- package/design-tokens/pt-2022/tokens/properties/palette.json5 +232 -232
- package/design-tokens/pt-2022/tokens/properties/typography.json5 +175 -175
- package/design-tokens/pt-2022/tokens.d.ts +9171 -9139
- package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +5 -5
- package/design-tokens/public-api.d.ts +3 -3
- package/design-tokens/style-dictionary/build.js +63 -62
- package/design-tokens/style-dictionary/configs/css.js +13 -13
- package/design-tokens/style-dictionary/configs/index.js +48 -48
- package/design-tokens/style-dictionary/configs/js.js +9 -9
- package/design-tokens/style-dictionary/configs/scss.js +23 -23
- package/design-tokens/style-dictionary/filters/color.js +7 -7
- package/design-tokens/style-dictionary/filters/palette.js +7 -7
- package/design-tokens/style-dictionary/filters/size.js +7 -7
- package/design-tokens/style-dictionary/filters/typography.js +7 -7
- package/design-tokens/style-dictionary/formats/palette.js +25 -25
- package/design-tokens/style-dictionary/formats/typography.js +52 -52
- package/design-tokens/style-dictionary/transformGroups/css.js +13 -13
- package/design-tokens/style-dictionary/transformGroups/scss.js +12 -12
- package/design-tokens/style-dictionary/transformGroups/ts.js +11 -0
- package/design-tokens/style-dictionary/transforms/attribute/palette.js +9 -9
- package/design-tokens/style-dictionary/transforms/attribute/prefix.js +11 -11
- package/design-tokens/style-dictionary/transforms/attribute/size.js +8 -8
- package/design-tokens/style-dictionary/transforms/attribute/typography.js +9 -9
- package/divider/divider.component.d.ts +11 -11
- package/divider/divider.module.d.ts +8 -8
- package/divider/index.d.ts +1 -1
- package/divider/ptsecurity-mosaic-divider.d.ts +5 -5
- package/divider/public-api.d.ts +2 -2
- package/dl/dl.component.d.ts +26 -26
- package/dl/dl.module.d.ts +10 -10
- package/dl/index.d.ts +1 -1
- package/dl/ptsecurity-mosaic-dl.d.ts +5 -5
- package/dl/public-api.d.ts +2 -2
- package/dropdown/dropdown-animations.d.ts +11 -11
- package/dropdown/dropdown-content.directive.d.ts +32 -32
- package/dropdown/dropdown-errors.d.ts +17 -17
- package/dropdown/dropdown-item.component.d.ts +50 -50
- package/dropdown/dropdown-trigger.directive.d.ts +136 -136
- package/dropdown/dropdown.component.d.ts +121 -121
- package/dropdown/dropdown.module.d.ts +13 -13
- package/dropdown/dropdown.types.d.ts +53 -53
- package/dropdown/index.d.ts +1 -1
- package/dropdown/ptsecurity-mosaic-dropdown.d.ts +5 -5
- package/dropdown/public-api.d.ts +8 -8
- package/esm2020/autocomplete/autocomplete-origin.directive.mjs +21 -21
- package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +555 -555
- package/esm2020/autocomplete/autocomplete.component.mjs +154 -154
- package/esm2020/autocomplete/autocomplete.module.mjs +34 -34
- package/esm2020/autocomplete/index.mjs +2 -2
- package/esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs +4 -4
- package/esm2020/autocomplete/public-api.mjs +5 -5
- package/esm2020/button/button.component.mjs +137 -137
- package/esm2020/button/button.module.mjs +38 -38
- package/esm2020/button/index.mjs +2 -2
- package/esm2020/button/ptsecurity-mosaic-button.mjs +4 -4
- package/esm2020/button/public-api.mjs +3 -3
- package/esm2020/button-toggle/button-toggle.component.mjs +362 -362
- package/esm2020/button-toggle/button-toggle.module.mjs +19 -19
- package/esm2020/button-toggle/index.mjs +2 -2
- package/esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs +4 -4
- package/esm2020/button-toggle/public-api.mjs +3 -3
- package/esm2020/card/card.component.mjs +80 -80
- package/esm2020/card/card.module.mjs +30 -30
- package/esm2020/card/index.mjs +2 -2
- package/esm2020/card/ptsecurity-mosaic-card.mjs +4 -4
- package/esm2020/card/public-api.mjs +3 -3
- package/esm2020/checkbox/checkbox-config.mjs +6 -6
- package/esm2020/checkbox/checkbox-module.mjs +19 -19
- package/esm2020/checkbox/checkbox-required-validator.mjs +27 -27
- package/esm2020/checkbox/checkbox.mjs +316 -315
- package/esm2020/checkbox/index.mjs +2 -2
- package/esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs +4 -4
- package/esm2020/checkbox/public-api.mjs +5 -5
- package/esm2020/core/animation/animation.mjs +8 -8
- package/esm2020/core/animation/fade-animations.mjs +9 -9
- package/esm2020/core/animation/index.mjs +4 -4
- package/esm2020/core/animation/select-animations.mjs +45 -45
- package/esm2020/core/common-behaviors/color.mjs +30 -30
- package/esm2020/core/common-behaviors/common-module.mjs +83 -83
- package/esm2020/core/common-behaviors/constructor.mjs +2 -2
- package/esm2020/core/common-behaviors/disabled.mjs +17 -17
- package/esm2020/core/common-behaviors/error-state.mjs +31 -31
- package/esm2020/core/common-behaviors/index.mjs +6 -6
- package/esm2020/core/common-behaviors/tabindex.mjs +18 -18
- package/esm2020/core/error/error-options.mjs +26 -26
- package/esm2020/core/formatters/date/formatter.mjs +359 -359
- package/esm2020/core/formatters/date/templates/en-US.mjs +281 -281
- package/esm2020/core/formatters/date/templates/ru-RU.mjs +281 -281
- package/esm2020/core/formatters/index.mjs +20 -20
- package/esm2020/core/formatters/number/formatter.mjs +105 -105
- package/esm2020/core/forms/forms-module.mjs +24 -24
- package/esm2020/core/forms/forms.directive.mjs +66 -66
- package/esm2020/core/forms/index.mjs +3 -3
- package/esm2020/core/highlight/highlight.pipe.mjs +17 -17
- package/esm2020/core/highlight/index.mjs +19 -19
- package/esm2020/core/index.mjs +2 -2
- package/esm2020/core/label/label-options.mjs +4 -4
- package/esm2020/core/line/line.mjs +70 -70
- package/esm2020/core/option/action.mjs +121 -121
- package/esm2020/core/option/index.mjs +5 -5
- package/esm2020/core/option/optgroup.mjs +31 -31
- package/esm2020/core/option/option-module.mjs +21 -21
- package/esm2020/core/option/option.mjs +257 -257
- package/esm2020/core/overlay/overlay-position-map.mjs +244 -244
- package/esm2020/core/pop-up/constants.mjs +34 -34
- package/esm2020/core/pop-up/index.mjs +4 -4
- package/esm2020/core/pop-up/pop-up-trigger.mjs +239 -239
- package/esm2020/core/pop-up/pop-up.mjs +94 -94
- package/esm2020/core/ptsecurity-mosaic-core.mjs +4 -4
- package/esm2020/core/public-api.mjs +18 -18
- package/esm2020/core/select/constants.mjs +27 -27
- package/esm2020/core/select/errors.mjs +26 -26
- package/esm2020/core/select/events.mjs +2 -2
- package/esm2020/core/select/index.mjs +4 -4
- package/esm2020/core/selection/constants.mjs +6 -6
- package/esm2020/core/selection/index.mjs +4 -4
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +37 -37
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -18
- package/esm2020/core/services/measure-scrollbar.service.mjs +48 -48
- package/esm2020/core/utils/index.mjs +2 -2
- package/esm2020/core/utils/public-api.mjs +2 -2
- package/esm2020/core/utils/utils.mjs +5 -5
- package/esm2020/core/validation/index.mjs +2 -2
- package/esm2020/core/validation/validation.mjs +118 -89
- package/esm2020/core/version.mjs +3 -3
- package/esm2020/datepicker/calendar-body.component.mjs +106 -106
- package/esm2020/datepicker/calendar.component.mjs +362 -362
- package/esm2020/datepicker/datepicker-animations.mjs +32 -32
- package/esm2020/datepicker/datepicker-errors.mjs +6 -6
- package/esm2020/datepicker/datepicker-input.directive.mjs +936 -900
- package/esm2020/datepicker/datepicker-intl.mjs +40 -40
- package/esm2020/datepicker/datepicker-module.mjs +107 -107
- package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -86
- package/esm2020/datepicker/datepicker.component.mjs +408 -408
- package/esm2020/datepicker/index.mjs +2 -2
- package/esm2020/datepicker/month-view.component.mjs +257 -257
- package/esm2020/datepicker/multi-year-view.component.mjs +218 -218
- package/esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs +4 -4
- package/esm2020/datepicker/public-api.mjs +12 -12
- package/esm2020/datepicker/year-view.component.mjs +253 -253
- package/esm2020/design-tokens/index.mjs +2 -2
- package/esm2020/design-tokens/legacy-2017/tokens.mjs +1133 -1104
- package/esm2020/design-tokens/pt-2022/tokens.mjs +1203 -1171
- package/esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs +4 -4
- package/esm2020/design-tokens/public-api.mjs +4 -4
- package/esm2020/divider/divider.component.mjs +39 -39
- package/esm2020/divider/divider.module.mjs +18 -18
- package/esm2020/divider/index.mjs +2 -2
- package/esm2020/divider/ptsecurity-mosaic-divider.mjs +4 -4
- package/esm2020/divider/public-api.mjs +3 -3
- package/esm2020/dl/dl.component.mjs +78 -78
- package/esm2020/dl/dl.module.mjs +42 -42
- package/esm2020/dl/index.mjs +2 -2
- package/esm2020/dl/ptsecurity-mosaic-dl.mjs +4 -4
- package/esm2020/dl/public-api.mjs +3 -3
- package/esm2020/dropdown/dropdown-animations.mjs +41 -41
- package/esm2020/dropdown/dropdown-content.directive.mjs +64 -64
- package/esm2020/dropdown/dropdown-errors.mjs +29 -29
- package/esm2020/dropdown/dropdown-item.component.mjs +139 -139
- package/esm2020/dropdown/dropdown-trigger.directive.mjs +489 -489
- package/esm2020/dropdown/dropdown.component.mjs +292 -292
- package/esm2020/dropdown/dropdown.module.mjs +50 -50
- package/esm2020/dropdown/dropdown.types.mjs +24 -24
- package/esm2020/dropdown/index.mjs +2 -2
- package/esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs +4 -4
- package/esm2020/dropdown/public-api.mjs +9 -9
- package/esm2020/form-field/cleaner.mjs +23 -23
- package/esm2020/form-field/form-field-control.mjs +5 -5
- package/esm2020/form-field/form-field-errors.mjs +7 -7
- package/esm2020/form-field/form-field.mjs +225 -225
- package/esm2020/form-field/form-field.module.mjs +57 -57
- package/esm2020/form-field/hint.mjs +23 -23
- package/esm2020/form-field/index.mjs +2 -2
- package/esm2020/form-field/password-hint.mjs +134 -134
- package/esm2020/form-field/prefix.mjs +13 -13
- package/esm2020/form-field/ptsecurity-mosaic-form-field.mjs +4 -4
- package/esm2020/form-field/public-api.mjs +11 -11
- package/esm2020/form-field/stepper.mjs +55 -55
- package/esm2020/form-field/suffix.mjs +13 -13
- package/esm2020/icon/icon.component.mjs +44 -44
- package/esm2020/icon/icon.module.mjs +38 -38
- package/esm2020/icon/index.mjs +2 -2
- package/esm2020/icon/ptsecurity-mosaic-icon.mjs +4 -4
- package/esm2020/icon/public-api.mjs +3 -3
- package/esm2020/index.mjs +2 -2
- package/esm2020/input/index.mjs +2 -2
- package/esm2020/input/input-errors.mjs +4 -4
- package/esm2020/input/input-number-validators.mjs +92 -92
- package/esm2020/input/input-number.mjs +163 -163
- package/esm2020/input/input-password.mjs +368 -368
- package/esm2020/input/input-value-accessor.mjs +3 -3
- package/esm2020/input/input.mjs +334 -334
- package/esm2020/input/input.module.mjs +65 -65
- package/esm2020/input/ptsecurity-mosaic-input.mjs +4 -4
- package/esm2020/input/public-api.mjs +7 -7
- package/esm2020/link/index.mjs +2 -2
- package/esm2020/link/link.component.mjs +107 -107
- package/esm2020/link/link.module.mjs +26 -26
- package/esm2020/link/ptsecurity-mosaic-link.mjs +4 -4
- package/esm2020/link/public-api.mjs +3 -3
- package/esm2020/list/index.mjs +2 -2
- package/esm2020/list/list-selection.component.mjs +686 -687
- package/esm2020/list/list.component.mjs +44 -44
- package/esm2020/list/list.module.mjs +55 -55
- package/esm2020/list/ptsecurity-mosaic-list.mjs +4 -4
- package/esm2020/list/public-api.mjs +4 -4
- package/esm2020/modal/css-unit.pipe.mjs +17 -17
- package/esm2020/modal/index.mjs +2 -2
- package/esm2020/modal/modal-control.service.mjs +85 -85
- package/esm2020/modal/modal-ref.class.mjs +8 -8
- package/esm2020/modal/modal-util.mjs +17 -17
- package/esm2020/modal/modal.component.mjs +501 -501
- package/esm2020/modal/modal.directive.mjs +52 -52
- package/esm2020/modal/modal.module.mjs +72 -72
- package/esm2020/modal/modal.service.mjs +124 -124
- package/esm2020/modal/modal.type.mjs +7 -7
- package/esm2020/modal/ptsecurity-mosaic-modal.mjs +4 -4
- package/esm2020/modal/public-api.mjs +7 -7
- package/esm2020/navbar/index.mjs +2 -2
- package/esm2020/navbar/navbar-item.component.mjs +582 -582
- package/esm2020/navbar/navbar.component.mjs +237 -237
- package/esm2020/navbar/navbar.module.mjs +92 -92
- package/esm2020/navbar/ptsecurity-mosaic-navbar.mjs +4 -4
- package/esm2020/navbar/public-api.mjs +5 -5
- package/esm2020/navbar/vertical-navbar.animation.mjs +10 -10
- package/esm2020/navbar/vertical-navbar.component.mjs +114 -114
- package/esm2020/popover/index.mjs +2 -2
- package/esm2020/popover/popover-animations.mjs +16 -16
- package/esm2020/popover/popover-confirm.component.mjs +108 -108
- package/esm2020/popover/popover.component.mjs +253 -253
- package/esm2020/popover/popover.module.mjs +24 -24
- package/esm2020/popover/ptsecurity-mosaic-popover.mjs +4 -4
- package/esm2020/popover/public-api.mjs +5 -5
- package/esm2020/progress-bar/index.mjs +2 -2
- package/esm2020/progress-bar/progress-bar.component.mjs +42 -42
- package/esm2020/progress-bar/progress-bar.module.mjs +30 -30
- package/esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs +4 -4
- package/esm2020/progress-bar/public-api.mjs +3 -3
- package/esm2020/progress-spinner/index.mjs +2 -2
- package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -46
- package/esm2020/progress-spinner/progress-spinner.module.mjs +30 -30
- package/esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs +4 -4
- package/esm2020/progress-spinner/public-api.mjs +3 -3
- package/esm2020/ptsecurity-mosaic.mjs +4 -4
- package/esm2020/public-api.mjs +2 -2
- package/esm2020/radio/index.mjs +2 -2
- package/esm2020/radio/ptsecurity-mosaic-radio.mjs +4 -4
- package/esm2020/radio/public-api.mjs +3 -3
- package/esm2020/radio/radio.component.mjs +458 -458
- package/esm2020/radio/radio.module.mjs +20 -20
- package/esm2020/select/index.mjs +2 -2
- package/esm2020/select/ptsecurity-mosaic-select.mjs +4 -4
- package/esm2020/select/public-api.mjs +4 -4
- package/esm2020/select/select-option.directive.mjs +65 -65
- package/esm2020/select/select.component.mjs +1107 -1110
- package/esm2020/select/select.module.mjs +73 -73
- package/esm2020/sidebar/index.mjs +2 -2
- package/esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs +4 -4
- package/esm2020/sidebar/public-api.mjs +3 -3
- package/esm2020/sidebar/sidebar-animations.mjs +23 -23
- package/esm2020/sidebar/sidebar.component.mjs +146 -146
- package/esm2020/sidebar/sidebar.module.mjs +30 -30
- package/esm2020/sidepanel/index.mjs +2 -2
- package/esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs +4 -4
- package/esm2020/sidepanel/public-api.mjs +7 -7
- package/esm2020/sidepanel/sidepanel-animations.mjs +26 -26
- package/esm2020/sidepanel/sidepanel-config.mjs +26 -26
- package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -106
- package/esm2020/sidepanel/sidepanel-directives.mjs +159 -159
- package/esm2020/sidepanel/sidepanel-ref.mjs +53 -53
- package/esm2020/sidepanel/sidepanel.module.mjs +74 -74
- package/esm2020/sidepanel/sidepanel.service.mjs +167 -167
- package/esm2020/splitter/index.mjs +2 -2
- package/esm2020/splitter/ptsecurity-mosaic-splitter.mjs +4 -4
- package/esm2020/splitter/public-api.mjs +3 -3
- package/esm2020/splitter/splitter.component.mjs +482 -482
- package/esm2020/splitter/splitter.module.mjs +40 -40
- package/esm2020/table/index.mjs +2 -2
- package/esm2020/table/ptsecurity-mosaic-table.mjs +4 -4
- package/esm2020/table/public-api.mjs +3 -3
- package/esm2020/table/table.component.mjs +16 -16
- package/esm2020/table/table.module.mjs +30 -30
- package/esm2020/tabs/index.mjs +2 -2
- package/esm2020/tabs/paginated-tab-header.mjs +479 -479
- package/esm2020/tabs/ptsecurity-mosaic-tabs.mjs +4 -4
- package/esm2020/tabs/public-api.mjs +11 -11
- package/esm2020/tabs/tab-body.component.mjs +178 -178
- package/esm2020/tabs/tab-content.directive.mjs +15 -15
- package/esm2020/tabs/tab-group.component.mjs +350 -350
- package/esm2020/tabs/tab-header.component.mjs +67 -67
- package/esm2020/tabs/tab-label-wrapper.directive.mjs +78 -78
- package/esm2020/tabs/tab-label.directive.mjs +17 -17
- package/esm2020/tabs/tab-nav-bar/index.mjs +2 -2
- package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -110
- package/esm2020/tabs/tab.component.mjs +133 -133
- package/esm2020/tabs/tabs-animations.mjs +24 -24
- package/esm2020/tabs/tabs.module.mjs +104 -104
- package/esm2020/tags/index.mjs +2 -2
- package/esm2020/tags/ptsecurity-mosaic-tags.mjs +4 -4
- package/esm2020/tags/public-api.mjs +6 -6
- package/esm2020/tags/tag-default-options.mjs +4 -4
- package/esm2020/tags/tag-input.mjs +229 -229
- package/esm2020/tags/tag-list.component.mjs +722 -722
- package/esm2020/tags/tag-text-control.mjs +2 -2
- package/esm2020/tags/tag.component.mjs +375 -375
- package/esm2020/tags/tag.module.mjs +56 -56
- package/esm2020/textarea/index.mjs +2 -2
- package/esm2020/textarea/ptsecurity-mosaic-textarea.mjs +4 -4
- package/esm2020/textarea/public-api.mjs +3 -3
- package/esm2020/textarea/textarea.component.mjs +269 -269
- package/esm2020/textarea/textarea.module.mjs +21 -21
- package/esm2020/timepicker/index.mjs +2 -2
- package/esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs +4 -4
- package/esm2020/timepicker/public-api.mjs +4 -4
- package/esm2020/timepicker/timepicker.constants.mjs +25 -25
- package/esm2020/timepicker/timepicker.directive.mjs +676 -653
- package/esm2020/timepicker/timepicker.module.mjs +34 -34
- package/esm2020/toggle/index.mjs +2 -2
- package/esm2020/toggle/ptsecurity-mosaic-toggle.mjs +4 -4
- package/esm2020/toggle/public-api.mjs +3 -3
- package/esm2020/toggle/toggle.component.mjs +158 -158
- package/esm2020/toggle/toggle.module.mjs +20 -20
- package/esm2020/tooltip/index.mjs +2 -2
- package/esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs +4 -4
- package/esm2020/tooltip/public-api.mjs +3 -3
- package/esm2020/tooltip/tooltip.animations.mjs +19 -19
- package/esm2020/tooltip/tooltip.component.mjs +295 -295
- package/esm2020/tooltip/tooltip.module.mjs +43 -43
- package/esm2020/tree/control/base-tree-control.mjs +60 -60
- package/esm2020/tree/control/flat-tree-control.mjs +123 -123
- package/esm2020/tree/control/nested-tree-control.mjs +41 -41
- package/esm2020/tree/control/tree-control.mjs +2 -2
- package/esm2020/tree/data-source/flat-data-source.mjs +162 -162
- package/esm2020/tree/data-source/nested-data-source.mjs +30 -30
- package/esm2020/tree/index.mjs +2 -2
- package/esm2020/tree/node.mjs +31 -31
- package/esm2020/tree/outlet.mjs +15 -15
- package/esm2020/tree/padding.directive.mjs +110 -110
- package/esm2020/tree/ptsecurity-mosaic-tree.mjs +4 -4
- package/esm2020/tree/public-api.mjs +16 -16
- package/esm2020/tree/toggle.mjs +80 -80
- package/esm2020/tree/tree-base.mjs +243 -243
- package/esm2020/tree/tree-errors.mjs +36 -36
- package/esm2020/tree/tree-option.component.mjs +236 -234
- package/esm2020/tree/tree-selection.component.mjs +540 -535
- package/esm2020/tree/tree.mjs +15 -15
- package/esm2020/tree/tree.module.mjs +57 -53
- package/esm2020/tree-select/index.mjs +2 -2
- package/esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs +4 -4
- package/esm2020/tree-select/public-api.mjs +3 -3
- package/esm2020/tree-select/tree-select.component.mjs +924 -925
- package/esm2020/tree-select/tree-select.module.mjs +47 -47
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +726 -726
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +367 -367
- package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button.mjs +160 -160
- package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-card.mjs +96 -96
- package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs +349 -348
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-core.mjs +2642 -2613
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2687 -2649
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2374 -2284
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-divider.mjs +48 -48
- package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dl.mjs +108 -108
- package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1069 -1069
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +506 -506
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-icon.mjs +73 -73
- package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-input.mjs +975 -975
- package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-link.mjs +121 -121
- package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-list.mjs +762 -763
- package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-modal.mjs +824 -824
- package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-navbar.mjs +993 -993
- package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-popover.mjs +364 -364
- package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +61 -61
- package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +65 -65
- package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-radio.mjs +464 -464
- package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-select.mjs +1203 -1205
- package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidebar.mjs +185 -185
- package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +555 -555
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-splitter.mjs +511 -511
- package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-table.mjs +36 -36
- package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tabs.mjs +1460 -1460
- package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tags.mjs +1342 -1342
- package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-textarea.mjs +274 -274
- package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-timepicker.mjs +718 -695
- package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-toggle.mjs +163 -163
- package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs +344 -344
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs +940 -940
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree.mjs +1676 -1669
- package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic.mjs +2 -2
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +722 -722
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +365 -365
- package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-button.mjs +160 -160
- package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-card.mjs +96 -96
- package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs +347 -346
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs +2671 -2642
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2672 -2635
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2374 -2284
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-divider.mjs +48 -48
- package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dl.mjs +108 -108
- package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs +1056 -1056
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +491 -491
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-icon.mjs +71 -71
- package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-input.mjs +964 -964
- package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-link.mjs +120 -120
- package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-list.mjs +755 -756
- package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-modal.mjs +820 -820
- package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-navbar.mjs +977 -977
- package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-popover.mjs +360 -360
- package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +61 -61
- package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +65 -65
- package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-radio.mjs +462 -462
- package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-select.mjs +1198 -1201
- package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidebar.mjs +185 -185
- package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +552 -552
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-splitter.mjs +511 -511
- package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-table.mjs +36 -36
- package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tabs.mjs +1445 -1445
- package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tags.mjs +1335 -1335
- package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-textarea.mjs +272 -272
- package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-timepicker.mjs +715 -692
- package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-toggle.mjs +163 -163
- package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs +336 -336
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs +937 -938
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree.mjs +1663 -1656
- package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic.mjs +2 -2
- package/form-field/cleaner.d.ts +7 -7
- package/form-field/form-field-control.d.ts +37 -37
- package/form-field/form-field-errors.d.ts +2 -2
- package/form-field/form-field.d.ts +69 -69
- package/form-field/form-field.module.d.ts +15 -15
- package/form-field/hint.d.ts +6 -6
- package/form-field/index.d.ts +1 -1
- package/form-field/password-hint.d.ts +40 -40
- package/form-field/prefix.d.ts +5 -5
- package/form-field/ptsecurity-mosaic-form-field.d.ts +5 -5
- package/form-field/public-api.d.ts +10 -10
- package/form-field/stepper.d.ts +11 -11
- package/form-field/suffix.d.ts +5 -5
- package/icon/icon.component.d.ts +18 -18
- package/icon/icon.module.d.ts +10 -10
- package/icon/index.d.ts +1 -1
- package/icon/ptsecurity-mosaic-icon.d.ts +5 -5
- package/icon/public-api.d.ts +2 -2
- package/index.d.ts +1 -1
- package/input/index.d.ts +1 -1
- package/input/input-errors.d.ts +1 -1
- package/input/input-number-validators.d.ts +39 -39
- package/input/input-number.d.ts +33 -33
- package/input/input-password.d.ts +121 -121
- package/input/input-value-accessor.d.ts +4 -4
- package/input/input.d.ts +116 -116
- package/input/input.module.d.ts +14 -14
- package/input/ptsecurity-mosaic-input.d.ts +5 -5
- package/input/public-api.d.ts +6 -6
- package/link/index.d.ts +1 -1
- package/link/link.component.d.ts +38 -38
- package/link/link.module.d.ts +9 -9
- package/link/ptsecurity-mosaic-link.d.ts +5 -5
- package/link/public-api.d.ts +2 -2
- package/list/index.d.ts +1 -1
- package/list/list-selection.component.d.ts +168 -168
- package/list/list.component.d.ts +18 -18
- package/list/list.module.d.ts +11 -11
- package/list/ptsecurity-mosaic-list.d.ts +5 -5
- package/list/public-api.d.ts +3 -3
- package/modal/README.md +33 -33
- package/modal/css-unit.pipe.d.ts +7 -7
- package/modal/index.d.ts +1 -1
- package/modal/modal-control.service.d.ts +20 -20
- package/modal/modal-ref.class.d.ts +36 -36
- package/modal/modal-util.d.ts +12 -12
- package/modal/modal.component.d.ts +126 -126
- package/modal/modal.directive.d.ts +17 -17
- package/modal/modal.module.d.ts +14 -14
- package/modal/modal.service.d.ts +33 -33
- package/modal/modal.type.d.ts +59 -59
- package/modal/ptsecurity-mosaic-modal.d.ts +5 -5
- package/modal/public-api.d.ts +6 -6
- package/navbar/README.md +41 -41
- package/navbar/index.d.ts +1 -1
- package/navbar/navbar-item.component.d.ts +161 -161
- package/navbar/navbar.component.d.ts +58 -58
- package/navbar/navbar.module.d.ts +14 -14
- package/navbar/ptsecurity-mosaic-navbar.d.ts +5 -5
- package/navbar/public-api.d.ts +4 -4
- package/navbar/vertical-navbar.animation.d.ts +2 -2
- package/navbar/vertical-navbar.component.d.ts +23 -23
- package/package.json +13 -10
- package/popover/README.md +32 -32
- package/popover/index.d.ts +1 -1
- package/popover/popover-animations.d.ts +4 -4
- package/popover/popover-confirm.component.d.ts +33 -33
- package/popover/popover.component.d.ts +74 -74
- package/popover/popover.module.d.ts +12 -12
- package/popover/ptsecurity-mosaic-popover.d.ts +5 -5
- package/popover/public-api.d.ts +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/progress-bar/index.d.ts +1 -1
- package/progress-bar/progress-bar.component.d.ts +18 -18
- package/progress-bar/progress-bar.module.d.ts +9 -9
- package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +5 -5
- package/progress-bar/public-api.d.ts +2 -2
- package/progress-spinner/index.d.ts +1 -1
- package/progress-spinner/progress-spinner.component.d.ts +19 -19
- package/progress-spinner/progress-spinner.module.d.ts +9 -9
- package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +5 -5
- package/progress-spinner/public-api.d.ts +2 -2
- package/ptsecurity-mosaic.d.ts +5 -5
- package/public-api.d.ts +1 -1
- package/radio/index.d.ts +1 -1
- package/radio/ptsecurity-mosaic-radio.d.ts +5 -5
- package/radio/public-api.d.ts +2 -2
- package/radio/radio.component.d.ts +207 -207
- package/radio/radio.module.d.ts +10 -10
- package/schematics/README.md +35 -35
- package/select/index.d.ts +1 -1
- package/select/ptsecurity-mosaic-select.d.ts +5 -5
- package/select/public-api.d.ts +3 -3
- package/select/select-option.directive.d.ts +20 -20
- package/select/select.component.d.ts +307 -307
- package/select/select.module.d.ts +15 -15
- package/sidebar/index.d.ts +1 -1
- package/sidebar/ptsecurity-mosaic-sidebar.d.ts +5 -5
- package/sidebar/public-api.d.ts +2 -2
- package/sidebar/sidebar-animations.d.ts +8 -8
- package/sidebar/sidebar.component.d.ts +53 -53
- package/sidebar/sidebar.module.d.ts +8 -8
- package/sidepanel/index.d.ts +1 -1
- package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +5 -5
- package/sidepanel/public-api.d.ts +6 -6
- package/sidepanel/sidepanel-animations.d.ts +14 -14
- package/sidepanel/sidepanel-config.d.ts +25 -25
- package/sidepanel/sidepanel-container.component.d.ts +45 -45
- package/sidepanel/sidepanel-directives.d.ts +50 -50
- package/sidepanel/sidepanel-ref.d.ts +24 -24
- package/sidepanel/sidepanel.module.d.ts +15 -15
- package/sidepanel/sidepanel.service.d.ts +57 -57
- package/splitter/index.d.ts +1 -1
- package/splitter/ptsecurity-mosaic-splitter.d.ts +5 -5
- package/splitter/public-api.d.ts +2 -2
- package/splitter/splitter.component.d.ts +130 -130
- package/splitter/splitter.module.d.ts +9 -9
- package/table/index.d.ts +1 -1
- package/table/ptsecurity-mosaic-table.d.ts +5 -5
- package/table/public-api.d.ts +2 -2
- package/table/table.component.d.ts +5 -5
- package/table/table.module.d.ts +10 -10
- package/tabs/index.d.ts +1 -1
- package/tabs/paginated-tab-header.d.ts +179 -179
- package/tabs/ptsecurity-mosaic-tabs.d.ts +5 -5
- package/tabs/public-api.d.ts +10 -10
- package/tabs/tab-body.component.d.ts +95 -95
- package/tabs/tab-content.directive.d.ts +9 -9
- package/tabs/tab-group.component.d.ts +133 -133
- package/tabs/tab-header.component.d.ts +35 -35
- package/tabs/tab-label-wrapper.directive.d.ts +30 -30
- package/tabs/tab-label.directive.d.ts +9 -9
- package/tabs/tab-nav-bar/index.d.ts +1 -1
- package/tabs/tab-nav-bar/tab-nav-bar.d.ts +38 -38
- package/tabs/tab.component.d.ts +66 -66
- package/tabs/tabs-animations.d.ts +4 -4
- package/tabs/tabs.module.d.ts +20 -20
- package/tags/index.d.ts +1 -1
- package/tags/ptsecurity-mosaic-tags.d.ts +5 -5
- package/tags/public-api.d.ts +5 -5
- package/tags/tag-default-options.d.ts +8 -8
- package/tags/tag-input.d.ts +77 -77
- package/tags/tag-list.component.d.ts +240 -240
- package/tags/tag-text-control.d.ts +10 -10
- package/tags/tag.component.d.ts +135 -135
- package/tags/tag.module.d.ts +11 -11
- package/textarea/index.d.ts +1 -1
- package/textarea/ptsecurity-mosaic-textarea.d.ts +5 -5
- package/textarea/public-api.d.ts +2 -2
- package/textarea/textarea.component.d.ts +111 -111
- package/textarea/textarea.module.d.ts +11 -11
- package/timepicker/index.d.ts +1 -1
- package/timepicker/ptsecurity-mosaic-timepicker.d.ts +5 -5
- package/timepicker/public-api.d.ts +3 -3
- package/timepicker/timepicker.constants.d.ts +20 -20
- package/timepicker/timepicker.directive.d.ts +147 -142
- package/timepicker/timepicker.module.d.ts +11 -11
- package/toggle/index.d.ts +1 -1
- package/toggle/ptsecurity-mosaic-toggle.d.ts +5 -5
- package/toggle/public-api.d.ts +2 -2
- package/toggle/toggle.component.d.ts +54 -54
- package/toggle/toggle.module.d.ts +10 -10
- package/tooltip/index.d.ts +1 -1
- package/tooltip/ptsecurity-mosaic-tooltip.d.ts +5 -5
- package/tooltip/public-api.d.ts +2 -2
- package/tooltip/tooltip.animations.d.ts +8 -8
- package/tooltip/tooltip.component.d.ts +91 -91
- package/tooltip/tooltip.module.d.ts +9 -9
- package/tree/control/base-tree-control.d.ts +40 -40
- package/tree/control/flat-tree-control.d.ts +48 -48
- package/tree/control/nested-tree-control.d.ts +19 -19
- package/tree/control/tree-control.d.ts +44 -44
- package/tree/data-source/flat-data-source.d.ts +80 -80
- package/tree/data-source/nested-data-source.d.ts +15 -15
- package/tree/index.d.ts +1 -1
- package/tree/node.d.ts +34 -34
- package/tree/outlet.d.ts +9 -9
- package/tree/padding.directive.d.ts +45 -45
- package/tree/ptsecurity-mosaic-tree.d.ts +5 -5
- package/tree/public-api.d.ts +15 -15
- package/tree/toggle.d.ts +28 -28
- package/tree/tree-base.d.ts +97 -97
- package/tree/tree-errors.d.ts +25 -25
- package/tree/tree-option.component.d.ts +68 -68
- package/tree/tree-selection.component.d.ts +132 -130
- package/tree/tree.d.ts +6 -6
- package/tree/tree.module.d.ts +16 -16
- package/tree-select/index.d.ts +1 -1
- package/tree-select/ptsecurity-mosaic-tree-select.d.ts +5 -5
- package/tree-select/public-api.d.ts +2 -2
- package/tree-select/tree-select.component.d.ts +269 -269
- package/tree-select/tree-select.module.d.ts +14 -14
- package/schematics/collection.json +0 -4
- package/schematics/migration.json +0 -10
- package/schematics/ng-update/data/attribute-selectors.d.ts +0 -2
- package/schematics/ng-update/data/attribute-selectors.js +0 -5
- package/schematics/ng-update/data/attribute-selectors.js.map +0 -1
- package/schematics/ng-update/data/class-names.d.ts +0 -2
- package/schematics/ng-update/data/class-names.js +0 -5
- package/schematics/ng-update/data/class-names.js.map +0 -1
- package/schematics/ng-update/data/constructor-checks.d.ts +0 -2
- package/schematics/ng-update/data/constructor-checks.js +0 -5
- package/schematics/ng-update/data/constructor-checks.js.map +0 -1
- package/schematics/ng-update/data/css-selectors.d.ts +0 -2
- package/schematics/ng-update/data/css-selectors.js +0 -5
- package/schematics/ng-update/data/css-selectors.js.map +0 -1
- package/schematics/ng-update/data/element-selectors.d.ts +0 -2
- package/schematics/ng-update/data/element-selectors.js +0 -5
- package/schematics/ng-update/data/element-selectors.js.map +0 -1
- package/schematics/ng-update/data/index.d.ts +0 -10
- package/schematics/ng-update/data/index.js +0 -14
- package/schematics/ng-update/data/index.js.map +0 -1
- package/schematics/ng-update/data/input-names.d.ts +0 -2
- package/schematics/ng-update/data/input-names.js +0 -35
- package/schematics/ng-update/data/input-names.js.map +0 -1
- package/schematics/ng-update/data/method-call-checks.d.ts +0 -2
- package/schematics/ng-update/data/method-call-checks.js +0 -5
- package/schematics/ng-update/data/method-call-checks.js.map +0 -1
- package/schematics/ng-update/data/output-names.d.ts +0 -2
- package/schematics/ng-update/data/output-names.js +0 -5
- package/schematics/ng-update/data/output-names.js.map +0 -1
- package/schematics/ng-update/data/property-names.d.ts +0 -2
- package/schematics/ng-update/data/property-names.js +0 -5
- package/schematics/ng-update/data/property-names.js.map +0 -1
- package/schematics/ng-update/data/symbol-removal.d.ts +0 -2
- package/schematics/ng-update/data/symbol-removal.js +0 -5
- package/schematics/ng-update/data/symbol-removal.js.map +0 -1
- package/schematics/ng-update/index.d.ts +0 -2
- package/schematics/ng-update/index.js +0 -23
- package/schematics/ng-update/index.js.map +0 -1
- package/schematics/ng-update/update-9.0.0/mosaic-symbols.json +0 -255
- package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.d.ts +0 -7
- package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js +0 -154
- package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js.map +0 -1
- package/schematics/ng-update/upgrade-data.d.ts +0 -2
- package/schematics/ng-update/upgrade-data.js +0 -17
- package/schematics/ng-update/upgrade-data.js.map +0 -1
- package/schematics/tsconfig.json +0 -29
- package/schematics/tsconfig.lib-test.json +0 -8
- package/schematics/tsconfig.lib.json +0 -17
@@ -17,984 +17,984 @@ import * as i2 from '@angular/cdk/bidi';
|
|
17
17
|
import * as i1$1 from '@angular/cdk/overlay';
|
18
18
|
import { McTooltipTrigger, MC_TOOLTIP_SCROLL_STRATEGY } from '@ptsecurity/mosaic/tooltip';
|
19
19
|
|
20
|
-
function getMcInputUnsupportedTypeError(inputType) {
|
21
|
-
return Error(`Input type "${inputType}" isn't supported by mcInput.`);
|
20
|
+
function getMcInputUnsupportedTypeError(inputType) {
|
21
|
+
return Error(`Input type "${inputType}" isn't supported by mcInput.`);
|
22
22
|
}
|
23
23
|
|
24
|
-
const BIG_STEP = 10;
|
25
|
-
const SMALL_STEP = 1;
|
26
|
-
function normalizeSplitter(value) {
|
27
|
-
return value ? value.replace(/,/g, '.') : value;
|
28
|
-
}
|
29
|
-
function isFloat(value) {
|
30
|
-
return /^-?\d+\.\d+$/.test(value);
|
31
|
-
}
|
32
|
-
function isInt(value) {
|
33
|
-
return /^-?\d+$/.test(value);
|
34
|
-
}
|
35
|
-
function isDigit(value) {
|
36
|
-
return isFloat(value) || isInt(value);
|
37
|
-
}
|
38
|
-
function getPrecision(value) {
|
39
|
-
const arr = value.toString().split('.');
|
40
|
-
return arr.length === 1
|
41
|
-
? 1
|
42
|
-
// tslint:disable-next-line:no-magic-numbers
|
43
|
-
: Math.pow(10, arr[1].length);
|
44
|
-
}
|
45
|
-
function add(value1, value2) {
|
46
|
-
const precision = Math.max(getPrecision(value1), getPrecision(value2));
|
47
|
-
return (value1 * precision + value2 * precision) / precision;
|
48
|
-
}
|
49
|
-
class McNumberInput {
|
50
|
-
constructor(elementRef, ngControl, step, bigStep, min, max) {
|
51
|
-
this.elementRef = elementRef;
|
52
|
-
this.ngControl = ngControl;
|
53
|
-
this.focused = false;
|
54
|
-
this.stateChanges = new Subject();
|
55
|
-
this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;
|
56
|
-
this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;
|
57
|
-
this.min = isDigit(min) ? parseFloat(min) : -Infinity;
|
58
|
-
this.max = isDigit(max) ? parseFloat(max) : Infinity;
|
59
|
-
if ('valueAsNumber' in this.nativeElement) {
|
60
|
-
Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {
|
61
|
-
// tslint:disable-next-line:no-reserved-keywords
|
62
|
-
get() {
|
63
|
-
const res = parseFloat(normalizeSplitter(this.value));
|
64
|
-
return isNaN(res) ? null : res;
|
65
|
-
}
|
66
|
-
});
|
67
|
-
}
|
68
|
-
}
|
69
|
-
get nativeElement() {
|
70
|
-
return this.elementRef.nativeElement;
|
71
|
-
}
|
72
|
-
focusChanged(isFocused) {
|
73
|
-
if (isFocused !== this.focused) {
|
74
|
-
this.focused = isFocused;
|
75
|
-
this.stateChanges.next();
|
76
|
-
}
|
77
|
-
}
|
78
|
-
onKeyDown(event) {
|
79
|
-
// tslint:disable-next-line:deprecation
|
80
|
-
const keyCode = event.keyCode;
|
81
|
-
const isCtrlA = (e) => e.keyCode === A && (e.ctrlKey || e.metaKey);
|
82
|
-
const isCtrlC = (e) => e.keyCode === C && (e.ctrlKey || e.metaKey);
|
83
|
-
const isCtrlV = (e) => e.keyCode === V && (e.ctrlKey || e.metaKey);
|
84
|
-
const isCtrlX = (e) => e.keyCode === X && (e.ctrlKey || e.metaKey);
|
85
|
-
const isCtrlZ = (e) => e.keyCode === Z && (e.ctrlKey || e.metaKey);
|
86
|
-
const isFKey = (e) => e.keyCode >= F1 && e.keyCode <= F12;
|
87
|
-
const isNumber = (e) => (e.keyCode >= ZERO && e.keyCode <= NINE) ||
|
88
|
-
(e.keyCode >= NUMPAD_ZERO && e.keyCode <= NUMPAD_NINE);
|
89
|
-
const isPeriod = (e) => e.key === '.' || e.key === ',';
|
90
|
-
const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];
|
91
|
-
const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];
|
92
|
-
const arrows = [LEFT_ARROW, RIGHT_ARROW];
|
93
|
-
const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);
|
94
|
-
if (allowedKeys.indexOf(keyCode) !== -1 ||
|
95
|
-
isCtrlA(event) ||
|
96
|
-
isCtrlC(event) ||
|
97
|
-
isCtrlV(event) ||
|
98
|
-
isCtrlX(event) ||
|
99
|
-
isCtrlZ(event) ||
|
100
|
-
isFKey(event) ||
|
101
|
-
isPeriod(event)) {
|
102
|
-
// let it happen, don't do anything
|
103
|
-
return;
|
104
|
-
}
|
105
|
-
// Ensure that it is not a number and stop the keypress
|
106
|
-
if (event.shiftKey || !isNumber(event)) {
|
107
|
-
event.preventDefault();
|
108
|
-
// process steps
|
109
|
-
const step = event.shiftKey ? this.bigStep : this.step;
|
110
|
-
if (keyCode === UP_ARROW) {
|
111
|
-
this.stepUp(step);
|
112
|
-
}
|
113
|
-
if (keyCode === DOWN_ARROW) {
|
114
|
-
this.stepDown(step);
|
115
|
-
}
|
116
|
-
}
|
117
|
-
}
|
118
|
-
onPaste(event) {
|
119
|
-
if (!isDigit(normalizeSplitter(event.clipboardData.getData('text')))) {
|
120
|
-
event.preventDefault();
|
121
|
-
}
|
122
|
-
}
|
123
|
-
stepUp(step) {
|
124
|
-
this.elementRef.nativeElement.focus();
|
125
|
-
const res = Math.max(Math.min(add(this.nativeElement.valueAsNumber || 0, step), this.max), this.min);
|
126
|
-
this.nativeElement.value = res.toString();
|
127
|
-
this.viewToModelUpdate(this.nativeElement.valueAsNumber);
|
128
|
-
}
|
129
|
-
stepDown(step) {
|
130
|
-
this.elementRef.nativeElement.focus();
|
131
|
-
const res = Math.min(Math.max(add(this.nativeElement.valueAsNumber || 0, -step), this.min), this.max);
|
132
|
-
this.nativeElement.value = res.toString();
|
133
|
-
this.viewToModelUpdate(this.nativeElement.valueAsNumber);
|
134
|
-
}
|
135
|
-
viewToModelUpdate(value) {
|
136
|
-
if (this.ngControl) {
|
137
|
-
this.ngControl.control.setValue(value);
|
138
|
-
}
|
139
|
-
}
|
140
|
-
}
|
141
|
-
/** @nocollapse */ /** @nocollapse */ McNumberInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McNumberInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: 'step', attribute: true }, { token: 'big-step', attribute: true }, { token: 'min', attribute: true }, { token: 'max', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
|
142
|
-
/** @nocollapse */ /** @nocollapse */ McNumberInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McNumberInput, selector: "input[mcInput][type=\"number\"]", inputs: { bigStep: "bigStep", step: "step", min: "min", max: "max" }, host: { listeners: { "blur": "focusChanged(false)", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)" } }, exportAs: ["mcNumericalInput"], ngImport: i0 });
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McNumberInput, decorators: [{
|
144
|
-
type: Directive,
|
145
|
-
args: [{
|
146
|
-
selector: `input[mcInput][type="number"]`,
|
147
|
-
exportAs: 'mcNumericalInput',
|
148
|
-
host: {
|
149
|
-
'(blur)': 'focusChanged(false)',
|
150
|
-
'(focus)': 'focusChanged(true)',
|
151
|
-
'(paste)': 'onPaste($event)',
|
152
|
-
'(keydown)': 'onKeyDown($event)'
|
153
|
-
}
|
154
|
-
}]
|
155
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
|
156
|
-
type: Optional
|
157
|
-
}, {
|
158
|
-
type: Self
|
159
|
-
}] }, { type: undefined, decorators: [{
|
160
|
-
type: Attribute,
|
161
|
-
args: ['step']
|
162
|
-
}] }, { type: undefined, decorators: [{
|
163
|
-
type: Attribute,
|
164
|
-
args: ['big-step']
|
165
|
-
}] }, { type: undefined, decorators: [{
|
166
|
-
type: Attribute,
|
167
|
-
args: ['min']
|
168
|
-
}] }, { type: undefined, decorators: [{
|
169
|
-
type: Attribute,
|
170
|
-
args: ['max']
|
171
|
-
}] }]; }, propDecorators: { bigStep: [{
|
172
|
-
type: Input
|
173
|
-
}], step: [{
|
174
|
-
type: Input
|
175
|
-
}], min: [{
|
176
|
-
type: Input
|
177
|
-
}], max: [{
|
178
|
-
type: Input
|
24
|
+
const BIG_STEP = 10;
|
25
|
+
const SMALL_STEP = 1;
|
26
|
+
function normalizeSplitter(value) {
|
27
|
+
return value ? value.replace(/,/g, '.') : value;
|
28
|
+
}
|
29
|
+
function isFloat(value) {
|
30
|
+
return /^-?\d+\.\d+$/.test(value);
|
31
|
+
}
|
32
|
+
function isInt(value) {
|
33
|
+
return /^-?\d+$/.test(value);
|
34
|
+
}
|
35
|
+
function isDigit(value) {
|
36
|
+
return isFloat(value) || isInt(value);
|
37
|
+
}
|
38
|
+
function getPrecision(value) {
|
39
|
+
const arr = value.toString().split('.');
|
40
|
+
return arr.length === 1
|
41
|
+
? 1
|
42
|
+
// tslint:disable-next-line:no-magic-numbers
|
43
|
+
: Math.pow(10, arr[1].length);
|
44
|
+
}
|
45
|
+
function add(value1, value2) {
|
46
|
+
const precision = Math.max(getPrecision(value1), getPrecision(value2));
|
47
|
+
return (value1 * precision + value2 * precision) / precision;
|
48
|
+
}
|
49
|
+
class McNumberInput {
|
50
|
+
constructor(elementRef, ngControl, step, bigStep, min, max) {
|
51
|
+
this.elementRef = elementRef;
|
52
|
+
this.ngControl = ngControl;
|
53
|
+
this.focused = false;
|
54
|
+
this.stateChanges = new Subject();
|
55
|
+
this.step = isDigit(step) ? parseFloat(step) : SMALL_STEP;
|
56
|
+
this.bigStep = isDigit(bigStep) ? parseFloat(bigStep) : BIG_STEP;
|
57
|
+
this.min = isDigit(min) ? parseFloat(min) : -Infinity;
|
58
|
+
this.max = isDigit(max) ? parseFloat(max) : Infinity;
|
59
|
+
if ('valueAsNumber' in this.nativeElement) {
|
60
|
+
Object.defineProperty(Object.getPrototypeOf(this.nativeElement), 'valueAsNumber', {
|
61
|
+
// tslint:disable-next-line:no-reserved-keywords
|
62
|
+
get() {
|
63
|
+
const res = parseFloat(normalizeSplitter(this.value));
|
64
|
+
return isNaN(res) ? null : res;
|
65
|
+
}
|
66
|
+
});
|
67
|
+
}
|
68
|
+
}
|
69
|
+
get nativeElement() {
|
70
|
+
return this.elementRef.nativeElement;
|
71
|
+
}
|
72
|
+
focusChanged(isFocused) {
|
73
|
+
if (isFocused !== this.focused) {
|
74
|
+
this.focused = isFocused;
|
75
|
+
this.stateChanges.next();
|
76
|
+
}
|
77
|
+
}
|
78
|
+
onKeyDown(event) {
|
79
|
+
// tslint:disable-next-line:deprecation
|
80
|
+
const keyCode = event.keyCode;
|
81
|
+
const isCtrlA = (e) => e.keyCode === A && (e.ctrlKey || e.metaKey);
|
82
|
+
const isCtrlC = (e) => e.keyCode === C && (e.ctrlKey || e.metaKey);
|
83
|
+
const isCtrlV = (e) => e.keyCode === V && (e.ctrlKey || e.metaKey);
|
84
|
+
const isCtrlX = (e) => e.keyCode === X && (e.ctrlKey || e.metaKey);
|
85
|
+
const isCtrlZ = (e) => e.keyCode === Z && (e.ctrlKey || e.metaKey);
|
86
|
+
const isFKey = (e) => e.keyCode >= F1 && e.keyCode <= F12;
|
87
|
+
const isNumber = (e) => (e.keyCode >= ZERO && e.keyCode <= NINE) ||
|
88
|
+
(e.keyCode >= NUMPAD_ZERO && e.keyCode <= NUMPAD_NINE);
|
89
|
+
const isPeriod = (e) => e.key === '.' || e.key === ',';
|
90
|
+
const minuses = [NUMPAD_MINUS, DASH, FF_MINUS];
|
91
|
+
const serviceKeys = [DELETE, BACKSPACE, TAB, ESCAPE, ENTER];
|
92
|
+
const arrows = [LEFT_ARROW, RIGHT_ARROW];
|
93
|
+
const allowedKeys = [HOME, END].concat(arrows).concat(serviceKeys).concat(minuses);
|
94
|
+
if (allowedKeys.indexOf(keyCode) !== -1 ||
|
95
|
+
isCtrlA(event) ||
|
96
|
+
isCtrlC(event) ||
|
97
|
+
isCtrlV(event) ||
|
98
|
+
isCtrlX(event) ||
|
99
|
+
isCtrlZ(event) ||
|
100
|
+
isFKey(event) ||
|
101
|
+
isPeriod(event)) {
|
102
|
+
// let it happen, don't do anything
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
// Ensure that it is not a number and stop the keypress
|
106
|
+
if (event.shiftKey || !isNumber(event)) {
|
107
|
+
event.preventDefault();
|
108
|
+
// process steps
|
109
|
+
const step = event.shiftKey ? this.bigStep : this.step;
|
110
|
+
if (keyCode === UP_ARROW) {
|
111
|
+
this.stepUp(step);
|
112
|
+
}
|
113
|
+
if (keyCode === DOWN_ARROW) {
|
114
|
+
this.stepDown(step);
|
115
|
+
}
|
116
|
+
}
|
117
|
+
}
|
118
|
+
onPaste(event) {
|
119
|
+
if (!isDigit(normalizeSplitter(event.clipboardData.getData('text')))) {
|
120
|
+
event.preventDefault();
|
121
|
+
}
|
122
|
+
}
|
123
|
+
stepUp(step) {
|
124
|
+
this.elementRef.nativeElement.focus();
|
125
|
+
const res = Math.max(Math.min(add(this.nativeElement.valueAsNumber || 0, step), this.max), this.min);
|
126
|
+
this.nativeElement.value = res.toString();
|
127
|
+
this.viewToModelUpdate(this.nativeElement.valueAsNumber);
|
128
|
+
}
|
129
|
+
stepDown(step) {
|
130
|
+
this.elementRef.nativeElement.focus();
|
131
|
+
const res = Math.min(Math.max(add(this.nativeElement.valueAsNumber || 0, -step), this.min), this.max);
|
132
|
+
this.nativeElement.value = res.toString();
|
133
|
+
this.viewToModelUpdate(this.nativeElement.valueAsNumber);
|
134
|
+
}
|
135
|
+
viewToModelUpdate(value) {
|
136
|
+
if (this.ngControl) {
|
137
|
+
this.ngControl.control.setValue(value);
|
138
|
+
}
|
139
|
+
}
|
140
|
+
}
|
141
|
+
/** @nocollapse */ /** @nocollapse */ McNumberInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McNumberInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: 'step', attribute: true }, { token: 'big-step', attribute: true }, { token: 'min', attribute: true }, { token: 'max', attribute: true }], target: i0.ɵɵFactoryTarget.Directive });
|
142
|
+
/** @nocollapse */ /** @nocollapse */ McNumberInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McNumberInput, selector: "input[mcInput][type=\"number\"]", inputs: { bigStep: "bigStep", step: "step", min: "min", max: "max" }, host: { listeners: { "blur": "focusChanged(false)", "focus": "focusChanged(true)", "paste": "onPaste($event)", "keydown": "onKeyDown($event)" } }, exportAs: ["mcNumericalInput"], ngImport: i0 });
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McNumberInput, decorators: [{
|
144
|
+
type: Directive,
|
145
|
+
args: [{
|
146
|
+
selector: `input[mcInput][type="number"]`,
|
147
|
+
exportAs: 'mcNumericalInput',
|
148
|
+
host: {
|
149
|
+
'(blur)': 'focusChanged(false)',
|
150
|
+
'(focus)': 'focusChanged(true)',
|
151
|
+
'(paste)': 'onPaste($event)',
|
152
|
+
'(keydown)': 'onKeyDown($event)'
|
153
|
+
}
|
154
|
+
}]
|
155
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgControl, decorators: [{
|
156
|
+
type: Optional
|
157
|
+
}, {
|
158
|
+
type: Self
|
159
|
+
}] }, { type: undefined, decorators: [{
|
160
|
+
type: Attribute,
|
161
|
+
args: ['step']
|
162
|
+
}] }, { type: undefined, decorators: [{
|
163
|
+
type: Attribute,
|
164
|
+
args: ['big-step']
|
165
|
+
}] }, { type: undefined, decorators: [{
|
166
|
+
type: Attribute,
|
167
|
+
args: ['min']
|
168
|
+
}] }, { type: undefined, decorators: [{
|
169
|
+
type: Attribute,
|
170
|
+
args: ['max']
|
171
|
+
}] }]; }, propDecorators: { bigStep: [{
|
172
|
+
type: Input
|
173
|
+
}], step: [{
|
174
|
+
type: Input
|
175
|
+
}], min: [{
|
176
|
+
type: Input
|
177
|
+
}], max: [{
|
178
|
+
type: Input
|
179
179
|
}] } });
|
180
180
|
|
181
181
|
const MC_INPUT_VALUE_ACCESSOR = new InjectionToken('MC_INPUT_VALUE_ACCESSOR');
|
182
182
|
|
183
|
-
const MC_INPUT_INVALID_TYPES = [
|
184
|
-
'button',
|
185
|
-
'checkbox',
|
186
|
-
'file',
|
187
|
-
'hidden',
|
188
|
-
'image',
|
189
|
-
'radio',
|
190
|
-
'range',
|
191
|
-
'reset',
|
192
|
-
'submit'
|
193
|
-
];
|
194
|
-
let nextUniqueId$1 = 0;
|
195
|
-
class McInputBase {
|
196
|
-
constructor(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl) {
|
197
|
-
this.defaultErrorStateMatcher = defaultErrorStateMatcher;
|
198
|
-
this.parentForm = parentForm;
|
199
|
-
this.parentFormGroup = parentFormGroup;
|
200
|
-
this.ngControl = ngControl;
|
201
|
-
}
|
202
|
-
}
|
203
|
-
// tslint:disable-next-line:naming-convention
|
204
|
-
const McInputMixinBase = mixinErrorState(McInputBase);
|
205
|
-
class McInput extends McInputMixinBase {
|
206
|
-
// tslint:disable-next-line: naming-convention
|
207
|
-
constructor(elementRef, rawValidators, mcValidation, ngControl, numberInput, ngModel, formControlName, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, changeDetectorRef) {
|
208
|
-
super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
|
209
|
-
this.elementRef = elementRef;
|
210
|
-
this.rawValidators = rawValidators;
|
211
|
-
this.mcValidation = mcValidation;
|
212
|
-
this.numberInput = numberInput;
|
213
|
-
this.ngModel = ngModel;
|
214
|
-
this.formControlName = formControlName;
|
215
|
-
this.changeDetectorRef = changeDetectorRef;
|
216
|
-
/**
|
217
|
-
* Implemented as part of McFormFieldControl.
|
218
|
-
* @docs-private
|
219
|
-
*/
|
220
|
-
this.focused = false;
|
221
|
-
/**
|
222
|
-
* Implemented as part of McFormFieldControl.
|
223
|
-
* @docs-private
|
224
|
-
*/
|
225
|
-
this.stateChanges = new Subject();
|
226
|
-
/**
|
227
|
-
* Implemented as part of McFormFieldControl.
|
228
|
-
* @docs-private
|
229
|
-
*/
|
230
|
-
this.controlType = 'input';
|
231
|
-
this.uid = `mc-input-${nextUniqueId$1++}`;
|
232
|
-
this.neverEmptyInputTypes = [
|
233
|
-
'date',
|
234
|
-
'datetime',
|
235
|
-
'datetime-local',
|
236
|
-
'month',
|
237
|
-
'time',
|
238
|
-
'week'
|
239
|
-
].filter((t) => getSupportedInputTypes().has(t));
|
240
|
-
this._disabled = false;
|
241
|
-
this._required = false;
|
242
|
-
// tslint:enable no-reserved-keywords
|
243
|
-
this._type = 'text';
|
244
|
-
// If no input value accessor was explicitly specified, use the element as the input value
|
245
|
-
// accessor.
|
246
|
-
this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;
|
247
|
-
this.previousNativeValue = this.value;
|
248
|
-
// Force setter to be called in case id was not specified.
|
249
|
-
this.id = this.id;
|
250
|
-
}
|
251
|
-
/**
|
252
|
-
* Implemented as part of McFormFieldControl.
|
253
|
-
* @docs-private
|
254
|
-
*/
|
255
|
-
get disabled() {
|
256
|
-
if (this.ngControl && this.ngControl.disabled !== null) {
|
257
|
-
return this.ngControl.disabled;
|
258
|
-
}
|
259
|
-
return this._disabled;
|
260
|
-
}
|
261
|
-
set disabled(value) {
|
262
|
-
this._disabled = coerceBooleanProperty(value);
|
263
|
-
// Browsers may not fire the blur event if the input is disabled too quickly.
|
264
|
-
// Reset from here to ensure that the element doesn't become stuck.
|
265
|
-
if (this.focused) {
|
266
|
-
this.focused = false;
|
267
|
-
this.stateChanges.next();
|
268
|
-
}
|
269
|
-
}
|
270
|
-
/**
|
271
|
-
* Implemented as part of McFormFieldControl.
|
272
|
-
* @docs-private
|
273
|
-
*/
|
274
|
-
get id() {
|
275
|
-
return this._id;
|
276
|
-
}
|
277
|
-
set id(value) {
|
278
|
-
this._id = value || this.uid;
|
279
|
-
}
|
280
|
-
/**
|
281
|
-
* Implemented as part of McFormFieldControl.
|
282
|
-
* @docs-private
|
283
|
-
*/
|
284
|
-
get required() {
|
285
|
-
return this._required;
|
286
|
-
}
|
287
|
-
set required(value) {
|
288
|
-
this._required = coerceBooleanProperty(value);
|
289
|
-
}
|
290
|
-
// tslint:disable no-reserved-keywords
|
291
|
-
/** Input type of the element. */
|
292
|
-
get type() {
|
293
|
-
return this._type;
|
294
|
-
}
|
295
|
-
set type(value) {
|
296
|
-
this._type = value || 'text';
|
297
|
-
this.validateType();
|
298
|
-
// When using Angular inputs, developers are no longer able to set the properties on the native
|
299
|
-
// input element. To ensure that bindings for `type` work, we need to sync the setter
|
300
|
-
// with the native property. Textarea elements don't support the type property or attribute.
|
301
|
-
if (getSupportedInputTypes().has(this._type)) {
|
302
|
-
this.elementRef.nativeElement.type = this._type;
|
303
|
-
}
|
304
|
-
}
|
305
|
-
/**
|
306
|
-
* Implemented as part of McFormFieldControl.
|
307
|
-
* @docs-private
|
308
|
-
*/
|
309
|
-
get value() {
|
310
|
-
return this._inputValueAccessor.value;
|
311
|
-
}
|
312
|
-
set value(value) {
|
313
|
-
if (value !== this.value) {
|
314
|
-
this._inputValueAccessor.value = value;
|
315
|
-
this.stateChanges.next();
|
316
|
-
}
|
317
|
-
}
|
318
|
-
ngAfterContentInit() {
|
319
|
-
if (!this.ngControl) {
|
320
|
-
return;
|
321
|
-
}
|
322
|
-
if (this.mcValidation.useValidation) {
|
323
|
-
setMosaicValidation(this, this.changeDetectorRef);
|
324
|
-
}
|
325
|
-
}
|
326
|
-
ngOnChanges() {
|
327
|
-
this.stateChanges.next();
|
328
|
-
}
|
329
|
-
ngOnDestroy() {
|
330
|
-
this.stateChanges.complete();
|
331
|
-
}
|
332
|
-
ngDoCheck() {
|
333
|
-
if (this.ngControl) {
|
334
|
-
// We need to re-evaluate this on every change detection cycle, because there are some
|
335
|
-
// error triggers that we can't subscribe to (e.g. parent form submissions). This means
|
336
|
-
// that whatever logic is in here has to be super lean or we risk destroying the performance.
|
337
|
-
this.updateErrorState();
|
338
|
-
}
|
339
|
-
// We need to dirty-check the native element's value, because there are some cases where
|
340
|
-
// we won't be notified when it changes (e.g. the consumer isn't using forms or they're
|
341
|
-
// updating the value using `emitEvent: false`).
|
342
|
-
this.dirtyCheckNativeValue();
|
343
|
-
}
|
344
|
-
/** Focuses the input. */
|
345
|
-
focus() {
|
346
|
-
this.elementRef.nativeElement.focus();
|
347
|
-
}
|
348
|
-
onBlur() {
|
349
|
-
this.focusChanged(false);
|
350
|
-
if (this.ngControl && this.ngControl.control) {
|
351
|
-
const control = this.ngControl.control;
|
352
|
-
control.updateValueAndValidity({ emitEvent: false });
|
353
|
-
control.statusChanges.emit(control.status);
|
354
|
-
}
|
355
|
-
}
|
356
|
-
/** Callback for the cases where the focused state of the input changes. */
|
357
|
-
focusChanged(isFocused) {
|
358
|
-
if (isFocused !== this.focused) {
|
359
|
-
this.focused = isFocused;
|
360
|
-
this.stateChanges.next();
|
361
|
-
}
|
362
|
-
}
|
363
|
-
onInput() {
|
364
|
-
// This is a noop function and is used to let Angular know whenever the value changes.
|
365
|
-
// Angular will run a new change detection each time the `input` event has been dispatched.
|
366
|
-
// It's necessary that Angular recognizes the value change, because when floatingLabel
|
367
|
-
// is set to false and Angular forms aren't used, the placeholder won't recognize the
|
368
|
-
// value changes and will not disappear.
|
369
|
-
// Listening to the input event wouldn't be necessary when the input is using the
|
370
|
-
// FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
|
371
|
-
}
|
372
|
-
/**
|
373
|
-
* Implemented as part of McFormFieldControl.
|
374
|
-
* @docs-private
|
375
|
-
*/
|
376
|
-
get empty() {
|
377
|
-
return !this.isNeverEmpty() && !this.elementRef.nativeElement.value && !this.isBadInput();
|
378
|
-
}
|
379
|
-
/**
|
380
|
-
* Implemented as part of McFormFieldControl.
|
381
|
-
* @docs-private
|
382
|
-
*/
|
383
|
-
onContainerClick() {
|
384
|
-
this.focus();
|
385
|
-
}
|
386
|
-
/** Does some manual dirty checking on the native input `value` property. */
|
387
|
-
dirtyCheckNativeValue() {
|
388
|
-
const newValue = this.value;
|
389
|
-
if (this.previousNativeValue !== newValue) {
|
390
|
-
this.previousNativeValue = newValue;
|
391
|
-
this.stateChanges.next();
|
392
|
-
}
|
393
|
-
}
|
394
|
-
/** Make sure the input is a supported type. */
|
395
|
-
validateType() {
|
396
|
-
if (MC_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {
|
397
|
-
throw getMcInputUnsupportedTypeError(this._type);
|
398
|
-
}
|
399
|
-
}
|
400
|
-
/** Checks whether the input type is one of the types that are never empty. */
|
401
|
-
isNeverEmpty() {
|
402
|
-
return this.neverEmptyInputTypes.indexOf(this._type) > -1;
|
403
|
-
}
|
404
|
-
/** Checks whether the input is invalid based on the native validation. */
|
405
|
-
isBadInput() {
|
406
|
-
// The `validity` property won't be present on platform-server.
|
407
|
-
const validity = this.elementRef.nativeElement.validity;
|
408
|
-
return validity && validity.badInput;
|
409
|
-
}
|
410
|
-
}
|
411
|
-
/** @nocollapse */ /** @nocollapse */ McInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInput, deps: [{ token: i0.ElementRef }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgControl, optional: true, self: true }, { token: McNumberInput, optional: true, self: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormControlName, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: MC_INPUT_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
412
|
-
/** @nocollapse */ /** @nocollapse */ McInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McInput, selector: "input[mcInput]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", type: "type", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "mc-input" }, providers: [{
|
413
|
-
provide: McFormFieldControl, useExisting: McInput
|
414
|
-
}], exportAs: ["mcInput"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
415
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInput, decorators: [{
|
416
|
-
type: Directive,
|
417
|
-
args: [{
|
418
|
-
selector: `input[mcInput]`,
|
419
|
-
exportAs: 'mcInput',
|
420
|
-
host: {
|
421
|
-
class: 'mc-input',
|
422
|
-
// Native input properties that are overwritten by Angular inputs need to be synced with
|
423
|
-
// the native input element. Otherwise property bindings for those don't work.
|
424
|
-
'[attr.id]': 'id',
|
425
|
-
'[attr.placeholder]': 'placeholder',
|
426
|
-
'[attr.disabled]': 'disabled || null',
|
427
|
-
'[required]': 'required',
|
428
|
-
'(blur)': 'onBlur()',
|
429
|
-
'(focus)': 'focusChanged(true)',
|
430
|
-
'(input)': 'onInput()'
|
431
|
-
},
|
432
|
-
providers: [{
|
433
|
-
provide: McFormFieldControl, useExisting: McInput
|
434
|
-
}]
|
435
|
-
}]
|
436
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
437
|
-
type: Optional
|
438
|
-
}, {
|
439
|
-
type: Self
|
440
|
-
}, {
|
441
|
-
type: Inject,
|
442
|
-
args: [NG_VALIDATORS]
|
443
|
-
}] }, { type: undefined, decorators: [{
|
444
|
-
type: Optional
|
445
|
-
}, {
|
446
|
-
type: Inject,
|
447
|
-
args: [MC_VALIDATION]
|
448
|
-
}] }, { type: i1.NgControl, decorators: [{
|
449
|
-
type: Optional
|
450
|
-
}, {
|
451
|
-
type: Self
|
452
|
-
}] }, { type: McNumberInput, decorators: [{
|
453
|
-
type: Optional
|
454
|
-
}, {
|
455
|
-
type: Self
|
456
|
-
}] }, { type: i1.NgModel, decorators: [{
|
457
|
-
type: Optional
|
458
|
-
}, {
|
459
|
-
type: Self
|
460
|
-
}] }, { type: i1.FormControlName, decorators: [{
|
461
|
-
type: Optional
|
462
|
-
}, {
|
463
|
-
type: Self
|
464
|
-
}] }, { type: i1.NgForm, decorators: [{
|
465
|
-
type: Optional
|
466
|
-
}] }, { type: i1.FormGroupDirective, decorators: [{
|
467
|
-
type: Optional
|
468
|
-
}] }, { type: i3.ErrorStateMatcher }, { type: undefined, decorators: [{
|
469
|
-
type: Optional
|
470
|
-
}, {
|
471
|
-
type: Self
|
472
|
-
}, {
|
473
|
-
type: Inject,
|
474
|
-
args: [MC_INPUT_VALUE_ACCESSOR]
|
475
|
-
}] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { errorStateMatcher: [{
|
476
|
-
type: Input
|
477
|
-
}], placeholder: [{
|
478
|
-
type: Input
|
479
|
-
}], disabled: [{
|
480
|
-
type: Input
|
481
|
-
}], id: [{
|
482
|
-
type: Input
|
483
|
-
}], required: [{
|
484
|
-
type: Input
|
485
|
-
}], type: [{
|
486
|
-
type: Input
|
487
|
-
}], value: [{
|
488
|
-
type: Input
|
489
|
-
}] } });
|
490
|
-
class McInputMono {
|
491
|
-
}
|
492
|
-
/** @nocollapse */ /** @nocollapse */ McInputMono.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputMono, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
493
|
-
/** @nocollapse */ /** @nocollapse */ McInputMono.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McInputMono, selector: "input[mcInputMonospace]", host: { classAttribute: "mc-input_monospace" }, exportAs: ["McInputMonospace"], ngImport: i0 });
|
494
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputMono, decorators: [{
|
495
|
-
type: Directive,
|
496
|
-
args: [{
|
497
|
-
selector: 'input[mcInputMonospace]',
|
498
|
-
exportAs: 'McInputMonospace',
|
499
|
-
host: { class: 'mc-input_monospace' }
|
500
|
-
}]
|
183
|
+
const MC_INPUT_INVALID_TYPES = [
|
184
|
+
'button',
|
185
|
+
'checkbox',
|
186
|
+
'file',
|
187
|
+
'hidden',
|
188
|
+
'image',
|
189
|
+
'radio',
|
190
|
+
'range',
|
191
|
+
'reset',
|
192
|
+
'submit'
|
193
|
+
];
|
194
|
+
let nextUniqueId$1 = 0;
|
195
|
+
class McInputBase {
|
196
|
+
constructor(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl) {
|
197
|
+
this.defaultErrorStateMatcher = defaultErrorStateMatcher;
|
198
|
+
this.parentForm = parentForm;
|
199
|
+
this.parentFormGroup = parentFormGroup;
|
200
|
+
this.ngControl = ngControl;
|
201
|
+
}
|
202
|
+
}
|
203
|
+
// tslint:disable-next-line:naming-convention
|
204
|
+
const McInputMixinBase = mixinErrorState(McInputBase);
|
205
|
+
class McInput extends McInputMixinBase {
|
206
|
+
// tslint:disable-next-line: naming-convention
|
207
|
+
constructor(elementRef, rawValidators, mcValidation, ngControl, numberInput, ngModel, formControlName, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, changeDetectorRef) {
|
208
|
+
super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
|
209
|
+
this.elementRef = elementRef;
|
210
|
+
this.rawValidators = rawValidators;
|
211
|
+
this.mcValidation = mcValidation;
|
212
|
+
this.numberInput = numberInput;
|
213
|
+
this.ngModel = ngModel;
|
214
|
+
this.formControlName = formControlName;
|
215
|
+
this.changeDetectorRef = changeDetectorRef;
|
216
|
+
/**
|
217
|
+
* Implemented as part of McFormFieldControl.
|
218
|
+
* @docs-private
|
219
|
+
*/
|
220
|
+
this.focused = false;
|
221
|
+
/**
|
222
|
+
* Implemented as part of McFormFieldControl.
|
223
|
+
* @docs-private
|
224
|
+
*/
|
225
|
+
this.stateChanges = new Subject();
|
226
|
+
/**
|
227
|
+
* Implemented as part of McFormFieldControl.
|
228
|
+
* @docs-private
|
229
|
+
*/
|
230
|
+
this.controlType = 'input';
|
231
|
+
this.uid = `mc-input-${nextUniqueId$1++}`;
|
232
|
+
this.neverEmptyInputTypes = [
|
233
|
+
'date',
|
234
|
+
'datetime',
|
235
|
+
'datetime-local',
|
236
|
+
'month',
|
237
|
+
'time',
|
238
|
+
'week'
|
239
|
+
].filter((t) => getSupportedInputTypes().has(t));
|
240
|
+
this._disabled = false;
|
241
|
+
this._required = false;
|
242
|
+
// tslint:enable no-reserved-keywords
|
243
|
+
this._type = 'text';
|
244
|
+
// If no input value accessor was explicitly specified, use the element as the input value
|
245
|
+
// accessor.
|
246
|
+
this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;
|
247
|
+
this.previousNativeValue = this.value;
|
248
|
+
// Force setter to be called in case id was not specified.
|
249
|
+
this.id = this.id;
|
250
|
+
}
|
251
|
+
/**
|
252
|
+
* Implemented as part of McFormFieldControl.
|
253
|
+
* @docs-private
|
254
|
+
*/
|
255
|
+
get disabled() {
|
256
|
+
if (this.ngControl && this.ngControl.disabled !== null) {
|
257
|
+
return this.ngControl.disabled;
|
258
|
+
}
|
259
|
+
return this._disabled;
|
260
|
+
}
|
261
|
+
set disabled(value) {
|
262
|
+
this._disabled = coerceBooleanProperty(value);
|
263
|
+
// Browsers may not fire the blur event if the input is disabled too quickly.
|
264
|
+
// Reset from here to ensure that the element doesn't become stuck.
|
265
|
+
if (this.focused) {
|
266
|
+
this.focused = false;
|
267
|
+
this.stateChanges.next();
|
268
|
+
}
|
269
|
+
}
|
270
|
+
/**
|
271
|
+
* Implemented as part of McFormFieldControl.
|
272
|
+
* @docs-private
|
273
|
+
*/
|
274
|
+
get id() {
|
275
|
+
return this._id;
|
276
|
+
}
|
277
|
+
set id(value) {
|
278
|
+
this._id = value || this.uid;
|
279
|
+
}
|
280
|
+
/**
|
281
|
+
* Implemented as part of McFormFieldControl.
|
282
|
+
* @docs-private
|
283
|
+
*/
|
284
|
+
get required() {
|
285
|
+
return this._required;
|
286
|
+
}
|
287
|
+
set required(value) {
|
288
|
+
this._required = coerceBooleanProperty(value);
|
289
|
+
}
|
290
|
+
// tslint:disable no-reserved-keywords
|
291
|
+
/** Input type of the element. */
|
292
|
+
get type() {
|
293
|
+
return this._type;
|
294
|
+
}
|
295
|
+
set type(value) {
|
296
|
+
this._type = value || 'text';
|
297
|
+
this.validateType();
|
298
|
+
// When using Angular inputs, developers are no longer able to set the properties on the native
|
299
|
+
// input element. To ensure that bindings for `type` work, we need to sync the setter
|
300
|
+
// with the native property. Textarea elements don't support the type property or attribute.
|
301
|
+
if (getSupportedInputTypes().has(this._type)) {
|
302
|
+
this.elementRef.nativeElement.type = this._type;
|
303
|
+
}
|
304
|
+
}
|
305
|
+
/**
|
306
|
+
* Implemented as part of McFormFieldControl.
|
307
|
+
* @docs-private
|
308
|
+
*/
|
309
|
+
get value() {
|
310
|
+
return this._inputValueAccessor.value;
|
311
|
+
}
|
312
|
+
set value(value) {
|
313
|
+
if (value !== this.value) {
|
314
|
+
this._inputValueAccessor.value = value;
|
315
|
+
this.stateChanges.next();
|
316
|
+
}
|
317
|
+
}
|
318
|
+
ngAfterContentInit() {
|
319
|
+
if (!this.ngControl) {
|
320
|
+
return;
|
321
|
+
}
|
322
|
+
if (this.mcValidation.useValidation) {
|
323
|
+
setMosaicValidation(this, this.changeDetectorRef);
|
324
|
+
}
|
325
|
+
}
|
326
|
+
ngOnChanges() {
|
327
|
+
this.stateChanges.next();
|
328
|
+
}
|
329
|
+
ngOnDestroy() {
|
330
|
+
this.stateChanges.complete();
|
331
|
+
}
|
332
|
+
ngDoCheck() {
|
333
|
+
if (this.ngControl) {
|
334
|
+
// We need to re-evaluate this on every change detection cycle, because there are some
|
335
|
+
// error triggers that we can't subscribe to (e.g. parent form submissions). This means
|
336
|
+
// that whatever logic is in here has to be super lean or we risk destroying the performance.
|
337
|
+
this.updateErrorState();
|
338
|
+
}
|
339
|
+
// We need to dirty-check the native element's value, because there are some cases where
|
340
|
+
// we won't be notified when it changes (e.g. the consumer isn't using forms or they're
|
341
|
+
// updating the value using `emitEvent: false`).
|
342
|
+
this.dirtyCheckNativeValue();
|
343
|
+
}
|
344
|
+
/** Focuses the input. */
|
345
|
+
focus() {
|
346
|
+
this.elementRef.nativeElement.focus();
|
347
|
+
}
|
348
|
+
onBlur() {
|
349
|
+
this.focusChanged(false);
|
350
|
+
if (this.ngControl && this.ngControl.control) {
|
351
|
+
const control = this.ngControl.control;
|
352
|
+
control.updateValueAndValidity({ emitEvent: false });
|
353
|
+
control.statusChanges.emit(control.status);
|
354
|
+
}
|
355
|
+
}
|
356
|
+
/** Callback for the cases where the focused state of the input changes. */
|
357
|
+
focusChanged(isFocused) {
|
358
|
+
if (isFocused !== this.focused) {
|
359
|
+
this.focused = isFocused;
|
360
|
+
this.stateChanges.next();
|
361
|
+
}
|
362
|
+
}
|
363
|
+
onInput() {
|
364
|
+
// This is a noop function and is used to let Angular know whenever the value changes.
|
365
|
+
// Angular will run a new change detection each time the `input` event has been dispatched.
|
366
|
+
// It's necessary that Angular recognizes the value change, because when floatingLabel
|
367
|
+
// is set to false and Angular forms aren't used, the placeholder won't recognize the
|
368
|
+
// value changes and will not disappear.
|
369
|
+
// Listening to the input event wouldn't be necessary when the input is using the
|
370
|
+
// FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
|
371
|
+
}
|
372
|
+
/**
|
373
|
+
* Implemented as part of McFormFieldControl.
|
374
|
+
* @docs-private
|
375
|
+
*/
|
376
|
+
get empty() {
|
377
|
+
return !this.isNeverEmpty() && !this.elementRef.nativeElement.value && !this.isBadInput();
|
378
|
+
}
|
379
|
+
/**
|
380
|
+
* Implemented as part of McFormFieldControl.
|
381
|
+
* @docs-private
|
382
|
+
*/
|
383
|
+
onContainerClick() {
|
384
|
+
this.focus();
|
385
|
+
}
|
386
|
+
/** Does some manual dirty checking on the native input `value` property. */
|
387
|
+
dirtyCheckNativeValue() {
|
388
|
+
const newValue = this.value;
|
389
|
+
if (this.previousNativeValue !== newValue) {
|
390
|
+
this.previousNativeValue = newValue;
|
391
|
+
this.stateChanges.next();
|
392
|
+
}
|
393
|
+
}
|
394
|
+
/** Make sure the input is a supported type. */
|
395
|
+
validateType() {
|
396
|
+
if (MC_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {
|
397
|
+
throw getMcInputUnsupportedTypeError(this._type);
|
398
|
+
}
|
399
|
+
}
|
400
|
+
/** Checks whether the input type is one of the types that are never empty. */
|
401
|
+
isNeverEmpty() {
|
402
|
+
return this.neverEmptyInputTypes.indexOf(this._type) > -1;
|
403
|
+
}
|
404
|
+
/** Checks whether the input is invalid based on the native validation. */
|
405
|
+
isBadInput() {
|
406
|
+
// The `validity` property won't be present on platform-server.
|
407
|
+
const validity = this.elementRef.nativeElement.validity;
|
408
|
+
return validity && validity.badInput;
|
409
|
+
}
|
410
|
+
}
|
411
|
+
/** @nocollapse */ /** @nocollapse */ McInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInput, deps: [{ token: i0.ElementRef }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgControl, optional: true, self: true }, { token: McNumberInput, optional: true, self: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormControlName, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: MC_INPUT_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
412
|
+
/** @nocollapse */ /** @nocollapse */ McInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McInput, selector: "input[mcInput]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", type: "type", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "mc-input" }, providers: [{
|
413
|
+
provide: McFormFieldControl, useExisting: McInput
|
414
|
+
}], exportAs: ["mcInput"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
415
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInput, decorators: [{
|
416
|
+
type: Directive,
|
417
|
+
args: [{
|
418
|
+
selector: `input[mcInput]`,
|
419
|
+
exportAs: 'mcInput',
|
420
|
+
host: {
|
421
|
+
class: 'mc-input',
|
422
|
+
// Native input properties that are overwritten by Angular inputs need to be synced with
|
423
|
+
// the native input element. Otherwise property bindings for those don't work.
|
424
|
+
'[attr.id]': 'id',
|
425
|
+
'[attr.placeholder]': 'placeholder',
|
426
|
+
'[attr.disabled]': 'disabled || null',
|
427
|
+
'[required]': 'required',
|
428
|
+
'(blur)': 'onBlur()',
|
429
|
+
'(focus)': 'focusChanged(true)',
|
430
|
+
'(input)': 'onInput()'
|
431
|
+
},
|
432
|
+
providers: [{
|
433
|
+
provide: McFormFieldControl, useExisting: McInput
|
434
|
+
}]
|
435
|
+
}]
|
436
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
437
|
+
type: Optional
|
438
|
+
}, {
|
439
|
+
type: Self
|
440
|
+
}, {
|
441
|
+
type: Inject,
|
442
|
+
args: [NG_VALIDATORS]
|
443
|
+
}] }, { type: undefined, decorators: [{
|
444
|
+
type: Optional
|
445
|
+
}, {
|
446
|
+
type: Inject,
|
447
|
+
args: [MC_VALIDATION]
|
448
|
+
}] }, { type: i1.NgControl, decorators: [{
|
449
|
+
type: Optional
|
450
|
+
}, {
|
451
|
+
type: Self
|
452
|
+
}] }, { type: McNumberInput, decorators: [{
|
453
|
+
type: Optional
|
454
|
+
}, {
|
455
|
+
type: Self
|
456
|
+
}] }, { type: i1.NgModel, decorators: [{
|
457
|
+
type: Optional
|
458
|
+
}, {
|
459
|
+
type: Self
|
460
|
+
}] }, { type: i1.FormControlName, decorators: [{
|
461
|
+
type: Optional
|
462
|
+
}, {
|
463
|
+
type: Self
|
464
|
+
}] }, { type: i1.NgForm, decorators: [{
|
465
|
+
type: Optional
|
466
|
+
}] }, { type: i1.FormGroupDirective, decorators: [{
|
467
|
+
type: Optional
|
468
|
+
}] }, { type: i3.ErrorStateMatcher }, { type: undefined, decorators: [{
|
469
|
+
type: Optional
|
470
|
+
}, {
|
471
|
+
type: Self
|
472
|
+
}, {
|
473
|
+
type: Inject,
|
474
|
+
args: [MC_INPUT_VALUE_ACCESSOR]
|
475
|
+
}] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { errorStateMatcher: [{
|
476
|
+
type: Input
|
477
|
+
}], placeholder: [{
|
478
|
+
type: Input
|
479
|
+
}], disabled: [{
|
480
|
+
type: Input
|
481
|
+
}], id: [{
|
482
|
+
type: Input
|
483
|
+
}], required: [{
|
484
|
+
type: Input
|
485
|
+
}], type: [{
|
486
|
+
type: Input
|
487
|
+
}], value: [{
|
488
|
+
type: Input
|
489
|
+
}] } });
|
490
|
+
class McInputMono {
|
491
|
+
}
|
492
|
+
/** @nocollapse */ /** @nocollapse */ McInputMono.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputMono, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
493
|
+
/** @nocollapse */ /** @nocollapse */ McInputMono.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McInputMono, selector: "input[mcInputMonospace]", host: { classAttribute: "mc-input_monospace" }, exportAs: ["McInputMonospace"], ngImport: i0 });
|
494
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputMono, decorators: [{
|
495
|
+
type: Directive,
|
496
|
+
args: [{
|
497
|
+
selector: 'input[mcInputMonospace]',
|
498
|
+
exportAs: 'McInputMonospace',
|
499
|
+
host: { class: 'mc-input_monospace' }
|
500
|
+
}]
|
501
501
|
}] });
|
502
502
|
|
503
|
-
const MIN_VALIDATOR = {
|
504
|
-
provide: NG_VALIDATORS,
|
505
|
-
useExisting: forwardRef(() => MinValidator),
|
506
|
-
multi: true
|
507
|
-
};
|
508
|
-
/**
|
509
|
-
* A directive which installs the {@link MinValidator} for any `formControlName`,
|
510
|
-
* `formControl`, or control with `ngModel` that also has a `min` attribute.
|
511
|
-
*
|
512
|
-
* @experimental
|
513
|
-
*/
|
514
|
-
class MinValidator {
|
515
|
-
ngOnChanges(changes) {
|
516
|
-
if ('min' in changes) {
|
517
|
-
this.createValidator();
|
518
|
-
if (this.onChange) {
|
519
|
-
this.onChange();
|
520
|
-
}
|
521
|
-
}
|
522
|
-
}
|
523
|
-
validate(c) {
|
524
|
-
return this.validator(c);
|
525
|
-
}
|
526
|
-
registerOnValidatorChange(fn) {
|
527
|
-
this.onChange = fn;
|
528
|
-
}
|
529
|
-
createValidator() {
|
530
|
-
this.validator = Validators.min(parseInt(this.min, 10));
|
531
|
-
}
|
532
|
-
}
|
533
|
-
/** @nocollapse */ /** @nocollapse */ MinValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: MinValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
534
|
-
/** @nocollapse */ /** @nocollapse */ MinValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: MinValidator, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: { min: "min" }, host: { properties: { "attr.min": "min ? min : null" } }, providers: [MIN_VALIDATOR], usesOnChanges: true, ngImport: i0 });
|
535
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: MinValidator, decorators: [{
|
536
|
-
type: Directive,
|
537
|
-
args: [{
|
538
|
-
selector: '[min][formControlName],[min][formControl],[min][ngModel]',
|
539
|
-
providers: [MIN_VALIDATOR],
|
540
|
-
host: {
|
541
|
-
'[attr.min]': 'min ? min : null'
|
542
|
-
}
|
543
|
-
}]
|
544
|
-
}], propDecorators: { min: [{
|
545
|
-
type: Input
|
546
|
-
}] } });
|
547
|
-
const MAX_VALIDATOR = {
|
548
|
-
provide: NG_VALIDATORS,
|
549
|
-
useExisting: forwardRef(() => MaxValidator),
|
550
|
-
multi: true
|
551
|
-
};
|
552
|
-
/**
|
553
|
-
* A directive which installs the {@link MaxValidator} for any `formControlName`,
|
554
|
-
* `formControl`, or control with `ngModel` that also has a `min` attribute.
|
555
|
-
*
|
556
|
-
* @experimental
|
557
|
-
*/
|
558
|
-
class MaxValidator {
|
559
|
-
ngOnChanges(changes) {
|
560
|
-
if ('max' in changes) {
|
561
|
-
this.createValidator();
|
562
|
-
if (this.onChange) {
|
563
|
-
this.onChange();
|
564
|
-
}
|
565
|
-
}
|
566
|
-
}
|
567
|
-
validate(c) {
|
568
|
-
return this.validator(c);
|
569
|
-
}
|
570
|
-
registerOnValidatorChange(fn) {
|
571
|
-
this.onChange = fn;
|
572
|
-
}
|
573
|
-
createValidator() {
|
574
|
-
this.validator = Validators.max(parseInt(this.max, 10));
|
575
|
-
}
|
576
|
-
}
|
577
|
-
/** @nocollapse */ /** @nocollapse */ MaxValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: MaxValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
578
|
-
/** @nocollapse */ /** @nocollapse */ MaxValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: { max: "max" }, host: { properties: { "attr.max": "max ? max : null" } }, providers: [MAX_VALIDATOR], usesOnChanges: true, ngImport: i0 });
|
579
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: MaxValidator, decorators: [{
|
580
|
-
type: Directive,
|
581
|
-
args: [{
|
582
|
-
selector: '[max][formControlName],[max][formControl],[max][ngModel]',
|
583
|
-
providers: [MAX_VALIDATOR],
|
584
|
-
host: {
|
585
|
-
'[attr.max]': 'max ? max : null'
|
586
|
-
}
|
587
|
-
}]
|
588
|
-
}], propDecorators: { max: [{
|
589
|
-
type: Input
|
503
|
+
const MIN_VALIDATOR = {
|
504
|
+
provide: NG_VALIDATORS,
|
505
|
+
useExisting: forwardRef(() => MinValidator),
|
506
|
+
multi: true
|
507
|
+
};
|
508
|
+
/**
|
509
|
+
* A directive which installs the {@link MinValidator} for any `formControlName`,
|
510
|
+
* `formControl`, or control with `ngModel` that also has a `min` attribute.
|
511
|
+
*
|
512
|
+
* @experimental
|
513
|
+
*/
|
514
|
+
class MinValidator {
|
515
|
+
ngOnChanges(changes) {
|
516
|
+
if ('min' in changes) {
|
517
|
+
this.createValidator();
|
518
|
+
if (this.onChange) {
|
519
|
+
this.onChange();
|
520
|
+
}
|
521
|
+
}
|
522
|
+
}
|
523
|
+
validate(c) {
|
524
|
+
return this.validator(c);
|
525
|
+
}
|
526
|
+
registerOnValidatorChange(fn) {
|
527
|
+
this.onChange = fn;
|
528
|
+
}
|
529
|
+
createValidator() {
|
530
|
+
this.validator = Validators.min(parseInt(this.min, 10));
|
531
|
+
}
|
532
|
+
}
|
533
|
+
/** @nocollapse */ /** @nocollapse */ MinValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: MinValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
534
|
+
/** @nocollapse */ /** @nocollapse */ MinValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: MinValidator, selector: "[min][formControlName],[min][formControl],[min][ngModel]", inputs: { min: "min" }, host: { properties: { "attr.min": "min ? min : null" } }, providers: [MIN_VALIDATOR], usesOnChanges: true, ngImport: i0 });
|
535
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: MinValidator, decorators: [{
|
536
|
+
type: Directive,
|
537
|
+
args: [{
|
538
|
+
selector: '[min][formControlName],[min][formControl],[min][ngModel]',
|
539
|
+
providers: [MIN_VALIDATOR],
|
540
|
+
host: {
|
541
|
+
'[attr.min]': 'min ? min : null'
|
542
|
+
}
|
543
|
+
}]
|
544
|
+
}], propDecorators: { min: [{
|
545
|
+
type: Input
|
546
|
+
}] } });
|
547
|
+
const MAX_VALIDATOR = {
|
548
|
+
provide: NG_VALIDATORS,
|
549
|
+
useExisting: forwardRef(() => MaxValidator),
|
550
|
+
multi: true
|
551
|
+
};
|
552
|
+
/**
|
553
|
+
* A directive which installs the {@link MaxValidator} for any `formControlName`,
|
554
|
+
* `formControl`, or control with `ngModel` that also has a `min` attribute.
|
555
|
+
*
|
556
|
+
* @experimental
|
557
|
+
*/
|
558
|
+
class MaxValidator {
|
559
|
+
ngOnChanges(changes) {
|
560
|
+
if ('max' in changes) {
|
561
|
+
this.createValidator();
|
562
|
+
if (this.onChange) {
|
563
|
+
this.onChange();
|
564
|
+
}
|
565
|
+
}
|
566
|
+
}
|
567
|
+
validate(c) {
|
568
|
+
return this.validator(c);
|
569
|
+
}
|
570
|
+
registerOnValidatorChange(fn) {
|
571
|
+
this.onChange = fn;
|
572
|
+
}
|
573
|
+
createValidator() {
|
574
|
+
this.validator = Validators.max(parseInt(this.max, 10));
|
575
|
+
}
|
576
|
+
}
|
577
|
+
/** @nocollapse */ /** @nocollapse */ MaxValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: MaxValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
578
|
+
/** @nocollapse */ /** @nocollapse */ MaxValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: { max: "max" }, host: { properties: { "attr.max": "max ? max : null" } }, providers: [MAX_VALIDATOR], usesOnChanges: true, ngImport: i0 });
|
579
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: MaxValidator, decorators: [{
|
580
|
+
type: Directive,
|
581
|
+
args: [{
|
582
|
+
selector: '[max][formControlName],[max][formControl],[max][ngModel]',
|
583
|
+
providers: [MAX_VALIDATOR],
|
584
|
+
host: {
|
585
|
+
'[attr.max]': 'max ? max : null'
|
586
|
+
}
|
587
|
+
}]
|
588
|
+
}], propDecorators: { max: [{
|
589
|
+
type: Input
|
590
590
|
}] } });
|
591
591
|
|
592
|
-
let nextUniqueId = 0;
|
593
|
-
class McPasswordToggle extends McTooltipTrigger {
|
594
|
-
constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor, formField) {
|
595
|
-
super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
|
596
|
-
this.focusMonitor = focusMonitor;
|
597
|
-
this.formField = formField;
|
598
|
-
this._tabIndex = 0;
|
599
|
-
this.trigger = `${PopUpTriggers.Hover}`;
|
600
|
-
this.runFocusMonitor();
|
601
|
-
}
|
602
|
-
get content() {
|
603
|
-
return this.formField.control.elementType === 'password' ?
|
604
|
-
this.mcTooltipHidden :
|
605
|
-
this._content;
|
606
|
-
}
|
607
|
-
set content(content) {
|
608
|
-
this._content = content;
|
609
|
-
this.updateData();
|
610
|
-
}
|
611
|
-
get disabled() {
|
612
|
-
return this._disabled === undefined ? this.formField.disabled : this._disabled;
|
613
|
-
}
|
614
|
-
set disabled(value) {
|
615
|
-
this._disabled = coerceBooleanProperty(value);
|
616
|
-
this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();
|
617
|
-
}
|
618
|
-
get tabIndex() {
|
619
|
-
return this.disabled ? -1 : this._tabIndex;
|
620
|
-
}
|
621
|
-
set tabIndex(value) {
|
622
|
-
// If the specified tabIndex value is null or undefined, fall back to the default value.
|
623
|
-
this._tabIndex = value != null ? coerceNumberProperty(value) : 0;
|
624
|
-
}
|
625
|
-
get hidden() {
|
626
|
-
return this.formField.control.elementType === 'password';
|
627
|
-
}
|
628
|
-
ngOnDestroy() {
|
629
|
-
this.stopFocusMonitor();
|
630
|
-
}
|
631
|
-
toggle() {
|
632
|
-
if (this.disabled) {
|
633
|
-
return;
|
634
|
-
}
|
635
|
-
this.hide();
|
636
|
-
const input = this.formField.control;
|
637
|
-
input.toggleType();
|
638
|
-
this.updateData();
|
639
|
-
}
|
640
|
-
runFocusMonitor() {
|
641
|
-
this.focusMonitor.monitor(this.elementRef)
|
642
|
-
.subscribe((origin) => {
|
643
|
-
if (origin === 'keyboard') {
|
644
|
-
this.show();
|
645
|
-
}
|
646
|
-
else if (origin === null) {
|
647
|
-
this.hide();
|
648
|
-
}
|
649
|
-
});
|
650
|
-
}
|
651
|
-
stopFocusMonitor() {
|
652
|
-
this.focusMonitor.stopMonitoring(this.elementRef);
|
653
|
-
}
|
654
|
-
}
|
655
|
-
/** @nocollapse */ /** @nocollapse */ McPasswordToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McPasswordToggle, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1$1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: MC_TOOLTIP_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: i3$1.FocusMonitor }, { token: i4.McFormField }], target: i0.ɵɵFactoryTarget.Component });
|
656
|
-
/** @nocollapse */ /** @nocollapse */ McPasswordToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: McPasswordToggle, selector: "mc-password-toggle", inputs: { content: ["mcTooltipNotHidden", "content"], mcTooltipHidden: "mcTooltipHidden", disabled: "disabled", tabIndex: "tabIndex" }, host: { listeners: { "click": "toggle()", "keydown.ENTER": "toggle()", "keydown.SPACE": "toggle()" }, properties: { "class.mc-eye_16": "hidden", "class.mc-eye-crossed_16": "!hidden", "attr.tabindex": "disabled ? null : tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "mc-password-toggle mc" }, exportAs: ["mcPasswordToggle"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
657
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McPasswordToggle, decorators: [{
|
658
|
-
type: Component,
|
659
|
-
args: [{
|
660
|
-
selector: `mc-password-toggle`,
|
661
|
-
exportAs: 'mcPasswordToggle',
|
662
|
-
template: '<ng-content></ng-content>',
|
663
|
-
host: {
|
664
|
-
class: 'mc-password-toggle mc',
|
665
|
-
'[class.mc-eye_16]': 'hidden',
|
666
|
-
'[class.mc-eye-crossed_16]': '!hidden',
|
667
|
-
'[attr.tabindex]': 'disabled ? null : tabIndex',
|
668
|
-
'[attr.disabled]': 'disabled || null',
|
669
|
-
'(click)': 'toggle()',
|
670
|
-
'(keydown.ENTER)': 'toggle()',
|
671
|
-
'(keydown.SPACE)': 'toggle()'
|
672
|
-
},
|
673
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
674
|
-
encapsulation: ViewEncapsulation.None
|
675
|
-
}]
|
676
|
-
}], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$1.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
677
|
-
type: Inject,
|
678
|
-
args: [MC_TOOLTIP_SCROLL_STRATEGY]
|
679
|
-
}] }, { type: i2.Directionality, decorators: [{
|
680
|
-
type: Optional
|
681
|
-
}] }, { type: i3$1.FocusMonitor }, { type: i4.McFormField }]; }, propDecorators: { content: [{
|
682
|
-
type: Input,
|
683
|
-
args: ['mcTooltipNotHidden']
|
684
|
-
}], mcTooltipHidden: [{
|
685
|
-
type: Input
|
686
|
-
}], disabled: [{
|
687
|
-
type: Input
|
688
|
-
}], tabIndex: [{
|
689
|
-
type: Input
|
690
|
-
}] } });
|
691
|
-
class McInputPassword extends McInputMixinBase {
|
692
|
-
// tslint:disable-next-line: naming-convention
|
693
|
-
constructor(elementRef, rawValidators, mcValidation, ngControl, ngModel, formControlName, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, changeDetectorRef) {
|
694
|
-
super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
|
695
|
-
this.elementRef = elementRef;
|
696
|
-
this.rawValidators = rawValidators;
|
697
|
-
this.mcValidation = mcValidation;
|
698
|
-
this.ngModel = ngModel;
|
699
|
-
this.formControlName = formControlName;
|
700
|
-
this.changeDetectorRef = changeDetectorRef;
|
701
|
-
/**
|
702
|
-
* Implemented as part of McFormFieldControl.
|
703
|
-
* @docs-private
|
704
|
-
*/
|
705
|
-
this.focused = false;
|
706
|
-
/**
|
707
|
-
* Implemented as part of McFormFieldControl.
|
708
|
-
* @docs-private
|
709
|
-
*/
|
710
|
-
this.stateChanges = new Subject();
|
711
|
-
/**
|
712
|
-
* Implemented as part of McFormFieldControl.
|
713
|
-
* @docs-private
|
714
|
-
*/
|
715
|
-
this.controlType = 'input-password';
|
716
|
-
this.elementType = 'password';
|
717
|
-
this.uid = `mc-input-${nextUniqueId++}`;
|
718
|
-
this._disabled = false;
|
719
|
-
this._required = false;
|
720
|
-
// If no input value accessor was explicitly specified, use the element as the input value
|
721
|
-
// accessor.
|
722
|
-
this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;
|
723
|
-
this.previousNativeValue = this.value;
|
724
|
-
// Force setter to be called in case id was not specified.
|
725
|
-
this.id = this.id;
|
726
|
-
}
|
727
|
-
/**
|
728
|
-
* Implemented as part of McFormFieldControl.
|
729
|
-
* @docs-private
|
730
|
-
*/
|
731
|
-
get disabled() {
|
732
|
-
if (this.ngControl?.disabled !== null) {
|
733
|
-
return this.ngControl.disabled;
|
734
|
-
}
|
735
|
-
return this._disabled;
|
736
|
-
}
|
737
|
-
set disabled(value) {
|
738
|
-
this._disabled = coerceBooleanProperty(value);
|
739
|
-
// Browsers may not fire the blur event if the input is disabled too quickly.
|
740
|
-
// Reset from here to ensure that the element doesn't become stuck.
|
741
|
-
if (this.focused) {
|
742
|
-
this.focused = false;
|
743
|
-
this.stateChanges.next();
|
744
|
-
}
|
745
|
-
}
|
746
|
-
/**
|
747
|
-
* Implemented as part of McFormFieldControl.
|
748
|
-
* @docs-private
|
749
|
-
*/
|
750
|
-
get id() {
|
751
|
-
return this._id;
|
752
|
-
}
|
753
|
-
set id(value) {
|
754
|
-
this._id = value || this.uid;
|
755
|
-
}
|
756
|
-
/**
|
757
|
-
* Implemented as part of McFormFieldControl.
|
758
|
-
* @docs-private
|
759
|
-
*/
|
760
|
-
get required() {
|
761
|
-
return this._required;
|
762
|
-
}
|
763
|
-
set required(value) {
|
764
|
-
this._required = coerceBooleanProperty(value);
|
765
|
-
}
|
766
|
-
// this.elementRef.nativeElement.type = this._type;
|
767
|
-
/**
|
768
|
-
* Implemented as part of McFormFieldControl.
|
769
|
-
* @docs-private
|
770
|
-
*/
|
771
|
-
get value() {
|
772
|
-
return this._inputValueAccessor.value;
|
773
|
-
}
|
774
|
-
set value(value) {
|
775
|
-
if (value === this.value) {
|
776
|
-
return;
|
777
|
-
}
|
778
|
-
this._inputValueAccessor.value = value;
|
779
|
-
this.stateChanges.next();
|
780
|
-
}
|
781
|
-
ngAfterContentInit() {
|
782
|
-
if (!this.ngControl) {
|
783
|
-
return;
|
784
|
-
}
|
785
|
-
if (this.mcValidation.useValidation) {
|
786
|
-
setMosaicValidation(this, this.changeDetectorRef);
|
787
|
-
}
|
788
|
-
}
|
789
|
-
ngOnChanges() {
|
790
|
-
this.stateChanges.next();
|
791
|
-
}
|
792
|
-
ngOnDestroy() {
|
793
|
-
this.stateChanges.complete();
|
794
|
-
}
|
795
|
-
ngDoCheck() {
|
796
|
-
if (this.ngControl) {
|
797
|
-
// We need to re-evaluate this on every change detection cycle, because there are some
|
798
|
-
// error triggers that we can't subscribe to (e.g. parent form submissions). This means
|
799
|
-
// that whatever logic is in here has to be super lean or we risk destroying the performance.
|
800
|
-
this.updateErrorState();
|
801
|
-
}
|
802
|
-
// We need to dirty-check the native element's value, because there are some cases where
|
803
|
-
// we won't be notified when it changes (e.g. the consumer isn't using forms or they're
|
804
|
-
// updating the value using `emitEvent: false`).
|
805
|
-
this.dirtyCheckNativeValue();
|
806
|
-
}
|
807
|
-
toggleType() {
|
808
|
-
this.elementType = this.elementType === 'password' ? 'text' : 'password';
|
809
|
-
}
|
810
|
-
/** Focuses the input. */
|
811
|
-
focus() {
|
812
|
-
this.elementRef.nativeElement.focus();
|
813
|
-
}
|
814
|
-
onBlur() {
|
815
|
-
if (this.ngControl?.control) {
|
816
|
-
const control = this.ngControl.control;
|
817
|
-
control.updateValueAndValidity({ emitEvent: false });
|
818
|
-
control.statusChanges.emit(control.status);
|
819
|
-
}
|
820
|
-
this.focusChanged(false);
|
821
|
-
}
|
822
|
-
/** Callback for the cases where the focused state of the input changes. */
|
823
|
-
focusChanged(isFocused) {
|
824
|
-
if (isFocused === this.focused) {
|
825
|
-
return;
|
826
|
-
}
|
827
|
-
this.focused = isFocused;
|
828
|
-
this.stateChanges.next({ focused: this.focused });
|
829
|
-
}
|
830
|
-
onInput() {
|
831
|
-
// This is a noop function and is used to let Angular know whenever the value changes.
|
832
|
-
// Angular will run a new change detection each time the `input` event has been dispatched.
|
833
|
-
// It's necessary that Angular recognizes the value change, because when floatingLabel
|
834
|
-
// is set to false and Angular forms aren't used, the placeholder won't recognize the
|
835
|
-
// value changes and will not disappear.
|
836
|
-
// Listening to the input event wouldn't be necessary when the input is using the
|
837
|
-
// FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
|
838
|
-
}
|
839
|
-
/**
|
840
|
-
* Implemented as part of McFormFieldControl.
|
841
|
-
* @docs-private
|
842
|
-
*/
|
843
|
-
get empty() {
|
844
|
-
return !this.elementRef.nativeElement.value && !this.isBadInput();
|
845
|
-
}
|
846
|
-
/**
|
847
|
-
* Implemented as part of McFormFieldControl.
|
848
|
-
* @docs-private
|
849
|
-
*/
|
850
|
-
onContainerClick() {
|
851
|
-
this.focus();
|
852
|
-
}
|
853
|
-
/** Does some manual dirty checking on the native input `value` property. */
|
854
|
-
dirtyCheckNativeValue() {
|
855
|
-
if (this.previousNativeValue !== this.value) {
|
856
|
-
this.previousNativeValue = this.value;
|
857
|
-
this.stateChanges.next();
|
858
|
-
}
|
859
|
-
}
|
860
|
-
/** Checks whether the input is invalid based on the native validation. */
|
861
|
-
isBadInput() {
|
862
|
-
// The `validity` property won't be present on platform-server.
|
863
|
-
return this.elementRef.nativeElement.validity?.badInput;
|
864
|
-
}
|
865
|
-
}
|
866
|
-
/** @nocollapse */ /** @nocollapse */ McInputPassword.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputPassword, deps: [{ token: i0.ElementRef }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormControlName, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: MC_INPUT_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
867
|
-
/** @nocollapse */ /** @nocollapse */ McInputPassword.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McInputPassword, selector: "input[mcInputPassword]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.type": "elementType", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "mc-input mc-input-password" }, providers: [{
|
868
|
-
provide: McFormFieldControl, useExisting: McInputPassword
|
869
|
-
}], exportAs: ["mcInputPassword"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
870
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputPassword, decorators: [{
|
871
|
-
type: Directive,
|
872
|
-
args: [{
|
873
|
-
selector: `input[mcInputPassword]`,
|
874
|
-
exportAs: 'mcInputPassword',
|
875
|
-
host: {
|
876
|
-
class: 'mc-input mc-input-password',
|
877
|
-
// Native input properties that are overwritten by Angular inputs need to be synced with
|
878
|
-
// the native input element. Otherwise property bindings for those don't work.
|
879
|
-
'[attr.id]': 'id',
|
880
|
-
'[attr.type]': 'elementType',
|
881
|
-
'[attr.placeholder]': 'placeholder',
|
882
|
-
'[attr.disabled]': 'disabled || null',
|
883
|
-
'[required]': 'required',
|
884
|
-
'(blur)': 'onBlur()',
|
885
|
-
'(focus)': 'focusChanged(true)',
|
886
|
-
'(input)': 'onInput()'
|
887
|
-
},
|
888
|
-
providers: [{
|
889
|
-
provide: McFormFieldControl, useExisting: McInputPassword
|
890
|
-
}]
|
891
|
-
}]
|
892
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
893
|
-
type: Optional
|
894
|
-
}, {
|
895
|
-
type: Self
|
896
|
-
}, {
|
897
|
-
type: Inject,
|
898
|
-
args: [NG_VALIDATORS]
|
899
|
-
}] }, { type: undefined, decorators: [{
|
900
|
-
type: Optional
|
901
|
-
}, {
|
902
|
-
type: Inject,
|
903
|
-
args: [MC_VALIDATION]
|
904
|
-
}] }, { type: i1.NgControl, decorators: [{
|
905
|
-
type: Optional
|
906
|
-
}, {
|
907
|
-
type: Self
|
908
|
-
}] }, { type: i1.NgModel, decorators: [{
|
909
|
-
type: Optional
|
910
|
-
}, {
|
911
|
-
type: Self
|
912
|
-
}] }, { type: i1.FormControlName, decorators: [{
|
913
|
-
type: Optional
|
914
|
-
}, {
|
915
|
-
type: Self
|
916
|
-
}] }, { type: i1.NgForm, decorators: [{
|
917
|
-
type: Optional
|
918
|
-
}] }, { type: i1.FormGroupDirective, decorators: [{
|
919
|
-
type: Optional
|
920
|
-
}] }, { type: i3.ErrorStateMatcher }, { type: undefined, decorators: [{
|
921
|
-
type: Optional
|
922
|
-
}, {
|
923
|
-
type: Self
|
924
|
-
}, {
|
925
|
-
type: Inject,
|
926
|
-
args: [MC_INPUT_VALUE_ACCESSOR]
|
927
|
-
}] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { errorStateMatcher: [{
|
928
|
-
type: Input
|
929
|
-
}], placeholder: [{
|
930
|
-
type: Input
|
931
|
-
}], disabled: [{
|
932
|
-
type: Input
|
933
|
-
}], id: [{
|
934
|
-
type: Input
|
935
|
-
}], required: [{
|
936
|
-
type: Input
|
937
|
-
}], value: [{
|
938
|
-
type: Input
|
592
|
+
let nextUniqueId = 0;
|
593
|
+
class McPasswordToggle extends McTooltipTrigger {
|
594
|
+
constructor(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction, focusMonitor, formField) {
|
595
|
+
super(overlay, elementRef, ngZone, scrollDispatcher, hostView, scrollStrategy, direction);
|
596
|
+
this.focusMonitor = focusMonitor;
|
597
|
+
this.formField = formField;
|
598
|
+
this._tabIndex = 0;
|
599
|
+
this.trigger = `${PopUpTriggers.Hover}`;
|
600
|
+
this.runFocusMonitor();
|
601
|
+
}
|
602
|
+
get content() {
|
603
|
+
return this.formField.control.elementType === 'password' ?
|
604
|
+
this.mcTooltipHidden :
|
605
|
+
this._content;
|
606
|
+
}
|
607
|
+
set content(content) {
|
608
|
+
this._content = content;
|
609
|
+
this.updateData();
|
610
|
+
}
|
611
|
+
get disabled() {
|
612
|
+
return this._disabled === undefined ? this.formField.disabled : this._disabled;
|
613
|
+
}
|
614
|
+
set disabled(value) {
|
615
|
+
this._disabled = coerceBooleanProperty(value);
|
616
|
+
this._disabled ? this.stopFocusMonitor() : this.runFocusMonitor();
|
617
|
+
}
|
618
|
+
get tabIndex() {
|
619
|
+
return this.disabled ? -1 : this._tabIndex;
|
620
|
+
}
|
621
|
+
set tabIndex(value) {
|
622
|
+
// If the specified tabIndex value is null or undefined, fall back to the default value.
|
623
|
+
this._tabIndex = value != null ? coerceNumberProperty(value) : 0;
|
624
|
+
}
|
625
|
+
get hidden() {
|
626
|
+
return this.formField.control.elementType === 'password';
|
627
|
+
}
|
628
|
+
ngOnDestroy() {
|
629
|
+
this.stopFocusMonitor();
|
630
|
+
}
|
631
|
+
toggle() {
|
632
|
+
if (this.disabled) {
|
633
|
+
return;
|
634
|
+
}
|
635
|
+
this.hide();
|
636
|
+
const input = this.formField.control;
|
637
|
+
input.toggleType();
|
638
|
+
this.updateData();
|
639
|
+
}
|
640
|
+
runFocusMonitor() {
|
641
|
+
this.focusMonitor.monitor(this.elementRef)
|
642
|
+
.subscribe((origin) => {
|
643
|
+
if (origin === 'keyboard') {
|
644
|
+
this.show();
|
645
|
+
}
|
646
|
+
else if (origin === null) {
|
647
|
+
this.hide();
|
648
|
+
}
|
649
|
+
});
|
650
|
+
}
|
651
|
+
stopFocusMonitor() {
|
652
|
+
this.focusMonitor.stopMonitoring(this.elementRef);
|
653
|
+
}
|
654
|
+
}
|
655
|
+
/** @nocollapse */ /** @nocollapse */ McPasswordToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McPasswordToggle, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i1$1.ScrollDispatcher }, { token: i0.ViewContainerRef }, { token: MC_TOOLTIP_SCROLL_STRATEGY }, { token: i2.Directionality, optional: true }, { token: i3$1.FocusMonitor }, { token: i4.McFormField }], target: i0.ɵɵFactoryTarget.Component });
|
656
|
+
/** @nocollapse */ /** @nocollapse */ McPasswordToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: McPasswordToggle, selector: "mc-password-toggle", inputs: { content: ["mcTooltipNotHidden", "content"], mcTooltipHidden: "mcTooltipHidden", disabled: "disabled", tabIndex: "tabIndex" }, host: { listeners: { "click": "toggle()", "keydown.ENTER": "toggle()", "keydown.SPACE": "toggle()" }, properties: { "class.mc-eye_16": "hidden", "class.mc-eye-crossed_16": "!hidden", "attr.tabindex": "disabled ? null : tabIndex", "attr.disabled": "disabled || null" }, classAttribute: "mc-password-toggle mc" }, exportAs: ["mcPasswordToggle"], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
657
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McPasswordToggle, decorators: [{
|
658
|
+
type: Component,
|
659
|
+
args: [{
|
660
|
+
selector: `mc-password-toggle`,
|
661
|
+
exportAs: 'mcPasswordToggle',
|
662
|
+
template: '<ng-content></ng-content>',
|
663
|
+
host: {
|
664
|
+
class: 'mc-password-toggle mc',
|
665
|
+
'[class.mc-eye_16]': 'hidden',
|
666
|
+
'[class.mc-eye-crossed_16]': '!hidden',
|
667
|
+
'[attr.tabindex]': 'disabled ? null : tabIndex',
|
668
|
+
'[attr.disabled]': 'disabled || null',
|
669
|
+
'(click)': 'toggle()',
|
670
|
+
'(keydown.ENTER)': 'toggle()',
|
671
|
+
'(keydown.SPACE)': 'toggle()'
|
672
|
+
},
|
673
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
674
|
+
encapsulation: ViewEncapsulation.None
|
675
|
+
}]
|
676
|
+
}], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i1$1.ScrollDispatcher }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
677
|
+
type: Inject,
|
678
|
+
args: [MC_TOOLTIP_SCROLL_STRATEGY]
|
679
|
+
}] }, { type: i2.Directionality, decorators: [{
|
680
|
+
type: Optional
|
681
|
+
}] }, { type: i3$1.FocusMonitor }, { type: i4.McFormField }]; }, propDecorators: { content: [{
|
682
|
+
type: Input,
|
683
|
+
args: ['mcTooltipNotHidden']
|
684
|
+
}], mcTooltipHidden: [{
|
685
|
+
type: Input
|
686
|
+
}], disabled: [{
|
687
|
+
type: Input
|
688
|
+
}], tabIndex: [{
|
689
|
+
type: Input
|
690
|
+
}] } });
|
691
|
+
class McInputPassword extends McInputMixinBase {
|
692
|
+
// tslint:disable-next-line: naming-convention
|
693
|
+
constructor(elementRef, rawValidators, mcValidation, ngControl, ngModel, formControlName, parentForm, parentFormGroup, defaultErrorStateMatcher, inputValueAccessor, changeDetectorRef) {
|
694
|
+
super(defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
|
695
|
+
this.elementRef = elementRef;
|
696
|
+
this.rawValidators = rawValidators;
|
697
|
+
this.mcValidation = mcValidation;
|
698
|
+
this.ngModel = ngModel;
|
699
|
+
this.formControlName = formControlName;
|
700
|
+
this.changeDetectorRef = changeDetectorRef;
|
701
|
+
/**
|
702
|
+
* Implemented as part of McFormFieldControl.
|
703
|
+
* @docs-private
|
704
|
+
*/
|
705
|
+
this.focused = false;
|
706
|
+
/**
|
707
|
+
* Implemented as part of McFormFieldControl.
|
708
|
+
* @docs-private
|
709
|
+
*/
|
710
|
+
this.stateChanges = new Subject();
|
711
|
+
/**
|
712
|
+
* Implemented as part of McFormFieldControl.
|
713
|
+
* @docs-private
|
714
|
+
*/
|
715
|
+
this.controlType = 'input-password';
|
716
|
+
this.elementType = 'password';
|
717
|
+
this.uid = `mc-input-${nextUniqueId++}`;
|
718
|
+
this._disabled = false;
|
719
|
+
this._required = false;
|
720
|
+
// If no input value accessor was explicitly specified, use the element as the input value
|
721
|
+
// accessor.
|
722
|
+
this._inputValueAccessor = inputValueAccessor || this.elementRef.nativeElement;
|
723
|
+
this.previousNativeValue = this.value;
|
724
|
+
// Force setter to be called in case id was not specified.
|
725
|
+
this.id = this.id;
|
726
|
+
}
|
727
|
+
/**
|
728
|
+
* Implemented as part of McFormFieldControl.
|
729
|
+
* @docs-private
|
730
|
+
*/
|
731
|
+
get disabled() {
|
732
|
+
if (this.ngControl?.disabled !== null) {
|
733
|
+
return this.ngControl.disabled;
|
734
|
+
}
|
735
|
+
return this._disabled;
|
736
|
+
}
|
737
|
+
set disabled(value) {
|
738
|
+
this._disabled = coerceBooleanProperty(value);
|
739
|
+
// Browsers may not fire the blur event if the input is disabled too quickly.
|
740
|
+
// Reset from here to ensure that the element doesn't become stuck.
|
741
|
+
if (this.focused) {
|
742
|
+
this.focused = false;
|
743
|
+
this.stateChanges.next();
|
744
|
+
}
|
745
|
+
}
|
746
|
+
/**
|
747
|
+
* Implemented as part of McFormFieldControl.
|
748
|
+
* @docs-private
|
749
|
+
*/
|
750
|
+
get id() {
|
751
|
+
return this._id;
|
752
|
+
}
|
753
|
+
set id(value) {
|
754
|
+
this._id = value || this.uid;
|
755
|
+
}
|
756
|
+
/**
|
757
|
+
* Implemented as part of McFormFieldControl.
|
758
|
+
* @docs-private
|
759
|
+
*/
|
760
|
+
get required() {
|
761
|
+
return this._required;
|
762
|
+
}
|
763
|
+
set required(value) {
|
764
|
+
this._required = coerceBooleanProperty(value);
|
765
|
+
}
|
766
|
+
// this.elementRef.nativeElement.type = this._type;
|
767
|
+
/**
|
768
|
+
* Implemented as part of McFormFieldControl.
|
769
|
+
* @docs-private
|
770
|
+
*/
|
771
|
+
get value() {
|
772
|
+
return this._inputValueAccessor.value;
|
773
|
+
}
|
774
|
+
set value(value) {
|
775
|
+
if (value === this.value) {
|
776
|
+
return;
|
777
|
+
}
|
778
|
+
this._inputValueAccessor.value = value;
|
779
|
+
this.stateChanges.next();
|
780
|
+
}
|
781
|
+
ngAfterContentInit() {
|
782
|
+
if (!this.ngControl) {
|
783
|
+
return;
|
784
|
+
}
|
785
|
+
if (this.mcValidation.useValidation) {
|
786
|
+
setMosaicValidation(this, this.changeDetectorRef);
|
787
|
+
}
|
788
|
+
}
|
789
|
+
ngOnChanges() {
|
790
|
+
this.stateChanges.next();
|
791
|
+
}
|
792
|
+
ngOnDestroy() {
|
793
|
+
this.stateChanges.complete();
|
794
|
+
}
|
795
|
+
ngDoCheck() {
|
796
|
+
if (this.ngControl) {
|
797
|
+
// We need to re-evaluate this on every change detection cycle, because there are some
|
798
|
+
// error triggers that we can't subscribe to (e.g. parent form submissions). This means
|
799
|
+
// that whatever logic is in here has to be super lean or we risk destroying the performance.
|
800
|
+
this.updateErrorState();
|
801
|
+
}
|
802
|
+
// We need to dirty-check the native element's value, because there are some cases where
|
803
|
+
// we won't be notified when it changes (e.g. the consumer isn't using forms or they're
|
804
|
+
// updating the value using `emitEvent: false`).
|
805
|
+
this.dirtyCheckNativeValue();
|
806
|
+
}
|
807
|
+
toggleType() {
|
808
|
+
this.elementType = this.elementType === 'password' ? 'text' : 'password';
|
809
|
+
}
|
810
|
+
/** Focuses the input. */
|
811
|
+
focus() {
|
812
|
+
this.elementRef.nativeElement.focus();
|
813
|
+
}
|
814
|
+
onBlur() {
|
815
|
+
if (this.ngControl?.control) {
|
816
|
+
const control = this.ngControl.control;
|
817
|
+
control.updateValueAndValidity({ emitEvent: false });
|
818
|
+
control.statusChanges.emit(control.status);
|
819
|
+
}
|
820
|
+
this.focusChanged(false);
|
821
|
+
}
|
822
|
+
/** Callback for the cases where the focused state of the input changes. */
|
823
|
+
focusChanged(isFocused) {
|
824
|
+
if (isFocused === this.focused) {
|
825
|
+
return;
|
826
|
+
}
|
827
|
+
this.focused = isFocused;
|
828
|
+
this.stateChanges.next({ focused: this.focused });
|
829
|
+
}
|
830
|
+
onInput() {
|
831
|
+
// This is a noop function and is used to let Angular know whenever the value changes.
|
832
|
+
// Angular will run a new change detection each time the `input` event has been dispatched.
|
833
|
+
// It's necessary that Angular recognizes the value change, because when floatingLabel
|
834
|
+
// is set to false and Angular forms aren't used, the placeholder won't recognize the
|
835
|
+
// value changes and will not disappear.
|
836
|
+
// Listening to the input event wouldn't be necessary when the input is using the
|
837
|
+
// FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.
|
838
|
+
}
|
839
|
+
/**
|
840
|
+
* Implemented as part of McFormFieldControl.
|
841
|
+
* @docs-private
|
842
|
+
*/
|
843
|
+
get empty() {
|
844
|
+
return !this.elementRef.nativeElement.value && !this.isBadInput();
|
845
|
+
}
|
846
|
+
/**
|
847
|
+
* Implemented as part of McFormFieldControl.
|
848
|
+
* @docs-private
|
849
|
+
*/
|
850
|
+
onContainerClick() {
|
851
|
+
this.focus();
|
852
|
+
}
|
853
|
+
/** Does some manual dirty checking on the native input `value` property. */
|
854
|
+
dirtyCheckNativeValue() {
|
855
|
+
if (this.previousNativeValue !== this.value) {
|
856
|
+
this.previousNativeValue = this.value;
|
857
|
+
this.stateChanges.next();
|
858
|
+
}
|
859
|
+
}
|
860
|
+
/** Checks whether the input is invalid based on the native validation. */
|
861
|
+
isBadInput() {
|
862
|
+
// The `validity` property won't be present on platform-server.
|
863
|
+
return this.elementRef.nativeElement.validity?.badInput;
|
864
|
+
}
|
865
|
+
}
|
866
|
+
/** @nocollapse */ /** @nocollapse */ McInputPassword.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputPassword, deps: [{ token: i0.ElementRef }, { token: NG_VALIDATORS, optional: true, self: true }, { token: MC_VALIDATION, optional: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgModel, optional: true, self: true }, { token: i1.FormControlName, optional: true, self: true }, { token: i1.NgForm, optional: true }, { token: i1.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: MC_INPUT_VALUE_ACCESSOR, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
867
|
+
/** @nocollapse */ /** @nocollapse */ McInputPassword.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.7", type: McInputPassword, selector: "input[mcInputPassword]", inputs: { errorStateMatcher: "errorStateMatcher", placeholder: "placeholder", disabled: "disabled", id: "id", required: "required", value: "value" }, host: { listeners: { "blur": "onBlur()", "focus": "focusChanged(true)", "input": "onInput()" }, properties: { "attr.id": "id", "attr.type": "elementType", "attr.placeholder": "placeholder", "attr.disabled": "disabled || null", "required": "required" }, classAttribute: "mc-input mc-input-password" }, providers: [{
|
868
|
+
provide: McFormFieldControl, useExisting: McInputPassword
|
869
|
+
}], exportAs: ["mcInputPassword"], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
870
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputPassword, decorators: [{
|
871
|
+
type: Directive,
|
872
|
+
args: [{
|
873
|
+
selector: `input[mcInputPassword]`,
|
874
|
+
exportAs: 'mcInputPassword',
|
875
|
+
host: {
|
876
|
+
class: 'mc-input mc-input-password',
|
877
|
+
// Native input properties that are overwritten by Angular inputs need to be synced with
|
878
|
+
// the native input element. Otherwise property bindings for those don't work.
|
879
|
+
'[attr.id]': 'id',
|
880
|
+
'[attr.type]': 'elementType',
|
881
|
+
'[attr.placeholder]': 'placeholder',
|
882
|
+
'[attr.disabled]': 'disabled || null',
|
883
|
+
'[required]': 'required',
|
884
|
+
'(blur)': 'onBlur()',
|
885
|
+
'(focus)': 'focusChanged(true)',
|
886
|
+
'(input)': 'onInput()'
|
887
|
+
},
|
888
|
+
providers: [{
|
889
|
+
provide: McFormFieldControl, useExisting: McInputPassword
|
890
|
+
}]
|
891
|
+
}]
|
892
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
893
|
+
type: Optional
|
894
|
+
}, {
|
895
|
+
type: Self
|
896
|
+
}, {
|
897
|
+
type: Inject,
|
898
|
+
args: [NG_VALIDATORS]
|
899
|
+
}] }, { type: undefined, decorators: [{
|
900
|
+
type: Optional
|
901
|
+
}, {
|
902
|
+
type: Inject,
|
903
|
+
args: [MC_VALIDATION]
|
904
|
+
}] }, { type: i1.NgControl, decorators: [{
|
905
|
+
type: Optional
|
906
|
+
}, {
|
907
|
+
type: Self
|
908
|
+
}] }, { type: i1.NgModel, decorators: [{
|
909
|
+
type: Optional
|
910
|
+
}, {
|
911
|
+
type: Self
|
912
|
+
}] }, { type: i1.FormControlName, decorators: [{
|
913
|
+
type: Optional
|
914
|
+
}, {
|
915
|
+
type: Self
|
916
|
+
}] }, { type: i1.NgForm, decorators: [{
|
917
|
+
type: Optional
|
918
|
+
}] }, { type: i1.FormGroupDirective, decorators: [{
|
919
|
+
type: Optional
|
920
|
+
}] }, { type: i3.ErrorStateMatcher }, { type: undefined, decorators: [{
|
921
|
+
type: Optional
|
922
|
+
}, {
|
923
|
+
type: Self
|
924
|
+
}, {
|
925
|
+
type: Inject,
|
926
|
+
args: [MC_INPUT_VALUE_ACCESSOR]
|
927
|
+
}] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { errorStateMatcher: [{
|
928
|
+
type: Input
|
929
|
+
}], placeholder: [{
|
930
|
+
type: Input
|
931
|
+
}], disabled: [{
|
932
|
+
type: Input
|
933
|
+
}], id: [{
|
934
|
+
type: Input
|
935
|
+
}], required: [{
|
936
|
+
type: Input
|
937
|
+
}], value: [{
|
938
|
+
type: Input
|
939
939
|
}] } });
|
940
940
|
|
941
|
-
class McInputModule {
|
942
|
-
}
|
943
|
-
/** @nocollapse */ /** @nocollapse */ McInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
944
|
-
/** @nocollapse */ /** @nocollapse */ McInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputModule, declarations: [McInput,
|
945
|
-
McNumberInput,
|
946
|
-
McInputPassword,
|
947
|
-
McPasswordToggle,
|
948
|
-
McInputMono,
|
949
|
-
MinValidator,
|
950
|
-
MaxValidator], imports: [CommonModule,
|
951
|
-
A11yModule,
|
952
|
-
McCommonModule,
|
953
|
-
FormsModule], exports: [McInput,
|
954
|
-
McNumberInput,
|
955
|
-
McInputPassword,
|
956
|
-
McPasswordToggle,
|
957
|
-
McInputMono,
|
958
|
-
MinValidator,
|
959
|
-
MaxValidator] });
|
960
|
-
/** @nocollapse */ /** @nocollapse */ McInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputModule, imports: [[
|
961
|
-
CommonModule,
|
962
|
-
A11yModule,
|
963
|
-
McCommonModule,
|
964
|
-
FormsModule
|
965
|
-
]] });
|
966
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputModule, decorators: [{
|
967
|
-
type: NgModule,
|
968
|
-
args: [{
|
969
|
-
imports: [
|
970
|
-
CommonModule,
|
971
|
-
A11yModule,
|
972
|
-
McCommonModule,
|
973
|
-
FormsModule
|
974
|
-
],
|
975
|
-
declarations: [
|
976
|
-
McInput,
|
977
|
-
McNumberInput,
|
978
|
-
McInputPassword,
|
979
|
-
McPasswordToggle,
|
980
|
-
McInputMono,
|
981
|
-
MinValidator,
|
982
|
-
MaxValidator
|
983
|
-
],
|
984
|
-
exports: [
|
985
|
-
McInput,
|
986
|
-
McNumberInput,
|
987
|
-
McInputPassword,
|
988
|
-
McPasswordToggle,
|
989
|
-
McInputMono,
|
990
|
-
MinValidator,
|
991
|
-
MaxValidator
|
992
|
-
]
|
993
|
-
}]
|
941
|
+
class McInputModule {
|
942
|
+
}
|
943
|
+
/** @nocollapse */ /** @nocollapse */ McInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
944
|
+
/** @nocollapse */ /** @nocollapse */ McInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputModule, declarations: [McInput,
|
945
|
+
McNumberInput,
|
946
|
+
McInputPassword,
|
947
|
+
McPasswordToggle,
|
948
|
+
McInputMono,
|
949
|
+
MinValidator,
|
950
|
+
MaxValidator], imports: [CommonModule,
|
951
|
+
A11yModule,
|
952
|
+
McCommonModule,
|
953
|
+
FormsModule], exports: [McInput,
|
954
|
+
McNumberInput,
|
955
|
+
McInputPassword,
|
956
|
+
McPasswordToggle,
|
957
|
+
McInputMono,
|
958
|
+
MinValidator,
|
959
|
+
MaxValidator] });
|
960
|
+
/** @nocollapse */ /** @nocollapse */ McInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputModule, imports: [[
|
961
|
+
CommonModule,
|
962
|
+
A11yModule,
|
963
|
+
McCommonModule,
|
964
|
+
FormsModule
|
965
|
+
]] });
|
966
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McInputModule, decorators: [{
|
967
|
+
type: NgModule,
|
968
|
+
args: [{
|
969
|
+
imports: [
|
970
|
+
CommonModule,
|
971
|
+
A11yModule,
|
972
|
+
McCommonModule,
|
973
|
+
FormsModule
|
974
|
+
],
|
975
|
+
declarations: [
|
976
|
+
McInput,
|
977
|
+
McNumberInput,
|
978
|
+
McInputPassword,
|
979
|
+
McPasswordToggle,
|
980
|
+
McInputMono,
|
981
|
+
MinValidator,
|
982
|
+
MaxValidator
|
983
|
+
],
|
984
|
+
exports: [
|
985
|
+
McInput,
|
986
|
+
McNumberInput,
|
987
|
+
McInputPassword,
|
988
|
+
McPasswordToggle,
|
989
|
+
McInputMono,
|
990
|
+
MinValidator,
|
991
|
+
MaxValidator
|
992
|
+
]
|
993
|
+
}]
|
994
994
|
}] });
|
995
995
|
|
996
|
-
/**
|
997
|
-
* Generated bundle index. Do not edit.
|
996
|
+
/**
|
997
|
+
* Generated bundle index. Do not edit.
|
998
998
|
*/
|
999
999
|
|
1000
1000
|
export { BIG_STEP, MAX_VALIDATOR, MC_INPUT_VALUE_ACCESSOR, MIN_VALIDATOR, MaxValidator, McInput, McInputBase, McInputMixinBase, McInputModule, McInputMono, McInputPassword, McNumberInput, McPasswordToggle, MinValidator, SMALL_STEP, add, getPrecision, isDigit, isFloat, isInt, normalizeSplitter };
|