@skyux/list-builder 5.0.0-beta.0 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/bundles/skyux-list-builder.umd.js +1308 -1130
- package/bundles/skyux-list-builder.umd.js.map +1 -1
- package/documentation.json +6679 -0
- package/esm2015/modules/list/list-data-request.model.js +1 -1
- package/esm2015/modules/list/list-data-response.model.js +1 -1
- package/esm2015/modules/list/list-data.provider.js +1 -1
- package/esm2015/modules/list/list-paging.component.js +1 -1
- package/esm2015/modules/list/list-view.component.js +9 -8
- package/esm2015/modules/list/list.component.js +81 -87
- package/esm2015/modules/list/list.module.js +15 -18
- package/esm2015/modules/list/state/filters/filters.orchestrator.js +2 -3
- package/esm2015/modules/list/state/filters/update.action.js +1 -1
- package/esm2015/modules/list/state/items/items.orchestrator.js +12 -9
- package/esm2015/modules/list/state/items/load.action.js +1 -1
- package/esm2015/modules/list/state/items/set-items-selected.action.js +4 -2
- package/esm2015/modules/list/state/items/set-loading.action.js +1 -1
- package/esm2015/modules/list/state/list-state-action.type.js +2 -1
- package/esm2015/modules/list/state/list-state.model.js +1 -1
- package/esm2015/modules/list/state/list-state.rxstate.js +10 -8
- package/esm2015/modules/list/state/list-state.state-node.js +11 -14
- package/esm2015/modules/list/state/paging/paging.model.js +1 -1
- package/esm2015/modules/list/state/paging/paging.orchestrator.js +2 -3
- package/esm2015/modules/list/state/paging/set-items-per-page.action.js +1 -1
- package/esm2015/modules/list/state/paging/set-max-pages.action.js +1 -1
- package/esm2015/modules/list/state/paging/set-page-number.action.js +1 -1
- package/esm2015/modules/list/state/search/search.model.js +1 -1
- package/esm2015/modules/list/state/search/search.orchestrator.js +5 -4
- package/esm2015/modules/list/state/search/set-field-selectors.action.js +1 -1
- package/esm2015/modules/list/state/search/set-functions.action.js +1 -1
- package/esm2015/modules/list/state/search/set-options.action.js +1 -1
- package/esm2015/modules/list/state/search/set-search-text.action.js +1 -1
- package/esm2015/modules/list/state/selected/load.action.js +1 -1
- package/esm2015/modules/list/state/selected/selected.model.js +1 -1
- package/esm2015/modules/list/state/selected/selected.orchestrator.js +9 -10
- package/esm2015/modules/list/state/selected/set-item-selected.action.js +1 -1
- package/esm2015/modules/list/state/selected/set-items-selected.action.js +1 -1
- package/esm2015/modules/list/state/selected/set-loading.action.js +1 -1
- package/esm2015/modules/list/state/sort/label.model.js +1 -1
- package/esm2015/modules/list/state/sort/set-available.action.js +1 -1
- package/esm2015/modules/list/state/sort/set-field-selectors.action.js +1 -1
- package/esm2015/modules/list/state/sort/set-global.action.js +1 -1
- package/esm2015/modules/list/state/sort/sort.model.js +1 -1
- package/esm2015/modules/list/state/sort/sort.orchestrator.js +4 -5
- package/esm2015/modules/list/state/toolbar/disable.action.js +1 -1
- package/esm2015/modules/list/state/toolbar/load.action.js +1 -1
- package/esm2015/modules/list/state/toolbar/remove.action.js +1 -1
- package/esm2015/modules/list/state/toolbar/set-exists.action.js +1 -1
- package/esm2015/modules/list/state/toolbar/set-type.action.js +1 -1
- package/esm2015/modules/list/state/toolbar/show-multiselect-toolbar.action.js +1 -1
- package/esm2015/modules/list/state/toolbar/toolbar-item.model.js +1 -1
- package/esm2015/modules/list/state/toolbar/toolbar.model.js +1 -1
- package/esm2015/modules/list/state/toolbar/toolbar.orchestrator.js +3 -4
- package/esm2015/modules/list/state/views/load.action.js +1 -1
- package/esm2015/modules/list/state/views/set-active.action.js +1 -1
- package/esm2015/modules/list/state/views/view.model.js +1 -1
- package/esm2015/modules/list/state/views/views.model.js +1 -1
- package/esm2015/modules/list/state/views/views.orchestrator.js +2 -4
- package/esm2015/modules/list-data-provider-in-memory/list-data-in-memory.provider.js +25 -14
- package/esm2015/modules/list-filters/filter.model.js +1 -1
- package/esm2015/modules/list-filters/list-filter-button.component.js +23 -24
- package/esm2015/modules/list-filters/list-filter-inline-item-renderer.component.js +24 -24
- package/esm2015/modules/list-filters/list-filter-inline-item.component.js +32 -32
- package/esm2015/modules/list-filters/list-filter-inline.component.js +28 -26
- package/esm2015/modules/list-filters/list-filter-inline.model.js +1 -1
- package/esm2015/modules/list-filters/list-filter-summary.component.js +22 -23
- package/esm2015/modules/list-filters/list-filters.module.js +33 -27
- package/esm2015/modules/list-paging/list-paging.component.js +37 -40
- package/esm2015/modules/list-paging/list-paging.module.js +15 -19
- package/esm2015/modules/list-toolbar/list-multiselect-toolbar.component.js +45 -41
- package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js +22 -23
- package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-action.js +2 -1
- package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js +22 -20
- package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js +26 -30
- package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js +34 -23
- package/esm2015/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js +10 -9
- package/esm2015/modules/list-toolbar/list-toolbar-item-renderer.component.js +22 -21
- package/esm2015/modules/list-toolbar/list-toolbar-item.component.js +23 -24
- package/esm2015/modules/list-toolbar/list-toolbar-search-actions.component.js +15 -13
- package/esm2015/modules/list-toolbar/list-toolbar-sort.component.js +21 -23
- package/esm2015/modules/list-toolbar/list-toolbar-view-actions.component.js +14 -12
- package/esm2015/modules/list-toolbar/list-toolbar.component.js +142 -139
- package/esm2015/modules/list-toolbar/list-toolbar.module.js +62 -31
- package/esm2015/modules/list-toolbar/state/config/config.model.js +1 -1
- package/esm2015/modules/list-toolbar/state/config/config.orchestrator.js +2 -4
- package/esm2015/modules/list-toolbar/state/config/set-search-enabled.action.js +1 -1
- package/esm2015/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js +1 -1
- package/esm2015/modules/list-toolbar/state/toolbar-state-action.type.js +2 -1
- package/esm2015/modules/list-toolbar/state/toolbar-state.model.js +1 -1
- package/esm2015/modules/list-toolbar/state/toolbar-state.rxstate.js +9 -8
- package/esm2015/modules/list-toolbar/state/toolbar-state.state-node.js +12 -17
- package/esm2015/modules/shared/sky-list-builder-resources.module.js +53 -0
- package/esm2015/public-api.js +78 -0
- package/esm2015/skyux-list-builder.js +2 -23
- package/fesm2015/skyux-list-builder.js +992 -915
- package/fesm2015/skyux-list-builder.js.map +1 -1
- package/modules/list/list.component.d.ts +3 -0
- package/modules/list/list.module.d.ts +6 -0
- package/modules/list/state/list-state.rxstate.d.ts +3 -0
- package/modules/list/state/list-state.state-node.d.ts +3 -0
- package/modules/list-filters/list-filter-button.component.d.ts +3 -0
- package/modules/list-filters/list-filter-inline-item-renderer.component.d.ts +3 -0
- package/modules/list-filters/list-filter-inline-item.component.d.ts +3 -0
- package/modules/list-filters/list-filter-inline.component.d.ts +3 -0
- package/modules/list-filters/list-filter-summary.component.d.ts +3 -0
- package/modules/list-filters/list-filters.module.d.ts +11 -0
- package/modules/list-paging/list-paging.component.d.ts +3 -0
- package/modules/list-paging/list-paging.module.d.ts +7 -0
- package/modules/list-toolbar/list-multiselect-toolbar.component.d.ts +3 -0
- package/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.d.ts +3 -0
- package/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.d.ts +3 -0
- package/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.d.ts +3 -0
- package/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.d.ts +12 -0
- package/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.d.ts +3 -0
- package/modules/list-toolbar/list-toolbar-item-renderer.component.d.ts +3 -0
- package/modules/list-toolbar/list-toolbar-item.component.d.ts +3 -0
- package/modules/list-toolbar/list-toolbar-search-actions.component.d.ts +3 -0
- package/modules/list-toolbar/list-toolbar-sort.component.d.ts +3 -0
- package/modules/list-toolbar/list-toolbar-view-actions.component.d.ts +3 -0
- package/modules/list-toolbar/list-toolbar.component.d.ts +3 -0
- package/modules/list-toolbar/list-toolbar.module.d.ts +20 -0
- package/modules/list-toolbar/state/toolbar-state.rxstate.d.ts +3 -0
- package/modules/list-toolbar/state/toolbar-state.state-node.d.ts +3 -0
- package/modules/shared/sky-list-builder-resources.module.d.ts +14 -0
- package/package.json +16 -31
- package/{public_api.d.ts → public-api.d.ts} +11 -0
- package/skyux-list-builder.d.ts +2 -22
- package/CHANGELOG.md +0 -161
- package/bundles/skyux-list-builder.umd.min.js +0 -16
- package/bundles/skyux-list-builder.umd.min.js.map +0 -1
- package/esm2015/modules/shared/list-builder-resources.module.js +0 -17
- package/esm2015/plugin-resources/list-builder-resources-provider.js +0 -16
- package/esm2015/public_api.js +0 -63
- package/esm5/modules/list/list-data-request.model.js +0 -20
- package/esm5/modules/list/list-data-response.model.js +0 -11
- package/esm5/modules/list/list-data.provider.js +0 -10
- package/esm5/modules/list/list-paging.component.js +0 -15
- package/esm5/modules/list/list-view.component.js +0 -38
- package/esm5/modules/list/list.component.js +0 -337
- package/esm5/modules/list/list.module.js +0 -24
- package/esm5/modules/list/state/filters/filters.orchestrator.js +0 -22
- package/esm5/modules/list/state/filters/update.action.js +0 -11
- package/esm5/modules/list/state/items/items.orchestrator.js +0 -55
- package/esm5/modules/list/state/items/load.action.js +0 -16
- package/esm5/modules/list/state/items/set-items-selected.action.js +0 -15
- package/esm5/modules/list/state/items/set-loading.action.js +0 -12
- package/esm5/modules/list/state/list-state-action.type.js +0 -1
- package/esm5/modules/list/state/list-state.model.js +0 -26
- package/esm5/modules/list/state/list-state.rxstate.js +0 -91
- package/esm5/modules/list/state/list-state.state-node.js +0 -42
- package/esm5/modules/list/state/paging/paging.model.js +0 -16
- package/esm5/modules/list/state/paging/paging.orchestrator.js +0 -33
- package/esm5/modules/list/state/paging/set-items-per-page.action.js +0 -11
- package/esm5/modules/list/state/paging/set-max-pages.action.js +0 -11
- package/esm5/modules/list/state/paging/set-page-number.action.js +0 -11
- package/esm5/modules/list/state/search/search.model.js +0 -34
- package/esm5/modules/list/state/search/search.orchestrator.js +0 -51
- package/esm5/modules/list/state/search/set-field-selectors.action.js +0 -12
- package/esm5/modules/list/state/search/set-functions.action.js +0 -12
- package/esm5/modules/list/state/search/set-options.action.js +0 -13
- package/esm5/modules/list/state/search/set-search-text.action.js +0 -11
- package/esm5/modules/list/state/selected/load.action.js +0 -11
- package/esm5/modules/list/state/selected/selected.model.js +0 -11
- package/esm5/modules/list/state/selected/selected.orchestrator.js +0 -62
- package/esm5/modules/list/state/selected/set-item-selected.action.js +0 -12
- package/esm5/modules/list/state/selected/set-items-selected.action.js +0 -15
- package/esm5/modules/list/state/selected/set-loading.action.js +0 -12
- package/esm5/modules/list/state/sort/label.model.js +0 -27
- package/esm5/modules/list/state/sort/set-available.action.js +0 -11
- package/esm5/modules/list/state/sort/set-field-selectors.action.js +0 -11
- package/esm5/modules/list/state/sort/set-global.action.js +0 -11
- package/esm5/modules/list/state/sort/sort.model.js +0 -29
- package/esm5/modules/list/state/sort/sort.orchestrator.js +0 -36
- package/esm5/modules/list/state/toolbar/disable.action.js +0 -11
- package/esm5/modules/list/state/toolbar/load.action.js +0 -13
- package/esm5/modules/list/state/toolbar/remove.action.js +0 -11
- package/esm5/modules/list/state/toolbar/set-exists.action.js +0 -11
- package/esm5/modules/list/state/toolbar/set-type.action.js +0 -11
- package/esm5/modules/list/state/toolbar/show-multiselect-toolbar.action.js +0 -11
- package/esm5/modules/list/state/toolbar/toolbar-item.model.js +0 -18
- package/esm5/modules/list/state/toolbar/toolbar.model.js +0 -19
- package/esm5/modules/list/state/toolbar/toolbar.orchestrator.js +0 -86
- package/esm5/modules/list/state/views/load.action.js +0 -11
- package/esm5/modules/list/state/views/set-active.action.js +0 -11
- package/esm5/modules/list/state/views/view.model.js +0 -12
- package/esm5/modules/list/state/views/views.model.js +0 -15
- package/esm5/modules/list/state/views/views.orchestrator.js +0 -28
- package/esm5/modules/list-data-provider-in-memory/list-data-in-memory.provider.js +0 -157
- package/esm5/modules/list-filters/filter.model.js +0 -20
- package/esm5/modules/list-filters/list-filter-button.component.js +0 -45
- package/esm5/modules/list-filters/list-filter-inline-item-renderer.component.js +0 -37
- package/esm5/modules/list-filters/list-filter-inline-item.component.js +0 -50
- package/esm5/modules/list-filters/list-filter-inline.component.js +0 -73
- package/esm5/modules/list-filters/list-filter-inline.model.js +0 -23
- package/esm5/modules/list-filters/list-filter-summary.component.js +0 -62
- package/esm5/modules/list-filters/list-filters.module.js +0 -38
- package/esm5/modules/list-paging/list-paging.component.js +0 -102
- package/esm5/modules/list-paging/list-paging.module.js +0 -26
- package/esm5/modules/list-toolbar/list-multiselect-toolbar.component.js +0 -153
- package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-action.component.js +0 -34
- package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-action.js +0 -1
- package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-actions-host.component.js +0 -49
- package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-actions.component.js +0 -49
- package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-actions.module.js +0 -38
- package/esm5/modules/list-toolbar/list-secondary-actions/list-secondary-actions.service.js +0 -36
- package/esm5/modules/list-toolbar/list-toolbar-item-renderer.component.js +0 -32
- package/esm5/modules/list-toolbar/list-toolbar-item.component.js +0 -53
- package/esm5/modules/list-toolbar/list-toolbar-search-actions.component.js +0 -20
- package/esm5/modules/list-toolbar/list-toolbar-sort.component.js +0 -30
- package/esm5/modules/list-toolbar/list-toolbar-view-actions.component.js +0 -22
- package/esm5/modules/list-toolbar/list-toolbar.component.js +0 -375
- package/esm5/modules/list-toolbar/list-toolbar.module.js +0 -59
- package/esm5/modules/list-toolbar/state/config/config.model.js +0 -16
- package/esm5/modules/list-toolbar/state/config/config.orchestrator.js +0 -28
- package/esm5/modules/list-toolbar/state/config/set-search-enabled.action.js +0 -11
- package/esm5/modules/list-toolbar/state/config/set-sort-selector-enabled.action.js +0 -13
- package/esm5/modules/list-toolbar/state/toolbar-state-action.type.js +0 -1
- package/esm5/modules/list-toolbar/state/toolbar-state.model.js +0 -12
- package/esm5/modules/list-toolbar/state/toolbar-state.rxstate.js +0 -29
- package/esm5/modules/list-toolbar/state/toolbar-state.state-node.js +0 -29
- package/esm5/modules/shared/list-builder-resources.module.js +0 -20
- package/esm5/plugin-resources/list-builder-resources-provider.js +0 -17
- package/esm5/public_api.js +0 -63
- package/esm5/skyux-list-builder.js +0 -26
- package/fesm5/skyux-list-builder.js +0 -2884
- package/fesm5/skyux-list-builder.js.map +0 -1
- package/modules/shared/list-builder-resources.module.d.ts +0 -2
- package/plugin-resources/list-builder-resources-provider.d.ts +0 -5
- package/skyux-list-builder.metadata.json +0 -1
- package/src/assets/img/list-toolbar-context.png +0 -0
- package/src/assets/img/toolbar-anatomy.png +0 -0
- package/src/assets/locales/resources_en_US.json +0 -22
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
var ListDataRequestModel = /** @class */ (function () {
|
|
2
|
-
function ListDataRequestModel(data) {
|
|
3
|
-
/**
|
|
4
|
-
* Indicates whether to disable the search bar and filter button.
|
|
5
|
-
* @default false
|
|
6
|
-
*/
|
|
7
|
-
this.isToolbarDisabled = false;
|
|
8
|
-
if (data !== undefined) {
|
|
9
|
-
this.filters = data.filters;
|
|
10
|
-
this.pageSize = data.pageSize;
|
|
11
|
-
this.pageNumber = data.pageNumber;
|
|
12
|
-
this.search = data.search;
|
|
13
|
-
this.sort = data.sort;
|
|
14
|
-
this.isToolbarDisabled = data.isToolbarDisabled;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return ListDataRequestModel;
|
|
18
|
-
}());
|
|
19
|
-
export { ListDataRequestModel };
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLXJlcXVlc3QubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvbGlzdC1idWlsZGVyLyIsInNvdXJjZXMiOlsibW9kdWxlcy9saXN0L2xpc3QtZGF0YS1yZXF1ZXN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBO0lBK0JFLDhCQUFZLElBQVU7UUFOdEI7OztXQUdHO1FBQ0ksc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBR3hDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBQ0gsMkJBQUM7QUFBRCxDQUFDLEFBekNELElBeUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlzdEZpbHRlck1vZGVsIH0gZnJvbSAnLi4vbGlzdC1maWx0ZXJzL2ZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBMaXN0U2VhcmNoTW9kZWwgfSBmcm9tICcuL3N0YXRlL3NlYXJjaC9zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgTGlzdFNvcnRNb2RlbCB9IGZyb20gJy4vc3RhdGUvc29ydC9zb3J0Lm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIExpc3REYXRhUmVxdWVzdE1vZGVsIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGZ1bmN0aW9uIHRvIGRldGVybWluZSB3aGV0aGVyIGl0ZW1zIGFyZSBmaWx0ZXJlZC5cbiAgICogVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIHVzaW5nIGFuIGluLW1lbW9yeSBkYXRhIHByb3ZpZGVyLlxuICAgKi9cbiAgcHVibGljIGZpbHRlcnM6IExpc3RGaWx0ZXJNb2RlbFtdO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcGFnZS5cbiAgICovXG4gIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuICAgKi9cbiAgcHVibGljIHBhZ2VOdW1iZXI6IG51bWJlcjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGZ1bmN0aW9uIHRvIGR5bmFtaWNhbGx5IG1hbmFnZSB0aGUgZGF0YSBzb3VyY2Ugd2hlbiB1c2Vyc1xuICAgKiBjaGFuZ2UgdGhlIHRleHQgaW4gdGhlIGxpc3QgZmllbGQuIFRoZSBzZWFyY2ggZnVuY3Rpb24gbXVzdCByZXR1cm4gYW5cbiAgICogYXJyYXkgb3IgYSBwcm9taXNlIG9mIGFuIGFycmF5LiBUaGUgYHNlYXJjaGAgcHJvcGVydHkgaXMgcGFydGljdWxhcmx5IHVzZWZ1bFxuICAgKiB3aGVuIHRoZSBkYXRhIHNvdXJjZSBkb2VzIG5vdCBsaXZlIGluIHRoZSBzb3VyY2UgY29kZS5cbiAgICovXG4gIHB1YmxpYyBzZWFyY2g6IExpc3RTZWFyY2hNb2RlbDtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHNldCBvZiBmaWVsZHMgdG8gc29ydCBieS5cbiAgICovXG4gIHB1YmxpYyBzb3J0OiBMaXN0U29ydE1vZGVsO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgc2VhcmNoIGJhciBhbmQgZmlsdGVyIGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHB1YmxpYyBpc1Rvb2xiYXJEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmZpbHRlcnMgPSBkYXRhLmZpbHRlcnM7XG4gICAgICB0aGlzLnBhZ2VTaXplID0gZGF0YS5wYWdlU2l6ZTtcbiAgICAgIHRoaXMucGFnZU51bWJlciA9IGRhdGEucGFnZU51bWJlcjtcbiAgICAgIHRoaXMuc2VhcmNoID0gZGF0YS5zZWFyY2g7XG4gICAgICB0aGlzLnNvcnQgPSBkYXRhLnNvcnQ7XG4gICAgICB0aGlzLmlzVG9vbGJhckRpc2FibGVkID0gZGF0YS5pc1Rvb2xiYXJEaXNhYmxlZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
var ListDataResponseModel = /** @class */ (function () {
|
|
2
|
-
function ListDataResponseModel(data) {
|
|
3
|
-
if (data !== undefined) {
|
|
4
|
-
this.count = data.count;
|
|
5
|
-
this.items = data.items;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
return ListDataResponseModel;
|
|
9
|
-
}());
|
|
10
|
-
export { ListDataResponseModel };
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2xpc3QtYnVpbGRlci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvbGlzdC9saXN0LWRhdGEtcmVzcG9uc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUM7SUFXRSwrQkFBWSxJQUFVO1FBQ3BCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUNILDRCQUFDO0FBQUQsQ0FBQyxBQWpCRCxJQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExpc3RJdGVtTW9kZWxcbn0gZnJvbSAnQHNreXV4L2xpc3QtYnVpbGRlci1jb21tb24nO1xuXG4gZXhwb3J0IGNsYXNzIExpc3REYXRhUmVzcG9uc2VNb2RlbCB7XG4gICAvKipcbiAgICAqIFRoZSB0b3RhbCBudW1iZXIgb2YgcmVjb3JkcyBpbiB0aGUgbGlzdC5cbiAgICAqL1xuICAgcHVibGljIGNvdW50OiBudW1iZXI7XG4gICAvKipcbiAgICAqIEFuIGFycmF5IG9mIHRoZSBpdGVtcyByZXR1cm5lZC4gRm9yIGluZm9ybWF0aW9uIGFib3V0IGBMaXN0SXRlbU1vZGVsYCwgc2VlIHRoZVxuICAgICogW3NoYXJlZCBjbGFzc2VzIGZvciBsaXN0c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC1saXN0LWJ1aWxkZXItY29tbW9uL2RvY3MvbGlzdC1idWlsZGVyLWNvbW1vbikuXG4gICAgKi9cbiAgIHB1YmxpYyBpdGVtczogTGlzdEl0ZW1Nb2RlbFtdO1xuXG4gICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICB0aGlzLmNvdW50ID0gZGF0YS5jb3VudDtcbiAgICAgICB0aGlzLml0ZW1zID0gZGF0YS5pdGVtcztcbiAgICAgfVxuICAgfVxuIH1cbiJdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @internal
|
|
3
|
-
*/
|
|
4
|
-
var ListDataProvider = /** @class */ (function () {
|
|
5
|
-
function ListDataProvider(data) {
|
|
6
|
-
}
|
|
7
|
-
return ListDataProvider;
|
|
8
|
-
}());
|
|
9
|
-
export { ListDataProvider };
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kYXRhLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2xpc3QtYnVpbGRlci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvbGlzdC9saXN0LWRhdGEucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0E7O0dBRUc7QUFDSDtJQUNFLDBCQUFZLElBQTZCO0lBQUcsQ0FBQztJQUsvQyx1QkFBQztBQUFELENBQUMsQUFORCxJQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZVxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTGlzdERhdGFSZXF1ZXN0TW9kZWwgfSBmcm9tICcuL2xpc3QtZGF0YS1yZXF1ZXN0Lm1vZGVsJztcbmltcG9ydCB7IExpc3REYXRhUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4vbGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpc3REYXRhUHJvdmlkZXIge1xuICBjb25zdHJ1Y3RvcihkYXRhPzogT2JzZXJ2YWJsZTxBcnJheTxhbnk+Pikge31cblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0KHJlcXVlc3Q6IExpc3REYXRhUmVxdWVzdE1vZGVsKTogT2JzZXJ2YWJsZTxMaXN0RGF0YVJlc3BvbnNlTW9kZWw+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBjb3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj47XG59XG4iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
/**
|
|
3
|
-
* Provides a SKY UX-themed pagination control to display list data across multiple pages.
|
|
4
|
-
* @internal
|
|
5
|
-
*/
|
|
6
|
-
var ListPagingComponent = /** @class */ (function () {
|
|
7
|
-
function ListPagingComponent(state, dispatcher) {
|
|
8
|
-
this.initialized = new BehaviorSubject(false);
|
|
9
|
-
this.state = state;
|
|
10
|
-
this.dispatcher = dispatcher;
|
|
11
|
-
}
|
|
12
|
-
return ListPagingComponent;
|
|
13
|
-
}());
|
|
14
|
-
export { ListPagingComponent };
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L2xpc3QtYnVpbGRlci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvbGlzdC9saXN0LXBhZ2luZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDaEIsTUFBTSxNQUFNLENBQUM7QUFLZDs7O0dBR0c7QUFDSDtJQUtFLDZCQUFZLEtBQWdCLEVBQUUsVUFBK0I7UUFKbkQsZ0JBQVcsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFLM0UsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUNILDBCQUFDO0FBQUQsQ0FBQyxBQVRELElBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3Rcbn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IExpc3RTdGF0ZSB9IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5zdGF0ZS1ub2RlJztcbmltcG9ydCB7IExpc3RTdGF0ZURpc3BhdGNoZXIgfSBmcm9tICcuL3N0YXRlL2xpc3Qtc3RhdGUucnhzdGF0ZSc7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBTS1kgVVgtdGhlbWVkIHBhZ2luYXRpb24gY29udHJvbCB0byBkaXNwbGF5IGxpc3QgZGF0YSBhY3Jvc3MgbXVsdGlwbGUgcGFnZXMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpc3RQYWdpbmdDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcm90ZWN0ZWQgc3RhdGU6IExpc3RTdGF0ZTtcbiAgcHJvdGVjdGVkIGRpc3BhdGNoZXI6IExpc3RTdGF0ZURpc3BhdGNoZXI7XG5cbiAgY29uc3RydWN0b3Ioc3RhdGU6IExpc3RTdGF0ZSwgZGlzcGF0Y2hlcjogTGlzdFN0YXRlRGlzcGF0Y2hlcikge1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICB9XG59XG4iXX0=
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { distinctUntilChanged, map as observableMap } from 'rxjs/operators';
|
|
2
|
-
var idIndex = 0;
|
|
3
|
-
/**
|
|
4
|
-
* @internal
|
|
5
|
-
*/
|
|
6
|
-
var ListViewComponent = /** @class */ (function () {
|
|
7
|
-
function ListViewComponent(state, defaultName) {
|
|
8
|
-
var _this = this;
|
|
9
|
-
this.viewId = "sky-list-view-cmp-" + ++idIndex;
|
|
10
|
-
this.state = state;
|
|
11
|
-
this.viewName = defaultName;
|
|
12
|
-
this.hasToolbar = this.state.pipe(observableMap(function (s) { return s.toolbar.exists; }));
|
|
13
|
-
this.active = this.state.pipe(observableMap(function (s) { return s.views.active === _this.viewId; }));
|
|
14
|
-
this.active.pipe(distinctUntilChanged()).subscribe(function (isActive) { return isActive ? _this.onViewActive() : _this.onViewInactive(); });
|
|
15
|
-
}
|
|
16
|
-
Object.defineProperty(ListViewComponent.prototype, "id", {
|
|
17
|
-
get: function () {
|
|
18
|
-
return this.viewId;
|
|
19
|
-
},
|
|
20
|
-
enumerable: true,
|
|
21
|
-
configurable: true
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(ListViewComponent.prototype, "label", {
|
|
24
|
-
get: function () {
|
|
25
|
-
return this.viewName;
|
|
26
|
-
},
|
|
27
|
-
enumerable: true,
|
|
28
|
-
configurable: true
|
|
29
|
-
});
|
|
30
|
-
/* istanbul ignore next */
|
|
31
|
-
ListViewComponent.prototype.onViewActive = function () {
|
|
32
|
-
};
|
|
33
|
-
ListViewComponent.prototype.onViewInactive = function () {
|
|
34
|
-
};
|
|
35
|
-
return ListViewComponent;
|
|
36
|
-
}());
|
|
37
|
-
export { ListViewComponent };
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9saXN0LWJ1aWxkZXIvIiwic291cmNlcyI6WyJtb2R1bGVzL2xpc3QvbGlzdC12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLEdBQUcsSUFBSSxhQUFhLEVBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFLeEIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBRWhCOztHQUVHO0FBQ0g7SUFTRSwyQkFBWSxLQUFnQixFQUFFLFdBQW1CO1FBQWpELGlCQWlCQztRQW5CTyxXQUFNLEdBQVcsdUJBQXFCLEVBQUUsT0FBUyxDQUFDO1FBR3hELElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO1FBRTVCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQy9CLGFBQWEsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFoQixDQUFnQixDQUFDLENBQ3JDLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMzQixhQUFhLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFJLENBQUMsTUFBTSxFQUE5QixDQUE4QixDQUFDLENBQ25ELENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDZCxvQkFBb0IsRUFBRSxDQUN2QixDQUFDLFNBQVMsQ0FDVCxVQUFBLFFBQVEsSUFBSSxPQUFBLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsY0FBYyxFQUFFLEVBQXRELENBQXNELENBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQUksaUNBQUU7YUFBTjtZQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQUVELHNCQUFJLG9DQUFLO2FBQVQ7WUFDRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7SUFFRCwwQkFBMEI7SUFDbkIsd0NBQVksR0FBbkI7SUFDQSxDQUFDO0lBRU0sMENBQWMsR0FBckI7SUFDQSxDQUFDO0lBQ0gsd0JBQUM7QUFBRCxDQUFDLEFBMUNELElBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZVxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCBhcyBvYnNlcnZhYmxlTWFwXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTGlzdFN0YXRlIH0gZnJvbSAnLi9zdGF0ZS9saXN0LXN0YXRlLnN0YXRlLW5vZGUnO1xuaW1wb3J0IHsgU2t5TGlzdENvbXBvbmVudCB9IGZyb20gJy4uL2xpc3QvbGlzdC5jb21wb25lbnQnO1xuXG5sZXQgaWRJbmRleCA9IDA7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0Vmlld0NvbXBvbmVudCB7XG4gIHB1YmxpYyBhY3RpdmU6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJvdGVjdGVkIHZpZXdOYW1lOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBzdGF0ZTogTGlzdFN0YXRlO1xuICBwcm90ZWN0ZWQgbGlzdDogU2t5TGlzdENvbXBvbmVudDtcbiAgcHJvdGVjdGVkIGhhc1Rvb2xiYXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHByaXZhdGUgdmlld0lkOiBzdHJpbmcgPSBgc2t5LWxpc3Qtdmlldy1jbXAtJHsrK2lkSW5kZXh9YDtcblxuICBjb25zdHJ1Y3RvcihzdGF0ZTogTGlzdFN0YXRlLCBkZWZhdWx0TmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIHRoaXMudmlld05hbWUgPSBkZWZhdWx0TmFtZTtcblxuICAgIHRoaXMuaGFzVG9vbGJhciA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG9ic2VydmFibGVNYXAocyA9PiBzLnRvb2xiYXIuZXhpc3RzKVxuICAgICk7XG5cbiAgICB0aGlzLmFjdGl2ZSA9IHRoaXMuc3RhdGUucGlwZShcbiAgICAgIG9ic2VydmFibGVNYXAocyA9PiBzLnZpZXdzLmFjdGl2ZSA9PT0gdGhpcy52aWV3SWQpXG4gICAgKTtcblxuICAgIHRoaXMuYWN0aXZlLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICBpc0FjdGl2ZSA9PiBpc0FjdGl2ZSA/IHRoaXMub25WaWV3QWN0aXZlKCkgOiB0aGlzLm9uVmlld0luYWN0aXZlKClcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlkKCkge1xuICAgIHJldHVybiB0aGlzLnZpZXdJZDtcbiAgfVxuXG4gIGdldCBsYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy52aWV3TmFtZTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBvblZpZXdBY3RpdmUoKSB7XG4gIH1cblxuICBwdWJsaWMgb25WaWV3SW5hY3RpdmUoKSB7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { combineLatest as observableCombineLatest, of as observableOf, Subject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged, flatMap, map as observableMap, skip, take, takeUntil } from 'rxjs/operators';
|
|
4
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
|
|
5
|
-
import { getValue } from '@skyux/list-builder-common';
|
|
6
|
-
import { ListItemsLoadAction } from './state/items/load.action';
|
|
7
|
-
import { ListItemsSetLoadingAction } from './state/items/set-loading.action';
|
|
8
|
-
import { ListSelectedLoadAction } from './state/selected/load.action';
|
|
9
|
-
import { ListSelectedSetLoadingAction } from './state/selected/set-loading.action';
|
|
10
|
-
import { ListSortModel } from './state/sort/sort.model';
|
|
11
|
-
import { ListSortSetFieldSelectorsAction } from './state/sort/set-field-selectors.action';
|
|
12
|
-
import { ListDataRequestModel } from './list-data-request.model';
|
|
13
|
-
import { ListDataResponseModel } from './list-data-response.model';
|
|
14
|
-
import { SkyListInMemoryDataProvider } from '../list-data-provider-in-memory/list-data-in-memory.provider';
|
|
15
|
-
import { ListState } from './state/list-state.state-node';
|
|
16
|
-
import { ListStateDispatcher } from './state/list-state.rxstate';
|
|
17
|
-
import { isObservable, ListItemModel } from '@skyux/list-builder-common';
|
|
18
|
-
import { ListViewComponent } from './list-view.component';
|
|
19
|
-
import { ListPagingSetPageNumberAction } from './state/paging/set-page-number.action';
|
|
20
|
-
import { ListViewsLoadAction } from './state/views/load.action';
|
|
21
|
-
import { ListViewsSetActiveAction } from './state/views/set-active.action';
|
|
22
|
-
import { ListViewModel } from './state/views/view.model';
|
|
23
|
-
var idIndex = 0;
|
|
24
|
-
var SkyListComponent = /** @class */ (function () {
|
|
25
|
-
function SkyListComponent(state, dispatcher) {
|
|
26
|
-
this.state = state;
|
|
27
|
-
this.dispatcher = dispatcher;
|
|
28
|
-
this.id = "sky-list-cmp-" + ++idIndex;
|
|
29
|
-
/**
|
|
30
|
-
* Specifies the data to display. The list component requires this property or the
|
|
31
|
-
* `dataProvider` property. For checklist or multiselect grids, each row requires an
|
|
32
|
-
* `id` property to manage selected items with the `selectedIds` input and the
|
|
33
|
-
* `selectedIdsChange` event. If you do not provide an `id`, the list automatically
|
|
34
|
-
* generates one. To update data in your view outside of a `dataProvider`, you must use
|
|
35
|
-
* an observable instead of a static array.
|
|
36
|
-
*/
|
|
37
|
-
this.data = [];
|
|
38
|
-
/**
|
|
39
|
-
* Specifies a set of filters to apply to list data.
|
|
40
|
-
* These filters create a filter summary when the list includes the
|
|
41
|
-
* [`sky-list-filter-summary`](https://developer.blackbaud.com/skyux/components/list/filters)
|
|
42
|
-
* component.
|
|
43
|
-
*/
|
|
44
|
-
this.appliedFilters = [];
|
|
45
|
-
/**
|
|
46
|
-
* For list views that support item selection, emits the selected entries.
|
|
47
|
-
*/
|
|
48
|
-
this.selectedIdsChange = new EventEmitter();
|
|
49
|
-
/**
|
|
50
|
-
* Emits the filters applied to the list.
|
|
51
|
-
*/
|
|
52
|
-
this.appliedFiltersChange = new EventEmitter();
|
|
53
|
-
/* tslint:enable */
|
|
54
|
-
this.dataFirstLoad = false;
|
|
55
|
-
this.lastSelectedIds = [];
|
|
56
|
-
this.lastFilters = [];
|
|
57
|
-
this.ngUnsubscribe = new Subject();
|
|
58
|
-
}
|
|
59
|
-
SkyListComponent.prototype.ngAfterContentInit = function () {
|
|
60
|
-
var _this = this;
|
|
61
|
-
if (this.data && this.dataProvider && this.initialTotal) {
|
|
62
|
-
this.dataFirstLoad = true;
|
|
63
|
-
}
|
|
64
|
-
if (this.listViews.length > 0) {
|
|
65
|
-
var defaultView = (this.defaultView === undefined) ? this.listViews.first : this.defaultView;
|
|
66
|
-
this.dispatcher.next(new ListViewsLoadAction(this.listViews.map(function (v) { return new ListViewModel(v.id, v.label); })));
|
|
67
|
-
// activate the default view
|
|
68
|
-
this.dispatcher.next(new ListViewsSetActiveAction(defaultView.id));
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
// set sort fields
|
|
74
|
-
getValue(this.sortFields, function (sortFields) {
|
|
75
|
-
var sortArray;
|
|
76
|
-
if (!Array.isArray(sortFields) && sortFields) {
|
|
77
|
-
sortArray = [sortFields];
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
sortArray = sortFields;
|
|
81
|
-
}
|
|
82
|
-
_this.dispatcher.next(new ListSortSetFieldSelectorsAction(sortArray || []));
|
|
83
|
-
});
|
|
84
|
-
this.displayedItems.subscribe(function (result) {
|
|
85
|
-
_this.dispatcher.next(new ListItemsSetLoadingAction());
|
|
86
|
-
_this.dispatcher.next(new ListItemsLoadAction(result.items, true, true, result.count));
|
|
87
|
-
});
|
|
88
|
-
// Watch for selection changes.
|
|
89
|
-
this.state
|
|
90
|
-
.pipe(observableMap(function (current) { return current.selected; }), takeUntil(this.ngUnsubscribe), distinctUntilChanged())
|
|
91
|
-
.subscribe(function (selected) {
|
|
92
|
-
// Update lastSelectedIds to help us retain user selections.
|
|
93
|
-
var selectedIdsList = [];
|
|
94
|
-
selected.item.selectedIdMap.forEach(function (value, key) {
|
|
95
|
-
if (value === true) {
|
|
96
|
-
selectedIdsList.push(key);
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
// If changes are distinct, emit selectedIdsChange.
|
|
100
|
-
var distinctChanges = !_this.arraysEqual(_this.lastSelectedIds, selectedIdsList);
|
|
101
|
-
if (_this.selectedIdsChange.observers.length > 0 && distinctChanges) {
|
|
102
|
-
_this.selectedIdsChange.emit(selected.item.selectedIdMap);
|
|
103
|
-
}
|
|
104
|
-
_this.lastSelectedIds = selectedIdsList;
|
|
105
|
-
});
|
|
106
|
-
if (this.appliedFiltersChange.observers.length > 0) {
|
|
107
|
-
this.state
|
|
108
|
-
.pipe(observableMap(function (current) { return current.filters; }), takeUntil(this.ngUnsubscribe), skip(1))
|
|
109
|
-
.subscribe(function (filters) {
|
|
110
|
-
/**
|
|
111
|
-
* We are doing this instead of a distinctUntilChange due to memory allocation issues
|
|
112
|
-
* with the javascript array. To fix fully the array should be changed to an object in
|
|
113
|
-
* a breaking change.
|
|
114
|
-
*/
|
|
115
|
-
if (!_this.arraysEqual(filters, _this.lastFilters)) {
|
|
116
|
-
_this.lastFilters = filters.slice(0);
|
|
117
|
-
_this.appliedFiltersChange.emit(filters);
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
SkyListComponent.prototype.ngOnChanges = function (changes) {
|
|
123
|
-
var _this = this;
|
|
124
|
-
if (changes['appliedFilters'] &&
|
|
125
|
-
changes['appliedFilters'].currentValue !== changes['appliedFilters'].previousValue) {
|
|
126
|
-
this.state.pipe(take(1)).subscribe(function (currentState) {
|
|
127
|
-
if (currentState.paging.pageNumber && currentState.paging.pageNumber !== 1) {
|
|
128
|
-
_this.dispatcher.next(new ListPagingSetPageNumberAction(Number(1)));
|
|
129
|
-
}
|
|
130
|
-
_this.dispatcher.filtersUpdate(_this.appliedFilters);
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
if (changes['selectedIds']) {
|
|
134
|
-
// Only send selection changes to dispatcher if changes are distinct.
|
|
135
|
-
var newSelectedIds = changes['selectedIds'].currentValue;
|
|
136
|
-
if (!this.arraysEqual(newSelectedIds, this.lastSelectedIds)) {
|
|
137
|
-
this.dispatcher.setSelected(newSelectedIds, true, true);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
SkyListComponent.prototype.ngOnDestroy = function () {
|
|
142
|
-
this.ngUnsubscribe.next();
|
|
143
|
-
this.ngUnsubscribe.complete();
|
|
144
|
-
};
|
|
145
|
-
SkyListComponent.prototype.refreshDisplayedItems = function () {
|
|
146
|
-
var _this = this;
|
|
147
|
-
this.displayedItems.pipe(take(1)).subscribe(function (result) {
|
|
148
|
-
_this.dispatcher.next(new ListItemsSetLoadingAction());
|
|
149
|
-
_this.dispatcher.next(new ListItemsLoadAction(result.items, true, true, result.count));
|
|
150
|
-
});
|
|
151
|
-
};
|
|
152
|
-
Object.defineProperty(SkyListComponent.prototype, "displayedItems", {
|
|
153
|
-
get: function () {
|
|
154
|
-
var _this = this;
|
|
155
|
-
if (!this.data && !this.dataProvider) {
|
|
156
|
-
throw new Error('List requires data or dataProvider to be set.');
|
|
157
|
-
}
|
|
158
|
-
var data = this.data;
|
|
159
|
-
if (!isObservable(data)) {
|
|
160
|
-
data = observableOf(this.data);
|
|
161
|
-
}
|
|
162
|
-
if (!this.dataProvider) {
|
|
163
|
-
this.dataProvider = new SkyListInMemoryDataProvider(data, this.searchFunction);
|
|
164
|
-
}
|
|
165
|
-
var selectedIds = this.selectedIds || observableOf([]);
|
|
166
|
-
if (!isObservable(selectedIds)) {
|
|
167
|
-
selectedIds = observableOf(selectedIds);
|
|
168
|
-
}
|
|
169
|
-
var selectedChanged = false;
|
|
170
|
-
// This subject is used to cancel previous request to the list's data provider when a new change
|
|
171
|
-
// to the list's state occurs. In a future breaking change this should be replaced or coupled
|
|
172
|
-
// with adding a debounce time to the Observable which watches for state changes.
|
|
173
|
-
var cancelLastRequest = new Subject();
|
|
174
|
-
return observableCombineLatest([
|
|
175
|
-
this.state.pipe(observableMap(function (s) { return s.filters; }), distinctUntilChanged()),
|
|
176
|
-
this.state.pipe(observableMap(function (s) { return s.search; }), distinctUntilChanged()),
|
|
177
|
-
this.state.pipe(observableMap(function (s) { return s.sort.fieldSelectors; }), distinctUntilChanged()),
|
|
178
|
-
this.state.pipe(observableMap(function (s) { return s.paging.itemsPerPage; }), distinctUntilChanged()),
|
|
179
|
-
this.state.pipe(observableMap(function (s) { return s.paging.pageNumber; }), distinctUntilChanged()),
|
|
180
|
-
this.state.pipe(observableMap(function (s) { return s.toolbar.disabled; }), distinctUntilChanged()),
|
|
181
|
-
selectedIds.pipe(distinctUntilChanged(), observableMap(function (selected) {
|
|
182
|
-
selectedChanged = true;
|
|
183
|
-
return selected;
|
|
184
|
-
})),
|
|
185
|
-
data.pipe(distinctUntilChanged())
|
|
186
|
-
], function (filters, search, sortFieldSelectors, itemsPerPage, pageNumber, isToolbarDisabled, selected, itemsData) {
|
|
187
|
-
cancelLastRequest.next();
|
|
188
|
-
cancelLastRequest.complete();
|
|
189
|
-
if (selectedChanged) {
|
|
190
|
-
_this.dispatcher.next(new ListSelectedSetLoadingAction());
|
|
191
|
-
_this.dispatcher.next(new ListSelectedLoadAction(selected));
|
|
192
|
-
_this.dispatcher.next(new ListSelectedSetLoadingAction(false));
|
|
193
|
-
selectedChanged = false;
|
|
194
|
-
}
|
|
195
|
-
var response;
|
|
196
|
-
if (_this.dataFirstLoad) {
|
|
197
|
-
_this.dataFirstLoad = false;
|
|
198
|
-
var initialItems = itemsData.map(function (d) { return new ListItemModel(d.id || "sky-list-item-model-" + ++idIndex, d); });
|
|
199
|
-
response = observableOf(new ListDataResponseModel({
|
|
200
|
-
count: _this.initialTotal,
|
|
201
|
-
items: initialItems
|
|
202
|
-
})).pipe(takeUntil(cancelLastRequest));
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
response = _this.dataProvider.get(new ListDataRequestModel({
|
|
206
|
-
filters: filters,
|
|
207
|
-
pageSize: itemsPerPage,
|
|
208
|
-
pageNumber: pageNumber,
|
|
209
|
-
search: search,
|
|
210
|
-
sort: new ListSortModel({ fieldSelectors: sortFieldSelectors }),
|
|
211
|
-
isToolbarDisabled: isToolbarDisabled
|
|
212
|
-
})).pipe(takeUntil(cancelLastRequest));
|
|
213
|
-
}
|
|
214
|
-
return response;
|
|
215
|
-
})
|
|
216
|
-
.pipe(takeUntil(this.ngUnsubscribe),
|
|
217
|
-
// Retain user selections from previous state.
|
|
218
|
-
// This is only necessary for grids component (based on item.isSelected).
|
|
219
|
-
observableMap(function (response) {
|
|
220
|
-
return response.pipe(observableMap(function (listDataResponseModel) {
|
|
221
|
-
return new ListDataResponseModel({
|
|
222
|
-
count: listDataResponseModel.count,
|
|
223
|
-
items: _this.getItemsAndRetainSelections(listDataResponseModel.items, _this.lastSelectedIds)
|
|
224
|
-
});
|
|
225
|
-
}));
|
|
226
|
-
}), flatMap(function (value) { return value; }));
|
|
227
|
-
},
|
|
228
|
-
enumerable: true,
|
|
229
|
-
configurable: true
|
|
230
|
-
});
|
|
231
|
-
Object.defineProperty(SkyListComponent.prototype, "selectedItems", {
|
|
232
|
-
get: function () {
|
|
233
|
-
return observableCombineLatest(this.state.pipe(observableMap(function (current) { return current.items.items; }), distinctUntilChanged()), this.state.pipe(observableMap(function (current) { return current.selected; }), distinctUntilChanged()), function (items, selected) {
|
|
234
|
-
return items.filter(function (i) { return selected.item.selectedIdMap.get(i.id); });
|
|
235
|
-
}).pipe(takeUntil(this.ngUnsubscribe));
|
|
236
|
-
},
|
|
237
|
-
enumerable: true,
|
|
238
|
-
configurable: true
|
|
239
|
-
});
|
|
240
|
-
Object.defineProperty(SkyListComponent.prototype, "lastUpdate", {
|
|
241
|
-
get: function () {
|
|
242
|
-
return this.state
|
|
243
|
-
.pipe(takeUntil(this.ngUnsubscribe), observableMap(function (s) {
|
|
244
|
-
return s.items.lastUpdate ? new Date(s.items.lastUpdate) : undefined;
|
|
245
|
-
}));
|
|
246
|
-
},
|
|
247
|
-
enumerable: true,
|
|
248
|
-
configurable: true
|
|
249
|
-
});
|
|
250
|
-
Object.defineProperty(SkyListComponent.prototype, "views", {
|
|
251
|
-
get: function () {
|
|
252
|
-
return this.listViews.toArray();
|
|
253
|
-
},
|
|
254
|
-
enumerable: true,
|
|
255
|
-
configurable: true
|
|
256
|
-
});
|
|
257
|
-
Object.defineProperty(SkyListComponent.prototype, "itemCount", {
|
|
258
|
-
get: function () {
|
|
259
|
-
return this.dataProvider.count();
|
|
260
|
-
},
|
|
261
|
-
enumerable: true,
|
|
262
|
-
configurable: true
|
|
263
|
-
});
|
|
264
|
-
SkyListComponent.prototype.getItemsAndRetainSelections = function (newList, selectedIds) {
|
|
265
|
-
var updatedListModel = newList.slice();
|
|
266
|
-
updatedListModel.forEach(function (item) {
|
|
267
|
-
item.isSelected = selectedIds.indexOf(item.id) > -1 ? true : false;
|
|
268
|
-
});
|
|
269
|
-
return updatedListModel;
|
|
270
|
-
};
|
|
271
|
-
SkyListComponent.prototype.arraysEqual = function (arrayA, arrayB) {
|
|
272
|
-
/* istanbul ignore next */
|
|
273
|
-
if (arrayA === arrayB) {
|
|
274
|
-
return true;
|
|
275
|
-
}
|
|
276
|
-
if (arrayA === undefined || arrayB === undefined) {
|
|
277
|
-
return false;
|
|
278
|
-
}
|
|
279
|
-
if (arrayA.length !== arrayB.length) {
|
|
280
|
-
return false;
|
|
281
|
-
}
|
|
282
|
-
for (var i = 0; i < arrayA.length; ++i) {
|
|
283
|
-
if (arrayA[i] !== arrayB[i]) {
|
|
284
|
-
return false;
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
return true;
|
|
288
|
-
};
|
|
289
|
-
SkyListComponent.ctorParameters = function () { return [
|
|
290
|
-
{ type: ListState },
|
|
291
|
-
{ type: ListStateDispatcher }
|
|
292
|
-
]; };
|
|
293
|
-
__decorate([
|
|
294
|
-
Input()
|
|
295
|
-
], SkyListComponent.prototype, "data", void 0);
|
|
296
|
-
__decorate([
|
|
297
|
-
Input()
|
|
298
|
-
], SkyListComponent.prototype, "dataProvider", void 0);
|
|
299
|
-
__decorate([
|
|
300
|
-
Input()
|
|
301
|
-
], SkyListComponent.prototype, "defaultView", void 0);
|
|
302
|
-
__decorate([
|
|
303
|
-
Input()
|
|
304
|
-
], SkyListComponent.prototype, "initialTotal", void 0);
|
|
305
|
-
__decorate([
|
|
306
|
-
Input()
|
|
307
|
-
], SkyListComponent.prototype, "selectedIds", void 0);
|
|
308
|
-
__decorate([
|
|
309
|
-
Input()
|
|
310
|
-
], SkyListComponent.prototype, "sortFields", void 0);
|
|
311
|
-
__decorate([
|
|
312
|
-
Input()
|
|
313
|
-
], SkyListComponent.prototype, "appliedFilters", void 0);
|
|
314
|
-
__decorate([
|
|
315
|
-
Output()
|
|
316
|
-
], SkyListComponent.prototype, "selectedIdsChange", void 0);
|
|
317
|
-
__decorate([
|
|
318
|
-
Output()
|
|
319
|
-
], SkyListComponent.prototype, "appliedFiltersChange", void 0);
|
|
320
|
-
__decorate([
|
|
321
|
-
Input('search')
|
|
322
|
-
], SkyListComponent.prototype, "searchFunction", void 0);
|
|
323
|
-
__decorate([
|
|
324
|
-
ContentChildren(ListViewComponent)
|
|
325
|
-
], SkyListComponent.prototype, "listViews", void 0);
|
|
326
|
-
SkyListComponent = __decorate([
|
|
327
|
-
Component({
|
|
328
|
-
selector: 'sky-list',
|
|
329
|
-
template: '<ng-content></ng-content>',
|
|
330
|
-
providers: [ListState, ListStateDispatcher],
|
|
331
|
-
changeDetection: ChangeDetectionStrategy.OnPush
|
|
332
|
-
})
|
|
333
|
-
], SkyListComponent);
|
|
334
|
-
return SkyListComponent;
|
|
335
|
-
}());
|
|
336
|
-
export { SkyListComponent };
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvbGlzdC1idWlsZGVyLyIsInNvdXJjZXMiOlsibW9kdWxlcy9saXN0L2xpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsYUFBYSxJQUFJLHVCQUF1QixFQUV4QyxFQUFFLElBQUksWUFBWSxFQUNsQixPQUFPLEVBQ1IsTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxHQUFHLElBQUksYUFBYSxFQUNwQixJQUFJLEVBQ0osSUFBSSxFQUNKLFNBQVMsRUFDVixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFLUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBRUwsUUFBUSxFQUNULE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUNMLG1CQUFtQixFQUNwQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCx5QkFBeUIsRUFDMUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxQyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUNMLDRCQUE0QixFQUM3QixNQUFNLHFDQUFxQyxDQUFDO0FBTTdDLE9BQU8sRUFDTCxhQUFhLEVBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wsK0JBQStCLEVBQ2hDLE1BQU0seUNBQXlDLENBQUM7QUFNakQsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFDTCxxQkFBcUIsRUFDdEIsTUFBTSw0QkFBNEIsQ0FBQztBQU1wQyxPQUFPLEVBQ0wsMkJBQTJCLEVBQzVCLE1BQU0sOERBQThELENBQUM7QUFFdEUsT0FBTyxF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QU41QixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsVUFBVTtZQUNwQixRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLFNBQVMsRUFBRSxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQztZQUMzQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtTQUNoRCxDQUFDO09BQ1csZ0JBQWdCLENBd1g1QjtJQUFELHVCQUFDO0NBQUEsQUF4WEQsSUF3WEM7U0F4WFksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCBhcyBvYnNlcnZhYmxlQ29tYmluZUxhdGVzdCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YgYXMgb2JzZXJ2YWJsZU9mLFxuICBTdWJqZWN0XG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmxhdE1hcCxcbiAgbWFwIGFzIG9ic2VydmFibGVNYXAsXG4gIHNraXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBc3luY0l0ZW0sXG4gIGdldFZhbHVlXG59IGZyb20gJ0Bza3l1eC9saXN0LWJ1aWxkZXItY29tbW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdEl0ZW1zTG9hZEFjdGlvblxufSBmcm9tICcuL3N0YXRlL2l0ZW1zL2xvYWQuYWN0aW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdEl0ZW1zU2V0TG9hZGluZ0FjdGlvblxufSBmcm9tICcuL3N0YXRlL2l0ZW1zL3NldC1sb2FkaW5nLmFjdGlvbic7XG5cbmltcG9ydCB7XG4gIExpc3RTZWxlY3RlZExvYWRBY3Rpb25cbn0gZnJvbSAnLi9zdGF0ZS9zZWxlY3RlZC9sb2FkLmFjdGlvbic7XG5cbmltcG9ydCB7XG4gIExpc3RTZWxlY3RlZFNldExvYWRpbmdBY3Rpb25cbn0gZnJvbSAnLi9zdGF0ZS9zZWxlY3RlZC9zZXQtbG9hZGluZy5hY3Rpb24nO1xuXG5pbXBvcnQge1xuICBMaXN0U2VsZWN0ZWRNb2RlbFxufSBmcm9tICcuL3N0YXRlL3NlbGVjdGVkL3NlbGVjdGVkLm1vZGVsJztcblxuaW1wb3J0IHtcbiAgTGlzdFNvcnRNb2RlbFxufSBmcm9tICcuL3N0YXRlL3NvcnQvc29ydC5tb2RlbCc7XG5cbmltcG9ydCB7XG4gIExpc3RTb3J0U2V0RmllbGRTZWxlY3RvcnNBY3Rpb25cbn0gZnJvbSAnLi9zdGF0ZS9zb3J0L3NldC1maWVsZC1zZWxlY3RvcnMuYWN0aW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdEZpbHRlck1vZGVsXG59IGZyb20gJy4uL2xpc3QtZmlsdGVycy9maWx0ZXIubW9kZWwnO1xuXG5pbXBvcnQge1xuICBMaXN0RGF0YVJlcXVlc3RNb2RlbFxufSBmcm9tICcuL2xpc3QtZGF0YS1yZXF1ZXN0Lm1vZGVsJztcblxuaW1wb3J0IHtcbiAgTGlzdERhdGFSZXNwb25zZU1vZGVsXG59IGZyb20gJy4vbGlzdC1kYXRhLXJlc3BvbnNlLm1vZGVsJztcblxuaW1wb3J0IHtcbiAgTGlzdERhdGFQcm92aWRlclxufSBmcm9tICcuL2xpc3QtZGF0YS5wcm92aWRlcic7XG5cbmltcG9ydCB7XG4gIFNreUxpc3RJbk1lbW9yeURhdGFQcm92aWRlclxufSBmcm9tICcuLi9saXN0LWRhdGEtcHJvdmlkZXItaW4tbWVtb3J5L2xpc3QtZGF0YS1pbi1tZW1vcnkucHJvdmlkZXInO1xuXG5pbXBvcnQge1xuICBMaXN0U3RhdGVcbn0gZnJvbSAnLi9zdGF0ZS9saXN0LXN0YXRlLnN0YXRlLW5vZGUnO1xuXG5pbXBvcnQge1xuICBMaXN0U3RhdGVEaXNwYXRjaGVyXG59IGZyb20gJy4vc3RhdGUvbGlzdC1zdGF0ZS5yeHN0YXRlJztcblxuaW1wb3J0IHtcbiAgaXNPYnNlcnZhYmxlLFxuICBMaXN0SXRlbU1vZGVsLFxuICBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFxufSBmcm9tICdAc2t5dXgvbGlzdC1idWlsZGVyLWNvbW1vbic7XG5cbmltcG9ydCB7XG4gIExpc3RWaWV3Q29tcG9uZW50XG59IGZyb20gJy4vbGlzdC12aWV3LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIExpc3RQYWdpbmdTZXRQYWdlTnVtYmVyQWN0aW9uXG59IGZyb20gJy4vc3RhdGUvcGFnaW5nL3NldC1wYWdlLW51bWJlci5hY3Rpb24nO1xuXG5pbXBvcnQge1xuICBMaXN0U2VhcmNoTW9kZWxcbn0gZnJvbSAnLi9zdGF0ZS9zZWFyY2gvc2VhcmNoLm1vZGVsJztcblxuaW1wb3J0IHtcbiAgTGlzdFZpZXdzTG9hZEFjdGlvblxufSBmcm9tICcuL3N0YXRlL3ZpZXdzL2xvYWQuYWN0aW9uJztcblxuaW1wb3J0IHtcbiAgTGlzdFZpZXdzU2V0QWN0aXZlQWN0aW9uXG59IGZyb20gJy4vc3RhdGUvdmlld3Mvc2V0LWFjdGl2ZS5hY3Rpb24nO1xuXG5pbXBvcnQge1xuICBMaXN0Vmlld01vZGVsXG59IGZyb20gJy4vc3RhdGUvdmlld3Mvdmlldy5tb2RlbCc7XG5cbmxldCBpZEluZGV4ID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWxpc3QnLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBwcm92aWRlcnM6IFtMaXN0U3RhdGUsIExpc3RTdGF0ZURpc3BhdGNoZXJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTa3lMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgaWQ6IHN0cmluZyA9IGBza3ktbGlzdC1jbXAtJHsrK2lkSW5kZXh9YDtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZGF0YSB0byBkaXNwbGF5LiBUaGUgbGlzdCBjb21wb25lbnQgcmVxdWlyZXMgdGhpcyBwcm9wZXJ0eSBvciB0aGVcbiAgICogYGRhdGFQcm92aWRlcmAgcHJvcGVydHkuIEZvciBjaGVja2xpc3Qgb3IgbXVsdGlzZWxlY3QgZ3JpZHMsIGVhY2ggcm93IHJlcXVpcmVzIGFuXG4gICAqIGBpZGAgcHJvcGVydHkgdG8gbWFuYWdlIHNlbGVjdGVkIGl0ZW1zIHdpdGggdGhlIGBzZWxlY3RlZElkc2AgaW5wdXQgYW5kIHRoZVxuICAgKiBgc2VsZWN0ZWRJZHNDaGFuZ2VgIGV2ZW50LiBJZiB5b3UgZG8gbm90IHByb3ZpZGUgYW4gYGlkYCwgdGhlIGxpc3QgYXV0b21hdGljYWxseVxuICAgKiBnZW5lcmF0ZXMgb25lLiBUbyB1cGRhdGUgZGF0YSBpbiB5b3VyIHZpZXcgb3V0c2lkZSBvZiBhIGBkYXRhUHJvdmlkZXJgLCB5b3UgbXVzdCB1c2VcbiAgICogYW4gb2JzZXJ2YWJsZSBpbnN0ZWFkIG9mIGEgc3RhdGljIGFycmF5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGE/OiBBcnJheTxhbnk+IHwgT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiA9IFtdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBkYXRhIHByb3ZpZGVyIHRvIG9idGFpbiB0aGUgZGF0YSB0byBkaXNwbGF5LiBUaGUgbGlzdCBjb21wb25lbnQgcmVxdWlyZXNcbiAgICogdGhpcyBwcm9wZXJ0eSBvciB0aGUgYGRhdGFgIHByb3BlcnR5LiBGb3IgbGlzdHMgdGhhdCB1c2UgYGRhdGFQcm92aWRlcmAgaW5zdGVhZCBvZiBgZGF0YWAsXG4gICAqIGNvbnN1bWVycyBhcmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGFsbCBgTGlzdERhdGFSZXF1ZXN0TW9kZWxgIHByb3BlcnRpZXMuXG4gICAqIEBkZWZhdWx0IFNreUxpc3RJbk1lbW9yeURhdGFQcm92aWRlclxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGFQcm92aWRlcj86IExpc3REYXRhUHJvdmlkZXI7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRlZmF1bHRWaWV3PzogTGlzdFZpZXdDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGZvciB0aGUgaW5pdGlhbCBkYXRhIHNldCB3aGVuIGluaXRpYWxpemVkLiBXaGVuXG4gICAqIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgZGF0YWAgYW5kIGBkYXRhUHJvdmlkZXJgLCBpdCBhbGxvd3MgYW4gaW5pdGlhbCBkYXRhIHRvIGJlXG4gICAqIHNldCB3aXRoIHRoZSBuZWVkIHRvIGNhbGwgdGhlIGBkYXRhUHJvdmlkZXJgLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGluaXRpYWxUb3RhbD86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgc2V0IG9mIElEcyBmb3IgdGhlIGl0ZW1zIHRvIHNlbGVjdCBpbiBhIGNoZWNrbGlzdCBvciBtdWx0aXNlbGVjdCBncmlkLlxuICAgKiBUaGUgSURzIG1hdGNoIHRoZSBgaWRgIHByb3BlcnRpZXMgb2YgdGhlIGBkYXRhYCBvYmplY3RzLiBJdGVtcyB3aXRoIElEcyB0aGF0IGFyZSBub3RcbiAgICogaW5jbHVkZWQgYXJlIGRlLXNlbGVjdGVkIGluIHRoZSBjaGVja2xpc3Qgb3IgbXVsdGlzZWxlY3QgZ3JpZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZElkcz86IEFycmF5PHN0cmluZz4gfCBPYnNlcnZhYmxlPEFycmF5PHN0cmluZz4+O1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBzZXQgb2YgZmllbGRzIHRvIHNvcnQgYnkuIElmIGFycmF5IG9mIGZpZWxkcyB0aGVuIHNvcnRlZCBieSBvcmRlciBvZiBhcnJheS5cbiAgICogRm9yIGluZm9ybWF0aW9uIGFib3V0IGBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbGAsIHNlZSB0aGVcbiAgICogW3NoYXJlZCBjbGFzc2VzIGZvciBsaXN0c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC1saXN0LWJ1aWxkZXItY29tbW9uL2RvY3MvbGlzdC1idWlsZGVyLWNvbW1vbikuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc29ydEZpZWxkcz86IExpc3RTb3J0RmllbGRTZWxlY3Rvck1vZGVsIHxcbiAgICBBcnJheTxMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbD4gfFxuICAgIE9ic2VydmFibGU8QXJyYXk8TGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWw+PiB8XG4gICAgT2JzZXJ2YWJsZTxMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbD47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHNldCBvZiBmaWx0ZXJzIHRvIGFwcGx5IHRvIGxpc3QgZGF0YS5cbiAgICogVGhlc2UgZmlsdGVycyBjcmVhdGUgYSBmaWx0ZXIgc3VtbWFyeSB3aGVuIHRoZSBsaXN0IGluY2x1ZGVzIHRoZVxuICAgKiBbYHNreS1saXN0LWZpbHRlci1zdW1tYXJ5YF0oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2xpc3QvZmlsdGVycylcbiAgICogY29tcG9uZW50LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFwcGxpZWRGaWx0ZXJzOiBBcnJheTxMaXN0RmlsdGVyTW9kZWw+ID0gW107XG5cbiAgLyoqXG4gICAqIEZvciBsaXN0IHZpZXdzIHRoYXQgc3VwcG9ydCBpdGVtIHNlbGVjdGlvbiwgZW1pdHMgdGhlIHNlbGVjdGVkIGVudHJpZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkSWRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNYXA8c3RyaW5nLCBib29sZWFuPj4oKTtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgbGlzdC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYXBwbGllZEZpbHRlcnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PExpc3RGaWx0ZXJNb2RlbD4+KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGZ1bmN0aW9uIHRvIGFwcGx5IGFzIGEgZ2xvYmFsIHNvcnQgb24gdGhlIGxpc3QuXG4gICAqL1xuICAvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuICBASW5wdXQoJ3NlYXJjaCcpXG4gIHB1YmxpYyBzZWFyY2hGdW5jdGlvbjogKGRhdGE6IGFueSwgc2VhcmNoVGV4dDogc3RyaW5nKSA9PiBib29sZWFuO1xuICAvKiB0c2xpbnQ6ZW5hYmxlICovXG5cbiAgcHJpdmF0ZSBkYXRhRmlyc3RMb2FkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0Vmlld0NvbXBvbmVudClcbiAgcHJpdmF0ZSBsaXN0Vmlld3M6IFF1ZXJ5TGlzdDxMaXN0Vmlld0NvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBsYXN0U2VsZWN0ZWRJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgcHJpdmF0ZSBsYXN0RmlsdGVyczogTGlzdEZpbHRlck1vZGVsW10gPSBbXTtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RhdGU6IExpc3RTdGF0ZSxcbiAgICBwcml2YXRlIGRpc3BhdGNoZXI6IExpc3RTdGF0ZURpc3BhdGNoZXJcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGEgJiYgdGhpcy5kYXRhUHJvdmlkZXIgJiYgdGhpcy5pbml0aWFsVG90YWwpIHtcbiAgICAgIHRoaXMuZGF0YUZpcnN0TG9hZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlzdFZpZXdzLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBkZWZhdWx0VmlldzogTGlzdFZpZXdDb21wb25lbnQgPVxuICAgICAgICAodGhpcy5kZWZhdWx0VmlldyA9PT0gdW5kZWZpbmVkKSA/IHRoaXMubGlzdFZpZXdzLmZpcnN0IDogdGhpcy5kZWZhdWx0VmlldztcblxuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgIG5ldyBMaXN0Vmlld3NMb2FkQWN0aW9uKHRoaXMubGlzdFZpZXdzLm1hcCh2ID0+IG5ldyBMaXN0Vmlld01vZGVsKHYuaWQsIHYubGFiZWwpKSlcbiAgICAgICk7XG5cbiAgICAgIC8vIGFjdGl2YXRlIHRoZSBkZWZhdWx0IHZpZXdcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0Vmlld3NTZXRBY3RpdmVBY3Rpb24oZGVmYXVsdFZpZXcuaWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIHNldCBzb3J0IGZpZWxkc1xuICAgIGdldFZhbHVlKHRoaXMuc29ydEZpZWxkcyxcbiAgICAgIChzb3J0RmllbGRzOiBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFtdIHwgTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWwpID0+IHtcbiAgICAgICAgbGV0IHNvcnRBcnJheTogTGlzdFNvcnRGaWVsZFNlbGVjdG9yTW9kZWxbXTtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNvcnRGaWVsZHMpICYmIHNvcnRGaWVsZHMpIHtcbiAgICAgICAgICBzb3J0QXJyYXkgPSBbc29ydEZpZWxkc107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc29ydEFycmF5ID0gc29ydEZpZWxkcyBhcyBMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0U29ydFNldEZpZWxkU2VsZWN0b3JzQWN0aW9uKHNvcnRBcnJheSB8fCBbXSkpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmRpc3BsYXllZEl0ZW1zLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQobmV3IExpc3RJdGVtc1NldExvYWRpbmdBY3Rpb24oKSk7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdEl0ZW1zTG9hZEFjdGlvbihyZXN1bHQuaXRlbXMsIHRydWUsIHRydWUsIHJlc3VsdC5jb3VudCkpO1xuICAgIH0pO1xuXG4gICAgLy8gV2F0Y2ggZm9yIHNlbGVjdGlvbiBjaGFuZ2VzLlxuICAgIHRoaXMuc3RhdGVcbiAgICAgIC5waXBlKFxuICAgICAgICBvYnNlcnZhYmxlTWFwKGN1cnJlbnQgPT4gY3VycmVudC5zZWxlY3RlZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHNlbGVjdGVkID0+IHtcblxuICAgICAgICAvLyBVcGRhdGUgbGFzdFNlbGVjdGVkSWRzIHRvIGhlbHAgdXMgcmV0YWluIHVzZXIgc2VsZWN0aW9ucy5cbiAgICAgICAgbGV0IHNlbGVjdGVkSWRzTGlzdDogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgc2VsZWN0ZWQuaXRlbS5zZWxlY3RlZElkTWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSWRzTGlzdC5wdXNoKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBJZiBjaGFuZ2VzIGFyZSBkaXN0aW5jdCwgZW1pdCBzZWxlY3RlZElkc0NoYW5nZS5cbiAgICAgICAgY29uc3QgZGlzdGluY3RDaGFuZ2VzID0gIXRoaXMuYXJyYXlzRXF1YWwodGhpcy5sYXN0U2VsZWN0ZWRJZHMsIHNlbGVjdGVkSWRzTGlzdCk7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzQ2hhbmdlLm9ic2VydmVycy5sZW5ndGggPiAwICYmIGRpc3RpbmN0Q2hhbmdlcykge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHNDaGFuZ2UuZW1pdChzZWxlY3RlZC5pdGVtLnNlbGVjdGVkSWRNYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYXN0U2VsZWN0ZWRJZHMgPSBzZWxlY3RlZElkc0xpc3Q7XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLmFwcGxpZWRGaWx0ZXJzQ2hhbmdlLm9ic2VydmVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnN0YXRlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG9ic2VydmFibGVNYXAoY3VycmVudCA9PiBjdXJyZW50LmZpbHRlcnMpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgIHNraXAoMSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChmaWx0ZXJzKSA9PiB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogV2UgYXJlIGRvaW5nIHRoaXMgaW5zdGVhZCBvZiBhIGRpc3RpbmN0VW50aWxDaGFuZ2UgZHVlIHRvIG1lbW9yeSBhbGxvY2F0aW9uIGlzc3Vlc1xuICAgICAgICAgICAqIHdpdGggdGhlIGphdmFzY3JpcHQgYXJyYXkuIFRvIGZpeCBmdWxseSB0aGUgYXJyYXkgc2hvdWxkIGJlIGNoYW5nZWQgdG8gYW4gb2JqZWN0IGluXG4gICAgICAgICAgICogYSBicmVha2luZyBjaGFuZ2UuXG4gICAgICAgICAgICovXG4gICAgICAgICAgaWYgKCF0aGlzLmFycmF5c0VxdWFsKGZpbHRlcnMsIHRoaXMubGFzdEZpbHRlcnMpKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RGaWx0ZXJzID0gZmlsdGVycy5zbGljZSgwKTtcbiAgICAgICAgICAgIHRoaXMuYXBwbGllZEZpbHRlcnNDaGFuZ2UuZW1pdChmaWx0ZXJzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snYXBwbGllZEZpbHRlcnMnXSAmJlxuICAgICAgY2hhbmdlc1snYXBwbGllZEZpbHRlcnMnXS5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXNbJ2FwcGxpZWRGaWx0ZXJzJ10ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5zdGF0ZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoY3VycmVudFN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChjdXJyZW50U3RhdGUucGFnaW5nLnBhZ2VOdW1iZXIgJiYgY3VycmVudFN0YXRlLnBhZ2luZy5wYWdlTnVtYmVyICE9PSAxKSB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaGVyLm5leHQoXG4gICAgICAgICAgICBuZXcgTGlzdFBhZ2luZ1NldFBhZ2VOdW1iZXJBY3Rpb24oTnVtYmVyKDEpKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpc3BhdGNoZXIuZmlsdGVyc1VwZGF0ZSh0aGlzLmFwcGxpZWRGaWx0ZXJzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWRJZHMnXSkge1xuICAgICAgLy8gT25seSBzZW5kIHNlbGVjdGlvbiBjaGFuZ2VzIHRvIGRpc3BhdGNoZXIgaWYgY2hhbmdlcyBhcmUgZGlzdGluY3QuXG4gICAgICBjb25zdCBuZXdTZWxlY3RlZElkcyA9IGNoYW5nZXNbJ3NlbGVjdGVkSWRzJ10uY3VycmVudFZhbHVlO1xuICAgICAgaWYgKCF0aGlzLmFycmF5c0VxdWFsKG5ld1NlbGVjdGVkSWRzLCB0aGlzLmxhc3RTZWxlY3RlZElkcykpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaGVyLnNldFNlbGVjdGVkKG5ld1NlbGVjdGVkSWRzLCB0cnVlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoRGlzcGxheWVkSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRJdGVtcy5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdEl0ZW1zU2V0TG9hZGluZ0FjdGlvbigpKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0SXRlbXNMb2FkQWN0aW9uKHJlc3VsdC5pdGVtcywgdHJ1ZSwgdHJ1ZSwgcmVzdWx0LmNvdW50KSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgZGlzcGxheWVkSXRlbXMoKTogT2JzZXJ2YWJsZTxMaXN0RGF0YVJlc3BvbnNlTW9kZWw+IHtcbiAgICBpZiAoIXRoaXMuZGF0YSAmJiAhdGhpcy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTGlzdCByZXF1aXJlcyBkYXRhIG9yIGRhdGFQcm92aWRlciB0byBiZSBzZXQuJyk7XG4gICAgfVxuXG4gICAgbGV0IGRhdGE6IGFueSA9IHRoaXMuZGF0YTtcbiAgICBpZiAoIWlzT2JzZXJ2YWJsZShkYXRhKSkge1xuICAgICAgZGF0YSA9IG9ic2VydmFibGVPZih0aGlzLmRhdGEpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgIHRoaXMuZGF0YVByb3ZpZGVyID0gbmV3IFNreUxpc3RJbk1lbW9yeURhdGFQcm92aWRlcihkYXRhLCB0aGlzLnNlYXJjaEZ1bmN0aW9uKTtcbiAgICB9XG5cbiAgICBsZXQgc2VsZWN0ZWRJZHMgPSB0aGlzLnNlbGVjdGVkSWRzIHx8IG9ic2VydmFibGVPZihbXSk7XG4gICAgaWYgKCFpc09ic2VydmFibGUoc2VsZWN0ZWRJZHMpKSB7XG4gICAgICBzZWxlY3RlZElkcyA9IG9ic2VydmFibGVPZihzZWxlY3RlZElkcyk7XG4gICAgfVxuXG4gICAgbGV0IHNlbGVjdGVkQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gVGhpcyBzdWJqZWN0IGlzIHVzZWQgdG8gY2FuY2VsIHByZXZpb3VzIHJlcXVlc3QgdG8gdGhlIGxpc3QncyBkYXRhIHByb3ZpZGVyIHdoZW4gYSBuZXcgY2hhbmdlXG4gICAgLy8gdG8gdGhlIGxpc3QncyBzdGF0ZSBvY2N1cnMuIEluIGEgZnV0dXJlIGJyZWFraW5nIGNoYW5nZSB0aGlzIHNob3VsZCBiZSByZXBsYWNlZCBvciBjb3VwbGVkXG4gICAgLy8gd2l0aCBhZGRpbmcgYSBkZWJvdW5jZSB0aW1lIHRvIHRoZSBPYnNlcnZhYmxlIHdoaWNoIHdhdGNoZXMgZm9yIHN0YXRlIGNoYW5nZXMuXG4gICAgbGV0IGNhbmNlbExhc3RSZXF1ZXN0ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHJldHVybiBvYnNlcnZhYmxlQ29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnN0YXRlLnBpcGUob2JzZXJ2YWJsZU1hcChzID0+IHMuZmlsdGVycyksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAocyA9PiBzLnNlYXJjaCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAocyA9PiBzLnNvcnQuZmllbGRTZWxlY3RvcnMpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShvYnNlcnZhYmxlTWFwKHMgPT4gcy5wYWdpbmcuaXRlbXNQZXJQYWdlKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLnN0YXRlLnBpcGUob2JzZXJ2YWJsZU1hcChzID0+IHMucGFnaW5nLnBhZ2VOdW1iZXIpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIHRoaXMuc3RhdGUucGlwZShvYnNlcnZhYmxlTWFwKHMgPT4gcy50b29sYmFyLmRpc2FibGVkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICBzZWxlY3RlZElkcy5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBvYnNlcnZhYmxlTWFwKHNlbGVjdGVkID0+IHtcbiAgICAgICAgICBzZWxlY3RlZENoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgIHJldHVybiBzZWxlY3RlZDtcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICBkYXRhLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICBdLCAoXG4gICAgICBmaWx0ZXJzOiBMaXN0RmlsdGVyTW9kZWxbXSxcbiAgICAgIHNlYXJjaDogTGlzdFNlYXJjaE1vZGVsLFxuICAgICAgc29ydEZpZWxkU2VsZWN0b3JzOiBBcnJheTxMaXN0U29ydEZpZWxkU2VsZWN0b3JNb2RlbD4sXG4gICAgICBpdGVtc1BlclBhZ2U6IG51bWJlcixcbiAgICAgIHBhZ2VOdW1iZXI6IG51bWJlcixcbiAgICAgIGlzVG9vbGJhckRpc2FibGVkOiBib29sZWFuLFxuICAgICAgc2VsZWN0ZWQ6IEFycmF5PHN0cmluZz4sXG4gICAgICBpdGVtc0RhdGE6IEFycmF5PGFueT5cbiAgICApID0+IHtcbiAgICAgIGNhbmNlbExhc3RSZXF1ZXN0Lm5leHQoKTtcbiAgICAgIGNhbmNlbExhc3RSZXF1ZXN0LmNvbXBsZXRlKCk7XG4gICAgICBpZiAoc2VsZWN0ZWRDaGFuZ2VkKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlci5uZXh0KG5ldyBMaXN0U2VsZWN0ZWRTZXRMb2FkaW5nQWN0aW9uKCkpO1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNlbGVjdGVkTG9hZEFjdGlvbihzZWxlY3RlZCkpO1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIubmV4dChuZXcgTGlzdFNlbGVjdGVkU2V0TG9hZGluZ0FjdGlvbihmYWxzZSkpO1xuICAgICAgICBzZWxlY3RlZENoYW5nZWQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlc3BvbnNlOiBPYnNlcnZhYmxlPExpc3REYXRhUmVzcG9uc2VNb2RlbD47XG4gICAgICBpZiAodGhpcy5kYXRhRmlyc3RMb2FkKSB7XG4gICAgICAgIHRoaXMuZGF0YUZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICBsZXQgaW5pdGlhbEl0ZW1zID0gaXRlbXNEYXRhLm1hcChkID0+IG5ldyBMaXN0SXRlbU1vZGVsKFxuICAgICAgICAgIGQuaWQgfHwgYHNreS1saXN0LWl0ZW0tbW9kZWwtJHsrK2lkSW5kZXh9YCwgZFxuICAgICAgICApKTtcbiAgICAgICAgcmVzcG9uc2UgPSBvYnNlcnZhYmxlT2YobmV3IExpc3REYXRhUmVzcG9uc2VNb2RlbCh7XG4gICAgICAgICAgY291bnQ6IHRoaXMuaW5pdGlhbFRvdGFsLFxuICAgICAgICAgIGl0ZW1zOiBpbml0aWFsSXRlbXNcbiAgICAgICAgfSkpLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKGNhbmNlbExhc3RSZXF1ZXN0KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcG9uc2UgPSB0aGlzLmRhdGFQcm92aWRlci5nZXQobmV3IExpc3REYXRhUmVxdWVzdE1vZGVsKHtcbiAgICAgICAgICBmaWx0ZXJzOiBmaWx0ZXJzLFxuICAgICAgICAgIHBhZ2VTaXplOiBpdGVtc1BlclBhZ2UsXG4gICAgICAgICAgcGFnZU51bWJlcjogcGFnZU51bWJlcixcbiAgICAgICAgICBzZWFyY2g6IHNlYXJjaCxcbiAgICAgICAgICBzb3J0OiBuZXcgTGlzdFNvcnRNb2RlbCh7IGZpZWxkU2VsZWN0b3JzOiBzb3J0RmllbGRTZWxlY3RvcnMgfSksXG4gICAgICAgICAgaXNUb29sYmFyRGlzYWJsZWQ6IGlzVG9vbGJhckRpc2FibGVkXG4gICAgICAgIH0pKS5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbChjYW5jZWxMYXN0UmVxdWVzdClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG5cbiAgICAgICAgLy8gUmV0YWluIHVzZXIgc2VsZWN0aW9ucyBmcm9tIHByZXZpb3VzIHN0YXRlLlxuICAgICAgICAvLyBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGZvciBncmlkcyBjb21wb25lbnQgKGJhc2VkIG9uIGl0ZW0uaXNTZWxlY3RlZCkuXG4gICAgICAgIG9ic2VydmFibGVNYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZS5waXBlKG9ic2VydmFibGVNYXAobGlzdERhdGFSZXNwb25zZU1vZGVsID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTGlzdERhdGFSZXNwb25zZU1vZGVsKHtcbiAgICAgICAgICAgICAgY291bnQ6IGxpc3REYXRhUmVzcG9uc2VNb2RlbC5jb3VudCxcbiAgICAgICAgICAgICAgaXRlbXM6IHRoaXMuZ2V0SXRlbXNBbmRSZXRhaW5TZWxlY3Rpb25zKGxpc3REYXRhUmVzcG9uc2VNb2RlbC5pdGVtcywgdGhpcy5sYXN0U2VsZWN0ZWRJZHMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH0pLFxuICAgICAgICBmbGF0TWFwKHZhbHVlID0+IHZhbHVlKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJdGVtcygpOiBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtTW9kZWw+PiB7XG4gICAgcmV0dXJuIG9ic2VydmFibGVDb21iaW5lTGF0ZXN0KFxuICAgICAgdGhpcy5zdGF0ZS5waXBlKG9ic2VydmFibGVNYXAoY3VycmVudCA9PiBjdXJyZW50Lml0ZW1zLml0ZW1zKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICB0aGlzLnN0YXRlLnBpcGUob2JzZXJ2YWJsZU1hcChjdXJyZW50ID0+IGN1cnJlbnQuc2VsZWN0ZWQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgICAgIChpdGVtczogQXJyYXk8TGlzdEl0ZW1Nb2RlbD4sIHNlbGVjdGVkOiBBc3luY0l0ZW08TGlzdFNlbGVjdGVkTW9kZWw+KSA9PiB7XG4gICAgICAgIHJldHVybiBpdGVtcy5maWx0ZXIoaSA9PiBzZWxlY3RlZC5pdGVtLnNlbGVjdGVkSWRNYXAuZ2V0KGkuaWQpKTtcbiAgICAgIH1cbiAgICApLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0VXBkYXRlKCk6IE9ic2VydmFibGU8RGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIG9ic2VydmFibGVNYXAocyA9PlxuICAgICAgICAgIHMuaXRlbXMubGFzdFVwZGF0ZSA/IG5ldyBEYXRlKHMuaXRlbXMubGFzdFVwZGF0ZSkgOiB1bmRlZmluZWRcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlld3MoKTogQXJyYXk8TGlzdFZpZXdDb21wb25lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5saXN0Vmlld3MudG9BcnJheSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpdGVtQ291bnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhUHJvdmlkZXIuY291bnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbXNBbmRSZXRhaW5TZWxlY3Rpb25zKG5ld0xpc3Q6IExpc3RJdGVtTW9kZWxbXSwgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdKTogTGlzdEl0ZW1Nb2RlbFtdIHtcbiAgICBsZXQgdXBkYXRlZExpc3RNb2RlbCA9IG5ld0xpc3Quc2xpY2UoKTtcbiAgICB1cGRhdGVkTGlzdE1vZGVsLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBpdGVtLmlzU2VsZWN0ZWQgPSBzZWxlY3RlZElkcy5pbmRleE9mKGl0ZW0uaWQpID4gLTEgPyB0cnVlIDogZmFsc2U7XG4gICAgfSk7XG4gICAgcmV0dXJuIHVwZGF0ZWRMaXN0TW9kZWw7XG4gIH1cblxuICBwcml2YXRlIGFycmF5c0VxdWFsKGFycmF5QTogYW55W10sIGFycmF5QjogYW55W10pOiBib29sZWFuIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChhcnJheUEgPT09IGFycmF5Qikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChhcnJheUEgPT09IHVuZGVmaW5lZCB8fCBhcnJheUIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoYXJyYXlBLmxlbmd0aCAhPT0gYXJyYXlCLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5QS5sZW5ndGg7ICsraSkge1xuICAgICAgaWYgKGFycmF5QVtpXSAhPT0gYXJyYXlCW2ldKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { SkyListComponent } from './list.component';
|
|
5
|
-
var SkyListModule = /** @class */ (function () {
|
|
6
|
-
function SkyListModule() {
|
|
7
|
-
}
|
|
8
|
-
SkyListModule = __decorate([
|
|
9
|
-
NgModule({
|
|
10
|
-
declarations: [
|
|
11
|
-
SkyListComponent
|
|
12
|
-
],
|
|
13
|
-
imports: [
|
|
14
|
-
CommonModule
|
|
15
|
-
],
|
|
16
|
-
exports: [
|
|
17
|
-
SkyListComponent
|
|
18
|
-
]
|
|
19
|
-
})
|
|
20
|
-
], SkyListModule);
|
|
21
|
-
return SkyListModule;
|
|
22
|
-
}());
|
|
23
|
-
export { SkyListModule };
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvbGlzdC1idWlsZGVyLyIsInNvdXJjZXMiOlsibW9kdWxlcy9saXN0L2xpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWFwRDtJQUFBO0lBQ0EsQ0FBQztJQURZLGFBQWE7UUFYekIsUUFBUSxDQUFDO1lBQ1IsWUFBWSxFQUFFO2dCQUNaLGdCQUFnQjthQUNqQjtZQUNELE9BQU8sRUFBRTtnQkFDUCxZQUFZO2FBQ2I7WUFDRCxPQUFPLEVBQUU7Z0JBQ1AsZ0JBQWdCO2FBQ2pCO1NBQ0YsQ0FBQztPQUNXLGFBQWEsQ0FDekI7SUFBRCxvQkFBQztDQUFBLEFBREQsSUFDQztTQURZLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNreUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5TGlzdENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lMaXN0Q29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2t5TGlzdE1vZHVsZSB7XG59XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { __extends, __read, __spread } from "tslib";
|
|
2
|
-
import { ListStateOrchestrator } from '../list-state.rxstate';
|
|
3
|
-
import { ListFiltersUpdateAction } from './update.action';
|
|
4
|
-
/**
|
|
5
|
-
* @internal
|
|
6
|
-
*/
|
|
7
|
-
var ListFiltersOrchestrator = /** @class */ (function (_super) {
|
|
8
|
-
__extends(ListFiltersOrchestrator, _super);
|
|
9
|
-
/* istanbul ignore next */
|
|
10
|
-
function ListFiltersOrchestrator() {
|
|
11
|
-
var _this = _super.call(this) || this;
|
|
12
|
-
_this
|
|
13
|
-
.register(ListFiltersUpdateAction, _this.update);
|
|
14
|
-
return _this;
|
|
15
|
-
}
|
|
16
|
-
ListFiltersOrchestrator.prototype.update = function (state, action) {
|
|
17
|
-
return __spread(action.filters);
|
|
18
|
-
};
|
|
19
|
-
return ListFiltersOrchestrator;
|
|
20
|
-
}(ListStateOrchestrator));
|
|
21
|
-
export { ListFiltersOrchestrator };
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5vcmNoZXN0cmF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvbGlzdC1idWlsZGVyLyIsInNvdXJjZXMiOlsibW9kdWxlcy9saXN0L3N0YXRlL2ZpbHRlcnMvZmlsdGVycy5vcmNoZXN0cmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlELE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6Qjs7R0FFRztBQUNIO0lBQTZDLDJDQUF3QztJQUNuRiwwQkFBMEI7SUFDMUI7UUFBQSxZQUNFLGlCQUFPLFNBS1I7UUFIQyxLQUFJO2FBQ0QsUUFBUSxDQUFDLHVCQUF1QixFQUFFLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzs7SUFFcEQsQ0FBQztJQUVPLHdDQUFNLEdBQWQsVUFBZSxLQUF3QixFQUFFLE1BQStCO1FBQ3RFLGdCQUFXLE1BQU0sQ0FBQyxPQUFPLEVBQUU7SUFDN0IsQ0FBQztJQUNILDhCQUFDO0FBQUQsQ0FBQyxBQWJELENBQTZDLHFCQUFxQixHQWFqRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpc3RTdGF0ZU9yY2hlc3RyYXRvciB9IGZyb20gJy4uL2xpc3Qtc3RhdGUucnhzdGF0ZSc7XG5pbXBvcnQgeyBMaXN0RmlsdGVyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7XG4gIExpc3RGaWx0ZXJzVXBkYXRlQWN0aW9uXG59IGZyb20gJy4vdXBkYXRlLmFjdGlvbic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXN0RmlsdGVyc09yY2hlc3RyYXRvciBleHRlbmRzIExpc3RTdGF0ZU9yY2hlc3RyYXRvcjxMaXN0RmlsdGVyTW9kZWxbXT4ge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpc1xuICAgICAgLnJlZ2lzdGVyKExpc3RGaWx0ZXJzVXBkYXRlQWN0aW9uLCB0aGlzLnVwZGF0ZSk7XG5cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlKHN0YXRlOiBMaXN0RmlsdGVyTW9kZWxbXSwgYWN0aW9uOiBMaXN0RmlsdGVyc1VwZGF0ZUFjdGlvbik6IExpc3RGaWx0ZXJNb2RlbFtdIHtcbiAgICByZXR1cm4gWy4uLmFjdGlvbi5maWx0ZXJzXTtcbiAgfVxufVxuIl19
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @internal
|
|
3
|
-
*/
|
|
4
|
-
var ListFiltersUpdateAction = /** @class */ (function () {
|
|
5
|
-
function ListFiltersUpdateAction(filters) {
|
|
6
|
-
this.filters = filters;
|
|
7
|
-
}
|
|
8
|
-
return ListFiltersUpdateAction;
|
|
9
|
-
}());
|
|
10
|
-
export { ListFiltersUpdateAction };
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9saXN0LWJ1aWxkZXIvIiwic291cmNlcyI6WyJtb2R1bGVzL2xpc3Qvc3RhdGUvZmlsdGVycy91cGRhdGUuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOztHQUVHO0FBQ0g7SUFDRSxpQ0FBbUIsT0FBMEI7UUFBMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7SUFBRyxDQUFDO0lBQ25ELDhCQUFDO0FBQUQsQ0FBQyxBQUZELElBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXN0RmlsdGVyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9saXN0LWZpbHRlcnMvZmlsdGVyLm1vZGVsJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIExpc3RGaWx0ZXJzVXBkYXRlQWN0aW9uIHtcbiAgY29uc3RydWN0b3IocHVibGljIGZpbHRlcnM6IExpc3RGaWx0ZXJNb2RlbFtdKSB7fVxufVxuIl19
|