@dereekb/dbx-web 9.23.17 → 9.23.19

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 (60) hide show
  1. package/calendar/esm2020/lib/calendar.base.component.mjs +20 -10
  2. package/calendar/esm2020/lib/calendar.store.mjs +70 -12
  3. package/calendar/fesm2015/dereekb-dbx-web-calendar.mjs +91 -23
  4. package/calendar/fesm2015/dereekb-dbx-web-calendar.mjs.map +1 -1
  5. package/calendar/fesm2020/dereekb-dbx-web-calendar.mjs +91 -23
  6. package/calendar/fesm2020/dereekb-dbx-web-calendar.mjs.map +1 -1
  7. package/calendar/lib/calendar.base.component.d.ts +7 -1
  8. package/calendar/lib/calendar.store.d.ts +53 -4
  9. package/calendar/package.json +2 -2
  10. package/esm2020/calendar/lib/calendar.base.component.mjs +20 -10
  11. package/esm2020/calendar/lib/calendar.store.mjs +70 -12
  12. package/esm2020/lib/layout/text/address.component.mjs +6 -5
  13. package/esm2020/lib/layout/text/detail.block.component.mjs +3 -3
  14. package/esm2020/lib/router/layout/anchor/anchor.component.mjs +15 -3
  15. package/esm2020/mapbox/lib/index.mjs +4 -1
  16. package/esm2020/mapbox/lib/mapbox.injection.component.mjs +32 -0
  17. package/esm2020/mapbox/lib/mapbox.injection.store.mjs +39 -0
  18. package/esm2020/mapbox/lib/mapbox.injection.store.provide.mjs +52 -0
  19. package/esm2020/mapbox/lib/mapbox.marker.component.mjs +6 -6
  20. package/esm2020/mapbox/lib/mapbox.marker.mjs +1 -1
  21. package/esm2020/mapbox/lib/mapbox.module.mjs +5 -1
  22. package/fesm2015/dereekb-dbx-web-calendar.mjs +91 -23
  23. package/fesm2015/dereekb-dbx-web-calendar.mjs.map +1 -1
  24. package/fesm2015/dereekb-dbx-web-mapbox.mjs +122 -9
  25. package/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
  26. package/fesm2015/dereekb-dbx-web.mjs +22 -7
  27. package/fesm2015/dereekb-dbx-web.mjs.map +1 -1
  28. package/fesm2020/dereekb-dbx-web-calendar.mjs +91 -23
  29. package/fesm2020/dereekb-dbx-web-calendar.mjs.map +1 -1
  30. package/fesm2020/dereekb-dbx-web-mapbox.mjs +118 -8
  31. package/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
  32. package/fesm2020/dereekb-dbx-web.mjs +20 -7
  33. package/fesm2020/dereekb-dbx-web.mjs.map +1 -1
  34. package/lib/extension/calendar/_calendar.scss +5 -3
  35. package/lib/extension/calendar/style/_variables.scss +4 -0
  36. package/lib/extension/calendar/style/month/calendar-month-view.scss +2 -0
  37. package/lib/extension/calendar/style/week/calendar-week-view.scss +5 -0
  38. package/lib/layout/flex/_flex.scss +2 -1
  39. package/lib/router/layout/anchor/anchor.component.d.ts +2 -0
  40. package/mapbox/esm2020/lib/index.mjs +4 -1
  41. package/mapbox/esm2020/lib/mapbox.injection.component.mjs +32 -0
  42. package/mapbox/esm2020/lib/mapbox.injection.store.mjs +39 -0
  43. package/mapbox/esm2020/lib/mapbox.injection.store.provide.mjs +52 -0
  44. package/mapbox/esm2020/lib/mapbox.marker.component.mjs +6 -6
  45. package/mapbox/esm2020/lib/mapbox.marker.mjs +1 -1
  46. package/mapbox/esm2020/lib/mapbox.module.mjs +5 -1
  47. package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs +122 -9
  48. package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
  49. package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs +118 -8
  50. package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
  51. package/mapbox/lib/index.d.ts +3 -0
  52. package/mapbox/lib/mapbox.injection.component.d.ts +16 -0
  53. package/mapbox/lib/mapbox.injection.store.d.ts +45 -0
  54. package/mapbox/lib/mapbox.injection.store.provide.d.ts +24 -0
  55. package/mapbox/lib/mapbox.marker.component.d.ts +3 -2
  56. package/mapbox/lib/mapbox.marker.d.ts +3 -2
  57. package/mapbox/lib/mapbox.module.d.ts +14 -13
  58. package/mapbox/package.json +3 -3
  59. package/package.json +3 -3
  60. package/table/package.json +3 -3
