@dereekb/dbx-web 12.6.21 → 12.7.0

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 (102) hide show
  1. package/esm2022/lib/action/snackbar/action.snackbar.component.mjs +10 -14
  2. package/esm2022/lib/action/snackbar/action.snackbar.directive.mjs +8 -7
  3. package/esm2022/lib/action/transition/transition.safety.dialog.component.mjs +1 -1
  4. package/esm2022/lib/button/progress/abstract.progress.button.directive.mjs +5 -5
  5. package/esm2022/lib/error/error.action.directive.mjs +9 -9
  6. package/esm2022/lib/error/error.loading.directive.mjs +7 -6
  7. package/esm2022/lib/error/error.snackbar.action.directive.mjs +6 -7
  8. package/esm2022/lib/error/error.snackbar.component.mjs +9 -13
  9. package/esm2022/lib/extension/download/blob/download.blob.button.component.mjs +6 -10
  10. package/esm2022/lib/extension/download/text/download.text.component.mjs +1 -6
  11. package/esm2022/lib/extension/help/help.context.service.mjs +3 -5
  12. package/esm2022/lib/extension/model/model.tracker.view.storage.mjs +3 -5
  13. package/esm2022/lib/extension/zip/zip.blob.preview.component.mjs +4 -7
  14. package/esm2022/lib/extension/zip/zip.preview.component.mjs +4 -7
  15. package/esm2022/lib/interaction/dialog/dialog.action.directive.mjs +1 -1
  16. package/esm2022/lib/interaction/filter/filter.popover.component.mjs +9 -12
  17. package/esm2022/lib/interaction/filter/filter.wrapper.component.mjs +3 -2
  18. package/esm2022/lib/interaction/iframe/embed.component.mjs +7 -12
  19. package/esm2022/lib/interaction/iframe/iframe.component.mjs +7 -12
  20. package/esm2022/lib/interaction/popover/abstract.popover.ref.directive.mjs +8 -7
  21. package/esm2022/lib/interaction/popover/popover.action.directive.mjs +1 -1
  22. package/esm2022/lib/interaction/popover/popover.component.mjs +1 -3
  23. package/esm2022/lib/interaction/popover/popover.coordinator.component.mjs +5 -6
  24. package/esm2022/lib/interaction/popover/popover.coordinator.service.mjs +3 -5
  25. package/esm2022/lib/interaction/popup/popup.component.mjs +4 -9
  26. package/esm2022/lib/interaction/popup/popup.coordinator.component.mjs +5 -6
  27. package/esm2022/lib/interaction/popup/popup.coordinator.service.mjs +3 -5
  28. package/esm2022/lib/interaction/prompt/prompt.confirm.dialog.component.mjs +1 -1
  29. package/esm2022/lib/interaction/upload/upload.action.directive.mjs +8 -15
  30. package/esm2022/lib/layout/column/two/two.column.back.directive.mjs +8 -8
  31. package/esm2022/lib/layout/column/two/two.column.component.mjs +4 -5
  32. package/esm2022/lib/layout/column/two/two.column.sref.showright.directive.mjs +5 -6
  33. package/esm2022/lib/layout/column/two/two.column.store.mjs +3 -7
  34. package/esm2022/lib/layout/flex/flex.group.directive.mjs +4 -5
  35. package/esm2022/lib/layout/list/list.view.directive.mjs +16 -21
  36. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.directive.mjs +11 -15
  37. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.ripple.directive.mjs +1 -1
  38. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.selection.directive.mjs +1 -1
  39. package/esm2022/lib/layout/style/style.body.directive.mjs +9 -9
  40. package/esm2022/lib/layout/style/style.directive.mjs +9 -9
  41. package/esm2022/lib/layout/style/style.set.directive.mjs +10 -10
  42. package/esm2022/lib/loading/loading.action.directive.mjs +3 -7
  43. package/esm2022/mapbox/lib/mapbox.injection.store.mjs +1 -1
  44. package/esm2022/mapbox/lib/mapbox.layout.resize.sync.directive.mjs +8 -8
  45. package/esm2022/mapbox/lib/mapbox.menu.component.mjs +17 -19
  46. package/esm2022/mapbox/lib/mapbox.store.mjs +1 -1
  47. package/esm2022/table/lib/date/daterange.table.cell.input.component.mjs +8 -11
  48. package/esm2022/table/lib/table.column.size.directive.mjs +8 -9
  49. package/fesm2022/dereekb-dbx-web-mapbox.mjs +22 -24
  50. package/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
  51. package/fesm2022/dereekb-dbx-web-table.mjs +13 -19
  52. package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
  53. package/fesm2022/dereekb-dbx-web.mjs +150 -229
  54. package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
  55. package/lib/action/snackbar/action.snackbar.component.d.ts +4 -5
  56. package/lib/action/snackbar/action.snackbar.directive.d.ts +3 -2
  57. package/lib/action/transition/transition.safety.dialog.component.d.ts +1 -2
  58. package/lib/button/progress/abstract.progress.button.directive.d.ts +3 -3
  59. package/lib/error/error.action.directive.d.ts +3 -4
  60. package/lib/error/error.loading.directive.d.ts +2 -2
  61. package/lib/error/error.snackbar.action.directive.d.ts +2 -2
  62. package/lib/error/error.snackbar.component.d.ts +2 -4
  63. package/lib/extension/download/blob/download.blob.button.component.d.ts +3 -4
  64. package/lib/extension/download/text/download.text.component.d.ts +2 -4
  65. package/lib/extension/help/help.context.service.d.ts +1 -3
  66. package/lib/extension/model/model.tracker.view.storage.d.ts +2 -3
  67. package/lib/extension/zip/zip.blob.preview.component.d.ts +2 -3
  68. package/lib/extension/zip/zip.preview.component.d.ts +1 -3
  69. package/lib/interaction/dialog/dialog.action.directive.d.ts +2 -2
  70. package/lib/interaction/filter/filter.popover.component.d.ts +3 -5
  71. package/lib/interaction/filter/filter.wrapper.component.d.ts +1 -1
  72. package/lib/interaction/iframe/embed.component.d.ts +2 -4
  73. package/lib/interaction/iframe/iframe.component.d.ts +2 -4
  74. package/lib/interaction/popover/abstract.popover.ref.directive.d.ts +4 -4
  75. package/lib/interaction/popover/popover.action.directive.d.ts +2 -2
  76. package/lib/interaction/popover/popover.coordinator.component.d.ts +2 -4
  77. package/lib/interaction/popover/popover.coordinator.service.d.ts +2 -4
  78. package/lib/interaction/popup/popup.component.d.ts +2 -3
  79. package/lib/interaction/popup/popup.coordinator.component.d.ts +2 -4
  80. package/lib/interaction/popup/popup.coordinator.service.d.ts +1 -3
  81. package/lib/interaction/prompt/prompt.confirm.dialog.component.d.ts +1 -2
  82. package/lib/interaction/upload/upload.action.directive.d.ts +2 -6
  83. package/lib/layout/column/two/two.column.back.directive.d.ts +2 -4
  84. package/lib/layout/column/two/two.column.component.d.ts +1 -3
  85. package/lib/layout/column/two/two.column.sref.showright.directive.d.ts +1 -2
  86. package/lib/layout/column/two/two.column.store.d.ts +2 -3
  87. package/lib/layout/flex/flex.group.directive.d.ts +1 -2
  88. package/lib/layout/list/list.view.directive.d.ts +9 -10
  89. package/lib/layout/list/modifier/list.view.value.modifier.directive.d.ts +3 -6
  90. package/lib/layout/list/modifier/list.view.value.modifier.ripple.directive.d.ts +1 -2
  91. package/lib/layout/list/modifier/list.view.value.modifier.selection.directive.d.ts +1 -2
  92. package/lib/layout/style/style.body.directive.d.ts +2 -4
  93. package/lib/layout/style/style.directive.d.ts +2 -4
  94. package/lib/layout/style/style.set.directive.d.ts +2 -4
  95. package/lib/loading/loading.action.directive.d.ts +1 -3
  96. package/mapbox/lib/mapbox.injection.store.d.ts +1 -2
  97. package/mapbox/lib/mapbox.layout.resize.sync.directive.d.ts +2 -4
  98. package/mapbox/lib/mapbox.menu.component.d.ts +5 -6
  99. package/mapbox/lib/mapbox.store.d.ts +1 -2
  100. package/package.json +1 -1
  101. package/table/lib/date/daterange.table.cell.input.component.d.ts +2 -4
  102. package/table/lib/table.column.size.directive.d.ts +4 -5
