@ptsecurity/mosaic 13.4.0 → 13.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +6 -6
- package/_theming.scss +7091 -6963
- package/_visual.scss +2690 -2658
- package/autocomplete/autocomplete-origin.directive.d.ts +12 -12
- package/autocomplete/autocomplete-trigger.directive.d.ts +167 -167
- package/autocomplete/autocomplete.component.d.ts +73 -73
- package/autocomplete/autocomplete.module.d.ts +12 -12
- package/autocomplete/index.d.ts +1 -1
- package/autocomplete/ptsecurity-mosaic-autocomplete.d.ts +5 -5
- package/autocomplete/public-api.d.ts +4 -4
- package/button/button.component.d.ts +40 -40
- package/button/button.module.d.ts +10 -10
- package/button/index.d.ts +1 -1
- package/button/ptsecurity-mosaic-button.d.ts +5 -5
- package/button/public-api.d.ts +2 -2
- package/button-toggle/button-toggle.component.d.ts +141 -141
- package/button-toggle/button-toggle.module.d.ts +9 -9
- package/button-toggle/index.d.ts +1 -1
- package/button-toggle/ptsecurity-mosaic-button-toggle.d.ts +5 -5
- package/button-toggle/public-api.d.ts +2 -2
- package/card/card.component.d.ts +26 -26
- package/card/card.module.d.ts +10 -10
- package/card/index.d.ts +1 -1
- package/card/ptsecurity-mosaic-card.d.ts +5 -5
- package/card/public-api.d.ts +2 -2
- package/checkbox/README.md +1 -1
- package/checkbox/checkbox-config.d.ts +13 -13
- package/checkbox/checkbox-module.d.ts +9 -9
- package/checkbox/checkbox-required-validator.d.ts +13 -13
- package/checkbox/checkbox.d.ts +140 -140
- package/checkbox/index.d.ts +1 -1
- package/checkbox/ptsecurity-mosaic-checkbox.d.ts +5 -5
- package/checkbox/public-api.d.ts +4 -4
- package/core/animation/animation.d.ts +6 -6
- package/core/animation/fade-animations.d.ts +2 -2
- package/core/animation/index.d.ts +3 -3
- package/core/animation/select-animations.d.ts +12 -12
- package/core/common-behaviors/color.d.ts +19 -19
- package/core/common-behaviors/common-module.d.ts +25 -25
- package/core/common-behaviors/constructor.d.ts +9 -9
- package/core/common-behaviors/disabled.d.ts +8 -8
- package/core/common-behaviors/error-state.d.ts +25 -25
- package/core/common-behaviors/index.d.ts +5 -5
- package/core/common-behaviors/tabindex.d.ts +8 -8
- package/core/error/error-options.d.ts +14 -14
- package/core/formatters/date/formatter.d.ts +203 -203
- package/core/formatters/date/templates/en-US.d.ts +74 -74
- package/core/formatters/date/templates/ru-RU.d.ts +74 -74
- package/core/formatters/index.d.ts +9 -9
- package/core/formatters/number/formatter.d.ts +27 -27
- package/core/forms/forms-module.d.ts +7 -7
- package/core/forms/forms.directive.d.ts +22 -22
- package/core/forms/index.d.ts +2 -2
- package/core/highlight/highlight.pipe.d.ts +7 -7
- package/core/highlight/index.d.ts +9 -9
- package/core/index.d.ts +1 -1
- package/core/label/label-options.d.ts +13 -13
- package/core/line/line.d.ts +28 -28
- package/core/option/action.d.ts +42 -42
- package/core/option/index.d.ts +4 -4
- package/core/option/optgroup.d.ts +16 -16
- package/core/option/option-module.d.ts +11 -11
- package/core/option/option.d.ts +115 -115
- package/core/overlay/overlay-position-map.d.ts +34 -34
- package/core/pop-up/constants.d.ts +29 -29
- package/core/pop-up/index.d.ts +3 -3
- package/core/pop-up/pop-up-trigger.d.ts +70 -70
- package/core/pop-up/pop-up.d.ts +36 -36
- package/core/ptsecurity-mosaic-core.d.ts +5 -5
- package/core/public-api.d.ts +17 -17
- package/core/select/constants.d.ts +23 -23
- package/core/select/errors.d.ts +19 -19
- package/core/select/events.d.ts +1 -1
- package/core/select/index.d.ts +3 -3
- package/core/selection/constants.d.ts +4 -4
- package/core/selection/index.d.ts +3 -3
- package/core/selection/pseudo-checkbox/pseudo-checkbox.d.ts +21 -21
- package/core/selection/pseudo-checkbox/pseudo-checkbox.module.d.ts +8 -8
- package/core/services/measure-scrollbar.service.d.ts +11 -11
- package/core/utils/index.d.ts +1 -1
- package/core/utils/public-api.d.ts +1 -1
- package/core/utils/utils.d.ts +2 -2
- package/core/validation/index.d.ts +1 -1
- package/core/validation/validation.d.ts +18 -16
- package/core/version.d.ts +2 -2
- package/datepicker/calendar-body.component.d.ts +63 -63
- package/datepicker/calendar.component.d.ts +151 -151
- package/datepicker/datepicker-animations.d.ts +9 -9
- package/datepicker/datepicker-errors.d.ts +2 -2
- package/datepicker/datepicker-input.directive.d.ts +178 -172
- package/datepicker/datepicker-intl.d.ts +32 -32
- package/datepicker/datepicker-module.d.ts +20 -20
- package/datepicker/datepicker-toggle.component.d.ts +35 -35
- package/datepicker/datepicker.component.d.ts +158 -158
- package/datepicker/index.d.ts +1 -1
- package/datepicker/month-view.component.d.ts +93 -93
- package/datepicker/multi-year-view.component.d.ts +72 -72
- package/datepicker/ptsecurity-mosaic-datepicker.d.ts +5 -5
- package/datepicker/public-api.d.ts +11 -11
- package/datepicker/year-view.component.d.ts +90 -90
- package/design-tokens/index.d.ts +1 -1
- package/design-tokens/legacy-2017/tokens/components/alert.json5 +83 -83
- package/design-tokens/legacy-2017/tokens/components/autocomplete.json5 +11 -11
- package/design-tokens/legacy-2017/tokens/components/badge.json5 +174 -174
- package/design-tokens/legacy-2017/tokens/components/button-toggle.json5 +10 -10
- package/design-tokens/legacy-2017/tokens/components/button.json5 +142 -142
- package/design-tokens/legacy-2017/tokens/components/card.json5 +51 -51
- package/design-tokens/legacy-2017/tokens/components/checkbox.json5 +97 -39
- package/design-tokens/legacy-2017/tokens/components/datepicker.json5 +64 -64
- package/design-tokens/legacy-2017/tokens/components/divider.json5 +8 -8
- package/design-tokens/legacy-2017/tokens/components/dl.json5 +38 -38
- package/design-tokens/legacy-2017/tokens/components/dropdown.json5 +48 -48
- package/design-tokens/legacy-2017/tokens/components/form-field.json5 +92 -92
- package/design-tokens/legacy-2017/tokens/components/forms.json5 +52 -52
- package/design-tokens/legacy-2017/tokens/components/icon.json5 +104 -104
- package/design-tokens/legacy-2017/tokens/components/input.json5 +12 -12
- package/design-tokens/legacy-2017/tokens/components/link.json5 +50 -50
- package/design-tokens/legacy-2017/tokens/components/list.json5 +13 -13
- package/design-tokens/legacy-2017/tokens/components/modal.json5 +81 -81
- package/design-tokens/legacy-2017/tokens/components/navbar.json5 +70 -70
- package/design-tokens/legacy-2017/tokens/components/optgroup.json5 +10 -10
- package/design-tokens/legacy-2017/tokens/components/option.json5 +12 -12
- package/design-tokens/legacy-2017/tokens/components/popover.json5 +68 -68
- package/design-tokens/legacy-2017/tokens/components/popup.json5 +18 -18
- package/design-tokens/legacy-2017/tokens/components/progress-bar.json5 +13 -13
- package/design-tokens/legacy-2017/tokens/components/progress-spinner.json5 +7 -7
- package/design-tokens/legacy-2017/tokens/components/radio.json5 +44 -44
- package/design-tokens/legacy-2017/tokens/components/select.json5 +24 -24
- package/design-tokens/legacy-2017/tokens/components/sidepanel.json5 +32 -32
- package/design-tokens/legacy-2017/tokens/components/table.json5 +15 -15
- package/design-tokens/legacy-2017/tokens/components/tabs.json5 +101 -101
- package/design-tokens/legacy-2017/tokens/components/tags.json5 +134 -131
- package/design-tokens/legacy-2017/tokens/components/textarea.json5 +12 -12
- package/design-tokens/legacy-2017/tokens/components/timepicker.json5 +7 -7
- package/design-tokens/legacy-2017/tokens/components/toggle.json5 +79 -79
- package/design-tokens/legacy-2017/tokens/components/tooltip.json5 +83 -83
- package/design-tokens/legacy-2017/tokens/components/tree.json5 +15 -15
- package/design-tokens/legacy-2017/tokens/properties/aliases.json5 +3 -3
- package/design-tokens/legacy-2017/tokens/properties/colors.json5 +118 -118
- package/design-tokens/legacy-2017/tokens/properties/font.json5 +12 -12
- package/design-tokens/legacy-2017/tokens/properties/globals.json5 +49 -49
- package/design-tokens/legacy-2017/tokens/properties/padding.json5 +3 -3
- package/design-tokens/legacy-2017/tokens/properties/palette.json5 +163 -163
- package/design-tokens/legacy-2017/tokens/properties/typography.json5 +175 -175
- package/design-tokens/legacy-2017/tokens.d.ts +7839 -7810
- package/design-tokens/pt-2022/tokens/components/alert.json5 +83 -83
- package/design-tokens/pt-2022/tokens/components/autocomplete.json5 +11 -11
- package/design-tokens/pt-2022/tokens/components/badge.json5 +174 -174
- package/design-tokens/pt-2022/tokens/components/button-toggle.json5 +10 -10
- package/design-tokens/pt-2022/tokens/components/button.json5 +142 -142
- package/design-tokens/pt-2022/tokens/components/card.json5 +51 -51
- package/design-tokens/pt-2022/tokens/components/checkbox.json5 +97 -39
- package/design-tokens/pt-2022/tokens/components/datepicker.json5 +64 -64
- package/design-tokens/pt-2022/tokens/components/divider.json5 +8 -8
- package/design-tokens/pt-2022/tokens/components/dl.json5 +38 -38
- package/design-tokens/pt-2022/tokens/components/dropdown.json5 +48 -48
- package/design-tokens/pt-2022/tokens/components/form-field.json5 +92 -92
- package/design-tokens/pt-2022/tokens/components/forms.json5 +52 -52
- package/design-tokens/pt-2022/tokens/components/icon.json5 +104 -104
- package/design-tokens/pt-2022/tokens/components/input.json5 +12 -12
- package/design-tokens/pt-2022/tokens/components/link.json5 +50 -50
- package/design-tokens/pt-2022/tokens/components/list.json5 +13 -13
- package/design-tokens/pt-2022/tokens/components/modal.json5 +81 -81
- package/design-tokens/pt-2022/tokens/components/navbar.json5 +70 -70
- package/design-tokens/pt-2022/tokens/components/optgroup.json5 +10 -10
- package/design-tokens/pt-2022/tokens/components/option.json5 +12 -12
- package/design-tokens/pt-2022/tokens/components/popover.json5 +68 -68
- package/design-tokens/pt-2022/tokens/components/popup.json5 +18 -18
- package/design-tokens/pt-2022/tokens/components/progress-bar.json5 +13 -13
- package/design-tokens/pt-2022/tokens/components/progress-spinner.json5 +7 -7
- package/design-tokens/pt-2022/tokens/components/radio.json5 +44 -44
- package/design-tokens/pt-2022/tokens/components/select.json5 +24 -24
- package/design-tokens/pt-2022/tokens/components/sidepanel.json5 +32 -32
- package/design-tokens/pt-2022/tokens/components/table.json5 +15 -15
- package/design-tokens/pt-2022/tokens/components/tabs.json5 +101 -101
- package/design-tokens/pt-2022/tokens/components/tags.json5 +137 -131
- package/design-tokens/pt-2022/tokens/components/textarea.json5 +12 -12
- package/design-tokens/pt-2022/tokens/components/timepicker.json5 +7 -7
- package/design-tokens/pt-2022/tokens/components/toggle.json5 +79 -79
- package/design-tokens/pt-2022/tokens/components/tooltip.json5 +83 -83
- package/design-tokens/pt-2022/tokens/components/tree.json5 +15 -15
- package/design-tokens/pt-2022/tokens/properties/aliases.json5 +3 -3
- package/design-tokens/pt-2022/tokens/properties/colors.json5 +120 -120
- package/design-tokens/pt-2022/tokens/properties/font.json5 +15 -15
- package/design-tokens/pt-2022/tokens/properties/globals.json5 +49 -49
- package/design-tokens/pt-2022/tokens/properties/padding.json5 +3 -3
- package/design-tokens/pt-2022/tokens/properties/palette.json5 +232 -232
- package/design-tokens/pt-2022/tokens/properties/typography.json5 +175 -175
- package/design-tokens/pt-2022/tokens.d.ts +9171 -9139
- package/design-tokens/ptsecurity-mosaic-design-tokens.d.ts +5 -5
- package/design-tokens/public-api.d.ts +3 -3
- package/design-tokens/style-dictionary/build.js +63 -62
- package/design-tokens/style-dictionary/configs/css.js +13 -13
- package/design-tokens/style-dictionary/configs/index.js +48 -48
- package/design-tokens/style-dictionary/configs/js.js +9 -9
- package/design-tokens/style-dictionary/configs/scss.js +23 -23
- package/design-tokens/style-dictionary/filters/color.js +7 -7
- package/design-tokens/style-dictionary/filters/palette.js +7 -7
- package/design-tokens/style-dictionary/filters/size.js +7 -7
- package/design-tokens/style-dictionary/filters/typography.js +7 -7
- package/design-tokens/style-dictionary/formats/palette.js +25 -25
- package/design-tokens/style-dictionary/formats/typography.js +52 -52
- package/design-tokens/style-dictionary/transformGroups/css.js +13 -13
- package/design-tokens/style-dictionary/transformGroups/scss.js +12 -12
- package/design-tokens/style-dictionary/transformGroups/ts.js +11 -0
- package/design-tokens/style-dictionary/transforms/attribute/palette.js +9 -9
- package/design-tokens/style-dictionary/transforms/attribute/prefix.js +11 -11
- package/design-tokens/style-dictionary/transforms/attribute/size.js +8 -8
- package/design-tokens/style-dictionary/transforms/attribute/typography.js +9 -9
- package/divider/divider.component.d.ts +11 -11
- package/divider/divider.module.d.ts +8 -8
- package/divider/index.d.ts +1 -1
- package/divider/ptsecurity-mosaic-divider.d.ts +5 -5
- package/divider/public-api.d.ts +2 -2
- package/dl/dl.component.d.ts +26 -26
- package/dl/dl.module.d.ts +10 -10
- package/dl/index.d.ts +1 -1
- package/dl/ptsecurity-mosaic-dl.d.ts +5 -5
- package/dl/public-api.d.ts +2 -2
- package/dropdown/dropdown-animations.d.ts +11 -11
- package/dropdown/dropdown-content.directive.d.ts +32 -32
- package/dropdown/dropdown-errors.d.ts +17 -17
- package/dropdown/dropdown-item.component.d.ts +50 -50
- package/dropdown/dropdown-trigger.directive.d.ts +136 -136
- package/dropdown/dropdown.component.d.ts +121 -121
- package/dropdown/dropdown.module.d.ts +13 -13
- package/dropdown/dropdown.types.d.ts +53 -53
- package/dropdown/index.d.ts +1 -1
- package/dropdown/ptsecurity-mosaic-dropdown.d.ts +5 -5
- package/dropdown/public-api.d.ts +8 -8
- package/esm2020/autocomplete/autocomplete-origin.directive.mjs +21 -21
- package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +555 -555
- package/esm2020/autocomplete/autocomplete.component.mjs +154 -154
- package/esm2020/autocomplete/autocomplete.module.mjs +34 -34
- package/esm2020/autocomplete/index.mjs +2 -2
- package/esm2020/autocomplete/ptsecurity-mosaic-autocomplete.mjs +4 -4
- package/esm2020/autocomplete/public-api.mjs +5 -5
- package/esm2020/button/button.component.mjs +137 -137
- package/esm2020/button/button.module.mjs +38 -38
- package/esm2020/button/index.mjs +2 -2
- package/esm2020/button/ptsecurity-mosaic-button.mjs +4 -4
- package/esm2020/button/public-api.mjs +3 -3
- package/esm2020/button-toggle/button-toggle.component.mjs +362 -362
- package/esm2020/button-toggle/button-toggle.module.mjs +19 -19
- package/esm2020/button-toggle/index.mjs +2 -2
- package/esm2020/button-toggle/ptsecurity-mosaic-button-toggle.mjs +4 -4
- package/esm2020/button-toggle/public-api.mjs +3 -3
- package/esm2020/card/card.component.mjs +80 -80
- package/esm2020/card/card.module.mjs +30 -30
- package/esm2020/card/index.mjs +2 -2
- package/esm2020/card/ptsecurity-mosaic-card.mjs +4 -4
- package/esm2020/card/public-api.mjs +3 -3
- package/esm2020/checkbox/checkbox-config.mjs +6 -6
- package/esm2020/checkbox/checkbox-module.mjs +19 -19
- package/esm2020/checkbox/checkbox-required-validator.mjs +27 -27
- package/esm2020/checkbox/checkbox.mjs +316 -315
- package/esm2020/checkbox/index.mjs +2 -2
- package/esm2020/checkbox/ptsecurity-mosaic-checkbox.mjs +4 -4
- package/esm2020/checkbox/public-api.mjs +5 -5
- package/esm2020/core/animation/animation.mjs +8 -8
- package/esm2020/core/animation/fade-animations.mjs +9 -9
- package/esm2020/core/animation/index.mjs +4 -4
- package/esm2020/core/animation/select-animations.mjs +45 -45
- package/esm2020/core/common-behaviors/color.mjs +30 -30
- package/esm2020/core/common-behaviors/common-module.mjs +83 -83
- package/esm2020/core/common-behaviors/constructor.mjs +2 -2
- package/esm2020/core/common-behaviors/disabled.mjs +17 -17
- package/esm2020/core/common-behaviors/error-state.mjs +31 -31
- package/esm2020/core/common-behaviors/index.mjs +6 -6
- package/esm2020/core/common-behaviors/tabindex.mjs +18 -18
- package/esm2020/core/error/error-options.mjs +26 -26
- package/esm2020/core/formatters/date/formatter.mjs +359 -359
- package/esm2020/core/formatters/date/templates/en-US.mjs +281 -281
- package/esm2020/core/formatters/date/templates/ru-RU.mjs +281 -281
- package/esm2020/core/formatters/index.mjs +20 -20
- package/esm2020/core/formatters/number/formatter.mjs +105 -105
- package/esm2020/core/forms/forms-module.mjs +24 -24
- package/esm2020/core/forms/forms.directive.mjs +66 -66
- package/esm2020/core/forms/index.mjs +3 -3
- package/esm2020/core/highlight/highlight.pipe.mjs +17 -17
- package/esm2020/core/highlight/index.mjs +19 -19
- package/esm2020/core/index.mjs +2 -2
- package/esm2020/core/label/label-options.mjs +4 -4
- package/esm2020/core/line/line.mjs +70 -70
- package/esm2020/core/option/action.mjs +121 -121
- package/esm2020/core/option/index.mjs +5 -5
- package/esm2020/core/option/optgroup.mjs +31 -31
- package/esm2020/core/option/option-module.mjs +21 -21
- package/esm2020/core/option/option.mjs +257 -257
- package/esm2020/core/overlay/overlay-position-map.mjs +244 -244
- package/esm2020/core/pop-up/constants.mjs +34 -34
- package/esm2020/core/pop-up/index.mjs +4 -4
- package/esm2020/core/pop-up/pop-up-trigger.mjs +239 -239
- package/esm2020/core/pop-up/pop-up.mjs +94 -94
- package/esm2020/core/ptsecurity-mosaic-core.mjs +4 -4
- package/esm2020/core/public-api.mjs +18 -18
- package/esm2020/core/select/constants.mjs +27 -27
- package/esm2020/core/select/errors.mjs +26 -26
- package/esm2020/core/select/events.mjs +2 -2
- package/esm2020/core/select/index.mjs +4 -4
- package/esm2020/core/selection/constants.mjs +6 -6
- package/esm2020/core/selection/index.mjs +4 -4
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +37 -37
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +18 -18
- package/esm2020/core/services/measure-scrollbar.service.mjs +48 -48
- package/esm2020/core/utils/index.mjs +2 -2
- package/esm2020/core/utils/public-api.mjs +2 -2
- package/esm2020/core/utils/utils.mjs +5 -5
- package/esm2020/core/validation/index.mjs +2 -2
- package/esm2020/core/validation/validation.mjs +118 -89
- package/esm2020/core/version.mjs +3 -3
- package/esm2020/datepicker/calendar-body.component.mjs +106 -106
- package/esm2020/datepicker/calendar.component.mjs +362 -362
- package/esm2020/datepicker/datepicker-animations.mjs +32 -32
- package/esm2020/datepicker/datepicker-errors.mjs +6 -6
- package/esm2020/datepicker/datepicker-input.directive.mjs +936 -900
- package/esm2020/datepicker/datepicker-intl.mjs +40 -40
- package/esm2020/datepicker/datepicker-module.mjs +107 -107
- package/esm2020/datepicker/datepicker-toggle.component.mjs +86 -86
- package/esm2020/datepicker/datepicker.component.mjs +408 -408
- package/esm2020/datepicker/index.mjs +2 -2
- package/esm2020/datepicker/month-view.component.mjs +257 -257
- package/esm2020/datepicker/multi-year-view.component.mjs +218 -218
- package/esm2020/datepicker/ptsecurity-mosaic-datepicker.mjs +4 -4
- package/esm2020/datepicker/public-api.mjs +12 -12
- package/esm2020/datepicker/year-view.component.mjs +253 -253
- package/esm2020/design-tokens/index.mjs +2 -2
- package/esm2020/design-tokens/legacy-2017/tokens.mjs +1133 -1104
- package/esm2020/design-tokens/pt-2022/tokens.mjs +1203 -1171
- package/esm2020/design-tokens/ptsecurity-mosaic-design-tokens.mjs +4 -4
- package/esm2020/design-tokens/public-api.mjs +4 -4
- package/esm2020/divider/divider.component.mjs +39 -39
- package/esm2020/divider/divider.module.mjs +18 -18
- package/esm2020/divider/index.mjs +2 -2
- package/esm2020/divider/ptsecurity-mosaic-divider.mjs +4 -4
- package/esm2020/divider/public-api.mjs +3 -3
- package/esm2020/dl/dl.component.mjs +78 -78
- package/esm2020/dl/dl.module.mjs +42 -42
- package/esm2020/dl/index.mjs +2 -2
- package/esm2020/dl/ptsecurity-mosaic-dl.mjs +4 -4
- package/esm2020/dl/public-api.mjs +3 -3
- package/esm2020/dropdown/dropdown-animations.mjs +41 -41
- package/esm2020/dropdown/dropdown-content.directive.mjs +64 -64
- package/esm2020/dropdown/dropdown-errors.mjs +29 -29
- package/esm2020/dropdown/dropdown-item.component.mjs +139 -139
- package/esm2020/dropdown/dropdown-trigger.directive.mjs +489 -489
- package/esm2020/dropdown/dropdown.component.mjs +292 -292
- package/esm2020/dropdown/dropdown.module.mjs +50 -50
- package/esm2020/dropdown/dropdown.types.mjs +24 -24
- package/esm2020/dropdown/index.mjs +2 -2
- package/esm2020/dropdown/ptsecurity-mosaic-dropdown.mjs +4 -4
- package/esm2020/dropdown/public-api.mjs +9 -9
- package/esm2020/form-field/cleaner.mjs +23 -23
- package/esm2020/form-field/form-field-control.mjs +5 -5
- package/esm2020/form-field/form-field-errors.mjs +7 -7
- package/esm2020/form-field/form-field.mjs +225 -225
- package/esm2020/form-field/form-field.module.mjs +57 -57
- package/esm2020/form-field/hint.mjs +23 -23
- package/esm2020/form-field/index.mjs +2 -2
- package/esm2020/form-field/password-hint.mjs +134 -134
- package/esm2020/form-field/prefix.mjs +13 -13
- package/esm2020/form-field/ptsecurity-mosaic-form-field.mjs +4 -4
- package/esm2020/form-field/public-api.mjs +11 -11
- package/esm2020/form-field/stepper.mjs +55 -55
- package/esm2020/form-field/suffix.mjs +13 -13
- package/esm2020/icon/icon.component.mjs +44 -44
- package/esm2020/icon/icon.module.mjs +38 -38
- package/esm2020/icon/index.mjs +2 -2
- package/esm2020/icon/ptsecurity-mosaic-icon.mjs +4 -4
- package/esm2020/icon/public-api.mjs +3 -3
- package/esm2020/index.mjs +2 -2
- package/esm2020/input/index.mjs +2 -2
- package/esm2020/input/input-errors.mjs +4 -4
- package/esm2020/input/input-number-validators.mjs +92 -92
- package/esm2020/input/input-number.mjs +163 -163
- package/esm2020/input/input-password.mjs +368 -368
- package/esm2020/input/input-value-accessor.mjs +3 -3
- package/esm2020/input/input.mjs +334 -334
- package/esm2020/input/input.module.mjs +65 -65
- package/esm2020/input/ptsecurity-mosaic-input.mjs +4 -4
- package/esm2020/input/public-api.mjs +7 -7
- package/esm2020/link/index.mjs +2 -2
- package/esm2020/link/link.component.mjs +107 -107
- package/esm2020/link/link.module.mjs +26 -26
- package/esm2020/link/ptsecurity-mosaic-link.mjs +4 -4
- package/esm2020/link/public-api.mjs +3 -3
- package/esm2020/list/index.mjs +2 -2
- package/esm2020/list/list-selection.component.mjs +686 -687
- package/esm2020/list/list.component.mjs +44 -44
- package/esm2020/list/list.module.mjs +55 -55
- package/esm2020/list/ptsecurity-mosaic-list.mjs +4 -4
- package/esm2020/list/public-api.mjs +4 -4
- package/esm2020/modal/css-unit.pipe.mjs +17 -17
- package/esm2020/modal/index.mjs +2 -2
- package/esm2020/modal/modal-control.service.mjs +85 -85
- package/esm2020/modal/modal-ref.class.mjs +8 -8
- package/esm2020/modal/modal-util.mjs +17 -17
- package/esm2020/modal/modal.component.mjs +501 -501
- package/esm2020/modal/modal.directive.mjs +52 -52
- package/esm2020/modal/modal.module.mjs +72 -72
- package/esm2020/modal/modal.service.mjs +124 -124
- package/esm2020/modal/modal.type.mjs +7 -7
- package/esm2020/modal/ptsecurity-mosaic-modal.mjs +4 -4
- package/esm2020/modal/public-api.mjs +7 -7
- package/esm2020/navbar/index.mjs +2 -2
- package/esm2020/navbar/navbar-item.component.mjs +582 -582
- package/esm2020/navbar/navbar.component.mjs +237 -237
- package/esm2020/navbar/navbar.module.mjs +92 -92
- package/esm2020/navbar/ptsecurity-mosaic-navbar.mjs +4 -4
- package/esm2020/navbar/public-api.mjs +5 -5
- package/esm2020/navbar/vertical-navbar.animation.mjs +10 -10
- package/esm2020/navbar/vertical-navbar.component.mjs +114 -114
- package/esm2020/popover/index.mjs +2 -2
- package/esm2020/popover/popover-animations.mjs +16 -16
- package/esm2020/popover/popover-confirm.component.mjs +108 -108
- package/esm2020/popover/popover.component.mjs +253 -253
- package/esm2020/popover/popover.module.mjs +24 -24
- package/esm2020/popover/ptsecurity-mosaic-popover.mjs +4 -4
- package/esm2020/popover/public-api.mjs +5 -5
- package/esm2020/progress-bar/index.mjs +2 -2
- package/esm2020/progress-bar/progress-bar.component.mjs +42 -42
- package/esm2020/progress-bar/progress-bar.module.mjs +30 -30
- package/esm2020/progress-bar/ptsecurity-mosaic-progress-bar.mjs +4 -4
- package/esm2020/progress-bar/public-api.mjs +3 -3
- package/esm2020/progress-spinner/index.mjs +2 -2
- package/esm2020/progress-spinner/progress-spinner.component.mjs +46 -46
- package/esm2020/progress-spinner/progress-spinner.module.mjs +30 -30
- package/esm2020/progress-spinner/ptsecurity-mosaic-progress-spinner.mjs +4 -4
- package/esm2020/progress-spinner/public-api.mjs +3 -3
- package/esm2020/ptsecurity-mosaic.mjs +4 -4
- package/esm2020/public-api.mjs +2 -2
- package/esm2020/radio/index.mjs +2 -2
- package/esm2020/radio/ptsecurity-mosaic-radio.mjs +4 -4
- package/esm2020/radio/public-api.mjs +3 -3
- package/esm2020/radio/radio.component.mjs +458 -458
- package/esm2020/radio/radio.module.mjs +20 -20
- package/esm2020/select/index.mjs +2 -2
- package/esm2020/select/ptsecurity-mosaic-select.mjs +4 -4
- package/esm2020/select/public-api.mjs +4 -4
- package/esm2020/select/select-option.directive.mjs +65 -65
- package/esm2020/select/select.component.mjs +1107 -1110
- package/esm2020/select/select.module.mjs +73 -73
- package/esm2020/sidebar/index.mjs +2 -2
- package/esm2020/sidebar/ptsecurity-mosaic-sidebar.mjs +4 -4
- package/esm2020/sidebar/public-api.mjs +3 -3
- package/esm2020/sidebar/sidebar-animations.mjs +23 -23
- package/esm2020/sidebar/sidebar.component.mjs +146 -146
- package/esm2020/sidebar/sidebar.module.mjs +30 -30
- package/esm2020/sidepanel/index.mjs +2 -2
- package/esm2020/sidepanel/ptsecurity-mosaic-sidepanel.mjs +4 -4
- package/esm2020/sidepanel/public-api.mjs +7 -7
- package/esm2020/sidepanel/sidepanel-animations.mjs +26 -26
- package/esm2020/sidepanel/sidepanel-config.mjs +26 -26
- package/esm2020/sidepanel/sidepanel-container.component.mjs +106 -106
- package/esm2020/sidepanel/sidepanel-directives.mjs +159 -159
- package/esm2020/sidepanel/sidepanel-ref.mjs +53 -53
- package/esm2020/sidepanel/sidepanel.module.mjs +74 -74
- package/esm2020/sidepanel/sidepanel.service.mjs +167 -167
- package/esm2020/splitter/index.mjs +2 -2
- package/esm2020/splitter/ptsecurity-mosaic-splitter.mjs +4 -4
- package/esm2020/splitter/public-api.mjs +3 -3
- package/esm2020/splitter/splitter.component.mjs +482 -482
- package/esm2020/splitter/splitter.module.mjs +40 -40
- package/esm2020/table/index.mjs +2 -2
- package/esm2020/table/ptsecurity-mosaic-table.mjs +4 -4
- package/esm2020/table/public-api.mjs +3 -3
- package/esm2020/table/table.component.mjs +16 -16
- package/esm2020/table/table.module.mjs +30 -30
- package/esm2020/tabs/index.mjs +2 -2
- package/esm2020/tabs/paginated-tab-header.mjs +479 -479
- package/esm2020/tabs/ptsecurity-mosaic-tabs.mjs +4 -4
- package/esm2020/tabs/public-api.mjs +11 -11
- package/esm2020/tabs/tab-body.component.mjs +178 -178
- package/esm2020/tabs/tab-content.directive.mjs +15 -15
- package/esm2020/tabs/tab-group.component.mjs +350 -350
- package/esm2020/tabs/tab-header.component.mjs +67 -67
- package/esm2020/tabs/tab-label-wrapper.directive.mjs +78 -78
- package/esm2020/tabs/tab-label.directive.mjs +17 -17
- package/esm2020/tabs/tab-nav-bar/index.mjs +2 -2
- package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +110 -110
- package/esm2020/tabs/tab.component.mjs +133 -133
- package/esm2020/tabs/tabs-animations.mjs +24 -24
- package/esm2020/tabs/tabs.module.mjs +104 -104
- package/esm2020/tags/index.mjs +2 -2
- package/esm2020/tags/ptsecurity-mosaic-tags.mjs +4 -4
- package/esm2020/tags/public-api.mjs +6 -6
- package/esm2020/tags/tag-default-options.mjs +4 -4
- package/esm2020/tags/tag-input.mjs +229 -229
- package/esm2020/tags/tag-list.component.mjs +722 -722
- package/esm2020/tags/tag-text-control.mjs +2 -2
- package/esm2020/tags/tag.component.mjs +375 -375
- package/esm2020/tags/tag.module.mjs +56 -56
- package/esm2020/textarea/index.mjs +2 -2
- package/esm2020/textarea/ptsecurity-mosaic-textarea.mjs +4 -4
- package/esm2020/textarea/public-api.mjs +3 -3
- package/esm2020/textarea/textarea.component.mjs +269 -269
- package/esm2020/textarea/textarea.module.mjs +21 -21
- package/esm2020/timepicker/index.mjs +2 -2
- package/esm2020/timepicker/ptsecurity-mosaic-timepicker.mjs +4 -4
- package/esm2020/timepicker/public-api.mjs +4 -4
- package/esm2020/timepicker/timepicker.constants.mjs +25 -25
- package/esm2020/timepicker/timepicker.directive.mjs +676 -653
- package/esm2020/timepicker/timepicker.module.mjs +34 -34
- package/esm2020/toggle/index.mjs +2 -2
- package/esm2020/toggle/ptsecurity-mosaic-toggle.mjs +4 -4
- package/esm2020/toggle/public-api.mjs +3 -3
- package/esm2020/toggle/toggle.component.mjs +158 -158
- package/esm2020/toggle/toggle.module.mjs +20 -20
- package/esm2020/tooltip/index.mjs +2 -2
- package/esm2020/tooltip/ptsecurity-mosaic-tooltip.mjs +4 -4
- package/esm2020/tooltip/public-api.mjs +3 -3
- package/esm2020/tooltip/tooltip.animations.mjs +19 -19
- package/esm2020/tooltip/tooltip.component.mjs +295 -295
- package/esm2020/tooltip/tooltip.module.mjs +43 -43
- package/esm2020/tree/control/base-tree-control.mjs +60 -60
- package/esm2020/tree/control/flat-tree-control.mjs +123 -123
- package/esm2020/tree/control/nested-tree-control.mjs +41 -41
- package/esm2020/tree/control/tree-control.mjs +2 -2
- package/esm2020/tree/data-source/flat-data-source.mjs +162 -162
- package/esm2020/tree/data-source/nested-data-source.mjs +30 -30
- package/esm2020/tree/index.mjs +2 -2
- package/esm2020/tree/node.mjs +31 -31
- package/esm2020/tree/outlet.mjs +15 -15
- package/esm2020/tree/padding.directive.mjs +110 -110
- package/esm2020/tree/ptsecurity-mosaic-tree.mjs +4 -4
- package/esm2020/tree/public-api.mjs +16 -16
- package/esm2020/tree/toggle.mjs +80 -80
- package/esm2020/tree/tree-base.mjs +243 -243
- package/esm2020/tree/tree-errors.mjs +36 -36
- package/esm2020/tree/tree-option.component.mjs +236 -234
- package/esm2020/tree/tree-selection.component.mjs +540 -535
- package/esm2020/tree/tree.mjs +15 -15
- package/esm2020/tree/tree.module.mjs +57 -53
- package/esm2020/tree-select/index.mjs +2 -2
- package/esm2020/tree-select/ptsecurity-mosaic-tree-select.mjs +4 -4
- package/esm2020/tree-select/public-api.mjs +3 -3
- package/esm2020/tree-select/tree-select.component.mjs +924 -925
- package/esm2020/tree-select/tree-select.module.mjs +47 -47
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +726 -726
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button-toggle.mjs +367 -367
- package/fesm2015/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button.mjs +160 -160
- package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-card.mjs +96 -96
- package/fesm2015/ptsecurity-mosaic-card.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs +349 -348
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-core.mjs +2642 -2613
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs +2687 -2649
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs +2374 -2284
- package/fesm2015/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-divider.mjs +48 -48
- package/fesm2015/ptsecurity-mosaic-divider.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dl.mjs +108 -108
- package/fesm2015/ptsecurity-mosaic-dl.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs +1069 -1069
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +506 -506
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-icon.mjs +73 -73
- package/fesm2015/ptsecurity-mosaic-icon.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-input.mjs +975 -975
- package/fesm2015/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-link.mjs +121 -121
- package/fesm2015/ptsecurity-mosaic-link.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-list.mjs +762 -763
- package/fesm2015/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-modal.mjs +824 -824
- package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-navbar.mjs +993 -993
- package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-popover.mjs +364 -364
- package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-bar.mjs +61 -61
- package/fesm2015/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs +65 -65
- package/fesm2015/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-radio.mjs +464 -464
- package/fesm2015/ptsecurity-mosaic-radio.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-select.mjs +1203 -1205
- package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidebar.mjs +185 -185
- package/fesm2015/ptsecurity-mosaic-sidebar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs +555 -555
- package/fesm2015/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-splitter.mjs +511 -511
- package/fesm2015/ptsecurity-mosaic-splitter.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-table.mjs +36 -36
- package/fesm2015/ptsecurity-mosaic-table.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tabs.mjs +1460 -1460
- package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tags.mjs +1342 -1342
- package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-textarea.mjs +274 -274
- package/fesm2015/ptsecurity-mosaic-textarea.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-timepicker.mjs +718 -695
- package/fesm2015/ptsecurity-mosaic-timepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-toggle.mjs +163 -163
- package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs +344 -344
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs +940 -940
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree.mjs +1676 -1669
- package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic.mjs +2 -2
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +722 -722
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-button-toggle.mjs +365 -365
- package/fesm2020/ptsecurity-mosaic-button-toggle.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-button.mjs +160 -160
- package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-card.mjs +96 -96
- package/fesm2020/ptsecurity-mosaic-card.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs +347 -346
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs +2671 -2642
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs +2672 -2635
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs +2374 -2284
- package/fesm2020/ptsecurity-mosaic-design-tokens.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-divider.mjs +48 -48
- package/fesm2020/ptsecurity-mosaic-divider.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dl.mjs +108 -108
- package/fesm2020/ptsecurity-mosaic-dl.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs +1056 -1056
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +491 -491
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-icon.mjs +71 -71
- package/fesm2020/ptsecurity-mosaic-icon.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-input.mjs +964 -964
- package/fesm2020/ptsecurity-mosaic-input.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-link.mjs +120 -120
- package/fesm2020/ptsecurity-mosaic-link.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-list.mjs +755 -756
- package/fesm2020/ptsecurity-mosaic-list.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-modal.mjs +820 -820
- package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-navbar.mjs +977 -977
- package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-popover.mjs +360 -360
- package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-progress-bar.mjs +61 -61
- package/fesm2020/ptsecurity-mosaic-progress-bar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs +65 -65
- package/fesm2020/ptsecurity-mosaic-progress-spinner.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-radio.mjs +462 -462
- package/fesm2020/ptsecurity-mosaic-radio.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-select.mjs +1198 -1201
- package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidebar.mjs +185 -185
- package/fesm2020/ptsecurity-mosaic-sidebar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs +552 -552
- package/fesm2020/ptsecurity-mosaic-sidepanel.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-splitter.mjs +511 -511
- package/fesm2020/ptsecurity-mosaic-splitter.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-table.mjs +36 -36
- package/fesm2020/ptsecurity-mosaic-table.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tabs.mjs +1445 -1445
- package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tags.mjs +1335 -1335
- package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-textarea.mjs +272 -272
- package/fesm2020/ptsecurity-mosaic-textarea.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-timepicker.mjs +715 -692
- package/fesm2020/ptsecurity-mosaic-timepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-toggle.mjs +163 -163
- package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs +336 -336
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs +937 -938
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree.mjs +1663 -1656
- package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic.mjs +2 -2
- package/form-field/cleaner.d.ts +7 -7
- package/form-field/form-field-control.d.ts +37 -37
- package/form-field/form-field-errors.d.ts +2 -2
- package/form-field/form-field.d.ts +69 -69
- package/form-field/form-field.module.d.ts +15 -15
- package/form-field/hint.d.ts +6 -6
- package/form-field/index.d.ts +1 -1
- package/form-field/password-hint.d.ts +40 -40
- package/form-field/prefix.d.ts +5 -5
- package/form-field/ptsecurity-mosaic-form-field.d.ts +5 -5
- package/form-field/public-api.d.ts +10 -10
- package/form-field/stepper.d.ts +11 -11
- package/form-field/suffix.d.ts +5 -5
- package/icon/icon.component.d.ts +18 -18
- package/icon/icon.module.d.ts +10 -10
- package/icon/index.d.ts +1 -1
- package/icon/ptsecurity-mosaic-icon.d.ts +5 -5
- package/icon/public-api.d.ts +2 -2
- package/index.d.ts +1 -1
- package/input/index.d.ts +1 -1
- package/input/input-errors.d.ts +1 -1
- package/input/input-number-validators.d.ts +39 -39
- package/input/input-number.d.ts +33 -33
- package/input/input-password.d.ts +121 -121
- package/input/input-value-accessor.d.ts +4 -4
- package/input/input.d.ts +116 -116
- package/input/input.module.d.ts +14 -14
- package/input/ptsecurity-mosaic-input.d.ts +5 -5
- package/input/public-api.d.ts +6 -6
- package/link/index.d.ts +1 -1
- package/link/link.component.d.ts +38 -38
- package/link/link.module.d.ts +9 -9
- package/link/ptsecurity-mosaic-link.d.ts +5 -5
- package/link/public-api.d.ts +2 -2
- package/list/index.d.ts +1 -1
- package/list/list-selection.component.d.ts +168 -168
- package/list/list.component.d.ts +18 -18
- package/list/list.module.d.ts +11 -11
- package/list/ptsecurity-mosaic-list.d.ts +5 -5
- package/list/public-api.d.ts +3 -3
- package/modal/README.md +33 -33
- package/modal/css-unit.pipe.d.ts +7 -7
- package/modal/index.d.ts +1 -1
- package/modal/modal-control.service.d.ts +20 -20
- package/modal/modal-ref.class.d.ts +36 -36
- package/modal/modal-util.d.ts +12 -12
- package/modal/modal.component.d.ts +126 -126
- package/modal/modal.directive.d.ts +17 -17
- package/modal/modal.module.d.ts +14 -14
- package/modal/modal.service.d.ts +33 -33
- package/modal/modal.type.d.ts +59 -59
- package/modal/ptsecurity-mosaic-modal.d.ts +5 -5
- package/modal/public-api.d.ts +6 -6
- package/navbar/README.md +41 -41
- package/navbar/index.d.ts +1 -1
- package/navbar/navbar-item.component.d.ts +161 -161
- package/navbar/navbar.component.d.ts +58 -58
- package/navbar/navbar.module.d.ts +14 -14
- package/navbar/ptsecurity-mosaic-navbar.d.ts +5 -5
- package/navbar/public-api.d.ts +4 -4
- package/navbar/vertical-navbar.animation.d.ts +2 -2
- package/navbar/vertical-navbar.component.d.ts +23 -23
- package/package.json +13 -10
- package/popover/README.md +32 -32
- package/popover/index.d.ts +1 -1
- package/popover/popover-animations.d.ts +4 -4
- package/popover/popover-confirm.component.d.ts +33 -33
- package/popover/popover.component.d.ts +74 -74
- package/popover/popover.module.d.ts +12 -12
- package/popover/ptsecurity-mosaic-popover.d.ts +5 -5
- package/popover/public-api.d.ts +4 -4
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/progress-bar/index.d.ts +1 -1
- package/progress-bar/progress-bar.component.d.ts +18 -18
- package/progress-bar/progress-bar.module.d.ts +9 -9
- package/progress-bar/ptsecurity-mosaic-progress-bar.d.ts +5 -5
- package/progress-bar/public-api.d.ts +2 -2
- package/progress-spinner/index.d.ts +1 -1
- package/progress-spinner/progress-spinner.component.d.ts +19 -19
- package/progress-spinner/progress-spinner.module.d.ts +9 -9
- package/progress-spinner/ptsecurity-mosaic-progress-spinner.d.ts +5 -5
- package/progress-spinner/public-api.d.ts +2 -2
- package/ptsecurity-mosaic.d.ts +5 -5
- package/public-api.d.ts +1 -1
- package/radio/index.d.ts +1 -1
- package/radio/ptsecurity-mosaic-radio.d.ts +5 -5
- package/radio/public-api.d.ts +2 -2
- package/radio/radio.component.d.ts +207 -207
- package/radio/radio.module.d.ts +10 -10
- package/schematics/README.md +35 -35
- package/select/index.d.ts +1 -1
- package/select/ptsecurity-mosaic-select.d.ts +5 -5
- package/select/public-api.d.ts +3 -3
- package/select/select-option.directive.d.ts +20 -20
- package/select/select.component.d.ts +307 -307
- package/select/select.module.d.ts +15 -15
- package/sidebar/index.d.ts +1 -1
- package/sidebar/ptsecurity-mosaic-sidebar.d.ts +5 -5
- package/sidebar/public-api.d.ts +2 -2
- package/sidebar/sidebar-animations.d.ts +8 -8
- package/sidebar/sidebar.component.d.ts +53 -53
- package/sidebar/sidebar.module.d.ts +8 -8
- package/sidepanel/index.d.ts +1 -1
- package/sidepanel/ptsecurity-mosaic-sidepanel.d.ts +5 -5
- package/sidepanel/public-api.d.ts +6 -6
- package/sidepanel/sidepanel-animations.d.ts +14 -14
- package/sidepanel/sidepanel-config.d.ts +25 -25
- package/sidepanel/sidepanel-container.component.d.ts +45 -45
- package/sidepanel/sidepanel-directives.d.ts +50 -50
- package/sidepanel/sidepanel-ref.d.ts +24 -24
- package/sidepanel/sidepanel.module.d.ts +15 -15
- package/sidepanel/sidepanel.service.d.ts +57 -57
- package/splitter/index.d.ts +1 -1
- package/splitter/ptsecurity-mosaic-splitter.d.ts +5 -5
- package/splitter/public-api.d.ts +2 -2
- package/splitter/splitter.component.d.ts +130 -130
- package/splitter/splitter.module.d.ts +9 -9
- package/table/index.d.ts +1 -1
- package/table/ptsecurity-mosaic-table.d.ts +5 -5
- package/table/public-api.d.ts +2 -2
- package/table/table.component.d.ts +5 -5
- package/table/table.module.d.ts +10 -10
- package/tabs/index.d.ts +1 -1
- package/tabs/paginated-tab-header.d.ts +179 -179
- package/tabs/ptsecurity-mosaic-tabs.d.ts +5 -5
- package/tabs/public-api.d.ts +10 -10
- package/tabs/tab-body.component.d.ts +95 -95
- package/tabs/tab-content.directive.d.ts +9 -9
- package/tabs/tab-group.component.d.ts +133 -133
- package/tabs/tab-header.component.d.ts +35 -35
- package/tabs/tab-label-wrapper.directive.d.ts +30 -30
- package/tabs/tab-label.directive.d.ts +9 -9
- package/tabs/tab-nav-bar/index.d.ts +1 -1
- package/tabs/tab-nav-bar/tab-nav-bar.d.ts +38 -38
- package/tabs/tab.component.d.ts +66 -66
- package/tabs/tabs-animations.d.ts +4 -4
- package/tabs/tabs.module.d.ts +20 -20
- package/tags/index.d.ts +1 -1
- package/tags/ptsecurity-mosaic-tags.d.ts +5 -5
- package/tags/public-api.d.ts +5 -5
- package/tags/tag-default-options.d.ts +8 -8
- package/tags/tag-input.d.ts +77 -77
- package/tags/tag-list.component.d.ts +240 -240
- package/tags/tag-text-control.d.ts +10 -10
- package/tags/tag.component.d.ts +135 -135
- package/tags/tag.module.d.ts +11 -11
- package/textarea/index.d.ts +1 -1
- package/textarea/ptsecurity-mosaic-textarea.d.ts +5 -5
- package/textarea/public-api.d.ts +2 -2
- package/textarea/textarea.component.d.ts +111 -111
- package/textarea/textarea.module.d.ts +11 -11
- package/timepicker/index.d.ts +1 -1
- package/timepicker/ptsecurity-mosaic-timepicker.d.ts +5 -5
- package/timepicker/public-api.d.ts +3 -3
- package/timepicker/timepicker.constants.d.ts +20 -20
- package/timepicker/timepicker.directive.d.ts +147 -142
- package/timepicker/timepicker.module.d.ts +11 -11
- package/toggle/index.d.ts +1 -1
- package/toggle/ptsecurity-mosaic-toggle.d.ts +5 -5
- package/toggle/public-api.d.ts +2 -2
- package/toggle/toggle.component.d.ts +54 -54
- package/toggle/toggle.module.d.ts +10 -10
- package/tooltip/index.d.ts +1 -1
- package/tooltip/ptsecurity-mosaic-tooltip.d.ts +5 -5
- package/tooltip/public-api.d.ts +2 -2
- package/tooltip/tooltip.animations.d.ts +8 -8
- package/tooltip/tooltip.component.d.ts +91 -91
- package/tooltip/tooltip.module.d.ts +9 -9
- package/tree/control/base-tree-control.d.ts +40 -40
- package/tree/control/flat-tree-control.d.ts +48 -48
- package/tree/control/nested-tree-control.d.ts +19 -19
- package/tree/control/tree-control.d.ts +44 -44
- package/tree/data-source/flat-data-source.d.ts +80 -80
- package/tree/data-source/nested-data-source.d.ts +15 -15
- package/tree/index.d.ts +1 -1
- package/tree/node.d.ts +34 -34
- package/tree/outlet.d.ts +9 -9
- package/tree/padding.directive.d.ts +45 -45
- package/tree/ptsecurity-mosaic-tree.d.ts +5 -5
- package/tree/public-api.d.ts +15 -15
- package/tree/toggle.d.ts +28 -28
- package/tree/tree-base.d.ts +97 -97
- package/tree/tree-errors.d.ts +25 -25
- package/tree/tree-option.component.d.ts +68 -68
- package/tree/tree-selection.component.d.ts +132 -130
- package/tree/tree.d.ts +6 -6
- package/tree/tree.module.d.ts +16 -16
- package/tree-select/index.d.ts +1 -1
- package/tree-select/ptsecurity-mosaic-tree-select.d.ts +5 -5
- package/tree-select/public-api.d.ts +2 -2
- package/tree-select/tree-select.component.d.ts +269 -269
- package/tree-select/tree-select.module.d.ts +14 -14
- package/schematics/collection.json +0 -4
- package/schematics/migration.json +0 -10
- package/schematics/ng-update/data/attribute-selectors.d.ts +0 -2
- package/schematics/ng-update/data/attribute-selectors.js +0 -5
- package/schematics/ng-update/data/attribute-selectors.js.map +0 -1
- package/schematics/ng-update/data/class-names.d.ts +0 -2
- package/schematics/ng-update/data/class-names.js +0 -5
- package/schematics/ng-update/data/class-names.js.map +0 -1
- package/schematics/ng-update/data/constructor-checks.d.ts +0 -2
- package/schematics/ng-update/data/constructor-checks.js +0 -5
- package/schematics/ng-update/data/constructor-checks.js.map +0 -1
- package/schematics/ng-update/data/css-selectors.d.ts +0 -2
- package/schematics/ng-update/data/css-selectors.js +0 -5
- package/schematics/ng-update/data/css-selectors.js.map +0 -1
- package/schematics/ng-update/data/element-selectors.d.ts +0 -2
- package/schematics/ng-update/data/element-selectors.js +0 -5
- package/schematics/ng-update/data/element-selectors.js.map +0 -1
- package/schematics/ng-update/data/index.d.ts +0 -10
- package/schematics/ng-update/data/index.js +0 -14
- package/schematics/ng-update/data/index.js.map +0 -1
- package/schematics/ng-update/data/input-names.d.ts +0 -2
- package/schematics/ng-update/data/input-names.js +0 -35
- package/schematics/ng-update/data/input-names.js.map +0 -1
- package/schematics/ng-update/data/method-call-checks.d.ts +0 -2
- package/schematics/ng-update/data/method-call-checks.js +0 -5
- package/schematics/ng-update/data/method-call-checks.js.map +0 -1
- package/schematics/ng-update/data/output-names.d.ts +0 -2
- package/schematics/ng-update/data/output-names.js +0 -5
- package/schematics/ng-update/data/output-names.js.map +0 -1
- package/schematics/ng-update/data/property-names.d.ts +0 -2
- package/schematics/ng-update/data/property-names.js +0 -5
- package/schematics/ng-update/data/property-names.js.map +0 -1
- package/schematics/ng-update/data/symbol-removal.d.ts +0 -2
- package/schematics/ng-update/data/symbol-removal.js +0 -5
- package/schematics/ng-update/data/symbol-removal.js.map +0 -1
- package/schematics/ng-update/index.d.ts +0 -2
- package/schematics/ng-update/index.js +0 -23
- package/schematics/ng-update/index.js.map +0 -1
- package/schematics/ng-update/update-9.0.0/mosaic-symbols.json +0 -255
- package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.d.ts +0 -7
- package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js +0 -154
- package/schematics/ng-update/update-9.0.0/secondary-entry-points-migration.js.map +0 -1
- package/schematics/ng-update/upgrade-data.d.ts +0 -2
- package/schematics/ng-update/upgrade-data.js +0 -17
- package/schematics/ng-update/upgrade-data.js.map +0 -1
- package/schematics/tsconfig.json +0 -29
- package/schematics/tsconfig.lib-test.json +0 -8
- package/schematics/tsconfig.lib.json +0 -17
@@ -1,234 +1,236 @@
|
|
1
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
2
|
-
import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ElementRef, Inject, InjectionToken, ChangeDetectionStrategy, ViewEncapsulation, NgZone, ContentChild } from '@angular/core';
|
3
|
-
import { hasModifierKey, TAB } from '@ptsecurity/cdk/keycodes';
|
4
|
-
import { MC_OPTION_ACTION_PARENT, McOptionActionComponent, McPseudoCheckbox } from '@ptsecurity/mosaic/core';
|
5
|
-
import { McDropdownTrigger } from '@ptsecurity/mosaic/dropdown';
|
6
|
-
import { McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';
|
7
|
-
import { Subject } from 'rxjs';
|
8
|
-
import { take } from 'rxjs/operators';
|
9
|
-
import { McTreeNodeToggleBaseDirective } from './toggle';
|
10
|
-
import { McTreeNode } from './tree-base';
|
11
|
-
import * as i0 from "@angular/core";
|
12
|
-
import * as i1 from "@ptsecurity/mosaic/core";
|
13
|
-
import * as i2 from "@angular/common";
|
14
|
-
/**
|
15
|
-
* Injection token used to provide the parent component to options.
|
16
|
-
*/
|
17
|
-
export const MC_TREE_OPTION_PARENT_COMPONENT = new InjectionToken('MC_TREE_OPTION_PARENT_COMPONENT');
|
18
|
-
export class McTreeOptionChange {
|
19
|
-
constructor(source, isUserInput = false) {
|
20
|
-
this.source = source;
|
21
|
-
this.isUserInput = isUserInput;
|
22
|
-
}
|
23
|
-
}
|
24
|
-
let uniqueIdCounter = 0;
|
25
|
-
export class McTreeOption extends McTreeNode {
|
26
|
-
constructor(elementRef, changeDetectorRef, ngZone, tree) {
|
27
|
-
super(elementRef, tree);
|
28
|
-
this.changeDetectorRef = changeDetectorRef;
|
29
|
-
this.ngZone = ngZone;
|
30
|
-
this.tree = tree;
|
31
|
-
this.onFocus = new Subject();
|
32
|
-
this.onBlur = new Subject();
|
33
|
-
this._disabled = false;
|
34
|
-
this.onSelectionChange = new EventEmitter();
|
35
|
-
this._selected = false;
|
36
|
-
this._id = `mc-tree-option-${uniqueIdCounter++}`;
|
37
|
-
this.hasFocus = false;
|
38
|
-
}
|
39
|
-
get externalPseudoCheckbox() {
|
40
|
-
return !!this.pseudoCheckbox;
|
41
|
-
}
|
42
|
-
get value() {
|
43
|
-
return this._value;
|
44
|
-
}
|
45
|
-
set value(value) {
|
46
|
-
this._value = value;
|
47
|
-
}
|
48
|
-
get disabled() {
|
49
|
-
return this._disabled || this.tree.disabled;
|
50
|
-
}
|
51
|
-
set disabled(value) {
|
52
|
-
const newValue = coerceBooleanProperty(value);
|
53
|
-
if (newValue !== this._disabled) {
|
54
|
-
this._disabled = newValue;
|
55
|
-
}
|
56
|
-
}
|
57
|
-
get showCheckbox() {
|
58
|
-
return this._showCheckbox !== undefined ? this._showCheckbox : this.tree.showCheckbox;
|
59
|
-
}
|
60
|
-
set showCheckbox(value) {
|
61
|
-
this._showCheckbox = coerceBooleanProperty(value);
|
62
|
-
}
|
63
|
-
get selected() {
|
64
|
-
return this._selected;
|
65
|
-
}
|
66
|
-
set selected(value) {
|
67
|
-
const isSelected = coerceBooleanProperty(value);
|
68
|
-
if (isSelected !== this._selected) {
|
69
|
-
this.setSelected(isSelected);
|
70
|
-
}
|
71
|
-
}
|
72
|
-
get id() {
|
73
|
-
return this._id;
|
74
|
-
}
|
75
|
-
get viewValue() {
|
76
|
-
// TODO: Add input property alternative for node envs.
|
77
|
-
return (this.getHostElement().textContent || '').trim();
|
78
|
-
}
|
79
|
-
get isExpandable() {
|
80
|
-
return !this.toggleElement?.disabled && this.tree.treeControl.isExpandable(this.data);
|
81
|
-
}
|
82
|
-
ngAfterContentInit() {
|
83
|
-
this.value = this.tree.treeControl.getValue(this.data);
|
84
|
-
}
|
85
|
-
toggle() {
|
86
|
-
this.selected = !this.selected;
|
87
|
-
}
|
88
|
-
setSelected(selected) {
|
89
|
-
if (this._selected === selected || !this.tree.selectionModel) {
|
90
|
-
return;
|
91
|
-
}
|
92
|
-
this._selected = selected;
|
93
|
-
if (selected) {
|
94
|
-
this.tree.selectionModel.select(this.data);
|
95
|
-
}
|
96
|
-
else {
|
97
|
-
this.tree.selectionModel.deselect(this.data);
|
98
|
-
}
|
99
|
-
this.changeDetectorRef.markForCheck();
|
100
|
-
}
|
101
|
-
focus(focusOrigin) {
|
102
|
-
if (focusOrigin === 'program') {
|
103
|
-
return;
|
104
|
-
}
|
105
|
-
if (this.disabled || this.
|
106
|
-
return;
|
107
|
-
}
|
108
|
-
this.elementRef.nativeElement.focus();
|
109
|
-
this.
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
//
|
119
|
-
//
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
.
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
type:
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
'[class.mc-
|
198
|
-
'[
|
199
|
-
'[
|
200
|
-
'[attr.
|
201
|
-
'
|
202
|
-
'
|
203
|
-
'(
|
204
|
-
'(
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
}],
|
230
|
-
type: Input
|
231
|
-
}],
|
232
|
-
type:
|
233
|
-
}]
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RyZWUvdHJlZS1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RyZWUvdHJlZS1vcHRpb24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBRWpCLE1BQU0sRUFDTixZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2QixnQkFBZ0IsRUFDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQVF6Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLElBQUksY0FBYyxDQUFNLGlDQUFpQyxDQUFDLENBQUM7QUFFMUcsTUFBTSxPQUFPLGtCQUFrQjtJ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QUFFLFdBQVcsY0FBYyxFQUFFO3dCQUNsRCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLGNBQWMsRUFBRTtxQkFDbEU7OzBCQTJGSSxNQUFNOzJCQUFDLCtCQUErQjs0Q0FwRlQsYUFBYTtzQkFBOUMsWUFBWTt1QkFBQyxrQkFBa0I7Z0JBRUEsY0FBYztzQkFBN0MsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBQ1MsWUFBWTtzQkFBbEQsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBQ0wsY0FBYztzQkFBN0MsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBQ0csZUFBZTtzQkFBL0MsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBaUIzQixRQUFRO3NCQURYLEtBQUs7Z0JBZ0JGLFlBQVk7c0JBRGYsS0FBSztnQkFXYSxpQkFBaUI7c0JBQW5DLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdGlvblRva2VuLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgTmdab25lLFxuICAgIENvbnRlbnRDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGhhc01vZGlmaWVyS2V5LCBUQUIgfSBmcm9tICdAcHRzZWN1cml0eS9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBNQ19PUFRJT05fQUNUSU9OX1BBUkVOVCxcbiAgICBNY09wdGlvbkFjdGlvbkNvbXBvbmVudCxcbiAgICBNY1BzZXVkb0NoZWNrYm94XG59IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy9jb3JlJztcbmltcG9ydCB7IE1jRHJvcGRvd25UcmlnZ2VyIH0gZnJvbSAnQHB0c2VjdXJpdHkvbW9zYWljL2Ryb3Bkb3duJztcbmltcG9ydCB7IE1jVG9vbHRpcFRyaWdnZXIgfSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvdG9vbHRpcCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBNY1RyZWVOb2RlVG9nZ2xlQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vdG9nZ2xlJztcbmltcG9ydCB7IE1jVHJlZU5vZGUgfSBmcm9tICcuL3RyZWUtYmFzZSc7XG5cblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5hbWluZy1jb252ZW50aW9uXG5leHBvcnQgaW50ZXJmYWNlIE1jVHJlZU9wdGlvbkV2ZW50IHtcbiAgICBvcHRpb246IE1jVHJlZU9wdGlvbjtcbn1cblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gdXNlZCB0byBwcm92aWRlIHRoZSBwYXJlbnQgY29tcG9uZW50IHRvIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBNQ19UUkVFX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ01DX1RSRUVfT1BUSU9OX1BBUkVOVF9DT01QT05FTlQnKTtcblxuZXhwb3J0IGNsYXNzIE1jVHJlZU9wdGlvbkNoYW5nZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHNvdXJjZTogTWNUcmVlT3B0aW9uLCBwdWJsaWMgaXNVc2VySW5wdXQgPSBmYWxzZSkge31cbn1cblxubGV0IHVuaXF1ZUlkQ291bnRlcjogbnVtYmVyID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtYy10cmVlLW9wdGlvbicsXG4gICAgZXhwb3J0QXM6ICdtY1RyZWVPcHRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90cmVlLW9wdGlvbi5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90cmVlLW9wdGlvbi5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ21jLXRyZWUtb3B0aW9uJyxcbiAgICAgICAgJ1tjbGFzcy5tYy1zZWxlY3RlZF0nOiAnc2VsZWN0ZWQnLFxuICAgICAgICAnW2NsYXNzLm1jLWZvY3VzZWRdJzogJ2hhc0ZvY3VzJyxcbiAgICAgICAgJ1tjbGFzcy5tYy1hY3Rpb24tYnV0dG9uLWZvY3VzZWRdJzogJ2FjdGlvbkJ1dHRvbj8uYWN0aXZlJyxcblxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAgICAgJ1thdHRyLnRhYmluZGV4XSc6ICctMScsXG4gICAgICAgICdbYXR0ci5kaXNhYmxlZF0nOiAnZGlzYWJsZWQgfHwgbnVsbCcsXG5cbiAgICAgICAgJyhmb2N1c2luKSc6ICdmb2N1cygpJyxcbiAgICAgICAgJyhibHVyKSc6ICdibHVyKCknLFxuXG4gICAgICAgICcoY2xpY2spJzogJ3NlbGVjdFZpYUludGVyYWN0aW9uKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24pJzogJ29uS2V5ZG93bigkZXZlbnQpJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBNY1RyZWVOb2RlLCB1c2VFeGlzdGluZzogTWNUcmVlT3B0aW9uIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTUNfT1BUSU9OX0FDVElPTl9QQVJFTlQsIHVzZUV4aXN0aW5nOiBNY1RyZWVPcHRpb24gfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTWNUcmVlT3B0aW9uIGV4dGVuZHMgTWNUcmVlTm9kZTxNY1RyZWVPcHRpb24+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcmVhZG9ubHkgb25Gb2N1cyA9IG5ldyBTdWJqZWN0PE1jVHJlZU9wdGlvbkV2ZW50PigpO1xuXG4gICAgcmVhZG9ubHkgb25CbHVyID0gbmV3IFN1YmplY3Q8TWNUcmVlT3B0aW9uRXZlbnQ+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKCdtY1RyZWVOb2RlVG9nZ2xlJykgdG9nZ2xlRWxlbWVudDogTWNUcmVlTm9kZVRvZ2dsZUJhc2VEaXJlY3RpdmU8TWNUcmVlT3B0aW9uPjtcblxuICAgIEBDb250ZW50Q2hpbGQoTWNQc2V1ZG9DaGVja2JveCkgcHNldWRvQ2hlY2tib3g6IE1jUHNldWRvQ2hlY2tib3g7XG4gICAgQENvbnRlbnRDaGlsZChNY09wdGlvbkFjdGlvbkNvbXBvbmVudCkgYWN0aW9uQnV0dG9uOiBNY09wdGlvbkFjdGlvbkNvbXBvbmVudDtcbiAgICBAQ29udGVudENoaWxkKE1jVG9vbHRpcFRyaWdnZXIpIHRvb2x0aXBUcmlnZ2VyOiBNY1Rvb2x0aXBUcmlnZ2VyO1xuICAgIEBDb250ZW50Q2hpbGQoTWNEcm9wZG93blRyaWdnZXIpIGRyb3Bkb3duVHJpZ2dlcjogTWNEcm9wZG93blRyaWdnZXI7XG5cbiAgICBnZXQgZXh0ZXJuYWxQc2V1ZG9DaGVja2JveCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5wc2V1ZG9DaGVja2JveDtcbiAgICB9XG5cbiAgICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdmFsdWU6IGFueTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgdGhpcy50cmVlIS5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGFueSkge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBzaG93Q2hlY2tib3goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93Q2hlY2tib3ggIT09IHVuZGVmaW5lZCA/IHRoaXMuX3Nob3dDaGVja2JveCA6IHRoaXMudHJlZS5zaG93Q2hlY2tib3g7XG4gICAgfVxuXG4gICAgc2V0IHNob3dDaGVja2JveCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX3Nob3dDaGVja2JveCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd0NoZWNrYm94OiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9uU2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNY1RyZWVPcHRpb25DaGFuZ2U+KCk7XG5cbiAgICBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG5cbiAgICBzZXQgc2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKGlzU2VsZWN0ZWQgIT09IHRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFNlbGVjdGVkKGlzU2VsZWN0ZWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdldCBpZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5faWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaWQgPSBgbWMtdHJlZS1vcHRpb24tJHt1bmlxdWVJZENvdW50ZXIrK31gO1xuXG4gICAgZ2V0IHZpZXdWYWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICAvLyBUT0RPOiBBZGQgaW5wdXQgcHJvcGVydHkgYWx0ZXJuYXRpdmUgZm9yIG5vZGUgZW52cy5cbiAgICAgICAgcmV0dXJuICh0aGlzLmdldEhvc3RFbGVtZW50KCkudGV4dENvbnRlbnQgfHwgJycpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBoYXNGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZ2V0IGlzRXhwYW5kYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnRvZ2dsZUVsZW1lbnQ/LmRpc2FibGVkICYmIHRoaXMudHJlZS50cmVlQ29udHJvbC5pc0V4cGFuZGFibGUodGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoTUNfVFJFRV9PUFRJT05fUEFSRU5UX0NPTVBPTkVOVCkgcHVibGljIHRyZWU6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCB0cmVlKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnRyZWUudHJlZUNvbnRyb2wuZ2V0VmFsdWUodGhpcy5kYXRhKTtcbiAgICB9XG5cbiAgICB0b2dnbGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3RlZDtcbiAgICB9XG5cbiAgICBzZXRTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgPT09IHNlbGVjdGVkIHx8ICF0aGlzLnRyZWUuc2VsZWN0aW9uTW9kZWwpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBzZWxlY3RlZDtcblxuICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudHJlZS5zZWxlY3Rpb25Nb2RlbC5zZWxlY3QodGhpcy5kYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJlZS5zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdCh0aGlzLmRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBmb2N1cyhmb2N1c09yaWdpbj86IEZvY3VzT3JpZ2luKSB7XG4gICAgICAgIGlmIChmb2N1c09yaWdpbiA9PT0gJ3Byb2dyYW0nKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaGFzRm9jdXMgfHwgdGhpcy5hY3Rpb25CdXR0b24/Lmhhc0ZvY3VzKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgdGhpcy5vbkZvY3VzLm5leHQoeyBvcHRpb246IHRoaXMgfSk7XG5cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYmx1cigpOiB2b2lkIHtcbiAgICAgICAgLy8gV2hlbiBhbmltYXRpb25zIGFyZSBlbmFibGVkLCBBbmd1bGFyIG1heSBlbmQgdXAgcmVtb3ZpbmcgdGhlIG9wdGlvbiBmcm9tIHRoZSBET00gYSBsaXR0bGVcbiAgICAgICAgLy8gZWFybGllciB0aGFuIHVzdWFsLCBjYXVzaW5nIGl0IHRvIGJlIGJsdXJyZWQgYW5kIHRocm93aW5nIG9mZiB0aGUgbG9naWMgaW4gdGhlIHRyZWVcbiAgICAgICAgLy8gdGhhdCBtb3ZlcyBmb2N1cyBub3QgdGhlIG5leHQgaXRlbS4gVG8gd29yayBhcm91bmQgdGhlIGlzc3VlLCB3ZSBkZWZlciBtYXJraW5nIHRoZSBvcHRpb25cbiAgICAgICAgLy8gYXMgbm90IGZvY3VzZWQgdW50aWwgdGhlIG5leHQgdGltZSB0aGUgem9uZSBzdGFiaWxpemVzLlxuICAgICAgICB0aGlzLm5nWm9uZS5vblN0YWJsZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9uQnV0dG9uPy5oYXNGb2N1cykgeyByZXR1cm47IH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQmx1ci5uZXh0KHsgb3B0aW9uOiB0aGlzIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0SGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3RzID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKTtcblxuICAgICAgICBpZiAoY2xpZW50UmVjdHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xpZW50UmVjdHNbMF0uaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgc2VsZWN0KHNldEZvY3VzID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgICAgIGlmIChzZXRGb2N1cyAmJiAhdGhpcy5oYXNGb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcbiAgICB9XG5cbiAgICBkZXNlbGVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RlZCkgeyByZXR1cm47IH1cblxuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgb25LZXlkb3duKCRldmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aW9uQnV0dG9uKSB7IHJldHVybjsgfVxuXG4gICAgICAgIGlmICgkZXZlbnQua2V5Q29kZSA9PT0gVEFCICYmICEkZXZlbnQuc2hpZnRLZXkgJiYgIXRoaXMuYWN0aW9uQnV0dG9uLmhhc0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbi5mb2N1cygpO1xuXG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdFZpYUludGVyYWN0aW9uKCRldmVudD86IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQodHJ1ZSk7XG5cbiAgICAgICAgY29uc3Qgc2hpZnRLZXkgPSAkZXZlbnQgPyBoYXNNb2RpZmllcktleSgkZXZlbnQsICdzaGlmdEtleScpIDogZmFsc2U7XG4gICAgICAgIGNvbnN0IGN0cmxLZXkgPSAkZXZlbnQgPyBoYXNNb2RpZmllcktleSgkZXZlbnQsICdjdHJsS2V5JykgOiBmYWxzZTtcblxuICAgICAgICB0aGlzLnRyZWUuc2V0U2VsZWN0ZWRPcHRpb25zQnlDbGljayh0aGlzLCBzaGlmdEtleSwgY3RybEtleSk7XG4gICAgfVxuXG4gICAgZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KGlzVXNlcklucHV0ID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5lbWl0KG5ldyBNY1RyZWVPcHRpb25DaGFuZ2UodGhpcywgaXNVc2VySW5wdXQpKTtcbiAgICB9XG5cbiAgICBnZXRIb3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBtYXJrRm9yQ2hlY2soKSB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwibWMtdHJlZS1ub2RlLXRvZ2dsZSwgW21jLXRyZWUtbm9kZS10b2dnbGVdLCBbbWNUcmVlTm9kZVRvZ2dsZV1cIj48L25nLWNvbnRlbnQ+XG5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImV4dGVybmFsUHNldWRvQ2hlY2tib3hcIj5cbiAgICA8bmctY29udGVudCAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIHNlbGVjdD1cIm1jLXBzZXVkby1jaGVja2JveFwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCI+XG4gICAgICAgIDxtYy1wc2V1ZG8tY2hlY2tib3hcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0NoZWNrYm94XCJcbiAgICAgICAgICAgIFtzdGF0ZV09XCJzZWxlY3RlZCA/ICdjaGVja2VkJyA6ICd1bmNoZWNrZWQnXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxuICAgICAgICA8L21jLXBzZXVkby1jaGVja2JveD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJtYy1jaGVja2JveFwiPjwvbmctY29udGVudD5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21jLWljb25dXCI+PC9uZy1jb250ZW50PlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJtYy1wcm9ncmVzcy1zcGlubmVyXCI+PC9uZy1jb250ZW50PlxuXG48c3BhbiBjbGFzcz1cIm1jLW9wdGlvbi10ZXh0IG1jLW5vLXNlbGVjdFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cIm1jLW9wdGlvbi1hY3Rpb25cIj48L25nLWNvbnRlbnQ+XG5cbjxkaXYgY2xhc3M9XCJtYy1vcHRpb24tb3ZlcmxheVwiPjwvZGl2PlxuIl19
|
1
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
2
|
+
import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ElementRef, Inject, InjectionToken, ChangeDetectionStrategy, ViewEncapsulation, NgZone, ContentChild } from '@angular/core';
|
3
|
+
import { hasModifierKey, TAB } from '@ptsecurity/cdk/keycodes';
|
4
|
+
import { MC_OPTION_ACTION_PARENT, McOptionActionComponent, McPseudoCheckbox } from '@ptsecurity/mosaic/core';
|
5
|
+
import { McDropdownTrigger } from '@ptsecurity/mosaic/dropdown';
|
6
|
+
import { McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';
|
7
|
+
import { Subject } from 'rxjs';
|
8
|
+
import { take } from 'rxjs/operators';
|
9
|
+
import { McTreeNodeToggleBaseDirective } from './toggle';
|
10
|
+
import { McTreeNode } from './tree-base';
|
11
|
+
import * as i0 from "@angular/core";
|
12
|
+
import * as i1 from "@ptsecurity/mosaic/core";
|
13
|
+
import * as i2 from "@angular/common";
|
14
|
+
/**
|
15
|
+
* Injection token used to provide the parent component to options.
|
16
|
+
*/
|
17
|
+
export const MC_TREE_OPTION_PARENT_COMPONENT = new InjectionToken('MC_TREE_OPTION_PARENT_COMPONENT');
|
18
|
+
export class McTreeOptionChange {
|
19
|
+
constructor(source, isUserInput = false) {
|
20
|
+
this.source = source;
|
21
|
+
this.isUserInput = isUserInput;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
let uniqueIdCounter = 0;
|
25
|
+
export class McTreeOption extends McTreeNode {
|
26
|
+
constructor(elementRef, changeDetectorRef, ngZone, tree) {
|
27
|
+
super(elementRef, tree);
|
28
|
+
this.changeDetectorRef = changeDetectorRef;
|
29
|
+
this.ngZone = ngZone;
|
30
|
+
this.tree = tree;
|
31
|
+
this.onFocus = new Subject();
|
32
|
+
this.onBlur = new Subject();
|
33
|
+
this._disabled = false;
|
34
|
+
this.onSelectionChange = new EventEmitter();
|
35
|
+
this._selected = false;
|
36
|
+
this._id = `mc-tree-option-${uniqueIdCounter++}`;
|
37
|
+
this.hasFocus = false;
|
38
|
+
}
|
39
|
+
get externalPseudoCheckbox() {
|
40
|
+
return !!this.pseudoCheckbox;
|
41
|
+
}
|
42
|
+
get value() {
|
43
|
+
return this._value;
|
44
|
+
}
|
45
|
+
set value(value) {
|
46
|
+
this._value = value;
|
47
|
+
}
|
48
|
+
get disabled() {
|
49
|
+
return this._disabled || this.tree.disabled;
|
50
|
+
}
|
51
|
+
set disabled(value) {
|
52
|
+
const newValue = coerceBooleanProperty(value);
|
53
|
+
if (newValue !== this._disabled) {
|
54
|
+
this._disabled = newValue;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
get showCheckbox() {
|
58
|
+
return this._showCheckbox !== undefined ? this._showCheckbox : this.tree.showCheckbox;
|
59
|
+
}
|
60
|
+
set showCheckbox(value) {
|
61
|
+
this._showCheckbox = coerceBooleanProperty(value);
|
62
|
+
}
|
63
|
+
get selected() {
|
64
|
+
return this._selected;
|
65
|
+
}
|
66
|
+
set selected(value) {
|
67
|
+
const isSelected = coerceBooleanProperty(value);
|
68
|
+
if (isSelected !== this._selected) {
|
69
|
+
this.setSelected(isSelected);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
get id() {
|
73
|
+
return this._id;
|
74
|
+
}
|
75
|
+
get viewValue() {
|
76
|
+
// TODO: Add input property alternative for node envs.
|
77
|
+
return (this.getHostElement().textContent || '').trim();
|
78
|
+
}
|
79
|
+
get isExpandable() {
|
80
|
+
return !this.toggleElement?.disabled && this.tree.treeControl.isExpandable(this.data);
|
81
|
+
}
|
82
|
+
ngAfterContentInit() {
|
83
|
+
this.value = this.tree.treeControl.getValue(this.data);
|
84
|
+
}
|
85
|
+
toggle() {
|
86
|
+
this.selected = !this.selected;
|
87
|
+
}
|
88
|
+
setSelected(selected) {
|
89
|
+
if (this._selected === selected || !this.tree.selectionModel) {
|
90
|
+
return;
|
91
|
+
}
|
92
|
+
this._selected = selected;
|
93
|
+
if (selected) {
|
94
|
+
this.tree.selectionModel.select(this.data);
|
95
|
+
}
|
96
|
+
else {
|
97
|
+
this.tree.selectionModel.deselect(this.data);
|
98
|
+
}
|
99
|
+
this.changeDetectorRef.markForCheck();
|
100
|
+
}
|
101
|
+
focus(focusOrigin) {
|
102
|
+
if (focusOrigin === 'program') {
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
if (this.disabled || this.actionButton?.hasFocus) {
|
106
|
+
return;
|
107
|
+
}
|
108
|
+
this.elementRef.nativeElement.focus();
|
109
|
+
if (!this.hasFocus) {
|
110
|
+
this.onFocus.next({ option: this });
|
111
|
+
Promise.resolve().then(() => {
|
112
|
+
this.hasFocus = true;
|
113
|
+
this.changeDetectorRef.markForCheck();
|
114
|
+
});
|
115
|
+
}
|
116
|
+
}
|
117
|
+
blur() {
|
118
|
+
// When animations are enabled, Angular may end up removing the option from the DOM a little
|
119
|
+
// earlier than usual, causing it to be blurred and throwing off the logic in the tree
|
120
|
+
// that moves focus not the next item. To work around the issue, we defer marking the option
|
121
|
+
// as not focused until the next time the zone stabilizes.
|
122
|
+
this.ngZone.onStable
|
123
|
+
.asObservable()
|
124
|
+
.pipe(take(1))
|
125
|
+
.subscribe(() => {
|
126
|
+
this.ngZone.run(() => {
|
127
|
+
if (this.actionButton?.hasFocus) {
|
128
|
+
return;
|
129
|
+
}
|
130
|
+
this.onBlur.next({ option: this });
|
131
|
+
});
|
132
|
+
});
|
133
|
+
}
|
134
|
+
getHeight() {
|
135
|
+
const clientRects = this.elementRef.nativeElement.getClientRects();
|
136
|
+
if (clientRects.length) {
|
137
|
+
return clientRects[0].height;
|
138
|
+
}
|
139
|
+
return 0;
|
140
|
+
}
|
141
|
+
select(setFocus = true) {
|
142
|
+
if (this._selected) {
|
143
|
+
return;
|
144
|
+
}
|
145
|
+
this._selected = true;
|
146
|
+
if (setFocus && !this.hasFocus) {
|
147
|
+
this.focus();
|
148
|
+
}
|
149
|
+
this.changeDetectorRef.markForCheck();
|
150
|
+
this.emitSelectionChangeEvent();
|
151
|
+
}
|
152
|
+
deselect() {
|
153
|
+
if (!this._selected) {
|
154
|
+
return;
|
155
|
+
}
|
156
|
+
this._selected = false;
|
157
|
+
this.changeDetectorRef.markForCheck();
|
158
|
+
}
|
159
|
+
onKeydown($event) {
|
160
|
+
if (!this.actionButton) {
|
161
|
+
return;
|
162
|
+
}
|
163
|
+
if ($event.keyCode === TAB && !$event.shiftKey && !this.actionButton.hasFocus) {
|
164
|
+
this.actionButton.focus();
|
165
|
+
$event.preventDefault();
|
166
|
+
}
|
167
|
+
}
|
168
|
+
selectViaInteraction($event) {
|
169
|
+
if (this.disabled) {
|
170
|
+
return;
|
171
|
+
}
|
172
|
+
this.changeDetectorRef.markForCheck();
|
173
|
+
this.emitSelectionChangeEvent(true);
|
174
|
+
const shiftKey = $event ? hasModifierKey($event, 'shiftKey') : false;
|
175
|
+
const ctrlKey = $event ? hasModifierKey($event, 'ctrlKey') : false;
|
176
|
+
this.tree.setSelectedOptionsByClick(this, shiftKey, ctrlKey);
|
177
|
+
}
|
178
|
+
emitSelectionChangeEvent(isUserInput = false) {
|
179
|
+
this.onSelectionChange.emit(new McTreeOptionChange(this, isUserInput));
|
180
|
+
}
|
181
|
+
getHostElement() {
|
182
|
+
return this.elementRef.nativeElement;
|
183
|
+
}
|
184
|
+
markForCheck() {
|
185
|
+
this.changeDetectorRef.markForCheck();
|
186
|
+
}
|
187
|
+
}
|
188
|
+
/** @nocollapse */ /** @nocollapse */ McTreeOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTreeOption, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: MC_TREE_OPTION_PARENT_COMPONENT }], target: i0.ɵɵFactoryTarget.Component });
|
189
|
+
/** @nocollapse */ /** @nocollapse */ McTreeOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.7", type: McTreeOption, selector: "mc-tree-option", inputs: { disabled: "disabled", showCheckbox: "showCheckbox" }, outputs: { onSelectionChange: "onSelectionChange" }, host: { listeners: { "focusin": "focus()", "blur": "blur()", "click": "selectViaInteraction($event)", "keydown": "onKeydown($event)" }, properties: { "class.mc-selected": "selected", "class.mc-focused": "hasFocus", "class.mc-action-button-focused": "actionButton?.active", "attr.id": "id", "attr.tabindex": "-1", "attr.disabled": "disabled || null" }, classAttribute: "mc-tree-option" }, providers: [
|
190
|
+
{ provide: McTreeNode, useExisting: McTreeOption },
|
191
|
+
{ provide: MC_OPTION_ACTION_PARENT, useExisting: McTreeOption }
|
192
|
+
], queries: [{ propertyName: "toggleElement", first: true, predicate: ["mcTreeNodeToggle"], descendants: true }, { propertyName: "pseudoCheckbox", first: true, predicate: McPseudoCheckbox, descendants: true }, { propertyName: "actionButton", first: true, predicate: McOptionActionComponent, descendants: true }, { propertyName: "tooltipTrigger", first: true, predicate: McTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: McDropdownTrigger, descendants: true }], exportAs: ["mcTreeOption"], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"mc-tree-node-toggle, [mc-tree-node-toggle], [mcTreeNodeToggle]\"></ng-content>\r\n\r\n<ng-container [ngSwitch]=\"externalPseudoCheckbox\">\r\n <ng-content *ngSwitchCase=\"true\" select=\"mc-pseudo-checkbox\"></ng-content>\r\n\r\n <ng-container *ngSwitchCase=\"false\">\r\n <mc-pseudo-checkbox\r\n *ngIf=\"showCheckbox\"\r\n [state]=\"selected ? 'checked' : 'unchecked'\"\r\n [disabled]=\"disabled\">\r\n </mc-pseudo-checkbox>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content select=\"mc-checkbox\"></ng-content>\r\n\r\n<ng-content select=\"[mc-icon]\"></ng-content>\r\n\r\n<ng-content select=\"mc-progress-spinner\"></ng-content>\r\n\r\n<span class=\"mc-option-text mc-no-select\"><ng-content></ng-content></span>\r\n\r\n<ng-content select=\"mc-option-action\"></ng-content>\r\n\r\n<div class=\"mc-option-overlay\"></div>\r\n", styles: [".mc-tree-option{box-sizing:border-box;display:flex;align-items:center;height:var(--mc-tree-size-node-height, 32px);word-wrap:break-word;border:2px solid transparent}.mc-tree-option .mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:var(--mc-tree-size-padding-right, 16px)}.mc-tree-option>.mc-icon{margin-right:var(--mc-tree-size-icon-padding, 8px);cursor:pointer}.mc-tree-option>.mc-progress-spinner{margin-right:8px}.mc-tree-option:focus{outline:none}.mc-tree-option:not([disabled]){cursor:pointer}.mc-tree-option>.mc-pseudo-checkbox,.mc-tree-option>.mc-checkbox{margin-right:var(--mc-tree-size-icon-padding, 8px)}.mc-tree-option .mc-option-action{display:none}.mc-tree-option:not([disabled]):hover .mc-option-action,.mc-tree-option:not([disabled]).mc-focused .mc-option-action,.mc-tree-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}\n"], components: [{ type: i1.McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: ["state", "disabled"] }], directives: [{ type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.7", ngImport: i0, type: McTreeOption, decorators: [{
|
194
|
+
type: Component,
|
195
|
+
args: [{ selector: 'mc-tree-option', exportAs: 'mcTreeOption', host: {
|
196
|
+
class: 'mc-tree-option',
|
197
|
+
'[class.mc-selected]': 'selected',
|
198
|
+
'[class.mc-focused]': 'hasFocus',
|
199
|
+
'[class.mc-action-button-focused]': 'actionButton?.active',
|
200
|
+
'[attr.id]': 'id',
|
201
|
+
'[attr.tabindex]': '-1',
|
202
|
+
'[attr.disabled]': 'disabled || null',
|
203
|
+
'(focusin)': 'focus()',
|
204
|
+
'(blur)': 'blur()',
|
205
|
+
'(click)': 'selectViaInteraction($event)',
|
206
|
+
'(keydown)': 'onKeydown($event)'
|
207
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
208
|
+
{ provide: McTreeNode, useExisting: McTreeOption },
|
209
|
+
{ provide: MC_OPTION_ACTION_PARENT, useExisting: McTreeOption }
|
210
|
+
], template: "<ng-content select=\"mc-tree-node-toggle, [mc-tree-node-toggle], [mcTreeNodeToggle]\"></ng-content>\r\n\r\n<ng-container [ngSwitch]=\"externalPseudoCheckbox\">\r\n <ng-content *ngSwitchCase=\"true\" select=\"mc-pseudo-checkbox\"></ng-content>\r\n\r\n <ng-container *ngSwitchCase=\"false\">\r\n <mc-pseudo-checkbox\r\n *ngIf=\"showCheckbox\"\r\n [state]=\"selected ? 'checked' : 'unchecked'\"\r\n [disabled]=\"disabled\">\r\n </mc-pseudo-checkbox>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content select=\"mc-checkbox\"></ng-content>\r\n\r\n<ng-content select=\"[mc-icon]\"></ng-content>\r\n\r\n<ng-content select=\"mc-progress-spinner\"></ng-content>\r\n\r\n<span class=\"mc-option-text mc-no-select\"><ng-content></ng-content></span>\r\n\r\n<ng-content select=\"mc-option-action\"></ng-content>\r\n\r\n<div class=\"mc-option-overlay\"></div>\r\n", styles: [".mc-tree-option{box-sizing:border-box;display:flex;align-items:center;height:var(--mc-tree-size-node-height, 32px);word-wrap:break-word;border:2px solid transparent}.mc-tree-option .mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:var(--mc-tree-size-padding-right, 16px)}.mc-tree-option>.mc-icon{margin-right:var(--mc-tree-size-icon-padding, 8px);cursor:pointer}.mc-tree-option>.mc-progress-spinner{margin-right:8px}.mc-tree-option:focus{outline:none}.mc-tree-option:not([disabled]){cursor:pointer}.mc-tree-option>.mc-pseudo-checkbox,.mc-tree-option>.mc-checkbox{margin-right:var(--mc-tree-size-icon-padding, 8px)}.mc-tree-option .mc-option-action{display:none}.mc-tree-option:not([disabled]):hover .mc-option-action,.mc-tree-option:not([disabled]).mc-focused .mc-option-action,.mc-tree-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}\n"] }]
|
211
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
212
|
+
type: Inject,
|
213
|
+
args: [MC_TREE_OPTION_PARENT_COMPONENT]
|
214
|
+
}] }]; }, propDecorators: { toggleElement: [{
|
215
|
+
type: ContentChild,
|
216
|
+
args: ['mcTreeNodeToggle']
|
217
|
+
}], pseudoCheckbox: [{
|
218
|
+
type: ContentChild,
|
219
|
+
args: [McPseudoCheckbox]
|
220
|
+
}], actionButton: [{
|
221
|
+
type: ContentChild,
|
222
|
+
args: [McOptionActionComponent]
|
223
|
+
}], tooltipTrigger: [{
|
224
|
+
type: ContentChild,
|
225
|
+
args: [McTooltipTrigger]
|
226
|
+
}], dropdownTrigger: [{
|
227
|
+
type: ContentChild,
|
228
|
+
args: [McDropdownTrigger]
|
229
|
+
}], disabled: [{
|
230
|
+
type: Input
|
231
|
+
}], showCheckbox: [{
|
232
|
+
type: Input
|
233
|
+
}], onSelectionChange: [{
|
234
|
+
type: Output
|
235
|
+
}] } });
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RyZWUvdHJlZS1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvbW9zYWljL3RyZWUvdHJlZS1vcHRpb24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBRWpCLE1BQU0sRUFDTixZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLHVCQUF1QixFQUN2QixnQkFBZ0IsRUFDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQVF6Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLElBQUksY0FBYyxDQUFNLGlDQUFpQyxDQUFDLENBQUM7QUFFMUcsTUFBTSxPQUFPLGtCQUFrQjtJ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UCxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxjQUFjLEVBQUU7d0JBQ2xELEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsY0FBYyxFQUFFO3FCQUNsRTs7MEJBMkZJLE1BQU07MkJBQUMsK0JBQStCOzRDQXBGVCxhQUFhO3NCQUE5QyxZQUFZO3VCQUFDLGtCQUFrQjtnQkFFQSxjQUFjO3NCQUE3QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDUyxZQUFZO3NCQUFsRCxZQUFZO3VCQUFDLHVCQUF1QjtnQkFDTCxjQUFjO3NCQUE3QyxZQUFZO3VCQUFDLGdCQUFnQjtnQkFDRyxlQUFlO3NCQUEvQyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFpQjNCLFFBQVE7c0JBRFgsS0FBSztnQkFnQkYsWUFBWTtzQkFEZixLQUFLO2dCQVdhLGlCQUFpQjtzQkFBbkMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbmplY3QsXHJcbiAgICBJbmplY3Rpb25Ub2tlbixcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgICBBZnRlckNvbnRlbnRJbml0LFxyXG4gICAgTmdab25lLFxyXG4gICAgQ29udGVudENoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGhhc01vZGlmaWVyS2V5LCBUQUIgfSBmcm9tICdAcHRzZWN1cml0eS9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgTUNfT1BUSU9OX0FDVElPTl9QQVJFTlQsXHJcbiAgICBNY09wdGlvbkFjdGlvbkNvbXBvbmVudCxcclxuICAgIE1jUHNldWRvQ2hlY2tib3hcclxufSBmcm9tICdAcHRzZWN1cml0eS9tb3NhaWMvY29yZSc7XHJcbmltcG9ydCB7IE1jRHJvcGRvd25UcmlnZ2VyIH0gZnJvbSAnQHB0c2VjdXJpdHkvbW9zYWljL2Ryb3Bkb3duJztcclxuaW1wb3J0IHsgTWNUb29sdGlwVHJpZ2dlciB9IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy90b29sdGlwJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgTWNUcmVlTm9kZVRvZ2dsZUJhc2VEaXJlY3RpdmUgfSBmcm9tICcuL3RvZ2dsZSc7XHJcbmltcG9ydCB7IE1jVHJlZU5vZGUgfSBmcm9tICcuL3RyZWUtYmFzZSc7XHJcblxyXG5cclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5hbWluZy1jb252ZW50aW9uXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWNUcmVlT3B0aW9uRXZlbnQge1xyXG4gICAgb3B0aW9uOiBNY1RyZWVPcHRpb247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbmplY3Rpb24gdG9rZW4gdXNlZCB0byBwcm92aWRlIHRoZSBwYXJlbnQgY29tcG9uZW50IHRvIG9wdGlvbnMuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTUNfVFJFRV9PUFRJT05fUEFSRU5UX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdNQ19UUkVFX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UJyk7XHJcblxyXG5leHBvcnQgY2xhc3MgTWNUcmVlT3B0aW9uQ2hhbmdlIHtcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzb3VyY2U6IE1jVHJlZU9wdGlvbiwgcHVibGljIGlzVXNlcklucHV0ID0gZmFsc2UpIHt9XHJcbn1cclxuXHJcbmxldCB1bmlxdWVJZENvdW50ZXI6IG51bWJlciA9IDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbWMtdHJlZS1vcHRpb24nLFxyXG4gICAgZXhwb3J0QXM6ICdtY1RyZWVPcHRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtb3B0aW9uLmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdHJlZS1vcHRpb24uc2NzcyddLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgIGNsYXNzOiAnbWMtdHJlZS1vcHRpb24nLFxyXG4gICAgICAgICdbY2xhc3MubWMtc2VsZWN0ZWRdJzogJ3NlbGVjdGVkJyxcclxuICAgICAgICAnW2NsYXNzLm1jLWZvY3VzZWRdJzogJ2hhc0ZvY3VzJyxcclxuICAgICAgICAnW2NsYXNzLm1jLWFjdGlvbi1idXR0b24tZm9jdXNlZF0nOiAnYWN0aW9uQnV0dG9uPy5hY3RpdmUnLFxyXG5cclxuICAgICAgICAnW2F0dHIuaWRdJzogJ2lkJyxcclxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJy0xJyxcclxuICAgICAgICAnW2F0dHIuZGlzYWJsZWRdJzogJ2Rpc2FibGVkIHx8IG51bGwnLFxyXG5cclxuICAgICAgICAnKGZvY3VzaW4pJzogJ2ZvY3VzKCknLFxyXG4gICAgICAgICcoYmx1ciknOiAnYmx1cigpJyxcclxuXHJcbiAgICAgICAgJyhjbGljayknOiAnc2VsZWN0VmlhSW50ZXJhY3Rpb24oJGV2ZW50KScsXHJcbiAgICAgICAgJyhrZXlkb3duKSc6ICdvbktleWRvd24oJGV2ZW50KSdcclxuICAgIH0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IE1jVHJlZU5vZGUsIHVzZUV4aXN0aW5nOiBNY1RyZWVPcHRpb24gfSxcclxuICAgICAgICB7IHByb3ZpZGU6IE1DX09QVElPTl9BQ1RJT05fUEFSRU5ULCB1c2VFeGlzdGluZzogTWNUcmVlT3B0aW9uIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1jVHJlZU9wdGlvbiBleHRlbmRzIE1jVHJlZU5vZGU8TWNUcmVlT3B0aW9uPiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG4gICAgcmVhZG9ubHkgb25Gb2N1cyA9IG5ldyBTdWJqZWN0PE1jVHJlZU9wdGlvbkV2ZW50PigpO1xyXG5cclxuICAgIHJlYWRvbmx5IG9uQmx1ciA9IG5ldyBTdWJqZWN0PE1jVHJlZU9wdGlvbkV2ZW50PigpO1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ21jVHJlZU5vZGVUb2dnbGUnKSB0b2dnbGVFbGVtZW50OiBNY1RyZWVOb2RlVG9nZ2xlQmFzZURpcmVjdGl2ZTxNY1RyZWVPcHRpb24+O1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoTWNQc2V1ZG9DaGVja2JveCkgcHNldWRvQ2hlY2tib3g6IE1jUHNldWRvQ2hlY2tib3g7XHJcbiAgICBAQ29udGVudENoaWxkKE1jT3B0aW9uQWN0aW9uQ29tcG9uZW50KSBhY3Rpb25CdXR0b246IE1jT3B0aW9uQWN0aW9uQ29tcG9uZW50O1xyXG4gICAgQENvbnRlbnRDaGlsZChNY1Rvb2x0aXBUcmlnZ2VyKSB0b29sdGlwVHJpZ2dlcjogTWNUb29sdGlwVHJpZ2dlcjtcclxuICAgIEBDb250ZW50Q2hpbGQoTWNEcm9wZG93blRyaWdnZXIpIGRyb3Bkb3duVHJpZ2dlcjogTWNEcm9wZG93blRyaWdnZXI7XHJcblxyXG4gICAgZ2V0IGV4dGVybmFsUHNldWRvQ2hlY2tib3goKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5wc2V1ZG9DaGVja2JveDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3ZhbHVlOiBhbnk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBkaXNhYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgdGhpcy50cmVlIS5kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLl9kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IG5ld1ZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2hvd0NoZWNrYm94KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93Q2hlY2tib3ggIT09IHVuZGVmaW5lZCA/IHRoaXMuX3Nob3dDaGVja2JveCA6IHRoaXMudHJlZS5zaG93Q2hlY2tib3g7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHNob3dDaGVja2JveCh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fc2hvd0NoZWNrYm94ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zaG93Q2hlY2tib3g6IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IG9uU2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNY1RyZWVPcHRpb25DaGFuZ2U+KCk7XHJcblxyXG4gICAgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgc2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKGlzU2VsZWN0ZWQgIT09IHRoaXMuX3NlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0ZWQoaXNTZWxlY3RlZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2lkID0gYG1jLXRyZWUtb3B0aW9uLSR7dW5pcXVlSWRDb3VudGVyKyt9YDtcclxuXHJcbiAgICBnZXQgdmlld1ZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgLy8gVE9ETzogQWRkIGlucHV0IHByb3BlcnR5IGFsdGVybmF0aXZlIGZvciBub2RlIGVudnMuXHJcbiAgICAgICAgcmV0dXJuICh0aGlzLmdldEhvc3RFbGVtZW50KCkudGV4dENvbnRlbnQgfHwgJycpLnRyaW0oKTtcclxuICAgIH1cclxuXHJcbiAgICBoYXNGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGdldCBpc0V4cGFuZGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLnRvZ2dsZUVsZW1lbnQ/LmRpc2FibGVkICYmIHRoaXMudHJlZS50cmVlQ29udHJvbC5pc0V4cGFuZGFibGUodGhpcy5kYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgQEluamVjdChNQ19UUkVFX09QVElPTl9QQVJFTlRfQ09NUE9ORU5UKSBwdWJsaWMgdHJlZTogYW55XHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCB0cmVlKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudHJlZS50cmVlQ29udHJvbC5nZXRWYWx1ZSh0aGlzLmRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRvZ2dsZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkID0gIXRoaXMuc2VsZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0U2VsZWN0ZWQoc2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQgPT09IHNlbGVjdGVkIHx8ICF0aGlzLnRyZWUuc2VsZWN0aW9uTW9kZWwpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkID0gc2VsZWN0ZWQ7XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnRyZWUuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KHRoaXMuZGF0YSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50cmVlLnNlbGVjdGlvbk1vZGVsLmRlc2VsZWN0KHRoaXMuZGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvY3VzKGZvY3VzT3JpZ2luPzogRm9jdXNPcmlnaW4pIHtcclxuICAgICAgICBpZiAoZm9jdXNPcmlnaW4gPT09ICdwcm9ncmFtJykgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5hY3Rpb25CdXR0b24/Lmhhc0ZvY3VzKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaGFzRm9jdXMpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkZvY3VzLm5leHQoeyBvcHRpb246IHRoaXMgfSk7XHJcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNGb2N1cyA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJsdXIoKTogdm9pZCB7XHJcbiAgICAgICAgLy8gV2hlbiBhbmltYXRpb25zIGFyZSBlbmFibGVkLCBBbmd1bGFyIG1heSBlbmQgdXAgcmVtb3ZpbmcgdGhlIG9wdGlvbiBmcm9tIHRoZSBET00gYSBsaXR0bGVcclxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdXN1YWwsIGNhdXNpbmcgaXQgdG8gYmUgYmx1cnJlZCBhbmQgdGhyb3dpbmcgb2ZmIHRoZSBsb2dpYyBpbiB0aGUgdHJlZVxyXG4gICAgICAgIC8vIHRoYXQgbW92ZXMgZm9jdXMgbm90IHRoZSBuZXh0IGl0ZW0uIFRvIHdvcmsgYXJvdW5kIHRoZSBpc3N1ZSwgd2UgZGVmZXIgbWFya2luZyB0aGUgb3B0aW9uXHJcbiAgICAgICAgLy8gYXMgbm90IGZvY3VzZWQgdW50aWwgdGhlIG5leHQgdGltZSB0aGUgem9uZSBzdGFiaWxpemVzLlxyXG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXHJcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9uQnV0dG9uPy5oYXNGb2N1cykgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkJsdXIubmV4dCh7IG9wdGlvbjogdGhpcyB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIZWlnaHQoKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBjbGllbnRSZWN0cyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldENsaWVudFJlY3RzKCk7XHJcblxyXG4gICAgICAgIGlmIChjbGllbnRSZWN0cy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNsaWVudFJlY3RzWzBdLmhlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdChzZXRGb2N1cyA9IHRydWUpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWQpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgIHRoaXMuX3NlbGVjdGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHNldEZvY3VzICYmICF0aGlzLmhhc0ZvY3VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICBkZXNlbGVjdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGVkKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5ZG93bigkZXZlbnQpIHtcclxuICAgICAgICBpZiAoIXRoaXMuYWN0aW9uQnV0dG9uKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICBpZiAoJGV2ZW50LmtleUNvZGUgPT09IFRBQiAmJiAhJGV2ZW50LnNoaWZ0S2V5ICYmICF0aGlzLmFjdGlvbkJ1dHRvbi5oYXNGb2N1cykge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbi5mb2N1cygpO1xyXG5cclxuICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFZpYUludGVyYWN0aW9uKCRldmVudD86IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCh0cnVlKTtcclxuXHJcbiAgICAgICAgY29uc3Qgc2hpZnRLZXkgPSAkZXZlbnQgPyBoYXNNb2RpZmllcktleSgkZXZlbnQsICdzaGlmdEtleScpIDogZmFsc2U7XHJcbiAgICAgICAgY29uc3QgY3RybEtleSA9ICRldmVudCA/IGhhc01vZGlmaWVyS2V5KCRldmVudCwgJ2N0cmxLZXknKSA6IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLnRyZWUuc2V0U2VsZWN0ZWRPcHRpb25zQnlDbGljayh0aGlzLCBzaGlmdEtleSwgY3RybEtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KGlzVXNlcklucHV0ID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlLmVtaXQobmV3IE1jVHJlZU9wdGlvbkNoYW5nZSh0aGlzLCBpc1VzZXJJbnB1dCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbWFya0ZvckNoZWNrKCkge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwibWMtdHJlZS1ub2RlLXRvZ2dsZSwgW21jLXRyZWUtbm9kZS10b2dnbGVdLCBbbWNUcmVlTm9kZVRvZ2dsZV1cIj48L25nLWNvbnRlbnQ+XHJcblxyXG48bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJleHRlcm5hbFBzZXVkb0NoZWNrYm94XCI+XHJcbiAgICA8bmctY29udGVudCAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIHNlbGVjdD1cIm1jLXBzZXVkby1jaGVja2JveFwiPjwvbmctY29udGVudD5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiPlxyXG4gICAgICAgIDxtYy1wc2V1ZG8tY2hlY2tib3hcclxuICAgICAgICAgICAgKm5nSWY9XCJzaG93Q2hlY2tib3hcIlxyXG4gICAgICAgICAgICBbc3RhdGVdPVwic2VsZWN0ZWQgPyAnY2hlY2tlZCcgOiAndW5jaGVja2VkJ1wiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgIDwvbWMtcHNldWRvLWNoZWNrYm94PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwibWMtY2hlY2tib3hcIj48L25nLWNvbnRlbnQ+XHJcblxyXG48bmctY29udGVudCBzZWxlY3Q9XCJbbWMtaWNvbl1cIj48L25nLWNvbnRlbnQ+XHJcblxyXG48bmctY29udGVudCBzZWxlY3Q9XCJtYy1wcm9ncmVzcy1zcGlubmVyXCI+PC9uZy1jb250ZW50PlxyXG5cclxuPHNwYW4gY2xhc3M9XCJtYy1vcHRpb24tdGV4dCBtYy1uby1zZWxlY3RcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxyXG5cclxuPG5nLWNvbnRlbnQgc2VsZWN0PVwibWMtb3B0aW9uLWFjdGlvblwiPjwvbmctY29udGVudD5cclxuXHJcbjxkaXYgY2xhc3M9XCJtYy1vcHRpb24tb3ZlcmxheVwiPjwvZGl2PlxyXG4iXX0=
|