@recursyve/nice-data-filter-kit 18.0.3 → 21.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/_index.scss +1 -1
- package/fesm2022/recursyve-nice-data-filter-kit.mjs +408 -346
- package/fesm2022/recursyve-nice-data-filter-kit.mjs.map +1 -1
- package/package.json +11 -13
- package/src/lib/components/base-list/base-list.theme.scss +10 -9
- package/src/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.theme.scss +4 -4
- package/src/lib/components/nice-filter-view/components/advanced-filters/rule/rule.theme.scss +6 -5
- package/src/lib/components/query-builder/query-builder.theme.scss +9 -8
- package/src/lib/components/query-builder/rule/rule.theme.scss +8 -7
- package/src/lib/nice-data-filter.theme.scss +6 -6
- package/types/recursyve-nice-data-filter-kit.d.ts +1681 -0
- package/esm2022/lib/api/dto/saved-reports.dto.mjs +0 -2
- package/esm2022/lib/api/filter.api.mjs +0 -113
- package/esm2022/lib/api/models/saved-reports.model.mjs +0 -2
- package/esm2022/lib/api/public-api.mjs +0 -2
- package/esm2022/lib/api/saved-report.api.mjs +0 -48
- package/esm2022/lib/components/base-list/base-list.component.mjs +0 -338
- package/esm2022/lib/components/base-list/base-list.constant.mjs +0 -11
- package/esm2022/lib/components/base-list/base-list.module.mjs +0 -185
- package/esm2022/lib/components/base-list/directives/base-list-buttons.directive.mjs +0 -17
- package/esm2022/lib/components/base-list/directives/base-list-cards.directive.mjs +0 -14
- package/esm2022/lib/components/base-list/directives/base-list-custom-content.directive.mjs +0 -14
- package/esm2022/lib/components/base-list/directives/base-list-directives.module.mjs +0 -55
- package/esm2022/lib/components/base-list/directives/base-list-empty-search-result-state.directive.mjs +0 -14
- package/esm2022/lib/components/base-list/directives/base-list-empty-state.directive.mjs +0 -14
- package/esm2022/lib/components/base-list/directives/base-list-filters.directive.mjs +0 -14
- package/esm2022/lib/components/base-list/directives/base-list-table.directive.mjs +0 -17
- package/esm2022/lib/components/base-list/directives/base-list-title.directive.mjs +0 -14
- package/esm2022/lib/components/base-list/models/columns.model.mjs +0 -8
- package/esm2022/lib/components/base-list/models/export.model.mjs +0 -2
- package/esm2022/lib/components/base-list/models/icons.model.mjs +0 -18
- package/esm2022/lib/components/base-list/models/layout.model.mjs +0 -149
- package/esm2022/lib/components/base-list/providers/base-filter.service.mjs +0 -36
- package/esm2022/lib/components/base-list/providers/base-list-saved-report.service.mjs +0 -33
- package/esm2022/lib/components/base-list/public-api.mjs +0 -19
- package/esm2022/lib/components/base-list/store/base-list.query.mjs +0 -51
- package/esm2022/lib/components/base-list/store/base-list.service.mjs +0 -375
- package/esm2022/lib/components/base-list/store/base-list.store.mjs +0 -88
- package/esm2022/lib/components/multi-state-list/models/list-states.model.mjs +0 -3
- package/esm2022/lib/components/multi-state-list/multi-state-list.component.mjs +0 -73
- package/esm2022/lib/components/multi-state-list/multi-state-list.constant.mjs +0 -3
- package/esm2022/lib/components/multi-state-list/multi-state-list.module.mjs +0 -140
- package/esm2022/lib/components/multi-state-list/providers/multi-state-filter.service.mjs +0 -11
- package/esm2022/lib/components/multi-state-list/public-api.mjs +0 -8
- package/esm2022/lib/components/multi-state-list/store/multi-state-list.query.mjs +0 -17
- package/esm2022/lib/components/multi-state-list/store/multi-state-list.service.mjs +0 -48
- package/esm2022/lib/components/multi-state-list/store/multi-state-list.store.mjs +0 -24
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.mjs +0 -83
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.mjs +0 -120
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.constant.mjs +0 -4
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.form.mjs +0 -121
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.module.mjs +0 -152
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.mjs +0 -43
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.mjs +0 -49
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/models/advanced-date-filter-options.model.mjs +0 -2
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/models/icons.model.mjs +0 -24
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/providers/async-typeahead.provider.mjs +0 -41
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/public-api.mjs +0 -10
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.mjs +0 -52
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/filter.component.mjs +0 -29
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.mjs +0 -28
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/options/options-filter.component.mjs +0 -33
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.mjs +0 -30
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.mjs +0 -60
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.mjs +0 -31
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.mjs +0 -72
- package/esm2022/lib/components/nice-filter-view/components/advanced-filters/utils/advanced-filters.utils.mjs +0 -80
- package/esm2022/lib/components/nice-filter-view/components/common/data.directive.mjs +0 -14
- package/esm2022/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.mjs +0 -22
- package/esm2022/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.mjs +0 -115
- package/esm2022/lib/components/nice-filter-view/components/export-buttons/export.directive.mjs +0 -27
- package/esm2022/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.mjs +0 -39
- package/esm2022/lib/components/nice-filter-view/components/search/search.component.mjs +0 -60
- package/esm2022/lib/components/nice-filter-view/directives/mat-paginator.mjs +0 -42
- package/esm2022/lib/components/nice-filter-view/directives/mat-sort.mjs +0 -52
- package/esm2022/lib/components/nice-filter-view/directives/mat-tables.mjs +0 -22
- package/esm2022/lib/components/nice-filter-view/directives/query-params.directive.mjs +0 -94
- package/esm2022/lib/components/nice-filter-view/models/order-options.model.mjs +0 -2
- package/esm2022/lib/components/nice-filter-view/nice-base-filter-view.component.mjs +0 -181
- package/esm2022/lib/components/nice-filter-view/nice-filter-view.component.mjs +0 -34
- package/esm2022/lib/components/nice-filter-view/nice-filter-view.constant.mjs +0 -6
- package/esm2022/lib/components/nice-filter-view/nice-filter-view.module.mjs +0 -147
- package/esm2022/lib/components/nice-filter-view/nice-nested-filter-view.mjs +0 -46
- package/esm2022/lib/components/nice-filter-view/pipes/filter-group-icon.pipe.mjs +0 -32
- package/esm2022/lib/components/nice-filter-view/public-api.mjs +0 -18
- package/esm2022/lib/components/nice-filter-view/store/nice-filter-view.query.mjs +0 -41
- package/esm2022/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +0 -290
- package/esm2022/lib/components/nice-filter-view/store/nice-filter-view.store.mjs +0 -236
- package/esm2022/lib/components/public-api.mjs +0 -5
- package/esm2022/lib/components/query-builder/filter-selection/filter-selection.component.mjs +0 -42
- package/esm2022/lib/components/query-builder/models/icons.model.mjs +0 -18
- package/esm2022/lib/components/query-builder/pipes/filter-group-icon.pipe.mjs +0 -32
- package/esm2022/lib/components/query-builder/providers/filter-group.service.mjs +0 -3
- package/esm2022/lib/components/query-builder/public-api.mjs +0 -15
- package/esm2022/lib/components/query-builder/query-builder-trigger.directive.mjs +0 -79
- package/esm2022/lib/components/query-builder/query-builder.component.mjs +0 -100
- package/esm2022/lib/components/query-builder/query-builder.constant.mjs +0 -3
- package/esm2022/lib/components/query-builder/query-builder.form.mjs +0 -79
- package/esm2022/lib/components/query-builder/query-builder.module.mjs +0 -128
- package/esm2022/lib/components/query-builder/rule/components/date/date-filter.component.mjs +0 -40
- package/esm2022/lib/components/query-builder/rule/components/filter.component.mjs +0 -29
- package/esm2022/lib/components/query-builder/rule/components/number/number-filter.component.mjs +0 -28
- package/esm2022/lib/components/query-builder/rule/components/radio/radio-filter.component.mjs +0 -30
- package/esm2022/lib/components/query-builder/rule/components/select/select-filter.component.mjs +0 -87
- package/esm2022/lib/components/query-builder/rule/components/text/text-filter.component.mjs +0 -31
- package/esm2022/lib/components/query-builder/rule/rule.component.mjs +0 -85
- package/esm2022/lib/components/query-builder/utils/qb-filter.utils.mjs +0 -90
- package/esm2022/lib/directive/public-api.mjs +0 -2
- package/esm2022/lib/directive/selectable-list/model/load-all-entities-options.model.mjs +0 -2
- package/esm2022/lib/directive/selectable-list/model/selectable-list-options.model.mjs +0 -2
- package/esm2022/lib/directive/selectable-list/providers/preload-selected-entities.provider.mjs +0 -10
- package/esm2022/lib/directive/selectable-list/providers/selectable-list-content.service.mjs +0 -37
- package/esm2022/lib/directive/selectable-list/public-api.mjs +0 -12
- package/esm2022/lib/directive/selectable-list/selectable-list-checkbox.directive.mjs +0 -164
- package/esm2022/lib/directive/selectable-list/selectable-list-select-all.directive.mjs +0 -48
- package/esm2022/lib/directive/selectable-list/selectable-list-state.directive.mjs +0 -50
- package/esm2022/lib/directive/selectable-list/selectable-list.constant.mjs +0 -3
- package/esm2022/lib/directive/selectable-list/selectable-list.directive.mjs +0 -95
- package/esm2022/lib/directive/selectable-list/selectable-list.module.mjs +0 -31
- package/esm2022/lib/directive/selectable-list/store/selectable-list-state.query.mjs +0 -32
- package/esm2022/lib/directive/selectable-list/store/selectable-list-state.service.mjs +0 -220
- package/esm2022/lib/directive/selectable-list/store/selectable-list.service.mjs +0 -59
- package/esm2022/lib/directive/selectable-list/store/selectable-list.state.mjs +0 -2
- package/esm2022/lib/models/filter.model.mjs +0 -10
- package/esm2022/lib/models/public-api.mjs +0 -3
- package/esm2022/lib/models/query.model.mjs +0 -25
- package/esm2022/lib/utils/date.adapter.mjs +0 -34
- package/esm2022/lib/utils/filter.utils.mjs +0 -42
- package/esm2022/lib/utils/order.utils.mjs +0 -28
- package/esm2022/lib/utils/public-api.mjs +0 -5
- package/esm2022/lib/utils/query-params.utils.mjs +0 -70
- package/esm2022/lib/utils/string.utils.mjs +0 -9
- package/esm2022/public-api.mjs +0 -9
- package/esm2022/recursyve-nice-data-filter-kit.mjs +0 -5
- package/index.d.ts +0 -5
- package/lib/api/dto/saved-reports.dto.d.ts +0 -6
- package/lib/api/filter.api.d.ts +0 -59
- package/lib/api/models/saved-reports.model.d.ts +0 -5
- package/lib/api/public-api.d.ts +0 -1
- package/lib/api/saved-report.api.d.ts +0 -20
- package/lib/components/base-list/base-list.component.d.ts +0 -109
- package/lib/components/base-list/base-list.constant.d.ts +0 -10
- package/lib/components/base-list/base-list.module.d.ts +0 -59
- package/lib/components/base-list/directives/base-list-buttons.directive.d.ts +0 -9
- package/lib/components/base-list/directives/base-list-cards.directive.d.ts +0 -8
- package/lib/components/base-list/directives/base-list-custom-content.directive.d.ts +0 -8
- package/lib/components/base-list/directives/base-list-directives.module.d.ts +0 -14
- package/lib/components/base-list/directives/base-list-empty-search-result-state.directive.d.ts +0 -8
- package/lib/components/base-list/directives/base-list-empty-state.directive.d.ts +0 -8
- package/lib/components/base-list/directives/base-list-filters.directive.d.ts +0 -8
- package/lib/components/base-list/directives/base-list-table.directive.d.ts +0 -9
- package/lib/components/base-list/directives/base-list-title.directive.d.ts +0 -8
- package/lib/components/base-list/models/columns.model.d.ts +0 -10
- package/lib/components/base-list/models/export.model.d.ts +0 -5
- package/lib/components/base-list/models/icons.model.d.ts +0 -19
- package/lib/components/base-list/models/layout.model.d.ts +0 -26
- package/lib/components/base-list/providers/base-filter.service.d.ts +0 -23
- package/lib/components/base-list/providers/base-list-saved-report.service.d.ts +0 -17
- package/lib/components/base-list/public-api.d.ts +0 -18
- package/lib/components/base-list/store/base-list.query.d.ts +0 -19
- package/lib/components/base-list/store/base-list.service.d.ts +0 -57
- package/lib/components/base-list/store/base-list.store.d.ts +0 -26
- package/lib/components/multi-state-list/models/list-states.model.d.ts +0 -10
- package/lib/components/multi-state-list/multi-state-list.component.d.ts +0 -18
- package/lib/components/multi-state-list/multi-state-list.constant.d.ts +0 -2
- package/lib/components/multi-state-list/multi-state-list.module.d.ts +0 -44
- package/lib/components/multi-state-list/providers/multi-state-filter.service.d.ts +0 -11
- package/lib/components/multi-state-list/public-api.d.ts +0 -7
- package/lib/components/multi-state-list/store/multi-state-list.query.d.ts +0 -9
- package/lib/components/multi-state-list/store/multi-state-list.service.d.ts +0 -19
- package/lib/components/multi-state-list/store/multi-state-list.store.d.ts +0 -10
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.d.ts +0 -27
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.d.ts +0 -31
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.constant.d.ts +0 -3
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.form.d.ts +0 -19
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.module.d.ts +0 -44
- package/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.d.ts +0 -17
- package/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.d.ts +0 -16
- package/lib/components/nice-filter-view/components/advanced-filters/models/advanced-date-filter-options.model.d.ts +0 -3
- package/lib/components/nice-filter-view/components/advanced-filters/models/icons.model.d.ts +0 -11
- package/lib/components/nice-filter-view/components/advanced-filters/providers/async-typeahead.provider.d.ts +0 -20
- package/lib/components/nice-filter-view/components/advanced-filters/public-api.d.ts +0 -9
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.d.ts +0 -13
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/filter.component.d.ts +0 -13
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.d.ts +0 -6
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/options/options-filter.component.d.ts +0 -8
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.d.ts +0 -8
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.d.ts +0 -18
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.d.ts +0 -8
- package/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.d.ts +0 -26
- package/lib/components/nice-filter-view/components/advanced-filters/utils/advanced-filters.utils.d.ts +0 -11
- package/lib/components/nice-filter-view/components/common/data.directive.d.ts +0 -8
- package/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.d.ts +0 -11
- package/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.d.ts +0 -29
- package/lib/components/nice-filter-view/components/export-buttons/export.directive.d.ts +0 -11
- package/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.d.ts +0 -15
- package/lib/components/nice-filter-view/components/search/search.component.d.ts +0 -20
- package/lib/components/nice-filter-view/directives/mat-paginator.d.ts +0 -12
- package/lib/components/nice-filter-view/directives/mat-sort.d.ts +0 -11
- package/lib/components/nice-filter-view/directives/mat-tables.d.ts +0 -12
- package/lib/components/nice-filter-view/directives/query-params.directive.d.ts +0 -23
- package/lib/components/nice-filter-view/models/order-options.model.d.ts +0 -7
- package/lib/components/nice-filter-view/nice-base-filter-view.component.d.ts +0 -84
- package/lib/components/nice-filter-view/nice-filter-view.component.d.ts +0 -12
- package/lib/components/nice-filter-view/nice-filter-view.constant.d.ts +0 -5
- package/lib/components/nice-filter-view/nice-filter-view.module.d.ts +0 -42
- package/lib/components/nice-filter-view/nice-nested-filter-view.d.ts +0 -23
- package/lib/components/nice-filter-view/pipes/filter-group-icon.pipe.d.ts +0 -11
- package/lib/components/nice-filter-view/public-api.d.ts +0 -17
- package/lib/components/nice-filter-view/store/nice-filter-view.query.d.ts +0 -20
- package/lib/components/nice-filter-view/store/nice-filter-view.service.d.ts +0 -47
- package/lib/components/nice-filter-view/store/nice-filter-view.store.d.ts +0 -41
- package/lib/components/public-api.d.ts +0 -4
- package/lib/components/query-builder/filter-selection/filter-selection.component.d.ts +0 -12
- package/lib/components/query-builder/models/icons.model.d.ts +0 -9
- package/lib/components/query-builder/pipes/filter-group-icon.pipe.d.ts +0 -11
- package/lib/components/query-builder/providers/filter-group.service.d.ts +0 -4
- package/lib/components/query-builder/public-api.d.ts +0 -14
- package/lib/components/query-builder/query-builder-trigger.directive.d.ts +0 -25
- package/lib/components/query-builder/query-builder.component.d.ts +0 -33
- package/lib/components/query-builder/query-builder.constant.d.ts +0 -2
- package/lib/components/query-builder/query-builder.form.d.ts +0 -18
- package/lib/components/query-builder/query-builder.module.d.ts +0 -37
- package/lib/components/query-builder/rule/components/date/date-filter.component.d.ts +0 -9
- package/lib/components/query-builder/rule/components/filter.component.d.ts +0 -13
- package/lib/components/query-builder/rule/components/number/number-filter.component.d.ts +0 -6
- package/lib/components/query-builder/rule/components/radio/radio-filter.component.d.ts +0 -8
- package/lib/components/query-builder/rule/components/select/select-filter.component.d.ts +0 -22
- package/lib/components/query-builder/rule/components/text/text-filter.component.d.ts +0 -8
- package/lib/components/query-builder/rule/rule.component.d.ts +0 -29
- package/lib/components/query-builder/utils/qb-filter.utils.d.ts +0 -12
- package/lib/directive/public-api.d.ts +0 -1
- package/lib/directive/selectable-list/model/load-all-entities-options.model.d.ts +0 -4
- package/lib/directive/selectable-list/model/selectable-list-options.model.d.ts +0 -7
- package/lib/directive/selectable-list/providers/preload-selected-entities.provider.d.ts +0 -12
- package/lib/directive/selectable-list/providers/selectable-list-content.service.d.ts +0 -18
- package/lib/directive/selectable-list/public-api.d.ts +0 -11
- package/lib/directive/selectable-list/selectable-list-checkbox.directive.d.ts +0 -27
- package/lib/directive/selectable-list/selectable-list-select-all.directive.d.ts +0 -18
- package/lib/directive/selectable-list/selectable-list-state.directive.d.ts +0 -24
- package/lib/directive/selectable-list/selectable-list.constant.d.ts +0 -2
- package/lib/directive/selectable-list/selectable-list.directive.d.ts +0 -27
- package/lib/directive/selectable-list/selectable-list.module.d.ts +0 -13
- package/lib/directive/selectable-list/store/selectable-list-state.query.d.ts +0 -10
- package/lib/directive/selectable-list/store/selectable-list-state.service.d.ts +0 -44
- package/lib/directive/selectable-list/store/selectable-list.service.d.ts +0 -27
- package/lib/directive/selectable-list/store/selectable-list.state.d.ts +0 -10
- package/lib/models/filter.model.d.ts +0 -79
- package/lib/models/public-api.d.ts +0 -2
- package/lib/models/query.model.d.ts +0 -41
- package/lib/utils/date.adapter.d.ts +0 -13
- package/lib/utils/filter.utils.d.ts +0 -5
- package/lib/utils/order.utils.d.ts +0 -7
- package/lib/utils/public-api.d.ts +0 -4
- package/lib/utils/query-params.utils.d.ts +0 -13
- package/lib/utils/string.utils.d.ts +0 -12
- package/public-api.d.ts +0 -5
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { NiceFilterApi } from "../../../api/filter.api";
|
|
3
|
-
import { FilterUtils } from "../../../utils/filter.utils";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class NiceFilterService {
|
|
6
|
-
constructor(api) {
|
|
7
|
-
this.api = api;
|
|
8
|
-
}
|
|
9
|
-
filter(params, option = {}) {
|
|
10
|
-
return this.api?.filter(FilterUtils.parametersToRequest(params), option);
|
|
11
|
-
}
|
|
12
|
-
getFile(type, parameters) {
|
|
13
|
-
return this.api?.downloadData(type, FilterUtils.parametersToRequest(parameters));
|
|
14
|
-
}
|
|
15
|
-
getPrintableHtml(parameters) {
|
|
16
|
-
return this.api?.getPrintableHtml(FilterUtils.parametersToRequest(parameters));
|
|
17
|
-
}
|
|
18
|
-
getFilterConfig(option = {}) {
|
|
19
|
-
return this.api?.getFilterConfig(option);
|
|
20
|
-
}
|
|
21
|
-
searchFilterValue(filterConfig, value, options) {
|
|
22
|
-
return this.api?.searchFilterValue(filterConfig.id, value, options);
|
|
23
|
-
}
|
|
24
|
-
searchFilterResourceValue(filterConfig, resourceId, options) {
|
|
25
|
-
return this.api?.searchFilterResourceValue(filterConfig.id, resourceId, options);
|
|
26
|
-
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterService, deps: [{ token: NiceFilterApi }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterService }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterService, decorators: [{
|
|
31
|
-
type: Injectable
|
|
32
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
33
|
-
type: Inject,
|
|
34
|
-
args: [NiceFilterApi]
|
|
35
|
-
}] }] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvcHJvdmlkZXJzL2Jhc2UtZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBNEMsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBYzFELE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBNkMsR0FBNkI7UUFBN0IsUUFBRyxHQUFILEdBQUcsQ0FBMEI7SUFBRyxDQUFDO0lBRXZFLE1BQU0sQ0FBQyxNQUE2QixFQUFFLFNBQTBCLEVBQUU7UUFDckUsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZLEVBQUUsVUFBaUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFVBQWlDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRU0sZUFBZSxDQUFDLFNBQTBCLEVBQUU7UUFDL0MsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0saUJBQWlCLENBQ3BCLFlBQXNDLEVBQ3RDLEtBQWEsRUFDYixPQUFxQjtRQUVyQixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLHlCQUF5QixDQUM1QixZQUFzQyxFQUN0QyxVQUFrQixFQUNsQixPQUFxQjtRQUVyQixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUseUJBQXlCLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckYsQ0FBQzsrR0FqQ1EsaUJBQWlCLGtCQUNOLGFBQWE7bUhBRHhCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVTs7MEJBRU0sTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgTmljZUZpbHRlckFwaSwgTmljZUZpbHRlckFwaURlZmluaXRpb24sIE5pY2VIdHRwT3B0aW9ucyB9IGZyb20gXCIuLi8uLi8uLi9hcGkvZmlsdGVyLmFwaVwiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsLCBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwsIEZpbHRlclJlc3VsdE1vZGVsLCBTZWxlY3RGaWx0ZXJWYWx1ZSB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZmlsdGVyLm1vZGVsXCI7XG5pbXBvcnQgeyBGaWx0ZXJVdGlscyB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9maWx0ZXIudXRpbHNcIjtcbmltcG9ydCB7IEh0dHBPcHRpb25zIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJTmljZUZpbHRlclNlcnZpY2U8VD4ge1xuICAgIGdldEZpbHRlckNvbmZpZyhvcHRpb246IE5pY2VIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8RmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsW10+O1xuXG4gICAgZmlsdGVyKHBhcmFtczogRmlsdGVyUGFyYW1ldGVyc01vZGVsLCBvcHRpb246IE5pY2VIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8RmlsdGVyUmVzdWx0TW9kZWw8VD4+O1xuXG4gICAgZ2V0RmlsZSh0eXBlOiBzdHJpbmcsIHBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IE9ic2VydmFibGU8QmxvYj47XG5cbiAgICBnZXRQcmludGFibGVIdG1sKHBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IE9ic2VydmFibGU8c3RyaW5nPjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5pY2VGaWx0ZXJTZXJ2aWNlPFQ+IGltcGxlbWVudHMgSU5pY2VGaWx0ZXJTZXJ2aWNlPFQ+IHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KE5pY2VGaWx0ZXJBcGkpIHByb3RlY3RlZCBhcGk/OiBOaWNlRmlsdGVyQXBpRGVmaW5pdGlvbikge31cblxuICAgIHB1YmxpYyBmaWx0ZXIocGFyYW1zOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwsIG9wdGlvbjogTmljZUh0dHBPcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPEZpbHRlclJlc3VsdE1vZGVsPFQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaT8uZmlsdGVyKEZpbHRlclV0aWxzLnBhcmFtZXRlcnNUb1JlcXVlc3QocGFyYW1zKSwgb3B0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmlsZSh0eXBlOiBzdHJpbmcsIHBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGk/LmRvd25sb2FkRGF0YSh0eXBlLCBGaWx0ZXJVdGlscy5wYXJhbWV0ZXJzVG9SZXF1ZXN0KHBhcmFtZXRlcnMpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJpbnRhYmxlSHRtbChwYXJhbWV0ZXJzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGk/LmdldFByaW50YWJsZUh0bWwoRmlsdGVyVXRpbHMucGFyYW1ldGVyc1RvUmVxdWVzdChwYXJhbWV0ZXJzKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpbHRlckNvbmZpZyhvcHRpb246IE5pY2VIdHRwT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGk/LmdldEZpbHRlckNvbmZpZyhvcHRpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2hGaWx0ZXJWYWx1ZShcbiAgICAgICAgZmlsdGVyQ29uZmlnOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwsXG4gICAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM/OiBIdHRwT3B0aW9uc1xuICAgICk6IE9ic2VydmFibGU8U2VsZWN0RmlsdGVyVmFsdWVbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGk/LnNlYXJjaEZpbHRlclZhbHVlKGZpbHRlckNvbmZpZy5pZCwgdmFsdWUsIG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2hGaWx0ZXJSZXNvdXJjZVZhbHVlKFxuICAgICAgICBmaWx0ZXJDb25maWc6IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCxcbiAgICAgICAgcmVzb3VyY2VJZDogbnVtYmVyLFxuICAgICAgICBvcHRpb25zPzogSHR0cE9wdGlvbnNcbiAgICApOiBPYnNlcnZhYmxlPFNlbGVjdEZpbHRlclZhbHVlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaT8uc2VhcmNoRmlsdGVyUmVzb3VyY2VWYWx1ZShmaWx0ZXJDb25maWcuaWQsIHJlc291cmNlSWQsIG9wdGlvbnMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { NiceSavedReportsApi } from "../../../api/saved-report.api";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../../api/saved-report.api";
|
|
5
|
-
export class NiceSavedReportService {
|
|
6
|
-
constructor(api) {
|
|
7
|
-
this.api = api;
|
|
8
|
-
}
|
|
9
|
-
create(report) {
|
|
10
|
-
return this.api.create(report);
|
|
11
|
-
}
|
|
12
|
-
update(id, report) {
|
|
13
|
-
return this.api.update(id, report);
|
|
14
|
-
}
|
|
15
|
-
remove(id) {
|
|
16
|
-
return this.api.delete(id);
|
|
17
|
-
}
|
|
18
|
-
getByTableName(table) {
|
|
19
|
-
return this.api.getByTable(table);
|
|
20
|
-
}
|
|
21
|
-
getTopByTableName(table) {
|
|
22
|
-
return this.api.getTopByTable(table);
|
|
23
|
-
}
|
|
24
|
-
hit(id) {
|
|
25
|
-
return this.api.hit(id);
|
|
26
|
-
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceSavedReportService, deps: [{ token: i1.NiceSavedReportsApi }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceSavedReportService }); }
|
|
29
|
-
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceSavedReportService, decorators: [{
|
|
31
|
-
type: Injectable
|
|
32
|
-
}], ctorParameters: () => [{ type: i1.NiceSavedReportsApi }] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LXNhdmVkLXJlcG9ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtbGlzdC9wcm92aWRlcnMvYmFzZS1saXN0LXNhdmVkLXJlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7OztBQUdwRSxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLFlBQW9CLEdBQXdCO1FBQXhCLFFBQUcsR0FBSCxHQUFHLENBQXFCO0lBQUcsQ0FBQztJQUV6QyxNQUFNLENBQUMsTUFBMEI7UUFDcEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEVBQVUsRUFBRSxNQUEwQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sTUFBTSxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWE7UUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0saUJBQWlCLENBQUMsS0FBYTtRQUNsQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxHQUFHLENBQUMsRUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7K0dBekJRLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IE5pY2VTYXZlZFJlcG9ydER0byB9IGZyb20gXCIuLi8uLi8uLi9hcGkvZHRvL3NhdmVkLXJlcG9ydHMuZHRvXCI7XG5pbXBvcnQgeyBOaWNlU2F2ZWRSZXBvcnRzIH0gZnJvbSBcIi4uLy4uLy4uL2FwaS9tb2RlbHMvc2F2ZWQtcmVwb3J0cy5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZVNhdmVkUmVwb3J0c0FwaSB9IGZyb20gXCIuLi8uLi8uLi9hcGkvc2F2ZWQtcmVwb3J0LmFwaVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZVNhdmVkUmVwb3J0U2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGk6IE5pY2VTYXZlZFJlcG9ydHNBcGkpIHt9XG5cbiAgICBwdWJsaWMgY3JlYXRlKHJlcG9ydDogTmljZVNhdmVkUmVwb3J0RHRvKTogT2JzZXJ2YWJsZTxOaWNlU2F2ZWRSZXBvcnRzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5jcmVhdGUocmVwb3J0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlKGlkOiBudW1iZXIsIHJlcG9ydDogTmljZVNhdmVkUmVwb3J0RHRvKTogT2JzZXJ2YWJsZTxOaWNlU2F2ZWRSZXBvcnRzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS51cGRhdGUoaWQsIHJlcG9ydCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFwaS5kZWxldGUoaWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRCeVRhYmxlTmFtZSh0YWJsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxOaWNlU2F2ZWRSZXBvcnRzW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldEJ5VGFibGUodGFibGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRUb3BCeVRhYmxlTmFtZSh0YWJsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxOaWNlU2F2ZWRSZXBvcnRzW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmdldFRvcEJ5VGFibGUodGFibGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoaXQoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcGkuaGl0KGlkKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export * from "./directives/base-list-directives.module";
|
|
2
|
-
export * from "./directives/base-list-buttons.directive";
|
|
3
|
-
export * from "./directives/base-list-cards.directive";
|
|
4
|
-
export * from "./directives/base-list-custom-content.directive";
|
|
5
|
-
export * from "./directives/base-list-empty-state.directive";
|
|
6
|
-
export * from "./directives/base-list-empty-search-result-state.directive";
|
|
7
|
-
export * from "./directives/base-list-filters.directive";
|
|
8
|
-
export * from "./directives/base-list-table.directive";
|
|
9
|
-
export * from "./directives/base-list-title.directive";
|
|
10
|
-
export * from "./models/columns.model";
|
|
11
|
-
export * from "./models/layout.model";
|
|
12
|
-
export * from "./providers/base-filter.service";
|
|
13
|
-
export * from "./providers/base-list-saved-report.service";
|
|
14
|
-
export * from "./store/base-list.query";
|
|
15
|
-
export * from "./store/base-list.service";
|
|
16
|
-
export * from "./store/base-list.store";
|
|
17
|
-
export * from "./base-list.component";
|
|
18
|
-
export * from "./base-list.module";
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9iYXNlLWxpc3QvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZXMvYmFzZS1saXN0LWRpcmVjdGl2ZXMubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmVzL2Jhc2UtbGlzdC1idXR0b25zLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtY2FyZHMuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmVzL2Jhc2UtbGlzdC1jdXN0b20tY29udGVudC5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZXMvYmFzZS1saXN0LWVtcHR5LXN0YXRlLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlyZWN0aXZlcy9iYXNlLWxpc3QtZW1wdHktc2VhcmNoLXJlc3VsdC1zdGF0ZS5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZXMvYmFzZS1saXN0LWZpbHRlcnMuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kaXJlY3RpdmVzL2Jhc2UtbGlzdC10YWJsZS5kaXJlY3RpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RpcmVjdGl2ZXMvYmFzZS1saXN0LXRpdGxlLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbW9kZWxzL2NvbHVtbnMubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVscy9sYXlvdXQubW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVycy9iYXNlLWZpbHRlci5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wcm92aWRlcnMvYmFzZS1saXN0LXNhdmVkLXJlcG9ydC5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yZS9iYXNlLWxpc3QucXVlcnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JlL2Jhc2UtbGlzdC5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yZS9iYXNlLWxpc3Quc3RvcmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Jhc2UtbGlzdC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Jhc2UtbGlzdC5tb2R1bGVcIjtcbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { Query } from "@datorama/akita";
|
|
3
|
-
import { combineLatest } from "rxjs";
|
|
4
|
-
import { map } from "rxjs/operators";
|
|
5
|
-
import { NiceBaseListStore } from "./base-list.store";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./base-list.store";
|
|
8
|
-
export class NiceBaseListQuery extends Query {
|
|
9
|
-
constructor(store) {
|
|
10
|
-
super(store);
|
|
11
|
-
this.store = store;
|
|
12
|
-
}
|
|
13
|
-
selectEmpty() {
|
|
14
|
-
return combineLatest([
|
|
15
|
-
this.selectLoading(),
|
|
16
|
-
this.selectData(),
|
|
17
|
-
this.selectFilterParameters()
|
|
18
|
-
]).pipe(map(([loading, data, parameter]) => !data?.length && !loading && !parameter?.search));
|
|
19
|
-
}
|
|
20
|
-
selectSearchResultEmpty() {
|
|
21
|
-
return combineLatest([
|
|
22
|
-
this.selectLoading(),
|
|
23
|
-
this.selectData(),
|
|
24
|
-
this.selectFilterParameters()
|
|
25
|
-
]).pipe(map(([loading, data, parameter]) => !data?.length && !loading && !!parameter?.search));
|
|
26
|
-
}
|
|
27
|
-
selectData() {
|
|
28
|
-
return this.select(s => s.filterResult?.values ?? []);
|
|
29
|
-
}
|
|
30
|
-
selectFilterParameters() {
|
|
31
|
-
return this.select(s => s.filterParameters);
|
|
32
|
-
}
|
|
33
|
-
selectFilterResult() {
|
|
34
|
-
return this.select(s => s.filterResult);
|
|
35
|
-
}
|
|
36
|
-
selectFilterConfig() {
|
|
37
|
-
return this.select(s => s.filterConfig);
|
|
38
|
-
}
|
|
39
|
-
selectFilterConfigLoading() {
|
|
40
|
-
return this.select(s => s.filterConfigLoading);
|
|
41
|
-
}
|
|
42
|
-
selectShowQueryBuilder() {
|
|
43
|
-
return this.select(s => s.showQueryBuilder);
|
|
44
|
-
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceBaseListQuery, deps: [{ token: i1.NiceBaseListStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
46
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceBaseListQuery }); }
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceBaseListQuery, decorators: [{
|
|
49
|
-
type: Injectable
|
|
50
|
-
}], ctorParameters: () => [{ type: i1.NiceBaseListStore }] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LnF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Jhc2UtbGlzdC9zdG9yZS9iYXNlLWxpc3QucXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFxQixpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFHekUsTUFBTSxPQUFPLGlCQUFtRSxTQUFRLEtBQVE7SUFDNUYsWUFBc0IsS0FBMkI7UUFDN0MsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBREssVUFBSyxHQUFMLEtBQUssQ0FBc0I7SUFFakQsQ0FBQztJQUVNLFdBQVc7UUFDZCxPQUFPLGFBQWEsQ0FBQztZQUNqQixJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1NBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQ3ZGLENBQUM7SUFDTixDQUFDO0lBRU0sdUJBQXVCO1FBQzFCLE9BQU8sYUFBYSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixJQUFJLENBQUMsc0JBQXNCLEVBQUU7U0FDaEMsQ0FBQyxDQUFDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUN4RixDQUFDO0lBQ04sQ0FBQztJQUVNLFVBQVU7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQXNCLENBQUM7SUFDL0UsQ0FBQztJQUVNLHNCQUFzQjtRQUN6QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0seUJBQXlCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxzQkFBc0I7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDaEQsQ0FBQzsrR0EvQ1EsaUJBQWlCO21IQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YVwiO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCwgRmlsdGVyUGFyYW1ldGVyc01vZGVsLCBGaWx0ZXJSZXN1bHRNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZmlsdGVyLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RTdGF0ZSwgTmljZUJhc2VMaXN0U3RvcmUgfSBmcm9tIFwiLi9iYXNlLWxpc3Quc3RvcmVcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5pY2VCYXNlTGlzdFF1ZXJ5PFQgZXh0ZW5kcyBOaWNlQmFzZUxpc3RTdGF0ZSA9IE5pY2VCYXNlTGlzdFN0YXRlPiBleHRlbmRzIFF1ZXJ5PFQ+IHtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc3RvcmU6IE5pY2VCYXNlTGlzdFN0b3JlPFQ+KSB7XG4gICAgICAgIHN1cGVyKHN0b3JlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0RW1wdHkoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0TG9hZGluZygpLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3REYXRhKCksXG4gICAgICAgICAgICB0aGlzLnNlbGVjdEZpbHRlclBhcmFtZXRlcnMoKVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbbG9hZGluZywgZGF0YSwgcGFyYW1ldGVyXSkgPT4gIWRhdGE/Lmxlbmd0aCAmJiAhbG9hZGluZyAmJiAhcGFyYW1ldGVyPy5zZWFyY2gpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdFNlYXJjaFJlc3VsdEVtcHR5KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnNlbGVjdExvYWRpbmcoKSxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0RGF0YSgpLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3RGaWx0ZXJQYXJhbWV0ZXJzKClcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2xvYWRpbmcsIGRhdGEsIHBhcmFtZXRlcl0pID0+ICFkYXRhPy5sZW5ndGggJiYgIWxvYWRpbmcgJiYgISFwYXJhbWV0ZXI/LnNlYXJjaClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0RGF0YSgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdChzID0+IHMuZmlsdGVyUmVzdWx0Py52YWx1ZXMgPz8gW10pIGFzIE9ic2VydmFibGU8YW55W10+O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3RGaWx0ZXJQYXJhbWV0ZXJzKCk6IE9ic2VydmFibGU8RmlsdGVyUGFyYW1ldGVyc01vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdChzID0+IHMuZmlsdGVyUGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdEZpbHRlclJlc3VsdCgpOiBPYnNlcnZhYmxlPEZpbHRlclJlc3VsdE1vZGVsIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3QocyA9PiBzLmZpbHRlclJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNlbGVjdEZpbHRlckNvbmZpZygpOiBPYnNlcnZhYmxlPEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbFtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdChzID0+IHMuZmlsdGVyQ29uZmlnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0RmlsdGVyQ29uZmlnTG9hZGluZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0KHMgPT4gcy5maWx0ZXJDb25maWdMb2FkaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0U2hvd1F1ZXJ5QnVpbGRlcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0KHMgPT4gcy5zaG93UXVlcnlCdWlsZGVyKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,375 +0,0 @@
|
|
|
1
|
-
import { ApplicationRef, Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { ActivatedRoute, Router } from "@angular/router";
|
|
3
|
-
import { arrayAdd, arrayRemove, arrayUpsert } from "@datorama/akita";
|
|
4
|
-
import { FileUtils } from "@recursyve/nice-ui-kit.v2";
|
|
5
|
-
import { firstValueFrom, Subject } from "rxjs";
|
|
6
|
-
import { map, takeUntil } from "rxjs/operators";
|
|
7
|
-
import { FilterUtils } from "../../../utils/filter.utils";
|
|
8
|
-
import { QueryParamsUtils } from "../../../utils/query-params.utils";
|
|
9
|
-
import { QBFilterUtils } from "../../query-builder/utils/qb-filter.utils";
|
|
10
|
-
import { DISABLE_QUERY_PARAMS } from "../base-list.constant";
|
|
11
|
-
import { NiceFilterService } from "../providers/base-filter.service";
|
|
12
|
-
import { NiceBaseListStore } from "./base-list.store";
|
|
13
|
-
import { OrderUtils } from "../../../utils/order.utils";
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "./base-list.store";
|
|
16
|
-
import * as i2 from "@angular/router";
|
|
17
|
-
export class NiceBaseListService {
|
|
18
|
-
constructor(store, filterService, disableQueryParams, activatedRoute, router, appRef) {
|
|
19
|
-
this.store = store;
|
|
20
|
-
this.filterService = filterService;
|
|
21
|
-
this.disableQueryParams = disableQueryParams;
|
|
22
|
-
this.activatedRoute = activatedRoute;
|
|
23
|
-
this.router = router;
|
|
24
|
-
this.appRef = appRef;
|
|
25
|
-
this.queryParamsLoaded$ = new Subject();
|
|
26
|
-
this.downloadFileName = "data";
|
|
27
|
-
this.unsubscribeAll$ = new Subject();
|
|
28
|
-
this.loadingData = false;
|
|
29
|
-
}
|
|
30
|
-
get filter() {
|
|
31
|
-
return this.filterService;
|
|
32
|
-
}
|
|
33
|
-
async init(configQueryParams = {}) {
|
|
34
|
-
this.store.setFilterConfigLoading(true);
|
|
35
|
-
try {
|
|
36
|
-
const filterConfig = await firstValueFrom(this.filterService.getFilterConfig({ params: configQueryParams }));
|
|
37
|
-
this.store.update({
|
|
38
|
-
filterConfig
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
this.store.setError(e);
|
|
43
|
-
}
|
|
44
|
-
finally {
|
|
45
|
-
this.store.setFilterConfigLoading(false);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
resetStore() {
|
|
49
|
-
this.store.reset();
|
|
50
|
-
}
|
|
51
|
-
resetData() {
|
|
52
|
-
this.store.update({
|
|
53
|
-
filterResult: null
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
closeSubscriptions() {
|
|
57
|
-
this.unsubscribeAll$.next(null);
|
|
58
|
-
this.unsubscribeAll$.complete();
|
|
59
|
-
this.queryParamsLoaded$.complete();
|
|
60
|
-
}
|
|
61
|
-
disableList() {
|
|
62
|
-
this.store.update({
|
|
63
|
-
disabled: true
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
enableList() {
|
|
67
|
-
this.store.update({
|
|
68
|
-
disabled: false
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
setLoading(loading) {
|
|
72
|
-
this.store.setLoading(loading);
|
|
73
|
-
}
|
|
74
|
-
setMode(mode) {
|
|
75
|
-
this.store.update({
|
|
76
|
-
mergePageResults: mode === "infinite-scroll"
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
setQueryParams(queryParams) {
|
|
80
|
-
this.store.update({ queryParams });
|
|
81
|
-
}
|
|
82
|
-
loadQueryParams(autoLoad) {
|
|
83
|
-
if (this.disableQueryParams) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
this.activatedRoute?.queryParams
|
|
87
|
-
.pipe(takeUntil(this.unsubscribeAll$), map((params) => {
|
|
88
|
-
return {
|
|
89
|
-
params: QueryParamsUtils.extractFilterParameters(params)
|
|
90
|
-
};
|
|
91
|
-
}))
|
|
92
|
-
.subscribe(({ params }) => {
|
|
93
|
-
if (!params || Object.keys(params).length === 0) {
|
|
94
|
-
params = this.store.getValue().filterParameters;
|
|
95
|
-
}
|
|
96
|
-
const { filterParameters, filterResult } = this.store.getValue();
|
|
97
|
-
if (FilterUtils.filterChangeNeedsRefresh(filterParameters, params) ||
|
|
98
|
-
!filterResult) {
|
|
99
|
-
if (autoLoad) {
|
|
100
|
-
this.loadData(params, false);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
this.setParameters(params, false, true);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
this.queryParamsLoaded$.next(null);
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
async resetAndLoadData(parameters, updateQueryParams = true) {
|
|
110
|
-
return this.loadData(parameters, updateQueryParams, true);
|
|
111
|
-
}
|
|
112
|
-
async loadData(parameters, updateQueryParams = true, reset = false) {
|
|
113
|
-
const { disabled, queryParams } = this.store.getValue();
|
|
114
|
-
try {
|
|
115
|
-
const filterParameters = this.mergeParameters(parameters);
|
|
116
|
-
if (filterParameters) {
|
|
117
|
-
this.setParameters(filterParameters, disabled ? false : updateQueryParams);
|
|
118
|
-
}
|
|
119
|
-
if (!disabled) {
|
|
120
|
-
this.store.setLoading(true);
|
|
121
|
-
this.loadingData = true;
|
|
122
|
-
const result = await firstValueFrom(this.filterService.filter(this.getParameters(filterParameters), {
|
|
123
|
-
params: queryParams
|
|
124
|
-
}));
|
|
125
|
-
this.store.setResult(result, reset);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
catch (e) {
|
|
129
|
-
this.store.setError(e);
|
|
130
|
-
}
|
|
131
|
-
finally {
|
|
132
|
-
this.store.setLoading(false);
|
|
133
|
-
this.loadingData = false;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async searchData(search) {
|
|
137
|
-
const { filterParameters } = this.store.getValue();
|
|
138
|
-
await this.loadData({
|
|
139
|
-
...filterParameters,
|
|
140
|
-
search
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
async loadNewPage(start, length) {
|
|
144
|
-
const { filterParameters } = this.store.getValue();
|
|
145
|
-
await this.loadData({
|
|
146
|
-
...filterParameters,
|
|
147
|
-
start,
|
|
148
|
-
length
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
async loadNextPage() {
|
|
152
|
-
const { filterParameters } = this.store.getValue();
|
|
153
|
-
await this.loadData({
|
|
154
|
-
...filterParameters,
|
|
155
|
-
start: filterParameters.start + filterParameters.length
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
resetPaging() {
|
|
159
|
-
const { filterParameters } = this.store.getValue();
|
|
160
|
-
this.store.setParameters({
|
|
161
|
-
...filterParameters,
|
|
162
|
-
start: 0
|
|
163
|
-
});
|
|
164
|
-
this.store.update({
|
|
165
|
-
resetPaging: true
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
async downloadData(type, parameters, updateQueryParams = true) {
|
|
169
|
-
try {
|
|
170
|
-
this.store.setLoading(true);
|
|
171
|
-
this.loadingData = true;
|
|
172
|
-
const filterParameters = this.mergeParameters(parameters);
|
|
173
|
-
if (filterParameters) {
|
|
174
|
-
this.setParameters(filterParameters, updateQueryParams);
|
|
175
|
-
}
|
|
176
|
-
const result = await firstValueFrom(this.filterService.getFile(type, this.getParameters(filterParameters)));
|
|
177
|
-
FileUtils.downloadFile(`${this.downloadFileName}.${type}`, result);
|
|
178
|
-
}
|
|
179
|
-
catch (e) {
|
|
180
|
-
this.store.setError(e);
|
|
181
|
-
}
|
|
182
|
-
finally {
|
|
183
|
-
this.store.setLoading(false);
|
|
184
|
-
this.loadingData = false;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
async printData(parameters, updateQueryParams = true) {
|
|
188
|
-
try {
|
|
189
|
-
this.store.setLoading(true);
|
|
190
|
-
this.loadingData = true;
|
|
191
|
-
const filterParameters = this.mergeParameters(parameters);
|
|
192
|
-
if (filterParameters) {
|
|
193
|
-
this.setParameters(filterParameters, updateQueryParams);
|
|
194
|
-
}
|
|
195
|
-
const result = await firstValueFrom(this.filterService.getPrintableHtml(this.getParameters(filterParameters)));
|
|
196
|
-
FileUtils.openPrintableWindow(result);
|
|
197
|
-
}
|
|
198
|
-
catch (e) {
|
|
199
|
-
this.store.setError(e);
|
|
200
|
-
}
|
|
201
|
-
finally {
|
|
202
|
-
this.store.setLoading(false);
|
|
203
|
-
this.loadingData = false;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
updateRule(id, newRule) {
|
|
207
|
-
const { filterParameters } = this.store.getValue();
|
|
208
|
-
const rules = filterParameters.rules?.[0];
|
|
209
|
-
if (!rules || rules.rules.length === 0) {
|
|
210
|
-
this.updateRules([newRule]);
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
const oldRule = rules.rules.find((r) => r.id === id);
|
|
214
|
-
let newRules = rules.rules;
|
|
215
|
-
if (oldRule) {
|
|
216
|
-
if (newRule) {
|
|
217
|
-
// Array replace
|
|
218
|
-
newRules = [
|
|
219
|
-
...rules.rules.slice(0, rules.rules.indexOf(oldRule)),
|
|
220
|
-
newRule,
|
|
221
|
-
...rules.rules.slice(rules.rules.indexOf(oldRule) + 1, rules.rules.length)
|
|
222
|
-
];
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
newRules = rules.rules.filter((r) => r.id !== id);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
newRules = [...newRules, newRule];
|
|
230
|
-
}
|
|
231
|
-
this.updateRules(newRules);
|
|
232
|
-
}
|
|
233
|
-
updateDefaultRules(rule) {
|
|
234
|
-
this.store.update({
|
|
235
|
-
defaultRules: rule
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
async updateGlobalRules(rules, updateQueryParams = true, reset = true) {
|
|
239
|
-
if (reset) {
|
|
240
|
-
this.resetPaging();
|
|
241
|
-
}
|
|
242
|
-
const { filterParameters } = this.store.getValue();
|
|
243
|
-
const newRules = {
|
|
244
|
-
...filterParameters,
|
|
245
|
-
rules
|
|
246
|
-
};
|
|
247
|
-
await this.loadData(newRules, updateQueryParams);
|
|
248
|
-
}
|
|
249
|
-
addRuleFromConfig(config) {
|
|
250
|
-
this.resetPaging();
|
|
251
|
-
const { filterParameters } = this.store.getValue();
|
|
252
|
-
const newRules = {
|
|
253
|
-
...filterParameters,
|
|
254
|
-
rules: [
|
|
255
|
-
...filterParameters.rules,
|
|
256
|
-
QBFilterUtils.createQueryModel(config)
|
|
257
|
-
]
|
|
258
|
-
};
|
|
259
|
-
this.store.update({
|
|
260
|
-
showQueryBuilder: true
|
|
261
|
-
});
|
|
262
|
-
this.loadData(newRules, true);
|
|
263
|
-
}
|
|
264
|
-
updateRules(rules) {
|
|
265
|
-
const { filterParameters } = this.store.getValue();
|
|
266
|
-
const newRules = {
|
|
267
|
-
order: filterParameters.order,
|
|
268
|
-
rules: [
|
|
269
|
-
{
|
|
270
|
-
condition: "and",
|
|
271
|
-
rules
|
|
272
|
-
}
|
|
273
|
-
]
|
|
274
|
-
};
|
|
275
|
-
this.loadData(newRules, true);
|
|
276
|
-
}
|
|
277
|
-
toggleQueryBuilder() {
|
|
278
|
-
this.store.update((state) => ({
|
|
279
|
-
showQueryBuilder: !state.showQueryBuilder
|
|
280
|
-
}));
|
|
281
|
-
}
|
|
282
|
-
addListValue(value, opts) {
|
|
283
|
-
const { filterResult } = this.store.getValue();
|
|
284
|
-
if (!filterResult) {
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
this.store.update({
|
|
288
|
-
filterResult: {
|
|
289
|
-
...filterResult,
|
|
290
|
-
values: arrayAdd(filterResult.values, value, opts)
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
updateListValue(value, key = "id") {
|
|
295
|
-
const { filterResult } = this.store.getValue();
|
|
296
|
-
if (!filterResult) {
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
this.store.update({
|
|
300
|
-
filterResult: {
|
|
301
|
-
...filterResult,
|
|
302
|
-
values: arrayUpsert(filterResult.values, value[key], value)
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
removeListValue(value, key = "id") {
|
|
307
|
-
const { filterResult } = this.store.getValue();
|
|
308
|
-
if (!filterResult) {
|
|
309
|
-
return;
|
|
310
|
-
}
|
|
311
|
-
this.store.update({
|
|
312
|
-
filterResult: {
|
|
313
|
-
...filterResult,
|
|
314
|
-
values: arrayRemove(filterResult.values, value[key])
|
|
315
|
-
}
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
getParameters(filterParameters) {
|
|
319
|
-
const { defaultRules } = this.store.getValue();
|
|
320
|
-
const parameters = {
|
|
321
|
-
...filterParameters,
|
|
322
|
-
rules: filterParameters?.rules ? [...filterParameters.rules] : []
|
|
323
|
-
};
|
|
324
|
-
if (defaultRules?.length) {
|
|
325
|
-
parameters.rules.push({
|
|
326
|
-
condition: "and",
|
|
327
|
-
rules: defaultRules
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
return parameters;
|
|
331
|
-
}
|
|
332
|
-
async updateQueryParams(queryParams) {
|
|
333
|
-
if (!this.activatedRoute || this.disableQueryParams) {
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
await this.router.navigate([], {
|
|
337
|
-
relativeTo: this.activatedRoute,
|
|
338
|
-
queryParams,
|
|
339
|
-
queryParamsHandling: "merge"
|
|
340
|
-
});
|
|
341
|
-
}
|
|
342
|
-
mergeParameters(parameters) {
|
|
343
|
-
const { filterParameters } = this.store.getValue();
|
|
344
|
-
if (!parameters) {
|
|
345
|
-
return filterParameters;
|
|
346
|
-
}
|
|
347
|
-
return {
|
|
348
|
-
...filterParameters,
|
|
349
|
-
...parameters,
|
|
350
|
-
order: OrderUtils.mergeOrder(filterParameters.order, parameters.order),
|
|
351
|
-
fallbackOrder: OrderUtils.combineOrders(filterParameters.fallbackOrder, parameters.fallbackOrder, { uniqueFromBack: true })
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
setParameters(parameters, updateQueryParams = true, merge = false) {
|
|
355
|
-
if (merge) {
|
|
356
|
-
parameters = this.mergeParameters(parameters);
|
|
357
|
-
}
|
|
358
|
-
this.store.setParameters(parameters);
|
|
359
|
-
if (updateQueryParams) {
|
|
360
|
-
this.updateQueryParams(QueryParamsUtils.filterParametersToParamsMap(parameters));
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceBaseListService, deps: [{ token: i1.NiceBaseListStore }, { token: NiceFilterService }, { token: DISABLE_QUERY_PARAMS }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
364
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceBaseListService }); }
|
|
365
|
-
}
|
|
366
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceBaseListService, decorators: [{
|
|
367
|
-
type: Injectable
|
|
368
|
-
}], ctorParameters: () => [{ type: i1.NiceBaseListStore }, { type: undefined, decorators: [{
|
|
369
|
-
type: Inject,
|
|
370
|
-
args: [NiceFilterService]
|
|
371
|
-
}] }, { type: undefined, decorators: [{
|
|
372
|
-
type: Inject,
|
|
373
|
-
args: [DISABLE_QUERY_PARAMS]
|
|
374
|
-
}] }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i0.ApplicationRef }] });
|
|
375
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS1saXN0L3N0b3JlL2Jhc2UtbGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBR3hELE1BQU0sT0FBTyxtQkFBbUI7SUFPNUIsWUFDYyxLQUF3QixFQUV4QixhQUFxQixFQUVyQixrQkFB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O1FBQ25ELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNkLE9BQU8sZ0JBQWdCLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU87WUFDSCxHQUFHLGdCQUFnQjtZQUNuQixHQUFHLFVBQVU7WUFDYixLQUFLLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUN0RSxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUM5SCxDQUFDO0lBQ04sQ0FBQztJQUVPLGFBQWEsQ0FBQyxVQUFpQyxFQUFFLG9CQUE2QixJQUFJLEVBQUUsUUFBaUIsS0FBSztRQUM5RyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUNyRixDQUFDO0lBQ0wsQ0FBQzsrR0E1WVEsbUJBQW1CLG1EQVNoQixpQkFBaUIsYUFFakIsb0JBQW9CO21IQVh2QixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQVVGLE1BQU07MkJBQUMsaUJBQWlCOzswQkFFeEIsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBhcnJheUFkZCwgYXJyYXlSZW1vdmUsIGFycmF5VXBzZXJ0IH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YVwiO1xuaW1wb3J0IHsgRmlsZVV0aWxzIH0gZnJvbSBcIkByZWN1cnN5dmUvbmljZS11aS1raXQudjJcIjtcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBRdWVyeVBhcmFtcyB9IGZyb20gXCIuLi8uLi8uLi9hcGkvZmlsdGVyLmFwaVwiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsLCBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgUXVlcnlNb2RlbCwgUXVlcnlSdWxlTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3F1ZXJ5Lm1vZGVsXCI7XG5pbXBvcnQgeyBGaWx0ZXJVdGlscyB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9maWx0ZXIudXRpbHNcIjtcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zVXRpbHMgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcXVlcnktcGFyYW1zLnV0aWxzXCI7XG5pbXBvcnQgeyBRQkZpbHRlclV0aWxzIH0gZnJvbSBcIi4uLy4uL3F1ZXJ5LWJ1aWxkZXIvdXRpbHMvcWItZmlsdGVyLnV0aWxzXCI7XG5pbXBvcnQgeyBESVNBQkxFX1FVRVJZX1BBUkFNUyB9IGZyb20gXCIuLi9iYXNlLWxpc3QuY29uc3RhbnRcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL3Byb3ZpZGVycy9iYXNlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlQmFzZUxpc3RTdG9yZSB9IGZyb20gXCIuL2Jhc2UtbGlzdC5zdG9yZVwiO1xuaW1wb3J0IHsgQWRkRW50aXRpZXNPcHRpb25zIH0gZnJvbSBcIkBkYXRvcmFtYS9ha2l0YS9zcmMvbGliL2FkZEVudGl0aWVzXCI7XG5pbXBvcnQgeyBPcmRlclV0aWxzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL29yZGVyLnV0aWxzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOaWNlQmFzZUxpc3RTZXJ2aWNlPEZpbHRlciBleHRlbmRzIE5pY2VGaWx0ZXJTZXJ2aWNlPGFueT4gPSBOaWNlRmlsdGVyU2VydmljZTxhbnk+PiB7XG4gICAgcHVibGljIHF1ZXJ5UGFyYW1zTG9hZGVkJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcm90ZWN0ZWQgZG93bmxvYWRGaWxlTmFtZSA9IFwiZGF0YVwiO1xuICAgIHByb3RlY3RlZCB1bnN1YnNjcmliZUFsbCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByb3RlY3RlZCBsb2FkaW5nRGF0YSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBzdG9yZTogTmljZUJhc2VMaXN0U3RvcmUsXG4gICAgICAgIEBJbmplY3QoTmljZUZpbHRlclNlcnZpY2UpXG4gICAgICAgIHByb3RlY3RlZCBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXIsXG4gICAgICAgIEBJbmplY3QoRElTQUJMRV9RVUVSWV9QQVJBTVMpXG4gICAgICAgIHByb3RlY3RlZCBkaXNhYmxlUXVlcnlQYXJhbXM6IGJvb2xlYW4sXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJvdGVjdGVkIGFwcFJlZjogQXBwbGljYXRpb25SZWZcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZpbHRlcigpOiBGaWx0ZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJTZXJ2aWNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBpbml0KGNvbmZpZ1F1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtcyA9IHt9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0RmlsdGVyQ29uZmlnTG9hZGluZyh0cnVlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckNvbmZpZyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmlsdGVyU2VydmljZS5nZXRGaWx0ZXJDb25maWcoeyBwYXJhbXM6IGNvbmZpZ1F1ZXJ5UGFyYW1zIH0pKTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJDb25maWdcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRGaWx0ZXJDb25maWdMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXNldFN0b3JlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0RGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiBudWxsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZVN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwkLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVBbGwkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXNMb2FkZWQkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc2FibGVMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBkaXNhYmxlZDogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW5hYmxlTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGxvYWRpbmcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRNb2RlKG1vZGU6IFwibm9ybWFsXCIgfCBcImluZmluaXRlLXNjcm9sbFwiKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIG1lcmdlUGFnZVJlc3VsdHM6IG1vZGUgPT09IFwiaW5maW5pdGUtc2Nyb2xsXCJcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoeyBxdWVyeVBhcmFtcyB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZFF1ZXJ5UGFyYW1zKGF1dG9Mb2FkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVRdWVyeVBhcmFtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZT8ucXVlcnlQYXJhbXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQWxsJCksXG4gICAgICAgICAgICAgICAgbWFwKChwYXJhbXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogUXVlcnlQYXJhbXNVdGlscy5leHRyYWN0RmlsdGVyUGFyYW1ldGVycyhwYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgcGFyYW1zIH0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXBhcmFtcyB8fCBPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSB0aGlzLnN0b3JlLmdldFZhbHVlKCkuZmlsdGVyUGFyYW1ldGVycztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIEZpbHRlclV0aWxzLmZpbHRlckNoYW5nZU5lZWRzUmVmcmVzaChmaWx0ZXJQYXJhbWV0ZXJzLCBwYXJhbXMpIHx8XG4gICAgICAgICAgICAgICAgICAgICFmaWx0ZXJSZXN1bHRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG9Mb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWREYXRhKHBhcmFtcywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJhbWV0ZXJzKHBhcmFtcywgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtc0xvYWRlZCQubmV4dChudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZXNldEFuZExvYWREYXRhKHBhcmFtZXRlcnM/OiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwsIHVwZGF0ZVF1ZXJ5UGFyYW1zOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkRGF0YShwYXJhbWV0ZXJzLCB1cGRhdGVRdWVyeVBhcmFtcywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGxvYWREYXRhKHBhcmFtZXRlcnM/OiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwsIHVwZGF0ZVF1ZXJ5UGFyYW1zOiBib29sZWFuID0gdHJ1ZSwgcmVzZXQ6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGRpc2FibGVkLCBxdWVyeVBhcmFtcyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyUGFyYW1ldGVycyA9IHRoaXMubWVyZ2VQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpO1xuICAgICAgICAgICAgaWYgKGZpbHRlclBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycywgZGlzYWJsZWQgPyBmYWxzZSA6IHVwZGF0ZVF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nRGF0YSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcih0aGlzLmdldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycyksIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBxdWVyeVBhcmFtc1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLnNldFJlc3VsdChyZXN1bHQsIHJlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRFcnJvcihlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdEYXRhID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2VhcmNoRGF0YShzZWFyY2g6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkRGF0YSh7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgc2VhcmNoXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsb2FkTmV3UGFnZShzdGFydDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkRGF0YSh7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICBsZW5ndGhcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGxvYWROZXh0UGFnZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZERhdGEoe1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHN0YXJ0OiBmaWx0ZXJQYXJhbWV0ZXJzLnN0YXJ0ICsgZmlsdGVyUGFyYW1ldGVycy5sZW5ndGhcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0UGFnaW5nKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5zdG9yZS5zZXRQYXJhbWV0ZXJzKHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBzdGFydDogMFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgcmVzZXRQYWdpbmc6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGRvd25sb2FkRGF0YShcbiAgICAgICAgdHlwZTogc3RyaW5nLFxuICAgICAgICBwYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsLFxuICAgICAgICB1cGRhdGVRdWVyeVBhcmFtczogYm9vbGVhbiA9IHRydWVcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0RhdGEgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyUGFyYW1ldGVycyA9IHRoaXMubWVyZ2VQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpO1xuICAgICAgICAgICAgaWYgKGZpbHRlclBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycywgdXBkYXRlUXVlcnlQYXJhbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5maWx0ZXJTZXJ2aWNlLmdldEZpbGUodHlwZSwgdGhpcy5nZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMpKSk7XG4gICAgICAgICAgICBGaWxlVXRpbHMuZG93bmxvYWRGaWxlKGAke3RoaXMuZG93bmxvYWRGaWxlTmFtZX0uJHt0eXBlfWAsIHJlc3VsdCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RXJyb3IoZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nRGF0YSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHByaW50RGF0YShwYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsLCB1cGRhdGVRdWVyeVBhcmFtczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0RhdGEgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyUGFyYW1ldGVycyA9IHRoaXMubWVyZ2VQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpO1xuICAgICAgICAgICAgaWYgKGZpbHRlclBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycywgdXBkYXRlUXVlcnlQYXJhbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5maWx0ZXJTZXJ2aWNlLmdldFByaW50YWJsZUh0bWwodGhpcy5nZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMpKSk7XG4gICAgICAgICAgICBGaWxlVXRpbHMub3BlblByaW50YWJsZVdpbmRvdyhyZXN1bHQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0RhdGEgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVSdWxlKGlkOiBzdHJpbmcsIG5ld1J1bGU6IFF1ZXJ5UnVsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBydWxlcyA9IGZpbHRlclBhcmFtZXRlcnMucnVsZXM/LlswXTtcbiAgICAgICAgaWYgKCFydWxlcyB8fCBydWxlcy5ydWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUnVsZXMoW25ld1J1bGVdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9sZFJ1bGUgPSBydWxlcy5ydWxlcy5maW5kKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgPT09IGlkKSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgbGV0IG5ld1J1bGVzID0gcnVsZXMucnVsZXM7XG4gICAgICAgIGlmIChvbGRSdWxlKSB7XG4gICAgICAgICAgICBpZiAobmV3UnVsZSkge1xuICAgICAgICAgICAgICAgIC8vIEFycmF5IHJlcGxhY2VcbiAgICAgICAgICAgICAgICBuZXdSdWxlcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgLi4ucnVsZXMucnVsZXMuc2xpY2UoMCwgcnVsZXMucnVsZXMuaW5kZXhPZihvbGRSdWxlKSksXG4gICAgICAgICAgICAgICAgICAgIG5ld1J1bGUsXG4gICAgICAgICAgICAgICAgICAgIC4uLnJ1bGVzLnJ1bGVzLnNsaWNlKHJ1bGVzLnJ1bGVzLmluZGV4T2Yob2xkUnVsZSkgKyAxLCBydWxlcy5ydWxlcy5sZW5ndGgpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UnVsZXMgPSBydWxlcy5ydWxlcy5maWx0ZXIoKHIpID0+IChyIGFzIFF1ZXJ5UnVsZU1vZGVsKS5pZCAhPT0gaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3UnVsZXMgPSBbLi4ubmV3UnVsZXMsIG5ld1J1bGVdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlUnVsZXMobmV3UnVsZXMgYXMgUXVlcnlSdWxlTW9kZWxbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZURlZmF1bHRSdWxlcyhydWxlOiAoUXVlcnlSdWxlTW9kZWwgfCBRdWVyeU1vZGVsKVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGRlZmF1bHRSdWxlczogcnVsZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdXBkYXRlR2xvYmFsUnVsZXMocnVsZXM6IFF1ZXJ5TW9kZWxbXSwgdXBkYXRlUXVlcnlQYXJhbXMgPSB0cnVlLCByZXNldCA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHJlc2V0KSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0UGFnaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgbmV3UnVsZXM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCA9IHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBydWxlc1xuICAgICAgICB9O1xuXG4gICAgICAgIGF3YWl0IHRoaXMubG9hZERhdGEobmV3UnVsZXMsIHVwZGF0ZVF1ZXJ5UGFyYW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUnVsZUZyb21Db25maWcoY29uZmlnOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNldFBhZ2luZygpO1xuXG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IG5ld1J1bGVzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgPSB7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICAgICAgICAuLi4oZmlsdGVyUGFyYW1ldGVycy5ydWxlcyBhcyBRdWVyeU1vZGVsW10pLFxuICAgICAgICAgICAgICAgIFFCRmlsdGVyVXRpbHMuY3JlYXRlUXVlcnlNb2RlbChjb25maWcpXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgc2hvd1F1ZXJ5QnVpbGRlcjogdHJ1ZVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxvYWREYXRhKG5ld1J1bGVzLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlUnVsZXMocnVsZXM6IFF1ZXJ5UnVsZU1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG5ld1J1bGVzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgPSB7XG4gICAgICAgICAgICBvcmRlcjogZmlsdGVyUGFyYW1ldGVycy5vcmRlcixcbiAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246IFwiYW5kXCIsXG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMubG9hZERhdGEobmV3UnVsZXMsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGVRdWVyeUJ1aWxkZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgIHNob3dRdWVyeUJ1aWxkZXI6ICFzdGF0ZS5zaG93UXVlcnlCdWlsZGVyXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkTGlzdFZhbHVlKHZhbHVlOiBhbnksIG9wdHM/OiBBZGRFbnRpdGllc09wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IGFycmF5QWRkKGZpbHRlclJlc3VsdC52YWx1ZXMsIHZhbHVlLCBvcHRzKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlTGlzdFZhbHVlKHZhbHVlOiBhbnksIGtleSA9IFwiaWRcIik6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclJlc3VsdCB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoIWZpbHRlclJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiB7XG4gICAgICAgICAgICAgICAgLi4uZmlsdGVyUmVzdWx0LFxuICAgICAgICAgICAgICAgIHZhbHVlczogYXJyYXlVcHNlcnQoZmlsdGVyUmVzdWx0LnZhbHVlcywgdmFsdWVba2V5XSwgdmFsdWUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVMaXN0VmFsdWUodmFsdWU6IGFueSwga2V5ID0gXCJpZFwiKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghZmlsdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBhcnJheVJlbW92ZShmaWx0ZXJSZXN1bHQudmFsdWVzLCB2YWx1ZVtrZXldKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsKTogRmlsdGVyUGFyYW1ldGVyc01vZGVsIHtcbiAgICAgICAgY29uc3QgeyBkZWZhdWx0UnVsZXMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBydWxlczogZmlsdGVyUGFyYW1ldGVycz8ucnVsZXMgPyBbLi4uZmlsdGVyUGFyYW1ldGVycy5ydWxlc10gOiBbXVxuICAgICAgICB9O1xuICAgICAgICBpZiAoZGVmYXVsdFJ1bGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcnMucnVsZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcImFuZFwiLFxuICAgICAgICAgICAgICAgIHJ1bGVzOiBkZWZhdWx0UnVsZXNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhc3luYyB1cGRhdGVRdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5hY3RpdmF0ZWRSb3V0ZSB8fCB0aGlzLmRpc2FibGVRdWVyeVBhcmFtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICBxdWVyeVBhcmFtcyxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IFwibWVyZ2VcIlxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1lcmdlUGFyYW1ldGVycyhwYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsKTogRmlsdGVyUGFyYW1ldGVyc01vZGVsIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghcGFyYW1ldGVycykge1xuICAgICAgICAgICAgcmV0dXJuIGZpbHRlclBhcmFtZXRlcnM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIC4uLnBhcmFtZXRlcnMsXG4gICAgICAgICAgICBvcmRlcjogT3JkZXJVdGlscy5tZXJnZU9yZGVyKGZpbHRlclBhcmFtZXRlcnMub3JkZXIsIHBhcmFtZXRlcnMub3JkZXIpLFxuICAgICAgICAgICAgZmFsbGJhY2tPcmRlcjogT3JkZXJVdGlscy5jb21iaW5lT3JkZXJzKGZpbHRlclBhcmFtZXRlcnMuZmFsbGJhY2tPcmRlciwgcGFyYW1ldGVycy5mYWxsYmFja09yZGVyLCB7IHVuaXF1ZUZyb21CYWNrOiB0cnVlIH0pXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnM6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgdXBkYXRlUXVlcnlQYXJhbXM6IGJvb2xlYW4gPSB0cnVlLCBtZXJnZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmIChtZXJnZSkge1xuICAgICAgICAgICAgcGFyYW1ldGVycyA9IHRoaXMubWVyZ2VQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdG9yZS5zZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpO1xuICAgICAgICBpZiAodXBkYXRlUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXMoUXVlcnlQYXJhbXNVdGlscy5maWx0ZXJQYXJhbWV0ZXJzVG9QYXJhbXNNYXAocGFyYW1ldGVycykpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|