@@ -1,12 +1,13 @@
1
1
  import { computed, Directive, ElementRef, inject, input } from '@angular/core';
2
2
  import { toSignal } from '@angular/core/rxjs-interop';
3
+ import { clean, completeOnDestroy } from '@dereekb/dbx-core';
3
4
  import { resizeSignal } from '@dereekb/dbx-web';
4
5
  import { BehaviorSubject } from 'rxjs';
5
6
  import * as i0 from "@angular/core";
6
7
  export class DbxTableColumnSizeDirective {
7
8
  elementRef = inject(ElementRef);
8
9
  resized = resizeSignal(this.elementRef);
9
- _columnsMap = new BehaviorSubject(new Map());
10
+ _columnsMap = completeOnDestroy(new BehaviorSubject(new Map()));
10
11
  columns$ = this._columnsMap.asObservable();
11
12
  columnsSignal = toSignal(this.columns$);
12
13
  visibleColumnsSignal = computed(() => {
@@ -60,9 +61,6 @@ export class DbxTableColumnSizeDirective {
60
61
  this._columnsMap.next(this._columnsMap.value);
61
62
  }
62
63
  }
63
- ngOnDestroy() {
64
- this._columnsMap.complete();
65
- }
66
64
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTableColumnSizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
67
65
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxTableColumnSizeDirective, isStandalone: true, selector: "[dbx-table-column-size]", exportAs: ["dbxTableColumnSize"], ngImport: i0 });
68
66
  }