@@ -0,0 +1,39 @@
1
+ import { map, shareReplay } from 'rxjs';
2
+ import { Injectable } from '@angular/core';
3
+ import { ComponentStore } from '@ngrx/component-store';
4
+ import { distinctUntilMapHasDifferentKeys } from '@dereekb/rxjs';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Store used for storing injectable content into the map.
8
+ */
9
+ export class DbxMapboxInjectionStore extends ComponentStore {
10
+ constructor() {
11
+ super({
12
+ map: new Map()
13
+ });
14
+ this.map$ = this.state$.pipe(map((x) => x.map), distinctUntilMapHasDifferentKeys(), shareReplay(1));
15
+ this.allInjectionConfigs$ = this.map$.pipe(map((x) => Array.from(x.values())), shareReplay(1));
16
+ // MARK: State Changes
17
+ this.addInjectionConfig = this.updater(updateDbxMapboxMapInjectionStoreStateWithInjectionConfig);
18
+ this.removeInjectionConfigWithKey = this.updater(updateDbxMapboxMapInjectionStoreStateWithRemovedKey);
19
+ }
20
+ }
21
+ DbxMapboxInjectionStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxInjectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
22
+ DbxMapboxInjectionStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxInjectionStore });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxInjectionStore, decorators: [{
24
+ type: Injectable
25
+ }], ctorParameters: function () { return []; } });
26
+ export function updateDbxMapboxMapInjectionStoreStateWithInjectionConfig(state, config) {
27
+ const map = new Map(state.map).set(config.key, config);
28
+ return { ...state, map };
29
+ }
30
+ export function updateDbxMapboxMapInjectionStoreStateWithRemovedKey(state, key) {
31
+ // only create a new state if the key is going to get removed
32
+ if (state.map.has(key)) {
33
+ const map = new Map(state.map);
34
+ map.delete(key);
35
+ state = { ...state, map };
36
+ }
37
+ return state;
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmluamVjdGlvbi5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvbWFwYm94L3NyYy9saWIvbWFwYm94LmluamVjdGlvbi5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0NBQWdDLEVBQTJCLE1BQU0sZUFBZSxDQUFDOztBQThCMUY7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBK0M7SUFDMUY7UUFDRSxLQUFLLENBQUM7WUFDSixHQUFHLEVBQUUsSUFBSSxHQUFHLEVBQW1EO1NBQ2hFLENBQUMsQ0FBQztRQUdJLFNBQUksR0FBcUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUNqQixnQ0FBZ0MsRUFBRSxFQUNsQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLHlCQUFvQixHQUEyQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDcEYsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQ2xDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRUYsc0JBQXNCO1FBQ2IsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQzVGLGlDQUE0QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQWYxRyxDQUFDOztxSEFMVSx1QkFBdUI7eUhBQXZCLHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQXdCWCxNQUFNLFVBQVUsd0RBQXdELENBQUMsS0FBc0MsRUFBRSxNQUFnQztJQUMvSSxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkQsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBQzNCLENBQUM7QUFFRCxNQUFNLFVBQVUsbURBQW1ELENBQUMsS0FBc0MsRUFBRSxHQUEwQjtJQUNwSSw2REFBNkQ7SUFDN0QsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQixLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztLQUMzQjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQXJyYXlFbnRyeSwgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnLCBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWdXaXRob3V0SW5qZWN0b3IgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsTWFwSGFzRGlmZmVyZW50S2V5cywgT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXIgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuZXhwb3J0IHR5cGUgRGJ4TWFwYm94SW5qZWN0aW9uS2V5ID0gc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieE1hcGJveEluamVjdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBVbmlxdWUga2V5IHRoYXQgaWRlbnRpZmllcyB0aGlzIGNvbmZpZyBzcGVjaWZpY2FsbHkuXG4gICAqXG4gICAqIEtleXMgc2hvdWxkIGFsbCBiZSB1bmlxdWUuIFRoZSBzeXN0ZW0gZG9lcyBub3QgZXhwZWN0IGR1cGxpY2F0ZSBrZXlzLiBNb2RpZmljYXRpb25zIHRvIGluamVjdGlvbkNvbmZpZyBzaG91bGQgb2NjdXIgdGhyb3VnaCB0aGUgb2JzZXJ2YWJsZSB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGtleTogRGJ4TWFwYm94SW5qZWN0aW9uS2V5O1xuICAvKipcbiAgICogQXJiaXRyYXJ5IGluamVjdGlvbiB0eXBlLiBJcyB1c2VkIGZvciBmaWx0ZXJpbmcgb24gY29uZmlndXJhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSB0eXBlPzogc3RyaW5nO1xuICAvKipcbiAgICogSW5qZWN0aW9uIGNvbmZpZ3VyYXRpb24uIFRoZSBpbmplY3RvciBpcyBkaXNhbGxvd2VkLCBhcyB0aGUgcGFyZW50IGluamVjdG9yIG11c3QgaW5jbHVkZSB0aGUgbWFwYm94IGNvbXBvbmVudC5cbiAgICovXG4gIHJlYWRvbmx5IGluamVjdGlvbkNvbmZpZzogT2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8RGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnV2l0aG91dEluamVjdG9yPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYnhNYXBib3hNYXBJbmplY3Rpb25TdG9yZVN0YXRlIHtcbiAgLyoqXG4gICAqIEN1cnJlbnQgbWFwIG9mIGluamVjdGlvbiBrZXlzIGFuZCBjb25maWd1cmF0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IG1hcDogTWFwPERieE1hcGJveEluamVjdGlvbktleSwgRGJ4TWFwYm94SW5qZWN0aW9uQ29uZmlnPjtcblxuICAvLyBUT0RPOiBBZGQgZmlsdGVycyBmb3Igc2hvd2luZy9oaWRpbmcgZWxlbWVudHMgb2YgZGlmZmVyZW50IHR5cGVzLlxufVxuXG4vKipcbiAqIFN0b3JlIHVzZWQgZm9yIHN0b3JpbmcgaW5qZWN0YWJsZSBjb250ZW50IGludG8gdGhlIG1hcC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieE1hcGJveEluamVjdGlvblN0b3JlIGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8RGJ4TWFwYm94TWFwSW5qZWN0aW9uU3RvcmVTdGF0ZT4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih7XG4gICAgICBtYXA6IG5ldyBNYXA8RGJ4TWFwYm94SW5qZWN0aW9uS2V5LCBEYnhNYXBib3hJbmplY3Rpb25Db25maWc+KClcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRvbmx5IG1hcCQ6IE9ic2VydmFibGU8TWFwPERieE1hcGJveEluamVjdGlvbktleSwgRGJ4TWFwYm94SW5qZWN0aW9uQ29uZmlnPj4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5tYXApLFxuICAgIGRpc3RpbmN0VW50aWxNYXBIYXNEaWZmZXJlbnRLZXlzKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxJbmplY3Rpb25Db25maWdzJDogT2JzZXJ2YWJsZTxEYnhNYXBib3hJbmplY3Rpb25Db25maWdbXT4gPSB0aGlzLm1hcCQucGlwZShcbiAgICBtYXAoKHgpID0+IEFycmF5LmZyb20oeC52YWx1ZXMoKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICByZWFkb25seSBhZGRJbmplY3Rpb25Db25maWcgPSB0aGlzLnVwZGF0ZXIodXBkYXRlRGJ4TWFwYm94TWFwSW5qZWN0aW9uU3RvcmVTdGF0ZVdpdGhJbmplY3Rpb25Db25maWcpO1xuICByZWFkb25seSByZW1vdmVJbmplY3Rpb25Db25maWdXaXRoS2V5ID0gdGhpcy51cGRhdGVyKHVwZGF0ZURieE1hcGJveE1hcEluamVjdGlvblN0b3JlU3RhdGVXaXRoUmVtb3ZlZEtleSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVEYnhNYXBib3hNYXBJbmplY3Rpb25TdG9yZVN0YXRlV2l0aEluamVjdGlvbkNvbmZpZyhzdGF0ZTogRGJ4TWFwYm94TWFwSW5qZWN0aW9uU3RvcmVTdGF0ZSwgY29uZmlnOiBEYnhNYXBib3hJbmplY3Rpb25Db25maWcpIHtcbiAgY29uc3QgbWFwID0gbmV3IE1hcChzdGF0ZS5tYXApLnNldChjb25maWcua2V5LCBjb25maWcpO1xuICByZXR1cm4geyAuLi5zdGF0ZSwgbWFwIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVEYnhNYXBib3hNYXBJbmplY3Rpb25TdG9yZVN0YXRlV2l0aFJlbW92ZWRLZXkoc3RhdGU6IERieE1hcGJveE1hcEluamVjdGlvblN0b3JlU3RhdGUsIGtleTogRGJ4TWFwYm94SW5qZWN0aW9uS2V5KSB7XG4gIC8vIG9ubHkgY3JlYXRlIGEgbmV3IHN0YXRlIGlmIHRoZSBrZXkgaXMgZ29pbmcgdG8gZ2V0IHJlbW92ZWRcbiAgaWYgKHN0YXRlLm1hcC5oYXMoa2V5KSkge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXAoc3RhdGUubWFwKTtcbiAgICBtYXAuZGVsZXRlKGtleSk7XG4gICAgc3RhdGUgPSB7IC4uLnN0YXRlLCBtYXAgfTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { Directive, Injectable, Injector, Optional, SkipSelf } from '@angular/core';
2
+ import { DbxMapboxInjectionStore } from './mapbox.injection.store';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./mapbox.injection.store";
5
+ /**
6
+ * Token used by provideMapboxInjectionStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxInjectionStore into the child view.
7
+ */
8
+ export class DbxMapboxInjectionStoreProviderBlock {
9
+ constructor(dbxMapboxInjectionStore) {
10
+ this.dbxMapboxInjectionStore = dbxMapboxInjectionStore;
11
+ }
12
+ }
13
+ DbxMapboxInjectionStoreProviderBlock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxInjectionStoreProviderBlock, deps: [{ token: i1.DbxMapboxInjectionStore, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable });
14
+ DbxMapboxInjectionStoreProviderBlock.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxInjectionStoreProviderBlock });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxInjectionStoreProviderBlock, decorators: [{
16
+ type: Injectable
17
+ }], ctorParameters: function () { return [{ type: i1.DbxMapboxInjectionStore, decorators: [{
18
+ type: SkipSelf
19
+ }] }]; } });
20
+ export class DbxMapboxInjectionStoreInjectionBlockDirective {
21
+ }
22
+ DbxMapboxInjectionStoreInjectionBlockDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxInjectionStoreInjectionBlockDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
+ DbxMapboxInjectionStoreInjectionBlockDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DbxMapboxInjectionStoreInjectionBlockDirective, selector: "[dbxMapboxInjectionStoreParentBlocker]", providers: [DbxMapboxInjectionStoreProviderBlock], ngImport: i0 });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxInjectionStoreInjectionBlockDirective, decorators: [{
25
+ type: Directive,
26
+ args: [{
27
+ selector: '[dbxMapboxInjectionStoreParentBlocker]',
28
+ providers: [DbxMapboxInjectionStoreProviderBlock]
29
+ }]
30
+ }] });
31
+ /**
32
+ * Creates a Provider that initializes a new DbxMapboxInjectionStore if a parent does not exist.
33
+ *
34
+ * If a DbxMapboxInjectionStoreInjectionBlock is available in the context, and references the same dbxMapboxInjectionStore that is attempting to be injected, a new DbxMapboxInjectionStore is created.
35
+ *
36
+ * @returns
37
+ */
38
+ export function provideMapboxInjectionStoreIfParentIsUnavailable() {
39
+ return {
40
+ provide: DbxMapboxInjectionStore,
41
+ useFactory: (parentInjector, dbxMapboxInjectionStoreInjectionBlock, dbxMapboxInjectionStore) => {
42
+ if (!dbxMapboxInjectionStore || (dbxMapboxInjectionStore && dbxMapboxInjectionStoreInjectionBlock != null && dbxMapboxInjectionStoreInjectionBlock.dbxMapboxInjectionStore === dbxMapboxInjectionStore)) {
43
+ // create a new dbxMapboxInjectionStore to use
44
+ const injector = Injector.create({ providers: [{ provide: DbxMapboxInjectionStore }], parent: parentInjector });
45
+ dbxMapboxInjectionStore = injector.get(DbxMapboxInjectionStore);
46
+ }
47
+ return dbxMapboxInjectionStore;
48
+ },
49
+ deps: [Injector, [new Optional(), DbxMapboxInjectionStoreProviderBlock], [new Optional(), new SkipSelf(), DbxMapboxInjectionStore]]
50
+ };
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmluamVjdGlvbi5zdG9yZS5wcm92aWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3guaW5qZWN0aW9uLnN0b3JlLnByb3ZpZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBWSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUVuRTs7R0FFRztBQUVILE1BQU0sT0FBTyxvQ0FBb0M7SUFDL0MsWUFBaUMsdUJBQWdEO1FBQWhELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFBRyxDQUFDOztrSUFEMUUsb0NBQW9DO3NJQUFwQyxvQ0FBb0M7NEZBQXBDLG9DQUFvQztrQkFEaEQsVUFBVTs7MEJBRUksUUFBUTs7QUFPdkIsTUFBTSxPQUFPLDhDQUE4Qzs7NElBQTlDLDhDQUE4QztnSUFBOUMsOENBQThDLGlFQUY5QyxDQUFDLG9DQUFvQyxDQUFDOzRGQUV0Qyw4Q0FBOEM7a0JBSjFELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdDQUF3QztvQkFDbEQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7aUJBQ2xEOztBQUdEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxnREFBZ0Q7SUFDOUQsT0FBTztRQUNMLE9BQU8sRUFBRSx1QkFBdUI7UUFDaEMsVUFBVSxFQUFFLENBQUMsY0FBd0IsRUFBRSxxQ0FBNEUsRUFBRSx1QkFBaUQsRUFBRSxFQUFFO1lBQ3hLLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLHVCQUF1QixJQUFJLHFDQUFxQyxJQUFJLElBQUksSUFBSSxxQ0FBcUMsQ0FBQyx1QkFBdUIsS0FBSyx1QkFBdUIsQ0FBQyxFQUFFO2dCQUN2TSw4Q0FBOEM7Z0JBQzlDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQ2hILHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQzthQUNqRTtZQUVELE9BQU8sdUJBQXVCLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsb0NBQW9DLENBQUMsRUFBRSxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0tBQ3BJLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwsIFByb3ZpZGVyLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94SW5qZWN0aW9uU3RvcmUgfSBmcm9tICcuL21hcGJveC5pbmplY3Rpb24uc3RvcmUnO1xuXG4vKipcbiAqIFRva2VuIHVzZWQgYnkgcHJvdmlkZU1hcGJveEluamVjdGlvblN0b3JlSWZEb2VzTm90RXhpc3QoKSB0byBwcmV2ZW50IGluamVjdGluZyBhIHBhcmVudCBEYnhNYXBib3hJbmplY3Rpb25TdG9yZSBpbnRvIHRoZSBjaGlsZCB2aWV3LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGJ4TWFwYm94SW5qZWN0aW9uU3RvcmVQcm92aWRlckJsb2NrIHtcbiAgY29uc3RydWN0b3IoQFNraXBTZWxmKCkgcmVhZG9ubHkgZGJ4TWFwYm94SW5qZWN0aW9uU3RvcmU6IERieE1hcGJveEluamVjdGlvblN0b3JlKSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4TWFwYm94SW5qZWN0aW9uU3RvcmVQYXJlbnRCbG9ja2VyXScsXG4gIHByb3ZpZGVyczogW0RieE1hcGJveEluamVjdGlvblN0b3JlUHJvdmlkZXJCbG9ja11cbn0pXG5leHBvcnQgY2xhc3MgRGJ4TWFwYm94SW5qZWN0aW9uU3RvcmVJbmplY3Rpb25CbG9ja0RpcmVjdGl2ZSB7fVxuXG4vKipcbiAqIENyZWF0ZXMgYSBQcm92aWRlciB0aGF0IGluaXRpYWxpemVzIGEgbmV3IERieE1hcGJveEluamVjdGlvblN0b3JlIGlmIGEgcGFyZW50IGRvZXMgbm90IGV4aXN0LlxuICpcbiAqIElmIGEgRGJ4TWFwYm94SW5qZWN0aW9uU3RvcmVJbmplY3Rpb25CbG9jayBpcyBhdmFpbGFibGUgaW4gdGhlIGNvbnRleHQsIGFuZCByZWZlcmVuY2VzIHRoZSBzYW1lIGRieE1hcGJveEluamVjdGlvblN0b3JlIHRoYXQgaXMgYXR0ZW1wdGluZyB0byBiZSBpbmplY3RlZCwgYSBuZXcgRGJ4TWFwYm94SW5qZWN0aW9uU3RvcmUgaXMgY3JlYXRlZC5cbiAqXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU1hcGJveEluamVjdGlvblN0b3JlSWZQYXJlbnRJc1VuYXZhaWxhYmxlKCk6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBEYnhNYXBib3hJbmplY3Rpb25TdG9yZSxcbiAgICB1c2VGYWN0b3J5OiAocGFyZW50SW5qZWN0b3I6IEluamVjdG9yLCBkYnhNYXBib3hJbmplY3Rpb25TdG9yZUluamVjdGlvbkJsb2NrPzogRGJ4TWFwYm94SW5qZWN0aW9uU3RvcmVQcm92aWRlckJsb2NrLCBkYnhNYXBib3hJbmplY3Rpb25TdG9yZT86IERieE1hcGJveEluamVjdGlvblN0b3JlKSA9PiB7XG4gICAgICBpZiAoIWRieE1hcGJveEluamVjdGlvblN0b3JlIHx8IChkYnhNYXBib3hJbmplY3Rpb25TdG9yZSAmJiBkYnhNYXBib3hJbmplY3Rpb25TdG9yZUluamVjdGlvbkJsb2NrICE9IG51bGwgJiYgZGJ4TWFwYm94SW5qZWN0aW9uU3RvcmVJbmplY3Rpb25CbG9jay5kYnhNYXBib3hJbmplY3Rpb25TdG9yZSA9PT0gZGJ4TWFwYm94SW5qZWN0aW9uU3RvcmUpKSB7XG4gICAgICAgIC8vIGNyZWF0ZSBhIG5ldyBkYnhNYXBib3hJbmplY3Rpb25TdG9yZSB0byB1c2VcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoeyBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IERieE1hcGJveEluamVjdGlvblN0b3JlIH1dLCBwYXJlbnQ6IHBhcmVudEluamVjdG9yIH0pO1xuICAgICAgICBkYnhNYXBib3hJbmplY3Rpb25TdG9yZSA9IGluamVjdG9yLmdldChEYnhNYXBib3hJbmplY3Rpb25TdG9yZSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYnhNYXBib3hJbmplY3Rpb25TdG9yZTtcbiAgICB9LFxuICAgIGRlcHM6IFtJbmplY3RvciwgW25ldyBPcHRpb25hbCgpLCBEYnhNYXBib3hJbmplY3Rpb25TdG9yZVByb3ZpZGVyQmxvY2tdLCBbbmV3IE9wdGlvbmFsKCksIG5ldyBTa2lwU2VsZigpLCBEYnhNYXBib3hJbmplY3Rpb25TdG9yZV1dXG4gIH07XG59XG4iXX0=
@@ -76,11 +76,11 @@ export class DbxMapboxMarkerComponent {
76
76
  return style;
77
77
  }
78
78
  get presentation() {
79
- return this._marker.presentation ?? 'normal';
79
+ return this._marker?.presentation ?? 'normal';
80
80
  }
81
81
  get presentationClasses() {
82
82
  const presentation = this.presentation;
83
- const markerClasses = this._marker.markerClasses;
83
+ const markerClasses = this._marker?.markerClasses;
84
84
  let cssClasses = '';
85
85
  switch (presentation) {
86
86
  case 'chip':
@@ -95,7 +95,7 @@ export class DbxMapboxMarkerComponent {
95
95
  cssClasses += ' dbx-mapbox-marker-no-icon';
96
96
  }
97
97
  if (markerClasses) {
98
- cssClasses += markerClasses;
98
+ cssClasses += ` markerClasses`;
99
99
  }
100
100
  return cssClasses;
101
101
  }
@@ -106,7 +106,7 @@ export class DbxMapboxMarkerComponent {
106
106
  DbxMapboxMarkerComponent._latLngPoint = latLngPointFunction({ wrap: true });
107
107
  DbxMapboxMarkerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxMarkerComponent, deps: [{ token: i1.DbxMapboxChangeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
108
108
  DbxMapboxMarkerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxMapboxMarkerComponent, selector: "dbx-mapbox-marker", inputs: { marker: "marker" }, ngImport: i0, template: `
109
- <mgl-marker [lngLat]="latLng">
109
+ <mgl-marker *ngIf="marker" [lngLat]="latLng">
110
110
  <dbx-anchor [anchor]="anchor">
111
111
  <div class="dbx-mapbox-marker" [ngClass]="presentationClasses">
112
112
  <div class="dbx-mapbox-marker-icon-content" [ngStyle]="style">
@@ -120,7 +120,7 @@ DbxMapboxMarkerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxMarkerComponent, decorators: [{
121
121
  type: Component,
122
122
  args: [{ selector: 'dbx-mapbox-marker', template: `
123
- <mgl-marker [lngLat]="latLng">
123
+ <mgl-marker *ngIf="marker" [lngLat]="latLng">
124
124
  <dbx-anchor [anchor]="anchor">
125
125
  <div class="dbx-mapbox-marker" [ngClass]="presentationClasses">
126
126
  <div class="dbx-mapbox-marker-icon-content" [ngStyle]="style">
@@ -136,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
136
136
  }] }]; }, propDecorators: { marker: [{
137
137
  type: Input
138
138
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5tYXJrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFvQmpFLE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBeUMsdUJBQWdEO1FBQWhELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFBRyxDQUFDO0lBRTdGLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBdUI7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENB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QUFFLElBQUksRUFBRSxDQUFDLENBQUM7c0hBRHZELHdCQUF3QjswR0FBeEIsd0JBQXdCLHVGQWZ6Qjs7Ozs7Ozs7Ozs7R0FXVDs0RkFJVSx3QkFBd0I7a0JBakJwQyxTQUFTOytCQUNFLG1CQUFtQixZQUNuQjs7Ozs7Ozs7Ozs7R0FXVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTs7MEJBT2xDLFFBQVE7NENBR2pCLE1BQU07c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRWYWx1ZUZyb21HZXR0ZXIsIGxhdExuZ1BvaW50RnVuY3Rpb24gfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieE1hcGJveENoYW5nZVNlcnZpY2UgfSBmcm9tICcuL21hcGJveC5jaGFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhNYXBib3hNYXJrZXIgfSBmcm9tICcuL21hcGJveC5tYXJrZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtbWFwYm94LW1hcmtlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1nbC1tYXJrZXIgW2xuZ0xhdF09XCJsYXRMbmdcIj5cbiAgICAgIDxkYngtYW5jaG9yIFthbmNob3JdPVwiYW5jaG9yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LW1hcmtlclwiIFtuZ0NsYXNzXT1cInByZXNlbnRhdGlvbkNsYXNzZXNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LW1hcGJveC1tYXJrZXItaWNvbi1jb250ZW50XCIgW25nU3R5bGVdPVwic3R5bGVcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25cIj57eyBpY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LW1hcGJveC1tYXJrZXItbGFiZWwgZGJ4LW91dGxpbmVkLXRleHRcIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2RieC1hbmNob3I+XG4gICAgPC9tZ2wtbWFya2VyPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9tYXBib3gubWFya2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveE1hcmtlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgc3RhdGljIF9sYXRMbmdQb2ludCA9IGxhdExuZ1BvaW50RnVuY3Rpb24oeyB3cmFwOiB0cnVlIH0pO1xuXG4gIHByaXZhdGUgX21hcmtlciE6IERieE1hcGJveE1hcmtlcjtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9kYnhNYXBib3hDaGFuZ2VTZXJ2aWNlPzogRGJ4TWFwYm94Q2hhbmdlU2VydmljZSkge31cblxuICBASW5wdXQoKVxuICBnZXQgbWFya2VyKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXJrZXI7XG4gIH1cblxuICBzZXQgbWFya2VyKG1hcmtlcjogRGJ4TWFwYm94TWFya2VyKSB7XG4gICAgdGhpcy5fbWFya2VyID0gbWFya2VyO1xuICB9XG5cbiAgZ2V0IGxhdExuZygpIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuX21hcmtlcj8ubGF0TG5nO1xuICAgIHJldHVybiBpbnB1dCA/IERieE1hcGJveE1hcmtlckNvbXBvbmVudC5fbGF0TG5nUG9pbnQoaW5wdXQpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGFuY2hvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5hbmNob3I7XG4gIH1cblxuICBnZXQgbGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtlcj8ubGFiZWw7XG4gIH1cblxuICBnZXQgaWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5pY29uO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCkge1xuICAgIGxldCB3aWR0aCA9IDA7XG4gICAgbGV0IGhlaWdodCA9IDA7XG5cbiAgICBjb25zdCBzaXplID0gdGhpcy5fbWFya2VyPy5zaXplIHx8ICdtZWRpdW0nO1xuXG4gICAgc3dpdGNoICh0aGlzLnByZXNlbnRhdGlvbikge1xuICAgICAgY2FzZSAnbm9ybWFsJzpcbiAgICAgICAgaWYgKHR5cGVvZiBzaXplID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHdpZHRoID0gc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgICAgICAgd2lkdGggPSAxODtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICAgICAgICB3aWR0aCA9IDI0O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgICAgICAgd2lkdGggPSAzMjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0YWxsJzpcbiAgICAgICAgICAgICAgd2lkdGggPSAyNDtcbiAgICAgICAgICAgICAgaGVpZ2h0ID0gMzI7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoIWhlaWdodCkge1xuICAgICAgaGVpZ2h0ID0gd2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3QgaW1hZ2VJbnB1dCA9IHRoaXMuX21hcmtlcj8uaW1hZ2U7XG4gICAgY29uc3QgaW1hZ2UgPSBpbWFnZUlucHV0ID8gKHR5cGVvZiBpbWFnZUlucHV0ID09PSAnc3RyaW5nJyA/IGltYWdlSW5wdXQgOiBnZXRWYWx1ZUZyb21HZXR0ZXIoaW1hZ2VJbnB1dCwgd2lkdGgpKSA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHN0eWxlOiBhbnkgPSB7XG4gICAgICAuLi50aGlzLl9tYXJrZXI/LnN0eWxlLFxuICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnOiBpbWFnZVxuICAgIH07XG5cbiAgICBpZiAod2lkdGggJiYgaGVpZ2h0KSB7XG4gICAgICBzdHlsZS53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICAgIHN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gICAgICBzdHlsZVsnZm9udC1zaXplJ10gPSB3aWR0aCArICdweCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgZ2V0IHByZXNlbnRhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyLnByZXNlbnRhdGlvbiA/PyAnbm9ybWFsJztcbiAgfVxuXG4gIGdldCBwcmVzZW50YXRpb25DbGFzc2VzKCkge1xuICAgIGNvbnN0IHByZXNlbnRhdGlvbiA9IHRoaXMucHJlc2VudGF0aW9uO1xuICAgIGNvbnN0IG1hcmtlckNsYXNzZXMgPSB0aGlzLl9tYXJrZXIubWFya2VyQ2xhc3NlcztcblxuICAgIGxldCBjc3NDbGFzc2VzOiBzdHJpbmcgPSAnJztcblxuICAgIHN3aXRjaCAocHJlc2VudGF0aW9uKSB7XG4gICAgICBjYXNlICdjaGlwJzpcbiAgICAgIGNhc2UgJ2NoaXAtc21hbGwnOlxuICAgICAgICBjc3NDbGFzc2VzID0gJ2RieC1tYXBib3gtbWFya2VyLWNoaXAgZGJ4LWNoaXAgbWF0LXN0YW5kYXJkLWNoaXAgZGJ4LWJnJztcblxuICAgICAgICBpZiAocHJlc2VudGF0aW9uID09PSAnY2hpcC1zbWFsbCcpIHtcbiAgICAgICAgICBjc3NDbGFzc2VzICs9ICcgZGJ4LWNoaXAtc21hbGwnO1xuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmljb24pIHtcbiAgICAgIGNzc0NsYXNzZXMgKz0gJyBkYngtbWFwYm94LW1hcmtlci1uby1pY29uJztcbiAgICB9XG5cbiAgICBpZiAobWFya2VyQ2xhc3Nlcykge1xuICAgICAgY3NzQ2xhc3NlcyArPSBtYXJrZXJDbGFzc2VzO1xuICAgIH1cblxuICAgIHJldHVybiBjc3NDbGFzc2VzO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGJ4TWFwYm94Q2hhbmdlU2VydmljZT8uZW1pdE1hcmtlckRlc3Ryb3llZCgpO1xuICB9XG59XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5tYXJrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFvQmpFLE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsWUFBeUMsdUJBQWdEO1FBQWhELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFBRyxDQUFDO0lBRTdGLElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBOEI7UUFDdkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENB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LEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztzSEFEdkQsd0JBQXdCOzBHQUF4Qix3QkFBd0IsdUZBZnpCOzs7Ozs7Ozs7OztHQVdUOzRGQUlVLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0UsbUJBQW1CLFlBQ25COzs7Ozs7Ozs7OztHQVdULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFPbEMsUUFBUTs0Q0FHakIsTUFBTTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFZhbHVlRnJvbUdldHRlciwgbGF0TG5nUG9pbnRGdW5jdGlvbiwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieE1hcGJveENoYW5nZVNlcnZpY2UgfSBmcm9tICcuL21hcGJveC5jaGFuZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhNYXBib3hNYXJrZXIgfSBmcm9tICcuL21hcGJveC5tYXJrZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtbWFwYm94LW1hcmtlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG1nbC1tYXJrZXIgKm5nSWY9XCJtYXJrZXJcIiBbbG5nTGF0XT1cImxhdExuZ1wiPlxuICAgICAgPGRieC1hbmNob3IgW2FuY2hvcl09XCJhbmNob3JcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1tYXBib3gtbWFya2VyXCIgW25nQ2xhc3NdPVwicHJlc2VudGF0aW9uQ2xhc3Nlc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LW1hcmtlci1pY29uLWNvbnRlbnRcIiBbbmdTdHlsZV09XCJzdHlsZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiPnt7IGljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LW1hcmtlci1sYWJlbCBkYngtb3V0bGluZWQtdGV4dFwiICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGJ4LWFuY2hvcj5cbiAgICA8L21nbC1tYXJrZXI+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL21hcGJveC5tYXJrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGJ4TWFwYm94TWFya2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBzdGF0aWMgX2xhdExuZ1BvaW50ID0gbGF0TG5nUG9pbnRGdW5jdGlvbih7IHdyYXA6IHRydWUgfSk7XG5cbiAgcHJpdmF0ZSBfbWFya2VyOiBNYXliZTxEYnhNYXBib3hNYXJrZXI+O1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX2RieE1hcGJveENoYW5nZVNlcnZpY2U/OiBEYnhNYXBib3hDaGFuZ2VTZXJ2aWNlKSB7fVxuXG4gIEBJbnB1dCgpXG4gIGdldCBtYXJrZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtlcjtcbiAgfVxuXG4gIHNldCBtYXJrZXIobWFya2VyOiBNYXliZTxEYnhNYXBib3hNYXJrZXI+KSB7XG4gICAgdGhpcy5fbWFya2VyID0gbWFya2VyO1xuICB9XG5cbiAgZ2V0IGxhdExuZygpIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuX21hcmtlcj8ubGF0TG5nO1xuICAgIHJldHVybiBpbnB1dCA/IERieE1hcGJveE1hcmtlckNvbXBvbmVudC5fbGF0TG5nUG9pbnQoaW5wdXQpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IGFuY2hvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5hbmNob3I7XG4gIH1cblxuICBnZXQgbGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21hcmtlcj8ubGFiZWw7XG4gIH1cblxuICBnZXQgaWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5pY29uO1xuICB9XG5cbiAgZ2V0IHN0eWxlKCkge1xuICAgIGxldCB3aWR0aCA9IDA7XG4gICAgbGV0IGhlaWdodCA9IDA7XG5cbiAgICBjb25zdCBzaXplID0gdGhpcy5fbWFya2VyPy5zaXplIHx8ICdtZWRpdW0nO1xuXG4gICAgc3dpdGNoICh0aGlzLnByZXNlbnRhdGlvbikge1xuICAgICAgY2FzZSAnbm9ybWFsJzpcbiAgICAgICAgaWYgKHR5cGVvZiBzaXplID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHdpZHRoID0gc2l6ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzd2l0Y2ggKHNpemUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgICAgICAgICAgd2lkdGggPSAxODtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICAgICAgICB3aWR0aCA9IDI0O1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgICAgICAgd2lkdGggPSAzMjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd0YWxsJzpcbiAgICAgICAgICAgICAgd2lkdGggPSAyNDtcbiAgICAgICAgICAgICAgaGVpZ2h0ID0gMzI7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoIWhlaWdodCkge1xuICAgICAgaGVpZ2h0ID0gd2lkdGg7XG4gICAgfVxuXG4gICAgY29uc3QgaW1hZ2VJbnB1dCA9IHRoaXMuX21hcmtlcj8uaW1hZ2U7XG4gICAgY29uc3QgaW1hZ2UgPSBpbWFnZUlucHV0ID8gKHR5cGVvZiBpbWFnZUlucHV0ID09PSAnc3RyaW5nJyA/IGltYWdlSW5wdXQgOiBnZXRWYWx1ZUZyb21HZXR0ZXIoaW1hZ2VJbnB1dCwgd2lkdGgpKSA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHN0eWxlOiBhbnkgPSB7XG4gICAgICAuLi50aGlzLl9tYXJrZXI/LnN0eWxlLFxuICAgICAgJ2JhY2tncm91bmQtaW1hZ2UnOiBpbWFnZVxuICAgIH07XG5cbiAgICBpZiAod2lkdGggJiYgaGVpZ2h0KSB7XG4gICAgICBzdHlsZS53aWR0aCA9IHdpZHRoICsgJ3B4JztcbiAgICAgIHN0eWxlLmhlaWdodCA9IGhlaWdodCArICdweCc7XG4gICAgICBzdHlsZVsnZm9udC1zaXplJ10gPSB3aWR0aCArICdweCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgZ2V0IHByZXNlbnRhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2VyPy5wcmVzZW50YXRpb24gPz8gJ25vcm1hbCc7XG4gIH1cblxuICBnZXQgcHJlc2VudGF0aW9uQ2xhc3NlcygpIHtcbiAgICBjb25zdCBwcmVzZW50YXRpb24gPSB0aGlzLnByZXNlbnRhdGlvbjtcbiAgICBjb25zdCBtYXJrZXJDbGFzc2VzID0gdGhpcy5fbWFya2VyPy5tYXJrZXJDbGFzc2VzO1xuXG4gICAgbGV0IGNzc0NsYXNzZXM6IHN0cmluZyA9ICcnO1xuXG4gICAgc3dpdGNoIChwcmVzZW50YXRpb24pIHtcbiAgICAgIGNhc2UgJ2NoaXAnOlxuICAgICAgY2FzZSAnY2hpcC1zbWFsbCc6XG4gICAgICAgIGNzc0NsYXNzZXMgPSAnZGJ4LW1hcGJveC1tYXJrZXItY2hpcCBkYngtY2hpcCBtYXQtc3RhbmRhcmQtY2hpcCBkYngtYmcnO1xuXG4gICAgICAgIGlmIChwcmVzZW50YXRpb24gPT09ICdjaGlwLXNtYWxsJykge1xuICAgICAgICAgIGNzc0NsYXNzZXMgKz0gJyBkYngtY2hpcC1zbWFsbCc7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuaWNvbikge1xuICAgICAgY3NzQ2xhc3NlcyArPSAnIGRieC1tYXBib3gtbWFya2VyLW5vLWljb24nO1xuICAgIH1cblxuICAgIGlmIChtYXJrZXJDbGFzc2VzKSB7XG4gICAgICBjc3NDbGFzc2VzICs9IGAgbWFya2VyQ2xhc3Nlc2A7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNzc0NsYXNzZXM7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kYnhNYXBib3hDaGFuZ2VTZXJ2aWNlPy5lbWl0TWFya2VyRGVzdHJveWVkKCk7XG4gIH1cbn1cbiJdfQ==
@@ -13,4 +13,4 @@ export function dbxMapboxColoredDotStyle(background, color) {
13
13
  'border-radius': '50%'
14
14
  };
15
15
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvbWFwYm94L3NyYy9saWIvbWFwYm94Lm1hcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5REE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFVBQWtCLEVBQUUsS0FBYztJQUN6RSxPQUFPO1FBQ0wsVUFBVTtRQUNWLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxFQUFFLEtBQUssSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNoRCxlQUFlLEVBQUUsS0FBSztLQUN2QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWNrYWJsZUFuY2hvciB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IFBpeGVscywgRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0LCBMYXRMbmdJbnB1dFJlZiwgVW5pcXVlTW9kZWwgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBEYnhNYXBib3hNYXJrZXJTaXplLiBOdW1iZXJzIGFyZSBjb252ZXJ0ZWQgdG8gcGl4ZWxzLlxuICovXG5leHBvcnQgdHlwZSBEYnhNYXBib3hNYXJrZXJTaXplID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd0YWxsJyB8IFBpeGVscztcblxuLyoqXG4gKiBQcmVzZW50YXRpb24gc3R5bGUuXG4gKlxuICogLSBub3JtYWw6IFRleHQgdW5kZXIgZG90IHdpdGggb3B0aW9uYWwgaWNvbiB3aXRoaW4gZG90XG4gKiAtIGNoaXA6IFwiZGJ4LWNoaXBcIi1saWtlIHByZXNlbnRhdGlvblxuICovXG5leHBvcnQgdHlwZSBEYnhNYXBib3hNYXJrZXJQcmVzZW50YXRpb24gPSAnbm9ybWFsJyB8ICdjaGlwJyB8ICdjaGlwLXNtYWxsJztcblxuZXhwb3J0IHR5cGUgRGJ4TWFwYm94TWFya2VyID0gVW5pcXVlTW9kZWwgJlxuICBMYXRMbmdJbnB1dFJlZiAmIHtcbiAgICAvKipcbiAgICAgKiBQcmVzZW50YXRpb24gc3R5bGUuIERlZmF1bHRzIHRvIFwibm9ybWFsXCJcbiAgICAgKi9cbiAgICBwcmVzZW50YXRpb24/OiBEYnhNYXBib3hNYXJrZXJQcmVzZW50YXRpb247XG4gICAgLyoqXG4gICAgICogQWRkaXRpb25hbCBjbGFzc2VzIHRvIGFkZCB0byB0aGUgbWFya2VyLlxuICAgICAqL1xuICAgIG1hcmtlckNsYXNzZXM/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogaWNvblxuICAgICAqL1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogbGFiZWxcbiAgICAgKi9cbiAgICBsYWJlbD86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBJbWFnZSBVUkxcbiAgICAgKi9cbiAgICBpbWFnZT86IHN0cmluZyB8IEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dDxzdHJpbmcsIFBpeGVscz47XG4gICAgLyoqXG4gICAgICogU2l6ZSBvZiB0aGUgbWFya2VyLlxuICAgICAqL1xuICAgIHNpemU/OiBEYnhNYXBib3hNYXJrZXJTaXplO1xuICAgIC8qKlxuICAgICAqIEFuY2hvclxuICAgICAqL1xuICAgIGFuY2hvcj86IENsaWNrYWJsZUFuY2hvcjtcbiAgICAvKipcbiAgICAgKiBBZGRpdGlvbmFsIGNvbnRlbnQgc3R5bGluZ1xuICAgICAqL1xuICAgIHN0eWxlPzogb2JqZWN0O1xuICB9O1xuXG4vKipcbiAqIE1hcEZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhlIGlucHV0IGRhdGEgdG8gYSBEYnhNYXBib3hNYXJrZXIuXG4gKi9cbmV4cG9ydCB0eXBlIERieE1hcGJveE1hcmtlckZhY3Rvcnk8VD4gPSAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IERieE1hcGJveE1hcmtlcjtcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBzdHlsaW5nIGZvciByZW5kZXJpbmcgYSBkb3QuXG4gKlxuICogQHBhcmFtIGJhY2tncm91bmRcbiAqIEBwYXJhbSBjb2xvclxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRieE1hcGJveENvbG9yZWREb3RTdHlsZShiYWNrZ3JvdW5kOiBzdHJpbmcsIGNvbG9yPzogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgYmFja2dyb3VuZCxcbiAgICBwYWRkaW5nOiAnMnB4JyxcbiAgICBjb2xvcjogY29sb3IgPz8gYmFja2dyb3VuZCA/ICd3aGl0ZScgOiB1bmRlZmluZWQsXG4gICAgJ2JvcmRlci1yYWRpdXMnOiAnNTAlJ1xuICB9O1xufVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1hcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvbWFwYm94L3NyYy9saWIvbWFwYm94Lm1hcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwREE7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFVBQWtCLEVBQUUsS0FBYztJQUN6RSxPQUFPO1FBQ0wsVUFBVTtRQUNWLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxFQUFFLEtBQUssSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNoRCxlQUFlLEVBQUUsS0FBSztLQUN2QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWNrYWJsZUFuY2hvciB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IFBpeGVscywgRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0LCBMYXRMbmdJbnB1dFJlZiwgVW5pcXVlTW9kZWwgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBEYnhNYXBib3hNYXJrZXJTaXplLiBOdW1iZXJzIGFyZSBjb252ZXJ0ZWQgdG8gcGl4ZWxzLlxuICovXG5leHBvcnQgdHlwZSBEYnhNYXBib3hNYXJrZXJTaXplID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd0YWxsJyB8IFBpeGVscztcblxuLyoqXG4gKiBQcmVzZW50YXRpb24gc3R5bGUuXG4gKlxuICogLSBub3JtYWw6IFRleHQgdW5kZXIgZG90IHdpdGggb3B0aW9uYWwgaWNvbiB3aXRoaW4gZG90XG4gKiAtIGNoaXA6IFwiZGJ4LWNoaXBcIi1saWtlIHByZXNlbnRhdGlvblxuICovXG5leHBvcnQgdHlwZSBEYnhNYXBib3hNYXJrZXJQcmVzZW50YXRpb24gPSAnbm9ybWFsJyB8ICdjaGlwJyB8ICdjaGlwLXNtYWxsJztcblxuZXhwb3J0IGludGVyZmFjZSBEYnhNYXBib3hNYXJrZXJEaXNwbGF5Q29uZmlnIHtcbiAgLyoqXG4gICAqIFByZXNlbnRhdGlvbiBzdHlsZS4gRGVmYXVsdHMgdG8gXCJub3JtYWxcIlxuICAgKi9cbiAgcHJlc2VudGF0aW9uPzogRGJ4TWFwYm94TWFya2VyUHJlc2VudGF0aW9uO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBjbGFzc2VzIHRvIGFkZCB0byB0aGUgbWFya2VyLlxuICAgKi9cbiAgbWFya2VyQ2xhc3Nlcz86IHN0cmluZztcbiAgLyoqXG4gICAqIGljb25cbiAgICovXG4gIGljb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBsYWJlbFxuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbWFnZSBVUkxcbiAgICovXG4gIGltYWdlPzogc3RyaW5nIHwgRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0PHN0cmluZywgUGl4ZWxzPjtcbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIG1hcmtlci5cbiAgICovXG4gIHNpemU/OiBEYnhNYXBib3hNYXJrZXJTaXplO1xuICAvKipcbiAgICogQW5jaG9yXG4gICAqL1xuICBhbmNob3I/OiBDbGlja2FibGVBbmNob3I7XG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGNvbnRlbnQgc3R5bGluZ1xuICAgKi9cbiAgc3R5bGU/OiBvYmplY3Q7XG59XG5cbmV4cG9ydCB0eXBlIERieE1hcGJveE1hcmtlciA9IFVuaXF1ZU1vZGVsICYgTGF0TG5nSW5wdXRSZWYgJiBEYnhNYXBib3hNYXJrZXJEaXNwbGF5Q29uZmlnO1xuXG4vKipcbiAqIE1hcEZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhlIGlucHV0IGRhdGEgdG8gYSBEYnhNYXBib3hNYXJrZXIuXG4gKi9cbmV4cG9ydCB0eXBlIERieE1hcGJveE1hcmtlckZhY3Rvcnk8VD4gPSAodmFsdWU6IFQsIGluZGV4OiBudW1iZXIpID0+IERieE1hcGJveE1hcmtlcjtcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBzdHlsaW5nIGZvciByZW5kZXJpbmcgYSBkb3QuXG4gKlxuICogQHBhcmFtIGJhY2tncm91bmRcbiAqIEBwYXJhbSBjb2xvclxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRieE1hcGJveENvbG9yZWREb3RTdHlsZShiYWNrZ3JvdW5kOiBzdHJpbmcsIGNvbG9yPzogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgYmFja2dyb3VuZCxcbiAgICBwYWRkaW5nOiAnMnB4JyxcbiAgICBjb2xvcjogY29sb3IgPz8gYmFja2dyb3VuZCA/ICd3aGl0ZScgOiB1bmRlZmluZWQsXG4gICAgJ2JvcmRlci1yYWRpdXMnOiAnNTAlJ1xuICB9O1xufVxuIl19
@@ -15,12 +15,14 @@ import { DbxMapboxMarkerComponent } from './mapbox.marker.component';
15
15
  import { NgxMapboxGLModule } from 'ngx-mapbox-gl';
16
16
  import { DbxRouterAnchorModule } from '@dereekb/dbx-web';
17
17
  import { DbxMapboxMarkersComponent } from './mapbox.markers.component';
18
+ import { DbxMapboxInjectionComponent } from './mapbox.injection.component';
18
19
  import * as i0 from "@angular/core";
19
20
  const declarations = [
20
21
  //
21
22
  DbxMapboxMapDirective,
22
23
  DbxMapboxLayoutComponent,
23
24
  DbxMapboxLayoutDrawerComponent,
25
+ DbxMapboxInjectionComponent,
24
26
  DbxMapboxMenuComponent,
25
27
  DbxMapboxMarkerComponent,
26
28
  DbxMapboxMarkersComponent,
@@ -45,6 +47,7 @@ DbxMapboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
45
47
  DbxMapboxMapDirective,
46
48
  DbxMapboxLayoutComponent,
47
49
  DbxMapboxLayoutDrawerComponent,
50
+ DbxMapboxInjectionComponent,
48
51
  DbxMapboxMenuComponent,
49
52
  DbxMapboxMarkerComponent,
50
53
  DbxMapboxMarkersComponent,
@@ -62,6 +65,7 @@ DbxMapboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
62
65
  DbxMapboxMapDirective,
63
66
  DbxMapboxLayoutComponent,
64
67
  DbxMapboxLayoutDrawerComponent,
68
+ DbxMapboxInjectionComponent,
65
69
  DbxMapboxMenuComponent,
66
70
  DbxMapboxMarkerComponent,
67
71
  DbxMapboxMarkersComponent,
@@ -94,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
94
98
  exports: declarations
95
99
  }]
96
100
  }] });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvbWFwYm94L3NyYy9saWIvbWFwYm94Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUV2RSxNQUFNLFlBQVksR0FBRztJQUNuQixFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLHdCQUF3QjtJQUN4Qiw4QkFBOEI7SUFDOUIsc0JBQXNCO0lBQ3RCLHdCQUF3QjtJQUN4Qix5QkFBeUI7SUFDekIsd0NBQXdDO0NBQ3pDLENBQUM7QUFpQkYsTUFBTSxPQUFPLGVBQWU7SUFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUF1QjtRQUNwQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixRQUFRLEVBQUUsTUFBTTtpQkFDakI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzs2R0FYVSxlQUFlOzhHQUFmLGVBQWU7UUF6QjFCLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsd0JBQXdCO1FBQ3hCLDhCQUE4QjtRQUM5QixzQkFBc0I7UUFDdEIsd0JBQXdCO1FBQ3hCLHlCQUF5QjtRQUN6Qix3Q0FBd0M7UUFLdEMsRUFBRTtRQUNGLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsMkJBQTJCO1FBQzNCLGVBQWU7UUFDZixhQUFhO1FBQ2Isd0JBQXdCO1FBQ3hCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFwQm5CLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsd0JBQXdCO1FBQ3hCLDhCQUE4QjtRQUM5QixzQkFBc0I7UUFDdEIsd0JBQXdCO1FBQ3hCLHlCQUF5QjtRQUN6Qix3Q0FBd0M7OEdBa0I3QixlQUFlO1FBYnhCLEVBQUU7UUFDRixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLDJCQUEyQjtRQUMzQixlQUFlO1FBQ2YsYUFBYTtRQUNiLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsaUJBQWlCOzRGQUtSLGVBQWU7a0JBZjNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLEVBQUU7d0JBQ0YsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLDJCQUEyQjt3QkFDM0IsZUFBZTt3QkFDZixhQUFhO3dCQUNiLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixpQkFBaUI7cUJBQ2xCO29CQUNELFlBQVk7b0JBQ1osT0FBTyxFQUFFLFlBQVk7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhNYXBib3hNYXBEaXJlY3RpdmUgfSBmcm9tICcuL21hcGJveC5zdG9yZS5tYXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IERieE1hcGJveENvbmZpZyB9IGZyb20gJy4vbWFwYm94LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9tYXBib3gubGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBEYnhNYXBib3hMYXlvdXREcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL21hcGJveC5sYXlvdXQuZHJhd2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnRNb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQW5ndWxhclJlc2l6ZUV2ZW50TW9kdWxlIH0gZnJvbSAnYW5ndWxhci1yZXNpemUtZXZlbnQnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWVudUNvbXBvbmVudCB9IGZyb20gJy4vbWFwYm94Lm1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IERieE1hcGJveE1hcFN0b3JlSW5qZWN0aW9uQmxvY2tEaXJlY3RpdmUgfSBmcm9tICcuL21hcGJveC5zdG9yZS5wcm92aWRlJztcbmltcG9ydCB7IERieE1hcGJveE1hcmtlckNvbXBvbmVudCB9IGZyb20gJy4vbWFwYm94Lm1hcmtlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4TWFwYm94R0xNb2R1bGUgfSBmcm9tICduZ3gtbWFwYm94LWdsJztcbmltcG9ydCB7IERieFJvdXRlckFuY2hvck1vZHVsZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFya2Vyc0NvbXBvbmVudCB9IGZyb20gJy4vbWFwYm94Lm1hcmtlcnMuY29tcG9uZW50JztcblxuY29uc3QgZGVjbGFyYXRpb25zID0gW1xuICAvL1xuICBEYnhNYXBib3hNYXBEaXJlY3RpdmUsXG4gIERieE1hcGJveExheW91dENvbXBvbmVudCxcbiAgRGJ4TWFwYm94TGF5b3V0RHJhd2VyQ29tcG9uZW50LFxuICBEYnhNYXBib3hNZW51Q29tcG9uZW50LFxuICBEYnhNYXBib3hNYXJrZXJDb21wb25lbnQsXG4gIERieE1hcGJveE1hcmtlcnNDb21wb25lbnQsXG4gIERieE1hcGJveE1hcFN0b3JlSW5qZWN0aW9uQmxvY2tEaXJlY3RpdmVcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICAvL1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRTaWRlbmF2TW9kdWxlLFxuICAgIERieEluamVjdGlvbkNvbXBvbmVudE1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBBbmd1bGFyUmVzaXplRXZlbnRNb2R1bGUsXG4gICAgRGJ4Um91dGVyQW5jaG9yTW9kdWxlLFxuICAgIE5neE1hcGJveEdMTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9ucyxcbiAgZXhwb3J0czogZGVjbGFyYXRpb25zXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogRGJ4TWFwYm94Q29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxEYnhNYXBib3hNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IERieE1hcGJveE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRGJ4TWFwYm94Q29uZmlnLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWdcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvbWFwYm94L3NyYy9saWIvbWFwYm94Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUUzRSxNQUFNLFlBQVksR0FBRztJQUNuQixFQUFFO0lBQ0YscUJBQXFCO0lBQ3JCLHdCQUF3QjtJQUN4Qiw4QkFBOEI7SUFDOUIsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0Qix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLHdDQUF3QztDQUN6QyxDQUFDO0FBaUJGLE1BQU0sT0FBTyxlQUFlO0lBQzFCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBdUI7UUFDcEMsT0FBTztZQUNMLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsZUFBZTtvQkFDeEIsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7NkdBWFUsZUFBZTs4R0FBZixlQUFlO1FBMUIxQixFQUFFO1FBQ0YscUJBQXFCO1FBQ3JCLHdCQUF3QjtRQUN4Qiw4QkFBOEI7UUFDOUIsMkJBQTJCO1FBQzNCLHNCQUFzQjtRQUN0Qix3QkFBd0I7UUFDeEIseUJBQXlCO1FBQ3pCLHdDQUF3QztRQUt0QyxFQUFFO1FBQ0YsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQiwyQkFBMkI7UUFDM0IsZUFBZTtRQUNmLGFBQWE7UUFDYix3QkFBd0I7UUFDeEIscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQXJCbkIsRUFBRTtRQUNGLHFCQUFxQjtRQUNyQix3QkFBd0I7UUFDeEIsOEJBQThCO1FBQzlCLDJCQUEyQjtRQUMzQixzQkFBc0I7UUFDdEIsd0JBQXdCO1FBQ3hCLHlCQUF5QjtRQUN6Qix3Q0FBd0M7OEdBa0I3QixlQUFlO1FBYnhCLEVBQUU7UUFDRixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLDJCQUEyQjtRQUMzQixlQUFlO1FBQ2YsYUFBYTtRQUNiLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsaUJBQWlCOzRGQUtSLGVBQWU7a0JBZjNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLEVBQUU7d0JBQ0YsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLDJCQUEyQjt3QkFDM0IsZUFBZTt3QkFDZixhQUFhO3dCQUNiLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3dCQUNyQixpQkFBaUI7cUJBQ2xCO29CQUNELFlBQVk7b0JBQ1osT0FBTyxFQUFFLFlBQVk7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhNYXBib3hNYXBEaXJlY3RpdmUgfSBmcm9tICcuL21hcGJveC5zdG9yZS5tYXAuZGlyZWN0aXZlJztcbmltcG9ydCB7IERieE1hcGJveENvbmZpZyB9IGZyb20gJy4vbWFwYm94LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi9tYXBib3gubGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBEYnhNYXBib3hMYXlvdXREcmF3ZXJDb21wb25lbnQgfSBmcm9tICcuL21hcGJveC5sYXlvdXQuZHJhd2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnRNb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQW5ndWxhclJlc2l6ZUV2ZW50TW9kdWxlIH0gZnJvbSAnYW5ndWxhci1yZXNpemUtZXZlbnQnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWVudUNvbXBvbmVudCB9IGZyb20gJy4vbWFwYm94Lm1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IERieE1hcGJveE1hcFN0b3JlSW5qZWN0aW9uQmxvY2tEaXJlY3RpdmUgfSBmcm9tICcuL21hcGJveC5zdG9yZS5wcm92aWRlJztcbmltcG9ydCB7IERieE1hcGJveE1hcmtlckNvbXBvbmVudCB9IGZyb20gJy4vbWFwYm94Lm1hcmtlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4TWFwYm94R0xNb2R1bGUgfSBmcm9tICduZ3gtbWFwYm94LWdsJztcbmltcG9ydCB7IERieFJvdXRlckFuY2hvck1vZHVsZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFya2Vyc0NvbXBvbmVudCB9IGZyb20gJy4vbWFwYm94Lm1hcmtlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IERieE1hcGJveEluamVjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbWFwYm94LmluamVjdGlvbi5jb21wb25lbnQnO1xuXG5jb25zdCBkZWNsYXJhdGlvbnMgPSBbXG4gIC8vXG4gIERieE1hcGJveE1hcERpcmVjdGl2ZSxcbiAgRGJ4TWFwYm94TGF5b3V0Q29tcG9uZW50LFxuICBEYnhNYXBib3hMYXlvdXREcmF3ZXJDb21wb25lbnQsXG4gIERieE1hcGJveEluamVjdGlvbkNvbXBvbmVudCxcbiAgRGJ4TWFwYm94TWVudUNvbXBvbmVudCxcbiAgRGJ4TWFwYm94TWFya2VyQ29tcG9uZW50LFxuICBEYnhNYXBib3hNYXJrZXJzQ29tcG9uZW50LFxuICBEYnhNYXBib3hNYXBTdG9yZUluamVjdGlvbkJsb2NrRGlyZWN0aXZlXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgLy9cbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICBEYnhJbmplY3Rpb25Db21wb25lbnRNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgQW5ndWxhclJlc2l6ZUV2ZW50TW9kdWxlLFxuICAgIERieFJvdXRlckFuY2hvck1vZHVsZSxcbiAgICBOZ3hNYXBib3hHTE1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnMsXG4gIGV4cG9ydHM6IGRlY2xhcmF0aW9uc1xufSlcbmV4cG9ydCBjbGFzcyBEYnhNYXBib3hNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IERieE1hcGJveENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGJ4TWFwYm94TW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBEYnhNYXBib3hNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IERieE1hcGJveENvbmZpZyxcbiAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,23 +1,23 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component, EventEmitter, Output, NgModule } from '@angular/core';
