@recursyve/nice-data-filter-kit 14.2.3 → 14.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/base-list/store/base-list.service.mjs +1 -1
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.mjs +83 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.mjs +83 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.constant.mjs +3 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.form.mjs +127 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.module.mjs +146 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.mjs +42 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.mjs +49 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/models/icons.model.mjs +24 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/providers/async-typeahead.provider.mjs +32 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/public-api.mjs +6 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.mjs +40 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/filter.component.mjs +29 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.mjs +28 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.mjs +30 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.mjs +56 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.mjs +31 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.mjs +71 -0
- package/esm2020/lib/components/nice-filter-view/components/advanced-filters/utils/advanced-filters.utils.mjs +83 -0
- package/esm2020/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.mjs +10 -7
- package/esm2020/lib/components/nice-filter-view/directives/mat-sort.mjs +4 -1
- package/esm2020/lib/components/nice-filter-view/directives/query-params.directive.mjs +17 -10
- package/esm2020/lib/components/nice-filter-view/nice-base-filter-view.component.mjs +46 -12
- package/esm2020/lib/components/nice-filter-view/pipes/filter-group-icon.pipe.mjs +32 -0
- package/esm2020/lib/components/nice-filter-view/public-api.mjs +2 -1
- package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.query.mjs +7 -1
- package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +11 -1
- package/esm2020/lib/components/nice-filter-view/store/nice-filter-view.store.mjs +5 -1
- package/esm2020/lib/components/query-builder/pipes/filter-group-icon.pipe.mjs +9 -4
- package/esm2020/lib/directive/selectable-list/providers/selectable-list-content.service.mjs +11 -1
- package/esm2020/lib/directive/selectable-list/selectable-list-checkbox.directive.mjs +17 -3
- package/esm2020/lib/directive/selectable-list/selectable-list.directive.mjs +55 -12
- package/esm2020/lib/directive/selectable-list/store/selectable-list-state.service.mjs +45 -16
- package/esm2020/lib/directive/selectable-list/store/selectable-list.service.mjs +10 -6
- package/fesm2015/recursyve-nice-data-filter-kit.mjs +1195 -214
- package/fesm2015/recursyve-nice-data-filter-kit.mjs.map +1 -1
- package/fesm2020/recursyve-nice-data-filter-kit.mjs +1190 -213
- package/fesm2020/recursyve-nice-data-filter-kit.mjs.map +1 -1
- package/lib/components/base-list/store/base-list.service.d.ts +1 -1
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.d.ts +27 -0
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.d.ts +27 -0
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.constant.d.ts +2 -0
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.form.d.ts +20 -0
- package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.module.d.ts +41 -0
- package/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.d.ts +17 -0
- package/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.d.ts +16 -0
- package/lib/components/nice-filter-view/components/advanced-filters/models/icons.model.d.ts +11 -0
- package/lib/components/nice-filter-view/components/advanced-filters/providers/async-typeahead.provider.d.ts +18 -0
- package/lib/components/nice-filter-view/components/advanced-filters/public-api.d.ts +5 -0
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.d.ts +9 -0
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/filter.component.d.ts +13 -0
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.d.ts +6 -0
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.d.ts +8 -0
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.d.ts +14 -0
- package/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.d.ts +8 -0
- package/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.d.ts +26 -0
- package/lib/components/nice-filter-view/components/advanced-filters/utils/advanced-filters.utils.d.ts +11 -0
- package/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.d.ts +2 -1
- package/lib/components/nice-filter-view/directives/query-params.directive.d.ts +2 -1
- package/lib/components/nice-filter-view/nice-base-filter-view.component.d.ts +7 -0
- package/lib/components/nice-filter-view/pipes/filter-group-icon.pipe.d.ts +11 -0
- package/lib/components/nice-filter-view/public-api.d.ts +1 -0
- package/lib/components/nice-filter-view/store/nice-filter-view.query.d.ts +2 -0
- package/lib/components/nice-filter-view/store/nice-filter-view.service.d.ts +1 -0
- package/lib/components/nice-filter-view/store/nice-filter-view.store.d.ts +1 -0
- package/lib/components/query-builder/pipes/filter-group-icon.pipe.d.ts +3 -3
- package/lib/directive/selectable-list/providers/selectable-list-content.service.d.ts +5 -0
- package/lib/directive/selectable-list/selectable-list-checkbox.directive.d.ts +4 -2
- package/lib/directive/selectable-list/selectable-list.directive.d.ts +13 -4
- package/lib/directive/selectable-list/store/selectable-list-state.service.d.ts +12 -2
- package/lib/directive/selectable-list/store/selectable-list.service.d.ts +5 -2
- package/package.json +1 -1
- package/src/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.theme.scss +25 -0
- package/src/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.theme.scss +29 -0
- package/src/lib/components/nice-filter-view/components/advanced-filters/rule/rule.theme.scss +96 -0
- package/src/lib/nice-data-filter.theme.scss +2 -0
|
@@ -372,4 +372,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImpor
|
|
|
372
372
|
type: Inject,
|
|
373
373
|
args: [DISABLE_QUERY_PARAMS]
|
|
374
374
|
}] }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i0.ApplicationRef }]; } });
|
|
375
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS1saXN0L3N0b3JlL2Jhc2UtbGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBR3hELE1BQU0sT0FBTyxtQkFBbUI7SUFPNUIsWUFDYyxLQUF3QixFQUV4QixhQUFxQixFQUVyQixrQkFBMkIsRUFDM0IsY0FBOEIsRUFDOUIsTUFBYyxFQUNkLE1BQXNCO1FBUHRCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBRXhCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBRXJCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBUztRQUMzQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBZDdCLHVCQUFrQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFaEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztJQVk5QixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFpQyxFQUFFO1FBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSTtZQUNBLE1BQU0sWUFBWSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2dCQUNkLFlBQVk7YUFDZixDQUFDLENBQUM7U0FDTjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7Z0JBQVM7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDZCxZQUFZLEVBQUUsSUFBSTtTQUNyQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDZCxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sVUFBVTtRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2QsUUFBUSxFQUFFLEtBQUs7U0FDbEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWtDO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2QsZ0JBQWdCLEVBQUUsSUFBSSxLQUFLLGlCQUFpQjtTQUMvQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sY0FBYyxDQUFDLFdBQWdCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sZUFBZSxDQUFDLFFBQWlCO1FBQ3BDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVzthQUMzQixJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFDL0IsR0FBRyxDQUFDLENBQUMsTUFBOEIsRUFBRSxFQUFFO1lBQ25DLE9BQU87Z0JBQ0gsTUFBTSxFQUFFLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQzthQUMzRCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzdDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2FBQ25EO1lBQ0QsTUFBTSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakUsSUFDSSxXQUFXLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDO2dCQUM5RCxDQUFDLFlBQVksRUFDZjtnQkFDRSxJQUFJLFFBQVEsRUFBRTtvQkFDVixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDaEM7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUMzQzthQUNKO1lBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsVUFBa0MsRUFBRSxvQkFBNkIsSUFBSTtRQUMvRixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQWtDLEVBQUUsb0JBQTZCLElBQUksRUFBRSxRQUFpQixLQUFLO1FBQy9HLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4RCxJQUFJO1lBQ0EsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzFELElBQUksZ0JBQWdCLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDOUU7WUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDeEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO29CQUNoRyxNQUFNLEVBQUUsV0FBVztpQkFDdEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3ZDO1NBQ0o7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFCO2dCQUFTO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDNUI7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFjO1FBQ2xDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkQsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2hCLEdBQUcsZ0JBQWdCO1lBQ25CLE1BQU07U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFhLEVBQUUsTUFBYztRQUNsRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNoQixHQUFHLGdCQUFnQjtZQUNuQixLQUFLO1lBQ0wsTUFBTTtTQUNULENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWTtRQUNyQixNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNoQixHQUFHLGdCQUFnQjtZQUNuQixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDLE1BQU07U0FDMUQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDZCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQ3JCLEdBQUcsZ0JBQWdCO1lBQ25CLEtBQUssRUFBRSxDQUFDO1NBQ1gsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDZCxXQUFXLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FDckIsSUFBWSxFQUNaLFVBQWtDLEVBQ2xDLG9CQUE2QixJQUFJO1FBRWpDLElBQUk7WUFDQSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUQsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2FBQzNEO1lBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN0RTtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7Z0JBQVM7WUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQWtDLEVBQUUsb0JBQTZCLElBQUk7UUFDeEYsSUFBSTtZQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxJQUFJLGdCQUFnQixFQUFFO2dCQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixDQUFDLENBQUM7YUFDM0Q7WUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0csU0FBUyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3pDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMxQjtnQkFBUztZQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxFQUFVLEVBQUUsT0FBdUI7UUFDakQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUM1QixPQUFPO1NBQ1Y7UUFFRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUUsQ0FBb0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFtQixDQUFDO1FBQzNGLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLE9BQU8sRUFBRTtnQkFDVCxnQkFBZ0I7Z0JBQ2hCLFFBQVEsR0FBRztvQkFDUCxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDckQsT0FBTztvQkFDUCxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztpQkFDN0UsQ0FBQzthQUNMO2lCQUFNO2dCQUNILFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUUsQ0FBb0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDekU7U0FDSjthQUFNO1lBQ0gsUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQTRCLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsSUFBcUM7UUFDM0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDZCxZQUFZLEVBQUUsSUFBSTtTQUNyQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQW1CLEVBQUUsaUJBQWlCLEdBQUcsSUFBSSxFQUFFLEtBQUssR0FBRyxJQUFJO1FBQ3RGLElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCO1FBRUQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxNQUFNLFFBQVEsR0FBMEI7WUFDcEMsR0FBRyxnQkFBZ0I7WUFDbkIsS0FBSztTQUNSLENBQUM7UUFFRixNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE1BQWdDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRW5ELE1BQU0sUUFBUSxHQUEwQjtZQUNwQyxHQUFHLGdCQUFnQjtZQUNuQixLQUFLLEVBQUU7Z0JBQ0gsR0FBSSxnQkFBZ0IsQ0FBQyxLQUFzQjtnQkFDM0MsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQzthQUN6QztTQUNKLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNkLGdCQUFnQixFQUFFLElBQUk7U0FDekIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUF1QjtRQUN0QyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELE1BQU0sUUFBUSxHQUEwQjtZQUNwQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztZQUM3QixLQUFLLEVBQUU7Z0JBQ0g7b0JBQ0ksU0FBUyxFQUFFLEtBQUs7b0JBQ2hCLEtBQUs7aUJBQ1I7YUFDSjtTQUNKLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFCLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtTQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBVSxFQUFFLElBQXlCO1FBQ3JELE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNkLFlBQVksRUFBRTtnQkFDVixHQUFHLFlBQVk7Z0JBQ2YsTUFBTSxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7YUFDckQ7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQVUsRUFBRSxHQUFHLEdBQUcsSUFBSTtRQUN6QyxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2YsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDZCxZQUFZLEVBQUU7Z0JBQ1YsR0FBRyxZQUFZO2dCQUNmLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDO2FBQzlEO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFVLEVBQUUsR0FBRyxHQUFHLElBQUk7UUFDekMsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNmLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2QsWUFBWSxFQUFFO2dCQUNWLEdBQUcsWUFBWTtnQkFDZixNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZEO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLGFBQWEsQ0FBQyxnQkFBd0M7UUFDekQsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQUc7WUFDZixHQUFHLGdCQUFnQjtZQUNuQixLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDcEUsQ0FBQztRQUNGLElBQUksWUFBWSxFQUFFLE1BQU0sRUFBRTtZQUN0QixVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDbEIsU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLEtBQUssRUFBRSxZQUFZO2FBQ3RCLENBQUMsQ0FBQztTQUNOO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxXQUFnQjtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDakQsT0FBTztTQUNWO1FBRUQsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQy9CLFdBQVc7WUFDWCxtQkFBbUIsRUFBRSxPQUFPO1NBQy9CLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxlQUFlLENBQUMsVUFBa0M7UUFDdEQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2IsT0FBTyxnQkFBZ0IsQ0FBQztTQUMzQjtRQUVELE9BQU87WUFDSCxHQUFHLGdCQUFnQjtZQUNuQixHQUFHLFVBQVU7WUFDYixLQUFLLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUN0RSxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRSxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUM5SCxDQUFDO0lBQ04sQ0FBQztJQUVPLGFBQWEsQ0FBQyxVQUFpQyxFQUFFLG9CQUE2QixJQUFJLEVBQUUsUUFBaUIsS0FBSztRQUM5RyxJQUFJLEtBQUssRUFBRTtZQUNQLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsSUFBSSxpQkFBaUIsRUFBRTtZQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNwRjtJQUNMLENBQUM7O2dIQTVZUSxtQkFBbUIsbURBU2hCLGlCQUFpQixhQUVqQixvQkFBb0I7b0hBWHZCLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOzswQkFVRixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBRXhCLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgYXJyYXlBZGQsIGFycmF5UmVtb3ZlLCBhcnJheVVwc2VydCB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGFcIjtcbmltcG9ydCB7IEZpbGVVdGlscyB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgUXVlcnlQYXJhbXMgfSBmcm9tIFwiLi4vLi4vLi4vYXBpL2ZpbHRlci5hcGlcIjtcbmltcG9ydCB7IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCwgRmlsdGVyUGFyYW1ldGVyc01vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5TW9kZWwsIFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgRmlsdGVyVXRpbHMgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvZmlsdGVyLnV0aWxzXCI7XG5pbXBvcnQgeyBRdWVyeVBhcmFtc1V0aWxzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3F1ZXJ5LXBhcmFtcy51dGlsc1wiO1xuaW1wb3J0IHsgUUJGaWx0ZXJVdGlscyB9IGZyb20gXCIuLi8uLi9xdWVyeS1idWlsZGVyL3V0aWxzL3FiLWZpbHRlci51dGlsc1wiO1xuaW1wb3J0IHsgRElTQUJMRV9RVUVSWV9QQVJBTVMgfSBmcm9tIFwiLi4vYmFzZS1saXN0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyU2VydmljZSB9IGZyb20gXCIuLi9wcm92aWRlcnMvYmFzZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0U3RvcmUgfSBmcm9tIFwiLi9iYXNlLWxpc3Quc3RvcmVcIjtcbmltcG9ydCB7IEFkZEVudGl0aWVzT3B0aW9ucyB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGEvc3JjL2xpYi9hZGRFbnRpdGllc1wiO1xuaW1wb3J0IHsgT3JkZXJVdGlscyB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9vcmRlci51dGlsc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZUJhc2VMaXN0U2VydmljZTxGaWx0ZXIgZXh0ZW5kcyBOaWNlRmlsdGVyU2VydmljZTxhbnk+ID0gTmljZUZpbHRlclNlcnZpY2U8YW55Pj4ge1xuICAgIHB1YmxpYyBxdWVyeVBhcmFtc0xvYWRlZCQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJvdGVjdGVkIGRvd25sb2FkRmlsZU5hbWUgPSBcImRhdGFcIjtcbiAgICBwcm90ZWN0ZWQgdW5zdWJzY3JpYmVBbGwkID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcm90ZWN0ZWQgbG9hZGluZ0RhdGEgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgc3RvcmU6IE5pY2VCYXNlTGlzdFN0b3JlLFxuICAgICAgICBASW5qZWN0KE5pY2VGaWx0ZXJTZXJ2aWNlKVxuICAgICAgICBwcm90ZWN0ZWQgZmlsdGVyU2VydmljZTogRmlsdGVyLFxuICAgICAgICBASW5qZWN0KERJU0FCTEVfUVVFUllfUEFSQU1TKVxuICAgICAgICBwcm90ZWN0ZWQgZGlzYWJsZVF1ZXJ5UGFyYW1zOiBib29sZWFuLFxuICAgICAgICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByb3RlY3RlZCBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWx0ZXIoKTogRmlsdGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyU2VydmljZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaW5pdChjb25maWdRdWVyeVBhcmFtczogUXVlcnlQYXJhbXMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnN0b3JlLnNldEZpbHRlckNvbmZpZ0xvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJDb25maWcgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyQ29uZmlnKHsgcGFyYW1zOiBjb25maWdRdWVyeVBhcmFtcyB9KSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgZmlsdGVyQ29uZmlnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRFcnJvcihlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RmlsdGVyQ29uZmlnTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRTdG9yZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5yZXNldCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDogbnVsbFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zTG9hZGVkJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNhYmxlTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGVuYWJsZUxpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyhsb2FkaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TW9kZShtb2RlOiBcIm5vcm1hbFwiIHwgXCJpbmZpbml0ZS1zY3JvbGxcIik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBtZXJnZVBhZ2VSZXN1bHRzOiBtb2RlID09PSBcImluZmluaXRlLXNjcm9sbFwiXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRRdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHsgcXVlcnlQYXJhbXMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGxvYWRRdWVyeVBhcmFtcyhhdXRvTG9hZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGU/LnF1ZXJ5UGFyYW1zXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpLFxuICAgICAgICAgICAgICAgIG1hcCgocGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IFF1ZXJ5UGFyYW1zVXRpbHMuZXh0cmFjdEZpbHRlclBhcmFtZXRlcnMocGFyYW1zKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh7IHBhcmFtcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJhbXMgfHwgT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpLmZpbHRlclBhcmFtZXRlcnM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycywgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBGaWx0ZXJVdGlscy5maWx0ZXJDaGFuZ2VOZWVkc1JlZnJlc2goZmlsdGVyUGFyYW1ldGVycywgcGFyYW1zKSB8fFxuICAgICAgICAgICAgICAgICAgICAhZmlsdGVyUmVzdWx0XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRvTG9hZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkRGF0YShwYXJhbXMsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFyYW1ldGVycyhwYXJhbXMsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXNMb2FkZWQkLm5leHQobnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVzZXRBbmRMb2FkRGF0YShwYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsLCB1cGRhdGVRdWVyeVBhcmFtczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZERhdGEocGFyYW1ldGVycywgdXBkYXRlUXVlcnlQYXJhbXMsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsb2FkRGF0YShwYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsLCB1cGRhdGVRdWVyeVBhcmFtczogYm9vbGVhbiA9IHRydWUsIHJlc2V0OiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBkaXNhYmxlZCwgcXVlcnlQYXJhbXMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclBhcmFtZXRlcnMgPSB0aGlzLm1lcmdlUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJQYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMsIGRpc2FibGVkID8gZmFsc2UgOiB1cGRhdGVRdWVyeVBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ0RhdGEgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIodGhpcy5nZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMpLCB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbXNcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRSZXN1bHQocmVzdWx0LCByZXNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RXJyb3IoZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nRGF0YSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlYXJjaERhdGEoc2VhcmNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZERhdGEoe1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHNlYXJjaFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbG9hZE5ld1BhZ2Uoc3RhcnQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZERhdGEoe1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgbGVuZ3RoXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsb2FkTmV4dFBhZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWREYXRhKHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBzdGFydDogZmlsdGVyUGFyYW1ldGVycy5zdGFydCArIGZpbHRlclBhcmFtZXRlcnMubGVuZ3RoXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldFBhZ2luZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0UGFyYW1ldGVycyh7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgc3RhcnQ6IDBcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIHJlc2V0UGFnaW5nOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBkb3dubG9hZERhdGEoXG4gICAgICAgIHR5cGU6IHN0cmluZyxcbiAgICAgICAgcGFyYW1ldGVycz86IEZpbHRlclBhcmFtZXRlcnNNb2RlbCxcbiAgICAgICAgdXBkYXRlUXVlcnlQYXJhbXM6IGJvb2xlYW4gPSB0cnVlXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdEYXRhID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclBhcmFtZXRlcnMgPSB0aGlzLm1lcmdlUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJQYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMsIHVwZGF0ZVF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmlsdGVyU2VydmljZS5nZXRGaWxlKHR5cGUsIHRoaXMuZ2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzKSkpO1xuICAgICAgICAgICAgRmlsZVV0aWxzLmRvd25sb2FkRmlsZShgJHt0aGlzLmRvd25sb2FkRmlsZU5hbWV9LiR7dHlwZX1gLCByZXN1bHQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0RhdGEgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcmludERhdGEocGFyYW1ldGVycz86IEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgdXBkYXRlUXVlcnlQYXJhbXM6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdEYXRhID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclBhcmFtZXRlcnMgPSB0aGlzLm1lcmdlUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJQYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMsIHVwZGF0ZVF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmlsdGVyU2VydmljZS5nZXRQcmludGFibGVIdG1sKHRoaXMuZ2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzKSkpO1xuICAgICAgICAgICAgRmlsZVV0aWxzLm9wZW5QcmludGFibGVXaW5kb3cocmVzdWx0KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRFcnJvcihlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdEYXRhID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlUnVsZShpZDogc3RyaW5nLCBuZXdSdWxlOiBRdWVyeVJ1bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgcnVsZXMgPSBmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzPy5bMF07XG4gICAgICAgIGlmICghcnVsZXMgfHwgcnVsZXMucnVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bGVzKFtuZXdSdWxlXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvbGRSdWxlID0gcnVsZXMucnVsZXMuZmluZCgocikgPT4gKHIgYXMgUXVlcnlSdWxlTW9kZWwpLmlkID09PSBpZCkgYXMgUXVlcnlSdWxlTW9kZWw7XG4gICAgICAgIGxldCBuZXdSdWxlcyA9IHJ1bGVzLnJ1bGVzO1xuICAgICAgICBpZiAob2xkUnVsZSkge1xuICAgICAgICAgICAgaWYgKG5ld1J1bGUpIHtcbiAgICAgICAgICAgICAgICAvLyBBcnJheSByZXBsYWNlXG4gICAgICAgICAgICAgICAgbmV3UnVsZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLnJ1bGVzLnJ1bGVzLnNsaWNlKDAsIHJ1bGVzLnJ1bGVzLmluZGV4T2Yob2xkUnVsZSkpLFxuICAgICAgICAgICAgICAgICAgICBuZXdSdWxlLFxuICAgICAgICAgICAgICAgICAgICAuLi5ydWxlcy5ydWxlcy5zbGljZShydWxlcy5ydWxlcy5pbmRleE9mKG9sZFJ1bGUpICsgMSwgcnVsZXMucnVsZXMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1J1bGVzID0gcnVsZXMucnVsZXMuZmlsdGVyKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgIT09IGlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld1J1bGVzID0gWy4uLm5ld1J1bGVzLCBuZXdSdWxlXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVJ1bGVzKG5ld1J1bGVzIGFzIFF1ZXJ5UnVsZU1vZGVsW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVEZWZhdWx0UnVsZXMocnVsZTogKFF1ZXJ5UnVsZU1vZGVsIHwgUXVlcnlNb2RlbClbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBkZWZhdWx0UnVsZXM6IHJ1bGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZUdsb2JhbFJ1bGVzKHJ1bGVzOiBRdWVyeU1vZGVsW10sIHVwZGF0ZVF1ZXJ5UGFyYW1zID0gdHJ1ZSwgcmVzZXQgPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChyZXNldCkge1xuICAgICAgICAgICAgdGhpcy5yZXNldFBhZ2luZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG5ld1J1bGVzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgPSB7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgcnVsZXNcbiAgICAgICAgfTtcblxuICAgICAgICBhd2FpdCB0aGlzLmxvYWREYXRhKG5ld1J1bGVzLCB1cGRhdGVRdWVyeVBhcmFtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFJ1bGVGcm9tQ29uZmlnKGNvbmZpZzogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXRQYWdpbmcoKTtcblxuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBuZXdSdWxlczogRmlsdGVyUGFyYW1ldGVyc01vZGVsID0ge1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAgLi4uKGZpbHRlclBhcmFtZXRlcnMucnVsZXMgYXMgUXVlcnlNb2RlbFtdKSxcbiAgICAgICAgICAgICAgICBRQkZpbHRlclV0aWxzLmNyZWF0ZVF1ZXJ5TW9kZWwoY29uZmlnKVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIHNob3dRdWVyeUJ1aWxkZXI6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sb2FkRGF0YShuZXdSdWxlcywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVJ1bGVzKHJ1bGVzOiBRdWVyeVJ1bGVNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBuZXdSdWxlczogRmlsdGVyUGFyYW1ldGVyc01vZGVsID0ge1xuICAgICAgICAgICAgb3JkZXI6IGZpbHRlclBhcmFtZXRlcnMub3JkZXIsXG4gICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcImFuZFwiLFxuICAgICAgICAgICAgICAgICAgICBydWxlc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmxvYWREYXRhKG5ld1J1bGVzLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlUXVlcnlCdWlsZGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICBzaG93UXVlcnlCdWlsZGVyOiAhc3RhdGUuc2hvd1F1ZXJ5QnVpbGRlclxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZExpc3RWYWx1ZSh2YWx1ZTogYW55LCBvcHRzPzogQWRkRW50aXRpZXNPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghZmlsdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBhcnJheUFkZChmaWx0ZXJSZXN1bHQudmFsdWVzLCB2YWx1ZSwgb3B0cylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUxpc3RWYWx1ZSh2YWx1ZTogYW55LCBrZXkgPSBcImlkXCIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IGFycmF5VXBzZXJ0KGZpbHRlclJlc3VsdC52YWx1ZXMsIHZhbHVlW2tleV0sIHZhbHVlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlTGlzdFZhbHVlKHZhbHVlOiBhbnksIGtleSA9IFwiaWRcIik6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclJlc3VsdCB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoIWZpbHRlclJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiB7XG4gICAgICAgICAgICAgICAgLi4uZmlsdGVyUmVzdWx0LFxuICAgICAgICAgICAgICAgIHZhbHVlczogYXJyYXlSZW1vdmUoZmlsdGVyUmVzdWx0LnZhbHVlcywgdmFsdWVba2V5XSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycz86IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCB7XG4gICAgICAgIGNvbnN0IHsgZGVmYXVsdFJ1bGVzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgcnVsZXM6IGZpbHRlclBhcmFtZXRlcnM/LnJ1bGVzID8gWy4uLmZpbHRlclBhcmFtZXRlcnMucnVsZXNdIDogW11cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGRlZmF1bHRSdWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzLnJ1bGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCJhbmRcIixcbiAgICAgICAgICAgICAgICBydWxlczogZGVmYXVsdFJ1bGVzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgdXBkYXRlUXVlcnlQYXJhbXMocXVlcnlQYXJhbXM6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZhdGVkUm91dGUgfHwgdGhpcy5kaXNhYmxlUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCJcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtZXJnZVBhcmFtZXRlcnMocGFyYW1ldGVycz86IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoIXBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJQYXJhbWV0ZXJzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICAuLi5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgb3JkZXI6IE9yZGVyVXRpbHMubWVyZ2VPcmRlcihmaWx0ZXJQYXJhbWV0ZXJzLm9yZGVyLCBwYXJhbWV0ZXJzLm9yZGVyKSxcbiAgICAgICAgICAgIGZhbGxiYWNrT3JkZXI6IE9yZGVyVXRpbHMuY29tYmluZU9yZGVycyhmaWx0ZXJQYXJhbWV0ZXJzLmZhbGxiYWNrT3JkZXIsIHBhcmFtZXRlcnMuZmFsbGJhY2tPcmRlciwgeyB1bmlxdWVGcm9tQmFjazogdHJ1ZSB9KVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFyYW1ldGVycyhwYXJhbWV0ZXJzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwsIHVwZGF0ZVF1ZXJ5UGFyYW1zOiBib29sZWFuID0gdHJ1ZSwgbWVyZ2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAobWVyZ2UpIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB0aGlzLm1lcmdlUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RvcmUuc2V0UGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgaWYgKHVwZGF0ZVF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKFF1ZXJ5UGFyYW1zVXRpbHMuZmlsdGVyUGFyYW1ldGVyc1RvUGFyYW1zTWFwKHBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
375
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS1saXN0L3N0b3JlL2Jhc2UtbGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7O0FBR3hELE1BQU0sT0FBTyxtQkFBbUI7SUFPNUIsWUFDYyxLQUF3QixFQUV4QixhQUFxQixFQUVyQixrQkFB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QyxFQUFFLG9CQUE2QixJQUFJLEVBQUUsUUFBaUIsS0FBSztRQUM5RyxJQUFJLEtBQUssRUFBRTtZQUNQLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsSUFBSSxpQkFBaUIsRUFBRTtZQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNwRjtJQUNMLENBQUM7O2dIQTVZUSxtQkFBbUIsbURBU2hCLGlCQUFpQixhQUVqQixvQkFBb0I7b0hBWHZCLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOzswQkFVRixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBRXhCLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgYXJyYXlBZGQsIGFycmF5UmVtb3ZlLCBhcnJheVVwc2VydCB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGFcIjtcbmltcG9ydCB7IEZpbGVVdGlscyB9IGZyb20gXCJAcmVjdXJzeXZlL25pY2UtdWkta2l0LnYyXCI7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgUXVlcnlQYXJhbXMgfSBmcm9tIFwiLi4vLi4vLi4vYXBpL2ZpbHRlci5hcGlcIjtcbmltcG9ydCB7IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCwgRmlsdGVyUGFyYW1ldGVyc01vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9maWx0ZXIubW9kZWxcIjtcbmltcG9ydCB7IFF1ZXJ5TW9kZWwsIFF1ZXJ5UnVsZU1vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9xdWVyeS5tb2RlbFwiO1xuaW1wb3J0IHsgRmlsdGVyVXRpbHMgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvZmlsdGVyLnV0aWxzXCI7XG5pbXBvcnQgeyBRdWVyeVBhcmFtc1V0aWxzIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3F1ZXJ5LXBhcmFtcy51dGlsc1wiO1xuaW1wb3J0IHsgUUJGaWx0ZXJVdGlscyB9IGZyb20gXCIuLi8uLi9xdWVyeS1idWlsZGVyL3V0aWxzL3FiLWZpbHRlci51dGlsc1wiO1xuaW1wb3J0IHsgRElTQUJMRV9RVUVSWV9QQVJBTVMgfSBmcm9tIFwiLi4vYmFzZS1saXN0LmNvbnN0YW50XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyU2VydmljZSB9IGZyb20gXCIuLi9wcm92aWRlcnMvYmFzZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgTmljZUJhc2VMaXN0U3RvcmUgfSBmcm9tIFwiLi9iYXNlLWxpc3Quc3RvcmVcIjtcbmltcG9ydCB7IEFkZEVudGl0aWVzT3B0aW9ucyB9IGZyb20gXCJAZGF0b3JhbWEvYWtpdGEvc3JjL2xpYi9hZGRFbnRpdGllc1wiO1xuaW1wb3J0IHsgT3JkZXJVdGlscyB9IGZyb20gXCIuLi8uLi8uLi91dGlscy9vcmRlci51dGlsc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmljZUJhc2VMaXN0U2VydmljZTxGaWx0ZXIgZXh0ZW5kcyBOaWNlRmlsdGVyU2VydmljZTxhbnk+ID0gTmljZUZpbHRlclNlcnZpY2U8YW55Pj4ge1xuICAgIHB1YmxpYyBxdWVyeVBhcmFtc0xvYWRlZCQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJvdGVjdGVkIGRvd25sb2FkRmlsZU5hbWUgPSBcImRhdGFcIjtcbiAgICBwcm90ZWN0ZWQgdW5zdWJzY3JpYmVBbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcm90ZWN0ZWQgbG9hZGluZ0RhdGEgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgc3RvcmU6IE5pY2VCYXNlTGlzdFN0b3JlLFxuICAgICAgICBASW5qZWN0KE5pY2VGaWx0ZXJTZXJ2aWNlKVxuICAgICAgICBwcm90ZWN0ZWQgZmlsdGVyU2VydmljZTogRmlsdGVyLFxuICAgICAgICBASW5qZWN0KERJU0FCTEVfUVVFUllfUEFSQU1TKVxuICAgICAgICBwcm90ZWN0ZWQgZGlzYWJsZVF1ZXJ5UGFyYW1zOiBib29sZWFuLFxuICAgICAgICBwcm90ZWN0ZWQgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByb3RlY3RlZCBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWx0ZXIoKTogRmlsdGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyU2VydmljZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaW5pdChjb25maWdRdWVyeVBhcmFtczogUXVlcnlQYXJhbXMgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnN0b3JlLnNldEZpbHRlckNvbmZpZ0xvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJDb25maWcgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmZpbHRlclNlcnZpY2UuZ2V0RmlsdGVyQ29uZmlnKHsgcGFyYW1zOiBjb25maWdRdWVyeVBhcmFtcyB9KSk7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICAgICAgZmlsdGVyQ29uZmlnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRFcnJvcihlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RmlsdGVyQ29uZmlnTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRTdG9yZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS5yZXNldCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDogbnVsbFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5uZXh0KG51bGwpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zTG9hZGVkJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNhYmxlTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGVuYWJsZUxpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyhsb2FkaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TW9kZShtb2RlOiBcIm5vcm1hbFwiIHwgXCJpbmZpbml0ZS1zY3JvbGxcIik6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBtZXJnZVBhZ2VSZXN1bHRzOiBtb2RlID09PSBcImluZmluaXRlLXNjcm9sbFwiXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRRdWVyeVBhcmFtcyhxdWVyeVBhcmFtczogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHsgcXVlcnlQYXJhbXMgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGxvYWRRdWVyeVBhcmFtcyhhdXRvTG9hZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkUm91dGU/LnF1ZXJ5UGFyYW1zXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCQpLFxuICAgICAgICAgICAgICAgIG1hcCgocGFyYW1zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IFF1ZXJ5UGFyYW1zVXRpbHMuZXh0cmFjdEZpbHRlclBhcmFtZXRlcnMocGFyYW1zKVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh7IHBhcmFtcyB9KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwYXJhbXMgfHwgT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpLmZpbHRlclBhcmFtZXRlcnM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycywgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBGaWx0ZXJVdGlscy5maWx0ZXJDaGFuZ2VOZWVkc1JlZnJlc2goZmlsdGVyUGFyYW1ldGVycywgcGFyYW1zKSB8fFxuICAgICAgICAgICAgICAgICAgICAhZmlsdGVyUmVzdWx0XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdXRvTG9hZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkRGF0YShwYXJhbXMsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFyYW1ldGVycyhwYXJhbXMsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXNMb2FkZWQkLm5leHQobnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVzZXRBbmRMb2FkRGF0YShwYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsLCB1cGRhdGVRdWVyeVBhcmFtczogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZERhdGEocGFyYW1ldGVycywgdXBkYXRlUXVlcnlQYXJhbXMsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsb2FkRGF0YShwYXJhbWV0ZXJzPzogRmlsdGVyUGFyYW1ldGVyc01vZGVsLCB1cGRhdGVRdWVyeVBhcmFtczogYm9vbGVhbiA9IHRydWUsIHJlc2V0OiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBkaXNhYmxlZCwgcXVlcnlQYXJhbXMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclBhcmFtZXRlcnMgPSB0aGlzLm1lcmdlUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJQYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMsIGRpc2FibGVkID8gZmFsc2UgOiB1cGRhdGVRdWVyeVBhcmFtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ0RhdGEgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIodGhpcy5nZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMpLCB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczogcXVlcnlQYXJhbXNcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRSZXN1bHQocmVzdWx0LCByZXNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0RXJyb3IoZSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nRGF0YSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNlYXJjaERhdGEoc2VhcmNoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZERhdGEoe1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHNlYXJjaFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgbG9hZE5ld1BhZ2Uoc3RhcnQ6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZERhdGEoe1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHN0YXJ0LFxuICAgICAgICAgICAgbGVuZ3RoXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsb2FkTmV4dFBhZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWREYXRhKHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBzdGFydDogZmlsdGVyUGFyYW1ldGVycy5zdGFydCArIGZpbHRlclBhcmFtZXRlcnMubGVuZ3RoXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldFBhZ2luZygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIHRoaXMuc3RvcmUuc2V0UGFyYW1ldGVycyh7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgc3RhcnQ6IDBcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIHJlc2V0UGFnaW5nOiB0cnVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBkb3dubG9hZERhdGEoXG4gICAgICAgIHR5cGU6IHN0cmluZyxcbiAgICAgICAgcGFyYW1ldGVycz86IEZpbHRlclBhcmFtZXRlcnNNb2RlbCxcbiAgICAgICAgdXBkYXRlUXVlcnlQYXJhbXM6IGJvb2xlYW4gPSB0cnVlXG4gICAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdEYXRhID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclBhcmFtZXRlcnMgPSB0aGlzLm1lcmdlUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJQYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMsIHVwZGF0ZVF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmlsdGVyU2VydmljZS5nZXRGaWxlKHR5cGUsIHRoaXMuZ2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzKSkpO1xuICAgICAgICAgICAgRmlsZVV0aWxzLmRvd25sb2FkRmlsZShgJHt0aGlzLmRvd25sb2FkRmlsZU5hbWV9LiR7dHlwZX1gLCByZXN1bHQpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldEVycm9yKGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0RhdGEgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcmludERhdGEocGFyYW1ldGVycz86IEZpbHRlclBhcmFtZXRlcnNNb2RlbCwgdXBkYXRlUXVlcnlQYXJhbXM6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdEYXRhID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclBhcmFtZXRlcnMgPSB0aGlzLm1lcmdlUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJQYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQYXJhbWV0ZXJzKGZpbHRlclBhcmFtZXRlcnMsIHVwZGF0ZVF1ZXJ5UGFyYW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmlsdGVyU2VydmljZS5nZXRQcmludGFibGVIdG1sKHRoaXMuZ2V0UGFyYW1ldGVycyhmaWx0ZXJQYXJhbWV0ZXJzKSkpO1xuICAgICAgICAgICAgRmlsZVV0aWxzLm9wZW5QcmludGFibGVXaW5kb3cocmVzdWx0KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXRFcnJvcihlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmdEYXRhID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlUnVsZShpZDogc3RyaW5nLCBuZXdSdWxlOiBRdWVyeVJ1bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgcnVsZXMgPSBmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzPy5bMF07XG4gICAgICAgIGlmICghcnVsZXMgfHwgcnVsZXMucnVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJ1bGVzKFtuZXdSdWxlXSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvbGRSdWxlID0gcnVsZXMucnVsZXMuZmluZCgocikgPT4gKHIgYXMgUXVlcnlSdWxlTW9kZWwpLmlkID09PSBpZCkgYXMgUXVlcnlSdWxlTW9kZWw7XG4gICAgICAgIGxldCBuZXdSdWxlcyA9IHJ1bGVzLnJ1bGVzO1xuICAgICAgICBpZiAob2xkUnVsZSkge1xuICAgICAgICAgICAgaWYgKG5ld1J1bGUpIHtcbiAgICAgICAgICAgICAgICAvLyBBcnJheSByZXBsYWNlXG4gICAgICAgICAgICAgICAgbmV3UnVsZXMgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLnJ1bGVzLnJ1bGVzLnNsaWNlKDAsIHJ1bGVzLnJ1bGVzLmluZGV4T2Yob2xkUnVsZSkpLFxuICAgICAgICAgICAgICAgICAgICBuZXdSdWxlLFxuICAgICAgICAgICAgICAgICAgICAuLi5ydWxlcy5ydWxlcy5zbGljZShydWxlcy5ydWxlcy5pbmRleE9mKG9sZFJ1bGUpICsgMSwgcnVsZXMucnVsZXMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1J1bGVzID0gcnVsZXMucnVsZXMuZmlsdGVyKChyKSA9PiAociBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQgIT09IGlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld1J1bGVzID0gWy4uLm5ld1J1bGVzLCBuZXdSdWxlXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVJ1bGVzKG5ld1J1bGVzIGFzIFF1ZXJ5UnVsZU1vZGVsW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVEZWZhdWx0UnVsZXMocnVsZTogKFF1ZXJ5UnVsZU1vZGVsIHwgUXVlcnlNb2RlbClbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBkZWZhdWx0UnVsZXM6IHJ1bGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVwZGF0ZUdsb2JhbFJ1bGVzKHJ1bGVzOiBRdWVyeU1vZGVsW10sIHVwZGF0ZVF1ZXJ5UGFyYW1zID0gdHJ1ZSwgcmVzZXQgPSB0cnVlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChyZXNldCkge1xuICAgICAgICAgICAgdGhpcy5yZXNldFBhZ2luZygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IG5ld1J1bGVzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwgPSB7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgcnVsZXNcbiAgICAgICAgfTtcblxuICAgICAgICBhd2FpdCB0aGlzLmxvYWREYXRhKG5ld1J1bGVzLCB1cGRhdGVRdWVyeVBhcmFtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFJ1bGVGcm9tQ29uZmlnKGNvbmZpZzogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXRQYWdpbmcoKTtcblxuICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtZXRlcnMgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcblxuICAgICAgICBjb25zdCBuZXdSdWxlczogRmlsdGVyUGFyYW1ldGVyc01vZGVsID0ge1xuICAgICAgICAgICAgLi4uZmlsdGVyUGFyYW1ldGVycyxcbiAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAgLi4uKGZpbHRlclBhcmFtZXRlcnMucnVsZXMgYXMgUXVlcnlNb2RlbFtdKSxcbiAgICAgICAgICAgICAgICBRQkZpbHRlclV0aWxzLmNyZWF0ZVF1ZXJ5TW9kZWwoY29uZmlnKVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIHNob3dRdWVyeUJ1aWxkZXI6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sb2FkRGF0YShuZXdSdWxlcywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVJ1bGVzKHJ1bGVzOiBRdWVyeVJ1bGVNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBuZXdSdWxlczogRmlsdGVyUGFyYW1ldGVyc01vZGVsID0ge1xuICAgICAgICAgICAgb3JkZXI6IGZpbHRlclBhcmFtZXRlcnMub3JkZXIsXG4gICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiBcImFuZFwiLFxuICAgICAgICAgICAgICAgICAgICBydWxlc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmxvYWREYXRhKG5ld1J1bGVzLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlUXVlcnlCdWlsZGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICBzaG93UXVlcnlCdWlsZGVyOiAhc3RhdGUuc2hvd1F1ZXJ5QnVpbGRlclxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZExpc3RWYWx1ZSh2YWx1ZTogYW55LCBvcHRzPzogQWRkRW50aXRpZXNPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGlmICghZmlsdGVyUmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0b3JlLnVwZGF0ZSh7XG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgICAuLi5maWx0ZXJSZXN1bHQsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBhcnJheUFkZChmaWx0ZXJSZXN1bHQudmFsdWVzLCB2YWx1ZSwgb3B0cylcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUxpc3RWYWx1ZSh2YWx1ZTogYW55LCBrZXkgPSBcImlkXCIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJSZXN1bHQgfSA9IHRoaXMuc3RvcmUuZ2V0VmFsdWUoKTtcbiAgICAgICAgaWYgKCFmaWx0ZXJSZXN1bHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RvcmUudXBkYXRlKHtcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdDoge1xuICAgICAgICAgICAgICAgIC4uLmZpbHRlclJlc3VsdCxcbiAgICAgICAgICAgICAgICB2YWx1ZXM6IGFycmF5VXBzZXJ0KGZpbHRlclJlc3VsdC52YWx1ZXMsIHZhbHVlW2tleV0sIHZhbHVlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlTGlzdFZhbHVlKHZhbHVlOiBhbnksIGtleSA9IFwiaWRcIik6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGZpbHRlclJlc3VsdCB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoIWZpbHRlclJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zdG9yZS51cGRhdGUoe1xuICAgICAgICAgICAgZmlsdGVyUmVzdWx0OiB7XG4gICAgICAgICAgICAgICAgLi4uZmlsdGVyUmVzdWx0LFxuICAgICAgICAgICAgICAgIHZhbHVlczogYXJyYXlSZW1vdmUoZmlsdGVyUmVzdWx0LnZhbHVlcywgdmFsdWVba2V5XSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhcmFtZXRlcnMoZmlsdGVyUGFyYW1ldGVycz86IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCB7XG4gICAgICAgIGNvbnN0IHsgZGVmYXVsdFJ1bGVzIH0gPSB0aGlzLnN0b3JlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7XG4gICAgICAgICAgICAuLi5maWx0ZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgICAgcnVsZXM6IGZpbHRlclBhcmFtZXRlcnM/LnJ1bGVzID8gWy4uLmZpbHRlclBhcmFtZXRlcnMucnVsZXNdIDogW11cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGRlZmF1bHRSdWxlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzLnJ1bGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCJhbmRcIixcbiAgICAgICAgICAgICAgICBydWxlczogZGVmYXVsdFJ1bGVzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgdXBkYXRlUXVlcnlQYXJhbXMocXVlcnlQYXJhbXM6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMuYWN0aXZhdGVkUm91dGUgfHwgdGhpcy5kaXNhYmxlUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBcIm1lcmdlXCJcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtZXJnZVBhcmFtZXRlcnMocGFyYW1ldGVycz86IEZpbHRlclBhcmFtZXRlcnNNb2RlbCk6IEZpbHRlclBhcmFtZXRlcnNNb2RlbCB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycyB9ID0gdGhpcy5zdG9yZS5nZXRWYWx1ZSgpO1xuICAgICAgICBpZiAoIXBhcmFtZXRlcnMpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJQYXJhbWV0ZXJzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICAuLi5wYXJhbWV0ZXJzLFxuICAgICAgICAgICAgb3JkZXI6IE9yZGVyVXRpbHMubWVyZ2VPcmRlcihmaWx0ZXJQYXJhbWV0ZXJzLm9yZGVyLCBwYXJhbWV0ZXJzLm9yZGVyKSxcbiAgICAgICAgICAgIGZhbGxiYWNrT3JkZXI6IE9yZGVyVXRpbHMuY29tYmluZU9yZGVycyhmaWx0ZXJQYXJhbWV0ZXJzLmZhbGxiYWNrT3JkZXIsIHBhcmFtZXRlcnMuZmFsbGJhY2tPcmRlciwgeyB1bmlxdWVGcm9tQmFjazogdHJ1ZSB9KVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0UGFyYW1ldGVycyhwYXJhbWV0ZXJzOiBGaWx0ZXJQYXJhbWV0ZXJzTW9kZWwsIHVwZGF0ZVF1ZXJ5UGFyYW1zOiBib29sZWFuID0gdHJ1ZSwgbWVyZ2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAobWVyZ2UpIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcnMgPSB0aGlzLm1lcmdlUGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RvcmUuc2V0UGFyYW1ldGVycyhwYXJhbWV0ZXJzKTtcbiAgICAgICAgaWYgKHVwZGF0ZVF1ZXJ5UGFyYW1zKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKFF1ZXJ5UGFyYW1zVXRpbHMuZmlsdGVyUGFyYW1ldGVyc1RvUGFyYW1zTWFwKHBhcmFtZXRlcnMpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
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
|
+
constructor(query, service, overlayPositionBuilder, elementRef, overlay, platform, injector) {
|
|
15
|
+
this.query = query;
|
|
16
|
+
this.service = service;
|
|
17
|
+
this.overlayPositionBuilder = overlayPositionBuilder;
|
|
18
|
+
this.elementRef = elementRef;
|
|
19
|
+
this.overlay = overlay;
|
|
20
|
+
this.platform = platform;
|
|
21
|
+
this.injector = injector;
|
|
22
|
+
this.position = "bottomCenter";
|
|
23
|
+
this.advancedFilterSelected = new EventEmitter();
|
|
24
|
+
}
|
|
25
|
+
get connectedPosition() {
|
|
26
|
+
if (this.position === "topRight") {
|
|
27
|
+
return {
|
|
28
|
+
originX: "end",
|
|
29
|
+
originY: "top",
|
|
30
|
+
overlayX: "start",
|
|
31
|
+
overlayY: "top",
|
|
32
|
+
offsetX: 15
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
originX: "center",
|
|
37
|
+
originY: "bottom",
|
|
38
|
+
overlayX: "center",
|
|
39
|
+
overlayY: "top"
|
|
40
|
+
};
|
|
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
|
+
}
|
|
70
|
+
AdvancedFiltersTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", 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 });
|
|
71
|
+
AdvancedFiltersTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.3", type: AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: { position: "position" }, outputs: { advancedFilterSelected: "advancedFilterSelected" }, host: { listeners: { "click": "click()" } }, exportAs: ["niceAdvancedFiltersTrigger"], ngImport: i0 });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: AdvancedFiltersTriggerDirective, decorators: [{
|
|
73
|
+
type: Directive,
|
|
74
|
+
args: [{ selector: "[niceAdvancedFiltersTrigger]", exportAs: "niceAdvancedFiltersTrigger" }]
|
|
75
|
+
}], ctorParameters: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2NvbXBvbmVudHMvYWR2YW5jZWQtZmlsdGVycy9hZHZhbmNlZC1maWx0ZXJzLXRyaWdnZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsT0FBTyxFQUFFLHNCQUFzQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6SCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7O0FBR3JHLE1BQU0sT0FBTywrQkFBK0I7SUE2QnhDLFlBQ1ksS0FBMEIsRUFDMUIsT0FBOEIsRUFDOUIsc0JBQThDLEVBQzlDLFVBQXNCLEVBQ3RCLE9BQWdCLEVBQ2hCLFFBQWtCLEVBQ2xCLFFBQWtCO1FBTmxCLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQS9CdkIsYUFBUSxHQUFnQyxjQUFjLENBQUM7UUFHdkQsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7SUE2QjFFLENBQUM7SUEzQkosSUFBWSxpQkFBaUI7UUFDekIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFVBQVUsRUFBRTtZQUM5QixPQUFPO2dCQUNILE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUUsRUFBRTthQUNkLENBQUM7U0FDTDtRQUVELE9BQU87WUFDSCxPQUFPLEVBQUUsUUFBUTtZQUNqQixPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsUUFBUTtZQUNsQixRQUFRLEVBQUUsS0FBSztTQUNsQixDQUFDO0lBQ04sQ0FBQztJQWFNLEtBQUs7UUFDUixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQ3BHLElBQUksQ0FBQyxpQkFBaUI7U0FDekIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUNsQyxnQkFBZ0I7WUFDaEIsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGtDQUFrQztZQUNqRCxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUU7U0FDeEQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxvQ0FBb0MsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdHLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBRXRDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxLQUFLO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sOEJBQThCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDMUIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBZ0MsRUFBRSxFQUFFO1lBQzNGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7NEhBdkVRLCtCQUErQjtnSEFBL0IsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBRDNDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsOEJBQThCLEVBQUUsUUFBUSxFQUFFLDRCQUE0QixFQUFFO2dSQU1wRixRQUFRO3NCQURkLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixNQUFNO2dCQWlDQSxLQUFLO3NCQURYLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uLCBPdmVybGF5LCBPdmVybGF5UG9zaXRpb25CdWlsZGVyLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcGxhdGZvcm1cIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1F1ZXJ5IH0gZnJvbSBcIi4uLy4uL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJWaWV3U2VydmljZSB9IGZyb20gXCIuLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnNlcnZpY2VcIjtcbmltcG9ydCB7IE5pY2VBZHZhbmNlZEZpbHRlclNlbGVjdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuL2ZpbHRlci1zZWxlY3Rpb24vZmlsdGVyLXNlbGVjdGlvbi5jb21wb25lbnRcIjtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiBcIltuaWNlQWR2YW5jZWRGaWx0ZXJzVHJpZ2dlcl1cIiwgZXhwb3J0QXM6IFwibmljZUFkdmFuY2VkRmlsdGVyc1RyaWdnZXJcIiB9KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkRmlsdGVyc1RyaWdnZXJEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgICBwcml2YXRlIGZpbHRlclNlbGVjdGlvblJlZjogQ29tcG9uZW50UmVmPE5pY2VBZHZhbmNlZEZpbHRlclNlbGVjdGlvbkNvbXBvbmVudD47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwb3NpdGlvbjogXCJ0b3BSaWdodFwiIHwgXCJib3R0b21DZW50ZXJcIiA9IFwiYm90dG9tQ2VudGVyXCI7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgYWR2YW5jZWRGaWx0ZXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsPigpO1xuXG4gICAgcHJpdmF0ZSBnZXQgY29ubmVjdGVkUG9zaXRpb24oKTogQ29ubmVjdGVkUG9zaXRpb24ge1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gXCJ0b3BSaWdodFwiKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6IFwiZW5kXCIsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogXCJ0b3BcIixcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogXCJzdGFydFwiLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiBcInRvcFwiLFxuICAgICAgICAgICAgICAgIG9mZnNldFg6IDE1XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9yaWdpblg6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBvcmlnaW5ZOiBcImJvdHRvbVwiLFxuICAgICAgICAgICAgb3ZlcmxheVg6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHF1ZXJ5OiBOaWNlRmlsdGVyVmlld1F1ZXJ5LFxuICAgICAgICBwcml2YXRlIHNlcnZpY2U6IE5pY2VGaWx0ZXJWaWV3U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5UG9zaXRpb25CdWlsZGVyOiBPdmVybGF5UG9zaXRpb25CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXG4gICAgcHVibGljIGNsaWNrKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5UG9zaXRpb25CdWlsZGVyLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50UmVmKS53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkUG9zaXRpb25cbiAgICAgICAgXSk7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogXCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKClcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZmlsdGVyU2VsZWN0aW9uUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChOaWNlQWR2YW5jZWRGaWx0ZXJTZWxlY3Rpb25Db21wb25lbnQsIG51bGwsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICB0aGlzLmZpbHRlclNlbGVjdGlvblJlZiA9IHRoaXMub3ZlcmxheVJlZi5hdHRhY2goZmlsdGVyU2VsZWN0aW9uUG9ydGFsKTtcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJTZWxlY3Rpb25Db21wb25lbnQoKTtcblxuICAgICAgICB0aGlzLm92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVGaWx0ZXJTZWxlY3Rpb25Db21wb25lbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5maWx0ZXJTZWxlY3Rpb25SZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlsdGVyU2VsZWN0aW9uUmVmLmluc3RhbmNlLmZpbHRlclNlbGVjdGVkLnN1YnNjcmliZSgoZmlsdGVyOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWR2YW5jZWRGaWx0ZXJTZWxlY3RlZC5lbWl0KGZpbHRlcik7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,83 @@
|
|
|
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 } = this.query.getValue();
|
|
36
|
+
if (filterParameters.rules?.length) {
|
|
37
|
+
this.formGroup.patchValue(new AdvancedFiltersForm(filterParameters.rules[0]));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
onClickAddRule(filterConfigurationModel) {
|
|
41
|
+
this.rulesFormArray.push(new FilterForm(AdvancedFiltersUtils.createRule(filterConfigurationModel)));
|
|
42
|
+
this.changeDetectorRef.markForCheck();
|
|
43
|
+
}
|
|
44
|
+
onClickDeleteRule(index) {
|
|
45
|
+
this.rulesFormArray.removeAt(index);
|
|
46
|
+
if (!this.rulesFormArray.length) {
|
|
47
|
+
this.service.setRules([], true);
|
|
48
|
+
this.onClose();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
onClose() {
|
|
52
|
+
this.service.updateSubState("showAdvancedFilters", false);
|
|
53
|
+
}
|
|
54
|
+
onRefresh() {
|
|
55
|
+
this.service.setRules(this.formGroup.getRawValue().transform(), true);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
NiceAdvancedFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.3", 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 });
|
|
59
|
+
NiceAdvancedFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.3", type: NiceAdvancedFiltersComponent, selector: "nice-advanced-filters", providers: [
|
|
60
|
+
NgxFormGeneratorProvider.forFeature([AdvancedFiltersForm]),
|
|
61
|
+
{
|
|
62
|
+
provide: NICE_ASYNC_TYPEAHEAD_PROVIDER,
|
|
63
|
+
useClass: AdvancedFiltersAsyncTypeaheadProvider,
|
|
64
|
+
multi: true
|
|
65
|
+
}
|
|
66
|
+
], 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", exportAs: ["matRadioGroup"] }, { kind: "component", type: i6.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], 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-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], 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 });
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.3", ngImport: i0, type: NiceAdvancedFiltersComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: "nice-advanced-filters", encapsulation: ViewEncapsulation.None, providers: [
|
|
70
|
+
NgxFormGeneratorProvider.forFeature([AdvancedFiltersForm]),
|
|
71
|
+
{
|
|
72
|
+
provide: NICE_ASYNC_TYPEAHEAD_PROVIDER,
|
|
73
|
+
useClass: AdvancedFiltersAsyncTypeaheadProvider,
|
|
74
|
+
multi: true
|
|
75
|
+
}
|
|
76
|
+
], 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" }]
|
|
77
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
78
|
+
type: Optional
|
|
79
|
+
}, {
|
|
80
|
+
type: Inject,
|
|
81
|
+
args: [ADVANCED_FILTER_ICONS]
|
|
82
|
+
}] }, { type: i1.GeneratedFormGroup }, { type: i2.NiceFilterViewQuery }, { type: i3.NiceFilterViewService }, { type: i0.ChangeDetectorRef }]; } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYWR2YW5jZWQtZmlsdGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvYWR2YW5jZWQtZmlsdGVycy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQXNCLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakgsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFMUUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0YsT0FBTyxFQUFFLG9CQUFv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OzBCQUFJLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgR2VuZXJhdGVkRm9ybUFycmF5LCBHZW5lcmF0ZWRGb3JtR3JvdXAsIE5neEZvcm1HZW5lcmF0b3JQcm92aWRlciB9IGZyb20gXCJAcmVjdXJzeXZlL25neC1mb3JtLWdlbmVyYXRvclwiO1xuaW1wb3J0IHsgTklDRV9BU1lOQ19UWVBFQUhFQURfUFJPVklERVIgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uaWNlLXVpLWtpdC52MlwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLm1vZGVsXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1F1ZXJ5IH0gZnJvbSBcIi4uLy4uL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcucXVlcnlcIjtcbmltcG9ydCB7IE5pY2VGaWx0ZXJWaWV3U2VydmljZSB9IGZyb20gXCIuLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnNlcnZpY2VcIjtcbmltcG9ydCB7IEFEVkFOQ0VEX0ZJTFRFUl9JQ09OUyB9IGZyb20gXCIuL2FkdmFuY2VkLWZpbHRlcnMuY29uc3RhbnRcIjtcbmltcG9ydCB7IEFkdmFuY2VkRmlsdGVyc0Zvcm0sIEZpbHRlckZvcm0gfSBmcm9tIFwiLi9hZHZhbmNlZC1maWx0ZXJzLmZvcm1cIjtcbmltcG9ydCB7IE5pY2VBZHZhbmNlZEZpbHRlckljb25PcHRpb25zIH0gZnJvbSBcIi4vbW9kZWxzL2ljb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBBZHZhbmNlZEZpbHRlcnNBc3luY1R5cGVhaGVhZFByb3ZpZGVyIH0gZnJvbSBcIi4vcHJvdmlkZXJzL2FzeW5jLXR5cGVhaGVhZC5wcm92aWRlclwiO1xuaW1wb3J0IHsgQWR2YW5jZWRGaWx0ZXJzVXRpbHMgfSBmcm9tIFwiLi91dGlscy9hZHZhbmNlZC1maWx0ZXJzLnV0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm5pY2UtYWR2YW5jZWQtZmlsdGVyc1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcImFkdmFuY2VkLWZpbHRlcnMudGVtcGxhdGUuaHRtbFwiLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE5neEZvcm1HZW5lcmF0b3JQcm92aWRlci5mb3JGZWF0dXJlKFtBZHZhbmNlZEZpbHRlcnNGb3JtXSksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5JQ0VfQVNZTkNfVFlQRUFIRUFEX1BST1ZJREVSLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IEFkdmFuY2VkRmlsdGVyc0FzeW5jVHlwZWFoZWFkUHJvdmlkZXIsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOaWNlQWR2YW5jZWRGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgY29uZmlnJCA9IHRoaXMucXVlcnkuc2VsZWN0RmlsdGVyQ29uZmlnKCk7XG5cbiAgICBwdWJsaWMgcnVsZXMkOiBPYnNlcnZhYmxlPEZpbHRlckZvcm1bXT47XG4gICAgcHVibGljIHJ1bGVzRm9ybUFycmF5OiBHZW5lcmF0ZWRGb3JtQXJyYXk8RmlsdGVyRm9ybT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBRFZBTkNFRF9GSUxURVJfSUNPTlMpXG4gICAgICAgIHB1YmxpYyBpY29uczogTmljZUFkdmFuY2VkRmlsdGVySWNvbk9wdGlvbnMsXG4gICAgICAgIHB1YmxpYyBmb3JtR3JvdXA6IEdlbmVyYXRlZEZvcm1Hcm91cDxBZHZhbmNlZEZpbHRlcnNGb3JtPixcbiAgICAgICAgcHJpdmF0ZSBxdWVyeTogTmljZUZpbHRlclZpZXdRdWVyeSxcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBOaWNlRmlsdGVyVmlld1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHRoaXMucnVsZXNGb3JtQXJyYXkgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJydWxlc1wiKSBhcyBHZW5lcmF0ZWRGb3JtQXJyYXk8RmlsdGVyRm9ybT47XG4gICAgICAgIHRoaXMucnVsZXMkID0gdGhpcy5ydWxlc0Zvcm1BcnJheS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5ydWxlc0Zvcm1BcnJheS52YWx1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbWV0ZXJzIH0gPSB0aGlzLnF1ZXJ5LmdldFZhbHVlKCk7XG4gICAgICAgIGlmIChmaWx0ZXJQYXJhbWV0ZXJzLnJ1bGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUobmV3IEFkdmFuY2VkRmlsdGVyc0Zvcm0oZmlsdGVyUGFyYW1ldGVycy5ydWxlc1swXSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xpY2tBZGRSdWxlKGZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbDogRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucnVsZXNGb3JtQXJyYXkucHVzaChuZXcgRmlsdGVyRm9ybShBZHZhbmNlZEZpbHRlcnNVdGlscy5jcmVhdGVSdWxlKGZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCkpKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGlja0RlbGV0ZVJ1bGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnJ1bGVzRm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgICAgICAgaWYgKCF0aGlzLnJ1bGVzRm9ybUFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnNldFJ1bGVzKFtdLCB0cnVlKTtcbiAgICAgICAgICAgIHRoaXMub25DbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS51cGRhdGVTdWJTdGF0ZShcInNob3dBZHZhbmNlZEZpbHRlcnNcIiwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJlZnJlc2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5zZXRSdWxlcyh0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpLnRyYW5zZm9ybSgpLCB0cnVlKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkdmFuY2VkLWZpbHRlci10aXRsZVwiPnt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMudGl0bGVcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZHZhbmNlZC1maWx0ZXItY29uZGl0aW9uXCI+e3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy5jb25kaXRpb25zLnNob3VsZF9tYXRjaFwiIHwgdHJhbnNsYXRlIH19PC9kaXY+XG5cbiAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIHZhbHVlPVwiYW5kXCI+PHNwYW4gY2xhc3M9XCJtbC00IG1yLThcIj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNvbmRpdGlvbnMuZXZlcnlcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj48L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cIm9yXCI+PHNwYW4gY2xhc3M9XCJtbC00IG1yLThcIj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNvbmRpdGlvbnMuc29tZVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPjwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtNFwiIGZvcm1BcnJheU5hbWU9XCJydWxlc1wiICpuZ0Zvcj1cImxldCBfIG9mIHJ1bGVzRm9ybUFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxuaWNlLWFkdmFuY2VkLXJ1bGUgW2ZpbHRlckNvbmZpZ3NdPVwiY29uZmlnJCB8IGFzeW5jXCIgW2Zvcm1Hcm91cE5hbWVdPVwiaVwiIChyZW1vdmUpPVwib25DbGlja0RlbGV0ZVJ1bGUoaSlcIj48L25pY2UtYWR2YW5jZWQtcnVsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhZGQtY29uZGl0aW9uXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgbmljZUFkdmFuY2VkRmlsdGVyc1RyaWdnZXIgcG9zaXRpb249XCJ0b3BSaWdodFwiIChhZHZhbmNlZEZpbHRlclNlbGVjdGVkKT1cIm9uQ2xpY2tBZGRSdWxlKCRldmVudClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5hZGQuc3ZnSWNvblwiPnt7IGljb25zLmFkZC5tYXRJY29uIH19PC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgIDxkaXY+e3sgXCJjb21wb25lbnRzLm5pY2VfYWR2YW5jZWRfZmlsdGVycy5hZGRfY29uZGl0aW9uXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC02IGp1c3RpZnktZW5kIHB0LTRcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuY2xvc2Uuc3ZnSWNvblwiPnt7IGljb25zLmNsb3NlLm1hdEljb24gfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGRpdj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLmNsb3NlXCIgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVmcmVzaC1idXR0b25cIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwib25SZWZyZXNoKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5yZWZyZXNoLnN2Z0ljb25cIj57eyBpY29ucy5yZWZyZXNoLm1hdEljb24gfX08L21hdC1pY29uPlxuXG4gICAgICAgICAgICAgICAgPGRpdj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLnJlZnJlc2hcIiB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
export const ADVANCED_FILTER_ICONS = new InjectionToken("advanced_filter_icons");
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy5jb25zdGFudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2NvbXBvbmVudHMvYWR2YW5jZWQtZmlsdGVycy9hZHZhbmNlZC1maWx0ZXJzLmNvbnN0YW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQUMsdUJBQXVCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGNvbnN0IEFEVkFOQ0VEX0ZJTFRFUl9JQ09OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbihcImFkdmFuY2VkX2ZpbHRlcl9pY29uc1wiKTtcbiJdfQ==
|
|
@@ -0,0 +1,127 @@
|
|
|
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 }) => parent.needsTwoValues, 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
|
+
needsTwoValues,
|
|
30
|
+
values: [
|
|
31
|
+
{
|
|
32
|
+
value: needsTwoValues ? rule.value[0] : rule.value,
|
|
33
|
+
secondValue: needsTwoValues ? rule.value[1] : undefined
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
});
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const query = value;
|
|
40
|
+
const firstRule = query.rules[0];
|
|
41
|
+
if (!query.rules.every((rule) => rule.id === firstRule.id)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const firstRuleNeedsTwoValues = QBFilterUtils.isDoubleInput(firstRule.operation);
|
|
45
|
+
Object.assign(this, {
|
|
46
|
+
id: firstRule.id,
|
|
47
|
+
operation: firstRule.operation,
|
|
48
|
+
condition: query.condition,
|
|
49
|
+
needsTwoValues: firstRuleNeedsTwoValues,
|
|
50
|
+
values: query.rules.map((rule) => ({
|
|
51
|
+
value: firstRuleNeedsTwoValues ? rule.value[0] : rule.value,
|
|
52
|
+
secondValue: firstRuleNeedsTwoValues ? rule.value[1] : undefined
|
|
53
|
+
}))
|
|
54
|
+
});
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
transform() {
|
|
58
|
+
if (this.values.length === 1) {
|
|
59
|
+
const value = this.values[0];
|
|
60
|
+
return {
|
|
61
|
+
id: this.id,
|
|
62
|
+
operation: this.operation,
|
|
63
|
+
value: this.needsTwoValues ? [value.value, value.secondValue] : value.value
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
condition: this.condition,
|
|
68
|
+
rules: this.values.map((value) => ({
|
|
69
|
+
id: this.id,
|
|
70
|
+
operation: this.operation,
|
|
71
|
+
value: this.needsTwoValues ? [value.value, value.secondValue] : value.value
|
|
72
|
+
}))
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
__decorate([
|
|
77
|
+
Control(),
|
|
78
|
+
Required(),
|
|
79
|
+
__metadata("design:type", String)
|
|
80
|
+
], FilterForm.prototype, "id", void 0);
|
|
81
|
+
__decorate([
|
|
82
|
+
Control(),
|
|
83
|
+
Required(),
|
|
84
|
+
__metadata("design:type", String)
|
|
85
|
+
], FilterForm.prototype, "operation", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
Control(),
|
|
88
|
+
__metadata("design:type", Boolean)
|
|
89
|
+
], FilterForm.prototype, "needsTwoValues", void 0);
|
|
90
|
+
__decorate([
|
|
91
|
+
Control(),
|
|
92
|
+
Required(),
|
|
93
|
+
__metadata("design:type", String)
|
|
94
|
+
], FilterForm.prototype, "condition", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
Array(FilterFormValues),
|
|
97
|
+
__metadata("design:type", Array)
|
|
98
|
+
], FilterForm.prototype, "values", void 0);
|
|
99
|
+
export class AdvancedFiltersForm {
|
|
100
|
+
constructor(query) {
|
|
101
|
+
if (!query) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (!query?.rules) {
|
|
105
|
+
this.rules = [];
|
|
106
|
+
this.condition = "and";
|
|
107
|
+
}
|
|
108
|
+
this.condition = query.condition;
|
|
109
|
+
this.rules = query.rules.map(x => new FilterForm(x));
|
|
110
|
+
}
|
|
111
|
+
transform() {
|
|
112
|
+
return {
|
|
113
|
+
condition: this.condition,
|
|
114
|
+
rules: this.rules.map((rule) => rule.transform())
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
__decorate([
|
|
119
|
+
Array(FilterForm),
|
|
120
|
+
__metadata("design:type", Array)
|
|
121
|
+
], AdvancedFiltersForm.prototype, "rules", void 0);
|
|
122
|
+
__decorate([
|
|
123
|
+
Control({ defaultValue: "and" }),
|
|
124
|
+
Required(),
|
|
125
|
+
__metadata("design:type", String)
|
|
126
|
+
], AdvancedFiltersForm.prototype, "condition", void 0);
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25pY2UtZmlsdGVyLXZpZXcvY29tcG9uZW50cy9hZHZhbmNlZC1maWx0ZXJzL2FkdmFuY2VkLWZpbHRlcnMuZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV6RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFN0UsTUFBTSxPQUFPLGdCQUFnQjtDQVE1QjtBQUxHO0lBRkMsT0FBTyxFQUFFO0lBQ1QsUUFBUSxFQUFFOzsrQ0FDTztBQUlsQjtJQUZDLE9BQU8sRUFBRTtJQUNULGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQzs7cURBQ25EO0FBRzVCLE1BQU0sT0FBTyxVQUFVO0lBbUJuQixZQUFZLEtBQWtDO1FBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxJQUFLLEtBQXdCLENBQUMsRUFBRSxFQUFFO1lBQzlCLE1BQU0sSUFBSSxHQUFHLEtBQXVCLENBQUM7WUFDckMsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQW1C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ekI7SUFEQyxPQUFPLEVBQUU7O2tEQUNxQjtBQUkvQjtJQUZDLE9BQU8sRUFBRTtJQUNULFFBQVEsRUFBRTs7NkNBQ2lCO0FBRzVCO0lBREMsS0FBSyxDQUFDLGdCQUFnQixDQUFDOzswQ0FDVTtBQWtFdEMsTUFBTSxPQUFPLG1CQUFtQjtJQVE1QixZQUFZLEtBQWlCO1FBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxTQUFTO1FBQ1osT0FBTztZQUNILFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwRCxDQUFDO0lBQ04sQ0FBQztDQUNKO0FBMUJHO0lBREMsS0FBSyxDQUFDLFVBQVUsQ0FBQzs7a0RBQ1M7QUFJM0I7SUFGQyxPQUFPLENBQUMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDaEMsUUFBUSxFQUFFOztzREFDaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBBZGRWYWxpZGF0b3JJZiwgQXJyYXksIENvbnRyb2wsIFJlcXVpcmVkIH0gZnJvbSBcIkByZWN1cnN5dmUvbmd4LWZvcm0tZ2VuZXJhdG9yXCI7XG5pbXBvcnQgeyBDb25kaXRpb24sIEZpbHRlck9wZXJhdG9ycywgUXVlcnlNb2RlbCwgUXVlcnlSdWxlTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vLi4vbW9kZWxzL3F1ZXJ5Lm1vZGVsXCI7XG5pbXBvcnQgeyBRQkZpbHRlclV0aWxzIH0gZnJvbSBcIi4uLy4uLy4uL3F1ZXJ5LWJ1aWxkZXIvdXRpbHMvcWItZmlsdGVyLnV0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJGb3JtVmFsdWVzIHtcbiAgICBAQ29udHJvbCgpXG4gICAgQFJlcXVpcmVkKClcbiAgICBwdWJsaWMgdmFsdWU6IGFueTtcblxuICAgIEBDb250cm9sKClcbiAgICBAQWRkVmFsaWRhdG9ySWYoKHsgcGFyZW50IH0pID0+IHBhcmVudC5uZWVkc1R3b1ZhbHVlcywgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICBwdWJsaWMgc2Vjb25kVmFsdWU6IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEZpbHRlckZvcm0ge1xuICAgIEBDb250cm9sKClcbiAgICBAUmVxdWlyZWQoKVxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gICAgQENvbnRyb2woKVxuICAgIEBSZXF1aXJlZCgpXG4gICAgcHVibGljIG9wZXJhdGlvbjogc3RyaW5nO1xuXG4gICAgQENvbnRyb2woKVxuICAgIHB1YmxpYyBuZWVkc1R3b1ZhbHVlczogYm9vbGVhbjtcblxuICAgIEBDb250cm9sKClcbiAgICBAUmVxdWlyZWQoKVxuICAgIHB1YmxpYyBjb25kaXRpb246IENvbmRpdGlvbjtcblxuICAgIEBBcnJheShGaWx0ZXJGb3JtVmFsdWVzKVxuICAgIHB1YmxpYyB2YWx1ZXM6IEZpbHRlckZvcm1WYWx1ZXNbXTtcblxuICAgIGNvbnN0cnVjdG9yKHZhbHVlOiBRdWVyeU1vZGVsIHwgUXVlcnlSdWxlTW9kZWwpIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCh2YWx1ZSBhcyBRdWVyeVJ1bGVNb2RlbCkuaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJ1bGUgPSB2YWx1ZSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzVHdvVmFsdWVzID0gUUJGaWx0ZXJVdGlscy5pc0RvdWJsZUlucHV0KHJ1bGUub3BlcmF0aW9uKTtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywge1xuICAgICAgICAgICAgICAgIGlkOiBydWxlLmlkLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogcnVsZS5vcGVyYXRpb24gYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCJvclwiLFxuICAgICAgICAgICAgICAgIG5lZWRzVHdvVmFsdWVzLFxuICAgICAgICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmVlZHNUd29WYWx1ZXMgPyBydWxlLnZhbHVlWzBdIDogcnVsZS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZFZhbHVlOiBuZWVkc1R3b1ZhbHVlcyA/IHJ1bGUudmFsdWVbMV0gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVlcnkgPSB2YWx1ZSBhcyBRdWVyeU1vZGVsO1xuICAgICAgICBjb25zdCBmaXJzdFJ1bGUgPSBxdWVyeS5ydWxlc1swXSBhcyBRdWVyeVJ1bGVNb2RlbDtcbiAgICAgICAgaWYgKCFxdWVyeS5ydWxlcy5ldmVyeSgocnVsZSkgPT4gKHJ1bGUgYXMgUXVlcnlSdWxlTW9kZWwpLmlkID09PSBmaXJzdFJ1bGUuaWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaXJzdFJ1bGVOZWVkc1R3b1ZhbHVlcyA9IFFCRmlsdGVyVXRpbHMuaXNEb3VibGVJbnB1dChmaXJzdFJ1bGUub3BlcmF0aW9uKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCB7XG4gICAgICAgICAgICBpZDogZmlyc3RSdWxlLmlkLFxuICAgICAgICAgICAgb3BlcmF0aW9uOiBmaXJzdFJ1bGUub3BlcmF0aW9uIGFzIHN0cmluZyxcbiAgICAgICAgICAgIGNvbmRpdGlvbjogcXVlcnkuY29uZGl0aW9uLFxuICAgICAgICAgICAgbmVlZHNUd29WYWx1ZXM6IGZpcnN0UnVsZU5lZWRzVHdvVmFsdWVzLFxuICAgICAgICAgICAgdmFsdWVzOiBxdWVyeS5ydWxlcy5tYXAoKHJ1bGU6IFF1ZXJ5UnVsZU1vZGVsKSA9PiAoe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBmaXJzdFJ1bGVOZWVkc1R3b1ZhbHVlcyA/IHJ1bGUudmFsdWVbMF0gOiBydWxlLnZhbHVlLFxuICAgICAgICAgICAgICAgIHNlY29uZFZhbHVlOiBmaXJzdFJ1bGVOZWVkc1R3b1ZhbHVlcyA/IHJ1bGUudmFsdWVbMV0gOiB1bmRlZmluZWRcbiAgICAgICAgICAgIH0pKVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKCk6IFF1ZXJ5TW9kZWwgfCBRdWVyeVJ1bGVNb2RlbCB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZXNbMF07XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogdGhpcy5vcGVyYXRpb24gYXMgRmlsdGVyT3BlcmF0b3JzLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLm5lZWRzVHdvVmFsdWVzID8gW3ZhbHVlLnZhbHVlLCB2YWx1ZS5zZWNvbmRWYWx1ZV0gOiB2YWx1ZS52YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb25kaXRpb246IHRoaXMuY29uZGl0aW9uLFxuICAgICAgICAgICAgcnVsZXM6IHRoaXMudmFsdWVzLm1hcCgodmFsdWUpID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiB0aGlzLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5uZWVkc1R3b1ZhbHVlcyA/IFt2YWx1ZS52YWx1ZSwgdmFsdWUuc2Vjb25kVmFsdWVdIDogdmFsdWUudmFsdWVcbiAgICAgICAgICAgIH0pIGFzIFF1ZXJ5UnVsZU1vZGVsKVxuICAgICAgICB9O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkRmlsdGVyc0Zvcm0ge1xuICAgIEBBcnJheShGaWx0ZXJGb3JtKVxuICAgIHB1YmxpYyBydWxlczogRmlsdGVyRm9ybVtdO1xuXG4gICAgQENvbnRyb2woeyBkZWZhdWx0VmFsdWU6IFwiYW5kXCIgfSlcbiAgICBAUmVxdWlyZWQoKVxuICAgIHB1YmxpYyBjb25kaXRpb246IENvbmRpdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHF1ZXJ5OiBRdWVyeU1vZGVsKSB7XG4gICAgICAgIGlmICghcXVlcnkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcXVlcnk/LnJ1bGVzKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bGVzID0gW107XG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbiA9IFwiYW5kXCI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmRpdGlvbiA9IHF1ZXJ5LmNvbmRpdGlvbjtcbiAgICAgICAgdGhpcy5ydWxlcyA9IHF1ZXJ5LnJ1bGVzLm1hcCh4ID0+IG5ldyBGaWx0ZXJGb3JtKHgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKCk6IFF1ZXJ5TW9kZWwge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiB0aGlzLmNvbmRpdGlvbixcbiAgICAgICAgICAgIHJ1bGVzOiB0aGlzLnJ1bGVzLm1hcCgocnVsZSkgPT4gcnVsZS50cmFuc2Zvcm0oKSlcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|