@skyux/list-builder 7.0.0-beta.9 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +1 -97
- package/esm2020/lib/modules/list/list.component.mjs +5 -7
- package/esm2020/lib/modules/list/list.module.mjs +5 -5
- package/esm2020/lib/modules/list/state/list-state.rxstate.mjs +4 -4
- package/esm2020/lib/modules/list/state/list-state.state-node.mjs +4 -5
- package/esm2020/lib/modules/list-filters/list-filter-button.component.mjs +4 -5
- package/esm2020/lib/modules/list-filters/list-filter-inline-item-renderer.component.mjs +5 -5
- package/esm2020/lib/modules/list-filters/list-filter-inline-item.component.mjs +5 -5
- package/esm2020/lib/modules/list-filters/list-filter-inline.component.mjs +5 -7
- package/esm2020/lib/modules/list-filters/list-filter-summary.component.mjs +4 -6
- package/esm2020/lib/modules/list-filters/list-filters.module.mjs +5 -5
- package/esm2020/lib/modules/list-paging/list-paging.component.mjs +4 -7
- package/esm2020/lib/modules/list-paging/list-paging.module.mjs +5 -5
- package/esm2020/lib/modules/list-toolbar/list-multiselect-toolbar.component.mjs +4 -6
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.mjs +4 -5
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.mjs +5 -6
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.mjs +4 -5
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.mjs +5 -5
- package/esm2020/lib/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.mjs +4 -4
- package/esm2020/lib/modules/list-toolbar/list-toolbar-item-renderer.component.mjs +5 -5
- package/esm2020/lib/modules/list-toolbar/list-toolbar-item.component.mjs +5 -5
- package/esm2020/lib/modules/list-toolbar/list-toolbar-search-actions.component.mjs +4 -4
- package/esm2020/lib/modules/list-toolbar/list-toolbar-sort.component.mjs +4 -4
- package/esm2020/lib/modules/list-toolbar/list-toolbar-view-actions.component.mjs +4 -5
- package/esm2020/lib/modules/list-toolbar/list-toolbar.component.mjs +5 -8
- package/esm2020/lib/modules/list-toolbar/list-toolbar.module.mjs +5 -5
- package/esm2020/lib/modules/list-toolbar/state/toolbar-state.rxstate.mjs +4 -4
- package/esm2020/lib/modules/list-toolbar/state/toolbar-state.state-node.mjs +4 -6
- package/esm2020/lib/modules/shared/sky-list-builder-resources.module.mjs +5 -5
- package/fesm2015/skyux-list-builder.mjs +90 -90
- package/fesm2015/skyux-list-builder.mjs.map +1 -1
- package/fesm2020/skyux-list-builder.mjs +91 -91
- package/fesm2020/skyux-list-builder.mjs.map +1 -1
- package/package.json +12 -12
package/documentation.json
CHANGED
|
@@ -6798,101 +6798,5 @@
|
|
|
6798
6798
|
}
|
|
6799
6799
|
]
|
|
6800
6800
|
},
|
|
6801
|
-
"codeExamples": [
|
|
6802
|
-
{
|
|
6803
|
-
"fileName": "list-filters-demo.component.html",
|
|
6804
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-filters/inline-filters/list-filters-demo.component.html",
|
|
6805
|
-
"rawContents": "<sky-list [data]=\"items\">\n <sky-list-toolbar>\n <sky-list-filter-inline>\n <sky-list-filter-inline-item\n defaultValue=\"any\"\n name=\"fruitType\"\n value=\"any\"\n [filter]=\"fruitTypeFilterFunction\"\n >\n <ng-template let-filter=\"filter\">\n <label class=\"sky-control-label\" [for]=\"fruitTypeSelect.id\">\n Fruit type\n </label>\n <select\n skyId\n [ngModel]=\"filter.value\"\n (ngModelChange)=\"filter.changed($event)\"\n #fruitTypeSelect=\"skyId\"\n >\n <option value=\"any\">Any fruit</option>\n <option value=\"citrus\">Citrus</option>\n <option value=\"berry\">Berry</option>\n </select>\n </ng-template>\n </sky-list-filter-inline-item>\n <sky-list-filter-inline-item\n name=\"hideOrange\"\n [filter]=\"hideOrangeFilterFunction\"\n >\n <ng-template let-filter=\"filter\">\n <sky-checkbox\n [ngModel]=\"filter.value\"\n (ngModelChange)=\"filter.changed($event)\"\n >\n <sky-checkbox-label> Hide orange fruits </sky-checkbox-label>\n </sky-checkbox>\n </ng-template>\n </sky-list-filter-inline-item>\n </sky-list-filter-inline>\n </sky-list-toolbar>\n <sky-list-view-grid>\n <sky-grid-column field=\"name\" heading=\"Name\"> </sky-grid-column>\n <sky-grid-column field=\"description\" heading=\"Description\">\n </sky-grid-column>\n </sky-list-view-grid>\n</sky-list>\n"
|
|
6806
|
-
},
|
|
6807
|
-
{
|
|
6808
|
-
"fileName": "list-filters-demo.component.ts",
|
|
6809
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-filters/inline-filters/list-filters-demo.component.ts",
|
|
6810
|
-
"rawContents": "import { Component } from '@angular/core';\nimport { ListItemModel } from '@skyux/list-builder-common';\n\nimport { Observable, of } from 'rxjs';\n\n@Component({\n selector: 'app-list-filters-demo',\n templateUrl: './list-filters-demo.component.html',\n})\nexport class ListFiltersDemoComponent {\n public items: Observable<any> = of([\n {\n id: 0,\n name: 'Orange',\n description: 'A round, orange fruit.',\n type: 'citrus',\n color: 'orange',\n },\n {\n id: 1,\n name: 'Mango',\n description: \"Delicious in smoothies, but don't eat the skin.\",\n type: 'other',\n color: 'orange',\n },\n {\n id: 2,\n name: 'Lime',\n description: 'A sour, green fruit used in many drinks.',\n type: 'citrus',\n color: 'green',\n },\n {\n id: 3,\n name: 'Strawberry',\n description: 'A red fruit that goes well with shortcake.',\n type: 'berry',\n color: 'red',\n },\n {\n id: 4,\n name: 'Blueberry',\n description: 'A small, blue fruit often found in muffins.',\n type: 'berry',\n color: 'blue',\n },\n ]);\n\n public fruitTypeFilterFunction(\n item: ListItemModel,\n filterValue: any\n ): boolean {\n return filterValue === 'any' || filterValue === item.data.type;\n }\n\n public hideOrangeFilterFunction(\n item: ListItemModel,\n filterValue: any\n ): boolean {\n return !filterValue || (filterValue && item.data.color !== 'orange');\n }\n}\n"
|
|
6811
|
-
},
|
|
6812
|
-
{
|
|
6813
|
-
"fileName": "list-filters-demo.module.ts",
|
|
6814
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-filters/inline-filters/list-filters-demo.module.ts",
|
|
6815
|
-
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport {\n SkyListFiltersModule,\n SkyListModule,\n SkyListToolbarModule,\n} from '@skyux/list-builder';\nimport { SkyListViewGridModule } from '@skyux/list-builder-view-grids';\nimport { SkyFilterModule } from '@skyux/lists';\n\nimport { ListFiltersDemoComponent } from './list-filters-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SkyCheckboxModule,\n SkyFilterModule,\n SkyIdModule,\n SkyListFiltersModule,\n SkyListModule,\n SkyListToolbarModule,\n SkyListViewGridModule,\n ],\n declarations: [ListFiltersDemoComponent],\n exports: [ListFiltersDemoComponent],\n})\nexport class ListFiltersDemoModule {}\n"
|
|
6816
|
-
},
|
|
6817
|
-
{
|
|
6818
|
-
"fileName": "list-filters-demo-modal-context.ts",
|
|
6819
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-filters/modal-filters/list-filters-demo-modal-context.ts",
|
|
6820
|
-
"rawContents": "export class ListFiltersDemoModalContext {\n public appliedFilters: any[];\n}\n"
|
|
6821
|
-
},
|
|
6822
|
-
{
|
|
6823
|
-
"fileName": "list-filters-demo-modal.component.html",
|
|
6824
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-filters/modal-filters/list-filters-demo-modal.component.html",
|
|
6825
|
-
"rawContents": "<sky-modal>\n <sky-modal-header>\n {{ headerText }}\n </sky-modal-header>\n <sky-modal-content>\n <label class=\"sky-control-label\" [for]=\"fruitTypeSelect.id\">\n Fruit type\n </label>\n <select\n class=\"sky-form-control\"\n skyId\n [(ngModel)]=\"fruitType\"\n #fruitTypeSelect=\"skyId\"\n >\n <option value=\"any\">Any fruit</option>\n <option value=\"citrus\">Citrus</option>\n <option value=\"berry\">Berry</option>\n </select>\n <div style=\"margin-top: 15px\">\n <sky-checkbox [(ngModel)]=\"hideOrange\">\n <sky-checkbox-label> Hide orange fruits </sky-checkbox-label>\n </sky-checkbox>\n </div>\n </sky-modal-content>\n <sky-modal-footer>\n <button\n class=\"sky-btn sky-btn-primary\"\n type=\"button\"\n (click)=\"applyFilters()\"\n >\n Apply\n </button>\n <button\n class=\"sky-btn sky-btn-link\"\n type=\"button\"\n (click)=\"clearAllFilters()\"\n >\n Clear filters\n </button>\n <button class=\"sky-btn sky-btn-link\" type=\"button\" (click)=\"cancel()\">\n Cancel\n </button>\n </sky-modal-footer>\n</sky-modal>\n"
|
|
6826
|
-
},
|
|
6827
|
-
{
|
|
6828
|
-
"fileName": "list-filters-demo-modal.component.ts",
|
|
6829
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-filters/modal-filters/list-filters-demo-modal.component.ts",
|
|
6830
|
-
"rawContents": "import { Component } from '@angular/core';\nimport { ListFilterModel } from '@skyux/list-builder';\nimport { ListItemModel } from '@skyux/list-builder-common';\nimport { SkyModalInstance } from '@skyux/modals';\n\nimport { ListFiltersDemoModalContext } from './list-filters-demo-modal-context';\n\n@Component({\n selector: 'app-demo-filter-modal-form',\n templateUrl: './list-filters-demo-modal.component.html',\n})\nexport class ListFilterDemoModalComponent {\n public fruitType = 'any';\n\n public hideOrange: boolean;\n\n public headerText = 'Filters';\n\n constructor(\n public context: ListFiltersDemoModalContext,\n public instance: SkyModalInstance\n ) {\n if (\n this.context &&\n this.context.appliedFilters &&\n this.context.appliedFilters.length > 0\n ) {\n this.setFormFilters(this.context.appliedFilters);\n } else {\n this.clearAllFilters();\n }\n }\n\n public applyFilters(): void {\n const result = this.getAppliedFiltersArray();\n this.instance.save(result);\n }\n\n public cancel(): void {\n this.instance.cancel();\n }\n\n public clearAllFilters(): void {\n this.hideOrange = false;\n this.fruitType = 'any';\n }\n\n private fruitTypeFilterFunction(\n item: ListItemModel,\n filterValue: any\n ): boolean {\n return filterValue === item.data.type;\n }\n\n private getAppliedFiltersArray(): ListFilterModel[] {\n const appliedFilters: ListFilterModel[] = [];\n if (this.fruitType !== 'any') {\n appliedFilters.push(\n new ListFilterModel({\n name: 'fruitType',\n value: this.fruitType,\n label: this.fruitType,\n filterFunction: this.fruitTypeFilterFunction,\n })\n );\n }\n\n if (this.hideOrange) {\n appliedFilters.push(\n new ListFilterModel({\n name: 'hideOrange',\n value: true,\n label: 'hide orange fruits',\n filterFunction: this.hideOrangeFilterFunction,\n })\n );\n }\n\n return appliedFilters;\n }\n\n private hideOrangeFilterFunction(\n item: ListItemModel,\n filterValue: any\n ): boolean {\n return !filterValue || (filterValue && item.data.color !== 'orange');\n }\n\n private setFormFilters(appliedFilters: any[]): void {\n for (let i = 0; i < appliedFilters.length; i++) {\n if (appliedFilters[i].name === 'fruitType') {\n this.fruitType = appliedFilters[i].value;\n }\n\n if (appliedFilters[i].name === 'hideOrange') {\n this.hideOrange = appliedFilters[i].value;\n }\n }\n }\n}\n"
|
|
6831
|
-
},
|
|
6832
|
-
{
|
|
6833
|
-
"fileName": "list-filters-demo.component.html",
|
|
6834
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-filters/modal-filters/list-filters-demo.component.html",
|
|
6835
|
-
"rawContents": "<sky-list\n [appliedFilters]=\"listFilters\"\n [data]=\"items\"\n (appliedFiltersChange)=\"modalFilters = $event\"\n>\n <sky-list-toolbar [searchEnabled]=\"false\">\n <sky-list-filter-button>\n <sky-filter-button\n (filterButtonClick)=\"openFilterModal()\"\n [showButtonText]=\"true\"\n >\n </sky-filter-button>\n </sky-list-filter-button>\n <sky-list-filter-summary (summaryItemClick)=\"openFilterModal()\">\n </sky-list-filter-summary>\n </sky-list-toolbar>\n <sky-list-view-grid>\n <sky-grid-column field=\"name\" heading=\"Name\"> </sky-grid-column>\n <sky-grid-column field=\"description\" heading=\"Description\">\n </sky-grid-column>\n </sky-list-view-grid>\n</sky-list>\n"
|
|
6836
|
-
},
|
|
6837
|
-
{
|
|
6838
|
-
"fileName": "list-filters-demo.component.ts",
|
|
6839
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-filters/modal-filters/list-filters-demo.component.ts",
|
|
6840
|
-
"rawContents": "import { Component } from '@angular/core';\nimport { ListFilterModel } from '@skyux/list-builder';\nimport { SkyModalCloseArgs, SkyModalService } from '@skyux/modals';\n\nimport { of } from 'rxjs';\n\nimport { ListFiltersDemoModalContext } from './list-filters-demo-modal-context';\nimport { ListFilterDemoModalComponent } from './list-filters-demo-modal.component';\n\n@Component({\n selector: 'app-list-filters-demo',\n templateUrl: './list-filters-demo.component.html',\n})\nexport class ListFiltersDemoComponent {\n public items = of([\n {\n id: 0,\n name: 'Orange',\n description: 'A round, orange fruit.',\n type: 'citrus',\n color: 'orange',\n },\n {\n id: 1,\n name: 'Mango',\n description: \"Delicious in smoothies, but don't eat the skin.\",\n type: 'other',\n color: 'orange',\n },\n {\n id: 2,\n name: 'Lime',\n description: 'A sour, green fruit used in many drinks.',\n type: 'citrus',\n color: 'green',\n },\n {\n id: 3,\n name: 'Strawberry',\n description: 'A red fruit that goes well with shortcake.',\n type: 'berry',\n color: 'red',\n },\n {\n id: 4,\n name: 'Blueberry',\n description: 'A small, blue fruit often found in muffins.',\n type: 'berry',\n color: 'blue',\n },\n ]);\n\n public listFilters: ListFilterModel[] = [];\n\n public modalFilters: ListFilterModel[] = [];\n\n constructor(private modalService: SkyModalService) {}\n\n public openFilterModal(): void {\n const instance = this.modalService.open(ListFilterDemoModalComponent, [\n {\n provide: ListFiltersDemoModalContext,\n useValue: {\n appliedFilters: this.modalFilters,\n },\n },\n ]);\n\n instance.closed.subscribe((result: SkyModalCloseArgs) => {\n if (result.reason === 'save') {\n this.listFilters = result.data.slice();\n }\n });\n }\n}\n"
|
|
6841
|
-
},
|
|
6842
|
-
{
|
|
6843
|
-
"fileName": "list-filters-demo.module.ts",
|
|
6844
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-filters/modal-filters/list-filters-demo.module.ts",
|
|
6845
|
-
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyCheckboxModule } from '@skyux/forms';\nimport {\n SkyListFiltersModule,\n SkyListModule,\n SkyListToolbarModule,\n} from '@skyux/list-builder';\nimport { SkyListViewGridModule } from '@skyux/list-builder-view-grids';\nimport { SkyFilterModule } from '@skyux/lists';\nimport { SkyModalModule } from '@skyux/modals';\n\nimport { ListFilterDemoModalComponent } from './list-filters-demo-modal.component';\nimport { ListFiltersDemoComponent } from './list-filters-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SkyCheckboxModule,\n SkyFilterModule,\n SkyIdModule,\n SkyListFiltersModule,\n SkyListModule,\n SkyListToolbarModule,\n SkyListViewGridModule,\n SkyModalModule,\n ],\n declarations: [ListFiltersDemoComponent, ListFilterDemoModalComponent],\n exports: [ListFiltersDemoComponent],\n})\nexport class ListFiltersDemoModule {}\n"
|
|
6846
|
-
},
|
|
6847
|
-
{
|
|
6848
|
-
"fileName": "list-paging-demo.component.html",
|
|
6849
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-paging/basic/list-paging-demo.component.html",
|
|
6850
|
-
"rawContents": "<sky-list [data]=\"data\">\n <sky-list-view-grid #grid>\n <sky-grid-column field=\"name\" heading=\"Name\"> </sky-grid-column>\n <sky-grid-column field=\"email\" heading=\"Email\"> </sky-grid-column>\n <sky-grid-column field=\"amount\" heading=\"Amount\"> </sky-grid-column>\n </sky-list-view-grid>\n <sky-list-paging pageSize=\"5\"></sky-list-paging>\n</sky-list>\n"
|
|
6851
|
-
},
|
|
6852
|
-
{
|
|
6853
|
-
"fileName": "list-paging-demo.component.scss",
|
|
6854
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-paging/basic/list-paging-demo.component.scss",
|
|
6855
|
-
"rawContents": "@use 'libs/components/theme/src/lib/styles/mixins' as mixins;\n\n::ng-deep .sky-grid-table {\n @include mixins.sky-border(dark, top);\n}\n"
|
|
6856
|
-
},
|
|
6857
|
-
{
|
|
6858
|
-
"fileName": "list-paging-demo.component.ts",
|
|
6859
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-paging/basic/list-paging-demo.component.ts",
|
|
6860
|
-
"rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-list-paging-demo',\n templateUrl: './list-paging-demo.component.html',\n styleUrls: ['./list-paging-demo.component.scss'],\n})\nexport class ListPagingDemoComponent {\n public data: any[] = [\n {\n id: '1',\n name: 'Niels Bohr',\n email: 'niels.bohr@example.com',\n amount: 170.75,\n status: 'Paid',\n },\n {\n id: '2',\n name: 'Ada Lovelace',\n email: 'ada.lovelace@example.com',\n amount: 114.13,\n status: 'Paid',\n },\n {\n id: '3',\n name: 'Marie Curie',\n email: 'marie.curie@example.com',\n amount: 111,\n status: 'Past due',\n },\n {\n id: '4',\n name: 'Barbara McClintock',\n email: 'barbara.mcclintock@example.com',\n amount: 84.63,\n status: 'Paid',\n },\n {\n id: '5',\n name: 'Michael Faraday',\n email: 'michael.faraday@example.com',\n amount: 83.97,\n status: 'Paid',\n },\n {\n id: '6',\n name: 'Enrico Fermi',\n email: 'enrico.fermi@example.com',\n amount: 74.5,\n status: 'Past due',\n },\n {\n id: '7',\n name: 'Mae C. Jemison',\n email: 'mae.jemison@example.com',\n amount: 70.86,\n status: 'Paid',\n },\n {\n id: '8',\n name: 'Nikola Tesla',\n email: 'nikola.tesla@example.com',\n amount: 15.0,\n status: 'Paid',\n },\n {\n id: '9',\n name: 'Hubert J. Farnsworth',\n email: 'hubert.j.farnsworth@example.com',\n amount: 999.99,\n status: 'Past Due',\n },\n ];\n}\n"
|
|
6861
|
-
},
|
|
6862
|
-
{
|
|
6863
|
-
"fileName": "list-paging-demo.module.ts",
|
|
6864
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-paging/basic/list-paging-demo.module.ts",
|
|
6865
|
-
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyListModule, SkyListPagingModule } from '@skyux/list-builder';\nimport { SkyListViewGridModule } from '@skyux/list-builder-view-grids';\n\nimport { ListPagingDemoComponent } from './list-paging-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n SkyListModule,\n SkyListPagingModule,\n SkyListViewGridModule,\n ],\n declarations: [ListPagingDemoComponent],\n exports: [ListPagingDemoComponent],\n})\nexport class ListPagingDemoModule {}\n"
|
|
6866
|
-
},
|
|
6867
|
-
{
|
|
6868
|
-
"fileName": "list-toolbar-demo.component.html",
|
|
6869
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-toolbar/basic/list-toolbar-demo.component.html",
|
|
6870
|
-
"rawContents": "<sky-list [data]=\"data\">\n <sky-list-toolbar>\n <sky-list-toolbar-item id=\"custom-item\" index=\"0\" location=\"left\">\n <ng-template>\n <sky-dropdown buttonStyle=\"primary\">\n <sky-dropdown-button (click)=\"onAddButtonClicked()\">\n <sky-icon icon=\"plus-circle\"></sky-icon>\n Add\n </sky-dropdown-button>\n </sky-dropdown>\n </ng-template>\n </sky-list-toolbar-item>\n <sky-list-filter-button>\n <sky-filter-button\n [showButtonText]=\"true\"\n (filterButtonClick)=\"onFilterButtonClicked()\"\n >\n </sky-filter-button>\n </sky-list-filter-button>\n <sky-list-filter-summary (summaryItemClick)=\"onSummaryItemClick()\">\n </sky-list-filter-summary>\n <sky-list-toolbar-sort\n field=\"column2\"\n label=\"Fruit name (A - Z)\"\n type=\"string\"\n [descending]=\"false\"\n >\n </sky-list-toolbar-sort>\n <sky-list-toolbar-sort\n field=\"column2\"\n label=\"Fruit name (Z - A)\"\n type=\"string\"\n [descending]=\"true\"\n >\n </sky-list-toolbar-sort>\n <sky-list-column-selector-action [gridView]=\"grid\">\n </sky-list-column-selector-action>\n <sky-list-secondary-actions>\n <sky-list-secondary-action>\n <button type=\"button\">Option</button>\n </sky-list-secondary-action>\n </sky-list-secondary-actions>\n <sky-list-toolbar-view-actions>\n <form novalidate [formGroup]=\"myForm\">\n <sky-radio-group formControlName=\"myView\">\n <div class=\"sky-switch-icon-group\">\n <sky-radio\n *ngFor=\"let view of views\"\n [icon]=\"view.icon\"\n [label]=\"view.label\"\n [value]=\"view.name\"\n >\n </sky-radio>\n </div>\n </sky-radio-group>\n </form>\n </sky-list-toolbar-view-actions>\n </sky-list-toolbar>\n <sky-list-view-grid #grid>\n <sky-grid-column field=\"name\" heading=\"Name\"> </sky-grid-column>\n <sky-grid-column field=\"email\" heading=\"Email\"> </sky-grid-column>\n <sky-grid-column field=\"amount\" heading=\"Amount\"> </sky-grid-column>\n </sky-list-view-grid>\n</sky-list>\n"
|
|
6871
|
-
},
|
|
6872
|
-
{
|
|
6873
|
-
"fileName": "list-toolbar-demo.component.ts",
|
|
6874
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-toolbar/basic/list-toolbar-demo.component.ts",
|
|
6875
|
-
"rawContents": "import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'app-list-toolbar-demo',\n templateUrl: './list-toolbar-demo.component.html',\n})\nexport class ListToolbarDemoComponent implements OnInit {\n public data: any[] = [\n {\n id: '1',\n name: 'Niels Bohr',\n email: 'niels.bohr@example.com',\n amount: 170.75,\n status: 'Paid',\n },\n {\n id: '2',\n name: 'Ada Lovelace',\n email: 'ada.lovelace@example.com',\n amount: 114.13,\n status: 'Paid',\n },\n {\n id: '3',\n name: 'Marie Curie',\n email: 'marie.curie@example.com',\n amount: 111,\n status: 'Past due',\n },\n {\n id: '4',\n name: 'Barbara McClintock',\n email: 'barbara.mcclintock@example.com',\n amount: 84.63,\n status: 'Paid',\n },\n {\n id: '5',\n name: 'Michael Faraday',\n email: 'michael.faraday@example.com',\n amount: 83.97,\n status: 'Paid',\n },\n {\n id: '6',\n name: 'Enrico Fermi',\n email: 'enrico.fermi@example.com',\n amount: 74.5,\n status: 'Past due',\n },\n {\n id: '7',\n name: 'Mae C. Jemison',\n email: 'mae.jemison@example.com',\n amount: 70.86,\n status: 'Paid',\n },\n {\n id: '8',\n name: 'Nikola Tesla',\n email: 'nikola.tesla@example.com',\n amount: 15.0,\n status: 'Paid',\n },\n {\n id: '9',\n name: 'Hubert J. Farnsworth',\n email: 'hubert.j.farnsworth@example.com',\n amount: 999.99,\n status: 'Past Due',\n },\n ];\n\n public myForm: FormGroup;\n\n public views: any[] = [\n { icon: 'table', label: 'Table', name: 'table' },\n { icon: 'list', label: 'List', name: 'list' },\n { icon: 'th-large', label: 'Cards', name: 'cards' },\n { icon: 'map-marker', label: 'Map', name: 'map' },\n ];\n\n constructor(private formBuilder: FormBuilder) {}\n\n public ngOnInit(): void {\n this.myForm = this.formBuilder.group({\n myView: this.views[0].name,\n });\n }\n\n public onAddButtonClicked(): void {\n alert('Add button clicked');\n }\n\n public onFilterButtonClicked(): void {\n alert('Filter button clicked');\n }\n\n public onSummaryItemClick(): void {\n alert('Filter summary item clicked');\n }\n}\n"
|
|
6876
|
-
},
|
|
6877
|
-
{
|
|
6878
|
-
"fileName": "list-toolbar-demo.module.ts",
|
|
6879
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-toolbar/basic/list-toolbar-demo.module.ts",
|
|
6880
|
-
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { SkyRadioModule } from '@skyux/forms';\nimport { SkyIconModule } from '@skyux/indicators';\nimport {\n SkyListFiltersModule,\n SkyListModule,\n SkyListSecondaryActionsModule,\n SkyListToolbarModule,\n} from '@skyux/list-builder';\nimport { SkyListViewGridModule } from '@skyux/list-builder-view-grids';\nimport { SkyFilterModule } from '@skyux/lists';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\nimport { ListToolbarDemoComponent } from './list-toolbar-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SkyDropdownModule,\n SkyFilterModule,\n SkyIconModule,\n SkyListFiltersModule,\n SkyListModule,\n SkyListSecondaryActionsModule,\n SkyListToolbarModule,\n SkyListViewGridModule,\n SkyRadioModule,\n ReactiveFormsModule,\n ],\n declarations: [ListToolbarDemoComponent],\n exports: [ListToolbarDemoComponent],\n})\nexport class ListToolbarDemoModule {}\n"
|
|
6881
|
-
},
|
|
6882
|
-
{
|
|
6883
|
-
"fileName": "list-toolbar-demo.component.html",
|
|
6884
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-toolbar/custom/list-toolbar-demo.component.html",
|
|
6885
|
-
"rawContents": "<sky-list [data]=\"data\">\n <sky-list-toolbar>\n <sky-list-toolbar-item id=\"custom-item\" location=\"left\">\n <ng-template>\n <button class=\"sky-btn sky-btn-default\" (click)=\"onLeftButtonClicked()\">\n Left\n </button>\n </ng-template>\n </sky-list-toolbar-item>\n <sky-list-toolbar-item id=\"custom-item2\" index=\"1\" location=\"center\">\n <ng-template>\n <button\n class=\"sky-btn sky-btn-default\"\n (click)=\"onCenterButtonClicked()\"\n >\n Center\n </button>\n </ng-template>\n </sky-list-toolbar-item>\n </sky-list-toolbar>\n <sky-list-view-grid #grid>\n <sky-grid-column field=\"name\" heading=\"Name\"> </sky-grid-column>\n <sky-grid-column field=\"email\" heading=\"Email\"> </sky-grid-column>\n <sky-grid-column field=\"amount\" heading=\"Amount\"> </sky-grid-column>\n </sky-list-view-grid>\n</sky-list>\n"
|
|
6886
|
-
},
|
|
6887
|
-
{
|
|
6888
|
-
"fileName": "list-toolbar-demo.component.ts",
|
|
6889
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-toolbar/custom/list-toolbar-demo.component.ts",
|
|
6890
|
-
"rawContents": "import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-list-toolbar-demo',\n templateUrl: './list-toolbar-demo.component.html',\n})\nexport class ListToolbarDemoComponent {\n public data: any[] = [\n {\n id: '1',\n name: 'Niels Bohr',\n email: 'niels.bohr@example.com',\n amount: 170.75,\n status: 'Paid',\n },\n {\n id: '2',\n name: 'Ada Lovelace',\n email: 'ada.lovelace@example.com',\n amount: 114.13,\n status: 'Paid',\n },\n {\n id: '3',\n name: 'Marie Curie',\n email: 'marie.curie@example.com',\n amount: 111,\n status: 'Past due',\n },\n {\n id: '4',\n name: 'Barbara McClintock',\n email: 'barbara.mcclintock@example.com',\n amount: 84.63,\n status: 'Paid',\n },\n {\n id: '5',\n name: 'Michael Faraday',\n email: 'michael.faraday@example.com',\n amount: 83.97,\n status: 'Paid',\n },\n {\n id: '6',\n name: 'Enrico Fermi',\n email: 'enrico.fermi@example.com',\n amount: 74.5,\n status: 'Past due',\n },\n {\n id: '7',\n name: 'Mae C. Jemison',\n email: 'mae.jemison@example.com',\n amount: 70.86,\n status: 'Paid',\n },\n {\n id: '8',\n name: 'Nikola Tesla',\n email: 'nikola.tesla@example.com',\n amount: 15.0,\n status: 'Paid',\n },\n {\n id: '9',\n name: 'Hubert J. Farnsworth',\n email: 'hubert.j.farnsworth@example.com',\n amount: 999.99,\n status: 'Past Due',\n },\n ];\n\n public onCenterButtonClicked(): void {\n alert('Center button clicked!');\n }\n\n public onLeftButtonClicked(): void {\n alert('Left button clicked!');\n }\n}\n"
|
|
6891
|
-
},
|
|
6892
|
-
{
|
|
6893
|
-
"fileName": "list-toolbar-demo.module.ts",
|
|
6894
|
-
"filePath": "/projects/list-builder/documentation/code-examples/list-toolbar/custom/list-toolbar-demo.module.ts",
|
|
6895
|
-
"rawContents": "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyListModule, SkyListToolbarModule } from '@skyux/list-builder';\nimport { SkyListViewGridModule } from '@skyux/list-builder-view-grids';\n\nimport { ListToolbarDemoComponent } from './list-toolbar-demo.component';\n\n@NgModule({\n imports: [\n CommonModule,\n SkyListModule,\n SkyListToolbarModule,\n SkyListViewGridModule,\n ],\n declarations: [ListToolbarDemoComponent],\n exports: [ListToolbarDemoComponent],\n})\nexport class ListToolbarDemoModule {}\n"
|
|
6896
|
-
}
|
|
6897
|
-
]
|
|
6801
|
+
"codeExamples": []
|
|
6898
6802
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output,
|
|
2
|
-
import { SkyLogService } from '@skyux/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, } from '@angular/core';
|
|
3
2
|
import { getValue } from '@skyux/list-builder-common';
|
|
4
3
|
import { ListItemModel, isObservable, } from '@skyux/list-builder-common';
|
|
5
4
|
import { Subject, combineLatest as observableCombineLatest, of as observableOf, } from 'rxjs';
|
|
@@ -7,7 +6,6 @@ import { distinctUntilChanged, flatMap, map as observableMap, skip, take, takeUn
|
|
|
7
6
|
import { SkyListInMemoryDataProvider } from '../list-data-provider-in-memory/list-data-in-memory.provider';
|
|
8
7
|
import { ListDataRequestModel } from './list-data-request.model';
|
|
9
8
|
import { ListDataResponseModel } from './list-data-response.model';
|
|
10
|
-
import { ListDataProvider } from './list-data.provider';
|
|
11
9
|
import { ListViewComponent } from './list-view.component';
|
|
12
10
|
import { ListItemsLoadAction } from './state/items/load.action';
|
|
13
11
|
import { ListItemsSetLoadingAction } from './state/items/set-loading.action';
|
|
@@ -277,9 +275,9 @@ export class SkyListComponent {
|
|
|
277
275
|
return true;
|
|
278
276
|
}
|
|
279
277
|
}
|
|
280
|
-
SkyListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
281
|
-
SkyListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
282
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
278
|
+
SkyListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListComponent, deps: [{ token: i1.ListState }, { token: i2.ListStateDispatcher }, { token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
|
|
279
|
+
SkyListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyListComponent, selector: "sky-list", inputs: { data: "data", dataProvider: "dataProvider", defaultView: "defaultView", initialTotal: "initialTotal", selectedIds: "selectedIds", sortFields: "sortFields", appliedFilters: "appliedFilters", searchFunction: ["search", "searchFunction"] }, outputs: { selectedIdsChange: "selectedIdsChange", appliedFiltersChange: "appliedFiltersChange" }, providers: [ListState, ListStateDispatcher], queries: [{ propertyName: "listViews", predicate: ListViewComponent }], usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListComponent, decorators: [{
|
|
283
281
|
type: Component,
|
|
284
282
|
args: [{
|
|
285
283
|
selector: 'sky-list',
|
|
@@ -312,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
312
310
|
type: ContentChildren,
|
|
313
311
|
args: [ListViewComponent]
|
|
314
312
|
}] } });
|
|
315
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyL3NyYy9saWIvbW9kdWxlcy9saXN0L2xpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQWEsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUNMLGFBQWEsRUFFYixZQUFZLEdBQ2IsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBRUwsT0FBTyxFQUNQLGFBQWEsSUFBSSx1QkFBdUIsRUFDeEMsRUFBRSxJQUFJLFlBQVksR0FDbkIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxHQUFHLElBQUksYUFBYSxFQUNwQixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRzNHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFB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QWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4SkFjUSxJQUFJO3NCQURWLEtBQUs7Z0JBVUMsWUFBWTtzQkFEbEIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO2dCQVNDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBU0MsV0FBVztzQkFEakIsS0FBSztnQkFTQyxVQUFVO3NCQURoQixLQUFLO2dCQWNDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBT0MsaUJBQWlCO3NCQUR2QixNQUFNO2dCQU9BLG9CQUFvQjtzQkFEMUIsTUFBTTtnQkFRQSxjQUFjO3NCQURwQixLQUFLO3VCQUFDLFFBQVE7Z0JBTVAsU0FBUztzQkFEaEIsZUFBZTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgQXN5bmNJdGVtLCBnZXRWYWx1ZSB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcbmltcG9ydCB7XG4gIExpc3RJdGVtTW9kZWwsXG4gIExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsLFxuICBpc09ic2VydmFibGUsXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCBhcyBvYnNlcnZhYmxlQ29tYmluZUxhdGVzdCxcbiAgb2YgYXMgb2JzZXJ2YWJsZU9mLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmbGF0TWFwLFxuICBtYXAgYXMgb2JzZXJ2YWJsZU1hcCxcbiAgc2tpcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUxpc3RJbk1lbW9yeURhdGFQcm92aWRlciB9IGZyb20gJy4uL2xpc3QtZGF0YS1wcm92aWRlci1pbi1tZW1vcnkvbGlzdC1kYXRhLWluLW1lbW9yeS5wcm92aWRlcic7XG5pbXBvcnQgeyBMaXN0RmlsdGVyTW9kZWwgfSBmcm9tICcuLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcblxuaW1wb3J0IHsgTGlzdERhdGFSZXF1ZXN0TW9kZWwgfSBmcm9tICcuL2xpc3QtZGF0YS1yZXF1ZXN0Lm1vZGVsJztcbmltcG9ydCB7IExpc3REYXRhUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4vbGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsJztcbmltcG9ydCB7IExpc3REYXRhUHJvdmlkZXIgfSBmcm9tICcuL2xpc3QtZGF0YS5wcm92aWRlcic7XG5pbXBvcnQgeyBMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vbGlzdC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0SXRlbXNMb2FkQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0SXRlbXNTZXRMb2FkaW5nQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9zZXQtbG9hZGluZy5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFN0YXRlRGlzcGF0Y2hlciB9IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5yeHN0YXRlJztcbmltcG9ydCB7IExpc3RTdGF0ZSB9IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5zdGF0ZS1ub2RlJztcbmltcG9ydCB7IExpc3RQYWdpbmdTZXRQYWdlTnVtYmVyQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9wYWdpbmcvc2V0LXBhZ2UtbnVtYmVyLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U2VhcmNoTW9kZWwgfSBmcm9tICcuL3N0YXRlL3NlYXJjaC9zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgTGlzdFNlbGVjdGVkTG9hZEFjdGlvbiB9IGZyb20gJy4vc3RhdGUvc2VsZWN0ZWQvbG9hZC5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFNlbGVjdGVkTW9kZWwgfSBmcm9tICcuL3N0YXRlL3NlbGVjdGVkL3NlbGVjdGVkLm1vZGVsJztcbmltcG9ydCB7IExpc3RTZWxlY3RlZFNldExvYWRpbmdBY3Rpb24gfSBmcm9tICcuL3N0YXRlL3NlbGVjdGVkL3NldC1sb2FkaW5nLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U29ydFNldEZpZWxkU2VsZWN0b3JzQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9zb3J0L3NldC1maWVsZC1zZWxlY3RvcnMuYWN0aW9uJztcbmltcG9ydCB7IExpc3RTb3J0TW9kZWwgfSBmcm9tICcuL3N0YXRlL3NvcnQvc29ydC5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0Vmlld3NMb2FkQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS92aWV3cy9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0Vmlld3NTZXRBY3RpdmVBY3Rpb24gfSBmcm9tICcuL3N0YXRlL3ZpZXdzL3NldC1hY3RpdmUuYWN0aW9uJztcbmltcG9ydCB7IExpc3RWaWV3TW9kZWwgfSBmcm9tICcuL3N0YXRlL3ZpZXdzL3ZpZXcubW9kZWwnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTGlzdCBidWlsZGVyIGFuZCBpdHMgZmVhdHVyZXMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBkYXRhIG1hbmFnZXIgaW5zdGVhZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktbGlzdCcsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHByb3ZpZGVyczogW0xpc3RTdGF0ZSwgTGlzdFN0YXRlRGlzcGF0Y2hlcl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMaXN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgcHVibGljIGlkID0gYHNreS1saXN0LWNtcC0keysraWRJbmRleH1gO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBkYXRhIHRvIGRpc3BsYXkuIFRoZSBsaXN0IGNvbXBvbmVudCByZXF1aXJlcyB0aGlzIHByb3BlcnR5IG9yIHRoZVxuICAgKiBgZGF0YVByb3ZpZGVyYCBwcm9wZXJ0eS4gRm9yIGNoZWNrbGlzdCBvciBtdWx0aXNlbGVjdCBncmlkcywgZWFjaCByb3cgcmVxdWlyZXMgYW5cbiAgICogYGlkYCBwcm9wZXJ0eSB0byBtYW5hZ2Ugc2VsZWN0ZWQgaXRlbXMgd2l0aCB0aGUgYHNlbGVjdGVkSWRzYCBpbnB1dCBhbmQgdGhlXG4gICAqIGBzZWxlY3RlZElkc0NoYW5nZWAgZXZlbnQuIElmIHlvdSBkbyBub3QgcHJvdmlkZSBhbiBgaWRgLCB0aGUgbGlzdCBhdXRvbWF0aWNhbGx5XG4gICAqIGdlbmVyYXRlcyBvbmUuIFRvIHVwZGF0ZSBkYXRhIGluIHlvdXIgdmlldyBvdXRzaWRlIG9mIGEgYGRhdGFQcm92aWRlcmAsIHlvdSBtdXN0IHVzZVxuICAgKiBhbiBvYnNlcnZhYmxlIGluc3RlYWQgb2YgYSBzdGF0aWMgYXJyYXkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YT86IEFycmF5PGFueT4gfCBPYnNlcnZhYmxlPEFycmF5PGFueT4+ID0gW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGRhdGEgcHJvdmlkZXIgdG8gb2J0YWluIHRoZSBkYXRhIHRvIGRpc3BsYXkuIFRoZSBsaXN0IGNvbXBvbmVudCByZXF1aXJlc1xuICAgKiB0aGlzIHByb3BlcnR5IG9yIHRoZSBgZGF0YWAgcHJvcGVydHkuIEZvciBsaXN0cyB0aGF0IHVzZSBgZGF0YVByb3ZpZGVyYCBpbnN0ZWFkIG9mIGBkYXRhYCxcbiAgICogY29uc3VtZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYWxsIGBMaXN0RGF0YVJlcXVlc3RNb2RlbGAgcHJvcGVydGllcy5cbiAgICogQGRlZmF1bHQgU2t5TGlzdEluTWVtb3J5RGF0YVByb3ZpZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YVByb3ZpZGVyPzogTGlzdERhdGFQcm92aWRlcjtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVmYXVsdFZpZXc/OiBMaXN0Vmlld0NvbXBvbmVudDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgZm9yIHRoZSBpbml0aWFsIGRhdGEgc2V0IHdoZW4gaW5pdGlhbGl6ZWQuIFdoZW5cbiAgICogdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBkYXRhYCBhbmQgYGRhdGFQcm92aWRlcmAsIGl0IGFsbG93cyBhbiBpbml0aWFsIGRhdGEgdG8gYmVcbiAgICogc2V0IHdpdGggdGhlIG5lZWQgdG8gY2FsbCB0aGUgYGRhdGFQcm92aWRlcmAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaW5pdGlhbFRvdGFsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzZXQgb2YgSURzIGZvciB0aGUgaXRlbXMgdG8gc2VsZWN0IGluIGEgY2hlY2tsaXN0IG9yIG11bHRpc2VsZWN0IGdyaWQuXG4gICAqIFRoZSBJRHMgbWF0Y2ggdGhlIGBpZGAgcHJvcGVydGllcyBvZiB0aGUgYGRhdGFgIG9iamVjdHMuIEl0ZW1zIHdpdGggSURzIHRoYXQgYXJlIG5vdFxuICAgKiBpbmNsdWRlZCBhcmUgZGUtc2VsZWN0ZWQgaW4gdGhlIGNoZWNrbGlzdCBvciBtdWx0aXNlbGVjdCBncmlkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkSWRzPzogQXJyYXk8c3RyaW5nPiB8IE9ic2VydmFibGU8QXJyYXk8c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHNldCBvZiBmaWVsZHMgdG8gc29ydCBieS4gSWYgYXJyYXkgb2YgZmllbGRzIHRoZW4gc29ydGVkIGJ5IG9yZGVyIG9mIGFycmF5LlxuICAgKiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgYExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsYCwgc2VlIHRoZVxuICAgKiBbc2hhcmVkIGNsYXNzZXMgZm9yIGxpc3RzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4LWxpc3QtYnVpbGRlci1jb21tb24vZG9jcy9saXN0LWJ1aWxkZXItY29tbW9uKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzb3J0RmllbGRzPzpcbiAgICB8IExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsXG4gICAgfCBBcnJheTxMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbD5cbiAgICB8IE9ic2VydmFibGU8QXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+PlxuICAgIHwgT2JzZXJ2YWJsZTxMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbD47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHNldCBvZiBmaWx0ZXJzIHRvIGFwcGx5IHRvIGxpc3QgZGF0YS5cbiAgICogVGhlc2UgZmlsdGVycyBjcmVhdGUgYSBmaWx0ZXIgc3VtbWFyeSB3aGVuIHRoZSBsaXN0IGluY2x1ZGVzIHRoZVxuICAgKiBbYHNreS1saXN0LWZpbHRlci1zdW1tYXJ5YF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2xpc3QvZmlsdGVycylcbiAgICogY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFwcGxpZWRGaWx0ZXJzOiBBcnJheTxMaXN0RmlsdGVyTW9kZWw+ID0gW107XG5cbiAgLyoqXG4gICAqIEZvciBsaXN0IHZpZXdzIHRoYXQgc3VwcG9ydCBpdGVtIHNlbGVjdGlvbiwgZW1pdHMgdGhlIHNlbGVjdGVkIGVudHJpZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkSWRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNYXA8c3RyaW5nLCBib29sZWFuPj4oKTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgbGlzdC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYXBwbGllZEZpbHRlcnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PExpc3RGaWx0ZXJNb2RlbD4+KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGZ1bmN0aW9uIHRvIGFwcGx5IGFzIGEgZ2xvYmFsIHNvcnQgb24gdGhlIGxpc3QuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlYXJjaCcpXG4gIHB1YmxpYyBzZWFyY2hGdW5jdGlvbjogKGRhdGE6IGFueSwgc2VhcmNoVGV4dDogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gIHByaXZhdGUgZGF0YUZpcnN0TG9hZCA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTGlzdFZpZXdDb21wb25lbnQpXG4gIHByaXZhdGUgbGlzdFZpZXdzOiBRdWVyeUxpc3Q8TGlzdFZpZXdDb21wb25lbnQ+O1xuXG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgbGFzdEZpbHRlcnM6IExpc3RGaWx0ZXJNb2RlbFtdID0gW107XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXRlOiBMaXN0U3RhdGUsXG4gICAgcHJpdmF0ZSBkaXNwYXRjaGVyOiBMaXN0U3RhdGVEaXNwYXRjaGVyLFxuICAgIGxvZ2dlcjogU2t5TG9nU2VydmljZVxuICApIHtcbiAgICBsb2dnZXIuZGVwcmVjYXRlZCgnU2t5TGlzdENvbXBvbmVudCcsIHtcbiAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA2LFxuICAgICAgbW9yZUluZm9Vcmw6XG4gICAgICAgICdodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyJyxcbiAgICAgIHJlcGxhY2VtZW50UmVjb21tZW5kYXRpb246ICdVc2UgZGF0YSBtYW5hZ2VyIGluc3RlYWQuJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGFQcm92aWRlciAmJiB0aGlzLmluaXRpYWxUb3RhbCkge1xuICAgICAgdGhpcy5kYXRhRmlyc3RMb2FkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saXN0Vmlld3MubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZGVmYXVsdFZpZXc6IExpc3RWaWV3Q29tcG9uZW50ID1cbiAgICAgICAgdGhpcy5kZWZhdWx0VmlldyA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB0aGlzLmxpc3RWaWV3cy5maXJzdFxuICAgICAgICAgIDogdGhpcy5kZWZhdWx0VmlldztcblxuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgIG5ldyBMaXN0Vmlld3NMb2FkQWN0aW9uKFxuICAgICAgICAgIHRoaXMubGlzdFZpZXdzLm1hcCgodikgPT4gbmV3IExpc3RWaWV3TW9kZWwodi5pZCwgdi5sYWJlbCkpXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAgIC8vIGFjdGl2YXRlIHRoZSBkZWZhdWx0IHZpZXdcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0Vmlld3NTZXRBY3RpdmVBY3Rpb24oZGVmYXVsdFZpZXcuaWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHNldCBzb3J0IGZpZWxkc1xuICAgIGdldFZhbHVlKFxuICAgICAgdGhpcy5zb3J0RmllbGRzLFxuICAgICAgKFxuICAgICAgICBzb3J0RmllbGRzOiBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFtdIHwgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxcbiAgICAgICkgPT4ge1xuICAgICAgICBsZXQgc29ydEFycmF5OiBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFtdO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc29ydEZpZWxkcykgJiYgc29ydEZpZWxkcykge1xuICAgICAgICAgIHNvcnRBcnJheSA9IFtzb3J0RmllbGRzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzb3J0QXJyYXkgPSBzb3J0RmllbGRzIGFzIExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgbmV3IExpc3RTb3J0U2V0RmllbGRTZWxlY3RvcnNBY3Rpb24oc29ydEFycmF5IHx8IFtdKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdEl0ZW1zU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICBuZXcgTGlzdEl0ZW1zTG9hZEFjdGlvbihyZXN1bHQuaXRlbXMsIHRydWUsIHRydWUsIHJlc3VsdC5jb3VudClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBXYXRjaCBmb3Igc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAgdGhpcy5zdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIG9ic2VydmFibGVNYXAoKGN1cnJlbnQpID0+IGN1cnJlbnQuc2VsZWN0ZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWQpID0+IHtcbiAgICAgICAgLy8gVXBkYXRlIGxhc3RTZWxlY3RlZElkcyB0byBoZWxwIHVzIHJldGFpbiB1c2VyIHNlbGVjdGlvbnMuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzTGlzdDogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgc2VsZWN0ZWQuaXRlbS5zZWxlY3RlZElkTWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSWRzTGlzdC5wdXNoKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBJZiBjaGFuZ2VzIGFyZSBkaXN0aW5jdCwgZW1pdCBzZWxlY3RlZElkc0NoYW5nZS5cbiAgICAgICAgY29uc3QgZGlzdGluY3RDaGFuZ2VzID0gIXRoaXMuYXJyYXlzRXF1YWwoXG4gICAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRJZHMsXG4gICAgICAgICAgc2VsZWN0ZWRJZHNMaXN0XG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzQ2hhbmdlLm9ic2VydmVycy5sZW5ndGggPiAwICYmIGRpc3RpbmN0Q2hhbmdlcykge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHNDaGFuZ2UuZW1pdChzZWxlY3RlZC5pdGVtLnNlbGVjdGVkSWRNYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkc0xpc3Q7XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLmFwcGxpZWRGaWx0ZXJzQ2hhbmdlLm9ic2VydmVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN0YXRlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKGN1cnJlbnQpID0+IGN1cnJlbnQuZmlsdGVycyksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgc2tpcCgxKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlcnMpID0+IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBXZSBhcmUgZG9pbmcgdGhpcyBpbnN0ZWFkIG9mIGEgZGlzdGluY3RVbnRpbENoYW5nZSBkdWUgdG8gbWVtb3J5IGFsbG9jYXRpb24gaXNzdWVzXG4gICAgICAgICAgICogd2l0aCB0aGUgamF2YXNjcmlwdCBhcnJheS4gVG8gZml4IGZ1bGx5IHRoZSBhcnJheSBzaG91bGQgYmUgY2hhbmdlZCB0byBhbiBvYmplY3QgaW5cbiAgICAgICAgICAgKiBhIGJyZWFraW5nIGNoYW5nZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBpZiAoIXRoaXMuYXJyYXlzRXF1YWwoZmlsdGVycywgdGhpcy5sYXN0RmlsdGVycykpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdEZpbHRlcnMgPSBmaWx0ZXJzLnNsaWNlKDApO1xuICAgICAgICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyc0NoYW5nZS5lbWl0KGZpbHRlcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWydhcHBsaWVkRmlsdGVycyddICYmXG4gICAgICBjaGFuZ2VzWydhcHBsaWVkRmlsdGVycyddLmN1cnJlbnRWYWx1ZSAhPT1cbiAgICAgICAgY2hhbmdlc1snYXBwbGllZEZpbHRlcnMnXS5wcmV2aW91c1ZhbHVlXG4gICAgKSB7XG4gICAgICB0aGlzLnN0YXRlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChjdXJyZW50U3RhdGUpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5wYWdpbmcucGFnZU51bWJlciAmJlxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5wYWdpbmcucGFnZU51bWJlciAhPT0gMVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFBhZ2luZ1NldFBhZ2VOdW1iZXJBY3Rpb24oTnVtYmVyKDEpKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpc3BhdGNoZXIuZmlsdGVyc1VwZGF0ZSh0aGlzLmFwcGxpZWRGaWx0ZXJzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWRJZHMnXSkge1xuICAgICAgLy8gT25seSBzZW5kIHNlbGVjdGlvbiBjaGFuZ2VzIHRvIGRpc3BhdGNoZXIgaWYgY2hhbmdlcyBhcmUgZGlzdGluY3QuXG4gICAgICBjb25zdCBuZXdTZWxlY3RlZElkcyA9IGNoYW5nZXNbJ3NlbGVjdGVkSWRzJ10uY3VycmVudFZhbHVlO1xuICAgICAgaWYgKCF0aGlzLmFycmF5c0VxdWFsKG5ld1NlbGVjdGVkSWRzLCB0aGlzLmxhc3RTZWxlY3RlZElkcykpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLnNldFNlbGVjdGVkKG5ld1NlbGVjdGVkSWRzLCB0cnVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoRGlzcGxheWVkSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdEl0ZW1zU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICBuZXcgTGlzdEl0ZW1zTG9hZEFjdGlvbihyZXN1bHQuaXRlbXMsIHRydWUsIHRydWUsIHJlc3VsdC5jb3VudClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgZGlzcGxheWVkSXRlbXMoKTogT2JzZXJ2YWJsZTxMaXN0RGF0YVJlc3BvbnNlTW9kZWw+IHtcbiAgICBpZiAoIXRoaXMuZGF0YSAmJiAhdGhpcy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTGlzdCByZXF1aXJlcyBkYXRhIG9yIGRhdGFQcm92aWRlciB0byBiZSBzZXQuJyk7XG4gICAgfVxuXG4gICAgbGV0IGRhdGE6IGFueSA9IHRoaXMuZGF0YTtcbiAgICBpZiAoIWlzT2JzZXJ2YWJsZShkYXRhKSkge1xuICAgICAgZGF0YSA9IG9ic2VydmFibGVPZih0aGlzLmRhdGEpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgIHRoaXMuZGF0YVByb3ZpZGVyID0gbmV3IFNreUxpc3RJbk1lbW9yeURhdGFQcm92aWRlcihcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdGhpcy5zZWFyY2hGdW5jdGlvblxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgc2VsZWN0ZWRJZHMgPSB0aGlzLnNlbGVjdGVkSWRzIHx8IG9ic2VydmFibGVPZihbXSk7XG4gICAgaWYgKCFpc09ic2VydmFibGUoc2VsZWN0ZWRJZHMpKSB7XG4gICAgICBzZWxlY3RlZElkcyA9IG9ic2VydmFibGVPZihzZWxlY3RlZElkcyk7XG4gICAgfVxuXG4gICAgbGV0IHNlbGVjdGVkQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgLy8gVGhpcyBzdWJqZWN0IGlzIHVzZWQgdG8gY2FuY2VsIHByZXZpb3VzIHJlcXVlc3QgdG8gdGhlIGxpc3QncyBkYXRhIHByb3ZpZGVyIHdoZW4gYSBuZXcgY2hhbmdlXG4gICAgLy8gdG8gdGhlIGxpc3QncyBzdGF0ZSBvY2N1cnMuIEluIGEgZnV0dXJlIGJyZWFraW5nIGNoYW5nZSB0aGlzIHNob3VsZCBiZSByZXBsYWNlZCBvciBjb3VwbGVkXG4gICAgLy8gd2l0aCBhZGRpbmcgYSBkZWJvdW5jZSB0aW1lIHRvIHRoZSBPYnNlcnZhYmxlIHdoaWNoIHdhdGNoZXMgZm9yIHN0YXRlIGNoYW5nZXMuXG4gICAgY29uc3QgY2FuY2VsTGFzdFJlcXVlc3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcmV0dXJuIG9ic2VydmFibGVDb21iaW5lTGF0ZXN0KFxuICAgICAgW1xuICAgICAgICB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5maWx0ZXJzKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnNlYXJjaCksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLFxuICAgICAgICB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5zb3J0LmZpZWxkU2VsZWN0b3JzKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnBhZ2luZy5pdGVtc1BlclBhZ2UpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKSxcbiAgICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMucGFnaW5nLnBhZ2VOdW1iZXIpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKSxcbiAgICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMudG9vbGJhci5kaXNhYmxlZCksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLFxuICAgICAgICBzZWxlY3RlZElkcy5waXBlKFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgb2JzZXJ2YWJsZU1hcCgoc2VsZWN0ZWQpID0+IHtcbiAgICAgICAgICAgIHNlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgZGF0YS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgXSxcbiAgICAgIChcbiAgICAgICAgZmlsdGVyczogTGlzdEZpbHRlck1vZGVsW10sXG4gICAgICAgIHNlYXJjaDogTGlzdFNlYXJjaE1vZGVsLFxuICAgICAgICBzb3J0RmllbGRTZWxlY3RvcnM6IEFycmF5PExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsPixcbiAgICAgICAgaXRlbXNQZXJQYWdlOiBudW1iZXIsXG4gICAgICAgIHBhZ2VOdW1iZXI6IG51bWJlcixcbiAgICAgICAgaXNUb29sYmFyRGlzYWJsZWQ6IGJvb2xlYW4sXG4gICAgICAgIHNlbGVjdGVkOiBBcnJheTxzdHJpbmc+LFxuICAgICAgICBpdGVtc0RhdGE6IEFycmF5PGFueT5cbiAgICAgICkgPT4ge1xuICAgICAgICBjYW5jZWxMYXN0UmVxdWVzdC5uZXh0KCk7XG4gICAgICAgIGNhbmNlbExhc3RSZXF1ZXN0LmNvbXBsZXRlKCk7XG4gICAgICAgIGlmIChzZWxlY3RlZENoYW5nZWQpIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNlbGVjdGVkU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNlbGVjdGVkTG9hZEFjdGlvbihzZWxlY3RlZCkpO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0U2VsZWN0ZWRTZXRMb2FkaW5nQWN0aW9uKGZhbHNlKSk7XG4gICAgICAgICAgc2VsZWN0ZWRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmVzcG9uc2U6IE9ic2VydmFibGU8TGlzdERhdGFSZXNwb25zZU1vZGVsPjtcbiAgICAgICAgaWYgKHRoaXMuZGF0YUZpcnN0TG9hZCkge1xuICAgICAgICAgIHRoaXMuZGF0YUZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICAgIGNvbnN0IGluaXRpYWxJdGVtcyA9IGl0ZW1zRGF0YS5tYXAoXG4gICAgICAgICAgICAoZCkgPT5cbiAgICAgICAgICAgICAgbmV3IExpc3RJdGVtTW9kZWwoZC5pZCB8fCBgc2t5LWxpc3QtaXRlbS1tb2RlbC0keysraWRJbmRleH1gLCBkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVzcG9uc2UgPSBvYnNlcnZhYmxlT2YoXG4gICAgICAgICAgICBuZXcgTGlzdERhdGFSZXNwb25zZU1vZGVsKHtcbiAgICAgICAgICAgICAgY291bnQ6IHRoaXMuaW5pdGlhbFRvdGFsLFxuICAgICAgICAgICAgICBpdGVtczogaW5pdGlhbEl0ZW1zLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLnBpcGUodGFrZVVudGlsKGNhbmNlbExhc3RSZXF1ZXN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzcG9uc2UgPSB0aGlzLmRhdGFQcm92aWRlclxuICAgICAgICAgICAgLmdldChcbiAgICAgICAgICAgICAgbmV3IExpc3REYXRhUmVxdWVzdE1vZGVsKHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiBpdGVtc1BlclBhZ2UsXG4gICAgICAgICAgICAgICAgcGFnZU51bWJlcjogcGFnZU51bWJlcixcbiAgICAgICAgICAgICAgICBzZWFyY2g6IHNlYXJjaCxcbiAgICAgICAgICAgICAgICBzb3J0OiBuZXcgTGlzdFNvcnRNb2RlbCh7IGZpZWxkU2VsZWN0b3JzOiBzb3J0RmllbGRTZWxlY3RvcnMgfSksXG4gICAgICAgICAgICAgICAgaXNUb29sYmFyRGlzYWJsZWQ6IGlzVG9vbGJhckRpc2FibGVkLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGNhbmNlbExhc3RSZXF1ZXN0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9XG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG5cbiAgICAgIC8vIFJldGFpbiB1c2VyIHNlbGVjdGlvbnMgZnJvbSBwcmV2aW91cyBzdGF0ZS5cbiAgICAgIC8vIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgZm9yIGdyaWRzIGNvbXBvbmVudCAoYmFzZWQgb24gaXRlbS5pc1NlbGVjdGVkKS5cbiAgICAgIG9ic2VydmFibGVNYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKGxpc3REYXRhUmVzcG9uc2VNb2RlbCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaXN0RGF0YVJlc3BvbnNlTW9kZWwoe1xuICAgICAgICAgICAgICBjb3VudDogbGlzdERhdGFSZXNwb25zZU1vZGVsLmNvdW50LFxuICAgICAgICAgICAgICBpdGVtczogdGhpcy5nZXRJdGVtc0FuZFJldGFpblNlbGVjdGlvbnMoXG4gICAgICAgICAgICAgICAgbGlzdERhdGFSZXNwb25zZU1vZGVsLml0ZW1zLFxuICAgICAgICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkSWRzXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBmbGF0TWFwKCh2YWx1ZSkgPT4gdmFsdWUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJdGVtcygpOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtTW9kZWw+PiB7XG4gICAgcmV0dXJuIG9ic2VydmFibGVDb21iaW5lTGF0ZXN0KFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICBvYnNlcnZhYmxlTWFwKChjdXJyZW50KSA9PiBjdXJyZW50Lml0ZW1zLml0ZW1zKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgoY3VycmVudCkgPT4gY3VycmVudC5zZWxlY3RlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICksXG4gICAgICAoaXRlbXM6IEFycmF5PExpc3RJdGVtTW9kZWw+LCBzZWxlY3RlZDogQXN5bmNJdGVtPExpc3RTZWxlY3RlZE1vZGVsPikgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpKSA9PiBzZWxlY3RlZC5pdGVtLnNlbGVjdGVkSWRNYXAuZ2V0KGkuaWQpKTtcbiAgICAgIH1cbiAgICApLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0VXBkYXRlKCk6IE9ic2VydmFibGU8RGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+XG4gICAgICAgIHMuaXRlbXMubGFzdFVwZGF0ZSA/IG5ldyBEYXRlKHMuaXRlbXMubGFzdFVwZGF0ZSkgOiB1bmRlZmluZWRcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCB2aWV3cygpOiBBcnJheTxMaXN0Vmlld0NvbXBvbmVudD4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RWaWV3cy50b0FycmF5KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGl0ZW1Db3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFQcm92aWRlci5jb3VudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtc0FuZFJldGFpblNlbGVjdGlvbnMoXG4gICAgbmV3TGlzdDogTGlzdEl0ZW1Nb2RlbFtdLFxuICAgIHNlbGVjdGVkSWRzOiBzdHJpbmdbXVxuICApOiBMaXN0SXRlbU1vZGVsW10ge1xuICAgIGNvbnN0IHVwZGF0ZWRMaXN0TW9kZWwgPSBuZXdMaXN0LnNsaWNlKCk7XG4gICAgdXBkYXRlZExpc3RNb2RlbC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmlzU2VsZWN0ZWQgPSBzZWxlY3RlZElkcy5pbmRleE9mKGl0ZW0uaWQpID4gLTEgPyB0cnVlIDogZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIHVwZGF0ZWRMaXN0TW9kZWw7XG4gIH1cblxuICBwcml2YXRlIGFycmF5c0VxdWFsKGFycmF5QTogYW55W10sIGFycmF5QjogYW55W10pOiBib29sZWFuIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChhcnJheUEgPT09IGFycmF5Qikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChhcnJheUEgPT09IHVuZGVmaW5lZCB8fCBhcnJheUIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoYXJyYXlBLmxlbmd0aCAhPT0gYXJyYXlCLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5QS5sZW5ndGg7ICsraSkge1xuICAgICAgaWYgKGFycmF5QVtpXSAhPT0gYXJyYXlCW2ldKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyL3NyYy9saWIvbW9kdWxlcy9saXN0L2xpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWEsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUNMLGFBQWEsRUFFYixZQUFZLEdBQ2IsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBRUwsT0FBTyxFQUNQLGFBQWEsSUFBSSx1QkFBdUIsRUFDeEMsRUFBRSxJQUFJLFlBQVksR0FDbkIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxHQUFHLElBQUksYUFBYSxFQUNwQixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRzNHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQUV6RCxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFFaEI7O0dBRUc7QUFPSCxNQUFNLE9BQU8sZ0JBQWdCO0lBaUczQixZQUNVLEtBQWdCLEVBQ2hCLFVBQStCLEVBQ3ZDLE1BQXFCO1FBRmIsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUNoQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQWhHbEMsT0FBRSxHQUFHLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hDOzs7Ozs7O1dBT0c7UUFFSSxTQUFJLEdBQXlDLEVBQUUsQ0FBQztRQTZDdkQ7Ozs7O1dBS0c7UUFFSSxtQkFBYyxHQUEyQixFQUFFLENBQUM7UUFFbkQ7O1dBRUc7UUFFSSxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUVwRTs7V0FFRztRQUVJLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBU2pFLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBS3RCLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBRS9CLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUVwQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFPMUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRTtZQUNwQyx1QkFBdUIsRUFBRSxDQUFDO1lBQzFCLFdBQVcsRUFDVCwrREFBK0Q7WUFDakUseUJBQXlCLEVBQUUsMkJBQTJCO1NBQ3ZELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN2RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUMzQjtRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sV0FBVyxHQUNmLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUztnQkFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztnQkFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFFdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xCLElBQUksbUJBQW1CLENBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM1RCxDQUNGLENBQUM7WUFFRiw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwRTthQUFNO1lBQ0wsT0FBTztTQUNSO1FBRUQsa0JBQWtCO1FBQ2xCLFFBQVEsQ0FDTixJQUFJLENBQUMsVUFBVSxFQUNmLENBQ0UsVUFBcUUsRUFDckUsRUFBRTtZQUNGLElBQUksU0FBdUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLEVBQUU7Z0JBQzVDLFNBQVMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzFCO2lCQUFNO2dCQUNMLFNBQVMsR0FBRyxVQUEwQyxDQUFDO2FBQ3hEO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xCLElBQUksK0JBQStCLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUNyRCxDQUFDO1FBQ0osQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUkseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQ2hFLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILCtCQUErQjtRQUMvQixJQUFJLENBQUMsS0FBSzthQUNQLElBQUksQ0FDSCxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFDNUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0Isb0JBQW9CLEVBQUUsQ0FDdkI7YUFDQSxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN0Qiw0REFBNEQ7WUFDNUQsTUFBTSxlQUFlLEdBQWEsRUFBRSxDQUFDO1lBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDakQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO29CQUNsQixlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUMzQjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsbURBQW1EO1lBQ25ELE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FDdkMsSUFBSSxDQUFDLGVBQWUsRUFDcEIsZUFBZSxDQUNoQixDQUFDO1lBQ0YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksZUFBZSxFQUFFO2dCQUNsRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDMUQ7WUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxLQUFLO2lCQUNQLElBQUksQ0FDSCxhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDM0MsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNyQjs7OzttQkFJRztnQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ3pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFDRSxPQUFPLENBQUMsZ0JBQWdCLENBQUM7WUFDekIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsWUFBWTtnQkFDcEMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsYUFBYSxFQUN6QztZQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUNsRCxJQUNFLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBVTtvQkFDOUIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUNwQztvQkFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BFO2dCQUVELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyRCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDMUIscUVBQXFFO1lBQ3JFLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtnQkFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN6RDtTQUNGO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDckQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSx5QkFBeUIsRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xCLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FDaEUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxJQUFJLEdBQVEsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZCLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDJCQUEyQixDQUNqRCxJQUFJLEVBQ0osSUFBSSxDQUFDLGNBQWMsQ0FDcEIsQ0FBQztTQUNIO1FBRUQsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM5QixXQUFXLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBRTVCLGdHQUFnRztRQUNoRyw2RkFBNkY7UUFDN0YsaUZBQWlGO1FBQ2pGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUU5QyxPQUFPLHVCQUF1QixDQUM1QjtZQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUMvQixvQkFBb0IsRUFBRSxDQUN2QjtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUM5QixvQkFBb0IsRUFBRSxDQUN2QjtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDM0Msb0JBQW9CLEVBQUUsQ0FDdkI7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQzNDLG9CQUFvQixFQUFFLENBQ3ZCO1lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUN6QyxvQkFBb0IsRUFBRSxDQUN2QjtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFDeEMsb0JBQW9CLEVBQUUsQ0FDdkI7WUFDRCxXQUFXLENBQUMsSUFBSSxDQUNkLG9CQUFvQixFQUFFLEVBQ3RCLGFBQWEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUN6QixlQUFlLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixPQUFPLFFBQVEsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FDSDtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUNsQyxFQUNELENBQ0UsT0FBMEIsRUFDMUIsTUFBdUIsRUFDdkIsa0JBQXFELEVBQ3JELFlBQW9CLEVBQ3BCLFVBQWtCLEVBQ2xCLGlCQUEwQixFQUMxQixRQUF1QixFQUN2QixTQUFxQixFQUNyQixFQUFFO1lBQ0YsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQTRCLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDOUQsZUFBZSxHQUFHLEtBQUssQ0FBQzthQUN6QjtZQUVELElBQUksUUFBMkMsQ0FBQztZQUNoRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsR0FBRyxDQUNoQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSx1QkFBdUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDbkUsQ0FBQztnQkFDRixRQUFRLEdBQUcsWUFBWSxDQUNyQixJQUFJLHFCQUFxQixDQUFDO29CQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7b0JBQ3hCLEtBQUssRUFBRSxZQUFZO2lCQUNwQixDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQzthQUN0QztpQkFBTTtnQkFDTCxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVk7cUJBQ3pCLEdBQUcsQ0FDRixJQUFJLG9CQUFvQixDQUFDO29CQUN2QixPQUFPLEVBQUUsT0FBTztvQkFDaEIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxVQUFVO29CQUN0QixNQUFNLEVBQUUsTUFBTTtvQkFDZCxJQUFJLEVBQUUsSUFBSSxhQUFhLENBQUMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztvQkFDL0QsaUJBQWlCLEVBQUUsaUJBQWlCO2lCQUNyQyxDQUFDLENBQ0g7cUJBQ0EsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7YUFDdkM7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQ0YsQ0FBQyxJQUFJLENBQ0osU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFN0IsOENBQThDO1FBQzlDLHlFQUF5RTtRQUN6RSxhQUFhLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN6QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQ2xCLGFBQWEsQ0FBQyxDQUFDLHFCQUFxQixFQUFFLEVBQUU7Z0JBQ3RDLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQztvQkFDL0IsS0FBSyxFQUFFLHFCQUFxQixDQUFDLEtBQUs7b0JBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsMkJBQTJCLENBQ3JDLHFCQUFxQixDQUFDLEtBQUssRUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FDckI7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxFQUNGLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sdUJBQXVCLENBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLGFBQWEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFDL0Msb0JBQW9CLEVBQUUsQ0FDdkIsRUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixhQUFhLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFDNUMsb0JBQW9CLEVBQUUsQ0FDdkIsRUFDRCxDQUFDLEtBQTJCLEVBQUUsUUFBc0MsRUFBRSxFQUFFO1lBQ3RFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FDRixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNwQixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNsQixDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUM5RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTywyQkFBMkIsQ0FDakMsT0FBd0IsRUFDeEIsV0FBcUI7UUFFckIsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFTyxXQUFXLENBQUMsTUFBYSxFQUFFLE1BQWE7UUFDOUMsMEJBQTBCO1FBQzFCLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxNQUFNLEtBQUssU0FBUyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7WUFDaEQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ25DLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtZQUN0QyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7OEdBM2JVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLDhYQUhoQixDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxvREEyRjFCLGlCQUFpQixrREE1RnhCLDJCQUEyQjs0RkFJMUIsZ0JBQWdCO2tCQU41QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO29CQUNwQixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUM7b0JBQzNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4SkFjUSxJQUFJO3NCQURWLEtBQUs7Z0JBVUMsWUFBWTtzQkFEbEIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLO2dCQVNDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBU0MsV0FBVztzQkFEakIsS0FBSztnQkFTQyxVQUFVO3NCQURoQixLQUFLO2dCQWNDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBT0MsaUJBQWlCO3NCQUR2QixNQUFNO2dCQU9BLG9CQUFvQjtzQkFEMUIsTUFBTTtnQkFRQSxjQUFjO3NCQURwQixLQUFLO3VCQUFDLFFBQVE7Z0JBTVAsU0FBUztzQkFEaEIsZUFBZTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgQXN5bmNJdGVtLCBnZXRWYWx1ZSB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcbmltcG9ydCB7XG4gIExpc3RJdGVtTW9kZWwsXG4gIExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsLFxuICBpc09ic2VydmFibGUsXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCBhcyBvYnNlcnZhYmxlQ29tYmluZUxhdGVzdCxcbiAgb2YgYXMgb2JzZXJ2YWJsZU9mLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmbGF0TWFwLFxuICBtYXAgYXMgb2JzZXJ2YWJsZU1hcCxcbiAgc2tpcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreUxpc3RJbk1lbW9yeURhdGFQcm92aWRlciB9IGZyb20gJy4uL2xpc3QtZGF0YS1wcm92aWRlci1pbi1tZW1vcnkvbGlzdC1kYXRhLWluLW1lbW9yeS5wcm92aWRlcic7XG5pbXBvcnQgeyBMaXN0RmlsdGVyTW9kZWwgfSBmcm9tICcuLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcblxuaW1wb3J0IHsgTGlzdERhdGFSZXF1ZXN0TW9kZWwgfSBmcm9tICcuL2xpc3QtZGF0YS1yZXF1ZXN0Lm1vZGVsJztcbmltcG9ydCB7IExpc3REYXRhUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4vbGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsJztcbmltcG9ydCB7IExpc3REYXRhUHJvdmlkZXIgfSBmcm9tICcuL2xpc3QtZGF0YS5wcm92aWRlcic7XG5pbXBvcnQgeyBMaXN0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vbGlzdC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0SXRlbXNMb2FkQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0SXRlbXNTZXRMb2FkaW5nQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9pdGVtcy9zZXQtbG9hZGluZy5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFN0YXRlRGlzcGF0Y2hlciB9IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5yeHN0YXRlJztcbmltcG9ydCB7IExpc3RTdGF0ZSB9IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5zdGF0ZS1ub2RlJztcbmltcG9ydCB7IExpc3RQYWdpbmdTZXRQYWdlTnVtYmVyQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9wYWdpbmcvc2V0LXBhZ2UtbnVtYmVyLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U2VhcmNoTW9kZWwgfSBmcm9tICcuL3N0YXRlL3NlYXJjaC9zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgTGlzdFNlbGVjdGVkTG9hZEFjdGlvbiB9IGZyb20gJy4vc3RhdGUvc2VsZWN0ZWQvbG9hZC5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFNlbGVjdGVkTW9kZWwgfSBmcm9tICcuL3N0YXRlL3NlbGVjdGVkL3NlbGVjdGVkLm1vZGVsJztcbmltcG9ydCB7IExpc3RTZWxlY3RlZFNldExvYWRpbmdBY3Rpb24gfSBmcm9tICcuL3N0YXRlL3NlbGVjdGVkL3NldC1sb2FkaW5nLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U29ydFNldEZpZWxkU2VsZWN0b3JzQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS9zb3J0L3NldC1maWVsZC1zZWxlY3RvcnMuYWN0aW9uJztcbmltcG9ydCB7IExpc3RTb3J0TW9kZWwgfSBmcm9tICcuL3N0YXRlL3NvcnQvc29ydC5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0Vmlld3NMb2FkQWN0aW9uIH0gZnJvbSAnLi9zdGF0ZS92aWV3cy9sb2FkLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0Vmlld3NTZXRBY3RpdmVBY3Rpb24gfSBmcm9tICcuL3N0YXRlL3ZpZXdzL3NldC1hY3RpdmUuYWN0aW9uJztcbmltcG9ydCB7IExpc3RWaWV3TW9kZWwgfSBmcm9tICcuL3N0YXRlL3ZpZXdzL3ZpZXcubW9kZWwnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgTGlzdCBidWlsZGVyIGFuZCBpdHMgZmVhdHVyZXMgYXJlIGRlcHJlY2F0ZWQuIFVzZSBkYXRhIG1hbmFnZXIgaW5zdGVhZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktbGlzdCcsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIHByb3ZpZGVyczogW0xpc3RTdGF0ZSwgTGlzdFN0YXRlRGlzcGF0Y2hlcl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMaXN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgcHVibGljIGlkID0gYHNreS1saXN0LWNtcC0keysraWRJbmRleH1gO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBkYXRhIHRvIGRpc3BsYXkuIFRoZSBsaXN0IGNvbXBvbmVudCByZXF1aXJlcyB0aGlzIHByb3BlcnR5IG9yIHRoZVxuICAgKiBgZGF0YVByb3ZpZGVyYCBwcm9wZXJ0eS4gRm9yIGNoZWNrbGlzdCBvciBtdWx0aXNlbGVjdCBncmlkcywgZWFjaCByb3cgcmVxdWlyZXMgYW5cbiAgICogYGlkYCBwcm9wZXJ0eSB0byBtYW5hZ2Ugc2VsZWN0ZWQgaXRlbXMgd2l0aCB0aGUgYHNlbGVjdGVkSWRzYCBpbnB1dCBhbmQgdGhlXG4gICAqIGBzZWxlY3RlZElkc0NoYW5nZWAgZXZlbnQuIElmIHlvdSBkbyBub3QgcHJvdmlkZSBhbiBgaWRgLCB0aGUgbGlzdCBhdXRvbWF0aWNhbGx5XG4gICAqIGdlbmVyYXRlcyBvbmUuIFRvIHVwZGF0ZSBkYXRhIGluIHlvdXIgdmlldyBvdXRzaWRlIG9mIGEgYGRhdGFQcm92aWRlcmAsIHlvdSBtdXN0IHVzZVxuICAgKiBhbiBvYnNlcnZhYmxlIGluc3RlYWQgb2YgYSBzdGF0aWMgYXJyYXkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YT86IEFycmF5PGFueT4gfCBPYnNlcnZhYmxlPEFycmF5PGFueT4+ID0gW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGRhdGEgcHJvdmlkZXIgdG8gb2J0YWluIHRoZSBkYXRhIHRvIGRpc3BsYXkuIFRoZSBsaXN0IGNvbXBvbmVudCByZXF1aXJlc1xuICAgKiB0aGlzIHByb3BlcnR5IG9yIHRoZSBgZGF0YWAgcHJvcGVydHkuIEZvciBsaXN0cyB0aGF0IHVzZSBgZGF0YVByb3ZpZGVyYCBpbnN0ZWFkIG9mIGBkYXRhYCxcbiAgICogY29uc3VtZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYWxsIGBMaXN0RGF0YVJlcXVlc3RNb2RlbGAgcHJvcGVydGllcy5cbiAgICogQGRlZmF1bHQgU2t5TGlzdEluTWVtb3J5RGF0YVByb3ZpZGVyXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YVByb3ZpZGVyPzogTGlzdERhdGFQcm92aWRlcjtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVmYXVsdFZpZXc/OiBMaXN0Vmlld0NvbXBvbmVudDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgZm9yIHRoZSBpbml0aWFsIGRhdGEgc2V0IHdoZW4gaW5pdGlhbGl6ZWQuIFdoZW5cbiAgICogdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBkYXRhYCBhbmQgYGRhdGFQcm92aWRlcmAsIGl0IGFsbG93cyBhbiBpbml0aWFsIGRhdGEgdG8gYmVcbiAgICogc2V0IHdpdGggdGhlIG5lZWQgdG8gY2FsbCB0aGUgYGRhdGFQcm92aWRlcmAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaW5pdGlhbFRvdGFsPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzZXQgb2YgSURzIGZvciB0aGUgaXRlbXMgdG8gc2VsZWN0IGluIGEgY2hlY2tsaXN0IG9yIG11bHRpc2VsZWN0IGdyaWQuXG4gICAqIFRoZSBJRHMgbWF0Y2ggdGhlIGBpZGAgcHJvcGVydGllcyBvZiB0aGUgYGRhdGFgIG9iamVjdHMuIEl0ZW1zIHdpdGggSURzIHRoYXQgYXJlIG5vdFxuICAgKiBpbmNsdWRlZCBhcmUgZGUtc2VsZWN0ZWQgaW4gdGhlIGNoZWNrbGlzdCBvciBtdWx0aXNlbGVjdCBncmlkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkSWRzPzogQXJyYXk8c3RyaW5nPiB8IE9ic2VydmFibGU8QXJyYXk8c3RyaW5nPj47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHNldCBvZiBmaWVsZHMgdG8gc29ydCBieS4gSWYgYXJyYXkgb2YgZmllbGRzIHRoZW4gc29ydGVkIGJ5IG9yZGVyIG9mIGFycmF5LlxuICAgKiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgYExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsYCwgc2VlIHRoZVxuICAgKiBbc2hhcmVkIGNsYXNzZXMgZm9yIGxpc3RzXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4LWxpc3QtYnVpbGRlci1jb21tb24vZG9jcy9saXN0LWJ1aWxkZXItY29tbW9uKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzb3J0RmllbGRzPzpcbiAgICB8IExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsXG4gICAgfCBBcnJheTxMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbD5cbiAgICB8IE9ic2VydmFibGU8QXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+PlxuICAgIHwgT2JzZXJ2YWJsZTxMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbD47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHNldCBvZiBmaWx0ZXJzIHRvIGFwcGx5IHRvIGxpc3QgZGF0YS5cbiAgICogVGhlc2UgZmlsdGVycyBjcmVhdGUgYSBmaWx0ZXIgc3VtbWFyeSB3aGVuIHRoZSBsaXN0IGluY2x1ZGVzIHRoZVxuICAgKiBbYHNreS1saXN0LWZpbHRlci1zdW1tYXJ5YF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2xpc3QvZmlsdGVycylcbiAgICogY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFwcGxpZWRGaWx0ZXJzOiBBcnJheTxMaXN0RmlsdGVyTW9kZWw+ID0gW107XG5cbiAgLyoqXG4gICAqIEZvciBsaXN0IHZpZXdzIHRoYXQgc3VwcG9ydCBpdGVtIHNlbGVjdGlvbiwgZW1pdHMgdGhlIHNlbGVjdGVkIGVudHJpZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkSWRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNYXA8c3RyaW5nLCBib29sZWFuPj4oKTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgbGlzdC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYXBwbGllZEZpbHRlcnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PExpc3RGaWx0ZXJNb2RlbD4+KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGZ1bmN0aW9uIHRvIGFwcGx5IGFzIGEgZ2xvYmFsIHNvcnQgb24gdGhlIGxpc3QuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlYXJjaCcpXG4gIHB1YmxpYyBzZWFyY2hGdW5jdGlvbjogKGRhdGE6IGFueSwgc2VhcmNoVGV4dDogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gIHByaXZhdGUgZGF0YUZpcnN0TG9hZCA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTGlzdFZpZXdDb21wb25lbnQpXG4gIHByaXZhdGUgbGlzdFZpZXdzOiBRdWVyeUxpc3Q8TGlzdFZpZXdDb21wb25lbnQ+O1xuXG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgbGFzdEZpbHRlcnM6IExpc3RGaWx0ZXJNb2RlbFtdID0gW107XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXRlOiBMaXN0U3RhdGUsXG4gICAgcHJpdmF0ZSBkaXNwYXRjaGVyOiBMaXN0U3RhdGVEaXNwYXRjaGVyLFxuICAgIGxvZ2dlcjogU2t5TG9nU2VydmljZVxuICApIHtcbiAgICBsb2dnZXIuZGVwcmVjYXRlZCgnU2t5TGlzdENvbXBvbmVudCcsIHtcbiAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA2LFxuICAgICAgbW9yZUluZm9Vcmw6XG4gICAgICAgICdodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyJyxcbiAgICAgIHJlcGxhY2VtZW50UmVjb21tZW5kYXRpb246ICdVc2UgZGF0YSBtYW5hZ2VyIGluc3RlYWQuJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGFQcm92aWRlciAmJiB0aGlzLmluaXRpYWxUb3RhbCkge1xuICAgICAgdGhpcy5kYXRhRmlyc3RMb2FkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5saXN0Vmlld3MubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZGVmYXVsdFZpZXc6IExpc3RWaWV3Q29tcG9uZW50ID1cbiAgICAgICAgdGhpcy5kZWZhdWx0VmlldyA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB0aGlzLmxpc3RWaWV3cy5maXJzdFxuICAgICAgICAgIDogdGhpcy5kZWZhdWx0VmlldztcblxuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgIG5ldyBMaXN0Vmlld3NMb2FkQWN0aW9uKFxuICAgICAgICAgIHRoaXMubGlzdFZpZXdzLm1hcCgodikgPT4gbmV3IExpc3RWaWV3TW9kZWwodi5pZCwgdi5sYWJlbCkpXG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAgIC8vIGFjdGl2YXRlIHRoZSBkZWZhdWx0IHZpZXdcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0Vmlld3NTZXRBY3RpdmVBY3Rpb24oZGVmYXVsdFZpZXcuaWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHNldCBzb3J0IGZpZWxkc1xuICAgIGdldFZhbHVlKFxuICAgICAgdGhpcy5zb3J0RmllbGRzLFxuICAgICAgKFxuICAgICAgICBzb3J0RmllbGRzOiBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFtdIHwgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxcbiAgICAgICkgPT4ge1xuICAgICAgICBsZXQgc29ydEFycmF5OiBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFtdO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc29ydEZpZWxkcykgJiYgc29ydEZpZWxkcykge1xuICAgICAgICAgIHNvcnRBcnJheSA9IFtzb3J0RmllbGRzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzb3J0QXJyYXkgPSBzb3J0RmllbGRzIGFzIExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgbmV3IExpc3RTb3J0U2V0RmllbGRTZWxlY3RvcnNBY3Rpb24oc29ydEFycmF5IHx8IFtdKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG5cbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdEl0ZW1zU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICBuZXcgTGlzdEl0ZW1zTG9hZEFjdGlvbihyZXN1bHQuaXRlbXMsIHRydWUsIHRydWUsIHJlc3VsdC5jb3VudClcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBXYXRjaCBmb3Igc2VsZWN0aW9uIGNoYW5nZXMuXG4gICAgdGhpcy5zdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIG9ic2VydmFibGVNYXAoKGN1cnJlbnQpID0+IGN1cnJlbnQuc2VsZWN0ZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWQpID0+IHtcbiAgICAgICAgLy8gVXBkYXRlIGxhc3RTZWxlY3RlZElkcyB0byBoZWxwIHVzIHJldGFpbiB1c2VyIHNlbGVjdGlvbnMuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzTGlzdDogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgc2VsZWN0ZWQuaXRlbS5zZWxlY3RlZElkTWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSWRzTGlzdC5wdXNoKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBJZiBjaGFuZ2VzIGFyZSBkaXN0aW5jdCwgZW1pdCBzZWxlY3RlZElkc0NoYW5nZS5cbiAgICAgICAgY29uc3QgZGlzdGluY3RDaGFuZ2VzID0gIXRoaXMuYXJyYXlzRXF1YWwoXG4gICAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRJZHMsXG4gICAgICAgICAgc2VsZWN0ZWRJZHNMaXN0XG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzQ2hhbmdlLm9ic2VydmVycy5sZW5ndGggPiAwICYmIGRpc3RpbmN0Q2hhbmdlcykge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHNDaGFuZ2UuZW1pdChzZWxlY3RlZC5pdGVtLnNlbGVjdGVkSWRNYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkc0xpc3Q7XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLmFwcGxpZWRGaWx0ZXJzQ2hhbmdlLm9ic2VydmVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN0YXRlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKGN1cnJlbnQpID0+IGN1cnJlbnQuZmlsdGVycyksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgc2tpcCgxKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlcnMpID0+IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBXZSBhcmUgZG9pbmcgdGhpcyBpbnN0ZWFkIG9mIGEgZGlzdGluY3RVbnRpbENoYW5nZSBkdWUgdG8gbWVtb3J5IGFsbG9jYXRpb24gaXNzdWVzXG4gICAgICAgICAgICogd2l0aCB0aGUgamF2YXNjcmlwdCBhcnJheS4gVG8gZml4IGZ1bGx5IHRoZSBhcnJheSBzaG91bGQgYmUgY2hhbmdlZCB0byBhbiBvYmplY3QgaW5cbiAgICAgICAgICAgKiBhIGJyZWFraW5nIGNoYW5nZS5cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBpZiAoIXRoaXMuYXJyYXlzRXF1YWwoZmlsdGVycywgdGhpcy5sYXN0RmlsdGVycykpIHtcbiAgICAgICAgICAgIHRoaXMubGFzdEZpbHRlcnMgPSBmaWx0ZXJzLnNsaWNlKDApO1xuICAgICAgICAgICAgdGhpcy5hcHBsaWVkRmlsdGVyc0NoYW5nZS5lbWl0KGZpbHRlcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWydhcHBsaWVkRmlsdGVycyddICYmXG4gICAgICBjaGFuZ2VzWydhcHBsaWVkRmlsdGVycyddLmN1cnJlbnRWYWx1ZSAhPT1cbiAgICAgICAgY2hhbmdlc1snYXBwbGllZEZpbHRlcnMnXS5wcmV2aW91c1ZhbHVlXG4gICAgKSB7XG4gICAgICB0aGlzLnN0YXRlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChjdXJyZW50U3RhdGUpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5wYWdpbmcucGFnZU51bWJlciAmJlxuICAgICAgICAgIGN1cnJlbnRTdGF0ZS5wYWdpbmcucGFnZU51bWJlciAhPT0gMVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFBhZ2luZ1NldFBhZ2VOdW1iZXJBY3Rpb24oTnVtYmVyKDEpKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpc3BhdGNoZXIuZmlsdGVyc1VwZGF0ZSh0aGlzLmFwcGxpZWRGaWx0ZXJzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWRJZHMnXSkge1xuICAgICAgLy8gT25seSBzZW5kIHNlbGVjdGlvbiBjaGFuZ2VzIHRvIGRpc3BhdGNoZXIgaWYgY2hhbmdlcyBhcmUgZGlzdGluY3QuXG4gICAgICBjb25zdCBuZXdTZWxlY3RlZElkcyA9IGNoYW5nZXNbJ3NlbGVjdGVkSWRzJ10uY3VycmVudFZhbHVlO1xuICAgICAgaWYgKCF0aGlzLmFycmF5c0VxdWFsKG5ld1NlbGVjdGVkSWRzLCB0aGlzLmxhc3RTZWxlY3RlZElkcykpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLnNldFNlbGVjdGVkKG5ld1NlbGVjdGVkSWRzLCB0cnVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoRGlzcGxheWVkSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdEl0ZW1zU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KFxuICAgICAgICBuZXcgTGlzdEl0ZW1zTG9hZEFjdGlvbihyZXN1bHQuaXRlbXMsIHRydWUsIHRydWUsIHJlc3VsdC5jb3VudClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgZGlzcGxheWVkSXRlbXMoKTogT2JzZXJ2YWJsZTxMaXN0RGF0YVJlc3BvbnNlTW9kZWw+IHtcbiAgICBpZiAoIXRoaXMuZGF0YSAmJiAhdGhpcy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTGlzdCByZXF1aXJlcyBkYXRhIG9yIGRhdGFQcm92aWRlciB0byBiZSBzZXQuJyk7XG4gICAgfVxuXG4gICAgbGV0IGRhdGE6IGFueSA9IHRoaXMuZGF0YTtcbiAgICBpZiAoIWlzT2JzZXJ2YWJsZShkYXRhKSkge1xuICAgICAgZGF0YSA9IG9ic2VydmFibGVPZih0aGlzLmRhdGEpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgIHRoaXMuZGF0YVByb3ZpZGVyID0gbmV3IFNreUxpc3RJbk1lbW9yeURhdGFQcm92aWRlcihcbiAgICAgICAgZGF0YSxcbiAgICAgICAgdGhpcy5zZWFyY2hGdW5jdGlvblxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsZXQgc2VsZWN0ZWRJZHMgPSB0aGlzLnNlbGVjdGVkSWRzIHx8IG9ic2VydmFibGVPZihbXSk7XG4gICAgaWYgKCFpc09ic2VydmFibGUoc2VsZWN0ZWRJZHMpKSB7XG4gICAgICBzZWxlY3RlZElkcyA9IG9ic2VydmFibGVPZihzZWxlY3RlZElkcyk7XG4gICAgfVxuXG4gICAgbGV0IHNlbGVjdGVkQ2hhbmdlZCA9IGZhbHNlO1xuXG4gICAgLy8gVGhpcyBzdWJqZWN0IGlzIHVzZWQgdG8gY2FuY2VsIHByZXZpb3VzIHJlcXVlc3QgdG8gdGhlIGxpc3QncyBkYXRhIHByb3ZpZGVyIHdoZW4gYSBuZXcgY2hhbmdlXG4gICAgLy8gdG8gdGhlIGxpc3QncyBzdGF0ZSBvY2N1cnMuIEluIGEgZnV0dXJlIGJyZWFraW5nIGNoYW5nZSB0aGlzIHNob3VsZCBiZSByZXBsYWNlZCBvciBjb3VwbGVkXG4gICAgLy8gd2l0aCBhZGRpbmcgYSBkZWJvdW5jZSB0aW1lIHRvIHRoZSBPYnNlcnZhYmxlIHdoaWNoIHdhdGNoZXMgZm9yIHN0YXRlIGNoYW5nZXMuXG4gICAgY29uc3QgY2FuY2VsTGFzdFJlcXVlc3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcmV0dXJuIG9ic2VydmFibGVDb21iaW5lTGF0ZXN0KFxuICAgICAgW1xuICAgICAgICB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5maWx0ZXJzKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnNlYXJjaCksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLFxuICAgICAgICB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICAgICAgb2JzZXJ2YWJsZU1hcCgocykgPT4gcy5zb3J0LmZpZWxkU2VsZWN0b3JzKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICksXG4gICAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgICBvYnNlcnZhYmxlTWFwKChzKSA9PiBzLnBhZ2luZy5pdGVtc1BlclBhZ2UpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKSxcbiAgICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMucGFnaW5nLnBhZ2VOdW1iZXIpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgKSxcbiAgICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+IHMudG9vbGJhci5kaXNhYmxlZCksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICApLFxuICAgICAgICBzZWxlY3RlZElkcy5waXBlKFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgb2JzZXJ2YWJsZU1hcCgoc2VsZWN0ZWQpID0+IHtcbiAgICAgICAgICAgIHNlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgZGF0YS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgXSxcbiAgICAgIChcbiAgICAgICAgZmlsdGVyczogTGlzdEZpbHRlck1vZGVsW10sXG4gICAgICAgIHNlYXJjaDogTGlzdFNlYXJjaE1vZGVsLFxuICAgICAgICBzb3J0RmllbGRTZWxlY3RvcnM6IEFycmF5PExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsPixcbiAgICAgICAgaXRlbXNQZXJQYWdlOiBudW1iZXIsXG4gICAgICAgIHBhZ2VOdW1iZXI6IG51bWJlcixcbiAgICAgICAgaXNUb29sYmFyRGlzYWJsZWQ6IGJvb2xlYW4sXG4gICAgICAgIHNlbGVjdGVkOiBBcnJheTxzdHJpbmc+LFxuICAgICAgICBpdGVtc0RhdGE6IEFycmF5PGFueT5cbiAgICAgICkgPT4ge1xuICAgICAgICBjYW5jZWxMYXN0UmVxdWVzdC5uZXh0KCk7XG4gICAgICAgIGNhbmNlbExhc3RSZXF1ZXN0LmNvbXBsZXRlKCk7XG4gICAgICAgIGlmIChzZWxlY3RlZENoYW5nZWQpIHtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNlbGVjdGVkU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNlbGVjdGVkTG9hZEFjdGlvbihzZWxlY3RlZCkpO1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0U2VsZWN0ZWRTZXRMb2FkaW5nQWN0aW9uKGZhbHNlKSk7XG4gICAgICAgICAgc2VsZWN0ZWRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcmVzcG9uc2U6IE9ic2VydmFibGU8TGlzdERhdGFSZXNwb25zZU1vZGVsPjtcbiAgICAgICAgaWYgKHRoaXMuZGF0YUZpcnN0TG9hZCkge1xuICAgICAgICAgIHRoaXMuZGF0YUZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICAgIGNvbnN0IGluaXRpYWxJdGVtcyA9IGl0ZW1zRGF0YS5tYXAoXG4gICAgICAgICAgICAoZCkgPT5cbiAgICAgICAgICAgICAgbmV3IExpc3RJdGVtTW9kZWwoZC5pZCB8fCBgc2t5LWxpc3QtaXRlbS1tb2RlbC0keysraWRJbmRleH1gLCBkKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmVzcG9uc2UgPSBvYnNlcnZhYmxlT2YoXG4gICAgICAgICAgICBuZXcgTGlzdERhdGFSZXNwb25zZU1vZGVsKHtcbiAgICAgICAgICAgICAgY291bnQ6IHRoaXMuaW5pdGlhbFRvdGFsLFxuICAgICAgICAgICAgICBpdGVtczogaW5pdGlhbEl0ZW1zLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLnBpcGUodGFrZVVudGlsKGNhbmNlbExhc3RSZXF1ZXN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzcG9uc2UgPSB0aGlzLmRhdGFQcm92aWRlclxuICAgICAgICAgICAgLmdldChcbiAgICAgICAgICAgICAgbmV3IExpc3REYXRhUmVxdWVzdE1vZGVsKHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiBpdGVtc1BlclBhZ2UsXG4gICAgICAgICAgICAgICAgcGFnZU51bWJlcjogcGFnZU51bWJlcixcbiAgICAgICAgICAgICAgICBzZWFyY2g6IHNlYXJjaCxcbiAgICAgICAgICAgICAgICBzb3J0OiBuZXcgTGlzdFNvcnRNb2RlbCh7IGZpZWxkU2VsZWN0b3JzOiBzb3J0RmllbGRTZWxlY3RvcnMgfSksXG4gICAgICAgICAgICAgICAgaXNUb29sYmFyRGlzYWJsZWQ6IGlzVG9vbGJhckRpc2FibGVkLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKGNhbmNlbExhc3RSZXF1ZXN0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICB9XG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG5cbiAgICAgIC8vIFJldGFpbiB1c2VyIHNlbGVjdGlvbnMgZnJvbSBwcmV2aW91cyBzdGF0ZS5cbiAgICAgIC8vIFRoaXMgaXMgb25seSBuZWNlc3NhcnkgZm9yIGdyaWRzIGNvbXBvbmVudCAoYmFzZWQgb24gaXRlbS5pc1NlbGVjdGVkKS5cbiAgICAgIG9ic2VydmFibGVNYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNwb25zZS5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoKGxpc3REYXRhUmVzcG9uc2VNb2RlbCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaXN0RGF0YVJlc3BvbnNlTW9kZWwoe1xuICAgICAgICAgICAgICBjb3VudDogbGlzdERhdGFSZXNwb25zZU1vZGVsLmNvdW50LFxuICAgICAgICAgICAgICBpdGVtczogdGhpcy5nZXRJdGVtc0FuZFJldGFpblNlbGVjdGlvbnMoXG4gICAgICAgICAgICAgICAgbGlzdERhdGFSZXNwb25zZU1vZGVsLml0ZW1zLFxuICAgICAgICAgICAgICAgIHRoaXMubGFzdFNlbGVjdGVkSWRzXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgICBmbGF0TWFwKCh2YWx1ZSkgPT4gdmFsdWUpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJdGVtcygpOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtTW9kZWw+PiB7XG4gICAgcmV0dXJuIG9ic2VydmFibGVDb21iaW5lTGF0ZXN0KFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKFxuICAgICAgICBvYnNlcnZhYmxlTWFwKChjdXJyZW50KSA9PiBjdXJyZW50Lml0ZW1zLml0ZW1zKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShcbiAgICAgICAgb2JzZXJ2YWJsZU1hcCgoY3VycmVudCkgPT4gY3VycmVudC5zZWxlY3RlZCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICksXG4gICAgICAoaXRlbXM6IEFycmF5PExpc3RJdGVtTW9kZWw+LCBzZWxlY3RlZDogQXN5bmNJdGVtPExpc3RTZWxlY3RlZE1vZGVsPikgPT4ge1xuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKChpKSA9PiBzZWxlY3RlZC5pdGVtLnNlbGVjdGVkSWRNYXAuZ2V0KGkuaWQpKTtcbiAgICAgIH1cbiAgICApLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0VXBkYXRlKCk6IE9ic2VydmFibGU8RGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgIG9ic2VydmFibGVNYXAoKHMpID0+XG4gICAgICAgIHMuaXRlbXMubGFzdFVwZGF0ZSA/IG5ldyBEYXRlKHMuaXRlbXMubGFzdFVwZGF0ZSkgOiB1bmRlZmluZWRcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCB2aWV3cygpOiBBcnJheTxMaXN0Vmlld0NvbXBvbmVudD4ge1xuICAgIHJldHVybiB0aGlzLmxpc3RWaWV3cy50b0FycmF5KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGl0ZW1Db3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFQcm92aWRlci5jb3VudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtc0FuZFJldGFpblNlbGVjdGlvbnMoXG4gICAgbmV3TGlzdDogTGlzdEl0ZW1Nb2RlbFtdLFxuICAgIHNlbGVjdGVkSWRzOiBzdHJpbmdbXVxuICApOiBMaXN0SXRlbU1vZGVsW10ge1xuICAgIGNvbnN0IHVwZGF0ZWRMaXN0TW9kZWwgPSBuZXdMaXN0LnNsaWNlKCk7XG4gICAgdXBkYXRlZExpc3RNb2RlbC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmlzU2VsZWN0ZWQgPSBzZWxlY3RlZElkcy5pbmRleE9mKGl0ZW0uaWQpID4gLTEgPyB0cnVlIDogZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIHVwZGF0ZWRMaXN0TW9kZWw7XG4gIH1cblxuICBwcml2YXRlIGFycmF5c0VxdWFsKGFycmF5QTogYW55W10sIGFycmF5QjogYW55W10pOiBib29sZWFuIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChhcnJheUEgPT09IGFycmF5Qikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChhcnJheUEgPT09IHVuZGVmaW5lZCB8fCBhcnJheUIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoYXJyYXlBLmxlbmd0aCAhPT0gYXJyYXlCLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5QS5sZW5ndGg7ICsraSkge1xuICAgICAgaWYgKGFycmF5QVtpXSAhPT0gYXJyYXlCW2ldKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -7,10 +7,10 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
*/
|
|
8
8
|
export class SkyListModule {
|
|
9
9
|
}
|
|
10
|
-
SkyListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
11
|
-
SkyListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.
|
|
12
|
-
SkyListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
10
|
+
SkyListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
SkyListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.11", ngImport: i0, type: SkyListModule, declarations: [SkyListComponent], imports: [CommonModule], exports: [SkyListComponent] });
|
|
12
|
+
SkyListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListModule, imports: [CommonModule] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
declarations: [SkyListComponent],
|
|
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
18
18
|
exports: [SkyListComponent],
|
|
19
19
|
}]
|
|
20
20
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC1idWlsZGVyL3NyYy9saWIvbW9kdWxlcy9saXN0L2xpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUVwRDs7R0FFRztBQU1ILE1BQU0sT0FBTyxhQUFhOzsyR0FBYixhQUFhOzRHQUFiLGFBQWEsaUJBSlQsZ0JBQWdCLGFBQ3JCLFlBQVksYUFDWixnQkFBZ0I7NEdBRWYsYUFBYSxZQUhkLFlBQVk7NEZBR1gsYUFBYTtrQkFMekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5TGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIExpc3QgYnVpbGRlciBhbmQgaXRzIGZlYXR1cmVzIGFyZSBkZXByZWNhdGVkLiBVc2UgZGF0YSBtYW5hZ2VyIGluc3RlYWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGEtbWFuYWdlci5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5TGlzdENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbU2t5TGlzdENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUxpc3RNb2R1bGUge31cbiJdfQ==
|
|
@@ -74,9 +74,9 @@ export class ListStateDispatcher extends StateDispatcher {
|
|
|
74
74
|
this.next(new ListSelectedSetItemsSelectedAction(selectedIds, selected, refresh));
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
ListStateDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
78
|
-
ListStateDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
77
|
+
ListStateDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ListStateDispatcher, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
78
|
+
ListStateDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ListStateDispatcher });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ListStateDispatcher, decorators: [{
|
|
80
80
|
type: Injectable
|
|
81
81
|
}] });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zdGF0ZS5yeHN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci9zcmMvbGliL21vZHVsZXMvbGlzdC9zdGF0ZS9saXN0LXN0YXRlLnJ4c3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFLaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFMUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVD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QUFDLENBQ3ZFLENBQUM7SUFDSixDQUFDOztpSEEvRVUsbUJBQW1CO3FIQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0YXRlRGlzcGF0Y2hlciwgU3RhdGVPcmNoZXN0cmF0b3IgfSBmcm9tICdAc2t5dXgvbGlzdC1idWlsZGVyLWNvbW1vbic7XG5pbXBvcnQgeyBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbCB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuaW1wb3J0IHsgTGlzdEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vLi4vbGlzdC1maWx0ZXJzL2ZpbHRlci5tb2RlbCc7XG5cbmltcG9ydCB7IExpc3RGaWx0ZXJzVXBkYXRlQWN0aW9uIH0gZnJvbSAnLi9maWx0ZXJzL3VwZGF0ZS5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFN0YXRlQWN0aW9uIH0gZnJvbSAnLi9saXN0LXN0YXRlLWFjdGlvbi50eXBlJztcbmltcG9ydCB7IExpc3RTZWFyY2hNb2RlbCB9IGZyb20gJy4vc2VhcmNoL3NlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0U2VhcmNoU2V0RmllbGRTZWxlY3RvcnNBY3Rpb24gfSBmcm9tICcuL3NlYXJjaC9zZXQtZmllbGQtc2VsZWN0b3JzLmFjdGlvbic7XG5pbXBvcnQgeyBMaXN0U2VhcmNoU2V0RnVuY3Rpb25zQWN0aW9uIH0gZnJvbSAnLi9zZWFyY2gvc2V0LWZ1bmN0aW9ucy5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFNlYXJjaFNldE9wdGlvbnNBY3Rpb24gfSBmcm9tICcuL3NlYXJjaC9zZXQtb3B0aW9ucy5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFNlYXJjaFNldFNlYXJjaFRleHRBY3Rpb24gfSBmcm9tICcuL3NlYXJjaC9zZXQtc2VhcmNoLXRleHQuYWN0aW9uJztcbmltcG9ydCB7IExpc3RTZWxlY3RlZFNldEl0ZW1zU2VsZWN0ZWRBY3Rpb24gfSBmcm9tICcuL3NlbGVjdGVkL3NldC1pdGVtcy1zZWxlY3RlZC5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFNvcnRMYWJlbE1vZGVsIH0gZnJvbSAnLi9zb3J0L2xhYmVsLm1vZGVsJztcbmltcG9ydCB7IExpc3RTb3J0U2V0QXZhaWxhYmxlQWN0aW9uIH0gZnJvbSAnLi9zb3J0L3NldC1hdmFpbGFibGUuYWN0aW9uJztcbmltcG9ydCB7IExpc3RTb3J0U2V0RmllbGRTZWxlY3RvcnNBY3Rpb24gfSBmcm9tICcuL3NvcnQvc2V0LWZpZWxkLXNlbGVjdG9ycy5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFNvcnRTZXRHbG9iYWxBY3Rpb24gfSBmcm9tICcuL3NvcnQvc2V0LWdsb2JhbC5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFRvb2xiYXJJdGVtc0Rpc2FibGVBY3Rpb24gfSBmcm9tICcuL3Rvb2xiYXIvZGlzYWJsZS5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFRvb2xiYXJJdGVtc0xvYWRBY3Rpb24gfSBmcm9tICcuL3Rvb2xiYXIvbG9hZC5hY3Rpb24nO1xuaW1wb3J0IHsgTGlzdFRvb2xiYXJJdGVtc1JlbW92ZUFjdGlvbiB9IGZyb20gJy4vdG9vbGJhci9yZW1vdmUuYWN0aW9uJztcbmltcG9ydCB7IExpc3RUb29sYmFyU2V0RXhpc3RzQWN0aW9uIH0gZnJvbSAnLi90b29sYmFyL3NldC1leGlzdHMuYWN0aW9uJztcbmltcG9ydCB7IExpc3RUb29sYmFyU2hvd011bHRpc2VsZWN0VG9vbGJhckFjdGlvbiB9IGZyb20gJy4vdG9vbGJhci9zaG93LW11bHRpc2VsZWN0LXRvb2xiYXIuYWN0aW9uJztcbmltcG9ydCB7IExpc3RUb29sYmFySXRlbU1vZGVsIH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXItaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0Vmlld3NTZXRBY3RpdmVBY3Rpb24gfSBmcm9tICcuL3ZpZXdzL3NldC1hY3RpdmUuYWN0aW9uJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0U3RhdGVPcmNoZXN0cmF0b3I8VD4gZXh0ZW5kcyBTdGF0ZU9yY2hlc3RyYXRvcjxcbiAgVCxcbiAgTGlzdFN0YXRlQWN0aW9uXG4+IHt9XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBAZGVwcmVjYXRlZFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGlzdFN0YXRlRGlzcGF0Y2hlciBleHRlbmRzIFN0YXRlRGlzcGF0Y2hlcjxMaXN0U3RhdGVBY3Rpb24+IHtcbiAgcHVibGljIHZpZXdzU2V0QWN0aXZlKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5leHQobmV3IExpc3RWaWV3c1NldEFjdGl2ZUFjdGlvbihpZCkpO1xuICB9XG5cbiAgcHVibGljIHRvb2xiYXJFeGlzdHMoZXhpc3RzOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5uZXh0KG5ldyBMaXN0VG9vbGJhclNldEV4aXN0c0FjdGlvbihleGlzdHMpKTtcbiAgfVxuXG4gIHB1YmxpYyB0b29sYmFyU2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm5leHQobmV3IExpc3RUb29sYmFySXRlbXNEaXNhYmxlQWN0aW9uKGRpc2FibGVkKSk7XG4gIH1cblxuICBwdWJsaWMgdG9vbGJhckFkZEl0ZW1zKFxuICAgIGl0ZW1zOiBMaXN0VG9vbGJhckl0ZW1Nb2RlbFtdLFxuICAgIGluZGV4OiBudW1iZXIgPSAtMVxuICApOiB2b2lkIHtcbiAgICB0aGlzLm5leHQobmV3IExpc3RUb29sYmFySXRlbXNMb2FkQWN0aW9uKGl0ZW1zLCBpbmRleCkpO1xuICB9XG5cbiAgcHVibGljIHRvb2xiYXJSZW1vdmVJdGVtcyhpZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5uZXh0KG5ldyBMaXN0VG9vbGJhckl0ZW1zUmVtb3ZlQWN0aW9uKGlkcykpO1xuICB9XG5cbiAgcHVibGljIHRvb2xiYXJTaG93TXVsdGlzZWxlY3RUb29sYmFyKHNob3c6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm5leHQobmV3IExpc3RUb29sYmFyU2hvd011bHRpc2VsZWN0VG9vbGJhckFjdGlvbihzaG93KSk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoU2V0RnVuY3Rpb25zKFxuICAgIHNvcnRGdW5jdGlvbnM6ICgoZGF0YTogYW55LCBzZWFyY2hUZXh0OiBzdHJpbmcpID0+IGJvb2xlYW4pW11cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5uZXh0KG5ldyBMaXN0U2VhcmNoU2V0RnVuY3Rpb25zQWN0aW9uKHNvcnRGdW5jdGlvbnMpKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBzZWFyY2hTZXRGaWVsZFNlbGVjdG9ycyhmaWVsZFNlbGVjdG9yczogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuICAgIHRoaXMubmV4dChuZXcgTGlzdFNlYXJjaFNldEZpZWxkU2VsZWN0b3JzQWN0aW9uKGZpZWxkU2VsZWN0b3JzKSk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoU2V0VGV4dChzZWFyY2hUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLm5leHQobmV3IExpc3RTZWFyY2hTZXRTZWFyY2hUZXh0QWN0aW9uKHNlYXJjaFRleHQpKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hTZXRPcHRpb25zKHNlYXJjaE9wdGlvbnM6IExpc3RTZWFyY2hNb2RlbCkge1xuICAgIHRoaXMubmV4dChcbiAgICAgIG5ldyBMaXN0U2VhcmNoU2V0T3B0aW9uc0FjdGlvbihcbiAgICAgICAgbmV3IExpc3RTZWFyY2hTZXRTZWFyY2hUZXh0QWN0aW9uKHNlYXJjaE9wdGlvbnMuc2VhcmNoVGV4dCksXG4gICAgICAgIG5ldyBMaXN0U2VhcmNoU2V0RmllbGRTZWxlY3RvcnNBY3Rpb24oc2VhcmNoT3B0aW9ucy5maWVsZFNlbGVjdG9ycyksXG4gICAgICAgIG5ldyBMaXN0U2VhcmNoU2V0RnVuY3Rpb25zQWN0aW9uKHNlYXJjaE9wdGlvbnMuZnVuY3Rpb25zKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc29ydFNldEF2YWlsYWJsZShzb3J0TGFiZWxzOiBMaXN0U29ydExhYmVsTW9kZWxbXSk6IHZvaWQge1xuICAgIHRoaXMubmV4dChuZXcgTGlzdFNvcnRTZXRBdmFpbGFibGVBY3Rpb24oc29ydExhYmVscykpO1xuICB9XG5cbiAgcHVibGljIHNvcnRTZXRGaWVsZFNlbGVjdG9ycyhcbiAgICBmaWVsZFNlbGVjdG9yczogTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxbXVxuICApOiB2b2lkIHtcbiAgICB0aGlzLm5leHQobmV3IExpc3RTb3J0U2V0RmllbGRTZWxlY3RvcnNBY3Rpb24oZmllbGRTZWxlY3RvcnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0U2V0R2xvYmFsKHNvcnRMYWJlbHM6IExpc3RTb3J0TGFiZWxNb2RlbFtdKTogdm9pZCB7XG4gICAgdGhpcy5uZXh0KG5ldyBMaXN0U29ydFNldEdsb2JhbEFjdGlvbihzb3J0TGFiZWxzKSk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyc1VwZGF0ZShmaWx0ZXJzOiBMaXN0RmlsdGVyTW9kZWxbXSk6IHZvaWQge1xuICAgIHRoaXMubmV4dChuZXcgTGlzdEZpbHRlcnNVcGRhdGVBY3Rpb24oZmlsdGVycykpO1xuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGVkKFxuICAgIHNlbGVjdGVkSWRzOiBzdHJpbmdbXSxcbiAgICBzZWxlY3RlZDogYm9vbGVhbixcbiAgICByZWZyZXNoOiBib29sZWFuID0gZmFsc2VcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5uZXh0KFxuICAgICAgbmV3IExpc3RTZWxlY3RlZFNldEl0ZW1zU2VsZWN0ZWRBY3Rpb24oc2VsZWN0ZWRJZHMsIHNlbGVjdGVkLCByZWZyZXNoKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -3,7 +3,6 @@ import { StateNode } from '@skyux/list-builder-common';
|
|
|
3
3
|
import { ListFiltersOrchestrator } from './filters/filters.orchestrator';
|
|
4
4
|
import { ListItemsOrchestrator } from './items/items.orchestrator';
|
|
5
5
|
import { ListStateModel } from './list-state.model';
|
|
6
|
-
import { ListStateDispatcher } from './list-state.rxstate';
|
|
7
6
|
import { ListPagingOrchestrator } from './paging/paging.orchestrator';
|
|
8
7
|
import { ListSearchOrchestrator } from './search/search.orchestrator';
|
|
9
8
|
import { ListSelectedOrchestrator } from './selected/selected.orchestrator';
|
|
@@ -30,9 +29,9 @@ export class ListState extends StateNode {
|
|
|
30
29
|
.begin();
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
|
-
ListState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
34
|
-
ListState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
32
|
+
ListState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ListState, deps: [{ token: i1.ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
ListState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ListState });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: ListState, decorators: [{
|
|
36
35
|
type: Injectable
|
|
37
36
|
}], ctorParameters: function () { return [{ type: i1.ListStateDispatcher }]; } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zdGF0ZS5zdGF0ZS1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci9zcmMvbGliL21vZHVsZXMvbGlzdC9zdGF0ZS9saXN0LXN0YXRlLnN0YXRlLW5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFbkU7OztHQUdHO0FBRUgsTUFBTSxPQUFPLFNBQVUsU0FBUSxTQUF5QjtJQUN0RCxZQUFZLFVBQStCO1FBQ3pDLEtBQUssQ0FBQyxJQUFJLGNBQWMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLHVCQUF1QixDQUFDO2FBQzlDLFFBQVEsQ0FBQyxPQUFPLEVBQUUscUJBQXFCLENBQUM7YUFDeEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQzthQUMxQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDO2FBQzFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUM7YUFDdEMsUUFBUSxDQUFDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQzthQUM1QyxRQUFRLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDO2FBQ3hDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsd0JBQXdCLENBQUM7YUFDOUMsS0FBSyxFQUFFLENBQUM7SUFDYixDQUFDOzt1R0FiVSxTQUFTOzJHQUFULFNBQVM7NEZBQVQsU0FBUztrQkFEckIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0YXRlTm9kZSB9IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuaW1wb3J0IHsgTGlzdEZpbHRlcnNPcmNoZXN0cmF0b3IgfSBmcm9tICcuL2ZpbHRlcnMvZmlsdGVycy5vcmNoZXN0cmF0b3InO1xuaW1wb3J0IHsgTGlzdEl0ZW1zT3JjaGVzdHJhdG9yIH0gZnJvbSAnLi9pdGVtcy9pdGVtcy5vcmNoZXN0cmF0b3InO1xuaW1wb3J0IHsgTGlzdFN0YXRlTW9kZWwgfSBmcm9tICcuL2xpc3Qtc3RhdGUubW9kZWwnO1xuaW1wb3J0IHsgTGlzdFN0YXRlRGlzcGF0Y2hlciB9IGZyb20gJy4vbGlzdC1zdGF0ZS5yeHN0YXRlJztcbmltcG9ydCB7IExpc3RQYWdpbmdPcmNoZXN0cmF0b3IgfSBmcm9tICcuL3BhZ2luZy9wYWdpbmcub3JjaGVzdHJhdG9yJztcbmltcG9ydCB7IExpc3RTZWFyY2hPcmNoZXN0cmF0b3IgfSBmcm9tICcuL3NlYXJjaC9zZWFyY2gub3JjaGVzdHJhdG9yJztcbmltcG9ydCB7IExpc3RTZWxlY3RlZE9yY2hlc3RyYXRvciB9IGZyb20gJy4vc2VsZWN0ZWQvc2VsZWN0ZWQub3JjaGVzdHJhdG9yJztcbmltcG9ydCB7IExpc3RTb3J0T3JjaGVzdHJhdG9yIH0gZnJvbSAnLi9zb3J0L3NvcnQub3JjaGVzdHJhdG9yJztcbmltcG9ydCB7IExpc3RUb29sYmFyT3JjaGVzdHJhdG9yIH0gZnJvbSAnLi90b29sYmFyL3Rvb2xiYXIub3JjaGVzdHJhdG9yJztcbmltcG9ydCB7IExpc3RWaWV3c09yY2hlc3RyYXRvciB9IGZyb20gJy4vdmlld3Mvdmlld3Mub3JjaGVzdHJhdG9yJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEBkZXByZWNhdGVkXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMaXN0U3RhdGUgZXh0ZW5kcyBTdGF0ZU5vZGU8TGlzdFN0YXRlTW9kZWw+IHtcbiAgY29uc3RydWN0b3IoZGlzcGF0Y2hlcjogTGlzdFN0YXRlRGlzcGF0Y2hlcikge1xuICAgIHN1cGVyKG5ldyBMaXN0U3RhdGVNb2RlbCgpLCBkaXNwYXRjaGVyKTtcblxuICAgIHRoaXMucmVnaXN0ZXIoJ2ZpbHRlcnMnLCBMaXN0RmlsdGVyc09yY2hlc3RyYXRvcilcbiAgICAgIC5yZWdpc3RlcignaXRlbXMnLCBMaXN0SXRlbXNPcmNoZXN0cmF0b3IpXG4gICAgICAucmVnaXN0ZXIoJ3BhZ2luZycsIExpc3RQYWdpbmdPcmNoZXN0cmF0b3IpXG4gICAgICAucmVnaXN0ZXIoJ3NlYXJjaCcsIExpc3RTZWFyY2hPcmNoZXN0cmF0b3IpXG4gICAgICAucmVnaXN0ZXIoJ3NvcnQnLCBMaXN0U29ydE9yY2hlc3RyYXRvcilcbiAgICAgIC5yZWdpc3RlcigndG9vbGJhcicsIExpc3RUb29sYmFyT3JjaGVzdHJhdG9yKVxuICAgICAgLnJlZ2lzdGVyKCd2aWV3cycsIExpc3RWaWV3c09yY2hlc3RyYXRvcilcbiAgICAgIC5yZWdpc3Rlcignc2VsZWN0ZWQnLCBMaXN0U2VsZWN0ZWRPcmNoZXN0cmF0b3IpXG4gICAgICAuYmVnaW4oKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Component, TemplateRef, ViewChild, } from '@angular/core';
|
|
2
|
-
import { ListStateDispatcher } from '../list/state/list-state.rxstate';
|
|
3
2
|
import { ListToolbarItemModel } from '../list/state/toolbar/toolbar-item.model';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "../list/state/list-state.rxstate";
|
|
@@ -27,9 +26,9 @@ export class SkyListFilterButtonComponent {
|
|
|
27
26
|
]);
|
|
28
27
|
}
|
|
29
28
|
}
|
|
30
|
-
SkyListFilterButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
31
|
-
SkyListFilterButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
29
|
+
SkyListFilterButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListFilterButtonComponent, deps: [{ token: i1.ListStateDispatcher }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
SkyListFilterButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyListFilterButtonComponent, selector: "sky-list-filter-button", viewQueries: [{ propertyName: "filterButtonTemplate", first: true, predicate: ["filterButton"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #filterButton>\n <ng-content></ng-content>\n</ng-template>\n" });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListFilterButtonComponent, decorators: [{
|
|
33
32
|
type: Component,
|
|
34
33
|
args: [{ selector: 'sky-list-filter-button', template: "<ng-template #filterButton>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
35
34
|
}], ctorParameters: function () { return [{ type: i1.ListStateDispatcher }]; }, propDecorators: { filterButtonTemplate: [{
|
|
@@ -39,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
39
38
|
static: true,
|
|
40
39
|
}]
|
|
41
40
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1maWx0ZXItYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9saXN0LWJ1aWxkZXIvc3JjL2xpYi9tb2R1bGVzL2xpc3QtZmlsdGVycy9saXN0LWZpbHRlci1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci9zcmMvbGliL21vZHVsZXMvbGlzdC1maWx0ZXJzL2xpc3QtZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMENBQTBDLENBQUM7OztBQUVoRjs7Ozs7Ozs7R0FRRztBQUtILE1BQU0sT0FBTyw0QkFBNEI7SUFTdkMsWUFBb0IsVUFBK0I7UUFBL0IsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFGM0MsaUNBQTRCLEdBQUcsSUFBSSxDQUFDO0lBRVUsQ0FBQztJQUVoRCxlQUFlO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDO1lBQzlCLElBQUksb0JBQW9CLENBQUM7Z0JBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsb0JBQW9CO2dCQUNuQyxRQUFRLEVBQUUsTUFBTTtnQkFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyw0QkFBNEI7YUFDekMsQ0FBQztTQUNILENBQUMsQ0FBQztJQUNMLENBQUM7OzBIQW5CVSw0QkFBNEI7OEdBQTVCLDRCQUE0QiwrSkFFL0IsV0FBVywyQ0N6QnJCLDRFQUdBOzRGRG9CYSw0QkFBNEI7a0JBSnhDLFNBQVM7K0JBQ0Usd0JBQXdCOzBHQVExQixvQkFBb0I7c0JBSjNCLFNBQVM7dUJBQUMsY0FBYyxFQUFFO3dCQUN6QixJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMaXN0U3RhdGVEaXNwYXRjaGVyIH0gZnJvbSAnLi4vbGlzdC9zdGF0ZS9saXN0LXN0YXRlLnJ4c3RhdGUnO1xuaW1wb3J0IHsgTGlzdFRvb2xiYXJJdGVtTW9kZWwgfSBmcm9tICcuLi9saXN0L3N0YXRlL3Rvb2xiYXIvdG9vbGJhci1pdGVtLm1vZGVsJztcblxuLyoqXG4gKiBDb250YWlucyBhIGZpbHRlciBidXR0b24gZm9yIHRoZSBsaXN0IHRvb2xiYXIuIFBsYWNlIGFcbiAqIFtgc2t5LWZpbHRlci1idXR0b25gXShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvZmlsdGVyKVxuICogY29tcG9uZW50IGluc2lkZSB0aGlzIGNvbXBvbmVudCB0byBvcGVuIGEgbW9kYWwgd2l0aCBmaWx0ZXJpbmcgb3B0aW9ucy5cbiAqIFRvIGFwcGx5IGZpbHRlciBvcHRpb25zLCB1c2UgdGhlXG4gKiBbbGlzdCBjb21wb25lbnQnc10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2xpc3Qvb3ZlcnZpZXcjbGlzdC1wcm9wZXJ0aWVzKVxuICogYGFwcGxpZWRGaWx0ZXJzYCBwcm9wZXJ0eS5cbiAqIEBkZXByZWNhdGVkXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1saXN0LWZpbHRlci1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC1maWx0ZXItYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdEZpbHRlckJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBAVmlld0NoaWxkKCdmaWx0ZXJCdXR0b24nLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwcml2YXRlIGZpbHRlckJ1dHRvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBwcml2YXRlIGZpbHRlckJ1dHRvbkl0ZW1Ub29sYmFySW5kZXggPSA1MDAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlzcGF0Y2hlcjogTGlzdFN0YXRlRGlzcGF0Y2hlcikge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZGlzcGF0Y2hlci50b29sYmFyQWRkSXRlbXMoW1xuICAgICAgbmV3IExpc3RUb29sYmFySXRlbU1vZGVsKHtcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuZmlsdGVyQnV0dG9uVGVtcGxhdGUsXG4gICAgICAgIGxvY2F0aW9uOiAnbGVmdCcsXG4gICAgICAgIGluZGV4OiB0aGlzLmZpbHRlckJ1dHRvbkl0ZW1Ub29sYmFySW5kZXgsXG4gICAgICB9KSxcbiAgICBdKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNmaWx0ZXJCdXR0b24+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input,
|
|
1
|
+
import { Component, Input, ViewChild, ViewContainerRef, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/**
|
|
4
4
|
* @internal
|
|
@@ -12,9 +12,9 @@ export class SkyListFilterInlineItemRendererComponent {
|
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
SkyListFilterInlineItemRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
|
16
|
-
SkyListFilterInlineItemRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
|
15
|
+
SkyListFilterInlineItemRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListFilterInlineItemRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
SkyListFilterInlineItemRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.11", type: SkyListFilterInlineItemRendererComponent, selector: "sky-list-filter-inline-item-renderer", inputs: { template: "template", filter: "filter" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<ng-template #container></ng-template>', isInline: true });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImport: i0, type: SkyListFilterInlineItemRendererComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{
|
|
20
20
|
selector: 'sky-list-filter-inline-item-renderer',
|
|
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
|
|
|
31
31
|
static: true,
|
|
32
32
|
}]
|
|
33
33
|
}] } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1maWx0ZXItaW5saW5lLWl0ZW0tcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3QtYnVpbGRlci9zcmMvbGliL21vZHVsZXMvbGlzdC1maWx0ZXJzL2xpc3QtZmlsdGVyLWlubGluZS1pdGVtLXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7R0FFRztBQUtILE1BQU0sT0FBTyx3Q0FBd0M7SUFZNUMsUUFBUTtRQUNiLDBCQUEwQjtRQUMxQixrQkFBa0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDeEQ7SUFDSCxDQUFDOztzSUFsQlUsd0NBQXdDOzBIQUF4Qyx3Q0FBd0MsbU5BTzNDLGdCQUFnQiwyQ0FUZCx3Q0FBd0M7NEZBRXZDLHdDQUF3QztrQkFKcEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxRQUFRLEVBQUUsd0NBQXdDO2lCQUNuRDs4QkFHUSxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsTUFBTTtzQkFEWixLQUFLO2dCQU9FLFNBQVM7c0JBSmhCLFNBQVM7dUJBQUMsV0FBVyxFQUFFO3dCQUN0QixJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixNQUFNLEVBQUUsSUFBSTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1saXN0LWZpbHRlci1pbmxpbmUtaXRlbS1yZW5kZXJlcicsXG4gIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlICNjb250YWluZXI+PC9uZy10ZW1wbGF0ZT4nLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMaXN0RmlsdGVySW5saW5lSXRlbVJlbmRlcmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgcHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgQElucHV0KClcbiAgcHVibGljIGZpbHRlcjogYW55O1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHtcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKHRoaXMudGVtcGxhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUsIHRoaXMpO1xuICAgIH1cbiAgfVxufVxuIl19
|