@angular/material 19.0.0-next.0 → 19.0.0-next.2
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/_index.scss +4 -5
- package/button/_button-base.scss +2 -4
- package/button/index.d.ts +2 -10
- package/checkbox/_checkbox-common.scss +7 -7
- package/checkbox/index.d.ts +0 -7
- package/chips/index.d.ts +1 -10
- package/core/_core.scss +9 -7
- package/core/focus-indicators/_private.scss +20 -81
- package/core/index.d.ts +8 -10
- package/core/selection/pseudo-checkbox/_pseudo-checkbox-theme.scss +5 -4
- package/core/style/_elevation.scss +1 -1
- package/core/style/_list-common.scss +2 -2
- package/core/style/_menu-common.scss +1 -0
- package/core/theming/_palettes.scss +132 -45
- package/core/tokens/_m3-system.scss +228 -0
- package/core/tokens/_m3-tokens.scss +8 -149
- package/core/tokens/_token-utils.scss +13 -12
- package/core/tokens/m2/mat/_datepicker.scss +1 -1
- package/core/tokens/m3/mat/_datepicker.scss +2 -2
- package/core/tokens/m3/mat/_sidenav.scss +0 -1
- package/dialog/index.d.ts +2 -2
- package/fesm2022/autocomplete.mjs +2 -2
- package/fesm2022/autocomplete.mjs.map +1 -1
- package/fesm2022/badge.mjs +7 -20
- package/fesm2022/badge.mjs.map +1 -1
- package/fesm2022/bottom-sheet.mjs +2 -2
- package/fesm2022/bottom-sheet.mjs.map +1 -1
- package/fesm2022/button-toggle.mjs +2 -2
- package/fesm2022/button-toggle.mjs.map +1 -1
- package/fesm2022/button.mjs +16 -27
- package/fesm2022/button.mjs.map +1 -1
- package/fesm2022/card.mjs +2 -2
- package/fesm2022/card.mjs.map +1 -1
- package/fesm2022/checkbox.mjs +2 -5
- package/fesm2022/checkbox.mjs.map +1 -1
- package/fesm2022/chips.mjs +8 -19
- package/fesm2022/chips.mjs.map +1 -1
- package/fesm2022/core.mjs +64 -40
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/datepicker.mjs +8 -8
- package/fesm2022/datepicker.mjs.map +1 -1
- package/fesm2022/dialog.mjs +5 -5
- package/fesm2022/dialog.mjs.map +1 -1
- package/fesm2022/divider.mjs +2 -2
- package/fesm2022/divider.mjs.map +1 -1
- package/fesm2022/expansion.mjs +4 -4
- package/fesm2022/expansion.mjs.map +1 -1
- package/fesm2022/form-field.mjs +2 -2
- package/fesm2022/form-field.mjs.map +1 -1
- package/fesm2022/icon.mjs +4 -5
- package/fesm2022/icon.mjs.map +1 -1
- package/fesm2022/input/testing.mjs +7 -1
- package/fesm2022/input/testing.mjs.map +1 -1
- package/fesm2022/input.mjs +43 -9
- package/fesm2022/input.mjs.map +1 -1
- package/fesm2022/list.mjs +14 -14
- package/fesm2022/list.mjs.map +1 -1
- package/fesm2022/menu.mjs +4 -4
- package/fesm2022/menu.mjs.map +1 -1
- package/fesm2022/paginator.mjs +2 -2
- package/fesm2022/paginator.mjs.map +1 -1
- package/fesm2022/progress-bar.mjs +2 -2
- package/fesm2022/progress-bar.mjs.map +1 -1
- package/fesm2022/progress-spinner.mjs +2 -2
- package/fesm2022/progress-spinner.mjs.map +1 -1
- package/fesm2022/radio.mjs +2 -2
- package/fesm2022/radio.mjs.map +1 -1
- package/fesm2022/select.mjs +6 -6
- package/fesm2022/select.mjs.map +1 -1
- package/fesm2022/sidenav.mjs +4 -4
- package/fesm2022/sidenav.mjs.map +1 -1
- package/fesm2022/slide-toggle.mjs +2 -2
- package/fesm2022/slide-toggle.mjs.map +1 -1
- package/fesm2022/slider.mjs +4 -4
- package/fesm2022/slider.mjs.map +1 -1
- package/fesm2022/snack-bar.mjs +2 -2
- package/fesm2022/snack-bar.mjs.map +1 -1
- package/fesm2022/stepper.mjs +4 -4
- package/fesm2022/stepper.mjs.map +1 -1
- package/fesm2022/table.mjs +2 -2
- package/fesm2022/table.mjs.map +1 -1
- package/fesm2022/tabs.mjs +9 -9
- package/fesm2022/tabs.mjs.map +1 -1
- package/fesm2022/toolbar.mjs +2 -2
- package/fesm2022/toolbar.mjs.map +1 -1
- package/fesm2022/tooltip.mjs +16 -4
- package/fesm2022/tooltip.mjs.map +1 -1
- package/fesm2022/tree.mjs +2 -2
- package/fesm2022/tree.mjs.map +1 -1
- package/form-field/_mdc-text-field-structure.scss +6 -0
- package/input/index.d.ts +18 -1
- package/package.json +2 -146
- package/prebuilt-themes/azure-blue.css +1 -1
- package/prebuilt-themes/cyan-orange.css +1 -1
- package/prebuilt-themes/deeppurple-amber.css +1 -1
- package/prebuilt-themes/indigo-pink.css +1 -1
- package/prebuilt-themes/magenta-violet.css +1 -1
- package/prebuilt-themes/pink-bluegrey.css +1 -1
- package/prebuilt-themes/purple-green.css +1 -1
- package/prebuilt-themes/rose-red.css +1 -1
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.mjs +1 -1
- package/select/index.d.ts +2 -2
- package/slide-toggle/_slide-toggle-theme.scss +8 -6
- package/tabs/_tabs-common.scss +12 -10
- package/core/focus-indicators/_focus-indicators-theme.scss +0 -11
- package/core/focus-indicators/_focus-indicators.scss +0 -6
- package/esm2022/autocomplete/animations.mjs +0 -24
- package/esm2022/autocomplete/autocomplete-origin.mjs +0 -31
- package/esm2022/autocomplete/autocomplete-trigger.mjs +0 -902
- package/esm2022/autocomplete/autocomplete.mjs +0 -238
- package/esm2022/autocomplete/autocomplete_public_index.mjs +0 -5
- package/esm2022/autocomplete/index.mjs +0 -9
- package/esm2022/autocomplete/module.mjs +0 -61
- package/esm2022/autocomplete/public-api.mjs +0 -14
- package/esm2022/autocomplete/testing/autocomplete-harness-filters.mjs +0 -9
- package/esm2022/autocomplete/testing/autocomplete-harness.mjs +0 -105
- package/esm2022/autocomplete/testing/index.mjs +0 -9
- package/esm2022/autocomplete/testing/public-api.mjs +0 -10
- package/esm2022/badge/badge-module.mjs +0 -27
- package/esm2022/badge/badge.mjs +0 -301
- package/esm2022/badge/badge_public_index.mjs +0 -5
- package/esm2022/badge/index.mjs +0 -9
- package/esm2022/badge/public-api.mjs +0 -10
- package/esm2022/badge/testing/badge-harness-filters.mjs +0 -9
- package/esm2022/badge/testing/badge-harness.mjs +0 -71
- package/esm2022/badge/testing/index.mjs +0 -9
- package/esm2022/badge/testing/public-api.mjs +0 -10
- package/esm2022/bottom-sheet/bottom-sheet-animations.mjs +0 -26
- package/esm2022/bottom-sheet/bottom-sheet-config.mjs +0 -48
- package/esm2022/bottom-sheet/bottom-sheet-container.mjs +0 -85
- package/esm2022/bottom-sheet/bottom-sheet-module.mjs +0 -28
- package/esm2022/bottom-sheet/bottom-sheet-ref.mjs +0 -104
- package/esm2022/bottom-sheet/bottom-sheet.mjs +0 -115
- package/esm2022/bottom-sheet/bottom-sheet_public_index.mjs +0 -5
- package/esm2022/bottom-sheet/index.mjs +0 -9
- package/esm2022/bottom-sheet/public-api.mjs +0 -14
- package/esm2022/bottom-sheet/testing/bottom-sheet-harness-filters.mjs +0 -9
- package/esm2022/bottom-sheet/testing/bottom-sheet-harness.mjs +0 -35
- package/esm2022/bottom-sheet/testing/index.mjs +0 -9
- package/esm2022/bottom-sheet/testing/public-api.mjs +0 -10
- package/esm2022/button/button-base.mjs +0 -230
- package/esm2022/button/button.mjs +0 -67
- package/esm2022/button/button_public_index.mjs +0 -5
- package/esm2022/button/fab.mjs +0 -166
- package/esm2022/button/icon-button.mjs +0 -56
- package/esm2022/button/index.mjs +0 -9
- package/esm2022/button/module.mjs +0 -65
- package/esm2022/button/public-api.mjs +0 -13
- package/esm2022/button/testing/button-harness-filters.mjs +0 -9
- package/esm2022/button/testing/button-harness.mjs +0 -80
- package/esm2022/button/testing/index.mjs +0 -9
- package/esm2022/button/testing/public-api.mjs +0 -10
- package/esm2022/button-toggle/button-toggle-module.mjs +0 -24
- package/esm2022/button-toggle/button-toggle.mjs +0 -651
- package/esm2022/button-toggle/button-toggle_public_index.mjs +0 -5
- package/esm2022/button-toggle/index.mjs +0 -9
- package/esm2022/button-toggle/public-api.mjs +0 -10
- package/esm2022/button-toggle/testing/button-toggle-group-harness-filters.mjs +0 -9
- package/esm2022/button-toggle/testing/button-toggle-group-harness.mjs +0 -47
- package/esm2022/button-toggle/testing/button-toggle-harness-filters.mjs +0 -9
- package/esm2022/button-toggle/testing/button-toggle-harness.mjs +0 -105
- package/esm2022/button-toggle/testing/index.mjs +0 -9
- package/esm2022/button-toggle/testing/public-api.mjs +0 -12
- package/esm2022/card/card.mjs +0 -273
- package/esm2022/card/card_public_index.mjs +0 -5
- package/esm2022/card/index.mjs +0 -9
- package/esm2022/card/module.mjs +0 -67
- package/esm2022/card/public-api.mjs +0 -10
- package/esm2022/card/testing/card-harness-filters.mjs +0 -9
- package/esm2022/card/testing/card-harness.mjs +0 -50
- package/esm2022/card/testing/index.mjs +0 -9
- package/esm2022/card/testing/public-api.mjs +0 -10
- package/esm2022/checkbox/checkbox-config.mjs +0 -22
- package/esm2022/checkbox/checkbox-required-validator.mjs +0 -41
- package/esm2022/checkbox/checkbox.mjs +0 -443
- package/esm2022/checkbox/checkbox_public_index.mjs +0 -5
- package/esm2022/checkbox/index.mjs +0 -9
- package/esm2022/checkbox/module.mjs +0 -41
- package/esm2022/checkbox/public-api.mjs +0 -12
- package/esm2022/checkbox/testing/checkbox-harness-filters.mjs +0 -9
- package/esm2022/checkbox/testing/checkbox-harness.mjs +0 -138
- package/esm2022/checkbox/testing/index.mjs +0 -9
- package/esm2022/checkbox/testing/public-api.mjs +0 -9
- package/esm2022/chips/chip-action.mjs +0 -113
- package/esm2022/chips/chip-edit-input.mjs +0 -61
- package/esm2022/chips/chip-grid.mjs +0 -420
- package/esm2022/chips/chip-icons.mjs +0 -107
- package/esm2022/chips/chip-input.mjs +0 -192
- package/esm2022/chips/chip-listbox.mjs +0 -369
- package/esm2022/chips/chip-option.mjs +0 -190
- package/esm2022/chips/chip-row.mjs +0 -173
- package/esm2022/chips/chip-set.mjs +0 -283
- package/esm2022/chips/chip-text-control.mjs +0 -9
- package/esm2022/chips/chip.mjs +0 -322
- package/esm2022/chips/chips_public_index.mjs +0 -5
- package/esm2022/chips/index.mjs +0 -9
- package/esm2022/chips/module.mjs +0 -85
- package/esm2022/chips/public-api.mjs +0 -20
- package/esm2022/chips/testing/chip-avatar-harness.mjs +0 -22
- package/esm2022/chips/testing/chip-edit-input-harness.mjs +0 -33
- package/esm2022/chips/testing/chip-grid-harness.mjs +0 -45
- package/esm2022/chips/testing/chip-harness-filters.mjs +0 -9
- package/esm2022/chips/testing/chip-harness.mjs +0 -62
- package/esm2022/chips/testing/chip-input-harness.mjs +0 -85
- package/esm2022/chips/testing/chip-listbox-harness.mjs +0 -61
- package/esm2022/chips/testing/chip-option-harness.mjs +0 -45
- package/esm2022/chips/testing/chip-remove-harness.mjs +0 -26
- package/esm2022/chips/testing/chip-row-harness.mjs +0 -40
- package/esm2022/chips/testing/chip-set-harness.mjs +0 -26
- package/esm2022/chips/testing/index.mjs +0 -9
- package/esm2022/chips/testing/public-api.mjs +0 -19
- package/esm2022/chips/tokens.mjs +0 -39
- package/esm2022/core/animation/animation.mjs +0 -21
- package/esm2022/core/common-behaviors/color.mjs +0 -33
- package/esm2022/core/common-behaviors/common-module.mjs +0 -127
- package/esm2022/core/common-behaviors/constructor.mjs +0 -9
- package/esm2022/core/common-behaviors/disable-ripple.mjs +0 -24
- package/esm2022/core/common-behaviors/disabled.mjs +0 -23
- package/esm2022/core/common-behaviors/error-state.mjs +0 -66
- package/esm2022/core/common-behaviors/index.mjs +0 -15
- package/esm2022/core/common-behaviors/initialized.mjs +0 -62
- package/esm2022/core/common-behaviors/tabindex.mjs +0 -25
- package/esm2022/core/core_public_index.mjs +0 -5
- package/esm2022/core/datetime/date-adapter.mjs +0 -109
- package/esm2022/core/datetime/date-formats.mjs +0 -10
- package/esm2022/core/datetime/index.mjs +0 -46
- package/esm2022/core/datetime/native-date-adapter.mjs +0 -221
- package/esm2022/core/datetime/native-date-formats.mjs +0 -19
- package/esm2022/core/error/error-options.mjs +0 -33
- package/esm2022/core/index.mjs +0 -9
- package/esm2022/core/internal-form-field/internal-form-field.mjs +0 -29
- package/esm2022/core/line/line.mjs +0 -64
- package/esm2022/core/option/index.mjs +0 -30
- package/esm2022/core/option/optgroup.mjs +0 -71
- package/esm2022/core/option/option-parent.mjs +0 -13
- package/esm2022/core/option/option.mjs +0 -283
- package/esm2022/core/private/index.mjs +0 -9
- package/esm2022/core/private/ripple-loader.mjs +0 -160
- package/esm2022/core/public-api.mjs +0 -19
- package/esm2022/core/ripple/index.mjs +0 -27
- package/esm2022/core/ripple/ripple-event-manager.mjs +0 -69
- package/esm2022/core/ripple/ripple-ref.mjs +0 -39
- package/esm2022/core/ripple/ripple-renderer.mjs +0 -354
- package/esm2022/core/ripple/ripple.mjs +0 -156
- package/esm2022/core/selection/index.mjs +0 -10
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox-module.mjs +0 -24
- package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +0 -62
- package/esm2022/core/testing/index.mjs +0 -9
- package/esm2022/core/testing/optgroup-harness-filters.mjs +0 -9
- package/esm2022/core/testing/optgroup-harness.mjs +0 -43
- package/esm2022/core/testing/option-harness-filters.mjs +0 -9
- package/esm2022/core/testing/option-harness.mjs +0 -53
- package/esm2022/core/testing/public-api.mjs +0 -12
- package/esm2022/core/version.mjs +0 -11
- package/esm2022/datepicker/aria-accessible-name.mjs +0 -159
- package/esm2022/datepicker/calendar-body.mjs +0 -509
- package/esm2022/datepicker/calendar.mjs +0 -426
- package/esm2022/datepicker/date-range-input-parts.mjs +0 -372
- package/esm2022/datepicker/date-range-input.mjs +0 -369
- package/esm2022/datepicker/date-range-picker.mjs +0 -51
- package/esm2022/datepicker/date-range-selection-strategy.mjs +0 -97
- package/esm2022/datepicker/date-selection-model.mjs +0 -188
- package/esm2022/datepicker/datepicker-actions.mjs +0 -91
- package/esm2022/datepicker/datepicker-animations.mjs +0 -35
- package/esm2022/datepicker/datepicker-base.mjs +0 -609
- package/esm2022/datepicker/datepicker-errors.mjs +0 -14
- package/esm2022/datepicker/datepicker-input-base.mjs +0 -311
- package/esm2022/datepicker/datepicker-input.mjs +0 -200
- package/esm2022/datepicker/datepicker-intl.mjs +0 -69
- package/esm2022/datepicker/datepicker-module.mjs +0 -138
- package/esm2022/datepicker/datepicker-toggle.mjs +0 -113
- package/esm2022/datepicker/datepicker.mjs +0 -38
- package/esm2022/datepicker/datepicker_public_index.mjs +0 -5
- package/esm2022/datepicker/index.mjs +0 -9
- package/esm2022/datepicker/month-view.mjs +0 -460
- package/esm2022/datepicker/multi-year-view.mjs +0 -330
- package/esm2022/datepicker/public-api.mjs +0 -27
- package/esm2022/datepicker/testing/calendar-cell-harness.mjs +0 -138
- package/esm2022/datepicker/testing/calendar-harness.mjs +0 -83
- package/esm2022/datepicker/testing/date-range-input-harness.mjs +0 -98
- package/esm2022/datepicker/testing/datepicker-harness-filters.mjs +0 -9
- package/esm2022/datepicker/testing/datepicker-input-harness-base.mjs +0 -81
- package/esm2022/datepicker/testing/datepicker-input-harness.mjs +0 -58
- package/esm2022/datepicker/testing/datepicker-toggle-harness.mjs +0 -41
- package/esm2022/datepicker/testing/datepicker-trigger-harness-base.mjs +0 -65
- package/esm2022/datepicker/testing/index.mjs +0 -9
- package/esm2022/datepicker/testing/public-api.mjs +0 -14
- package/esm2022/datepicker/year-view.mjs +0 -324
- package/esm2022/dialog/dialog-animations.mjs +0 -38
- package/esm2022/dialog/dialog-config.mjs +0 -59
- package/esm2022/dialog/dialog-container.mjs +0 -253
- package/esm2022/dialog/dialog-content-directives.mjs +0 -212
- package/esm2022/dialog/dialog-ref.mjs +0 -177
- package/esm2022/dialog/dialog.mjs +0 -212
- package/esm2022/dialog/dialog_public_index.mjs +0 -5
- package/esm2022/dialog/index.mjs +0 -9
- package/esm2022/dialog/module.mjs +0 -45
- package/esm2022/dialog/public-api.mjs +0 -15
- package/esm2022/dialog/testing/dialog-harness-filters.mjs +0 -9
- package/esm2022/dialog/testing/dialog-harness.mjs +0 -84
- package/esm2022/dialog/testing/dialog-opener.mjs +0 -58
- package/esm2022/dialog/testing/index.mjs +0 -10
- package/esm2022/dialog/testing/public-api.mjs +0 -10
- package/esm2022/divider/divider-module.mjs +0 -24
- package/esm2022/divider/divider.mjs +0 -48
- package/esm2022/divider/divider_public_index.mjs +0 -5
- package/esm2022/divider/index.mjs +0 -9
- package/esm2022/divider/public-api.mjs +0 -10
- package/esm2022/divider/testing/divider-harness-filters.mjs +0 -9
- package/esm2022/divider/testing/divider-harness.mjs +0 -22
- package/esm2022/divider/testing/index.mjs +0 -9
- package/esm2022/divider/testing/public-api.mjs +0 -10
- package/esm2022/expansion/accordion-base.mjs +0 -14
- package/esm2022/expansion/accordion.mjs +0 -96
- package/esm2022/expansion/expansion-animations.mjs +0 -51
- package/esm2022/expansion/expansion-module.mjs +0 -65
- package/esm2022/expansion/expansion-panel-base.mjs +0 -14
- package/esm2022/expansion/expansion-panel-content.mjs +0 -35
- package/esm2022/expansion/expansion-panel-header.mjs +0 -218
- package/esm2022/expansion/expansion-panel.mjs +0 -211
- package/esm2022/expansion/expansion_public_index.mjs +0 -5
- package/esm2022/expansion/index.mjs +0 -9
- package/esm2022/expansion/public-api.mjs +0 -16
- package/esm2022/expansion/testing/accordion-harness.mjs +0 -31
- package/esm2022/expansion/testing/expansion-harness-filters.mjs +0 -9
- package/esm2022/expansion/testing/expansion-harness.mjs +0 -128
- package/esm2022/expansion/testing/index.mjs +0 -9
- package/esm2022/expansion/testing/public-api.mjs +0 -11
- package/esm2022/form-field/directives/error.mjs +0 -48
- package/esm2022/form-field/directives/floating-label.mjs +0 -135
- package/esm2022/form-field/directives/hint.mjs +0 -40
- package/esm2022/form-field/directives/label.mjs +0 -22
- package/esm2022/form-field/directives/line-ripple.mjs +0 -60
- package/esm2022/form-field/directives/notched-outline.mjs +0 -66
- package/esm2022/form-field/directives/prefix.mjs +0 -38
- package/esm2022/form-field/directives/suffix.mjs +0 -38
- package/esm2022/form-field/form-field-animations.mjs +0 -24
- package/esm2022/form-field/form-field-control.mjs +0 -11
- package/esm2022/form-field/form-field-errors.mjs +0 -20
- package/esm2022/form-field/form-field.mjs +0 -620
- package/esm2022/form-field/form-field_public_index.mjs +0 -5
- package/esm2022/form-field/index.mjs +0 -9
- package/esm2022/form-field/module.mjs +0 -51
- package/esm2022/form-field/public-api.mjs +0 -18
- package/esm2022/form-field/testing/control/form-field-control-harness.mjs +0 -15
- package/esm2022/form-field/testing/control/index.mjs +0 -9
- package/esm2022/form-field/testing/error-harness.mjs +0 -29
- package/esm2022/form-field/testing/form-field-harness-filters.mjs +0 -9
- package/esm2022/form-field/testing/form-field-harness.mjs +0 -179
- package/esm2022/form-field/testing/index.mjs +0 -9
- package/esm2022/form-field/testing/public-api.mjs +0 -15
- package/esm2022/grid-list/grid-list-base.mjs +0 -14
- package/esm2022/grid-list/grid-list-module.mjs +0 -59
- package/esm2022/grid-list/grid-list.mjs +0 -146
- package/esm2022/grid-list/grid-list_public_index.mjs +0 -5
- package/esm2022/grid-list/grid-tile.mjs +0 -128
- package/esm2022/grid-list/index.mjs +0 -9
- package/esm2022/grid-list/public-api.mjs +0 -14
- package/esm2022/grid-list/testing/grid-list-harness-filters.mjs +0 -9
- package/esm2022/grid-list/testing/grid-list-harness.mjs +0 -76
- package/esm2022/grid-list/testing/grid-tile-harness.mjs +0 -71
- package/esm2022/grid-list/testing/index.mjs +0 -9
- package/esm2022/grid-list/testing/public-api.mjs +0 -11
- package/esm2022/grid-list/tile-coordinator.mjs +0 -145
- package/esm2022/grid-list/tile-styler.mjs +0 -231
- package/esm2022/icon/fake-svgs.mjs +0 -62
- package/esm2022/icon/icon-module.mjs +0 -24
- package/esm2022/icon/icon-registry.mjs +0 -593
- package/esm2022/icon/icon.mjs +0 -379
- package/esm2022/icon/icon_public_index.mjs +0 -5
- package/esm2022/icon/index.mjs +0 -9
- package/esm2022/icon/public-api.mjs +0 -11
- package/esm2022/icon/testing/fake-icon-registry.mjs +0 -92
- package/esm2022/icon/testing/icon-harness-filters.mjs +0 -14
- package/esm2022/icon/testing/icon-harness.mjs +0 -60
- package/esm2022/icon/testing/index.mjs +0 -9
- package/esm2022/icon/testing/public-api.mjs +0 -11
- package/esm2022/icon/testing/testing_public_index.mjs +0 -5
- package/esm2022/icon/trusted-types.mjs +0 -43
- package/esm2022/index.mjs +0 -14
- package/esm2022/input/index.mjs +0 -9
- package/esm2022/input/input-errors.mjs +0 -12
- package/esm2022/input/input-value-accessor.mjs +0 -16
- package/esm2022/input/input.mjs +0 -490
- package/esm2022/input/input_public_index.mjs +0 -5
- package/esm2022/input/module.mjs +0 -26
- package/esm2022/input/public-api.mjs +0 -14
- package/esm2022/input/testing/index.mjs +0 -9
- package/esm2022/input/testing/input-harness-filters.mjs +0 -9
- package/esm2022/input/testing/input-harness.mjs +0 -113
- package/esm2022/input/testing/native-option-harness.mjs +0 -42
- package/esm2022/input/testing/native-select-harness-filters.mjs +0 -9
- package/esm2022/input/testing/native-select-harness.mjs +0 -79
- package/esm2022/input/testing/public-api.mjs +0 -13
- package/esm2022/list/action-list.mjs +0 -31
- package/esm2022/list/index.mjs +0 -9
- package/esm2022/list/list-base.mjs +0 -284
- package/esm2022/list/list-item-sections.mjs +0 -144
- package/esm2022/list/list-module.mjs +0 -97
- package/esm2022/list/list-option-types.mjs +0 -16
- package/esm2022/list/list-option.mjs +0 -295
- package/esm2022/list/list.mjs +0 -103
- package/esm2022/list/list_public_index.mjs +0 -5
- package/esm2022/list/nav-list.mjs +0 -37
- package/esm2022/list/public-api.mjs +0 -18
- package/esm2022/list/selection-list.mjs +0 -391
- package/esm2022/list/subheader.mjs +0 -28
- package/esm2022/list/testing/action-list-harness.mjs +0 -59
- package/esm2022/list/testing/index.mjs +0 -9
- package/esm2022/list/testing/list-harness-base.mjs +0 -95
- package/esm2022/list/testing/list-harness-filters.mjs +0 -9
- package/esm2022/list/testing/list-harness.mjs +0 -41
- package/esm2022/list/testing/list-item-harness-base.mjs +0 -162
- package/esm2022/list/testing/nav-list-harness.mjs +0 -69
- package/esm2022/list/testing/public-api.mjs +0 -14
- package/esm2022/list/testing/selection-list-harness.mjs +0 -122
- package/esm2022/list/tokens.mjs +0 -11
- package/esm2022/menu/index.mjs +0 -9
- package/esm2022/menu/menu-animations.mjs +0 -61
- package/esm2022/menu/menu-content.mjs +0 -87
- package/esm2022/menu/menu-errors.mjs +0 -35
- package/esm2022/menu/menu-item.mjs +0 -148
- package/esm2022/menu/menu-panel.mjs +0 -14
- package/esm2022/menu/menu-positions.mjs +0 -9
- package/esm2022/menu/menu-trigger.mjs +0 -542
- package/esm2022/menu/menu.mjs +0 -405
- package/esm2022/menu/menu_public_index.mjs +0 -5
- package/esm2022/menu/module.mjs +0 -63
- package/esm2022/menu/public-api.mjs +0 -16
- package/esm2022/menu/testing/index.mjs +0 -9
- package/esm2022/menu/testing/menu-harness-filters.mjs +0 -9
- package/esm2022/menu/testing/menu-harness.mjs +0 -166
- package/esm2022/menu/testing/public-api.mjs +0 -10
- package/esm2022/paginator/index.mjs +0 -9
- package/esm2022/paginator/module.mjs +0 -28
- package/esm2022/paginator/paginator-intl.mjs +0 -62
- package/esm2022/paginator/paginator.mjs +0 -266
- package/esm2022/paginator/paginator_public_index.mjs +0 -5
- package/esm2022/paginator/public-api.mjs +0 -11
- package/esm2022/paginator/testing/index.mjs +0 -9
- package/esm2022/paginator/testing/paginator-harness-filters.mjs +0 -9
- package/esm2022/paginator/testing/paginator-harness.mjs +0 -98
- package/esm2022/paginator/testing/public-api.mjs +0 -10
- package/esm2022/progress-bar/index.mjs +0 -9
- package/esm2022/progress-bar/module.mjs +0 -24
- package/esm2022/progress-bar/progress-bar.mjs +0 -181
- package/esm2022/progress-bar/progress-bar_public_index.mjs +0 -5
- package/esm2022/progress-bar/public-api.mjs +0 -10
- package/esm2022/progress-bar/testing/index.mjs +0 -9
- package/esm2022/progress-bar/testing/progress-bar-harness-filters.mjs +0 -9
- package/esm2022/progress-bar/testing/progress-bar-harness.mjs +0 -33
- package/esm2022/progress-bar/testing/public-api.mjs +0 -10
- package/esm2022/progress-bar/testing/testing_public_index.mjs +0 -5
- package/esm2022/progress-spinner/index.mjs +0 -9
- package/esm2022/progress-spinner/module.mjs +0 -25
- package/esm2022/progress-spinner/progress-spinner.mjs +0 -166
- package/esm2022/progress-spinner/progress-spinner_public_index.mjs +0 -5
- package/esm2022/progress-spinner/public-api.mjs +0 -10
- package/esm2022/progress-spinner/testing/index.mjs +0 -9
- package/esm2022/progress-spinner/testing/progress-spinner-harness-filters.mjs +0 -9
- package/esm2022/progress-spinner/testing/progress-spinner-harness.mjs +0 -35
- package/esm2022/progress-spinner/testing/public-api.mjs +0 -10
- package/esm2022/progress-spinner/testing/testing_public_index.mjs +0 -5
- package/esm2022/radio/index.mjs +0 -9
- package/esm2022/radio/module.mjs +0 -25
- package/esm2022/radio/public-api.mjs +0 -10
- package/esm2022/radio/radio.mjs +0 -680
- package/esm2022/radio/radio_public_index.mjs +0 -5
- package/esm2022/radio/testing/index.mjs +0 -9
- package/esm2022/radio/testing/public-api.mjs +0 -10
- package/esm2022/radio/testing/radio-harness-filters.mjs +0 -9
- package/esm2022/radio/testing/radio-harness.mjs +0 -228
- package/esm2022/select/index.mjs +0 -9
- package/esm2022/select/module.mjs +0 -59
- package/esm2022/select/public-api.mjs +0 -15
- package/esm2022/select/select-animations.mjs +0 -38
- package/esm2022/select/select-errors.mjs +0 -35
- package/esm2022/select/select.mjs +0 -1160
- package/esm2022/select/select_public_index.mjs +0 -5
- package/esm2022/select/testing/index.mjs +0 -9
- package/esm2022/select/testing/public-api.mjs +0 -10
- package/esm2022/select/testing/select-harness-filters.mjs +0 -9
- package/esm2022/select/testing/select-harness.mjs +0 -129
- package/esm2022/sidenav/drawer-animations.mjs +0 -33
- package/esm2022/sidenav/drawer.mjs +0 -863
- package/esm2022/sidenav/index.mjs +0 -9
- package/esm2022/sidenav/public-api.mjs +0 -12
- package/esm2022/sidenav/sidenav-module.mjs +0 -60
- package/esm2022/sidenav/sidenav.mjs +0 -148
- package/esm2022/sidenav/sidenav_public_index.mjs +0 -5
- package/esm2022/sidenav/testing/drawer-container-harness.mjs +0 -36
- package/esm2022/sidenav/testing/drawer-content-harness.mjs +0 -23
- package/esm2022/sidenav/testing/drawer-harness-filters.mjs +0 -9
- package/esm2022/sidenav/testing/drawer-harness.mjs +0 -49
- package/esm2022/sidenav/testing/index.mjs +0 -9
- package/esm2022/sidenav/testing/public-api.mjs +0 -15
- package/esm2022/sidenav/testing/sidenav-container-harness.mjs +0 -36
- package/esm2022/sidenav/testing/sidenav-content-harness.mjs +0 -23
- package/esm2022/sidenav/testing/sidenav-harness.mjs +0 -28
- package/esm2022/slide-toggle/index.mjs +0 -9
- package/esm2022/slide-toggle/module.mjs +0 -41
- package/esm2022/slide-toggle/public-api.mjs +0 -12
- package/esm2022/slide-toggle/slide-toggle-config.mjs +0 -14
- package/esm2022/slide-toggle/slide-toggle-required-validator.mjs +0 -44
- package/esm2022/slide-toggle/slide-toggle.mjs +0 -273
- package/esm2022/slide-toggle/slide-toggle_public_index.mjs +0 -5
- package/esm2022/slide-toggle/testing/index.mjs +0 -9
- package/esm2022/slide-toggle/testing/public-api.mjs +0 -10
- package/esm2022/slide-toggle/testing/slide-toggle-harness-filters.mjs +0 -9
- package/esm2022/slide-toggle/testing/slide-toggle-harness.mjs +0 -110
- package/esm2022/slider/index.mjs +0 -9
- package/esm2022/slider/module.mjs +0 -39
- package/esm2022/slider/public-api.mjs +0 -13
- package/esm2022/slider/slider-input.mjs +0 -701
- package/esm2022/slider/slider-interface.mjs +0 -56
- package/esm2022/slider/slider-thumb.mjs +0 -231
- package/esm2022/slider/slider.mjs +0 -746
- package/esm2022/slider/slider_public_index.mjs +0 -5
- package/esm2022/slider/testing/index.mjs +0 -9
- package/esm2022/slider/testing/public-api.mjs +0 -11
- package/esm2022/slider/testing/slider-harness-filters.mjs +0 -7
- package/esm2022/slider/testing/slider-harness.mjs +0 -67
- package/esm2022/slider/testing/slider-thumb-harness.mjs +0 -95
- package/esm2022/snack-bar/index.mjs +0 -9
- package/esm2022/snack-bar/module.mjs +0 -47
- package/esm2022/snack-bar/public-api.mjs +0 -16
- package/esm2022/snack-bar/simple-snack-bar.mjs +0 -40
- package/esm2022/snack-bar/snack-bar-animations.mjs +0 -30
- package/esm2022/snack-bar/snack-bar-config.mjs +0 -33
- package/esm2022/snack-bar/snack-bar-container.mjs +0 -277
- package/esm2022/snack-bar/snack-bar-content.mjs +0 -55
- package/esm2022/snack-bar/snack-bar-ref.mjs +0 -89
- package/esm2022/snack-bar/snack-bar.mjs +0 -267
- package/esm2022/snack-bar/snack-bar_public_index.mjs +0 -5
- package/esm2022/snack-bar/testing/index.mjs +0 -9
- package/esm2022/snack-bar/testing/public-api.mjs +0 -10
- package/esm2022/snack-bar/testing/snack-bar-harness-filters.mjs +0 -9
- package/esm2022/snack-bar/testing/snack-bar-harness.mjs +0 -101
- package/esm2022/sort/index.mjs +0 -9
- package/esm2022/sort/public-api.mjs +0 -14
- package/esm2022/sort/sort-animations.mjs +0 -69
- package/esm2022/sort/sort-direction.mjs +0 -9
- package/esm2022/sort/sort-errors.mjs +0 -24
- package/esm2022/sort/sort-header-intl.mjs +0 -41
- package/esm2022/sort/sort-header.mjs +0 -317
- package/esm2022/sort/sort-module.mjs +0 -27
- package/esm2022/sort/sort.mjs +0 -155
- package/esm2022/sort/sort_public_index.mjs +0 -5
- package/esm2022/sort/testing/index.mjs +0 -9
- package/esm2022/sort/testing/public-api.mjs +0 -11
- package/esm2022/sort/testing/sort-harness-filters.mjs +0 -2
- package/esm2022/sort/testing/sort-harness.mjs +0 -36
- package/esm2022/sort/testing/sort-header-harness.mjs +0 -56
- package/esm2022/stepper/index.mjs +0 -9
- package/esm2022/stepper/public-api.mjs +0 -17
- package/esm2022/stepper/step-content.mjs +0 -27
- package/esm2022/stepper/step-header.mjs +0 -105
- package/esm2022/stepper/step-label.mjs +0 -22
- package/esm2022/stepper/stepper-animations.mjs +0 -47
- package/esm2022/stepper/stepper-button.mjs +0 -43
- package/esm2022/stepper/stepper-icon.mjs +0 -30
- package/esm2022/stepper/stepper-intl.mjs +0 -43
- package/esm2022/stepper/stepper-module.mjs +0 -88
- package/esm2022/stepper/stepper.mjs +0 -205
- package/esm2022/stepper/stepper_public_index.mjs +0 -5
- package/esm2022/stepper/testing/index.mjs +0 -9
- package/esm2022/stepper/testing/public-api.mjs +0 -12
- package/esm2022/stepper/testing/step-harness-filters.mjs +0 -7
- package/esm2022/stepper/testing/step-harness.mjs +0 -90
- package/esm2022/stepper/testing/stepper-button-harnesses.mjs +0 -48
- package/esm2022/stepper/testing/stepper-harness.mjs +0 -51
- package/esm2022/table/cell.mjs +0 -147
- package/esm2022/table/index.mjs +0 -9
- package/esm2022/table/module.mjs +0 -93
- package/esm2022/table/public-api.mjs +0 -14
- package/esm2022/table/row.mjs +0 -163
- package/esm2022/table/table-data-source.mjs +0 -317
- package/esm2022/table/table.mjs +0 -122
- package/esm2022/table/table_public_index.mjs +0 -5
- package/esm2022/table/testing/cell-harness.mjs +0 -77
- package/esm2022/table/testing/index.mjs +0 -9
- package/esm2022/table/testing/public-api.mjs +0 -12
- package/esm2022/table/testing/row-harness.mjs +0 -84
- package/esm2022/table/testing/table-harness-filters.mjs +0 -2
- package/esm2022/table/testing/table-harness.mjs +0 -86
- package/esm2022/table/text-column.mjs +0 -60
- package/esm2022/tabs/index.mjs +0 -9
- package/esm2022/tabs/ink-bar.mjs +0 -149
- package/esm2022/tabs/module.mjs +0 -60
- package/esm2022/tabs/paginated-tab-header.mjs +0 -539
- package/esm2022/tabs/public-api.mjs +0 -21
- package/esm2022/tabs/tab-body.mjs +0 -199
- package/esm2022/tabs/tab-config.mjs +0 -11
- package/esm2022/tabs/tab-content.mjs +0 -32
- package/esm2022/tabs/tab-group.mjs +0 -469
- package/esm2022/tabs/tab-header.mjs +0 -86
- package/esm2022/tabs/tab-label-wrapper.mjs +0 -49
- package/esm2022/tabs/tab-label.mjs +0 -44
- package/esm2022/tabs/tab-nav-bar/tab-nav-bar.mjs +0 -388
- package/esm2022/tabs/tab.mjs +0 -128
- package/esm2022/tabs/tabs-animations.mjs +0 -45
- package/esm2022/tabs/tabs_public_index.mjs +0 -5
- package/esm2022/tabs/testing/index.mjs +0 -9
- package/esm2022/tabs/testing/public-api.mjs +0 -13
- package/esm2022/tabs/testing/tab-group-harness.mjs +0 -56
- package/esm2022/tabs/testing/tab-harness-filters.mjs +0 -2
- package/esm2022/tabs/testing/tab-harness.mjs +0 -66
- package/esm2022/tabs/testing/tab-link-harness.mjs +0 -40
- package/esm2022/tabs/testing/tab-nav-bar-harness.mjs +0 -66
- package/esm2022/tabs/testing/tab-nav-panel-harness.mjs +0 -27
- package/esm2022/toolbar/index.mjs +0 -9
- package/esm2022/toolbar/public-api.mjs +0 -10
- package/esm2022/toolbar/testing/index.mjs +0 -9
- package/esm2022/toolbar/testing/public-api.mjs +0 -10
- package/esm2022/toolbar/testing/toolbar-harness-filters.mjs +0 -9
- package/esm2022/toolbar/testing/toolbar-harness.mjs +0 -44
- package/esm2022/toolbar/toolbar-module.mjs +0 -24
- package/esm2022/toolbar/toolbar.mjs +0 -84
- package/esm2022/toolbar/toolbar_public_index.mjs +0 -5
- package/esm2022/tooltip/index.mjs +0 -9
- package/esm2022/tooltip/module.mjs +0 -29
- package/esm2022/tooltip/public-api.mjs +0 -11
- package/esm2022/tooltip/testing/index.mjs +0 -9
- package/esm2022/tooltip/testing/public-api.mjs +0 -10
- package/esm2022/tooltip/testing/tooltip-harness-filters.mjs +0 -9
- package/esm2022/tooltip/testing/tooltip-harness.mjs +0 -66
- package/esm2022/tooltip/tooltip-animations.mjs +0 -24
- package/esm2022/tooltip/tooltip.mjs +0 -920
- package/esm2022/tooltip/tooltip_public_index.mjs +0 -5
- package/esm2022/tree/data-source/flat-data-source.mjs +0 -156
- package/esm2022/tree/data-source/nested-data-source.mjs +0 -38
- package/esm2022/tree/index.mjs +0 -9
- package/esm2022/tree/node.mjs +0 -220
- package/esm2022/tree/outlet.mjs +0 -46
- package/esm2022/tree/padding.mjs +0 -46
- package/esm2022/tree/public-api.mjs +0 -16
- package/esm2022/tree/testing/index.mjs +0 -9
- package/esm2022/tree/testing/node-harness.mjs +0 -73
- package/esm2022/tree/testing/public-api.mjs +0 -11
- package/esm2022/tree/testing/tree-harness-filters.mjs +0 -9
- package/esm2022/tree/testing/tree-harness.mjs +0 -123
- package/esm2022/tree/toggle.mjs +0 -27
- package/esm2022/tree/tree-module.mjs +0 -50
- package/esm2022/tree/tree.mjs +0 -34
- package/esm2022/tree/tree_public_index.mjs +0 -5
|
@@ -1,369 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { CdkMonitorFocus } from '@angular/cdk/a11y';
|
|
9
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, Inject, Input, Optional, Self, ViewEncapsulation, booleanAttribute, signal, } from '@angular/core';
|
|
10
|
-
import { ControlContainer, Validators } from '@angular/forms';
|
|
11
|
-
import { DateAdapter } from '@angular/material/core';
|
|
12
|
-
import { MAT_FORM_FIELD, MatFormFieldControl } from '@angular/material/form-field';
|
|
13
|
-
import { Subject, Subscription, merge } from 'rxjs';
|
|
14
|
-
import { MAT_DATE_RANGE_INPUT_PARENT, MatEndDate, MatStartDate, } from './date-range-input-parts';
|
|
15
|
-
import { createMissingDateImplError } from './datepicker-errors';
|
|
16
|
-
import { dateInputsHaveChanged } from './datepicker-input-base';
|
|
17
|
-
import * as i0 from "@angular/core";
|
|
18
|
-
import * as i1 from "@angular/forms";
|
|
19
|
-
import * as i2 from "@angular/material/core";
|
|
20
|
-
let nextUniqueId = 0;
|
|
21
|
-
export class MatDateRangeInput {
|
|
22
|
-
/** Current value of the range input. */
|
|
23
|
-
get value() {
|
|
24
|
-
return this._model ? this._model.selection : null;
|
|
25
|
-
}
|
|
26
|
-
/** Whether the control's label should float. */
|
|
27
|
-
get shouldLabelFloat() {
|
|
28
|
-
return this.focused || !this.empty;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Implemented as a part of `MatFormFieldControl`.
|
|
32
|
-
* Set the placeholder attribute on `matStartDate` and `matEndDate`.
|
|
33
|
-
* @docs-private
|
|
34
|
-
*/
|
|
35
|
-
get placeholder() {
|
|
36
|
-
const start = this._startInput?._getPlaceholder() || '';
|
|
37
|
-
const end = this._endInput?._getPlaceholder() || '';
|
|
38
|
-
return start || end ? `${start} ${this.separator} ${end}` : '';
|
|
39
|
-
}
|
|
40
|
-
/** The range picker that this input is associated with. */
|
|
41
|
-
get rangePicker() {
|
|
42
|
-
return this._rangePicker;
|
|
43
|
-
}
|
|
44
|
-
set rangePicker(rangePicker) {
|
|
45
|
-
if (rangePicker) {
|
|
46
|
-
this._model = rangePicker.registerInput(this);
|
|
47
|
-
this._rangePicker = rangePicker;
|
|
48
|
-
this._closedSubscription.unsubscribe();
|
|
49
|
-
this._openedSubscription.unsubscribe();
|
|
50
|
-
this._ariaOwns.set(this.rangePicker.opened ? rangePicker.id : null);
|
|
51
|
-
this._closedSubscription = rangePicker.closedStream.subscribe(() => {
|
|
52
|
-
this._startInput?._onTouched();
|
|
53
|
-
this._endInput?._onTouched();
|
|
54
|
-
this._ariaOwns.set(null);
|
|
55
|
-
});
|
|
56
|
-
this._openedSubscription = rangePicker.openedStream.subscribe(() => {
|
|
57
|
-
this._ariaOwns.set(rangePicker.id);
|
|
58
|
-
});
|
|
59
|
-
this._registerModel(this._model);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/** Whether the input is required. */
|
|
63
|
-
get required() {
|
|
64
|
-
return (this._required ??
|
|
65
|
-
(this._isTargetRequired(this) ||
|
|
66
|
-
this._isTargetRequired(this._startInput) ||
|
|
67
|
-
this._isTargetRequired(this._endInput)) ??
|
|
68
|
-
false);
|
|
69
|
-
}
|
|
70
|
-
set required(value) {
|
|
71
|
-
this._required = value;
|
|
72
|
-
}
|
|
73
|
-
/** Function that can be used to filter out dates within the date range picker. */
|
|
74
|
-
get dateFilter() {
|
|
75
|
-
return this._dateFilter;
|
|
76
|
-
}
|
|
77
|
-
set dateFilter(value) {
|
|
78
|
-
const start = this._startInput;
|
|
79
|
-
const end = this._endInput;
|
|
80
|
-
const wasMatchingStart = start && start._matchesFilter(start.value);
|
|
81
|
-
const wasMatchingEnd = end && end._matchesFilter(start.value);
|
|
82
|
-
this._dateFilter = value;
|
|
83
|
-
if (start && start._matchesFilter(start.value) !== wasMatchingStart) {
|
|
84
|
-
start._validatorOnChange();
|
|
85
|
-
}
|
|
86
|
-
if (end && end._matchesFilter(end.value) !== wasMatchingEnd) {
|
|
87
|
-
end._validatorOnChange();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/** The minimum valid date. */
|
|
91
|
-
get min() {
|
|
92
|
-
return this._min;
|
|
93
|
-
}
|
|
94
|
-
set min(value) {
|
|
95
|
-
const validValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
|
|
96
|
-
if (!this._dateAdapter.sameDate(validValue, this._min)) {
|
|
97
|
-
this._min = validValue;
|
|
98
|
-
this._revalidate();
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/** The maximum valid date. */
|
|
102
|
-
get max() {
|
|
103
|
-
return this._max;
|
|
104
|
-
}
|
|
105
|
-
set max(value) {
|
|
106
|
-
const validValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
|
|
107
|
-
if (!this._dateAdapter.sameDate(validValue, this._max)) {
|
|
108
|
-
this._max = validValue;
|
|
109
|
-
this._revalidate();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/** Whether the input is disabled. */
|
|
113
|
-
get disabled() {
|
|
114
|
-
return this._startInput && this._endInput
|
|
115
|
-
? this._startInput.disabled && this._endInput.disabled
|
|
116
|
-
: this._groupDisabled;
|
|
117
|
-
}
|
|
118
|
-
set disabled(value) {
|
|
119
|
-
if (value !== this._groupDisabled) {
|
|
120
|
-
this._groupDisabled = value;
|
|
121
|
-
this.stateChanges.next(undefined);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/** Whether the input is in an error state. */
|
|
125
|
-
get errorState() {
|
|
126
|
-
if (this._startInput && this._endInput) {
|
|
127
|
-
return this._startInput.errorState || this._endInput.errorState;
|
|
128
|
-
}
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
/** Whether the datepicker input is empty. */
|
|
132
|
-
get empty() {
|
|
133
|
-
const startEmpty = this._startInput ? this._startInput.isEmpty() : false;
|
|
134
|
-
const endEmpty = this._endInput ? this._endInput.isEmpty() : false;
|
|
135
|
-
return startEmpty && endEmpty;
|
|
136
|
-
}
|
|
137
|
-
constructor(_changeDetectorRef, _elementRef, control, _dateAdapter, _formField) {
|
|
138
|
-
this._changeDetectorRef = _changeDetectorRef;
|
|
139
|
-
this._elementRef = _elementRef;
|
|
140
|
-
this._dateAdapter = _dateAdapter;
|
|
141
|
-
this._formField = _formField;
|
|
142
|
-
this._closedSubscription = Subscription.EMPTY;
|
|
143
|
-
this._openedSubscription = Subscription.EMPTY;
|
|
144
|
-
/** Unique ID for the group. */
|
|
145
|
-
this.id = `mat-date-range-input-${nextUniqueId++}`;
|
|
146
|
-
/** Whether the control is focused. */
|
|
147
|
-
this.focused = false;
|
|
148
|
-
/** Name of the form control. */
|
|
149
|
-
this.controlType = 'mat-date-range-input';
|
|
150
|
-
/** The id of the panel owned by this input. */
|
|
151
|
-
this._ariaOwns = signal(null);
|
|
152
|
-
this._groupDisabled = false;
|
|
153
|
-
/** Value for the `aria-describedby` attribute of the inputs. */
|
|
154
|
-
this._ariaDescribedBy = null;
|
|
155
|
-
/** Separator text to be shown between the inputs. */
|
|
156
|
-
this.separator = '–';
|
|
157
|
-
/** Start of the comparison range that should be shown in the calendar. */
|
|
158
|
-
this.comparisonStart = null;
|
|
159
|
-
/** End of the comparison range that should be shown in the calendar. */
|
|
160
|
-
this.comparisonEnd = null;
|
|
161
|
-
/** Emits when the input's state has changed. */
|
|
162
|
-
this.stateChanges = new Subject();
|
|
163
|
-
/**
|
|
164
|
-
* Disable the automatic labeling to avoid issues like #27241.
|
|
165
|
-
* @docs-private
|
|
166
|
-
*/
|
|
167
|
-
this.disableAutomaticLabeling = true;
|
|
168
|
-
if (!_dateAdapter && (typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
169
|
-
throw createMissingDateImplError('DateAdapter');
|
|
170
|
-
}
|
|
171
|
-
// The datepicker module can be used both with MDC and non-MDC form fields. We have
|
|
172
|
-
// to conditionally add the MDC input class so that the range picker looks correctly.
|
|
173
|
-
if (_formField?._elementRef.nativeElement.classList.contains('mat-mdc-form-field')) {
|
|
174
|
-
_elementRef.nativeElement.classList.add('mat-mdc-input-element', 'mat-mdc-form-field-input-control', 'mdc-text-field__input');
|
|
175
|
-
}
|
|
176
|
-
// TODO(crisbeto): remove `as any` after #18206 lands.
|
|
177
|
-
this.ngControl = control;
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Implemented as a part of `MatFormFieldControl`.
|
|
181
|
-
* @docs-private
|
|
182
|
-
*/
|
|
183
|
-
setDescribedByIds(ids) {
|
|
184
|
-
this._ariaDescribedBy = ids.length ? ids.join(' ') : null;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Implemented as a part of `MatFormFieldControl`.
|
|
188
|
-
* @docs-private
|
|
189
|
-
*/
|
|
190
|
-
onContainerClick() {
|
|
191
|
-
if (!this.focused && !this.disabled) {
|
|
192
|
-
if (!this._model || !this._model.selection.start) {
|
|
193
|
-
this._startInput.focus();
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
this._endInput.focus();
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
ngAfterContentInit() {
|
|
201
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
202
|
-
if (!this._startInput) {
|
|
203
|
-
throw Error('mat-date-range-input must contain a matStartDate input');
|
|
204
|
-
}
|
|
205
|
-
if (!this._endInput) {
|
|
206
|
-
throw Error('mat-date-range-input must contain a matEndDate input');
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
if (this._model) {
|
|
210
|
-
this._registerModel(this._model);
|
|
211
|
-
}
|
|
212
|
-
// We don't need to unsubscribe from this, because we
|
|
213
|
-
// know that the input streams will be completed on destroy.
|
|
214
|
-
merge(this._startInput.stateChanges, this._endInput.stateChanges).subscribe(() => {
|
|
215
|
-
this.stateChanges.next(undefined);
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
ngOnChanges(changes) {
|
|
219
|
-
if (dateInputsHaveChanged(changes, this._dateAdapter)) {
|
|
220
|
-
this.stateChanges.next(undefined);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
ngOnDestroy() {
|
|
224
|
-
this._closedSubscription.unsubscribe();
|
|
225
|
-
this._openedSubscription.unsubscribe();
|
|
226
|
-
this.stateChanges.complete();
|
|
227
|
-
}
|
|
228
|
-
/** Gets the date at which the calendar should start. */
|
|
229
|
-
getStartValue() {
|
|
230
|
-
return this.value ? this.value.start : null;
|
|
231
|
-
}
|
|
232
|
-
/** Gets the input's theme palette. */
|
|
233
|
-
getThemePalette() {
|
|
234
|
-
return this._formField ? this._formField.color : undefined;
|
|
235
|
-
}
|
|
236
|
-
/** Gets the element to which the calendar overlay should be attached. */
|
|
237
|
-
getConnectedOverlayOrigin() {
|
|
238
|
-
return this._formField ? this._formField.getConnectedOverlayOrigin() : this._elementRef;
|
|
239
|
-
}
|
|
240
|
-
/** Gets the ID of an element that should be used a description for the calendar overlay. */
|
|
241
|
-
getOverlayLabelId() {
|
|
242
|
-
return this._formField ? this._formField.getLabelId() : null;
|
|
243
|
-
}
|
|
244
|
-
/** Gets the value that is used to mirror the state input. */
|
|
245
|
-
_getInputMirrorValue(part) {
|
|
246
|
-
const input = part === 'start' ? this._startInput : this._endInput;
|
|
247
|
-
return input ? input.getMirrorValue() : '';
|
|
248
|
-
}
|
|
249
|
-
/** Whether the input placeholders should be hidden. */
|
|
250
|
-
_shouldHidePlaceholders() {
|
|
251
|
-
return this._startInput ? !this._startInput.isEmpty() : false;
|
|
252
|
-
}
|
|
253
|
-
/** Handles the value in one of the child inputs changing. */
|
|
254
|
-
_handleChildValueChange() {
|
|
255
|
-
this.stateChanges.next(undefined);
|
|
256
|
-
this._changeDetectorRef.markForCheck();
|
|
257
|
-
}
|
|
258
|
-
/** Opens the date range picker associated with the input. */
|
|
259
|
-
_openDatepicker() {
|
|
260
|
-
if (this._rangePicker) {
|
|
261
|
-
this._rangePicker.open();
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
/** Whether the separate text should be hidden. */
|
|
265
|
-
_shouldHideSeparator() {
|
|
266
|
-
return ((!this._formField ||
|
|
267
|
-
(this._formField.getLabelId() && !this._formField._shouldLabelFloat())) &&
|
|
268
|
-
this.empty);
|
|
269
|
-
}
|
|
270
|
-
/** Gets the value for the `aria-labelledby` attribute of the inputs. */
|
|
271
|
-
_getAriaLabelledby() {
|
|
272
|
-
const formField = this._formField;
|
|
273
|
-
return formField && formField._hasFloatingLabel() ? formField._labelId : null;
|
|
274
|
-
}
|
|
275
|
-
_getStartDateAccessibleName() {
|
|
276
|
-
return this._startInput._getAccessibleName();
|
|
277
|
-
}
|
|
278
|
-
_getEndDateAccessibleName() {
|
|
279
|
-
return this._endInput._getAccessibleName();
|
|
280
|
-
}
|
|
281
|
-
/** Updates the focused state of the range input. */
|
|
282
|
-
_updateFocus(origin) {
|
|
283
|
-
this.focused = origin !== null;
|
|
284
|
-
this.stateChanges.next();
|
|
285
|
-
}
|
|
286
|
-
/** Re-runs the validators on the start/end inputs. */
|
|
287
|
-
_revalidate() {
|
|
288
|
-
if (this._startInput) {
|
|
289
|
-
this._startInput._validatorOnChange();
|
|
290
|
-
}
|
|
291
|
-
if (this._endInput) {
|
|
292
|
-
this._endInput._validatorOnChange();
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
/** Registers the current date selection model with the start/end inputs. */
|
|
296
|
-
_registerModel(model) {
|
|
297
|
-
if (this._startInput) {
|
|
298
|
-
this._startInput._registerModel(model);
|
|
299
|
-
}
|
|
300
|
-
if (this._endInput) {
|
|
301
|
-
this._endInput._registerModel(model);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
/** Checks whether a specific range input directive is required. */
|
|
305
|
-
_isTargetRequired(target) {
|
|
306
|
-
return target?.ngControl?.control?.hasValidator(Validators.required);
|
|
307
|
-
}
|
|
308
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatDateRangeInput, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.ControlContainer, optional: true, self: true }, { token: i2.DateAdapter, optional: true }, { token: MAT_FORM_FIELD, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
309
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0-next.2", type: MatDateRangeInput, isStandalone: true, selector: "mat-date-range-input", inputs: { rangePicker: "rangePicker", required: ["required", "required", booleanAttribute], dateFilter: "dateFilter", min: "min", max: "max", disabled: ["disabled", "disabled", booleanAttribute], separator: "separator", comparisonStart: "comparisonStart", comparisonEnd: "comparisonEnd" }, host: { attributes: { "role": "group" }, properties: { "class.mat-date-range-input-hide-placeholders": "_shouldHidePlaceholders()", "class.mat-date-range-input-required": "required", "attr.id": "id", "attr.aria-labelledby": "_getAriaLabelledby()", "attr.aria-describedby": "_ariaDescribedBy", "attr.data-mat-calendar": "rangePicker ? rangePicker.id : null" }, classAttribute: "mat-date-range-input" }, providers: [
|
|
310
|
-
{ provide: MatFormFieldControl, useExisting: MatDateRangeInput },
|
|
311
|
-
{ provide: MAT_DATE_RANGE_INPUT_PARENT, useExisting: MatDateRangeInput },
|
|
312
|
-
], queries: [{ propertyName: "_startInput", first: true, predicate: MatStartDate, descendants: true }, { propertyName: "_endInput", first: true, predicate: MatEndDate, descendants: true }], exportAs: ["matDateRangeInput"], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"mat-date-range-input-container\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_updateFocus($event)\">\n <div class=\"mat-date-range-input-wrapper\">\n <ng-content select=\"input[matStartDate]\"></ng-content>\n <span\n class=\"mat-date-range-input-mirror\"\n aria-hidden=\"true\">{{_getInputMirrorValue('start')}}</span>\n </div>\n\n <span\n class=\"mat-date-range-input-separator\"\n [class.mat-date-range-input-separator-hidden]=\"_shouldHideSeparator()\">{{separator}}</span>\n\n <div class=\"mat-date-range-input-wrapper mat-date-range-input-end-wrapper\">\n <ng-content select=\"input[matEndDate]\"></ng-content>\n <span\n class=\"mat-date-range-input-mirror\"\n aria-hidden=\"true\">{{_getInputMirrorValue('end')}}</span>\n </div>\n</div>\n\n", styles: [".mat-date-range-input{display:block;width:100%}.mat-date-range-input-container{display:flex;align-items:center}.mat-date-range-input-separator{transition:opacity 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);margin:0 4px;color:var(--mat-datepicker-range-input-separator-color, var(--mat-app-on-surface))}.mat-form-field-disabled .mat-date-range-input-separator{color:var(--mat-datepicker-range-input-disabled-state-separator-color)}._mat-animation-noopable .mat-date-range-input-separator{transition:none}.mat-date-range-input-separator-hidden{-webkit-user-select:none;user-select:none;opacity:0;transition:none}.mat-date-range-input-wrapper{position:relative;overflow:hidden;max-width:calc(50% - 4px)}.mat-date-range-input-end-wrapper{flex-grow:1}.mat-date-range-input-inner{position:absolute;top:0;left:0;font:inherit;background:rgba(0,0,0,0);color:currentColor;border:none;outline:none;padding:0;margin:0;vertical-align:bottom;text-align:inherit;-webkit-appearance:none;width:100%;height:100%}.mat-date-range-input-inner:-moz-ui-invalid{box-shadow:none}.mat-date-range-input-inner::placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner::-moz-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner::-webkit-input-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner:-ms-input-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner[disabled]{color:var(--mat-datepicker-range-input-disabled-state-text-color)}.mat-form-field-hide-placeholder .mat-date-range-input-inner::placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner::-moz-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-moz-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::-moz-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-moz-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner::-webkit-input-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-webkit-input-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::-webkit-input-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-webkit-input-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner:-ms-input-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner:-ms-input-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner:-ms-input-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner:-ms-input-placeholder{opacity:0}._mat-animation-noopable .mat-date-range-input-inner::placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner::-moz-placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner::-webkit-input-placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner:-ms-input-placeholder{transition:none}.mat-date-range-input-mirror{-webkit-user-select:none;user-select:none;visibility:hidden;white-space:nowrap;display:inline-block;min-width:2px}.mat-mdc-form-field-type-mat-date-range-input .mat-mdc-form-field-infix{width:200px}"], dependencies: [{ kind: "directive", type: CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
313
|
-
}
|
|
314
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatDateRangeInput, decorators: [{
|
|
315
|
-
type: Component,
|
|
316
|
-
args: [{ selector: 'mat-date-range-input', exportAs: 'matDateRangeInput', host: {
|
|
317
|
-
'class': 'mat-date-range-input',
|
|
318
|
-
'[class.mat-date-range-input-hide-placeholders]': '_shouldHidePlaceholders()',
|
|
319
|
-
'[class.mat-date-range-input-required]': 'required',
|
|
320
|
-
'[attr.id]': 'id',
|
|
321
|
-
'role': 'group',
|
|
322
|
-
'[attr.aria-labelledby]': '_getAriaLabelledby()',
|
|
323
|
-
'[attr.aria-describedby]': '_ariaDescribedBy',
|
|
324
|
-
// Used by the test harness to tie this input to its calendar. We can't depend on
|
|
325
|
-
// `aria-owns` for this, because it's only defined while the calendar is open.
|
|
326
|
-
'[attr.data-mat-calendar]': 'rangePicker ? rangePicker.id : null',
|
|
327
|
-
}, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
328
|
-
{ provide: MatFormFieldControl, useExisting: MatDateRangeInput },
|
|
329
|
-
{ provide: MAT_DATE_RANGE_INPUT_PARENT, useExisting: MatDateRangeInput },
|
|
330
|
-
], standalone: true, imports: [CdkMonitorFocus], template: "<div\n class=\"mat-date-range-input-container\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_updateFocus($event)\">\n <div class=\"mat-date-range-input-wrapper\">\n <ng-content select=\"input[matStartDate]\"></ng-content>\n <span\n class=\"mat-date-range-input-mirror\"\n aria-hidden=\"true\">{{_getInputMirrorValue('start')}}</span>\n </div>\n\n <span\n class=\"mat-date-range-input-separator\"\n [class.mat-date-range-input-separator-hidden]=\"_shouldHideSeparator()\">{{separator}}</span>\n\n <div class=\"mat-date-range-input-wrapper mat-date-range-input-end-wrapper\">\n <ng-content select=\"input[matEndDate]\"></ng-content>\n <span\n class=\"mat-date-range-input-mirror\"\n aria-hidden=\"true\">{{_getInputMirrorValue('end')}}</span>\n </div>\n</div>\n\n", styles: [".mat-date-range-input{display:block;width:100%}.mat-date-range-input-container{display:flex;align-items:center}.mat-date-range-input-separator{transition:opacity 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1);margin:0 4px;color:var(--mat-datepicker-range-input-separator-color, var(--mat-app-on-surface))}.mat-form-field-disabled .mat-date-range-input-separator{color:var(--mat-datepicker-range-input-disabled-state-separator-color)}._mat-animation-noopable .mat-date-range-input-separator{transition:none}.mat-date-range-input-separator-hidden{-webkit-user-select:none;user-select:none;opacity:0;transition:none}.mat-date-range-input-wrapper{position:relative;overflow:hidden;max-width:calc(50% - 4px)}.mat-date-range-input-end-wrapper{flex-grow:1}.mat-date-range-input-inner{position:absolute;top:0;left:0;font:inherit;background:rgba(0,0,0,0);color:currentColor;border:none;outline:none;padding:0;margin:0;vertical-align:bottom;text-align:inherit;-webkit-appearance:none;width:100%;height:100%}.mat-date-range-input-inner:-moz-ui-invalid{box-shadow:none}.mat-date-range-input-inner::placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner::-moz-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner::-webkit-input-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner:-ms-input-placeholder{transition:color 400ms 133.3333333333ms cubic-bezier(0.25, 0.8, 0.25, 1)}.mat-date-range-input-inner[disabled]{color:var(--mat-datepicker-range-input-disabled-state-text-color)}.mat-form-field-hide-placeholder .mat-date-range-input-inner::placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner::-moz-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-moz-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::-moz-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-moz-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner::-webkit-input-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-webkit-input-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner::-webkit-input-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-webkit-input-placeholder{opacity:0}.mat-form-field-hide-placeholder .mat-date-range-input-inner:-ms-input-placeholder,.mat-date-range-input-hide-placeholders .mat-date-range-input-inner:-ms-input-placeholder{-webkit-user-select:none;user-select:none;color:rgba(0,0,0,0) !important;-webkit-text-fill-color:rgba(0,0,0,0);transition:none}.cdk-high-contrast-active .mat-form-field-hide-placeholder .mat-date-range-input-inner:-ms-input-placeholder,.cdk-high-contrast-active .mat-date-range-input-hide-placeholders .mat-date-range-input-inner:-ms-input-placeholder{opacity:0}._mat-animation-noopable .mat-date-range-input-inner::placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner::-moz-placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner::-webkit-input-placeholder{transition:none}._mat-animation-noopable .mat-date-range-input-inner:-ms-input-placeholder{transition:none}.mat-date-range-input-mirror{-webkit-user-select:none;user-select:none;visibility:hidden;white-space:nowrap;display:inline-block;min-width:2px}.mat-mdc-form-field-type-mat-date-range-input .mat-mdc-form-field-infix{width:200px}"] }]
|
|
331
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.ControlContainer, decorators: [{
|
|
332
|
-
type: Optional
|
|
333
|
-
}, {
|
|
334
|
-
type: Self
|
|
335
|
-
}] }, { type: i2.DateAdapter, decorators: [{
|
|
336
|
-
type: Optional
|
|
337
|
-
}] }, { type: undefined, decorators: [{
|
|
338
|
-
type: Optional
|
|
339
|
-
}, {
|
|
340
|
-
type: Inject,
|
|
341
|
-
args: [MAT_FORM_FIELD]
|
|
342
|
-
}] }], propDecorators: { rangePicker: [{
|
|
343
|
-
type: Input
|
|
344
|
-
}], required: [{
|
|
345
|
-
type: Input,
|
|
346
|
-
args: [{ transform: booleanAttribute }]
|
|
347
|
-
}], dateFilter: [{
|
|
348
|
-
type: Input
|
|
349
|
-
}], min: [{
|
|
350
|
-
type: Input
|
|
351
|
-
}], max: [{
|
|
352
|
-
type: Input
|
|
353
|
-
}], disabled: [{
|
|
354
|
-
type: Input,
|
|
355
|
-
args: [{ transform: booleanAttribute }]
|
|
356
|
-
}], separator: [{
|
|
357
|
-
type: Input
|
|
358
|
-
}], comparisonStart: [{
|
|
359
|
-
type: Input
|
|
360
|
-
}], comparisonEnd: [{
|
|
361
|
-
type: Input
|
|
362
|
-
}], _startInput: [{
|
|
363
|
-
type: ContentChild,
|
|
364
|
-
args: [MatStartDate]
|
|
365
|
-
}], _endInput: [{
|
|
366
|
-
type: ContentChild,
|
|
367
|
-
args: [MatEndDate]
|
|
368
|
-
}] } });
|
|
369
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tYXRlcmlhbC9kYXRlcGlja2VyL2RhdGUtcmFuZ2UtaW5wdXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvZGF0ZXBpY2tlci9kYXRlLXJhbmdlLWlucHV0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGVBQWUsRUFBYyxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBR0wsUUFBUSxFQUNSLElBQUksRUFFSixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQWEsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFDLFdBQVcsRUFBZSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRixPQUFPLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixVQUFVLEVBQ1YsWUFBWSxHQUNiLE1BQU0sMEJBQTBCLENBQUM7QUFJbEMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFxQyxxQkFBcUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7O0FBRWxHLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQTRCckIsTUFBTSxPQUFPLGlCQUFpQjtJQWE1Qix3Q0FBd0M7SUFDeEMsSUFBSSxLQUFL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RSxzQkFBc0I7d0JBQy9CLGdEQUFnRCxFQUFFLDJCQUEyQjt3QkFDN0UsdUNBQXVDLEVBQUUsVUFBVTt3QkFDbkQsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLE1BQU0sRUFBRSxPQUFPO3dCQUNmLHdCQUF3QixFQUFFLHNCQUFzQjt3QkFDaEQseUJBQXlCLEVBQUUsa0JBQWtCO3dCQUM3QyxpRkFBaUY7d0JBQ2pGLDhFQUE4RTt3QkFDOUUsMEJBQTBCLEVBQUUscUNBQXFDO3FCQUNsRSxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVCxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLG1CQUFtQixFQUFDO3dCQUM5RCxFQUFDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxXQUFXLG1CQUFtQixFQUFDO3FCQUN2RSxjQUNXLElBQUksV0FDUCxDQUFDLGVBQWUsQ0FBQzs7MEJBaU52QixRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjO3lDQXBLaEMsV0FBVztzQkFEZCxLQUFLO2dCQTZCRixRQUFRO3NCQURYLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBaUJoQyxVQUFVO3NCQURiLEtBQUs7Z0JBdUJGLEdBQUc7c0JBRE4sS0FBSztnQkFnQkYsR0FBRztzQkFETixLQUFLO2dCQWdCRixRQUFRO3NCQURYLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBcUMzQixTQUFTO3NCQUFqQixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFFc0IsV0FBVztzQkFBdEMsWUFBWTt1QkFBQyxZQUFZO2dCQUNBLFNBQVM7c0JBQWxDLFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0Nka01vbml0b3JGb2N1cywgRm9jdXNPcmlnaW59IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xDb250YWluZXIsIE5nQ29udHJvbCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtEYXRlQWRhcHRlciwgVGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7TUFUX0ZPUk1fRklFTEQsIE1hdEZvcm1GaWVsZENvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb24sIG1lcmdlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIE1BVF9EQVRFX1JBTkdFX0lOUFVUX1BBUkVOVCxcbiAgTWF0RGF0ZVJhbmdlSW5wdXRQYXJlbnQsXG4gIE1hdEVuZERhdGUsXG4gIE1hdFN0YXJ0RGF0ZSxcbn0gZnJvbSAnLi9kYXRlLXJhbmdlLWlucHV0LXBhcnRzJztcbmltcG9ydCB7TWF0RGF0ZVJhbmdlUGlja2VySW5wdXR9IGZyb20gJy4vZGF0ZS1yYW5nZS1waWNrZXInO1xuaW1wb3J0IHtEYXRlUmFuZ2UsIE1hdERhdGVTZWxlY3Rpb25Nb2RlbH0gZnJvbSAnLi9kYXRlLXNlbGVjdGlvbi1tb2RlbCc7XG5pbXBvcnQge01hdERhdGVwaWNrZXJDb250cm9sLCBNYXREYXRlcGlja2VyUGFuZWx9IGZyb20gJy4vZGF0ZXBpY2tlci1iYXNlJztcbmltcG9ydCB7Y3JlYXRlTWlzc2luZ0RhdGVJbXBsRXJyb3J9IGZyb20gJy4vZGF0ZXBpY2tlci1lcnJvcnMnO1xuaW1wb3J0IHtEYXRlRmlsdGVyRm4sIF9NYXRGb3JtRmllbGRQYXJ0aWFsLCBkYXRlSW5wdXRzSGF2ZUNoYW5nZWR9IGZyb20gJy4vZGF0ZXBpY2tlci1pbnB1dC1iYXNlJztcblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hdC1kYXRlLXJhbmdlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICdkYXRlLXJhbmdlLWlucHV0Lmh0bWwnLFxuICBzdHlsZVVybDogJ2RhdGUtcmFuZ2UtaW5wdXQuY3NzJyxcbiAgZXhwb3J0QXM6ICdtYXREYXRlUmFuZ2VJbnB1dCcsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnbWF0LWRhdGUtcmFuZ2UtaW5wdXQnLFxuICAgICdbY2xhc3MubWF0LWRhdGUtcmFuZ2UtaW5wdXQtaGlkZS1wbGFjZWhvbGRlcnNdJzogJ19zaG91bGRIaWRlUGxhY2Vob2xkZXJzKCknLFxuICAgICdbY2xhc3MubWF0LWRhdGUtcmFuZ2UtaW5wdXQtcmVxdWlyZWRdJzogJ3JlcXVpcmVkJyxcbiAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICAncm9sZSc6ICdncm91cCcsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnX2dldEFyaWFMYWJlbGxlZGJ5KCknLFxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdfYXJpYURlc2NyaWJlZEJ5JyxcbiAgICAvLyBVc2VkIGJ5IHRoZSB0ZXN0IGhhcm5lc3MgdG8gdGllIHRoaXMgaW5wdXQgdG8gaXRzIGNhbGVuZGFyLiBXZSBjYW4ndCBkZXBlbmQgb25cbiAgICAvLyBgYXJpYS1vd25zYCBmb3IgdGhpcywgYmVjYXVzZSBpdCdzIG9ubHkgZGVmaW5lZCB3aGlsZSB0aGUgY2FsZW5kYXIgaXMgb3Blbi5cbiAgICAnW2F0dHIuZGF0YS1tYXQtY2FsZW5kYXJdJzogJ3JhbmdlUGlja2VyID8gcmFuZ2VQaWNrZXIuaWQgOiBudWxsJyxcbiAgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogTWF0RGF0ZVJhbmdlSW5wdXR9LFxuICAgIHtwcm92aWRlOiBNQVRfREFURV9SQU5HRV9JTlBVVF9QQVJFTlQsIHVzZUV4aXN0aW5nOiBNYXREYXRlUmFuZ2VJbnB1dH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDZGtNb25pdG9yRm9jdXNdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXREYXRlUmFuZ2VJbnB1dDxEPlxuICBpbXBsZW1lbnRzXG4gICAgTWF0Rm9ybUZpZWxkQ29udHJvbDxEYXRlUmFuZ2U8RD4+LFxuICAgIE1hdERhdGVwaWNrZXJDb250cm9sPEQ+LFxuICAgIE1hdERhdGVSYW5nZUlucHV0UGFyZW50PEQ+LFxuICAgIE1hdERhdGVSYW5nZVBpY2tlcklucHV0PEQ+LFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveVxue1xuICBwcml2YXRlIF9jbG9zZWRTdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb24uRU1QVFk7XG4gIHByaXZhdGUgX29wZW5lZFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICAvKiogQ3VycmVudCB2YWx1ZSBvZiB0aGUgcmFuZ2UgaW5wdXQuICovXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZWwgPyB0aGlzLl9tb2RlbC5zZWxlY3Rpb24gOiBudWxsO1xuICB9XG5cbiAgLyoqIFVuaXF1ZSBJRCBmb3IgdGhlIGdyb3VwLiAqL1xuICBpZCA9IGBtYXQtZGF0ZS1yYW5nZS1pbnB1dC0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbnRyb2wgaXMgZm9jdXNlZC4gKi9cbiAgZm9jdXNlZCA9IGZhbHNlO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250cm9sJ3MgbGFiZWwgc2hvdWxkIGZsb2F0LiAqL1xuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xuICB9XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGZvcm0gY29udHJvbC4gKi9cbiAgY29udHJvbFR5cGUgPSAnbWF0LWRhdGUtcmFuZ2UtaW5wdXQnO1xuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBhIHBhcnQgb2YgYE1hdEZvcm1GaWVsZENvbnRyb2xgLlxuICAgKiBTZXQgdGhlIHBsYWNlaG9sZGVyIGF0dHJpYnV0ZSBvbiBgbWF0U3RhcnREYXRlYCBhbmQgYG1hdEVuZERhdGVgLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLl9zdGFydElucHV0Py5fZ2V0UGxhY2Vob2xkZXIoKSB8fCAnJztcbiAgICBjb25zdCBlbmQgPSB0aGlzLl9lbmRJbnB1dD8uX2dldFBsYWNlaG9sZGVyKCkgfHwgJyc7XG4gICAgcmV0dXJuIHN0YXJ0IHx8IGVuZCA/IGAke3N0YXJ0fSAke3RoaXMuc2VwYXJhdG9yfSAke2VuZH1gIDogJyc7XG4gIH1cblxuICAvKiogVGhlIHJhbmdlIHBpY2tlciB0aGF0IHRoaXMgaW5wdXQgaXMgYXNzb2NpYXRlZCB3aXRoLiAqL1xuICBASW5wdXQoKVxuICBnZXQgcmFuZ2VQaWNrZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlUGlja2VyO1xuICB9XG4gIHNldCByYW5nZVBpY2tlcihyYW5nZVBpY2tlcjogTWF0RGF0ZXBpY2tlclBhbmVsPE1hdERhdGVwaWNrZXJDb250cm9sPEQ+LCBEYXRlUmFuZ2U8RD4sIEQ+KSB7XG4gICAgaWYgKHJhbmdlUGlja2VyKSB7XG4gICAgICB0aGlzLl9tb2RlbCA9IHJhbmdlUGlja2VyLnJlZ2lzdGVySW5wdXQodGhpcyk7XG4gICAgICB0aGlzLl9yYW5nZVBpY2tlciA9IHJhbmdlUGlja2VyO1xuICAgICAgdGhpcy5fY2xvc2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLl9vcGVuZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX2FyaWFPd25zLnNldCh0aGlzLnJhbmdlUGlja2VyLm9wZW5lZCA/IHJhbmdlUGlja2VyLmlkIDogbnVsbCk7XG4gICAgICB0aGlzLl9jbG9zZWRTdWJzY3JpcHRpb24gPSByYW5nZVBpY2tlci5jbG9zZWRTdHJlYW0uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fc3RhcnRJbnB1dD8uX29uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLl9lbmRJbnB1dD8uX29uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLl9hcmlhT3ducy5zZXQobnVsbCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuX29wZW5lZFN1YnNjcmlwdGlvbiA9IHJhbmdlUGlja2VyLm9wZW5lZFN0cmVhbS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9hcmlhT3ducy5zZXQocmFuZ2VQaWNrZXIuaWQpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLl9yZWdpc3Rlck1vZGVsKHRoaXMuX21vZGVsISk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX3JhbmdlUGlja2VyOiBNYXREYXRlcGlja2VyUGFuZWw8TWF0RGF0ZXBpY2tlckNvbnRyb2w8RD4sIERhdGVSYW5nZTxEPiwgRD47XG5cbiAgLyoqIFRoZSBpZCBvZiB0aGUgcGFuZWwgb3duZWQgYnkgdGhpcyBpbnB1dC4gKi9cbiAgX2FyaWFPd25zID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyByZXF1aXJlZC4gKi9cbiAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KVxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX3JlcXVpcmVkID8/XG4gICAgICAodGhpcy5faXNUYXJnZXRSZXF1aXJlZCh0aGlzKSB8fFxuICAgICAgICB0aGlzLl9pc1RhcmdldFJlcXVpcmVkKHRoaXMuX3N0YXJ0SW5wdXQpIHx8XG4gICAgICAgIHRoaXMuX2lzVGFyZ2V0UmVxdWlyZWQodGhpcy5fZW5kSW5wdXQpKSA/P1xuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqIEZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIG91dCBkYXRlcyB3aXRoaW4gdGhlIGRhdGUgcmFuZ2UgcGlja2VyLiAqL1xuICBASW5wdXQoKVxuICBnZXQgZGF0ZUZpbHRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZUZpbHRlcjtcbiAgfVxuICBzZXQgZGF0ZUZpbHRlcih2YWx1ZTogRGF0ZUZpbHRlckZuPEQ+KSB7XG4gICAgY29uc3Qgc3RhcnQgPSB0aGlzLl9zdGFydElucHV0O1xuICAgIGNvbnN0IGVuZCA9IHRoaXMuX2VuZElucHV0O1xuICAgIGNvbnN0IHdhc01hdGNoaW5nU3RhcnQgPSBzdGFydCAmJiBzdGFydC5fbWF0Y2hlc0ZpbHRlcihzdGFydC52YWx1ZSk7XG4gICAgY29uc3Qgd2FzTWF0Y2hpbmdFbmQgPSBlbmQgJiYgZW5kLl9tYXRjaGVzRmlsdGVyKHN0YXJ0LnZhbHVlKTtcbiAgICB0aGlzLl9kYXRlRmlsdGVyID0gdmFsdWU7XG5cbiAgICBpZiAoc3RhcnQgJiYgc3RhcnQuX21hdGNoZXNGaWx0ZXIoc3RhcnQudmFsdWUpICE9PSB3YXNNYXRjaGluZ1N0YXJ0KSB7XG4gICAgICBzdGFydC5fdmFsaWRhdG9yT25DaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBpZiAoZW5kICYmIGVuZC5fbWF0Y2hlc0ZpbHRlcihlbmQudmFsdWUpICE9PSB3YXNNYXRjaGluZ0VuZCkge1xuICAgICAgZW5kLl92YWxpZGF0b3JPbkNoYW5nZSgpO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIF9kYXRlRmlsdGVyOiBEYXRlRmlsdGVyRm48RD47XG5cbiAgLyoqIFRoZSBtaW5pbXVtIHZhbGlkIGRhdGUuICovXG4gIEBJbnB1dCgpXG4gIGdldCBtaW4oKTogRCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9taW47XG4gIH1cbiAgc2V0IG1pbih2YWx1ZTogRCB8IG51bGwpIHtcbiAgICBjb25zdCB2YWxpZFZhbHVlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG5cbiAgICBpZiAoIXRoaXMuX2RhdGVBZGFwdGVyLnNhbWVEYXRlKHZhbGlkVmFsdWUsIHRoaXMuX21pbikpIHtcbiAgICAgIHRoaXMuX21pbiA9IHZhbGlkVmFsdWU7XG4gICAgICB0aGlzLl9yZXZhbGlkYXRlKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX21pbjogRCB8IG51bGw7XG5cbiAgLyoqIFRoZSBtYXhpbXVtIHZhbGlkIGRhdGUuICovXG4gIEBJbnB1dCgpXG4gIGdldCBtYXgoKTogRCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9tYXg7XG4gIH1cbiAgc2V0IG1heCh2YWx1ZTogRCB8IG51bGwpIHtcbiAgICBjb25zdCB2YWxpZFZhbHVlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG5cbiAgICBpZiAoIXRoaXMuX2RhdGVBZGFwdGVyLnNhbWVEYXRlKHZhbGlkVmFsdWUsIHRoaXMuX21heCkpIHtcbiAgICAgIHRoaXMuX21heCA9IHZhbGlkVmFsdWU7XG4gICAgICB0aGlzLl9yZXZhbGlkYXRlKCk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgX21heDogRCB8IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGRpc2FibGVkLiAqL1xuICBASW5wdXQoe3RyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZX0pXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnRJbnB1dCAmJiB0aGlzLl9lbmRJbnB1dFxuICAgICAgPyB0aGlzLl9zdGFydElucHV0LmRpc2FibGVkICYmIHRoaXMuX2VuZElucHV0LmRpc2FibGVkXG4gICAgICA6IHRoaXMuX2dyb3VwRGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9ncm91cERpc2FibGVkKSB7XG4gICAgICB0aGlzLl9ncm91cERpc2FibGVkID0gdmFsdWU7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG4gIF9ncm91cERpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGluIGFuIGVycm9yIHN0YXRlLiAqL1xuICBnZXQgZXJyb3JTdGF0ZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fc3RhcnRJbnB1dCAmJiB0aGlzLl9lbmRJbnB1dCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0SW5wdXQuZXJyb3JTdGF0ZSB8fCB0aGlzLl9lbmRJbnB1dC5lcnJvclN0YXRlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBkYXRlcGlja2VyIGlucHV0IGlzIGVtcHR5LiAqL1xuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc3RhcnRFbXB0eSA9IHRoaXMuX3N0YXJ0SW5wdXQgPyB0aGlzLl9zdGFydElucHV0LmlzRW1wdHkoKSA6IGZhbHNlO1xuICAgIGNvbnN0IGVuZEVtcHR5ID0gdGhpcy5fZW5kSW5wdXQgPyB0aGlzLl9lbmRJbnB1dC5pc0VtcHR5KCkgOiBmYWxzZTtcbiAgICByZXR1cm4gc3RhcnRFbXB0eSAmJiBlbmRFbXB0eTtcbiAgfVxuXG4gIC8qKiBWYWx1ZSBmb3IgdGhlIGBhcmlhLWRlc2NyaWJlZGJ5YCBhdHRyaWJ1dGUgb2YgdGhlIGlucHV0cy4gKi9cbiAgX2FyaWFEZXNjcmliZWRCeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIERhdGUgc2VsZWN0aW9uIG1vZGVsIGN1cnJlbnRseSByZWdpc3RlcmVkIHdpdGggdGhlIGlucHV0LiAqL1xuICBwcml2YXRlIF9tb2RlbDogTWF0RGF0ZVNlbGVjdGlvbk1vZGVsPERhdGVSYW5nZTxEPj4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqIFNlcGFyYXRvciB0ZXh0IHRvIGJlIHNob3duIGJldHdlZW4gdGhlIGlucHV0cy4gKi9cbiAgQElucHV0KCkgc2VwYXJhdG9yID0gJ+KAkyc7XG5cbiAgLyoqIFN0YXJ0IG9mIHRoZSBjb21wYXJpc29uIHJhbmdlIHRoYXQgc2hvdWxkIGJlIHNob3duIGluIHRoZSBjYWxlbmRhci4gKi9cbiAgQElucHV0KCkgY29tcGFyaXNvblN0YXJ0OiBEIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIEVuZCBvZiB0aGUgY29tcGFyaXNvbiByYW5nZSB0aGF0IHNob3VsZCBiZSBzaG93biBpbiB0aGUgY2FsZW5kYXIuICovXG4gIEBJbnB1dCgpIGNvbXBhcmlzb25FbmQ6IEQgfCBudWxsID0gbnVsbDtcblxuICBAQ29udGVudENoaWxkKE1hdFN0YXJ0RGF0ZSkgX3N0YXJ0SW5wdXQ6IE1hdFN0YXJ0RGF0ZTxEPjtcbiAgQENvbnRlbnRDaGlsZChNYXRFbmREYXRlKSBfZW5kSW5wdXQ6IE1hdEVuZERhdGU8RD47XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBgTWF0Rm9ybUZpZWxkQ29udHJvbGAuXG4gICAqIFRPRE8oY3Jpc2JldG8pOiBjaGFuZ2UgdHlwZSB0byBgQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlYCBhZnRlciAjMTgyMDYgbGFuZHMuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIG5nQ29udHJvbDogTmdDb250cm9sIHwgbnVsbDtcblxuICAvKiogRW1pdHMgd2hlbiB0aGUgaW5wdXQncyBzdGF0ZSBoYXMgY2hhbmdlZC4gKi9cbiAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogRGlzYWJsZSB0aGUgYXV0b21hdGljIGxhYmVsaW5nIHRvIGF2b2lkIGlzc3VlcyBsaWtlICMyNzI0MS5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUF1dG9tYXRpY0xhYmVsaW5nID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBjb250cm9sOiBDb250cm9sQ29udGFpbmVyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxEPixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9GT1JNX0ZJRUxEKSBwcml2YXRlIF9mb3JtRmllbGQ/OiBfTWF0Rm9ybUZpZWxkUGFydGlhbCxcbiAgKSB7XG4gICAgaWYgKCFfZGF0ZUFkYXB0ZXIgJiYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkpIHtcbiAgICAgIHRocm93IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbEVycm9yKCdEYXRlQWRhcHRlcicpO1xuICAgIH1cblxuICAgIC8vIFRoZSBkYXRlcGlja2VyIG1vZHVsZSBjYW4gYmUgdXNlZCBib3RoIHdpdGggTURDIGFuZCBub24tTURDIGZvcm0gZmllbGRzLiBXZSBoYXZlXG4gICAgLy8gdG8gY29uZGl0aW9uYWxseSBhZGQgdGhlIE1EQyBpbnB1dCBjbGFzcyBzbyB0aGF0IHRoZSByYW5nZSBwaWNrZXIgbG9va3MgY29ycmVjdGx5LlxuICAgIGlmIChfZm9ybUZpZWxkPy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbWF0LW1kYy1mb3JtLWZpZWxkJykpIHtcbiAgICAgIF9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChcbiAgICAgICAgJ21hdC1tZGMtaW5wdXQtZWxlbWVudCcsXG4gICAgICAgICdtYXQtbWRjLWZvcm0tZmllbGQtaW5wdXQtY29udHJvbCcsXG4gICAgICAgICdtZGMtdGV4dC1maWVsZF9faW5wdXQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKGNyaXNiZXRvKTogcmVtb3ZlIGBhcyBhbnlgIGFmdGVyICMxODIwNiBsYW5kcy5cbiAgICB0aGlzLm5nQ29udHJvbCA9IGNvbnRyb2wgYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBgTWF0Rm9ybUZpZWxkQ29udHJvbGAuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLl9hcmlhRGVzY3JpYmVkQnkgPSBpZHMubGVuZ3RoID8gaWRzLmpvaW4oJyAnKSA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgYSBwYXJ0IG9mIGBNYXRGb3JtRmllbGRDb250cm9sYC5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZm9jdXNlZCAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgaWYgKCF0aGlzLl9tb2RlbCB8fCAhdGhpcy5fbW9kZWwuc2VsZWN0aW9uLnN0YXJ0KSB7XG4gICAgICAgIHRoaXMuX3N0YXJ0SW5wdXQuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2VuZElucHV0LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIGlmICghdGhpcy5fc3RhcnRJbnB1dCkge1xuICAgICAgICB0aHJvdyBFcnJvcignbWF0LWRhdGUtcmFuZ2UtaW5wdXQgbXVzdCBjb250YWluIGEgbWF0U3RhcnREYXRlIGlucHV0Jyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5fZW5kSW5wdXQpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoJ21hdC1kYXRlLXJhbmdlLWlucHV0IG11c3QgY29udGFpbiBhIG1hdEVuZERhdGUgaW5wdXQnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbW9kZWwpIHtcbiAgICAgIHRoaXMuX3JlZ2lzdGVyTW9kZWwodGhpcy5fbW9kZWwpO1xuICAgIH1cblxuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzLCBiZWNhdXNlIHdlXG4gICAgLy8ga25vdyB0aGF0IHRoZSBpbnB1dCBzdHJlYW1zIHdpbGwgYmUgY29tcGxldGVkIG9uIGRlc3Ryb3kuXG4gICAgbWVyZ2UodGhpcy5fc3RhcnRJbnB1dC5zdGF0ZUNoYW5nZXMsIHRoaXMuX2VuZElucHV0LnN0YXRlQ2hhbmdlcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoZGF0ZUlucHV0c0hhdmVDaGFuZ2VkKGNoYW5nZXMsIHRoaXMuX2RhdGVBZGFwdGVyKSkge1xuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCh1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Nsb3NlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29wZW5lZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgZGF0ZSBhdCB3aGljaCB0aGUgY2FsZW5kYXIgc2hvdWxkIHN0YXJ0LiAqL1xuICBnZXRTdGFydFZhbHVlKCk6IEQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUuc3RhcnQgOiBudWxsO1xuICB9XG5cbiAgLyoqIEdldHMgdGhlIGlucHV0J3MgdGhlbWUgcGFsZXR0ZS4gKi9cbiAgZ2V0VGhlbWVQYWxldHRlKCk6IFRoZW1lUGFsZXR0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1GaWVsZCA/IHRoaXMuX2Zvcm1GaWVsZC5jb2xvciA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBHZXRzIHRoZSBlbGVtZW50IHRvIHdoaWNoIHRoZSBjYWxlbmRhciBvdmVybGF5IHNob3VsZCBiZSBhdHRhY2hlZC4gKi9cbiAgZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpOiBFbGVtZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUZpZWxkID8gdGhpcy5fZm9ybUZpZWxkLmdldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKSA6IHRoaXMuX2VsZW1lbnRSZWY7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgSUQgb2YgYW4gZWxlbWVudCB0aGF0IHNob3VsZCBiZSB1c2VkIGEgZGVzY3JpcHRpb24gZm9yIHRoZSBjYWxlbmRhciBvdmVybGF5LiAqL1xuICBnZXRPdmVybGF5TGFiZWxJZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUZpZWxkID8gdGhpcy5fZm9ybUZpZWxkLmdldExhYmVsSWQoKSA6IG51bGw7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgdmFsdWUgdGhhdCBpcyB1c2VkIHRvIG1pcnJvciB0aGUgc3RhdGUgaW5wdXQuICovXG4gIF9nZXRJbnB1dE1pcnJvclZhbHVlKHBhcnQ6ICdzdGFydCcgfCAnZW5kJykge1xuICAgIGNvbnN0IGlucHV0ID0gcGFydCA9PT0gJ3N0YXJ0JyA/IHRoaXMuX3N0YXJ0SW5wdXQgOiB0aGlzLl9lbmRJbnB1dDtcbiAgICByZXR1cm4gaW5wdXQgPyBpbnB1dC5nZXRNaXJyb3JWYWx1ZSgpIDogJyc7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgaW5wdXQgcGxhY2Vob2xkZXJzIHNob3VsZCBiZSBoaWRkZW4uICovXG4gIF9zaG91bGRIaWRlUGxhY2Vob2xkZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGFydElucHV0ID8gIXRoaXMuX3N0YXJ0SW5wdXQuaXNFbXB0eSgpIDogZmFsc2U7XG4gIH1cblxuICAvKiogSGFuZGxlcyB0aGUgdmFsdWUgaW4gb25lIG9mIHRoZSBjaGlsZCBpbnB1dHMgY2hhbmdpbmcuICovXG4gIF9oYW5kbGVDaGlsZFZhbHVlQ2hhbmdlKCkge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKiBPcGVucyB0aGUgZGF0ZSByYW5nZSBwaWNrZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBpbnB1dC4gKi9cbiAgX29wZW5EYXRlcGlja2VyKCkge1xuICAgIGlmICh0aGlzLl9yYW5nZVBpY2tlcikge1xuICAgICAgdGhpcy5fcmFuZ2VQaWNrZXIub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBzZXBhcmF0ZSB0ZXh0IHNob3VsZCBiZSBoaWRkZW4uICovXG4gIF9zaG91bGRIaWRlU2VwYXJhdG9yKCkge1xuICAgIHJldHVybiAoXG4gICAgICAoIXRoaXMuX2Zvcm1GaWVsZCB8fFxuICAgICAgICAodGhpcy5fZm9ybUZpZWxkLmdldExhYmVsSWQoKSAmJiAhdGhpcy5fZm9ybUZpZWxkLl9zaG91bGRMYWJlbEZsb2F0KCkpKSAmJlxuICAgICAgdGhpcy5lbXB0eVxuICAgICk7XG4gIH1cblxuICAvKiogR2V0cyB0aGUgdmFsdWUgZm9yIHRoZSBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUgb2YgdGhlIGlucHV0cy4gKi9cbiAgX2dldEFyaWFMYWJlbGxlZGJ5KCkge1xuICAgIGNvbnN0IGZvcm1GaWVsZCA9IHRoaXMuX2Zvcm1GaWVsZDtcbiAgICByZXR1cm4gZm9ybUZpZWxkICYmIGZvcm1GaWVsZC5faGFzRmxvYXRpbmdMYWJlbCgpID8gZm9ybUZpZWxkLl9sYWJlbElkIDogbnVsbDtcbiAgfVxuXG4gIF9nZXRTdGFydERhdGVBY2Nlc3NpYmxlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zdGFydElucHV0Ll9nZXRBY2Nlc3NpYmxlTmFtZSgpO1xuICB9XG5cbiAgX2dldEVuZERhdGVBY2Nlc3NpYmxlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9lbmRJbnB1dC5fZ2V0QWNjZXNzaWJsZU5hbWUoKTtcbiAgfVxuXG4gIC8qKiBVcGRhdGVzIHRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSByYW5nZSBpbnB1dC4gKi9cbiAgX3VwZGF0ZUZvY3VzKG9yaWdpbjogRm9jdXNPcmlnaW4pIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBvcmlnaW4gIT09IG51bGw7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgLyoqIFJlLXJ1bnMgdGhlIHZhbGlkYXRvcnMgb24gdGhlIHN0YXJ0L2VuZCBpbnB1dHMuICovXG4gIHByaXZhdGUgX3JldmFsaWRhdGUoKSB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0SW5wdXQpIHtcbiAgICAgIHRoaXMuX3N0YXJ0SW5wdXQuX3ZhbGlkYXRvck9uQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2VuZElucHV0KSB7XG4gICAgICB0aGlzLl9lbmRJbnB1dC5fdmFsaWRhdG9yT25DaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIHRoZSBjdXJyZW50IGRhdGUgc2VsZWN0aW9uIG1vZGVsIHdpdGggdGhlIHN0YXJ0L2VuZCBpbnB1dHMuICovXG4gIHByaXZhdGUgX3JlZ2lzdGVyTW9kZWwobW9kZWw6IE1hdERhdGVTZWxlY3Rpb25Nb2RlbDxEYXRlUmFuZ2U8RD4+KSB7XG4gICAgaWYgKHRoaXMuX3N0YXJ0SW5wdXQpIHtcbiAgICAgIHRoaXMuX3N0YXJ0SW5wdXQuX3JlZ2lzdGVyTW9kZWwobW9kZWwpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9lbmRJbnB1dCkge1xuICAgICAgdGhpcy5fZW5kSW5wdXQuX3JlZ2lzdGVyTW9kZWwobW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciBhIHNwZWNpZmljIHJhbmdlIGlucHV0IGRpcmVjdGl2ZSBpcyByZXF1aXJlZC4gKi9cbiAgcHJpdmF0ZSBfaXNUYXJnZXRSZXF1aXJlZCh0YXJnZXQ6IHtuZ0NvbnRyb2w6IE5nQ29udHJvbCB8IG51bGx9IHwgbnVsbCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0YXJnZXQ/Lm5nQ29udHJvbD8uY29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwibWF0LWRhdGUtcmFuZ2UtaW5wdXQtY29udGFpbmVyXCJcbiAgY2RrTW9uaXRvclN1YnRyZWVGb2N1c1xuICAoY2RrRm9jdXNDaGFuZ2UpPVwiX3VwZGF0ZUZvY3VzKCRldmVudClcIj5cbiAgPGRpdiBjbGFzcz1cIm1hdC1kYXRlLXJhbmdlLWlucHV0LXdyYXBwZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJpbnB1dFttYXRTdGFydERhdGVdXCI+PC9uZy1jb250ZW50PlxuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cIm1hdC1kYXRlLXJhbmdlLWlucHV0LW1pcnJvclwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIj57e19nZXRJbnB1dE1pcnJvclZhbHVlKCdzdGFydCcpfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxzcGFuXG4gICAgY2xhc3M9XCJtYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3JcIlxuICAgIFtjbGFzcy5tYXQtZGF0ZS1yYW5nZS1pbnB1dC1zZXBhcmF0b3ItaGlkZGVuXT1cIl9zaG91bGRIaWRlU2VwYXJhdG9yKClcIj57e3NlcGFyYXRvcn19PC9zcGFuPlxuXG4gIDxkaXYgY2xhc3M9XCJtYXQtZGF0ZS1yYW5nZS1pbnB1dC13cmFwcGVyIG1hdC1kYXRlLXJhbmdlLWlucHV0LWVuZC13cmFwcGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRbbWF0RW5kRGF0ZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPHNwYW5cbiAgICAgIGNsYXNzPVwibWF0LWRhdGUtcmFuZ2UtaW5wdXQtbWlycm9yXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7X2dldElucHV0TWlycm9yVmFsdWUoJ2VuZCcpfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
|
|
9
|
-
import { MatDatepickerBase } from './datepicker-base';
|
|
10
|
-
import { MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER } from './date-selection-model';
|
|
11
|
-
import { MAT_CALENDAR_RANGE_STRATEGY_PROVIDER } from './date-range-selection-strategy';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
// TODO(mmalerba): We use a component instead of a directive here so the user can use implicit
|
|
14
|
-
// template reference variables (e.g. #d vs #d="matDateRangePicker"). We can change this to a
|
|
15
|
-
// directive if angular adds support for `exportAs: '$implicit'` on directives.
|
|
16
|
-
/** Component responsible for managing the date range picker popup/dialog. */
|
|
17
|
-
export class MatDateRangePicker extends MatDatepickerBase {
|
|
18
|
-
_forwardContentValues(instance) {
|
|
19
|
-
super._forwardContentValues(instance);
|
|
20
|
-
const input = this.datepickerInput;
|
|
21
|
-
if (input) {
|
|
22
|
-
instance.comparisonStart = input.comparisonStart;
|
|
23
|
-
instance.comparisonEnd = input.comparisonEnd;
|
|
24
|
-
instance.startDateAccessibleName = input._getStartDateAccessibleName();
|
|
25
|
-
instance.endDateAccessibleName = input._getEndDateAccessibleName();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatDateRangePicker, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0-next.2", type: MatDateRangePicker, isStandalone: true, selector: "mat-date-range-picker", providers: [
|
|
30
|
-
MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER,
|
|
31
|
-
MAT_CALENDAR_RANGE_STRATEGY_PROVIDER,
|
|
32
|
-
{ provide: MatDatepickerBase, useExisting: MatDateRangePicker },
|
|
33
|
-
], exportAs: ["matDateRangePicker"], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
34
|
-
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: MatDateRangePicker, decorators: [{
|
|
36
|
-
type: Component,
|
|
37
|
-
args: [{
|
|
38
|
-
selector: 'mat-date-range-picker',
|
|
39
|
-
template: '',
|
|
40
|
-
exportAs: 'matDateRangePicker',
|
|
41
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
42
|
-
encapsulation: ViewEncapsulation.None,
|
|
43
|
-
providers: [
|
|
44
|
-
MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER,
|
|
45
|
-
MAT_CALENDAR_RANGE_STRATEGY_PROVIDER,
|
|
46
|
-
{ provide: MatDatepickerBase, useExisting: MatDateRangePicker },
|
|
47
|
-
],
|
|
48
|
-
standalone: true,
|
|
49
|
-
}]
|
|
50
|
-
}] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvZGF0ZXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxpQkFBaUIsRUFBNkMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRyxPQUFPLEVBQUMsdUNBQXVDLEVBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUMxRixPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFhckYsOEZBQThGO0FBQzlGLDZGQUE2RjtBQUM3RiwrRUFBK0U7QUFDL0UsNkVBQTZFO0FBYzdFLE1BQU0sT0FBTyxrQkFBc0IsU0FBUSxpQkFJMUM7SUFDb0IscUJBQXFCLENBQUMsUUFBK0M7UUFDdEYsS0FBSyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFFbkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLFFBQVEsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztZQUNqRCxRQUFRLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7WUFDN0MsUUFBUSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBQ3ZFLFFBQVEsQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNyRSxDQUFDO0lBQ0gsQ0FBQztxSEFoQlUsa0JBQWtCO3lHQUFsQixrQkFBa0Isb0VBUGxCO1lBQ1QsdUNBQXVDO1lBQ3ZDLG9DQUFvQztZQUNwQyxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUM7U0FDOUQsbUZBUlMsRUFBRTs7a0dBV0Qsa0JBQWtCO2tCQWI5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxFQUFFO29CQUNaLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsU0FBUyxFQUFFO3dCQUNULHVDQUF1Qzt3QkFDdkMsb0NBQW9DO3dCQUNwQyxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLG9CQUFvQixFQUFDO3FCQUM5RDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdERhdGVwaWNrZXJCYXNlLCBNYXREYXRlcGlja2VyQ29udGVudCwgTWF0RGF0ZXBpY2tlckNvbnRyb2x9IGZyb20gJy4vZGF0ZXBpY2tlci1iYXNlJztcbmltcG9ydCB7TUFUX1JBTkdFX0RBVEVfU0VMRUNUSU9OX01PREVMX1BST1ZJREVSLCBEYXRlUmFuZ2V9IGZyb20gJy4vZGF0ZS1zZWxlY3Rpb24tbW9kZWwnO1xuaW1wb3J0IHtNQVRfQ0FMRU5EQVJfUkFOR0VfU1RSQVRFR1lfUFJPVklERVJ9IGZyb20gJy4vZGF0ZS1yYW5nZS1zZWxlY3Rpb24tc3RyYXRlZ3knO1xuXG4vKipcbiAqIElucHV0IHRoYXQgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBhIGRhdGUgcmFuZ2UgcGlja2VyLlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hdERhdGVSYW5nZVBpY2tlcklucHV0PEQ+IGV4dGVuZHMgTWF0RGF0ZXBpY2tlckNvbnRyb2w8RD4ge1xuICBfZ2V0RW5kRGF0ZUFjY2Vzc2libGVOYW1lKCk6IHN0cmluZyB8IG51bGw7XG4gIF9nZXRTdGFydERhdGVBY2Nlc3NpYmxlTmFtZSgpOiBzdHJpbmcgfCBudWxsO1xuICBjb21wYXJpc29uU3RhcnQ6IEQgfCBudWxsO1xuICBjb21wYXJpc29uRW5kOiBEIHwgbnVsbDtcbn1cblxuLy8gVE9ETyhtbWFsZXJiYSk6IFdlIHVzZSBhIGNvbXBvbmVudCBpbnN0ZWFkIG9mIGEgZGlyZWN0aXZlIGhlcmUgc28gdGhlIHVzZXIgY2FuIHVzZSBpbXBsaWNpdFxuLy8gdGVtcGxhdGUgcmVmZXJlbmNlIHZhcmlhYmxlcyAoZS5nLiAjZCB2cyAjZD1cIm1hdERhdGVSYW5nZVBpY2tlclwiKS4gV2UgY2FuIGNoYW5nZSB0aGlzIHRvIGFcbi8vIGRpcmVjdGl2ZSBpZiBhbmd1bGFyIGFkZHMgc3VwcG9ydCBmb3IgYGV4cG9ydEFzOiAnJGltcGxpY2l0J2Agb24gZGlyZWN0aXZlcy5cbi8qKiBDb21wb25lbnQgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIHRoZSBkYXRlIHJhbmdlIHBpY2tlciBwb3B1cC9kaWFsb2cuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtZGF0ZS1yYW5nZS1waWNrZXInLFxuICB0ZW1wbGF0ZTogJycsXG4gIGV4cG9ydEFzOiAnbWF0RGF0ZVJhbmdlUGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIE1BVF9SQU5HRV9EQVRFX1NFTEVDVElPTl9NT0RFTF9QUk9WSURFUixcbiAgICBNQVRfQ0FMRU5EQVJfUkFOR0VfU1RSQVRFR1lfUFJPVklERVIsXG4gICAge3Byb3ZpZGU6IE1hdERhdGVwaWNrZXJCYXNlLCB1c2VFeGlzdGluZzogTWF0RGF0ZVJhbmdlUGlja2VyfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0RGF0ZVJhbmdlUGlja2VyPEQ+IGV4dGVuZHMgTWF0RGF0ZXBpY2tlckJhc2U8XG4gIE1hdERhdGVSYW5nZVBpY2tlcklucHV0PEQ+LFxuICBEYXRlUmFuZ2U8RD4sXG4gIERcbj4ge1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2ZvcndhcmRDb250ZW50VmFsdWVzKGluc3RhbmNlOiBNYXREYXRlcGlja2VyQ29udGVudDxEYXRlUmFuZ2U8RD4sIEQ+KSB7XG4gICAgc3VwZXIuX2ZvcndhcmRDb250ZW50VmFsdWVzKGluc3RhbmNlKTtcblxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5kYXRlcGlja2VySW5wdXQ7XG5cbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGluc3RhbmNlLmNvbXBhcmlzb25TdGFydCA9IGlucHV0LmNvbXBhcmlzb25TdGFydDtcbiAgICAgIGluc3RhbmNlLmNvbXBhcmlzb25FbmQgPSBpbnB1dC5jb21wYXJpc29uRW5kO1xuICAgICAgaW5zdGFuY2Uuc3RhcnREYXRlQWNjZXNzaWJsZU5hbWUgPSBpbnB1dC5fZ2V0U3RhcnREYXRlQWNjZXNzaWJsZU5hbWUoKTtcbiAgICAgIGluc3RhbmNlLmVuZERhdGVBY2Nlc3NpYmxlTmFtZSA9IGlucHV0Ll9nZXRFbmREYXRlQWNjZXNzaWJsZU5hbWUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { Injectable, InjectionToken, Optional, SkipSelf } from '@angular/core';
|
|
9
|
-
import { DateAdapter } from '@angular/material/core';
|
|
10
|
-
import { DateRange } from './date-selection-model';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@angular/material/core";
|
|
13
|
-
/** Injection token used to customize the date range selection behavior. */
|
|
14
|
-
export const MAT_DATE_RANGE_SELECTION_STRATEGY = new InjectionToken('MAT_DATE_RANGE_SELECTION_STRATEGY');
|
|
15
|
-
/** Provides the default date range selection behavior. */
|
|
16
|
-
export class DefaultMatCalendarRangeStrategy {
|
|
17
|
-
constructor(_dateAdapter) {
|
|
18
|
-
this._dateAdapter = _dateAdapter;
|
|
19
|
-
}
|
|
20
|
-
selectionFinished(date, currentRange) {
|
|
21
|
-
let { start, end } = currentRange;
|
|
22
|
-
if (start == null) {
|
|
23
|
-
start = date;
|
|
24
|
-
}
|
|
25
|
-
else if (end == null && date && this._dateAdapter.compareDate(date, start) >= 0) {
|
|
26
|
-
end = date;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
start = date;
|
|
30
|
-
end = null;
|
|
31
|
-
}
|
|
32
|
-
return new DateRange(start, end);
|
|
33
|
-
}
|
|
34
|
-
createPreview(activeDate, currentRange) {
|
|
35
|
-
let start = null;
|
|
36
|
-
let end = null;
|
|
37
|
-
if (currentRange.start && !currentRange.end && activeDate) {
|
|
38
|
-
start = currentRange.start;
|
|
39
|
-
end = activeDate;
|
|
40
|
-
}
|
|
41
|
-
return new DateRange(start, end);
|
|
42
|
-
}
|
|
43
|
-
createDrag(dragOrigin, originalRange, newDate) {
|
|
44
|
-
let start = originalRange.start;
|
|
45
|
-
let end = originalRange.end;
|
|
46
|
-
if (!start || !end) {
|
|
47
|
-
// Can't drag from an incomplete range.
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
const adapter = this._dateAdapter;
|
|
51
|
-
const isRange = adapter.compareDate(start, end) !== 0;
|
|
52
|
-
const diffYears = adapter.getYear(newDate) - adapter.getYear(dragOrigin);
|
|
53
|
-
const diffMonths = adapter.getMonth(newDate) - adapter.getMonth(dragOrigin);
|
|
54
|
-
const diffDays = adapter.getDate(newDate) - adapter.getDate(dragOrigin);
|
|
55
|
-
if (isRange && adapter.sameDate(dragOrigin, originalRange.start)) {
|
|
56
|
-
start = newDate;
|
|
57
|
-
if (adapter.compareDate(newDate, end) > 0) {
|
|
58
|
-
end = adapter.addCalendarYears(end, diffYears);
|
|
59
|
-
end = adapter.addCalendarMonths(end, diffMonths);
|
|
60
|
-
end = adapter.addCalendarDays(end, diffDays);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else if (isRange && adapter.sameDate(dragOrigin, originalRange.end)) {
|
|
64
|
-
end = newDate;
|
|
65
|
-
if (adapter.compareDate(newDate, start) < 0) {
|
|
66
|
-
start = adapter.addCalendarYears(start, diffYears);
|
|
67
|
-
start = adapter.addCalendarMonths(start, diffMonths);
|
|
68
|
-
start = adapter.addCalendarDays(start, diffDays);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
start = adapter.addCalendarYears(start, diffYears);
|
|
73
|
-
start = adapter.addCalendarMonths(start, diffMonths);
|
|
74
|
-
start = adapter.addCalendarDays(start, diffDays);
|
|
75
|
-
end = adapter.addCalendarYears(end, diffYears);
|
|
76
|
-
end = adapter.addCalendarMonths(end, diffMonths);
|
|
77
|
-
end = adapter.addCalendarDays(end, diffDays);
|
|
78
|
-
}
|
|
79
|
-
return new DateRange(start, end);
|
|
80
|
-
}
|
|
81
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: DefaultMatCalendarRangeStrategy, deps: [{ token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
82
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: DefaultMatCalendarRangeStrategy }); }
|
|
83
|
-
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: DefaultMatCalendarRangeStrategy, decorators: [{
|
|
85
|
-
type: Injectable
|
|
86
|
-
}], ctorParameters: () => [{ type: i1.DateAdapter }] });
|
|
87
|
-
/** @docs-private */
|
|
88
|
-
export function MAT_CALENDAR_RANGE_STRATEGY_PROVIDER_FACTORY(parent, adapter) {
|
|
89
|
-
return parent || new DefaultMatCalendarRangeStrategy(adapter);
|
|
90
|
-
}
|
|
91
|
-
/** @docs-private */
|
|
92
|
-
export const MAT_CALENDAR_RANGE_STRATEGY_PROVIDER = {
|
|
93
|
-
provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
|
|
94
|
-
deps: [[new Optional(), new SkipSelf(), MAT_DATE_RANGE_SELECTION_STRATEGY], DateAdapter],
|
|
95
|
-
useFactory: MAT_CALENDAR_RANGE_STRATEGY_PROVIDER_FACTORY,
|
|
96
|
-
};
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1zZWxlY3Rpb24tc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvZGF0ZXBpY2tlci9kYXRlLXJhbmdlLXNlbGVjdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7QUFFakQsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLElBQUksY0FBYyxDQUVqRSxtQ0FBbUMsQ0FBQyxDQUFDO0FBMkN2QywwREFBMEQ7QUFFMUQsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxZQUFvQixZQUE0QjtRQUE1QixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7SUFBRyxDQUFDO0lBRXBELGlCQUFpQixDQUFDLElBQU8sRUFBRSxZQUEwQjtRQUNuRCxJQUFJLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBQyxHQUFHLFlBQVksQ0FBQztRQUVoQyxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQixLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2YsQ0FBQzthQUFNLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2xGLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDYixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDYixHQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ2IsQ0FB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UyxDQUFDLENBQUM7WUFDbkQsS0FBSyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDckQsS0FBSyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELEdBQUcsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQy9DLEdBQUcsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pELEdBQUcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsT0FBTyxJQUFJLFNBQVMsQ0FBSSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztxSEF0RVUsK0JBQStCO3lIQUEvQiwrQkFBK0I7O2tHQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVU7O0FBMEVYLG9CQUFvQjtBQUNwQixNQUFNLFVBQVUsNENBQTRDLENBQzFELE1BQThDLEVBQzlDLE9BQTZCO0lBRTdCLE9BQU8sTUFBTSxJQUFJLElBQUksK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBb0I7SUFDbkUsT0FBTyxFQUFFLGlDQUFpQztJQUMxQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSxpQ0FBaUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUN4RixVQUFVLEVBQUUsNENBQTRDO0NBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIFNraXBTZWxmLCBGYWN0b3J5UHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEYXRlQWRhcHRlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge0RhdGVSYW5nZX0gZnJvbSAnLi9kYXRlLXNlbGVjdGlvbi1tb2RlbCc7XG5cbi8qKiBJbmplY3Rpb24gdG9rZW4gdXNlZCB0byBjdXN0b21pemUgdGhlIGRhdGUgcmFuZ2Ugc2VsZWN0aW9uIGJlaGF2aW9yLiAqL1xuZXhwb3J0IGNvbnN0IE1BVF9EQVRFX1JBTkdFX1NFTEVDVElPTl9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcbiAgTWF0RGF0ZVJhbmdlU2VsZWN0aW9uU3RyYXRlZ3k8YW55PlxuPignTUFUX0RBVEVfUkFOR0VfU0VMRUNUSU9OX1NUUkFURUdZJyk7XG5cbi8qKiBPYmplY3QgdGhhdCBjYW4gYmUgcHJvdmlkZWQgaW4gb3JkZXIgdG8gY3VzdG9taXplIHRoZSBkYXRlIHJhbmdlIHNlbGVjdGlvbiBiZWhhdmlvci4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWF0RGF0ZVJhbmdlU2VsZWN0aW9uU3RyYXRlZ3k8RD4ge1xuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgaGFzIGZpbmlzaGVkIHNlbGVjdGluZyBhIHZhbHVlLlxuICAgKiBAcGFyYW0gZGF0ZSBEYXRlIHRoYXQgd2FzIHNlbGVjdGVkLiBXaWxsIGJlIG51bGwgaWYgdGhlIHVzZXIgY2xlYXJlZCB0aGUgc2VsZWN0aW9uLlxuICAgKiBAcGFyYW0gY3VycmVudFJhbmdlIFJhbmdlIHRoYXQgaXMgY3VycmVudGx5IHNob3cgaW4gdGhlIGNhbGVuZGFyLlxuICAgKiBAcGFyYW0gZXZlbnQgRE9NIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBzZWxlY3Rpb24uIEN1cnJlbnRseSBvbmx5IGNvcnJlc3BvbmRzIHRvIGEgYGNsaWNrYFxuICAgKiAgICBldmVudCwgYnV0IGl0IG1heSBnZXQgZXhwYW5kZWQgaW4gdGhlIGZ1dHVyZS5cbiAgICovXG4gIHNlbGVjdGlvbkZpbmlzaGVkKGRhdGU6IEQgfCBudWxsLCBjdXJyZW50UmFuZ2U6IERhdGVSYW5nZTxEPiwgZXZlbnQ6IEV2ZW50KTogRGF0ZVJhbmdlPEQ+O1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBoYXMgYWN0aXZhdGVkIGEgbmV3IGRhdGUgKGUuZy4gYnkgaG92ZXJpbmcgb3ZlclxuICAgKiBpdCBvciBtb3ZpbmcgZm9jdXMpIGFuZCB0aGUgY2FsZW5kYXIgdHJpZXMgdG8gZGlzcGxheSBhIGRhdGUgcmFuZ2UuXG4gICAqXG4gICAqIEBwYXJhbSBhY3RpdmVEYXRlIERhdGUgdGhhdCB0aGUgdXNlciBoYXMgYWN0aXZhdGVkLiBXaWxsIGJlIG51bGwgaWYgdGhlIHVzZXIgbW92ZWRcbiAgICogICAgZm9jdXMgdG8gYW4gZWxlbWVudCB0aGF0J3Mgbm8gYSBjYWxlbmRhciBjZWxsLlxuICAgKiBAcGFyYW0gY3VycmVudFJhbmdlIFJhbmdlIHRoYXQgaXMgY3VycmVudGx5IHNob3duIGluIHRoZSBjYWxlbmRhci5cbiAgICogQHBhcmFtIGV2ZW50IERPTSBldmVudCB0aGF0IGNhdXNlZCB0aGUgcHJldmlldyB0byBiZSBjaGFuZ2VkLiBXaWxsIGJlIGVpdGhlciBhXG4gICAqICAgIGBtb3VzZWVudGVyYC9gbW91c2VsZWF2ZWAgb3IgYGZvY3VzYC9gYmx1cmAgZGVwZW5kaW5nIG9uIGhvdyB0aGUgdXNlciBpcyBuYXZpZ2F0aW5nLlxuICAgKi9cbiAgY3JlYXRlUHJldmlldyhhY3RpdmVEYXRlOiBEIHwgbnVsbCwgY3VycmVudFJhbmdlOiBEYXRlUmFuZ2U8RD4sIGV2ZW50OiBFdmVudCk6IERhdGVSYW5nZTxEPjtcblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgaGFzIGRyYWdnZWQgYSBkYXRlIGluIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcmFuZ2UgdG8gYW5vdGhlclxuICAgKiBkYXRlLiBSZXR1cm5zIHRoZSBkYXRlIHVwZGF0ZWQgcmFuZ2UgdGhhdCBzaG91bGQgcmVzdWx0IGZyb20gdGhpcyBpbnRlcmFjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGRhdGVPcmlnaW4gVGhlIGRhdGUgdGhlIHVzZXIgc3RhcnRlZCBkcmFnZ2luZyBmcm9tLlxuICAgKiBAcGFyYW0gb3JpZ2luYWxSYW5nZSBUaGUgb3JpZ2luYWxseSBzZWxlY3RlZCBkYXRlIHJhbmdlLlxuICAgKiBAcGFyYW0gbmV3RGF0ZSBUaGUgY3VycmVudGx5IHRhcmdldGVkIGRhdGUgaW4gdGhlIGRyYWcgb3BlcmF0aW9uLlxuICAgKiBAcGFyYW0gZXZlbnQgRE9NIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSB1cGRhdGVkIGRyYWcgc3RhdGUuIFdpbGwgYmVcbiAgICogICAgIGBtb3VzZWVudGVyYC9gbW91c2V1cGAgb3IgYHRvdWNobW92ZWAvYHRvdWNoZW5kYCBkZXBlbmRpbmcgb24gdGhlIGRldmljZSB0eXBlLlxuICAgKi9cbiAgY3JlYXRlRHJhZz8oXG4gICAgZHJhZ09yaWdpbjogRCxcbiAgICBvcmlnaW5hbFJhbmdlOiBEYXRlUmFuZ2U8RD4sXG4gICAgbmV3RGF0ZTogRCxcbiAgICBldmVudDogRXZlbnQsXG4gICk6IERhdGVSYW5nZTxEPiB8IG51bGw7XG59XG5cbi8qKiBQcm92aWRlcyB0aGUgZGVmYXVsdCBkYXRlIHJhbmdlIHNlbGVjdGlvbiBiZWhhdmlvci4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZWZhdWx0TWF0Q2FsZW5kYXJSYW5nZVN0cmF0ZWd5PEQ+IGltcGxlbWVudHMgTWF0RGF0ZVJhbmdlU2VsZWN0aW9uU3RyYXRlZ3k8RD4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8RD4pIHt9XG5cbiAgc2VsZWN0aW9uRmluaXNoZWQoZGF0ZTogRCwgY3VycmVudFJhbmdlOiBEYXRlUmFuZ2U8RD4pIHtcbiAgICBsZXQge3N0YXJ0LCBlbmR9ID0gY3VycmVudFJhbmdlO1xuXG4gICAgaWYgKHN0YXJ0ID09IG51bGwpIHtcbiAgICAgIHN0YXJ0ID0gZGF0ZTtcbiAgICB9IGVsc2UgaWYgKGVuZCA9PSBudWxsICYmIGRhdGUgJiYgdGhpcy5fZGF0ZUFkYXB0ZXIuY29tcGFyZURhdGUoZGF0ZSwgc3RhcnQpID49IDApIHtcbiAgICAgIGVuZCA9IGRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXJ0ID0gZGF0ZTtcbiAgICAgIGVuZCA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRlUmFuZ2U8RD4oc3RhcnQsIGVuZCk7XG4gIH1cblxuICBjcmVhdGVQcmV2aWV3KGFjdGl2ZURhdGU6IEQgfCBudWxsLCBjdXJyZW50UmFuZ2U6IERhdGVSYW5nZTxEPikge1xuICAgIGxldCBzdGFydDogRCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBlbmQ6IEQgfCBudWxsID0gbnVsbDtcblxuICAgIGlmIChjdXJyZW50UmFuZ2Uuc3RhcnQgJiYgIWN1cnJlbnRSYW5nZS5lbmQgJiYgYWN0aXZlRGF0ZSkge1xuICAgICAgc3RhcnQgPSBjdXJyZW50UmFuZ2Uuc3RhcnQ7XG4gICAgICBlbmQgPSBhY3RpdmVEYXRlO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRGF0ZVJhbmdlPEQ+KHN0YXJ0LCBlbmQpO1xuICB9XG5cbiAgY3JlYXRlRHJhZyhkcmFnT3JpZ2luOiBELCBvcmlnaW5hbFJhbmdlOiBEYXRlUmFuZ2U8RD4sIG5ld0RhdGU6IEQpIHtcbiAgICBsZXQgc3RhcnQgPSBvcmlnaW5hbFJhbmdlLnN0YXJ0O1xuICAgIGxldCBlbmQgPSBvcmlnaW5hbFJhbmdlLmVuZDtcblxuICAgIGlmICghc3RhcnQgfHwgIWVuZCkge1xuICAgICAgLy8gQ2FuJ3QgZHJhZyBmcm9tIGFuIGluY29tcGxldGUgcmFuZ2UuXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcy5fZGF0ZUFkYXB0ZXI7XG5cbiAgICBjb25zdCBpc1JhbmdlID0gYWRhcHRlci5jb21wYXJlRGF0ZShzdGFydCwgZW5kKSAhPT0gMDtcbiAgICBjb25zdCBkaWZmWWVhcnMgPSBhZGFwdGVyLmdldFllYXIobmV3RGF0ZSkgLSBhZGFwdGVyLmdldFllYXIoZHJhZ09yaWdpbik7XG4gICAgY29uc3QgZGlmZk1vbnRocyA9IGFkYXB0ZXIuZ2V0TW9udGgobmV3RGF0ZSkgLSBhZGFwdGVyLmdldE1vbnRoKGRyYWdPcmlnaW4pO1xuICAgIGNvbnN0IGRpZmZEYXlzID0gYWRhcHRlci5nZXREYXRlKG5ld0RhdGUpIC0gYWRhcHRlci5nZXREYXRlKGRyYWdPcmlnaW4pO1xuXG4gICAgaWYgKGlzUmFuZ2UgJiYgYWRhcHRlci5zYW1lRGF0ZShkcmFnT3JpZ2luLCBvcmlnaW5hbFJhbmdlLnN0YXJ0KSkge1xuICAgICAgc3RhcnQgPSBuZXdEYXRlO1xuICAgICAgaWYgKGFkYXB0ZXIuY29tcGFyZURhdGUobmV3RGF0ZSwgZW5kKSA+IDApIHtcbiAgICAgICAgZW5kID0gYWRhcHRlci5hZGRDYWxlbmRhclllYXJzKGVuZCwgZGlmZlllYXJzKTtcbiAgICAgICAgZW5kID0gYWRhcHRlci5hZGRDYWxlbmRhck1vbnRocyhlbmQsIGRpZmZNb250aHMpO1xuICAgICAgICBlbmQgPSBhZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhlbmQsIGRpZmZEYXlzKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzUmFuZ2UgJiYgYWRhcHRlci5zYW1lRGF0ZShkcmFnT3JpZ2luLCBvcmlnaW5hbFJhbmdlLmVuZCkpIHtcbiAgICAgIGVuZCA9IG5ld0RhdGU7XG4gICAgICBpZiAoYWRhcHRlci5jb21wYXJlRGF0ZShuZXdEYXRlLCBzdGFydCkgPCAwKSB7XG4gICAgICAgIHN0YXJ0ID0gYWRhcHRlci5hZGRDYWxlbmRhclllYXJzKHN0YXJ0LCBkaWZmWWVhcnMpO1xuICAgICAgICBzdGFydCA9IGFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHMoc3RhcnQsIGRpZmZNb250aHMpO1xuICAgICAgICBzdGFydCA9IGFkYXB0ZXIuYWRkQ2FsZW5kYXJEYXlzKHN0YXJ0LCBkaWZmRGF5cyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXJ0ID0gYWRhcHRlci5hZGRDYWxlbmRhclllYXJzKHN0YXJ0LCBkaWZmWWVhcnMpO1xuICAgICAgc3RhcnQgPSBhZGFwdGVyLmFkZENhbGVuZGFyTW9udGhzKHN0YXJ0LCBkaWZmTW9udGhzKTtcbiAgICAgIHN0YXJ0ID0gYWRhcHRlci5hZGRDYWxlbmRhckRheXMoc3RhcnQsIGRpZmZEYXlzKTtcbiAgICAgIGVuZCA9IGFkYXB0ZXIuYWRkQ2FsZW5kYXJZZWFycyhlbmQsIGRpZmZZZWFycyk7XG4gICAgICBlbmQgPSBhZGFwdGVyLmFkZENhbGVuZGFyTW9udGhzKGVuZCwgZGlmZk1vbnRocyk7XG4gICAgICBlbmQgPSBhZGFwdGVyLmFkZENhbGVuZGFyRGF5cyhlbmQsIGRpZmZEYXlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGVSYW5nZTxEPihzdGFydCwgZW5kKTtcbiAgfVxufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1BVF9DQUxFTkRBUl9SQU5HRV9TVFJBVEVHWV9QUk9WSURFUl9GQUNUT1JZKFxuICBwYXJlbnQ6IE1hdERhdGVSYW5nZVNlbGVjdGlvblN0cmF0ZWd5PHVua25vd24+LFxuICBhZGFwdGVyOiBEYXRlQWRhcHRlcjx1bmtub3duPixcbikge1xuICByZXR1cm4gcGFyZW50IHx8IG5ldyBEZWZhdWx0TWF0Q2FsZW5kYXJSYW5nZVN0cmF0ZWd5KGFkYXB0ZXIpO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IE1BVF9DQUxFTkRBUl9SQU5HRV9TVFJBVEVHWV9QUk9WSURFUjogRmFjdG9yeVByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBNQVRfREFURV9SQU5HRV9TRUxFQ1RJT05fU1RSQVRFR1ksXG4gIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBNQVRfREFURV9SQU5HRV9TRUxFQ1RJT05fU1RSQVRFR1ldLCBEYXRlQWRhcHRlcl0sXG4gIHVzZUZhY3Rvcnk6IE1BVF9DQUxFTkRBUl9SQU5HRV9TVFJBVEVHWV9QUk9WSURFUl9GQUNUT1JZLFxufTtcbiJdfQ==
|