@@ -81,12 +79,13 @@ export class DbxColumnSizeColumnDirective {
81
79
  dbxColumnSizeDirective = inject(DbxTableColumnSizeDirective);
82
80
  elementRef = inject(ElementRef);
83
81
  index = input.required({ alias: 'dbx-column-size-column' });
82
+ constructor() {
83
+ clean(() => this.dbxColumnSizeDirective.removeColumn(this));
84
+ }
84
85
  ngOnInit() {
86
+ // called after the index value has been input/set. Indexes are unique and set only once.
85
87
  this.dbxColumnSizeDirective.addColumn(this);
86
88
  }
87
- ngOnDestroy() {
88
- this.dbxColumnSizeDirective.removeColumn(this);
89
- }
90
89
  get width() {
91
90
  return this.elementRef.nativeElement.clientWidth;
92
91
  }
@@ -99,5 +98,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
99
98
  selector: '[dbx-column-size-column]',
100
99
  standalone: true
101
100
  }]
102
- }] });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29sdW1uLnNpemUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi90YWJsZS9zcmMvbGliL3RhYmxlLmNvbHVtbi5zaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVN2QyxNQUFNLE9BQU8sMkJBQTJCO0lBQzdCLFVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWhDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEdBQUcsRUFBMEQsQ0FBQyxDQUFDO0lBQzdHLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRTNDLGFBQWEsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQWlFLENBQUM7UUFFdkcsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLE1BQU0sV0FBVyxH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QUM7SUFDekQsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQTJCLEVBQUUsS0FBSyxFQUFFLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUUvRixRQUFRO1FBQ04sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUM7d0dBZlUsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBSnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgcmVzaXplU2lnbmFsIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIERieENvbHVtblNpemVDb2x1bW5WYWx1ZSA9ICdoZWFkJyB8ICd0YWlsJyB8IG51bWJlcjtcblxuQERpcmVjdGl2ZSh7XG4gIGV4cG9ydEFzOiAnZGJ4VGFibGVDb2x1bW5TaXplJyxcbiAgc2VsZWN0b3I6ICdbZGJ4LXRhYmxlLWNvbHVtbi1zaXplXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4VGFibGVDb2x1bW5TaXplRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5IHJlc2l6ZWQgPSByZXNpemVTaWduYWwodGhpcy5lbGVtZW50UmVmKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb2x1bW5zTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdChuZXcgTWFwPERieENvbHVtblNpemVDb2x1bW5WYWx1ZSwgRGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZT4oKSk7XG4gIHJlYWRvbmx5IGNvbHVtbnMkID0gdGhpcy5fY29sdW1uc01hcC5hc09ic2VydmFibGUoKTtcblxuICByZWFkb25seSBjb2x1bW5zU2lnbmFsID0gdG9TaWduYWwodGhpcy5jb2x1bW5zJCk7XG4gIHJlYWRvbmx5IHZpc2libGVDb2x1bW5zU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHJlc2l6ZWQgPSB0aGlzLnJlc2l6ZWQoKTtcbiAgICBjb25zdCBjb2x1bW5zTWFwID0gdGhpcy5jb2x1bW5zU2lnbmFsKCkgYXMgTWFwPERieENvbHVtblNpemVDb2x1bW5WYWx1ZSwgRGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZT47XG5cbiAgICBjb25zdCB7IHdpZHRoIH0gPSByZXNpemVkLm5ld1JlY3Q7XG4gICAgbGV0IHZpc2libGVDb2x1bW5zID0gMDtcblxuICAgIGNvbnN0IGl0ZW1Db2x1bW5zOiBEYnhDb2x1bW5TaXplQ29sdW1uRGlyZWN0aXZlW10gPSBbXTtcblxuICAgIGxldCBoZWFkZXJDb2x1bW46IE1heWJlPERieENvbHVtblNpemVDb2x1bW5EaXJlY3RpdmU+O1xuICAgIGxldCB0YWlsQ29sdW1uOiBNYXliZTxEYnhDb2x1bW5TaXplQ29sdW1uRGlyZWN0aXZlPjtcblxuICAgIGNvbHVtbnNNYXAuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGNvbHVtbi5pbmRleCgpO1xuXG4gICAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICAgIGNhc2UgJ2hlYWQnOlxuICAgICAgICAgIGhlYWRlckNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndGFpbCc6XG4gICAgICAgICAgdGFpbENvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpdGVtQ29sdW1uc1tpbmRleF0gPSBjb2x1bW47XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBoZWFkZXJDb2x1bW5XaWR0aCA9IGhlYWRlckNvbHVtbj8ud2lkdGggfHwgMDtcbiAgICBjb25zdCB0YWlsQ29sdW1uV2lkdGggPSB0YWlsQ29sdW1uPy53aWR0aCB8fCAwO1xuXG4gICAgbGV0IHJlbWFpbmluZ1RhYmxlV2lkdGggPSB3aWR0aCAtIGhlYWRlckNvbHVtbldpZHRoO1xuICAgIHZpc2libGVDb2x1bW5zID0gMTtcbiAgICBsZXQgaSA9IDA7XG5cbiAgICB3aGlsZSAocmVtYWluaW5nVGFibGVXaWR0aCA+IDAgJiYgaSA8IGl0ZW1Db2x1bW5zLmxlbmd0aCkge1xuICAgICAgY29uc3QgbmV4dENvbHVtbiA9IGl0ZW1Db2x1bW5zW2ldO1xuICAgICAgaSArPSAxO1xuXG4gICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IG5leHRDb2x1bW4ud2lkdGg7XG5cbiAgICAgIHJlbWFpbmluZ1RhYmxlV2lkdGggLT0gY29sdW1uV2lkdGg7XG5cbiAgICAgIGlmIChyZW1haW5pbmdUYWJsZVdpZHRoID49IDApIHtcbiAgICAgICAgdmlzaWJsZUNvbHVtbnMgKz0gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzaG93IHRoZSB0YWlsIGNvbHVtblxuICAgIGlmICh0YWlsQ29sdW1uICE9IG51bGwgJiYgdmlzaWJsZUNvbHVtbnMgPT09IGl0ZW1Db2x1bW5zLmxlbmd0aCArIDEgJiYgTWF0aC5hYnMocmVtYWluaW5nVGFibGVXaWR0aCAtIHRhaWxDb2x1bW5XaWR0aCkgPCAzKSB7XG4gICAgICB2aXNpYmxlQ29sdW1ucyArPSAxO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpYmxlQ29sdW1ucztcbiAgfSk7XG5cbiAgYWRkQ29sdW1uKGNvbHVtbjogRGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZSkge1xuICAgIHRoaXMuX2NvbHVtbnNNYXAudmFsdWUuc2V0KGNvbHVtbi5pbmRleCgpLCBjb2x1bW4pO1xuICAgIHRoaXMuX2NvbHVtbnNNYXAubmV4dCh0aGlzLl9jb2x1bW5zTWFwLnZhbHVlKTtcbiAgfVxuXG4gIHJlbW92ZUNvbHVtbihjb2x1bW46IERieENvbHVtblNpemVDb2x1bW5EaXJlY3RpdmUpIHtcbiAgICBpZiAodGhpcy5fY29sdW1uc01hcC52YWx1ZS5kZWxldGUoY29sdW1uLmluZGV4KCkpKSB7XG4gICAgICB0aGlzLl9jb2x1bW5zTWFwLm5leHQodGhpcy5fY29sdW1uc01hcC52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fY29sdW1uc01hcC5jb21wbGV0ZSgpO1xuICB9XG59XG5cbi8qKlxuICogUmVmZXJlbmNlcyBhIHNwZWNpZmljIGVsZW1lbnQgYW5kIHRoZSBpbmRleCBvZiB0aGUgY29sdW1uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4LWNvbHVtbi1zaXplLWNvbHVtbl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieENvbHVtblNpemVDb2x1bW5EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGRieENvbHVtblNpemVEaXJlY3RpdmUgPSBpbmplY3QoRGJ4VGFibGVDb2x1bW5TaXplRGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5IGluZGV4ID0gaW5wdXQucmVxdWlyZWQ8RGJ4Q29sdW1uU2l6ZUNvbHVtblZhbHVlPih7IGFsaWFzOiAnZGJ4LWNvbHVtbi1zaXplLWNvbHVtbicgfSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYnhDb2x1bW5TaXplRGlyZWN0aXZlLmFkZENvbHVtbih0aGlzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGJ4Q29sdW1uU2l6ZURpcmVjdGl2ZS5yZW1vdmVDb2x1bW4odGhpcyk7XG4gIH1cblxuICBnZXQgd2lkdGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIH1cbn1cbiJdfQ==
101
+ }], ctorParameters: () => [] });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29sdW1uLnNpemUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi90YWJsZS9zcmMvbGliL3RhYmxlLmNvbHVtbi5zaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVN2QyxNQUFNLE9BQU8sMkJBQTJCO0lBQzdCLFVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO0lBRXpELE9BQU8sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWhDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEdBQUcsRUFBMEQsQ0FBQyxDQUFDLENBQUM7SUFDaEksUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFM0MsYUFBYSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBaUUsQ0FBQztRQUV2RyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdB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QVUsQ0FBQyxDQUFDO0lBQ3pELEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUEyQixFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7SUFFL0Y7UUFDRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRO1FBQ04seUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ25ELENBQUM7d0dBakJVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCOzs0RkFBNUIsNEJBQTRCO2tCQUp4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjbGVhbiwgY29tcGxldGVPbkRlc3Ryb3kgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyByZXNpemVTaWduYWwgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgRGJ4Q29sdW1uU2l6ZUNvbHVtblZhbHVlID0gJ2hlYWQnIHwgJ3RhaWwnIHwgbnVtYmVyO1xuXG5ARGlyZWN0aXZlKHtcbiAgZXhwb3J0QXM6ICdkYnhUYWJsZUNvbHVtblNpemUnLFxuICBzZWxlY3RvcjogJ1tkYngtdGFibGUtY29sdW1uLXNpemVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhUYWJsZUNvbHVtblNpemVEaXJlY3RpdmUge1xuICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICByZWFkb25seSByZXNpemVkID0gcmVzaXplU2lnbmFsKHRoaXMuZWxlbWVudFJlZik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uc01hcCA9IGNvbXBsZXRlT25EZXN0cm95KG5ldyBCZWhhdmlvclN1YmplY3QobmV3IE1hcDxEYnhDb2x1bW5TaXplQ29sdW1uVmFsdWUsIERieENvbHVtblNpemVDb2x1bW5EaXJlY3RpdmU+KCkpKTtcbiAgcmVhZG9ubHkgY29sdW1ucyQgPSB0aGlzLl9jb2x1bW5zTWFwLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHJlYWRvbmx5IGNvbHVtbnNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmNvbHVtbnMkKTtcbiAgcmVhZG9ubHkgdmlzaWJsZUNvbHVtbnNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcmVzaXplZCA9IHRoaXMucmVzaXplZCgpO1xuICAgIGNvbnN0IGNvbHVtbnNNYXAgPSB0aGlzLmNvbHVtbnNTaWduYWwoKSBhcyBNYXA8RGJ4Q29sdW1uU2l6ZUNvbHVtblZhbHVlLCBEYnhDb2x1bW5TaXplQ29sdW1uRGlyZWN0aXZlPjtcblxuICAgIGNvbnN0IHsgd2lkdGggfSA9IHJlc2l6ZWQubmV3UmVjdDtcbiAgICBsZXQgdmlzaWJsZUNvbHVtbnMgPSAwO1xuXG4gICAgY29uc3QgaXRlbUNvbHVtbnM6IERieENvbHVtblNpemVDb2x1bW5EaXJlY3RpdmVbXSA9IFtdO1xuXG4gICAgbGV0IGhlYWRlckNvbHVtbjogTWF5YmU8RGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZT47XG4gICAgbGV0IHRhaWxDb2x1bW46IE1heWJlPERieENvbHVtblNpemVDb2x1bW5EaXJlY3RpdmU+O1xuXG4gICAgY29sdW1uc01hcC5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gY29sdW1uLmluZGV4KCk7XG5cbiAgICAgIHN3aXRjaCAoaW5kZXgpIHtcbiAgICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICAgICAgaGVhZGVyQ29sdW1uID0gY29sdW1uO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd0YWlsJzpcbiAgICAgICAgICB0YWlsQ29sdW1uID0gY29sdW1uO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGl0ZW1Db2x1bW5zW2luZGV4XSA9IGNvbHVtbjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGhlYWRlckNvbHVtbldpZHRoID0gaGVhZGVyQ29sdW1uPy53aWR0aCB8fCAwO1xuICAgIGNvbnN0IHRhaWxDb2x1bW5XaWR0aCA9IHRhaWxDb2x1bW4/LndpZHRoIHx8IDA7XG5cbiAgICBsZXQgcmVtYWluaW5nVGFibGVXaWR0aCA9IHdpZHRoIC0gaGVhZGVyQ29sdW1uV2lkdGg7XG4gICAgdmlzaWJsZUNvbHVtbnMgPSAxO1xuICAgIGxldCBpID0gMDtcblxuICAgIHdoaWxlIChyZW1haW5pbmdUYWJsZVdpZHRoID4gMCAmJiBpIDwgaXRlbUNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0Q29sdW1uID0gaXRlbUNvbHVtbnNbaV07XG4gICAgICBpICs9IDE7XG5cbiAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gbmV4dENvbHVtbi53aWR0aDtcblxuICAgICAgcmVtYWluaW5nVGFibGVXaWR0aCAtPSBjb2x1bW5XaWR0aDtcblxuICAgICAgaWYgKHJlbWFpbmluZ1RhYmxlV2lkdGggPj0gMCkge1xuICAgICAgICB2aXNpYmxlQ29sdW1ucyArPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNob3cgdGhlIHRhaWwgY29sdW1uXG4gICAgaWYgKHRhaWxDb2x1bW4gIT0gbnVsbCAmJiB2aXNpYmxlQ29sdW1ucyA9PT0gaXRlbUNvbHVtbnMubGVuZ3RoICsgMSAmJiBNYXRoLmFicyhyZW1haW5pbmdUYWJsZVdpZHRoIC0gdGFpbENvbHVtbldpZHRoKSA8IDMpIHtcbiAgICAgIHZpc2libGVDb2x1bW5zICs9IDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2libGVDb2x1bW5zO1xuICB9KTtcblxuICBhZGRDb2x1bW4oY29sdW1uOiBEYnhDb2x1bW5TaXplQ29sdW1uRGlyZWN0aXZlKSB7XG4gICAgdGhpcy5fY29sdW1uc01hcC52YWx1ZS5zZXQoY29sdW1uLmluZGV4KCksIGNvbHVtbik7XG4gICAgdGhpcy5fY29sdW1uc01hcC5uZXh0KHRoaXMuX2NvbHVtbnNNYXAudmFsdWUpO1xuICB9XG5cbiAgcmVtb3ZlQ29sdW1uKGNvbHVtbjogRGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZSkge1xuICAgIGlmICh0aGlzLl9jb2x1bW5zTWFwLnZhbHVlLmRlbGV0ZShjb2x1bW4uaW5kZXgoKSkpIHtcbiAgICAgIHRoaXMuX2NvbHVtbnNNYXAubmV4dCh0aGlzLl9jb2x1bW5zTWFwLnZhbHVlKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZWZlcmVuY2VzIGEgc3BlY2lmaWMgZWxlbWVudCBhbmQgdGhlIGluZGV4IG9mIHRoZSBjb2x1bW4uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYngtY29sdW1uLXNpemUtY29sdW1uXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4Q29sdW1uU2l6ZUNvbHVtbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJlYWRvbmx5IGRieENvbHVtblNpemVEaXJlY3RpdmUgPSBpbmplY3QoRGJ4VGFibGVDb2x1bW5TaXplRGlyZWN0aXZlKTtcblxuICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgaW5kZXggPSBpbnB1dC5yZXF1aXJlZDxEYnhDb2x1bW5TaXplQ29sdW1uVmFsdWU+KHsgYWxpYXM6ICdkYngtY29sdW1uLXNpemUtY29sdW1uJyB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjbGVhbigoKSA9PiB0aGlzLmRieENvbHVtblNpemVEaXJlY3RpdmUucmVtb3ZlQ29sdW1uKHRoaXMpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIGNhbGxlZCBhZnRlciB0aGUgaW5kZXggdmFsdWUgaGFzIGJlZW4gaW5wdXQvc2V0LiBJbmRleGVzIGFyZSB1bmlxdWUgYW5kIHNldCBvbmx5IG9uY2UuXG4gICAgdGhpcy5kYnhDb2x1bW5TaXplRGlyZWN0aXZlLmFkZENvbHVtbih0aGlzKTtcbiAgfVxuXG4gIGdldCB3aWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgfVxufVxuIl19
@@ -6,7 +6,7 @@ import { latLngPoint, LAT_LONG_10M_PRECISION, latLngPointFunction, roundNumberTo
6
6
  import { ComponentStore } from '@ngrx/component-store';
7
7
  import * as MapboxGl from 'mapbox-gl';
8
8
  import { bounds } from '@placemarkio/geo-viewport';
9
- import { DbxInjectionArrayComponent, DbxInjectionComponent, AbstractSubscriptionDirective } from '@dereekb/dbx-core';
9
+ import { DbxInjectionArrayComponent, DbxInjectionComponent, cleanSubscription, clean } from '@dereekb/dbx-core';
10
10
  import { toSignal, toObservable } from '@angular/core/rxjs-interop';
11
11
  import { MapService, MapComponent, MAP_COMPONENT_INITIALIZATION_OPTIONS, MarkerComponent, provideMapboxGL } from 'ngx-mapbox-gl';
12
12
  import { DbxResizedDirective, DbxColorDirective, disableRightClickInCdkBackdrop, DbxAnchorComponent } from '@dereekb/dbx-web';
@@ -995,7 +995,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
995
995
  *
996
996
  * The map dissapears if the mouse scrolls anywhere else on the map.
997
997
  */
998
- class DbxMapboxMenuComponent extends AbstractSubscriptionDirective {
998
+ class DbxMapboxMenuComponent {
999
999
  dbxMapboxMapStore = inject(DbxMapboxMapStore);
1000
1000
  matMenuTrigger = inject(MatMenuTrigger, { host: true });
1001
1001
  active = input(true, { transform: isNotFalse });
@@ -1012,11 +1012,12 @@ class DbxMapboxMenuComponent extends AbstractSubscriptionDirective {
1012
1012
  break;
1013
1013
  }
1014
1014
  });
1015
+ active$ = toObservable(this.active);
1016
+ _sub = cleanSubscription();
1015
1017
  _menuCloseSub = new SubscriptionObject();
1016
1018
  _preventRightClick = new DestroyFunctionObject();
1017
- active$ = toObservable(this.active);
1018
- ngOnInit() {
1019
- this.sub = this.active$
1019
+ constructor() {
1020
+ cleanSubscription(this.active$
1020
1021
  .pipe(switchMap((active) => {
1021
1022
  if (active) {
1022
1023
  return this.dbxMapboxMapStore.rightClickEvent$;
@@ -1042,22 +1043,19 @@ class DbxMapboxMenuComponent extends AbstractSubscriptionDirective {
1042
1043
  this.matMenuTrigger.closeMenu();
1043
1044
  });
1044
1045
  }
1045
- });
1046
- this._menuCloseSub.subscription = this.matMenuTrigger.menuClosed.subscribe(() => {
1046
+ }));
1047
+ cleanSubscription(this.matMenuTrigger.menuClosed.subscribe(() => {
1047
1048
  // destroy prevention when the menu is closed.
1048
1049
  this._preventRightClick.destroy();
1050
+ }));
1051
+ clean(() => {
1052
+ if (this.matMenuTrigger) {
1053
+ this.matMenuTrigger.closeMenu();
1054
+ }
1049
1055
  });
1050
1056
  }
1051
- ngOnDestroy() {
1052
- super.ngOnDestroy();
1053
- this._menuCloseSub.destroy();
1054
- this._preventRightClick.destroy();
1055
- if (this.matMenuTrigger) {
1056
- this.matMenuTrigger.closeMenu();
1057
- }
1058
- }
1059
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxMapboxMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1060
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DbxMapboxMenuComponent, isStandalone: true, selector: "dbx-mapbox-menu", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.top": "posSignal().y", "style.left": "posSignal().x" }, styleAttribute: "visibility: hidden; position: fixed" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1057
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxMapboxMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1058
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DbxMapboxMenuComponent, isStandalone: true, selector: "dbx-mapbox-menu", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.top": "posSignal().y", "style.left": "posSignal().x" }, styleAttribute: "visibility: hidden; position: fixed" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1061
1059
  }
1062
1060
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxMapboxMenuComponent, decorators: [{
1063
1061
  type: Component,
@@ -1072,7 +1070,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1072
1070
  changeDetection: ChangeDetectionStrategy.OnPush,
1073
1071
  standalone: true
1074
1072
  }]
1075
- }] });
1073
+ }], ctorParameters: () => [] });
1076
1074
 