3
- import { startOfDay, endOfDay, startOfWeek, endOfWeek, startOfMonth, endOfMonth, differenceInDays, addDays, isSameDay, isBefore, isAfter, isSameMonth } from 'date-fns';
4
- import { distinctUntilChanged, switchMap, first, tap, map, shareReplay, withLatestFrom } from 'rxjs';
5
- import { formatToTimeAndDurationString, sortDateRangeStartAscendingCompareFunction, isDateInDateRange } from '@dereekb/date';
3
+ import { startOfDay, endOfDay, startOfWeek, endOfWeek, startOfMonth, endOfMonth, differenceInDays, isBefore, isAfter, addDays, isSameDay, isSameMonth } from 'date-fns';
4
+ import { distinctUntilChanged, switchMap, first, tap, map, shareReplay, combineLatest, withLatestFrom } from 'rxjs';
5
+ import { formatToTimeAndDurationString, sortDateRangeStartAscendingCompareFunction, isDateInDateRange, isSameDateRange, isSameDateDay, isFullDateRange, clampDateToDateRange } from '@dereekb/date';
6
6
  import { ComponentStore } from '@ngrx/component-store';
7
- import * as i2$1 from '@angular/common';
7
+ import * as i2 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import * as i3$1 from '@angular/material/button-toggle';
10
10
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
11
11
  import * as i4$1 from 'angular-calendar';
