@ptsecurity/mosaic 13.6.0 → 13.7.1
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 +7238 -7128
- package/_visual.scss +2724 -2694
- 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 +30 -30
- 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 -18
- 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 -178
- 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 -97
- package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +64 -64
- package/design-tokens/legacy-2017/tokens/components/divider.json5 +14 -14
- 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/loader-overlay.json5 +23 -0
- 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 +16 -16
- 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 +45 -44
- package/design-tokens/legacy-2017/tokens/components/select.json5 +24 -24
- package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +44 -44
- 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 -134
- 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 +119 -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 +7873 -7843
- 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 -97
- package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -64
- package/design-tokens/pt-2022/tokens/components/divider.json5 +14 -14
- 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/loader-overlay.json5 +23 -0
- 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 +16 -16
- 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 +45 -44
- package/design-tokens/pt-2022/tokens/components/select.json5 +24 -24
- package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +44 -44
- 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 -137
- 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 +122 -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 +9205 -9175
- 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 +76 -63
- package/design-tokens/style-dictionary/configs/css.js +13 -13
- package/design-tokens/style-dictionary/configs/figma.js +11 -0
- 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/figma.js +104 -0
- 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/figma.js +21 -0
- package/design-tokens/style-dictionary/transformGroups/scss.js +12 -12
- package/design-tokens/style-dictionary/transformGroups/ts.js +11 -11
- package/design-tokens/style-dictionary/transforms/attribute/figma-border.js +18 -0
- package/design-tokens/style-dictionary/transforms/attribute/figma-color.js +25 -0
- package/design-tokens/style-dictionary/transforms/attribute/figma-default.js +10 -0
- package/design-tokens/style-dictionary/transforms/attribute/figma-font.js +31 -0
- package/design-tokens/style-dictionary/transforms/attribute/figma-group.js +17 -0
- package/design-tokens/style-dictionary/transforms/attribute/figma-opacity.js +10 -0
- package/design-tokens/style-dictionary/transforms/attribute/figma-shadow.js +66 -0
- package/design-tokens/style-dictionary/transforms/attribute/figma-sizing.js +16 -0
- package/design-tokens/style-dictionary/transforms/attribute/figma-spacing.js +15 -0
- package/design-tokens/style-dictionary/transforms/attribute/figma-typography.js +24 -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/design-tokens/style-dictionary/transforms/value/figma-values.js +7 -0
- 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 -316
- 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 +49 -49
- 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 -118
- 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 +938 -936
- 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 +404 -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 +1167 -1137
- package/esm2020/design-tokens/pt-2022/tokens.mjs +1237 -1207
- 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 +34 -23
- package/esm2020/form-field/index.mjs +2 -2
- package/esm2020/form-field/password-hint.mjs +139 -139
- 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 +372 -372
- 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 +689 -686
- 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/loader-overlay/index.mjs +2 -0
- package/esm2020/loader-overlay/loader-overlay.component.mjs +99 -0
- package/esm2020/loader-overlay/loader-overlay.module.mjs +50 -0
- package/esm2020/loader-overlay/ptsecurity-mosaic-loader-overlay.mjs +5 -0
- package/esm2020/loader-overlay/public-api.mjs +3 -0
- 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 +509 -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 +239 -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 +1117 -1107
- 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 +665 -676
- 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 +126 -126
- 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 +113 -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 +248 -236
- package/esm2020/tree/tree-selection.component.mjs +541 -540
- package/esm2020/tree/tree.mjs +15 -15
- package/esm2020/tree/tree.module.mjs +57 -57
- 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 +939 -929
- 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 +348 -348
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-core.mjs +2652 -2652
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2682 -2684
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2433 -2343
- 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 +522 -512
- 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 +979 -979
- 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 +765 -762
- package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +155 -0
- package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -0
- package/fesm2015/ptsecurity-mosaic-modal.mjs +833 -824
- package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-navbar.mjs +996 -994
- 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 +1213 -1203
- 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 +703 -714
- 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 +954 -944
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree.mjs +1696 -1682
- 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 +346 -346
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs +2681 -2681
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2667 -2669
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2433 -2343
- 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 +507 -497
- 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 +968 -968
- 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 +758 -755
- package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +153 -0
- package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -0
- package/fesm2020/ptsecurity-mosaic-modal.mjs +828 -820
- package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-navbar.mjs +980 -978
- 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 +1208 -1198
- 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 +700 -711
- 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 +951 -941
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree.mjs +1683 -1669
- 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 +14 -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 +123 -123
- 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/{toggle → loader-overlay}/README.md +0 -0
- package/loader-overlay/index.d.ts +1 -0
- package/loader-overlay/loader-overlay.component.d.ts +33 -0
- package/loader-overlay/loader-overlay.module.d.ts +11 -0
- package/loader-overlay/package.json +10 -0
- package/loader-overlay/ptsecurity-mosaic-loader-overlay.d.ts +5 -0
- package/loader-overlay/public-api.d.ts +2 -0
- 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 +128 -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 +60 -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 +12 -4
- 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 +310 -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 +146 -147
- 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 +52 -52
- 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 +47 -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 +72 -68
- package/tree/tree-selection.component.d.ts +132 -132
- 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 +277 -274
- package/tree-select/tree-select.module.d.ts +14 -14
@@ -1,229 +1,229 @@
|
|
1
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
2
|
-
import { Directive, ElementRef, EventEmitter, Inject, Input, Optional, Output, Renderer2, Self } from '@angular/core';
|
3
|
-
import { NgControl } from '@angular/forms';
|
4
|
-
import { hasModifierKey, ENTER, TAB, SPACE, COMMA } from '@ptsecurity/cdk/keycodes';
|
5
|
-
import { MC_TAGS_DEFAULT_OPTIONS } from './tag-default-options';
|
6
|
-
import { McTagList } from './tag-list.component';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "@angular/forms";
|
9
|
-
// Increasing integer for generating unique ids.
|
10
|
-
let nextUniqueId = 0;
|
11
|
-
/**
|
12
|
-
* Directive that adds tag-specific behaviors to an input element inside `<mc-form-field>`.
|
13
|
-
* May be placed inside or outside of an `<mc-tag-list>`.
|
14
|
-
*/
|
15
|
-
export class McTagInput {
|
16
|
-
constructor(elementRef, renderer, defaultOptions, ngControl) {
|
17
|
-
this.elementRef = elementRef;
|
18
|
-
this.renderer = renderer;
|
19
|
-
this.defaultOptions = defaultOptions;
|
20
|
-
this.ngControl = ngControl;
|
21
|
-
/** Whether the control is focused. */
|
22
|
-
this.focused = false;
|
23
|
-
/**
|
24
|
-
* The list of key codes that will trigger a tagEnd event.
|
25
|
-
*
|
26
|
-
* Defaults to `[ENTER]`.
|
27
|
-
*/
|
28
|
-
this.separatorKeyCodes = this.defaultOptions.separatorKeyCodes;
|
29
|
-
/** Emitted when a tag is to be added. */
|
30
|
-
this.tagEnd = new EventEmitter();
|
31
|
-
/** The input's placeholder text. */
|
32
|
-
this.placeholder = '';
|
33
|
-
/** Unique id for the input. */
|
34
|
-
this.id = `mc-tag-list-input-${nextUniqueId++}`;
|
35
|
-
this._addOnBlur = true;
|
36
|
-
this._disabled = false;
|
37
|
-
this.countOfSymbolsForUpdateWidth = 3;
|
38
|
-
// tslint:disable-next-line: no-unnecessary-type-assertion
|
39
|
-
this.inputElement = this.elementRef.nativeElement;
|
40
|
-
this.setDefaultInputWidth();
|
41
|
-
}
|
42
|
-
/** Register input for tag list */
|
43
|
-
set tagList(value) {
|
44
|
-
if (value) {
|
45
|
-
this._tagList = value;
|
46
|
-
this._tagList.registerInput(this);
|
47
|
-
}
|
48
|
-
}
|
49
|
-
/**
|
50
|
-
* Whether or not the tagEnd event will be emitted when the input is blurred.
|
51
|
-
*/
|
52
|
-
get addOnBlur() {
|
53
|
-
return this._addOnBlur;
|
54
|
-
}
|
55
|
-
set addOnBlur(value) {
|
56
|
-
this._addOnBlur = coerceBooleanProperty(value);
|
57
|
-
}
|
58
|
-
/** Whether the input is disabled. */
|
59
|
-
get disabled() {
|
60
|
-
return this._disabled || (this._tagList && this._tagList.disabled);
|
61
|
-
}
|
62
|
-
set disabled(value) {
|
63
|
-
this._disabled = coerceBooleanProperty(value);
|
64
|
-
}
|
65
|
-
/** Whether the input is empty. */
|
66
|
-
get empty() {
|
67
|
-
return !this.inputElement.value;
|
68
|
-
}
|
69
|
-
ngOnChanges() {
|
70
|
-
this._tagList.stateChanges.next();
|
71
|
-
}
|
72
|
-
onKeydown(event) {
|
73
|
-
if (!this.inputElement.value) {
|
74
|
-
this._tagList.keydown(event);
|
75
|
-
}
|
76
|
-
if (this.isSeparatorKey(event)) {
|
77
|
-
this.emitTagEnd();
|
78
|
-
event.preventDefault();
|
79
|
-
}
|
80
|
-
}
|
81
|
-
/** Checks to see if the blur should emit the (tagEnd) event. */
|
82
|
-
blur() {
|
83
|
-
this.focused = false;
|
84
|
-
// Blur the tag list if it is not focused
|
85
|
-
if (!this._tagList.focused) {
|
86
|
-
this.triggerValidation();
|
87
|
-
this._tagList.blur();
|
88
|
-
}
|
89
|
-
// tslint:disable-next-line: no-unnecessary-type-assertion
|
90
|
-
if (this.addOnBlur) {
|
91
|
-
this.emitTagEnd();
|
92
|
-
}
|
93
|
-
this._tagList.stateChanges.next();
|
94
|
-
}
|
95
|
-
triggerValidation() {
|
96
|
-
if (!this.hasControl()) {
|
97
|
-
return;
|
98
|
-
}
|
99
|
-
this.ngControl.statusChanges.emit(this.ngControl.status);
|
100
|
-
}
|
101
|
-
/** Checks to see if the (tagEnd) event needs to be emitted. */
|
102
|
-
emitTagEnd() {
|
103
|
-
if (!this.hasControl() || (this.hasControl() && !this.ngControl.invalid)) {
|
104
|
-
this.tagEnd.emit({ input: this.inputElement, value: this.inputElement.value });
|
105
|
-
this.updateInputWidth();
|
106
|
-
}
|
107
|
-
}
|
108
|
-
onInput() {
|
109
|
-
this.updateInputWidth();
|
110
|
-
// Let tag list know whenever the value changes.
|
111
|
-
this._tagList.stateChanges.next();
|
112
|
-
}
|
113
|
-
onPaste($event) {
|
114
|
-
if (!$event.clipboardData) {
|
115
|
-
return;
|
116
|
-
}
|
117
|
-
const data = $event.clipboardData.getData('text');
|
118
|
-
if (data && data.length === 0) {
|
119
|
-
return;
|
120
|
-
}
|
121
|
-
const items = [];
|
122
|
-
for (const key of this.separatorKeyCodes) {
|
123
|
-
const separator = this.separatorKeyToSymbol(key);
|
124
|
-
if (data.search(separator) > -1) {
|
125
|
-
items.push(...data.split(separator));
|
126
|
-
break;
|
127
|
-
}
|
128
|
-
}
|
129
|
-
if (items.length === 0) {
|
130
|
-
items.push(data);
|
131
|
-
}
|
132
|
-
items.forEach((item) => this.tagEnd.emit({ input: this.inputElement, value: item }));
|
133
|
-
this.updateInputWidth();
|
134
|
-
$event.preventDefault();
|
135
|
-
$event.stopPropagation();
|
136
|
-
}
|
137
|
-
updateInputWidth() {
|
138
|
-
const length = this.inputElement.value.length;
|
139
|
-
this.renderer.setStyle(this.inputElement, 'max-width', 0);
|
140
|
-
this.oneSymbolWidth = this.inputElement.scrollWidth / length;
|
141
|
-
this.renderer.setStyle(this.inputElement, 'max-width', '');
|
142
|
-
if (length > this.countOfSymbolsForUpdateWidth) {
|
143
|
-
this.renderer.setStyle(this.inputElement, 'width', `${length * this.oneSymbolWidth}px`);
|
144
|
-
}
|
145
|
-
else {
|
146
|
-
this.setDefaultInputWidth();
|
147
|
-
}
|
148
|
-
}
|
149
|
-
onFocus() {
|
150
|
-
this.focused = true;
|
151
|
-
this._tagList.stateChanges.next();
|
152
|
-
}
|
153
|
-
/** Focuses the input. */
|
154
|
-
focus() {
|
155
|
-
this.inputElement.focus();
|
156
|
-
}
|
157
|
-
separatorKeyToSymbol(k) {
|
158
|
-
const sep = {
|
159
|
-
[ENTER]: /\r?\n/,
|
160
|
-
[TAB]: /\t/,
|
161
|
-
[SPACE]: / /,
|
162
|
-
[COMMA]: /,/
|
163
|
-
}[k];
|
164
|
-
if (sep) {
|
165
|
-
return sep;
|
166
|
-
}
|
167
|
-
return k;
|
168
|
-
}
|
169
|
-
hasControl() {
|
170
|
-
return !!this.ngControl;
|
171
|
-
}
|
172
|
-
setDefaultInputWidth() {
|
173
|
-
this.renderer.setStyle(this.inputElement, 'width', '30px');
|
174
|
-
}
|
175
|
-
/** Checks whether a keycode is one of the configured separators. */
|
176
|
-
isSeparatorKey(event) {
|
177
|
-
if (hasModifierKey(event)) {
|
178
|
-
return false;
|
179
|
-
}
|
180
|
-
// tslint:disable-next-line: deprecation
|
181
|
-
return this.separatorKeyCodes.indexOf(event.keyCode) > -1;
|
182
|
-
}
|
183
|
-
}
|
184
|
-
/** @nocollapse */ /** @nocollapse */ McTagInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
185
|
-
/** @nocollapse */ /** @nocollapse */ McTagInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.
|
186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
187
|
-
type: Directive,
|
188
|
-
args: [{
|
189
|
-
selector: 'input[mcTagInputFor]',
|
190
|
-
exportAs: 'mcTagInput, mcTagInputFor',
|
191
|
-
host: {
|
192
|
-
class: 'mc-tag-input',
|
193
|
-
'[id]': 'id',
|
194
|
-
'[attr.disabled]': 'disabled || null',
|
195
|
-
'[attr.placeholder]': 'placeholder || null',
|
196
|
-
'(keydown)': 'onKeydown($event)',
|
197
|
-
'(blur)': 'blur()',
|
198
|
-
'(focus)': 'onFocus()',
|
199
|
-
'(input)': 'onInput()',
|
200
|
-
'(paste)': 'onPaste($event)'
|
201
|
-
}
|
202
|
-
}]
|
203
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
204
|
-
type: Inject,
|
205
|
-
args: [MC_TAGS_DEFAULT_OPTIONS]
|
206
|
-
}] }, { type: i1.NgControl, decorators: [{
|
207
|
-
type: Optional
|
208
|
-
}, {
|
209
|
-
type: Self
|
210
|
-
}] }]; }, propDecorators: { separatorKeyCodes: [{
|
211
|
-
type: Input,
|
212
|
-
args: ['mcTagInputSeparatorKeyCodes']
|
213
|
-
}], tagEnd: [{
|
214
|
-
type: Output,
|
215
|
-
args: ['mcTagInputTokenEnd']
|
216
|
-
}], placeholder: [{
|
217
|
-
type: Input
|
218
|
-
}], id: [{
|
219
|
-
type: Input
|
220
|
-
}], tagList: [{
|
221
|
-
type: Input,
|
222
|
-
args: ['mcTagInputFor']
|
223
|
-
}], addOnBlur: [{
|
224
|
-
type: Input,
|
225
|
-
args: ['mcTagInputAddOnBlur']
|
226
|
-
}], disabled: [{
|
227
|
-
type: Input
|
228
|
-
}] } });
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RhZ3MvdGFnLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULElBQUksRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRixPQUFPLEVBQUUsdUJBQXVCLEVBQXdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFjakQsZ0RBQWdEO0FBQ2hELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQjs7O0dBR0c7QUFrQkgsTUFBTSxPQUFPLFVBQVU7SUF3RW5CLFlBQ1ksVUFBd0MsRUFDeEMsUUFBbUIsRUFDYyxjQUFvQyxFQUNsRCxTQUFvQjtRQUh2QyxlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUN4QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ2MsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBQ2xELGNBQVMsR0FBVCxTQUFTLENBQVc7UUEzRW5ELHNDQUFzQztRQUN0QyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRXpCOzs7O1dBSUc7UUFFSCxzQkFBaUIsR0FBYSxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO1FBRXBFLHlDQUF5QztRQUV6QyxXQUFNLEdBQWtDLElBQUksWUFBWSxFQUFt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QUNaLGlCQUFpQixFQUFFLGtCQUFrQjt3QkFDckMsb0JBQW9CLEVBQUUscUJBQXFCO3dCQUUzQyxXQUFXLEVBQUUsbUJBQW1CO3dCQUNoQyxRQUFRLEVBQUUsUUFBUTt3QkFDbEIsU0FBUyxFQUFFLFdBQVc7d0JBQ3RCLFNBQVMsRUFBRSxXQUFXO3dCQUN0QixTQUFTLEVBQUUsaUJBQWlCO3FCQUMvQjtpQkFDSjs7MEJBNEVRLE1BQU07MkJBQUMsdUJBQXVCOzswQkFDOUIsUUFBUTs7MEJBQUksSUFBSTs0Q0FsRXJCLGlCQUFpQjtzQkFEaEIsS0FBSzt1QkFBQyw2QkFBNkI7Z0JBS3BDLE1BQU07c0JBREwsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBSW5CLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csRUFBRTtzQkFBVixLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxlQUFlO2dCQWVsQixTQUFTO3NCQURaLEtBQUs7dUJBQUMscUJBQXFCO2dCQWF4QixRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQge1xyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEluamVjdCxcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTZWxmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgaGFzTW9kaWZpZXJLZXksIEVOVEVSLCBUQUIsIFNQQUNFLCBDT01NQSB9IGZyb20gJ0BwdHNlY3VyaXR5L2Nkay9rZXljb2Rlcyc7XHJcblxyXG5pbXBvcnQgeyBNQ19UQUdTX0RFRkFVTFRfT1BUSU9OUywgTWNUYWdzRGVmYXVsdE9wdGlvbnMgfSBmcm9tICcuL3RhZy1kZWZhdWx0LW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBNY1RhZ0xpc3QgfSBmcm9tICcuL3RhZy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1jVGFnVGV4dENvbnRyb2wgfSBmcm9tICcuL3RhZy10ZXh0LWNvbnRyb2wnO1xyXG5cclxuXHJcbi8qKiBSZXByZXNlbnRzIGFuIGlucHV0IGV2ZW50IG9uIGEgYG1jVGFnSW5wdXRgLiAqL1xyXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5hbWluZy1jb252ZW50aW9uXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWNUYWdJbnB1dEV2ZW50IHtcclxuICAgIC8qKiBUaGUgbmF0aXZlIGA8aW5wdXQ+YCBlbGVtZW50IHRoYXQgdGhlIGV2ZW50IGlzIGJlaW5nIGZpcmVkIGZvci4gKi9cclxuICAgIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0LiAqL1xyXG4gICAgdmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuLy8gSW5jcmVhc2luZyBpbnRlZ2VyIGZvciBnZW5lcmF0aW5nIHVuaXF1ZSBpZHMuXHJcbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xyXG5cclxuLyoqXHJcbiAqIERpcmVjdGl2ZSB0aGF0IGFkZHMgdGFnLXNwZWNpZmljIGJlaGF2aW9ycyB0byBhbiBpbnB1dCBlbGVtZW50IGluc2lkZSBgPG1jLWZvcm0tZmllbGQ+YC5cclxuICogTWF5IGJlIHBsYWNlZCBpbnNpZGUgb3Igb3V0c2lkZSBvZiBhbiBgPG1jLXRhZy1saXN0PmAuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnaW5wdXRbbWNUYWdJbnB1dEZvcl0nLFxyXG4gICAgZXhwb3J0QXM6ICdtY1RhZ0lucHV0LCBtY1RhZ0lucHV0Rm9yJyxcclxuICAgIGhvc3Q6IHtcclxuICAgICAgICBjbGFzczogJ21jLXRhZy1pbnB1dCcsXHJcblxyXG4gICAgICAgICdbaWRdJzogJ2lkJyxcclxuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkIHx8IG51bGwnLFxyXG4gICAgICAgICdbYXR0ci5wbGFjZWhvbGRlcl0nOiAncGxhY2Vob2xkZXIgfHwgbnVsbCcsXHJcblxyXG4gICAgICAgICcoa2V5ZG93biknOiAnb25LZXlkb3duKCRldmVudCknLFxyXG4gICAgICAgICcoYmx1ciknOiAnYmx1cigpJyxcclxuICAgICAgICAnKGZvY3VzKSc6ICdvbkZvY3VzKCknLFxyXG4gICAgICAgICcoaW5wdXQpJzogJ29uSW5wdXQoKScsXHJcbiAgICAgICAgJyhwYXN0ZSknOiAnb25QYXN0ZSgkZXZlbnQpJ1xyXG4gICAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWNUYWdJbnB1dCBpbXBsZW1lbnRzIE1jVGFnVGV4dENvbnRyb2wsIE9uQ2hhbmdlcyB7XHJcbiAgICAvKiogV2hldGhlciB0aGUgY29udHJvbCBpcyBmb2N1c2VkLiAqL1xyXG4gICAgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGxpc3Qgb2Yga2V5IGNvZGVzIHRoYXQgd2lsbCB0cmlnZ2VyIGEgdGFnRW5kIGV2ZW50LlxyXG4gICAgICpcclxuICAgICAqIERlZmF1bHRzIHRvIGBbRU5URVJdYC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtY1RhZ0lucHV0U2VwYXJhdG9yS2V5Q29kZXMnKVxyXG4gICAgc2VwYXJhdG9yS2V5Q29kZXM6IG51bWJlcltdID0gdGhpcy5kZWZhdWx0T3B0aW9ucy5zZXBhcmF0b3JLZXlDb2RlcztcclxuXHJcbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgdGFnIGlzIHRvIGJlIGFkZGVkLiAqL1xyXG4gICAgQE91dHB1dCgnbWNUYWdJbnB1dFRva2VuRW5kJylcclxuICAgIHRhZ0VuZDogRXZlbnRFbWl0dGVyPE1jVGFnSW5wdXRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1jVGFnSW5wdXRFdmVudD4oKTtcclxuXHJcbiAgICAvKiogVGhlIGlucHV0J3MgcGxhY2Vob2xkZXIgdGV4dC4gKi9cclxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKiogVW5pcXVlIGlkIGZvciB0aGUgaW5wdXQuICovXHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gYG1jLXRhZy1saXN0LWlucHV0LSR7bmV4dFVuaXF1ZUlkKyt9YDtcclxuXHJcbiAgICAvKiogUmVnaXN0ZXIgaW5wdXQgZm9yIHRhZyBsaXN0ICovXHJcbiAgICBASW5wdXQoJ21jVGFnSW5wdXRGb3InKVxyXG4gICAgc2V0IHRhZ0xpc3QodmFsdWU6IE1jVGFnTGlzdCkge1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl90YWdMaXN0ID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3RhZ0xpc3QucmVnaXN0ZXJJbnB1dCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuYW1pbmctY29udmVudGlvblxyXG4gICAgcHJpdmF0ZSBfdGFnTGlzdDogTWNUYWdMaXN0O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIHRhZ0VuZCBldmVudCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaXMgYmx1cnJlZC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtY1RhZ0lucHV0QWRkT25CbHVyJylcclxuICAgIGdldCBhZGRPbkJsdXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FkZE9uQmx1cjtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgYWRkT25CbHVyKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fYWRkT25CbHVyID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9hZGRPbkJsdXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyBkaXNhYmxlZC4gKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkIHx8ICh0aGlzLl90YWdMaXN0ICYmIHRoaXMuX3RhZ0xpc3QuZGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyBlbXB0eS4gKi9cclxuICAgIGdldCBlbXB0eSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvdW50T2ZTeW1ib2xzRm9yVXBkYXRlV2lkdGg6IG51bWJlciA9IDM7XHJcblxyXG4gICAgcHJpdmF0ZSBvbmVTeW1ib2xXaWR0aDogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBUaGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgdG8gd2hpY2ggdGhpcyBkaXJlY3RpdmUgaXMgYXR0YWNoZWQuICovXHJcbiAgICBwcml2YXRlIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXHJcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIEBJbmplY3QoTUNfVEFHU19ERUZBVUxUX09QVElPTlMpIHByaXZhdGUgZGVmYXVsdE9wdGlvbnM6IE1jVGFnc0RlZmF1bHRPcHRpb25zLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sXHJcbiAgICApIHtcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLXVubmVjZXNzYXJ5LXR5cGUtYXNzZXJ0aW9uXHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgICAgICB0aGlzLnNldERlZmF1bHRJbnB1dFdpZHRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgICAgdGhpcy5fdGFnTGlzdC5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdGFnTGlzdC5rZXlkb3duKGV2ZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzU2VwYXJhdG9yS2V5KGV2ZW50KSkge1xyXG4gICAgICAgICAgICB0aGlzLmVtaXRUYWdFbmQoKTtcclxuXHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBDaGVja3MgdG8gc2VlIGlmIHRoZSBibHVyIHNob3VsZCBlbWl0IHRoZSAodGFnRW5kKSBldmVudC4gKi9cclxuICAgIGJsdXIoKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgICAgLy8gQmx1ciB0aGUgdGFnIGxpc3QgaWYgaXQgaXMgbm90IGZvY3VzZWRcclxuICAgICAgICBpZiAoIXRoaXMuX3RhZ0xpc3QuZm9jdXNlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJWYWxpZGF0aW9uKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl90YWdMaXN0LmJsdXIoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tdW5uZWNlc3NhcnktdHlwZS1hc3NlcnRpb25cclxuICAgICAgICBpZiAodGhpcy5hZGRPbkJsdXIpIHtcclxuICAgICAgICAgICAgdGhpcy5lbWl0VGFnRW5kKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl90YWdMaXN0LnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJpZ2dlclZhbGlkYXRpb24oKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmhhc0NvbnRyb2woKSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgKHRoaXMubmdDb250cm9sLnN0YXR1c0NoYW5nZXMgYXMgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+KS5lbWl0KHRoaXMubmdDb250cm9sLnN0YXR1cyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENoZWNrcyB0byBzZWUgaWYgdGhlICh0YWdFbmQpIGV2ZW50IG5lZWRzIHRvIGJlIGVtaXR0ZWQuICovXHJcbiAgICBlbWl0VGFnRW5kKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5oYXNDb250cm9sKCkgfHwgKHRoaXMuaGFzQ29udHJvbCgpICYmICF0aGlzLm5nQ29udHJvbC5pbnZhbGlkKSkge1xyXG4gICAgICAgICAgICB0aGlzLnRhZ0VuZC5lbWl0KHsgaW5wdXQ6IHRoaXMuaW5wdXRFbGVtZW50LCB2YWx1ZTogdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgfSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbklucHV0KCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xyXG4gICAgICAgIC8vIExldCB0YWcgbGlzdCBrbm93IHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzLlxyXG4gICAgICAgIHRoaXMuX3RhZ0xpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBvblBhc3RlKCRldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcclxuICAgICAgICBpZiAoISRldmVudC5jbGlwYm9hcmREYXRhKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICBjb25zdCBkYXRhID0gJGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dCcpO1xyXG5cclxuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmxlbmd0aCA9PT0gMCkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgY29uc3QgaXRlbXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMuc2VwYXJhdG9yS2V5Q29kZXMpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gdGhpcy5zZXBhcmF0b3JLZXlUb1N5bWJvbChrZXkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGRhdGEuc2VhcmNoKHNlcGFyYXRvcikgPiAtMSkge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCguLi5kYXRhLnNwbGl0KHNlcGFyYXRvcikpO1xyXG5cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goZGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB0aGlzLnRhZ0VuZC5lbWl0KHsgaW5wdXQ6IHRoaXMuaW5wdXRFbGVtZW50LCB2YWx1ZTogaXRlbSB9KSk7XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xyXG5cclxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlSW5wdXRXaWR0aCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBsZW5ndGggPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XHJcblxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dEVsZW1lbnQsICdtYXgtd2lkdGgnLCAwKTtcclxuICAgICAgICB0aGlzLm9uZVN5bWJvbFdpZHRoID0gdGhpcy5pbnB1dEVsZW1lbnQuc2Nyb2xsV2lkdGggLyBsZW5ndGg7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmlucHV0RWxlbWVudCwgJ21heC13aWR0aCcsICcnKTtcclxuXHJcbiAgICAgICAgaWYgKGxlbmd0aCA+IHRoaXMuY291bnRPZlN5bWJvbHNGb3JVcGRhdGVXaWR0aCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW5wdXRFbGVtZW50LCAnd2lkdGgnLCBgJHtsZW5ndGggKiB0aGlzLm9uZVN5bWJvbFdpZHRofXB4YCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0SW5wdXRXaWR0aCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkZvY3VzKCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fdGFnTGlzdC5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBGb2N1c2VzIHRoZSBpbnB1dC4gKi9cclxuICAgIGZvY3VzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXBhcmF0b3JLZXlUb1N5bWJvbChrKTogUmVnRXhwIHwgc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBzZXAgPSB7XHJcbiAgICAgICAgICAgIFtFTlRFUl06IC9cXHI/XFxuLyxcclxuICAgICAgICAgICAgW1RBQl06IC9cXHQvLFxyXG4gICAgICAgICAgICBbU1BBQ0VdOiAvIC8sXHJcbiAgICAgICAgICAgIFtDT01NQV06IC8sL1xyXG4gICAgICAgIH1ba107XHJcblxyXG4gICAgICAgIGlmIChzZXApIHsgcmV0dXJuIHNlcDsgfVxyXG5cclxuICAgICAgICByZXR1cm4gaztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhc0NvbnRyb2woKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5uZ0NvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0SW5wdXRXaWR0aCgpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW5wdXRFbGVtZW50LCAnd2lkdGgnLCAnMzBweCcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBDaGVja3Mgd2hldGhlciBhIGtleWNvZGUgaXMgb25lIG9mIHRoZSBjb25maWd1cmVkIHNlcGFyYXRvcnMuICovXHJcbiAgICBwcml2YXRlIGlzU2VwYXJhdG9yS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgaWYgKGhhc01vZGlmaWVyS2V5KGV2ZW50KSkgeyByZXR1cm4gZmFsc2U7IH1cclxuXHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkZXByZWNhdGlvblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNlcGFyYXRvcktleUNvZGVzLmluZGV4T2YoZXZlbnQua2V5Q29kZSkgPiAtMTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
1
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
2
|
+
import { Directive, ElementRef, EventEmitter, Inject, Input, Optional, Output, Renderer2, Self } from '@angular/core';
|
3
|
+
import { NgControl } from '@angular/forms';
|
4
|
+
import { hasModifierKey, ENTER, TAB, SPACE, COMMA } from '@ptsecurity/cdk/keycodes';
|
5
|
+
import { MC_TAGS_DEFAULT_OPTIONS } from './tag-default-options';
|
6
|
+
import { McTagList } from './tag-list.component';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
import * as i1 from "@angular/forms";
|
9
|
+
// Increasing integer for generating unique ids.
|
10
|
+
let nextUniqueId = 0;
|
11
|
+
/**
|
12
|
+
* Directive that adds tag-specific behaviors to an input element inside `<mc-form-field>`.
|
13
|
+
* May be placed inside or outside of an `<mc-tag-list>`.
|
14
|
+
*/
|
15
|
+
export class McTagInput {
|
16
|
+
constructor(elementRef, renderer, defaultOptions, ngControl) {
|
17
|
+
this.elementRef = elementRef;
|
18
|
+
this.renderer = renderer;
|
19
|
+
this.defaultOptions = defaultOptions;
|
20
|
+
this.ngControl = ngControl;
|
21
|
+
/** Whether the control is focused. */
|
22
|
+
this.focused = false;
|
23
|
+
/**
|
24
|
+
* The list of key codes that will trigger a tagEnd event.
|
25
|
+
*
|
26
|
+
* Defaults to `[ENTER]`.
|
27
|
+
*/
|
28
|
+
this.separatorKeyCodes = this.defaultOptions.separatorKeyCodes;
|
29
|
+
/** Emitted when a tag is to be added. */
|
30
|
+
this.tagEnd = new EventEmitter();
|
31
|
+
/** The input's placeholder text. */
|
32
|
+
this.placeholder = '';
|
33
|
+
/** Unique id for the input. */
|
34
|
+
this.id = `mc-tag-list-input-${nextUniqueId++}`;
|
35
|
+
this._addOnBlur = true;
|
36
|
+
this._disabled = false;
|
37
|
+
this.countOfSymbolsForUpdateWidth = 3;
|
38
|
+
// tslint:disable-next-line: no-unnecessary-type-assertion
|
39
|
+
this.inputElement = this.elementRef.nativeElement;
|
40
|
+
this.setDefaultInputWidth();
|
41
|
+
}
|
42
|
+
/** Register input for tag list */
|
43
|
+
set tagList(value) {
|
44
|
+
if (value) {
|
45
|
+
this._tagList = value;
|
46
|
+
this._tagList.registerInput(this);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
/**
|
50
|
+
* Whether or not the tagEnd event will be emitted when the input is blurred.
|
51
|
+
*/
|
52
|
+
get addOnBlur() {
|
53
|
+
return this._addOnBlur;
|
54
|
+
}
|
55
|
+
set addOnBlur(value) {
|
56
|
+
this._addOnBlur = coerceBooleanProperty(value);
|
57
|
+
}
|
58
|
+
/** Whether the input is disabled. */
|
59
|
+
get disabled() {
|
60
|
+
return this._disabled || (this._tagList && this._tagList.disabled);
|
61
|
+
}
|
62
|
+
set disabled(value) {
|
63
|
+
this._disabled = coerceBooleanProperty(value);
|
64
|
+
}
|
65
|
+
/** Whether the input is empty. */
|
66
|
+
get empty() {
|
67
|
+
return !this.inputElement.value;
|
68
|
+
}
|
69
|
+
ngOnChanges() {
|
70
|
+
this._tagList.stateChanges.next();
|
71
|
+
}
|
72
|
+
onKeydown(event) {
|
73
|
+
if (!this.inputElement.value) {
|
74
|
+
this._tagList.keydown(event);
|
75
|
+
}
|
76
|
+
if (this.isSeparatorKey(event)) {
|
77
|
+
this.emitTagEnd();
|
78
|
+
event.preventDefault();
|
79
|
+
}
|
80
|
+
}
|
81
|
+
/** Checks to see if the blur should emit the (tagEnd) event. */
|
82
|
+
blur() {
|
83
|
+
this.focused = false;
|
84
|
+
// Blur the tag list if it is not focused
|
85
|
+
if (!this._tagList.focused) {
|
86
|
+
this.triggerValidation();
|
87
|
+
this._tagList.blur();
|
88
|
+
}
|
89
|
+
// tslint:disable-next-line: no-unnecessary-type-assertion
|
90
|
+
if (this.addOnBlur) {
|
91
|
+
this.emitTagEnd();
|
92
|
+
}
|
93
|
+
this._tagList.stateChanges.next();
|
94
|
+
}
|
95
|
+
triggerValidation() {
|
96
|
+
if (!this.hasControl()) {
|
97
|
+
return;
|
98
|
+
}
|
99
|
+
this.ngControl.statusChanges.emit(this.ngControl.status);
|
100
|
+
}
|
101
|
+
/** Checks to see if the (tagEnd) event needs to be emitted. */
|
102
|
+
emitTagEnd() {
|
103
|
+
if (!this.hasControl() || (this.hasControl() && !this.ngControl.invalid)) {
|
104
|
+
this.tagEnd.emit({ input: this.inputElement, value: this.inputElement.value });
|
105
|
+
this.updateInputWidth();
|
106
|
+
}
|
107
|
+
}
|
108
|
+
onInput() {
|
109
|
+
this.updateInputWidth();
|
110
|
+
// Let tag list know whenever the value changes.
|
111
|
+
this._tagList.stateChanges.next();
|
112
|
+
}
|
113
|
+
onPaste($event) {
|
114
|
+
if (!$event.clipboardData) {
|
115
|
+
return;
|
116
|
+
}
|
117
|
+
const data = $event.clipboardData.getData('text');
|
118
|
+
if (data && data.length === 0) {
|
119
|
+
return;
|
120
|
+
}
|
121
|
+
const items = [];
|
122
|
+
for (const key of this.separatorKeyCodes) {
|
123
|
+
const separator = this.separatorKeyToSymbol(key);
|
124
|
+
if (data.search(separator) > -1) {
|
125
|
+
items.push(...data.split(separator));
|
126
|
+
break;
|
127
|
+
}
|
128
|
+
}
|
129
|
+
if (items.length === 0) {
|
130
|
+
items.push(data);
|
131
|
+
}
|
132
|
+
items.forEach((item) => this.tagEnd.emit({ input: this.inputElement, value: item }));
|
133
|
+
this.updateInputWidth();
|
134
|
+
$event.preventDefault();
|
135
|
+
$event.stopPropagation();
|
136
|
+
}
|
137
|
+
updateInputWidth() {
|
138
|
+
const length = this.inputElement.value.length;
|
139
|
+
this.renderer.setStyle(this.inputElement, 'max-width', 0);
|
140
|
+
this.oneSymbolWidth = this.inputElement.scrollWidth / length;
|
141
|
+
this.renderer.setStyle(this.inputElement, 'max-width', '');
|
142
|
+
if (length > this.countOfSymbolsForUpdateWidth) {
|
143
|
+
this.renderer.setStyle(this.inputElement, 'width', `${length * this.oneSymbolWidth}px`);
|
144
|
+
}
|
145
|
+
else {
|
146
|
+
this.setDefaultInputWidth();
|
147
|
+
}
|
148
|
+
}
|
149
|
+
onFocus() {
|
150
|
+
this.focused = true;
|
151
|
+
this._tagList.stateChanges.next();
|
152
|
+
}
|
153
|
+
/** Focuses the input. */
|
154
|
+
focus() {
|
155
|
+
this.inputElement.focus();
|
156
|
+
}
|
157
|
+
separatorKeyToSymbol(k) {
|
158
|
+
const sep = {
|
159
|
+
[ENTER]: /\r?\n/,
|
160
|
+
[TAB]: /\t/,
|
161
|
+
[SPACE]: / /,
|
162
|
+
[COMMA]: /,/
|
163
|
+
}[k];
|
164
|
+
if (sep) {
|
165
|
+
return sep;
|
166
|
+
}
|
167
|
+
return k;
|
168
|
+
}
|
169
|
+
hasControl() {
|
170
|
+
return !!this.ngControl;
|
171
|
+
}
|
172
|
+
setDefaultInputWidth() {
|
173
|
+
this.renderer.setStyle(this.inputElement, 'width', '30px');
|
174
|
+
}
|
175
|
+
/** Checks whether a keycode is one of the configured separators. */
|
176
|
+
isSeparatorKey(event) {
|
177
|
+
if (hasModifierKey(event)) {
|
178
|
+
return false;
|
179
|
+
}
|
180
|
+
// tslint:disable-next-line: deprecation
|
181
|
+
return this.separatorKeyCodes.indexOf(event.keyCode) > -1;
|
182
|
+
}
|
183
|
+
}
|
184
|
+
/** @nocollapse */ /** @nocollapse */ McTagInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McTagInput, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: MC_TAGS_DEFAULT_OPTIONS }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
185
|
+
/** @nocollapse */ /** @nocollapse */ McTagInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: McTagInput, selector: "input[mcTagInputFor]", inputs: { separatorKeyCodes: ["mcTagInputSeparatorKeyCodes", "separatorKeyCodes"], placeholder: "placeholder", id: "id", tagList: ["mcTagInputFor", "tagList"], addOnBlur: ["mcTagInputAddOnBlur", "addOnBlur"], disabled: "disabled" }, outputs: { tagEnd: "mcTagInputTokenEnd" }, host: { listeners: { "keydown": "onKeydown($event)", "blur": "blur()", "focus": "onFocus()", "input": "onInput()", "paste": "onPaste($event)" }, properties: { "id": "id", "attr.disabled": "disabled || null", "attr.placeholder": "placeholder || null" }, classAttribute: "mc-tag-input" }, exportAs: ["mcTagInput", "mcTagInputFor"], usesOnChanges: true, ngImport: i0 });
|
186
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: McTagInput, decorators: [{
|
187
|
+
type: Directive,
|
188
|
+
args: [{
|
189
|
+
selector: 'input[mcTagInputFor]',
|
190
|
+
exportAs: 'mcTagInput, mcTagInputFor',
|
191
|
+
host: {
|
192
|
+
class: 'mc-tag-input',
|
193
|
+
'[id]': 'id',
|
194
|
+
'[attr.disabled]': 'disabled || null',
|
195
|
+
'[attr.placeholder]': 'placeholder || null',
|
196
|
+
'(keydown)': 'onKeydown($event)',
|
197
|
+
'(blur)': 'blur()',
|
198
|
+
'(focus)': 'onFocus()',
|
199
|
+
'(input)': 'onInput()',
|
200
|
+
'(paste)': 'onPaste($event)'
|
201
|
+
}
|
202
|
+
}]
|
203
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
|
204
|
+
type: Inject,
|
205
|
+
args: [MC_TAGS_DEFAULT_OPTIONS]
|
206
|
+
}] }, { type: i1.NgControl, decorators: [{
|
207
|
+
type: Optional
|
208
|
+
}, {
|
209
|
+
type: Self
|
210
|
+
}] }]; }, propDecorators: { separatorKeyCodes: [{
|
211
|
+
type: Input,
|
212
|
+
args: ['mcTagInputSeparatorKeyCodes']
|
213
|
+
}], tagEnd: [{
|
214
|
+
type: Output,
|
215
|
+
args: ['mcTagInputTokenEnd']
|
216
|
+
}], placeholder: [{
|
217
|
+
type: Input
|
218
|
+
}], id: [{
|
219
|
+
type: Input
|
220
|
+
}], tagList: [{
|
221
|
+
type: Input,
|
222
|
+
args: ['mcTagInputFor']
|
223
|
+
}], addOnBlur: [{
|
224
|
+
type: Input,
|
225
|
+
args: ['mcTagInputAddOnBlur']
|
226
|
+
}], disabled: [{
|
227
|
+
type: Input
|
228
|
+
}] } });
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RhZ3MvdGFnLWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULElBQUksRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRixPQUFPLEVBQUUsdUJBQXVCLEVBQXdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFjakQsZ0RBQWdEO0FBQ2hELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQjs7O0dBR0c7QUFrQkgsTUFBTSxPQUFPLFVBQVU7SUF3RW5CLFlBQ1ksVUFBd0MsRUFDeEMsUUFBbUIsRUFDYyxjQUFvQyxFQUNsRCxTQUFvQjtRQUh2QyxlQUFVLEdBQVYsVUFBVSxDQUE4QjtRQUN4QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ2MsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBQ2xELGNBQVMsR0FBVCxTQUFTLENBQVc7UUEzRW5ELHNDQUFzQztRQUN0QyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBRXpCOzs7O1dBSUc7UUFFSCxzQkFBaUIsR0FBYSxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO1FBRXBFLHlDQUF5QztRQUV6QyxXQUFNLEdBQWtDLElBQUksWUFBWSxFQUFt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QUNaLGlCQUFpQixFQUFFLGtCQUFrQjt3QkFDckMsb0JBQW9CLEVBQUUscUJBQXFCO3dCQUUzQyxXQUFXLEVBQUUsbUJBQW1CO3dCQUNoQyxRQUFRLEVBQUUsUUFBUTt3QkFDbEIsU0FBUyxFQUFFLFdBQVc7d0JBQ3RCLFNBQVMsRUFBRSxXQUFXO3dCQUN0QixTQUFTLEVBQUUsaUJBQWlCO3FCQUMvQjtpQkFDSjs7MEJBNEVRLE1BQU07MkJBQUMsdUJBQXVCOzswQkFDOUIsUUFBUTs7MEJBQUksSUFBSTs0Q0FsRXJCLGlCQUFpQjtzQkFEaEIsS0FBSzt1QkFBQyw2QkFBNkI7Z0JBS3BDLE1BQU07c0JBREwsTUFBTTt1QkFBQyxvQkFBb0I7Z0JBSW5CLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csRUFBRTtzQkFBVixLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxlQUFlO2dCQWVsQixTQUFTO3NCQURaLEtBQUs7dUJBQUMscUJBQXFCO2dCQWF4QixRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBoYXNNb2RpZmllcktleSwgRU5URVIsIFRBQiwgU1BBQ0UsIENPTU1BIH0gZnJvbSAnQHB0c2VjdXJpdHkvY2RrL2tleWNvZGVzJztcblxuaW1wb3J0IHsgTUNfVEFHU19ERUZBVUxUX09QVElPTlMsIE1jVGFnc0RlZmF1bHRPcHRpb25zIH0gZnJvbSAnLi90YWctZGVmYXVsdC1vcHRpb25zJztcbmltcG9ydCB7IE1jVGFnTGlzdCB9IGZyb20gJy4vdGFnLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE1jVGFnVGV4dENvbnRyb2wgfSBmcm9tICcuL3RhZy10ZXh0LWNvbnRyb2wnO1xuXG5cbi8qKiBSZXByZXNlbnRzIGFuIGlucHV0IGV2ZW50IG9uIGEgYG1jVGFnSW5wdXRgLiAqL1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuYW1pbmctY29udmVudGlvblxuZXhwb3J0IGludGVyZmFjZSBNY1RhZ0lucHV0RXZlbnQge1xuICAgIC8qKiBUaGUgbmF0aXZlIGA8aW5wdXQ+YCBlbGVtZW50IHRoYXQgdGhlIGV2ZW50IGlzIGJlaW5nIGZpcmVkIGZvci4gKi9cbiAgICBpbnB1dDogSFRNTElucHV0RWxlbWVudDtcblxuICAgIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGlucHV0LiAqL1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbi8vIEluY3JlYXNpbmcgaW50ZWdlciBmb3IgZ2VuZXJhdGluZyB1bmlxdWUgaWRzLlxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgYWRkcyB0YWctc3BlY2lmaWMgYmVoYXZpb3JzIHRvIGFuIGlucHV0IGVsZW1lbnQgaW5zaWRlIGA8bWMtZm9ybS1maWVsZD5gLlxuICogTWF5IGJlIHBsYWNlZCBpbnNpZGUgb3Igb3V0c2lkZSBvZiBhbiBgPG1jLXRhZy1saXN0PmAuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbbWNUYWdJbnB1dEZvcl0nLFxuICAgIGV4cG9ydEFzOiAnbWNUYWdJbnB1dCwgbWNUYWdJbnB1dEZvcicsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ21jLXRhZy1pbnB1dCcsXG5cbiAgICAgICAgJ1tpZF0nOiAnaWQnLFxuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkIHx8IG51bGwnLFxuICAgICAgICAnW2F0dHIucGxhY2Vob2xkZXJdJzogJ3BsYWNlaG9sZGVyIHx8IG51bGwnLFxuXG4gICAgICAgICcoa2V5ZG93biknOiAnb25LZXlkb3duKCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2JsdXIoKScsXG4gICAgICAgICcoZm9jdXMpJzogJ29uRm9jdXMoKScsXG4gICAgICAgICcoaW5wdXQpJzogJ29uSW5wdXQoKScsXG4gICAgICAgICcocGFzdGUpJzogJ29uUGFzdGUoJGV2ZW50KSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE1jVGFnSW5wdXQgaW1wbGVtZW50cyBNY1RhZ1RleHRDb250cm9sLCBPbkNoYW5nZXMge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIGZvY3VzZWQuICovXG4gICAgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGxpc3Qgb2Yga2V5IGNvZGVzIHRoYXQgd2lsbCB0cmlnZ2VyIGEgdGFnRW5kIGV2ZW50LlxuICAgICAqXG4gICAgICogRGVmYXVsdHMgdG8gYFtFTlRFUl1gLlxuICAgICAqL1xuICAgIEBJbnB1dCgnbWNUYWdJbnB1dFNlcGFyYXRvcktleUNvZGVzJylcbiAgICBzZXBhcmF0b3JLZXlDb2RlczogbnVtYmVyW10gPSB0aGlzLmRlZmF1bHRPcHRpb25zLnNlcGFyYXRvcktleUNvZGVzO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHRhZyBpcyB0byBiZSBhZGRlZC4gKi9cbiAgICBAT3V0cHV0KCdtY1RhZ0lucHV0VG9rZW5FbmQnKVxuICAgIHRhZ0VuZDogRXZlbnRFbWl0dGVyPE1jVGFnSW5wdXRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1jVGFnSW5wdXRFdmVudD4oKTtcblxuICAgIC8qKiBUaGUgaW5wdXQncyBwbGFjZWhvbGRlciB0ZXh0LiAqL1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBVbmlxdWUgaWQgZm9yIHRoZSBpbnB1dC4gKi9cbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gYG1jLXRhZy1saXN0LWlucHV0LSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiBSZWdpc3RlciBpbnB1dCBmb3IgdGFnIGxpc3QgKi9cbiAgICBASW5wdXQoJ21jVGFnSW5wdXRGb3InKVxuICAgIHNldCB0YWdMaXN0KHZhbHVlOiBNY1RhZ0xpc3QpIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl90YWdMaXN0ID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLl90YWdMaXN0LnJlZ2lzdGVySW5wdXQodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5hbWluZy1jb252ZW50aW9uXG4gICAgcHJpdmF0ZSBfdGFnTGlzdDogTWNUYWdMaXN0O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIHRhZ0VuZCBldmVudCB3aWxsIGJlIGVtaXR0ZWQgd2hlbiB0aGUgaW5wdXQgaXMgYmx1cnJlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoJ21jVGFnSW5wdXRBZGRPbkJsdXInKVxuICAgIGdldCBhZGRPbkJsdXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRPbkJsdXI7XG4gICAgfVxuXG4gICAgc2V0IGFkZE9uQmx1cih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hZGRPbkJsdXIgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2FkZE9uQmx1cjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KClcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZCB8fCAodGhpcy5fdGFnTGlzdCAmJiB0aGlzLl90YWdMaXN0LmRpc2FibGVkKTtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgaW5wdXQgaXMgZW1wdHkuICovXG4gICAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgIH1cblxuICAgIGNvdW50T2ZTeW1ib2xzRm9yVXBkYXRlV2lkdGg6IG51bWJlciA9IDM7XG5cbiAgICBwcml2YXRlIG9uZVN5bWJvbFdpZHRoOiBudW1iZXI7XG5cbiAgICAvKiogVGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50IHRvIHdoaWNoIHRoaXMgZGlyZWN0aXZlIGlzIGF0dGFjaGVkLiAqL1xuICAgIHByaXZhdGUgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBASW5qZWN0KE1DX1RBR1NfREVGQVVMVF9PUFRJT05TKSBwcml2YXRlIGRlZmF1bHRPcHRpb25zOiBNY1RhZ3NEZWZhdWx0T3B0aW9ucyxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgICApIHtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11bm5lY2Vzc2FyeS10eXBlLWFzc2VydGlvblxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5zZXREZWZhdWx0SW5wdXRXaWR0aCgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLl90YWdMaXN0LnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RhZ0xpc3Qua2V5ZG93bihldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc1NlcGFyYXRvcktleShldmVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFRhZ0VuZCgpO1xuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIENoZWNrcyB0byBzZWUgaWYgdGhlIGJsdXIgc2hvdWxkIGVtaXQgdGhlICh0YWdFbmQpIGV2ZW50LiAqL1xuICAgIGJsdXIoKSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICAvLyBCbHVyIHRoZSB0YWcgbGlzdCBpZiBpdCBpcyBub3QgZm9jdXNlZFxuICAgICAgICBpZiAoIXRoaXMuX3RhZ0xpc3QuZm9jdXNlZCkge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyVmFsaWRhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLl90YWdMaXN0LmJsdXIoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tdW5uZWNlc3NhcnktdHlwZS1hc3NlcnRpb25cbiAgICAgICAgaWYgKHRoaXMuYWRkT25CbHVyKSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRUYWdFbmQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RhZ0xpc3Quc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICB0cmlnZ2VyVmFsaWRhdGlvbigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0NvbnRyb2woKSkgeyByZXR1cm47IH1cblxuICAgICAgICAodGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcyBhcyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4pLmVtaXQodGhpcy5uZ0NvbnRyb2wuc3RhdHVzKTtcbiAgICB9XG5cbiAgICAvKiogQ2hlY2tzIHRvIHNlZSBpZiB0aGUgKHRhZ0VuZCkgZXZlbnQgbmVlZHMgdG8gYmUgZW1pdHRlZC4gKi9cbiAgICBlbWl0VGFnRW5kKCkge1xuICAgICAgICBpZiAoIXRoaXMuaGFzQ29udHJvbCgpIHx8ICh0aGlzLmhhc0NvbnRyb2woKSAmJiAhdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCkpIHtcbiAgICAgICAgICAgIHRoaXMudGFnRW5kLmVtaXQoeyBpbnB1dDogdGhpcy5pbnB1dEVsZW1lbnQsIHZhbHVlOiB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSB9KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5wdXRXaWR0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dFdpZHRoKCk7XG4gICAgICAgIC8vIExldCB0YWcgbGlzdCBrbm93IHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgICAgICB0aGlzLl90YWdMaXN0LnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgb25QYXN0ZSgkZXZlbnQ6IENsaXBib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICghJGV2ZW50LmNsaXBib2FyZERhdGEpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgY29uc3QgZGF0YSA9ICRldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQnKTtcblxuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmxlbmd0aCA9PT0gMCkgeyByZXR1cm47IH1cblxuICAgICAgICBjb25zdCBpdGVtczogc3RyaW5nW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLnNlcGFyYXRvcktleUNvZGVzKSB7XG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSB0aGlzLnNlcGFyYXRvcktleVRvU3ltYm9sKGtleSk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLnNlYXJjaChzZXBhcmF0b3IpID4gLTEpIHtcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKC4uLmRhdGEuc3BsaXQoc2VwYXJhdG9yKSk7XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB0aGlzLnRhZ0VuZC5lbWl0KHsgaW5wdXQ6IHRoaXMuaW5wdXRFbGVtZW50LCB2YWx1ZTogaXRlbSB9KSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVJbnB1dFdpZHRoKCk7XG5cbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICB1cGRhdGVJbnB1dFdpZHRoKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsZW5ndGggPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmlucHV0RWxlbWVudCwgJ21heC13aWR0aCcsIDApO1xuICAgICAgICB0aGlzLm9uZVN5bWJvbFdpZHRoID0gdGhpcy5pbnB1dEVsZW1lbnQuc2Nyb2xsV2lkdGggLyBsZW5ndGg7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dEVsZW1lbnQsICdtYXgtd2lkdGgnLCAnJyk7XG5cbiAgICAgICAgaWYgKGxlbmd0aCA+IHRoaXMuY291bnRPZlN5bWJvbHNGb3JVcGRhdGVXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmlucHV0RWxlbWVudCwgJ3dpZHRoJywgYCR7bGVuZ3RoICogdGhpcy5vbmVTeW1ib2xXaWR0aH1weGApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0SW5wdXRXaWR0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1cygpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fdGFnTGlzdC5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBGb2N1c2VzIHRoZSBpbnB1dC4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlcGFyYXRvcktleVRvU3ltYm9sKGspOiBSZWdFeHAgfCBzdHJpbmcge1xuICAgICAgICBjb25zdCBzZXAgPSB7XG4gICAgICAgICAgICBbRU5URVJdOiAvXFxyP1xcbi8sXG4gICAgICAgICAgICBbVEFCXTogL1xcdC8sXG4gICAgICAgICAgICBbU1BBQ0VdOiAvIC8sXG4gICAgICAgICAgICBbQ09NTUFdOiAvLC9cbiAgICAgICAgfVtrXTtcblxuICAgICAgICBpZiAoc2VwKSB7IHJldHVybiBzZXA7IH1cblxuICAgICAgICByZXR1cm4gaztcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0NvbnRyb2woKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubmdDb250cm9sO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdElucHV0V2lkdGgoKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dEVsZW1lbnQsICd3aWR0aCcsICczMHB4Jyk7XG4gICAgfVxuXG4gICAgLyoqIENoZWNrcyB3aGV0aGVyIGEga2V5Y29kZSBpcyBvbmUgb2YgdGhlIGNvbmZpZ3VyZWQgc2VwYXJhdG9ycy4gKi9cbiAgICBwcml2YXRlIGlzU2VwYXJhdG9yS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmIChoYXNNb2RpZmllcktleShldmVudCkpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkZXByZWNhdGlvblxuICAgICAgICByZXR1cm4gdGhpcy5zZXBhcmF0b3JLZXlDb2Rlcy5pbmRleE9mKGV2ZW50LmtleUNvZGUpID4gLTE7XG4gICAgfVxufVxuIl19
|