@dereekb/dbx-web 9.6.5 → 9.7.2
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/mapbox/lib/index.mjs +4 -1
- package/esm2020/mapbox/lib/mapbox.cdref.service.mjs +28 -0
- package/esm2020/mapbox/lib/mapbox.marker.component.mjs +2 -3
- package/esm2020/mapbox/lib/mapbox.markers.component.mjs +18 -11
- package/esm2020/mapbox/lib/mapbox.mjs +1 -1
- package/esm2020/mapbox/lib/mapbox.rxjs.mjs +53 -0
- package/esm2020/mapbox/lib/mapbox.store.mjs +28 -14
- package/esm2020/mapbox/lib/mapbox.util.mjs +15 -0
- package/fesm2015/dereekb-dbx-web-mapbox.mjs +146 -35
- package/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-web-mapbox.mjs +141 -35
- package/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/esm2020/lib/index.mjs +4 -1
- package/mapbox/esm2020/lib/mapbox.cdref.service.mjs +28 -0
- package/mapbox/esm2020/lib/mapbox.marker.component.mjs +2 -3
- package/mapbox/esm2020/lib/mapbox.markers.component.mjs +18 -11
- package/mapbox/esm2020/lib/mapbox.mjs +1 -1
- package/mapbox/esm2020/lib/mapbox.rxjs.mjs +53 -0
- package/mapbox/esm2020/lib/mapbox.store.mjs +28 -14
- package/mapbox/esm2020/lib/mapbox.util.mjs +15 -0
- package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs +146 -35
- package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs +141 -35
- package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/lib/index.d.ts +3 -0
- package/mapbox/lib/mapbox.cdref.service.d.ts +13 -0
- package/mapbox/lib/mapbox.d.ts +6 -0
- package/mapbox/lib/mapbox.marker.component.d.ts +0 -1
- package/mapbox/lib/mapbox.markers.component.d.ts +4 -1
- package/mapbox/lib/mapbox.rxjs.d.ts +44 -0
- package/mapbox/lib/mapbox.store.d.ts +12 -1
- package/mapbox/lib/mapbox.util.d.ts +27 -0
- package/mapbox/package.json +5 -5
- package/package.json +3 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './mapbox.cdref.service';
|
|
1
2
|
export * from './mapbox.module';
|
|
2
3
|
export * from './mapbox.layout.component';
|
|
3
4
|
export * from './mapbox.layout.drawer.component';
|
|
@@ -5,10 +6,12 @@ export * from './mapbox.marker';
|
|
|
5
6
|
export * from './mapbox.marker.component';
|
|
6
7
|
export * from './mapbox.markers.component';
|
|
7
8
|
export * from './mapbox.menu.component';
|
|
9
|
+
export * from './mapbox.rxjs';
|
|
8
10
|
export * from './mapbox.service';
|
|
9
11
|
export * from './mapbox.store.map.directive';
|
|
10
12
|
export * from './mapbox.store';
|
|
11
13
|
export * from './mapbox.store.provide';
|
|
12
14
|
export * from './mapbox';
|
|
15
|
+
export * from './mapbox.util';
|
|
13
16
|
export * from './options';
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXBib3guY2RyZWYuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBib3gubGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5sYXlvdXQuZHJhd2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5tYXJrZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBib3gubWFya2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5tYXJrZXJzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5yeGpzJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBib3guc3RvcmUubWFwLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5zdG9yZS5wcm92aWRlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9vcHRpb25zJztcbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Host, Injectable } from '@angular/core';
|
|
2
|
+
import { safeDetectChanges, safeMarkForCheck } from '@dereekb/dbx-core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Provided in the parent component that allows children to import the parent's cdRef for use.
|
|
6
|
+
*/
|
|
7
|
+
export class DbxMapboxChangeDetectorRefService {
|
|
8
|
+
constructor(cdRef) {
|
|
9
|
+
this.cdRef = cdRef;
|
|
10
|
+
}
|
|
11
|
+
markForCheck() {
|
|
12
|
+
safeMarkForCheck(this.cdRef);
|
|
13
|
+
}
|
|
14
|
+
detectChanges() {
|
|
15
|
+
safeDetectChanges(this.cdRef);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
DbxMapboxChangeDetectorRefService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxChangeDetectorRefService, deps: [{ token: i0.ChangeDetectorRef, host: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
+
DbxMapboxChangeDetectorRefService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxChangeDetectorRefService, providedIn: null });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxChangeDetectorRefService, decorators: [{
|
|
21
|
+
type: Injectable,
|
|
22
|
+
args: [{
|
|
23
|
+
providedIn: null
|
|
24
|
+
}]
|
|
25
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef, decorators: [{
|
|
26
|
+
type: Host
|
|
27
|
+
}] }]; } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmNkcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5jZHJlZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUV4RTs7R0FFRztBQUlILE1BQU0sT0FBTyxpQ0FBaUM7SUFDNUMsWUFBNkIsS0FBd0I7UUFBeEIsVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFBRyxDQUFDO0lBRXpELFlBQVk7UUFDVixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDWCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7OEhBVFUsaUNBQWlDO2tJQUFqQyxpQ0FBaUMsY0FGaEMsSUFBSTsyRkFFTCxpQ0FBaUM7a0JBSDdDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFFYyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEhvc3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNhZmVEZXRlY3RDaGFuZ2VzLCBzYWZlTWFya0ZvckNoZWNrIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuXG4vKipcbiAqIFByb3ZpZGVkIGluIHRoZSBwYXJlbnQgY29tcG9uZW50IHRoYXQgYWxsb3dzIGNoaWxkcmVuIHRvIGltcG9ydCB0aGUgcGFyZW50J3MgY2RSZWYgZm9yIHVzZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiBudWxsXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveENoYW5nZURldGVjdG9yUmVmU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG1hcmtGb3JDaGVjaygpIHtcbiAgICBzYWZlTWFya0ZvckNoZWNrKHRoaXMuY2RSZWYpO1xuICB9XG5cbiAgZGV0ZWN0Q2hhbmdlcygpIHtcbiAgICBzYWZlRGV0ZWN0Q2hhbmdlcyh0aGlzLmNkUmVmKTtcbiAgfVxufVxuIl19
|
|
@@ -6,7 +6,6 @@ import * as i2 from "@angular/material/icon";
|
|
|
6
6
|
import * as i3 from "@dereekb/dbx-web";
|
|
7
7
|
import * as i4 from "ngx-mapbox-gl";
|
|
8
8
|
export class DbxMapboxMarkerComponent {
|
|
9
|
-
constructor() { }
|
|
10
9
|
get marker() {
|
|
11
10
|
return this._marker;
|
|
12
11
|
}
|
|
@@ -93,7 +92,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
93
92
|
</dbx-anchor>
|
|
94
93
|
</mgl-marker>
|
|
95
94
|
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".dbx-mapbox-marker{display:flex;align-items:center;flex-direction:column}.dbx-mapbox-marker .dbx-mapbox-marker-content{display:flex;align-items:center;justify-content:center}.dbx-mapbox-marker .dbx-mapbox-marker-content mat-icon{width:100%;height:100%;font-size:inherit}.dbx-mapbox-marker .dbx-mapbox-marker-label{font-size:.9em}\n"] }]
|
|
96
|
-
}],
|
|
95
|
+
}], propDecorators: { marker: [{
|
|
97
96
|
type: Input
|
|
98
97
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5tYXJrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBUyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBb0IvRSxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBOEI7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksUUFBUSxDQUFDO1FBRTVDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzVCLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDZDthQUFNO1lBQ0wsUUFBUSxJQUFJLEVBQUU7Z0JBQ1osS0FBSyxPQUFPO29CQUNWLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ1gsTUFBTTtnQkFDUixLQUFLLFFBQVE7b0JBQ1gsS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDWCxNQUFNO2dCQUNSLEtBQUssT0FBTztvQkFDVixLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNYLE1BQU07Z0JBQ1IsS0FBSyxNQUFNO29CQUNULEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ1gsTUFBTSxHQUFHLEVBQUUsQ0FBQztvQkFDWixNQUFNO2FBQ1Q7U0FDRjtRQUVELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRTdILE1BQU0sS0FBSyxHQUFHO1lBQ1osR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUs7WUFDdEIsS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJO1lBQ25CLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSTtZQUNyQixXQUFXLEVBQUUsS0FBSyxHQUFHLElBQUk7WUFDekIsa0JBQWtCLEVBQUUsS0FBSztTQUMxQixDQUFDO1FBRUYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztBQXhFYyxxQ0FBWSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFFLENBQUE7cUhBRHZELHdCQUF3Qjt5R0FBeEIsd0JBQXdCLHVGQWZ6Qjs7Ozs7Ozs7Ozs7R0FXVDsyRkFJVSx3QkFBd0I7a0JBakJwQyxTQUFTOytCQUNFLG1CQUFtQixZQUNuQjs7Ozs7Ozs7Ozs7R0FXVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFRM0MsTUFBTTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tR2V0dGVyLCBsYXRMbmdQb2ludEZ1bmN0aW9uLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFya2VyIH0gZnJvbSAnLi9tYXBib3gubWFya2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LW1hcGJveC1tYXJrZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxtZ2wtbWFya2VyICpuZ0lmPVwibWFya2VyXCIgW2xuZ0xhdF09XCJsYXRMbmdcIj5cbiAgICAgIDxkYngtYW5jaG9yIFthbmNob3JdPVwiYW5jaG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LW1hcmtlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LW1hcmtlci1jb250ZW50XCIgW25nU3R5bGVdPVwic3R5bGVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25cIj57eyBpY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LW1hcGJveC1tYXJrZXItbGFiZWwgZGJ4LW91dGxpbmVkLXRleHRcIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RieC1hbmNob3I+XG4gICAgPC9tZ2wtbWFya2VyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9tYXBib3gubWFya2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveE1hcmtlckNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhdGljIF9sYXRMbmdQb2ludCA9IGxhdExuZ1BvaW50RnVuY3Rpb24oeyB3cmFwOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgX21hcmtlciE6IE1heWJlPERieE1hcGJveE1hcmtlcj47XG5cbiAgQElucHV0KClcbiAgZ2V0IG1hcmtlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyO1xuICB9XG5cbiAgc2V0IG1hcmtlcihtYXJrZXI6IE1heWJlPERieE1hcGJveE1hcmtlcj4pIHtcbiAgICB0aGlzLl9tYXJrZXIgPSBtYXJrZXI7XG4gIH1cblxuICBnZXQgbGF0TG5nKCkge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5fbWFya2VyPy5sYXRMbmc7XG4gICAgcmV0dXJuIGlucHV0ID8gRGJ4TWFwYm94TWFya2VyQ29tcG9uZW50Ll9sYXRMbmdQb2ludChpbnB1dCkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgYW5jaG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXJrZXI/LmFuY2hvcjtcbiAgfVxuXG4gIGdldCBsYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5sYWJlbDtcbiAgfVxuXG4gIGdldCBpY29uKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXJrZXI/Lmljb247XG4gIH1cblxuICBnZXQgc3R5bGUoKSB7XG4gICAgbGV0IHdpZHRoID0gMDtcbiAgICBsZXQgaGVpZ2h0ID0gMDtcblxuICAgIGNvbnN0IHNpemUgPSB0aGlzLl9tYXJrZXI/LnNpemUgfHwgJ21lZGl1bSc7XG5cbiAgICBpZiAodHlwZW9mIHNpemUgPT09ICdudW1iZXInKSB7XG4gICAgICB3aWR0aCA9IHNpemU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAoc2l6ZSkge1xuICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgICAgd2lkdGggPSAxODtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbWVkaXVtJzpcbiAgICAgICAgICB3aWR0aCA9IDI0O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsYXJnZSc6XG4gICAgICAgICAgd2lkdGggPSAzMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndGFsbCc6XG4gICAgICAgICAgd2lkdGggPSAyNDtcbiAgICAgICAgICBoZWlnaHQgPSAzMjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIWhlaWdodCkge1xuICAgICAgaGVpZ2h0ID0gd2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3QgaW1hZ2VJbnB1dCA9IHRoaXMuX21hcmtlcj8uaW1hZ2U7XG4gICAgY29uc3QgaW1hZ2UgPSBpbWFnZUlucHV0ID8gKHR5cGVvZiBpbWFnZUlucHV0ID09PSAnc3RyaW5nJyA/IGltYWdlSW5wdXQgOiBnZXRWYWx1ZUZyb21HZXR0ZXIoaW1hZ2VJbnB1dCwgd2lkdGgpKSA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHN0eWxlID0ge1xuICAgICAgLi4udGhpcy5fbWFya2VyPy5zdHlsZSxcbiAgICAgIHdpZHRoOiB3aWR0aCArICdweCcsXG4gICAgICBoZWlnaHQ6IGhlaWdodCArICdweCcsXG4gICAgICAnZm9udC1zaXplJzogd2lkdGggKyAncHgnLFxuICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnOiBpbWFnZVxuICAgIH07XG5cbiAgICByZXR1cm4gc3R5bGU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, Optional } from '@angular/core';
|
|
3
|
+
import { DbxMapboxChangeDetectorRefService } from './mapbox.cdref.service';
|
|
4
|
+
import { tapSafeMarkForCheck } from '@dereekb/dbx-core';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
import * as i2 from "
|
|
6
|
+
import * as i1 from "./mapbox.cdref.service";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "./mapbox.marker.component";
|
|
6
9
|
/**
|
|
7
10
|
* Component used to render a set of DbxMapboxMarker values from the input data and marker factory.
|
|
8
11
|
*/
|
|
9
12
|
export class DbxMapboxMarkersComponent {
|
|
10
|
-
constructor() {
|
|
13
|
+
constructor(cdRefService) {
|
|
14
|
+
this.cdRefService = cdRefService;
|
|
11
15
|
this._data = new BehaviorSubject(undefined);
|
|
12
16
|
this._markerFactory = new BehaviorSubject(undefined);
|
|
13
17
|
this.markers$ = combineLatest([this._data.pipe(distinctUntilChanged()), this._markerFactory.pipe(distinctUntilChanged())]).pipe(map(([data, markerFactory]) => {
|
|
@@ -17,13 +21,13 @@ export class DbxMapboxMarkersComponent {
|
|
|
17
21
|
else {
|
|
18
22
|
return [];
|
|
19
23
|
}
|
|
20
|
-
}), shareReplay(1));
|
|
24
|
+
}), tapSafeMarkForCheck(this.cdRefService?.cdRef), shareReplay(1));
|
|
21
25
|
}
|
|
22
26
|
get data() {
|
|
23
27
|
return this._data.value;
|
|
24
28
|
}
|
|
25
29
|
set data(data) {
|
|
26
|
-
this._data.next(data);
|
|
30
|
+
this._data.next(data || []);
|
|
27
31
|
}
|
|
28
32
|
get markerFactory() {
|
|
29
33
|
return this._markerFactory.value;
|
|
@@ -36,21 +40,24 @@ export class DbxMapboxMarkersComponent {
|
|
|
36
40
|
this._markerFactory.complete();
|
|
37
41
|
}
|
|
38
42
|
}
|
|
39
|
-
DbxMapboxMarkersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxMarkersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
+
DbxMapboxMarkersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxMarkersComponent, deps: [{ token: i1.DbxMapboxChangeDetectorRefService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
40
44
|
DbxMapboxMarkersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxMapboxMarkersComponent, selector: "dbx-mapbox-markers", inputs: { data: "data", markerFactory: "markerFactory" }, ngImport: i0, template: `
|
|
41
45
|
<dbx-mapbox-marker *ngFor="let marker of markers$ | async" [marker]="marker"></dbx-mapbox-marker>
|
|
42
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
46
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.DbxMapboxMarkerComponent, selector: "dbx-mapbox-marker", inputs: ["marker"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
43
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxMarkersComponent, decorators: [{
|
|
44
48
|
type: Component,
|
|
45
49
|
args: [{
|
|
46
50
|
selector: 'dbx-mapbox-markers',
|
|
47
51
|
template: `
|
|
48
52
|
<dbx-mapbox-marker *ngFor="let marker of markers$ | async" [marker]="marker"></dbx-mapbox-marker>
|
|
49
|
-
|
|
53
|
+
`,
|
|
54
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
50
55
|
}]
|
|
51
|
-
}],
|
|
56
|
+
}], ctorParameters: function () { return [{ type: i1.DbxMapboxChangeDetectorRefService, decorators: [{
|
|
57
|
+
type: Optional
|
|
58
|
+
}] }]; }, propDecorators: { data: [{
|
|
52
59
|
type: Input
|
|
53
60
|
}], markerFactory: [{
|
|
54
61
|
type: Input
|
|
55
62
|
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubWFya2Vycy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBRXhEOztHQUVHO0FBUUgsTUFBTSxPQUFPLHlCQUF5QjtJQWdCcEMsWUFBaUMsWUFBZ0Q7UUFBaEQsaUJBQVksR0FBWixZQUFZLENBQW9DO1FBZnpFLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBYSxTQUFTLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFtQyxTQUFTLENBQUMsQ0FBQztRQUVqRixhQUFRLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQUU7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFDN0MsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFa0YsQ0FBQztJQUVyRixJQUNJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFnQjtRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQ0ksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLGFBQStDO1FBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7O3NIQXZDVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixvSEFMMUI7O0dBRVQ7MkZBR1UseUJBQXlCO2tCQVByQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQWlCYyxRQUFROzRDQUdqQixJQUFJO3NCQURQLEtBQUs7Z0JBVUYsYUFBYTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFya2VyRmFjdG9yeSB9IGZyb20gJy4vbWFwYm94Lm1hcmtlcic7XG5pbXBvcnQgeyBEYnhNYXBib3hDaGFuZ2VEZXRlY3RvclJlZlNlcnZpY2UgfSBmcm9tICcuL21hcGJveC5jZHJlZi5zZXJ2aWNlJztcbmltcG9ydCB7IHRhcFNhZmVNYXJrRm9yQ2hlY2sgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5cbi8qKlxuICogQ29tcG9uZW50IHVzZWQgdG8gcmVuZGVyIGEgc2V0IG9mIERieE1hcGJveE1hcmtlciB2YWx1ZXMgZnJvbSB0aGUgaW5wdXQgZGF0YSBhbmQgbWFya2VyIGZhY3RvcnkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1tYXBib3gtbWFya2VycycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1tYXBib3gtbWFya2VyICpuZ0Zvcj1cImxldCBtYXJrZXIgb2YgbWFya2VycyQgfCBhc3luY1wiIFttYXJrZXJdPVwibWFya2VyXCI+PC9kYngtbWFwYm94LW1hcmtlcj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGJ4TWFwYm94TWFya2Vyc0NvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2RhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPFRbXT4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgX21hcmtlckZhY3RvcnkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPERieE1hcGJveE1hcmtlckZhY3Rvcnk8VD4+Pih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IG1hcmtlcnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5fZGF0YS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLCB0aGlzLl9tYXJrZXJGYWN0b3J5LnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSldKS5waXBlKFxuICAgIG1hcCgoW2RhdGEsIG1hcmtlckZhY3RvcnldKSA9PiB7XG4gICAgICBpZiAoZGF0YT8ubGVuZ3RoICYmIG1hcmtlckZhY3RvcnkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEubWFwKG1hcmtlckZhY3RvcnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHRhcFNhZmVNYXJrRm9yQ2hlY2sodGhpcy5jZFJlZlNlcnZpY2U/LmNkUmVmKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHJlYWRvbmx5IGNkUmVmU2VydmljZT86IERieE1hcGJveENoYW5nZURldGVjdG9yUmVmU2VydmljZSkge31cblxuICBASW5wdXQoKVxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS52YWx1ZTtcbiAgfVxuXG4gIHNldCBkYXRhKGRhdGE6IE1heWJlPFRbXT4pIHtcbiAgICB0aGlzLl9kYXRhLm5leHQoZGF0YSB8fCBbXSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgbWFya2VyRmFjdG9yeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyRmFjdG9yeS52YWx1ZTtcbiAgfVxuXG4gIHNldCBtYXJrZXJGYWN0b3J5KG1hcmtlckZhY3Rvcnk6IE1heWJlPERieE1hcGJveE1hcmtlckZhY3Rvcnk8VD4+KSB7XG4gICAgdGhpcy5fbWFya2VyRmFjdG9yeS5uZXh0KG1hcmtlckZhY3RvcnkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGF0YS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX21hcmtlckZhY3RvcnkuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|
|
@@ -14,4 +14,4 @@ export const MAPBOX_MAX_ZOOM_LEVEL = 22;
|
|
|
14
14
|
export function mapboxZoomLevel(input) {
|
|
15
15
|
return Math.min(Math.max(input, MAPBOX_MIN_ZOOM_LEVEL), MAPBOX_MAX_ZOOM_LEVEL);
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXVCO0lBQ3JELEVBQUU7SUFDRixvQ0FBb0M7SUFDcEMscUNBQXFDO0lBQ3JDLGtDQUFrQztJQUNsQyxpQ0FBaUM7SUFDakMscUNBQXFDO0lBQ3JDLDhDQUE4QztJQUM5QywwQ0FBMEM7SUFDMUMsNENBQTRDO0NBQzdDLENBQUM7QUFJRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBb0IsQ0FBQyxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFvQixFQUFFLENBQUM7QUFFekQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxLQUFhO0lBQzNDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhdExuZ1BvaW50SW5wdXQsIExhdExuZ0JvdW5kSW5wdXQsIFpvb21MZXZlbCB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0ICogYXMgTWFwYm94R2wgZnJvbSAnbWFwYm94LWdsJztcblxuZXhwb3J0IHR5cGUgS25vd25NYXBib3hTdHlsZSA9ICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3N0cmVldHMtdjExJyB8ICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L291dGRvb3JzLXYxMScgfCAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9saWdodC12MTAnIHwgJ21hcGJveDovL3N0eWxlcy9tYXBib3gvZGFyay12MTAnIHwgJ21hcGJveDovL3N0eWxlcy9tYXBib3gvc2F0ZWxsaXRlLXY5JyB8ICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3NhdGVsbGl0ZS1zdHJlZXRzLXYxMScgfCAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9uYXZpZ2F0aW9uLWRheS12MScgfCAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9uYXZpZ2F0aW9uLW5pZ2h0LXYxJztcblxuZXhwb3J0IGNvbnN0IEtOT1dOX01BUEJPWF9TVFlMRVM6IEtub3duTWFwYm94U3R5bGVbXSA9IFtcbiAgLy9cbiAgJ21hcGJveDovL3N0eWxlcy9tYXBib3gvc3RyZWV0cy12MTEnLFxuICAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9vdXRkb29ycy12MTEnLFxuICAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9saWdodC12MTAnLFxuICAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9kYXJrLXYxMCcsXG4gICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3NhdGVsbGl0ZS12OScsXG4gICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3NhdGVsbGl0ZS1zdHJlZXRzLXYxMScsXG4gICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L25hdmlnYXRpb24tZGF5LXYxJyxcbiAgJ21hcGJveDovL3N0eWxlcy9tYXBib3gvbmF2aWdhdGlvbi1uaWdodC12MSdcbl07XG5cbmV4cG9ydCB0eXBlIE1hcGJveFpvb21MZXZlbCA9IFpvb21MZXZlbDtcblxuZXhwb3J0IGNvbnN0IE1BUEJPWF9NSU5fWk9PTV9MRVZFTDogTWFwYm94Wm9vbUxldmVsID0gMDtcbmV4cG9ydCBjb25zdCBNQVBCT1hfTUFYX1pPT01fTEVWRUw6IE1hcGJveFpvb21MZXZlbCA9IDIyO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwYm94Wm9vbUxldmVsKGlucHV0OiBudW1iZXIpOiBNYXBib3hab29tTGV2ZWwge1xuICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaW5wdXQsIE1BUEJPWF9NSU5fWk9PTV9MRVZFTCksIE1BUEJPWF9NQVhfWk9PTV9MRVZFTCk7XG59XG5cbmV4cG9ydCB0eXBlIE1hcGJveFBpdGNoID0gbnVtYmVyO1xuZXhwb3J0IHR5cGUgTWFwYm94QmVhcmluZyA9IG51bWJlcjtcblxuLyoqXG4gKiBTaXplIG9mIHRoZSB0aWxlcy4gVmVjdG9yLWJhc2VkIHRpbGVzIHVzZWQgYnkgdGhlIHdlYiBhcmUgZ2VuZXJhbGx5IDUxMng1MTIsIGFuZCBsZWdhY3kgb25lcyBhcmUgMjU2eDI1Ni5cbiAqXG4gKiBodHRwczovL2Jsb2cubWFwYm94LmNvbS81MTItbWFwLXRpbGVzLWNiNWJmZDZlNzJiYVxuICovXG5leHBvcnQgdHlwZSBNYXBib3hUaWxlU2l6ZSA9IDUxMiB8IDI1NjtcblxuZXhwb3J0IHR5cGUgRGJ4TWFwYm94Q2xpY2tFdmVudCA9IE1hcGJveEdsLk1hcE1vdXNlRXZlbnQgJiBNYXBib3hHbC5FdmVudERhdGE7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwYm94U3R5bGVDb25maWcge1xuICBzdHlsZTogTWFwYm94R2wuU3R5bGUgfCBzdHJpbmc7XG4gIG9wdGlvbnM/OiB7XG4gICAgZGlmZj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgbG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcGJveEZpdEJvdW5kcyB7XG4gIGJvdW5kczogTGF0TG5nQm91bmRJbnB1dDtcbiAgb3B0aW9ucz86IG1hcGJveGdsLkZpdEJvdW5kc09wdGlvbnM7XG4gIGV2ZW50RGF0YT86IG1hcGJveGdsLkV2ZW50RGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBib3hKdW1wVG9Qb3NpdGlvbk9wdGlvbnMgZXh0ZW5kcyBPbWl0PE1hcGJveEdsLkNhbWVyYU9wdGlvbnMsICdjZW50ZXInPiB7XG4gIGNlbnRlcjogTGF0TG5nUG9pbnRJbnB1dDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBib3hKdW1wVG8ge1xuICBjZW50ZXI/OiBMYXRMbmdQb2ludElucHV0O1xuICB0bz86IE1hcGJveEp1bXBUb1Bvc2l0aW9uT3B0aW9ucztcbiAgZXZlbnREYXRhPzogbWFwYm94Z2wuRXZlbnREYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcGJveEVhc2VUb1Bvc2l0aW9uT3B0aW9ucyBleHRlbmRzIE9taXQ8TWFwYm94R2wuRWFzZVRvT3B0aW9ucywgJ2NlbnRlcic+LCBNYXBib3hKdW1wVG9Qb3NpdGlvbk9wdGlvbnMge31cblxuZXhwb3J0IGludGVyZmFjZSBNYXBib3hFYXNlVG8ge1xuICBjZW50ZXI/OiBMYXRMbmdQb2ludElucHV0O1xuICB0bz86IE1hcGJveEVhc2VUb1Bvc2l0aW9uT3B0aW9ucztcbiAgZXZlbnREYXRhPzogbWFwYm94Z2wuRXZlbnREYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcGJveEZseVRvUG9zaXRpb25PcHRpb25zIGV4dGVuZHMgT21pdDxNYXBib3hHbC5GbHlUb09wdGlvbnMsICdjZW50ZXInPiwgTWFwYm94SnVtcFRvUG9zaXRpb25PcHRpb25zIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwYm94Rmx5VG8ge1xuICBjZW50ZXI/OiBMYXRMbmdQb2ludElucHV0O1xuICB0bz86IE1hcGJveEZseVRvUG9zaXRpb25PcHRpb25zO1xuICBldmVudERhdGE/OiBtYXBib3hnbC5FdmVudERhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwYm94Um90YXRlVG8ge1xuICBiZWFyaW5nOiBNYXBib3hCZWFyaW5nO1xuICBvcHRpb25zPzogbWFwYm94Z2wuQW5pbWF0aW9uT3B0aW9ucztcbiAgZXZlbnREYXRhPzogbWFwYm94Z2wuRXZlbnREYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcGJveFJlc2V0Tm9ydGgge1xuICBvcHRpb25zPzogbWFwYm94Z2wuQW5pbWF0aW9uT3B0aW9ucztcbiAgZXZlbnREYXRhPzogbWFwYm94Z2wuRXZlbnREYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcGJveFJlc2V0Tm9ydGhQaXRjaCB7XG4gIG9wdGlvbnM/OiBtYXBib3hnbC5BbmltYXRpb25PcHRpb25zO1xuICBldmVudERhdGE/OiBtYXBib3hnbC5FdmVudERhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwYm94U25hcFRvTm9ydGgge1xuICBvcHRpb25zPzogbWFwYm94Z2wuQW5pbWF0aW9uT3B0aW9ucztcbiAgZXZlbnREYXRhPzogbWFwYm94Z2wuRXZlbnREYXRhO1xufVxuIl19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { asObservable } from '@dereekb/rxjs';
|
|
2
|
+
import { LAT_LONG_10M_PRECISION, latLngPointFunction, roundNumberToStepFunction } from '@dereekb/util';
|
|
3
|
+
import { combineLatestWith, map, switchMap, shareReplay, distinctUntilChanged } from 'rxjs';
|
|
4
|
+
/**
|
|
5
|
+
* Filters the input objects based on their center and zoom values.
|
|
6
|
+
*
|
|
7
|
+
* This function caches the bounds computations for each of the input values.
|
|
8
|
+
*
|
|
9
|
+
* @param config
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
export function filterByMapboxViewportBound(config) {
|
|
13
|
+
const { boundDecisionObs: inputBoundDecisionObs, boundFunctionObs: inputBoundFunctionObs, defaultZoom: inputDefaultZoom = 17, readValue, zoomRounding, precision = LAT_LONG_10M_PRECISION } = config;
|
|
14
|
+
const _latLngPoint = latLngPointFunction({ wrap: false, validate: false, precision });
|
|
15
|
+
const _roundZoom = roundNumberToStepFunction(zoomRounding || { step: 0.5, round: 'floor' });
|
|
16
|
+
const boundDecisionObs = asObservable(inputBoundDecisionObs);
|
|
17
|
+
const boundFunctionObs = asObservable(inputBoundFunctionObs);
|
|
18
|
+
return (input) => {
|
|
19
|
+
return boundFunctionObs.pipe(distinctUntilChanged(), switchMap((viewportBoundFunction) => {
|
|
20
|
+
const cache = new Map();
|
|
21
|
+
return input.pipe(map((values) => {
|
|
22
|
+
return values.map((value) => {
|
|
23
|
+
const item = readValue(value);
|
|
24
|
+
const centerLatLng = _latLngPoint(item.center);
|
|
25
|
+
const zoomStep = _roundZoom(item.zoom || inputDefaultZoom);
|
|
26
|
+
const cacheKey = `${zoomStep}_${centerLatLng.lat}_${centerLatLng.lng}`;
|
|
27
|
+
const cachedValue = cache.get(cacheKey);
|
|
28
|
+
let bound;
|
|
29
|
+
if (!cachedValue) {
|
|
30
|
+
bound = viewportBoundFunction({ center: centerLatLng, zoom: zoomStep });
|
|
31
|
+
cache.set(cacheKey, bound);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
bound = cachedValue;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
value,
|
|
38
|
+
bound
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
}), combineLatestWith(boundDecisionObs), map(([items, boundFunction]) => {
|
|
42
|
+
let valuesInBounds = [];
|
|
43
|
+
items.forEach((item) => {
|
|
44
|
+
if (boundFunction(item.bound)) {
|
|
45
|
+
valuesInBounds.push(item.value);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
return valuesInBounds;
|
|
49
|
+
}));
|
|
50
|
+
}), shareReplay(1));
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LnJ4anMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5yeGpzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBMkQsbUJBQW1CLEVBQUUseUJBQXlCLEVBQWlGLE1BQU0sZUFBZSxDQUFDO0FBQy9PLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQWdDLFNBQVMsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFxQzFIOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsMkJBQTJCLENBQUksTUFBa0M7SUFDL0UsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEdBQUcsc0JBQXNCLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDck0sTUFBTSxZQUFZLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN0RixNQUFNLFVBQVUsR0FBRyx5QkFBeUIsQ0FBQyxZQUFZLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTVGLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDN0QsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUU3RCxPQUFPLENBQUMsS0FBc0IsRUFBRSxFQUFFO1FBQ2hDLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUMxQixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO1lBRTdDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FDZixHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDbEIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBUSxFQUFFLEVBQUU7b0JBQzdCLE1BQU0sSUFBSSxHQUF5QyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3BFLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQy9DLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLGdCQUFnQixDQUFDLENBQUM7b0JBQzNELE1BQU0sUUFBUSxHQUFHLEdBQUcsUUFBUSxJQUFJLFlBQVksQ0FBQyxHQUFHLElBQUksWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUV2RSxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN4QyxJQUFJLEtBQWtCLENBQUM7b0JBRXZCLElBQUksQ0FBQyxXQUFXLEVBQUU7d0JBQ2hCLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7d0JBQ3hFLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO3FCQUM1Qjt5QkFBTTt3QkFDTCxLQUFLLEdBQUcsV0FBVyxDQUFDO3FCQUNyQjtvQkFFRCxPQUFPO3dCQUNMLEtBQUs7d0JBQ0wsS0FBSztxQkFDZ0MsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsRUFDRixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNuQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO2dCQUM3QixJQUFJLGNBQWMsR0FBUSxFQUFFLENBQUM7Z0JBRTdCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDckIsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUM3QixjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDakM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsT0FBTyxjQUFjLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlLCBhc09ic2VydmFibGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IExBVF9MT05HXzEwTV9QUkVDSVNJT04sIExhdExuZ1BvaW50SW5wdXQsIExhdExuZ0JvdW5kLCBMYXRMbmdCb3VuZENoZWNrRnVuY3Rpb24sIGxhdExuZ1BvaW50RnVuY3Rpb24sIHJvdW5kTnVtYmVyVG9TdGVwRnVuY3Rpb24sIFJvdW5kTnVtYmVyVG9TdGVwRnVuY3Rpb25JbnB1dCwgTGF0TG5nUHJlY2lzaW9uLCBMQVRfTE9OR18xTV9QUkVDSVNJT04sIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0V2l0aCwgbWFwLCBPYnNlcnZhYmxlLCBPcGVyYXRvckZ1bmN0aW9uLCBzd2l0Y2hNYXAsIHNoYXJlUmVwbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWFwYm94Wm9vbUxldmVsIH0gZnJvbSAnLi9tYXBib3gnO1xuaW1wb3J0IHsgTWFwYm94Vmlld3BvcnRCb3VuZEZ1bmN0aW9uIH0gZnJvbSAnLi9tYXBib3gudXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyTWFwYm94Qm91bmRDb25maWc8VD4ge1xuICBib3VuZEZ1bmN0aW9uT2JzOiBPYnNlcnZhYmxlT3JWYWx1ZTxNYXBib3hWaWV3cG9ydEJvdW5kRnVuY3Rpb24+O1xuICBib3VuZERlY2lzaW9uT2JzOiBPYnNlcnZhYmxlT3JWYWx1ZTxMYXRMbmdCb3VuZENoZWNrRnVuY3Rpb24+O1xuICAvKipcbiAgICogUmVhZHMgdGhlIHZhbHVlIGZyb20gdGhlIGlucHV0IGl0ZW0uXG4gICAqL1xuICByZWFkVmFsdWU6ICh2YWx1ZTogVCkgPT4gTWFwYm94Vmlld3BvcnRCb3VuZEZ1bmN0aW9uSXRlbVZhbHVlO1xuICAvKipcbiAgICogTWluaW11bSBwcmVjaXNpb24gdG8gcmV0YWluLiBEZWZhdWx0cyB0byBMQVRfTE9OR18xME1fUFJFQ0lTSU9OXG4gICAqL1xuICBwcmVjaXNpb24/OiBMYXRMbmdQcmVjaXNpb247XG4gIC8qKlxuICAgKiBBbW91bnQgb2Ygem9vbSByb3VuZGluZyB0byB1c2UuIEJ5IGRlZmF1bHQgcm91bmRzIHRvIDAuNSBzdGVwcyB1c2luZyBcImZsb29yXCIgaW4gb3JkZXIgdG8gXCJyb3VuZCB1cFwiIHNpbmNlIHpvb20gdmFsdWVzIGFyZSBpbnZlcnNlbHkgcHJvcG9ydGlvbmFsIHRvIGJvdW5kcyBhcmVhLlxuICAgKi9cbiAgem9vbVJvdW5kaW5nPzogUm91bmROdW1iZXJUb1N0ZXBGdW5jdGlvbklucHV0O1xuICAvKipcbiAgICogRGVmYXVsdCB6b29tIGxldmVsIGZvciBpdGVtIHZhbHVlcyB0aGF0IGRvIG5vdCBoYXZlIGFuIGV4cGxpY2l0IHpvb20sIG9yIGEgem9vbSBvZiAwLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byAxNywgd2hpY2ggY2FuIHByb2R1Y2UgYSB2aWV3cG9ydC9ib3VuZHMgYWJvdXQgdGhlIHNpemUgb2YgYSBwYXJrLlxuICAgKi9cbiAgZGVmYXVsdFpvb20/OiBNYXBib3hab29tTGV2ZWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwYm94Vmlld3BvcnRCb3VuZEZ1bmN0aW9uSXRlbVZhbHVlIHtcbiAgcmVhZG9ubHkgY2VudGVyOiBMYXRMbmdQb2ludElucHV0O1xuICByZWFkb25seSB6b29tPzogTWF5YmU8TWFwYm94Wm9vbUxldmVsPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBib3hWaWV3cG9ydEJvdW5kRnVuY3Rpb25JdGVtPFQ+IHtcbiAgcmVhZG9ubHkgdmFsdWU6IFQ7XG4gIHJlYWRvbmx5IGJvdW5kOiBMYXRMbmdCb3VuZDtcbn1cblxuLyoqXG4gKiBGaWx0ZXJzIHRoZSBpbnB1dCBvYmplY3RzIGJhc2VkIG9uIHRoZWlyIGNlbnRlciBhbmQgem9vbSB2YWx1ZXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBjYWNoZXMgdGhlIGJvdW5kcyBjb21wdXRhdGlvbnMgZm9yIGVhY2ggb2YgdGhlIGlucHV0IHZhbHVlcy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyQnlNYXBib3hWaWV3cG9ydEJvdW5kPFQ+KGNvbmZpZzogRmlsdGVyTWFwYm94Qm91bmRDb25maWc8VD4pOiBPcGVyYXRvckZ1bmN0aW9uPFRbXSwgVFtdPiB7XG4gIGNvbnN0IHsgYm91bmREZWNpc2lvbk9iczogaW5wdXRCb3VuZERlY2lzaW9uT2JzLCBib3VuZEZ1bmN0aW9uT2JzOiBpbnB1dEJvdW5kRnVuY3Rpb25PYnMsIGRlZmF1bHRab29tOiBpbnB1dERlZmF1bHRab29tID0gMTcsIHJlYWRWYWx1ZSwgem9vbVJvdW5kaW5nLCBwcmVjaXNpb24gPSBMQVRfTE9OR18xME1fUFJFQ0lTSU9OIH0gPSBjb25maWc7XG4gIGNvbnN0IF9sYXRMbmdQb2ludCA9IGxhdExuZ1BvaW50RnVuY3Rpb24oeyB3cmFwOiBmYWxzZSwgdmFsaWRhdGU6IGZhbHNlLCBwcmVjaXNpb24gfSk7XG4gIGNvbnN0IF9yb3VuZFpvb20gPSByb3VuZE51bWJlclRvU3RlcEZ1bmN0aW9uKHpvb21Sb3VuZGluZyB8fCB7IHN0ZXA6IDAuNSwgcm91bmQ6ICdmbG9vcicgfSk7XG5cbiAgY29uc3QgYm91bmREZWNpc2lvbk9icyA9IGFzT2JzZXJ2YWJsZShpbnB1dEJvdW5kRGVjaXNpb25PYnMpO1xuICBjb25zdCBib3VuZEZ1bmN0aW9uT2JzID0gYXNPYnNlcnZhYmxlKGlucHV0Qm91bmRGdW5jdGlvbk9icyk7XG5cbiAgcmV0dXJuIChpbnB1dDogT2JzZXJ2YWJsZTxUW10+KSA9PiB7XG4gICAgcmV0dXJuIGJvdW5kRnVuY3Rpb25PYnMucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzd2l0Y2hNYXAoKHZpZXdwb3J0Qm91bmRGdW5jdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBMYXRMbmdCb3VuZD4oKTtcblxuICAgICAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgICAgICBtYXAoKHZhbHVlczogVFtdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzLm1hcCgodmFsdWU6IFQpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaXRlbTogTWFwYm94Vmlld3BvcnRCb3VuZEZ1bmN0aW9uSXRlbVZhbHVlID0gcmVhZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgICAgY29uc3QgY2VudGVyTGF0TG5nID0gX2xhdExuZ1BvaW50KGl0ZW0uY2VudGVyKTtcbiAgICAgICAgICAgICAgY29uc3Qgem9vbVN0ZXAgPSBfcm91bmRab29tKGl0ZW0uem9vbSB8fCBpbnB1dERlZmF1bHRab29tKTtcbiAgICAgICAgICAgICAgY29uc3QgY2FjaGVLZXkgPSBgJHt6b29tU3RlcH1fJHtjZW50ZXJMYXRMbmcubGF0fV8ke2NlbnRlckxhdExuZy5sbmd9YDtcblxuICAgICAgICAgICAgICBjb25zdCBjYWNoZWRWYWx1ZSA9IGNhY2hlLmdldChjYWNoZUtleSk7XG4gICAgICAgICAgICAgIGxldCBib3VuZDogTGF0TG5nQm91bmQ7XG5cbiAgICAgICAgICAgICAgaWYgKCFjYWNoZWRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGJvdW5kID0gdmlld3BvcnRCb3VuZEZ1bmN0aW9uKHsgY2VudGVyOiBjZW50ZXJMYXRMbmcsIHpvb206IHpvb21TdGVwIH0pO1xuICAgICAgICAgICAgICAgIGNhY2hlLnNldChjYWNoZUtleSwgYm91bmQpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJvdW5kID0gY2FjaGVkVmFsdWU7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIGJvdW5kXG4gICAgICAgICAgICAgIH0gYXMgTWFwYm94Vmlld3BvcnRCb3VuZEZ1bmN0aW9uSXRlbTxUPjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKGJvdW5kRGVjaXNpb25PYnMpLFxuICAgICAgICAgIG1hcCgoW2l0ZW1zLCBib3VuZEZ1bmN0aW9uXSkgPT4ge1xuICAgICAgICAgICAgbGV0IHZhbHVlc0luQm91bmRzOiBUW10gPSBbXTtcblxuICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoYm91bmRGdW5jdGlvbihpdGVtLmJvdW5kKSkge1xuICAgICAgICAgICAgICAgIHZhbHVlc0luQm91bmRzLnB1c2goaXRlbS52YWx1ZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzSW5Cb3VuZHM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9O1xufVxuIl19
|