igniteui-angular 13.0.0 → 13.0.1
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 +5 -5
- 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.common.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/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/focus-trap/focus-trap.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 +4 -4
- 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/pipes.mjs +51 -51
- package/esm2020/lib/grids/common/shared.module.mjs +4 -4
- package/esm2020/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +3 -3
- 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 +4 -4
- 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 +3 -3
- package/esm2020/lib/grids/grid/grid.details.pipe.mjs +3 -3
- package/esm2020/lib/grids/grid/grid.directives.mjs +33 -33
- package/esm2020/lib/grids/grid/grid.module.mjs +4 -4
- package/esm2020/lib/grids/grid/grid.pipes.mjs +12 -12
- 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 +4 -4
- package/esm2020/lib/grids/headers/grid-header-row.component.mjs +3 -3
- 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 +6 -6
- 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 +4 -4
- 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/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 +4 -4
- 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/token.mjs +1 -1
- 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 +13 -7
- 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 +23 -23
- 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 +14 -14
- 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/overlay/overlay.mjs +3 -3
- package/esm2020/lib/services/overlay/scroll/scroll-strategy.mjs +1 -1
- package/esm2020/lib/services/transaction/transaction-factory.service.mjs +6 -6
- package/esm2020/lib/simple-combo/simple-combo.component.mjs +14 -11
- 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 +5 -5
- 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 +10 -10
- 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 +7 -7
- 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/fesm2015/igniteui-angular.mjs +1543 -1533
- package/fesm2015/igniteui-angular.mjs.map +1 -1
- package/fesm2020/igniteui-angular.mjs +1541 -1533
- package/fesm2020/igniteui-angular.mjs.map +1 -1
- package/lib/icon/icon.service.d.ts +4 -2
- package/package.json +1 -1
- package/schematics/tsconfig.tsbuildinfo +1 -1
|
@@ -14,9 +14,9 @@ let NEXT_ID = 0;
|
|
|
14
14
|
*/
|
|
15
15
|
export class IgxListThumbnailDirective {
|
|
16
16
|
}
|
|
17
|
-
IgxListThumbnailDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
18
|
-
IgxListThumbnailDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
17
|
+
IgxListThumbnailDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListThumbnailDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
18
|
+
IgxListThumbnailDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxListThumbnailDirective, selector: "[igxListThumbnail]", ngImport: i0 });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListThumbnailDirective, decorators: [{
|
|
20
20
|
type: Directive,
|
|
21
21
|
args: [{
|
|
22
22
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -29,9 +29,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
29
29
|
*/
|
|
30
30
|
export class IgxListActionDirective {
|
|
31
31
|
}
|
|
32
|
-
IgxListActionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
33
|
-
IgxListActionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
32
|
+
IgxListActionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListActionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
33
|
+
IgxListActionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxListActionDirective, selector: "[igxListAction]", ngImport: i0 });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListActionDirective, decorators: [{
|
|
35
35
|
type: Directive,
|
|
36
36
|
args: [{
|
|
37
37
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -44,9 +44,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
44
44
|
*/
|
|
45
45
|
export class IgxListLineDirective {
|
|
46
46
|
}
|
|
47
|
-
IgxListLineDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
48
|
-
IgxListLineDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
47
|
+
IgxListLineDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListLineDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
+
IgxListLineDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxListLineDirective, selector: "[igxListLine]", ngImport: i0 });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListLineDirective, decorators: [{
|
|
50
50
|
type: Directive,
|
|
51
51
|
args: [{
|
|
52
52
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -62,9 +62,9 @@ export class IgxListLineTitleDirective {
|
|
|
62
62
|
this.cssClass = 'igx-list__item-line-title';
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
IgxListLineTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
66
|
-
IgxListLineTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
65
|
+
IgxListLineTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListLineTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
66
|
+
IgxListLineTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxListLineTitleDirective, selector: "[igxListLineTitle]", host: { properties: { "class.igx-list__item-line-title": "this.cssClass" } }, ngImport: i0 });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListLineTitleDirective, decorators: [{
|
|
68
68
|
type: Directive,
|
|
69
69
|
args: [{
|
|
70
70
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -83,9 +83,9 @@ export class IgxListLineSubTitleDirective {
|
|
|
83
83
|
this.cssClass = 'igx-list__item-line-subtitle';
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
IgxListLineSubTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
87
|
-
IgxListLineSubTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
86
|
+
IgxListLineSubTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListLineSubTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
87
|
+
IgxListLineSubTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxListLineSubTitleDirective, selector: "[igxListLineSubTitle]", host: { properties: { "class.igx-list__item-line-subtitle": "this.cssClass" } }, ngImport: i0 });
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListLineSubTitleDirective, decorators: [{
|
|
89
89
|
type: Directive,
|
|
90
90
|
args: [{
|
|
91
91
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
@@ -425,9 +425,9 @@ export class IgxListComponent extends IgxListBaseDirective {
|
|
|
425
425
|
}
|
|
426
426
|
}
|
|
427
427
|
}
|
|
428
|
-
IgxListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
429
|
-
IgxListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.
|
|
430
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
428
|
+
IgxListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListComponent, deps: [{ token: i0.ElementRef }, { token: DisplayDensityToken, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
429
|
+
IgxListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxListComponent, selector: "igx-list", inputs: { panEndTriggeringThreshold: "panEndTriggeringThreshold", id: "id", allowLeftPanning: "allowLeftPanning", allowRightPanning: "allowRightPanning", isLoading: "isLoading", resourceStrings: "resourceStrings" }, outputs: { leftPan: "leftPan", rightPan: "rightPan", startPan: "startPan", endPan: "endPan", resetPan: "resetPan", panStateChange: "panStateChange", itemClicked: "itemClicked" }, host: { properties: { "attr.id": "this.id", "attr.role": "this.role", "class.igx-list--empty": "this.isListEmpty", "class.igx-list": "this.cssClass", "class.igx-list--compact": "this.cssClassCompact", "class.igx-list--cosy": "this.cssClassCosy" } }, providers: [{ provide: IgxListBaseDirective, useExisting: IgxListComponent }], queries: [{ propertyName: "emptyListTemplate", first: true, predicate: IgxEmptyListTemplateDirective, descendants: true, read: IgxEmptyListTemplateDirective }, { propertyName: "dataLoadingTemplate", first: true, predicate: IgxDataLoadingTemplateDirective, descendants: true, read: IgxDataLoadingTemplateDirective }, { propertyName: "listItemLeftPanningTemplate", first: true, predicate: IgxListItemLeftPanningTemplateDirective, descendants: true, read: IgxListItemLeftPanningTemplateDirective }, { propertyName: "listItemRightPanningTemplate", first: true, predicate: IgxListItemRightPanningTemplateDirective, descendants: true, read: IgxListItemRightPanningTemplateDirective }, { propertyName: "children", predicate: i0.forwardRef(function () { return IgxListItemComponent; }), descendants: true }], viewQueries: [{ propertyName: "defaultEmptyListTemplate", first: true, predicate: ["defaultEmptyList"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultDataLoadingTemplate", first: true, predicate: ["defaultDataLoading"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n\n<ng-template #defaultEmptyList>\n <article class=\"igx-list__message\">\n {{resourceStrings.igx_list_no_items}}\n </article>\n</ng-template>\n\n<ng-template #defaultDataLoading>\n <article class=\"igx-list__message\">\n {{resourceStrings.igx_list_loading}}\n </article>\n</ng-template>\n\n<ng-container *ngIf=\"!children || children.length === 0 || isLoading\">\n <ng-container *ngTemplateOutlet=\"template; context: context\">\n </ng-container>\n</ng-container>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
430
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListComponent, decorators: [{
|
|
431
431
|
type: Component,
|
|
432
432
|
args: [{ selector: 'igx-list', providers: [{ provide: IgxListBaseDirective, useExisting: IgxListComponent }], template: "<ng-content></ng-content>\n\n<ng-template #defaultEmptyList>\n <article class=\"igx-list__message\">\n {{resourceStrings.igx_list_no_items}}\n </article>\n</ng-template>\n\n<ng-template #defaultDataLoading>\n <article class=\"igx-list__message\">\n {{resourceStrings.igx_list_loading}}\n </article>\n</ng-template>\n\n<ng-container *ngIf=\"!children || children.length === 0 || isLoading\">\n <ng-container *ngTemplateOutlet=\"template; context: context\">\n </ng-container>\n</ng-container>\n" }]
|
|
433
433
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
@@ -506,8 +506,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
506
506
|
*/
|
|
507
507
|
export class IgxListModule {
|
|
508
508
|
}
|
|
509
|
-
IgxListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
510
|
-
IgxListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.
|
|
509
|
+
IgxListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
510
|
+
IgxListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListModule, declarations: [IgxListBaseDirective, IgxListComponent, IgxListItemComponent, IgxListThumbnailDirective, IgxListActionDirective, IgxListLineDirective, IgxListLineTitleDirective, IgxListLineSubTitleDirective, IgxDataLoadingTemplateDirective,
|
|
511
511
|
IgxEmptyListTemplateDirective,
|
|
512
512
|
IgxListItemLeftPanningTemplateDirective,
|
|
513
513
|
IgxListItemRightPanningTemplateDirective], imports: [CommonModule,
|
|
@@ -515,11 +515,11 @@ IgxListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
515
515
|
IgxEmptyListTemplateDirective,
|
|
516
516
|
IgxListItemLeftPanningTemplateDirective,
|
|
517
517
|
IgxListItemRightPanningTemplateDirective] });
|
|
518
|
-
IgxListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.
|
|
518
|
+
IgxListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListModule, imports: [[
|
|
519
519
|
CommonModule,
|
|
520
520
|
IgxRippleModule
|
|
521
521
|
]] });
|
|
522
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
522
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxListModule, decorators: [{
|
|
523
523
|
type: NgModule,
|
|
524
524
|
args: [{
|
|
525
525
|
declarations: [
|
|
@@ -555,4 +555,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
555
555
|
]
|
|
556
556
|
}]
|
|
557
557
|
}] });
|
|
558
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvbGlzdC9saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9saXN0L2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQUUsU0FBUyxFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUNILG9CQUFvQixFQUNwQiwrQkFBK0IsRUFDL0IsNkJBQTZCLEVBRTdCLHVDQUF1QyxFQUN2Qyx3Q0FBd0MsRUFDM0MsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBRWhFLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQTZCaEI7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHlCQUF5Qjs7c0hBQXpCLHlCQUF5QjswR0FBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUs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LHVDQUF1QztRQUN2Qyx3Q0FBd0M7MkdBT25DLGFBQWEsWUFMYjtZQUNMLFlBQVk7WUFDWixlQUFlO1NBQ2xCOzJGQUVRLGFBQWE7a0JBakN6QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsK0JBQStCO3dCQUMvQiw2QkFBNkI7d0JBQzdCLHVDQUF1Qzt3QkFDdkMsd0NBQXdDO3FCQUMzQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3dCQUM1QiwrQkFBK0I7d0JBQy9CLDZCQUE2Qjt3QkFDN0IsdUNBQXVDO3dCQUN2Qyx3Q0FBd0M7cUJBQzNDO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBPcHRpb25hbCxcbiAgICBJbmplY3QsIERpcmVjdGl2ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSWd4UmlwcGxlTW9kdWxlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IElneExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgSWd4TGlzdEJhc2VEaXJlY3RpdmUsXG4gICAgSWd4RGF0YUxvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hFbXB0eUxpc3RUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hMaXN0UGFuU3RhdGUsXG4gICAgSWd4TGlzdEl0ZW1MZWZ0UGFubmluZ1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneExpc3RJdGVtUmlnaHRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmVcbn0gZnJvbSAnLi9saXN0LmNvbW1vbic7XG5pbXBvcnQgeyBJRGlzcGxheURlbnNpdHlPcHRpb25zLCBEaXNwbGF5RGVuc2l0eVRva2VuLCBEaXNwbGF5RGVuc2l0eSB9IGZyb20gJy4uL2NvcmUvZGVuc2l0eSc7XG5pbXBvcnQgeyBJQmFzZUV2ZW50QXJncyB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUxpc3RSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vbGlzdC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQ3VycmVudFJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uL2NvcmUvaTE4bi9yZXNvdXJjZXMnO1xuXG5sZXQgTkVYVF9JRCA9IDA7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgcGFuU3RhdGVDaGFuZ2UgaWd4TGlzdCBldmVudCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGFuU3RhdGVDaGFuZ2VFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgb2xkU3RhdGU6IElneExpc3RQYW5TdGF0ZTtcbiAgICBuZXdTdGF0ZTogSWd4TGlzdFBhblN0YXRlO1xuICAgIGl0ZW06IElneExpc3RJdGVtQ29tcG9uZW50O1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgdGhlIGxpc3RJdGVtQ2xpY2sgaWd4TGlzdCBldmVudCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTGlzdEl0ZW1DbGlja0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICBpdGVtOiBJZ3hMaXN0SXRlbUNvbXBvbmVudDtcbiAgICBldmVudDogRXZlbnQ7XG4gICAgZGlyZWN0aW9uOiBJZ3hMaXN0UGFuU3RhdGU7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgbGlzdEl0ZW1QYW5uaW5nIGlneExpc3QgZXZlbnQgYXJndW1lbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUxpc3RJdGVtUGFubmluZ0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICBpdGVtOiBJZ3hMaXN0SXRlbUNvbXBvbmVudDtcbiAgICBkaXJlY3Rpb246IElneExpc3RQYW5TdGF0ZTtcbiAgICBrZWVwSXRlbTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBpZ3hMaXN0VGh1bWJuYWlsIGlzIGNvbnRhaW5lciBmb3IgdGhlIExpc3QgbWVkaWFcbiAqIFVzZSBpdCB0byB3cmFwIGFueXRoaW5nIHlvdSB3YW50IHRvIGJlIHVzZWQgYXMgYSB0aHVtYm5haWwuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbaWd4TGlzdFRodW1ibmFpbF0nXG59KVxuZXhwb3J0IGNsYXNzIElneExpc3RUaHVtYm5haWxEaXJlY3RpdmUge31cblxuLyoqXG4gKiBpZ3hMaXN0QWN0aW9uIGlzIGNvbnRhaW5lciBmb3IgdGhlIExpc3QgYWN0aW9uXG4gKiBVc2UgaXQgdG8gd3JhcCBhbnl0aGluZyB5b3Ugd2FudCB0byBiZSB1c2VkIGFzIGEgbGlzdCBhY3Rpb246IGljb24sIGNoZWNrYm94Li4uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbaWd4TGlzdEFjdGlvbl0nXG59KVxuZXhwb3J0IGNsYXNzIElneExpc3RBY3Rpb25EaXJlY3RpdmUge31cblxuLyoqXG4gKiBpZ3hMaXN0TGluZSBpcyBjb250YWluZXIgZm9yIHRoZSBMaXN0IHRleHQgY29udGVudFxuICogVXNlIGl0IHRvIHdyYXAgYW55dGhpbmcgeW91IHdhbnQgdG8gYmUgdXNlZCBhcyBhIHBsYW5lIHRleHQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbaWd4TGlzdExpbmVdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hMaXN0TGluZURpcmVjdGl2ZSB7fVxuXG4vKipcbiAqIGlneExpc3RMaW5lVGl0bGUgaXMgYSBkaXJlY3RpdmUgdGhhdCBhZGQgY2xhc3MgdG8gdGhlIHRhcmdldCBlbGVtZW50XG4gKiBVc2UgaXQgdG8gbWFrZSBhbnl0aGluZyB0byBsb29rIGxpa2UgbGlzdCBUaXRsZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tpZ3hMaXN0TGluZVRpdGxlXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4TGlzdExpbmVUaXRsZURpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtbGlzdF9faXRlbS1saW5lLXRpdGxlJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWxpc3RfX2l0ZW0tbGluZS10aXRsZSc7XG59XG5cbi8qKlxuICogaWd4TGlzdExpbmVTdWJUaXRsZSBpcyBhIGRpcmVjdGl2ZSB0aGF0IGFkZCBjbGFzcyB0byB0aGUgdGFyZ2V0IGVsZW1lbnRcbiAqIFVzZSBpdCB0byBtYWtlIGFueXRoaW5nIHRvIGxvb2sgbGlrZSBsaXN0IFN1YnRpdGxlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2lneExpc3RMaW5lU3ViVGl0bGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hMaXN0TGluZVN1YlRpdGxlRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1saXN0X19pdGVtLWxpbmUtc3VidGl0bGUnKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtbGlzdF9faXRlbS1saW5lLXN1YnRpdGxlJztcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhIGNvbGxlY3Rpb24gb2YgZGF0YSBpdGVtcyBpbiBhIHRlbXBsYXRhYmxlIGxpc3QgZm9ybWF0XG4gKlxuICogQGlneE1vZHVsZSBJZ3hMaXN0TW9kdWxlXG4gKlxuICogQGlneFRoZW1lIGlneC1saXN0LXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIGxpc3QsIGRhdGFcbiAqXG4gKiBAaWd4R3JvdXAgR3JpZHMgJiBMaXN0c1xuICpcbiAqIEByZW1hcmtzXG4gKiBUaGUgSWduaXRlIFVJIExpc3QgZGlzcGxheXMgcm93cyBvZiBpdGVtcyBhbmQgc3VwcG9ydHMgb25lIG9yIG1vcmUgaGVhZGVyIGl0ZW1zIGFzIHdlbGwgYXMgc2VhcmNoIGFuZCBmaWx0ZXJpbmdcbiAqIG9mIGxpc3QgaXRlbXMuIEVhY2ggbGlzdCBpdGVtIGlzIGNvbXBsZXRlbHkgdGVtcGxhdGFibGUgYW5kIHdpbGwgc3VwcG9ydCBhbnkgdmFsaWQgSFRNTCBvciBBbmd1bGFyIGNvbXBvbmVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlneC1saXN0PlxuICogICA8aWd4LWxpc3QtaXRlbSBpc0hlYWRlcj1cInRydWVcIj5Db250YWN0czwvaWd4LWxpc3QtaXRlbT5cbiAqICAgPGlneC1saXN0LWl0ZW0gKm5nRm9yPVwibGV0IGNvbnRhY3Qgb2YgY29udGFjdHNcIj5cbiAqICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIj57eyBjb250YWN0Lm5hbWUgfX08L3NwYW4+XG4gKiAgICAgPHNwYW4gY2xhc3M9XCJwaG9uZVwiPnt7IGNvbnRhY3QucGhvbmUgfX08L3NwYW4+XG4gKiAgIDwvaWd4LWxpc3QtaXRlbT5cbiAqIDwvaWd4LWxpc3Q+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsaXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IElneExpc3RCYXNlRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogSWd4TGlzdENvbXBvbmVudCB9XVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hMaXN0Q29tcG9uZW50IGV4dGVuZHMgSWd4TGlzdEJhc2VEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBjb2xsZWN0aW9uIG9mIGFsbCBpdGVtcyBhbmQgaGVhZGVycyBpbiB0aGUgbGlzdC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBsaXN0Q2hpbGRyZW46IFF1ZXJ5TGlzdCA9IHRoaXMubGlzdC5jaGlsZHJlbjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gSWd4TGlzdEl0ZW1Db21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHVibGljIGNoaWxkcmVuOiBRdWVyeUxpc3Q8SWd4TGlzdEl0ZW1Db21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBlbXB0eSBsaXN0IHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGlzIHRlbXBsYXRlIGlzIHVzZWQgYnkgSWd4TGlzdCBpbiBjYXNlIHRoZXJlIGFyZSBubyBsaXN0IGl0ZW1zXG4gICAgICogZGVmaW5lZCBhbmQgYGlzTG9hZGluZ2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3Q+XG4gICAgICogICA8bmctdGVtcGxhdGUgaWd4RW1wdHlMaXN0PlxuICAgICAqICAgICA8cCBjbGFzcz1cImVtcHR5XCI+Tm8gY29udGFjdHMhIDooPC9wPlxuICAgICAqICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiA8L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgZW1wdHlUZW1wbGF0ZSA9IHRoaXMubGlzdC5lbXB0eUxpc3RUZW1wbGF0ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKElneEVtcHR5TGlzdFRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IElneEVtcHR5TGlzdFRlbXBsYXRlRGlyZWN0aXZlIH0pXG4gICAgcHVibGljIGVtcHR5TGlzdFRlbXBsYXRlOiBJZ3hFbXB0eUxpc3RUZW1wbGF0ZURpcmVjdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgbGlzdCBsb2FkaW5nIHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGlzIHRlbXBsYXRlIGlzIHVzZWQgYnkgSWd4TGlzdCBpbiBjYXNlIHRoZXJlIGFyZSBubyBsaXN0IGl0ZW1zIGRlZmluZWQgYW5kIGBpc0xvYWRpbmdgIGlzIHNldCB0byBgdHJ1ZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3Q+XG4gICAgICogICA8bmctdGVtcGxhdGUgaWd4RGF0YUxvYWRpbmc+XG4gICAgICogICAgIDxwPlBhdGllbmNlLCB3ZSBhcmUgY3VycmVudGx5IGxvYWRpbmcgeW91ciBkYXRhLi4uPC9wPlxuICAgICAqICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiA8L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbG9hZGluZ1RlbXBsYXRlID0gdGhpcy5saXN0LmRhdGFMb2FkaW5nVGVtcGxhdGU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hEYXRhTG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IElneERhdGFMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUgfSlcbiAgICBwdWJsaWMgZGF0YUxvYWRpbmdUZW1wbGF0ZTogSWd4RGF0YUxvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgdGVtcGxhdGUgZm9yIGxlZnQgcGFubmluZyBhIGxpc3QgaXRlbS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgbnVsbGAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3QgW2FsbG93TGVmdFBhbm5pbmddPVwidHJ1ZVwiPlxuICAgICAqICAgPG5nLXRlbXBsYXRlIGlneExpc3RJdGVtTGVmdFBhbm5pbmc+XG4gICAgICogICAgIDxpZ3gtaWNvbj5kZWxldGU8L2lneC1pY29uPkRlbGV0ZVxuICAgICAqICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiA8L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXRlbUxlZnRQYW5UbXBsID0gdGhpcy5saXN0Lmxpc3RJdGVtTGVmdFBhbm5pbmdUZW1wbGF0ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKElneExpc3RJdGVtTGVmdFBhbm5pbmdUZW1wbGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBJZ3hMaXN0SXRlbUxlZnRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmUgfSlcbiAgICBwdWJsaWMgbGlzdEl0ZW1MZWZ0UGFubmluZ1RlbXBsYXRlOiBJZ3hMaXN0SXRlbUxlZnRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmU7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIHRlbXBsYXRlIGZvciByaWdodCBwYW5uaW5nIGEgbGlzdCBpdGVtLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBudWxsYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCBbYWxsb3dSaWdodFBhbm5pbmddID0gXCJ0cnVlXCI+XG4gICAgICogICA8bmctdGVtcGxhdGUgaWd4TGlzdEl0ZW1SaWdodFBhbm5pbmc+XG4gICAgICogICAgIDxpZ3gtaWNvbj5jYWxsPC9pZ3gtaWNvbj5EaWFsXG4gICAgICogICA8L25nLXRlbXBsYXRlPlxuICAgICAqIDwvaWd4LWxpc3Q+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpdGVtUmlnaHRQYW5UbXBsID0gdGhpcy5saXN0Lmxpc3RJdGVtUmlnaHRQYW5uaW5nVGVtcGxhdGU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hMaXN0SXRlbVJpZ2h0UGFubmluZ1RlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IElneExpc3RJdGVtUmlnaHRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmUgfSlcbiAgICBwdWJsaWMgbGlzdEl0ZW1SaWdodFBhbm5pbmdUZW1wbGF0ZTogSWd4TGlzdEl0ZW1SaWdodFBhbm5pbmdUZW1wbGF0ZURpcmVjdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGEgdGhyZXNob2xkIGFmdGVyIHdoaWNoIHRoZSBpdGVtJ3MgcGFubmluZyB3aWxsIGJlIGNvbXBsZXRlZCBhdXRvbWF0aWNhbGx5LlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBCeSBkZWZhdWx0IHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIDAuNSB3aGljaCBpcyA1MCUgb2YgdGhlIGxpc3QgaXRlbSdzIHdpZHRoLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1saXN0IFtwYW5FbmRUcmlnZ2VyaW5nVGhyZXNob2xkXT1cIjAuOFwiPjwvaWd4LWxpc3Q+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFuRW5kVHJpZ2dlcmluZ1RocmVzaG9sZCA9IDAuNTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYGlkYCBvZiB0aGUgbGlzdC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogSWYgbm90IHNldCwgdGhlIGBpZGAgb2YgdGhlIGZpcnN0IGxpc3QgY29tcG9uZW50IHdpbGwgYmUgYFwiaWd4LWxpc3QtMFwiYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCBpZD1cIm15LWZpcnN0LWxpc3RcIj48L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbGlzdElkID0gdGhpcy5saXN0LmlkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgaWd4LWxpc3QtJHtORVhUX0lEKyt9YDtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB3aGV0aGVyIHRoZSBsZWZ0IHBhbm5pbmcgb2YgYW4gaXRlbSBpcyBhbGxvd2VkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3QgW2FsbG93TGVmdFBhbm5pbmddPVwidHJ1ZVwiPjwvaWd4LWxpc3Q+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0xlZnRQYW5uaW5nQWxsb3dlZCA9IHRoaXMubGlzdC5hbGxvd0xlZnRQYW5uaW5nO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93TGVmdFBhbm5pbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB3aGV0aGVyIHRoZSByaWdodCBwYW5uaW5nIG9mIGFuIGl0ZW0gaXMgYWxsb3dlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1saXN0IFthbGxvd1JpZ2h0UGFubmluZ109XCJ0cnVlXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzUmlnaHRQYW5uaW5nQWxsb3dlZCA9IHRoaXMubGlzdC5hbGxvd1JpZ2h0UGFubmluZztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd1JpZ2h0UGFubmluZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIGxpc3QgaXMgY3VycmVudGx5IGxvYWRpbmcgZGF0YS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogU2V0IGl0IHRvIGRpc3BsYXkgdGhlIGRhdGFMb2FkaW5nVGVtcGxhdGUgd2hpbGUgZGF0YSBpcyBiZWluZyByZXRyaWV2ZWQuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtbGlzdCBbaXNMb2FkaW5nXT1cInRydWVcIj48L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNMb2FkaW5nID0gdGhpcy5saXN0LmlzTG9hZGluZztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGxlZnQgcGFuIGdlc3R1cmUgaXMgZXhlY3V0ZWQgb24gYSBsaXN0IGl0ZW0uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIGFuIG9iamVjdCBvZiB0eXBlIGBJTGlzdEl0ZW1QYW5uaW5nRXZlbnRBcmdzYCBhcyBhbiBldmVudCBhcmd1bWVudC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCBbYWxsb3dMZWZ0UGFubmluZ109XCJ0cnVlXCIgKGxlZnRQYW4pPVwibGVmdFBhbigkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgbGVmdFBhbiA9IG5ldyBFdmVudEVtaXR0ZXI8SUxpc3RJdGVtUGFubmluZ0V2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJpZ2h0IHBhbiBnZXN0dXJlIGlzIGV4ZWN1dGVkIG9uIGEgbGlzdCBpdGVtLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBQcm92aWRlcyBhIHJlZmVyZW5jZSB0byBhbiBvYmplY3Qgb2YgdHlwZSBgSUxpc3RJdGVtUGFubmluZ0V2ZW50QXJnc2AgYXMgYW4gZXZlbnQgYXJndW1lbnQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3QgW2FsbG93UmlnaHRQYW5uaW5nXT1cInRydWVcIiAocmlnaHRQYW4pPVwicmlnaHRQYW4oJGV2ZW50KVwiPjwvaWd4LWxpc3Q+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJpZ2h0UGFuID0gbmV3IEV2ZW50RW1pdHRlcjxJTGlzdEl0ZW1QYW5uaW5nRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcGFuIGdlc3R1cmUgaXMgc3RhcnRlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogUHJvdmlkZXMgYSByZWZlcmVuY2UgdG8gYW4gb2JqZWN0IG9mIHR5cGUgYElMaXN0SXRlbVBhbm5pbmdFdmVudEFyZ3NgIGFzIGFuIGV2ZW50IGFyZ3VtZW50LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1saXN0IChzdGFydFBhbik9XCJzdGFydFBhbigkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc3RhcnRQYW4gPSBuZXcgRXZlbnRFbWl0dGVyPElMaXN0SXRlbVBhbm5pbmdFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBwYW4gZ2VzdHVyZSBpcyBjb21wbGV0ZWQgb3IgY2FuY2VsZWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIGFuIG9iamVjdCBvZiB0eXBlIGBJTGlzdEl0ZW1QYW5uaW5nRXZlbnRBcmdzYCBhcyBhbiBldmVudCBhcmd1bWVudC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCAoZW5kUGFuKT1cImVuZFBhbigkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZW5kUGFuID0gbmV3IEV2ZW50RW1pdHRlcjxJTGlzdEl0ZW1QYW5uaW5nRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcGFuIGl0ZW0gaXMgcmV0dXJuZWQgdG8gaXRzIG9yaWdpbmFsIHBvc2l0aW9uLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBQcm92aWRlcyBhIHJlZmVyZW5jZSB0byBhbiBvYmplY3Qgb2YgdHlwZSBgSWd4TGlzdENvbXBvbmVudGAgYXMgYW4gZXZlbnQgYXJndW1lbnQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3QgKHJlc2V0UGFuKT1cInJlc2V0UGFuKCRldmVudClcIj48L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgICBAT3V0cHV0KClcbiAgICAgcHVibGljIHJlc2V0UGFuID0gbmV3IEV2ZW50RW1pdHRlcjxJZ3hMaXN0Q29tcG9uZW50PigpO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBwYW4gZ2VzdHVyZSBpcyBleGVjdXRlZCBvbiBhIGxpc3QgaXRlbS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogUHJvdmlkZXMgcmVmZXJlbmNlcyB0byB0aGUgYElneExpc3RJdGVtQ29tcG9uZW50YCBhbmQgYElneExpc3RQYW5TdGF0ZWAgYXMgZXZlbnQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1saXN0IChwYW5TdGF0ZUNoYW5nZSk9XCJwYW5TdGF0ZUNoYW5nZSgkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGFuU3RhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElQYW5TdGF0ZUNoYW5nZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGxpc3QgaXRlbSBpcyBjbGlja2VkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBQcm92aWRlcyByZWZlcmVuY2VzIHRvIHRoZSBgSWd4TGlzdEl0ZW1Db21wb25lbnRgIGFuZCBgRXZlbnRgIGFzIGV2ZW50IGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCAoaXRlbUNsaWNrZWQpPVwib25JdGVtQ2xpY2tlZCgkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaXRlbUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElMaXN0SXRlbUNsaWNrRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRFbXB0eUxpc3QnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdEVtcHR5TGlzdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHREYXRhTG9hZGluZycsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkZWZhdWx0RGF0YUxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHByaXZhdGUgX3Jlc291cmNlU3RyaW5ncyA9IEN1cnJlbnRSZXNvdXJjZVN0cmluZ3MuTGlzdFJlc1N0cmluZ3M7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgdXNlcyBFTiByZXNvdXJjZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlc291cmNlU3RyaW5ncyh2YWx1ZTogSUxpc3RSZXNvdXJjZVN0cmluZ3MpIHtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcmVzb3VyY2VTdHJpbmdzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJlc291cmNlU3RyaW5ncygpOiBJTGlzdFJlc291cmNlU3RyaW5ncyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVN0cmluZ3M7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbikgcHJvdGVjdGVkIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoX2Rpc3BsYXlEZW5zaXR5T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgc29ydGVkQ2hpbGRyZW4oKTogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSB7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgIC5zb3J0KChhOiBJZ3hMaXN0SXRlbUNvbXBvbmVudCwgYjogSWd4TGlzdEl0ZW1Db21wb25lbnQpID0+IGEuaW5kZXggLSBiLmluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgcm9sZWAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGxpc3RSb2xlID0gIHRoaXMubGlzdC5yb2xlO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwdWJsaWMgZ2V0IHJvbGUoKSB7XG4gICAgICAgIHJldHVybiAnbGlzdCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgbGlzdCBpcyBlbXB0eS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0VtcHR5ID0gIHRoaXMubGlzdC5pc0xpc3RFbXB0eTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1saXN0LS1lbXB0eScpXG4gICAgcHVibGljIGdldCBpc0xpc3RFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNoaWxkcmVuIHx8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1saXN0JylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNMaXN0RW1wdHkgJiYgdGhpcy5kaXNwbGF5RGVuc2l0eSA9PT0gRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWxpc3QtLWNvbXBhY3QnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NDb21wYWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNMaXN0RW1wdHkgJiYgdGhpcy5kaXNwbGF5RGVuc2l0eSA9PT0gRGlzcGxheURlbnNpdHkuY29tcGFjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtbGlzdC0tY29zeScpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc0Nvc3koKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0xpc3RFbXB0eSAmJiB0aGlzLmRpc3BsYXlEZW5zaXR5ID09PSBEaXNwbGF5RGVuc2l0eS5jb3N5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGxpc3QgYGl0ZW1zYCBleGNsdWRpbmcgdGhlIGhlYWRlciBvbmVzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGxpc3RJdGVtczogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSA9IHRoaXMubGlzdC5pdGVtcztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGl0ZW1zKCk6IElneExpc3RJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICBjb25zdCBpdGVtczogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5jaGlsZHJlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuc29ydGVkQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLmlzSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgaGVhZGVyIGxpc3QgYGl0ZW1zYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBsaXN0SGVhZGVyczogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSA9ICB0aGlzLmxpc3QuaGVhZGVycztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGhlYWRlcnMoKTogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnM6IElneExpc3RJdGVtQ29tcG9uZW50W10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuLnRvQXJyYXkoKSkge1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZC5pc0hlYWRlcikge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGVhZGVycztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgY29udGV4dGAgb2JqZWN0IG9mIHRoZSB0ZW1wbGF0ZSBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHJlbWFya1xuICAgICAqIEdldHMgdGhlIGBjb250ZXh0YCBvYmplY3Qgd2hpY2ggcmVwcmVzZW50cyB0aGUgYHRlbXBsYXRlIGNvbnRleHRgIGJpbmRpbmcgaW50byB0aGUgYGxpc3QgY29udGFpbmVyYFxuICAgICAqIGJ5IHByb3ZpZGluZyB0aGUgYCRpbXBsaWNpdGAgZGVjbGFyYXRpb24gd2hpY2ggaXMgdGhlIGBJZ3hMaXN0Q29tcG9uZW50YCBpdHNlbGYuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbGlzdENvbXBvbmVudCA9ICB0aGlzLmxpc3QuY29udGV4dDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGNvbnRleHQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogdGhpc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBgVGVtcGxhdGVSZWZgIHRvIHRoZSBjdXJyZW50bHkgdXNlZCB0ZW1wbGF0ZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBsaXN0VGVtcGxhdGUgPSB0aGlzLmxpc3QudGVtcGxhdGU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCB0ZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhTG9hZGluZ1RlbXBsYXRlID8gdGhpcy5kYXRhTG9hZGluZ1RlbXBsYXRlLnRlbXBsYXRlIDogdGhpcy5kZWZhdWx0RGF0YUxvYWRpbmdUZW1wbGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVtcHR5TGlzdFRlbXBsYXRlID8gdGhpcy5lbXB0eUxpc3RUZW1wbGF0ZS50ZW1wbGF0ZSA6IHRoaXMuZGVmYXVsdEVtcHR5TGlzdFRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgSWd4TGlzdEJhc2VEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RDb21wb25lbnQsXG4gICAgICAgIElneExpc3RJdGVtQ29tcG9uZW50LFxuICAgICAgICBJZ3hMaXN0VGh1bWJuYWlsRGlyZWN0aXZlLFxuICAgICAgICBJZ3hMaXN0QWN0aW9uRGlyZWN0aXZlLFxuICAgICAgICBJZ3hMaXN0TGluZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdExpbmVUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdExpbmVTdWJUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4RGF0YUxvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4RW1wdHlMaXN0VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RJdGVtTGVmdFBhbm5pbmdUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdEl0ZW1SaWdodFBhbm5pbmdUZW1wbGF0ZURpcmVjdGl2ZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBJZ3hMaXN0Q29tcG9uZW50LFxuICAgICAgICBJZ3hMaXN0SXRlbUNvbXBvbmVudCxcbiAgICAgICAgSWd4TGlzdFRodW1ibmFpbERpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdEFjdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdExpbmVEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RMaW5lVGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RMaW5lU3ViVGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIElneERhdGFMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIElneEVtcHR5TGlzdFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBJZ3hMaXN0SXRlbUxlZnRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RJdGVtUmlnaHRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmVcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBJZ3hSaXBwbGVNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElneExpc3RNb2R1bGUge1xufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRFbXB0eUxpc3Q+XG4gICAgPGFydGljbGUgY2xhc3M9XCJpZ3gtbGlzdF9fbWVzc2FnZVwiPlxuICAgICAgICB7e3Jlc291cmNlU3RyaW5ncy5pZ3hfbGlzdF9ub19pdGVtc319XG4gICAgPC9hcnRpY2xlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RGF0YUxvYWRpbmc+XG4gICAgPGFydGljbGUgY2xhc3M9XCJpZ3gtbGlzdF9fbWVzc2FnZVwiPlxuICAgICAgICB7e3Jlc291cmNlU3RyaW5ncy5pZ3hfbGlzdF9sb2FkaW5nfX1cbiAgICA8L2FydGljbGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWNoaWxkcmVuIHx8IGNoaWxkcmVuLmxlbmd0aCA9PT0gMCB8fCBpc0xvYWRpbmdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
558
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvbGlzdC9saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9saXN0L2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFFTixXQUFXLEVBQ1gsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQUUsU0FBUyxFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUNILG9CQUFvQixFQUNwQiwrQkFBK0IsRUFDL0IsNkJBQTZCLEVBRTdCLHVDQUF1QyxFQUN2Qyx3Q0FBd0MsRUFDM0MsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBRWhFLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQTZCaEI7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHlCQUF5Qjs7c0hBQXpCLHlCQUF5QjswR0FBekIseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUs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LHVDQUF1QztRQUN2Qyx3Q0FBd0M7MkdBT25DLGFBQWEsWUFMYjtZQUNMLFlBQVk7WUFDWixlQUFlO1NBQ2xCOzJGQUVRLGFBQWE7a0JBakN6QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDVixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQix5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsK0JBQStCO3dCQUMvQiw2QkFBNkI7d0JBQzdCLHVDQUF1Qzt3QkFDdkMsd0NBQXdDO3FCQUMzQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3dCQUM1QiwrQkFBK0I7d0JBQy9CLDZCQUE2Qjt3QkFDN0IsdUNBQXVDO3dCQUN2Qyx3Q0FBd0M7cUJBQzNDO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBPcHRpb25hbCxcbiAgICBJbmplY3QsIERpcmVjdGl2ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSWd4UmlwcGxlTW9kdWxlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZSc7XG5cbmltcG9ydCB7IElneExpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgSWd4TGlzdEJhc2VEaXJlY3RpdmUsXG4gICAgSWd4RGF0YUxvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hFbXB0eUxpc3RUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICBJZ3hMaXN0UGFuU3RhdGUsXG4gICAgSWd4TGlzdEl0ZW1MZWZ0UGFubmluZ1RlbXBsYXRlRGlyZWN0aXZlLFxuICAgIElneExpc3RJdGVtUmlnaHRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmVcbn0gZnJvbSAnLi9saXN0LmNvbW1vbic7XG5pbXBvcnQgeyBJRGlzcGxheURlbnNpdHlPcHRpb25zLCBEaXNwbGF5RGVuc2l0eVRva2VuLCBEaXNwbGF5RGVuc2l0eSB9IGZyb20gJy4uL2NvcmUvZGVuc2l0eSc7XG5pbXBvcnQgeyBJQmFzZUV2ZW50QXJncyB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUxpc3RSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi9jb3JlL2kxOG4vbGlzdC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQ3VycmVudFJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uL2NvcmUvaTE4bi9yZXNvdXJjZXMnO1xuXG5sZXQgTkVYVF9JRCA9IDA7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgcGFuU3RhdGVDaGFuZ2UgaWd4TGlzdCBldmVudCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGFuU3RhdGVDaGFuZ2VFdmVudEFyZ3MgZXh0ZW5kcyBJQmFzZUV2ZW50QXJncyB7XG4gICAgb2xkU3RhdGU6IElneExpc3RQYW5TdGF0ZTtcbiAgICBuZXdTdGF0ZTogSWd4TGlzdFBhblN0YXRlO1xuICAgIGl0ZW06IElneExpc3RJdGVtQ29tcG9uZW50O1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgdGhlIGxpc3RJdGVtQ2xpY2sgaWd4TGlzdCBldmVudCBhcmd1bWVudHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTGlzdEl0ZW1DbGlja0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICBpdGVtOiBJZ3hMaXN0SXRlbUNvbXBvbmVudDtcbiAgICBldmVudDogRXZlbnQ7XG4gICAgZGlyZWN0aW9uOiBJZ3hMaXN0UGFuU3RhdGU7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgbGlzdEl0ZW1QYW5uaW5nIGlneExpc3QgZXZlbnQgYXJndW1lbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUxpc3RJdGVtUGFubmluZ0V2ZW50QXJncyBleHRlbmRzIElCYXNlRXZlbnRBcmdzIHtcbiAgICBpdGVtOiBJZ3hMaXN0SXRlbUNvbXBvbmVudDtcbiAgICBkaXJlY3Rpb246IElneExpc3RQYW5TdGF0ZTtcbiAgICBrZWVwSXRlbTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBpZ3hMaXN0VGh1bWJuYWlsIGlzIGNvbnRhaW5lciBmb3IgdGhlIExpc3QgbWVkaWFcbiAqIFVzZSBpdCB0byB3cmFwIGFueXRoaW5nIHlvdSB3YW50IHRvIGJlIHVzZWQgYXMgYSB0aHVtYm5haWwuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbaWd4TGlzdFRodW1ibmFpbF0nXG59KVxuZXhwb3J0IGNsYXNzIElneExpc3RUaHVtYm5haWxEaXJlY3RpdmUge31cblxuLyoqXG4gKiBpZ3hMaXN0QWN0aW9uIGlzIGNvbnRhaW5lciBmb3IgdGhlIExpc3QgYWN0aW9uXG4gKiBVc2UgaXQgdG8gd3JhcCBhbnl0aGluZyB5b3Ugd2FudCB0byBiZSB1c2VkIGFzIGEgbGlzdCBhY3Rpb246IGljb24sIGNoZWNrYm94Li4uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbaWd4TGlzdEFjdGlvbl0nXG59KVxuZXhwb3J0IGNsYXNzIElneExpc3RBY3Rpb25EaXJlY3RpdmUge31cblxuLyoqXG4gKiBpZ3hMaXN0TGluZSBpcyBjb250YWluZXIgZm9yIHRoZSBMaXN0IHRleHQgY29udGVudFxuICogVXNlIGl0IHRvIHdyYXAgYW55dGhpbmcgeW91IHdhbnQgdG8gYmUgdXNlZCBhcyBhIHBsYW5lIHRleHQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbaWd4TGlzdExpbmVdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hMaXN0TGluZURpcmVjdGl2ZSB7fVxuXG4vKipcbiAqIGlneExpc3RMaW5lVGl0bGUgaXMgYSBkaXJlY3RpdmUgdGhhdCBhZGQgY2xhc3MgdG8gdGhlIHRhcmdldCBlbGVtZW50XG4gKiBVc2UgaXQgdG8gbWFrZSBhbnl0aGluZyB0byBsb29rIGxpa2UgbGlzdCBUaXRsZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tpZ3hMaXN0TGluZVRpdGxlXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4TGlzdExpbmVUaXRsZURpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtbGlzdF9faXRlbS1saW5lLXRpdGxlJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWxpc3RfX2l0ZW0tbGluZS10aXRsZSc7XG59XG5cbi8qKlxuICogaWd4TGlzdExpbmVTdWJUaXRsZSBpcyBhIGRpcmVjdGl2ZSB0aGF0IGFkZCBjbGFzcyB0byB0aGUgdGFyZ2V0IGVsZW1lbnRcbiAqIFVzZSBpdCB0byBtYWtlIGFueXRoaW5nIHRvIGxvb2sgbGlrZSBsaXN0IFN1YnRpdGxlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2lneExpc3RMaW5lU3ViVGl0bGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hMaXN0TGluZVN1YlRpdGxlRGlyZWN0aXZlIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1saXN0X19pdGVtLWxpbmUtc3VidGl0bGUnKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtbGlzdF9faXRlbS1saW5lLXN1YnRpdGxlJztcbn1cblxuLyoqXG4gKiBEaXNwbGF5cyBhIGNvbGxlY3Rpb24gb2YgZGF0YSBpdGVtcyBpbiBhIHRlbXBsYXRhYmxlIGxpc3QgZm9ybWF0XG4gKlxuICogQGlneE1vZHVsZSBJZ3hMaXN0TW9kdWxlXG4gKlxuICogQGlneFRoZW1lIGlneC1saXN0LXRoZW1lXG4gKlxuICogQGlneEtleXdvcmRzIGxpc3QsIGRhdGFcbiAqXG4gKiBAaWd4R3JvdXAgR3JpZHMgJiBMaXN0c1xuICpcbiAqIEByZW1hcmtzXG4gKiBUaGUgSWduaXRlIFVJIExpc3QgZGlzcGxheXMgcm93cyBvZiBpdGVtcyBhbmQgc3VwcG9ydHMgb25lIG9yIG1vcmUgaGVhZGVyIGl0ZW1zIGFzIHdlbGwgYXMgc2VhcmNoIGFuZCBmaWx0ZXJpbmdcbiAqIG9mIGxpc3QgaXRlbXMuIEVhY2ggbGlzdCBpdGVtIGlzIGNvbXBsZXRlbHkgdGVtcGxhdGFibGUgYW5kIHdpbGwgc3VwcG9ydCBhbnkgdmFsaWQgSFRNTCBvciBBbmd1bGFyIGNvbXBvbmVudC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPGlneC1saXN0PlxuICogICA8aWd4LWxpc3QtaXRlbSBpc0hlYWRlcj1cInRydWVcIj5Db250YWN0czwvaWd4LWxpc3QtaXRlbT5cbiAqICAgPGlneC1saXN0LWl0ZW0gKm5nRm9yPVwibGV0IGNvbnRhY3Qgb2YgY29udGFjdHNcIj5cbiAqICAgICA8c3BhbiBjbGFzcz1cIm5hbWVcIj57eyBjb250YWN0Lm5hbWUgfX08L3NwYW4+XG4gKiAgICAgPHNwYW4gY2xhc3M9XCJwaG9uZVwiPnt7IGNvbnRhY3QucGhvbmUgfX08L3NwYW4+XG4gKiAgIDwvaWd4LWxpc3QtaXRlbT5cbiAqIDwvaWd4LWxpc3Q+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsaXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IElneExpc3RCYXNlRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogSWd4TGlzdENvbXBvbmVudCB9XVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hMaXN0Q29tcG9uZW50IGV4dGVuZHMgSWd4TGlzdEJhc2VEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBjb2xsZWN0aW9uIG9mIGFsbCBpdGVtcyBhbmQgaGVhZGVycyBpbiB0aGUgbGlzdC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBsaXN0Q2hpbGRyZW46IFF1ZXJ5TGlzdCA9IHRoaXMubGlzdC5jaGlsZHJlbjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gSWd4TGlzdEl0ZW1Db21wb25lbnQpLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHVibGljIGNoaWxkcmVuOiBRdWVyeUxpc3Q8SWd4TGlzdEl0ZW1Db21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBlbXB0eSBsaXN0IHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGlzIHRlbXBsYXRlIGlzIHVzZWQgYnkgSWd4TGlzdCBpbiBjYXNlIHRoZXJlIGFyZSBubyBsaXN0IGl0ZW1zXG4gICAgICogZGVmaW5lZCBhbmQgYGlzTG9hZGluZ2AgaXMgc2V0IHRvIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3Q+XG4gICAgICogICA8bmctdGVtcGxhdGUgaWd4RW1wdHlMaXN0PlxuICAgICAqICAgICA8cCBjbGFzcz1cImVtcHR5XCI+Tm8gY29udGFjdHMhIDooPC9wPlxuICAgICAqICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiA8L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgZW1wdHlUZW1wbGF0ZSA9IHRoaXMubGlzdC5lbXB0eUxpc3RUZW1wbGF0ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKElneEVtcHR5TGlzdFRlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IElneEVtcHR5TGlzdFRlbXBsYXRlRGlyZWN0aXZlIH0pXG4gICAgcHVibGljIGVtcHR5TGlzdFRlbXBsYXRlOiBJZ3hFbXB0eUxpc3RUZW1wbGF0ZURpcmVjdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgbGlzdCBsb2FkaW5nIHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGlzIHRlbXBsYXRlIGlzIHVzZWQgYnkgSWd4TGlzdCBpbiBjYXNlIHRoZXJlIGFyZSBubyBsaXN0IGl0ZW1zIGRlZmluZWQgYW5kIGBpc0xvYWRpbmdgIGlzIHNldCB0byBgdHJ1ZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3Q+XG4gICAgICogICA8bmctdGVtcGxhdGUgaWd4RGF0YUxvYWRpbmc+XG4gICAgICogICAgIDxwPlBhdGllbmNlLCB3ZSBhcmUgY3VycmVudGx5IGxvYWRpbmcgeW91ciBkYXRhLi4uPC9wPlxuICAgICAqICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiA8L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbG9hZGluZ1RlbXBsYXRlID0gdGhpcy5saXN0LmRhdGFMb2FkaW5nVGVtcGxhdGU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hEYXRhTG9hZGluZ1RlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IElneERhdGFMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUgfSlcbiAgICBwdWJsaWMgZGF0YUxvYWRpbmdUZW1wbGF0ZTogSWd4RGF0YUxvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgdGVtcGxhdGUgZm9yIGxlZnQgcGFubmluZyBhIGxpc3QgaXRlbS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgbnVsbGAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3QgW2FsbG93TGVmdFBhbm5pbmddPVwidHJ1ZVwiPlxuICAgICAqICAgPG5nLXRlbXBsYXRlIGlneExpc3RJdGVtTGVmdFBhbm5pbmc+XG4gICAgICogICAgIDxpZ3gtaWNvbj5kZWxldGU8L2lneC1pY29uPkRlbGV0ZVxuICAgICAqICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiA8L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXRlbUxlZnRQYW5UbXBsID0gdGhpcy5saXN0Lmxpc3RJdGVtTGVmdFBhbm5pbmdUZW1wbGF0ZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKElneExpc3RJdGVtTGVmdFBhbm5pbmdUZW1wbGF0ZURpcmVjdGl2ZSwgeyByZWFkOiBJZ3hMaXN0SXRlbUxlZnRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmUgfSlcbiAgICBwdWJsaWMgbGlzdEl0ZW1MZWZ0UGFubmluZ1RlbXBsYXRlOiBJZ3hMaXN0SXRlbUxlZnRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmU7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzL2dldHMgdGhlIHRlbXBsYXRlIGZvciByaWdodCBwYW5uaW5nIGEgbGlzdCBpdGVtLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBudWxsYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCBbYWxsb3dSaWdodFBhbm5pbmddID0gXCJ0cnVlXCI+XG4gICAgICogICA8bmctdGVtcGxhdGUgaWd4TGlzdEl0ZW1SaWdodFBhbm5pbmc+XG4gICAgICogICAgIDxpZ3gtaWNvbj5jYWxsPC9pZ3gtaWNvbj5EaWFsXG4gICAgICogICA8L25nLXRlbXBsYXRlPlxuICAgICAqIDwvaWd4LWxpc3Q+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpdGVtUmlnaHRQYW5UbXBsID0gdGhpcy5saXN0Lmxpc3RJdGVtUmlnaHRQYW5uaW5nVGVtcGxhdGU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChJZ3hMaXN0SXRlbVJpZ2h0UGFubmluZ1RlbXBsYXRlRGlyZWN0aXZlLCB7IHJlYWQ6IElneExpc3RJdGVtUmlnaHRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmUgfSlcbiAgICBwdWJsaWMgbGlzdEl0ZW1SaWdodFBhbm5pbmdUZW1wbGF0ZTogSWd4TGlzdEl0ZW1SaWdodFBhbm5pbmdUZW1wbGF0ZURpcmVjdGl2ZTtcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGEgdGhyZXNob2xkIGFmdGVyIHdoaWNoIHRoZSBpdGVtJ3MgcGFubmluZyB3aWxsIGJlIGNvbXBsZXRlZCBhdXRvbWF0aWNhbGx5LlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBCeSBkZWZhdWx0IHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIDAuNSB3aGljaCBpcyA1MCUgb2YgdGhlIGxpc3QgaXRlbSdzIHdpZHRoLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1saXN0IFtwYW5FbmRUcmlnZ2VyaW5nVGhyZXNob2xkXT1cIjAuOFwiPjwvaWd4LWxpc3Q+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFuRW5kVHJpZ2dlcmluZ1RocmVzaG9sZCA9IDAuNTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYGlkYCBvZiB0aGUgbGlzdC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogSWYgbm90IHNldCwgdGhlIGBpZGAgb2YgdGhlIGZpcnN0IGxpc3QgY29tcG9uZW50IHdpbGwgYmUgYFwiaWd4LWxpc3QtMFwiYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCBpZD1cIm15LWZpcnN0LWxpc3RcIj48L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbGlzdElkID0gdGhpcy5saXN0LmlkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgaWd4LWxpc3QtJHtORVhUX0lEKyt9YDtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB3aGV0aGVyIHRoZSBsZWZ0IHBhbm5pbmcgb2YgYW4gaXRlbSBpcyBhbGxvd2VkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3QgW2FsbG93TGVmdFBhbm5pbmddPVwidHJ1ZVwiPjwvaWd4LWxpc3Q+XG4gICAgICogYGBgXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0xlZnRQYW5uaW5nQWxsb3dlZCA9IHRoaXMubGlzdC5hbGxvd0xlZnRQYW5uaW5nO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFsbG93TGVmdFBhbm5pbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB3aGV0aGVyIHRoZSByaWdodCBwYW5uaW5nIG9mIGFuIGl0ZW0gaXMgYWxsb3dlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1saXN0IFthbGxvd1JpZ2h0UGFubmluZ109XCJ0cnVlXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGlzUmlnaHRQYW5uaW5nQWxsb3dlZCA9IHRoaXMubGlzdC5hbGxvd1JpZ2h0UGFubmluZztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhbGxvd1JpZ2h0UGFubmluZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHdoZXRoZXIgdGhlIGxpc3QgaXMgY3VycmVudGx5IGxvYWRpbmcgZGF0YS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogU2V0IGl0IHRvIGRpc3BsYXkgdGhlIGRhdGFMb2FkaW5nVGVtcGxhdGUgd2hpbGUgZGF0YSBpcyBiZWluZyByZXRyaWV2ZWQuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogIDxpZ3gtbGlzdCBbaXNMb2FkaW5nXT1cInRydWVcIj48L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgaXNMb2FkaW5nID0gdGhpcy5saXN0LmlzTG9hZGluZztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGxlZnQgcGFuIGdlc3R1cmUgaXMgZXhlY3V0ZWQgb24gYSBsaXN0IGl0ZW0uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIGFuIG9iamVjdCBvZiB0eXBlIGBJTGlzdEl0ZW1QYW5uaW5nRXZlbnRBcmdzYCBhcyBhbiBldmVudCBhcmd1bWVudC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCBbYWxsb3dMZWZ0UGFubmluZ109XCJ0cnVlXCIgKGxlZnRQYW4pPVwibGVmdFBhbigkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgbGVmdFBhbiA9IG5ldyBFdmVudEVtaXR0ZXI8SUxpc3RJdGVtUGFubmluZ0V2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJpZ2h0IHBhbiBnZXN0dXJlIGlzIGV4ZWN1dGVkIG9uIGEgbGlzdCBpdGVtLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBQcm92aWRlcyBhIHJlZmVyZW5jZSB0byBhbiBvYmplY3Qgb2YgdHlwZSBgSUxpc3RJdGVtUGFubmluZ0V2ZW50QXJnc2AgYXMgYW4gZXZlbnQgYXJndW1lbnQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3QgW2FsbG93UmlnaHRQYW5uaW5nXT1cInRydWVcIiAocmlnaHRQYW4pPVwicmlnaHRQYW4oJGV2ZW50KVwiPjwvaWd4LWxpc3Q+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJpZ2h0UGFuID0gbmV3IEV2ZW50RW1pdHRlcjxJTGlzdEl0ZW1QYW5uaW5nRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcGFuIGdlc3R1cmUgaXMgc3RhcnRlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogUHJvdmlkZXMgYSByZWZlcmVuY2UgdG8gYW4gb2JqZWN0IG9mIHR5cGUgYElMaXN0SXRlbVBhbm5pbmdFdmVudEFyZ3NgIGFzIGFuIGV2ZW50IGFyZ3VtZW50LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1saXN0IChzdGFydFBhbik9XCJzdGFydFBhbigkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc3RhcnRQYW4gPSBuZXcgRXZlbnRFbWl0dGVyPElMaXN0SXRlbVBhbm5pbmdFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBwYW4gZ2VzdHVyZSBpcyBjb21wbGV0ZWQgb3IgY2FuY2VsZWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFByb3ZpZGVzIGEgcmVmZXJlbmNlIHRvIGFuIG9iamVjdCBvZiB0eXBlIGBJTGlzdEl0ZW1QYW5uaW5nRXZlbnRBcmdzYCBhcyBhbiBldmVudCBhcmd1bWVudC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCAoZW5kUGFuKT1cImVuZFBhbigkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZW5kUGFuID0gbmV3IEV2ZW50RW1pdHRlcjxJTGlzdEl0ZW1QYW5uaW5nRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcGFuIGl0ZW0gaXMgcmV0dXJuZWQgdG8gaXRzIG9yaWdpbmFsIHBvc2l0aW9uLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBQcm92aWRlcyBhIHJlZmVyZW5jZSB0byBhbiBvYmplY3Qgb2YgdHlwZSBgSWd4TGlzdENvbXBvbmVudGAgYXMgYW4gZXZlbnQgYXJndW1lbnQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWxpc3QgKHJlc2V0UGFuKT1cInJlc2V0UGFuKCRldmVudClcIj48L2lneC1saXN0PlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgICBAT3V0cHV0KClcbiAgICAgcHVibGljIHJlc2V0UGFuID0gbmV3IEV2ZW50RW1pdHRlcjxJZ3hMaXN0Q29tcG9uZW50PigpO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBwYW4gZ2VzdHVyZSBpcyBleGVjdXRlZCBvbiBhIGxpc3QgaXRlbS5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogUHJvdmlkZXMgcmVmZXJlbmNlcyB0byB0aGUgYElneExpc3RJdGVtQ29tcG9uZW50YCBhbmQgYElneExpc3RQYW5TdGF0ZWAgYXMgZXZlbnQgYXJndW1lbnRzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1saXN0IChwYW5TdGF0ZUNoYW5nZSk9XCJwYW5TdGF0ZUNoYW5nZSgkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGFuU3RhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElQYW5TdGF0ZUNoYW5nZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGxpc3QgaXRlbSBpcyBjbGlja2VkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBQcm92aWRlcyByZWZlcmVuY2VzIHRvIHRoZSBgSWd4TGlzdEl0ZW1Db21wb25lbnRgIGFuZCBgRXZlbnRgIGFzIGV2ZW50IGFyZ3VtZW50cy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtbGlzdCAoaXRlbUNsaWNrZWQpPVwib25JdGVtQ2xpY2tlZCgkZXZlbnQpXCI+PC9pZ3gtbGlzdD5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgaXRlbUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElMaXN0SXRlbUNsaWNrRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRFbXB0eUxpc3QnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdEVtcHR5TGlzdFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHREYXRhTG9hZGluZycsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkZWZhdWx0RGF0YUxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHByaXZhdGUgX3Jlc291cmNlU3RyaW5ncyA9IEN1cnJlbnRSZXNvdXJjZVN0cmluZ3MuTGlzdFJlc1N0cmluZ3M7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSByZXNvdXJjZSBzdHJpbmdzLlxuICAgICAqIEJ5IGRlZmF1bHQgaXQgdXNlcyBFTiByZXNvdXJjZXMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlc291cmNlU3RyaW5ncyh2YWx1ZTogSUxpc3RSZXNvdXJjZVN0cmluZ3MpIHtcbiAgICAgICAgdGhpcy5fcmVzb3VyY2VTdHJpbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcmVzb3VyY2VTdHJpbmdzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgcmVzb3VyY2Ugc3RyaW5ncy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJlc291cmNlU3RyaW5ncygpOiBJTGlzdFJlc291cmNlU3RyaW5ncyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZVN0cmluZ3M7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRGlzcGxheURlbnNpdHlUb2tlbikgcHJvdGVjdGVkIF9kaXNwbGF5RGVuc2l0eU9wdGlvbnM6IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoX2Rpc3BsYXlEZW5zaXR5T3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXQgc29ydGVkQ2hpbGRyZW4oKTogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSB7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkcmVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLnRvQXJyYXkoKVxuICAgICAgICAgICAgICAgIC5zb3J0KChhOiBJZ3hMaXN0SXRlbUNvbXBvbmVudCwgYjogSWd4TGlzdEl0ZW1Db21wb25lbnQpID0+IGEuaW5kZXggLSBiLmluZGV4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgcm9sZWAgYXR0cmlidXRlIHZhbHVlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGxpc3RSb2xlID0gIHRoaXMubGlzdC5yb2xlO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwdWJsaWMgZ2V0IHJvbGUoKSB7XG4gICAgICAgIHJldHVybiAnbGlzdCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGUgbGlzdCBpcyBlbXB0eS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpc0VtcHR5ID0gIHRoaXMubGlzdC5pc0xpc3RFbXB0eTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1saXN0LS1lbXB0eScpXG4gICAgcHVibGljIGdldCBpc0xpc3RFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNoaWxkcmVuIHx8IHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1saXN0JylcbiAgICBwdWJsaWMgZ2V0IGNzc0NsYXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNMaXN0RW1wdHkgJiYgdGhpcy5kaXNwbGF5RGVuc2l0eSA9PT0gRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWxpc3QtLWNvbXBhY3QnKVxuICAgIHB1YmxpYyBnZXQgY3NzQ2xhc3NDb21wYWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNMaXN0RW1wdHkgJiYgdGhpcy5kaXNwbGF5RGVuc2l0eSA9PT0gRGlzcGxheURlbnNpdHkuY29tcGFjdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtbGlzdC0tY29zeScpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc0Nvc3koKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5pc0xpc3RFbXB0eSAmJiB0aGlzLmRpc3BsYXlEZW5zaXR5ID09PSBEaXNwbGF5RGVuc2l0eS5jb3N5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGxpc3QgYGl0ZW1zYCBleGNsdWRpbmcgdGhlIGhlYWRlciBvbmVzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGxpc3RJdGVtczogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSA9IHRoaXMubGlzdC5pdGVtcztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGl0ZW1zKCk6IElneExpc3RJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICBjb25zdCBpdGVtczogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5jaGlsZHJlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMuc29ydGVkQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLmlzSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgaGVhZGVyIGxpc3QgYGl0ZW1zYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBsaXN0SGVhZGVyczogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSA9ICB0aGlzLmxpc3QuaGVhZGVycztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGhlYWRlcnMoKTogSWd4TGlzdEl0ZW1Db21wb25lbnRbXSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnM6IElneExpc3RJdGVtQ29tcG9uZW50W10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLmNoaWxkcmVuLnRvQXJyYXkoKSkge1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZC5pc0hlYWRlcikge1xuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGVhZGVycztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgY29udGV4dGAgb2JqZWN0IG9mIHRoZSB0ZW1wbGF0ZSBiaW5kaW5nLlxuICAgICAqXG4gICAgICogQHJlbWFya1xuICAgICAqIEdldHMgdGhlIGBjb250ZXh0YCBvYmplY3Qgd2hpY2ggcmVwcmVzZW50cyB0aGUgYHRlbXBsYXRlIGNvbnRleHRgIGJpbmRpbmcgaW50byB0aGUgYGxpc3QgY29udGFpbmVyYFxuICAgICAqIGJ5IHByb3ZpZGluZyB0aGUgYCRpbXBsaWNpdGAgZGVjbGFyYXRpb24gd2hpY2ggaXMgdGhlIGBJZ3hMaXN0Q29tcG9uZW50YCBpdHNlbGYuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgbGlzdENvbXBvbmVudCA9ICB0aGlzLmxpc3QuY29udGV4dDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGNvbnRleHQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogdGhpc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBgVGVtcGxhdGVSZWZgIHRvIHRoZSBjdXJyZW50bHkgdXNlZCB0ZW1wbGF0ZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBsaXN0VGVtcGxhdGUgPSB0aGlzLmxpc3QudGVtcGxhdGU7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCB0ZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhTG9hZGluZ1RlbXBsYXRlID8gdGhpcy5kYXRhTG9hZGluZ1RlbXBsYXRlLnRlbXBsYXRlIDogdGhpcy5kZWZhdWx0RGF0YUxvYWRpbmdUZW1wbGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVtcHR5TGlzdFRlbXBsYXRlID8gdGhpcy5lbXB0eUxpc3RUZW1wbGF0ZS50ZW1wbGF0ZSA6IHRoaXMuZGVmYXVsdEVtcHR5TGlzdFRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgSWd4TGlzdEJhc2VEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RDb21wb25lbnQsXG4gICAgICAgIElneExpc3RJdGVtQ29tcG9uZW50LFxuICAgICAgICBJZ3hMaXN0VGh1bWJuYWlsRGlyZWN0aXZlLFxuICAgICAgICBJZ3hMaXN0QWN0aW9uRGlyZWN0aXZlLFxuICAgICAgICBJZ3hMaXN0TGluZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdExpbmVUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdExpbmVTdWJUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4RGF0YUxvYWRpbmdUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4RW1wdHlMaXN0VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RJdGVtTGVmdFBhbm5pbmdUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdEl0ZW1SaWdodFBhbm5pbmdUZW1wbGF0ZURpcmVjdGl2ZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBJZ3hMaXN0Q29tcG9uZW50LFxuICAgICAgICBJZ3hMaXN0SXRlbUNvbXBvbmVudCxcbiAgICAgICAgSWd4TGlzdFRodW1ibmFpbERpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdEFjdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgSWd4TGlzdExpbmVEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RMaW5lVGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RMaW5lU3ViVGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIElneERhdGFMb2FkaW5nVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIElneEVtcHR5TGlzdFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBJZ3hMaXN0SXRlbUxlZnRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIElneExpc3RJdGVtUmlnaHRQYW5uaW5nVGVtcGxhdGVEaXJlY3RpdmVcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBJZ3hSaXBwbGVNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElneExpc3RNb2R1bGUge1xufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRFbXB0eUxpc3Q+XG4gICAgPGFydGljbGUgY2xhc3M9XCJpZ3gtbGlzdF9fbWVzc2FnZVwiPlxuICAgICAgICB7e3Jlc291cmNlU3RyaW5ncy5pZ3hfbGlzdF9ub19pdGVtc319XG4gICAgPC9hcnRpY2xlPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RGF0YUxvYWRpbmc+XG4gICAgPGFydGljbGUgY2xhc3M9XCJpZ3gtbGlzdF9fbWVzc2FnZVwiPlxuICAgICAgICB7e3Jlc291cmNlU3RyaW5ncy5pZ3hfbGlzdF9sb2FkaW5nfX1cbiAgICA8L2FydGljbGU+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWNoaWxkcmVuIHx8IGNoaWxkcmVuLmxlbmd0aCA9PT0gMCB8fCBpc0xvYWRpbmdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -10,9 +10,9 @@ import * as i2 from "@angular/common";
|
|
|
10
10
|
*/
|
|
11
11
|
export class IgxNavbarActionDirective {
|
|
12
12
|
}
|
|
13
|
-
IgxNavbarActionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
14
|
-
IgxNavbarActionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
13
|
+
IgxNavbarActionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarActionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
+
IgxNavbarActionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxNavbarActionDirective, selector: "igx-navbar-action,[igxNavbarAction]", ngImport: i0 });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarActionDirective, decorators: [{
|
|
16
16
|
type: Directive,
|
|
17
17
|
args: [{
|
|
18
18
|
selector: 'igx-navbar-action,[igxNavbarAction]'
|
|
@@ -20,9 +20,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
20
20
|
}] });
|
|
21
21
|
export class IgxNavbarTitleDirective {
|
|
22
22
|
}
|
|
23
|
-
IgxNavbarTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
24
|
-
IgxNavbarTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
23
|
+
IgxNavbarTitleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
24
|
+
IgxNavbarTitleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxNavbarTitleDirective, selector: "igx-navbar-title,[igxNavbarTitle]", ngImport: i0 });
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarTitleDirective, decorators: [{
|
|
26
26
|
type: Directive,
|
|
27
27
|
args: [{
|
|
28
28
|
selector: 'igx-navbar-title,[igxNavbarTitle]'
|
|
@@ -112,9 +112,9 @@ export class IgxNavbarComponent {
|
|
|
112
112
|
this.action.emit(this);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
IgxNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
116
|
-
IgxNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
115
|
+
IgxNavbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
+
IgxNavbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxNavbarComponent, selector: "igx-navbar", inputs: { id: "id", actionButtonIcon: "actionButtonIcon", title: "title", titleId: "titleId", isActionButtonVisible: "isActionButtonVisible" }, outputs: { action: "action" }, host: { properties: { "attr.id": "this.id" } }, queries: [{ propertyName: "actionIconTemplate", first: true, predicate: IgxNavbarActionDirective, descendants: true, read: IgxNavbarActionDirective }, { propertyName: "titleContent", first: true, predicate: IgxNavbarTitleDirective, descendants: true, read: IgxNavbarTitleDirective }], ngImport: i0, template: "<nav class=\"igx-navbar\" role=\"navigation\" [attr.aria-labelledby]=\"titleId\">\n <div class=\"igx-navbar__left\">\n <igx-icon\n (click)=\"_triggerAction()\"\n *ngIf=\"isActionButtonVisible\">\n {{actionButtonIcon}}\n </igx-icon>\n <ng-content select=\"igx-navbar-action, [igxNavbarAction]\"></ng-content>\n <h1\n *ngIf=\"!isTitleContentVisible\"\n class=\"igx-navbar__title\"\n [attr.id]=\"titleId\">\n {{ title }}\n </h1>\n <ng-content select=\"igx-navbar-title, [igxNavbarTitle]\"></ng-content>\n </div>\n <div class=\"igx-navbar__right\">\n <ng-content></ng-content>\n </div>\n</nav>\n", styles: [":host{display:block}\n"], components: [{ type: i1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarComponent, decorators: [{
|
|
118
118
|
type: Component,
|
|
119
119
|
args: [{ selector: 'igx-navbar', styles: [`
|
|
120
120
|
:host {
|
|
@@ -149,10 +149,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
149
149
|
*/
|
|
150
150
|
export class IgxNavbarModule {
|
|
151
151
|
}
|
|
152
|
-
IgxNavbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
153
|
-
IgxNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.
|
|
154
|
-
IgxNavbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
152
|
+
IgxNavbarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
153
|
+
IgxNavbarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarModule, declarations: [IgxNavbarComponent, IgxNavbarActionDirective, IgxNavbarTitleDirective], imports: [IgxButtonModule, IgxIconModule, CommonModule], exports: [IgxNavbarComponent, IgxNavbarActionDirective, IgxNavbarTitleDirective] });
|
|
154
|
+
IgxNavbarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarModule, imports: [[IgxButtonModule, IgxIconModule, CommonModule]] });
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavbarModule, decorators: [{
|
|
156
156
|
type: NgModule,
|
|
157
157
|
args: [{
|
|
158
158
|
declarations: [IgxNavbarComponent, IgxNavbarActionDirective, IgxNavbarTitleDirective],
|
|
@@ -745,9 +745,9 @@ export class IgxNavigationDrawerComponent {
|
|
|
745
745
|
});
|
|
746
746
|
}
|
|
747
747
|
}
|
|
748
|
-
IgxNavigationDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
749
|
-
IgxNavigationDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.
|
|
750
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
748
|
+
IgxNavigationDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavigationDrawerComponent, deps: [{ token: ElementRef }, { token: i1.IgxNavigationService, optional: true }, { token: i0.Renderer2 }, { token: i2.HammerGesturesManager }, { token: i3.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component });
|
|
749
|
+
IgxNavigationDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxNavigationDrawerComponent, selector: "igx-nav-drawer", inputs: { id: "id", position: "position", enableGestures: "enableGestures", pinThreshold: "pinThreshold", pin: "pin", width: "width", disableAnimation: "disableAnimation", miniWidth: "miniWidth", isOpen: "isOpen" }, outputs: { isOpenChange: "isOpenChange", pinChange: "pinChange", opening: "opening", opened: "opened", closing: "closing", closed: "closed" }, host: { properties: { "class.igx-nav-drawer": "this.cssClass", "attr.id": "this.id", "class.igx-nav-drawer--disable-animation": "this.disableAnimation", "style.flexBasis": "this.flexWidth", "style.order": "this.isPinnedRight" } }, providers: [HammerGesturesManager], queries: [{ propertyName: "contentTemplate", first: true, predicate: IgxNavDrawerTemplateDirective, descendants: true, read: IgxNavDrawerTemplateDirective }, { propertyName: "miniTemplate", first: true, predicate: IgxNavDrawerMiniTemplateDirective, descendants: true, read: IgxNavDrawerMiniTemplateDirective }], viewQueries: [{ propertyName: "_drawer", first: true, predicate: ["aside"], descendants: true, static: true }, { propertyName: "_overlay", first: true, predicate: ["overlay"], descendants: true, static: true }, { propertyName: "_styleDummy", first: true, predicate: ["dummy"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #defaultItemsTemplate>\n <div igxDrawerItem [isHeader]=\"true\">Navigation Drawer</div>\n <div igxDrawerItem> Start by adding</div>\n <div igxDrawerItem> <code><ng-template igxDrawer></code> </div>\n <div igxDrawerItem> And some items inside </div>\n <div igxDrawerItem> Style with igxDrawerItem </div>\n <div igxDrawerItem> and igxRipple directives</div>\n</ng-template>\n\n<div [hidden]=\"pin\"\n class=\"igx-nav-drawer__overlay\"\n [class.igx-nav-drawer__overlay--hidden]=\"!isOpen\"\n [class.igx-nav-drawer--disable-animation]=\"disableAnimation\"\n (click)=\"close()\" #overlay>\n</div>\n<aside role=\"navigation\"\n class=\"igx-nav-drawer__aside\"\n [class.igx-nav-drawer__aside--collapsed]=\"!miniTemplate && !isOpen\"\n [class.igx-nav-drawer__aside--mini]=\"miniTemplate && !isOpen\"\n [class.igx-nav-drawer__aside--normal]=\"!miniTemplate || isOpen\"\n [class.igx-nav-drawer__aside--pinned]=\"pin\"\n [class.igx-nav-drawer__aside--right]=\"position === 'right'\" #aside\n [class.igx-nav-drawer--disable-animation]=\"disableAnimation\">\n\n <ng-container *ngTemplateOutlet=\"template || defaultItemsTemplate\"></ng-container>\n</aside>\n<div class=\"igx-nav-drawer__style-dummy\" #dummy></div>\n", styles: [":host{display:block;height:100%}\n"], directives: [{ type: i4.IgxNavDrawerItemDirective, selector: "[igxDrawerItem]", inputs: ["active", "isHeader"], exportAs: ["igxDrawerItem"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
750
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavigationDrawerComponent, decorators: [{
|
|
751
751
|
type: Component,
|
|
752
752
|
args: [{ providers: [HammerGesturesManager], selector: 'igx-nav-drawer', styles: [`
|
|
753
753
|
:host {
|
|
@@ -34,9 +34,9 @@ export class IgxNavDrawerItemDirective {
|
|
|
34
34
|
return this.isHeader;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
IgxNavDrawerItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
38
|
-
IgxNavDrawerItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
37
|
+
IgxNavDrawerItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavDrawerItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
38
|
+
IgxNavDrawerItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxNavDrawerItemDirective, selector: "[igxDrawerItem]", inputs: { active: "active", isHeader: "isHeader" }, host: { properties: { "class.igx-nav-drawer__item": "this.defaultCSS", "class.igx-nav-drawer__item--active": "this.currentCSS", "class.igx-nav-drawer__item--header": "this.headerCSS" } }, exportAs: ["igxDrawerItem"], ngImport: i0 });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavDrawerItemDirective, decorators: [{
|
|
40
40
|
type: Directive,
|
|
41
41
|
args: [{
|
|
42
42
|
selector: '[igxDrawerItem]',
|
|
@@ -63,9 +63,9 @@ export class IgxNavDrawerTemplateDirective {
|
|
|
63
63
|
this.template = template;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
IgxNavDrawerTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
67
|
-
IgxNavDrawerTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
66
|
+
IgxNavDrawerTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavDrawerTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
67
|
+
IgxNavDrawerTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxNavDrawerTemplateDirective, selector: "[igxDrawer]", ngImport: i0 });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavDrawerTemplateDirective, decorators: [{
|
|
69
69
|
type: Directive,
|
|
70
70
|
args: [{
|
|
71
71
|
selector: '[igxDrawer]'
|
|
@@ -76,9 +76,9 @@ export class IgxNavDrawerMiniTemplateDirective {
|
|
|
76
76
|
this.template = template;
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
IgxNavDrawerMiniTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
80
|
-
IgxNavDrawerMiniTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
79
|
+
IgxNavDrawerMiniTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavDrawerMiniTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
80
|
+
IgxNavDrawerMiniTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxNavDrawerMiniTemplateDirective, selector: "[igxDrawerMini]", ngImport: i0 });
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavDrawerMiniTemplateDirective, decorators: [{
|
|
82
82
|
type: Directive,
|
|
83
83
|
args: [{
|
|
84
84
|
selector: '[igxDrawerMini]'
|
|
@@ -8,16 +8,16 @@ import * as i0 from "@angular/core";
|
|
|
8
8
|
*/
|
|
9
9
|
export class IgxNavigationDrawerModule {
|
|
10
10
|
}
|
|
11
|
-
IgxNavigationDrawerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
12
|
-
IgxNavigationDrawerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.
|
|
11
|
+
IgxNavigationDrawerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavigationDrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
IgxNavigationDrawerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavigationDrawerModule, declarations: [IgxNavigationDrawerComponent,
|
|
13
13
|
IgxNavDrawerItemDirective,
|
|
14
14
|
IgxNavDrawerMiniTemplateDirective,
|
|
15
15
|
IgxNavDrawerTemplateDirective], imports: [CommonModule], exports: [IgxNavigationDrawerComponent,
|
|
16
16
|
IgxNavDrawerItemDirective,
|
|
17
17
|
IgxNavDrawerMiniTemplateDirective,
|
|
18
18
|
IgxNavDrawerTemplateDirective] });
|
|
19
|
-
IgxNavigationDrawerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
19
|
+
IgxNavigationDrawerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavigationDrawerModule, imports: [[CommonModule]] });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxNavigationDrawerModule, decorators: [{
|
|
21
21
|
type: NgModule,
|
|
22
22
|
args: [{
|
|
23
23
|
declarations: [
|
|
@@ -5,9 +5,9 @@ export class IgxPaginatorDirective {
|
|
|
5
5
|
this.template = template;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
IgxPaginatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
9
|
-
IgxPaginatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
8
|
+
IgxPaginatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
IgxPaginatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxPaginatorDirective, selector: "[igxPaginator]", ngImport: i0 });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorDirective, decorators: [{
|
|
11
11
|
type: Directive,
|
|
12
12
|
args: [{
|
|
13
13
|
selector: '[igxPaginator]'
|
|
@@ -19,9 +19,9 @@ export class IgxPaginatorTemplateDirective {
|
|
|
19
19
|
this.cssClass = 'igx-paginator-content';
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
IgxPaginatorTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
23
|
-
IgxPaginatorTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
22
|
+
IgxPaginatorTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
23
|
+
IgxPaginatorTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: IgxPaginatorTemplateDirective, selector: "[igxPaginatorContent],igx-paginator-content", host: { properties: { "class.igx-paginator-content": "this.cssClass" } }, ngImport: i0 });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorTemplateDirective, decorators: [{
|
|
25
25
|
type: Directive,
|
|
26
26
|
args: [{ selector: '[igxPaginatorContent],igx-paginator-content' }]
|
|
27
27
|
}], propDecorators: { cssClass: [{
|
|
@@ -302,9 +302,9 @@ export class IgxPaginatorComponent extends DisplayDensityBase {
|
|
|
302
302
|
return Array.from(new Set([...values, newOption])).sort((a, b) => a - b);
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
|
-
IgxPaginatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
306
|
-
IgxPaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.
|
|
307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
305
|
+
IgxPaginatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorComponent, deps: [{ token: DisplayDensityToken, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
306
|
+
IgxPaginatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxPaginatorComponent, selector: "igx-paginator", inputs: { page: "page", perPage: "perPage", totalRecords: "totalRecords", selectOptions: "selectOptions", overlaySettings: "overlaySettings", resourceStrings: "resourceStrings" }, outputs: { perPageChange: "perPageChange", pageChange: "pageChange", paging: "paging", pagingDone: "pagingDone" }, host: { properties: { "class.igx-paginator--cosy": "this.classCosy", "class.igx-paginator--compact": "this.classCompact", "class.igx-paginator": "this.classComfortable" } }, queries: [{ propertyName: "customContent", first: true, predicate: IgxPaginatorTemplateDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[igxPaginatorContent],igx-paginator-content\"></ng-content>\n\n<igx-page-size *ngIf=\"!customContent\"></igx-page-size>\n<igx-page-nav *ngIf=\"!customContent\"></igx-page-nav>\n", components: [{ type: i0.forwardRef(function () { return IgxPageSizeSelectorComponent; }), selector: "igx-page-size" }, { type: i0.forwardRef(function () { return IgxPageNavigationComponent; }), selector: "igx-page-nav", inputs: ["role"] }], directives: [{ type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
307
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorComponent, decorators: [{
|
|
308
308
|
type: Component,
|
|
309
309
|
args: [{ selector: 'igx-paginator', template: "<ng-content select=\"[igxPaginatorContent],igx-paginator-content\"></ng-content>\n\n<igx-page-size *ngIf=\"!customContent\"></igx-page-size>\n<igx-page-nav *ngIf=\"!customContent\"></igx-page-nav>\n" }]
|
|
310
310
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
@@ -355,9 +355,9 @@ export class IgxPageSizeSelectorComponent {
|
|
|
355
355
|
this.cssClass = 'igx-page-size';
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
|
-
IgxPageSizeSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
359
|
-
IgxPageSizeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.
|
|
360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
358
|
+
IgxPageSizeSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPageSizeSelectorComponent, deps: [{ token: IgxPaginatorComponent, host: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
359
|
+
IgxPageSizeSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxPageSizeSelectorComponent, selector: "igx-page-size", host: { properties: { "class.igx-page-size": "this.cssClass" } }, ngImport: i0, template: "<label class=\"igx-page-size__label\">{{ paginator.resourceStrings.igx_paginator_label }}</label>\n<div class=\"igx-page-size__select\">\n <igx-select [overlaySettings]=\"paginator.overlaySettings\" [(ngModel)]=\"paginator.perPage\"\n [displayDensity]=\"paginator.paginatorSelectDisplayDensity\" type=\"border\">\n <label igxLabel [hidden]=\"true\">{{ paginator.resourceStrings.igx_paginator_label }}</label>\n <igx-select-item [value]=\"val\" *ngFor=\"let val of paginator.selectOptions\">\n {{ val }}\n </igx-select-item>\n </igx-select>\n</div>\n", components: [{ type: i2.IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { type: i3.IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }], directives: [{ type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.IgxLabelDirective, selector: "[igxLabel]", inputs: ["id"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
360
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPageSizeSelectorComponent, decorators: [{
|
|
361
361
|
type: Component,
|
|
362
362
|
args: [{ selector: 'igx-page-size', template: "<label class=\"igx-page-size__label\">{{ paginator.resourceStrings.igx_paginator_label }}</label>\n<div class=\"igx-page-size__select\">\n <igx-select [overlaySettings]=\"paginator.overlaySettings\" [(ngModel)]=\"paginator.perPage\"\n [displayDensity]=\"paginator.paginatorSelectDisplayDensity\" type=\"border\">\n <label igxLabel [hidden]=\"true\">{{ paginator.resourceStrings.igx_paginator_label }}</label>\n <igx-select-item [value]=\"val\" *ngFor=\"let val of paginator.selectOptions\">\n {{ val }}\n </igx-select-item>\n </igx-select>\n</div>\n" }]
|
|
363
363
|
}], ctorParameters: function () { return [{ type: IgxPaginatorComponent, decorators: [{
|
|
@@ -380,9 +380,9 @@ export class IgxPageNavigationComponent {
|
|
|
380
380
|
this.role = 'navigation';
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
|
-
IgxPageNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
384
|
-
IgxPageNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.
|
|
385
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
383
|
+
IgxPageNavigationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPageNavigationComponent, deps: [{ token: IgxPaginatorComponent, host: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
384
|
+
IgxPageNavigationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: IgxPageNavigationComponent, selector: "igx-page-nav", inputs: { role: "role" }, host: { properties: { "class.igx-page-nav": "this.cssClass", "attr.role": "this.role" } }, ngImport: i0, template: "<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.paginate(0)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>first_page</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.previousPage()\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>chevron_left</igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n > {{\n paginator.resourceStrings.igx_paginator_pager_text\n }} </span\n >\n <span>{{ paginator.totalPages }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxButton=\"icon\"\n>\n <igx-icon>chevron_right</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>last_page</igx-icon>\n</button>\n\n", components: [{ type: i6.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }], directives: [{ type: i7.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: i8.IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }] });
|
|
385
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPageNavigationComponent, decorators: [{
|
|
386
386
|
type: Component,
|
|
387
387
|
args: [{ selector: 'igx-page-nav', template: "<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.paginate(0)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>first_page</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPageDisabled\"\n [attr.aria-disabled]=\"paginator.isFirstPageDisabled\"\n (click)=\"paginator.previousPage()\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>chevron_left</igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n > {{\n paginator.resourceStrings.igx_paginator_pager_text\n }} </span\n >\n <span>{{ paginator.totalPages }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxButton=\"icon\"\n>\n <igx-icon>chevron_right</igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPageDisabled\"\n [attr.aria-disabled]=\"paginator.isLastPageDisabled\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxButton=\"icon\"\n igxRipple\n [igxRippleCentered]=\"true\"\n>\n <igx-icon>last_page</igx-icon>\n</button>\n\n" }]
|
|
388
388
|
}], ctorParameters: function () { return [{ type: IgxPaginatorComponent, decorators: [{
|
|
@@ -12,8 +12,8 @@ import * as i0 from "@angular/core";
|
|
|
12
12
|
export * from './paginator.component';
|
|
13
13
|
export class IgxPaginatorModule {
|
|
14
14
|
}
|
|
15
|
-
IgxPaginatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.
|
|
16
|
-
IgxPaginatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.
|
|
15
|
+
IgxPaginatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
IgxPaginatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorModule, declarations: [IgxPaginatorComponent,
|
|
17
17
|
IgxPageNavigationComponent,
|
|
18
18
|
IgxPageSizeSelectorComponent,
|
|
19
19
|
IgxPaginatorTemplateDirective,
|
|
@@ -28,7 +28,7 @@ IgxPaginatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", vers
|
|
|
28
28
|
IgxPageSizeSelectorComponent,
|
|
29
29
|
IgxPaginatorTemplateDirective,
|
|
30
30
|
IgxPaginatorDirective] });
|
|
31
|
-
IgxPaginatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.
|
|
31
|
+
IgxPaginatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorModule, imports: [[
|
|
32
32
|
CommonModule,
|
|
33
33
|
FormsModule,
|
|
34
34
|
IgxButtonModule,
|
|
@@ -37,7 +37,7 @@ IgxPaginatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
|
|
|
37
37
|
IgxRippleModule,
|
|
38
38
|
IgxSelectModule
|
|
39
39
|
]] });
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: IgxPaginatorModule, decorators: [{
|
|
41
41
|
type: NgModule,
|
|
42
42
|
args: [{
|
|
43
43
|
declarations: [
|