@firestitch/filter 18.2.66 → 18.2.67
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/app/components/filter/filter.component.d.ts +2 -9
- package/app/components/filter-chips/filter-chips.component.d.ts +22 -7
- package/app/components/filter-item-dialog/filter-item-dialog.component.d.ts +9 -0
- package/app/components/filter-item-dialog/index.d.ts +1 -0
- package/app/components/filters-item/autocomplete/autocomplete.component.d.ts +2 -1
- package/app/components/filters-item/autocomplete/index.d.ts +1 -0
- package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +2 -1
- package/app/components/filters-item/autocompletechips/index.d.ts +1 -0
- package/app/components/filters-item/base-item/index.d.ts +1 -0
- package/app/components/filters-item/checkbox/index.d.ts +1 -0
- package/app/components/filters-item/chips/index.d.ts +1 -0
- package/app/components/filters-item/date/date.component.d.ts +2 -1
- package/app/components/filters-item/date/index.d.ts +1 -0
- package/app/components/filters-item/date-range/date-range.component.d.ts +2 -1
- package/app/components/filters-item/date-range/index.d.ts +1 -0
- package/app/components/filters-item/filter-item.component.d.ts +5 -2
- package/app/components/filters-item/index.d.ts +12 -0
- package/app/components/filters-item/range/index.d.ts +1 -0
- package/app/components/filters-item/range/range.component.d.ts +2 -1
- package/app/components/filters-item/select/index.d.ts +1 -0
- package/app/components/filters-item/select/select.component.d.ts +2 -1
- package/app/components/filters-item/text/index.d.ts +1 -0
- package/app/components/filters-item/text/text.component.d.ts +2 -1
- package/app/components/filters-item/week/index.d.ts +1 -0
- package/app/components/filters-item/week/week.component.d.ts +2 -1
- package/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.d.ts +1 -2
- package/app/directives/focus-to-item.directive.d.ts +6 -10
- package/app/fs-filter.module.d.ts +5 -24
- package/app/helpers/create-filter-item.d.ts +1 -1
- package/app/injectors/index.d.ts +3 -0
- package/app/models/items/base-item.d.ts +2 -0
- package/app/services/index.d.ts +0 -1
- package/app/services/saved-filter-controller.service.d.ts +2 -0
- package/esm2022/app/components/filter/filter.component.mjs +12 -69
- package/esm2022/app/components/filter-chips/filter-chips.component.mjs +160 -8
- package/esm2022/app/components/filter-item-dialog/filter-item-dialog.component.mjs +23 -0
- package/esm2022/app/components/filter-item-dialog/index.mjs +2 -0
- package/esm2022/app/components/filters-item/autocomplete/autocomplete.component.mjs +8 -5
- package/esm2022/app/components/filters-item/autocomplete/index.mjs +2 -0
- package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +8 -5
- package/esm2022/app/components/filters-item/autocompletechips/index.mjs +2 -0
- package/esm2022/app/components/filters-item/base-item/index.mjs +2 -0
- package/esm2022/app/components/filters-item/checkbox/checkbox.component.mjs +7 -8
- package/esm2022/app/components/filters-item/checkbox/index.mjs +2 -0
- package/esm2022/app/components/filters-item/chips/chips.component.mjs +3 -3
- package/esm2022/app/components/filters-item/chips/index.mjs +2 -0
- package/esm2022/app/components/filters-item/date/date.component.mjs +8 -5
- package/esm2022/app/components/filters-item/date/index.mjs +2 -0
- package/esm2022/app/components/filters-item/date-range/date-range.component.mjs +8 -5
- package/esm2022/app/components/filters-item/date-range/index.mjs +2 -0
- package/esm2022/app/components/filters-item/filter-item.component.mjs +14 -5
- package/esm2022/app/components/filters-item/index.mjs +13 -0
- package/esm2022/app/components/filters-item/range/index.mjs +2 -0
- package/esm2022/app/components/filters-item/range/range.component.mjs +8 -5
- package/esm2022/app/components/filters-item/select/index.mjs +2 -0
- package/esm2022/app/components/filters-item/select/select.component.mjs +8 -5
- package/esm2022/app/components/filters-item/text/index.mjs +2 -0
- package/esm2022/app/components/filters-item/text/text.component.mjs +8 -5
- package/esm2022/app/components/filters-item/week/index.mjs +2 -0
- package/esm2022/app/components/filters-item/week/week.component.mjs +8 -5
- package/esm2022/app/components/keyword-input/keyword-input.component.mjs +2 -2
- package/esm2022/app/components/saved-filter/saved-filter-manage/components/saved-filter-chips/saved-filter-chips.component.mjs +1 -1
- package/esm2022/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.mjs +5 -8
- package/esm2022/app/directives/focus-to-item.directive.mjs +33 -69
- package/esm2022/app/fs-filter.module.mjs +3 -78
- package/esm2022/app/injectors/index.mjs +4 -0
- package/esm2022/app/models/items/base-date-range-item.mjs +1 -1
- package/esm2022/app/models/items/base-item.mjs +6 -1
- package/esm2022/app/models/items/checkbox-item.mjs +2 -2
- package/esm2022/app/services/index.mjs +1 -2
- package/esm2022/app/services/saved-filter-controller.service.mjs +21 -1
- package/fesm2022/firestitch-filter.mjs +2852 -3129
- package/fesm2022/firestitch-filter.mjs.map +1 -1
- package/package.json +1 -1
- package/app/components/filter-drawer/filter-drawer.component.d.ts +0 -31
- package/app/components/filter-drawer-actions/filter-drawer-actions.component.d.ts +0 -13
- package/app/components/saved-filter/index.d.ts +0 -2
- package/app/components/saved-filter/saved-filter-autocomplete-chips/index.d.ts +0 -1
- package/app/components/saved-filter/saved-filter-autocomplete-chips/saved-filter-autocomplete-chips.component.d.ts +0 -32
- package/app/components/saved-filter/saved-filter-manage/index.d.ts +0 -1
- package/app/consts/filter-icon.d.ts +0 -1
- package/app/consts/index.d.ts +0 -1
- package/app/services/filter-overlay.service.d.ts +0 -35
- package/esm2022/app/components/filter-drawer/filter-drawer.component.mjs +0 -98
- package/esm2022/app/components/filter-drawer-actions/filter-drawer-actions.component.mjs +0 -47
- package/esm2022/app/components/saved-filter/index.mjs +0 -3
- package/esm2022/app/components/saved-filter/saved-filter-autocomplete-chips/index.mjs +0 -2
- package/esm2022/app/components/saved-filter/saved-filter-autocomplete-chips/saved-filter-autocomplete-chips.component.mjs +0 -121
- package/esm2022/app/components/saved-filter/saved-filter-manage/index.mjs +0 -2
- package/esm2022/app/consts/filter-icon.mjs +0 -2
- package/esm2022/app/consts/index.mjs +0 -2
- package/esm2022/app/services/filter-overlay.service.mjs +0 -128
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { inject, Injectable, Injector } from '@angular/core';
|
|
2
|
-
import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
|
|
3
|
-
import { ComponentPortal } from '@angular/cdk/portal';
|
|
4
|
-
import { HtmlClassRenderer } from '@firestitch/html';
|
|
5
|
-
import { Subject } from 'rxjs';
|
|
6
|
-
import { filter, takeUntil } from 'rxjs/operators';
|
|
7
|
-
import { FilterDrawerComponent } from '../components/filter-drawer/filter-drawer.component';
|
|
8
|
-
import { FILTER_DRAWER_DATA } from '../injectors/filter-drawer-data';
|
|
9
|
-
import { FILTER_DRAWER_OVERLAY } from '../injectors/filter-drawer-overlay';
|
|
10
|
-
import { FocusControllerService } from './focus-controller.service';
|
|
11
|
-
import { FsRootFilterOverlayService } from './root-filter-overlay.service';
|
|
12
|
-
import * as i0 from "@angular/core";
|
|
13
|
-
export class FsFilterOverlayService {
|
|
14
|
-
_detach$ = new Subject();
|
|
15
|
-
_attach$ = new Subject();
|
|
16
|
-
_clearFn;
|
|
17
|
-
_doneFn;
|
|
18
|
-
_destroy$ = new Subject();
|
|
19
|
-
_overlayRef;
|
|
20
|
-
_injector = inject(Injector);
|
|
21
|
-
_overlay = inject(Overlay);
|
|
22
|
-
_focusController = inject(FocusControllerService);
|
|
23
|
-
_htmlClassRenderer = inject(HtmlClassRenderer);
|
|
24
|
-
_filterMeta = inject(FsRootFilterOverlayService);
|
|
25
|
-
constructor() {
|
|
26
|
-
this._openWhenChipClicked();
|
|
27
|
-
}
|
|
28
|
-
get detach$() {
|
|
29
|
-
return this._detach$.asObservable();
|
|
30
|
-
}
|
|
31
|
-
get attach$() {
|
|
32
|
-
return this._attach$.asObservable();
|
|
33
|
-
}
|
|
34
|
-
get isOpened() {
|
|
35
|
-
return !!this._overlayRef;
|
|
36
|
-
}
|
|
37
|
-
setClearFn(fn) {
|
|
38
|
-
this._clearFn = fn;
|
|
39
|
-
}
|
|
40
|
-
setDoneFn(fn) {
|
|
41
|
-
this._doneFn = fn;
|
|
42
|
-
}
|
|
43
|
-
close() {
|
|
44
|
-
if (this._overlayRef) {
|
|
45
|
-
this._overlayRef.detach();
|
|
46
|
-
this._removeFilterClass();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
opened() {
|
|
50
|
-
return !!this._overlayRef;
|
|
51
|
-
}
|
|
52
|
-
open() {
|
|
53
|
-
if (this._overlayRef) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
this._overlayRef = this._createOverlay();
|
|
57
|
-
this._overlayRef.detachments()
|
|
58
|
-
.pipe(takeUntil(this._destroy$))
|
|
59
|
-
.subscribe(() => {
|
|
60
|
-
this._detach$.next(null);
|
|
61
|
-
this._overlayRef = null;
|
|
62
|
-
});
|
|
63
|
-
this._overlayRef.attachments()
|
|
64
|
-
.pipe(takeUntil(this._destroy$))
|
|
65
|
-
.subscribe(() => {
|
|
66
|
-
this._attach$.next(null);
|
|
67
|
-
});
|
|
68
|
-
this._addFilterClass();
|
|
69
|
-
return this._openPortalPreview();
|
|
70
|
-
}
|
|
71
|
-
ngOnDestroy() {
|
|
72
|
-
this._destroy$.next(null);
|
|
73
|
-
this._destroy$.complete();
|
|
74
|
-
}
|
|
75
|
-
_createOverlay() {
|
|
76
|
-
const overlayConfig = new OverlayConfig({
|
|
77
|
-
hasBackdrop: false,
|
|
78
|
-
});
|
|
79
|
-
return this._overlay.create(overlayConfig);
|
|
80
|
-
}
|
|
81
|
-
_openPortalPreview() {
|
|
82
|
-
const data = {
|
|
83
|
-
done: this._doneFn,
|
|
84
|
-
clear: this._clearFn,
|
|
85
|
-
};
|
|
86
|
-
const injector = this._createInjector(this._injector, data, this._overlayRef);
|
|
87
|
-
const containerPortal = new ComponentPortal(FilterDrawerComponent, undefined, injector);
|
|
88
|
-
const containerRef = this._overlayRef.attach(containerPortal);
|
|
89
|
-
return containerRef.instance;
|
|
90
|
-
}
|
|
91
|
-
_createInjector(parentInjector, data, overlayRef) {
|
|
92
|
-
const providers = [
|
|
93
|
-
{ provide: FILTER_DRAWER_DATA, useValue: data },
|
|
94
|
-
{ provide: FILTER_DRAWER_OVERLAY, useValue: overlayRef },
|
|
95
|
-
];
|
|
96
|
-
return Injector.create({
|
|
97
|
-
providers,
|
|
98
|
-
parent: parentInjector,
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
_removeFilterClass() {
|
|
102
|
-
this._filterMeta.openedFilters--;
|
|
103
|
-
if (this._filterMeta.openedFilters === 0) {
|
|
104
|
-
this._htmlClassRenderer.removeClass('fs-filter-open');
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
_addFilterClass() {
|
|
108
|
-
this._filterMeta.openedFilters++;
|
|
109
|
-
if (this._filterMeta.openedFilters === 1) {
|
|
110
|
-
this._htmlClassRenderer.addClass('fs-filter-open');
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
_openWhenChipClicked() {
|
|
114
|
-
this._focusController.focusOn$
|
|
115
|
-
.pipe(filter((v) => !!v), takeUntil(this._destroy$))
|
|
116
|
-
.subscribe(() => {
|
|
117
|
-
if (!this.isOpened) {
|
|
118
|
-
this.open();
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterOverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
123
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterOverlayService });
|
|
124
|
-
}
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterOverlayService, decorators: [{
|
|
126
|
-
type: Injectable
|
|
127
|
-
}], ctorParameters: () => [] });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW92ZXJsYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvZmlsdGVyLW92ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXJELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUUzRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFJM0UsTUFBTSxPQUFPLHNCQUFzQjtJQUV6QixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUMvQixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUMvQixRQUFRLENBQWE7SUFDckIsT0FBTyxDQUFhO0lBRXBCLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFCLFdBQVcsQ0FBYTtJQUN4QixTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lB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Q0FDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbEIsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt3R0E3SVUsc0JBQXNCOzRHQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3ksIFN0YXRpY1Byb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuaW1wb3J0IHsgSHRtbENsYXNzUmVuZGVyZXIgfSBmcm9tICdAZmlyZXN0aXRjaC9odG1sJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZpbHRlckRyYXdlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZmlsdGVyLWRyYXdlci9maWx0ZXItZHJhd2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGSUxURVJfRFJBV0VSX0RBVEEgfSBmcm9tICcuLi9pbmplY3RvcnMvZmlsdGVyLWRyYXdlci1kYXRhJztcbmltcG9ydCB7IEZJTFRFUl9EUkFXRVJfT1ZFUkxBWSB9IGZyb20gJy4uL2luamVjdG9ycy9maWx0ZXItZHJhd2VyLW92ZXJsYXknO1xuXG5pbXBvcnQgeyBGb2N1c0NvbnRyb2xsZXJTZXJ2aWNlIH0gZnJvbSAnLi9mb2N1cy1jb250cm9sbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRnNSb290RmlsdGVyT3ZlcmxheVNlcnZpY2UgfSBmcm9tICcuL3Jvb3QtZmlsdGVyLW92ZXJsYXkuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZzRmlsdGVyT3ZlcmxheVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2RldGFjaCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9hdHRhY2gkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfY2xlYXJGbjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBfZG9uZUZuOiAoKSA9PiB2b2lkO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIF9vdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICBwcml2YXRlIF9mb2N1c0NvbnRyb2xsZXIgPSBpbmplY3QoRm9jdXNDb250cm9sbGVyU2VydmljZSk7XG4gIHByaXZhdGUgX2h0bWxDbGFzc1JlbmRlcmVyID0gaW5qZWN0KEh0bWxDbGFzc1JlbmRlcmVyKTtcbiAgcHJpdmF0ZSBfZmlsdGVyTWV0YSA9IGluamVjdChGc1Jvb3RGaWx0ZXJPdmVybGF5U2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fb3BlbldoZW5DaGlwQ2xpY2tlZCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBkZXRhY2gkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9kZXRhY2gkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhdHRhY2gkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9hdHRhY2gkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc09wZW5lZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9vdmVybGF5UmVmO1xuICB9XG5cbiAgcHVibGljIHNldENsZWFyRm4oZm46ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLl9jbGVhckZuID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RG9uZUZuKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fZG9uZUZuID0gZm47XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICB0aGlzLl9yZW1vdmVGaWx0ZXJDbGFzcygpO1xuICAgIH0gXG4gIH1cblxuICBwdWJsaWMgb3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX292ZXJsYXlSZWY7XG4gIH1cblxuICBwdWJsaWMgb3BlbigpIHtcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9jcmVhdGVPdmVybGF5KCk7XG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9kZXRhY2gkLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaG1lbnRzKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2F0dGFjaCQubmV4dChudWxsKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fYWRkRmlsdGVyQ2xhc3MoKTtcblxuICAgIHJldHVybiB0aGlzLl9vcGVuUG9ydGFsUHJldmlldygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXkoKSB7XG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLl9vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgX29wZW5Qb3J0YWxQcmV2aWV3KCkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBkb25lOiB0aGlzLl9kb25lRm4sXG4gICAgICBjbGVhcjogdGhpcy5fY2xlYXJGbixcbiAgICB9O1xuICAgIGNvbnN0IGluamVjdG9yID0gdGhpcy5fY3JlYXRlSW5qZWN0b3IodGhpcy5faW5qZWN0b3IsIGRhdGEsIHRoaXMuX292ZXJsYXlSZWYpO1xuICAgIGNvbnN0IGNvbnRhaW5lclBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoRmlsdGVyRHJhd2VyQ29tcG9uZW50LCB1bmRlZmluZWQsIGluamVjdG9yKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaDxGaWx0ZXJEcmF3ZXJDb21wb25lbnQ+KGNvbnRhaW5lclBvcnRhbCk7XG5cbiAgICByZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3IocGFyZW50SW5qZWN0b3I6IEluamVjdG9yLCBkYXRhOiBhbnksIG92ZXJsYXlSZWY6IGFueSk6IEluamVjdG9yIHtcbiAgICBjb25zdCBwcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXG4gICAgICB7IHByb3ZpZGU6IEZJTFRFUl9EUkFXRVJfREFUQSwgdXNlVmFsdWU6IGRhdGEgfSxcbiAgICAgIHsgcHJvdmlkZTogRklMVEVSX0RSQVdFUl9PVkVSTEFZLCB1c2VWYWx1ZTogb3ZlcmxheVJlZiB9LFxuICAgIF07XG4gIFxuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzLFxuICAgICAgcGFyZW50OiBwYXJlbnRJbmplY3RvcixcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIF9yZW1vdmVGaWx0ZXJDbGFzcygpIHtcbiAgICB0aGlzLl9maWx0ZXJNZXRhLm9wZW5lZEZpbHRlcnMtLTtcblxuICAgIGlmICh0aGlzLl9maWx0ZXJNZXRhLm9wZW5lZEZpbHRlcnMgPT09IDApIHtcbiAgICAgIHRoaXMuX2h0bWxDbGFzc1JlbmRlcmVyLnJlbW92ZUNsYXNzKCdmcy1maWx0ZXItb3BlbicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FkZEZpbHRlckNsYXNzKCkge1xuICAgIHRoaXMuX2ZpbHRlck1ldGEub3BlbmVkRmlsdGVycysrO1xuXG4gICAgaWYgKHRoaXMuX2ZpbHRlck1ldGEub3BlbmVkRmlsdGVycyA9PT0gMSkge1xuICAgICAgdGhpcy5faHRtbENsYXNzUmVuZGVyZXIuYWRkQ2xhc3MoJ2ZzLWZpbHRlci1vcGVuJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbldoZW5DaGlwQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c0NvbnRyb2xsZXIuZm9jdXNPbiRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHYpID0+ICEhdiksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlbmVkKSB7XG4gICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
|