1077
1075
  /**
1078
1076
  * Token used by provideMapboxStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxMapStore into the child view.
@@ -1281,7 +1279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1281
1279
  /**
1282
1280
  * Directive that synchronizes a map's virtual size with the size of the element.
1283
1281
  */
1284
- class DbxMapboxLayoutVirtualResizeSyncComponent extends AbstractSubscriptionDirective {
1282
+ class DbxMapboxLayoutVirtualResizeSyncComponent {
1285
1283
  dbxMapboxLayoutComponent = inject(DbxMapboxLayoutComponent, { host: true });
1286
1284
  resizedVector$ = this.dbxMapboxLayoutComponent.viewResized$.pipe(map(() => {
1287
1285
  const element = this.dbxMapboxLayoutComponent.drawerContainerElement()?.nativeElement;
@@ -1291,11 +1289,11 @@ class DbxMapboxLayoutVirtualResizeSyncComponent extends AbstractSubscriptionDire
1291
1289
  y: clientHeight
1292
1290
  };
1293
1291
  }), distinctUntilChanged(isSameVector), shareReplay(1));
1294
- ngOnInit() {
1295
- this.sub = this.dbxMapboxLayoutComponent.dbxMapboxMapStore.setMinimumVirtualViewportSize(this.resizedVector$);
1292
+ constructor() {
1293
+ cleanSubscription(this.dbxMapboxLayoutComponent.dbxMapboxMapStore.setMinimumVirtualViewportSize(this.resizedVector$));
1296
1294
  }
1297
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxMapboxLayoutVirtualResizeSyncComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1298
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxMapboxLayoutVirtualResizeSyncComponent, isStandalone: true, selector: "[dbxMapboxLayoutVirtualResizeSync]", usesInheritance: true, ngImport: i0 });
1295
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxMapboxLayoutVirtualResizeSyncComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1296
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxMapboxLayoutVirtualResizeSyncComponent, isStandalone: true, selector: "[dbxMapboxLayoutVirtualResizeSync]", ngImport: i0 });
1299
1297
  }
1300
1298
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxMapboxLayoutVirtualResizeSyncComponent, decorators: [{
1301
1299
  type: Directive,
@@ -1303,7 +1301,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1303
1301
  selector: '[dbxMapboxLayoutVirtualResizeSync]',
1304
1302
  standalone: true
1305
1303
  }]
1306
- }] });
1304
+ }], ctorParameters: () => [] });
1307
1305
 
1308
1306
  const importsAndExports = [
1309
1307
  //