@dereekb/dbx-web 9.7.0 → 9.7.3
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/layout/list/index.mjs +2 -1
- package/esm2020/lib/layout/list/list.grid.view.component.mjs +3 -3
- package/esm2020/lib/layout/list/list.track.mjs +9 -0
- package/esm2020/lib/layout/list/list.view.directive.mjs +1 -1
- package/esm2020/lib/layout/list/list.view.mjs +1 -1
- package/esm2020/lib/layout/list/list.view.value.component.mjs +5 -3
- package/esm2020/lib/layout/text/text.chips.component.mjs +6 -3
- package/esm2020/mapbox/lib/index.mjs +3 -1
- package/esm2020/mapbox/lib/mapbox.cdref.service.mjs +30 -0
- package/esm2020/mapbox/lib/mapbox.change.service.mjs +44 -0
- package/esm2020/mapbox/lib/mapbox.marker.component.mjs +21 -12
- package/esm2020/mapbox/lib/mapbox.marker.mjs +1 -1
- package/esm2020/mapbox/lib/mapbox.markers.component.mjs +12 -11
- package/esm2020/mapbox/lib/mapbox.store.mjs +2 -1
- package/fesm2015/dereekb-dbx-web-mapbox.mjs +111 -31
- package/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/fesm2015/dereekb-dbx-web.mjs +21 -7
- package/fesm2015/dereekb-dbx-web.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-web-mapbox.mjs +103 -28
- package/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-web.mjs +21 -7
- package/fesm2020/dereekb-dbx-web.mjs.map +1 -1
- package/lib/layout/list/index.d.ts +1 -0
- package/lib/layout/list/list.track.d.ts +6 -0
- package/lib/layout/list/list.view.d.ts +5 -1
- package/lib/layout/list/list.view.directive.d.ts +2 -1
- package/lib/layout/list/list.view.value.component.d.ts +2 -0
- package/lib/layout/text/text.chips.component.d.ts +1 -0
- package/mapbox/esm2020/lib/index.mjs +3 -1
- package/mapbox/esm2020/lib/mapbox.cdref.service.mjs +30 -0
- package/mapbox/esm2020/lib/mapbox.change.service.mjs +44 -0
- package/mapbox/esm2020/lib/mapbox.marker.component.mjs +21 -12
- package/mapbox/esm2020/lib/mapbox.marker.mjs +1 -1
- package/mapbox/esm2020/lib/mapbox.markers.component.mjs +12 -11
- package/mapbox/esm2020/lib/mapbox.store.mjs +2 -1
- package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs +111 -31
- package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs +103 -28
- package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/lib/index.d.ts +2 -0
- package/mapbox/lib/mapbox.cdref.service.d.ts +15 -0
- package/mapbox/lib/mapbox.change.service.d.ts +21 -0
- package/mapbox/lib/mapbox.marker.component.d.ts +9 -6
- package/mapbox/lib/mapbox.marker.d.ts +3 -3
- package/mapbox/lib/mapbox.markers.component.d.ts +4 -5
- package/mapbox/package.json +3 -4
- package/package.json +3 -3
|
@@ -2,6 +2,7 @@ export * from './list.content.empty.component';
|
|
|
2
2
|
export * from './list.component';
|
|
3
3
|
export * from './list.directive';
|
|
4
4
|
export * from './list.layout.module';
|
|
5
|
+
export * from './list.track';
|
|
5
6
|
export * from './list.grid.view.directive';
|
|
6
7
|
export * from './list.grid.view.component';
|
|
7
8
|
export * from './list.view.directive';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TrackByFunction } from '@angular/core';
|
|
2
|
+
import { ModelKeyRef, UniqueModel } from '@dereekb/util';
|
|
3
|
+
export declare const TRACK_BY_MODEL_ID: TrackByFunction<UniqueModel>;
|
|
4
|
+
export declare function trackByUniqueIdentifier<T extends UniqueModel>(): TrackByFunction<T>;
|
|
5
|
+
export declare const TRACK_BY_MODEL_KEY: TrackByFunction<ModelKeyRef>;
|
|
6
|
+
export declare function trackByModelKeyRef<T extends ModelKeyRef>(): TrackByFunction<T>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { ListLoadingState, ListLoadingStateContext } from '@dereekb/rxjs';
|
|
3
|
-
import { EventEmitter, Provider, Type } from '@angular/core';
|
|
3
|
+
import { EventEmitter, Provider, TrackByFunction, Type } from '@angular/core';
|
|
4
4
|
import { Maybe } from '@dereekb/util';
|
|
5
5
|
export declare type DbxListSelectionMode = 'select' | 'view';
|
|
6
6
|
export interface ListSelectionStateItem<T> {
|
|
@@ -27,6 +27,10 @@ export declare abstract class DbxListView<T, S extends ListLoadingState<T> = Lis
|
|
|
27
27
|
* Values of the list view.
|
|
28
28
|
*/
|
|
29
29
|
abstract readonly values$: Observable<T[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Track by configuration.
|
|
32
|
+
*/
|
|
33
|
+
abstract trackBy?: TrackByFunction<T>;
|
|
30
34
|
/**
|
|
31
35
|
* (Optional) clicked event emitter.
|
|
32
36
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ListLoadingStateContext } from '@dereekb/rxjs';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { EventEmitter, OnDestroy } from '@angular/core';
|
|
3
|
+
import { EventEmitter, OnDestroy, TrackByFunction } from '@angular/core';
|
|
4
4
|
import { DbxListSelectionMode, DbxListView } from './list.view';
|
|
5
5
|
import { Maybe } from '@dereekb/util';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -11,6 +11,7 @@ export declare abstract class AbstractDbxListViewDirective<T> implements DbxList
|
|
|
11
11
|
private readonly _disabled;
|
|
12
12
|
private readonly _selectionMode;
|
|
13
13
|
private readonly _values$;
|
|
14
|
+
readonly trackBy?: TrackByFunction<T> | undefined;
|
|
14
15
|
readonly values$: Observable<T[]>;
|
|
15
16
|
readonly disabled$: Observable<boolean>;
|
|
16
17
|
readonly selectionMode$: Observable<Maybe<DbxListSelectionMode>>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TrackByFunction } from '@angular/core';
|
|
1
2
|
import { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';
|
|
2
3
|
import { AbstractDbxValueListViewDirective } from './list.view.value.directive';
|
|
3
4
|
import { DbxListView } from './list.view';
|
|
@@ -22,6 +23,7 @@ export declare class DbxValueListItemViewComponent<T, I extends DbxValueListItem
|
|
|
22
23
|
emitAllClicks?: Maybe<boolean>;
|
|
23
24
|
items?: Maybe<DbxValueListItemConfig<T, I>[]>;
|
|
24
25
|
readonly disabled$: import("rxjs").Observable<boolean>;
|
|
26
|
+
readonly trackByFunction: TrackByFunction<DbxValueListItemConfig<T, I>>;
|
|
25
27
|
constructor(dbxListView: DbxListView<T>);
|
|
26
28
|
onClickItem(item: I): void;
|
|
27
29
|
onClickValue(value: T): void;
|
|
@@ -8,6 +8,7 @@ export interface TextChip<T = unknown> {
|
|
|
8
8
|
}
|
|
9
9
|
export declare class DbxTextChipsComponent<T = unknown> {
|
|
10
10
|
chips?: Maybe<TextChip<T>[]>;
|
|
11
|
+
trackChipByText(index: number, chip: TextChip<T>): string;
|
|
11
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<DbxTextChipsComponent<any>, never>;
|
|
12
13
|
static ɵcmp: i0.ɵɵComponentDeclaration<DbxTextChipsComponent<any>, "dbx-text-chips", never, { "chips": "chips"; }, {}, never, never, false>;
|
|
13
14
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from './mapbox.cdref.service';
|
|
2
|
+
export * from './mapbox.change.service';
|
|
1
3
|
export * from './mapbox.module';
|
|
2
4
|
export * from './mapbox.layout.component';
|
|
3
5
|
export * from './mapbox.layout.drawer.component';
|
|
@@ -13,4 +15,4 @@ export * from './mapbox.store.provide';
|
|
|
13
15
|
export * from './mapbox';
|
|
14
16
|
export * from './mapbox.util';
|
|
15
17
|
export * from './options';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL21hcGJveC5jZHJlZi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LmNoYW5nZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LmxheW91dC5kcmF3ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94Lm1hcmtlcic7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5tYXJrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94Lm1hcmtlcnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94Lm1lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LnJ4anMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBib3guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5zdG9yZS5tYXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LnN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LnN0b3JlLnByb3ZpZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBib3gudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL29wdGlvbnMnO1xuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
* @Deprecated consider using DbxMapboxChangeService instead.
|
|
8
|
+
*/
|
|
9
|
+
export class DbxMapboxChangeDetectorRefService {
|
|
10
|
+
constructor(cdRef) {
|
|
11
|
+
this.cdRef = cdRef;
|
|
12
|
+
}
|
|
13
|
+
markForCheck() {
|
|
14
|
+
safeMarkForCheck(this.cdRef);
|
|
15
|
+
}
|
|
16
|
+
detectChanges() {
|
|
17
|
+
safeDetectChanges(this.cdRef);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
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 });
|
|
21
|
+
DbxMapboxChangeDetectorRefService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxChangeDetectorRefService, providedIn: null });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxChangeDetectorRefService, decorators: [{
|
|
23
|
+
type: Injectable,
|
|
24
|
+
args: [{
|
|
25
|
+
providedIn: null
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef, decorators: [{
|
|
28
|
+
type: Host
|
|
29
|
+
}] }]; } });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmNkcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5jZHJlZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUV4RTs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGlDQUFpQztJQUM1QyxZQUE2QixLQUF3QjtRQUF4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUFHLENBQUM7SUFFekQsWUFBWTtRQUNWLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYTtRQUNYLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs4SEFUVSxpQ0FBaUM7a0lBQWpDLGlDQUFpQyxjQUZoQyxJQUFJOzJGQUVMLGlDQUFpQztrQkFIN0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQUVjLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgSG9zdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2FmZURldGVjdENoYW5nZXMsIHNhZmVNYXJrRm9yQ2hlY2sgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5cbi8qKlxuICogUHJvdmlkZWQgaW4gdGhlIHBhcmVudCBjb21wb25lbnQgdGhhdCBhbGxvd3MgY2hpbGRyZW4gdG8gaW1wb3J0IHRoZSBwYXJlbnQncyBjZFJlZiBmb3IgdXNlLlxuICpcbiAqIEBEZXByZWNhdGVkIGNvbnNpZGVyIHVzaW5nIERieE1hcGJveENoYW5nZVNlcnZpY2UgaW5zdGVhZC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiBudWxsXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveENoYW5nZURldGVjdG9yUmVmU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG1hcmtGb3JDaGVjaygpIHtcbiAgICBzYWZlTWFya0ZvckNoZWNrKHRoaXMuY2RSZWYpO1xuICB9XG5cbiAgZGV0ZWN0Q2hhbmdlcygpIHtcbiAgICBzYWZlRGV0ZWN0Q2hhbmdlcyh0aGlzLmNkUmVmKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { switchMap } from 'rxjs/operators';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { SubscriptionObject } from '@dereekb/rxjs';
|
|
4
|
+
import { tap, merge, Subject, throttleTime } from 'rxjs';
|
|
5
|
+
import { DbxMapboxMapStore } from './mapbox.store';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./mapbox.store";
|
|
8
|
+
/**
|
|
9
|
+
* Provided in the parent component that allows children to emit events related to their lifecycles.
|
|
10
|
+
*/
|
|
11
|
+
export class DbxMapboxChangeService {
|
|
12
|
+
constructor(dbxMapboxMapStore) {
|
|
13
|
+
this.dbxMapboxMapStore = dbxMapboxMapStore;
|
|
14
|
+
this._markerDestroyed = new Subject();
|
|
15
|
+
this._applyChanges = new Subject();
|
|
16
|
+
this.markerDestroyed$ = this._markerDestroyed;
|
|
17
|
+
this.applyChanges$ = merge(this._applyChanges, this.markerDestroyed$).pipe(throttleTime(100, undefined, { leading: false, trailing: true }));
|
|
18
|
+
this._applyChangesSub = new SubscriptionObject(this.dbxMapboxMapStore.mapService$
|
|
19
|
+
.pipe(switchMap((mapService) => this.applyChanges$.pipe(tap(() => {
|
|
20
|
+
mapService.applyChanges();
|
|
21
|
+
}))))
|
|
22
|
+
.subscribe());
|
|
23
|
+
}
|
|
24
|
+
applyChanges() {
|
|
25
|
+
this._applyChanges.next();
|
|
26
|
+
}
|
|
27
|
+
emitMarkerDestroyed() {
|
|
28
|
+
this._markerDestroyed.next();
|
|
29
|
+
}
|
|
30
|
+
ngOnDestroy() {
|
|
31
|
+
this._markerDestroyed.complete();
|
|
32
|
+
this._applyChanges.complete();
|
|
33
|
+
this._applyChangesSub.destroy();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
DbxMapboxChangeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxChangeService, deps: [{ token: i1.DbxMapboxMapStore }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
|
+
DbxMapboxChangeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxChangeService, providedIn: null });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxChangeService, decorators: [{
|
|
39
|
+
type: Injectable,
|
|
40
|
+
args: [{
|
|
41
|
+
providedIn: null
|
|
42
|
+
}]
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i1.DbxMapboxMapStore }]; } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmNoYW5nZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3guY2hhbmdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBMkIsVUFBVSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR25EOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQXFCakMsWUFBcUIsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFwQmpELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRW5DLHFCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUN6QyxrQkFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV6SSxxQkFBZ0IsR0FBRyxJQUFJLGtCQUFrQixDQUMvQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVzthQUMvQixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNGO2FBQ0EsU0FBUyxFQUFFLENBQ2YsQ0FBQztJQUUwRCxDQUFDO0lBRTdELFlBQVk7UUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7O21IQW5DVSxzQkFBc0I7dUhBQXRCLHNCQUFzQixjQUZyQixJQUFJOzJGQUVMLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgSG9zdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbk9iamVjdCwgdGFwTG9nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyB0YXAsIG1lcmdlLCBTdWJqZWN0LCB0aHJvdHRsZVRpbWUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieE1hcGJveE1hcFN0b3JlIH0gZnJvbSAnLi9tYXBib3guc3RvcmUnO1xuaW1wb3J0IHsgSW5pdGlhbGl6ZWQgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBQcm92aWRlZCBpbiB0aGUgcGFyZW50IGNvbXBvbmVudCB0aGF0IGFsbG93cyBjaGlsZHJlbiB0byBlbWl0IGV2ZW50cyByZWxhdGVkIHRvIHRoZWlyIGxpZmVjeWNsZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogbnVsbFxufSlcbmV4cG9ydCBjbGFzcyBEYnhNYXBib3hDaGFuZ2VTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfbWFya2VyRGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfYXBwbHlDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICByZWFkb25seSBtYXJrZXJEZXN0cm95ZWQkID0gdGhpcy5fbWFya2VyRGVzdHJveWVkO1xuICByZWFkb25seSBhcHBseUNoYW5nZXMkID0gbWVyZ2UodGhpcy5fYXBwbHlDaGFuZ2VzLCB0aGlzLm1hcmtlckRlc3Ryb3llZCQpLnBpcGUodGhyb3R0bGVUaW1lKDEwMCwgdW5kZWZpbmVkLCB7IGxlYWRpbmc6IGZhbHNlLCB0cmFpbGluZzogdHJ1ZSB9KSk7XG5cbiAgcHJpdmF0ZSBfYXBwbHlDaGFuZ2VzU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdChcbiAgICB0aGlzLmRieE1hcGJveE1hcFN0b3JlLm1hcFNlcnZpY2UkXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChtYXBTZXJ2aWNlKSA9PlxuICAgICAgICAgIHRoaXMuYXBwbHlDaGFuZ2VzJC5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgbWFwU2VydmljZS5hcHBseUNoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKClcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhNYXBib3hNYXBTdG9yZTogRGJ4TWFwYm94TWFwU3RvcmUpIHt9XG5cbiAgYXBwbHlDaGFuZ2VzKCkge1xuICAgIHRoaXMuX2FwcGx5Q2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBlbWl0TWFya2VyRGVzdHJveWVkKCkge1xuICAgIHRoaXMuX21hcmtlckRlc3Ryb3llZC5uZXh0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tYXJrZXJEZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hcHBseUNoYW5nZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hcHBseUNoYW5nZXNTdWIuZGVzdHJveSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, Optional } from '@angular/core';
|
|
2
2
|
import { getValueFromGetter, latLngPointFunction } from '@dereekb/util';
|
|
3
|
+
import { DbxMapboxChangeService } from './mapbox.change.service';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
5
|
-
import * as i2 from "@angular/
|
|
6
|
-
import * as i3 from "@
|
|
7
|
-
import * as i4 from "
|
|
5
|
+
import * as i1 from "./mapbox.change.service";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@angular/material/icon";
|
|
8
|
+
import * as i4 from "@dereekb/dbx-web";
|
|
9
|
+
import * as i5 from "ngx-mapbox-gl";
|
|
8
10
|
export class DbxMapboxMarkerComponent {
|
|
9
|
-
constructor() {
|
|
11
|
+
constructor(_dbxMapboxChangeService) {
|
|
12
|
+
this._dbxMapboxChangeService = _dbxMapboxChangeService;
|
|
13
|
+
}
|
|
10
14
|
get marker() {
|
|
11
15
|
return this._marker;
|
|
12
16
|
}
|
|
@@ -64,11 +68,14 @@ export class DbxMapboxMarkerComponent {
|
|
|
64
68
|
};
|
|
65
69
|
return style;
|
|
66
70
|
}
|
|
71
|
+
ngOnDestroy() {
|
|
72
|
+
this._dbxMapboxChangeService?.emitMarkerDestroyed();
|
|
73
|
+
}
|
|
67
74
|
}
|
|
68
75
|
DbxMapboxMarkerComponent._latLngPoint = latLngPointFunction({ wrap: true });
|
|
69
|
-
DbxMapboxMarkerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxMarkerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
+
DbxMapboxMarkerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxMarkerComponent, deps: [{ token: i1.DbxMapboxChangeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
70
77
|
DbxMapboxMarkerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxMapboxMarkerComponent, selector: "dbx-mapbox-marker", inputs: { marker: "marker" }, ngImport: i0, template: `
|
|
71
|
-
<mgl-marker
|
|
78
|
+
<mgl-marker [lngLat]="latLng">
|
|
72
79
|
<dbx-anchor [anchor]="anchor">
|
|
73
80
|
<div class="dbx-mapbox-marker">
|
|
74
81
|
<div class="dbx-mapbox-marker-content" [ngStyle]="style">
|
|
@@ -78,11 +85,11 @@ DbxMapboxMarkerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0
|
|
|
78
85
|
</div>
|
|
79
86
|
</dbx-anchor>
|
|
80
87
|
</mgl-marker>
|
|
81
|
-
`, isInline: true, 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"], dependencies: [{ kind: "directive", type:
|
|
88
|
+
`, isInline: true, 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"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "component", type: i5.MarkerComponent, selector: "mgl-marker", inputs: ["offset", "anchor", "clickTolerance", "feature", "lngLat", "draggable", "popupShown", "className", "pitchAlignment", "rotationAlignment"], outputs: ["markerDragStart", "markerDragEnd", "markerDrag", "dragStart", "dragEnd", "drag"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
82
89
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxMarkerComponent, decorators: [{
|
|
83
90
|
type: Component,
|
|
84
91
|
args: [{ selector: 'dbx-mapbox-marker', template: `
|
|
85
|
-
<mgl-marker
|
|
92
|
+
<mgl-marker [lngLat]="latLng">
|
|
86
93
|
<dbx-anchor [anchor]="anchor">
|
|
87
94
|
<div class="dbx-mapbox-marker">
|
|
88
95
|
<div class="dbx-mapbox-marker-content" [ngStyle]="style">
|
|
@@ -93,7 +100,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
93
100
|
</dbx-anchor>
|
|
94
101
|
</mgl-marker>
|
|
95
102
|
`, 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
|
-
}], ctorParameters: function () { return [
|
|
103
|
+
}], ctorParameters: function () { return [{ type: i1.DbxMapboxChangeService, decorators: [{
|
|
104
|
+
type: Optional
|
|
105
|
+
}] }]; }, propDecorators: { marker: [{
|
|
97
106
|
type: Input
|
|
98
107
|
}] } });
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5tYXJrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFvQmpFLE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBeUMsdUJBQWdEO1FBQWhELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFBRyxDQUFDO0lBRTdGLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBdUI7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksUUFBUSxDQUFDO1FBRTVDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzVCLEtBQUssR0FBRyxJQUFJLENBQUM7U0FDZDthQUFNO1lBQ0wsUUFBUSxJQUFJLEVBQUU7Z0JBQ1osS0FBSyxPQUFPO29CQUNWLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ1gsTUFBTTtnQkFDUixLQUFLLFFBQVE7b0JBQ1gsS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDWCxNQUFNO2dCQUNSLEtBQUssT0FBTztvQkFDVixLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNYLE1BQU07Z0JBQ1IsS0FBSyxNQUFNO29CQUNULEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ1gsTUFBTSxHQUFHLEVBQUUsQ0FBQztvQkFDWixNQUFNO2FBQ1Q7U0FDRjtRQUVELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRTdILE1BQU0sS0FBSyxHQUFHO1lBQ1osR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUs7WUFDdEIsS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJO1lBQ25CLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSTtZQUNyQixXQUFXLEVBQUUsS0FBSyxHQUFHLElBQUk7WUFDekIsa0JBQWtCLEVBQUUsS0FBSztTQUMxQixDQUFDO1FBRUYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO0lBQ3RELENBQUM7O0FBOUVjLHFDQUFZLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUUsQ0FBQTtxSEFEdkQsd0JBQXdCO3lHQUF4Qix3QkFBd0IsdUZBZnpCOzs7Ozs7Ozs7OztHQVdUOzJGQUlVLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0UsbUJBQW1CLFlBQ25COzs7Ozs7Ozs7OztHQVdULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFPbEMsUUFBUTs0Q0FHakIsTUFBTTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFZhbHVlRnJvbUdldHRlciwgbGF0TG5nUG9pbnRGdW5jdGlvbiwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieE1hcGJveENoYW5nZVNlcnZpY2UgfSBmcm9tICcuL21hcGJveC5jaGFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhNYXBib3hNYXJrZXIgfSBmcm9tICcuL21hcGJveC5tYXJrZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtbWFwYm94LW1hcmtlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1nbC1tYXJrZXIgW2xuZ0xhdF09XCJsYXRMbmdcIj5cbiAgICAgIDxkYngtYW5jaG9yIFthbmNob3JdPVwiYW5jaG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LW1hcmtlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LW1hcmtlci1jb250ZW50XCIgW25nU3R5bGVdPVwic3R5bGVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25cIj57eyBpY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LW1hcGJveC1tYXJrZXItbGFiZWwgZGJ4LW91dGxpbmVkLXRleHRcIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RieC1hbmNob3I+XG4gICAgPC9tZ2wtbWFya2VyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9tYXBib3gubWFya2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveE1hcmtlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGljIF9sYXRMbmdQb2ludCA9IGxhdExuZ1BvaW50RnVuY3Rpb24oeyB3cmFwOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgX21hcmtlciE6IERieE1hcGJveE1hcmtlcjtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9kYnhNYXBib3hDaGFuZ2VTZXJ2aWNlPzogRGJ4TWFwYm94Q2hhbmdlU2VydmljZSkge31cblxuICBASW5wdXQoKVxuICBnZXQgbWFya2VyKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXJrZXI7XG4gIH1cblxuICBzZXQgbWFya2VyKG1hcmtlcjogRGJ4TWFwYm94TWFya2VyKSB7XG4gICAgdGhpcy5fbWFya2VyID0gbWFya2VyO1xuICB9XG5cbiAgZ2V0IGxhdExuZygpIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuX21hcmtlcj8ubGF0TG5nO1xuICAgIHJldHVybiBpbnB1dCA/IERieE1hcGJveE1hcmtlckNvbXBvbmVudC5fbGF0TG5nUG9pbnQoaW5wdXQpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGFuY2hvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5hbmNob3I7XG4gIH1cblxuICBnZXQgbGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtlcj8ubGFiZWw7XG4gIH1cblxuICBnZXQgaWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5pY29uO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCkge1xuICAgIGxldCB3aWR0aCA9IDA7XG4gICAgbGV0IGhlaWdodCA9IDA7XG5cbiAgICBjb25zdCBzaXplID0gdGhpcy5fbWFya2VyPy5zaXplIHx8ICdtZWRpdW0nO1xuXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnbnVtYmVyJykge1xuICAgICAgd2lkdGggPSBzaXplO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgICAgY2FzZSAnc21hbGwnOlxuICAgICAgICAgIHdpZHRoID0gMTg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgICAgd2lkdGggPSAyNDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICAgIHdpZHRoID0gMzI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RhbGwnOlxuICAgICAgICAgIHdpZHRoID0gMjQ7XG4gICAgICAgICAgaGVpZ2h0ID0gMzI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFoZWlnaHQpIHtcbiAgICAgIGhlaWdodCA9IHdpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGltYWdlSW5wdXQgPSB0aGlzLl9tYXJrZXI/LmltYWdlO1xuICAgIGNvbnN0IGltYWdlID0gaW1hZ2VJbnB1dCA/ICh0eXBlb2YgaW1hZ2VJbnB1dCA9PT0gJ3N0cmluZycgPyBpbWFnZUlucHV0IDogZ2V0VmFsdWVGcm9tR2V0dGVyKGltYWdlSW5wdXQsIHdpZHRoKSkgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgIC4uLnRoaXMuX21hcmtlcj8uc3R5bGUsXG4gICAgICB3aWR0aDogd2lkdGggKyAncHgnLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQgKyAncHgnLFxuICAgICAgJ2ZvbnQtc2l6ZSc6IHdpZHRoICsgJ3B4JyxcbiAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogaW1hZ2VcbiAgICB9O1xuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGJ4TWFwYm94Q2hhbmdlU2VydmljZT8uZW1pdE1hcmtlckRlc3Ryb3llZCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -13,4 +13,4 @@ export function dbxMapboxColoredDotStyle(background, color) {
|
|
|
13
13
|
'border-radius': '50%'
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvbWFwYm94L3NyYy9saWIvbWFwYm94Lm1hcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5Q0E7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFVBQWtCLEVBQUUsS0FBYztJQUN6RSxPQUFPO1FBQ0wsVUFBVTtRQUNWLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxFQUFFLEtBQUssSUFBSSxPQUFPO1FBQ3ZCLGVBQWUsRUFBRSxLQUFLO0tBQ3ZCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpY2thYmxlQW5jaG9yIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgUGl4ZWxzLCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQsIExhdExuZ0lucHV0UmVmLCBVbmlxdWVNb2RlbCB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG4vKipcbiAqIERieE1hcGJveE1hcmtlclNpemUuIE51bWJlcnMgYXJlIGNvbnZlcnRlZCB0byBwaXhlbHMuXG4gKi9cbmV4cG9ydCB0eXBlIERieE1hcGJveE1hcmtlclNpemUgPSAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3RhbGwnIHwgUGl4ZWxzO1xuXG5leHBvcnQgdHlwZSBEYnhNYXBib3hNYXJrZXIgPSBVbmlxdWVNb2RlbCAmXG4gIExhdExuZ0lucHV0UmVmICYge1xuICAgIC8qKlxuICAgICAqIGljb25cbiAgICAgKi9cbiAgICBpY29uPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIGxhYmVsXG4gICAgICovXG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogSW1hZ2UgVVJMXG4gICAgICovXG4gICAgaW1hZ2U/OiBzdHJpbmcgfCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8c3RyaW5nLCBQaXhlbHM+O1xuICAgIC8qKlxuICAgICAqIFNpemUgb2YgdGhlIG1hcmtlci5cbiAgICAgKi9cbiAgICBzaXplPzogRGJ4TWFwYm94TWFya2VyU2l6ZTtcbiAgICAvKipcbiAgICAgKiBBbmNob3JcbiAgICAgKi9cbiAgICBhbmNob3I/OiBDbGlja2FibGVBbmNob3I7XG4gICAgLyoqXG4gICAgICogQWRkaXRpb25hbCBvYmplY3Qgc3R5bGluZ1xuICAgICAqL1xuICAgIHN0eWxlPzogb2JqZWN0O1xuICB9O1xuXG4vKipcbiAqIE1hcEZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhlIGlucHV0IGRhdGEgdG8gYSBEYnhNYXBib3hNYXJrZXIuXG4gKi9cbmV4cG9ydCB0eXBlIERieE1hcGJveE1hcmtlckZhY3Rvcnk8VD4gPSAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IERieE1hcGJveE1hcmtlcjtcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBzdHlsaW5nIGZvciByZW5kZXJpbmcgYSBkb3QuXG4gKlxuICogQHBhcmFtIGJhY2tncm91bmRcbiAqIEBwYXJhbSBjb2xvclxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRieE1hcGJveENvbG9yZWREb3RTdHlsZShiYWNrZ3JvdW5kOiBzdHJpbmcsIGNvbG9yPzogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgYmFja2dyb3VuZCxcbiAgICBwYWRkaW5nOiAnMnB4JyxcbiAgICBjb2xvcjogY29sb3IgfHwgJ3doaXRlJyxcbiAgICAnYm9yZGVyLXJhZGl1cyc6ICc1MCUnXG4gIH07XG59XG4iXX0=
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';
|
|
2
|
-
import { ChangeDetectionStrategy,
|
|
3
|
-
import { tapDetectChanges } from '@dereekb/dbx-core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "@angular/common";
|
|
6
5
|
import * as i2 from "./mapbox.marker.component";
|
|
@@ -8,8 +7,7 @@ import * as i2 from "./mapbox.marker.component";
|
|
|
8
7
|
* Component used to render a set of DbxMapboxMarker values from the input data and marker factory.
|
|
9
8
|
*/
|
|
10
9
|
export class DbxMapboxMarkersComponent {
|
|
11
|
-
constructor(
|
|
12
|
-
this.cdRef = cdRef;
|
|
10
|
+
constructor() {
|
|
13
11
|
this._data = new BehaviorSubject(undefined);
|
|
14
12
|
this._markerFactory = new BehaviorSubject(undefined);
|
|
15
13
|
this.markers$ = combineLatest([this._data.pipe(distinctUntilChanged()), this._markerFactory.pipe(distinctUntilChanged())]).pipe(map(([data, markerFactory]) => {
|
|
@@ -19,13 +17,16 @@ export class DbxMapboxMarkersComponent {
|
|
|
19
17
|
else {
|
|
20
18
|
return [];
|
|
21
19
|
}
|
|
22
|
-
}),
|
|
20
|
+
}), shareReplay(1));
|
|
21
|
+
}
|
|
22
|
+
trackMarkerById(index, marker) {
|
|
23
|
+
return marker.id;
|
|
23
24
|
}
|
|
24
25
|
get data() {
|
|
25
26
|
return this._data.value;
|
|
26
27
|
}
|
|
27
28
|
set data(data) {
|
|
28
|
-
this._data.next(data);
|
|
29
|
+
this._data.next(data || []);
|
|
29
30
|
}
|
|
30
31
|
get markerFactory() {
|
|
31
32
|
return this._markerFactory.value;
|
|
@@ -38,22 +39,22 @@ export class DbxMapboxMarkersComponent {
|
|
|
38
39
|
this._markerFactory.complete();
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
|
-
DbxMapboxMarkersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxMarkersComponent, deps: [
|
|
42
|
+
DbxMapboxMarkersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxMarkersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
43
|
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: `
|
|
43
|
-
<dbx-mapbox-marker *ngFor="let marker of markers$ | async" [marker]="marker"></dbx-mapbox-marker>
|
|
44
|
+
<dbx-mapbox-marker *ngFor="let marker of markers$ | async; trackBy: trackMarkerById" [marker]="marker"></dbx-mapbox-marker>
|
|
44
45
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.DbxMapboxMarkerComponent, selector: "dbx-mapbox-marker", inputs: ["marker"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
45
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxMapboxMarkersComponent, decorators: [{
|
|
46
47
|
type: Component,
|
|
47
48
|
args: [{
|
|
48
49
|
selector: 'dbx-mapbox-markers',
|
|
49
50
|
template: `
|
|
50
|
-
<dbx-mapbox-marker *ngFor="let marker of markers$ | async" [marker]="marker"></dbx-mapbox-marker>
|
|
51
|
+
<dbx-mapbox-marker *ngFor="let marker of markers$ | async; trackBy: trackMarkerById" [marker]="marker"></dbx-mapbox-marker>
|
|
51
52
|
`,
|
|
52
53
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
53
54
|
}]
|
|
54
|
-
}],
|
|
55
|
+
}], propDecorators: { data: [{
|
|
55
56
|
type: Input
|
|
56
57
|
}], markerFactory: [{
|
|
57
58
|
type: Input
|
|
58
59
|
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubWFya2Vycy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5RixPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXVCLE1BQU0sZUFBZSxDQUFDOzs7O0FBSWxIOztHQUVHO0FBUUgsTUFBTSxPQUFPLHlCQUF5QjtJQVB0QztRQVFVLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBYSxTQUFTLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFtQyxTQUFTLENBQUMsQ0FBQztRQUVqRixhQUFRLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQUU7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7S0E0Qkg7SUExQkMsZUFBZSxDQUFDLEtBQWEsRUFBRSxNQUF1QjtRQUNwRCxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQWdCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFDSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsYUFBK0M7UUFDL0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7c0hBeENVLHlCQUF5QjswR0FBekIseUJBQXlCLG9IQUwxQjs7R0FFVDsyRkFHVSx5QkFBeUI7a0JBUHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOztHQUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFxQkssSUFBSTtzQkFEUCxLQUFLO2dCQVVGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhNYXBib3hNYXJrZXIsIERieE1hcGJveE1hcmtlckZhY3RvcnkgfSBmcm9tICcuL21hcGJveC5tYXJrZXInO1xuaW1wb3J0IHsgRGJ4TWFwYm94Q2hhbmdlU2VydmljZSB9IGZyb20gJy4vbWFwYm94LmNoYW5nZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgdXNlZCB0byByZW5kZXIgYSBzZXQgb2YgRGJ4TWFwYm94TWFya2VyIHZhbHVlcyBmcm9tIHRoZSBpbnB1dCBkYXRhIGFuZCBtYXJrZXIgZmFjdG9yeS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LW1hcGJveC1tYXJrZXJzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGJ4LW1hcGJveC1tYXJrZXIgKm5nRm9yPVwibGV0IG1hcmtlciBvZiBtYXJrZXJzJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja01hcmtlckJ5SWRcIiBbbWFya2VyXT1cIm1hcmtlclwiPjwvZGJ4LW1hcGJveC1tYXJrZXI+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveE1hcmtlcnNDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9kYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxUW10+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIF9tYXJrZXJGYWN0b3J5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEYnhNYXBib3hNYXJrZXJGYWN0b3J5PFQ+Pj4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBtYXJrZXJzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2RhdGEucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSwgdGhpcy5fbWFya2VyRmFjdG9yeS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXSkucGlwZShcbiAgICBtYXAoKFtkYXRhLCBtYXJrZXJGYWN0b3J5XSkgPT4ge1xuICAgICAgaWYgKGRhdGE/Lmxlbmd0aCAmJiBtYXJrZXJGYWN0b3J5KSB7XG4gICAgICAgIHJldHVybiBkYXRhLm1hcChtYXJrZXJGYWN0b3J5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHRyYWNrTWFya2VyQnlJZChpbmRleDogbnVtYmVyLCBtYXJrZXI6IERieE1hcGJveE1hcmtlcikge1xuICAgIHJldHVybiBtYXJrZXIuaWQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS52YWx1ZTtcbiAgfVxuXG4gIHNldCBkYXRhKGRhdGE6IE1heWJlPFRbXT4pIHtcbiAgICB0aGlzLl9kYXRhLm5leHQoZGF0YSB8fCBbXSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgbWFya2VyRmFjdG9yeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyRmFjdG9yeS52YWx1ZTtcbiAgfVxuXG4gIHNldCBtYXJrZXJGYWN0b3J5KG1hcmtlckZhY3Rvcnk6IE1heWJlPERieE1hcGJveE1hcmtlckZhY3Rvcnk8VD4+KSB7XG4gICAgdGhpcy5fbWFya2VyRmFjdG9yeS5uZXh0KG1hcmtlckZhY3RvcnkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGF0YS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX21hcmtlckZhY3RvcnkuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
|