@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,60 +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 { Directive, ElementRef, Inject } from '@angular/core';
|
|
9
|
-
import { DOCUMENT } from '@angular/common';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
/**
|
|
12
|
-
* A directive that makes a span editable and exposes functions to modify and retrieve the
|
|
13
|
-
* element's contents.
|
|
14
|
-
*/
|
|
15
|
-
export class MatChipEditInput {
|
|
16
|
-
constructor(_elementRef, _document) {
|
|
17
|
-
this._elementRef = _elementRef;
|
|
18
|
-
this._document = _document;
|
|
19
|
-
}
|
|
20
|
-
initialize(initialValue) {
|
|
21
|
-
this.getNativeElement().focus();
|
|
22
|
-
this.setValue(initialValue);
|
|
23
|
-
}
|
|
24
|
-
getNativeElement() {
|
|
25
|
-
return this._elementRef.nativeElement;
|
|
26
|
-
}
|
|
27
|
-
setValue(value) {
|
|
28
|
-
this.getNativeElement().textContent = value;
|
|
29
|
-
this._moveCursorToEndOfInput();
|
|
30
|
-
}
|
|
31
|
-
getValue() {
|
|
32
|
-
return this.getNativeElement().textContent || '';
|
|
33
|
-
}
|
|
34
|
-
_moveCursorToEndOfInput() {
|
|
35
|
-
const range = this._document.createRange();
|
|
36
|
-
range.selectNodeContents(this.getNativeElement());
|
|
37
|
-
range.collapse(false);
|
|
38
|
-
const sel = window.getSelection();
|
|
39
|
-
sel.removeAllRanges();
|
|
40
|
-
sel.addRange(range);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
MatChipEditInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipEditInput, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
|
|
44
|
-
MatChipEditInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.0", type: MatChipEditInput, selector: "span[matChipEditInput]", host: { attributes: { "role": "textbox", "tabindex": "-1", "contenteditable": "true" }, classAttribute: "mat-chip-edit-input" }, ngImport: i0 });
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipEditInput, decorators: [{
|
|
46
|
-
type: Directive,
|
|
47
|
-
args: [{
|
|
48
|
-
selector: 'span[matChipEditInput]',
|
|
49
|
-
host: {
|
|
50
|
-
'class': 'mat-chip-edit-input',
|
|
51
|
-
'role': 'textbox',
|
|
52
|
-
'tabindex': '-1',
|
|
53
|
-
'contenteditable': 'true',
|
|
54
|
-
},
|
|
55
|
-
}]
|
|
56
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
57
|
-
type: Inject,
|
|
58
|
-
args: [DOCUMENT]
|
|
59
|
-
}] }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1lZGl0LWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsLWV4cGVyaW1lbnRhbC9tZGMtY2hpcHMvY2hpcC1lZGl0LWlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBRXpDOzs7R0FHRztBQVVILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDbUIsV0FBdUIsRUFDTCxTQUFjO1FBRGhDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ0wsY0FBUyxHQUFULFNBQVMsQ0FBSztJQUNoRCxDQUFDO0lBRUosVUFBVSxDQUFDLFlBQW9CO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRyxDQUFDO1FBQ25DLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLENBQUM7OzZHQS9CVSxnQkFBZ0IsNENBR2pCLFFBQVE7aUdBSFAsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBVDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsSUFBSSxFQUFFO3dCQUNKLE9BQU8sRUFBRSxxQkFBcUI7d0JBQzlCLE1BQU0sRUFBRSxTQUFTO3dCQUNqQixVQUFVLEVBQUUsSUFBSTt3QkFDaEIsaUJBQWlCLEVBQUUsTUFBTTtxQkFDMUI7aUJBQ0Y7OzBCQUlJLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBtYWtlcyBhIHNwYW4gZWRpdGFibGUgYW5kIGV4cG9zZXMgZnVuY3Rpb25zIHRvIG1vZGlmeSBhbmQgcmV0cmlldmUgdGhlXG4gKiBlbGVtZW50J3MgY29udGVudHMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NwYW5bbWF0Q2hpcEVkaXRJbnB1dF0nLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ21hdC1jaGlwLWVkaXQtaW5wdXQnLFxuICAgICdyb2xlJzogJ3RleHRib3gnLFxuICAgICd0YWJpbmRleCc6ICctMScsXG4gICAgJ2NvbnRlbnRlZGl0YWJsZSc6ICd0cnVlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTWF0Q2hpcEVkaXRJbnB1dCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQ6IGFueSxcbiAgKSB7fVxuXG4gIGluaXRpYWxpemUoaW5pdGlhbFZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmdldE5hdGl2ZUVsZW1lbnQoKS5mb2N1cygpO1xuICAgIHRoaXMuc2V0VmFsdWUoaW5pdGlhbFZhbHVlKTtcbiAgfVxuXG4gIGdldE5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5nZXROYXRpdmVFbGVtZW50KCkudGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgICB0aGlzLl9tb3ZlQ3Vyc29yVG9FbmRPZklucHV0KCk7XG4gIH1cblxuICBnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldE5hdGl2ZUVsZW1lbnQoKS50ZXh0Q29udGVudCB8fCAnJztcbiAgfVxuXG4gIHByaXZhdGUgX21vdmVDdXJzb3JUb0VuZE9mSW5wdXQoKSB7XG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLl9kb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh0aGlzLmdldE5hdGl2ZUVsZW1lbnQoKSk7XG4gICAgcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xuICAgIGNvbnN0IHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKSE7XG4gICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIHNlbC5hZGRSYW5nZShyYW5nZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,407 +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 { hasModifierKey, TAB } from '@angular/cdk/keycodes';
|
|
10
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, Optional, Output, QueryList, Self, ViewEncapsulation, } from '@angular/core';
|
|
11
|
-
import { FormGroupDirective, NgControl, NgForm, Validators, } from '@angular/forms';
|
|
12
|
-
import { ErrorStateMatcher, mixinErrorState, } from '@angular/material-experimental/mdc-core';
|
|
13
|
-
import { MatFormFieldControl } from '@angular/material-experimental/mdc-form-field';
|
|
14
|
-
import { Subject, merge } from 'rxjs';
|
|
15
|
-
import { takeUntil } from 'rxjs/operators';
|
|
16
|
-
import { MatChipRow } from './chip-row';
|
|
17
|
-
import { MatChipSet } from './chip-set';
|
|
18
|
-
import { Directionality } from '@angular/cdk/bidi';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "@angular/cdk/bidi";
|
|
21
|
-
import * as i2 from "@angular/forms";
|
|
22
|
-
import * as i3 from "@angular/material-experimental/mdc-core";
|
|
23
|
-
/** Change event object that is emitted when the chip grid value has changed. */
|
|
24
|
-
export class MatChipGridChange {
|
|
25
|
-
constructor(
|
|
26
|
-
/** Chip grid that emitted the event. */
|
|
27
|
-
source,
|
|
28
|
-
/** Value of the chip grid when the event was emitted. */
|
|
29
|
-
value) {
|
|
30
|
-
this.source = source;
|
|
31
|
-
this.value = value;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Boilerplate for applying mixins to MatChipGrid.
|
|
36
|
-
* @docs-private
|
|
37
|
-
*/
|
|
38
|
-
class MatChipGridBase extends MatChipSet {
|
|
39
|
-
constructor(elementRef, changeDetectorRef, dir, _defaultErrorStateMatcher, _parentForm, _parentFormGroup,
|
|
40
|
-
/**
|
|
41
|
-
* Form control bound to the component.
|
|
42
|
-
* Implemented as part of `MatFormFieldControl`.
|
|
43
|
-
* @docs-private
|
|
44
|
-
*/
|
|
45
|
-
ngControl) {
|
|
46
|
-
super(elementRef, changeDetectorRef, dir);
|
|
47
|
-
this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
|
|
48
|
-
this._parentForm = _parentForm;
|
|
49
|
-
this._parentFormGroup = _parentFormGroup;
|
|
50
|
-
this.ngControl = ngControl;
|
|
51
|
-
/**
|
|
52
|
-
* Emits whenever the component state changes and should cause the parent
|
|
53
|
-
* form-field to update. Implemented as part of `MatFormFieldControl`.
|
|
54
|
-
* @docs-private
|
|
55
|
-
*/
|
|
56
|
-
this.stateChanges = new Subject();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
const _MatChipGridMixinBase = mixinErrorState(MatChipGridBase);
|
|
60
|
-
/**
|
|
61
|
-
* An extension of the MatChipSet component used with MatChipRow chips and
|
|
62
|
-
* the matChipInputFor directive.
|
|
63
|
-
*/
|
|
64
|
-
export class MatChipGrid extends _MatChipGridMixinBase {
|
|
65
|
-
constructor(elementRef, changeDetectorRef, dir, parentForm, parentFormGroup, defaultErrorStateMatcher, ngControl) {
|
|
66
|
-
super(elementRef, changeDetectorRef, dir, defaultErrorStateMatcher, parentForm, parentFormGroup, ngControl);
|
|
67
|
-
/**
|
|
68
|
-
* Implemented as part of MatFormFieldControl.
|
|
69
|
-
* @docs-private
|
|
70
|
-
*/
|
|
71
|
-
this.controlType = 'mat-chip-grid';
|
|
72
|
-
this._defaultRole = 'grid';
|
|
73
|
-
/**
|
|
74
|
-
* List of element ids to propagate to the chipInput's aria-describedby attribute.
|
|
75
|
-
*/
|
|
76
|
-
this._ariaDescribedbyIds = [];
|
|
77
|
-
/**
|
|
78
|
-
* Function when touched. Set as part of ControlValueAccessor implementation.
|
|
79
|
-
* @docs-private
|
|
80
|
-
*/
|
|
81
|
-
this._onTouched = () => { };
|
|
82
|
-
/**
|
|
83
|
-
* Function when changed. Set as part of ControlValueAccessor implementation.
|
|
84
|
-
* @docs-private
|
|
85
|
-
*/
|
|
86
|
-
this._onChange = () => { };
|
|
87
|
-
this._value = [];
|
|
88
|
-
/** Emits when the chip grid value has been changed by the user. */
|
|
89
|
-
this.change = new EventEmitter();
|
|
90
|
-
/**
|
|
91
|
-
* Emits whenever the raw value of the chip-grid changes. This is here primarily
|
|
92
|
-
* to facilitate the two-way binding for the `value` input.
|
|
93
|
-
* @docs-private
|
|
94
|
-
*/
|
|
95
|
-
this.valueChange = new EventEmitter();
|
|
96
|
-
if (this.ngControl) {
|
|
97
|
-
this.ngControl.valueAccessor = this;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Implemented as part of MatFormFieldControl.
|
|
102
|
-
* @docs-private
|
|
103
|
-
*/
|
|
104
|
-
get disabled() {
|
|
105
|
-
return this.ngControl ? !!this.ngControl.disabled : this._disabled;
|
|
106
|
-
}
|
|
107
|
-
set disabled(value) {
|
|
108
|
-
this._disabled = coerceBooleanProperty(value);
|
|
109
|
-
this._syncChipsState();
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Implemented as part of MatFormFieldControl.
|
|
113
|
-
* @docs-private
|
|
114
|
-
*/
|
|
115
|
-
get id() {
|
|
116
|
-
return this._chipInput.id;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Implemented as part of MatFormFieldControl.
|
|
120
|
-
* @docs-private
|
|
121
|
-
*/
|
|
122
|
-
get empty() {
|
|
123
|
-
return ((!this._chipInput || this._chipInput.empty) && (!this._chips || this._chips.length === 0));
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Implemented as part of MatFormFieldControl.
|
|
127
|
-
* @docs-private
|
|
128
|
-
*/
|
|
129
|
-
get placeholder() {
|
|
130
|
-
return this._chipInput ? this._chipInput.placeholder : this._placeholder;
|
|
131
|
-
}
|
|
132
|
-
set placeholder(value) {
|
|
133
|
-
this._placeholder = value;
|
|
134
|
-
this.stateChanges.next();
|
|
135
|
-
}
|
|
136
|
-
/** Whether any chips or the matChipInput inside of this chip-grid has focus. */
|
|
137
|
-
get focused() {
|
|
138
|
-
return this._chipInput.focused || this._hasFocusedChip();
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Implemented as part of MatFormFieldControl.
|
|
142
|
-
* @docs-private
|
|
143
|
-
*/
|
|
144
|
-
get required() {
|
|
145
|
-
return this._required ?? this.ngControl?.control?.hasValidator(Validators.required) ?? false;
|
|
146
|
-
}
|
|
147
|
-
set required(value) {
|
|
148
|
-
this._required = coerceBooleanProperty(value);
|
|
149
|
-
this.stateChanges.next();
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Implemented as part of MatFormFieldControl.
|
|
153
|
-
* @docs-private
|
|
154
|
-
*/
|
|
155
|
-
get shouldLabelFloat() {
|
|
156
|
-
return !this.empty || this.focused;
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Implemented as part of MatFormFieldControl.
|
|
160
|
-
* @docs-private
|
|
161
|
-
*/
|
|
162
|
-
get value() {
|
|
163
|
-
return this._value;
|
|
164
|
-
}
|
|
165
|
-
set value(value) {
|
|
166
|
-
this._value = value;
|
|
167
|
-
}
|
|
168
|
-
/** Combined stream of all of the child chips' blur events. */
|
|
169
|
-
get chipBlurChanges() {
|
|
170
|
-
return this._getChipStream(chip => chip._onBlur);
|
|
171
|
-
}
|
|
172
|
-
ngAfterContentInit() {
|
|
173
|
-
this.chipBlurChanges.pipe(takeUntil(this._destroyed)).subscribe(() => {
|
|
174
|
-
this._blur();
|
|
175
|
-
this.stateChanges.next();
|
|
176
|
-
});
|
|
177
|
-
merge(this.chipFocusChanges, this._chips.changes)
|
|
178
|
-
.pipe(takeUntil(this._destroyed))
|
|
179
|
-
.subscribe(() => this.stateChanges.next());
|
|
180
|
-
}
|
|
181
|
-
ngAfterViewInit() {
|
|
182
|
-
super.ngAfterViewInit();
|
|
183
|
-
if (!this._chipInput && (typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
184
|
-
throw Error('mat-chip-grid must be used in combination with matChipInputFor.');
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
ngDoCheck() {
|
|
188
|
-
if (this.ngControl) {
|
|
189
|
-
// We need to re-evaluate this on every change detection cycle, because there are some
|
|
190
|
-
// error triggers that we can't subscribe to (e.g. parent form submissions). This means
|
|
191
|
-
// that whatever logic is in here has to be super lean or we risk destroying the performance.
|
|
192
|
-
this.updateErrorState();
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
ngOnDestroy() {
|
|
196
|
-
super.ngOnDestroy();
|
|
197
|
-
this.stateChanges.complete();
|
|
198
|
-
}
|
|
199
|
-
/** Associates an HTML input element with this chip grid. */
|
|
200
|
-
registerInput(inputElement) {
|
|
201
|
-
this._chipInput = inputElement;
|
|
202
|
-
this._chipInput.setDescribedByIds(this._ariaDescribedbyIds);
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Implemented as part of MatFormFieldControl.
|
|
206
|
-
* @docs-private
|
|
207
|
-
*/
|
|
208
|
-
onContainerClick(event) {
|
|
209
|
-
if (!this.disabled && !this._originatesFromChip(event)) {
|
|
210
|
-
this.focus();
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Focuses the first chip in this chip grid, or the associated input when there
|
|
215
|
-
* are no eligible chips.
|
|
216
|
-
*/
|
|
217
|
-
focus() {
|
|
218
|
-
if (this.disabled || this._chipInput.focused) {
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
if (!this._chips.length || this._chips.first.disabled) {
|
|
222
|
-
// Delay until the next tick, because this can cause a "changed after checked"
|
|
223
|
-
// error if the input does something on focus (e.g. opens an autocomplete).
|
|
224
|
-
Promise.resolve().then(() => this._chipInput.focus());
|
|
225
|
-
}
|
|
226
|
-
else if (this._chips.length) {
|
|
227
|
-
this._keyManager.setFirstItemActive();
|
|
228
|
-
}
|
|
229
|
-
this.stateChanges.next();
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Implemented as part of MatFormFieldControl.
|
|
233
|
-
* @docs-private
|
|
234
|
-
*/
|
|
235
|
-
setDescribedByIds(ids) {
|
|
236
|
-
// We must keep this up to date to handle the case where ids are set
|
|
237
|
-
// before the chip input is registered.
|
|
238
|
-
this._ariaDescribedbyIds = ids;
|
|
239
|
-
if (this._chipInput) {
|
|
240
|
-
// Use a setTimeout in case this is being run during change detection
|
|
241
|
-
// and the chip input has already determined its host binding for
|
|
242
|
-
// aria-describedBy.
|
|
243
|
-
setTimeout(() => {
|
|
244
|
-
this._chipInput.setDescribedByIds(ids);
|
|
245
|
-
}, 0);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* Implemented as part of ControlValueAccessor.
|
|
250
|
-
* @docs-private
|
|
251
|
-
*/
|
|
252
|
-
writeValue(value) {
|
|
253
|
-
// The user is responsible for creating the child chips, so we just store the value.
|
|
254
|
-
this._value = value;
|
|
255
|
-
}
|
|
256
|
-
/**
|
|
257
|
-
* Implemented as part of ControlValueAccessor.
|
|
258
|
-
* @docs-private
|
|
259
|
-
*/
|
|
260
|
-
registerOnChange(fn) {
|
|
261
|
-
this._onChange = fn;
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Implemented as part of ControlValueAccessor.
|
|
265
|
-
* @docs-private
|
|
266
|
-
*/
|
|
267
|
-
registerOnTouched(fn) {
|
|
268
|
-
this._onTouched = fn;
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Implemented as part of ControlValueAccessor.
|
|
272
|
-
* @docs-private
|
|
273
|
-
*/
|
|
274
|
-
setDisabledState(isDisabled) {
|
|
275
|
-
this.disabled = isDisabled;
|
|
276
|
-
this.stateChanges.next();
|
|
277
|
-
}
|
|
278
|
-
/** When blurred, mark the field as touched when focus moved outside the chip grid. */
|
|
279
|
-
_blur() {
|
|
280
|
-
if (!this.disabled) {
|
|
281
|
-
// Check whether the focus moved to chip input.
|
|
282
|
-
// If the focus is not moved to chip input, mark the field as touched. If the focus moved
|
|
283
|
-
// to chip input, do nothing.
|
|
284
|
-
// Timeout is needed to wait for the focus() event trigger on chip input.
|
|
285
|
-
setTimeout(() => {
|
|
286
|
-
if (!this.focused) {
|
|
287
|
-
this._propagateChanges();
|
|
288
|
-
this._markAsTouched();
|
|
289
|
-
}
|
|
290
|
-
});
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Removes the `tabindex` from the chip grid and resets it back afterwards, allowing the
|
|
295
|
-
* user to tab out of it. This prevents the grid from capturing focus and redirecting
|
|
296
|
-
* it back to the first chip, creating a focus trap, if it user tries to tab away.
|
|
297
|
-
*/
|
|
298
|
-
_allowFocusEscape() {
|
|
299
|
-
if (!this._chipInput.focused) {
|
|
300
|
-
super._allowFocusEscape();
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
/** Handles custom keyboard events. */
|
|
304
|
-
_handleKeydown(event) {
|
|
305
|
-
if (event.keyCode === TAB) {
|
|
306
|
-
if (this._chipInput.focused &&
|
|
307
|
-
hasModifierKey(event, 'shiftKey') &&
|
|
308
|
-
this._chips.length &&
|
|
309
|
-
!this._chips.last.disabled) {
|
|
310
|
-
event.preventDefault();
|
|
311
|
-
if (this._keyManager.activeItem) {
|
|
312
|
-
this._keyManager.setActiveItem(this._keyManager.activeItem);
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
this._focusLastChip();
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
// Use the super method here since it doesn't check for the input
|
|
320
|
-
// focused state. This allows focus to escape if there's only one
|
|
321
|
-
// disabled chip left in the list.
|
|
322
|
-
super._allowFocusEscape();
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
else if (!this._chipInput.focused) {
|
|
326
|
-
super._handleKeydown(event);
|
|
327
|
-
}
|
|
328
|
-
this.stateChanges.next();
|
|
329
|
-
}
|
|
330
|
-
_focusLastChip() {
|
|
331
|
-
if (this._chips.length) {
|
|
332
|
-
this._chips.last.focus();
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
/** Emits change event to set the model value. */
|
|
336
|
-
_propagateChanges() {
|
|
337
|
-
const valueToEmit = this._chips.length ? this._chips.toArray().map(chip => chip.value) : [];
|
|
338
|
-
this._value = valueToEmit;
|
|
339
|
-
this.change.emit(new MatChipGridChange(this, valueToEmit));
|
|
340
|
-
this.valueChange.emit(valueToEmit);
|
|
341
|
-
this._onChange(valueToEmit);
|
|
342
|
-
this._changeDetectorRef.markForCheck();
|
|
343
|
-
}
|
|
344
|
-
/** Mark the field as touched */
|
|
345
|
-
_markAsTouched() {
|
|
346
|
-
this._onTouched();
|
|
347
|
-
this._changeDetectorRef.markForCheck();
|
|
348
|
-
this.stateChanges.next();
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
MatChipGrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipGrid, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Directionality, optional: true }, { token: i2.NgForm, optional: true }, { token: i2.FormGroupDirective, optional: true }, { token: i3.ErrorStateMatcher }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
352
|
-
MatChipGrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: MatChipGrid, selector: "mat-chip-grid", inputs: { tabIndex: "tabIndex", disabled: "disabled", placeholder: "placeholder", required: "required", value: "value", errorStateMatcher: "errorStateMatcher" }, outputs: { change: "change", valueChange: "valueChange" }, host: { listeners: { "focus": "focus()", "blur": "_blur()" }, properties: { "attr.role": "role", "tabIndex": "_chips && _chips.length === 0 ? -1 : tabIndex", "attr.aria-disabled": "disabled.toString()", "attr.aria-invalid": "errorState", "class.mat-mdc-chip-list-disabled": "disabled", "class.mat-mdc-chip-list-invalid": "errorState", "class.mat-mdc-chip-list-required": "required" }, classAttribute: "mat-mdc-chip-set mat-mdc-chip-grid mdc-evolution-chip-set" }, providers: [{ provide: MatFormFieldControl, useExisting: MatChipGrid }], queries: [{ propertyName: "_chips", predicate: MatChipRow, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
353
|
-
<span class="mdc-evolution-chip-set__chips" role="presentation">
|
|
354
|
-
<ng-content></ng-content>
|
|
355
|
-
</span>
|
|
356
|
-
`, 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 });
|
|
357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: MatChipGrid, decorators: [{
|
|
358
|
-
type: Component,
|
|
359
|
-
args: [{ selector: 'mat-chip-grid', template: `
|
|
360
|
-
<span class="mdc-evolution-chip-set__chips" role="presentation">
|
|
361
|
-
<ng-content></ng-content>
|
|
362
|
-
</span>
|
|
363
|
-
`, inputs: ['tabIndex'], host: {
|
|
364
|
-
'class': 'mat-mdc-chip-set mat-mdc-chip-grid mdc-evolution-chip-set',
|
|
365
|
-
'[attr.role]': 'role',
|
|
366
|
-
'[tabIndex]': '_chips && _chips.length === 0 ? -1 : tabIndex',
|
|
367
|
-
'[attr.aria-disabled]': 'disabled.toString()',
|
|
368
|
-
'[attr.aria-invalid]': 'errorState',
|
|
369
|
-
'[class.mat-mdc-chip-list-disabled]': 'disabled',
|
|
370
|
-
'[class.mat-mdc-chip-list-invalid]': 'errorState',
|
|
371
|
-
'[class.mat-mdc-chip-list-required]': 'required',
|
|
372
|
-
'(focus)': 'focus()',
|
|
373
|
-
'(blur)': '_blur()',
|
|
374
|
-
}, providers: [{ provide: MatFormFieldControl, useExisting: MatChipGrid }], 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}"] }]
|
|
375
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Directionality, decorators: [{
|
|
376
|
-
type: Optional
|
|
377
|
-
}] }, { type: i2.NgForm, decorators: [{
|
|
378
|
-
type: Optional
|
|
379
|
-
}] }, { type: i2.FormGroupDirective, decorators: [{
|
|
380
|
-
type: Optional
|
|
381
|
-
}] }, { type: i3.ErrorStateMatcher }, { type: i2.NgControl, decorators: [{
|
|
382
|
-
type: Optional
|
|
383
|
-
}, {
|
|
384
|
-
type: Self
|
|
385
|
-
}] }]; }, propDecorators: { disabled: [{
|
|
386
|
-
type: Input
|
|
387
|
-
}], placeholder: [{
|
|
388
|
-
type: Input
|
|
389
|
-
}], required: [{
|
|
390
|
-
type: Input
|
|
391
|
-
}], value: [{
|
|
392
|
-
type: Input
|
|
393
|
-
}], errorStateMatcher: [{
|
|
394
|
-
type: Input
|
|
395
|
-
}], change: [{
|
|
396
|
-
type: Output
|
|
397
|
-
}], valueChange: [{
|
|
398
|
-
type: Output
|
|
399
|
-
}], _chips: [{
|
|
400
|
-
type: ContentChildren,
|
|
401
|
-
args: [MatChipRow, {
|
|
402
|
-
// We need to use `descendants: true`, because Ivy will no longer match
|
|
403
|
-
// indirect descendants if it's left as false.
|
|
404
|
-
descendants: true,
|
|
405
|
-
}]
|
|
406
|
-
}] } });
|
|
407
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1ncmlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsLWV4cGVyaW1lbnRhbC9tZGMtY2hpcHMvY2hpcC1ncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBZSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFFLE9BQU8sRUFBQyxjQUFjLEVBQUUsR0FBRyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFFZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLGVBQWUsR0FDaEIsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUVsRixPQUFPLEVBQWEsT0FBTyxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUN0QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7QUFFakQsZ0ZBQWdGO0FBQ2hGLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUI7SUFDRSx3Q0FBd0M7SUFDakMsTUFBbUI7SUFDMUIs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QUFFLFdBQVcsYUFBYSxFQUFDLENBQUMsaUJBQ3RELGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQTJKNUMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBRVIsUUFBUTs7MEJBQUksSUFBSTs0Q0FqSE4sUUFBUTtzQkFEcEIsS0FBSztnQkFnQ0YsV0FBVztzQkFEZCxLQUFLO2dCQW9CRixRQUFRO3NCQURYLEtBQUs7Z0JBdUJGLEtBQUs7c0JBRFIsS0FBSztnQkFVWSxpQkFBaUI7c0JBQWxDLEtBQUs7Z0JBUWEsTUFBTTtzQkFBeEIsTUFBTTtnQkFRWSxXQUFXO3NCQUE3QixNQUFNO2dCQU9FLE1BQU07c0JBTGQsZUFBZTt1QkFBQyxVQUFVLEVBQUU7d0JBQzNCLHVFQUF1RTt3QkFDdkUsOENBQThDO3dCQUM5QyxXQUFXLEVBQUUsSUFBSTtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7aGFzTW9kaWZpZXJLZXksIFRBQn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTZWxmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUdyb3VwRGlyZWN0aXZlLFxuICBOZ0NvbnRyb2wsXG4gIE5nRm9ybSxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ2FuVXBkYXRlRXJyb3JTdGF0ZSxcbiAgRXJyb3JTdGF0ZU1hdGNoZXIsXG4gIG1peGluRXJyb3JTdGF0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtZXhwZXJpbWVudGFsL21kYy1jb3JlJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtZXhwZXJpbWVudGFsL21kYy1mb3JtLWZpZWxkJztcbmltcG9ydCB7TWF0Q2hpcFRleHRDb250cm9sfSBmcm9tICcuL2NoaXAtdGV4dC1jb250cm9sJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgbWVyZ2V9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWF0Q2hpcEV2ZW50fSBmcm9tICcuL2NoaXAnO1xuaW1wb3J0IHtNYXRDaGlwUm93fSBmcm9tICcuL2NoaXAtcm93JztcbmltcG9ydCB7TWF0Q2hpcFNldH0gZnJvbSAnLi9jaGlwLXNldCc7XG5pbXBvcnQge0RpcmVjdGlvbmFsaXR5fSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5cbi8qKiBDaGFuZ2UgZXZlbnQgb2JqZWN0IHRoYXQgaXMgZW1pdHRlZCB3aGVuIHRoZSBjaGlwIGdyaWQgdmFsdWUgaGFzIGNoYW5nZWQuICovXG5leHBvcnQgY2xhc3MgTWF0Q2hpcEdyaWRDaGFuZ2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKiogQ2hpcCBncmlkIHRoYXQgZW1pdHRlZCB0aGUgZXZlbnQuICovXG4gICAgcHVibGljIHNvdXJjZTogTWF0Q2hpcEdyaWQsXG4gICAgLyoqIFZhbHVlIG9mIHRoZSBjaGlwIGdyaWQgd2hlbiB0aGUgZXZlbnQgd2FzIGVtaXR0ZWQuICovXG4gICAgcHVibGljIHZhbHVlOiBhbnksXG4gICkge31cbn1cblxuLyoqXG4gKiBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvIE1hdENoaXBHcmlkLlxuICogQGRvY3MtcHJpdmF0ZVxuICovXG5jbGFzcyBNYXRDaGlwR3JpZEJhc2UgZXh0ZW5kcyBNYXRDaGlwU2V0IHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb21wb25lbnQgc3RhdGUgY2hhbmdlcyBhbmQgc2hvdWxkIGNhdXNlIHRoZSBwYXJlbnRcbiAgICogZm9ybS1maWVsZCB0byB1cGRhdGUuIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgYE1hdEZvcm1GaWVsZENvbnRyb2xgLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0ZUNoYW5nZXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGRpcjogRGlyZWN0aW9uYWxpdHksXG4gICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgIHB1YmxpYyBfcGFyZW50Rm9ybTogTmdGb3JtLFxuICAgIHB1YmxpYyBfcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXBEaXJlY3RpdmUsXG4gICAgLyoqXG4gICAgICogRm9ybSBjb250cm9sIGJvdW5kIHRvIHRoZSBjb21wb25lbnQuXG4gICAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBgTWF0Rm9ybUZpZWxkQ29udHJvbGAuXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2hhbmdlRGV0ZWN0b3JSZWYsIGRpcik7XG4gIH1cbn1cbmNvbnN0IF9NYXRDaGlwR3JpZE1peGluQmFzZSA9IG1peGluRXJyb3JTdGF0ZShNYXRDaGlwR3JpZEJhc2UpO1xuXG4vKipcbiAqIEFuIGV4dGVuc2lvbiBvZiB0aGUgTWF0Q2hpcFNldCBjb21wb25lbnQgdXNlZCB3aXRoIE1hdENoaXBSb3cgY2hpcHMgYW5kXG4gKiB0aGUgbWF0Q2hpcElucHV0Rm9yIGRpcmVjdGl2ZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0LWNoaXAtZ3JpZCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNwYW4gY2xhc3M9XCJtZGMtZXZvbHV0aW9uLWNoaXAtc2V0X19jaGlwc1wiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3NwYW4+XG4gIGAsXG4gIHN0eWxlVXJsczogWydjaGlwLXNldC5jc3MnXSxcbiAgaW5wdXRzOiBbJ3RhYkluZGV4J10sXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnbWF0LW1kYy1jaGlwLXNldCBtYXQtbWRjLWNoaXAtZ3JpZCBtZGMtZXZvbHV0aW9uLWNoaXAtc2V0JyxcbiAgICAnW2F0dHIucm9sZV0nOiAncm9sZScsXG4gICAgJ1t0YWJJbmRleF0nOiAnX2NoaXBzICYmIF9jaGlwcy5sZW5ndGggPT09IDAgPyAtMSA6IHRhYkluZGV4JyxcbiAgICAnW2F0dHIuYXJpYS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQudG9TdHJpbmcoKScsXG4gICAgJ1thdHRyLmFyaWEtaW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5tYXQtbWRjLWNoaXAtbGlzdC1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuICAgICdbY2xhc3MubWF0LW1kYy1jaGlwLWxpc3QtaW52YWxpZF0nOiAnZXJyb3JTdGF0ZScsXG4gICAgJ1tjbGFzcy5tYXQtbWRjLWNoaXAtbGlzdC1yZXF1aXJlZF0nOiAncmVxdWlyZWQnLFxuICAgICcoZm9jdXMpJzogJ2ZvY3VzKCknLFxuICAgICcoYmx1ciknOiAnX2JsdXIoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW3twcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogTWF0Q2hpcEdyaWR9XSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1hdENoaXBHcmlkXG4gIGV4dGVuZHMgX01hdENoaXBHcmlkTWl4aW5CYXNlXG4gIGltcGxlbWVudHNcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2FuVXBkYXRlRXJyb3JTdGF0ZSxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBEb0NoZWNrLFxuICAgIE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PixcbiAgICBPbkRlc3Ryb3lcbntcbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgTWF0Rm9ybUZpZWxkQ29udHJvbC5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29udHJvbFR5cGU6IHN0cmluZyA9ICdtYXQtY2hpcC1ncmlkJztcblxuICAvKiogVGhlIGNoaXAgaW5wdXQgdG8gYWRkIG1vcmUgY2hpcHMgKi9cbiAgcHJvdGVjdGVkIF9jaGlwSW5wdXQ6IE1hdENoaXBUZXh0Q29udHJvbDtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2RlZmF1bHRSb2xlID0gJ2dyaWQnO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGVsZW1lbnQgaWRzIHRvIHByb3BhZ2F0ZSB0byB0aGUgY2hpcElucHV0J3MgYXJpYS1kZXNjcmliZWRieSBhdHRyaWJ1dGUuXG4gICAqL1xuICBwcml2YXRlIF9hcmlhRGVzY3JpYmVkYnlJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHdoZW4gdG91Y2hlZC4gU2V0IGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb24uXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIF9vblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gd2hlbiBjaGFuZ2VkLiBTZXQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvbi5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgX29uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIG92ZXJyaWRlIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uZ0NvbnRyb2wgPyAhIXRoaXMubmdDb250cm9sLmRpc2FibGVkIDogdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgb3ZlcnJpZGUgc2V0IGRpc2FibGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5fc3luY0NoaXBzU3RhdGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jaGlwSW5wdXQuaWQ7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBNYXRGb3JtRmllbGRDb250cm9sLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBvdmVycmlkZSBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICghdGhpcy5fY2hpcElucHV0IHx8IHRoaXMuX2NoaXBJbnB1dC5lbXB0eSkgJiYgKCF0aGlzLl9jaGlwcyB8fCB0aGlzLl9jaGlwcy5sZW5ndGggPT09IDApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jaGlwSW5wdXQgPyB0aGlzLl9jaGlwSW5wdXQucGxhY2Vob2xkZXIgOiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuICBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG4gIHByb3RlY3RlZCBfcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAvKiogV2hldGhlciBhbnkgY2hpcHMgb3IgdGhlIG1hdENoaXBJbnB1dCBpbnNpZGUgb2YgdGhpcyBjaGlwLWdyaWQgaGFzIGZvY3VzLiAqL1xuICBvdmVycmlkZSBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpcElucHV0LmZvY3VzZWQgfHwgdGhpcy5faGFzRm9jdXNlZENoaXAoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQgPz8gdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/Lmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSA/PyBmYWxzZTtcbiAgfVxuICBzZXQgcmVxdWlyZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbiAgcHJvdGVjdGVkIF9yZXF1aXJlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBNYXRGb3JtRmllbGRDb250cm9sLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZW1wdHkgfHwgdGhpcy5mb2N1c2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgTWF0Rm9ybUZpZWxkQ29udHJvbC5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuICBwcm90ZWN0ZWQgX3ZhbHVlOiBhbnlbXSA9IFtdO1xuXG4gIC8qKiBBbiBvYmplY3QgdXNlZCB0byBjb250cm9sIHdoZW4gZXJyb3IgbWVzc2FnZXMgYXJlIHNob3duLiAqL1xuICBASW5wdXQoKSBvdmVycmlkZSBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIGNoaXBzJyBibHVyIGV2ZW50cy4gKi9cbiAgZ2V0IGNoaXBCbHVyQ2hhbmdlcygpOiBPYnNlcnZhYmxlPE1hdENoaXBFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLl9nZXRDaGlwU3RyZWFtKGNoaXAgPT4gY2hpcC5fb25CbHVyKTtcbiAgfVxuXG4gIC8qKiBFbWl0cyB3aGVuIHRoZSBjaGlwIGdyaWQgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBieSB0aGUgdXNlci4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZTogRXZlbnRFbWl0dGVyPE1hdENoaXBHcmlkQ2hhbmdlPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxNYXRDaGlwR3JpZENoYW5nZT4oKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIHJhdyB2YWx1ZSBvZiB0aGUgY2hpcC1ncmlkIGNoYW5nZXMuIFRoaXMgaXMgaGVyZSBwcmltYXJpbHlcbiAgICogdG8gZmFjaWxpdGF0ZSB0aGUgdHdvLXdheSBiaW5kaW5nIGZvciB0aGUgYHZhbHVlYCBpbnB1dC5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Q2hpcFJvdywge1xuICAgIC8vIFdlIG5lZWQgdG8gdXNlIGBkZXNjZW5kYW50czogdHJ1ZWAsIGJlY2F1c2UgSXZ5IHdpbGwgbm8gbG9uZ2VyIG1hdGNoXG4gICAgLy8gaW5kaXJlY3QgZGVzY2VuZGFudHMgaWYgaXQncyBsZWZ0IGFzIGZhbHNlLlxuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KVxuICBvdmVycmlkZSBfY2hpcHM6IFF1ZXJ5TGlzdDxNYXRDaGlwUm93PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBkaXI6IERpcmVjdGlvbmFsaXR5LFxuICAgIEBPcHRpb25hbCgpIHBhcmVudEZvcm06IE5nRm9ybSxcbiAgICBAT3B0aW9uYWwoKSBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBkZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgZWxlbWVudFJlZixcbiAgICAgIGNoYW5nZURldGVjdG9yUmVmLFxuICAgICAgZGlyLFxuICAgICAgZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyLFxuICAgICAgcGFyZW50Rm9ybSxcbiAgICAgIHBhcmVudEZvcm1Hcm91cCxcbiAgICAgIG5nQ29udHJvbCxcbiAgICApO1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuY2hpcEJsdXJDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9ibHVyKCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG5cbiAgICBtZXJnZSh0aGlzLmNoaXBGb2N1c0NoYW5nZXMsIHRoaXMuX2NoaXBzLmNoYW5nZXMpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgIGlmICghdGhpcy5fY2hpcElucHV0ICYmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpKSB7XG4gICAgICB0aHJvdyBFcnJvcignbWF0LWNoaXAtZ3JpZCBtdXN0IGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBtYXRDaGlwSW5wdXRGb3IuJyk7XG4gICAgfVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgLy8gV2UgbmVlZCB0byByZS1ldmFsdWF0ZSB0aGlzIG9uIGV2ZXJ5IGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUsIGJlY2F1c2UgdGhlcmUgYXJlIHNvbWVcbiAgICAgIC8vIGVycm9yIHRyaWdnZXJzIHRoYXQgd2UgY2FuJ3Qgc3Vic2NyaWJlIHRvIChlLmcuIHBhcmVudCBmb3JtIHN1Ym1pc3Npb25zKS4gVGhpcyBtZWFuc1xuICAgICAgLy8gdGhhdCB3aGF0ZXZlciBsb2dpYyBpcyBpbiBoZXJlIGhhcyB0byBiZSBzdXBlciBsZWFuIG9yIHdlIHJpc2sgZGVzdHJveWluZyB0aGUgcGVyZm9ybWFuY2UuXG4gICAgICB0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKiogQXNzb2NpYXRlcyBhbiBIVE1MIGlucHV0IGVsZW1lbnQgd2l0aCB0aGlzIGNoaXAgZ3JpZC4gKi9cbiAgcmVnaXN0ZXJJbnB1dChpbnB1dEVsZW1lbnQ6IE1hdENoaXBUZXh0Q29udHJvbCk6IHZvaWQge1xuICAgIHRoaXMuX2NoaXBJbnB1dCA9IGlucHV0RWxlbWVudDtcbiAgICB0aGlzLl9jaGlwSW5wdXQuc2V0RGVzY3JpYmVkQnlJZHModGhpcy5fYXJpYURlc2NyaWJlZGJ5SWRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIE1hdEZvcm1GaWVsZENvbnRyb2wuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuX29yaWdpbmF0ZXNGcm9tQ2hpcChldmVudCkpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgZmlyc3QgY2hpcCBpbiB0aGlzIGNoaXAgZ3JpZCwgb3IgdGhlIGFzc29jaWF0ZWQgaW5wdXQgd2hlbiB0aGVyZVxuICAgKiBhcmUgbm8gZWxpZ2libGUgY2hpcHMuXG4gICAqL1xuICBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLl9jaGlwSW5wdXQuZm9jdXNlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fY2hpcHMubGVuZ3RoIHx8IHRoaXMuX2NoaXBzLmZpcnN0LmRpc2FibGVkKSB7XG4gICAgICAvLyBEZWxheSB1bnRpbCB0aGUgbmV4dCB0aWNrLCBiZWNhdXNlIHRoaXMgY2FuIGNhdXNlIGEgXCJjaGFuZ2VkIGFmdGVyIGNoZWNrZWRcIlxuICAgICAgLy8gZXJyb3IgaWYgdGhlIGlucHV0IGRvZXMgc29tZXRoaW5nIG9uIGZvY3VzIChlLmcuIG9wZW5zIGFuIGF1dG9jb21wbGV0ZSkuXG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX2NoaXBJbnB1dC5mb2N1cygpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2NoaXBzLmxlbmd0aCkge1xuICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBNYXRGb3JtRmllbGRDb250cm9sLlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XG4gICAgLy8gV2UgbXVzdCBrZWVwIHRoaXMgdXAgdG8gZGF0ZSB0byBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgaWRzIGFyZSBzZXRcbiAgICAvLyBiZWZvcmUgdGhlIGNoaXAgaW5wdXQgaXMgcmVnaXN0ZXJlZC5cbiAgICB0aGlzLl9hcmlhRGVzY3JpYmVkYnlJZHMgPSBpZHM7XG5cbiAgICBpZiAodGhpcy5fY2hpcElucHV0KSB7XG4gICAgICAvLyBVc2UgYSBzZXRUaW1lb3V0IGluIGNhc2UgdGhpcyBpcyBiZWluZyBydW4gZHVyaW5nIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgIC8vIGFuZCB0aGUgY2hpcCBpbnB1dCBoYXMgYWxyZWFkeSBkZXRlcm1pbmVkIGl0cyBob3N0IGJpbmRpbmcgZm9yXG4gICAgICAvLyBhcmlhLWRlc2NyaWJlZEJ5LlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoaXBJbnB1dC5zZXREZXNjcmliZWRCeUlkcyhpZHMpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIC8vIFRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyB0aGUgY2hpbGQgY2hpcHMsIHNvIHdlIGp1c3Qgc3RvcmUgdGhlIHZhbHVlLlxuICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudGVkIGFzIHBhcnQgb2YgQ29udHJvbFZhbHVlQWNjZXNzb3IuXG4gICAqIEBkb2NzLXByaXZhdGVcbiAgICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgLyoqIFdoZW4gYmx1cnJlZCwgbWFyayB0aGUgZmllbGQgYXMgdG91Y2hlZCB3aGVuIGZvY3VzIG1vdmVkIG91dHNpZGUgdGhlIGNoaXAgZ3JpZC4gKi9cbiAgX2JsdXIoKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBDaGVjayB3aGV0aGVyIHRoZSBmb2N1cyBtb3ZlZCB0byBjaGlwIGlucHV0LlxuICAgICAgLy8gSWYgdGhlIGZvY3VzIGlzIG5vdCBtb3ZlZCB0byBjaGlwIGlucHV0LCBtYXJrIHRoZSBmaWVsZCBhcyB0b3VjaGVkLiBJZiB0aGUgZm9jdXMgbW92ZWRcbiAgICAgIC8vIHRvIGNoaXAgaW5wdXQsIGRvIG5vdGhpbmcuXG4gICAgICAvLyBUaW1lb3V0IGlzIG5lZWRlZCB0byB3YWl0IGZvciB0aGUgZm9jdXMoKSBldmVudCB0cmlnZ2VyIG9uIGNoaXAgaW5wdXQuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2VzKCk7XG4gICAgICAgICAgdGhpcy5fbWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgYHRhYmluZGV4YCBmcm9tIHRoZSBjaGlwIGdyaWQgYW5kIHJlc2V0cyBpdCBiYWNrIGFmdGVyd2FyZHMsIGFsbG93aW5nIHRoZVxuICAgKiB1c2VyIHRvIHRhYiBvdXQgb2YgaXQuIFRoaXMgcHJldmVudHMgdGhlIGdyaWQgZnJvbSBjYXB0dXJpbmcgZm9jdXMgYW5kIHJlZGlyZWN0aW5nXG4gICAqIGl0IGJhY2sgdG8gdGhlIGZpcnN0IGNoaXAsIGNyZWF0aW5nIGEgZm9jdXMgdHJhcCwgaWYgaXQgdXNlciB0cmllcyB0byB0YWIgYXdheS5cbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBfYWxsb3dGb2N1c0VzY2FwZSgpIHtcbiAgICBpZiAoIXRoaXMuX2NoaXBJbnB1dC5mb2N1c2VkKSB7XG4gICAgICBzdXBlci5fYWxsb3dGb2N1c0VzY2FwZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIYW5kbGVzIGN1c3RvbSBrZXlib2FyZCBldmVudHMuICovXG4gIG92ZXJyaWRlIF9oYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IFRBQikge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLl9jaGlwSW5wdXQuZm9jdXNlZCAmJlxuICAgICAgICBoYXNNb2RpZmllcktleShldmVudCwgJ3NoaWZ0S2V5JykgJiZcbiAgICAgICAgdGhpcy5fY2hpcHMubGVuZ3RoICYmXG4gICAgICAgICF0aGlzLl9jaGlwcy5sYXN0LmRpc2FibGVkXG4gICAgICApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBpZiAodGhpcy5fa2V5TWFuYWdlci5hY3RpdmVJdGVtKSB7XG4gICAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fZm9jdXNMYXN0Q2hpcCgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVc2UgdGhlIHN1cGVyIG1ldGhvZCBoZXJlIHNpbmNlIGl0IGRvZXNuJ3QgY2hlY2sgZm9yIHRoZSBpbnB1dFxuICAgICAgICAvLyBmb2N1c2VkIHN0YXRlLiBUaGlzIGFsbG93cyBmb2N1cyB0byBlc2NhcGUgaWYgdGhlcmUncyBvbmx5IG9uZVxuICAgICAgICAvLyBkaXNhYmxlZCBjaGlwIGxlZnQgaW4gdGhlIGxpc3QuXG4gICAgICAgIHN1cGVyLl9hbGxvd0ZvY3VzRXNjYXBlKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICghdGhpcy5fY2hpcElucHV0LmZvY3VzZWQpIHtcbiAgICAgIHN1cGVyLl9oYW5kbGVLZXlkb3duKGV2ZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBfZm9jdXNMYXN0Q2hpcCgpIHtcbiAgICBpZiAodGhpcy5fY2hpcHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9jaGlwcy5sYXN0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEVtaXRzIGNoYW5nZSBldmVudCB0byBzZXQgdGhlIG1vZGVsIHZhbHVlLiAqL1xuICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlVG9FbWl0ID0gdGhpcy5fY2hpcHMubGVuZ3RoID8gdGhpcy5fY2hpcHMudG9BcnJheSgpLm1hcChjaGlwID0+IGNoaXAudmFsdWUpIDogW107XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZVRvRW1pdDtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KG5ldyBNYXRDaGlwR3JpZENoYW5nZSh0aGlzLCB2YWx1ZVRvRW1pdCkpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZVRvRW1pdCk7XG4gICAgdGhpcy5fb25DaGFuZ2UodmFsdWVUb0VtaXQpO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIE1hcmsgdGhlIGZpZWxkIGFzIHRvdWNoZWQgKi9cbiAgcHJpdmF0ZSBfbWFya0FzVG91Y2hlZCgpIHtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
|