@angular/material-experimental 14.2.1 → 15.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_index.scss +0 -69
- package/esm2020/selection/selection-column.mjs +11 -11
- package/esm2020/selection/selection-module.mjs +5 -5
- package/esm2020/version.mjs +1 -1
- package/fesm2015/material-experimental.mjs +1 -1
- package/fesm2015/material-experimental.mjs.map +1 -1
- package/fesm2015/selection.mjs +13 -13
- package/fesm2015/selection.mjs.map +1 -1
- package/fesm2020/material-experimental.mjs +1 -1
- package/fesm2020/material-experimental.mjs.map +1 -1
- package/fesm2020/selection.mjs +13 -13
- package/fesm2020/selection.mjs.map +1 -1
- package/package.json +55 -422
- package/selection/index.d.ts +4 -4
- package/esm2020/mdc-autocomplete/animations.mjs +0 -25
- package/esm2020/mdc-autocomplete/autocomplete-origin.mjs +0 -26
- package/esm2020/mdc-autocomplete/autocomplete-trigger.mjs +0 -54
- package/esm2020/mdc-autocomplete/autocomplete.mjs +0 -35
- package/esm2020/mdc-autocomplete/index.mjs +0 -9
- package/esm2020/mdc-autocomplete/mdc-autocomplete_public_index.mjs +0 -5
- package/esm2020/mdc-autocomplete/module.mjs +0 -46
- package/esm2020/mdc-autocomplete/public-api.mjs +0 -14
- package/esm2020/mdc-autocomplete/testing/autocomplete-harness-filters.mjs +0 -9
- package/esm2020/mdc-autocomplete/testing/autocomplete-harness.mjs +0 -31
- package/esm2020/mdc-autocomplete/testing/index.mjs +0 -9
- package/esm2020/mdc-autocomplete/testing/public-api.mjs +0 -10
- package/esm2020/mdc-button/button-base.mjs +0 -152
- package/esm2020/mdc-button/button.mjs +0 -69
- package/esm2020/mdc-button/fab.mjs +0 -175
- package/esm2020/mdc-button/icon-button.mjs +0 -57
- package/esm2020/mdc-button/index.mjs +0 -9
- package/esm2020/mdc-button/mdc-button_public_index.mjs +0 -5
- package/esm2020/mdc-button/module.mjs +0 -61
- package/esm2020/mdc-button/public-api.mjs +0 -12
- package/esm2020/mdc-button/testing/button-harness.mjs +0 -50
- package/esm2020/mdc-button/testing/index.mjs +0 -9
- package/esm2020/mdc-button/testing/public-api.mjs +0 -9
- package/esm2020/mdc-card/card.mjs +0 -261
- package/esm2020/mdc-card/index.mjs +0 -9
- package/esm2020/mdc-card/mdc-card_public_index.mjs +0 -5
- package/esm2020/mdc-card/module.mjs +0 -68
- package/esm2020/mdc-card/public-api.mjs +0 -10
- package/esm2020/mdc-card/testing/card-harness-filters.mjs +0 -9
- package/esm2020/mdc-card/testing/card-harness.mjs +0 -42
- package/esm2020/mdc-card/testing/index.mjs +0 -9
- package/esm2020/mdc-card/testing/public-api.mjs +0 -10
- package/esm2020/mdc-checkbox/checkbox.mjs +0 -93
- package/esm2020/mdc-checkbox/index.mjs +0 -9
- package/esm2020/mdc-checkbox/mdc-checkbox_public_index.mjs +0 -5
- package/esm2020/mdc-checkbox/module.mjs +0 -26
- package/esm2020/mdc-checkbox/public-api.mjs +0 -11
- package/esm2020/mdc-checkbox/testing/checkbox-harness.mjs +0 -41
- package/esm2020/mdc-checkbox/testing/index.mjs +0 -9
- package/esm2020/mdc-checkbox/testing/public-api.mjs +0 -9
- package/esm2020/mdc-chips/chip-action.mjs +0 -90
- package/esm2020/mdc-chips/chip-edit-input.mjs +0 -60
- package/esm2020/mdc-chips/chip-grid.mjs +0 -407
- package/esm2020/mdc-chips/chip-icons.mjs +0 -110
- package/esm2020/mdc-chips/chip-input.mjs +0 -212
- package/esm2020/mdc-chips/chip-listbox.mjs +0 -332
- package/esm2020/mdc-chips/chip-option.mjs +0 -160
- package/esm2020/mdc-chips/chip-row.mjs +0 -176
- package/esm2020/mdc-chips/chip-set.mjs +0 -271
- package/esm2020/mdc-chips/chip-text-control.mjs +0 -9
- package/esm2020/mdc-chips/chip.mjs +0 -287
- package/esm2020/mdc-chips/index.mjs +0 -9
- package/esm2020/mdc-chips/mdc-chips_public_index.mjs +0 -5
- package/esm2020/mdc-chips/module.mjs +0 -87
- package/esm2020/mdc-chips/public-api.mjs +0 -20
- package/esm2020/mdc-chips/testing/chip-avatar-harness.mjs +0 -22
- package/esm2020/mdc-chips/testing/chip-grid-harness.mjs +0 -43
- package/esm2020/mdc-chips/testing/chip-harness-filters.mjs +0 -9
- package/esm2020/mdc-chips/testing/chip-harness.mjs +0 -58
- package/esm2020/mdc-chips/testing/chip-input-harness.mjs +0 -82
- package/esm2020/mdc-chips/testing/chip-listbox-harness.mjs +0 -59
- package/esm2020/mdc-chips/testing/chip-option-harness.mjs +0 -45
- package/esm2020/mdc-chips/testing/chip-remove-harness.mjs +0 -26
- package/esm2020/mdc-chips/testing/chip-row-harness.mjs +0 -22
- package/esm2020/mdc-chips/testing/chip-set-harness.mjs +0 -26
- package/esm2020/mdc-chips/testing/index.mjs +0 -9
- package/esm2020/mdc-chips/testing/public-api.mjs +0 -18
- package/esm2020/mdc-chips/tokens.mjs +0 -33
- package/esm2020/mdc-core/index.mjs +0 -9
- package/esm2020/mdc-core/mdc-core_public_index.mjs +0 -5
- package/esm2020/mdc-core/option/index.mjs +0 -30
- package/esm2020/mdc-core/option/optgroup.mjs +0 -46
- package/esm2020/mdc-core/option/option.mjs +0 -52
- package/esm2020/mdc-core/public-api.mjs +0 -10
- package/esm2020/mdc-core/testing/index.mjs +0 -9
- package/esm2020/mdc-core/testing/optgroup-harness-filters.mjs +0 -9
- package/esm2020/mdc-core/testing/optgroup-harness.mjs +0 -43
- package/esm2020/mdc-core/testing/option-harness-filters.mjs +0 -9
- package/esm2020/mdc-core/testing/option-harness.mjs +0 -53
- package/esm2020/mdc-core/testing/public-api.mjs +0 -12
- package/esm2020/mdc-dialog/dialog-container.mjs +0 -171
- package/esm2020/mdc-dialog/dialog-content-directives.mjs +0 -179
- package/esm2020/mdc-dialog/dialog-ref.mjs +0 -14
- package/esm2020/mdc-dialog/dialog.mjs +0 -82
- package/esm2020/mdc-dialog/index.mjs +0 -9
- package/esm2020/mdc-dialog/mdc-dialog_public_index.mjs +0 -5
- package/esm2020/mdc-dialog/module.mjs +0 -53
- package/esm2020/mdc-dialog/public-api.mjs +0 -14
- package/esm2020/mdc-dialog/testing/dialog-harness.mjs +0 -29
- package/esm2020/mdc-dialog/testing/dialog-opener.mjs +0 -45
- package/esm2020/mdc-dialog/testing/index.mjs +0 -9
- package/esm2020/mdc-dialog/testing/public-api.mjs +0 -10
- package/esm2020/mdc-form-field/directives/error.mjs +0 -47
- package/esm2020/mdc-form-field/directives/floating-label.mjs +0 -73
- package/esm2020/mdc-form-field/directives/hint.mjs +0 -39
- package/esm2020/mdc-form-field/directives/label.mjs +0 -21
- package/esm2020/mdc-form-field/directives/line-ripple.mjs +0 -59
- package/esm2020/mdc-form-field/directives/notched-outline.mjs +0 -68
- package/esm2020/mdc-form-field/directives/prefix.mjs +0 -32
- package/esm2020/mdc-form-field/directives/suffix.mjs +0 -32
- package/esm2020/mdc-form-field/form-field.mjs +0 -608
- package/esm2020/mdc-form-field/index.mjs +0 -9
- package/esm2020/mdc-form-field/mdc-form-field_public_index.mjs +0 -5
- package/esm2020/mdc-form-field/module.mjs +0 -53
- package/esm2020/mdc-form-field/public-api.mjs +0 -16
- package/esm2020/mdc-form-field/testing/form-field-harness.mjs +0 -58
- package/esm2020/mdc-form-field/testing/index.mjs +0 -9
- package/esm2020/mdc-form-field/testing/public-api.mjs +0 -13
- package/esm2020/mdc-input/index.mjs +0 -9
- package/esm2020/mdc-input/input.mjs +0 -55
- package/esm2020/mdc-input/mdc-input_public_index.mjs +0 -5
- package/esm2020/mdc-input/module.mjs +0 -27
- package/esm2020/mdc-input/public-api.mjs +0 -11
- package/esm2020/mdc-input/testing/index.mjs +0 -9
- package/esm2020/mdc-input/testing/public-api.mjs +0 -9
- package/esm2020/mdc-list/action-list.mjs +0 -31
- package/esm2020/mdc-list/index.mjs +0 -9
- package/esm2020/mdc-list/list-base.mjs +0 -272
- package/esm2020/mdc-list/list-item-sections.mjs +0 -138
- package/esm2020/mdc-list/list-option-types.mjs +0 -16
- package/esm2020/mdc-list/list-option.mjs +0 -253
- package/esm2020/mdc-list/list.mjs +0 -82
- package/esm2020/mdc-list/mdc-list_public_index.mjs +0 -5
- package/esm2020/mdc-list/module.mjs +0 -98
- package/esm2020/mdc-list/nav-list.mjs +0 -31
- package/esm2020/mdc-list/public-api.mjs +0 -18
- package/esm2020/mdc-list/selection-list.mjs +0 -338
- package/esm2020/mdc-list/subheader.mjs +0 -27
- package/esm2020/mdc-list/testing/action-list-harness.mjs +0 -59
- package/esm2020/mdc-list/testing/index.mjs +0 -9
- package/esm2020/mdc-list/testing/list-harness-base.mjs +0 -95
- package/esm2020/mdc-list/testing/list-harness-filters.mjs +0 -9
- package/esm2020/mdc-list/testing/list-harness.mjs +0 -41
- package/esm2020/mdc-list/testing/list-item-harness-base.mjs +0 -150
- package/esm2020/mdc-list/testing/nav-list-harness.mjs +0 -69
- package/esm2020/mdc-list/testing/public-api.mjs +0 -14
- package/esm2020/mdc-list/testing/selection-list-harness.mjs +0 -117
- package/esm2020/mdc-menu/directives.mjs +0 -38
- package/esm2020/mdc-menu/index.mjs +0 -9
- package/esm2020/mdc-menu/mdc-menu_public_index.mjs +0 -5
- package/esm2020/mdc-menu/menu-item.mjs +0 -36
- package/esm2020/mdc-menu/menu.mjs +0 -43
- package/esm2020/mdc-menu/module.mjs +0 -44
- package/esm2020/mdc-menu/public-api.mjs +0 -13
- package/esm2020/mdc-menu/testing/index.mjs +0 -9
- package/esm2020/mdc-menu/testing/menu-harness.mjs +0 -46
- package/esm2020/mdc-menu/testing/public-api.mjs +0 -9
- package/esm2020/mdc-paginator/index.mjs +0 -9
- package/esm2020/mdc-paginator/mdc-paginator_public_index.mjs +0 -5
- package/esm2020/mdc-paginator/module.mjs +0 -30
- package/esm2020/mdc-paginator/paginator.mjs +0 -48
- package/esm2020/mdc-paginator/public-api.mjs +0 -11
- package/esm2020/mdc-paginator/testing/index.mjs +0 -9
- package/esm2020/mdc-paginator/testing/paginator-harness.mjs +0 -36
- package/esm2020/mdc-paginator/testing/public-api.mjs +0 -9
- package/esm2020/mdc-progress-bar/index.mjs +0 -9
- package/esm2020/mdc-progress-bar/mdc-progress-bar_public_index.mjs +0 -5
- package/esm2020/mdc-progress-bar/module.mjs +0 -24
- package/esm2020/mdc-progress-bar/progress-bar.mjs +0 -152
- package/esm2020/mdc-progress-bar/public-api.mjs +0 -11
- package/esm2020/mdc-progress-bar/testing/index.mjs +0 -9
- package/esm2020/mdc-progress-bar/testing/progress-bar-harness.mjs +0 -33
- package/esm2020/mdc-progress-bar/testing/public-api.mjs +0 -9
- package/esm2020/mdc-progress-bar/testing/testing_public_index.mjs +0 -5
- package/esm2020/mdc-progress-spinner/index.mjs +0 -9
- package/esm2020/mdc-progress-spinner/mdc-progress-spinner_public_index.mjs +0 -5
- package/esm2020/mdc-progress-spinner/module.mjs +0 -26
- package/esm2020/mdc-progress-spinner/progress-spinner.mjs +0 -151
- package/esm2020/mdc-progress-spinner/public-api.mjs +0 -11
- package/esm2020/mdc-progress-spinner/testing/index.mjs +0 -9
- package/esm2020/mdc-progress-spinner/testing/progress-spinner-harness.mjs +0 -35
- package/esm2020/mdc-progress-spinner/testing/public-api.mjs +0 -9
- package/esm2020/mdc-progress-spinner/testing/testing_public_index.mjs +0 -5
- package/esm2020/mdc-radio/index.mjs +0 -9
- package/esm2020/mdc-radio/mdc-radio_public_index.mjs +0 -5
- package/esm2020/mdc-radio/module.mjs +0 -26
- package/esm2020/mdc-radio/public-api.mjs +0 -11
- package/esm2020/mdc-radio/radio.mjs +0 -111
- package/esm2020/mdc-radio/testing/index.mjs +0 -9
- package/esm2020/mdc-radio/testing/public-api.mjs +0 -9
- package/esm2020/mdc-radio/testing/radio-harness.mjs +0 -50
- package/esm2020/mdc-select/index.mjs +0 -9
- package/esm2020/mdc-select/mdc-select_public_index.mjs +0 -5
- package/esm2020/mdc-select/module.mjs +0 -46
- package/esm2020/mdc-select/public-api.mjs +0 -12
- package/esm2020/mdc-select/select-animations.mjs +0 -38
- package/esm2020/mdc-select/select-errors.mjs +0 -35
- package/esm2020/mdc-select/select.mjs +0 -172
- package/esm2020/mdc-select/testing/index.mjs +0 -9
- package/esm2020/mdc-select/testing/public-api.mjs +0 -10
- package/esm2020/mdc-select/testing/select-harness-filters.mjs +0 -9
- package/esm2020/mdc-select/testing/select-harness.mjs +0 -29
- package/esm2020/mdc-slide-toggle/index.mjs +0 -9
- package/esm2020/mdc-slide-toggle/mdc-slide-toggle_public_index.mjs +0 -5
- package/esm2020/mdc-slide-toggle/module.mjs +0 -27
- package/esm2020/mdc-slide-toggle/public-api.mjs +0 -12
- package/esm2020/mdc-slide-toggle/slide-toggle-config.mjs +0 -14
- package/esm2020/mdc-slide-toggle/slide-toggle.mjs +0 -99
- package/esm2020/mdc-slide-toggle/testing/index.mjs +0 -9
- package/esm2020/mdc-slide-toggle/testing/public-api.mjs +0 -9
- package/esm2020/mdc-slide-toggle/testing/slide-toggle-harness.mjs +0 -47
- package/esm2020/mdc-slider/global-change-and-input-listener.mjs +0 -59
- package/esm2020/mdc-slider/index.mjs +0 -9
- package/esm2020/mdc-slider/mdc-slider_public_index.mjs +0 -5
- package/esm2020/mdc-slider/module.mjs +0 -26
- package/esm2020/mdc-slider/public-api.mjs +0 -10
- package/esm2020/mdc-slider/slider.mjs +0 -1094
- package/esm2020/mdc-slider/testing/index.mjs +0 -9
- package/esm2020/mdc-slider/testing/public-api.mjs +0 -11
- package/esm2020/mdc-slider/testing/slider-harness-filters.mjs +0 -2
- package/esm2020/mdc-slider/testing/slider-harness.mjs +0 -62
- package/esm2020/mdc-slider/testing/slider-thumb-harness.mjs +0 -94
- package/esm2020/mdc-snack-bar/index.mjs +0 -9
- package/esm2020/mdc-snack-bar/mdc-snack-bar_public_index.mjs +0 -5
- package/esm2020/mdc-snack-bar/module.mjs +0 -51
- package/esm2020/mdc-snack-bar/public-api.mjs +0 -14
- package/esm2020/mdc-snack-bar/simple-snack-bar.mjs +0 -40
- package/esm2020/mdc-snack-bar/snack-bar-container.mjs +0 -41
- package/esm2020/mdc-snack-bar/snack-bar-content.mjs +0 -52
- package/esm2020/mdc-snack-bar/snack-bar.mjs +0 -45
- package/esm2020/mdc-snack-bar/testing/index.mjs +0 -9
- package/esm2020/mdc-snack-bar/testing/public-api.mjs +0 -9
- package/esm2020/mdc-snack-bar/testing/snack-bar-harness.mjs +0 -34
- package/esm2020/mdc-table/cell.mjs +0 -141
- package/esm2020/mdc-table/index.mjs +0 -9
- package/esm2020/mdc-table/mdc-table_public_index.mjs +0 -5
- package/esm2020/mdc-table/module.mjs +0 -94
- package/esm2020/mdc-table/public-api.mjs +0 -14
- package/esm2020/mdc-table/row.mjs +0 -143
- package/esm2020/mdc-table/table-data-source.mjs +0 -24
- package/esm2020/mdc-table/table.mjs +0 -74
- package/esm2020/mdc-table/testing/cell-harness.mjs +0 -50
- package/esm2020/mdc-table/testing/index.mjs +0 -9
- package/esm2020/mdc-table/testing/public-api.mjs +0 -11
- package/esm2020/mdc-table/testing/row-harness.mjs +0 -64
- package/esm2020/mdc-table/testing/table-harness.mjs +0 -30
- package/esm2020/mdc-table/text-column.mjs +0 -58
- package/esm2020/mdc-tabs/index.mjs +0 -9
- package/esm2020/mdc-tabs/ink-bar.mjs +0 -130
- package/esm2020/mdc-tabs/mdc-tabs_public_index.mjs +0 -5
- package/esm2020/mdc-tabs/module.mjs +0 -93
- package/esm2020/mdc-tabs/public-api.mjs +0 -19
- package/esm2020/mdc-tabs/tab-body.mjs +0 -60
- package/esm2020/mdc-tabs/tab-content.mjs +0 -20
- package/esm2020/mdc-tabs/tab-group.mjs +0 -98
- package/esm2020/mdc-tabs/tab-header.mjs +0 -73
- package/esm2020/mdc-tabs/tab-label-wrapper.mjs +0 -32
- package/esm2020/mdc-tabs/tab-label.mjs +0 -22
- package/esm2020/mdc-tabs/tab-nav-bar/tab-nav-bar.mjs +0 -202
- package/esm2020/mdc-tabs/tab.mjs +0 -34
- package/esm2020/mdc-tabs/testing/index.mjs +0 -9
- package/esm2020/mdc-tabs/testing/public-api.mjs +0 -13
- package/esm2020/mdc-tabs/testing/tab-group-harness.mjs +0 -56
- package/esm2020/mdc-tabs/testing/tab-harness-filters.mjs +0 -2
- package/esm2020/mdc-tabs/testing/tab-harness.mjs +0 -64
- package/esm2020/mdc-tabs/testing/tab-link-harness.mjs +0 -40
- package/esm2020/mdc-tabs/testing/tab-nav-bar-harness.mjs +0 -66
- package/esm2020/mdc-tabs/testing/tab-nav-panel-harness.mjs +0 -27
- package/esm2020/mdc-tooltip/index.mjs +0 -9
- package/esm2020/mdc-tooltip/mdc-tooltip_public_index.mjs +0 -5
- package/esm2020/mdc-tooltip/module.mjs +0 -31
- package/esm2020/mdc-tooltip/public-api.mjs +0 -12
- package/esm2020/mdc-tooltip/testing/index.mjs +0 -9
- package/esm2020/mdc-tooltip/testing/public-api.mjs +0 -9
- package/esm2020/mdc-tooltip/testing/tooltip-harness.mjs +0 -30
- package/esm2020/mdc-tooltip/tooltip-animations.mjs +0 -24
- package/esm2020/mdc-tooltip/tooltip.mjs +0 -132
- package/fesm2015/mdc-autocomplete/testing.mjs +0 -50
- package/fesm2015/mdc-autocomplete/testing.mjs.map +0 -1
- package/fesm2015/mdc-autocomplete.mjs +0 -196
- package/fesm2015/mdc-autocomplete.mjs.map +0 -1
- package/fesm2015/mdc-button/testing.mjs +0 -75
- package/fesm2015/mdc-button/testing.mjs.map +0 -1
- package/fesm2015/mdc-button.mjs +0 -490
- package/fesm2015/mdc-button.mjs.map +0 -1
- package/fesm2015/mdc-card/testing.mjs +0 -63
- package/fesm2015/mdc-card/testing.mjs.map +0 -1
- package/fesm2015/mdc-card.mjs +0 -351
- package/fesm2015/mdc-card.mjs.map +0 -1
- package/fesm2015/mdc-checkbox/testing.mjs +0 -56
- package/fesm2015/mdc-checkbox/testing.mjs.map +0 -1
- package/fesm2015/mdc-checkbox.mjs +0 -142
- package/fesm2015/mdc-checkbox.mjs.map +0 -1
- package/fesm2015/mdc-chips/testing.mjs +0 -394
- package/fesm2015/mdc-chips/testing.mjs.map +0 -1
- package/fesm2015/mdc-chips.mjs +0 -2169
- package/fesm2015/mdc-chips.mjs.map +0 -1
- package/fesm2015/mdc-core/testing.mjs +0 -118
- package/fesm2015/mdc-core/testing.mjs.map +0 -1
- package/fesm2015/mdc-core.mjs +0 -141
- package/fesm2015/mdc-core.mjs.map +0 -1
- package/fesm2015/mdc-dialog/testing.mjs +0 -90
- package/fesm2015/mdc-dialog/testing.mjs.map +0 -1
- package/fesm2015/mdc-dialog.mjs +0 -500
- package/fesm2015/mdc-dialog.mjs.map +0 -1
- package/fesm2015/mdc-form-field/testing.mjs +0 -78
- package/fesm2015/mdc-form-field/testing.mjs.map +0 -1
- package/fesm2015/mdc-form-field.mjs +0 -1018
- package/fesm2015/mdc-form-field.mjs.map +0 -1
- package/fesm2015/mdc-input/testing.mjs +0 -18
- package/fesm2015/mdc-input/testing.mjs.map +0 -1
- package/fesm2015/mdc-input.mjs +0 -103
- package/fesm2015/mdc-input.mjs.map +0 -1
- package/fesm2015/mdc-list/testing.mjs +0 -574
- package/fesm2015/mdc-list/testing.mjs.map +0 -1
- package/fesm2015/mdc-list.mjs +0 -1264
- package/fesm2015/mdc-list.mjs.map +0 -1
- package/fesm2015/mdc-menu/testing.mjs +0 -59
- package/fesm2015/mdc-menu/testing.mjs.map +0 -1
- package/fesm2015/mdc-menu.mjs +0 -174
- package/fesm2015/mdc-menu.mjs.map +0 -1
- package/fesm2015/mdc-paginator/testing.mjs +0 -55
- package/fesm2015/mdc-paginator/testing.mjs.map +0 -1
- package/fesm2015/mdc-paginator.mjs +0 -100
- package/fesm2015/mdc-paginator.mjs.map +0 -1
- package/fesm2015/mdc-progress-bar/testing.mjs +0 -54
- package/fesm2015/mdc-progress-bar/testing.mjs.map +0 -1
- package/fesm2015/mdc-progress-bar.mjs +0 -198
- package/fesm2015/mdc-progress-bar.mjs.map +0 -1
- package/fesm2015/mdc-progress-spinner/testing.mjs +0 -56
- package/fesm2015/mdc-progress-spinner/testing.mjs.map +0 -1
- package/fesm2015/mdc-progress-spinner.mjs +0 -200
- package/fesm2015/mdc-progress-spinner.mjs.map +0 -1
- package/fesm2015/mdc-radio/testing.mjs +0 -63
- package/fesm2015/mdc-radio/testing.mjs.map +0 -1
- package/fesm2015/mdc-radio.mjs +0 -155
- package/fesm2015/mdc-radio.mjs.map +0 -1
- package/fesm2015/mdc-select/testing.mjs +0 -48
- package/fesm2015/mdc-select/testing.mjs.map +0 -1
- package/fesm2015/mdc-select.mjs +0 -273
- package/fesm2015/mdc-select.mjs.map +0 -1
- package/fesm2015/mdc-slide-toggle/testing.mjs +0 -66
- package/fesm2015/mdc-slide-toggle/testing.mjs.map +0 -1
- package/fesm2015/mdc-slide-toggle.mjs +0 -159
- package/fesm2015/mdc-slide-toggle.mjs.map +0 -1
- package/fesm2015/mdc-slider/testing.mjs +0 -199
- package/fesm2015/mdc-slider/testing.mjs.map +0 -1
- package/fesm2015/mdc-slider.mjs +0 -1212
- package/fesm2015/mdc-slider.mjs.map +0 -1
- package/fesm2015/mdc-snack-bar/testing.mjs +0 -49
- package/fesm2015/mdc-snack-bar/testing.mjs.map +0 -1
- package/fesm2015/mdc-snack-bar.mjs +0 -229
- package/fesm2015/mdc-snack-bar.mjs.map +0 -1
- package/fesm2015/mdc-table/testing.mjs +0 -158
- package/fesm2015/mdc-table/testing.mjs.map +0 -1
- package/fesm2015/mdc-table.mjs +0 -540
- package/fesm2015/mdc-table.mjs.map +0 -1
- package/fesm2015/mdc-tabs/testing.mjs +0 -273
- package/fesm2015/mdc-tabs/testing.mjs.map +0 -1
- package/fesm2015/mdc-tabs.mjs +0 -737
- package/fesm2015/mdc-tabs.mjs.map +0 -1
- package/fesm2015/mdc-tooltip/testing.mjs +0 -49
- package/fesm2015/mdc-tooltip/testing.mjs.map +0 -1
- package/fesm2015/mdc-tooltip.mjs +0 -206
- package/fesm2015/mdc-tooltip.mjs.map +0 -1
- package/fesm2020/mdc-autocomplete/testing.mjs +0 -58
- package/fesm2020/mdc-autocomplete/testing.mjs.map +0 -1
- package/fesm2020/mdc-autocomplete.mjs +0 -196
- package/fesm2020/mdc-autocomplete.mjs.map +0 -1
- package/fesm2020/mdc-button/testing.mjs +0 -69
- package/fesm2020/mdc-button/testing.mjs.map +0 -1
- package/fesm2020/mdc-button.mjs +0 -510
- package/fesm2020/mdc-button.mjs.map +0 -1
- package/fesm2020/mdc-card/testing.mjs +0 -69
- package/fesm2020/mdc-card/testing.mjs.map +0 -1
- package/fesm2020/mdc-card.mjs +0 -349
- package/fesm2020/mdc-card.mjs.map +0 -1
- package/fesm2020/mdc-checkbox/testing.mjs +0 -60
- package/fesm2020/mdc-checkbox/testing.mjs.map +0 -1
- package/fesm2020/mdc-checkbox.mjs +0 -139
- package/fesm2020/mdc-checkbox.mjs.map +0 -1
- package/fesm2020/mdc-chips/testing.mjs +0 -395
- package/fesm2020/mdc-chips/testing.mjs.map +0 -1
- package/fesm2020/mdc-chips.mjs +0 -2161
- package/fesm2020/mdc-chips.mjs.map +0 -1
- package/fesm2020/mdc-core/testing.mjs +0 -129
- package/fesm2020/mdc-core/testing.mjs.map +0 -1
- package/fesm2020/mdc-core.mjs +0 -139
- package/fesm2020/mdc-core.mjs.map +0 -1
- package/fesm2020/mdc-dialog/testing.mjs +0 -90
- package/fesm2020/mdc-dialog/testing.mjs.map +0 -1
- package/fesm2020/mdc-dialog.mjs +0 -499
- package/fesm2020/mdc-dialog.mjs.map +0 -1
- package/fesm2020/mdc-form-field/testing.mjs +0 -78
- package/fesm2020/mdc-form-field/testing.mjs.map +0 -1
- package/fesm2020/mdc-form-field.mjs +0 -1014
- package/fesm2020/mdc-form-field.mjs.map +0 -1
- package/fesm2020/mdc-input/testing.mjs +0 -18
- package/fesm2020/mdc-input/testing.mjs.map +0 -1
- package/fesm2020/mdc-input.mjs +0 -103
- package/fesm2020/mdc-input.mjs.map +0 -1
- package/fesm2020/mdc-list/testing.mjs +0 -544
- package/fesm2020/mdc-list/testing.mjs.map +0 -1
- package/fesm2020/mdc-list.mjs +0 -1260
- package/fesm2020/mdc-list.mjs.map +0 -1
- package/fesm2020/mdc-menu/testing.mjs +0 -65
- package/fesm2020/mdc-menu/testing.mjs.map +0 -1
- package/fesm2020/mdc-menu.mjs +0 -172
- package/fesm2020/mdc-menu.mjs.map +0 -1
- package/fesm2020/mdc-paginator/testing.mjs +0 -55
- package/fesm2020/mdc-paginator/testing.mjs.map +0 -1
- package/fesm2020/mdc-paginator.mjs +0 -98
- package/fesm2020/mdc-paginator.mjs.map +0 -1
- package/fesm2020/mdc-progress-bar/testing.mjs +0 -56
- package/fesm2020/mdc-progress-bar/testing.mjs.map +0 -1
- package/fesm2020/mdc-progress-bar.mjs +0 -196
- package/fesm2020/mdc-progress-bar.mjs.map +0 -1
- package/fesm2020/mdc-progress-spinner/testing.mjs +0 -58
- package/fesm2020/mdc-progress-spinner/testing.mjs.map +0 -1
- package/fesm2020/mdc-progress-spinner.mjs +0 -197
- package/fesm2020/mdc-progress-spinner.mjs.map +0 -1
- package/fesm2020/mdc-radio/testing.mjs +0 -69
- package/fesm2020/mdc-radio/testing.mjs.map +0 -1
- package/fesm2020/mdc-radio.mjs +0 -153
- package/fesm2020/mdc-radio.mjs.map +0 -1
- package/fesm2020/mdc-select/testing.mjs +0 -56
- package/fesm2020/mdc-select/testing.mjs.map +0 -1
- package/fesm2020/mdc-select.mjs +0 -273
- package/fesm2020/mdc-select.mjs.map +0 -1
- package/fesm2020/mdc-slide-toggle/testing.mjs +0 -66
- package/fesm2020/mdc-slide-toggle/testing.mjs.map +0 -1
- package/fesm2020/mdc-slide-toggle.mjs +0 -157
- package/fesm2020/mdc-slide-toggle.mjs.map +0 -1
- package/fesm2020/mdc-slider/testing.mjs +0 -172
- package/fesm2020/mdc-slider/testing.mjs.map +0 -1
- package/fesm2020/mdc-slider.mjs +0 -1191
- package/fesm2020/mdc-slider.mjs.map +0 -1
- package/fesm2020/mdc-snack-bar/testing.mjs +0 -53
- package/fesm2020/mdc-snack-bar/testing.mjs.map +0 -1
- package/fesm2020/mdc-snack-bar.mjs +0 -232
- package/fesm2020/mdc-snack-bar.mjs.map +0 -1
- package/fesm2020/mdc-table/testing.mjs +0 -158
- package/fesm2020/mdc-table/testing.mjs.map +0 -1
- package/fesm2020/mdc-table.mjs +0 -539
- package/fesm2020/mdc-table.mjs.map +0 -1
- package/fesm2020/mdc-tabs/testing.mjs +0 -265
- package/fesm2020/mdc-tabs/testing.mjs.map +0 -1
- package/fesm2020/mdc-tabs.mjs +0 -723
- package/fesm2020/mdc-tabs.mjs.map +0 -1
- package/fesm2020/mdc-tooltip/testing.mjs +0 -49
- package/fesm2020/mdc-tooltip/testing.mjs.map +0 -1
- package/fesm2020/mdc-tooltip.mjs +0 -202
- package/fesm2020/mdc-tooltip.mjs.map +0 -1
- package/mdc-autocomplete/_autocomplete-theme.import.scss +0 -5
- package/mdc-autocomplete/_autocomplete-theme.scss +0 -48
- package/mdc-autocomplete/index.d.ts +0 -97
- package/mdc-autocomplete/testing/index.d.ts +0 -32
- package/mdc-button/_button-base.import.scss +0 -4
- package/mdc-button/_button-base.scss +0 -95
- package/mdc-button/_button-theme-private.scss +0 -62
- package/mdc-button/_button-theme.import.scss +0 -16
- package/mdc-button/_button-theme.scss +0 -224
- package/mdc-button/_fab-theme.scss +0 -90
- package/mdc-button/_icon-button-theme.scss +0 -76
- package/mdc-button/index.d.ts +0 -216
- package/mdc-button/testing/index.d.ts +0 -41
- package/mdc-card/_card-theme.import.scss +0 -7
- package/mdc-card/_card-theme.scss +0 -74
- package/mdc-card/index.d.ts +0 -194
- package/mdc-card/testing/index.d.ts +0 -44
- package/mdc-checkbox/_checkbox-private.scss +0 -53
- package/mdc-checkbox/_checkbox-theme.import.scss +0 -15
- package/mdc-checkbox/_checkbox-theme.scss +0 -122
- package/mdc-checkbox/index.d.ts +0 -87
- package/mdc-checkbox/testing/index.d.ts +0 -28
- package/mdc-chips/_chips-theme.import.scss +0 -8
- package/mdc-chips/_chips-theme.scss +0 -117
- package/mdc-chips/index.d.ts +0 -979
- package/mdc-chips/testing/index.d.ts +0 -232
- package/mdc-core/_core-theme.import.scss +0 -10
- package/mdc-core/_core-theme.scss +0 -78
- package/mdc-core/_elevation.scss +0 -38
- package/mdc-core/color/_all-color.scss +0 -25
- package/mdc-core/density/_all-density.scss +0 -25
- package/mdc-core/index.d.ts +0 -206
- package/mdc-core/mdc-helpers/_focus-indicators-theme.scss +0 -39
- package/mdc-core/mdc-helpers/_focus-indicators.import.scss +0 -10
- package/mdc-core/mdc-helpers/_focus-indicators.scss +0 -15
- package/mdc-core/mdc-helpers/_mdc-helpers.import.scss +0 -8
- package/mdc-core/mdc-helpers/_mdc-helpers.scss +0 -221
- package/mdc-core/option/_optgroup-theme.import.scss +0 -7
- package/mdc-core/option/_optgroup-theme.scss +0 -44
- package/mdc-core/option/_option-theme.import.scss +0 -7
- package/mdc-core/option/_option-theme.scss +0 -87
- package/mdc-core/testing/index.d.ts +0 -64
- package/mdc-core/theming/_all-theme.scss +0 -61
- package/mdc-core/theming/prebuilt/deeppurple-amber.css +0 -1
- package/mdc-core/theming/prebuilt/indigo-pink.css +0 -1
- package/mdc-core/theming/prebuilt/pink-bluegrey.css +0 -1
- package/mdc-core/theming/prebuilt/purple-green.css +0 -1
- package/mdc-core/typography/_all-typography.scss +0 -99
- package/mdc-dialog/_dialog-legacy-padding.import.scss +0 -1
- package/mdc-dialog/_dialog-legacy-padding.scss +0 -31
- package/mdc-dialog/_dialog-theme.import.scss +0 -5
- package/mdc-dialog/_dialog-theme.scss +0 -78
- package/mdc-dialog/_mdc-dialog-structure-overrides.import.scss +0 -1
- package/mdc-dialog/_mdc-dialog-structure-overrides.scss +0 -56
- package/mdc-dialog/index.d.ts +0 -217
- package/mdc-dialog/testing/index.d.ts +0 -47
- package/mdc-form-field/_form-field-density.scss +0 -119
- package/mdc-form-field/_form-field-focus-overlay.scss +0 -34
- package/mdc-form-field/_form-field-high-contrast.scss +0 -39
- package/mdc-form-field/_form-field-native-select.scss +0 -133
- package/mdc-form-field/_form-field-sizing.scss +0 -40
- package/mdc-form-field/_form-field-subscript.scss +0 -83
- package/mdc-form-field/_form-field-theme.scss +0 -148
- package/mdc-form-field/_mdc-text-field-structure-overrides.scss +0 -129
- package/mdc-form-field/_mdc-text-field-textarea-overrides.scss +0 -36
- package/mdc-form-field/_mdc-text-field-theme-variable-refresh.scss +0 -63
- package/mdc-form-field/index.d.ts +0 -431
- package/mdc-form-field/testing/index.d.ts +0 -48
- package/mdc-input/_input-theme.import.scss +0 -5
- package/mdc-input/_input-theme.scss +0 -35
- package/mdc-input/index.d.ts +0 -30
- package/mdc-input/testing/index.d.ts +0 -20
- package/mdc-list/_interactive-list-theme.import.scss +0 -5
- package/mdc-list/_interactive-list-theme.scss +0 -40
- package/mdc-list/_list-option-theme.import.scss +0 -13
- package/mdc-list/_list-option-theme.scss +0 -28
- package/mdc-list/_list-option-trailing-avatar-compat.scss +0 -58
- package/mdc-list/_list-theme.import.scss +0 -17
- package/mdc-list/_list-theme.scss +0 -81
- package/mdc-list/index.d.ts +0 -534
- package/mdc-list/testing/index.d.ts +0 -372
- package/mdc-menu/_menu-theme.import.scss +0 -5
- package/mdc-menu/_menu-theme.scss +0 -88
- package/mdc-menu/index.d.ts +0 -110
- package/mdc-menu/testing/index.d.ts +0 -38
- package/mdc-paginator/_paginator-theme.import.scss +0 -9
- package/mdc-paginator/_paginator-theme.scss +0 -106
- package/mdc-paginator/_paginator-variables.import.scss +0 -1
- package/mdc-paginator/_paginator-variables.scss +0 -13
- package/mdc-paginator/index.d.ts +0 -72
- package/mdc-paginator/testing/index.d.ts +0 -30
- package/mdc-progress-bar/_progress-bar-theme.import.scss +0 -6
- package/mdc-progress-bar/_progress-bar-theme.scss +0 -57
- package/mdc-progress-bar/index.d.ts +0 -98
- package/mdc-progress-bar/testing/index.d.ts +0 -24
- package/mdc-progress-spinner/_progress-spinner-theme.import.scss +0 -6
- package/mdc-progress-spinner/_progress-spinner-theme.scss +0 -48
- package/mdc-progress-spinner/index.d.ts +0 -90
- package/mdc-progress-spinner/testing/index.d.ts +0 -26
- package/mdc-radio/_radio-theme.import.scss +0 -7
- package/mdc-radio/_radio-theme.scss +0 -110
- package/mdc-radio/index.d.ts +0 -72
- package/mdc-radio/testing/index.d.ts +0 -43
- package/mdc-select/_select-theme.import.scss +0 -10
- package/mdc-select/_select-theme.scss +0 -100
- package/mdc-select/index.d.ts +0 -111
- package/mdc-select/testing/index.d.ts +0 -28
- package/mdc-slide-toggle/_slide-toggle-theme.import.scss +0 -11
- package/mdc-slide-toggle/_slide-toggle-theme.scss +0 -140
- package/mdc-slide-toggle/index.d.ts +0 -83
- package/mdc-slide-toggle/testing/index.d.ts +0 -27
- package/mdc-slider/_slider-theme.import.scss +0 -5
- package/mdc-slider/_slider-theme.scss +0 -125
- package/mdc-slider/index.d.ts +0 -435
- package/mdc-slider/testing/index.d.ts +0 -92
- package/mdc-snack-bar/_snack-bar-theme.import.scss +0 -8
- package/mdc-snack-bar/_snack-bar-theme.scss +0 -81
- package/mdc-snack-bar/index.d.ts +0 -136
- package/mdc-snack-bar/testing/index.d.ts +0 -23
- package/mdc-table/_table-theme.import.scss +0 -11
- package/mdc-table/_table-theme.scss +0 -78
- package/mdc-table/index.d.ts +0 -238
- package/mdc-table/testing/index.d.ts +0 -118
- package/mdc-tabs/_tabs-common.import.scss +0 -14
- package/mdc-tabs/_tabs-common.scss +0 -196
- package/mdc-tabs/_tabs-theme.import.scss +0 -8
- package/mdc-tabs/_tabs-theme.scss +0 -146
- package/mdc-tabs/index.d.ts +0 -307
- package/mdc-tabs/testing/index.d.ts +0 -151
- package/mdc-tooltip/_tooltip-theme.import.scss +0 -5
- package/mdc-tooltip/_tooltip-theme.scss +0 -49
- package/mdc-tooltip/index.d.ts +0 -118
- package/mdc-tooltip/testing/index.d.ts +0 -26
|
@@ -1,332 +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 { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
9
|
-
import { TAB } from '@angular/cdk/keycodes';
|
|
10
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, forwardRef, Input, Output, QueryList, ViewEncapsulation, } from '@angular/core';
|
|
11
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
12
|
-
import { startWith, takeUntil } from 'rxjs/operators';
|
|
13
|
-
import { MatChipOption } from './chip-option';
|
|
14
|
-
import { MatChipSet } from './chip-set';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
/** Change event object that is emitted when the chip listbox value has changed. */
|
|
17
|
-
export class MatChipListboxChange {
|
|
18
|
-
constructor(
|
|
19
|
-
/** Chip listbox that emitted the event. */
|
|
20
|
-
source,
|
|
21
|
-
/** Value of the chip listbox when the event was emitted. */
|
|
22
|
-
value) {
|
|
23
|
-
this.source = source;
|
|
24
|
-
this.value = value;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Provider Expression that allows mat-chip-listbox to register as a ControlValueAccessor.
|
|
29
|
-
* This allows it to support [(ngModel)].
|
|
30
|
-
* @docs-private
|
|
31
|
-
*/
|
|
32
|
-
export const MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR = {
|
|
33
|
-
provide: NG_VALUE_ACCESSOR,
|
|
34
|
-
useExisting: forwardRef(() => MatChipListbox),
|
|
35
|
-
multi: true,
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* An extension of the MatChipSet component that supports chip selection.
|
|
39
|
-
* Used with MatChipOption chips.
|
|
40
|
-
*/
|
|
41
|
-
export class MatChipListbox extends MatChipSet {
|
|
42
|
-
constructor() {
|
|
43
|
-
super(...arguments);
|
|
44
|
-
/**
|
|
45
|
-
* Function when touched. Set as part of ControlValueAccessor implementation.
|
|
46
|
-
* @docs-private
|
|
47
|
-
*/
|
|
48
|
-
this._onTouched = () => { };
|
|
49
|
-
/**
|
|
50
|
-
* Function when changed. Set as part of ControlValueAccessor implementation.
|
|
51
|
-
* @docs-private
|
|
52
|
-
*/
|
|
53
|
-
this._onChange = () => { };
|
|
54
|
-
// TODO: MDC uses `grid` here
|
|
55
|
-
this._defaultRole = 'listbox';
|
|
56
|
-
this._multiple = false;
|
|
57
|
-
/** Orientation of the chip list. */
|
|
58
|
-
this.ariaOrientation = 'horizontal';
|
|
59
|
-
this._selectable = true;
|
|
60
|
-
/**
|
|
61
|
-
* A function to compare the option values with the selected values. The first argument
|
|
62
|
-
* is a value from an option. The second is a value from the selection. A boolean
|
|
63
|
-
* should be returned.
|
|
64
|
-
*/
|
|
65
|
-
this.compareWith = (o1, o2) => o1 === o2;
|
|
66
|
-
this._required = false;
|
|
67
|
-
/** Event emitted when the selected chip listbox value has been changed by the user. */
|
|
68
|
-
this.change = new EventEmitter();
|
|
69
|
-
}
|
|
70
|
-
/** Whether the user should be allowed to select multiple chips. */
|
|
71
|
-
get multiple() {
|
|
72
|
-
return this._multiple;
|
|
73
|
-
}
|
|
74
|
-
set multiple(value) {
|
|
75
|
-
this._multiple = coerceBooleanProperty(value);
|
|
76
|
-
this._syncListboxProperties();
|
|
77
|
-
}
|
|
78
|
-
/** The array of selected chips inside the chip listbox. */
|
|
79
|
-
get selected() {
|
|
80
|
-
const selectedChips = this._chips.toArray().filter(chip => chip.selected);
|
|
81
|
-
return this.multiple ? selectedChips : selectedChips[0];
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Whether or not this chip listbox is selectable.
|
|
85
|
-
*
|
|
86
|
-
* When a chip listbox is not selectable, the selected states for all
|
|
87
|
-
* the chips inside the chip listbox are always ignored.
|
|
88
|
-
*/
|
|
89
|
-
get selectable() {
|
|
90
|
-
return this._selectable;
|
|
91
|
-
}
|
|
92
|
-
set selectable(value) {
|
|
93
|
-
this._selectable = coerceBooleanProperty(value);
|
|
94
|
-
this._syncListboxProperties();
|
|
95
|
-
}
|
|
96
|
-
/** Whether this chip listbox is required. */
|
|
97
|
-
get required() {
|
|
98
|
-
return this._required;
|
|
99
|
-
}
|
|
100
|
-
set required(value) {
|
|
101
|
-
this._required = coerceBooleanProperty(value);
|
|
102
|
-
}
|
|
103
|
-
/** Combined stream of all of the child chips' selection change events. */
|
|
104
|
-
get chipSelectionChanges() {
|
|
105
|
-
return this._getChipStream(chip => chip.selectionChange);
|
|
106
|
-
}
|
|
107
|
-
/** Combined stream of all of the child chips' blur events. */
|
|
108
|
-
get chipBlurChanges() {
|
|
109
|
-
return this._getChipStream(chip => chip._onBlur);
|
|
110
|
-
}
|
|
111
|
-
/** The value of the listbox, which is the combined value of the selected chips. */
|
|
112
|
-
get value() {
|
|
113
|
-
return this._value;
|
|
114
|
-
}
|
|
115
|
-
set value(value) {
|
|
116
|
-
this.writeValue(value);
|
|
117
|
-
this._value = value;
|
|
118
|
-
}
|
|
119
|
-
ngAfterContentInit() {
|
|
120
|
-
this._chips.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe(() => {
|
|
121
|
-
// Update listbox selectable/multiple properties on chips
|
|
122
|
-
this._syncListboxProperties();
|
|
123
|
-
});
|
|
124
|
-
this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this._blur());
|
|
125
|
-
this.chipSelectionChanges.pipe(takeUntil(this._destroyed)).subscribe(event => {
|
|
126
|
-
if (!this.multiple) {
|
|
127
|
-
this._chips.forEach(chip => {
|
|
128
|
-
if (chip !== event.source) {
|
|
129
|
-
chip._setSelectedState(false, false, false);
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
if (event.isUserInput) {
|
|
134
|
-
this._propagateChanges();
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Focuses the first selected chip in this chip listbox, or the first non-disabled chip when there
|
|
140
|
-
* are no selected chips.
|
|
141
|
-
*/
|
|
142
|
-
focus() {
|
|
143
|
-
if (this.disabled) {
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
const firstSelectedChip = this._getFirstSelectedChip();
|
|
147
|
-
if (firstSelectedChip && !firstSelectedChip.disabled) {
|
|
148
|
-
firstSelectedChip.focus();
|
|
149
|
-
}
|
|
150
|
-
else if (this._chips.length > 0) {
|
|
151
|
-
this._keyManager.setFirstItemActive();
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
this._elementRef.nativeElement.focus();
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Implemented as part of ControlValueAccessor.
|
|
159
|
-
* @docs-private
|
|
160
|
-
*/
|
|
161
|
-
writeValue(value) {
|
|
162
|
-
if (this._chips) {
|
|
163
|
-
this._setSelectionByValue(value, false);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Implemented as part of ControlValueAccessor.
|
|
168
|
-
* @docs-private
|
|
169
|
-
*/
|
|
170
|
-
registerOnChange(fn) {
|
|
171
|
-
this._onChange = fn;
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Implemented as part of ControlValueAccessor.
|
|
175
|
-
* @docs-private
|
|
176
|
-
*/
|
|
177
|
-
registerOnTouched(fn) {
|
|
178
|
-
this._onTouched = fn;
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Implemented as part of ControlValueAccessor.
|
|
182
|
-
* @docs-private
|
|
183
|
-
*/
|
|
184
|
-
setDisabledState(isDisabled) {
|
|
185
|
-
this.disabled = isDisabled;
|
|
186
|
-
}
|
|
187
|
-
/** Selects all chips with value. */
|
|
188
|
-
_setSelectionByValue(value, isUserInput = true) {
|
|
189
|
-
this._clearSelection();
|
|
190
|
-
if (Array.isArray(value)) {
|
|
191
|
-
value.forEach(currentValue => this._selectValue(currentValue, isUserInput));
|
|
192
|
-
}
|
|
193
|
-
else {
|
|
194
|
-
this._selectValue(value, isUserInput);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
/** When blurred, marks the field as touched when focus moved outside the chip listbox. */
|
|
198
|
-
_blur() {
|
|
199
|
-
if (!this.disabled) {
|
|
200
|
-
// Wait to see if focus moves to an individual chip.
|
|
201
|
-
setTimeout(() => {
|
|
202
|
-
if (!this.focused) {
|
|
203
|
-
this._propagateChanges();
|
|
204
|
-
this._markAsTouched();
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
_keydown(event) {
|
|
210
|
-
if (event.keyCode === TAB) {
|
|
211
|
-
super._allowFocusEscape();
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
/** Marks the field as touched */
|
|
215
|
-
_markAsTouched() {
|
|
216
|
-
this._onTouched();
|
|
217
|
-
this._changeDetectorRef.markForCheck();
|
|
218
|
-
}
|
|
219
|
-
/** Emits change event to set the model value. */
|
|
220
|
-
_propagateChanges() {
|
|
221
|
-
let valueToEmit = null;
|
|
222
|
-
if (Array.isArray(this.selected)) {
|
|
223
|
-
valueToEmit = this.selected.map(chip => chip.value);
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
valueToEmit = this.selected ? this.selected.value : undefined;
|
|
227
|
-
}
|
|
228
|
-
this._value = valueToEmit;
|
|
229
|
-
this.change.emit(new MatChipListboxChange(this, valueToEmit));
|
|
230
|
-
this._onChange(valueToEmit);
|
|
231
|
-
this._changeDetectorRef.markForCheck();
|
|
232
|
-
}
|
|
233
|
-
/**
|
|
234
|
-
* Deselects every chip in the listbox.
|
|
235
|
-
* @param skip Chip that should not be deselected.
|
|
236
|
-
*/
|
|
237
|
-
_clearSelection(skip) {
|
|
238
|
-
this._chips.forEach(chip => {
|
|
239
|
-
if (chip !== skip) {
|
|
240
|
-
chip.deselect();
|
|
241
|
-
}
|
|
242
|
-
});
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Finds and selects the chip based on its value.
|
|
246
|
-
* @returns Chip that has the corresponding value.
|
|
247
|
-
*/
|
|
248
|
-
_selectValue(value, isUserInput) {
|
|
249
|
-
const correspondingChip = this._chips.find(chip => {
|
|
250
|
-
return chip.value != null && this.compareWith(chip.value, value);
|
|
251
|
-
});
|
|
252
|
-
if (correspondingChip) {
|
|
253
|
-
isUserInput ? correspondingChip.selectViaInteraction() : correspondingChip.select();
|
|
254
|
-
}
|
|
255
|
-
return correspondingChip;
|
|
256
|
-
}
|
|
257
|
-
/** Syncs the chip-listbox selection state with the individual chips. */
|
|
258
|
-
_syncListboxProperties() {
|
|
259
|
-
if (this._chips) {
|
|
260
|
-
// Defer setting the value in order to avoid the "Expression
|
|
261
|
-
// has changed after it was checked" errors from Angular.
|
|
262
|
-
Promise.resolve().then(() => {
|
|
263
|
-
this._chips.forEach(chip => {
|
|
264
|
-
chip._chipListMultiple = this.multiple;
|
|
265
|
-
chip.chipListSelectable = this._selectable;
|
|
266
|
-
chip._changeDetectorRef.markForCheck();
|
|
267
|
-
});
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
/** Returns the first selected chip in this listbox, or undefined if no chips are selected. */
|
|
272
|
-
_getFirstSelectedChip() {
|
|
273
|
-
if (Array.isArray(this.selected)) {
|
|
274
|
-
return this.selected.length ? this.selected[0] : undefined;
|
|
275
|
-
}
|
|
276
|
-
else {
|
|
277
|
-
return this.selected;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
MatChipListbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipListbox, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
282
|
-
MatChipListbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MatChipListbox, selector: "mat-chip-listbox", inputs: { tabIndex: "tabIndex", multiple: "multiple", ariaOrientation: ["aria-orientation", "ariaOrientation"], selectable: "selectable", compareWith: "compareWith", required: "required", value: "value" }, outputs: { change: "change" }, host: { listeners: { "focus": "focus()", "blur": "_blur()", "keydown": "_keydown($event)" }, properties: { "attr.role": "role", "tabIndex": "empty ? -1 : tabIndex", "attr.aria-describedby": "_ariaDescribedby || null", "attr.aria-required": "role ? required : null", "attr.aria-disabled": "disabled.toString()", "attr.aria-multiselectable": "multiple", "attr.aria-orientation": "ariaOrientation", "class.mat-mdc-chip-list-disabled": "disabled", "class.mat-mdc-chip-list-required": "required" }, classAttribute: "mdc-evolution-chip-set mat-mdc-chip-listbox" }, providers: [MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR], queries: [{ propertyName: "_chips", predicate: MatChipOption, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
283
|
-
<span class="mdc-evolution-chip-set__chips" role="presentation">
|
|
284
|
-
<ng-content></ng-content>
|
|
285
|
-
</span>
|
|
286
|
-
`, isInline: true, styles: [".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
287
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipListbox, decorators: [{
|
|
288
|
-
type: Component,
|
|
289
|
-
args: [{ selector: 'mat-chip-listbox', template: `
|
|
290
|
-
<span class="mdc-evolution-chip-set__chips" role="presentation">
|
|
291
|
-
<ng-content></ng-content>
|
|
292
|
-
</span>
|
|
293
|
-
`, inputs: ['tabIndex'], host: {
|
|
294
|
-
'class': 'mdc-evolution-chip-set mat-mdc-chip-listbox',
|
|
295
|
-
'[attr.role]': 'role',
|
|
296
|
-
'[tabIndex]': 'empty ? -1 : tabIndex',
|
|
297
|
-
// TODO: replace this binding with use of AriaDescriber
|
|
298
|
-
'[attr.aria-describedby]': '_ariaDescribedby || null',
|
|
299
|
-
'[attr.aria-required]': 'role ? required : null',
|
|
300
|
-
'[attr.aria-disabled]': 'disabled.toString()',
|
|
301
|
-
'[attr.aria-multiselectable]': 'multiple',
|
|
302
|
-
'[attr.aria-orientation]': 'ariaOrientation',
|
|
303
|
-
'[class.mat-mdc-chip-list-disabled]': 'disabled',
|
|
304
|
-
'[class.mat-mdc-chip-list-required]': 'required',
|
|
305
|
-
'(focus)': 'focus()',
|
|
306
|
-
'(blur)': '_blur()',
|
|
307
|
-
'(keydown)': '_keydown($event)',
|
|
308
|
-
}, providers: [MAT_CHIP_LISTBOX_CONTROL_VALUE_ACCESSOR], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".mdc-evolution-chip-set{display:flex}.mdc-evolution-chip-set:focus{outline:none}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mdc-evolution-chip-set--overflow .mdc-evolution-chip-set__chips{flex-flow:nowrap}.mdc-evolution-chip-set .mdc-evolution-chip-set__chips{margin-left:-8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip-set__chips,.mdc-evolution-chip-set .mdc-evolution-chip-set__chips[dir=rtl]{margin-left:0;margin-right:-8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-left:8px;margin-right:0}[dir=rtl] .mdc-evolution-chip-set .mdc-evolution-chip,.mdc-evolution-chip-set .mdc-evolution-chip[dir=rtl]{margin-left:0;margin-right:8px}.mdc-evolution-chip-set .mdc-evolution-chip{margin-top:4px;margin-bottom:4px}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px}"] }]
|
|
309
|
-
}], propDecorators: { multiple: [{
|
|
310
|
-
type: Input
|
|
311
|
-
}], ariaOrientation: [{
|
|
312
|
-
type: Input,
|
|
313
|
-
args: ['aria-orientation']
|
|
314
|
-
}], selectable: [{
|
|
315
|
-
type: Input
|
|
316
|
-
}], compareWith: [{
|
|
317
|
-
type: Input
|
|
318
|
-
}], required: [{
|
|
319
|
-
type: Input
|
|
320
|
-
}], value: [{
|
|
321
|
-
type: Input
|
|
322
|
-
}], change: [{
|
|
323
|
-
type: Output
|
|
324
|
-
}], _chips: [{
|
|
325
|
-
type: ContentChildren,
|
|
326
|
-
args: [MatChipOption, {
|
|
327
|
-
// We need to use `descendants: true`, because Ivy will no longer match
|
|
328
|
-
// indirect descendants if it's left as false.
|
|
329
|
-
descendants: true,
|
|
330
|
-
}]
|
|
331
|
-
}] } });
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1saXN0Ym94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsLWV4cGVyaW1lbnRhbC9tZGMtY2hpcHMvY2hpcC1saXN0Ym94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUMxQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFDLGFBQWEsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFlBQVksQ0FBQzs7QUFFdEMsbUZBQW1GO0FBQ25GLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0I7SUFDRSwyQ0FBMkM7SUFDcEMsTUFBc0I7SUFDN0IsNERBQTREO0lBQ3JELEtBQVU7UUFGVixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUV0QixVQUFLLEdBQUwsS0FBSyxDQUFLO0lBQ2hCLENBQUM7Q0FDTDtBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBUTtJQUMxRCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO0lBQzdDLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGOzs7R0FHRztBQThCSCxN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S0FBSztnQkFJRixRQUFRO3NCQURYLEtBQUs7Z0JBcUJGLEtBQUs7c0JBRFIsS0FBSztnQkFXYSxNQUFNO3NCQUF4QixNQUFNO2dCQVFFLE1BQU07c0JBTGQsZUFBZTt1QkFBQyxhQUFhLEVBQUU7d0JBQzlCLHVFQUF1RTt3QkFDdkUsOENBQThDO3dCQUM5QyxXQUFXLEVBQUUsSUFBSTtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7VEFCfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3RhcnRXaXRoLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWF0Q2hpcCwgTWF0Q2hpcEV2ZW50fSBmcm9tICcuL2NoaXAnO1xuaW1wb3J0IHtNYXRDaGlwT3B0aW9uLCBNYXRDaGlwU2VsZWN0aW9uQ2hhbmdlfSBmcm9tICcuL2NoaXAtb3B0aW9uJztcbmltcG9ydCB7TWF0Q2hpcFNldH0gZnJvbSAnLi9jaGlwLXNldCc7XG5cbi8qKiBDaGFuZ2UgZXZlbnQgb2JqZWN0IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBjaGlwIGxpc3Rib3ggdmFsdWUgaGFzIGNoYW5nZWQuICovXG5leHBvcnQgY2xhc3MgTWF0Q2hpcExpc3Rib3hDaGFuZ2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogQ2hpcCBsaXN0Ym94IHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXG4gICAgcHVibGljIHNvdXJjZTogTWF0Q2hpcExpc3Rib3gsXG4gICAgLyoqIFZhbHVlIG9mIHRoZSBjaGlwIGxpc3Rib3ggd2hlbiB0aGUgZXZlbnQgd2FzIGVtaXR0ZWQuICovXG4gICAgcHVibGljIHZhbHVlOiBhbnksXG4gICkge31cbn1cblxuLyoqXG4gKiBQcm92aWRlciBFeHByZXNzaW9uIHRoYXQgYWxsb3dzIG1hdC1jaGlwLWxpc3Rib3ggdG8gcmVnaXN0ZXIgYXMgYSBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAqIFRoaXMgYWxsb3dzIGl0IHRvIHN1cHBvcnQgWyhuZ01vZGVsKV0uXG4gKiBAZG9jcy1wcml2YXRlXG4gKi9cbmV4cG9ydCBjb25zdCBNQVRfQ0hJUF9MSVNUQk9YX0NPTlRST0xfVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1hdENoaXBMaXN0Ym94KSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG4vKipcbiAqIEFuIGV4dGVuc2lvbiBvZiB0aGUgTWF0Q2hpcFNldCBjb21wb25lbnQgdGhhdCBzdXBwb3J0cyBjaGlwIHNlbGVjdGlvbi5cbiAqIFVzZWQgd2l0aCBNYXRDaGlwT3B0aW9uIGNoaXBzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtY2hpcC1saXN0Ym94JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3BhbiBjbGFzcz1cIm1kYy1ldm9sdXRpb24tY2hpcC1zZXRfX2NoaXBzXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJ2NoaXAtc2V0LmNzcyddLFxuICBpbnB1dHM6IFsndGFiSW5kZXgnXSxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdtZGMtZXZvbHV0aW9uLWNoaXAtc2V0IG1hdC1tZGMtY2hpcC1saXN0Ym94JyxcbiAgICAnW2F0dHIucm9sZV0nOiAncm9sZScsXG4gICAgJ1t0YWJJbmRleF0nOiAnZW1wdHkgPyAtMSA6IHRhYkluZGV4JyxcbiAgICAvLyBUT0RPOiByZXBsYWNlIHRoaXMgYmluZGluZyB3aXRoIHVzZSBvZiBBcmlhRGVzY3JpYmVyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ19hcmlhRGVzY3JpYmVkYnkgfHwgbnVsbCcsXG4gICAgJ1thdHRyLmFyaWEtcmVxdWlyZWRdJzogJ3JvbGUgPyByZXF1aXJlZCA6IG51bGwnLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZC50b1N0cmluZygpJyxcbiAgICAnW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdJzogJ211bHRpcGxlJyxcbiAgICAnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAnYXJpYU9yaWVudGF0aW9uJyxcbiAgICAnW2NsYXNzLm1hdC1tZGMtY2hpcC1saXN0LWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5tYXQtbWRjLWNoaXAtbGlzdC1yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICcoZm9jdXMpJzogJ2ZvY3VzKCknLFxuICAgICcoYmx1ciknOiAnX2JsdXIoKScsXG4gICAgJyhrZXlkb3duKSc6ICdfa2V5ZG93bigkZXZlbnQpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbTUFUX0NISVBfTElTVEJPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hdENoaXBMaXN0Ym94XG4gIGV4dGVuZHMgTWF0Q2hpcFNldFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3JcbntcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHdoZW4gdG91Y2hlZC4gU2V0IGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb24uXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIF9vblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gd2hlbiBjaGFuZ2VkLiBTZXQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbi5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgX29uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIC8vIFRPRE86IE1EQyB1c2VzIGBncmlkYCBoZXJlXG4gIHByb3RlY3RlZCBvdmVycmlkZSBfZGVmYXVsdFJvbGUgPSAnbGlzdGJveCc7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgc2hvdWxkIGJlIGFsbG93ZWQgdG8gc2VsZWN0IG11bHRpcGxlIGNoaXBzLiAqL1xuICBASW5wdXQoKVxuICBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICB9XG4gIHNldCBtdWx0aXBsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuX3N5bmNMaXN0Ym94UHJvcGVydGllcygpO1xuICB9XG4gIHByaXZhdGUgX211bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBhcnJheSBvZiBzZWxlY3RlZCBjaGlwcyBpbnNpZGUgdGhlIGNoaXAgbGlzdGJveC4gKi9cbiAgZ2V0IHNlbGVjdGVkKCk6IE1hdENoaXBPcHRpb25bXSB8IE1hdENoaXBPcHRpb24ge1xuICAgIGNvbnN0IHNlbGVjdGVkQ2hpcHMgPSB0aGlzLl9jaGlwcy50b0FycmF5KCkuZmlsdGVyKGNoaXAgPT4gY2hpcC5zZWxlY3RlZCk7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgPyBzZWxlY3RlZENoaXBzIDogc2VsZWN0ZWRDaGlwc1swXTtcbiAgfVxuXG4gIC8qKiBPcmllbnRhdGlvbiBvZiB0aGUgY2hpcCBsaXN0LiAqL1xuICBASW5wdXQoJ2FyaWEtb3JpZW50YXRpb24nKSBhcmlhT3JpZW50YXRpb246ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCcgPSAnaG9yaXpvbnRhbCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgY2hpcCBsaXN0Ym94IGlzIHNlbGVjdGFibGUuXG4gICAqXG4gICAqIFdoZW4gYSBjaGlwIGxpc3Rib3ggaXMgbm90IHNlbGVjdGFibGUsIHRoZSBzZWxlY3RlZCBzdGF0ZXMgZm9yIGFsbFxuICAgKiB0aGUgY2hpcHMgaW5zaWRlIHRoZSBjaGlwIGxpc3Rib3ggYXJlIGFsd2F5cyBpZ25vcmVkLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGU7XG4gIH1cbiAgc2V0IHNlbGVjdGFibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3NlbGVjdGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuX3N5bmNMaXN0Ym94UHJvcGVydGllcygpO1xuICB9XG4gIHByb3RlY3RlZCBfc2VsZWN0YWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdG8gY29tcGFyZSB0aGUgb3B0aW9uIHZhbHVlcyB3aXRoIHRoZSBzZWxlY3RlZCB2YWx1ZXMuIFRoZSBmaXJzdCBhcmd1bWVudFxuICAgKiBpcyBhIHZhbHVlIGZyb20gYW4gb3B0aW9uLiBUaGUgc2Vjb25kIGlzIGEgdmFsdWUgZnJvbSB0aGUgc2VsZWN0aW9uLiBBIGJvb2xlYW5cbiAgICogc2hvdWxkIGJlIHJldHVybmVkLlxuICAgKi9cbiAgQElucHV0KCkgY29tcGFyZVdpdGg6IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IG8xID09PSBvMjtcblxuICAvKiogV2hldGhlciB0aGlzIGNoaXAgbGlzdGJveCBpcyByZXF1aXJlZC4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuICBzZXQgcmVxdWlyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcm90ZWN0ZWQgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIGNoaXBzJyBzZWxlY3Rpb24gY2hhbmdlIGV2ZW50cy4gKi9cbiAgZ2V0IGNoaXBTZWxlY3Rpb25DaGFuZ2VzKCk6IE9ic2VydmFibGU8TWF0Q2hpcFNlbGVjdGlvbkNoYW5nZT4ge1xuICAgIHJldHVybiB0aGlzLl9nZXRDaGlwU3RyZWFtPE1hdENoaXBTZWxlY3Rpb25DaGFuZ2UsIE1hdENoaXBPcHRpb24+KGNoaXAgPT4gY2hpcC5zZWxlY3Rpb25DaGFuZ2UpO1xuICB9XG5cbiAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIGNoaXBzJyBibHVyIGV2ZW50cy4gKi9cbiAgZ2V0IGNoaXBCbHVyQ2hhbmdlcygpOiBPYnNlcnZhYmxlPE1hdENoaXBFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLl9nZXRDaGlwU3RyZWFtKGNoaXAgPT4gY2hpcC5fb25CbHVyKTtcbiAgfVxuXG4gIC8qKiBUaGUgdmFsdWUgb2YgdGhlIGxpc3Rib3gsIHdoaWNoIGlzIHRoZSBjb21iaW5lZCB2YWx1ZSBvZiB0aGUgc2VsZWN0ZWQgY2hpcHMuICovXG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBhbnk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgY2hpcCBsaXN0Ym94IHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYnkgdGhlIHVzZXIuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxNYXRDaGlwTGlzdGJveENoYW5nZT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8TWF0Q2hpcExpc3Rib3hDaGFuZ2U+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNYXRDaGlwT3B0aW9uLCB7XG4gICAgLy8gV2UgbmVlZCB0byB1c2UgYGRlc2NlbmRhbnRzOiB0cnVlYCwgYmVjYXVzZSBJdnkgd2lsbCBubyBsb25nZXIgbWF0Y2hcbiAgICAvLyBpbmRpcmVjdCBkZXNjZW5kYW50cyBpZiBpdCdzIGxlZnQgYXMgZmFsc2UuXG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pXG4gIG92ZXJyaWRlIF9jaGlwczogUXVlcnlMaXN0PE1hdENoaXBPcHRpb24+O1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9jaGlwcy5jaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKG51bGwpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIC8vIFVwZGF0ZSBsaXN0Ym94IHNlbGVjdGFibGUvbXVsdGlwbGUgcHJvcGVydGllcyBvbiBjaGlwc1xuICAgICAgdGhpcy5fc3luY0xpc3Rib3hQcm9wZXJ0aWVzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmNoaXBCbHVyQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fYmx1cigpKTtcbiAgICB0aGlzLmNoaXBTZWxlY3Rpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5fY2hpcHMuZm9yRWFjaChjaGlwID0+IHtcbiAgICAgICAgICBpZiAoY2hpcCAhPT0gZXZlbnQuc291cmNlKSB7XG4gICAgICAgICAgICBjaGlwLl9zZXRTZWxlY3RlZFN0YXRlKGZhbHNlLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5pc1VzZXJJbnB1dCkge1xuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgZmlyc3Qgc2VsZWN0ZWQgY2hpcCBpbiB0aGlzIGNoaXAgbGlzdGJveCwgb3IgdGhlIGZpcnN0IG5vbi1kaXNhYmxlZCBjaGlwIHdoZW4gdGhlcmVcbiAgICogYXJlIG5vIHNlbGVjdGVkIGNoaXBzLlxuICAgKi9cbiAgb3ZlcnJpZGUgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdFNlbGVjdGVkQ2hpcCA9IHRoaXMuX2dldEZpcnN0U2VsZWN0ZWRDaGlwKCk7XG5cbiAgICBpZiAoZmlyc3RTZWxlY3RlZENoaXAgJiYgIWZpcnN0U2VsZWN0ZWRDaGlwLmRpc2FibGVkKSB7XG4gICAgICBmaXJzdFNlbGVjdGVkQ2hpcC5mb2N1cygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fY2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgdGhpcy5fc2V0U2VsZWN0aW9uQnlWYWx1ZSh2YWx1ZSwgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qKiBTZWxlY3RzIGFsbCBjaGlwcyB3aXRoIHZhbHVlLiAqL1xuICBfc2V0U2VsZWN0aW9uQnlWYWx1ZSh2YWx1ZTogYW55LCBpc1VzZXJJbnB1dDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICB0aGlzLl9jbGVhclNlbGVjdGlvbigpO1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICB2YWx1ZS5mb3JFYWNoKGN1cnJlbnRWYWx1ZSA9PiB0aGlzLl9zZWxlY3RWYWx1ZShjdXJyZW50VmFsdWUsIGlzVXNlcklucHV0KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3NlbGVjdFZhbHVlKHZhbHVlLCBpc1VzZXJJbnB1dCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFdoZW4gYmx1cnJlZCwgbWFya3MgdGhlIGZpZWxkIGFzIHRvdWNoZWQgd2hlbiBmb2N1cyBtb3ZlZCBvdXRzaWRlIHRoZSBjaGlwIGxpc3Rib3guICovXG4gIF9ibHVyKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgLy8gV2FpdCB0byBzZWUgaWYgZm9jdXMgbW92ZXMgdG8gYW4gaW5kaXZpZHVhbCBjaGlwLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5mb2N1c2VkKSB7XG4gICAgICAgICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlcygpO1xuICAgICAgICAgIHRoaXMuX21hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgX2tleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gVEFCKSB7XG4gICAgICBzdXBlci5fYWxsb3dGb2N1c0VzY2FwZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBNYXJrcyB0aGUgZmllbGQgYXMgdG91Y2hlZCAqL1xuICBwcml2YXRlIF9tYXJrQXNUb3VjaGVkKCkge1xuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIEVtaXRzIGNoYW5nZSBldmVudCB0byBzZXQgdGhlIG1vZGVsIHZhbHVlLiAqL1xuICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGxldCB2YWx1ZVRvRW1pdDogYW55ID0gbnVsbDtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWQpKSB7XG4gICAgICB2YWx1ZVRvRW1pdCA9IHRoaXMuc2VsZWN0ZWQubWFwKGNoaXAgPT4gY2hpcC52YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlVG9FbWl0ID0gdGhpcy5zZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWQudmFsdWUgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWVUb0VtaXQ7XG4gICAgdGhpcy5jaGFuZ2UuZW1pdChuZXcgTWF0Q2hpcExpc3Rib3hDaGFuZ2UodGhpcywgdmFsdWVUb0VtaXQpKTtcbiAgICB0aGlzLl9vbkNoYW5nZSh2YWx1ZVRvRW1pdCk7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzZWxlY3RzIGV2ZXJ5IGNoaXAgaW4gdGhlIGxpc3Rib3guXG4gICAqIEBwYXJhbSBza2lwIENoaXAgdGhhdCBzaG91bGQgbm90IGJlIGRlc2VsZWN0ZWQuXG4gICAqL1xuICBwcml2YXRlIF9jbGVhclNlbGVjdGlvbihza2lwPzogTWF0Q2hpcCk6IHZvaWQge1xuICAgIHRoaXMuX2NoaXBzLmZvckVhY2goY2hpcCA9PiB7XG4gICAgICBpZiAoY2hpcCAhPT0gc2tpcCkge1xuICAgICAgICBjaGlwLmRlc2VsZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYW5kIHNlbGVjdHMgdGhlIGNoaXAgYmFzZWQgb24gaXRzIHZhbHVlLlxuICAgKiBAcmV0dXJucyBDaGlwIHRoYXQgaGFzIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2VsZWN0VmFsdWUodmFsdWU6IGFueSwgaXNVc2VySW5wdXQ6IGJvb2xlYW4pOiBNYXRDaGlwIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjb3JyZXNwb25kaW5nQ2hpcCA9IHRoaXMuX2NoaXBzLmZpbmQoY2hpcCA9PiB7XG4gICAgICByZXR1cm4gY2hpcC52YWx1ZSAhPSBudWxsICYmIHRoaXMuY29tcGFyZVdpdGgoY2hpcC52YWx1ZSwgdmFsdWUpO1xuICAgIH0pO1xuXG4gICAgaWYgKGNvcnJlc3BvbmRpbmdDaGlwKSB7XG4gICAgICBpc1VzZXJJbnB1dCA/IGNvcnJlc3BvbmRpbmdDaGlwLnNlbGVjdFZpYUludGVyYWN0aW9uKCkgOiBjb3JyZXNwb25kaW5nQ2hpcC5zZWxlY3QoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29ycmVzcG9uZGluZ0NoaXA7XG4gIH1cblxuICAvKiogU3luY3MgdGhlIGNoaXAtbGlzdGJveCBzZWxlY3Rpb24gc3RhdGUgd2l0aCB0aGUgaW5kaXZpZHVhbCBjaGlwcy4gKi9cbiAgcHJpdmF0ZSBfc3luY0xpc3Rib3hQcm9wZXJ0aWVzKCkge1xuICAgIGlmICh0aGlzLl9jaGlwcykge1xuICAgICAgLy8gRGVmZXIgc2V0dGluZyB0aGUgdmFsdWUgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIFwiRXhwcmVzc2lvblxuICAgICAgLy8gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgd2FzIGNoZWNrZWRcIiBlcnJvcnMgZnJvbSBBbmd1bGFyLlxuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoaXBzLmZvckVhY2goY2hpcCA9PiB7XG4gICAgICAgICAgY2hpcC5fY2hpcExpc3RNdWx0aXBsZSA9IHRoaXMubXVsdGlwbGU7XG4gICAgICAgICAgY2hpcC5jaGlwTGlzdFNlbGVjdGFibGUgPSB0aGlzLl9zZWxlY3RhYmxlO1xuICAgICAgICAgIGNoaXAuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBmaXJzdCBzZWxlY3RlZCBjaGlwIGluIHRoaXMgbGlzdGJveCwgb3IgdW5kZWZpbmVkIGlmIG5vIGNoaXBzIGFyZSBzZWxlY3RlZC4gKi9cbiAgcHJpdmF0ZSBfZ2V0Rmlyc3RTZWxlY3RlZENoaXAoKTogTWF0Q2hpcE9wdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5zZWxlY3RlZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLmxlbmd0aCA/IHRoaXMuc2VsZWN0ZWRbMF0gOiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkO1xuICAgIH1cbiAgfVxufVxuIl19
|