12
12
  import { CalendarModule, CalendarDayModule, CalendarWeekModule, DateAdapter } from 'angular-calendar';
13
- import * as i6 from '@angular/flex-layout/extended';
14
- import * as i2 from '@angular/material/icon';
13
+ import * as i7 from '@angular/flex-layout/extended';
14
+ import * as i3 from '@angular/material/icon';
15
15
  import { MatIconModule } from '@angular/material/icon';
16
- import * as i3 from '@angular/material/button';
16
+ import * as i4 from '@angular/material/button';
17
17
  import { MatButtonModule } from '@angular/material/button';
18
- import * as i4 from '@dereekb/dbx-web';
18
+ import * as i5 from '@dereekb/dbx-web';
19
19
  import { DbxButtonModule, DbxPopoverInteractionModule } from '@dereekb/dbx-web';
20
- import * as i5 from '@angular/flex-layout/flex';
20
+ import * as i6 from '@angular/flex-layout/flex';
21
21
  import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';
22
22
  import { FlexLayoutModule } from '@angular/flex-layout';
23
23
 
@@ -55,7 +55,7 @@ var CalendarDisplayType;
55
55
  CalendarDisplayType["DAY"] = "day";
56
56
  })(CalendarDisplayType || (CalendarDisplayType = {}));
