igniteui-angular 13.0.0-alpha.1 → 13.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/accordion/accordion.component.mjs +3 -3
- package/esm2020/lib/accordion/accordion.module.mjs +4 -4
- package/esm2020/lib/action-strip/action-strip.component.mjs +6 -6
- package/esm2020/lib/action-strip/action-strip.module.mjs +4 -4
- package/esm2020/lib/action-strip/grid-actions/grid-action-button.component.mjs +3 -3
- package/esm2020/lib/action-strip/grid-actions/grid-actions-base.directive.mjs +3 -3
- package/esm2020/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +3 -3
- package/esm2020/lib/action-strip/grid-actions/grid-pinning-actions.component.mjs +3 -3
- package/esm2020/lib/avatar/avatar.component.mjs +7 -7
- package/esm2020/lib/badge/badge.component.mjs +7 -7
- package/esm2020/lib/banner/banner.component.mjs +7 -7
- package/esm2020/lib/banner/banner.directives.mjs +3 -3
- package/esm2020/lib/buttonGroup/buttonGroup.component.mjs +7 -7
- package/esm2020/lib/calendar/calendar-base.mjs +3 -3
- package/esm2020/lib/calendar/calendar.component.mjs +3 -3
- package/esm2020/lib/calendar/calendar.directives.mjs +15 -15
- package/esm2020/lib/calendar/calendar.module.mjs +4 -4
- package/esm2020/lib/calendar/days-view/day-item.component.mjs +3 -3
- package/esm2020/lib/calendar/days-view/days-view.component.mjs +3 -3
- package/esm2020/lib/calendar/days-view/daysview-navigation.service.mjs +3 -3
- package/esm2020/lib/calendar/month-picker/month-picker.component.mjs +3 -3
- package/esm2020/lib/calendar/month-picker-base.mjs +3 -3
- package/esm2020/lib/calendar/months-view/months-view.component.mjs +3 -3
- package/esm2020/lib/calendar/months-view.pipe.mjs +6 -6
- package/esm2020/lib/calendar/years-view/years-view.component.mjs +6 -6
- package/esm2020/lib/card/card.component.mjs +31 -31
- package/esm2020/lib/carousel/carousel.component.mjs +10 -10
- package/esm2020/lib/carousel/carousel.directives.mjs +9 -9
- package/esm2020/lib/carousel/slide.component.mjs +3 -3
- package/esm2020/lib/checkbox/checkbox.component.mjs +10 -10
- package/esm2020/lib/chips/chip.component.mjs +3 -3
- package/esm2020/lib/chips/chips-area.component.mjs +3 -3
- package/esm2020/lib/chips/chips.module.mjs +4 -4
- package/esm2020/lib/combo/combo-add-item.component.mjs +3 -3
- package/esm2020/lib/combo/combo-dropdown.component.mjs +3 -3
- package/esm2020/lib/combo/combo-item.component.mjs +3 -3
- package/esm2020/lib/combo/combo.api.mjs +3 -3
- package/esm2020/lib/combo/combo.component.mjs +7 -7
- package/esm2020/lib/combo/combo.directives.mjs +24 -24
- package/esm2020/lib/combo/combo.pipes.mjs +6 -6
- package/esm2020/lib/core/displayDensity.mjs +7 -7
- package/esm2020/lib/core/navigation/directives.mjs +10 -10
- package/esm2020/lib/core/navigation/nav.service.mjs +3 -3
- package/esm2020/lib/core/selection.mjs +3 -3
- package/esm2020/lib/core/touch.mjs +3 -3
- package/esm2020/lib/core/utils.mjs +3 -3
- package/esm2020/lib/data-operations/data-util.mjs +3 -5
- package/esm2020/lib/date-common/calendar-container/calendar-container.component.mjs +7 -7
- package/esm2020/lib/date-common/picker-base.directive.mjs +3 -3
- package/esm2020/lib/date-common/picker-icons.common.mjs +13 -13
- package/esm2020/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/lib/date-picker/date-picker.module.mjs +4 -4
- package/esm2020/lib/date-range-picker/date-range-picker-inputs.common.mjs +15 -15
- package/esm2020/lib/date-range-picker/date-range-picker.component.mjs +3 -3
- package/esm2020/lib/date-range-picker/date-range-picker.module.mjs +4 -4
- package/esm2020/lib/dialog/dialog.component.mjs +7 -7
- package/esm2020/lib/dialog/dialog.directives.mjs +6 -6
- package/esm2020/lib/directives/autocomplete/autocomplete.directive.mjs +7 -7
- package/esm2020/lib/directives/button/button.directive.mjs +7 -7
- package/esm2020/lib/directives/date-time-editor/date-time-editor.directive.mjs +7 -7
- package/esm2020/lib/directives/divider/divider.directive.mjs +7 -7
- package/esm2020/lib/directives/drag-drop/drag-drop.directive.mjs +16 -16
- package/esm2020/lib/directives/filter/filter.directive.mjs +10 -10
- package/esm2020/lib/directives/focus/focus.directive.mjs +7 -7
- package/esm2020/lib/directives/for-of/base.helper.component.mjs +3 -3
- package/esm2020/lib/directives/for-of/display.container.mjs +3 -3
- package/esm2020/lib/directives/for-of/for_of.directive.mjs +10 -10
- package/esm2020/lib/directives/for-of/for_of.sync.service.mjs +6 -6
- package/esm2020/lib/directives/for-of/horizontal.virtual.helper.component.mjs +3 -3
- package/esm2020/lib/directives/for-of/virtual.helper.component.mjs +3 -3
- package/esm2020/lib/directives/hint/hint.directive.mjs +3 -3
- package/esm2020/lib/directives/input/input.directive.mjs +3 -3
- package/esm2020/lib/directives/label/label.directive.mjs +3 -3
- package/esm2020/lib/directives/layout/layout.directive.mjs +10 -10
- package/esm2020/lib/directives/mask/mask-parsing.service.mjs +3 -3
- package/esm2020/lib/directives/mask/mask.directive.mjs +7 -7
- package/esm2020/lib/directives/notification/notifications.directive.mjs +3 -3
- package/esm2020/lib/directives/prefix/prefix.directive.mjs +7 -7
- package/esm2020/lib/directives/radio/radio-group.directive.mjs +7 -7
- package/esm2020/lib/directives/ripple/ripple.directive.mjs +7 -7
- package/esm2020/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +7 -7
- package/esm2020/lib/directives/suffix/suffix.directive.mjs +7 -7
- package/esm2020/lib/directives/template-outlet/template_outlet.directive.mjs +7 -7
- package/esm2020/lib/directives/text-highlight/text-highlight.directive.mjs +7 -7
- package/esm2020/lib/directives/text-selection/text-selection.directive.mjs +7 -7
- package/esm2020/lib/directives/toggle/toggle.directive.mjs +13 -13
- package/esm2020/lib/directives/tooltip/tooltip.directive.mjs +10 -10
- package/esm2020/lib/drop-down/drop-down-group.component.mjs +3 -3
- package/esm2020/lib/drop-down/drop-down-item.base.mjs +3 -3
- package/esm2020/lib/drop-down/drop-down-item.component.mjs +3 -3
- package/esm2020/lib/drop-down/drop-down-navigation.directive.mjs +3 -3
- package/esm2020/lib/drop-down/drop-down.base.mjs +3 -3
- package/esm2020/lib/drop-down/drop-down.component.mjs +3 -3
- package/esm2020/lib/drop-down/public_api.mjs +4 -4
- package/esm2020/lib/expansion-panel/expansion-panel-body.component.mjs +3 -3
- package/esm2020/lib/expansion-panel/expansion-panel-header.component.mjs +3 -3
- package/esm2020/lib/expansion-panel/expansion-panel.component.mjs +3 -3
- package/esm2020/lib/expansion-panel/expansion-panel.directives.mjs +9 -9
- package/esm2020/lib/expansion-panel/expansion-panel.module.mjs +4 -4
- package/esm2020/lib/expansion-panel/toggle-animation-component.mjs +3 -3
- package/esm2020/lib/grids/api.service.mjs +3 -3
- package/esm2020/lib/grids/cell.component.mjs +3 -3
- package/esm2020/lib/grids/column-actions/column-actions-base.directive.mjs +3 -3
- package/esm2020/lib/grids/column-actions/column-actions.component.mjs +12 -12
- package/esm2020/lib/grids/column-actions/column-actions.module.mjs +4 -4
- package/esm2020/lib/grids/column-actions/column-hiding.directive.mjs +3 -3
- package/esm2020/lib/grids/column-actions/column-pinning.directive.mjs +3 -3
- package/esm2020/lib/grids/columns/column-group.component.mjs +3 -3
- package/esm2020/lib/grids/columns/column-layout.component.mjs +3 -3
- package/esm2020/lib/grids/columns/column.component.mjs +3 -3
- package/esm2020/lib/grids/columns/column.module.mjs +4 -4
- package/esm2020/lib/grids/columns/templates.directive.mjs +18 -18
- package/esm2020/lib/grids/common/crud.service.mjs +3 -3
- package/esm2020/lib/grids/common/grid-pipes.module.mjs +4 -4
- package/esm2020/lib/grids/common/grid.interface.mjs +1 -1
- package/esm2020/lib/grids/common/pipes.mjs +51 -51
- package/esm2020/lib/grids/common/shared.module.mjs +4 -4
- package/esm2020/lib/grids/common/strategy.mjs +11 -1
- package/esm2020/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +4 -4
- package/esm2020/lib/grids/filtering/base/filtering.module.mjs +4 -4
- package/esm2020/lib/grids/filtering/base/grid-filtering-cell.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/base/grid-filtering-row.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/base-filtering.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-clear-filters.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-header.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-hiding.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-pinning.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-search.component.mjs +6 -6
- package/esm2020/lib/grids/filtering/excel-style/excel-style-selecting.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +3 -3
- package/esm2020/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.mjs +9 -9
- package/esm2020/lib/grids/filtering/excel-style/grid.excel-style-filtering.module.mjs +4 -4
- package/esm2020/lib/grids/filtering/grid-filtering.service.mjs +3 -3
- package/esm2020/lib/grids/grid/expandable-cell.component.mjs +3 -3
- package/esm2020/lib/grids/grid/grid-api.service.mjs +3 -3
- package/esm2020/lib/grids/grid/grid-row.component.mjs +3 -3
- package/esm2020/lib/grids/grid/grid.component.mjs +24 -6
- package/esm2020/lib/grids/grid/grid.details.pipe.mjs +3 -3
- package/esm2020/lib/grids/grid/grid.directives.mjs +24 -24
- package/esm2020/lib/grids/grid/grid.module.mjs +4 -4
- package/esm2020/lib/grids/grid/grid.pipes.mjs +15 -15
- package/esm2020/lib/grids/grid/grid.summary.pipe.mjs +3 -3
- package/esm2020/lib/grids/grid/groupby-row.component.mjs +3 -3
- package/esm2020/lib/grids/grid-base.directive.mjs +4 -4
- package/esm2020/lib/grids/grid-common.module.mjs +4 -4
- package/esm2020/lib/grids/grid-footer/grid-footer.component.mjs +3 -3
- package/esm2020/lib/grids/grid-mrl-navigation.service.mjs +3 -3
- package/esm2020/lib/grids/grid-navigation.service.mjs +3 -3
- package/esm2020/lib/grids/grid.common.mjs +3 -3
- package/esm2020/lib/grids/grid.rowEdit.directive.mjs +15 -15
- package/esm2020/lib/grids/grouping/grid-group-by-area.component.mjs +3 -3
- package/esm2020/lib/grids/grouping/group-by-area.directive.mjs +6 -6
- package/esm2020/lib/grids/grouping/tree-grid-group-by-area.component.mjs +3 -3
- package/esm2020/lib/grids/headers/grid-header-group.component.mjs +3 -3
- package/esm2020/lib/grids/headers/grid-header-row.component.mjs +4 -4
- package/esm2020/lib/grids/headers/grid-header.component.mjs +3 -3
- package/esm2020/lib/grids/headers/headers.module.mjs +4 -4
- package/esm2020/lib/grids/headers/pipes.mjs +9 -9
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +3 -3
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +3 -3
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +3 -3
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +3 -3
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +7 -7
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +4 -4
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.pipes.mjs +6 -6
- package/esm2020/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +3 -3
- package/esm2020/lib/grids/hierarchical-grid/row-island-api.service.mjs +3 -3
- package/esm2020/lib/grids/hierarchical-grid/row-island.component.mjs +3 -3
- package/esm2020/lib/grids/moving/moving.drag.directive.mjs +3 -3
- package/esm2020/lib/grids/moving/moving.drop.directive.mjs +3 -3
- package/esm2020/lib/grids/moving/moving.module.mjs +4 -4
- package/esm2020/lib/grids/moving/moving.service.mjs +3 -3
- package/esm2020/lib/grids/public_api.mjs +2 -1
- package/esm2020/lib/grids/resizing/resize-handle.directive.mjs +3 -3
- package/esm2020/lib/grids/resizing/resize.module.mjs +4 -4
- package/esm2020/lib/grids/resizing/resizer.component.mjs +3 -3
- package/esm2020/lib/grids/resizing/resizer.directive.mjs +3 -3
- package/esm2020/lib/grids/resizing/resizing.service.mjs +3 -3
- package/esm2020/lib/grids/row-drag.directive.mjs +13 -13
- package/esm2020/lib/grids/row.directive.mjs +3 -3
- package/esm2020/lib/grids/selection/drag-select.directive.mjs +3 -3
- package/esm2020/lib/grids/selection/row-selectors.mjs +9 -9
- package/esm2020/lib/grids/selection/selection.module.mjs +4 -4
- package/esm2020/lib/grids/selection/selection.service.mjs +3 -3
- package/esm2020/lib/grids/state.directive.mjs +7 -7
- package/esm2020/lib/grids/summaries/grid-root-summary.pipe.mjs +3 -3
- package/esm2020/lib/grids/summaries/grid-summary.service.mjs +3 -3
- package/esm2020/lib/grids/summaries/summary-cell.component.mjs +3 -3
- package/esm2020/lib/grids/summaries/summary-row.component.mjs +3 -3
- package/esm2020/lib/grids/summaries/summary.module.mjs +4 -4
- package/esm2020/lib/grids/toolbar/common.mjs +15 -15
- package/esm2020/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +3 -3
- package/esm2020/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +3 -3
- package/esm2020/lib/grids/toolbar/grid-toolbar-hiding.component.mjs +3 -3
- package/esm2020/lib/grids/toolbar/grid-toolbar-pinning.component.mjs +3 -3
- package/esm2020/lib/grids/toolbar/grid-toolbar.base.mjs +6 -6
- package/esm2020/lib/grids/toolbar/grid-toolbar.component.mjs +3 -3
- package/esm2020/lib/grids/toolbar/toolbar.module.mjs +4 -4
- package/esm2020/lib/grids/tree-grid/tree-cell.component.mjs +3 -3
- package/esm2020/lib/grids/tree-grid/tree-grid-api.service.mjs +3 -3
- package/esm2020/lib/grids/tree-grid/tree-grid-row.component.mjs +3 -3
- package/esm2020/lib/grids/tree-grid/tree-grid-selection.service.mjs +3 -3
- package/esm2020/lib/grids/tree-grid/tree-grid.component.mjs +3 -3
- package/esm2020/lib/grids/tree-grid/tree-grid.directives.mjs +3 -3
- package/esm2020/lib/grids/tree-grid/tree-grid.filtering.pipe.mjs +3 -3
- package/esm2020/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +3 -3
- package/esm2020/lib/grids/tree-grid/tree-grid.module.mjs +4 -4
- package/esm2020/lib/grids/tree-grid/tree-grid.pipes.mjs +21 -21
- package/esm2020/lib/grids/tree-grid/tree-grid.summary.pipe.mjs +3 -3
- package/esm2020/lib/icon/icon.component.mjs +3 -3
- package/esm2020/lib/icon/icon.service.mjs +3 -3
- package/esm2020/lib/icon/public_api.mjs +4 -4
- package/esm2020/lib/input-group/input-group.component.mjs +7 -7
- package/esm2020/lib/list/list-item.component.mjs +3 -3
- package/esm2020/lib/list/list.common.mjs +15 -15
- package/esm2020/lib/list/list.component.mjs +22 -22
- package/esm2020/lib/navbar/navbar.component.mjs +13 -13
- package/esm2020/lib/navigation-drawer/navigation-drawer.component.mjs +3 -3
- package/esm2020/lib/navigation-drawer/navigation-drawer.directives.mjs +9 -9
- package/esm2020/lib/navigation-drawer/navigation-drawer.module.mjs +4 -4
- package/esm2020/lib/paginator/paginator-interfaces.mjs +3 -3
- package/esm2020/lib/paginator/paginator.component.mjs +12 -12
- package/esm2020/lib/paginator/public_api.mjs +4 -4
- package/esm2020/lib/progressbar/progressbar.common.mjs +6 -6
- package/esm2020/lib/progressbar/progressbar.component.mjs +13 -13
- package/esm2020/lib/radio/radio.component.mjs +3 -3
- package/esm2020/lib/select/select-group.component.mjs +3 -3
- package/esm2020/lib/select/select-item.component.mjs +3 -3
- package/esm2020/lib/select/select-navigation.directive.mjs +3 -3
- package/esm2020/lib/select/select.component.mjs +12 -12
- package/esm2020/lib/select/select.module.mjs +4 -4
- package/esm2020/lib/services/csv/csv-exporter.mjs +3 -3
- package/esm2020/lib/services/direction/directionality.mjs +3 -3
- package/esm2020/lib/services/excel/excel-exporter.mjs +3 -3
- package/esm2020/lib/services/exporter-common/base-export-service.mjs +2 -2
- package/esm2020/lib/services/overlay/overlay.mjs +3 -3
- package/esm2020/lib/services/transaction/transaction-factory.service.mjs +6 -6
- package/esm2020/lib/slider/label/thumb-label.component.mjs +3 -3
- package/esm2020/lib/slider/slider.common.mjs +9 -9
- package/esm2020/lib/slider/slider.component.mjs +7 -7
- package/esm2020/lib/slider/thumb/thumb-slider.component.mjs +3 -3
- package/esm2020/lib/slider/ticks/tick.pipe.mjs +3 -3
- package/esm2020/lib/slider/ticks/ticks.component.mjs +3 -3
- package/esm2020/lib/snackbar/snackbar.component.mjs +7 -7
- package/esm2020/lib/splitter/splitter-pane/splitter-pane.component.mjs +3 -3
- package/esm2020/lib/splitter/splitter.component.mjs +6 -6
- package/esm2020/lib/splitter/splitter.module.mjs +4 -4
- package/esm2020/lib/stepper/step/step.component.mjs +3 -3
- package/esm2020/lib/stepper/stepper.common.mjs +1 -1
- package/esm2020/lib/stepper/stepper.component.mjs +7 -7
- package/esm2020/lib/stepper/stepper.directive.mjs +21 -21
- package/esm2020/lib/stepper/stepper.service.mjs +3 -3
- package/esm2020/lib/switch/switch.component.mjs +10 -10
- package/esm2020/lib/tabs/bottom-nav/bottom-nav-content.component.mjs +3 -3
- package/esm2020/lib/tabs/bottom-nav/bottom-nav-header.component.mjs +3 -3
- package/esm2020/lib/tabs/bottom-nav/bottom-nav-item.component.mjs +3 -3
- package/esm2020/lib/tabs/bottom-nav/bottom-nav.component.mjs +3 -3
- package/esm2020/lib/tabs/bottom-nav/bottom-nav.directives.mjs +6 -6
- package/esm2020/lib/tabs/bottom-nav/bottom-nav.module.mjs +4 -4
- package/esm2020/lib/tabs/tab-content.directive.mjs +3 -3
- package/esm2020/lib/tabs/tab-header.directive.mjs +3 -3
- package/esm2020/lib/tabs/tab-item.directive.mjs +3 -3
- package/esm2020/lib/tabs/tabs/tab-content.component.mjs +3 -3
- package/esm2020/lib/tabs/tabs/tab-header.component.mjs +3 -3
- package/esm2020/lib/tabs/tabs/tab-item.component.mjs +3 -3
- package/esm2020/lib/tabs/tabs/tabs.component.mjs +3 -3
- package/esm2020/lib/tabs/tabs/tabs.directives.mjs +6 -6
- package/esm2020/lib/tabs/tabs/tabs.module.mjs +4 -4
- package/esm2020/lib/tabs/tabs.directive.mjs +3 -3
- package/esm2020/lib/time-picker/time-picker.component.mjs +7 -7
- package/esm2020/lib/time-picker/time-picker.directives.mjs +12 -12
- package/esm2020/lib/time-picker/time-picker.pipes.mjs +6 -6
- package/esm2020/lib/toast/toast.component.mjs +53 -28
- package/esm2020/lib/tree/tree-navigation.service.mjs +3 -3
- package/esm2020/lib/tree/tree-node/tree-node.component.mjs +6 -6
- package/esm2020/lib/tree/tree-selection.service.mjs +3 -3
- package/esm2020/lib/tree/tree.component.mjs +13 -13
- package/esm2020/lib/tree/tree.service.mjs +3 -3
- package/esm2020/public_api.mjs +1 -2
- package/fesm2015/igniteui-angular.mjs +1778 -1739
- package/fesm2015/igniteui-angular.mjs.map +1 -1
- package/fesm2020/igniteui-angular.mjs +1778 -1739
- package/fesm2020/igniteui-angular.mjs.map +1 -1
- package/lib/data-operations/data-util.d.ts +2 -2
- package/lib/grids/common/grid.interface.d.ts +2 -1
- package/lib/grids/common/strategy.d.ts +6 -0
- package/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.d.ts +2 -1
- package/lib/grids/grid/grid.component.d.ts +18 -1
- package/lib/grids/grid/grid.pipes.d.ts +2 -2
- package/lib/grids/grid-base.directive.d.ts +4 -2
- package/lib/grids/headers/grid-header-row.component.d.ts +4 -2
- package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +2 -1
- package/lib/grids/public_api.d.ts +1 -0
- package/lib/stepper/stepper.common.d.ts +12 -12
- package/lib/toast/toast.component.d.ts +8 -4
- package/migrations/update-13_0_0/index.js +47 -0
- package/package.json +5 -5
- package/public_api.d.ts +0 -1
- package/schematics/tsconfig.tsbuildinfo +1 -1
- package/src/lib/grids/README.md +1 -0
- package/esm2020/lib/data-operations/grouping-strategy.mjs +0 -12
- package/lib/data-operations/grouping-strategy.d.ts +0 -6
|
@@ -613,9 +613,9 @@ export class IgxGridSelectionService {
|
|
|
613
613
|
return this.grid.gridAPI.row_deleted_transaction(rowID);
|
|
614
614
|
}
|
|
615
615
|
}
|
|
616
|
-
IgxGridSelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
617
|
-
IgxGridSelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
618
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
616
|
+
IgxGridSelectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSelectionService, deps: [{ token: i0.NgZone }, { token: i1.PlatformUtil }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
617
|
+
IgxGridSelectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSelectionService });
|
|
618
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSelectionService, decorators: [{
|
|
619
619
|
type: Injectable
|
|
620
620
|
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.PlatformUtil }]; } });
|
|
621
621
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7OztBQWM1RixNQUFNLE9BQU8sdUJBQXVCO0lBdURoQyxZQUFvQixJQUFZLEVBQVksUUFBc0I7UUFBOUMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUFZLGFBQVEsR0FBUixRQUFRLENBQWM7UUFyRDNELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsa0JBQWEsR0FBRyxFQUE2QixDQUFDO1FBQzlDLGlCQUFZLEdBQUcsRUFBNEIsQ0FBQztRQUM1QyxpQkFBWSxHQUFHLEVBQTJCLENBQUM7UUFFM0MsY0FBUyxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1FBQzNDLFNBQUksR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQztRQUN0QyxpQkFBWSxHQUFhLElBQUksR0FBRyxFQUFPLENBQUM7UUFDeEMsc0JBQWlCLEdBQWEsSUFBSSxHQUFHLEVBQU8sQ0FBQztRQUM3QyxvQkFBZSxHQUFnQixJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ3hEOztXQUVHO1FBQ0ksdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUxQzs7O1dBR0c7UUFDSywyQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFHL0IsWUFBTyxHQUFnQixJQUFJLEdBQUcsRUFBVSxDQUFDO1FBNHBCekMseUJBQW9CLEdBQUcsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxL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QUM7UUFDdkIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsT0FBTyxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1lBQ3RFLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQUs7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDOzt5SEFuckJRLHVCQUF1Qjs2SEFBdkIsdUJBQXVCO2dHQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgR3JpZFR5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgICBHcmlkU2VsZWN0aW9uUmFuZ2UsXG4gICAgSUNvbHVtblNlbGVjdGlvblN0YXRlLFxuICAgIElNdWx0aVJvd0xheW91dE5vZGUsXG4gICAgSVNlbGVjdGlvbktleWJvYXJkU3RhdGUsXG4gICAgSVNlbGVjdGlvbk5vZGUsXG4gICAgSVNlbGVjdGlvblBvaW50ZXJTdGF0ZSxcbiAgICBTZWxlY3Rpb25TdGF0ZVxufSBmcm9tICcuLi9jb21tb24vdHlwZXMnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkU2VsZWN0aW9uU2VydmljZSB7XG4gICAgcHVibGljIGdyaWQ6IEdyaWRUeXBlO1xuICAgIHB1YmxpYyBkcmFnTW9kZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBhY3RpdmVFbGVtZW50OiBJU2VsZWN0aW9uTm9kZSB8IG51bGw7XG4gICAgcHVibGljIGtleWJvYXJkU3RhdGUgPSB7fSBhcyBJU2VsZWN0aW9uS2V5Ym9hcmRTdGF0ZTtcbiAgICBwdWJsaWMgcG9pbnRlclN0YXRlID0ge30gYXMgSVNlbGVjdGlvblBvaW50ZXJTdGF0ZTtcbiAgICBwdWJsaWMgY29sdW1uc1N0YXRlID0ge30gYXMgSUNvbHVtblNlbGVjdGlvblN0YXRlO1xuXG4gICAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBNYXA8bnVtYmVyLCBTZXQ8bnVtYmVyPj4oKTtcbiAgICBwdWJsaWMgdGVtcCA9IG5ldyBNYXA8bnVtYmVyLCBTZXQ8bnVtYmVyPj4oKTtcbiAgICBwdWJsaWMgcm93U2VsZWN0aW9uOiBTZXQ8YW55PiA9IG5ldyBTZXQ8YW55PigpO1xuICAgIHB1YmxpYyBpbmRldGVybWluYXRlUm93czogU2V0PGFueT4gPSBuZXcgU2V0PGFueT4oKTtcbiAgICBwdWJsaWMgY29sdW1uU2VsZWN0aW9uOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdGVkUm93c0NoYW5nZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVkIHdoZW4gYSBwb2ludGVyZG93biBldmVudCBpcyB0cmlnZ2VyZWQgaW5zaWRlIHRoZSBncmlkIGJvZHkgKGNlbGxzKS5cbiAgICAgKiBXaGVuIGBmYWxzZWAgdGhlIGRyYWcgc2VsZWN0IGJlaGF2aW9yIGlzIGRpc2FibGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgcG9pbnRlckV2ZW50SW5HcmlkQm9keSA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBhbGxSb3dzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfcmFuZ2VzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIHByaXZhdGUgX3NlbGVjdGlvblJhbmdlOiBSYW5nZTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgcmFuZ2VzIGluIHRoZSBncmlkIGZyb20gYm90aFxuICAgICAqIGtleWJvYXJkIGFuZCBwb2ludGVyIGludGVyYWN0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmFuZ2VzKCk6IEdyaWRTZWxlY3Rpb25SYW5nZVtdIHtcblxuICAgICAgICAvLyBUaGUgbGFzdCBhY3Rpb24gd2FzIGtleWJvYXJkICsgc2hpZnQgc2VsZWN0aW9uIC0+IGFkZCBpdFxuICAgICAgICB0aGlzLmFkZEtleWJvYXJkUmFuZ2UoKTtcblxuICAgICAgICBjb25zdCByYW5nZXMgPSBBcnJheS5mcm9tKHRoaXMuX3JhbmdlcykubWFwKHJhbmdlID0+IEpTT04ucGFyc2UocmFuZ2UpKTtcblxuICAgICAgICAvLyBObyByYW5nZXMgYnV0IHdlIGhhdmUgYSBmb2N1c2VkIGNlbGwgLT4gYWRkIGl0XG4gICAgICAgIGlmICghcmFuZ2VzLmxlbmd0aCAmJiB0aGlzLmFjdGl2ZUVsZW1lbnQgJiYgdGhpcy5ncmlkLmlzQ2VsbFNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIHJhbmdlcy5wdXNoKHRoaXMuZ2VuZXJhdGVSYW5nZSh0aGlzLmFjdGl2ZUVsZW1lbnQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByYW5nZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwcmltYXJ5QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb2ludGVyU3RhdGUucHJpbWFyeUJ1dHRvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHByaW1hcnlCdXR0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5wb2ludGVyU3RhdGUucHJpbWFyeUJ1dHRvbiA9IHZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lLCBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtVXRpbCkge1xuICAgICAgICB0aGlzLmluaXRQb2ludGVyU3RhdGUoKTtcbiAgICAgICAgdGhpcy5pbml0S2V5Ym9hcmRTdGF0ZSgpO1xuICAgICAgICB0aGlzLmluaXRDb2x1bW5zU3RhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldHMgdGhlIGtleWJvYXJkIHN0YXRlXG4gICAgICovXG4gICAgcHVibGljIGluaXRLZXlib2FyZFN0YXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWJvYXJkU3RhdGUubm9kZSA9IG51bGw7XG4gICAgICAgIHRoaXMua2V5Ym9hcmRTdGF0ZS5zaGlmdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmtleWJvYXJkU3RhdGUucmFuZ2UgPSBudWxsO1xuICAgICAgICB0aGlzLmtleWJvYXJkU3RhdGUuYWN0aXZlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXRzIHRoZSBwb2ludGVyIHN0YXRlXG4gICAgICovXG4gICAgcHVibGljIGluaXRQb2ludGVyU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9pbnRlclN0YXRlLm5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLnBvaW50ZXJTdGF0ZS5jdHJsID0gZmFsc2U7XG4gICAgICAgIHRoaXMucG9pbnRlclN0YXRlLnNoaWZ0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMucG9pbnRlclN0YXRlLnJhbmdlID0gbnVsbDtcbiAgICAgICAgdGhpcy5wb2ludGVyU3RhdGUucHJpbWFyeUJ1dHRvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXRzIHRoZSBjb2x1bW5zIHN0YXRlXG4gICAgICovXG4gICAgcHVibGljIGluaXRDb2x1bW5zU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sdW1uc1N0YXRlLmZpZWxkID0gbnVsbDtcbiAgICAgICAgdGhpcy5jb2x1bW5zU3RhdGUucmFuZ2UgPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgc2luZ2xlIG5vZGUuXG4gICAgICogU2luZ2xlIGNsaWNrcyB8IEN0cmwgKyBzaW5nbGUgY2xpY2tzIG9uIGNlbGxzIGlzIHRoZSB1c3VhbCBjYXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBhZGQobm9kZTogSVNlbGVjdGlvbk5vZGUsIGFkZFRvUmFuZ2UgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5oYXMobm9kZS5yb3cpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5nZXQobm9kZS5yb3cpLmFkZChub2RlLmNvbHVtbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZXQobm9kZS5yb3csIG5ldyBTZXQ8bnVtYmVyPigpKS5nZXQobm9kZS5yb3cpLmFkZChub2RlLmNvbHVtbik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWRkVG9SYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fcmFuZ2VzLmFkZChKU09OLnN0cmluZ2lmeSh0aGlzLmdlbmVyYXRlUmFuZ2Uobm9kZSkpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgdGhlIGFjdGl2ZSBrZXlib2FyZCByYW5nZSBzZWxlY3Rpb24gKGlmIGFueSkgdG8gdGhlIGByYW5nZXNgIG1ldGEuXG4gICAgICovXG4gICAgcHVibGljIGFkZEtleWJvYXJkUmFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmtleWJvYXJkU3RhdGUucmFuZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jhbmdlcy5hZGQoSlNPTi5zdHJpbmdpZnkodGhpcy5rZXlib2FyZFN0YXRlLnJhbmdlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlKG5vZGU6IElTZWxlY3Rpb25Ob2RlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5oYXMobm9kZS5yb3cpKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5nZXQobm9kZS5yb3cpLmRlbGV0ZShub2RlLmNvbHVtbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNBY3RpdmVOb2RlKG5vZGUpKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Jhbmdlcy5kZWxldGUoSlNPTi5zdHJpbmdpZnkodGhpcy5nZW5lcmF0ZVJhbmdlKG5vZGUpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW5NYXAobm9kZTogSVNlbGVjdGlvbk5vZGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnNlbGVjdGlvbi5oYXMobm9kZS5yb3cpICYmIHRoaXMuc2VsZWN0aW9uLmdldChub2RlLnJvdykuaGFzKG5vZGUuY29sdW1uKSkgfHxcbiAgICAgICAgICAgICh0aGlzLnRlbXAuaGFzKG5vZGUucm93KSAmJiB0aGlzLnRlbXAuZ2V0KG5vZGUucm93KS5oYXMobm9kZS5jb2x1bW4pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWQobm9kZTogSVNlbGVjdGlvbk5vZGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmlzQWN0aXZlTm9kZShub2RlKSAmJiB0aGlzLmdyaWQuaXNDZWxsU2VsZWN0YWJsZSkgfHwgdGhpcy5pc0luTWFwKG5vZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FjdGl2ZU5vZGUobm9kZTogSVNlbGVjdGlvbk5vZGUpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLmFjdGl2ZUVsZW1lbnQuY29sdW1uID09PSBub2RlLmNvbHVtbiAmJiB0aGlzLmFjdGl2ZUVsZW1lbnQucm93ID09PSBub2RlLnJvdztcbiAgICAgICAgICAgIGlmICh0aGlzLmdyaWQuaGFzQ29sdW1uTGF5b3V0cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxheW91dCA9IHRoaXMuYWN0aXZlRWxlbWVudC5sYXlvdXQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzQWN0aXZlICYmIHRoaXMuaXNBY3RpdmVMYXlvdXQobGF5b3V0LCBub2RlLmxheW91dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaXNBY3RpdmU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FjdGl2ZUxheW91dChjdXJyZW50OiBJTXVsdGlSb3dMYXlvdXROb2RlLCB0YXJnZXQ6IElNdWx0aVJvd0xheW91dE5vZGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQuY29sdW1uVmlzaWJsZUluZGV4ID09PSB0YXJnZXQuY29sdW1uVmlzaWJsZUluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRSYW5nZU1ldGEobm9kZTogSVNlbGVjdGlvbk5vZGUsIHN0YXRlPzogU2VsZWN0aW9uU3RhdGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmFuZ2VzLmFkZChKU09OLnN0cmluZ2lmeSh0aGlzLmdlbmVyYXRlUmFuZ2Uobm9kZSwgc3RhdGUpKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVJhbmdlTWV0YShub2RlOiBJU2VsZWN0aW9uTm9kZSwgc3RhdGU/OiBTZWxlY3Rpb25TdGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yYW5nZXMuZGVsZXRlKEpTT04uc3RyaW5naWZ5KHRoaXMuZ2VuZXJhdGVSYW5nZShub2RlLCBzdGF0ZSkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSBuZXcgc2VsZWN0aW9uIHJhbmdlIGZyb20gdGhlIGdpdmVuIGBub2RlYC5cbiAgICAgKiBJZiBgc3RhdGVgIGlzIHBhc3NlZCBpbnN0ZWFkIGl0IHdpbGwgZ2VuZXJhdGUgdGhlIHJhbmdlIGJhc2VkIG9uIHRoZSBwYXNzZWQgYG5vZGVgXG4gICAgICogYW5kIHRoZSBzdGFydCBub2RlIG9mIHRoZSBgc3RhdGVgLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZW5lcmF0ZVJhbmdlKG5vZGU6IElTZWxlY3Rpb25Ob2RlLCBzdGF0ZT86IFNlbGVjdGlvblN0YXRlKTogR3JpZFNlbGVjdGlvblJhbmdlIHtcbiAgICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByb3dTdGFydDogbm9kZS5yb3csXG4gICAgICAgICAgICAgICAgcm93RW5kOiBub2RlLnJvdyxcbiAgICAgICAgICAgICAgICBjb2x1bW5TdGFydDogbm9kZS5jb2x1bW4sXG4gICAgICAgICAgICAgICAgY29sdW1uRW5kOiBub2RlLmNvbHVtblxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgcm93LCBjb2x1bW4gfSA9IHN0YXRlLm5vZGU7XG4gICAgICAgIGNvbnN0IHJvd1N0YXJ0ID0gTWF0aC5taW4obm9kZS5yb3csIHJvdyk7XG4gICAgICAgIGNvbnN0IHJvd0VuZCA9IE1hdGgubWF4KG5vZGUucm93LCByb3cpO1xuICAgICAgICBjb25zdCBjb2x1bW5TdGFydCA9IE1hdGgubWluKG5vZGUuY29sdW1uLCBjb2x1bW4pO1xuICAgICAgICBjb25zdCBjb2x1bW5FbmQgPSBNYXRoLm1heChub2RlLmNvbHVtbiwgY29sdW1uKTtcblxuICAgICAgICByZXR1cm4geyByb3dTdGFydCwgcm93RW5kLCBjb2x1bW5TdGFydCwgY29sdW1uRW5kIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBwdWJsaWMga2V5Ym9hcmRTdGF0ZU9uS2V5ZG93bihub2RlOiBJU2VsZWN0aW9uTm9kZSwgc2hpZnQ6IGJvb2xlYW4sIHNoaWZ0VGFiOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmRTdGF0ZS5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0aGlzLmluaXRQb2ludGVyU3RhdGUoKTtcbiAgICAgICAgdGhpcy5rZXlib2FyZFN0YXRlLnNoaWZ0ID0gc2hpZnQgJiYgIXNoaWZ0VGFiO1xuICAgICAgICBpZiAoIXRoaXMuZ3JpZC5uYXZpZ2F0aW9uLmlzRGF0YVJvdyhub2RlLnJvdykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBLYiBuYXZpZ2F0aW9uIHdpdGggc2hpZnQgYW5kIG5vIHByZXZpb3VzIG5vZGUuXG4gICAgICAgIC8vIENsZWFyIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBpbml0IHRoZSBzdGFydCBub2RlLlxuICAgICAgICBpZiAodGhpcy5rZXlib2FyZFN0YXRlLnNoaWZ0ICYmICF0aGlzLmtleWJvYXJkU3RhdGUubm9kZSkge1xuICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5rZXlib2FyZFN0YXRlLm5vZGUgPSBPYmplY3QuYXNzaWduKHt9LCBub2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBrZXlib2FyZFN0YXRlT25Gb2N1cyhub2RlOiBJU2VsZWN0aW9uTm9kZSwgZW1pdHRlcjogRXZlbnRFbWl0dGVyPEdyaWRTZWxlY3Rpb25SYW5nZT4sIGRvbSk6IHZvaWQge1xuICAgICAgICBjb25zdCBrYlN0YXRlID0gdGhpcy5rZXlib2FyZFN0YXRlO1xuXG4gICAgICAgIC8vIEZvY3VzIHRyaWdnZXJlZCBieSBrZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgICAgIGlmIChrYlN0YXRlLmFjdGl2ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucGxhdGZvcm0uaXNDaHJvbWl1bSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vdmVTZWxlY3Rpb25DaHJvbWUoZG9tKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFN0YXJ0IGdlbmVyYXRpbmcgYSByYW5nZSBpZiBzaGlmdCBpcyBob2xkXG4gICAgICAgICAgICBpZiAoa2JTdGF0ZS5zaGlmdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1NlbGVjdChub2RlLCBrYlN0YXRlKTtcbiAgICAgICAgICAgICAgICBrYlN0YXRlLnJhbmdlID0gdGhpcy5nZW5lcmF0ZVJhbmdlKG5vZGUsIGtiU3RhdGUpO1xuICAgICAgICAgICAgICAgIGVtaXR0ZXIuZW1pdCh0aGlzLmdlbmVyYXRlUmFuZ2Uobm9kZSwga2JTdGF0ZSkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pbml0S2V5Ym9hcmRTdGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICAgICAgdGhpcy5hZGQobm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcG9pbnRlckRvd24obm9kZTogSVNlbGVjdGlvbk5vZGUsIHNoaWZ0OiBib29sZWFuLCBjdHJsOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWRkS2V5Ym9hcmRSYW5nZSgpO1xuICAgICAgICB0aGlzLmluaXRLZXlib2FyZFN0YXRlKCk7XG4gICAgICAgIHRoaXMucG9pbnRlclN0YXRlLmN0cmwgPSBjdHJsO1xuICAgICAgICB0aGlzLnBvaW50ZXJTdGF0ZS5zaGlmdCA9IHNoaWZ0O1xuICAgICAgICB0aGlzLnBvaW50ZXJFdmVudEluR3JpZEJvZHkgPSB0cnVlO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMucG9pbnRlck9yaWdpbkhhbmRsZXIpO1xuXG4gICAgICAgIC8vIE5vIGN0cmwga2V5IHByZXNzZWQgLSBubyBtdWx0aXBsZSBzZWxlY3Rpb25cbiAgICAgICAgaWYgKCFjdHJsKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2hpZnQpIHtcbiAgICAgICAgICAgIC8vIE5vIHByZXZpb3VzbHkgJ2NsaWNrZWQnIG5vZGUuIFVzZSB0aGUgbGFzdCBhY3RpdmUgbm9kZS5cbiAgICAgICAgICAgIGlmICghdGhpcy5wb2ludGVyU3RhdGUubm9kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9pbnRlclN0YXRlLm5vZGUgPSB0aGlzLmFjdGl2ZUVsZW1lbnQgfHwgbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucG9pbnRlckRvd25TaGlmdEtleShub2RlKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbW92ZVJhbmdlTWV0YShub2RlKTtcbiAgICAgICAgdGhpcy5wb2ludGVyU3RhdGUubm9kZSA9IG5vZGU7XG4gICAgfVxuXG4gICAgcHVibGljIHBvaW50ZXJEb3duU2hpZnRLZXkobm9kZTogSVNlbGVjdGlvbk5vZGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB0aGlzLnNlbGVjdFJhbmdlKG5vZGUsIHRoaXMucG9pbnRlclN0YXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWVyZ2VNYXAodGFyZ2V0OiBNYXA8bnVtYmVyLCBTZXQ8bnVtYmVyPj4sIHNvdXJjZTogTWFwPG51bWJlciwgU2V0PG51bWJlcj4+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGl0ZXJhdG9yID0gc291cmNlLmVudHJpZXMoKTtcbiAgICAgICAgbGV0IHBhaXIgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgIGxldCBrZXk6IG51bWJlcjtcbiAgICAgICAgbGV0IHZhbHVlOiBTZXQ8bnVtYmVyPjtcblxuICAgICAgICB3aGlsZSAoIXBhaXIuZG9uZSkge1xuICAgICAgICAgICAgW2tleSwgdmFsdWVdID0gcGFpci52YWx1ZTtcbiAgICAgICAgICAgIGlmICh0YXJnZXQuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRhcmdldC5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKHJlY29yZCA9PiBuZXdWYWx1ZS5hZGQocmVjb3JkKSk7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNldChrZXksIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhaXIgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcG9pbnRlckVudGVyKG5vZGU6IElTZWxlY3Rpb25Ob2RlLCBldmVudDogUG9pbnRlckV2ZW50KTogYm9vbGVhbiB7XG4gICAgICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9wb2ludGVyZXZlbnRzLyN0aGUtYnV0dG9uLXByb3BlcnR5XG4gICAgICAgIHRoaXMuZHJhZ01vZGUgPSAoZXZlbnQuYnV0dG9ucyA9PT0gMSAmJiAoZXZlbnQuYnV0dG9uID09PSAtMSB8fCBldmVudC5idXR0b24gPT09IDApKSAmJiB0aGlzLnBvaW50ZXJFdmVudEluR3JpZEJvZHk7XG4gICAgICAgIGlmICghdGhpcy5kcmFnTW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2xlYXJUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIHVzZXJzIHRyaWdnZXJzIGEgZHJhZy1saWtlIGV2ZW50IGJ5IGZpcnN0IGNsaWNraW5nIG91dHNpZGUgdGhlIGdyaWQgY2VsbHNcbiAgICAgICAgLy8gYW5kIHRoZW4gZW50ZXJzIGluIHRoZSBncmlkIGJvZHkgd2UgbWF5IG5vdCBoYXZlIGEgaW5pdGlhbCBwb2ludGVyIHN0YXJ0aW5nIG5vZGUuXG4gICAgICAgIC8vIEFzc3VtZSB0aGUgZmlyc3QgcG9pbnRlcmVudGVyIG5vZGUgaXMgd2hlcmUgd2Ugc3RhcnQuXG4gICAgICAgIGlmICghdGhpcy5wb2ludGVyU3RhdGUubm9kZSkge1xuICAgICAgICAgICAgdGhpcy5wb2ludGVyU3RhdGUubm9kZSA9IG5vZGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5wb2ludGVyU3RhdGUuY3RybCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RSYW5nZShub2RlLCB0aGlzLnBvaW50ZXJTdGF0ZSwgdGhpcy50ZW1wKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ1NlbGVjdChub2RlLCB0aGlzLnBvaW50ZXJTdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHBvaW50ZXJVcChub2RlOiBJU2VsZWN0aW9uTm9kZSwgZW1pdHRlcjogRXZlbnRFbWl0dGVyPEdyaWRTZWxlY3Rpb25SYW5nZT4pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZHJhZ01vZGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdG9yZVRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMuYWRkUmFuZ2VNZXRhKG5vZGUsIHRoaXMucG9pbnRlclN0YXRlKTtcbiAgICAgICAgICAgIHRoaXMubWVyZ2VNYXAodGhpcy5zZWxlY3Rpb24sIHRoaXMudGVtcCk7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuVGFzaygoKSA9PiBlbWl0dGVyLmVtaXQodGhpcy5nZW5lcmF0ZVJhbmdlKG5vZGUsIHRoaXMucG9pbnRlclN0YXRlKSkpO1xuICAgICAgICAgICAgdGhpcy50ZW1wLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmRyYWdNb2RlID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBvaW50ZXJTdGF0ZS5zaGlmdCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhclRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMucmVzdG9yZVRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMuYWRkUmFuZ2VNZXRhKG5vZGUsIHRoaXMucG9pbnRlclN0YXRlKTtcbiAgICAgICAgICAgIGVtaXR0ZXIuZW1pdCh0aGlzLmdlbmVyYXRlUmFuZ2Uobm9kZSwgdGhpcy5wb2ludGVyU3RhdGUpKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucG9pbnRlckV2ZW50SW5HcmlkQm9keSkge1xuICAgICAgICAgICAgdGhpcy5hZGQobm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RSYW5nZShub2RlOiBJU2VsZWN0aW9uTm9kZSwgc3RhdGU6IFNlbGVjdGlvblN0YXRlLCBjb2xsZWN0aW9uOiBNYXA8bnVtYmVyLCBTZXQ8bnVtYmVyPj4gPSB0aGlzLnNlbGVjdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAoY29sbGVjdGlvbiA9PT0gdGhpcy50ZW1wKSB7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyByb3dTdGFydCwgcm93RW5kLCBjb2x1bW5TdGFydCwgY29sdW1uRW5kIH0gPSB0aGlzLmdlbmVyYXRlUmFuZ2Uobm9kZSwgc3RhdGUpO1xuICAgICAgICBmb3IgKGxldCBpID0gcm93U3RhcnQ7IGkgPD0gcm93RW5kOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSBjb2x1bW5TdGFydCBhcyBudW1iZXI7IGogPD0gY29sdW1uRW5kOyBqKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoY29sbGVjdGlvbi5oYXMoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbi5nZXQoaSkuYWRkKGopO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24uc2V0KGksIG5ldyBTZXQ8bnVtYmVyPigpKS5nZXQoaSkuYWRkKGopO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBkcmFnU2VsZWN0KG5vZGU6IElTZWxlY3Rpb25Ob2RlLCBzdGF0ZTogU2VsZWN0aW9uU3RhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnBvaW50ZXJTdGF0ZS5jdHJsKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0UmFuZ2Uobm9kZSwgc3RhdGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcihjbGVhckFjcml2ZUVsID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNsZWFyQWNyaXZlRWwpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy50ZW1wLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuX3Jhbmdlcy5jbGVhcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhclRleHRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKHNlbGVjdGlvbi5yYW5nZUNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3Rpb25SYW5nZSA9IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uUmFuZ2UuY29sbGFwc2UodHJ1ZSk7XG4gICAgICAgICAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzdG9yZVRleHRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKCFzZWxlY3Rpb24ucmFuZ2VDb3VudCkge1xuICAgICAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHRoaXMuX3NlbGVjdGlvblJhbmdlIHx8IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYXJyYXkgb2YgdGhlIHNlbGVjdGVkIHJvdyBpZCdzLiAqL1xuICAgIHB1YmxpYyBnZXRTZWxlY3RlZFJvd3MoKTogQXJyYXk8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd1NlbGVjdGlvbi5zaXplID8gQXJyYXkuZnJvbSh0aGlzLnJvd1NlbGVjdGlvbi5rZXlzKCkpIDogW107XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgYXJyYXkgb2YgdGhlIHJvd3MgaW4gaW5kZXRlcm1pbmF0ZSBzdGF0ZS4gKi9cbiAgICBwdWJsaWMgZ2V0SW5kZXRlcm1pbmF0ZVJvd3MoKTogQXJyYXk8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV0ZXJtaW5hdGVSb3dzLnNpemUgPyBBcnJheS5mcm9tKHRoaXMuaW5kZXRlcm1pbmF0ZVJvd3Mua2V5cygpKSA6IFtdO1xuICAgIH1cblxuICAgIC8qKiBDbGVhcnMgcm93IHNlbGVjdGlvbiwgaWYgZmlsdGVyaW5nIGlzIGFwcGxpZWQgY2xlYXJzIG9ubHkgc2VsZWN0ZWQgcm93cyBmcm9tIGZpbHRlcmVkIGRhdGEuICovXG4gICAgcHVibGljIGNsZWFyUm93U2VsZWN0aW9uKGV2ZW50Pyk6IHZvaWQge1xuICAgICAgICBjb25zdCByZW1vdmVkUmVjID0gdGhpcy5pc0ZpbHRlcmluZ0FwcGxpZWQoKSA/XG4gICAgICAgICAgICB0aGlzLmdldFJvd0lEcyh0aGlzLmFsbERhdGEpLmZpbHRlcihySUQgPT4gdGhpcy5pc1Jvd1NlbGVjdGVkKHJJRCkpIDogdGhpcy5nZXRTZWxlY3RlZFJvd3MoKTtcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gdGhpcy5pc0ZpbHRlcmluZ0FwcGxpZWQoKSA/IHRoaXMuZ2V0U2VsZWN0ZWRSb3dzKCkuZmlsdGVyKHggPT4gIXJlbW92ZWRSZWMuaW5jbHVkZXMoeCkpIDogW107XG4gICAgICAgIHRoaXMuZW1pdFJvd1NlbGVjdGlvbkV2ZW50KG5ld1NlbGVjdGlvbiwgW10sIHJlbW92ZWRSZWMsIGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogU2VsZWN0IGFsbCByb3dzLCBpZiBmaWx0ZXJpbmcgaXMgYXBwbGllZCBzZWxlY3Qgb25seSBmcm9tIGZpbHRlcmVkIGRhdGEuICovXG4gICAgcHVibGljIHNlbGVjdEFsbFJvd3MoZXZlbnQ/KSB7XG4gICAgICAgIGNvbnN0IGFsbFJvd0lEcyA9IHRoaXMuZ2V0Um93SURzKHRoaXMuYWxsRGF0YSk7XG4gICAgICAgIGNvbnN0IGFkZGVkUm93cyA9IGFsbFJvd0lEcy5maWx0ZXIoKHJJRCkgPT4gIXRoaXMuaXNSb3dTZWxlY3RlZChySUQpKTtcbiAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gdGhpcy5yb3dTZWxlY3Rpb24uc2l6ZSA/IHRoaXMuZ2V0U2VsZWN0ZWRSb3dzKCkuY29uY2F0KGFkZGVkUm93cykgOiBhZGRlZFJvd3M7XG4gICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZVJvd3MuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2UubmV4dCgpO1xuICAgICAgICB0aGlzLmVtaXRSb3dTZWxlY3Rpb25FdmVudChuZXdTZWxlY3Rpb24sIGFkZGVkUm93cywgW10sIGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogU2VsZWN0IHRoZSBzcGVjaWZpZWQgcm93IGFuZCBlbWl0IGV2ZW50LiAqL1xuICAgIHB1YmxpYyBzZWxlY3RSb3dCeUlkKHJvd0lELCBjbGVhclByZXZTZWxlY3Rpb24/LCBldmVudD8pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmdyaWQuaXNSb3dTZWxlY3RhYmxlIHx8IHRoaXMuaXNSb3dEZWxldGVkKHJvd0lEKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNsZWFyUHJldlNlbGVjdGlvbiA9ICF0aGlzLmdyaWQuaXNNdWx0aVJvd1NlbGVjdGlvbkVuYWJsZWQgfHwgY2xlYXJQcmV2U2VsZWN0aW9uO1xuXG4gICAgICAgIGNvbnN0IG5ld1NlbGVjdGlvbiA9IGNsZWFyUHJldlNlbGVjdGlvbiA/IFtyb3dJRF0gOiB0aGlzLmdldFNlbGVjdGVkUm93cygpLmluZGV4T2Yocm93SUQpICE9PSAtMSA/XG4gICAgICAgICAgICB0aGlzLmdldFNlbGVjdGVkUm93cygpIDogWy4uLnRoaXMuZ2V0U2VsZWN0ZWRSb3dzKCksIHJvd0lEXTtcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IGNsZWFyUHJldlNlbGVjdGlvbiA/IHRoaXMuZ2V0U2VsZWN0ZWRSb3dzKCkgOiBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2UubmV4dCgpO1xuICAgICAgICB0aGlzLmVtaXRSb3dTZWxlY3Rpb25FdmVudChuZXdTZWxlY3Rpb24sIFtyb3dJRF0sIHJlbW92ZWQsIGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogRGVzZWxlY3QgdGhlIHNwZWNpZmllZCByb3cgYW5kIGVtaXQgZXZlbnQuICovXG4gICAgcHVibGljIGRlc2VsZWN0Um93KHJvd0lELCBldmVudD8pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzUm93U2VsZWN0ZWQocm93SUQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3RlZFJvd3MoKS5maWx0ZXIociA9PiByICE9PSByb3dJRCk7XG4gICAgICAgIGlmICh0aGlzLnJvd1NlbGVjdGlvbi5zaXplICYmIHRoaXMucm93U2VsZWN0aW9uLmhhcyhyb3dJRCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ2hhbmdlLm5leHQoKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdFJvd1NlbGVjdGlvbkV2ZW50KG5ld1NlbGVjdGlvbiwgW10sIFtyb3dJRF0sIGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBTZWxlY3Qgc3BlY2lmaWVkIHJvd3MuIE5vIGV2ZW50IGlzIGVtaXR0ZWQuICovXG4gICAgcHVibGljIHNlbGVjdFJvd3NXaXRoTm9FdmVudChyb3dJRHM6IGFueVtdLCBjbGVhclByZXZTZWxlY3Rpb24/KTogdm9pZCB7XG4gICAgICAgIGlmIChjbGVhclByZXZTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMucm93U2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgcm93SURzLmZvckVhY2gocm93SUQgPT4gdGhpcy5yb3dTZWxlY3Rpb24uYWRkKHJvd0lEKSk7XG4gICAgICAgIHRoaXMuYWxsUm93c1NlbGVjdGVkID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUm93c0NoYW5nZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIERlc2VsZWN0IHNwZWNpZmllZCByb3dzLiBObyBldmVudCBpcyBlbWl0dGVkLiAqL1xuICAgIHB1YmxpYyBkZXNlbGVjdFJvd3NXaXRoTm9FdmVudChyb3dJRHM6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHJvd0lEcy5mb3JFYWNoKHJvd0lEID0+IHRoaXMucm93U2VsZWN0aW9uLmRlbGV0ZShyb3dJRCkpO1xuICAgICAgICB0aGlzLmFsbFJvd3NTZWxlY3RlZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2UubmV4dCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1Jvd1NlbGVjdGVkKHJvd0lEKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd1NlbGVjdGlvbi5zaXplID4gMCAmJiB0aGlzLnJvd1NlbGVjdGlvbi5oYXMocm93SUQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1Jvd0luSW5kZXRlcm1pbmF0ZVN0YXRlKHJvd0lEKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV0ZXJtaW5hdGVSb3dzLnNpemUgPiAwICYmIHRoaXMuaW5kZXRlcm1pbmF0ZVJvd3MuaGFzKHJvd0lEKTtcbiAgICB9XG5cbiAgICAvKiogU2VsZWN0IHJhbmdlIGZyb20gbGFzdCBzZWxlY3RlZCByb3cgdG8gdGhlIGN1cnJlbnQgc3BlY2lmaWVkIHJvdy4gKi9cbiAgICBwdWJsaWMgc2VsZWN0TXVsdGlwbGVSb3dzKHJvd0lELCByb3dEYXRhLCBldmVudD8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hbGxSb3dzU2VsZWN0ZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGlmICghdGhpcy5yb3dTZWxlY3Rpb24uc2l6ZSB8fCB0aGlzLmlzUm93RGVsZXRlZChyb3dJRCkpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Um93QnlJZChyb3dJRCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZ3JpZERhdGEgPSB0aGlzLmFsbERhdGE7XG4gICAgICAgIGNvbnN0IGxhc3RSb3dJRCA9IHRoaXMuZ2V0U2VsZWN0ZWRSb3dzKClbdGhpcy5yb3dTZWxlY3Rpb24uc2l6ZSAtIDFdO1xuICAgICAgICBjb25zdCBjdXJySW5kZXggPSBncmlkRGF0YS5pbmRleE9mKHRoaXMuZ2V0Um93RGF0YUJ5SWQobGFzdFJvd0lEKSk7XG4gICAgICAgIGNvbnN0IG5ld0luZGV4ID0gZ3JpZERhdGEuaW5kZXhPZihyb3dEYXRhKTtcbiAgICAgICAgY29uc3Qgcm93cyA9IGdyaWREYXRhLnNsaWNlKE1hdGgubWluKGN1cnJJbmRleCwgbmV3SW5kZXgpLCBNYXRoLm1heChjdXJySW5kZXgsIG5ld0luZGV4KSArIDEpO1xuXG4gICAgICAgIGNvbnN0IGFkZGVkID0gdGhpcy5nZXRSb3dJRHMocm93cykuZmlsdGVyKHJJRCA9PiAhdGhpcy5pc1Jvd1NlbGVjdGVkKHJJRCkpO1xuICAgICAgICBjb25zdCBuZXdTZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGVkUm93cygpLmNvbmNhdChhZGRlZCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ2hhbmdlLm5leHQoKTtcbiAgICAgICAgdGhpcy5lbWl0Um93U2VsZWN0aW9uRXZlbnQobmV3U2VsZWN0aW9uLCBhZGRlZCwgW10sIGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXJlQWxsUm93U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5ncmlkLmRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hbGxSb3dzU2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWxsUm93c1NlbGVjdGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0YUl0ZW1zSUQgPSB0aGlzLmdldFJvd0lEcyh0aGlzLmFsbERhdGEpO1xuICAgICAgICByZXR1cm4gdGhpcy5hbGxSb3dzU2VsZWN0ZWQgPSBNYXRoLm1pbih0aGlzLnJvd1NlbGVjdGlvbi5zaXplLCBkYXRhSXRlbXNJRC5sZW5ndGgpID4gMCAmJlxuICAgICAgICAgICAgbmV3IFNldChBcnJheS5mcm9tKHRoaXMucm93U2VsZWN0aW9uLnZhbHVlcygpKS5jb25jYXQoZGF0YUl0ZW1zSUQpKS5zaXplID09PSB0aGlzLnJvd1NlbGVjdGlvbi5zaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNTb21lUm93U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkRGF0YSA9IHRoaXMuaXNGaWx0ZXJpbmdBcHBsaWVkKCkgP1xuICAgICAgICAgICAgdGhpcy5nZXRSb3dJRHModGhpcy5ncmlkLmZpbHRlcmVkRGF0YSkuc29tZShySUQgPT4gdGhpcy5pc1Jvd1NlbGVjdGVkKHJJRCkpIDogdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMucm93U2VsZWN0aW9uLnNpemUgPiAwICYmIGZpbHRlcmVkRGF0YSAmJiAhdGhpcy5hcmVBbGxSb3dTZWxlY3RlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmlsdGVyZWRTZWxlY3RlZFJvd0lkcygpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRmlsdGVyaW5nQXBwbGllZCgpID9cbiAgICAgICAgICAgIHRoaXMuZ2V0Um93SURzKHRoaXMuYWxsRGF0YSkuZmlsdGVyKHJvd0lEID0+IHRoaXMuaXNSb3dTZWxlY3RlZChyb3dJRCkpIDpcbiAgICAgICAgICAgIHRoaXMuZ2V0U2VsZWN0ZWRSb3dzKCkuZmlsdGVyKHJvd0lEID0+ICF0aGlzLmlzUm93RGVsZXRlZChyb3dJRCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbWl0Um93U2VsZWN0aW9uRXZlbnQobmV3U2VsZWN0aW9uLCBhZGRlZCwgcmVtb3ZlZCwgZXZlbnQ/KTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGN1cnJTZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGVkUm93cygpO1xuICAgICAgICBpZiAodGhpcy5hcmVFcXVhbENvbGxlY3Rpb25zKGN1cnJTZWxlY3Rpb24sIG5ld1NlbGVjdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFyZ3MgPSB7XG4gICAgICAgICAgICBvbGRTZWxlY3Rpb246IGN1cnJTZWxlY3Rpb24sIG5ld1NlbGVjdGlvbixcbiAgICAgICAgICAgIGFkZGVkLCByZW1vdmVkLCBldmVudCwgY2FuY2VsOiBmYWxzZVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmdyaWQucm93U2VsZWN0ZWQuZW1pdChhcmdzKTtcbiAgICAgICAgaWYgKGFyZ3MuY2FuY2VsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3RSb3dzV2l0aE5vRXZlbnQoYXJncy5uZXdTZWxlY3Rpb24sIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSb3dEYXRhQnlJZChyb3dJRCk6IGFueSB7XG4gICAgICAgIGlmICghdGhpcy5ncmlkLnByaW1hcnlLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiByb3dJRDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByb3dJbmRleCA9IHRoaXMuZ2V0Um93SURzKHRoaXMuZ3JpZC5ncmlkQVBJLmdldF9hbGxfZGF0YSh0cnVlKSkuaW5kZXhPZihyb3dJRCk7XG4gICAgICAgIHJldHVybiByb3dJbmRleCA8IDAgPyB7fSA6IHRoaXMuZ3JpZC5ncmlkQVBJLmdldF9hbGxfZGF0YSh0cnVlKVtyb3dJbmRleF07XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvd0lEcyhkYXRhKTogQXJyYXk8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucHJpbWFyeUtleSAmJiBkYXRhLmxlbmd0aCA/IGRhdGEubWFwKHJlYyA9PiByZWNbdGhpcy5ncmlkLnByaW1hcnlLZXldKSA6IGRhdGE7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFySGVhZGVyQ0JTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hbGxSb3dzU2VsZWN0ZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIENsZWFyIHJvd1NlbGVjdGlvbiBhbmQgdXBkYXRlIGNoZWNrYm94IHN0YXRlICovXG4gICAgcHVibGljIGNsZWFyQWxsU2VsZWN0ZWRSb3dzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJvd1NlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVSb3dzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuY2xlYXJIZWFkZXJDQlN0YXRlKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzQ2hhbmdlLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhbGwgZGF0YSBpbiB0aGUgZ3JpZCwgd2l0aCBhcHBsaWVkIGZpbHRlcmluZyBhbmQgc29ydGluZyBhbmQgd2l0aG91dCBkZWxldGVkIHJvd3MuICovXG4gICAgcHVibGljIGdldCBhbGxEYXRhKCk6IEFycmF5PGFueT4ge1xuICAgICAgICBsZXQgYWxsRGF0YTtcbiAgICAgICAgaWYgKHRoaXMuaXNGaWx0ZXJpbmdBcHBsaWVkKCkgfHwgdGhpcy5ncmlkLnNvcnRpbmdFeHByZXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGFsbERhdGEgPSB0aGlzLmdyaWQucGlubmVkUmVjb3Jkc0NvdW50ID8gdGhpcy5ncmlkLl9maWx0ZXJlZFNvcnRlZFVucGlubmVkRGF0YSA6IHRoaXMuZ3JpZC5maWx0ZXJlZFNvcnRlZERhdGE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhbGxEYXRhID0gdGhpcy5ncmlkLmdyaWRBUEkuZ2V0X2FsbF9kYXRhKHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhbGxEYXRhLmZpbHRlcihyRGF0YSA9PiAhdGhpcy5pc1Jvd0RlbGV0ZWQodGhpcy5ncmlkLmdyaWRBUEkuZ2V0X3Jvd19pZChyRGF0YSkpKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhcnJheSBvZiB0aGUgc2VsZWN0ZWQgY29sdW1ucyBmaWVsZHMuICovXG4gICAgcHVibGljIGdldFNlbGVjdGVkQ29sdW1ucygpOiBBcnJheTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uU2VsZWN0aW9uLnNpemUgPyBBcnJheS5mcm9tKHRoaXMuY29sdW1uU2VsZWN0aW9uLmtleXMoKSkgOiBbXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb2x1bW5TZWxlY3RlZChmaWVsZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtblNlbGVjdGlvbi5zaXplID4gMCAmJiB0aGlzLmNvbHVtblNlbGVjdGlvbi5oYXMoZmllbGQpO1xuICAgIH1cblxuICAgIC8qKiBTZWxlY3QgdGhlIHNwZWNpZmllZCBjb2x1bW4gYW5kIGVtaXQgZXZlbnQuICovXG4gICAgcHVibGljIHNlbGVjdENvbHVtbihmaWVsZDogc3RyaW5nLCBjbGVhclByZXZTZWxlY3Rpb24/LCBzZWxlY3RDb2x1bW5zUmFuZ2U/LCBldmVudD8pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGVDb2x1bW4gPSB0aGlzLmNvbHVtbnNTdGF0ZS5maWVsZCA/IHRoaXMuZ3JpZC5nZXRDb2x1bW5CeU5hbWUodGhpcy5jb2x1bW5zU3RhdGUuZmllbGQpIDogbnVsbDtcbiAgICAgICAgaWYgKCFldmVudCB8fCAhc3RhdGVDb2x1bW4gfHwgc3RhdGVDb2x1bW4udmlzaWJsZUluZGV4IDwgMCB8fCAhc2VsZWN0Q29sdW1uc1JhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnNTdGF0ZS5maWVsZCA9IGZpZWxkO1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zU3RhdGUucmFuZ2UgPSBbXTtcblxuICAgICAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uID0gY2xlYXJQcmV2U2VsZWN0aW9uID8gW2ZpZWxkXSA6IHRoaXMuZ2V0U2VsZWN0ZWRDb2x1bW5zKCkuaW5kZXhPZihmaWVsZCkgIT09IC0xID9cbiAgICAgICAgICAgICAgICB0aGlzLmdldFNlbGVjdGVkQ29sdW1ucygpIDogWy4uLnRoaXMuZ2V0U2VsZWN0ZWRDb2x1bW5zKCksIGZpZWxkXTtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZWQgPSBjbGVhclByZXZTZWxlY3Rpb24gPyB0aGlzLmdldFNlbGVjdGVkQ29sdW1ucygpLmZpbHRlcihjb2xGaWVsZCA9PiBjb2xGaWVsZCAhPT0gZmllbGQpIDogW107XG4gICAgICAgICAgICBjb25zdCBhZGRlZCA9IHRoaXMuaXNDb2x1bW5TZWxlY3RlZChmaWVsZCkgPyBbXSA6IFtmaWVsZF07XG4gICAgICAgICAgICB0aGlzLmVtaXRDb2x1bW5TZWxlY3Rpb25FdmVudChuZXdTZWxlY3Rpb24sIGFkZGVkLCByZW1vdmVkLCBldmVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0Q29sdW1uc1JhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdENvbHVtbnNSYW5nZShmaWVsZCwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNlbGVjdCBzcGVjaWZpZWQgY29sdW1ucy4gQW5kIGVtaXQgZXZlbnQuICovXG4gICAgcHVibGljIHNlbGVjdENvbHVtbnMoZmllbGRzOiBzdHJpbmdbXSwgY2xlYXJQcmV2U2VsZWN0aW9uPywgc2VsZWN0Q29sdW1uc1JhbmdlPywgZXZlbnQ/KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSBmaWVsZHMubWFwKGYgPT4gdGhpcy5ncmlkLmdldENvbHVtbkJ5TmFtZShmKSkuc29ydCgoYSwgYikgPT4gYS52aXNpYmxlSW5kZXggLSBiLnZpc2libGVJbmRleCk7XG4gICAgICAgIGNvbnN0IHN0YXRlQ29sdW1uID0gdGhpcy5jb2x1bW5zU3RhdGUuZmllbGQgPyB0aGlzLmdyaWQuZ2V0Q29sdW1uQnlOYW1lKHRoaXMuY29sdW1uc1N0YXRlLmZpZWxkKSA6IG51bGw7XG4gICAgICAgIGlmICghc3RhdGVDb2x1bW4gfHwgc3RhdGVDb2x1bW4udmlzaWJsZUluZGV4IDwgMCB8fCAhc2VsZWN0Q29sdW1uc1JhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnNTdGF0ZS5maWVsZCA9IGNvbHVtbnNbMF0gPyBjb2x1bW5zWzBdLmZpZWxkIDogbnVsbDtcbiAgICAgICAgICAgIHRoaXMuY29sdW1uc1N0YXRlLnJhbmdlID0gW107XG5cbiAgICAgICAgICAgIGNvbnN0IGFkZGVkID0gZmllbGRzLmZpbHRlcihjb2xGaWVsZCA9PiAhdGhpcy5pc0NvbHVtblNlbGVjdGVkKGNvbEZpZWxkKSk7XG4gICAgICAgICAgICBjb25zdCByZW1vdmVkID0gY2xlYXJQcmV2U2VsZWN0aW9uID8gdGhpcy5nZXRTZWxlY3RlZENvbHVtbnMoKS5maWx0ZXIoY29sRmllbGQgPT4gZmllbGRzLmluZGV4T2YoY29sRmllbGQpID09PSAtMSkgOiBbXTtcbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGlvbiA9IGNsZWFyUHJldlNlbGVjdGlvbiA/IGZpZWxkcyA6IHRoaXMuZ2V0U2VsZWN0ZWRDb2x1bW5zKCkuY29uY2F0KGFkZGVkKTtcblxuICAgICAgICAgICAgdGhpcy5lbWl0Q29sdW1uU2VsZWN0aW9uRXZlbnQobmV3U2VsZWN0aW9uLCBhZGRlZCwgcmVtb3ZlZCwgZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZmlsZWRTdGFydCA9IHN0YXRlQ29sdW1uLnZpc2libGVJbmRleCA+XG4gICAgICAgICAgICAgICAgY29sdW1uc1tjb2x1bW5zLmxlbmd0aCAtIDFdLnZpc2libGVJbmRleCA/IGNvbHVtbnNbMF0uZmllbGQgOiBjb2x1bW5zW2NvbHVtbnMubGVuZ3RoIC0gMV0uZmllbGQ7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdENvbHVtbnNSYW5nZShmaWxlZFN0YXJ0LCBldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogU2VsZWN0IHJhbmdlIGZyb20gbGFzdCBjbGlja2VkIGNvbHVtbiB0byB0aGUgY3VycmVudCBzcGVjaWZpZWQgY29sdW1uLiAqL1xuICAgIHB1YmxpYyBzZWxlY3RDb2x1bW5zUmFuZ2UoZmllbGQ6IHN0cmluZywgZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VyckluZGV4ID0gdGhpcy5ncmlkLmdldENvbHVtbkJ5TmFtZSh0aGlzLmNvbHVtbnNTdGF0ZS5maWVsZCkudmlzaWJsZUluZGV4O1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IHRoaXMuZ3JpZC5jb2x1bW5Ub1Zpc2libGVJbmRleChmaWVsZCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbnNGaWVsZHMgPSB0aGlzLmdyaWQudmlzaWJsZUNvbHVtbnNcbiAgICAgICAgICAgIC5maWx0ZXIoYyA9PiAhYy5jb2x1bW5Hcm91cClcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnZpc2libGVJbmRleCAtIGIudmlzaWJsZUluZGV4KVxuICAgICAgICAgICAgLnNsaWNlKE1hdGgubWluKGN1cnJJbmRleCwgbmV3SW5kZXgpLCBNYXRoLm1heChjdXJySW5kZXgsIG5ld0luZGV4KSArIDEpXG4gICAgICAgICAgICAuZmlsdGVyKGNvbCA9PiBjb2wuc2VsZWN0YWJsZSkubWFwKGNvbCA9PiBjb2wuZmllbGQpO1xuICAgICAgICBjb25zdCByZW1vdmVkID0gW107XG4gICAgICAgIGNvbnN0IG9sZEFkZGVkID0gW107XG4gICAgICAgIGNvbnN0IGFkZGVkID0gY29sdW1uc0ZpZWxkcy5maWx0ZXIoY29sRmllbGQgPT4gIXRoaXMuaXNDb2x1bW5TZWxlY3RlZChjb2xGaWVsZCkpO1xuICAgICAgICB0aGlzLmNvbHVtbnNTdGF0ZS5yYW5nZS5mb3JFYWNoKGYgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbHVtbnNGaWVsZHMuaW5kZXhPZihmKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVkLnB1c2goZik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9sZEFkZGVkLnB1c2goZik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbHVtbnNTdGF0ZS5yYW5nZSA9IGNvbHVtbnNGaWVsZHMuZmlsdGVyKGNvbEZpZWxkID0+ICF0aGlzLmlzQ29sdW1uU2VsZWN0ZWQoY29sRmllbGQpIHx8IG9sZEFkZGVkLmluZGV4T2YoY29sRmllbGQpID4gLTEpO1xuICAgICAgICBjb25zdCBuZXdTZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGVkQ29sdW1ucygpLmNvbmNhdChhZGRlZCkuZmlsdGVyKGMgPT4gcmVtb3ZlZC5pbmRleE9mKGMpID09PSAtMSk7XG4gICAgICAgIHRoaXMuZW1pdENvbHVtblNlbGVjdGlvbkV2ZW50KG5ld1NlbGVjdGlvbiwgYWRkZWQsIHJlbW92ZWQsIGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogU2VsZWN0IHNwZWNpZmllZCBjb2x1bW5zLiBObyBldmVudCBpcyBlbWl0dGVkLiAqL1xuICAgIHB1YmxpYyBzZWxlY3RDb2x1bW5zV2l0aE5vRXZlbnQoZmllbGRzOiBzdHJpbmdbXSwgY2xlYXJQcmV2U2VsZWN0aW9uPyk6IHZvaWQge1xuICAgICAgICBpZiAoY2xlYXJQcmV2U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtblNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1uU2VsZWN0aW9uLmFkZChmaWVsZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBEZXNlbGVjdCB0aGUgc3BlY2lmaWVkIGNvbHVtbiBhbmQgZW1pdCBldmVudC4gKi9cbiAgICBwdWJsaWMgZGVzZWxlY3RDb2x1bW4oZmllbGQ6IHN0cmluZywgZXZlbnQ/KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdENvbHVtbnNTdGF0ZSgpO1xuICAgICAgICBjb25zdCBuZXdTZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGVkQ29sdW1ucygpLmZpbHRlcihjID0+IGMgIT09IGZpZWxkKTtcbiAgICAgICAgdGhpcy5lbWl0Q29sdW1uU2VsZWN0aW9uRXZlbnQobmV3U2VsZWN0aW9uLCBbXSwgW2ZpZWxkXSwgZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBEZXNlbGVjdCBzcGVjaWZpZWQgY29sdW1ucy4gTm8gZXZlbnQgaXMgZW1pdHRlZC4gKi9cbiAgICBwdWJsaWMgZGVzZWxlY3RDb2x1bW5zV2l0aE5vRXZlbnQoZmllbGRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB0aGlzLmNvbHVtblNlbGVjdGlvbi5kZWxldGUoZmllbGQpKTtcbiAgICB9XG5cbiAgICAvKiogRGVzZWxlY3Qgc3BlY2lmaWVkIGNvbHVtbnMuIEFuZCBlbWl0IGV2ZW50LiAqL1xuICAgIHB1YmxpYyBkZXNlbGVjdENvbHVtbnMoZmllbGRzOiBzdHJpbmdbXSwgZXZlbnQ/KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSB0aGlzLmdldFNlbGVjdGVkQ29sdW1ucygpLmZpbHRlcihjb2xGaWVsZCA9PiBmaWVsZHMuaW5kZXhPZihjb2xGaWVsZCkgPiAtMSk7XG4gICAgICAgIGNvbnN0IG5ld1NlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0ZWRDb2x1bW5zKCkuZmlsdGVyKGNvbEZpZWxkID0+IGZpZWxkcy5pbmRleE9mKGNvbEZpZWxkKSA9PT0gLTEpO1xuXG4gICAgICAgIHRoaXMuZW1pdENvbHVtblNlbGVjdGlvbkV2ZW50KG5ld1NlbGVjdGlvbiwgW10sIHJlbW92ZWQsIGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdENvbHVtblNlbGVjdGlvbkV2ZW50KG5ld1NlbGVjdGlvbiwgYWRkZWQsIHJlbW92ZWQsIGV2ZW50Pyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjdXJyU2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3RlZENvbHVtbnMoKTtcbiAgICAgICAgaWYgKHRoaXMuYXJlRXF1YWxDb2xsZWN0aW9ucyhjdXJyU2VsZWN0aW9uLCBuZXdTZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhcmdzID0ge1xuICAgICAgICAgICAgb2xkU2VsZWN0aW9uOiBjdXJyU2VsZWN0aW9uLCBuZXdTZWxlY3Rpb24sXG4gICAgICAgICAgICBhZGRlZCwgcmVtb3ZlZCwgZXZlbnQsIGNhbmNlbDogZmFsc2VcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ncmlkLmNvbHVtblNlbGVjdGVkLmVtaXQoYXJncyk7XG4gICAgICAgIGlmIChhcmdzLmNhbmNlbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0Q29sdW1uc1dpdGhOb0V2ZW50KGFyZ3MubmV3U2VsZWN0aW9uLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQ2xlYXIgY29sdW1uU2VsZWN0aW9uICovXG4gICAgcHVibGljIGNsZWFyQWxsU2VsZWN0ZWRDb2x1bW5zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtblNlbGVjdGlvbi5jbGVhcigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhcmVFcXVhbENvbGxlY3Rpb25zKGZpcnN0LCBzZWNvbmQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZpcnN0Lmxlbmd0aCA9PT0gc2Vjb25kLmxlbmd0aCAmJiBuZXcgU2V0KGZpcnN0LmNvbmNhdChzZWNvbmQpKS5zaXplID09PSBmaXJzdC5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogKOKVr8Kw4pahwrDvvInila/vuLUg4pS74pSB4pS7XG4gICAgICogQ2hyb21lIGFuZCBDaHJvbWl1bSBkb24ndCBjYXJlIGFib3V0IHRoZSBhY3RpdmVcbiAgICAgKiByYW5nZSBhZnRlciBrZXlib2FyZCBuYXZpZ2F0aW9uLCB0aHVzIHRoaXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfbW92ZVNlbGVjdGlvbkNocm9tZShub2RlOiBOb2RlKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICBjb25zdCByYW5nZSA9IG5ldyBSYW5nZSgpO1xuICAgICAgICByYW5nZS5zZWxlY3ROb2RlKG5vZGUpO1xuICAgICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTtcbiAgICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmlsdGVyaW5nQXBwbGllZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUuZW1wdHkodGhpcy5ncmlkLmZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSkgfHxcbiAgICAgICAgICAgICFGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUuZW1wdHkodGhpcy5ncmlkLmFkdmFuY2VkRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUm93RGVsZXRlZChyb3dJRCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmdyaWRBUEkucm93X2RlbGV0ZWRfdHJhbnNhY3Rpb24ocm93SUQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9pbnRlck9yaWdpbkhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucG9pbnRlckV2ZW50SW5HcmlkQm9keSA9IGZhbHNlO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMucG9pbnRlck9yaWdpbkhhbmRsZXIpO1xuICAgIH07XG59XG4iXX0=
|
|
@@ -497,9 +497,9 @@ export class IgxGridStateDirective {
|
|
|
497
497
|
return feature;
|
|
498
498
|
}
|
|
499
499
|
}
|
|
500
|
-
IgxGridStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
501
|
-
IgxGridStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
502
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
500
|
+
IgxGridStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridStateDirective, deps: [{ token: i1.IgxGridBaseDirective, host: true, optional: true }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
501
|
+
IgxGridStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxGridStateDirective, selector: "[igxGridState]", inputs: { options: ["igxGridState", "options"] }, ngImport: i0 });
|
|
502
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridStateDirective, decorators: [{
|
|
503
503
|
type: Directive,
|
|
504
504
|
args: [{
|
|
505
505
|
selector: '[igxGridState]'
|
|
@@ -517,10 +517,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.2", ng
|
|
|
517
517
|
*/
|
|
518
518
|
export class IgxGridStateModule {
|
|
519
519
|
}
|
|
520
|
-
IgxGridStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
521
|
-
IgxGridStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
522
|
-
IgxGridStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
523
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
520
|
+
IgxGridStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
521
|
+
IgxGridStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridStateModule, declarations: [IgxGridStateDirective], exports: [IgxGridStateDirective] });
|
|
522
|
+
IgxGridStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridStateModule });
|
|
523
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridStateModule, decorators: [{
|
|
524
524
|
type: NgModule,
|
|
525
525
|
args: [{
|
|
526
526
|
declarations: [IgxGridStateDirective],
|
|
@@ -11,9 +11,9 @@ export class IgxSummaryDataPipe {
|
|
|
11
11
|
return summaryService.calculateSummaries(summaryService.rootSummaryID, this.grid.gridAPI.get_summary_data());
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
IgxSummaryDataPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
15
|
-
IgxSummaryDataPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
14
|
+
IgxSummaryDataPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxSummaryDataPipe, deps: [{ token: IGX_GRID_BASE }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
15
|
+
IgxSummaryDataPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxSummaryDataPipe, name: "igxGridSummaryDataPipe" });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxSummaryDataPipe, decorators: [{
|
|
17
17
|
type: Pipe,
|
|
18
18
|
args: [{ name: 'igxGridSummaryDataPipe' }]
|
|
19
19
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -225,9 +225,9 @@ export class IgxGridSummaryService {
|
|
|
225
225
|
return this.grid.nativeElement.tagName.toLowerCase() === 'igx-hierarchical-grid';
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
|
-
IgxGridSummaryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
229
|
-
IgxGridSummaryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
230
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
228
|
+
IgxGridSummaryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSummaryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
229
|
+
IgxGridSummaryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSummaryService });
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSummaryService, decorators: [{
|
|
231
231
|
type: Injectable
|
|
232
232
|
}] });
|
|
233
233
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1zdW1tYXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvc3VtbWFyaWVzL2dyaWQtc3VtbWFyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFHakUsY0FBYztBQUVkLE1BQU0sT0FBTyxxQkFBcUI7SUFEbEM7UUFHVyxrQkFBYSxHQUFHLG9CQUFvQixDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLHVCQUFrQixHQUFHLENBQUMsQ0FBQztRQUN2Qix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDekIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBRXJCLG9CQUFlLEdBQW9DLElBQUksR0FBRyxFQUEyQyxDQUFDO0tBdU9uSDtJQXJPVSxvQkFBb0I7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQUs7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFO1lBQzVCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFF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YyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDekIsT0FBTzthQUNWO1lBQ0QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO29CQUN4QyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7d0JBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUNuQztnQkFDSixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsSUFBWSxVQUFVO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLGVBQWUsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBWSxrQkFBa0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssdUJBQXVCLENBQUM7SUFDckYsQ0FBQzs7dUhBOU9RLHFCQUFxQjsySEFBckIscUJBQXFCO2dHQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFN1bW1hcnlSZXN1bHQgfSBmcm9tICcuL2dyaWQtc3VtbWFyeSc7XG5pbXBvcnQgeyBEYXRhVXRpbCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgY2xvbmVBcnJheSwgcmVzb2x2ZU5lc3RlZFBhdGggfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEdyaWRUeXBlLCBGbGF0R3JpZFR5cGUsIFRyZWVHcmlkVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbi8qKiBAaGlkZGVuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWd4R3JpZFN1bW1hcnlTZXJ2aWNlIHtcbiAgICBwdWJsaWMgZ3JpZDogR3JpZFR5cGU7XG4gICAgcHVibGljIHJvb3RTdW1tYXJ5SUQgPSAnaWd4R3JpZFJvb3RTdW1tYXJ5JztcbiAgICBwdWJsaWMgc3VtbWFyeUhlaWdodCA9IDA7XG4gICAgcHVibGljIG1heFN1bW1hcmllc0xlbmdodCA9IDA7XG4gICAgcHVibGljIGdyb3VwaW5nRXhwcmVzc2lvbnMgPSBbXTtcbiAgICBwdWJsaWMgcmV0cmlnZ2VyUm9vdFBpcGUgPSAwO1xuICAgIHB1YmxpYyBkZWxldGVPcGVyYXRpb24gPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBzdW1tYXJ5Q2FjaGVNYXA6IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIGFueVtdPj4gPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgSWd4U3VtbWFyeVJlc3VsdFtdPj4oKTtcblxuICAgIHB1YmxpYyByZWNhbGN1bGF0ZVN1bW1hcmllcygpIHtcbiAgICAgICAgdGhpcy5yZXNldFN1bW1hcnlIZWlnaHQoKTtcbiAgICAgICAgdGhpcy5ncmlkLm5vdGlmeUNoYW5nZXModHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyU3VtbWFyeUNhY2hlKGFyZ3M/KSB7XG4gICAgICAgIGlmICghdGhpcy5zdW1tYXJ5Q2FjaGVNYXAuc2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYXJncykge1xuICAgICAgICAgICAgdGhpcy5zdW1tYXJ5Q2FjaGVNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmdyaWQgJiYgdGhpcy5ncmlkLnJvb3RTdW1tYXJpZXNFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXRyaWdnZXJSb290UGlwZSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhcmdzLmRhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvd0lEID0gdGhpcy5ncmlkLnByaW1hcnlLZXkgPyBhcmdzLmRhdGFbdGhpcy5ncmlkLnByaW1hcnlLZXldIDogYXJncy5kYXRhO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVTdW1tYXJpZXMocm93SUQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhcmdzLnJvd0lEICE9PSB1bmRlZmluZWQgJiYgYXJncy5yb3dJRCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IGNvbHVtbk5hbWUgPSBhcmdzLmNlbGxJRCA/IHRoaXMuZ3JpZC5jb2x1bW5MaXN0LmZpbmQoY29sID0+IGNvbC5pbmRleCA9PT0gYXJncy5jZWxsSUQuY29sdW1uSUQpLmZpZWxkIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKGNvbHVtbk5hbWUgJiYgdGhpcy5ncmlkLnJvd0VkaXRhYmxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc0dyb3VwZWRDb2x1bW4gPSAodGhpcy5ncmlkIGFzIEZsYXRHcmlkVHlwZSkuZ3JvdXBpbmdFeHByZXNzaW9ucyAmJlxuICAgICAgICAgICAgKHRoaXMuZ3JpZCBhcyBGbGF0R3JpZFR5cGUpLmdyb3VwaW5nRXhwcmVzc2lvbnMubWFwKGV4cHIgPT4gZXhwci5maWVsZE5hbWUpLmluZGV4T2YoY29sdW1uTmFtZSkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKGNvbHVtbk5hbWUgJiYgaXNHcm91cGVkQ29sdW1uICkge1xuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVN1bW1hcmllcyhhcmdzLnJvd0lELCBjb2x1bW5OYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVTdW1tYXJpZXMocm93SUQsIGNvbHVtbk5hbWU/KSB7XG4gICAgICAgIHRoaXMuZGVsZXRlU3VtbWFyeUNhY2hlKHRoaXMucm9vdFN1bW1hcnlJRCwgY29sdW1uTmFtZSk7XG4gICAgICAgIGlmICh0aGlzLnN1bW1hcnlDYWNoZU1hcC5zaXplID09PSAxICYmIHRoaXMuc3VtbWFyeUNhY2hlTWFwLmhhcyh0aGlzLnJvb3RTdW1tYXJ5SUQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNUcmVlR3JpZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3JpZC50cmFuc2FjdGlvbnMuZW5hYmxlZCAmJiB0aGlzLmRlbGV0ZU9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlT3BlcmF0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogdGhpcy5yZW1vdmVDaGlsZFJvd1N1bW1hcmllcyhyb3dJRCwgY29sdW1uTmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdW1tYXJ5Q2FjaGVNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUFsbFRyZWVHcmlkU3VtbWFyaWVzKHJvd0lELCBjb2x1bW5OYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSGllcmFyY2hpY2FsR3JpZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZ3JpZC50cmFuc2FjdGlvbnMuZW5hYmxlZCAmJiB0aGlzLmRlbGV0ZU9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlT3BlcmF0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zdW1tYXJ5Q2FjaGVNYXAuY2xlYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgY29uc3Qgc3VtbWFyeUlkcyA9IHRoaXMuZ2V0U3VtbWFyeUlEKHJvd0lELCAodGhpcy5ncmlkIGFzIEZsYXRHcmlkVHlwZSkuZ3JvdXBpbmdFeHByZXNzaW9ucyk7XG4gICAgICAgICAgIHN1bW1hcnlJZHMuZm9yRWFjaChpZCA9PiB7XG4gICAgICAgICAgICAgICB0aGlzLmRlbGV0ZVN1bW1hcnlDYWNoZShpZCwgY29sdW1uTmFtZSk7XG4gICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZVN1bW1hcmllc0NhY2hlUGVyQ29sdW1uKGNvbHVtbk5hbWUpIHtcbiAgICAgICAgdGhpcy5zdW1tYXJ5Q2FjaGVNYXAuZm9yRWFjaCgoY2FjaGUpID0+IHtcbiAgICAgICAgICAgIGlmIChjYWNoZS5nZXQoY29sdW1uTmFtZSkpIHtcbiAgICAgICAgICAgICAgICBjYWNoZS5kZWxldGUoY29sdW1uTmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5ncmlkLnJvb3RTdW1tYXJpZXNFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnJldHJpZ2dlclJvb3RQaXBlKys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2FsY01heFN1bW1hcnlIZWlnaHQoKSB7XG4gICAgICAgIGlmICh0aGlzLnN1bW1hcnlIZWlnaHQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN1bW1hcnlIZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmdyaWQuZGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3VtbWFyeUhlaWdodCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1heFN1bW1hcnlMZW5ndGggPSAwO1xuICAgICAgICB0aGlzLmdyaWQuY29sdW1uTGlzdC5maWx0ZXIoKGNvbCkgPT4gY29sLmhhc1N1bW1hcnkgJiYgIWNvbC5oaWRkZW4pLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ2V0Q3VycmVudFN1bW1hcnlDb2x1bW4gPSBjb2x1bW4uc3VtbWFyaWVzLm9wZXJhdGUoW10sIFtdLCBjb2x1bW4uZmllbGQpLmxlbmd0aDtcbiAgICAgICAgICAgIGlmIChnZXRDdXJyZW50U3VtbWFyeUNvbHVtbikge1xuICAgICAgICAgICAgICAgIGlmIChtYXhTdW1tYXJ5TGVuZ3RoIDwgZ2V0Q3VycmVudFN1bW1hcnlDb2x1bW4pIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4U3VtbWFyeUxlbmd0aCA9IGdldEN1cnJlbnRTdW1tYXJ5Q29sdW1uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWF4U3VtbWFyaWVzTGVuZ2h0ID0gbWF4U3VtbWFyeUxlbmd0aDtcbiAgICAgICAgdGhpcy5zdW1tYXJ5SGVpZ2h0ID0gIG1heFN1bW1hcnlMZW5ndGggKiB0aGlzLmdyaWQuZGVmYXVsdFN1bW1hcnlIZWlnaHQ7XG4gICAgICAgIHJldHVybiB0aGlzLnN1bW1hcnlIZWlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGNhbGN1bGF0ZVN1bW1hcmllcyhyb3dJRCwgZGF0YSkge1xuICAgICAgICBsZXQgcm93U3VtbWFyaWVzID0gdGhpcy5zdW1tYXJ5Q2FjaGVNYXAuZ2V0KHJvd0lEKTtcbiAgICAgICAgaWYgKCFyb3dTdW1tYXJpZXMpIHtcbiAgICAgICAgICAgIHJvd1N1bW1hcmllcyA9IG5ldyBNYXA8c3RyaW5nLCBJZ3hTdW1tYXJ5UmVzdWx0W10+KCk7XG4gICAgICAgICAgICB0aGlzLnN1bW1hcnlDYWNoZU1hcC5zZXQocm93SUQsIHJvd1N1bW1hcmllcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmhhc1N1bW1hcml6ZWRDb2x1bW5zIHx8ICFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gcm93U3VtbWFyaWVzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JpZC5jb2x1bW5MaXN0LmZpbHRlcihjb2wgPT4gY29sLmhhc1N1bW1hcnkpLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgaWYgKCFyb3dTdW1tYXJpZXMuZ2V0KGNvbHVtbi5maWVsZCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdW1tYXJ5UmVzdWx0ID0gY29sdW1uLnN1bW1hcmllcy5vcGVyYXRlKGRhdGEubWFwKHIgPT4gcmVzb2x2ZU5lc3RlZFBhdGgociwgY29sdW1uLmZpZWxkKSksXG4gICAgICAgICAgICAgICAgICAgIGRhdGEsIGNvbHVtbi5maWVsZCwgdGhpcy5ncmlkLmxvY2FsZSwgY29sdW1uLnBpcGVBcmdzKTtcbiAgICAgICAgICAgICAgICByb3dTdW1tYXJpZXMuc2V0KGNvbHVtbi5maWVsZCwgc3VtbWFyeVJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcm93U3VtbWFyaWVzO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldFN1bW1hcnlIZWlnaHQoKSB7XG4gICAgICAgIHRoaXMuc3VtbWFyeUhlaWdodCA9IDA7XG4gICAgICAgIHRoaXMuZ3JpZC5zdW1tYXJ5UGlwZVRyaWdnZXIrKztcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5yb290U3VtbWFyaWVzRW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5yZXRyaWdnZXJSb290UGlwZSsrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVN1bW1hcnlDYWNoZShncm91cGluZ0FyZ3MpIHtcbiAgICAgICAgaWYgKHRoaXMuc3VtbWFyeUNhY2hlTWFwLnNpemUgPT09IDAgfHwgIXRoaXMuaGFzU3VtbWFyaXplZENvbHVtbnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5ncm91cGluZ0V4cHJlc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5ncm91cGluZ0V4cHJlc3Npb25zID0gZ3JvdXBpbmdBcmdzLmV4cHJlc3Npb25zLm1hcChyZWNvcmQgPT4gcmVjb3JkLmZpZWxkTmFtZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdyb3VwaW5nQXJncy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZ3JvdXBpbmdFeHByZXNzaW9ucyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5jbGVhclN1bW1hcnlDYWNoZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29tcGFyZUdyb3VwaW5nRXhwcmVzc2lvbnModGhpcy5ncm91cGluZ0V4cHJlc3Npb25zLCBncm91cGluZ0FyZ3MpO1xuICAgICAgICB0aGlzLmdyb3VwaW5nRXhwcmVzc2lvbnMgPSBncm91cGluZ0FyZ3MuZXhwcmVzc2lvbnMubWFwKHJlY29yZCA9PiByZWNvcmQuZmllbGROYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1N1bW1hcml6ZWRDb2x1bW5zKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBzdW1tYXJpemVkQ29sdW1ucyA9IHRoaXMuZ3JpZC5jb2x1bW5MaXN0LmZpbHRlcihjb2wgPT4gY29sLmhhc1N1bW1hcnkgJiYgIWNvbC5oaWRkZW4pO1xuICAgICAgICByZXR1cm4gc3VtbWFyaXplZENvbHVtbnMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZVN1bW1hcnlDYWNoZShpZCwgY29sdW1uTmFtZSkge1xuICAgICAgICBpZiAodGhpcy5zdW1tYXJ5Q2FjaGVNYXAuZ2V0KGlkKSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyaW5nQXBwbGllZCA9IGNvbHVtbk5hbWUgJiYgdGhpcy5ncmlkLmZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQuZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLmZpbHRlcmluZ09wZXJhbmRzLm1hcCgoZXhwcikgPT4gZXhwci5maWVsZE5hbWUpLmluZGV4T2YoY29sdW1uTmFtZSkgIT09IC0xO1xuICAgICAgICAgICAgaWYgKGNvbHVtbk5hbWUgJiYgdGhpcy5zdW1tYXJ5Q2FjaGVNYXAuZ2V0KGlkKS5nZXQoY29sdW1uTmFtZSkgJiYgIWZpbHRlcmluZ0FwcGxpZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1bW1hcnlDYWNoZU1hcC5nZXQoaWQpLmRlbGV0ZShjb2x1bW5OYW1lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdW1tYXJ5Q2FjaGVNYXAuZGVsZXRlKGlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpZCA9PT0gdGhpcy5yb290U3VtbWFyeUlEICYmIHRoaXMuZ3JpZC5yb290U3VtbWFyaWVzRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmV0cmlnZ2VyUm9vdFBpcGUrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3VtbWFyeUlEKHJvd0lELCBncm91cGluZ0V4cHJlc3Npb25zKSB7XG4gICAgICAgIGlmIChncm91cGluZ0V4cHJlc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1bW1hcnlJRHMgPSBbXTtcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmdyaWQuZGF0YTtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC50cmFuc2FjdGlvbnMuZW5hYmxlZCkge1xuICAgICAgICAgICAgZGF0YSA9IERhdGFVdGlsLm1lcmdlVHJhbnNhY3Rpb25zKFxuICAgICAgICAgICAgICAgIGNsb25lQXJyYXkodGhpcy5ncmlkLmRhdGEpLFxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC50cmFuc2FjdGlvbnMuZ2V0QWdncmVnYXRlZENoYW5nZXModHJ1ZSksXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkLnByaW1hcnlLZXlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgcm93RGF0YSA9IHRoaXMuZ3JpZC5wcmltYXJ5S2V5ID8gZGF0YS5maW5kKHJlYyA9PiByZWNbdGhpcy5ncmlkLnByaW1hcnlLZXldID09PSByb3dJRCkgOiByb3dJRDtcbiAgICAgICAgbGV0IGlkID0gJ3sgJztcbiAgICAgICAgZ3JvdXBpbmdFeHByZXNzaW9ucy5mb3JFYWNoKGV4cHIgPT4ge1xuICAgICAgICAgICAgaWQgKz0gYCcke2V4cHIuZmllbGROYW1lfSc6ICcke3Jvd0RhdGFbZXhwci5maWVsZE5hbWVdfSdgO1xuICAgICAgICAgICAgICAgIHN1bW1hcnlJRHMucHVzaChpZC5jb25jYXQoJyB9JykpO1xuICAgICAgICAgICAgICAgIGlkICs9ICcsICc7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc3VtbWFyeUlEcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUFsbFRyZWVHcmlkU3VtbWFyaWVzKHJvd0lELCBjb2x1bW5OYW1lPykge1xuICAgICAgICBsZXQgcm93ID0gKHRoaXMuZ3JpZCBhcyBUcmVlR3JpZFR5cGUpLnJlY29yZHMuZ2V0KHJvd0lEKTtcbiAgICAgICAgaWYgKCFyb3cpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByb3cgPSByb3cuY2hpbGRyZW4gPyByb3cgOiByb3cucGFyZW50O1xuICAgICAgICB3aGlsZSAocm93KSB7XG4gICAgICAgICAgICByb3dJRCA9IHJvdy5yb3dJRDtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlU3VtbWFyeUNhY2hlKHJvd0lELCBjb2x1bW5OYW1lKTtcbiAgICAgICAgICAgIHJvdyA9IHJvdy5wYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiByZW1vdmUgb25seSBkZWxldGVkIHJvd3NcbiAgICAvLyBwcml2YXRlIHJlbW92ZUNoaWxkUm93U3VtbWFyaWVzKHJvd0lELCBjb2x1bW5OYW1lPykge1xuICAgIC8vIH1cblxuICAgIHByaXZhdGUgY29tcGFyZUdyb3VwaW5nRXhwcmVzc2lvbnMoY3VycmVudCwgZ3JvdXBpbmdBcmdzKSB7XG4gICAgICAgIGNvbnN0IG5ld0V4cHJlc3Npb25zID0gZ3JvdXBpbmdBcmdzLmV4cHJlc3Npb25zLm1hcChyZWNvcmQgPT4gcmVjb3JkLmZpZWxkTmFtZSk7XG4gICAgICAgIGNvbnN0IHJlbW92ZWRDb2xzID0gZ3JvdXBpbmdBcmdzLnVuZ3JvdXBlZENvbHVtbnM7XG4gICAgICAgIGlmIChjdXJyZW50Lmxlbmd0aCA8PSBuZXdFeHByZXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0V4cHIgPSBuZXdFeHByZXNzaW9ucy5zbGljZSgwLCBjdXJyZW50Lmxlbmd0aCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50LnRvU3RyaW5nKCkgIT09IG5ld0V4cHIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyU3VtbWFyeUNhY2hlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyRXhwciA9IGN1cnJlbnQuc2xpY2UoMCwgbmV3RXhwcmVzc2lvbnMubGVuZ3RoKS50b1N0cmluZygpO1xuICAgICAgICAgICAgaWYgKGN1cnJFeHByICE9PSBuZXdFeHByZXNzaW9ucy50b1N0cmluZygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhclN1bW1hcnlDYWNoZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlbW92ZWRDb2xzLm1hcChjb2wgPT4gY29sLmZpZWxkKS5mb3JFYWNoKGNvbE5hbWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3VtbWFyeUNhY2hlTWFwLmZvckVhY2goKGNhY2hlLCBpZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgIGlmIChpZC5pbmRleE9mKGNvbE5hbWUpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN1bW1hcnlDYWNoZU1hcC5kZWxldGUoaWQpO1xuICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNUcmVlR3JpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lneC10cmVlLWdyaWQnO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGlzSGllcmFyY2hpY2FsR3JpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lneC1oaWVyYXJjaGljYWwtZ3JpZCc7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -87,9 +87,9 @@ export class IgxSummaryCellComponent {
|
|
|
87
87
|
return this.column.dataType === GridColumnDataType.Percent;
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
-
IgxSummaryCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
91
|
-
IgxSummaryCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
90
|
+
IgxSummaryCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxSummaryCellComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
91
|
+
IgxSummaryCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxSummaryCellComponent, selector: "igx-grid-summary-cell", inputs: { summaryResults: "summaryResults", column: "column", firstCellIndentation: "firstCellIndentation", hasSummary: "hasSummary", density: "density", summaryFormatter: "summaryFormatter", active: "active", rowIndex: "rowIndex" }, host: { listeners: { "pointerdown": "activate()" }, properties: { "class.igx-grid-summary--active": "this.active", "attr.data-rowIndex": "this.rowIndex", "attr.data-visibleIndex": "this.visibleColumnIndex", "attr.id": "this.attrCellID" } }, ngImport: i0, template: "<ng-container *ngIf=\"hasSummary\">\n <ng-container *ngFor=\"let summary of summaryResults\">\n <div class=\"igx-grid-summary__item\" [style.height.px]=\"itemHeight\">\n\n <ng-container *ngIf=\"visibleColumnIndex === 0 && firstCellIndentation >= 0\">\n <div class=\"igx-grid__tree-cell--padding-level-{{firstCellIndentation}}\"></div>\n\n <div #indicator class=\"igx-grid__tree-grouping-indicator\" style=\"visibility: hidden\">\n <igx-icon>chevron_right</igx-icon>\n </div>\n </ng-container>\n\n <span class=\"igx-grid-summary__label\" [title]=\"summary.label\">{{ translateSummary(summary) }}</span>\n <span class=\"igx-grid-summary__result\" [title]=\"summary.summaryResult\">\n {{\n summaryFormatter\n ? (summary | summaryFormatter:column.summaries:summaryFormatter)\n : (isNumberColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | number:column.pipeArgs.digitsInfo:grid.locale)\n : (isDateKindColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : (isCurrencyColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : (isPercentColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | percent:column.pipeArgs.digitsInfo:grid.locale)\n : (summary.key === 'count')\n ? (summary.summaryResult | number:undefined:grid.locale)\n : summary.summaryResult\n }}\n </span>\n </div>\n </ng-container>\n</ng-container>\n", components: [{ type: i1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "summaryFormatter": i3.IgxSummaryFormatterPipe, "number": i2.DecimalPipe, "date": i2.DatePipe, "currency": i2.CurrencyPipe, "percent": i2.PercentPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxSummaryCellComponent, decorators: [{
|
|
93
93
|
type: Component,
|
|
94
94
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-summary-cell', template: "<ng-container *ngIf=\"hasSummary\">\n <ng-container *ngFor=\"let summary of summaryResults\">\n <div class=\"igx-grid-summary__item\" [style.height.px]=\"itemHeight\">\n\n <ng-container *ngIf=\"visibleColumnIndex === 0 && firstCellIndentation >= 0\">\n <div class=\"igx-grid__tree-cell--padding-level-{{firstCellIndentation}}\"></div>\n\n <div #indicator class=\"igx-grid__tree-grouping-indicator\" style=\"visibility: hidden\">\n <igx-icon>chevron_right</igx-icon>\n </div>\n </ng-container>\n\n <span class=\"igx-grid-summary__label\" [title]=\"summary.label\">{{ translateSummary(summary) }}</span>\n <span class=\"igx-grid-summary__result\" [title]=\"summary.summaryResult\">\n {{\n summaryFormatter\n ? (summary | summaryFormatter:column.summaries:summaryFormatter)\n : (isNumberColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | number:column.pipeArgs.digitsInfo:grid.locale)\n : (isDateKindColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | date:column.pipeArgs.format:column.pipeArgs.timezone:grid.locale)\n : (isCurrencyColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | currency:currencyCode:column.pipeArgs.display:column.pipeArgs.digitsInfo:grid.locale)\n : (isPercentColumn() && summary.defaultFormatting)\n ? (summary.summaryResult | percent:column.pipeArgs.digitsInfo:grid.locale)\n : (summary.key === 'count')\n ? (summary.summaryResult | number:undefined:grid.locale)\n : summary.summaryResult\n }}\n </span>\n </div>\n </ng-container>\n</ng-container>\n" }]
|
|
95
95
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { summaryResults: [{
|
|
@@ -69,9 +69,9 @@ export class IgxSummaryRowComponent {
|
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
IgxSummaryRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
73
|
-
IgxSummaryRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
72
|
+
IgxSummaryRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxSummaryRowComponent, deps: [{ token: IGX_GRID_BASE }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
+
IgxSummaryRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxSummaryRowComponent, selector: "igx-grid-summary-row", inputs: { summaries: "summaries", gridID: "gridID", index: "index", firstCellIndentation: "firstCellIndentation" }, host: { properties: { "attr.data-rowIndex": "this.dataRowIndex" } }, providers: [IgxForOfSyncService], viewQueries: [{ propertyName: "virtDirRow", first: true, predicate: ["igxDirRef"], descendants: true, read: IgxGridForOfDirective }, { propertyName: "_summaryCells", predicate: IgxSummaryCellComponent, descendants: true, read: IgxSummaryCellComponent }], ngImport: i0, template: "<ng-container *ngIf=\"summaries.size\">\n <ng-container *ngIf=\"grid.summariesMargin\">\n <div\n class=\"igx-grid__summaries-patch\"\n [style.min-width.px]=\"grid.summariesMargin\"\n [style.flex-basis.px]=\"grid.summariesMargin\"\n (pointerdown)=\"$event.preventDefault()\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this)\"></ng-container>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForTrackBy]=\"grid.trackColumnChanges\" [igxForSizePropName]='\"calcPixelWidth\"' #igxDirRef>\n <igx-grid-summary-cell\n class=\"igx-grid-summary igx-grid-summary--fw\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n role=\"cell\"\n [class.igx-grid-summary--cosy]=\"grid.displayDensity === 'cosy'\"\n [class.igx-grid-summary--compact]=\"grid.displayDensity === 'compact'\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [rowIndex]=\"index\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [summaryResults]=\"getColumnSummaries(col.field)\"\n [hasSummary]=\"col.hasSummary\"\n [density]=\"grid.displayDensity\"\n [summaryFormatter]=\"col.summaryFormatter\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.getCellWidth()\"\n [style.max-width]=\"col.getCellWidth()\"\n [style.flex-basis]=\"col.getCellWidth()\">\n </igx-grid-summary-cell>\n </ng-template>\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this)\"></ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #summaryCellTemplate let-col>\n <igx-grid-summary-cell *ngFor=\"let col of pinnedColumns | igxNotGrouped\"\n role=\"cell\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n class=\"igx-grid-summary igx-grid-summary--fw igx-grid-summary--pinned\"\n [class.igx-grid-summary--cosy]=\"grid.displayDensity === 'cosy'\"\n [class.igx-grid-summary--compact]=\"grid.displayDensity === 'compact'\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-first]=\"col.isFirstPinned\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [rowIndex]=\"index\"\n [summaryResults]=\"getColumnSummaries(col.field)\"\n [hasSummary]=\"col.hasSummary\"\n [density]=\"grid.displayDensity\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.getCellWidth()\"\n [style.max-width]=\"col.getCellWidth()\"\n [style.flex-basis]=\"col.getCellWidth()\"\n [style.left]=\"col.rightPinnedOffset\">\n </igx-grid-summary-cell>\n</ng-template>\n", components: [{ type: i1.IgxSummaryCellComponent, selector: "igx-grid-summary-cell", inputs: ["summaryResults", "column", "firstCellIndentation", "hasSummary", "density", "summaryFormatter", "active", "rowIndex"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.IgxGridForOfDirective, selector: "[igxGridFor][igxGridForOf]", inputs: ["igxGridForOf"], outputs: ["dataChanging"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "igxNotGrouped": i4.IgxGridNotGroupedPipe, "igxStringReplace": i4.IgxStringReplacePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxSummaryRowComponent, decorators: [{
|
|
75
75
|
type: Component,
|
|
76
76
|
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-summary-row', providers: [IgxForOfSyncService], template: "<ng-container *ngIf=\"summaries.size\">\n <ng-container *ngIf=\"grid.summariesMargin\">\n <div\n class=\"igx-grid__summaries-patch\"\n [style.min-width.px]=\"grid.summariesMargin\"\n [style.flex-basis.px]=\"grid.summariesMargin\"\n (pointerdown)=\"$event.preventDefault()\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"pinnedColumns.length > 0 && grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this)\"></ng-container>\n </ng-container>\n <ng-template igxGridFor let-col [igxGridForOf]=\"unpinnedColumns | igxNotGrouped\" [igxForScrollContainer]=\"grid.parentVirtDir\" let-colIndex=\"index\" [igxForScrollOrientation]=\"'horizontal'\" [igxForContainerSize]=\"grid.unpinnedWidth\" [igxForTrackBy]=\"grid.trackColumnChanges\" [igxForSizePropName]='\"calcPixelWidth\"' #igxDirRef>\n <igx-grid-summary-cell\n class=\"igx-grid-summary igx-grid-summary--fw\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n role=\"cell\"\n [class.igx-grid-summary--cosy]=\"grid.displayDensity === 'cosy'\"\n [class.igx-grid-summary--compact]=\"grid.displayDensity === 'compact'\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [rowIndex]=\"index\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [summaryResults]=\"getColumnSummaries(col.field)\"\n [hasSummary]=\"col.hasSummary\"\n [density]=\"grid.displayDensity\"\n [summaryFormatter]=\"col.summaryFormatter\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.getCellWidth()\"\n [style.max-width]=\"col.getCellWidth()\"\n [style.flex-basis]=\"col.getCellWidth()\">\n </igx-grid-summary-cell>\n </ng-template>\n <ng-container *ngIf=\"pinnedColumns.length > 0 && !grid.isPinningToStart\">\n <ng-container *ngTemplateOutlet=\"summaryCellTemplate; context: getContext(this)\"></ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #summaryCellTemplate let-col>\n <igx-grid-summary-cell *ngFor=\"let col of pinnedColumns | igxNotGrouped\"\n role=\"cell\"\n [attr.aria-describedby]=\"gridID + '_' + col.field | igxStringReplace:'.':'_'\"\n class=\"igx-grid-summary igx-grid-summary--fw igx-grid-summary--pinned\"\n [class.igx-grid-summary--cosy]=\"grid.displayDensity === 'cosy'\"\n [class.igx-grid-summary--compact]=\"grid.displayDensity === 'compact'\"\n [class.igx-grid-summary--empty]=\"!col.hasSummary\"\n [class.igx-grid-summary--pinned-first]=\"col.isFirstPinned\"\n [class.igx-grid-summary--pinned-last]=\"col.isLastPinned\"\n [column]=\"col\"\n [firstCellIndentation]=\"firstCellIndentation\"\n [rowIndex]=\"index\"\n [summaryResults]=\"getColumnSummaries(col.field)\"\n [hasSummary]=\"col.hasSummary\"\n [density]=\"grid.displayDensity\"\n [active]=\"isCellActive(col.visibleIndex)\"\n [style.max-height.px]=\"minHeight\"\n [style.min-height.px]=\"minHeight\"\n [style.min-width]=\"col.getCellWidth()\"\n [style.max-width]=\"col.getCellWidth()\"\n [style.flex-basis]=\"col.getCellWidth()\"\n [style.left]=\"col.rightPinnedOffset\">\n </igx-grid-summary-cell>\n</ng-template>\n" }]
|
|
77
77
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -10,18 +10,18 @@ export { IgxSummaryRowComponent } from './summary-row.component';
|
|
|
10
10
|
export { IgxSummaryDataPipe } from './grid-root-summary.pipe';
|
|
11
11
|
export class IgxGridSummaryModule {
|
|
12
12
|
}
|
|
13
|
-
IgxGridSummaryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
14
|
-
IgxGridSummaryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
13
|
+
IgxGridSummaryModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSummaryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
IgxGridSummaryModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSummaryModule, declarations: [IgxSummaryCellComponent,
|
|
15
15
|
IgxSummaryRowComponent,
|
|
16
16
|
IgxSummaryDataPipe], imports: [IgxGridPipesModule,
|
|
17
17
|
IgxGridSharedModules], exports: [IgxSummaryCellComponent,
|
|
18
18
|
IgxSummaryRowComponent,
|
|
19
19
|
IgxSummaryDataPipe] });
|
|
20
|
-
IgxGridSummaryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
20
|
+
IgxGridSummaryModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSummaryModule, imports: [[
|
|
21
21
|
IgxGridPipesModule,
|
|
22
22
|
IgxGridSharedModules
|
|
23
23
|
]] });
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridSummaryModule, decorators: [{
|
|
25
25
|
type: NgModule,
|
|
26
26
|
args: [{
|
|
27
27
|
declarations: [
|
|
@@ -3,18 +3,18 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
4
4
|
export class IgxExcelTextDirective {
|
|
5
5
|
}
|
|
6
|
-
IgxExcelTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
7
|
-
IgxExcelTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
6
|
+
IgxExcelTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxExcelTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
7
|
+
IgxExcelTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxExcelTextDirective, selector: "[excelText],excel-text", ngImport: i0 });
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxExcelTextDirective, decorators: [{
|
|
9
9
|
type: Directive,
|
|
10
10
|
args: [{ selector: '[excelText],excel-text' }]
|
|
11
11
|
}] });
|
|
12
12
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
13
13
|
export class IgxCSVTextDirective {
|
|
14
14
|
}
|
|
15
|
-
IgxCSVTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
16
|
-
IgxCSVTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
15
|
+
IgxCSVTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxCSVTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
16
|
+
IgxCSVTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxCSVTextDirective, selector: "[csvText],csv-text", ngImport: i0 });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxCSVTextDirective, decorators: [{
|
|
18
18
|
type: Directive,
|
|
19
19
|
args: [{ selector: '[csvText],csv-text' }]
|
|
20
20
|
}] });
|
|
@@ -40,9 +40,9 @@ export class IgxGridToolbarTitleDirective {
|
|
|
40
40
|
this.cssClass = 'igx-grid-toolbar__title';
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
IgxGridToolbarTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
44
|
-
IgxGridToolbarTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
43
|
+
IgxGridToolbarTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
44
|
+
IgxGridToolbarTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxGridToolbarTitleDirective, selector: "[igxGridToolbarTitle],igx-grid-toolbar-title", host: { properties: { "class.igx-grid-toolbar__title": "this.cssClass" } }, ngImport: i0 });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarTitleDirective, decorators: [{
|
|
46
46
|
type: Directive,
|
|
47
47
|
args: [{ selector: '[igxGridToolbarTitle],igx-grid-toolbar-title' }]
|
|
48
48
|
}], propDecorators: { cssClass: [{
|
|
@@ -73,9 +73,9 @@ export class IgxGridToolbarActionsDirective {
|
|
|
73
73
|
this.cssClass = 'igx-grid-toolbar__actions';
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
IgxGridToolbarActionsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
77
|
-
IgxGridToolbarActionsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
76
|
+
IgxGridToolbarActionsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
77
|
+
IgxGridToolbarActionsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxGridToolbarActionsDirective, selector: "[igxGridToolbarActions],igx-grid-toolbar-actions", host: { properties: { "class.igx-grid-toolbar__actions": "this.cssClass" } }, ngImport: i0 });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarActionsDirective, decorators: [{
|
|
79
79
|
type: Directive,
|
|
80
80
|
args: [{ selector: '[igxGridToolbarActions],igx-grid-toolbar-actions' }]
|
|
81
81
|
}], propDecorators: { cssClass: [{
|
|
@@ -87,9 +87,9 @@ export class IgxGridToolbarDirective {
|
|
|
87
87
|
this.template = template;
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
-
IgxGridToolbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
91
|
-
IgxGridToolbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
90
|
+
IgxGridToolbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
91
|
+
IgxGridToolbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxGridToolbarDirective, selector: "[igxGridToolbar]", ngImport: i0 });
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarDirective, decorators: [{
|
|
93
93
|
type: Directive,
|
|
94
94
|
args: [{ selector: '[igxGridToolbar]' }]
|
|
95
95
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
@@ -29,9 +29,9 @@ export class IgxGridToolbarAdvancedFilteringComponent {
|
|
|
29
29
|
return this.toolbar.grid;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
IgxGridToolbarAdvancedFilteringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
33
|
-
IgxGridToolbarAdvancedFilteringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
32
|
+
IgxGridToolbarAdvancedFilteringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, deps: [{ token: i1.IgxToolbarToken, host: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
+
IgxGridToolbarAdvancedFilteringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxGridToolbarAdvancedFilteringComponent, selector: "igx-grid-toolbar-advanced-filtering", inputs: { overlaySettings: "overlaySettings" }, ngImport: i0, template: "<button igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog()\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n", components: [{ type: i2.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }], directives: [{ type: i3.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: i4.IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, decorators: [{
|
|
35
35
|
type: Component,
|
|
36
36
|
args: [{ selector: 'igx-grid-toolbar-advanced-filtering', template: "<button igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog()\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n" }]
|
|
37
37
|
}], ctorParameters: function () { return [{ type: i1.IgxToolbarToken, decorators: [{
|
|
@@ -84,9 +84,9 @@ export class IgxGridToolbarExporterComponent extends BaseToolbarDirective {
|
|
|
84
84
|
exporter.export(this.grid, options);
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
IgxGridToolbarExporterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
88
|
-
IgxGridToolbarExporterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
87
|
+
IgxGridToolbarExporterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarExporterComponent, deps: [{ token: i1.IgxToolbarToken, host: true }, { token: i2.IgxExcelExporterService }, { token: i2.IgxCsvExporterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
88
|
+
IgxGridToolbarExporterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxGridToolbarExporterComponent, selector: "igx-grid-toolbar-exporter", inputs: { exportCSV: "exportCSV", exportExcel: "exportExcel", filename: "filename" }, outputs: { exportStarted: "exportStarted", exportEnded: "exportEnded" }, queries: [{ propertyName: "hasExcelAttr", first: true, predicate: IgxExcelTextDirective, descendants: true }, { propertyName: "hasCSVAttr", first: true, predicate: IgxCSVTextDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-grid-toolbar__dropdown\" id=\"btnExport\">\n <button [title]=\"grid?.resourceStrings.igx_grid_toolbar_exporter_button_tooltip\" [disabled]=\"isExporting\"\n igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" igxRipple #btn (click)=\"toggle(btn, toggleRef)\">\n <igx-icon>import_export</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_button_label }}\n </span>\n <igx-icon>arrow_drop_down</igx-icon>\n </button>\n\n <ul class=\"igx-grid-toolbar__dd-list\" igxToggle #toggleRef=\"toggle\">\n <li *ngIf=\"exportExcel\" #btnExportExcel id=\"btnExportExcel\"\n class=\"igx-grid-toolbar__dd-list-items\" igxRipple (click)=\"export('excel', toggleRef)\">\n <ng-template #excel>\n <ng-content select=[excelText],excel-text></ng-content>\n </ng-template>\n <excel-text *ngIf=\"!hasExcelAttr\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_excel_entry_text}}\n </excel-text>\n <ng-container *ngTemplateOutlet=\"excel\"></ng-container>\n </li>\n\n <li *ngIf=\"exportCSV\" #btnExportCsv id=\"btnExportCsv\" class=\"igx-grid-toolbar__dd-list-items\"\n igxRipple (click)=\"export('csv', toggleRef)\">\n <ng-template #csv>\n <ng-content select=[csvText],csv-text></ng-content>\n </ng-template>\n <csv-text *ngIf=\"!hasCSVAttr\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_csv_entry_text }}</csv-text>\n <ng-container *ngTemplateOutlet=\"csv\"></ng-container>\n </li>\n </ul>\n</div>\n", components: [{ type: i3.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }], directives: [{ type: i4.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: i5.IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: i8.IgxExcelTextDirective, selector: "[excelText],excel-text" }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.IgxCSVTextDirective, selector: "[csvText],csv-text" }] });
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarExporterComponent, decorators: [{
|
|
90
90
|
type: Component,
|
|
91
91
|
args: [{ selector: 'igx-grid-toolbar-exporter', template: "<div class=\"igx-grid-toolbar__dropdown\" id=\"btnExport\">\n <button [title]=\"grid?.resourceStrings.igx_grid_toolbar_exporter_button_tooltip\" [disabled]=\"isExporting\"\n igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" igxRipple #btn (click)=\"toggle(btn, toggleRef)\">\n <igx-icon>import_export</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_button_label }}\n </span>\n <igx-icon>arrow_drop_down</igx-icon>\n </button>\n\n <ul class=\"igx-grid-toolbar__dd-list\" igxToggle #toggleRef=\"toggle\">\n <li *ngIf=\"exportExcel\" #btnExportExcel id=\"btnExportExcel\"\n class=\"igx-grid-toolbar__dd-list-items\" igxRipple (click)=\"export('excel', toggleRef)\">\n <ng-template #excel>\n <ng-content select=[excelText],excel-text></ng-content>\n </ng-template>\n <excel-text *ngIf=\"!hasExcelAttr\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_excel_entry_text}}\n </excel-text>\n <ng-container *ngTemplateOutlet=\"excel\"></ng-container>\n </li>\n\n <li *ngIf=\"exportCSV\" #btnExportCsv id=\"btnExportCsv\" class=\"igx-grid-toolbar__dd-list-items\"\n igxRipple (click)=\"export('csv', toggleRef)\">\n <ng-template #csv>\n <ng-content select=[csvText],csv-text></ng-content>\n </ng-template>\n <csv-text *ngIf=\"!hasCSVAttr\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_csv_entry_text }}</csv-text>\n <ng-container *ngTemplateOutlet=\"csv\"></ng-container>\n </li>\n </ul>\n</div>\n" }]
|
|
92
92
|
}], ctorParameters: function () { return [{ type: i1.IgxToolbarToken, decorators: [{
|
|
@@ -26,9 +26,9 @@ export class IgxGridToolbarHidingComponent extends BaseToolbarColumnActionsDirec
|
|
|
26
26
|
this.columnActionsUI = content;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
IgxGridToolbarHidingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
30
|
-
IgxGridToolbarHidingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.
|
|
29
|
+
IgxGridToolbarHidingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarHidingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
IgxGridToolbarHidingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0-rc.3", type: IgxGridToolbarHidingComponent, selector: "igx-grid-toolbar-hiding", viewQueries: [{ propertyName: "content", first: true, predicate: IgxColumnHidingDirective, descendants: true, read: IgxColumnActionsComponent }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"grid.rendered$ | async\">\n <button [title]=\"grid?.resourceStrings.igx_grid_toolbar_hiding_button_tooltip\" #btn igxButton=\"outlined\"\n name=\"btnColumnHiding\" (click)=\"toggle(btn, ref, actions)\" [displayDensity]=\"grid.displayDensity\">\n <igx-icon>{{ !grid.hiddenColumnsCount ? 'visibility' : 'visibility_off' }}</igx-icon>\n <span>{{ grid.hiddenColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions #actions igxColumnHiding igxToggle (opened)=\"focusSearch(ref.element)\" #ref=\"toggle\"\n [grid]=\"grid\" [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_hiding_title\"\n [filterColumnsPrompt]=\"prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt\"\n [hideFilter]=\"hideFilter\" [filterCriteria]=\"filterCriteria\" [columnDisplayOrder]=\"columnDisplayOrder\" [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\" [checkAllText]=\"checkAllText\" [indentation]=\"indentetion\">\n </igx-column-actions>\n</ng-container>\n", components: [{ type: i1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { type: i2.IgxColumnActionsComponent, selector: "igx-column-actions", inputs: ["grid", "indentation", "columnsAreaMaxHeight", "hideFilter", "title", "filterColumnsPrompt", "filterCriteria", "columnDisplayOrder", "uncheckAllText", "checkAllText", "id"], outputs: ["columnToggled"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: i5.IgxColumnHidingDirective, selector: "[igxColumnHiding]" }, { type: i6.IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }], pipes: { "async": i3.AsyncPipe } });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0-rc.3", ngImport: i0, type: IgxGridToolbarHidingComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
33
|
args: [{ selector: 'igx-grid-toolbar-hiding', template: "<ng-container *ngIf=\"grid.rendered$ | async\">\n <button [title]=\"grid?.resourceStrings.igx_grid_toolbar_hiding_button_tooltip\" #btn igxButton=\"outlined\"\n name=\"btnColumnHiding\" (click)=\"toggle(btn, ref, actions)\" [displayDensity]=\"grid.displayDensity\">\n <igx-icon>{{ !grid.hiddenColumnsCount ? 'visibility' : 'visibility_off' }}</igx-icon>\n <span>{{ grid.hiddenColumnsCount }}</span>\n <span>{{ buttonText }}</span>\n </button>\n <igx-column-actions #actions igxColumnHiding igxToggle (opened)=\"focusSearch(ref.element)\" #ref=\"toggle\"\n [grid]=\"grid\" [title]=\"title || grid?.resourceStrings.igx_grid_toolbar_hiding_title\"\n [filterColumnsPrompt]=\"prompt || grid?.resourceStrings.igx_grid_toolbar_actions_filter_prompt\"\n [hideFilter]=\"hideFilter\" [filterCriteria]=\"filterCriteria\" [columnDisplayOrder]=\"columnDisplayOrder\" [columnsAreaMaxHeight]=\"columnsAreaMaxHeight\"\n [uncheckAllText]=\"uncheckAllText\" [checkAllText]=\"checkAllText\" [indentation]=\"indentetion\">\n </igx-column-actions>\n</ng-container>\n" }]
|
|
34
34
|
}], propDecorators: { content: [{
|