@recursyve/nice-data-filter-kit 18.0.2 → 20.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 +391 -327
- package/fesm2022/recursyve-nice-data-filter-kit.mjs.map +1 -1
- package/index.d.ts +1681 -5
- package/package.json +9 -11
- 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/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 -37
- 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/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 -14
- 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,24 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
import { StoreConfig } from "@datorama/akita";
|
|
4
|
-
import { initialBaseListState, NiceBaseListStore } from "../../base-list/store/base-list.store";
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export const initialValue = {
|
|
7
|
-
...initialBaseListState
|
|
8
|
-
};
|
|
9
|
-
let NiceMultiStateListStore = class NiceMultiStateListStore extends NiceBaseListStore {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(null, []);
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceMultiStateListStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceMultiStateListStore }); }
|
|
15
|
-
};
|
|
16
|
-
NiceMultiStateListStore = __decorate([
|
|
17
|
-
StoreConfig({ name: "multi-state-list", resettable: true }),
|
|
18
|
-
__metadata("design:paramtypes", [])
|
|
19
|
-
], NiceMultiStateListStore);
|
|
20
|
-
export { NiceMultiStateListStore };
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceMultiStateListStore, decorators: [{
|
|
22
|
-
type: Injectable
|
|
23
|
-
}], ctorParameters: () => [] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc3RhdGUtbGlzdC5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9tdWx0aS1zdGF0ZS1saXN0L3N0b3JlL211bHRpLXN0YXRlLWxpc3Quc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFLbkgsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUE0QjtJQUNqRCxHQUFHLG9CQUFvQjtDQUMxQixDQUFDO0FBSUssSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBd0IsU0FBUSxpQkFBMEM7SUFDbkY7UUFDSSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7K0dBSFEsdUJBQXVCO21IQUF2Qix1QkFBdUI7O0FBQXZCLHVCQUF1QjtJQURuQyxXQUFXLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDOztHQUMvQyx1QkFBdUIsQ0FJbkM7OzRGQUpZLHVCQUF1QjtrQkFGbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3RvcmVDb25maWcgfSBmcm9tIFwiQGRhdG9yYW1hL2FraXRhXCI7XG5pbXBvcnQgeyBpbml0aWFsQmFzZUxpc3RTdGF0ZSwgTmljZUJhc2VMaXN0U3RhdGUsIE5pY2VCYXNlTGlzdFN0b3JlIH0gZnJvbSBcIi4uLy4uL2Jhc2UtbGlzdC9zdG9yZS9iYXNlLWxpc3Quc3RvcmVcIjtcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBOaWNlTXVsdGlTdGF0ZUxpc3RTdGF0ZSBleHRlbmRzIE5pY2VCYXNlTGlzdFN0YXRlIHt9XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsVmFsdWU6IE5pY2VNdWx0aVN0YXRlTGlzdFN0YXRlID0ge1xuICAgIC4uLmluaXRpYWxCYXNlTGlzdFN0YXRlXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5AU3RvcmVDb25maWcoeyBuYW1lOiBcIm11bHRpLXN0YXRlLWxpc3RcIiwgcmVzZXR0YWJsZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5pY2VNdWx0aVN0YXRlTGlzdFN0b3JlIGV4dGVuZHMgTmljZUJhc2VMaXN0U3RvcmU8TmljZU11bHRpU3RhdGVMaXN0U3RhdGU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIobnVsbCwgW10pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { Overlay, OverlayPositionBuilder } from "@angular/cdk/overlay";
|
|
2
|
-
import { Platform } from "@angular/cdk/platform";
|
|
3
|
-
import { ComponentPortal } from "@angular/cdk/portal";
|
|
4
|
-
import { Directive, ElementRef, EventEmitter, HostListener, Injector, Input, Output } from "@angular/core";
|
|
5
|
-
import { NiceFilterViewQuery } from "../../store/nice-filter-view.query";
|
|
6
|
-
import { NiceFilterViewService } from "../../store/nice-filter-view.service";
|
|
7
|
-
import { NiceAdvancedFilterSelectionComponent } from "./filter-selection/filter-selection.component";
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../../store/nice-filter-view.query";
|
|
10
|
-
import * as i2 from "../../store/nice-filter-view.service";
|
|
11
|
-
import * as i3 from "@angular/cdk/overlay";
|
|
12
|
-
import * as i4 from "@angular/cdk/platform";
|
|
13
|
-
export class AdvancedFiltersTriggerDirective {
|
|
14
|
-
get connectedPosition() {
|
|
15
|
-
if (this.position === "topRight") {
|
|
16
|
-
return {
|
|
17
|
-
originX: "end",
|
|
18
|
-
originY: "top",
|
|
19
|
-
overlayX: "start",
|
|
20
|
-
overlayY: "top",
|
|
21
|
-
offsetX: 15
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
return {
|
|
25
|
-
originX: "center",
|
|
26
|
-
originY: "bottom",
|
|
27
|
-
overlayX: "center",
|
|
28
|
-
overlayY: "top"
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
constructor(query, service, overlayPositionBuilder, elementRef, overlay, platform, injector) {
|
|
32
|
-
this.query = query;
|
|
33
|
-
this.service = service;
|
|
34
|
-
this.overlayPositionBuilder = overlayPositionBuilder;
|
|
35
|
-
this.elementRef = elementRef;
|
|
36
|
-
this.overlay = overlay;
|
|
37
|
-
this.platform = platform;
|
|
38
|
-
this.injector = injector;
|
|
39
|
-
this.position = "bottomCenter";
|
|
40
|
-
this.advancedFilterSelected = new EventEmitter();
|
|
41
|
-
}
|
|
42
|
-
click() {
|
|
43
|
-
const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([
|
|
44
|
-
this.connectedPosition
|
|
45
|
-
]);
|
|
46
|
-
this.overlayRef = this.overlay.create({
|
|
47
|
-
positionStrategy,
|
|
48
|
-
hasBackdrop: true,
|
|
49
|
-
backdropClass: "cdk-overlay-transparent-backdrop",
|
|
50
|
-
scrollStrategy: this.overlay.scrollStrategies.block()
|
|
51
|
-
});
|
|
52
|
-
const filterSelectionPortal = new ComponentPortal(NiceAdvancedFilterSelectionComponent, null, this.injector);
|
|
53
|
-
this.filterSelectionRef = this.overlayRef.attach(filterSelectionPortal);
|
|
54
|
-
this.updateFilterSelectionComponent();
|
|
55
|
-
this.overlayRef.backdropClick().subscribe(() => this.close());
|
|
56
|
-
}
|
|
57
|
-
close() {
|
|
58
|
-
this.overlayRef.dispose();
|
|
59
|
-
}
|
|
60
|
-
updateFilterSelectionComponent() {
|
|
61
|
-
if (!this.filterSelectionRef) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
this.filterSelectionRef.instance.filterSelected.subscribe((filter) => {
|
|
65
|
-
this.advancedFilterSelected.emit(filter);
|
|
66
|
-
this.close();
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedFiltersTriggerDirective, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }, { token: i3.OverlayPositionBuilder }, { token: i0.ElementRef }, { token: i3.Overlay }, { token: i4.Platform }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
70
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: { position: "position" }, outputs: { advancedFilterSelected: "advancedFilterSelected" }, host: { listeners: { "click": "click()" } }, exportAs: ["niceAdvancedFiltersTrigger"], ngImport: i0 }); }
|
|
71
|
-
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AdvancedFiltersTriggerDirective, decorators: [{
|
|
73
|
-
type: Directive,
|
|
74
|
-
args: [{ selector: "[niceAdvancedFiltersTrigger]", exportAs: "niceAdvancedFiltersTrigger" }]
|
|
75
|
-
}], ctorParameters: () => [{ type: i1.NiceFilterViewQuery }, { type: i2.NiceFilterViewService }, { type: i3.OverlayPositionBuilder }, { type: i0.ElementRef }, { type: i3.Overlay }, { type: i4.Platform }, { type: i0.Injector }], propDecorators: { position: [{
|
|
76
|
-
type: Input
|
|
77
|
-
}], advancedFilterSelected: [{
|
|
78
|
-
type: Output
|
|
79
|
-
}], click: [{
|
|
80
|
-
type: HostListener,
|
|
81
|
-
args: ["click"]
|
|
82
|
-
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2NvbXBvbmVudHMvYWR2YW5jZWQtZmlsdGVycy9hZHZhbmNlZC1maWx0ZXJzLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsT0FBTyxFQUFFLHNCQUFzQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7O0FBR3JHLE1BQU0sT0FBTywrQkFBK0I7SUFVeEMsSUFBWSxpQkFBaUI7UUFDekIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQy9CLE9BQU87Z0JBQ0gsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFFBQVEsRUFBRSxLQUFLO2dCQUNmLE9BQU8sRUFBRSxFQUFFO2FBQ2QsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPO1lBQ0gsT0FBTyxFQUFFLFFBQVE7WUFDakIsT0FBTyxFQUFFLFFBQVE7WUFDakIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsUUFBUSxFQUFFLEtBQUs7U0FDbEIsQ0FBQztJQUNOLENBQUM7SUFFRCxZQUNZLEtBQTBCLEVBQzFCLE9BQThCLEVBQzlCLHNCQUE4QyxFQUM5QyxVQUFzQixFQUN0QixPQUFnQixFQUNoQixRQUFrQixFQUNsQixRQUFrQjtRQU5sQixVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUM5QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVU7UUEvQnZCLGFBQVEsR0FBZ0MsY0FBYyxDQUFDO1FBR3ZELDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO0lBNkIxRSxDQUFDO0lBR0csS0FBSztRQUNSLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDcEcsSUFBSSxDQUFDLGlCQUFpQjtTQUN6QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ2xDLGdCQUFnQjtZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixhQUFhLEVBQUUsa0NBQWtDO1lBQ2pELGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRTtTQUN4RCxDQUFDLENBQUM7UUFFSCxNQUFNLHFCQUFxQixHQUFHLElBQUksZUFBZSxDQUFDLG9DQUFvQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFFdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLEtBQUs7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyw4QkFBOEI7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBZ0MsRUFBRSxFQUFFO1lBQzNGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F2RVEsK0JBQStCO21HQUEvQiwrQkFBK0I7OzRGQUEvQiwrQkFBK0I7a0JBRDNDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsOEJBQThCLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFOzhQQU1wRixRQUFRO3NCQURkLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixNQUFNO2dCQWlDQSxLQUFLO3NCQURYLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uLCBPdmVybGF5LCBPdmVybGF5UG9zaXRpb25CdWlsZGVyLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcGxhdGZvcm1cIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1F1ZXJ5IH0gZnJvbSBcIi4uLy4uL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJWaWV3U2VydmljZSB9IGZyb20gXCIuLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VBZHZhbmNlZEZpbHRlclNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL2ZpbHRlci1zZWxlY3Rpb24vZmlsdGVyLXNlbGVjdGlvbi5jb21wb25lbnRcIjtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiBcIltuaWNlQWR2YW5jZWRGaWx0ZXJzVHJpZ2dlcl1cIiwgZXhwb3J0QXM6IFwibmljZUFkdmFuY2VkRmlsdGVyc1RyaWdnZXJcIiB9KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkRmlsdGVyc1RyaWdnZXJEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgICBwcml2YXRlIGZpbHRlclNlbGVjdGlvblJlZjogQ29tcG9uZW50UmVmPE5pY2VBZHZhbmNlZEZpbHRlclNlbGVjdGlvbkNvbXBvbmVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwb3NpdGlvbjogXCJ0b3BSaWdodFwiIHwgXCJib3R0b21DZW50ZXJcIiA9IFwiYm90dG9tQ2VudGVyXCI7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWR2YW5jZWRGaWx0ZXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsPigpO1xuXG4gICAgcHJpdmF0ZSBnZXQgY29ubmVjdGVkUG9zaXRpb24oKTogQ29ubmVjdGVkUG9zaXRpb24ge1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gXCJ0b3BSaWdodFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6IFwiZW5kXCIsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogXCJ0b3BcIixcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogXCJzdGFydFwiLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiBcInRvcFwiLFxuICAgICAgICAgICAgICAgIG9mZnNldFg6IDE1XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9yaWdpblg6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBvcmlnaW5ZOiBcImJvdHRvbVwiLFxuICAgICAgICAgICAgb3ZlcmxheVg6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHF1ZXJ5OiBOaWNlRmlsdGVyVmlld1F1ZXJ5LFxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IE5pY2VGaWx0ZXJWaWV3U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5UG9zaXRpb25CdWlsZGVyOiBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXG4gICAgcHVibGljIGNsaWNrKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5UG9zaXRpb25CdWlsZGVyLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50UmVmKS53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkUG9zaXRpb25cbiAgICAgICAgXSk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogXCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyU2VsZWN0aW9uUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChOaWNlQWR2YW5jZWRGaWx0ZXJTZWxlY3Rpb25Db21wb25lbnQsIG51bGwsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmZpbHRlclNlbGVjdGlvblJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2goZmlsdGVyU2VsZWN0aW9uUG9ydGFsKTtcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJTZWxlY3Rpb25Db21wb25lbnQoKTtcblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVGaWx0ZXJTZWxlY3Rpb25Db21wb25lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJTZWxlY3Rpb25SZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlsdGVyU2VsZWN0aW9uUmVmLmluc3RhbmNlLmZpbHRlclNlbGVjdGVkLnN1YnNjcmliZSgoZmlsdGVyOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZWRGaWx0ZXJTZWxlY3RlZC5lbWl0KGZpbHRlcik7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Optional, ViewEncapsulation } from "@angular/core";
|
|
2
|
-
import { GeneratedFormGroup, NgxFormGeneratorProvider } from "@recursyve/ngx-form-generator";
|
|
3
|
-
import { NICE_ASYNC_TYPEAHEAD_PROVIDER } from "@recursyve/nice-ui-kit.v2";
|
|
4
|
-
import { startWith } from "rxjs";
|
|
5
|
-
import { NiceFilterViewQuery } from "../../store/nice-filter-view.query";
|
|
6
|
-
import { NiceFilterViewService } from "../../store/nice-filter-view.service";
|
|
7
|
-
import { ADVANCED_FILTER_ICONS } from "./advanced-filters.constant";
|
|
8
|
-
import { AdvancedFiltersForm, FilterForm } from "./advanced-filters.form";
|
|
9
|
-
import { AdvancedFiltersAsyncTypeaheadProvider } from "./providers/async-typeahead.provider";
|
|
10
|
-
import { AdvancedFiltersUtils } from "./utils/advanced-filters.utils";
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@recursyve/ngx-form-generator";
|
|
13
|
-
import * as i2 from "../../store/nice-filter-view.query";
|
|
14
|
-
import * as i3 from "../../store/nice-filter-view.service";
|
|
15
|
-
import * as i4 from "@angular/common";
|
|
16
|
-
import * as i5 from "@angular/forms";
|
|
17
|
-
import * as i6 from "@angular/material/radio";
|
|
18
|
-
import * as i7 from "@angular/material/icon";
|
|
19
|
-
import * as i8 from "@angular/material/button";
|
|
20
|
-
import * as i9 from "./rule/rule.component";
|
|
21
|
-
import * as i10 from "./advanced-filters-trigger.directive";
|
|
22
|
-
import * as i11 from "@ngx-translate/core";
|
|
23
|
-
export class NiceAdvancedFiltersComponent {
|
|
24
|
-
constructor(icons, formGroup, query, service, changeDetectorRef) {
|
|
25
|
-
this.icons = icons;
|
|
26
|
-
this.formGroup = formGroup;
|
|
27
|
-
this.query = query;
|
|
28
|
-
this.service = service;
|
|
29
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
30
|
-
this.config$ = this.query.selectFilterConfig();
|
|
31
|
-
this.rulesFormArray = this.formGroup.get("rules");
|
|
32
|
-
this.rules$ = this.rulesFormArray.valueChanges.pipe(startWith(this.rulesFormArray.value));
|
|
33
|
-
}
|
|
34
|
-
ngOnInit() {
|
|
35
|
-
const { filterParameters, subStates } = this.query.getValue();
|
|
36
|
-
if (filterParameters.rules?.length) {
|
|
37
|
-
this.formGroup.patchValue(new AdvancedFiltersForm(filterParameters.rules[0]));
|
|
38
|
-
}
|
|
39
|
-
if (subStates.initialSelectedFilter) {
|
|
40
|
-
this.onClickAddRule(subStates.initialSelectedFilter);
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
ngOnDestroy() {
|
|
45
|
-
this.removeEmptyRules({ reload: false });
|
|
46
|
-
}
|
|
47
|
-
onClickAddRule(filterConfigurationModel) {
|
|
48
|
-
this.rulesFormArray.push(new FilterForm(AdvancedFiltersUtils.createRule(filterConfigurationModel)));
|
|
49
|
-
this.changeDetectorRef.markForCheck();
|
|
50
|
-
}
|
|
51
|
-
onClickDeleteRule(index) {
|
|
52
|
-
this.rulesFormArray.removeAt(index);
|
|
53
|
-
if (!this.rulesFormArray.length) {
|
|
54
|
-
this.service.setRules([]);
|
|
55
|
-
this.service.filter();
|
|
56
|
-
this.onClose();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
onClose() {
|
|
60
|
-
this.removeEmptyRules();
|
|
61
|
-
this.service.updateSubState("showAdvancedFilters", false);
|
|
62
|
-
}
|
|
63
|
-
onRefresh() {
|
|
64
|
-
this.service.updateSubState("initialSelectedFilter", null);
|
|
65
|
-
this.service.setRules(this.formGroup.getRawValue().transform());
|
|
66
|
-
this.service.resetResult(true);
|
|
67
|
-
this.service.filter();
|
|
68
|
-
}
|
|
69
|
-
removeEmptyRules({ reload } = { reload: true }) {
|
|
70
|
-
if (this.rulesFormArray.length !== 1) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
const values = this.rulesFormArray.get([0, "values"]).getRawValue();
|
|
74
|
-
if (values.length !== 1) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
const value = values[0];
|
|
78
|
-
if (value.value || value.value === false || value.secondValue || value.secondValue === true) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
this.rulesFormArray.removeAt(0);
|
|
82
|
-
const { filterParameters } = this.query.getValue();
|
|
83
|
-
if (!filterParameters.rules.length || !filterParameters.rules[0].rules.length) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
this.service.setRules([]);
|
|
87
|
-
if (!reload) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if (filterParameters.rules[0].rules[0].value) {
|
|
91
|
-
this.service.filter();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAdvancedFiltersComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: i1.GeneratedFormGroup }, { token: i2.NiceFilterViewQuery }, { token: i3.NiceFilterViewService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NiceAdvancedFiltersComponent, selector: "nice-advanced-filters", providers: [
|
|
96
|
-
NgxFormGeneratorProvider.forFeature([AdvancedFiltersForm]),
|
|
97
|
-
{
|
|
98
|
-
provide: NICE_ASYNC_TYPEAHEAD_PROVIDER,
|
|
99
|
-
useClass: AdvancedFiltersAsyncTypeaheadProvider,
|
|
100
|
-
multi: true
|
|
101
|
-
}
|
|
102
|
-
], ngImport: i0, template: "<div class=\"flex flex-col gap-4\" [formGroup]=\"formGroup\">\n <div class=\"advanced-filter-title\">{{ \"components.nice_advanced_filters.title\" | translate }}</div>\n\n <div class=\"flex flex-row gap-12\">\n <div class=\"advanced-filter-condition\">{{ \"components.nice_advanced_filters.conditions.should_match\" | translate }}</div>\n\n <mat-radio-group formControlName=\"condition\">\n <mat-radio-button value=\"and\"><span class=\"ml-4 mr-8\">{{ \"components.nice_advanced_filters.conditions.every\" | translate }}</span></mat-radio-button>\n <mat-radio-button value=\"or\"><span class=\"ml-4 mr-8\">{{ \"components.nice_advanced_filters.conditions.some\" | translate }}</span></mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div class=\"flex flex-col gap-4\" formArrayName=\"rules\" *ngFor=\"let _ of rulesFormArray.controls; let i = index\">\n <nice-advanced-rule [filterConfigs]=\"config$ | async\" [formGroupName]=\"i\" (remove)=\"onClickDeleteRule(i)\"></nice-advanced-rule>\n </div>\n\n <div>\n <button class=\"add-condition\" mat-stroked-button color=\"accent\" niceAdvancedFiltersTrigger position=\"topRight\" (advancedFilterSelected)=\"onClickAddRule($event)\">\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{ icons.add.matIcon }}</mat-icon>\n\n <div>{{ \"components.nice_advanced_filters.add_condition\" | translate }}</div>\n </div>\n </button>\n </div>\n\n <div class=\"flex gap-6 justify-end pt-4\">\n <button class=\"close-button\" mat-button color=\"accent\" (click)=\"onClose()\">\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n\n <div>{{ \"components.nice_advanced_filters.close\" | translate }}</div>\n </div>\n </button>\n\n <button class=\"refresh-button\" mat-flat-button color=\"accent\" (click)=\"onRefresh()\">\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.refresh.svgIcon\">{{ icons.refresh.matIcon }}</mat-icon>\n\n <div>{{ \"components.nice_advanced_filters.refresh\" | translate }}</div>\n </div>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i6.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i6.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i9.NiceAdvancedRuleComponent, selector: "nice-advanced-rule", inputs: ["filterConfigs"], outputs: ["remove"] }, { kind: "directive", type: i10.AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
103
|
-
}
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAdvancedFiltersComponent, decorators: [{
|
|
105
|
-
type: Component,
|
|
106
|
-
args: [{ selector: "nice-advanced-filters", encapsulation: ViewEncapsulation.None, providers: [
|
|
107
|
-
NgxFormGeneratorProvider.forFeature([AdvancedFiltersForm]),
|
|
108
|
-
{
|
|
109
|
-
provide: NICE_ASYNC_TYPEAHEAD_PROVIDER,
|
|
110
|
-
useClass: AdvancedFiltersAsyncTypeaheadProvider,
|
|
111
|
-
multi: true
|
|
112
|
-
}
|
|
113
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-4\" [formGroup]=\"formGroup\">\n <div class=\"advanced-filter-title\">{{ \"components.nice_advanced_filters.title\" | translate }}</div>\n\n <div class=\"flex flex-row gap-12\">\n <div class=\"advanced-filter-condition\">{{ \"components.nice_advanced_filters.conditions.should_match\" | translate }}</div>\n\n <mat-radio-group formControlName=\"condition\">\n <mat-radio-button value=\"and\"><span class=\"ml-4 mr-8\">{{ \"components.nice_advanced_filters.conditions.every\" | translate }}</span></mat-radio-button>\n <mat-radio-button value=\"or\"><span class=\"ml-4 mr-8\">{{ \"components.nice_advanced_filters.conditions.some\" | translate }}</span></mat-radio-button>\n </mat-radio-group>\n </div>\n\n <div class=\"flex flex-col gap-4\" formArrayName=\"rules\" *ngFor=\"let _ of rulesFormArray.controls; let i = index\">\n <nice-advanced-rule [filterConfigs]=\"config$ | async\" [formGroupName]=\"i\" (remove)=\"onClickDeleteRule(i)\"></nice-advanced-rule>\n </div>\n\n <div>\n <button class=\"add-condition\" mat-stroked-button color=\"accent\" niceAdvancedFiltersTrigger position=\"topRight\" (advancedFilterSelected)=\"onClickAddRule($event)\">\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{ icons.add.matIcon }}</mat-icon>\n\n <div>{{ \"components.nice_advanced_filters.add_condition\" | translate }}</div>\n </div>\n </button>\n </div>\n\n <div class=\"flex gap-6 justify-end pt-4\">\n <button class=\"close-button\" mat-button color=\"accent\" (click)=\"onClose()\">\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.close.svgIcon\">{{ icons.close.matIcon }}</mat-icon>\n\n <div>{{ \"components.nice_advanced_filters.close\" | translate }}</div>\n </div>\n </button>\n\n <button class=\"refresh-button\" mat-flat-button color=\"accent\" (click)=\"onRefresh()\">\n <div class=\"flex items-center gap-4\">\n <mat-icon [svgIcon]=\"icons.refresh.svgIcon\">{{ icons.refresh.matIcon }}</mat-icon>\n\n <div>{{ \"components.nice_advanced_filters.refresh\" | translate }}</div>\n </div>\n </button>\n </div>\n</div>\n" }]
|
|
114
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
115
|
-
type: Optional
|
|
116
|
-
}, {
|
|
117
|
-
type: Inject,
|
|
118
|
-
args: [ADVANCED_FILTER_ICONS]
|
|
119
|
-
}] }, { type: i1.GeneratedFormGroup }, { type: i2.NiceFilterViewQuery }, { type: i3.NiceFilterViewService }, { type: i0.ChangeDetectorRef }] });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYWR2YW5jZWQtZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYWR2YW5jZWQtZmlsdGVycy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBR04sUUFBUSxFQUNSLGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXNCLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFvQixNQUFNLHlCQUF5QixDQUFDO0FBRTVGLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSxv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Q0FBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDOytHQTNGUSw0QkFBNEIsa0JBT2IscUJBQXFCO21HQVBwQyw0QkFBNEIsZ0RBVjFCO1lBQ1Asd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMxRDtnQkFDSSxPQUFPLEVBQUUsNkJBQTZCO2dCQUN0QyxRQUFRLEVBQUUscUNBQXFDO2dCQUMvQyxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osMEJDbENMLHMxRUE0Q0E7OzRGRFBhLDRCQUE0QjtrQkFkeEMsU0FBUzsrQkFDSSx1QkFBdUIsaUJBRWxCLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Asd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt3QkFDMUQ7NEJBQ0ksT0FBTyxFQUFFLDZCQUE2Qjs0QkFDdEMsUUFBUSxFQUFFLHFDQUFxQzs0QkFDL0MsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQVMxQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEluamVjdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBHZW5lcmF0ZWRGb3JtQXJyYXksIEdlbmVyYXRlZEZvcm1Hcm91cCwgTmd4Rm9ybUdlbmVyYXRvclByb3ZpZGVyIH0gZnJvbSBcIkByZWN1cnN5dmUvbmd4LWZvcm0tZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBOSUNFX0FTWU5DX1RZUEVBSEVBRF9QUk9WSURFUiB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzdGFydFdpdGggfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnF1ZXJ5XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBRFZBTkNFRF9GSUxURVJfSUNPTlMgfSBmcm9tIFwiLi9hZHZhbmNlZC1maWx0ZXJzLmNvbnN0YW50XCI7XG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlcnNGb3JtLCBGaWx0ZXJGb3JtLCBGaWx0ZXJGb3JtVmFsdWVzIH0gZnJvbSBcIi4vYWR2YW5jZWQtZmlsdGVycy5mb3JtXCI7XG5pbXBvcnQgeyBOaWNlQWR2YW5jZWRGaWx0ZXJJY29uT3B0aW9ucyB9IGZyb20gXCIuL21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgQWR2YW5jZWRGaWx0ZXJzQXN5bmNUeXBlYWhlYWRQcm92aWRlciB9IGZyb20gXCIuL3Byb3ZpZGVycy9hc3luYy10eXBlYWhlYWQucHJvdmlkZXJcIjtcbmltcG9ydCB7IEFkdmFuY2VkRmlsdGVyc1V0aWxzIH0gZnJvbSBcIi4vdXRpbHMvYWR2YW5jZWQtZmlsdGVycy51dGlsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLWFkdmFuY2VkLWZpbHRlcnNcIixcbiAgICB0ZW1wbGF0ZVVybDogXCJhZHZhbmNlZC1maWx0ZXJzLnRlbXBsYXRlLmh0bWxcIixcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBOZ3hGb3JtR2VuZXJhdG9yUHJvdmlkZXIuZm9yRmVhdHVyZShbQWR2YW5jZWRGaWx0ZXJzRm9ybV0pLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOSUNFX0FTWU5DX1RZUEVBSEVBRF9QUk9WSURFUixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBBZHZhbmNlZEZpbHRlcnNBc3luY1R5cGVhaGVhZFByb3ZpZGVyLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTmljZUFkdmFuY2VkRmlsdGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgY29uZmlnJCA9IHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyQ29uZmlnKCk7XG5cbiAgICBwdWJsaWMgcnVsZXMkOiBPYnNlcnZhYmxlPEZpbHRlckZvcm1bXT47XG4gICAgcHVibGljIHJ1bGVzRm9ybUFycmF5OiBHZW5lcmF0ZWRGb3JtQXJyYXk8RmlsdGVyRm9ybT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBRFZBTkNFRF9GSUxURVJfSUNPTlMpXG4gICAgICAgIHB1YmxpYyBpY29uczogTmljZUFkdmFuY2VkRmlsdGVySWNvbk9wdGlvbnMsXG4gICAgICAgIHB1YmxpYyBmb3JtR3JvdXA6IEdlbmVyYXRlZEZvcm1Hcm91cDxBZHZhbmNlZEZpbHRlcnNGb3JtPixcbiAgICAgICAgcHJpdmF0ZSBxdWVyeTogTmljZUZpbHRlclZpZXdRdWVyeSxcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBOaWNlRmlsdGVyVmlld1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHRoaXMucnVsZXNGb3JtQXJyYXkgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJydWxlc1wiKSBhcyBHZW5lcmF0ZWRGb3JtQXJyYXk8RmlsdGVyRm9ybT47XG4gICAgICAgIHRoaXMucnVsZXMkID0gdGhpcy5ydWxlc0Zvcm1BcnJheS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5ydWxlc0Zvcm1BcnJheS52YWx1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzLCBzdWJTdGF0ZXMgfSA9IHRoaXMucXVlcnkuZ2V0VmFsdWUoKTtcblxuICAgICAgICBpZiAoZmlsdGVyUGFyYW1ldGVycy5ydWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKG5ldyBBZHZhbmNlZEZpbHRlcnNGb3JtKGZpbHRlclBhcmFtZXRlcnMucnVsZXNbMF0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWJTdGF0ZXMuaW5pdGlhbFNlbGVjdGVkRmlsdGVyKSB7XG4gICAgICAgICAgICB0aGlzLm9uQ2xpY2tBZGRSdWxlKHN1YlN0YXRlcy5pbml0aWFsU2VsZWN0ZWRGaWx0ZXIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUVtcHR5UnVsZXMoeyByZWxvYWQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsaWNrQWRkUnVsZShmaWx0ZXJDb25maWd1cmF0aW9uTW9kZWw6IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJ1bGVzRm9ybUFycmF5LnB1c2gobmV3IEZpbHRlckZvcm0oQWR2YW5jZWRGaWx0ZXJzVXRpbHMuY3JlYXRlUnVsZShmaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpKSk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tEZWxldGVSdWxlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ydWxlc0Zvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgICAgIGlmICghdGhpcy5ydWxlc0Zvcm1BcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5zZXRSdWxlcyhbXSk7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuZmlsdGVyKCk7XG4gICAgICAgICAgICB0aGlzLm9uQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUVtcHR5UnVsZXMoKTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVN1YlN0YXRlKFwic2hvd0FkdmFuY2VkRmlsdGVyc1wiLCBmYWxzZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVmcmVzaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVN1YlN0YXRlKFwiaW5pdGlhbFNlbGVjdGVkRmlsdGVyXCIsIG51bGwpO1xuICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0UnVsZXModGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKS50cmFuc2Zvcm0oKSk7XG4gICAgICAgIHRoaXMuc2VydmljZS5yZXNldFJlc3VsdCh0cnVlKTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmZpbHRlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVFbXB0eVJ1bGVzKHsgcmVsb2FkIH06IHsgcmVsb2FkOiBib29sZWFuIH0gPSB7IHJlbG9hZDogdHJ1ZSB9KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJ1bGVzRm9ybUFycmF5Lmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5ydWxlc0Zvcm1BcnJheS5nZXQoWzAsIFwidmFsdWVzXCJdKS5nZXRSYXdWYWx1ZSgpIGFzIEZpbHRlckZvcm1WYWx1ZXNbXTtcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggIT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzWzBdO1xuICAgICAgICBpZiAodmFsdWUudmFsdWUgfHwgdmFsdWUudmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlLnNlY29uZFZhbHVlIHx8IHZhbHVlLnNlY29uZFZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJ1bGVzRm9ybUFycmF5LnJlbW92ZUF0KDApO1xuXG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5xdWVyeS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoIWZpbHRlclBhcmFtZXRlcnMucnVsZXMubGVuZ3RoIHx8ICFmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzWzBdLnJ1bGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXJ2aWNlLnNldFJ1bGVzKFtdKTtcbiAgICAgICAgaWYgKCFyZWxvYWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoZmlsdGVyUGFyYW1ldGVycy5ydWxlc1swXS5ydWxlc1swXSBhcyBRdWVyeVJ1bGVNb2RlbCkudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5maWx0ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWR2YW5jZWQtZmlsdGVyLXRpdGxlXCI+e3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy50aXRsZVwiIHwgdHJhbnNsYXRlIH19PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtMTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkdmFuY2VkLWZpbHRlci1jb25kaXRpb25cIj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNvbmRpdGlvbnMuc2hvdWxkX21hdGNoXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cblxuICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGZvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvblwiPlxuICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gdmFsdWU9XCJhbmRcIj48c3BhbiBjbGFzcz1cIm1sLTQgbXItOFwiPnt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMuY29uZGl0aW9ucy5ldmVyeVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPjwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIHZhbHVlPVwib3JcIj48c3BhbiBjbGFzcz1cIm1sLTQgbXItOFwiPnt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMuY29uZGl0aW9ucy5zb21lXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+PC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCIgZm9ybUFycmF5TmFtZT1cInJ1bGVzXCIgKm5nRm9yPVwibGV0IF8gb2YgcnVsZXNGb3JtQXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPG5pY2UtYWR2YW5jZWQtcnVsZSBbZmlsdGVyQ29uZmlnc109XCJjb25maWckIHwgYXN5bmNcIiBbZm9ybUdyb3VwTmFtZV09XCJpXCIgKHJlbW92ZSk9XCJvbkNsaWNrRGVsZXRlUnVsZShpKVwiPjwvbmljZS1hZHZhbmNlZC1ydWxlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZC1jb25kaXRpb25cIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBuaWNlQWR2YW5jZWRGaWx0ZXJzVHJpZ2dlciBwb3NpdGlvbj1cInRvcFJpZ2h0XCIgKGFkdmFuY2VkRmlsdGVyU2VsZWN0ZWQpPVwib25DbGlja0FkZFJ1bGUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLmFkZC5zdmdJY29uXCI+e3sgaWNvbnMuYWRkLm1hdEljb24gfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGRpdj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmFkZF9jb25kaXRpb25cIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTYganVzdGlmeS1lbmQgcHQtNFwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCIgbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJvbkNsb3NlKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5jbG9zZS5zdmdJY29uXCI+e3sgaWNvbnMuY2xvc2UubWF0SWNvbiB9fTwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMuY2xvc2VcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJyZWZyZXNoLWJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJvblJlZnJlc2goKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLnJlZnJlc2guc3ZnSWNvblwiPnt7IGljb25zLnJlZnJlc2gubWF0SWNvbiB9fTwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICA8ZGl2Pnt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMucmVmcmVzaFwiIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from "@angular/core";
|
|
2
|
-
export const ADVANCED_FILTER_ICONS = new InjectionToken("advanced_filter_icons");
|
|
3
|
-
export const ADVANCED_DATE_FILTER_OPTIONS = new InjectionToken("advanced_date_filter_options");
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2NvbXBvbmVudHMvYWR2YW5jZWQtZmlsdGVycy9hZHZhbmNlZC1maWx0ZXJzLmNvbnN0YW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNqRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY29uc3QgQURWQU5DRURfRklMVEVSX0lDT05TID0gbmV3IEluamVjdGlvblRva2VuKFwiYWR2YW5jZWRfZmlsdGVyX2ljb25zXCIpO1xuZXhwb3J0IGNvbnN0IEFEVkFOQ0VEX0RBVEVfRklMVEVSX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXCJhZHZhbmNlZF9kYXRlX2ZpbHRlcl9vcHRpb25zXCIpO1xuIl19
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Validators } from "@angular/forms";
|
|
3
|
-
import { AddValidatorIf, Array, Control, Required } from "@recursyve/ngx-form-generator";
|
|
4
|
-
import { QBFilterUtils } from "../../../query-builder/utils/qb-filter.utils";
|
|
5
|
-
export class FilterFormValues {
|
|
6
|
-
}
|
|
7
|
-
__decorate([
|
|
8
|
-
Control(),
|
|
9
|
-
Required(),
|
|
10
|
-
__metadata("design:type", Object)
|
|
11
|
-
], FilterFormValues.prototype, "value", void 0);
|
|
12
|
-
__decorate([
|
|
13
|
-
Control(),
|
|
14
|
-
AddValidatorIf(({ parent }) => QBFilterUtils.isDoubleInput(parent.operation), Validators.required),
|
|
15
|
-
__metadata("design:type", Object)
|
|
16
|
-
], FilterFormValues.prototype, "secondValue", void 0);
|
|
17
|
-
export class FilterForm {
|
|
18
|
-
constructor(value) {
|
|
19
|
-
if (!value) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (value.id) {
|
|
23
|
-
const rule = value;
|
|
24
|
-
const needsTwoValues = QBFilterUtils.isDoubleInput(rule.operation);
|
|
25
|
-
Object.assign(this, {
|
|
26
|
-
id: rule.id,
|
|
27
|
-
operation: rule.operation,
|
|
28
|
-
condition: "or",
|
|
29
|
-
values: [
|
|
30
|
-
{
|
|
31
|
-
value: needsTwoValues ? rule.value[0] : rule.value,
|
|
32
|
-
secondValue: needsTwoValues ? rule.value[1] : undefined
|
|
33
|
-
}
|
|
34
|
-
]
|
|
35
|
-
});
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const query = value;
|
|
39
|
-
const firstRule = query.rules[0];
|
|
40
|
-
if (!query.rules.every((rule) => rule.id === firstRule.id)) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
const firstRuleNeedsTwoValues = QBFilterUtils.isDoubleInput(firstRule.operation);
|
|
44
|
-
Object.assign(this, {
|
|
45
|
-
id: firstRule.id,
|
|
46
|
-
operation: firstRule.operation,
|
|
47
|
-
condition: query.condition,
|
|
48
|
-
values: query.rules.map((rule) => ({
|
|
49
|
-
value: firstRuleNeedsTwoValues ? rule.value[0] : rule.value,
|
|
50
|
-
secondValue: firstRuleNeedsTwoValues ? rule.value[1] : undefined
|
|
51
|
-
}))
|
|
52
|
-
});
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
transform() {
|
|
56
|
-
if (this.values.length === 1) {
|
|
57
|
-
const value = this.values[0];
|
|
58
|
-
return {
|
|
59
|
-
id: this.id,
|
|
60
|
-
operation: this.operation,
|
|
61
|
-
value: QBFilterUtils.isDoubleInput(this.operation) ? [value.value, value.secondValue] : value.value
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
return {
|
|
65
|
-
condition: this.condition,
|
|
66
|
-
rules: this.values.map((value) => ({
|
|
67
|
-
id: this.id,
|
|
68
|
-
operation: this.operation,
|
|
69
|
-
value: QBFilterUtils.isDoubleInput(this.operation) ? [value.value, value.secondValue] : value.value
|
|
70
|
-
}))
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
__decorate([
|
|
75
|
-
Control(),
|
|
76
|
-
Required(),
|
|
77
|
-
__metadata("design:type", String)
|
|
78
|
-
], FilterForm.prototype, "id", void 0);
|
|
79
|
-
__decorate([
|
|
80
|
-
Control(),
|
|
81
|
-
Required(),
|
|
82
|
-
__metadata("design:type", String)
|
|
83
|
-
], FilterForm.prototype, "operation", void 0);
|
|
84
|
-
__decorate([
|
|
85
|
-
Control(),
|
|
86
|
-
Required(),
|
|
87
|
-
__metadata("design:type", String)
|
|
88
|
-
], FilterForm.prototype, "condition", void 0);
|
|
89
|
-
__decorate([
|
|
90
|
-
Array(FilterFormValues),
|
|
91
|
-
__metadata("design:type", Array)
|
|
92
|
-
], FilterForm.prototype, "values", void 0);
|
|
93
|
-
export class AdvancedFiltersForm {
|
|
94
|
-
constructor(query) {
|
|
95
|
-
if (!query) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
if (!query?.rules) {
|
|
99
|
-
this.rules = [];
|
|
100
|
-
this.condition = "and";
|
|
101
|
-
}
|
|
102
|
-
this.condition = query.condition;
|
|
103
|
-
this.rules = query.rules.map(x => new FilterForm(x));
|
|
104
|
-
}
|
|
105
|
-
transform() {
|
|
106
|
-
return {
|
|
107
|
-
condition: this.condition,
|
|
108
|
-
rules: this.rules.map((rule) => rule.transform())
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
__decorate([
|
|
113
|
-
Array(FilterForm),
|
|
114
|
-
__metadata("design:type", Array)
|
|
115
|
-
], AdvancedFiltersForm.prototype, "rules", void 0);
|
|
116
|
-
__decorate([
|
|
117
|
-
Control({ defaultValue: "and" }),
|
|
118
|
-
Required(),
|
|
119
|
-
__metadata("design:type", String)
|
|
120
|
-
], AdvancedFiltersForm.prototype, "condition", void 0);
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25pY2UtZmlsdGVyLXZpZXcvY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXJzL2FkdmFuY2VkLWZpbHRlcnMuZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFN0UsTUFBTSxPQUFPLGdCQUFnQjtDQVE1QjtBQUxVO0lBRk4sT0FBTyxFQUFFO0lBQ1QsUUFBUSxFQUFFOzsrQ0FDTztBQUlYO0lBRk4sT0FBTyxFQUFFO0lBQ1QsY0FBYyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQzs7cURBQzNFO0FBRzVCLE1BQU0sT0FBTyxVQUFVO0lBZ0JuQixZQUFZLEtBQWtDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNULE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSyxLQUF3QixDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQy9CLE1BQU0sSUFBSSxHQUFHLEtBQXVCLENBQUM7WUFDckMsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLEVBQUUsRUFBRSxJQUFJLENB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QUZOLE9BQU8sRUFBRTtJQUNULFFBQVEsRUFBRTs7c0NBQ087QUFJWDtJQUZOLE9BQU8sRUFBRTtJQUNULFFBQVEsRUFBRTs7NkNBQ2M7QUFJbEI7SUFGTixPQUFPLEVBQUU7SUFDVCxRQUFRLEVBQUU7OzZDQUNpQjtBQUdyQjtJQUROLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQzs7MENBQ1U7QUFnRXRDLE1BQU0sT0FBTyxtQkFBbUI7SUFRNUIsWUFBWSxLQUFpQjtRQUN6QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sU0FBUztRQUNaLE9BQU87WUFDSCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDcEQsQ0FBQztJQUNOLENBQUM7Q0FDSjtBQTFCVTtJQUROLEtBQUssQ0FBQyxVQUFVLENBQUM7O2tEQUNTO0FBSXBCO0lBRk4sT0FBTyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ2hDLFFBQVEsRUFBRTs7c0RBQ2lCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWRkVmFsaWRhdG9ySWYsIEFycmF5LCBDb250cm9sLCBSZXF1aXJlZCB9IGZyb20gXCJAcmVjdXJzeXZlL25neC1mb3JtLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgQ29uZGl0aW9uLCBGaWx0ZXJPcGVyYXRvcnMsIFF1ZXJ5TW9kZWwsIFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgUUJGaWx0ZXJVdGlscyB9IGZyb20gXCIuLi8uLi8uLi9xdWVyeS1idWlsZGVyL3V0aWxzL3FiLWZpbHRlci51dGlsc1wiO1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyRm9ybVZhbHVlcyB7XG4gICAgQENvbnRyb2woKVxuICAgIEBSZXF1aXJlZCgpXG4gICAgcHVibGljIHZhbHVlOiBhbnk7XG5cbiAgICBAQ29udHJvbCgpXG4gICAgQEFkZFZhbGlkYXRvcklmKCh7IHBhcmVudCB9KSA9PiBRQkZpbHRlclV0aWxzLmlzRG91YmxlSW5wdXQocGFyZW50Lm9wZXJhdGlvbiksIFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgcHVibGljIHNlY29uZFZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJGb3JtIHtcbiAgICBAQ29udHJvbCgpXG4gICAgQFJlcXVpcmVkKClcbiAgICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAgIEBDb250cm9sKClcbiAgICBAUmVxdWlyZWQoKVxuICAgIHB1YmxpYyBvcGVyYXRpb246IHN0cmluZztcblxuICAgIEBDb250cm9sKClcbiAgICBAUmVxdWlyZWQoKVxuICAgIHB1YmxpYyBjb25kaXRpb246IENvbmRpdGlvbjtcblxuICAgIEBBcnJheShGaWx0ZXJGb3JtVmFsdWVzKVxuICAgIHB1YmxpYyB2YWx1ZXM6IEZpbHRlckZvcm1WYWx1ZXNbXTtcblxuICAgIGNvbnN0cnVjdG9yKHZhbHVlOiBRdWVyeU1vZGVsIHwgUXVlcnlSdWxlTW9kZWwpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCh2YWx1ZSBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB2YWx1ZSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzVHdvVmFsdWVzID0gUUJGaWx0ZXJVdGlscy5pc0RvdWJsZUlucHV0KHJ1bGUub3BlcmF0aW9uKTtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywge1xuICAgICAgICAgICAgICAgIGlkOiBydWxlLmlkLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogcnVsZS5vcGVyYXRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCJvclwiLFxuICAgICAgICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmVlZHNUd29WYWx1ZXMgPyBydWxlLnZhbHVlWzBdIDogcnVsZS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZFZhbHVlOiBuZWVkc1R3b1ZhbHVlcyA/IHJ1bGUudmFsdWVbMV0gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlcnkgPSB2YWx1ZSBhcyBRdWVyeU1vZGVsO1xuICAgICAgICBjb25zdCBmaXJzdFJ1bGUgPSBxdWVyeS5ydWxlc1swXSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgaWYgKCFxdWVyeS5ydWxlcy5ldmVyeSgocnVsZSkgPT4gKHJ1bGUgYXMgUXVlcnlSdWxlTW9kZWwpLmlkID09PSBmaXJzdFJ1bGUuaWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaXJzdFJ1bGVOZWVkc1R3b1ZhbHVlcyA9IFFCRmlsdGVyVXRpbHMuaXNEb3VibGVJbnB1dChmaXJzdFJ1bGUub3BlcmF0aW9uKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCB7XG4gICAgICAgICAgICBpZDogZmlyc3RSdWxlLmlkLFxuICAgICAgICAgICAgb3BlcmF0aW9uOiBmaXJzdFJ1bGUub3BlcmF0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgICAgIGNvbmRpdGlvbjogcXVlcnkuY29uZGl0aW9uLFxuICAgICAgICAgICAgdmFsdWVzOiBxdWVyeS5ydWxlcy5tYXAoKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsKSA9PiAoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBmaXJzdFJ1bGVOZWVkc1R3b1ZhbHVlcyA/IHJ1bGUudmFsdWVbMF0gOiBydWxlLnZhbHVlLFxuICAgICAgICAgICAgICAgIHNlY29uZFZhbHVlOiBmaXJzdFJ1bGVOZWVkc1R3b1ZhbHVlcyA/IHJ1bGUudmFsdWVbMV0gOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH0pKVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKCk6IFF1ZXJ5TW9kZWwgfCBRdWVyeVJ1bGVNb2RlbCB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZXNbMF07XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogdGhpcy5vcGVyYXRpb24gYXMgRmlsdGVyT3BlcmF0b3JzLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBRQkZpbHRlclV0aWxzLmlzRG91YmxlSW5wdXQodGhpcy5vcGVyYXRpb24gYXMgRmlsdGVyT3BlcmF0b3JzKSA/IFt2YWx1ZS52YWx1ZSwgdmFsdWUuc2Vjb25kVmFsdWVdIDogdmFsdWUudmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiB0aGlzLmNvbmRpdGlvbixcbiAgICAgICAgICAgIHJ1bGVzOiB0aGlzLnZhbHVlcy5tYXAoKHZhbHVlKSA9PiAoe1xuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogdGhpcy5vcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgdmFsdWU6IFFCRmlsdGVyVXRpbHMuaXNEb3VibGVJbnB1dCh0aGlzLm9wZXJhdGlvbiBhcyBGaWx0ZXJPcGVyYXRvcnMpID8gW3ZhbHVlLnZhbHVlLCB2YWx1ZS5zZWNvbmRWYWx1ZV0gOiB2YWx1ZS52YWx1ZVxuICAgICAgICAgICAgfSkgYXMgUXVlcnlSdWxlTW9kZWwpXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRGaWx0ZXJzRm9ybSB7XG4gICAgQEFycmF5KEZpbHRlckZvcm0pXG4gICAgcHVibGljIHJ1bGVzOiBGaWx0ZXJGb3JtW107XG5cbiAgICBAQ29udHJvbCh7IGRlZmF1bHRWYWx1ZTogXCJhbmRcIiB9KVxuICAgIEBSZXF1aXJlZCgpXG4gICAgcHVibGljIGNvbmRpdGlvbjogQ29uZGl0aW9uO1xuXG4gICAgY29uc3RydWN0b3IocXVlcnk6IFF1ZXJ5TW9kZWwpIHtcbiAgICAgICAgaWYgKCFxdWVyeSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFxdWVyeT8ucnVsZXMpIHtcbiAgICAgICAgICAgIHRoaXMucnVsZXMgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uID0gXCJhbmRcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZGl0aW9uID0gcXVlcnkuY29uZGl0aW9uO1xuICAgICAgICB0aGlzLnJ1bGVzID0gcXVlcnkucnVsZXMubWFwKHggPT4gbmV3IEZpbHRlckZvcm0oeCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFuc2Zvcm0oKTogUXVlcnlNb2RlbCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb25kaXRpb246IHRoaXMuY29uZGl0aW9uLFxuICAgICAgICAgICAgcnVsZXM6IHRoaXMucnVsZXMubWFwKChydWxlKSA9PiBydWxlLnRyYW5zZm9ybSgpKVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from "@angular/common";
|
|
2
|
-
import { NgModule } from "@angular/core";
|
|
3
|
-
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
|
|
4
|
-
import { MatButtonModule } from "@angular/material/button";
|
|
5
|
-
import { MatButtonToggleModule } from "@angular/material/button-toggle";
|
|
6
|
-
import { MatCardModule } from "@angular/material/card";
|
|
7
|
-
import { MatOptionModule, MatRippleModule } from "@angular/material/core";
|
|
8
|
-
import { MatDatepickerModule } from "@angular/material/datepicker";
|
|
9
|
-
import { MatFormFieldModule } from "@angular/material/form-field";
|
|
10
|
-
import { MatIconModule } from "@angular/material/icon";
|
|
11
|
-
import { MatInputModule } from "@angular/material/input";
|
|
12
|
-
import { MatListModule } from "@angular/material/list";
|
|
13
|
-
import { MatRadioModule } from "@angular/material/radio";
|
|
14
|
-
import { MatSelectModule } from "@angular/material/select";
|
|
15
|
-
import { TranslateModule } from "@ngx-translate/core";
|
|
16
|
-
import { NiceAsyncTypeaheadModule, NiceLoadingSpinnerModule, NiceTypeaheadModule } from "@recursyve/nice-ui-kit.v2";
|
|
17
|
-
import { NgxMaskDirective } from "ngx-mask";
|
|
18
|
-
import { NiceFilterGroupService } from "../../../query-builder/providers/filter-group.service";
|
|
19
|
-
import { NiceFilterGroupIconPipe } from "../../pipes/filter-group-icon.pipe";
|
|
20
|
-
import { AdvancedFiltersTriggerDirective } from "./advanced-filters-trigger.directive";
|
|
21
|
-
import { NiceAdvancedFiltersComponent } from "./advanced-filters.component";
|
|
22
|
-
import { ADVANCED_DATE_FILTER_OPTIONS, ADVANCED_FILTER_ICONS } from "./advanced-filters.constant";
|
|
23
|
-
import { NiceAdvancedFiltersButtonComponent } from "./button/advanced-filters-button.component";
|
|
24
|
-
import { NiceAdvancedFilterSelectionComponent } from "./filter-selection/filter-selection.component";
|
|
25
|
-
import { defaultIcons } from "./models/icons.model";
|
|
26
|
-
import { NiceAdvancedDateFilterComponent } from "./rule/components/date/date-filter.component";
|
|
27
|
-
import { NiceAdvancedNumberFilterComponent } from "./rule/components/number/number-filter.component";
|
|
28
|
-
import { NiceAdvancedOptionsFilterComponent } from "./rule/components/options/options-filter.component";
|
|
29
|
-
import { NiceAdvancedRadioFilterComponent } from "./rule/components/radio/radio-filter.component";
|
|
30
|
-
import { NiceAdvancedSelectFilterComponent } from "./rule/components/select/select-filter.component";
|
|
31
|
-
import { NiceAdvancedTextFilterComponent } from "./rule/components/text/text-filter.component";
|
|
32
|
-
import { NiceAdvancedRuleComponent } from "./rule/rule.component";
|
|
33
|
-
import * as i0 from "@angular/core";
|
|
34
|
-
export class NiceAdvancedFiltersModule {
|
|
35
|
-
static forRoot(options) {
|
|
36
|
-
return {
|
|
37
|
-
ngModule: NiceAdvancedFiltersModule,
|
|
38
|
-
providers: [
|
|
39
|
-
{
|
|
40
|
-
provide: ADVANCED_FILTER_ICONS,
|
|
41
|
-
useValue: {
|
|
42
|
-
...defaultIcons,
|
|
43
|
-
...(options?.icons ?? {})
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
provide: ADVANCED_DATE_FILTER_OPTIONS,
|
|
48
|
-
useValue: { ...(options?.advancedDateFilter ?? {}) }
|
|
49
|
-
},
|
|
50
|
-
options?.filterGroupService ? {
|
|
51
|
-
provide: NiceFilterGroupService,
|
|
52
|
-
useClass: options.filterGroupService
|
|
53
|
-
} : undefined
|
|
54
|
-
].filter((provider) => !!provider)
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAdvancedFiltersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
58
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NiceAdvancedFiltersModule, declarations: [NiceAdvancedFiltersComponent,
|
|
59
|
-
NiceAdvancedFiltersButtonComponent,
|
|
60
|
-
NiceAdvancedFilterSelectionComponent,
|
|
61
|
-
NiceAdvancedRuleComponent,
|
|
62
|
-
NiceAdvancedDateFilterComponent,
|
|
63
|
-
NiceAdvancedNumberFilterComponent,
|
|
64
|
-
NiceAdvancedOptionsFilterComponent,
|
|
65
|
-
NiceAdvancedRadioFilterComponent,
|
|
66
|
-
NiceAdvancedSelectFilterComponent,
|
|
67
|
-
NiceAdvancedTextFilterComponent,
|
|
68
|
-
AdvancedFiltersTriggerDirective,
|
|
69
|
-
NiceFilterGroupIconPipe], imports: [CommonModule,
|
|
70
|
-
ReactiveFormsModule,
|
|
71
|
-
MatRadioModule,
|
|
72
|
-
MatCardModule,
|
|
73
|
-
MatListModule,
|
|
74
|
-
NiceLoadingSpinnerModule,
|
|
75
|
-
MatIconModule,
|
|
76
|
-
MatRippleModule,
|
|
77
|
-
MatButtonModule,
|
|
78
|
-
MatFormFieldModule,
|
|
79
|
-
MatOptionModule,
|
|
80
|
-
MatSelectModule,
|
|
81
|
-
FormsModule,
|
|
82
|
-
MatInputModule,
|
|
83
|
-
MatButtonToggleModule,
|
|
84
|
-
TranslateModule,
|
|
85
|
-
MatDatepickerModule,
|
|
86
|
-
NiceTypeaheadModule,
|
|
87
|
-
NiceAsyncTypeaheadModule,
|
|
88
|
-
NgxMaskDirective], exports: [NiceAdvancedFiltersComponent, NiceAdvancedRuleComponent, NiceAdvancedFiltersButtonComponent, AdvancedFiltersTriggerDirective] }); }
|
|
89
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAdvancedFiltersModule, imports: [CommonModule,
|
|
90
|
-
ReactiveFormsModule,
|
|
91
|
-
MatRadioModule,
|
|
92
|
-
MatCardModule,
|
|
93
|
-
MatListModule,
|
|
94
|
-
NiceLoadingSpinnerModule,
|
|
95
|
-
MatIconModule,
|
|
96
|
-
MatRippleModule,
|
|
97
|
-
MatButtonModule,
|
|
98
|
-
MatFormFieldModule,
|
|
99
|
-
MatOptionModule,
|
|
100
|
-
MatSelectModule,
|
|
101
|
-
FormsModule,
|
|
102
|
-
MatInputModule,
|
|
103
|
-
MatButtonToggleModule,
|
|
104
|
-
TranslateModule,
|
|
105
|
-
MatDatepickerModule,
|
|
106
|
-
NiceTypeaheadModule,
|
|
107
|
-
NiceAsyncTypeaheadModule] }); }
|
|
108
|
-
}
|
|
109
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAdvancedFiltersModule, decorators: [{
|
|
110
|
-
type: NgModule,
|
|
111
|
-
args: [{
|
|
112
|
-
imports: [
|
|
113
|
-
CommonModule,
|
|
114
|
-
ReactiveFormsModule,
|
|
115
|
-
MatRadioModule,
|
|
116
|
-
MatCardModule,
|
|
117
|
-
MatListModule,
|
|
118
|
-
NiceLoadingSpinnerModule,
|
|
119
|
-
MatIconModule,
|
|
120
|
-
MatRippleModule,
|
|
121
|
-
MatButtonModule,
|
|
122
|
-
MatFormFieldModule,
|
|
123
|
-
MatOptionModule,
|
|
124
|
-
MatSelectModule,
|
|
125
|
-
FormsModule,
|
|
126
|
-
MatInputModule,
|
|
127
|
-
MatButtonToggleModule,
|
|
128
|
-
TranslateModule,
|
|
129
|
-
MatDatepickerModule,
|
|
130
|
-
NiceTypeaheadModule,
|
|
131
|
-
NiceAsyncTypeaheadModule,
|
|
132
|
-
NgxMaskDirective
|
|
133
|
-
],
|
|
134
|
-
declarations: [
|
|
135
|
-
NiceAdvancedFiltersComponent,
|
|
136
|
-
NiceAdvancedFiltersButtonComponent,
|
|
137
|
-
NiceAdvancedFilterSelectionComponent,
|
|
138
|
-
NiceAdvancedRuleComponent,
|
|
139
|
-
NiceAdvancedDateFilterComponent,
|
|
140
|
-
NiceAdvancedNumberFilterComponent,
|
|
141
|
-
NiceAdvancedOptionsFilterComponent,
|
|
142
|
-
NiceAdvancedRadioFilterComponent,
|
|
143
|
-
NiceAdvancedSelectFilterComponent,
|
|
144
|
-
NiceAdvancedTextFilterComponent,
|
|
145
|
-
AdvancedFiltersTriggerDirective,
|
|
146
|
-
NiceFilterGroupIconPipe
|
|
147
|
-
],
|
|
148
|
-
providers: [],
|
|
149
|
-
exports: [NiceAdvancedFiltersComponent, NiceAdvancedRuleComponent, NiceAdvancedFiltersButtonComponent, AdvancedFiltersTriggerDirective],
|
|
150
|
-
}]
|
|
151
|
-
}] });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYWR2YW5jZWQtZmlsdGVycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFF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O1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlXCI7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NhcmRcIjtcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSwgTWF0UmlwcGxlTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlclwiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdFwiO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW9cIjtcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBOaWNlQXN5bmNUeXBlYWhlYWRNb2R1bGUsIE5pY2VMb2FkaW5nU3Bpbm5lck1vZHVsZSwgTmljZVR5cGVhaGVhZE1vZHVsZSB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBOZ3hNYXNrRGlyZWN0aXZlIH0gZnJvbSBcIm5neC1tYXNrXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyR3JvdXBTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3F1ZXJ5LWJ1aWxkZXIvcHJvdmlkZXJzL2ZpbHRlci1ncm91cC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyR3JvdXBJY29uUGlwZSB9IGZyb20gXCIuLi8uLi9waXBlcy9maWx0ZXItZ3JvdXAtaWNvbi5waXBlXCI7XG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlcnNUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vYWR2YW5jZWQtZmlsdGVycy10cmlnZ2VyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gXCIuL2FkdmFuY2VkLWZpbHRlcnMuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBRFZBTkNFRF9EQVRFX0ZJTFRFUl9PUFRJT05TLCBBRFZBTkNFRF9GSUxURVJfSUNPTlMgfSBmcm9tIFwiLi9hZHZhbmNlZC1maWx0ZXJzLmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlQWR2YW5jZWRGaWx0ZXJzQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4vYnV0dG9uL2FkdmFuY2VkLWZpbHRlcnMtYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkRmlsdGVyU2VsZWN0aW9uQ29tcG9uZW50IH0gZnJvbSBcIi4vZmlsdGVyLXNlbGVjdGlvbi9maWx0ZXItc2VsZWN0aW9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZGVmYXVsdEljb25zLCBOaWNlQWR2YW5jZWRGaWx0ZXJJY29uT3B0aW9ucyB9IGZyb20gXCIuL21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkRGF0ZUZpbHRlckNvbXBvbmVudCB9IGZyb20gXCIuL3J1bGUvY29tcG9uZW50cy9kYXRlL2RhdGUtZmlsdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkTnVtYmVyRmlsdGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vcnVsZS9jb21wb25lbnRzL251bWJlci9udW1iZXItZmlsdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkT3B0aW9uc0ZpbHRlckNvbXBvbmVudCB9IGZyb20gXCIuL3J1bGUvY29tcG9uZW50cy9vcHRpb25zL29wdGlvbnMtZmlsdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkUmFkaW9GaWx0ZXJDb21wb25lbnQgfSBmcm9tIFwiLi9ydWxlL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8tZmlsdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkU2VsZWN0RmlsdGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vcnVsZS9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QtZmlsdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkVGV4dEZpbHRlckNvbXBvbmVudCB9IGZyb20gXCIuL3J1bGUvY29tcG9uZW50cy90ZXh0L3RleHQtZmlsdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmljZUFkdmFuY2VkUnVsZUNvbXBvbmVudCB9IGZyb20gXCIuL3J1bGUvcnVsZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IEFkdmFuY2VkRGF0ZUZpbHRlck9wdGlvbnMgfSBmcm9tIFwiLi9tb2RlbHMvYWR2YW5jZWQtZGF0ZS1maWx0ZXItb3B0aW9ucy5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5pY2VBZHZhbmNlZEZpbHRlcnNPcHRpb25zIHtcbiAgICBpY29ucz86IE5pY2VBZHZhbmNlZEZpbHRlckljb25PcHRpb25zO1xuICAgIGZpbHRlckdyb3VwU2VydmljZT86IFR5cGU8TmljZUZpbHRlckdyb3VwU2VydmljZTxhbnk+PjtcbiAgICBhZHZhbmNlZERhdGVGaWx0ZXI/OiBBZHZhbmNlZERhdGVGaWx0ZXJPcHRpb25zO1xufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgTWF0TGlzdE1vZHVsZSxcbiAgICAgICAgTmljZUxvYWRpbmdTcGlubmVyTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRSaXBwbGVNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRPcHRpb25Nb2R1bGUsXG4gICAgICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICAgICAgTmljZVR5cGVhaGVhZE1vZHVsZSxcbiAgICAgICAgTmljZUFzeW5jVHlwZWFoZWFkTW9kdWxlLFxuICAgICAgICBOZ3hNYXNrRGlyZWN0aXZlXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTmljZUFkdmFuY2VkRmlsdGVyc0NvbXBvbmVudCxcbiAgICAgICAgTmljZUFkdmFuY2VkRmlsdGVyc0J1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgTmljZUFkdmFuY2VkRmlsdGVyU2VsZWN0aW9uQ29tcG9uZW50LFxuXG4gICAgICAgIE5pY2VBZHZhbmNlZFJ1bGVDb21wb25lbnQsXG4gICAgICAgIE5pY2VBZHZhbmNlZERhdGVGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIE5pY2VBZHZhbmNlZE51bWJlckZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgTmljZUFkdmFuY2VkT3B0aW9uc0ZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgTmljZUFkdmFuY2VkUmFkaW9GaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIE5pY2VBZHZhbmNlZFNlbGVjdEZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgTmljZUFkdmFuY2VkVGV4dEZpbHRlckNvbXBvbmVudCxcblxuICAgICAgICBBZHZhbmNlZEZpbHRlcnNUcmlnZ2VyRGlyZWN0aXZlLFxuXG4gICAgICAgIE5pY2VGaWx0ZXJHcm91cEljb25QaXBlXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtdLFxuICAgIGV4cG9ydHM6IFtOaWNlQWR2YW5jZWRGaWx0ZXJzQ29tcG9uZW50LCBOaWNlQWR2YW5jZWRSdWxlQ29tcG9uZW50LCBOaWNlQWR2YW5jZWRGaWx0ZXJzQnV0dG9uQ29tcG9uZW50LCBBZHZhbmNlZEZpbHRlcnNUcmlnZ2VyRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgTmljZUFkdmFuY2VkRmlsdGVyc01vZHVsZSB7XG4gICAgcHVibGljIHN0YXRpYyBmb3JSb290KG9wdGlvbnM/OiBOaWNlQWR2YW5jZWRGaWx0ZXJzT3B0aW9ucyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TmljZUFkdmFuY2VkRmlsdGVyc01vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IE5pY2VBZHZhbmNlZEZpbHRlcnNNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFEVkFOQ0VEX0ZJTFRFUl9JQ09OUyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmRlZmF1bHRJY29ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihvcHRpb25zPy5pY29ucyA/PyB7fSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFEVkFOQ0VEX0RBVEVfRklMVEVSX09QVElPTlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB7IC4uLihvcHRpb25zPy5hZHZhbmNlZERhdGVGaWx0ZXIgPz8ge30pIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LmZpbHRlckdyb3VwU2VydmljZSA/IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTmljZUZpbHRlckdyb3VwU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgdXNlQ2xhc3M6IG9wdGlvbnMuZmlsdGVyR3JvdXBTZXJ2aWNlXG4gICAgICAgICAgICAgICAgfSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgXS5maWx0ZXIoKHByb3ZpZGVyKSA9PiAhIXByb3ZpZGVyKVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|