@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.
Files changed (47) hide show
  1. package/esm2020/lib/layout/list/index.mjs +2 -1
  2. package/esm2020/lib/layout/list/list.grid.view.component.mjs +3 -3
  3. package/esm2020/lib/layout/list/list.track.mjs +9 -0
  4. package/esm2020/lib/layout/list/list.view.directive.mjs +1 -1
  5. package/esm2020/lib/layout/list/list.view.mjs +1 -1
  6. package/esm2020/lib/layout/list/list.view.value.component.mjs +5 -3
  7. package/esm2020/lib/layout/text/text.chips.component.mjs +6 -3
  8. package/esm2020/mapbox/lib/index.mjs +3 -1
  9. package/esm2020/mapbox/lib/mapbox.cdref.service.mjs +30 -0
  10. package/esm2020/mapbox/lib/mapbox.change.service.mjs +44 -0
  11. package/esm2020/mapbox/lib/mapbox.marker.component.mjs +21 -12
  12. package/esm2020/mapbox/lib/mapbox.marker.mjs +1 -1
  13. package/esm2020/mapbox/lib/mapbox.markers.component.mjs +12 -11
  14. package/esm2020/mapbox/lib/mapbox.store.mjs +2 -1
  15. package/fesm2015/dereekb-dbx-web-mapbox.mjs +111 -31
  16. package/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
  17. package/fesm2015/dereekb-dbx-web.mjs +21 -7
  18. package/fesm2015/dereekb-dbx-web.mjs.map +1 -1
  19. package/fesm2020/dereekb-dbx-web-mapbox.mjs +103 -28
  20. package/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
  21. package/fesm2020/dereekb-dbx-web.mjs +21 -7
  22. package/fesm2020/dereekb-dbx-web.mjs.map +1 -1
  23. package/lib/layout/list/index.d.ts +1 -0
  24. package/lib/layout/list/list.track.d.ts +6 -0
  25. package/lib/layout/list/list.view.d.ts +5 -1
  26. package/lib/layout/list/list.view.directive.d.ts +2 -1
  27. package/lib/layout/list/list.view.value.component.d.ts +2 -0
  28. package/lib/layout/text/text.chips.component.d.ts +1 -0
  29. package/mapbox/esm2020/lib/index.mjs +3 -1
  30. package/mapbox/esm2020/lib/mapbox.cdref.service.mjs +30 -0
  31. package/mapbox/esm2020/lib/mapbox.change.service.mjs +44 -0
  32. package/mapbox/esm2020/lib/mapbox.marker.component.mjs +21 -12
  33. package/mapbox/esm2020/lib/mapbox.marker.mjs +1 -1
  34. package/mapbox/esm2020/lib/mapbox.markers.component.mjs +12 -11
  35. package/mapbox/esm2020/lib/mapbox.store.mjs +2 -1
  36. package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs +111 -31
  37. package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
  38. package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs +103 -28
  39. package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
  40. package/mapbox/lib/index.d.ts +2 -0
  41. package/mapbox/lib/mapbox.cdref.service.d.ts +15 -0
  42. package/mapbox/lib/mapbox.change.service.d.ts +21 -0
  43. package/mapbox/lib/mapbox.marker.component.d.ts +9 -6
  44. package/mapbox/lib/mapbox.marker.d.ts +3 -3
  45. package/mapbox/lib/mapbox.markers.component.d.ts +4 -5
  46. package/mapbox/package.json +3 -4
  47. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWFwYm94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LmxheW91dC5kcmF3ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94Lm1hcmtlcic7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5tYXJrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94Lm1hcmtlcnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94Lm1lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LnJ4anMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBib3guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21hcGJveC5zdG9yZS5tYXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LnN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbWFwYm94LnN0b3JlLnByb3ZpZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXBib3gudXRpbCc7XG5leHBvcnQgKiBmcm9tICcuL29wdGlvbnMnO1xuIl19
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 "@angular/common";
5
- import * as i2 from "@angular/material/icon";
6
- import * as i3 from "@dereekb/dbx-web";
7
- import * as i4 from "ngx-mapbox-gl";
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 *ngIf="marker" [lngLat]="latLng">
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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "component", type: i4.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 });
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 *ngIf="marker" [lngLat]="latLng">
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 []; }, propDecorators: { marker: [{
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5tYXJrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBUyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBb0IvRSxNQUFNLE9BQU8sd0JBQXdCO0lBY25DLGdCQUFlLENBQUM7SUFUaEIsSUFDSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUE4QjtRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBSUQsSUFBSSxNQUFNO1FBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFZixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLENBQUM7UUFFNUMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUIsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNkO2FBQU07WUFDTCxRQUFRLElBQUksRUFBRTtnQkFDWixLQUFLLE9BQU87b0JBQ1YsS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDWCxNQUFNO2dCQUNSLEtBQUssUUFBUTtvQkFDWCxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNYLE1BQU07Z0JBQ1IsS0FBSyxPQUFPO29CQUNWLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ1gsTUFBTTtnQkFDUixLQUFLLE1BQU07b0JBQ1QsS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDWCxNQUFNLEdBQUcsRUFBRSxDQUFDO29CQUNaLE1BQU07YUFDVDtTQUNGO1FBRUQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDaEI7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztRQUN2QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFN0gsTUFBTSxLQUFLLEdBQUc7WUFDWixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSztZQUN0QixLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUk7WUFDbkIsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJO1lBQ3JCLFdBQVcsRUFBRSxLQUFLLEdBQUcsSUFBSTtZQUN6QixrQkFBa0IsRUFBRSxLQUFLO1NBQzFCLENBQUM7UUFFRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O0FBMUVjLHFDQUFZLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUUsQ0FBQTtxSEFEdkQsd0JBQXdCO3lHQUF4Qix3QkFBd0IsdUZBZnpCOzs7Ozs7Ozs7OztHQVdUOzJGQUlVLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0UsbUJBQW1CLFlBQ25COzs7Ozs7Ozs7OztHQVdULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzBFQVEzQyxNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0VmFsdWVGcm9tR2V0dGVyLCBsYXRMbmdQb2ludEZ1bmN0aW9uLCBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFya2VyIH0gZnJvbSAnLi9tYXBib3gubWFya2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LW1hcGJveC1tYXJrZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxtZ2wtbWFya2VyICpuZ0lmPVwibWFya2VyXCIgW2xuZ0xhdF09XCJsYXRMbmdcIj5cbiAgICAgIDxkYngtYW5jaG9yIFthbmNob3JdPVwiYW5jaG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LW1hcmtlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LW1hcmtlci1jb250ZW50XCIgW25nU3R5bGVdPVwic3R5bGVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25cIj57eyBpY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LW1hcGJveC1tYXJrZXItbGFiZWwgZGJ4LW91dGxpbmVkLXRleHRcIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RieC1hbmNob3I+XG4gICAgPC9tZ2wtbWFya2VyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9tYXBib3gubWFya2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveE1hcmtlckNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhdGljIF9sYXRMbmdQb2ludCA9IGxhdExuZ1BvaW50RnVuY3Rpb24oeyB3cmFwOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgX21hcmtlciE6IE1heWJlPERieE1hcGJveE1hcmtlcj47XG5cbiAgQElucHV0KClcbiAgZ2V0IG1hcmtlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyO1xuICB9XG5cbiAgc2V0IG1hcmtlcihtYXJrZXI6IE1heWJlPERieE1hcGJveE1hcmtlcj4pIHtcbiAgICB0aGlzLl9tYXJrZXIgPSBtYXJrZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgZ2V0IGxhdExuZygpIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuX21hcmtlcj8ubGF0TG5nO1xuICAgIHJldHVybiBpbnB1dCA/IERieE1hcGJveE1hcmtlckNvbXBvbmVudC5fbGF0TG5nUG9pbnQoaW5wdXQpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGFuY2hvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5hbmNob3I7XG4gIH1cblxuICBnZXQgbGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtlcj8ubGFiZWw7XG4gIH1cblxuICBnZXQgaWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5pY29uO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCkge1xuICAgIGxldCB3aWR0aCA9IDA7XG4gICAgbGV0IGhlaWdodCA9IDA7XG5cbiAgICBjb25zdCBzaXplID0gdGhpcy5fbWFya2VyPy5zaXplIHx8ICdtZWRpdW0nO1xuXG4gICAgaWYgKHR5cGVvZiBzaXplID09PSAnbnVtYmVyJykge1xuICAgICAgd2lkdGggPSBzaXplO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgICAgY2FzZSAnc21hbGwnOlxuICAgICAgICAgIHdpZHRoID0gMTg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgICAgd2lkdGggPSAyNDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICAgIHdpZHRoID0gMzI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3RhbGwnOlxuICAgICAgICAgIHdpZHRoID0gMjQ7XG4gICAgICAgICAgaGVpZ2h0ID0gMzI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFoZWlnaHQpIHtcbiAgICAgIGhlaWdodCA9IHdpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGltYWdlSW5wdXQgPSB0aGlzLl9tYXJrZXI/LmltYWdlO1xuICAgIGNvbnN0IGltYWdlID0gaW1hZ2VJbnB1dCA/ICh0eXBlb2YgaW1hZ2VJbnB1dCA9PT0gJ3N0cmluZycgPyBpbWFnZUlucHV0IDogZ2V0VmFsdWVGcm9tR2V0dGVyKGltYWdlSW5wdXQsIHdpZHRoKSkgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBzdHlsZSA9IHtcbiAgICAgIC4uLnRoaXMuX21hcmtlcj8uc3R5bGUsXG4gICAgICB3aWR0aDogd2lkdGggKyAncHgnLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQgKyAncHgnLFxuICAgICAgJ2ZvbnQtc2l6ZSc6IHdpZHRoICsgJ3B4JyxcbiAgICAgICdiYWNrZ3JvdW5kLWltYWdlJzogaW1hZ2VcbiAgICB9O1xuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvbWFwYm94L3NyYy9saWIvbWFwYm94Lm1hcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3Q0E7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFVBQWtCLEVBQUUsS0FBYztJQUN6RSxPQUFPO1FBQ0wsVUFBVTtRQUNWLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxFQUFFLEtBQUssSUFBSSxPQUFPO1FBQ3ZCLGVBQWUsRUFBRSxLQUFLO0tBQ3ZCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpY2thYmxlQW5jaG9yIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgUGl4ZWxzLCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQsIExhdExuZ0lucHV0UmVmIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogRGJ4TWFwYm94TWFya2VyU2l6ZS4gTnVtYmVycyBhcmUgY29udmVydGVkIHRvIHBpeGVscy5cbiAqL1xuZXhwb3J0IHR5cGUgRGJ4TWFwYm94TWFya2VyU2l6ZSA9ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAndGFsbCcgfCBQaXhlbHM7XG5cbmV4cG9ydCB0eXBlIERieE1hcGJveE1hcmtlciA9IExhdExuZ0lucHV0UmVmICYge1xuICAvKipcbiAgICogaWNvblxuICAgKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIGxhYmVsXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIEltYWdlIFVSTFxuICAgKi9cbiAgaW1hZ2U/OiBzdHJpbmcgfCBGYWN0b3J5V2l0aFJlcXVpcmVkSW5wdXQ8c3RyaW5nLCBQaXhlbHM+O1xuICAvKipcbiAgICogU2l6ZSBvZiB0aGUgbWFya2VyLlxuICAgKi9cbiAgc2l6ZT86IERieE1hcGJveE1hcmtlclNpemU7XG4gIC8qKlxuICAgKlxuICAgKi9cbiAgYW5jaG9yPzogQ2xpY2thYmxlQW5jaG9yO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBvYmplY3Qgc3R5bGluZ1xuICAgKi9cbiAgc3R5bGU/OiBvYmplY3Q7XG59O1xuXG4vKipcbiAqIE1hcEZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhlIGlucHV0IGRhdGEgdG8gYSBEYnhNYXBib3hNYXJrZXIuXG4gKi9cbmV4cG9ydCB0eXBlIERieE1hcGJveE1hcmtlckZhY3Rvcnk8VD4gPSAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IERieE1hcGJveE1hcmtlcjtcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBzdHlsaW5nIGZvciByZW5kZXJpbmcgYSBkb3QuXG4gKlxuICogQHBhcmFtIGJhY2tncm91bmRcbiAqIEBwYXJhbSBjb2xvclxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRieE1hcGJveENvbG9yZWREb3RTdHlsZShiYWNrZ3JvdW5kOiBzdHJpbmcsIGNvbG9yPzogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgYmFja2dyb3VuZCxcbiAgICBwYWRkaW5nOiAnMnB4JyxcbiAgICBjb2xvcjogY29sb3IgfHwgJ3doaXRlJyxcbiAgICAnYm9yZGVyLXJhZGl1cyc6ICc1MCUnXG4gIH07XG59XG4iXX0=
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, ChangeDetectorRef, Component, Input } from '@angular/core';
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(cdRef) {
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
- }), tapDetectChanges(this.cdRef), shareReplay(1));
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: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
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
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
55
+ }], propDecorators: { data: [{
55
56
  type: Input
56
57
  }], markerFactory: [{
57
58
  type: Input
58
59
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubWFya2Vycy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUV4RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUVyRDs7R0FFRztBQVFILE1BQU0sT0FBTyx5QkFBeUI7SUFnQnBDLFlBQXFCLEtBQXdCO1FBQXhCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBZnJDLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBYSxTQUFTLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFtQyxTQUFTLENBQUMsQ0FBQztRQUVqRixhQUFRLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQUU7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUM1QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUU4QyxDQUFDO0lBRWpELElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQWdCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUNJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxhQUErQztRQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztzSEF2Q1UseUJBQXlCOzBHQUF6Qix5QkFBeUIsb0hBTDFCOztHQUVUOzJGQUdVLHlCQUF5QjtrQkFQckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7O0dBRVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEO3dHQW9CSyxJQUFJO3NCQURQLEtBQUs7Z0JBVUYsYUFBYTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFya2VyRmFjdG9yeSB9IGZyb20gJy4vbWFwYm94Lm1hcmtlcic7XG5pbXBvcnQgeyB0YXBEZXRlY3RDaGFuZ2VzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuXG4vKipcbiAqIENvbXBvbmVudCB1c2VkIHRvIHJlbmRlciBhIHNldCBvZiBEYnhNYXBib3hNYXJrZXIgdmFsdWVzIGZyb20gdGhlIGlucHV0IGRhdGEgYW5kIG1hcmtlciBmYWN0b3J5LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtbWFwYm94LW1hcmtlcnMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkYngtbWFwYm94LW1hcmtlciAqbmdGb3I9XCJsZXQgbWFya2VyIG9mIG1hcmtlcnMkIHwgYXN5bmNcIiBbbWFya2VyXT1cIm1hcmtlclwiPjwvZGJ4LW1hcGJveC1tYXJrZXI+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveE1hcmtlcnNDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9kYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxUW10+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIF9tYXJrZXJGYWN0b3J5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEYnhNYXBib3hNYXJrZXJGYWN0b3J5PFQ+Pj4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBtYXJrZXJzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2RhdGEucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSwgdGhpcy5fbWFya2VyRmFjdG9yeS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXSkucGlwZShcbiAgICBtYXAoKFtkYXRhLCBtYXJrZXJGYWN0b3J5XSkgPT4ge1xuICAgICAgaWYgKGRhdGE/Lmxlbmd0aCAmJiBtYXJrZXJGYWN0b3J5KSB7XG4gICAgICAgIHJldHVybiBkYXRhLm1hcChtYXJrZXJGYWN0b3J5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICB0YXBEZXRlY3RDaGFuZ2VzKHRoaXMuY2RSZWYpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhLnZhbHVlO1xuICB9XG5cbiAgc2V0IGRhdGEoZGF0YTogTWF5YmU8VFtdPikge1xuICAgIHRoaXMuX2RhdGEubmV4dChkYXRhKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBtYXJrZXJGYWN0b3J5KCkge1xuICAgIHJldHVybiB0aGlzLl9tYXJrZXJGYWN0b3J5LnZhbHVlO1xuICB9XG5cbiAgc2V0IG1hcmtlckZhY3RvcnkobWFya2VyRmFjdG9yeTogTWF5YmU8RGJ4TWFwYm94TWFya2VyRmFjdG9yeTxUPj4pIHtcbiAgICB0aGlzLl9tYXJrZXJGYWN0b3J5Lm5leHQobWFya2VyRmFjdG9yeSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbWFya2VyRmFjdG9yeS5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubWFya2Vycy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5RixPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXVCLE1BQU0sZUFBZSxDQUFDOzs7O0FBSWxIOztHQUVHO0FBUUgsTUFBTSxPQUFPLHlCQUF5QjtJQVB0QztRQVFVLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBYSxTQUFTLENBQUMsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFtQyxTQUFTLENBQUMsQ0FBQztRQUVqRixhQUFRLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqSSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxhQUFhLEVBQUU7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7S0E0Qkg7SUExQkMsZUFBZSxDQUFDLEtBQWEsRUFBRSxNQUF1QjtRQUNwRCxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLElBQWdCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFDSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsYUFBK0M7UUFDL0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7c0hBeENVLHlCQUF5QjswR0FBekIseUJBQXlCLG9IQUwxQjs7R0FFVDsyRkFHVSx5QkFBeUI7a0JBUHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOztHQUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFxQkssSUFBSTtzQkFEUCxLQUFLO2dCQVVGLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhNYXBib3hNYXJrZXIsIERieE1hcGJveE1hcmtlckZhY3RvcnkgfSBmcm9tICcuL21hcGJveC5tYXJrZXInO1xuaW1wb3J0IHsgRGJ4TWFwYm94Q2hhbmdlU2VydmljZSB9IGZyb20gJy4vbWFwYm94LmNoYW5nZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBDb21wb25lbnQgdXNlZCB0byByZW5kZXIgYSBzZXQgb2YgRGJ4TWFwYm94TWFya2VyIHZhbHVlcyBmcm9tIHRoZSBpbnB1dCBkYXRhIGFuZCBtYXJrZXIgZmFjdG9yeS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LW1hcGJveC1tYXJrZXJzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGJ4LW1hcGJveC1tYXJrZXIgKm5nRm9yPVwibGV0IG1hcmtlciBvZiBtYXJrZXJzJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja01hcmtlckJ5SWRcIiBbbWFya2VyXT1cIm1hcmtlclwiPjwvZGJ4LW1hcGJveC1tYXJrZXI+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveE1hcmtlcnNDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9kYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxUW10+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIF9tYXJrZXJGYWN0b3J5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEYnhNYXBib3hNYXJrZXJGYWN0b3J5PFQ+Pj4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSBtYXJrZXJzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2RhdGEucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSwgdGhpcy5fbWFya2VyRmFjdG9yeS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXSkucGlwZShcbiAgICBtYXAoKFtkYXRhLCBtYXJrZXJGYWN0b3J5XSkgPT4ge1xuICAgICAgaWYgKGRhdGE/Lmxlbmd0aCAmJiBtYXJrZXJGYWN0b3J5KSB7XG4gICAgICAgIHJldHVybiBkYXRhLm1hcChtYXJrZXJGYWN0b3J5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHRyYWNrTWFya2VyQnlJZChpbmRleDogbnVtYmVyLCBtYXJrZXI6IERieE1hcGJveE1hcmtlcikge1xuICAgIHJldHVybiBtYXJrZXIuaWQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YS52YWx1ZTtcbiAgfVxuXG4gIHNldCBkYXRhKGRhdGE6IE1heWJlPFRbXT4pIHtcbiAgICB0aGlzLl9kYXRhLm5leHQoZGF0YSB8fCBbXSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgbWFya2VyRmFjdG9yeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyRmFjdG9yeS52YWx1ZTtcbiAgfVxuXG4gIHNldCBtYXJrZXJGYWN0b3J5KG1hcmtlckZhY3Rvcnk6IE1heWJlPERieE1hcGJveE1hcmtlckZhY3Rvcnk8VD4+KSB7XG4gICAgdGhpcy5fbWFya2VyRmFjdG9yeS5uZXh0KG1hcmtlckZhY3RvcnkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGF0YS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX21hcmtlckZhY3RvcnkuY29tcGxldGUoKTtcbiAgfVxufVxuIl19