57
57
  function visibleDateRangeForCalendarState(calendarState) {
58
- const { type, date } = calendarState;
58
+ const { navigationRangeLimit, type, date } = calendarState;
59
59
  let start;
60
60
  let end;
61
61
  let distance;
@@ -76,12 +76,15 @@ function visibleDateRangeForCalendarState(calendarState) {
76
76
  distance = 1;
77
77
  break;
78
78
  }
79
- // console.log('Date range: ', start, end, distance);
79
+ const isMinDateVisible = (navigationRangeLimit === null || navigationRangeLimit === void 0 ? void 0 : navigationRangeLimit.start) != null ? isBefore(start, navigationRangeLimit.start) : false;
80
+ const isMaxDateVisible = (navigationRangeLimit === null || navigationRangeLimit === void 0 ? void 0 : navigationRangeLimit.end) != null ? isAfter(end, navigationRangeLimit.end) : false;
80
81
  return {
81
82
  type,
82
83
  start,
83
84
  end,
84
- distance
85
+ distance,
86
+ isMinDateVisible,
87
+ isMaxDateVisible
85
88
  };
86
89
  }
87
90
  const distinctUntilDateOrTypeOrEventsChanged = distinctUntilChanged((a, b) => (a === null || a === void 0 ? void 0 : a.date) === (b === null || b === void 0 ? void 0 : b.date) && (a === null || a === void 0 ? void 0 : a.type) === (b === null || b === void 0 ? void 0 : b.type) && (a === null || a === void 0 ? void 0 : a.events) === (b === null || b === void 0 ? void 0 : b.events));
