igniteui-angular 17.0.0-alpha.2 → 17.0.0-beta.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/esm2022/lib/accordion/accordion.component.mjs +8 -7
- package/esm2022/lib/accordion/accordion.module.mjs +4 -4
- package/esm2022/lib/action-strip/action-strip.component.mjs +21 -25
- package/esm2022/lib/action-strip/action-strip.module.mjs +4 -4
- package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +7 -6
- package/esm2022/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +7 -6
- package/esm2022/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +13 -9
- package/esm2022/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +3 -3
- package/esm2022/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/avatar/avatar.module.mjs +4 -4
- package/esm2022/lib/badge/badge.component.mjs +3 -3
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/banner/banner.component.mjs +3 -3
- package/esm2022/lib/banner/banner.directives.mjs +3 -3
- package/esm2022/lib/banner/banner.module.mjs +4 -4
- package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +7 -6
- package/esm2022/lib/buttonGroup/buttongroup.module.mjs +4 -4
- package/esm2022/lib/calendar/calendar-base.mjs +8 -9
- package/esm2022/lib/calendar/calendar.component.mjs +11 -8
- package/esm2022/lib/calendar/calendar.directives.mjs +15 -15
- package/esm2022/lib/calendar/calendar.module.mjs +4 -4
- package/esm2022/lib/calendar/days-view/day-item.component.mjs +13 -9
- package/esm2022/lib/calendar/days-view/days-view.component.mjs +9 -7
- package/esm2022/lib/calendar/days-view/daysview-navigation.service.mjs +3 -3
- package/esm2022/lib/calendar/month-picker/month-picker-base.mjs +3 -3
- package/esm2022/lib/calendar/month-picker/month-picker.component.mjs +3 -3
- package/esm2022/lib/calendar/months-view/months-view.component.mjs +7 -6
- package/esm2022/lib/calendar/months-view.pipe.mjs +6 -6
- package/esm2022/lib/calendar/years-view/years-view.component.mjs +10 -9
- package/esm2022/lib/card/card.component.mjs +37 -33
- package/esm2022/lib/card/card.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel.component.mjs +18 -13
- package/esm2022/lib/carousel/carousel.directives.mjs +9 -9
- package/esm2022/lib/carousel/carousel.module.mjs +4 -4
- package/esm2022/lib/carousel/slide.component.mjs +10 -8
- package/esm2022/lib/checkbox/checkbox.component.mjs +52 -64
- package/esm2022/lib/checkbox/checkbox.module.mjs +4 -4
- package/esm2022/lib/chips/chip.component.mjs +19 -12
- package/esm2022/lib/chips/chips-area.component.mjs +3 -3
- package/esm2022/lib/chips/chips.module.mjs +4 -4
- package/esm2022/lib/combo/combo-add-item.component.mjs +3 -3
- package/esm2022/lib/combo/combo-dropdown.component.mjs +7 -6
- package/esm2022/lib/combo/combo-item.component.mjs +7 -6
- package/esm2022/lib/combo/combo.api.mjs +3 -3
- package/esm2022/lib/combo/combo.common.mjs +27 -38
- package/esm2022/lib/combo/combo.component.mjs +28 -27
- package/esm2022/lib/combo/combo.directives.mjs +24 -24
- package/esm2022/lib/combo/combo.module.mjs +4 -4
- package/esm2022/lib/combo/combo.pipes.mjs +6 -6
- package/esm2022/lib/core/density.mjs +3 -3
- package/esm2022/lib/core/navigation/directives.mjs +6 -6
- package/esm2022/lib/core/navigation/nav.service.mjs +3 -3
- package/esm2022/lib/core/selection.mjs +3 -3
- package/esm2022/lib/core/touch.mjs +3 -3
- package/esm2022/lib/core/utils.mjs +3 -3
- package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +3 -3
- package/esm2022/lib/date-common/picker-base.directive.mjs +7 -6
- package/esm2022/lib/date-common/picker-icons.common.mjs +9 -9
- package/esm2022/lib/date-picker/date-picker.component.mjs +13 -9
- package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/lib/date-range-picker/date-range-picker-inputs.common.mjs +15 -15
- package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +9 -7
- package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
- package/esm2022/lib/dialog/dialog.component.mjs +17 -12
- package/esm2022/lib/dialog/dialog.directives.mjs +6 -6
- package/esm2022/lib/dialog/dialog.module.mjs +4 -4
- package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +6 -6
- package/esm2022/lib/directives/autocomplete/autocomplete.module.mjs +4 -4
- package/esm2022/lib/directives/button/button.directive.mjs +19 -35
- package/esm2022/lib/directives/button/button.module.mjs +4 -4
- package/esm2022/lib/directives/date-time-editor/date-time-editor.directive.mjs +7 -6
- package/esm2022/lib/directives/date-time-editor/date-time-editor.module.mjs +4 -4
- package/esm2022/lib/directives/divider/divider.directive.mjs +9 -7
- package/esm2022/lib/directives/divider/divider.module.mjs +4 -4
- package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +16 -15
- package/esm2022/lib/directives/drag-drop/drag-drop.module.mjs +4 -4
- package/esm2022/lib/directives/filter/filter.directive.mjs +6 -6
- package/esm2022/lib/directives/filter/filter.module.mjs +4 -4
- package/esm2022/lib/directives/focus/focus.directive.mjs +6 -6
- package/esm2022/lib/directives/focus/focus.module.mjs +4 -4
- package/esm2022/lib/directives/focus-trap/focus-trap.directive.mjs +6 -6
- package/esm2022/lib/directives/focus-trap/focus-trap.module.mjs +4 -4
- package/esm2022/lib/directives/for-of/base.helper.component.mjs +3 -3
- package/esm2022/lib/directives/for-of/display.container.mjs +3 -3
- package/esm2022/lib/directives/for-of/for_of.directive.mjs +12 -10
- package/esm2022/lib/directives/for-of/for_of.module.mjs +4 -4
- package/esm2022/lib/directives/for-of/for_of.sync.service.mjs +6 -6
- package/esm2022/lib/directives/for-of/horizontal.virtual.helper.component.mjs +3 -3
- package/esm2022/lib/directives/for-of/virtual.helper.component.mjs +3 -3
- package/esm2022/lib/directives/form-control/form-control.directive.mjs +3 -3
- package/esm2022/lib/directives/form-control/form-control.module.mjs +4 -4
- package/esm2022/lib/directives/hint/hint.directive.mjs +3 -3
- package/esm2022/lib/directives/input/input.directive.mjs +11 -9
- package/esm2022/lib/directives/label/label.directive.mjs +3 -3
- package/esm2022/lib/directives/layout/layout.directive.mjs +9 -9
- package/esm2022/lib/directives/layout/layout.module.mjs +4 -4
- package/esm2022/lib/directives/mask/mask-parsing.service.mjs +3 -3
- package/esm2022/lib/directives/mask/mask.directive.mjs +7 -6
- package/esm2022/lib/directives/mask/mask.module.mjs +4 -4
- package/esm2022/lib/directives/notification/notifications.directive.mjs +9 -7
- package/esm2022/lib/directives/prefix/prefix.directive.mjs +3 -3
- package/esm2022/lib/directives/radio/radio-group.directive.mjs +11 -9
- package/esm2022/lib/directives/radio/radio-group.module.mjs +4 -4
- package/esm2022/lib/directives/ripple/ripple.directive.mjs +7 -7
- package/esm2022/lib/directives/ripple/ripple.module.mjs +4 -4
- package/esm2022/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +3 -3
- package/esm2022/lib/directives/scroll-inertia/scroll_inertia.module.mjs +4 -4
- package/esm2022/lib/directives/suffix/suffix.directive.mjs +3 -3
- package/esm2022/lib/directives/template-outlet/template_outlet.directive.mjs +3 -3
- package/esm2022/lib/directives/text-highlight/text-highlight.directive.mjs +3 -3
- package/esm2022/lib/directives/text-highlight/text-highlight.module.mjs +4 -4
- package/esm2022/lib/directives/text-selection/text-selection.directive.mjs +26 -46
- package/esm2022/lib/directives/text-selection/text-selection.module.mjs +4 -4
- package/esm2022/lib/directives/toggle/toggle.directive.mjs +9 -9
- package/esm2022/lib/directives/toggle/toggle.module.mjs +4 -4
- package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +6 -6
- package/esm2022/lib/directives/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +3 -3
- package/esm2022/lib/directives/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/lib/drop-down/drop-down-group.component.mjs +7 -6
- package/esm2022/lib/drop-down/drop-down-item.base.mjs +11 -8
- package/esm2022/lib/drop-down/drop-down-item.component.mjs +3 -3
- package/esm2022/lib/drop-down/drop-down-navigation.directive.mjs +3 -3
- package/esm2022/lib/drop-down/drop-down.base.mjs +3 -3
- package/esm2022/lib/drop-down/drop-down.component.mjs +7 -6
- package/esm2022/lib/drop-down/drop-down.module.mjs +4 -4
- package/esm2022/lib/expansion-panel/expansion-panel-body.component.mjs +3 -3
- package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +7 -6
- package/esm2022/lib/expansion-panel/expansion-panel.common.mjs +3 -3
- package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +7 -6
- package/esm2022/lib/expansion-panel/expansion-panel.directives.mjs +9 -9
- package/esm2022/lib/expansion-panel/expansion-panel.module.mjs +4 -4
- package/esm2022/lib/expansion-panel/toggle-animation-component.mjs +3 -3
- package/esm2022/lib/grids/api.service.mjs +3 -3
- package/esm2022/lib/grids/cell.component.mjs +7 -6
- package/esm2022/lib/grids/column-actions/column-actions-base.directive.mjs +3 -3
- package/esm2022/lib/grids/column-actions/column-actions.component.mjs +16 -15
- package/esm2022/lib/grids/column-actions/column-hiding.directive.mjs +3 -3
- package/esm2022/lib/grids/column-actions/column-pinning.directive.mjs +3 -3
- package/esm2022/lib/grids/columns/column-group.component.mjs +13 -9
- package/esm2022/lib/grids/columns/column-layout.component.mjs +7 -6
- package/esm2022/lib/grids/columns/column.component.mjs +37 -21
- package/esm2022/lib/grids/columns/templates.directive.mjs +24 -24
- package/esm2022/lib/grids/columns/validators.directive.mjs +21 -21
- package/esm2022/lib/grids/common/crud.service.mjs +3 -3
- package/esm2022/lib/grids/common/pipes.mjs +54 -54
- package/esm2022/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/base-filtering.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +9 -9
- package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +11 -8
- package/esm2022/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +6 -6
- package/esm2022/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +3 -3
- package/esm2022/lib/grids/filtering/grid-filtering.service.mjs +5 -5
- package/esm2022/lib/grids/grid/expandable-cell.component.mjs +3 -3
- package/esm2022/lib/grids/grid/grid-api.service.mjs +3 -3
- package/esm2022/lib/grids/grid/grid-row.component.mjs +3 -3
- package/esm2022/lib/grids/grid/grid-validation.service.mjs +3 -3
- package/esm2022/lib/grids/grid/grid.component.mjs +11 -8
- package/esm2022/lib/grids/grid/grid.details.pipe.mjs +3 -3
- package/esm2022/lib/grids/grid/grid.module.mjs +4 -4
- package/esm2022/lib/grids/grid/grid.pipes.mjs +12 -12
- package/esm2022/lib/grids/grid/grid.summary.pipe.mjs +3 -3
- package/esm2022/lib/grids/grid/groupby-row.component.mjs +3 -3
- package/esm2022/lib/grids/grid-base.directive.mjs +33 -19
- package/esm2022/lib/grids/grid-footer/grid-footer.component.mjs +3 -3
- package/esm2022/lib/grids/grid-mrl-navigation.service.mjs +3 -3
- package/esm2022/lib/grids/grid-navigation.service.mjs +3 -3
- package/esm2022/lib/grids/grid.common.mjs +3 -3
- package/esm2022/lib/grids/grid.directives.mjs +33 -33
- package/esm2022/lib/grids/grid.rowEdit.directive.mjs +15 -15
- package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +3 -3
- package/esm2022/lib/grids/grouping/group-by-area.directive.mjs +6 -6
- package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +8 -7
- package/esm2022/lib/grids/headers/grid-header-group.component.mjs +3 -3
- package/esm2022/lib/grids/headers/grid-header-row.component.mjs +14 -7
- package/esm2022/lib/grids/headers/grid-header.component.mjs +3 -3
- package/esm2022/lib/grids/headers/pipes.mjs +9 -9
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +7 -6
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +11 -10
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +4 -4
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +6 -6
- package/esm2022/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/row-island-api.service.mjs +3 -3
- package/esm2022/lib/grids/hierarchical-grid/row-island.component.mjs +7 -6
- package/esm2022/lib/grids/moving/moving.drag.directive.mjs +3 -3
- package/esm2022/lib/grids/moving/moving.drop.directive.mjs +3 -3
- package/esm2022/lib/grids/moving/moving.service.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +13 -9
- package/esm2022/lib/grids/pivot-grid/pivot-filtering.service.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-grid-navigation.service.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +25 -15
- package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-grid.module.mjs +4 -4
- package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +30 -30
- package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-row-dimension-header.component.mjs +3 -3
- package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +3 -3
- package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +3 -3
- package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +3 -3
- package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizing.service.mjs +3 -3
- package/esm2022/lib/grids/resizing/resize-handle.directive.mjs +3 -3
- package/esm2022/lib/grids/resizing/resizer.component.mjs +3 -3
- package/esm2022/lib/grids/resizing/resizer.directive.mjs +3 -3
- package/esm2022/lib/grids/resizing/resizing.service.mjs +3 -3
- package/esm2022/lib/grids/row-drag.directive.mjs +9 -9
- package/esm2022/lib/grids/row.directive.mjs +7 -6
- package/esm2022/lib/grids/selection/drag-select.directive.mjs +6 -6
- package/esm2022/lib/grids/selection/row-selectors.mjs +9 -9
- package/esm2022/lib/grids/selection/selection.service.mjs +3 -3
- package/esm2022/lib/grids/state.directive.mjs +3 -3
- package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +3 -3
- package/esm2022/lib/grids/summaries/grid-summary.service.mjs +10 -8
- package/esm2022/lib/grids/summaries/summary-cell.component.mjs +7 -6
- package/esm2022/lib/grids/summaries/summary-row.component.mjs +3 -3
- package/esm2022/lib/grids/toolbar/common.mjs +15 -15
- package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +3 -3
- package/esm2022/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +9 -7
- package/esm2022/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +3 -3
- package/esm2022/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +3 -3
- package/esm2022/lib/grids/toolbar/grid-toolbar.base.mjs +16 -11
- package/esm2022/lib/grids/toolbar/grid-toolbar.component.mjs +7 -6
- package/esm2022/lib/grids/tree-grid/tree-cell.component.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid-row.component.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid-selection.service.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +7 -6
- package/esm2022/lib/grids/tree-grid/tree-grid.directives.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +3 -3
- package/esm2022/lib/grids/tree-grid/tree-grid.module.mjs +4 -4
- package/esm2022/lib/grids/tree-grid/tree-grid.pipes.mjs +21 -21
- package/esm2022/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +3 -3
- package/esm2022/lib/icon/icon.component.mjs +6 -6
- package/esm2022/lib/icon/icon.module.mjs +4 -4
- package/esm2022/lib/icon/icon.service.mjs +3 -3
- package/esm2022/lib/input-group/input-group.component.mjs +7 -6
- package/esm2022/lib/input-group/input-group.module.mjs +4 -4
- package/esm2022/lib/list/list-item.component.mjs +9 -7
- package/esm2022/lib/list/list.common.mjs +15 -15
- package/esm2022/lib/list/list.component.mjs +26 -23
- package/esm2022/lib/list/list.module.mjs +4 -4
- package/esm2022/lib/navbar/navbar.component.mjs +13 -12
- package/esm2022/lib/navbar/navbar.module.mjs +4 -4
- package/esm2022/lib/navigation-drawer/navigation-drawer.component.mjs +13 -9
- package/esm2022/lib/navigation-drawer/navigation-drawer.directives.mjs +13 -13
- package/esm2022/lib/navigation-drawer/navigation-drawer.module.mjs +4 -4
- package/esm2022/lib/paginator/paginator-interfaces.mjs +3 -3
- package/esm2022/lib/paginator/paginator.component.mjs +12 -12
- package/esm2022/lib/paginator/paginator.module.mjs +4 -4
- package/esm2022/lib/progressbar/progressbar.common.mjs +6 -6
- package/esm2022/lib/progressbar/progressbar.component.mjs +23 -17
- package/esm2022/lib/progressbar/progressbar.module.mjs +4 -4
- package/esm2022/lib/query-builder/query-builder-header.component.mjs +7 -6
- package/esm2022/lib/query-builder/query-builder.component.mjs +6 -6
- package/esm2022/lib/query-builder/query-builder.module.mjs +4 -4
- package/esm2022/lib/radio/radio.component.mjs +37 -44
- package/esm2022/lib/select/select-group.component.mjs +3 -3
- package/esm2022/lib/select/select-item.component.mjs +3 -3
- package/esm2022/lib/select/select-navigation.directive.mjs +3 -3
- package/esm2022/lib/select/select.component.mjs +16 -15
- package/esm2022/lib/select/select.module.mjs +4 -4
- package/esm2022/lib/services/animation/angular-animation-service.mjs +3 -3
- package/esm2022/lib/services/csv/csv-exporter.mjs +3 -3
- package/esm2022/lib/services/direction/directionality.mjs +3 -3
- package/esm2022/lib/services/excel/excel-exporter.mjs +3 -3
- package/esm2022/lib/services/overlay/overlay.mjs +5 -5
- package/esm2022/lib/services/transaction/transaction-factory.service.mjs +6 -6
- package/esm2022/lib/simple-combo/simple-combo.component.mjs +51 -31
- package/esm2022/lib/simple-combo/simple-combo.module.mjs +4 -4
- package/esm2022/lib/slider/label/thumb-label.component.mjs +9 -7
- package/esm2022/lib/slider/slider.common.mjs +9 -9
- package/esm2022/lib/slider/slider.component.mjs +15 -10
- package/esm2022/lib/slider/slider.module.mjs +4 -4
- package/esm2022/lib/slider/thumb/thumb-slider.component.mjs +11 -8
- package/esm2022/lib/slider/ticks/tick.pipe.mjs +3 -3
- package/esm2022/lib/slider/ticks/ticks.component.mjs +11 -8
- package/esm2022/lib/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/snackbar/snackbar.module.mjs +4 -4
- package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +9 -7
- package/esm2022/lib/splitter/splitter.component.mjs +6 -6
- package/esm2022/lib/splitter/splitter.module.mjs +4 -4
- package/esm2022/lib/stepper/step/step.component.mjs +15 -10
- package/esm2022/lib/stepper/stepper.component.mjs +9 -7
- package/esm2022/lib/stepper/stepper.directive.mjs +21 -21
- package/esm2022/lib/stepper/stepper.module.mjs +4 -4
- package/esm2022/lib/stepper/stepper.service.mjs +6 -6
- package/esm2022/lib/switch/switch.component.mjs +32 -40
- package/esm2022/lib/switch/switch.module.mjs +4 -4
- package/esm2022/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +3 -3
- package/esm2022/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +3 -3
- package/esm2022/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +3 -3
- package/esm2022/lib/tabs/bottom-nav/bottom-nav.component.mjs +5 -5
- package/esm2022/lib/tabs/bottom-nav/bottom-nav.directives.mjs +6 -6
- package/esm2022/lib/tabs/bottom-nav/bottom-nav.module.mjs +4 -4
- package/esm2022/lib/tabs/tab-content.directive.mjs +3 -3
- package/esm2022/lib/tabs/tab-header.directive.mjs +3 -3
- package/esm2022/lib/tabs/tab-item.directive.mjs +9 -7
- package/esm2022/lib/tabs/tabs/tab-content.component.mjs +3 -3
- package/esm2022/lib/tabs/tabs/tab-header.component.mjs +3 -3
- package/esm2022/lib/tabs/tabs/tab-item.component.mjs +3 -3
- package/esm2022/lib/tabs/tabs/tabs.component.mjs +3 -3
- package/esm2022/lib/tabs/tabs/tabs.directives.mjs +6 -6
- package/esm2022/lib/tabs/tabs/tabs.module.mjs +4 -4
- package/esm2022/lib/tabs/tabs.directive.mjs +11 -17
- package/esm2022/lib/time-picker/time-picker.component.mjs +9 -7
- package/esm2022/lib/time-picker/time-picker.directives.mjs +6 -6
- package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/lib/time-picker/time-picker.pipes.mjs +6 -6
- package/esm2022/lib/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +4 -4
- package/esm2022/lib/tree/tree-navigation.service.mjs +3 -3
- package/esm2022/lib/tree/tree-node/tree-node.component.mjs +18 -13
- package/esm2022/lib/tree/tree-selection.service.mjs +3 -3
- package/esm2022/lib/tree/tree.component.mjs +13 -12
- package/esm2022/lib/tree/tree.module.mjs +4 -4
- package/esm2022/lib/tree/tree.service.mjs +3 -3
- package/fesm2022/igniteui-angular.mjs +2245 -2106
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/accordion/accordion.component.d.ts +1 -0
- package/lib/action-strip/action-strip.component.d.ts +2 -2
- package/lib/action-strip/grid-actions/grid-action-button.component.d.ts +1 -0
- package/lib/action-strip/grid-actions/grid-actions-base.directive.d.ts +1 -0
- package/lib/action-strip/grid-actions/grid-editing-actions.component.d.ts +4 -0
- package/lib/buttonGroup/buttonGroup.component.d.ts +1 -0
- package/lib/calendar/calendar-base.d.ts +1 -0
- package/lib/calendar/calendar.component.d.ts +3 -0
- package/lib/calendar/days-view/day-item.component.d.ts +4 -0
- package/lib/calendar/days-view/days-view.component.d.ts +2 -0
- package/lib/calendar/months-view/months-view.component.d.ts +1 -0
- package/lib/calendar/years-view/years-view.component.d.ts +1 -0
- package/lib/card/card.component.d.ts +4 -0
- package/lib/carousel/carousel.component.d.ts +5 -0
- package/lib/carousel/slide.component.d.ts +2 -0
- package/lib/checkbox/checkbox.component.d.ts +10 -16
- package/lib/chips/chip.component.d.ts +7 -0
- package/lib/combo/combo-dropdown.component.d.ts +1 -0
- package/lib/combo/combo-item.component.d.ts +1 -0
- package/lib/combo/combo.common.d.ts +10 -21
- package/lib/combo/combo.component.d.ts +10 -8
- package/lib/date-common/picker-base.directive.d.ts +1 -0
- package/lib/date-picker/date-picker.component.d.ts +4 -0
- package/lib/date-range-picker/date-range-picker.component.d.ts +2 -0
- package/lib/dialog/dialog.component.d.ts +5 -0
- package/lib/directives/autocomplete/autocomplete.directive.d.ts +1 -0
- package/lib/directives/button/button.directive.d.ts +10 -23
- package/lib/directives/date-time-editor/date-time-editor.directive.d.ts +1 -0
- package/lib/directives/divider/divider.directive.d.ts +2 -0
- package/lib/directives/drag-drop/drag-drop.directive.d.ts +1 -0
- package/lib/directives/focus/focus.directive.d.ts +1 -0
- package/lib/directives/focus-trap/focus-trap.directive.d.ts +1 -0
- package/lib/directives/for-of/for_of.directive.d.ts +2 -0
- package/lib/directives/input/input.directive.d.ts +2 -2
- package/lib/directives/layout/layout.directive.d.ts +1 -0
- package/lib/directives/mask/mask.directive.d.ts +1 -0
- package/lib/directives/notification/notifications.directive.d.ts +2 -0
- package/lib/directives/radio/radio-group.directive.d.ts +2 -2
- package/lib/directives/ripple/ripple.directive.d.ts +2 -0
- package/lib/directives/text-selection/text-selection.directive.d.ts +2 -17
- package/lib/directives/tooltip/tooltip-target.directive.d.ts +1 -0
- package/lib/drop-down/drop-down-group.component.d.ts +1 -0
- package/lib/drop-down/drop-down-item.base.d.ts +3 -0
- package/lib/drop-down/drop-down.component.d.ts +1 -0
- package/lib/expansion-panel/expansion-panel-header.component.d.ts +1 -0
- package/lib/expansion-panel/expansion-panel.component.d.ts +1 -0
- package/lib/grids/cell.component.d.ts +1 -0
- package/lib/grids/column-actions/column-actions.component.d.ts +1 -0
- package/lib/grids/columns/column-group.component.d.ts +4 -0
- package/lib/grids/columns/column-layout.component.d.ts +1 -0
- package/lib/grids/columns/column.component.d.ts +16 -0
- package/lib/grids/filtering/excel-style/excel-style-header.component.d.ts +3 -0
- package/lib/grids/grid/grid.component.d.ts +3 -0
- package/lib/grids/grid-base.directive.d.ts +11 -0
- package/lib/grids/grouping/tree-grid-group-by-area.component.d.ts +1 -0
- package/lib/grids/headers/grid-header-row.component.d.ts +5 -0
- package/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.d.ts +1 -0
- package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +2 -1
- package/lib/grids/hierarchical-grid/row-island.component.d.ts +1 -0
- package/lib/grids/pivot-grid/pivot-data-selector.component.d.ts +4 -0
- package/lib/grids/pivot-grid/pivot-grid.component.d.ts +10 -0
- package/lib/grids/row.directive.d.ts +1 -0
- package/lib/grids/selection/drag-select.directive.d.ts +1 -0
- package/lib/grids/summaries/summary-cell.component.d.ts +1 -0
- package/lib/grids/toolbar/grid-toolbar-exporter.component.d.ts +2 -0
- package/lib/grids/toolbar/grid-toolbar.base.d.ts +1 -0
- package/lib/grids/toolbar/grid-toolbar.component.d.ts +1 -0
- package/lib/grids/tree-grid/tree-grid.component.d.ts +1 -0
- package/lib/icon/icon.component.d.ts +1 -0
- package/lib/input-group/input-group.component.d.ts +1 -0
- package/lib/list/list-item.component.d.ts +2 -0
- package/lib/list/list.component.d.ts +3 -0
- package/lib/navbar/navbar.component.d.ts +1 -0
- package/lib/navigation-drawer/navigation-drawer.component.d.ts +4 -0
- package/lib/navigation-drawer/navigation-drawer.directives.d.ts +2 -0
- package/lib/progressbar/progressbar.component.d.ts +6 -0
- package/lib/query-builder/query-builder-header.component.d.ts +1 -0
- package/lib/radio/radio.component.d.ts +5 -4
- package/lib/select/select.component.d.ts +1 -0
- package/lib/simple-combo/simple-combo.component.d.ts +16 -1
- package/lib/slider/label/thumb-label.component.d.ts +2 -0
- package/lib/slider/slider.component.d.ts +5 -0
- package/lib/slider/thumb/thumb-slider.component.d.ts +4 -1
- package/lib/slider/ticks/ticks.component.d.ts +3 -0
- package/lib/splitter/splitter-pane/splitter-pane.component.d.ts +2 -0
- package/lib/stepper/step/step.component.d.ts +5 -0
- package/lib/stepper/stepper.component.d.ts +2 -0
- package/lib/switch/switch.component.d.ts +4 -4
- package/lib/tabs/bottom-nav/bottom-nav.component.d.ts +1 -1
- package/lib/tabs/tab-item.directive.d.ts +2 -0
- package/lib/tabs/tabs.directive.d.ts +2 -4
- package/lib/time-picker/time-picker.component.d.ts +2 -0
- package/lib/tree/tree-node/tree-node.component.d.ts +5 -0
- package/lib/tree/tree.component.d.ts +1 -0
- package/migrations/common/tsUtils.d.ts +2 -0
- package/migrations/common/tsUtils.js +4 -3
- package/migrations/update-17_0_0/changes/classes.json +21 -0
- package/migrations/update-17_0_0/changes/members.json +21 -0
- package/migrations/update-17_0_0/index.js +48 -1
- package/package.json +2 -2
- package/schematics/tsconfig.tsbuildinfo +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, ContentChildren, EventEmitter, HostBinding, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, ContentChildren, EventEmitter, HostBinding, Input, Output, booleanAttribute } from '@angular/core';
|
|
2
2
|
import { fromEvent, Subject } from 'rxjs';
|
|
3
3
|
import { takeUntil } from 'rxjs/operators';
|
|
4
4
|
import { ACCORDION_NAVIGATION_KEYS } from '../core/utils';
|
|
@@ -221,7 +221,7 @@ export class IgxAccordionComponent {
|
|
|
221
221
|
p.collapsed = true;
|
|
222
222
|
}
|
|
223
223
|
});
|
|
224
|
-
this.cdr.
|
|
224
|
+
this.cdr.markForCheck();
|
|
225
225
|
}
|
|
226
226
|
handleKeydown(event, panel) {
|
|
227
227
|
const key = event.key.toLowerCase();
|
|
@@ -345,10 +345,10 @@ export class IgxAccordionComponent {
|
|
|
345
345
|
this.panels?.forEach(panel => panel.animationSettings = this.animationSettings);
|
|
346
346
|
}
|
|
347
347
|
}
|
|
348
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
349
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
348
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxAccordionComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
349
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxAccordionComponent, isStandalone: true, selector: "igx-accordion", inputs: { id: "id", animationSettings: "animationSettings", singleBranchExpand: ["singleBranchExpand", "singleBranchExpand", booleanAttribute] }, outputs: { panelExpanding: "panelExpanding", panelExpanded: "panelExpanded", panelCollapsing: "panelCollapsing", panelCollapsed: "panelCollapsed" }, host: { properties: { "attr.id": "this.id", "class.igx-accordion": "this.cssClass", "style.display": "this.displayStyle" } }, queries: [{ propertyName: "_panels", predicate: IgxExpansionPanelComponent }], ngImport: i0, template: "<ng-content select=\"igx-expansion-panel\"></ng-content>\n" }); }
|
|
350
350
|
}
|
|
351
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
351
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxAccordionComponent, decorators: [{
|
|
352
352
|
type: Component,
|
|
353
353
|
args: [{ selector: 'igx-accordion', standalone: true, template: "<ng-content select=\"igx-expansion-panel\"></ng-content>\n" }]
|
|
354
354
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { id: [{
|
|
@@ -365,7 +365,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
365
365
|
}], animationSettings: [{
|
|
366
366
|
type: Input
|
|
367
367
|
}], singleBranchExpand: [{
|
|
368
|
-
type: Input
|
|
368
|
+
type: Input,
|
|
369
|
+
args: [{ transform: booleanAttribute }]
|
|
369
370
|
}], panelExpanding: [{
|
|
370
371
|
type: Output
|
|
371
372
|
}], panelExpanded: [{
|
|
@@ -378,4 +379,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
378
379
|
type: ContentChildren,
|
|
379
380
|
args: [IgxExpansionPanelComponent]
|
|
380
381
|
}] } });
|
|
381
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0QsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQ2pHLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7O0FBZTFGLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUF1QjlCOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILElBQ1csaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGlCQUFpQixDQUFDLEtBQThCO1FBQ3ZELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxJQUNXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBVyxrQkFBa0IsQ0FBQyxHQUFZO1FBQ3RDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLENBQUM7UUFDL0IsSUFBSSxHQUFHLEVBQUU7WUFDTCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNoQztJQUNMLENBQUM7SUFvRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFZRCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWpLMUM7Ozs7Ozs7OztXQVNHO1FBR0ksT0FBRSxHQUFHLGlCQUFpQixPQUFPLEVBQUUsRUFBRSxDQUFDO1FBRXpDLHlCQUF5QjtRQUVsQixhQUFRLEdBQUcsZUFBZSxDQUFDO1FBRWxDLHlCQUF5QjtRQUVsQixpQkFBWSxHQUFHLE9BQU8sQ0FBQztRQXNEOUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FtQkc7UUFFSSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO1FBRTFFOzs7Ozs7Ozs7Ozs7OztXQWNHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUUvRDs7Ozs7Ozs7OztXQVVHO1FBRUksb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQUUzRTs7Ozs7OztXQU9HO1FBRUksbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQWtCeEQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXRDLHdCQUFtQixHQUFHLEtBQUssQ0FBQztJQUVVLENBQUM7SUFFL0MseUJBQXlCO0lBQ2xCLGtCQUFrQjtRQUNyQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNoQztJQUNMLENBQUM7SUFFRCx5QkFBeUI7SUFDbEIsZUFBZTtRQUNsQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksR0FBRyxDQUE2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELHdCQUF3QjtJQUNqQixXQUFXO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksU0FBUztRQUNaLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDN0I7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxXQUFXO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4RixJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQTZCLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDMUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdEI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFvQixFQUFFLEtBQWlDO1FBQ3pFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDdkMsT0FBTztTQUNWO1FBQ0Qsc0VBQXNFO1FBQ3RFLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFvQixFQUFFLEtBQWlDO1FBQzVFLFFBQVEsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUM3QixLQUFLLE1BQU07Z0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNuRCxNQUFNO1lBQ1YsS0FBSyxLQUFLO2dCQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEYsTUFBTTtZQUNWLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxJQUFJO2dCQUNMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1lBQ1YsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxNQUFNO2dCQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM1QyxNQUFNO1NBQ2I7SUFDTCxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBYSxFQUFFLEtBQW9CLEVBQUUsS0FBaUM7UUFDNUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDZixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUQsSUFBSSxJQUFJLEtBQUssWUFBWSxFQUFFO2dCQUN2QixPQUFPO2FBQ1Y7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNwQztRQUNELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2hDLElBQUksSUFBSSxFQUFFO2dCQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7b0JBQ3pCLEtBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ3BELElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7cUJBQ3JDO29CQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzdELE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUNoRDtTQUNKO0lBQ0wsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFpQyxFQUFFLE1BQWMsQ0FBQztRQUNuRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0RCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUMxRCxDQUFDO0lBRU8sWUFBWTtRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUE4QixFQUFFLEVBQUU7Z0JBQ3JHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sTUFBTSxHQUF3QixFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUF3QyxFQUFFLEVBQUU7Z0JBQ2hILElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDYixPQUFPO2lCQUNWO2dCQUNELE1BQU0sTUFBTSxHQUFrQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDZixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDbkIsT0FBTztpQkFDVjtnQkFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtvQkFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQzdCLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTs0QkFDcEIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO3lCQUNoQjtvQkFDTCxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUM5QixJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7NEJBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsY0FBYyxFQUFFO2dDQUNyQyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLENBQUM7NkJBQ2xDOzRCQUNELElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFO2dDQUNwQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUM7NkJBQ25DOzRCQUNELENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzt5QkFDaEI7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3pDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUE4QixFQUFFLEVBQUU7Z0JBQ3RHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sTUFBTSxHQUF3QixFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7WUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUF3QyxFQUFFLEVBQUU7Z0JBQ2pILE1BQU0sTUFBTSxHQUFrQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDZixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDdEI7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUNILFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUM7aUJBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2lCQUNyQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtZQUN0QyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNuRjtJQUNMLENBQUM7bUhBbldRLHFCQUFxQjt1R0FBckIscUJBQXFCLDRkQXdKYiwwQkFBMEIsNkJDNU0vQyw0REFDQTs7Z0dEbURhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxlQUFlLGNBRWIsSUFBSTtzRkFlVCxFQUFFO3NCQUZSLFdBQVc7dUJBQUMsU0FBUzs7c0JBQ3JCLEtBQUs7Z0JBS0MsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLHFCQUFxQjtnQkFLM0IsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQyxlQUFlO2dCQW9CakIsaUJBQWlCO3NCQUQzQixLQUFLO2dCQXlCSyxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBaUNDLGNBQWM7c0JBRHBCLE1BQU07Z0JBbUJBLGFBQWE7c0JBRG5CLE1BQU07Z0JBZUEsZUFBZTtzQkFEckIsTUFBTTtnQkFZQSxjQUFjO3NCQURwQixNQUFNO2dCQWVDLE9BQU87c0JBRGQsZUFBZTt1QkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQUNDT1JESU9OX05BVklHQVRJT05fS0VZUyB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyxcbiAgICBJRXhwYW5zaW9uUGFuZWxFdmVudEFyZ3MsIElneEV4cGFuc2lvblBhbmVsQmFzZSB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC9leHBhbnNpb24tcGFuZWwuY29tbW9uJztcbmltcG9ydCB7IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9nZ2xlQW5pbWF0aW9uU2V0dGluZ3MgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvdG9nZ2xlLWFuaW1hdGlvbi1jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvcmRpb25FdmVudEFyZ3MgZXh0ZW5kcyBJRXhwYW5zaW9uUGFuZWxFdmVudEFyZ3Mge1xuICAgIG93bmVyOiBJZ3hBY2NvcmRpb25Db21wb25lbnQ7XG4gICAgLyoqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRgIHdoaWNoIHdhcyBleHBhbmRlZC9jb2xsYXBzZWQuICovXG4gICAgcGFuZWw6IElneEV4cGFuc2lvblBhbmVsQmFzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3JkaW9uQ2FuY2VsYWJsZUV2ZW50QXJncyBleHRlbmRzIElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3Mge1xuICAgIG93bmVyOiBJZ3hBY2NvcmRpb25Db21wb25lbnQ7XG4gICAgLyoqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRgIHdoaWNoIGlzIGN1cnJlbnRseSBleHBhbmRpbmcvY29sbGFwc2luZy4gKi9cbiAgICBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxCYXNlO1xufVxuXG5sZXQgTkVYVF9JRCA9IDA7XG5cbi8qKlxuICogSWd4QWNjb3JkaW9uIGlzIGEgY29udGFpbmVyLWJhc2VkIGNvbXBvbmVudCB0aGF0IGNvbnRhaW5zIHRoYXQgY2FuIGhvdXNlIG11bHRpcGxlIGV4cGFuc2lvbiBwYW5lbHMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hBY2NvcmRpb25Nb2R1bGVcbiAqXG4gKiBAaWd4S2V5d29yZHMgYWNjb3JkaW9uXG4gKlxuICogQGlneEdyb3VwIExheW91dHNcbiAqXG4gKiBAcmVtYXJrXG4gKiBUaGUgSWduaXRlIFVJIGZvciBBbmd1bGFyIEFjY29yZGlvbiBjb21wb25lbnQgZW5hYmxlcyB0aGUgdXNlciB0byBuYXZpZ2F0ZSBhbW9uZyBtdWx0aXBsZSBjb2xsYXBzaW5nIHBhbmVsc1xuICogZGlzcGxheWVkIGluIGEgc2luZ2xlIGNvbnRhaW5lci5cbiAqIFRoZSBhY2NvcmRpb24gb2ZmZXJzIGtleWJvYXJkIG5hdmlnYXRpb24gYW5kIEFQSSB0byBjb250cm9sIHRoZSB1bmRlcmx5aW5nIHBhbmVscycgZXhwYW5zaW9uIHN0YXRlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWFjY29yZGlvbj5cbiAqICAgPGlneC1leHBhbnNpb24tcGFuZWwgKm5nRm9yPVwibGV0IHBhbmVsIG9mIHBhbmVsc1wiPlxuICogICAgICAgLi4uXG4gKiAgIDwvaWd4LWV4cGFuc2lvbi1wYW5lbD5cbiAqIDwvaWd4LWFjY29yZGlvbj5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1hY2NvcmRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIElneEFjY29yZGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgYGlkYCBvZiB0aGUgYWNjb3JkaW9uIGNvbXBvbmVudC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBcImlneC1hY2NvcmRpb24tMFwiYDtcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY2NvcmRpb24gaWQ9XCJteS1maXJzdC1hY2NvcmRpb25cIj48L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IGFjY29yZGlvbklkID0gdGhpcy5hY2NvcmRpb24uaWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtYWNjb3JkaW9uLSR7TkVYVF9JRCsrfWA7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYWNjb3JkaW9uJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWFjY29yZGlvbic7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JylcbiAgICBwdWJsaWMgZGlzcGxheVN0eWxlID0gJ2Jsb2NrJztcblxuICAgIC8qKlxuICAgICAqIEdldC9TZXQgdGhlIGFuaW1hdGlvbiBzZXR0aW5ncyB0aGF0IHBhbmVscyBzaG91bGQgdXNlIHdoZW4gZXhwYW5kaW5nL2NvbGxwYXNpbmcuXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY2NvcmRpb24gW2FuaW1hdGlvblNldHRpbmdzXT1cImN1c3RvbUFuaW1hdGlvblNldHRpbmdzXCI+PC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IGN1c3RvbUFuaW1hdGlvblNldHRpbmdzOiBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyA9IHtcbiAgICAgKiAgICAgIG9wZW5BbmltYXRpb246IGdyb3dWZXJJbixcbiAgICAgKiAgICAgIGNsb3NlQW5pbWF0aW9uOiBncm93VmVyT3V0XG4gICAgICogfTtcbiAgICAgKlxuICAgICAqIHRoaXMuYWNjb3JkaW9uLmFuaW1hdGlvblNldHRpbmdzID0gY3VzdG9tQW5pbWF0aW9uU2V0dGluZ3M7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGFuaW1hdGlvblNldHRpbmdzKCk6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYW5pbWF0aW9uU2V0dGluZ3ModmFsdWU6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzKSB7XG4gICAgICAgIHRoaXMuX2FuaW1hdGlvblNldHRpbmdzID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlUGFuZWxzQW5pbWF0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCBob3cgdGhlIGFjY29yZGlvbiBoYW5kbGVzIHRoZSBleHBhbnNpb24gb2YgdGhlIHByb2plY3RlZCBleHBhbnNpb24gcGFuZWxzLlxuICAgICAqIElmIHNldCB0byBgdHJ1ZWAsIG9ubHkgYSBzaW5nbGUgcGFuZWwgY2FuIGJlIGV4cGFuZGVkIGF0IGEgdGltZSwgY29sbGFwc2luZyBhbGwgb3RoZXJzXG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY2NvcmRpb24gW3NpbmdsZUJyYW5jaEV4cGFuZF09XCJ0cnVlXCI+XG4gICAgICogLi4uXG4gICAgICogPC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuYWNjb3JkaW9uLnNpbmdsZUJyYW5jaEV4cGFuZCA9IGZhbHNlO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBzaW5nbGVCcmFuY2hFeHBhbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaW5nbGVCcmFuY2hFeHBhbmQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzaW5nbGVCcmFuY2hFeHBhbmQodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NpbmdsZUJyYW5jaEV4cGFuZCA9IHZhbDtcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUFsbEV4Y2VwdExhc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYmVmb3JlIGEgcGFuZWwgaXMgZXhwYW5kZWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFRoaXMgZXZlbnQgaXMgY2FuY2VsYWJsZS5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiAocGFuZWxFeHBhbmRpbmcpPVwiaGFuZGxlUGFuZWxFeHBhbmRpbmcoJGV2ZW50KVwiPlxuICAgICAqIDwvaWd4LWFjY29yZGlvbj5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqYGBgdHlwZXNjcmlwdFxuICAgICAqIHB1YmxpYyBoYW5kbGVQYW5lbEV4cGFuZGluZyhldmVudDogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyl7XG4gICAgICogIGNvbnN0IGV4cGFuZGVkUGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50ID0gZXZlbnQucGFuZWw7XG4gICAgICogIGlmIChleHBhbmRlZFBhbmVsLmRpc2FibGVkKSB7XG4gICAgICogICAgICBldmVudC5jYW5jZWwgPSB0cnVlO1xuICAgICAqICB9XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsRXhwYW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxJQWNjb3JkaW9uQ2FuY2VsYWJsZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYWZ0ZXIgYSBwYW5lbCBoYXMgYmVlbiBleHBhbmRlZC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiAocGFuZWxFeHBhbmRlZCk9XCJoYW5kbGVQYW5lbEV4cGFuZGVkKCRldmVudClcIj5cbiAgICAgKiA8L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiBwdWJsaWMgaGFuZGxlUGFuZWxFeHBhbmRlZChldmVudDogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncykge1xuICAgICAqICBjb25zdCBleHBhbmRlZFBhbmVsOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCA9IGV2ZW50LnBhbmVsO1xuICAgICAqICBjb25zb2xlLmxvZyhcIlBhbmVsIGlzIGV4cGFuZGVkOiBcIiwgZXhwYW5kZWRQYW5lbC5pZCk7XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsRXhwYW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElBY2NvcmRpb25FdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGJlZm9yZSBhIHBhbmVsIGlzIGNvbGxhcHNlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogVGhpcyBldmVudCBpcyBjYW5jZWxhYmxlLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYWNjb3JkaW9uIChwYW5lbENvbGxhcHNpbmcpPVwiaGFuZGxlUGFuZWxDb2xsYXBzaW5nKCRldmVudClcIj5cbiAgICAgKiA8L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsQ29sbGFwc2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjY29yZGlvbkNhbmNlbGFibGVFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIGEgcGFuZWwgaGFzIGJlZW4gY29sbGFwc2VkLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYWNjb3JkaW9uIChwYW5lbENvbGxhcHNlZCk9XCJoYW5kbGVQYW5lbENvbGxhcHNlZCgkZXZlbnQpXCI+XG4gICAgICogPC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYW5lbENvbGxhcHNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjY29yZGlvbkV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEdldCBhbGwgcGFuZWxzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IHBhbmVsczogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRbXSA9IHRoaXMuYWNjb3JkaW9uLnBhbmVscztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBhbmVscygpOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVscz8udG9BcnJheSgpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpXG4gICAgcHJpdmF0ZSBfcGFuZWxzITogUXVlcnlMaXN0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9hbmltYXRpb25TZXR0aW5ncyE6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzO1xuICAgIHByaXZhdGUgX2V4cGFuZGVkUGFuZWxzITogU2V0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9leHBhbmRpbmdQYW5lbHMhOiBTZXQ8SWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQ+O1xuICAgIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF91bnN1YkNoaWxkcmVuJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfZW5hYmxlZFBhbmVscyE6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50W107XG4gICAgcHJpdmF0ZSBfc2luZ2xlQnJhbmNoRXhwYW5kID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICoqL1xuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlUGFuZWxzQW5pbWF0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLnNpbmdsZUJyYW5jaEV4cGFuZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUFsbEV4Y2VwdExhc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9leHBhbmRlZFBhbmVscyA9IG5ldyBTZXQ8SWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQ+KHRoaXMuX3BhbmVscy5maWx0ZXIocGFuZWwgPT4gIXBhbmVsLmNvbGxhcHNlZCkpO1xuICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMgPSBuZXcgU2V0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PigpO1xuICAgICAgICB0aGlzLl9wYW5lbHMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1YlRvQ2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJUb0NoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3ViQ2hpbGRyZW4kLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJDaGlsZHJlbiQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4cGFuZHMgYWxsIGNvbGxhcHNlZCBleHBhbnNpb24gcGFuZWxzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGFjY29yZGlvbi5leHBhbmRBbGwoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kQWxsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0aGlzLnBhbmVscy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsc1tpXS5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fcGFuZWxzLmxhc3QuZXhwYW5kKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBhbmVscy5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmV4cGFuZCgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb2xsYXBzZXMgYWxsIGV4cGFuZGVkIGV4cGFuc2lvbiBwYW5lbHMuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogYWNjb3JkaW9uLmNvbGxhcHNlQWxsKCk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGNvbGxhcHNlQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhbmVscy5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmNvbGxhcHNlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29sbGFwc2VBbGxFeGNlcHRMYXN0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0RXhwYW5kZWQgPSB0aGlzLnBhbmVscz8uZmlsdGVyKHAgPT4gIXAuY29sbGFwc2VkICYmICFwLmhlYWRlci5kaXNhYmxlZCkucG9wKCk7XG4gICAgICAgIHRoaXMucGFuZWxzPy5mb3JFYWNoKChwOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHAgIT09IGxhc3RFeHBhbmRlZCAmJiAhcC5oZWFkZXIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBwLmNvbGxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghKEFDQ09SRElPTl9OQVZJR0FUSU9OX0tFWVMuaGFzKGtleSkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE8gRE86IGlmIHdlIGV2ZXIgd2FudCB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgYWNjb3JkaW9uLFxuICAgICAgICAvLyBlbmFibGVkUGFuZWxzIGNvdWxkIGJlIGNhY2hlZCAoYnkgbWFraW5nIGEgZGlzYWJsZWRDaGFuZ2UgZW1pdHRlciBvbiB0aGUgcGFuZWwgaGVhZGVyKVxuICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzID0gdGhpcy5fcGFuZWxzLmZpbHRlcihwID0+ICFwLmhlYWRlci5kaXNhYmxlZCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvbihldmVudCwgcGFuZWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTmF2aWdhdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCwgcGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VuYWJsZWRQYW5lbHNbMF0uaGVhZGVyLmlubmVyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzW3RoaXMuX2VuYWJsZWRQYW5lbHMubGVuZ3RoIC0gMV0uaGVhZGVyLmlubmVyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgICBjYXNlICd1cCc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVVcERvd25BcnJvdyh0cnVlLCBldmVudCwgcGFuZWwpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3dkb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlVXBEb3duQXJyb3coZmFsc2UsIGV2ZW50LCBwYW5lbCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVVwRG93bkFycm93KGlzVXA6IGJvb2xlYW4sIGV2ZW50OiBLZXlib2FyZEV2ZW50LCBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRQYW5lbCA9IHBhbmVsO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuZ2V0TmV4dFBhbmVsKGZvY3VzZWRQYW5lbCwgaXNVcCA/IC0xIDogMSk7XG4gICAgICAgICAgICBpZiAobmV4dCA9PT0gZm9jdXNlZFBhbmVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV4dC5oZWFkZXIuaW5uZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmFsdEtleSAmJiBldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgaWYgKGlzVXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzLmZvckVhY2gocCA9PiBwLmNvbGxhcHNlKCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yKGxldCBpID0gMDsgaSA8IHRoaXMuX2VuYWJsZWRQYW5lbHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzW2ldLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW5hYmxlZFBhbmVsc1t0aGlzLl9lbmFibGVkUGFuZWxzLmxlbmd0aCAtIDFdLmV4cGFuZCgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2VuYWJsZWRQYW5lbHMuZm9yRWFjaChwID0+IHAuZXhwYW5kKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROZXh0UGFuZWwocGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50LCBkaXI6IDEgfCAtMSA9IDEpOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCB7XG4gICAgICAgIGNvbnN0IHBhbmVsSW5kZXggPSB0aGlzLl9lbmFibGVkUGFuZWxzLmluZGV4T2YocGFuZWwpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5hYmxlZFBhbmVsc1twYW5lbEluZGV4ICsgZGlyXSB8fCBwYW5lbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YlRvQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdW5zdWJDaGlsZHJlbiQubmV4dCgpO1xuICAgICAgICB0aGlzLl9wYW5lbHMuZm9yRWFjaChwYW5lbCA9PiB7XG4gICAgICAgICAgICBwYW5lbC5jb250ZW50RXhwYW5kZWQucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKS5zdWJzY3JpYmUoKGFyZ3M6IElFeHBhbnNpb25QYW5lbEV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkUGFuZWxzLmFkZChhcmdzLm93bmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuZGVsZXRlKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2QXJnczogSUFjY29yZGlvbkV2ZW50QXJncyA9IHsgLi4uYXJncywgb3duZXI6IHRoaXMsIHBhbmVsOiBhcmdzLm93bmVyIH07XG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lbEV4cGFuZGVkLmVtaXQoZXZBcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFuZWwuY29udGVudEV4cGFuZGluZy5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YkNoaWxkcmVuJCkpLnN1YnNjcmliZSgoYXJnczogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGV2QXJnczogSUFjY29yZGlvbkNhbmNlbGFibGVFdmVudEFyZ3MgPSB7IC4uLmFyZ3MsIG93bmVyOiB0aGlzLCBwYW5lbDogYXJncy5vd25lciB9O1xuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxFeHBhbmRpbmcuZW1pdChldkFyZ3MpO1xuICAgICAgICAgICAgICAgIGlmIChldkFyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MuY2FuY2VsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRQYW5lbHMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcC5oZWFkZXIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuZm9yRWFjaChwID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcC5oZWFkZXIuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXAuYW5pbWF0aW9uU2V0dGluZ3MuY2xvc2VBbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5vcGVuQW5pbWF0aW9uUGxheWVyPy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXAuYW5pbWF0aW9uU2V0dGluZ3Mub3BlbkFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmNsb3NlQW5pbWF0aW9uUGxheWVyPy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuYWRkKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFuZWwuY29udGVudENvbGxhcHNlZC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YkNoaWxkcmVuJCkpLnN1YnNjcmliZSgoYXJnczogSUV4cGFuc2lvblBhbmVsRXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kZWRQYW5lbHMuZGVsZXRlKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGluZ1BhbmVscy5kZWxldGUoYXJncy5vd25lcik7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZBcmdzOiBJQWNjb3JkaW9uRXZlbnRBcmdzID0geyAuLi5hcmdzLCBvd25lcjogdGhpcywgcGFuZWw6IGFyZ3Mub3duZXIgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsQ29sbGFwc2VkLmVtaXQoZXZBcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcGFuZWwuY29udGVudENvbGxhcHNpbmcucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKS5zdWJzY3JpYmUoKGFyZ3M6IElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBldkFyZ3M6IElBY2NvcmRpb25DYW5jZWxhYmxlRXZlbnRBcmdzID0geyAuLi5hcmdzLCBvd25lcjogdGhpcywgcGFuZWw6IGFyZ3Mub3duZXIgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsQ29sbGFwc2luZy5lbWl0KGV2QXJncyk7XG4gICAgICAgICAgICAgICAgaWYgKGV2QXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgYXJncy5jYW5jZWwgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnJvbUV2ZW50KHBhbmVsLmhlYWRlci5pbm5lckVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVLZXlkb3duKGUsIHBhbmVsKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQYW5lbHNBbmltYXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvblNldHRpbmdzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxzPy5mb3JFYWNoKHBhbmVsID0+IHBhbmVsLmFuaW1hdGlvblNldHRpbmdzID0gdGhpcy5hbmltYXRpb25TZXR0aW5ncyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJpZ3gtZXhwYW5zaW9uLXBhbmVsXCI+PC9uZy1jb250ZW50PlxuIl19
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDaUQsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQzVGLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFhLGdCQUFnQixFQUNyRSxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzFELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQWUxRixJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFFaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFNSCxNQUFNLE9BQU8scUJBQXFCO0lBdUI5Qjs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSCxJQUNXLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxpQkFBaUIsQ0FBQyxLQUE4QjtRQUN2RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsSUFDVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsbUJB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QUFxQiw4S0ErRFYsZ0JBQWdCLHdVQXlGbkIsMEJBQTBCLDZCQ2hOL0MsNERBQ0E7O2dHRHVEYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksZUFBZSxjQUViLElBQUk7c0ZBZVQsRUFBRTtzQkFGUixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQUtDLFFBQVE7c0JBRGQsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBSzNCLFlBQVk7c0JBRGxCLFdBQVc7dUJBQUMsZUFBZTtnQkFvQmpCLGlCQUFpQjtzQkFEM0IsS0FBSztnQkF5Qkssa0JBQWtCO3NCQUQ1QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQWlDL0IsY0FBYztzQkFEcEIsTUFBTTtnQkFtQkEsYUFBYTtzQkFEbkIsTUFBTTtnQkFlQSxlQUFlO3NCQURyQixNQUFNO2dCQVlBLGNBQWM7c0JBRHBCLE1BQU07Z0JBZUMsT0FBTztzQkFEZCxlQUFlO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCwgUXVlcnlMaXN0LCBib29sZWFuQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBQ0NPUkRJT05fTkFWSUdBVElPTl9LRVlTIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQge1xuICAgIElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3MsXG4gICAgSUV4cGFuc2lvblBhbmVsRXZlbnRBcmdzLCBJZ3hFeHBhbnNpb25QYW5lbEJhc2Vcbn0gZnJvbSAnLi4vZXhwYW5zaW9uLXBhbmVsL2V4cGFuc2lvbi1wYW5lbC5jb21tb24nO1xuaW1wb3J0IHsgSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi9leHBhbnNpb24tcGFuZWwvZXhwYW5zaW9uLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2dnbGVBbmltYXRpb25TZXR0aW5ncyB9IGZyb20gJy4uL2V4cGFuc2lvbi1wYW5lbC90b2dnbGUtYW5pbWF0aW9uLWNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFjY29yZGlvbkV2ZW50QXJncyBleHRlbmRzIElFeHBhbnNpb25QYW5lbEV2ZW50QXJncyB7XG4gICAgb3duZXI6IElneEFjY29yZGlvbkNvbXBvbmVudDtcbiAgICAvKiogUHJvdmlkZXMgYSByZWZlcmVuY2UgdG8gdGhlIGBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudGAgd2hpY2ggd2FzIGV4cGFuZGVkL2NvbGxhcHNlZC4gKi9cbiAgICBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxCYXNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvcmRpb25DYW5jZWxhYmxlRXZlbnRBcmdzIGV4dGVuZHMgSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyB7XG4gICAgb3duZXI6IElneEFjY29yZGlvbkNvbXBvbmVudDtcbiAgICAvKiogUHJvdmlkZXMgYSByZWZlcmVuY2UgdG8gdGhlIGBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudGAgd2hpY2ggaXMgY3VycmVudGx5IGV4cGFuZGluZy9jb2xsYXBzaW5nLiAqL1xuICAgIHBhbmVsOiBJZ3hFeHBhbnNpb25QYW5lbEJhc2U7XG59XG5cbmxldCBORVhUX0lEID0gMDtcblxuLyoqXG4gKiBJZ3hBY2NvcmRpb24gaXMgYSBjb250YWluZXItYmFzZWQgY29tcG9uZW50IHRoYXQgY29udGFpbnMgdGhhdCBjYW4gaG91c2UgbXVsdGlwbGUgZXhwYW5zaW9uIHBhbmVscy5cbiAqXG4gKiBAaWd4TW9kdWxlIElneEFjY29yZGlvbk1vZHVsZVxuICpcbiAqIEBpZ3hLZXl3b3JkcyBhY2NvcmRpb25cbiAqXG4gKiBAaWd4R3JvdXAgTGF5b3V0c1xuICpcbiAqIEByZW1hcmtcbiAqIFRoZSBJZ25pdGUgVUkgZm9yIEFuZ3VsYXIgQWNjb3JkaW9uIGNvbXBvbmVudCBlbmFibGVzIHRoZSB1c2VyIHRvIG5hdmlnYXRlIGFtb25nIG11bHRpcGxlIGNvbGxhcHNpbmcgcGFuZWxzXG4gKiBkaXNwbGF5ZWQgaW4gYSBzaW5nbGUgY29udGFpbmVyLlxuICogVGhlIGFjY29yZGlvbiBvZmZlcnMga2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgQVBJIHRvIGNvbnRyb2wgdGhlIHVuZGVybHlpbmcgcGFuZWxzJyBleHBhbnNpb24gc3RhdGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxpZ3gtYWNjb3JkaW9uPlxuICogICA8aWd4LWV4cGFuc2lvbi1wYW5lbCAqbmdGb3I9XCJsZXQgcGFuZWwgb2YgcGFuZWxzXCI+XG4gKiAgICAgICAuLi5cbiAqICAgPC9pZ3gtZXhwYW5zaW9uLXBhbmVsPlxuICogPC9pZ3gtYWNjb3JkaW9uPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWFjY29yZGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICdhY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4QWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBHZXQvU2V0IHRoZSBgaWRgIG9mIHRoZSBhY2NvcmRpb24gY29tcG9uZW50LlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYFwiaWd4LWFjY29yZGlvbi0wXCJgO1xuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiBpZD1cIm15LWZpcnN0LWFjY29yZGlvblwiPjwvaWd4LWFjY29yZGlvbj5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogY29uc3QgYWNjb3JkaW9uSWQgPSB0aGlzLmFjY29yZGlvbi5pZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYGlneC1hY2NvcmRpb24tJHtORVhUX0lEKyt9YDtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1hY2NvcmRpb24nKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtYWNjb3JkaW9uJztcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICAgIHB1YmxpYyBkaXNwbGF5U3R5bGUgPSAnYmxvY2snO1xuXG4gICAgLyoqXG4gICAgICogR2V0L1NldCB0aGUgYW5pbWF0aW9uIHNldHRpbmdzIHRoYXQgcGFuZWxzIHNob3VsZCB1c2Ugd2hlbiBleHBhbmRpbmcvY29sbHBhc2luZy5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiBbYW5pbWF0aW9uU2V0dGluZ3NdPVwiY3VzdG9tQW5pbWF0aW9uU2V0dGluZ3NcIj48L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogY29uc3QgY3VzdG9tQW5pbWF0aW9uU2V0dGluZ3M6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzID0ge1xuICAgICAqICAgICAgb3BlbkFuaW1hdGlvbjogZ3Jvd1ZlckluLFxuICAgICAqICAgICAgY2xvc2VBbmltYXRpb246IGdyb3dWZXJPdXRcbiAgICAgKiB9O1xuICAgICAqXG4gICAgICogdGhpcy5hY2NvcmRpb24uYW5pbWF0aW9uU2V0dGluZ3MgPSBjdXN0b21BbmltYXRpb25TZXR0aW5ncztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgYW5pbWF0aW9uU2V0dGluZ3MoKTogVG9nZ2xlQW5pbWF0aW9uU2V0dGluZ3Mge1xuICAgICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uU2V0dGluZ3M7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBhbmltYXRpb25TZXR0aW5ncyh2YWx1ZTogVG9nZ2xlQW5pbWF0aW9uU2V0dGluZ3MpIHtcbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uU2V0dGluZ3MgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVQYW5lbHNBbmltYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQvU2V0IGhvdyB0aGUgYWNjb3JkaW9uIGhhbmRsZXMgdGhlIGV4cGFuc2lvbiBvZiB0aGUgcHJvamVjdGVkIGV4cGFuc2lvbiBwYW5lbHMuXG4gICAgICogSWYgc2V0IHRvIGB0cnVlYCwgb25seSBhIHNpbmdsZSBwYW5lbCBjYW4gYmUgZXhwYW5kZWQgYXQgYSB0aW1lLCBjb2xsYXBzaW5nIGFsbCBvdGhlcnNcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiBbc2luZ2xlQnJhbmNoRXhwYW5kXT1cInRydWVcIj5cbiAgICAgKiAuLi5cbiAgICAgKiA8L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5hY2NvcmRpb24uc2luZ2xlQnJhbmNoRXhwYW5kID0gZmFsc2U7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIGdldCBzaW5nbGVCcmFuY2hFeHBhbmQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaW5nbGVCcmFuY2hFeHBhbmQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzaW5nbGVCcmFuY2hFeHBhbmQodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NpbmdsZUJyYW5jaEV4cGFuZCA9IHZhbDtcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUFsbEV4Y2VwdExhc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYmVmb3JlIGEgcGFuZWwgaXMgZXhwYW5kZWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFRoaXMgZXZlbnQgaXMgY2FuY2VsYWJsZS5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiAocGFuZWxFeHBhbmRpbmcpPVwiaGFuZGxlUGFuZWxFeHBhbmRpbmcoJGV2ZW50KVwiPlxuICAgICAqIDwvaWd4LWFjY29yZGlvbj5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqYGBgdHlwZXNjcmlwdFxuICAgICAqIHB1YmxpYyBoYW5kbGVQYW5lbEV4cGFuZGluZyhldmVudDogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncyl7XG4gICAgICogIGNvbnN0IGV4cGFuZGVkUGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50ID0gZXZlbnQucGFuZWw7XG4gICAgICogIGlmIChleHBhbmRlZFBhbmVsLmRpc2FibGVkKSB7XG4gICAgICogICAgICBldmVudC5jYW5jZWwgPSB0cnVlO1xuICAgICAqICB9XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsRXhwYW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxJQWNjb3JkaW9uQ2FuY2VsYWJsZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYWZ0ZXIgYSBwYW5lbCBoYXMgYmVlbiBleHBhbmRlZC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWFjY29yZGlvbiAocGFuZWxFeHBhbmRlZCk9XCJoYW5kbGVQYW5lbEV4cGFuZGVkKCRldmVudClcIj5cbiAgICAgKiA8L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKmBgYHR5cGVzY3JpcHRcbiAgICAgKiBwdWJsaWMgaGFuZGxlUGFuZWxFeHBhbmRlZChldmVudDogSUV4cGFuc2lvblBhbmVsQ2FuY2VsYWJsZUV2ZW50QXJncykge1xuICAgICAqICBjb25zdCBleHBhbmRlZFBhbmVsOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCA9IGV2ZW50LnBhbmVsO1xuICAgICAqICBjb25zb2xlLmxvZyhcIlBhbmVsIGlzIGV4cGFuZGVkOiBcIiwgZXhwYW5kZWRQYW5lbC5pZCk7XG4gICAgICogfVxuICAgICAqYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsRXhwYW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElBY2NvcmRpb25FdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGJlZm9yZSBhIHBhbmVsIGlzIGNvbGxhcHNlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogVGhpcyBldmVudCBpcyBjYW5jZWxhYmxlLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYWNjb3JkaW9uIChwYW5lbENvbGxhcHNpbmcpPVwiaGFuZGxlUGFuZWxDb2xsYXBzaW5nKCRldmVudClcIj5cbiAgICAgKiA8L2lneC1hY2NvcmRpb24+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBhbmVsQ29sbGFwc2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjY29yZGlvbkNhbmNlbGFibGVFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIGEgcGFuZWwgaGFzIGJlZW4gY29sbGFwc2VkLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYWNjb3JkaW9uIChwYW5lbENvbGxhcHNlZCk9XCJoYW5kbGVQYW5lbENvbGxhcHNlZCgkZXZlbnQpXCI+XG4gICAgICogPC9pZ3gtYWNjb3JkaW9uPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBwYW5lbENvbGxhcHNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUFjY29yZGlvbkV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEdldCBhbGwgcGFuZWxzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IHBhbmVsczogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnRbXSA9IHRoaXMuYWNjb3JkaW9uLnBhbmVscztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBhbmVscygpOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbmVscz8udG9BcnJheSgpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpXG4gICAgcHJpdmF0ZSBfcGFuZWxzITogUXVlcnlMaXN0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9hbmltYXRpb25TZXR0aW5ncyE6IFRvZ2dsZUFuaW1hdGlvblNldHRpbmdzO1xuICAgIHByaXZhdGUgX2V4cGFuZGVkUGFuZWxzITogU2V0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9leHBhbmRpbmdQYW5lbHMhOiBTZXQ8SWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQ+O1xuICAgIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF91bnN1YkNoaWxkcmVuJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfZW5hYmxlZFBhbmVscyE6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50W107XG4gICAgcHJpdmF0ZSBfc2luZ2xlQnJhbmNoRXhwYW5kID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICoqL1xuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlUGFuZWxzQW5pbWF0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLnNpbmdsZUJyYW5jaEV4cGFuZCkge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZUFsbEV4Y2VwdExhc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9leHBhbmRlZFBhbmVscyA9IG5ldyBTZXQ8SWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQ+KHRoaXMuX3BhbmVscy5maWx0ZXIocGFuZWwgPT4gIXBhbmVsLmNvbGxhcHNlZCkpO1xuICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMgPSBuZXcgU2V0PElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50PigpO1xuICAgICAgICB0aGlzLl9wYW5lbHMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1YlRvQ2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJUb0NoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3ViQ2hpbGRyZW4kLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdW5zdWJDaGlsZHJlbiQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV4cGFuZHMgYWxsIGNvbGxhcHNlZCBleHBhbnNpb24gcGFuZWxzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGFjY29yZGlvbi5leHBhbmRBbGwoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5kQWxsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYW5lbHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lbHNbaV0uY29sbGFwc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3BhbmVscy5sYXN0LmV4cGFuZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wYW5lbHMuZm9yRWFjaChwYW5lbCA9PiBwYW5lbC5leHBhbmQoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29sbGFwc2VzIGFsbCBleHBhbmRlZCBleHBhbnNpb24gcGFuZWxzLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGFjY29yZGlvbi5jb2xsYXBzZUFsbCgpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2xsYXBzZUFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYW5lbHMuZm9yRWFjaChwYW5lbCA9PiBwYW5lbC5jb2xsYXBzZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbGxhcHNlQWxsRXhjZXB0TGFzdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGFzdEV4cGFuZGVkID0gdGhpcy5wYW5lbHM/LmZpbHRlcihwID0+ICFwLmNvbGxhcHNlZCAmJiAhcC5oZWFkZXIuZGlzYWJsZWQpLnBvcCgpO1xuICAgICAgICB0aGlzLnBhbmVscz8uZm9yRWFjaCgocDogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChwICE9PSBsYXN0RXhwYW5kZWQgJiYgIXAuaGVhZGVyLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcC5jb2xsYXBzZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmICghKEFDQ09SRElPTl9OQVZJR0FUSU9OX0tFWVMuaGFzKGtleSkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gVE8gRE86IGlmIHdlIGV2ZXIgd2FudCB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgYWNjb3JkaW9uLFxuICAgICAgICAvLyBlbmFibGVkUGFuZWxzIGNvdWxkIGJlIGNhY2hlZCAoYnkgbWFraW5nIGEgZGlzYWJsZWRDaGFuZ2UgZW1pdHRlciBvbiB0aGUgcGFuZWwgaGVhZGVyKVxuICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzID0gdGhpcy5fcGFuZWxzLmZpbHRlcihwID0+ICFwLmhlYWRlci5kaXNhYmxlZCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvbihldmVudCwgcGFuZWwpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlTmF2aWdhdGlvbihldmVudDogS2V5Ym9hcmRFdmVudCwgcGFuZWw6IElneEV4cGFuc2lvblBhbmVsQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2hvbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VuYWJsZWRQYW5lbHNbMF0uaGVhZGVyLmlubmVyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZW5kJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzW3RoaXMuX2VuYWJsZWRQYW5lbHMubGVuZ3RoIC0gMV0uaGVhZGVyLmlubmVyRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgICBjYXNlICd1cCc6XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVVcERvd25BcnJvdyh0cnVlLCBldmVudCwgcGFuZWwpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYXJyb3dkb3duJzpcbiAgICAgICAgICAgIGNhc2UgJ2Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlVXBEb3duQXJyb3coZmFsc2UsIGV2ZW50LCBwYW5lbCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVVwRG93bkFycm93KGlzVXA6IGJvb2xlYW4sIGV2ZW50OiBLZXlib2FyZEV2ZW50LCBwYW5lbDogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvY3VzZWRQYW5lbCA9IHBhbmVsO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IHRoaXMuZ2V0TmV4dFBhbmVsKGZvY3VzZWRQYW5lbCwgaXNVcCA/IC0xIDogMSk7XG4gICAgICAgICAgICBpZiAobmV4dCA9PT0gZm9jdXNlZFBhbmVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbmV4dC5oZWFkZXIuaW5uZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmFsdEtleSAmJiBldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgaWYgKGlzVXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzLmZvckVhY2gocCA9PiBwLmNvbGxhcHNlKCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaW5nbGVCcmFuY2hFeHBhbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9lbmFibGVkUGFuZWxzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW5hYmxlZFBhbmVsc1tpXS5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VuYWJsZWRQYW5lbHNbdGhpcy5fZW5hYmxlZFBhbmVscy5sZW5ndGggLSAxXS5leHBhbmQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9lbmFibGVkUGFuZWxzLmZvckVhY2gocCA9PiBwLmV4cGFuZCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TmV4dFBhbmVsKHBhbmVsOiBJZ3hFeHBhbnNpb25QYW5lbENvbXBvbmVudCwgZGlyOiAxIHwgLTEgPSAxKTogSWd4RXhwYW5zaW9uUGFuZWxDb21wb25lbnQge1xuICAgICAgICBjb25zdCBwYW5lbEluZGV4ID0gdGhpcy5fZW5hYmxlZFBhbmVscy5pbmRleE9mKHBhbmVsKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWRQYW5lbHNbcGFuZWxJbmRleCArIGRpcl0gfHwgcGFuZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJUb0NoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3ViQ2hpbGRyZW4kLm5leHQoKTtcbiAgICAgICAgdGhpcy5fcGFuZWxzLmZvckVhY2gocGFuZWwgPT4ge1xuICAgICAgICAgICAgcGFuZWwuY29udGVudEV4cGFuZGVkLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3ViQ2hpbGRyZW4kKSkuc3Vic2NyaWJlKChhcmdzOiBJRXhwYW5zaW9uUGFuZWxFdmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRlZFBhbmVscy5hZGQoYXJncy5vd25lcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kaW5nUGFuZWxzLmRlbGV0ZShhcmdzLm93bmVyKTtcbiAgICAgICAgICAgICAgICBjb25zdCBldkFyZ3M6IElBY2NvcmRpb25FdmVudEFyZ3MgPSB7IC4uLmFyZ3MsIG93bmVyOiB0aGlzLCBwYW5lbDogYXJncy5vd25lciB9O1xuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxFeHBhbmRlZC5lbWl0KGV2QXJncyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHBhbmVsLmNvbnRlbnRFeHBhbmRpbmcucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKS5zdWJzY3JpYmUoKGFyZ3M6IElFeHBhbnNpb25QYW5lbENhbmNlbGFibGVFdmVudEFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYXJncy5jYW5jZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBldkFyZ3M6IElBY2NvcmRpb25DYW5jZWxhYmxlRXZlbnRBcmdzID0geyAuLi5hcmdzLCBvd25lcjogdGhpcywgcGFuZWw6IGFyZ3Mub3duZXIgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsRXhwYW5kaW5nLmVtaXQoZXZBcmdzKTtcbiAgICAgICAgICAgICAgICBpZiAoZXZBcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgICAgICAgICBhcmdzLmNhbmNlbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2luZ2xlQnJhbmNoRXhwYW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkUGFuZWxzLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXAuaGVhZGVyLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kaW5nUGFuZWxzLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXAuaGVhZGVyLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwLmFuaW1hdGlvblNldHRpbmdzLmNsb3NlQW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAub3BlbkFuaW1hdGlvblBsYXllcj8ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwLmFuaW1hdGlvblNldHRpbmdzLm9wZW5BbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5jbG9zZUFuaW1hdGlvblBsYXllcj8ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcC5jb2xsYXBzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXhwYW5kaW5nUGFuZWxzLmFkZChhcmdzLm93bmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHBhbmVsLmNvbnRlbnRDb2xsYXBzZWQucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJDaGlsZHJlbiQpKS5zdWJzY3JpYmUoKGFyZ3M6IElFeHBhbnNpb25QYW5lbEV2ZW50QXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkUGFuZWxzLmRlbGV0ZShhcmdzLm93bmVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9leHBhbmRpbmdQYW5lbHMuZGVsZXRlKGFyZ3Mub3duZXIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2QXJnczogSUFjY29yZGlvbkV2ZW50QXJncyA9IHsgLi4uYXJncywgb3duZXI6IHRoaXMsIHBhbmVsOiBhcmdzLm93bmVyIH07XG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lbENvbGxhcHNlZC5lbWl0KGV2QXJncyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHBhbmVsLmNvbnRlbnRDb2xsYXBzaW5nLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3ViQ2hpbGRyZW4kKSkuc3Vic2NyaWJlKChhcmdzOiBJRXhwYW5zaW9uUGFuZWxDYW5jZWxhYmxlRXZlbnRBcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZBcmdzOiBJQWNjb3JkaW9uQ2FuY2VsYWJsZUV2ZW50QXJncyA9IHsgLi4uYXJncywgb3duZXI6IHRoaXMsIHBhbmVsOiBhcmdzLm93bmVyIH07XG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lbENvbGxhcHNpbmcuZW1pdChldkFyZ3MpO1xuICAgICAgICAgICAgICAgIGlmIChldkFyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3MuY2FuY2VsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZyb21FdmVudChwYW5lbC5oZWFkZXIuaW5uZXJFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3ViQ2hpbGRyZW4kKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlS2V5ZG93bihlLCBwYW5lbCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUGFuZWxzQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpb25TZXR0aW5ncyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnBhbmVscz8uZm9yRWFjaChwYW5lbCA9PiBwYW5lbC5hbmltYXRpb25TZXR0aW5ncyA9IHRoaXMuYW5pbWF0aW9uU2V0dGluZ3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiaWd4LWV4cGFuc2lvbi1wYW5lbFwiPjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -11,11 +11,11 @@ import * as i5 from "../expansion-panel/expansion-panel.directives";
|
|
|
11
11
|
* IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
|
|
12
12
|
*/
|
|
13
13
|
export class IgxAccordionModule {
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
15
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.
|
|
16
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
15
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxAccordionModule, imports: [i1.IgxAccordionComponent, i2.IgxExpansionPanelComponent, i3.IgxExpansionPanelHeaderComponent, i4.IgxExpansionPanelBodyComponent, i5.IgxExpansionPanelDescriptionDirective, i5.IgxExpansionPanelTitleDirective, i5.IgxExpansionPanelIconDirective], exports: [i1.IgxAccordionComponent, i2.IgxExpansionPanelComponent, i3.IgxExpansionPanelHeaderComponent, i4.IgxExpansionPanelBodyComponent, i5.IgxExpansionPanelDescriptionDirective, i5.IgxExpansionPanelTitleDirective, i5.IgxExpansionPanelIconDirective] }); }
|
|
16
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxAccordionModule }); }
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxAccordionModule, decorators: [{
|
|
19
19
|
type: NgModule,
|
|
20
20
|
args: [{
|
|
21
21
|
imports: [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Directive, HostBinding, Input, Optional, Inject, ContentChildren, ViewChild } from '@angular/core';
|
|
1
|
+
import { Component, Directive, HostBinding, Input, Optional, Inject, ContentChildren, ViewChild, booleanAttribute } from '@angular/core';
|
|
2
2
|
import { DisplayDensityBase, DisplayDensityToken } from '../core/density';
|
|
3
3
|
import { ActionStripResourceStringsEN } from '../core/i18n/action-strip-resources';
|
|
4
4
|
import { IgxDropDownComponent } from '../drop-down/drop-down.component';
|
|
@@ -17,10 +17,10 @@ export class IgxActionStripMenuItemDirective {
|
|
|
17
17
|
constructor(templateRef) {
|
|
18
18
|
this.templateRef = templateRef;
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxActionStripMenuItemDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-rc.3", type: IgxActionStripMenuItemDirective, isStandalone: true, selector: "[igxActionStripMenuItem]", ngImport: i0 }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxActionStripMenuItemDirective, decorators: [{
|
|
24
24
|
type: Directive,
|
|
25
25
|
args: [{
|
|
26
26
|
selector: '[igxActionStripMenuItem]',
|
|
@@ -49,21 +49,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
49
49
|
* </igx-action-strip>
|
|
50
50
|
*/
|
|
51
51
|
export class IgxActionStripComponent extends DisplayDensityBase {
|
|
52
|
-
/**
|
|
53
|
-
* An @Input property that set the visibility of the Action Strip.
|
|
54
|
-
* Could be used to set if the Action Strip will be initially hidden.
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* ```html
|
|
58
|
-
* <igx-action-strip [hidden]="false">
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
set hidden(value) {
|
|
62
|
-
this._hidden = value;
|
|
63
|
-
}
|
|
64
|
-
get hidden() {
|
|
65
|
-
return this._hidden;
|
|
66
|
-
}
|
|
67
52
|
/**
|
|
68
53
|
* Gets/Sets the resource strings.
|
|
69
54
|
*
|
|
@@ -104,6 +89,16 @@ export class IgxActionStripComponent extends DisplayDensityBase {
|
|
|
104
89
|
this.el = el;
|
|
105
90
|
this._displayDensityOptions = _displayDensityOptions;
|
|
106
91
|
this.cdr = cdr;
|
|
92
|
+
/**
|
|
93
|
+
* An @Input property that set the visibility of the Action Strip.
|
|
94
|
+
* Could be used to set if the Action Strip will be initially hidden.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```html
|
|
98
|
+
* <igx-action-strip [hidden]="false">
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
this.hidden = false;
|
|
107
102
|
/**
|
|
108
103
|
* Getter for menu overlay settings
|
|
109
104
|
*
|
|
@@ -140,7 +135,7 @@ export class IgxActionStripComponent extends DisplayDensityBase {
|
|
|
140
135
|
* Getter for the 'display' property of the current `IgxActionStrip`
|
|
141
136
|
*/
|
|
142
137
|
get display() {
|
|
143
|
-
return this.
|
|
138
|
+
return this.hidden ? 'none' : 'flex';
|
|
144
139
|
}
|
|
145
140
|
get componentSize() {
|
|
146
141
|
return this.getComponentSizeStyles();
|
|
@@ -228,10 +223,10 @@ export class IgxActionStripComponent extends DisplayDensityBase {
|
|
|
228
223
|
this.menu.close();
|
|
229
224
|
}
|
|
230
225
|
}
|
|
231
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
232
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
226
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxActionStripComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DisplayDensityToken, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
227
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxActionStripComponent, isStandalone: true, selector: "igx-action-strip", inputs: { context: "context", hidden: ["hidden", "hidden", booleanAttribute], resourceStrings: "resourceStrings" }, host: { properties: { "style.display": "this.display", "class.igx-action-strip": "this.hostClass", "style.--component-size": "this.componentSize" } }, queries: [{ propertyName: "_menuItems", predicate: IgxActionStripMenuItemDirective }, { propertyName: "actionButtons", predicate: IgxGridActionsBaseDirective }], viewQueries: [{ propertyName: "menu", first: true, predicate: ["dropdown"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-action-strip__actions\">\n <ng-content #content></ng-content>\n <ng-container *ngIf=\"menuItems.length > 0\">\n <button\n type=\"button\"\n igxButton=\"icon\"\n igxRipple\n [igxToggleAction]=\"dropdown\"\n [overlaySettings]=\"menuOverlaySettings\"\n (click)=\"$event.stopPropagation()\"\n [title]=\"resourceStrings.igx_action_strip_button_more_title\"\n [igxDropDownItemNavigation]=\"dropdown\"\n >\n <igx-icon>more_vert</igx-icon>\n </button>\n </ng-container>\n <igx-drop-down #dropdown [displayDensity]=\"displayDensity\">\n <igx-drop-down-item\n *ngFor=\"let item of menuItems\"\n class=\"igx-action-strip__menu-item\"\n >\n <div class=\"igx-drop-down__item-template\">\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </div>\n </igx-drop-down-item>\n </igx-drop-down>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: IgxToggleActionDirective, selector: "[igxToggleAction]", inputs: ["overlaySettings", "igxToggleOutlet", "igxToggleAction"], exportAs: ["toggle-action"] }, { kind: "directive", type: IgxDropDownItemNavigationDirective, selector: "[igxDropDownItemNavigation]", inputs: ["igxDropDownItemNavigation"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "component", type: IgxDropDownComponent, selector: "igx-drop-down", inputs: ["allowItemsFocus", "labelledBy"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "component", type: IgxDropDownItemComponent, selector: "igx-drop-down-item" }] }); }
|
|
233
228
|
}
|
|
234
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxActionStripComponent, decorators: [{
|
|
235
230
|
type: Component,
|
|
236
231
|
args: [{ selector: 'igx-action-strip', standalone: true, imports: [
|
|
237
232
|
NgIf,
|
|
@@ -259,7 +254,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
259
254
|
type: ContentChildren,
|
|
260
255
|
args: [IgxGridActionsBaseDirective]
|
|
261
256
|
}], hidden: [{
|
|
262
|
-
type: Input
|
|
257
|
+
type: Input,
|
|
258
|
+
args: [{ transform: booleanAttribute }]
|
|
263
259
|
}], resourceStrings: [{
|
|
264
260
|
type: Input
|
|
265
261
|
}], menu: [{
|
|
@@ -275,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
275
271
|
type: HostBinding,
|
|
276
272
|
args: ['style.--component-size']
|
|
277
273
|
}] } });
|
|
278
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixlQUFlLEVBRWYsU0FBUyxFQU1aLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBMEIsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNEJBQTRCLEVBQStCLE1BQU0scUNBQXFDLENBQUM7QUFDaEgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFtQixNQUFNLHdCQUF3QixDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFD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LElBQUk7c0JBRFYsU0FBUzt1QkFBQyxVQUFVO2dCQWdEUixPQUFPO3NCQURsQixXQUFXO3VCQUFDLGVBQWU7Z0JBU25CLFNBQVM7c0JBRGxCLFdBQVc7dUJBQUMsd0JBQXdCO2dCQUl2QixhQUFhO3NCQUQxQixXQUFXO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBPcHRpb25hbCxcbiAgICBJbmplY3QsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eUJhc2UsIERpc3BsYXlEZW5zaXR5VG9rZW4sIElEaXNwbGF5RGVuc2l0eU9wdGlvbnMgfSBmcm9tICcuLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgQWN0aW9uU3RyaXBSZXNvdXJjZVN0cmluZ3NFTiwgSUFjdGlvblN0cmlwUmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vY29yZS9pMThuL2FjdGlvbi1zdHJpcC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSWd4RHJvcERvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wLWRvd24vZHJvcC1kb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbG9zZVNjcm9sbFN0cmF0ZWd5LCBPdmVybGF5U2V0dGluZ3MgfSBmcm9tICcuLi9zZXJ2aWNlcy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IElneEdyaWRBY3Rpb25zQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hEcm9wRG93bkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wLWRvd24vZHJvcC1kb3duLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneERyb3BEb3duSXRlbU5hdmlnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi9kcm9wLWRvd24vZHJvcC1kb3duLW5hdmlnYXRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFRvZ2dsZUFjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nSWYsIE5nRm9yLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGdldEN1cnJlbnRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vcmVzb3VyY2VzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4QWN0aW9uU3RyaXBNZW51SXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4QWN0aW9uU3RyaXBNZW51SXRlbURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PlxuICAgICkgeyB9XG59XG5cbi8qKlxuICogQWN0aW9uIFN0cmlwIHByb3ZpZGVzIHRlbXBsYXRhYmxlIGFyZWEgZm9yIG9uZSBvciBtb3JlIGFjdGlvbnMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hBY3Rpb25TdHJpcE1vZHVsZVxuICpcbiAqIEBpZ3hUaGVtZSBpZ3gtYWN0aW9uLXN0cmlwLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIGFjdGlvbiwgc3RyaXAsIGFjdGlvblN0cmlwLCBwaW5uaW5nLCBlZGl0aW5nXG4gKlxuICogQGlneEdyb3VwIERhdGEgRW50cnkgJiBEaXNwbGF5XG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBJZ25pdGUgVUkgQWN0aW9uIFN0cmlwIGlzIGEgY29udGFpbmVyLCBvdmVybGF5aW5nIGl0cyBwYXJlbnQgY29udGFpbmVyLFxuICogYW5kIGRpc3BsYXlpbmcgYWN0aW9uIGJ1dHRvbnMgd2l0aCBhY3Rpb24gYXBwbGljYWJsZSB0byB0aGUgcGFyZW50IGNvbXBvbmVudCB0aGUgc3RyaXAgaXMgaW5zdGFudGlhdGVkIG9yIHNob3duIGZvci5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlneC1hY3Rpb24tc3RyaXAgI2FjdGlvblN0cmlwPlxuICogICAgIDxpZ3gtaWNvbiAoY2xpY2spPVwiZG9Tb21lQWN0aW9uKClcIj48L2lneC1pY29uPlxuICogPC9pZ3gtYWN0aW9uLXN0cmlwPlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1hY3Rpb24tc3RyaXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIElneEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICAgICAgSWd4UmlwcGxlRGlyZWN0aXZlLFxuICAgICAgICBJZ3hUb2dnbGVBY3Rpb25EaXJlY3RpdmUsXG4gICAgICAgIElneERyb3BEb3duSXRlbU5hdmlnYXRpb25EaXJlY3RpdmUsXG4gICAgICAgIElneEljb25Db21wb25lbnQsXG4gICAgICAgIElneERyb3BEb3duQ29tcG9uZW50LFxuICAgICAgICBJZ3hEcm9wRG93bkl0ZW1Db21wb25lbnRcbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgSWd4QWN0aW9uU3RyaXBDb21wb25lbnQgZXh0ZW5kcyBEaXNwbGF5RGVuc2l0eUJhc2UgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjb250ZXh0IG9mIGFuIGFjdGlvbiBzdHJpcC5cbiAgICAgKiBUaGUgY29udGV4dCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgYSBAQ29tcG9uZW50LCB0aGF0IGhhcyBlbGVtZW50IHByb3BlcnR5LlxuICAgICAqIFRoaXMgZWxlbWVudCB3aWxsIGJlIHRoZSBwbGFjZWhvbGRlciBvZiB0aGUgYWN0aW9uIHN0cmlwLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY3Rpb24tc3RyaXAgW2NvbnRleHRdPVwiY2VsbFwiPjwvaWd4LWFjdGlvbi1zdHJpcD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb250ZXh0OiBhbnk7XG4gICAgLyoqXG4gICAgICogTWVudSBJdGVtcyBDb250ZW50Q2hpbGRyZW4gaW5zaWRlIHRoZSBBY3Rpb24gU3RyaXBcbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKElneEFjdGlvblN0cmlwTWVudUl0ZW1EaXJlY3RpdmUpXG4gICAgcHVibGljIF9tZW51SXRlbXM6IFF1ZXJ5TGlzdDxJZ3hBY3Rpb25TdHJpcE1lbnVJdGVtRGlyZWN0aXZlPjtcblxuXG4gICAgLyoqXG4gICAgICogQWN0aW9uQnV0dG9uIGFzIENvbnRlbnRDaGlsZHJlbiBpbnNpZGUgdGhlIEFjdGlvbiBTdHJpcFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlKVxuICAgIHB1YmxpYyBhY3Rpb25CdXR0b25zOiBRdWVyeUxpc3Q8SWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlPjtcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgQWN0aW9uIFN0cmlwLlxuICAgICAqIENvdWxkIGJlIHVzZWQgdG8gc2V0IGlmIHRoZSBBY3Rpb24gU3RyaXAgd2lsbCBiZSBpbml0aWFsbHkgaGlkZGVuLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtYWN0aW9uLXN0cmlwIFtoaWRkZW5dPVwiZmFsc2VcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaGlkZGVuKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2hpZGRlbiA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGlkZGVuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZGVuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMvU2V0cyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogQnkgZGVmYXVsdCBpdCB1c2VzIEVOIHJlc291cmNlcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcmVzb3VyY2VTdHJpbmdzKHZhbHVlOiBJQWN0aW9uU3RyaXBSZXNvdXJjZVN0cmluZ3MpIHtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcmVzb3VyY2VTdHJpbmdzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXNvdXJjZVN0cmluZ3MoKTogSUFjdGlvblN0cmlwUmVzb3VyY2VTdHJpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlU3RyaW5ncztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIG9yIG5vdCB0aGUgQWN0aW9uIFN0cmlwIGJhc2VkIG9uIGlmIGl0IGlzIGEgbWVudS5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICAgcHVibGljIGdldCBoaWRlT25Sb3dMZWF2ZSgpOiBib29sZWFue1xuICAgICAgICBpZih0aGlzLm1lbnUuaXRlbXMubGVuZ3RoID09PSAwKXtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9ZWxzZSBpZih0aGlzLm1lbnUuaXRlbXMubGVuZ3RoID4gMCl7XG4gICAgICAgICAgICBpZih0aGlzLm1lbnUuY29sbGFwc2VkKXtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgbWVudVxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJylcbiAgICBwdWJsaWMgbWVudTogSWd4RHJvcERvd25Db21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgZm9yIG1lbnUgb3ZlcmxheSBzZXR0aW5nc1xuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBtZW51T3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3MgPSB7IHNjcm9sbFN0cmF0ZWd5OiBuZXcgQ2xvc2VTY3JvbGxTdHJhdGVneSgpIH07XG5cbiAgICBwcml2YXRlIF9oaWRkZW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9yZXNvdXJjZVN0cmluZ3MgPSBnZXRDdXJyZW50UmVzb3VyY2VTdHJpbmdzKEFjdGlvblN0cmlwUmVzb3VyY2VTdHJpbmdzRU4pO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERpc3BsYXlEZW5zaXR5VG9rZW4pIHByb3RlY3RlZCBfZGlzcGxheURlbnNpdHlPcHRpb25zOiBJRGlzcGxheURlbnNpdHlPcHRpb25zLFxuICAgICAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMsIGVsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZW51IEl0ZW1zIGxpc3QuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBtZW51SXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5hY3Rpb25CdXR0b25zLmZvckVhY2goYnV0dG9uID0+IHtcbiAgICAgICAgICAgIGlmIChidXR0b24uYXNNZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGJ1dHRvbi5idXR0b25zO1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi50b0FycmF5KCkuZm9yRWFjaCh4ID0+IGFjdGlvbnMucHVzaCh4KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFsuLi4gdGhpcy5fbWVudUl0ZW1zLnRvQXJyYXkoKSwgLi4uYWN0aW9uc107XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgZm9yIHRoZSAnZGlzcGxheScgcHJvcGVydHkgb2YgdGhlIGN1cnJlbnQgYElneEFjdGlvblN0cmlwYFxuICAgICAqL1xuICAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKVxuICAgICBwcml2YXRlIGdldCBkaXNwbGF5KCk6IHN0cmluZyB7XG4gICAgICAgICByZXR1cm4gdGhpcy5faGlkZGVuID8gJ25vbmUnIDogJ2ZsZXgnO1xuICAgICB9XG5cbiAgICAgLyoqXG4gICAgICAqIEhvc3QgYGF0dHIuY2xhc3NgIGJpbmRpbmcuXG4gICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWFjdGlvbi1zdHJpcCcpXG4gICAgcHJvdGVjdGVkIGhvc3RDbGFzcyA9ICdpZ3gtYWN0aW9uLXN0cmlwJztcblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUuLS1jb21wb25lbnQtc2l6ZScpXG4gICAgcHJvdGVjdGVkIGdldCBjb21wb25lbnRTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb21wb25lbnRTaXplU3R5bGVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiB7XG4gICAgICAgICAgICBidXR0b24uc3RyaXAgPSB0aGlzO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hY3Rpb25CdXR0b25zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucy5mb3JFYWNoKGJ1dHRvbiA9PiB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLnN0cmlwID0gdGhpcztcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5tZW51LnNlbGVjdGlvbkNoYW5naW5nLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdTZWxlY3Rpb24gPSAoJGV2ZW50Lm5ld1NlbGVjdGlvbiBhcyBhbnkpLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGxldCBhbGxCdXR0b25zID0gW107XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMuZm9yRWFjaChhY3Rpb25CdXR0b25zID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uQnV0dG9ucy5hc01lbnVJdGVtcykge1xuICAgICAgICAgICAgICAgICAgICBhbGxCdXR0b25zID0gWy4uLmFsbEJ1dHRvbnMsIC4uLmFjdGlvbkJ1dHRvbnMuYnV0dG9ucy50b0FycmF5KCldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgYnV0dG9uID0gYWxsQnV0dG9ucy5maW5kKHggPT4gbmV3U2VsZWN0aW9uLmNvbnRhaW5zKHguY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICAgICAgICAgIGlmIChidXR0b24pIHtcbiAgICAgICAgICAgICAgICBidXR0b24uYWN0aW9uQ2xpY2suZW1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93aW5nIHRoZSBBY3Rpb24gU3RyaXAgYW5kIGFwcGVuZGluZyBpdCB0aGUgc3BlY2lmaWVkIGNvbnRleHQgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250ZXh0XG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogdGhpcy5hY3Rpb25TdHJpcC5zaG93KHJvdyk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIHNob3coY29udGV4dD86IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyB3aGVuIHNob3duIGZvciBkaWZmZXJlbnQgY29udGV4dCBtYWtlIHN1cmUgdGhlIG1lbnUgd29uJ3Qgc3RheSBvcGVuZWRcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAhPT0gY29udGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZU1lbnUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIHRoaXMuY29udGV4dC5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGNvbnRleHQuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB0aGlzLl92aWV3Q29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhpZGluZyB0aGUgQWN0aW9uIFN0cmlwIGFuZCByZW1vdmluZyBpdCBmcm9tIGl0cyBjdXJyZW50IGNvbnRleHQgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuYWN0aW9uU3RyaXAuaGlkZSgpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhpZGRlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuY2xvc2VNZW51KCk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgJiYgdGhpcy5jb250ZXh0LmVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5jb250ZXh0LmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5fdmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xvc2UgdGhlIG1lbnUgaWYgb3BlbmVkXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBjbG9zZU1lbnUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1lbnUgJiYgIXRoaXMubWVudS5jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHRoaXMubWVudS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiaWd4LWFjdGlvbi1zdHJpcF9fYWN0aW9uc1wiPlxuICAgIDxuZy1jb250ZW50ICNjb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUl0ZW1zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBpZ3hCdXR0b249XCJpY29uXCJcbiAgICAgICAgICAgIGlneFJpcHBsZVxuICAgICAgICAgICAgW2lneFRvZ2dsZUFjdGlvbl09XCJkcm9wZG93blwiXG4gICAgICAgICAgICBbb3ZlcmxheVNldHRpbmdzXT1cIm1lbnVPdmVybGF5U2V0dGluZ3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwicmVzb3VyY2VTdHJpbmdzLmlneF9hY3Rpb25fc3RyaXBfYnV0dG9uX21vcmVfdGl0bGVcIlxuICAgICAgICAgICAgW2lneERyb3BEb3duSXRlbU5hdmlnYXRpb25dPVwiZHJvcGRvd25cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aWd4LWljb24+bW9yZV92ZXJ0PC9pZ3gtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGlneC1kcm9wLWRvd24gI2Ryb3Bkb3duIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiPlxuICAgICAgICA8aWd4LWRyb3AtZG93bi1pdGVtXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBtZW51SXRlbXNcIlxuICAgICAgICAgICAgY2xhc3M9XCJpZ3gtYWN0aW9uLXN0cmlwX19tZW51LWl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWRyb3AtZG93bl9faXRlbS10ZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udGVtcGxhdGVSZWY7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaWd4LWRyb3AtZG93bi1pdGVtPlxuICAgIDwvaWd4LWRyb3AtZG93bj5cbjwvZGl2PlxuIl19
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixlQUFlLEVBRWYsU0FBUyxFQU1ULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQTBCLE1BQU0saUJBQWlCLENBQUM7QUFDbEcsT0FBTyxFQUFFLDRCQUE0QixFQUErQixNQUFNLHFDQUFxQyxDQUFDO0FBQ2hILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFB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QkFEbEIsV0FBVzt1QkFBQyxlQUFlO2dCQVNsQixTQUFTO3NCQURsQixXQUFXO3VCQUFDLHdCQUF3QjtnQkFJdkIsYUFBYTtzQkFEMUIsV0FBVzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgT3B0aW9uYWwsXG4gICAgSW5qZWN0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eUJhc2UsIERpc3BsYXlEZW5zaXR5VG9rZW4sIElEaXNwbGF5RGVuc2l0eU9wdGlvbnMgfSBmcm9tICcuLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgQWN0aW9uU3RyaXBSZXNvdXJjZVN0cmluZ3NFTiwgSUFjdGlvblN0cmlwUmVzb3VyY2VTdHJpbmdzIH0gZnJvbSAnLi4vY29yZS9pMThuL2FjdGlvbi1zdHJpcC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSWd4RHJvcERvd25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wLWRvd24vZHJvcC1kb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDbG9zZVNjcm9sbFN0cmF0ZWd5LCBPdmVybGF5U2V0dGluZ3MgfSBmcm9tICcuLi9zZXJ2aWNlcy9wdWJsaWNfYXBpJztcbmltcG9ydCB7IElneEdyaWRBY3Rpb25zQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4vZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9ucy1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hEcm9wRG93bkl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9kcm9wLWRvd24vZHJvcC1kb3duLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneERyb3BEb3duSXRlbU5hdmlnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi9kcm9wLWRvd24vZHJvcC1kb3duLW5hdmlnYXRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFRvZ2dsZUFjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nSWYsIE5nRm9yLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGdldEN1cnJlbnRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vcmVzb3VyY2VzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4QWN0aW9uU3RyaXBNZW51SXRlbV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4QWN0aW9uU3RyaXBNZW51SXRlbURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PlxuICAgICkgeyB9XG59XG5cbi8qKlxuICogQWN0aW9uIFN0cmlwIHByb3ZpZGVzIHRlbXBsYXRhYmxlIGFyZWEgZm9yIG9uZSBvciBtb3JlIGFjdGlvbnMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hBY3Rpb25TdHJpcE1vZHVsZVxuICpcbiAqIEBpZ3hUaGVtZSBpZ3gtYWN0aW9uLXN0cmlwLXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIGFjdGlvbiwgc3RyaXAsIGFjdGlvblN0cmlwLCBwaW5uaW5nLCBlZGl0aW5nXG4gKlxuICogQGlneEdyb3VwIERhdGEgRW50cnkgJiBEaXNwbGF5XG4gKlxuICogQHJlbWFya3NcbiAqIFRoZSBJZ25pdGUgVUkgQWN0aW9uIFN0cmlwIGlzIGEgY29udGFpbmVyLCBvdmVybGF5aW5nIGl0cyBwYXJlbnQgY29udGFpbmVyLFxuICogYW5kIGRpc3BsYXlpbmcgYWN0aW9uIGJ1dHRvbnMgd2l0aCBhY3Rpb24gYXBwbGljYWJsZSB0byB0aGUgcGFyZW50IGNvbXBvbmVudCB0aGUgc3RyaXAgaXMgaW5zdGFudGlhdGVkIG9yIHNob3duIGZvci5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlneC1hY3Rpb24tc3RyaXAgI2FjdGlvblN0cmlwPlxuICogICAgIDxpZ3gtaWNvbiAoY2xpY2spPVwiZG9Tb21lQWN0aW9uKClcIj48L2lneC1pY29uPlxuICogPC9pZ3gtYWN0aW9uLXN0cmlwPlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1hY3Rpb24tc3RyaXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnYWN0aW9uLXN0cmlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdGb3IsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIElneEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICAgICAgSWd4UmlwcGxlRGlyZWN0aXZlLFxuICAgICAgICBJZ3hUb2dnbGVBY3Rpb25EaXJlY3RpdmUsXG4gICAgICAgIElneERyb3BEb3duSXRlbU5hdmlnYXRpb25EaXJlY3RpdmUsXG4gICAgICAgIElneEljb25Db21wb25lbnQsXG4gICAgICAgIElneERyb3BEb3duQ29tcG9uZW50LFxuICAgICAgICBJZ3hEcm9wRG93bkl0ZW1Db21wb25lbnRcbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgSWd4QWN0aW9uU3RyaXBDb21wb25lbnQgZXh0ZW5kcyBEaXNwbGF5RGVuc2l0eUJhc2UgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjb250ZXh0IG9mIGFuIGFjdGlvbiBzdHJpcC5cbiAgICAgKiBUaGUgY29udGV4dCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgYSBAQ29tcG9uZW50LCB0aGF0IGhhcyBlbGVtZW50IHByb3BlcnR5LlxuICAgICAqIFRoaXMgZWxlbWVudCB3aWxsIGJlIHRoZSBwbGFjZWhvbGRlciBvZiB0aGUgYWN0aW9uIHN0cmlwLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1hY3Rpb24tc3RyaXAgW2NvbnRleHRdPVwiY2VsbFwiPjwvaWd4LWFjdGlvbi1zdHJpcD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb250ZXh0OiBhbnk7XG4gICAgLyoqXG4gICAgICogTWVudSBJdGVtcyBDb250ZW50Q2hpbGRyZW4gaW5zaWRlIHRoZSBBY3Rpb24gU3RyaXBcbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKElneEFjdGlvblN0cmlwTWVudUl0ZW1EaXJlY3RpdmUpXG4gICAgcHVibGljIF9tZW51SXRlbXM6IFF1ZXJ5TGlzdDxJZ3hBY3Rpb25TdHJpcE1lbnVJdGVtRGlyZWN0aXZlPjtcblxuXG4gICAgLyoqXG4gICAgICogQWN0aW9uQnV0dG9uIGFzIENvbnRlbnRDaGlsZHJlbiBpbnNpZGUgdGhlIEFjdGlvbiBTdHJpcFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlKVxuICAgIHB1YmxpYyBhY3Rpb25CdXR0b25zOiBRdWVyeUxpc3Q8SWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlPjtcblxuICAgIC8qKlxuICAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgQWN0aW9uIFN0cmlwLlxuICAgICAqIENvdWxkIGJlIHVzZWQgdG8gc2V0IGlmIHRoZSBBY3Rpb24gU3RyaXAgd2lsbCBiZSBpbml0aWFsbHkgaGlkZGVuLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtYWN0aW9uLXN0cmlwIFtoaWRkZW5dPVwiZmFsc2VcIj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBwdWJsaWMgaGlkZGVuID0gZmFsc2U7XG5cblxuICAgIC8qKlxuICAgICAqIEdldHMvU2V0cyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogQnkgZGVmYXVsdCBpdCB1c2VzIEVOIHJlc291cmNlcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcmVzb3VyY2VTdHJpbmdzKHZhbHVlOiBJQWN0aW9uU3RyaXBSZXNvdXJjZVN0cmluZ3MpIHtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcmVzb3VyY2VTdHJpbmdzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXNvdXJjZVN0cmluZ3MoKTogSUFjdGlvblN0cmlwUmVzb3VyY2VTdHJpbmdzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc291cmNlU3RyaW5ncztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIG9yIG5vdCB0aGUgQWN0aW9uIFN0cmlwIGJhc2VkIG9uIGlmIGl0IGlzIGEgbWVudS5cbiAgICAgKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGhpZGVPblJvd0xlYXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5tZW51Lml0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZW51Lml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1lbnUuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgbWVudVxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJylcbiAgICBwdWJsaWMgbWVudTogSWd4RHJvcERvd25Db21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgZm9yIG1lbnUgb3ZlcmxheSBzZXR0aW5nc1xuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBtZW51T3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3MgPSB7IHNjcm9sbFN0cmF0ZWd5OiBuZXcgQ2xvc2VTY3JvbGxTdHJhdGVneSgpIH07XG5cbiAgICBwcml2YXRlIF9oaWRkZW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9yZXNvdXJjZVN0cmluZ3MgPSBnZXRDdXJyZW50UmVzb3VyY2VTdHJpbmdzKEFjdGlvblN0cmlwUmVzb3VyY2VTdHJpbmdzRU4pO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERpc3BsYXlEZW5zaXR5VG9rZW4pIHByb3RlY3RlZCBfZGlzcGxheURlbnNpdHlPcHRpb25zOiBJRGlzcGxheURlbnNpdHlPcHRpb25zLFxuICAgICAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKiovXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMsIGVsKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNZW51IEl0ZW1zIGxpc3QuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBtZW51SXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5hY3Rpb25CdXR0b25zLmZvckVhY2goYnV0dG9uID0+IHtcbiAgICAgICAgICAgIGlmIChidXR0b24uYXNNZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGJ1dHRvbi5idXR0b25zO1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi50b0FycmF5KCkuZm9yRWFjaCh4ID0+IGFjdGlvbnMucHVzaCh4KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFsuLi4gdGhpcy5fbWVudUl0ZW1zLnRvQXJyYXkoKSwgLi4uYWN0aW9uc107XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBHZXR0ZXIgZm9yIHRoZSAnZGlzcGxheScgcHJvcGVydHkgb2YgdGhlIGN1cnJlbnQgYElneEFjdGlvblN0cmlwYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUuZGlzcGxheScpXG4gICAgcHJpdmF0ZSBnZXQgZGlzcGxheSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5oaWRkZW4gPyAnbm9uZScgOiAnZmxleCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSG9zdCBgYXR0ci5jbGFzc2AgYmluZGluZy5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1hY3Rpb24tc3RyaXAnKVxuICAgIHByb3RlY3RlZCBob3N0Q2xhc3MgPSAnaWd4LWFjdGlvbi1zdHJpcCc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tY29tcG9uZW50LXNpemUnKVxuICAgIHByb3RlY3RlZCBnZXQgY29tcG9uZW50U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29tcG9uZW50U2l6ZVN0eWxlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICAgICAgYnV0dG9uLnN0cmlwID0gdGhpcztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWN0aW9uQnV0dG9ucy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbkJ1dHRvbnMuZm9yRWFjaChidXR0b24gPT4ge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5zdHJpcCA9IHRoaXM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMubWVudS5zZWxlY3Rpb25DaGFuZ2luZy5zdWJzY3JpYmUoKCRldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gKCRldmVudC5uZXdTZWxlY3Rpb24gYXMgYW55KS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBsZXQgYWxsQnV0dG9ucyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25CdXR0b25zLmZvckVhY2goYWN0aW9uQnV0dG9ucyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbkJ1dHRvbnMuYXNNZW51SXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsQnV0dG9ucyA9IFsuLi5hbGxCdXR0b25zLCAuLi5hY3Rpb25CdXR0b25zLmJ1dHRvbnMudG9BcnJheSgpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGJ1dHRvbiA9IGFsbEJ1dHRvbnMuZmluZCh4ID0+IG5ld1NlbGVjdGlvbi5jb250YWlucyh4LmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KSk7XG4gICAgICAgICAgICBpZiAoYnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmFjdGlvbkNsaWNrLmVtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvd2luZyB0aGUgQWN0aW9uIFN0cmlwIGFuZCBhcHBlbmRpbmcgaXQgdGhlIHNwZWNpZmllZCBjb250ZXh0IGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udGV4dFxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIHRoaXMuYWN0aW9uU3RyaXAuc2hvdyhyb3cpO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93KGNvbnRleHQ/OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gd2hlbiBzaG93biBmb3IgZGlmZmVyZW50IGNvbnRleHQgbWFrZSBzdXJlIHRoZSBtZW51IHdvbid0IHN0YXkgb3BlbmVkXG4gICAgICAgIGlmICh0aGlzLmNvbnRleHQgIT09IGNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VNZW51KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQuZWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChjb250ZXh0LmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5fdmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRpbmcgdGhlIEFjdGlvbiBTdHJpcCBhbmQgcmVtb3ZpbmcgaXQgZnJvbSBpdHMgY3VycmVudCBjb250ZXh0IGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmFjdGlvblN0cmlwLmhpZGUoKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaWRkZW4gPSB0cnVlO1xuICAgICAgICB0aGlzLmNsb3NlTWVudSgpO1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0ICYmIHRoaXMuY29udGV4dC5lbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuY29udGV4dC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuX3ZpZXdDb250YWluZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsb3NlIHRoZSBtZW51IGlmIG9wZW5lZFxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgY2xvc2VNZW51KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZW51ICYmICF0aGlzLm1lbnUuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnUuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiPGRpdiBjbGFzcz1cImlneC1hY3Rpb24tc3RyaXBfX2FjdGlvbnNcIj5cbiAgICA8bmctY29udGVudCAjY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lbnVJdGVtcy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWd4QnV0dG9uPVwiaWNvblwiXG4gICAgICAgICAgICBpZ3hSaXBwbGVcbiAgICAgICAgICAgIFtpZ3hUb2dnbGVBY3Rpb25dPVwiZHJvcGRvd25cIlxuICAgICAgICAgICAgW292ZXJsYXlTZXR0aW5nc109XCJtZW51T3ZlcmxheVNldHRpbmdzXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgW3RpdGxlXT1cInJlc291cmNlU3RyaW5ncy5pZ3hfYWN0aW9uX3N0cmlwX2J1dHRvbl9tb3JlX3RpdGxlXCJcbiAgICAgICAgICAgIFtpZ3hEcm9wRG93bkl0ZW1OYXZpZ2F0aW9uXT1cImRyb3Bkb3duXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGlneC1pY29uPm1vcmVfdmVydDwvaWd4LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxpZ3gtZHJvcC1kb3duICNkcm9wZG93biBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIj5cbiAgICAgICAgPGlneC1kcm9wLWRvd24taXRlbVxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbWVudUl0ZW1zXCJcbiAgICAgICAgICAgIGNsYXNzPVwiaWd4LWFjdGlvbi1zdHJpcF9fbWVudS1pdGVtXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlneC1kcm9wLWRvd25fX2l0ZW0tdGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRlbXBsYXRlUmVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2lneC1kcm9wLWRvd24taXRlbT5cbiAgICA8L2lneC1kcm9wLWRvd24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -11,11 +11,11 @@ import * as i5 from "./grid-actions/grid-action-button.component";
|
|
|
11
11
|
* IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components
|
|
12
12
|
*/
|
|
13
13
|
export class IgxActionStripModule {
|
|
14
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
15
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.
|
|
16
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxActionStripModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
15
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxActionStripModule, imports: [i1.IgxActionStripComponent, i1.IgxActionStripMenuItemDirective, i2.IgxGridPinningActionsComponent, i3.IgxGridEditingActionsComponent, i4.IgxGridActionsBaseDirective, i5.IgxGridActionButtonComponent], exports: [i1.IgxActionStripComponent, i1.IgxActionStripMenuItemDirective, i2.IgxGridPinningActionsComponent, i3.IgxGridEditingActionsComponent, i4.IgxGridActionsBaseDirective, i5.IgxGridActionButtonComponent] }); }
|
|
16
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxActionStripModule }); }
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxActionStripModule, decorators: [{
|
|
19
19
|
type: NgModule,
|
|
20
20
|
args: [{
|
|
21
21
|
imports: [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, ViewChild, Output, EventEmitter } from '@angular/core';
|
|
1
|
+
import { Component, Input, ViewChild, Output, EventEmitter, booleanAttribute } from '@angular/core';
|
|
2
2
|
import { IgxIconComponent } from '../../icon/icon.component';
|
|
3
3
|
import { IgxRippleDirective } from '../../directives/ripple/ripple.directive';
|
|
4
4
|
import { IgxButtonDirective } from '../../directives/button/button.directive';
|
|
@@ -40,10 +40,10 @@ export class IgxGridActionButtonComponent {
|
|
|
40
40
|
event.preventDefault();
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
44
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxGridActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxGridActionButtonComponent, isStandalone: true, selector: "igx-grid-action-button", inputs: { asMenuItem: ["asMenuItem", "asMenuItem", booleanAttribute], iconName: "iconName", classNames: "classNames", iconSet: "iconSet", labelText: "labelText" }, outputs: { actionClick: "actionClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "templateRef", first: true, predicate: ["menuItemTemplate"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"!asMenuItem\">\n <button type=\"button\" [title]=\"labelText\" igxButton=\"icon\" igxRipple (click)=\"handleClick($event)\" (mousedown)=\"preventEvent($event)\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n </button>\n</ng-container>\n\n<ng-template #menuItemTemplate>\n <ng-container *ngIf=\"asMenuItem\">\n <div #container [className]=\"containerClass\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n <label igxLabel>{{labelText}}</label>\n </div>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }] }); }
|
|
45
45
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxGridActionButtonComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
48
48
|
args: [{ selector: 'igx-grid-action-button', standalone: true, imports: [NgIf, IgxButtonDirective, IgxRippleDirective, IgxIconComponent], template: "<ng-container *ngIf=\"!asMenuItem\">\n <button type=\"button\" [title]=\"labelText\" igxButton=\"icon\" igxRipple (click)=\"handleClick($event)\" (mousedown)=\"preventEvent($event)\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n </button>\n</ng-container>\n\n<ng-template #menuItemTemplate>\n <ng-container *ngIf=\"asMenuItem\">\n <div #container [className]=\"containerClass\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n <label igxLabel>{{labelText}}</label>\n </div>\n </ng-container>\n</ng-template>\n" }]
|
|
49
49
|
}], propDecorators: { container: [{
|
|
@@ -55,7 +55,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
55
55
|
type: ViewChild,
|
|
56
56
|
args: ['menuItemTemplate']
|
|
57
57
|
}], asMenuItem: [{
|
|
58
|
-
type: Input
|
|
58
|
+
type: Input,
|
|
59
|
+
args: [{ transform: booleanAttribute }]
|
|
59
60
|
}], iconName: [{
|
|
60
61
|
type: Input
|
|
61
62
|
}], classNames: [{
|
|
@@ -65,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
65
66
|
}], labelText: [{
|
|
66
67
|
type: Input
|
|
67
68
|
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9hY3Rpb24tc3RyaXAvZ3JpZC1hY3Rpb25zL2dyaWQtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvYWN0aW9uLXN0cmlwL2dyaWQtYWN0aW9ucy9ncmlkLWFjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWMsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0gsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVF2QyxNQUFNLE9BQU8sNEJBQTRCO0lBUHpDO1FBWUk7Ozs7Ozs7V0FPRztRQUVJLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQVcvQzs7V0FFRztRQUVJLGVBQVUsR0FBRyxLQUFLLENBQUM7S0FnRDdCO0lBbENHLHdCQUF3QjtJQUN4QixJQUFXLGNBQWM7UUFDckIsT0FBTyxnQ0FBZ0MsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQWNEOzs7T0FHRztJQUNJLFdBQVcsQ0FBQyxLQUFLO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxLQUFLO1FBQ3JCLElBQUksS0FBSyxFQUFFO1lBQ1AsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7bUhBNUVRLDRCQUE0Qjt1R0FBNUIsNEJBQTRCLDZHQTRCakIsZ0JBQWdCLDRXQ3hDeEMsNnhCQWdCQSw0Q0RQYyxJQUFJLDZGQUFFLGtCQUFrQix3TUFBRSxrQkFBa0IsaUtBQUUsZ0JBQWdCOztnR0FHL0QsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNJLHdCQUF3QixjQUV0QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUM7OEJBTWxFLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxXQUFXO2dCQVlmLFdBQVc7c0JBRGpCLE1BQU07Z0JBVUEsV0FBVztzQkFEakIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBT3RCLFVBQVU7c0JBRGhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTy9CLFFBQVE7c0JBRGQsS0FBSztnQkFPQyxVQUFVO3NCQURoQixLQUFLO2dCQVlDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4UmlwcGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC1hY3Rpb24tYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2dyaWQtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hSaXBwbGVEaXJlY3RpdmUsIElneEljb25Db21wb25lbnRdXG59KVxuXG5leHBvcnQgY2xhc3MgSWd4R3JpZEFjdGlvbkJ1dHRvbkNvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKVxuICAgIHB1YmxpYyBjb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtZ3JpZC1hY3Rpb24tYnV0dG9uIChhY3Rpb25DbGljayk9XCJzdGFydEVkaXQoJGV2ZW50KVwiPjwvaWd4LWdyaWQtYWN0aW9uLWJ1dHRvbj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVJdGVtVGVtcGxhdGUnKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgYnV0dG9uIGFjdGlvbiBpcyByZW5kZXJlZCBpbiBtZW51IGFuZCBzaG91bGQgY29udGFpbmVyIHRleHQgbGFiZWwuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcHVibGljIGFzTWVudUl0ZW0gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGljb24gdG8gZGlzcGxheSBpbiB0aGUgYnV0dG9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb25OYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBZGRpdGlvbmFsIE1lbnUgaXRlbSBjb250YWluZXIgZWxlbWVudCBjbGFzc2VzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNsYXNzTmFtZXM6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgY29udGFpbmVyQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdpZ3gtYWN0aW9uLXN0cmlwX19tZW51LWJ1dHRvbiAnICsgKHRoaXMuY2xhc3NOYW1lcyB8fCAnJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGljb24gc2V0LiBVc2VkIGluIGNhc2UgdGhlIGljb24gaXMgZnJvbSBhIGRpZmZlcmVudCBpY29uIHNldC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uU2V0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGV4dCBvZiB0aGUgbGFiZWwuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWxUZXh0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGhhbmRsZUNsaWNrKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuYWN0aW9uQ2xpY2suZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJldmVudEV2ZW50KGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudCkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhc01lbnVJdGVtXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3RpdGxlXT1cImxhYmVsVGV4dFwiIGlneEJ1dHRvbj1cImljb25cIiBpZ3hSaXBwbGUgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIiAobW91c2Vkb3duKT1cInByZXZlbnRFdmVudCgkZXZlbnQpXCI+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cImljb25TZXRcIiBbZmFtaWx5XT1cImljb25TZXRcIiBbbmFtZV09XCJpY29uTmFtZVwiPnt7aWNvbk5hbWV9fTwvaWd4LWljb24+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cIiFpY29uU2V0XCIgPnt7aWNvbk5hbWV9fTwvaWd4LWljb24+XG4gICAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNtZW51SXRlbVRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhc01lbnVJdGVtXCI+XG4gICAgICAgIDxkaXYgI2NvbnRhaW5lciBbY2xhc3NOYW1lXT1cImNvbnRhaW5lckNsYXNzXCI+XG4gICAgICAgICAgICA8aWd4LWljb24gKm5nSWY9XCJpY29uU2V0XCIgW2ZhbWlseV09XCJpY29uU2V0XCIgW25hbWVdPVwiaWNvbk5hbWVcIj57e2ljb25OYW1lfX08L2lneC1pY29uPlxuICAgICAgICAgICAgPGlneC1pY29uICpuZ0lmPVwiIWljb25TZXRcIiA+e3tpY29uTmFtZX19PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxsYWJlbCBpZ3hMYWJlbD57e2xhYmVsVGV4dH19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IgxGridActionButtonComponent } from './grid-action-button.component';
|
|
2
|
-
import { Directive, Input, ViewChildren } from '@angular/core';
|
|
2
|
+
import { Directive, Input, ViewChildren, booleanAttribute } from '@angular/core';
|
|
3
3
|
import { IgxRowDirective } from '../../grids/row.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "../../icon/icon.service";
|
|
@@ -55,10 +55,10 @@ export class IgxGridActionsBaseDirective {
|
|
|
55
55
|
isRow(context) {
|
|
56
56
|
return context && context instanceof IgxRowDirective;
|
|
57
57
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
59
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxGridActionsBaseDirective, deps: [{ token: i1.IgxIconService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
59
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-rc.3", type: IgxGridActionsBaseDirective, isStandalone: true, selector: "[igxGridActionsBase]", inputs: { asMenuItems: ["asMenuItems", "asMenuItems", booleanAttribute] }, viewQueries: [{ propertyName: "buttons", predicate: IgxGridActionButtonComponent, descendants: true }], ngImport: i0 }); }
|
|
60
60
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.3", ngImport: i0, type: IgxGridActionsBaseDirective, decorators: [{
|
|
62
62
|
type: Directive,
|
|
63
63
|
args: [{
|
|
64
64
|
selector: '[igxGridActionsBase]',
|
|
@@ -68,6 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-rc.1", ng
|
|
|
68
68
|
type: ViewChildren,
|
|
69
69
|
args: [IgxGridActionButtonComponent]
|
|
70
70
|
}], asMenuItems: [{
|
|
71
|
-
type: Input
|
|
71
|
+
type: Input,
|
|
72
|
+
args: [{ transform: booleanAttribute }]
|
|
72
73
|
}] } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1hY3Rpb25zLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2FjdGlvbi1zdHJpcC9ncmlkLWFjdGlvbnMvZ3JpZC1hY3Rpb25zLWJhc2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixZQUFZLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBTzVELE1BQU0sT0FBTywyQkFBMkI7SUFvQnBDOzs7T0FHRztJQUNILElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztJQUM1RSxDQUFDO0lBRUQsWUFBc0IsV0FBMkIsRUFDbkMsT0FBd0I7UUFEaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBbEN0Qzs7Ozs7Ozs7V0FRRztRQUVJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO0lBd0JlLENBQUM7SUFFM0M7OztPQUdHO0lBQ0ksZUFBZTtRQUNsQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxLQUFLLENBQUMsT0FBTztRQUNuQixPQUFPLE9BQU8sSUFBSSxPQUFPLFlBQVksZUFBZSxDQUFDO0lBQ3pELENBQUM7bUhBOURRLDJCQUEyQjt1R0FBM0IsMkJBQTJCLDhHQWNoQixnQkFBZ0IseURBWnRCLDRCQUE0Qjs7Z0dBRmpDLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7aUhBSVUsT0FBTztzQkFEYixZQUFZO3VCQUFDLDRCQUE0QjtnQkFhbkMsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElneEdyaWRBY3Rpb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2dyaWQtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIEl0ZXJhYmxlRGlmZmVycywgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4QWN0aW9uU3RyaXBDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24tc3RyaXAuY29tcG9uZW50JztcbmltcG9ydCB7IElneFJvd0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2dyaWRzL3Jvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4SWNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9pY29uL2ljb24uc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneEdyaWRBY3Rpb25zQmFzZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZEFjdGlvbnNCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICoqL1xuICAgIEBWaWV3Q2hpbGRyZW4oSWd4R3JpZEFjdGlvbkJ1dHRvbkNvbXBvbmVudClcbiAgICBwdWJsaWMgYnV0dG9uczogUXVlcnlMaXN0PElneEdyaWRBY3Rpb25CdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogR2V0cy9TZXRzIGlmIHRoZSBhY3Rpb24gYnV0dG9ucyB3aWxsIGJlIHJlbmRlcmVkIGFzIG1lbnUgaXRlbXMuIFdoZW4gaW4gbWVudSwgaXRlbXMgd2lsbCBiZSByZW5kZXJlZCB3aXRoIHRleHQgbGFiZWwuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiAgPGlneC1ncmlkLXBpbm5pbmctYWN0aW9ucyBbYXNNZW51SXRlbXNdPSd0cnVlJz48L2lneC1ncmlkLXBpbm5pbmctYWN0aW9ucz5cbiAgICAgKiAgPGlneC1ncmlkLWVkaXRpbmctYWN0aW9ucyBbYXNNZW51SXRlbXNdPSd0cnVlJz48L2lneC1ncmlkLWVkaXRpbmctYWN0aW9ucz5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBwdWJsaWMgYXNNZW51SXRlbXMgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqKi9cbiAgICBwdWJsaWMgc3RyaXA6IElneEFjdGlvblN0cmlwQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZ3JpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaXAuY29udGV4dC5ncmlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHRlciB0byBiZSB1c2VkIGluIHRlbXBsYXRlXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc1Jvd0NvbnRleHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUm93KHRoaXMuc3RyaXAuY29udGV4dCkgJiYgIXRoaXMuc3RyaXAuY29udGV4dC5pbkVkaXRNb2RlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpY29uU2VydmljZTogSWd4SWNvblNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmFzTWVudUl0ZW1zKSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RyaXAuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdGhlIHBhcmFtIGlzIGEgcm93IGZyb20gYSBncmlkXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICogQHBhcmFtIGNvbnRleHRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNSb3coY29udGV4dCk6IGNvbnRleHQgaXMgSWd4Um93RGlyZWN0aXZlIHtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQgJiYgY29udGV4dCBpbnN0YW5jZW9mIElneFJvd0RpcmVjdGl2ZTtcbiAgICB9XG59XG4iXX0=
|