@@ -89,22 +92,42 @@ class DbxCalendarStore extends ComponentStore {
89
92
  constructor() {
90
93
  super({
91
94
  type: CalendarDisplayType.MONTH,
95
+ showTodayButton: true,
92
96
  date: new Date(),
93
97
  dateTappedTwice: false,
94
98
  events: []
95
99
  });
96
100
  // MARK: Effects
101
+ this.tapFirstPage = this.effect((input) => {
102
+ return input.pipe(switchMap(() => this.minNavigationDate$.pipe(first(), tap((x) => {
103
+ if (x) {
104
+ this.tapDay(x);
105
+ }
106
+ }))));
107
+ });
97
108
  this.tapNext = this.effect((input) => {
98
- return input.pipe(switchMap(() => this.visibleDateRange$.pipe(first(), tap(({ end }) => {
99
- this.tapDay(addDays(end, 1));
109
+ return input.pipe(switchMap(() => this.visibleDateRange$.pipe(first(), tap(({ end, isMaxDateVisible }) => {
110
+ if (!isMaxDateVisible) {
111
+ this.tapDay(addDays(end, 1));
112
+ }
100
113
  }))));
101
114
  });
102
115
  this.tapPrevious = this.effect((input) => {
103
- return input.pipe(switchMap(() => this.visibleDateRange$.pipe(first(), tap(({ start }) => {
104
- this.tapDay(addDays(start, -1));
116
+ return input.pipe(switchMap(() => this.visibleDateRange$.pipe(first(), tap(({ start, isMinDateVisible }) => {
117
+ if (!isMinDateVisible) {
118
+ this.tapDay(addDays(start, -1));
119
+ }
120
+ }))));
121
+ });
122
+ this.tapLastPage = this.effect((input) => {
123
+ return input.pipe(switchMap(() => this.maxNavigationDate$.pipe(first(), tap((x) => {
124
+ if (x) {
125
+ this.tapDay(x);
126
+ }
105
127
  }))));
106
128
  });
107
129
  // MARK: Accessors
130
+ this.showTodayButton$ = this.state$.pipe(map((x) => x.showTodayButton), distinctUntilChanged(), shareReplay());
108
131
  this.date$ = this.state$.pipe(map((x) => x.date));
109
132
  this.dateTappedTwice$ = this.state$.pipe(map((x) => x.dateTappedTwice));
110
133
  this.events$ = this.state$.pipe(map((x) => x.events));
@@ -126,15 +149,23 @@ class DbxCalendarStore extends ComponentStore {
126
149
  return false; // Type changed, date range changed.
127
150
  }
128
151
  }), shareReplay(1));
129
- this.isLookingAtToday$ = this.visibleDateRange$.pipe(map((x) => isDateInDateRange(new Date(), { start: x.start, end: x.end })), distinctUntilChanged(), shareReplay(1));
152
+ this.isLookingAtToday$ = this.visibleDateRange$.pipe(map((x) => isDateInDateRange(new Date(), x)), distinctUntilChanged(), shareReplay(1));
153
+ this.isLookingAtMinimumDate$ = this.visibleDateRange$.pipe(map((x) => x.isMinDateVisible), distinctUntilChanged(), shareReplay(1));
154
+ this.isLookingAtMaximumDate$ = this.visibleDateRange$.pipe(map((x) => x.isMaxDateVisible), distinctUntilChanged(), shareReplay(1));
130
155
  this.displayType$ = this.state$.pipe(map((x) => x.type), distinctUntilChanged((a, b) => a === b), shareReplay(1));
156
+ this.navigationRangeLimit$ = this.state$.pipe(map((x) => x.navigationRangeLimit), distinctUntilChanged(isSameDateRange), shareReplay(1));
157
+ this.minNavigationDate$ = this.navigationRangeLimit$.pipe(map((x) => x === null || x === void 0 ? void 0 : x.start), distinctUntilChanged(isSameDateDay), shareReplay(1));
158
+ this.maxNavigationDate$ = this.navigationRangeLimit$.pipe(map((x) => x === null || x === void 0 ? void 0 : x.end), distinctUntilChanged(isSameDateDay), shareReplay(1));
159
+ this.isTodayInNavigationRangeLimit$ = this.navigationRangeLimit$.pipe(map((x) => isDateInDateRange(new Date(), x !== null && x !== void 0 ? x : {})), distinctUntilChanged(), shareReplay(1));
160
+ this.canJumpToToday$ = combineLatest([this.isLookingAtToday$, this.isTodayInNavigationRangeLimit$]).pipe(map(([isLookingAtToday, isTodayInNavigationRangeLimit]) => !isLookingAtToday && isTodayInNavigationRangeLimit), distinctUntilChanged(), shareReplay(1));
161
+ this.canShowPageButtons$ = this.state$.pipe(map((x) => x.showPageButtons && x.navigationRangeLimit && isFullDateRange(x.navigationRangeLimit)), distinctUntilChanged(), shareReplay(1));
131
162
  // MARK: State Changes
132
163
  /**
133
164
  * Tap a day.
134
165
  *
135
166
  * - If the same day is presented, dateTappedTwice is flipped.
136
167
  */
137
- this.tapDay = this.updater((state, date) => (Object.assign(Object.assign({}, state), { date, dateTappedTwice: isSameDay(date, state.date) ? !state.dateTappedTwice : false })));
168
+ this.tapDay = this.updater((state, date) => updateCalendarStateWithTappedDate(state, date));
138
169
  /**
139
170
  * Set all events on the calendar.
140
171
  */
@@ -143,6 +174,12 @@ class DbxCalendarStore extends ComponentStore {
143
174
  * Set all events on the calendar.
144
175
  */
145
176
  this.setDisplayType = this.updater((state, type) => (Object.assign(Object.assign({}, state), { type })));
177
+ /**
178
+ * Sets the navigation limit.
179
+ */
180
+ this.setNavigationRangeLimit = this.updater((state, navigationRangeLimit) => updateCalendarStateWithNavigationRangeLimit(state, navigationRangeLimit));
181
+ this.setShowTodayButton = this.updater((state, showTodayButton) => (Object.assign(Object.assign({}, state), { showTodayButton: showTodayButton != null ? showTodayButton : true })));
182
+ this.setShowPageButtons = this.updater((state, showPageButtons) => (Object.assign(Object.assign({}, state), { showPageButtons: showPageButtons != null ? showPageButtons : false })));
146
183
  }
147
184
  }
148
185
  DbxCalendarStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxCalendarStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -150,12 +187,37 @@ DbxCalendarStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", ver
150
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxCalendarStore, decorators: [{
151
188
  type: Injectable
152
189
  }], ctorParameters: function () { return []; } });
190
+ function updateCalendarStateWithTappedDate(state, date) {
191
+ // only update the date if it is different
192
+ if (!isSameDateDay(state.date, date)) {
193
+ // Only update the date if it is within the date range
194
+ if (!state.navigationRangeLimit || isDateInDateRange(date, state.navigationRangeLimit)) {
195
+ state = Object.assign(Object.assign({}, state), { date, dateTappedTwice: isSameDay(date, state.date) ? !state.dateTappedTwice : false });
196
+ }
197
+ }
198
+ return state;
199
+ }
200
+ function updateCalendarStateWithNavigationRangeLimit(state, navigationRangeLimit) {
201
+ const { date } = state;
202
+ // cap the date if it doesn't fall within the range.
203
+ if (navigationRangeLimit && !isDateInDateRange(date, navigationRangeLimit)) {
204
+ const clampedDate = clampDateToDateRange(date, navigationRangeLimit);
205
+ return Object.assign(Object.assign({}, state), { date: clampedDate, navigationRangeLimit });
206
+ }
207
+ else {
208
+ return Object.assign(Object.assign({}, state), { navigationRangeLimit });
209
+ }
210
+ }
153
211
 
154
212
  class DbxCalendarBaseComponent {
155
213
  constructor(calendarStore) {
156
214
  this.calendarStore = calendarStore;
157
215
  this.viewDate$ = this.calendarStore.date$;
158
- this.isLookingAtToday$ = this.calendarStore.isLookingAtToday$;
216
+ this.showTodayButton$ = this.calendarStore.showTodayButton$;
217
+ this.canJumpToToday$ = this.calendarStore.canJumpToToday$;
218
+ this.isLookingAtMinimumDate$ = this.calendarStore.isLookingAtMinimumDate$;
219
+ this.isLookingAtMaximumDate$ = this.calendarStore.isLookingAtMaximumDate$;
220
+ this.showPageButtons$ = this.calendarStore.canShowPageButtons$;
159
221
  this.activeDayIsOpen$ = this.calendarStore.eventsForDateState$.pipe(withLatestFrom(this.calendarStore.date$), map(([x, date]) => {
160
222
  if (x.events.length && isSameMonth(x.date, date)) {
161
223
  return !x.dateTappedTwice;
@@ -167,21 +229,27 @@ class DbxCalendarBaseComponent {
167
229
  todayClicked() {
168
230
  this.calendarStore.tapDay(new Date());
169
231
  }
232
+ firstPageButtonClicked() {
233
+ this.calendarStore.tapFirstPage();
234
+ }
170
235
  nextButtonClicked() {
171
236
  this.calendarStore.tapNext();
172
237
  }
173
238
  previousButtonClicked() {
174
239
  this.calendarStore.tapPrevious();
175
240
  }
241
+ lastPageButtonClicked() {
242
+ this.calendarStore.tapLastPage();
243
+ }
176
244
  typeToggleChanged(event) {
177
245
  this.calendarStore.setDisplayType(event.value);
178
246
  }
179
247
  }
180
248
  DbxCalendarBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxCalendarBaseComponent, deps: [{ token: DbxCalendarStore }], target: i0.ɵɵFactoryTarget.Component });
181
- DbxCalendarBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxCalendarBaseComponent, selector: "dbx-calendar-base", ngImport: i0, template: "<div class=\"dbx-calendar\">\n <h3 class=\"dbx-calendar-title\">{{ (viewDate$ | async)! | calendarDate: (displayType$ | async) + 'ViewTitle':'en' }}</h3>\n <div class=\"dbx-calendar-header\">\n <div class=\"dbx-calendar-controls\" fxLayout=\"row\" fxLayout.xs=\"column\" ngClass.xs=\"dbx-calendar-controls-compact\">\n <span class=\"dbx-calendar-controls-left\" fxFlex=\"nogrow\">\n <button mat-stroked-button [disabled]=\"isLookingAtToday$ | async\" (click)=\"todayClicked()\">Today</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-icon-button [attr.aria-label]=\"'Previous ' + (displayType$ | async) + ' button'\" (click)=\"previousButtonClicked()\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n <button mat-icon-button [attr.aria-label]=\"'Next' + (displayType$ | async)! + ' button'\" (click)=\"nextButtonClicked()\">\n <mat-icon>navigate_next</mat-icon>\n </button>\n </span>\n <span class=\"spacer\"></span>\n <span class=\"dbx-calendar-controls-right\" fxFlex=\"nogrow\">\n <ng-content select=\"[controls]\"></ng-content>\n </span>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.ɵCalendarDatePipe, name: "calendarDate" }] });
249
+ DbxCalendarBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxCalendarBaseComponent, selector: "dbx-calendar-base", ngImport: i0, template: "<div class=\"dbx-calendar\">\n <h3 class=\"dbx-calendar-title\">{{ (viewDate$ | async)! | calendarDate: (displayType$ | async) + 'ViewTitle':'en' }}</h3>\n <div class=\"dbx-calendar-header\">\n <div class=\"dbx-calendar-controls\" fxLayout=\"row\" fxLayout.xs=\"column\" ngClass.xs=\"dbx-calendar-controls-compact\">\n <span class=\"dbx-calendar-controls-left\" fxFlex=\"nogrow\">\n <button *ngIf=\"showTodayButton$ | async\" mat-stroked-button [disabled]=\"!(canJumpToToday$ | async)\" (click)=\"todayClicked()\">Today</button>\n <dbx-button-spacer></dbx-button-spacer>\n <div class=\"d-iblock\">\n <button *ngIf=\"showPageButtons$ | async\" mat-icon-button [disabled]=\"isLookingAtMinimumDate$ | async\" aria-label=\"first page button\" (click)=\"firstPageButtonClicked()\">\n <mat-icon>first_page</mat-icon>\n </button>\n <button mat-icon-button [disabled]=\"isLookingAtMinimumDate$ | async\" [attr.aria-label]=\"'Previous ' + (displayType$ | async) + ' button'\" (click)=\"previousButtonClicked()\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n <button mat-icon-button [disabled]=\"isLookingAtMaximumDate$ | async\" [attr.aria-label]=\"'Next' + (displayType$ | async)! + ' button'\" (click)=\"nextButtonClicked()\">\n <mat-icon>navigate_next</mat-icon>\n </button>\n <button *ngIf=\"showPageButtons$ | async\" mat-icon-button [disabled]=\"isLookingAtMaximumDate$ | async\" aria-label=\"last page button\" (click)=\"lastPageButtonClicked()\">\n <mat-icon>last_page</mat-icon>\n </button>\n </div>\n </span>\n <span class=\"spacer\"></span>\n <span class=\"dbx-calendar-controls-right\" fxFlex=\"nogrow\">\n <ng-content select=\"[controls]\"></ng-content>\n </span>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "directive", type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.ɵCalendarDatePipe, name: "calendarDate" }] });
182
250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxCalendarBaseComponent, decorators: [{
183
251
  type: Component,
184
- args: [{ selector: 'dbx-calendar-base', template: "<div class=\"dbx-calendar\">\n <h3 class=\"dbx-calendar-title\">{{ (viewDate$ | async)! | calendarDate: (displayType$ | async) + 'ViewTitle':'en' }}</h3>\n <div class=\"dbx-calendar-header\">\n <div class=\"dbx-calendar-controls\" fxLayout=\"row\" fxLayout.xs=\"column\" ngClass.xs=\"dbx-calendar-controls-compact\">\n <span class=\"dbx-calendar-controls-left\" fxFlex=\"nogrow\">\n <button mat-stroked-button [disabled]=\"isLookingAtToday$ | async\" (click)=\"todayClicked()\">Today</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-icon-button [attr.aria-label]=\"'Previous ' + (displayType$ | async) + ' button'\" (click)=\"previousButtonClicked()\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n <button mat-icon-button [attr.aria-label]=\"'Next' + (displayType$ | async)! + ' button'\" (click)=\"nextButtonClicked()\">\n <mat-icon>navigate_next</mat-icon>\n </button>\n </span>\n <span class=\"spacer\"></span>\n <span class=\"dbx-calendar-controls-right\" fxFlex=\"nogrow\">\n <ng-content select=\"[controls]\"></ng-content>\n </span>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n" }]
252
+ args: [{ selector: 'dbx-calendar-base', template: "<div class=\"dbx-calendar\">\n <h3 class=\"dbx-calendar-title\">{{ (viewDate$ | async)! | calendarDate: (displayType$ | async) + 'ViewTitle':'en' }}</h3>\n <div class=\"dbx-calendar-header\">\n <div class=\"dbx-calendar-controls\" fxLayout=\"row\" fxLayout.xs=\"column\" ngClass.xs=\"dbx-calendar-controls-compact\">\n <span class=\"dbx-calendar-controls-left\" fxFlex=\"nogrow\">\n <button *ngIf=\"showTodayButton$ | async\" mat-stroked-button [disabled]=\"!(canJumpToToday$ | async)\" (click)=\"todayClicked()\">Today</button>\n <dbx-button-spacer></dbx-button-spacer>\n <div class=\"d-iblock\">\n <button *ngIf=\"showPageButtons$ | async\" mat-icon-button [disabled]=\"isLookingAtMinimumDate$ | async\" aria-label=\"first page button\" (click)=\"firstPageButtonClicked()\">\n <mat-icon>first_page</mat-icon>\n </button>\n <button mat-icon-button [disabled]=\"isLookingAtMinimumDate$ | async\" [attr.aria-label]=\"'Previous ' + (displayType$ | async) + ' button'\" (click)=\"previousButtonClicked()\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n <button mat-icon-button [disabled]=\"isLookingAtMaximumDate$ | async\" [attr.aria-label]=\"'Next' + (displayType$ | async)! + ' button'\" (click)=\"nextButtonClicked()\">\n <mat-icon>navigate_next</mat-icon>\n </button>\n <button *ngIf=\"showPageButtons$ | async\" mat-icon-button [disabled]=\"isLookingAtMaximumDate$ | async\" aria-label=\"last page button\" (click)=\"lastPageButtonClicked()\">\n <mat-icon>last_page</mat-icon>\n </button>\n </div>\n </span>\n <span class=\"spacer\"></span>\n <span class=\"dbx-calendar-controls-right\" fxFlex=\"nogrow\">\n <ng-content select=\"[controls]\"></ng-content>\n </span>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n" }]
185
253
  }], ctorParameters: function () { return [{ type: DbxCalendarStore }]; } });
186
254
 
187
255
  class DbxCalendarComponent {
@@ -221,7 +289,7 @@ class DbxCalendarComponent {
221
289
  }
222
290
  }
223
291
  DbxCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxCalendarComponent, deps: [{ token: DbxCalendarStore }], target: i0.ɵɵFactoryTarget.Component });
224
- DbxCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxCalendarComponent, selector: "dbx-calendar", outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<dbx-calendar-base>\n <ng-container controls>\n <mat-button-toggle-group name=\"calendarDisplayStyle\" [value]=\"(displayType$ | async)!\" (change)=\"typeToggleChanged($event)\" aria-label=\"Display Style\">\n <mat-button-toggle value=\"month\">Month</mat-button-toggle>\n <mat-button-toggle value=\"week\">Week</mat-button-toggle>\n <mat-button-toggle value=\"day\">Day</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n <div class=\"dbx-calendar-content\" [ngClass]=\"'dbx-calendar-content-' + (displayType$ | async)!\" [ngSwitch]=\"displayType$ | async\">\n <mwl-calendar-month-view *ngSwitchCase=\"'month'\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" [activeDayIsOpen]=\"(activeDayIsOpen$ | async)!\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-month-view>\n <mwl-calendar-week-view *ngSwitchCase=\"'week'\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-week-view>\n <mwl-calendar-day-view *ngSwitchCase=\"'day'\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-day-view>\n </div>\n</dbx-calendar-base>\n", dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i4$1.CalendarMonthViewComponent, selector: "mwl-calendar-month-view", inputs: ["viewDate", "events", "excludeDays", "activeDayIsOpen", "activeDay", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "cellTemplate", "openDayEventsTemplate", "eventTitleTemplate", "eventActionsTemplate", "weekendDays"], outputs: ["beforeViewRender", "dayClicked", "eventClicked", "columnHeaderClicked", "eventTimesChanged"] }, { kind: "component", type: i4$1.CalendarWeekViewComponent, selector: "mwl-calendar-week-view", inputs: ["viewDate", "events", "excludeDays", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "precision", "weekendDays", "snapDraggedEvents", "hourSegments", "hourDuration", "hourSegmentHeight", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "hourSegmentTemplate", "eventSnapSize", "allDayEventsLabelTemplate", "daysInWeek", "currentTimeMarkerTemplate", "validateEventTimesChanged"], outputs: ["dayHeaderClicked", "eventClicked", "eventTimesChanged", "beforeViewRender", "hourSegmentClicked"] }, { kind: "component", type: i4$1.CalendarDayViewComponent, selector: "mwl-calendar-day-view", inputs: ["viewDate", "events", "hourSegments", "hourSegmentHeight", "hourDuration", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "refresh", "locale", "eventSnapSize", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "hourSegmentTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "snapDraggedEvents", "allDayEventsLabelTemplate", "currentTimeMarkerTemplate", "validateEventTimesChanged"], outputs: ["eventClicked", "hourSegmentClicked", "eventTimesChanged", "beforeViewRender"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: DbxCalendarBaseComponent, selector: "dbx-calendar-base" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }] });
292
+ DbxCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxCalendarComponent, selector: "dbx-calendar", outputs: { clickEvent: "clickEvent" }, ngImport: i0, template: "<dbx-calendar-base>\n <ng-container controls>\n <mat-button-toggle-group name=\"calendarDisplayStyle\" [value]=\"(displayType$ | async)!\" (change)=\"typeToggleChanged($event)\" aria-label=\"Display Style\">\n <mat-button-toggle value=\"month\">Month</mat-button-toggle>\n <mat-button-toggle value=\"week\">Week</mat-button-toggle>\n <mat-button-toggle value=\"day\">Day</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n <div class=\"dbx-calendar-content\" [ngClass]=\"'dbx-calendar-content-' + (displayType$ | async)!\" [ngSwitch]=\"displayType$ | async\">\n <mwl-calendar-month-view *ngSwitchCase=\"'month'\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" [activeDayIsOpen]=\"(activeDayIsOpen$ | async)!\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-month-view>\n <mwl-calendar-week-view *ngSwitchCase=\"'week'\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-week-view>\n <mwl-calendar-day-view *ngSwitchCase=\"'day'\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-day-view>\n </div>\n</dbx-calendar-base>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3$1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i4$1.CalendarMonthViewComponent, selector: "mwl-calendar-month-view", inputs: ["viewDate", "events", "excludeDays", "activeDayIsOpen", "activeDay", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "cellTemplate", "openDayEventsTemplate", "eventTitleTemplate", "eventActionsTemplate", "weekendDays"], outputs: ["beforeViewRender", "dayClicked", "eventClicked", "columnHeaderClicked", "eventTimesChanged"] }, { kind: "component", type: i4$1.CalendarWeekViewComponent, selector: "mwl-calendar-week-view", inputs: ["viewDate", "events", "excludeDays", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "precision", "weekendDays", "snapDraggedEvents", "hourSegments", "hourDuration", "hourSegmentHeight", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "hourSegmentTemplate", "eventSnapSize", "allDayEventsLabelTemplate", "daysInWeek", "currentTimeMarkerTemplate", "validateEventTimesChanged"], outputs: ["dayHeaderClicked", "eventClicked", "eventTimesChanged", "beforeViewRender", "hourSegmentClicked"] }, { kind: "component", type: i4$1.CalendarDayViewComponent, selector: "mwl-calendar-day-view", inputs: ["viewDate", "events", "hourSegments", "hourSegmentHeight", "hourDuration", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "refresh", "locale", "eventSnapSize", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "hourSegmentTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "snapDraggedEvents", "allDayEventsLabelTemplate", "currentTimeMarkerTemplate", "validateEventTimesChanged"], outputs: ["eventClicked", "hourSegmentClicked", "eventTimesChanged", "beforeViewRender"] }, { kind: "directive", type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: DbxCalendarBaseComponent, selector: "dbx-calendar-base" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
225
293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxCalendarComponent, decorators: [{
226
294
  type: Component,
227
295
  args: [{ selector: 'dbx-calendar', template: "<dbx-calendar-base>\n <ng-container controls>\n <mat-button-toggle-group name=\"calendarDisplayStyle\" [value]=\"(displayType$ | async)!\" (change)=\"typeToggleChanged($event)\" aria-label=\"Display Style\">\n <mat-button-toggle value=\"month\">Month</mat-button-toggle>\n <mat-button-toggle value=\"week\">Week</mat-button-toggle>\n <mat-button-toggle value=\"day\">Day</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n <div class=\"dbx-calendar-content\" [ngClass]=\"'dbx-calendar-content-' + (displayType$ | async)!\" [ngSwitch]=\"displayType$ | async\">\n <mwl-calendar-month-view *ngSwitchCase=\"'month'\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" [activeDayIsOpen]=\"(activeDayIsOpen$ | async)!\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-month-view>\n <mwl-calendar-week-view *ngSwitchCase=\"'week'\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-week-view>\n <mwl-calendar-day-view *ngSwitchCase=\"'day'\" [viewDate]=\"(viewDate$ | async)!\" [events]=\"(events$ | async)!\" (eventClicked)=\"eventClicked('Clicked', $event.event)\"></mwl-calendar-day-view>\n </div>\n</dbx-calendar-base>\n" }]
@@ -311,5 +379,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
311
379
  * Generated bundle index. Do not edit.
312
380
  */
313
381
 
314
- export { CalendarDisplayType, DbxCalendarBaseComponent, DbxCalendarComponent, DbxCalendarModule, DbxCalendarRootModule, DbxCalendarStore, prepareAndSortCalendarEvents, visibleDateRangeForCalendarState };
382
+ export { CalendarDisplayType, DbxCalendarBaseComponent, DbxCalendarComponent, DbxCalendarModule, DbxCalendarRootModule, DbxCalendarStore, prepareAndSortCalendarEvents, updateCalendarStateWithNavigationRangeLimit, updateCalendarStateWithTappedDate, visibleDateRangeForCalendarState };
315
383
  //# sourceMappingURL=dereekb-dbx-web-calendar.mjs.map