@dereekb/dbx-web 12.6.21 → 13.0.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 (887) hide show
  1. package/LICENSE +1 -1
  2. package/fesm2022/dereekb-dbx-web-calendar.mjs +15 -32
  3. package/fesm2022/dereekb-dbx-web-calendar.mjs.map +1 -1
  4. package/fesm2022/dereekb-dbx-web-mapbox.mjs +113 -130
  5. package/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
  6. package/fesm2022/dereekb-dbx-web-table.mjs +125 -133
  7. package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
  8. package/fesm2022/dereekb-dbx-web.mjs +1758 -2081
  9. package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
  10. package/lib/button/_button.scss +117 -21
  11. package/lib/button/progress/spinner.button.component.scss +7 -7
  12. package/lib/layout/style/_style.scss +30 -81
  13. package/lib/loading/_loading.scss +11 -9
  14. package/lib/router/layout/anchorlist/_anchorlist.scss +5 -0
  15. package/lib/router/layout/sidenav/_sidenav.scss +0 -3
  16. package/lib/style/_root-variables.scss +2 -2
  17. package/lib/style/_theming.scss +196 -1
  18. package/lib/style/_variables.scss +13 -7
  19. package/package.json +26 -34
  20. package/types/dereekb-dbx-web-calendar.d.ts +197 -0
  21. package/types/dereekb-dbx-web-mapbox.d.ts +752 -0
  22. package/types/dereekb-dbx-web-table.d.ts +600 -0
  23. package/types/dereekb-dbx-web.d.ts +5655 -0
  24. package/calendar/index.d.ts +0 -1
  25. package/calendar/lib/calendar.base.component.d.ts +0 -32
  26. package/calendar/lib/calendar.component.d.ts +0 -28
  27. package/calendar/lib/calendar.d.ts +0 -6
  28. package/calendar/lib/calendar.module.d.ts +0 -11
  29. package/calendar/lib/calendar.provider.d.ts +0 -5
  30. package/calendar/lib/calendar.store.d.ts +0 -123
  31. package/calendar/lib/index.d.ts +0 -6
  32. package/esm2022/calendar/dereekb-dbx-web-calendar.mjs +0 -5
  33. package/esm2022/calendar/index.mjs +0 -2
  34. package/esm2022/calendar/lib/calendar.base.component.mjs +0 -68
  35. package/esm2022/calendar/lib/calendar.component.mjs +0 -56
  36. package/esm2022/calendar/lib/calendar.mjs +0 -30
  37. package/esm2022/calendar/lib/calendar.module.mjs +0 -21
  38. package/esm2022/calendar/lib/calendar.provider.mjs +0 -11
  39. package/esm2022/calendar/lib/calendar.store.mjs +0 -174
  40. package/esm2022/calendar/lib/index.mjs +0 -7
  41. package/esm2022/dereekb-dbx-web.mjs +0 -5
  42. package/esm2022/index.mjs +0 -2
  43. package/esm2022/lib/action/action.confirm.directive.mjs +0 -46
  44. package/esm2022/lib/action/action.module.mjs +0 -22
  45. package/esm2022/lib/action/index.mjs +0 -6
  46. package/esm2022/lib/action/key.trigger.directive.mjs +0 -31
  47. package/esm2022/lib/action/snackbar/action.snackbar.component.mjs +0 -81
  48. package/esm2022/lib/action/snackbar/action.snackbar.default.mjs +0 -107
  49. package/esm2022/lib/action/snackbar/action.snackbar.directive.mjs +0 -47
  50. package/esm2022/lib/action/snackbar/action.snackbar.generator.mjs +0 -44
  51. package/esm2022/lib/action/snackbar/action.snackbar.mjs +0 -2
  52. package/esm2022/lib/action/snackbar/action.snackbar.module.mjs +0 -18
  53. package/esm2022/lib/action/snackbar/action.snackbar.service.mjs +0 -74
  54. package/esm2022/lib/action/snackbar/index.mjs +0 -8
  55. package/esm2022/lib/action/transition/action.transition.module.mjs +0 -29
  56. package/esm2022/lib/action/transition/index.mjs +0 -4
  57. package/esm2022/lib/action/transition/transition.safety.dialog.component.mjs +0 -53
  58. package/esm2022/lib/action/transition/transition.safety.directive.mjs +0 -132
  59. package/esm2022/lib/button/button.component.mjs +0 -141
  60. package/esm2022/lib/button/button.mjs +0 -2
  61. package/esm2022/lib/button/button.module.mjs +0 -54
  62. package/esm2022/lib/button/button.spacer.directive.mjs +0 -20
  63. package/esm2022/lib/button/icon/icon.button.component.mjs +0 -72
  64. package/esm2022/lib/button/icon/icon.button.module.mjs +0 -19
  65. package/esm2022/lib/button/icon/index.mjs +0 -3
  66. package/esm2022/lib/button/index.mjs +0 -7
  67. package/esm2022/lib/button/progress/abstract.progress.button.directive.mjs +0 -149
  68. package/esm2022/lib/button/progress/bar.button.component.mjs +0 -24
  69. package/esm2022/lib/button/progress/button.progress.config.mjs +0 -3
  70. package/esm2022/lib/button/progress/button.progress.module.mjs +0 -21
  71. package/esm2022/lib/button/progress/button.progress.providers.mjs +0 -18
  72. package/esm2022/lib/button/progress/index.mjs +0 -6
  73. package/esm2022/lib/button/progress/spinner.button.component.mjs +0 -85
  74. package/esm2022/lib/dbx-web.module.mjs +0 -17
  75. package/esm2022/lib/error/default.error.widget.component.mjs +0 -41
  76. package/esm2022/lib/error/error.action.directive.mjs +0 -26
  77. package/esm2022/lib/error/error.api.mjs +0 -51
  78. package/esm2022/lib/error/error.component.mjs +0 -104
  79. package/esm2022/lib/error/error.details.component.mjs +0 -26
  80. package/esm2022/lib/error/error.loading.directive.mjs +0 -36
  81. package/esm2022/lib/error/error.module.mjs +0 -81
  82. package/esm2022/lib/error/error.popover.component.mjs +0 -45
  83. package/esm2022/lib/error/error.snackbar.action.directive.mjs +0 -33
  84. package/esm2022/lib/error/error.snackbar.component.mjs +0 -83
  85. package/esm2022/lib/error/error.snackbar.service.mjs +0 -39
  86. package/esm2022/lib/error/error.view.component.mjs +0 -56
  87. package/esm2022/lib/error/error.widget.component.mjs +0 -59
  88. package/esm2022/lib/error/error.widget.directive.mjs +0 -18
  89. package/esm2022/lib/error/error.widget.service.mjs +0 -75
  90. package/esm2022/lib/error/index.mjs +0 -17
  91. package/esm2022/lib/error/state.mjs +0 -21
  92. package/esm2022/lib/extension/download/blob/download.blob.button.component.mjs +0 -86
  93. package/esm2022/lib/extension/download/blob/index.mjs +0 -2
  94. package/esm2022/lib/extension/download/index.mjs +0 -3
  95. package/esm2022/lib/extension/download/text/download.text.component.mjs +0 -94
  96. package/esm2022/lib/extension/download/text/download.text.mjs +0 -2
  97. package/esm2022/lib/extension/download/text/download.text.module.mjs +0 -20
  98. package/esm2022/lib/extension/download/text/index.mjs +0 -4
  99. package/esm2022/lib/extension/help/absract.help.widget.directive.mjs +0 -20
  100. package/esm2022/lib/extension/help/help.context.directive.mjs +0 -29
  101. package/esm2022/lib/extension/help/help.context.mjs +0 -24
  102. package/esm2022/lib/extension/help/help.context.service.mjs +0 -34
  103. package/esm2022/lib/extension/help/help.mjs +0 -2
  104. package/esm2022/lib/extension/help/help.providers.mjs +0 -20
  105. package/esm2022/lib/extension/help/help.view.list.component.mjs +0 -107
  106. package/esm2022/lib/extension/help/help.view.list.entry.component.mjs +0 -59
  107. package/esm2022/lib/extension/help/help.view.popover.button.component.mjs +0 -50
  108. package/esm2022/lib/extension/help/help.view.popover.component.mjs +0 -53
  109. package/esm2022/lib/extension/help/help.widget.mjs +0 -6
  110. package/esm2022/lib/extension/help/help.widget.service.mjs +0 -106
  111. package/esm2022/lib/extension/help/index.mjs +0 -13
  112. package/esm2022/lib/extension/index.mjs +0 -10
  113. package/esm2022/lib/extension/model/index.mjs +0 -9
  114. package/esm2022/lib/extension/model/model.providers.mjs +0 -42
  115. package/esm2022/lib/extension/model/model.state.service.mjs +0 -19
  116. package/esm2022/lib/extension/model/model.tracker.mjs +0 -7
  117. package/esm2022/lib/extension/model/model.tracker.service.mjs +0 -41
  118. package/esm2022/lib/extension/model/model.tracker.view.storage.mjs +0 -68
  119. package/esm2022/lib/extension/model/model.types.mjs +0 -2
  120. package/esm2022/lib/extension/model/model.types.service.mjs +0 -65
  121. package/esm2022/lib/extension/model/state/actions/actions.mjs +0 -3
  122. package/esm2022/lib/extension/model/state/actions/index.mjs +0 -4
  123. package/esm2022/lib/extension/model/state/actions/model.actions.mjs +0 -3
  124. package/esm2022/lib/extension/model/state/effects/tracker.effects.mjs +0 -26
  125. package/esm2022/lib/extension/model/state/index.mjs +0 -6
  126. package/esm2022/lib/extension/model/state/reducers/index.mjs +0 -13
  127. package/esm2022/lib/extension/model/state/reducers/model.module.config.mjs +0 -8
  128. package/esm2022/lib/extension/model/state/state.mjs +0 -2
  129. package/esm2022/lib/extension/preview/index.mjs +0 -5
  130. package/esm2022/lib/extension/preview/webfilepreview.component.mjs +0 -35
  131. package/esm2022/lib/extension/preview/webfilepreview.mjs +0 -2
  132. package/esm2022/lib/extension/preview/webfilepreview.service.mjs +0 -119
  133. package/esm2022/lib/extension/preview/webfilepreview.service.preset.mjs +0 -21
  134. package/esm2022/lib/extension/structure/index.mjs +0 -4
  135. package/esm2022/lib/extension/structure/structure.body.directive.mjs +0 -29
  136. package/esm2022/lib/extension/structure/structure.module.mjs +0 -21
  137. package/esm2022/lib/extension/structure/structure.structure.directive.mjs +0 -25
  138. package/esm2022/lib/extension/widget/index.mjs +0 -7
  139. package/esm2022/lib/extension/widget/widget.component.mjs +0 -79
  140. package/esm2022/lib/extension/widget/widget.directive.mjs +0 -12
  141. package/esm2022/lib/extension/widget/widget.list.component.mjs +0 -75
  142. package/esm2022/lib/extension/widget/widget.mjs +0 -2
  143. package/esm2022/lib/extension/widget/widget.module.mjs +0 -28
  144. package/esm2022/lib/extension/widget/widget.service.mjs +0 -43
  145. package/esm2022/lib/extension/zip/index.mjs +0 -5
  146. package/esm2022/lib/extension/zip/zip.blob.mjs +0 -16
  147. package/esm2022/lib/extension/zip/zip.blob.preview.component.mjs +0 -156
  148. package/esm2022/lib/extension/zip/zip.blob.preview.list.component.mjs +0 -121
  149. package/esm2022/lib/extension/zip/zip.preview.component.mjs +0 -71
  150. package/esm2022/lib/extension/zip/zip.preview.dialog.component.mjs +0 -31
  151. package/esm2022/lib/index.mjs +0 -13
  152. package/esm2022/lib/interaction/dialog/abstract.dialog.directive.mjs +0 -26
  153. package/esm2022/lib/interaction/dialog/dialog.action.directive.mjs +0 -38
  154. package/esm2022/lib/interaction/dialog/dialog.content.close.component.mjs +0 -40
  155. package/esm2022/lib/interaction/dialog/dialog.content.directive.mjs +0 -23
  156. package/esm2022/lib/interaction/dialog/dialog.content.footer.component.mjs +0 -38
  157. package/esm2022/lib/interaction/dialog/dialog.content.mjs +0 -9
  158. package/esm2022/lib/interaction/dialog/dialog.injection.component.mjs +0 -53
  159. package/esm2022/lib/interaction/dialog/dialog.module.mjs +0 -36
  160. package/esm2022/lib/interaction/dialog/index.mjs +0 -9
  161. package/esm2022/lib/interaction/filter/filter.config.mjs +0 -2
  162. package/esm2022/lib/interaction/filter/filter.menu.mjs +0 -25
  163. package/esm2022/lib/interaction/filter/filter.module.mjs +0 -24
  164. package/esm2022/lib/interaction/filter/filter.partial.list.component.mjs +0 -23
  165. package/esm2022/lib/interaction/filter/filter.partial.menu.component.mjs +0 -31
  166. package/esm2022/lib/interaction/filter/filter.partial.mjs +0 -50
  167. package/esm2022/lib/interaction/filter/filter.popover.button.component.mjs +0 -33
  168. package/esm2022/lib/interaction/filter/filter.popover.button.directive.mjs +0 -28
  169. package/esm2022/lib/interaction/filter/filter.popover.component.mjs +0 -115
  170. package/esm2022/lib/interaction/filter/filter.preset.directive.mjs +0 -78
  171. package/esm2022/lib/interaction/filter/filter.preset.list.component.mjs +0 -23
  172. package/esm2022/lib/interaction/filter/filter.preset.menu.component.mjs +0 -31
  173. package/esm2022/lib/interaction/filter/filter.wrapper.component.mjs +0 -46
  174. package/esm2022/lib/interaction/filter/index.mjs +0 -13
  175. package/esm2022/lib/interaction/iframe/embed.component.mjs +0 -124
  176. package/esm2022/lib/interaction/iframe/embed.dialog.component.mjs +0 -34
  177. package/esm2022/lib/interaction/iframe/iframe.component.mjs +0 -68
  178. package/esm2022/lib/interaction/iframe/iframe.dialog.component.mjs +0 -23
  179. package/esm2022/lib/interaction/iframe/index.mjs +0 -5
  180. package/esm2022/lib/interaction/index.mjs +0 -9
  181. package/esm2022/lib/interaction/interaction.module.mjs +0 -30
  182. package/esm2022/lib/interaction/popover/abstract.popover.directive.mjs +0 -21
  183. package/esm2022/lib/interaction/popover/abstract.popover.ref.directive.mjs +0 -52
  184. package/esm2022/lib/interaction/popover/index.mjs +0 -17
  185. package/esm2022/lib/interaction/popover/popover.action.directive.mjs +0 -42
  186. package/esm2022/lib/interaction/popover/popover.close.component.mjs +0 -29
  187. package/esm2022/lib/interaction/popover/popover.component.mjs +0 -169
  188. package/esm2022/lib/interaction/popover/popover.content.component.mjs +0 -50
  189. package/esm2022/lib/interaction/popover/popover.content.module.mjs +0 -24
  190. package/esm2022/lib/interaction/popover/popover.controls.directive.mjs +0 -27
  191. package/esm2022/lib/interaction/popover/popover.coordinator.component.mjs +0 -42
  192. package/esm2022/lib/interaction/popover/popover.coordinator.service.mjs +0 -44
  193. package/esm2022/lib/interaction/popover/popover.header.component.mjs +0 -60
  194. package/esm2022/lib/interaction/popover/popover.mjs +0 -3
  195. package/esm2022/lib/interaction/popover/popover.module.mjs +0 -20
  196. package/esm2022/lib/interaction/popover/popover.position.strategy.mjs +0 -60
  197. package/esm2022/lib/interaction/popover/popover.scroll.content.directive.mjs +0 -41
  198. package/esm2022/lib/interaction/popover/popover.service.mjs +0 -47
  199. package/esm2022/lib/interaction/popup/abstract.popup.directive.mjs +0 -18
  200. package/esm2022/lib/interaction/popup/index.mjs +0 -12
  201. package/esm2022/lib/interaction/popup/popup.component.mjs +0 -126
  202. package/esm2022/lib/interaction/popup/popup.content.component.mjs +0 -42
  203. package/esm2022/lib/interaction/popup/popup.controls.buttons.component.mjs +0 -90
  204. package/esm2022/lib/interaction/popup/popup.controls.component.mjs +0 -33
  205. package/esm2022/lib/interaction/popup/popup.coordinator.component.mjs +0 -42
  206. package/esm2022/lib/interaction/popup/popup.coordinator.service.mjs +0 -44
  207. package/esm2022/lib/interaction/popup/popup.mjs +0 -8
  208. package/esm2022/lib/interaction/popup/popup.module.mjs +0 -21
  209. package/esm2022/lib/interaction/popup/popup.position.strategy.mjs +0 -42
  210. package/esm2022/lib/interaction/popup/popup.service.mjs +0 -43
  211. package/esm2022/lib/interaction/prompt/index.mjs +0 -10
  212. package/esm2022/lib/interaction/prompt/prompt.box.directive.mjs +0 -19
  213. package/esm2022/lib/interaction/prompt/prompt.button.confirm.directive.mjs +0 -28
  214. package/esm2022/lib/interaction/prompt/prompt.component.mjs +0 -37
  215. package/esm2022/lib/interaction/prompt/prompt.confirm.component.mjs +0 -49
  216. package/esm2022/lib/interaction/prompt/prompt.confirm.dialog.component.mjs +0 -53
  217. package/esm2022/lib/interaction/prompt/prompt.confirm.directive.mjs +0 -60
  218. package/esm2022/lib/interaction/prompt/prompt.confirm.mjs +0 -12
  219. package/esm2022/lib/interaction/prompt/prompt.module.mjs +0 -23
  220. package/esm2022/lib/interaction/prompt/prompt.page.component.mjs +0 -33
  221. package/esm2022/lib/interaction/upload/abstract.upload.component.mjs +0 -85
  222. package/esm2022/lib/interaction/upload/index.mjs +0 -8
  223. package/esm2022/lib/interaction/upload/upload.accept.mjs +0 -72
  224. package/esm2022/lib/interaction/upload/upload.action.directive.mjs +0 -36
  225. package/esm2022/lib/interaction/upload/upload.action.mjs +0 -18
  226. package/esm2022/lib/interaction/upload/upload.area.component.mjs +0 -138
  227. package/esm2022/lib/interaction/upload/upload.button.component.mjs +0 -81
  228. package/esm2022/lib/interaction/upload/upload.component.mjs +0 -119
  229. package/esm2022/lib/keypress/index.mjs +0 -3
  230. package/esm2022/lib/keypress/keydown.listener.directive.mjs +0 -49
  231. package/esm2022/lib/keypress/keypress.module.mjs +0 -19
  232. package/esm2022/lib/layout/avatar/avatar.component.mjs +0 -79
  233. package/esm2022/lib/layout/avatar/avatar.mjs +0 -7
  234. package/esm2022/lib/layout/avatar/avatar.service.mjs +0 -78
  235. package/esm2022/lib/layout/avatar/avatar.view.component.mjs +0 -109
  236. package/esm2022/lib/layout/avatar/index.mjs +0 -4
  237. package/esm2022/lib/layout/bar/bar.directive.mjs +0 -26
  238. package/esm2022/lib/layout/bar/bar.header.component.mjs +0 -49
  239. package/esm2022/lib/layout/bar/bar.layout.module.mjs +0 -22
  240. package/esm2022/lib/layout/bar/bar.mjs +0 -2
  241. package/esm2022/lib/layout/bar/index.mjs +0 -5
  242. package/esm2022/lib/layout/bar/pagebar.component.mjs +0 -37
  243. package/esm2022/lib/layout/block/block.layout.module.mjs +0 -21
  244. package/esm2022/lib/layout/block/index.mjs +0 -3
  245. package/esm2022/lib/layout/block/two.block.component.mjs +0 -58
  246. package/esm2022/lib/layout/card/card.box.component.mjs +0 -64
  247. package/esm2022/lib/layout/card/card.box.container.directive.mjs +0 -20
  248. package/esm2022/lib/layout/card/card.box.layout.module.mjs +0 -18
  249. package/esm2022/lib/layout/card/index.mjs +0 -4
  250. package/esm2022/lib/layout/column/column.layout.module.mjs +0 -18
  251. package/esm2022/lib/layout/column/index.mjs +0 -4
  252. package/esm2022/lib/layout/column/one/index.mjs +0 -3
  253. package/esm2022/lib/layout/column/one/one.column.component.mjs +0 -43
  254. package/esm2022/lib/layout/column/one/one.column.module.mjs +0 -19
  255. package/esm2022/lib/layout/column/two/index.mjs +0 -11
  256. package/esm2022/lib/layout/column/two/two.column.back.directive.mjs +0 -27
  257. package/esm2022/lib/layout/column/two/two.column.component.mjs +0 -98
  258. package/esm2022/lib/layout/column/two/two.column.context.directive.mjs +0 -25
  259. package/esm2022/lib/layout/column/two/two.column.full.left.directive.mjs +0 -24
  260. package/esm2022/lib/layout/column/two/two.column.head.directive.mjs +0 -24
  261. package/esm2022/lib/layout/column/two/two.column.module.mjs +0 -24
  262. package/esm2022/lib/layout/column/two/two.column.right.component.mjs +0 -110
  263. package/esm2022/lib/layout/column/two/two.column.sref.directive.mjs +0 -26
  264. package/esm2022/lib/layout/column/two/two.column.sref.showright.directive.mjs +0 -30
  265. package/esm2022/lib/layout/column/two/two.column.store.mjs +0 -126
  266. package/esm2022/lib/layout/compact/compact.directive.mjs +0 -26
  267. package/esm2022/lib/layout/compact/compact.layout.module.mjs +0 -20
  268. package/esm2022/lib/layout/compact/compact.mjs +0 -26
  269. package/esm2022/lib/layout/compact/compact.store.mjs +0 -20
  270. package/esm2022/lib/layout/compact/index.mjs +0 -5
  271. package/esm2022/lib/layout/content/content.border.directive.mjs +0 -23
  272. package/esm2022/lib/layout/content/content.box.directive.mjs +0 -24
  273. package/esm2022/lib/layout/content/content.container.directive.mjs +0 -28
  274. package/esm2022/lib/layout/content/content.directive.mjs +0 -20
  275. package/esm2022/lib/layout/content/content.elevate.directive.mjs +0 -22
  276. package/esm2022/lib/layout/content/content.layout.module.mjs +0 -51
  277. package/esm2022/lib/layout/content/content.page.directive.mjs +0 -20
  278. package/esm2022/lib/layout/content/content.pit.directive.mjs +0 -54
  279. package/esm2022/lib/layout/content/index.mjs +0 -9
  280. package/esm2022/lib/layout/flag/flag.component.mjs +0 -35
  281. package/esm2022/lib/layout/flag/flag.layout.module.mjs +0 -18
  282. package/esm2022/lib/layout/flag/flag.prompt.component.mjs +0 -35
  283. package/esm2022/lib/layout/flag/index.mjs +0 -4
  284. package/esm2022/lib/layout/flex/flex.group.directive.mjs +0 -34
  285. package/esm2022/lib/layout/flex/flex.layout.module.mjs +0 -21
  286. package/esm2022/lib/layout/flex/flex.mjs +0 -2
  287. package/esm2022/lib/layout/flex/flex.size.directive.mjs +0 -22
  288. package/esm2022/lib/layout/flex/index.mjs +0 -5
  289. package/esm2022/lib/layout/index.mjs +0 -17
  290. package/esm2022/lib/layout/item/index.mjs +0 -2
  291. package/esm2022/lib/layout/item/item.icon.component.mjs +0 -56
  292. package/esm2022/lib/layout/layout.module.mjs +0 -26
  293. package/esm2022/lib/layout/list/grid/index.mjs +0 -3
  294. package/esm2022/lib/layout/list/grid/list.grid.view.component.mjs +0 -98
  295. package/esm2022/lib/layout/list/grid/list.grid.view.directive.mjs +0 -34
  296. package/esm2022/lib/layout/list/group/index.mjs +0 -4
  297. package/esm2022/lib/layout/list/group/list.view.value.group.mjs +0 -32
  298. package/esm2022/lib/layout/list/group/list.view.value.group.title.directive.mjs +0 -70
  299. package/esm2022/lib/layout/list/group/list.view.value.group.title.header.component.mjs +0 -60
  300. package/esm2022/lib/layout/list/group/list.view.value.group.title.mjs +0 -2
  301. package/esm2022/lib/layout/list/index.mjs +0 -21
  302. package/esm2022/lib/layout/list/list.component.mjs +0 -232
  303. package/esm2022/lib/layout/list/list.content.empty.component.mjs +0 -27
  304. package/esm2022/lib/layout/list/list.directive.mjs +0 -95
  305. package/esm2022/lib/layout/list/list.layout.module.mjs +0 -99
  306. package/esm2022/lib/layout/list/list.module.mjs +0 -40
  307. package/esm2022/lib/layout/list/list.track.mjs +0 -9
  308. package/esm2022/lib/layout/list/list.view.directive.mjs +0 -79
  309. package/esm2022/lib/layout/list/list.view.mjs +0 -17
  310. package/esm2022/lib/layout/list/list.view.selection.directive.mjs +0 -46
  311. package/esm2022/lib/layout/list/list.view.value.component.mjs +0 -190
  312. package/esm2022/lib/layout/list/list.view.value.directive.mjs +0 -30
  313. package/esm2022/lib/layout/list/list.view.value.item.directive.mjs +0 -15
  314. package/esm2022/lib/layout/list/list.view.value.mjs +0 -67
  315. package/esm2022/lib/layout/list/list.view.value.modifier.mjs +0 -17
  316. package/esm2022/lib/layout/list/list.view.value.selection.component.mjs +0 -112
  317. package/esm2022/lib/layout/list/list.wrapper.mjs +0 -15
  318. package/esm2022/lib/layout/list/meta/index.mjs +0 -2
  319. package/esm2022/lib/layout/list/meta/list.view.meta.icon.component.mjs +0 -39
  320. package/esm2022/lib/layout/list/modifier/index.mjs +0 -5
  321. package/esm2022/lib/layout/list/modifier/list.modifier.module.mjs +0 -22
  322. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.directive.mjs +0 -76
  323. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.ripple.directive.mjs +0 -38
  324. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.selection.directive.mjs +0 -36
  325. package/esm2022/lib/layout/section/index.mjs +0 -8
  326. package/esm2022/lib/layout/section/section.component.mjs +0 -43
  327. package/esm2022/lib/layout/section/section.header.component.mjs +0 -153
  328. package/esm2022/lib/layout/section/section.intro.component.mjs +0 -67
  329. package/esm2022/lib/layout/section/section.layout.module.mjs +0 -24
  330. package/esm2022/lib/layout/section/section.mjs +0 -2
  331. package/esm2022/lib/layout/section/section.page.component.mjs +0 -51
  332. package/esm2022/lib/layout/section/subsection.component.mjs +0 -40
  333. package/esm2022/lib/layout/step/index.mjs +0 -3
  334. package/esm2022/lib/layout/step/step.component.mjs +0 -60
  335. package/esm2022/lib/layout/step/step.layout.module.mjs +0 -20
  336. package/esm2022/lib/layout/style/index.mjs +0 -10
  337. package/esm2022/lib/layout/style/spacer.directive.mjs +0 -17
  338. package/esm2022/lib/layout/style/style.body.directive.mjs +0 -39
  339. package/esm2022/lib/layout/style/style.color.directive.mjs +0 -23
  340. package/esm2022/lib/layout/style/style.directive.mjs +0 -30
  341. package/esm2022/lib/layout/style/style.layout.module.mjs +0 -21
  342. package/esm2022/lib/layout/style/style.mjs +0 -24
  343. package/esm2022/lib/layout/style/style.providers.mjs +0 -21
  344. package/esm2022/lib/layout/style/style.service.mjs +0 -92
  345. package/esm2022/lib/layout/style/style.set.directive.mjs +0 -52
  346. package/esm2022/lib/layout/text/address.component.mjs +0 -67
  347. package/esm2022/lib/layout/text/copy.text.component.mjs +0 -39
  348. package/esm2022/lib/layout/text/copy.text.directive.mjs +0 -56
  349. package/esm2022/lib/layout/text/detail.block.component.mjs +0 -43
  350. package/esm2022/lib/layout/text/detail.block.header.component.mjs +0 -63
  351. package/esm2022/lib/layout/text/icon.spacer.component.mjs +0 -20
  352. package/esm2022/lib/layout/text/index.mjs +0 -13
  353. package/esm2022/lib/layout/text/label.block.component.mjs +0 -29
  354. package/esm2022/lib/layout/text/linkify.component.mjs +0 -38
  355. package/esm2022/lib/layout/text/number.limit.component.mjs +0 -82
  356. package/esm2022/lib/layout/text/text.chip.directive.mjs +0 -27
  357. package/esm2022/lib/layout/text/text.chips.component.mjs +0 -43
  358. package/esm2022/lib/layout/text/text.module.mjs +0 -27
  359. package/esm2022/lib/loading/basic-loading.component.mjs +0 -77
  360. package/esm2022/lib/loading/index.mjs +0 -7
  361. package/esm2022/lib/loading/loading-progress.component.mjs +0 -63
  362. package/esm2022/lib/loading/loading.action.directive.mjs +0 -29
  363. package/esm2022/lib/loading/loading.component.mjs +0 -94
  364. package/esm2022/lib/loading/loading.mjs +0 -2
  365. package/esm2022/lib/loading/loading.module.mjs +0 -20
  366. package/esm2022/lib/router/index.mjs +0 -3
  367. package/esm2022/lib/router/layout/anchor/anchor.component.mjs +0 -124
  368. package/esm2022/lib/router/layout/anchor/anchor.content.component.mjs +0 -49
  369. package/esm2022/lib/router/layout/anchor/anchor.icon.component.mjs +0 -37
  370. package/esm2022/lib/router/layout/anchor/anchor.link.component.mjs +0 -53
  371. package/esm2022/lib/router/layout/anchor/anchor.module.mjs +0 -28
  372. package/esm2022/lib/router/layout/anchor/anchor.segue.directive.mjs +0 -24
  373. package/esm2022/lib/router/layout/anchor/index.mjs +0 -7
  374. package/esm2022/lib/router/layout/anchorlist/anchorlist.component.mjs +0 -29
  375. package/esm2022/lib/router/layout/anchorlist/anchorlist.module.mjs +0 -19
  376. package/esm2022/lib/router/layout/anchorlist/index.mjs +0 -3
  377. package/esm2022/lib/router/layout/index.mjs +0 -7
  378. package/esm2022/lib/router/layout/layout.module.mjs +0 -19
  379. package/esm2022/lib/router/layout/list/index.mjs +0 -3
  380. package/esm2022/lib/router/layout/list/list.module.mjs +0 -19
  381. package/esm2022/lib/router/layout/list/router.list.directive.mjs +0 -35
  382. package/esm2022/lib/router/layout/navbar/index.mjs +0 -3
  383. package/esm2022/lib/router/layout/navbar/navbar.component.mjs +0 -83
  384. package/esm2022/lib/router/layout/navbar/navbar.module.mjs +0 -19
  385. package/esm2022/lib/router/layout/sidenav/index.mjs +0 -11
  386. package/esm2022/lib/router/layout/sidenav/sidenav.button.component.mjs +0 -51
  387. package/esm2022/lib/router/layout/sidenav/sidenav.component.mjs +0 -144
  388. package/esm2022/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.mjs +0 -33
  389. package/esm2022/lib/router/layout/sidenav/sidenav.mjs +0 -8
  390. package/esm2022/lib/router/layout/sidenav/sidenav.module.mjs +0 -21
  391. package/esm2022/lib/router/layout/sidenav/sidenav.page.component.mjs +0 -55
  392. package/esm2022/lib/router/layout/sidenav/sidenav.pagebar.component.mjs +0 -42
  393. package/esm2022/lib/router/provider/index.mjs +0 -4
  394. package/esm2022/lib/router/provider/ngrouter/anchor.component.mjs +0 -25
  395. package/esm2022/lib/router/provider/ngrouter/angular.router.providers.mjs +0 -23
  396. package/esm2022/lib/router/provider/ngrouter/index.mjs +0 -3
  397. package/esm2022/lib/router/provider/router.provider.config.mjs +0 -10
  398. package/esm2022/lib/router/provider/uirouter/anchor.component.mjs +0 -32
  399. package/esm2022/lib/router/provider/uirouter/index.mjs +0 -3
  400. package/esm2022/lib/router/provider/uirouter/uirouter.router.providers.mjs +0 -23
  401. package/esm2022/lib/screen/index.mjs +0 -6
  402. package/esm2022/lib/screen/resize.directive.mjs +0 -24
  403. package/esm2022/lib/screen/resize.mjs +0 -34
  404. package/esm2022/lib/screen/screen.mjs +0 -22
  405. package/esm2022/lib/screen/screen.providers.mjs +0 -22
  406. package/esm2022/lib/screen/screen.service.mjs +0 -101
  407. package/esm2022/lib/util/cdk.mjs +0 -22
  408. package/esm2022/lib/util/click.mjs +0 -56
  409. package/esm2022/lib/util/clipboard.directive.mjs +0 -20
  410. package/esm2022/lib/util/clipboard.mjs +0 -98
  411. package/esm2022/lib/util/index.mjs +0 -5
  412. package/esm2022/mapbox/dereekb-dbx-web-mapbox.mjs +0 -5
  413. package/esm2022/mapbox/index.mjs +0 -2
  414. package/esm2022/mapbox/lib/index.mjs +0 -22
  415. package/esm2022/mapbox/lib/mapbox.change.service.mjs +0 -40
  416. package/esm2022/mapbox/lib/mapbox.injection.component.mjs +0 -29
  417. package/esm2022/mapbox/lib/mapbox.injection.store.mjs +0 -39
  418. package/esm2022/mapbox/lib/mapbox.injection.store.provide.mjs +0 -48
  419. package/esm2022/mapbox/lib/mapbox.layout.component.mjs +0 -154
  420. package/esm2022/mapbox/lib/mapbox.layout.drawer.component.mjs +0 -21
  421. package/esm2022/mapbox/lib/mapbox.layout.resize.sync.directive.mjs +0 -33
  422. package/esm2022/mapbox/lib/mapbox.marker.component.mjs +0 -127
  423. package/esm2022/mapbox/lib/mapbox.marker.mjs +0 -16
  424. package/esm2022/mapbox/lib/mapbox.markers.component.mjs +0 -44
  425. package/esm2022/mapbox/lib/mapbox.menu.component.mjs +0 -94
  426. package/esm2022/mapbox/lib/mapbox.mjs +0 -19
  427. package/esm2022/mapbox/lib/mapbox.module.mjs +0 -73
  428. package/esm2022/mapbox/lib/mapbox.options.mjs +0 -2
  429. package/esm2022/mapbox/lib/mapbox.providers.mjs +0 -25
  430. package/esm2022/mapbox/lib/mapbox.rxjs.mjs +0 -53
  431. package/esm2022/mapbox/lib/mapbox.service.mjs +0 -41
  432. package/esm2022/mapbox/lib/mapbox.store.map.directive.mjs +0 -42
  433. package/esm2022/mapbox/lib/mapbox.store.mjs +0 -549
  434. package/esm2022/mapbox/lib/mapbox.store.provide.mjs +0 -48
  435. package/esm2022/mapbox/lib/mapbox.util.mjs +0 -15
  436. package/esm2022/table/dereekb-dbx-web-table.mjs +0 -5
  437. package/esm2022/table/index.mjs +0 -2
  438. package/esm2022/table/lib/date/date.table.column.header.component.mjs +0 -55
  439. package/esm2022/table/lib/date/daterange.table.cell.input.component.mjs +0 -154
  440. package/esm2022/table/lib/date/index.mjs +0 -4
  441. package/esm2022/table/lib/date/table.date.module.mjs +0 -18
  442. package/esm2022/table/lib/index.mjs +0 -24
  443. package/esm2022/table/lib/table.cell.action.component.mjs +0 -28
  444. package/esm2022/table/lib/table.cell.input.component.mjs +0 -31
  445. package/esm2022/table/lib/table.cell.summaryend.component.mjs +0 -28
  446. package/esm2022/table/lib/table.cell.summarystart.component.mjs +0 -31
  447. package/esm2022/table/lib/table.column.directive.mjs +0 -20
  448. package/esm2022/table/lib/table.column.footer.component.mjs +0 -35
  449. package/esm2022/table/lib/table.column.header.component.mjs +0 -35
  450. package/esm2022/table/lib/table.column.size.directive.mjs +0 -103
  451. package/esm2022/table/lib/table.column.size.mjs +0 -3
  452. package/esm2022/table/lib/table.component.mjs +0 -179
  453. package/esm2022/table/lib/table.directive.mjs +0 -30
  454. package/esm2022/table/lib/table.fullsummaryrow.component.mjs +0 -34
  455. package/esm2022/table/lib/table.group.directive.mjs +0 -20
  456. package/esm2022/table/lib/table.group.footer.component.mjs +0 -35
  457. package/esm2022/table/lib/table.group.header.component.mjs +0 -35
  458. package/esm2022/table/lib/table.item.action.component.mjs +0 -35
  459. package/esm2022/table/lib/table.item.cell.component.mjs +0 -29
  460. package/esm2022/table/lib/table.item.directive.mjs +0 -18
  461. package/esm2022/table/lib/table.item.header.component.mjs +0 -28
  462. package/esm2022/table/lib/table.mjs +0 -10
  463. package/esm2022/table/lib/table.module.mjs +0 -18
  464. package/esm2022/table/lib/table.reader.mjs +0 -103
  465. package/esm2022/table/lib/table.store.mjs +0 -70
  466. package/index.d.ts +0 -1
  467. package/lib/action/action.confirm.directive.d.ts +0 -32
  468. package/lib/action/action.module.d.ts +0 -12
  469. package/lib/action/index.d.ts +0 -5
  470. package/lib/action/key.trigger.directive.d.ts +0 -15
  471. package/lib/action/snackbar/action.snackbar.component.d.ts +0 -35
  472. package/lib/action/snackbar/action.snackbar.d.ts +0 -52
  473. package/lib/action/snackbar/action.snackbar.default.d.ts +0 -2
  474. package/lib/action/snackbar/action.snackbar.directive.d.ts +0 -22
  475. package/lib/action/snackbar/action.snackbar.generator.d.ts +0 -32
  476. package/lib/action/snackbar/action.snackbar.module.d.ts +0 -8
  477. package/lib/action/snackbar/action.snackbar.service.d.ts +0 -38
  478. package/lib/action/snackbar/index.d.ts +0 -7
  479. package/lib/action/transition/action.transition.module.d.ts +0 -19
  480. package/lib/action/transition/index.d.ts +0 -3
  481. package/lib/action/transition/transition.safety.dialog.component.d.ts +0 -15
  482. package/lib/action/transition/transition.safety.directive.d.ts +0 -45
  483. package/lib/button/button.component.d.ts +0 -39
  484. package/lib/button/button.d.ts +0 -20
  485. package/lib/button/button.module.d.ts +0 -15
  486. package/lib/button/button.spacer.directive.d.ts +0 -8
  487. package/lib/button/icon/icon.button.component.d.ts +0 -9
  488. package/lib/button/icon/icon.button.module.d.ts +0 -10
  489. package/lib/button/icon/index.d.ts +0 -2
  490. package/lib/button/index.d.ts +0 -6
  491. package/lib/button/progress/abstract.progress.button.directive.d.ts +0 -29
  492. package/lib/button/progress/bar.button.component.d.ts +0 -8
  493. package/lib/button/progress/button.progress.config.d.ts +0 -83
  494. package/lib/button/progress/button.progress.module.d.ts +0 -11
  495. package/lib/button/progress/button.progress.providers.d.ts +0 -9
  496. package/lib/button/progress/index.d.ts +0 -5
  497. package/lib/button/progress/spinner.button.component.d.ts +0 -22
  498. package/lib/dbx-web.module.d.ts +0 -9
  499. package/lib/error/default.error.widget.component.d.ts +0 -8
  500. package/lib/error/error.action.directive.d.ts +0 -14
  501. package/lib/error/error.api.d.ts +0 -13
  502. package/lib/error/error.component.d.ts +0 -36
  503. package/lib/error/error.details.component.d.ts +0 -7
  504. package/lib/error/error.loading.directive.d.ts +0 -18
  505. package/lib/error/error.module.d.ts +0 -30
  506. package/lib/error/error.popover.component.d.ts +0 -18
  507. package/lib/error/error.snackbar.action.directive.d.ts +0 -16
  508. package/lib/error/error.snackbar.component.d.ts +0 -28
  509. package/lib/error/error.snackbar.service.d.ts +0 -17
  510. package/lib/error/error.view.component.d.ts +0 -22
  511. package/lib/error/error.widget.component.d.ts +0 -14
  512. package/lib/error/error.widget.directive.d.ts +0 -9
  513. package/lib/error/error.widget.service.d.ts +0 -60
  514. package/lib/error/index.d.ts +0 -16
  515. package/lib/error/state.d.ts +0 -16
  516. package/lib/extension/download/blob/download.blob.button.component.d.ts +0 -55
  517. package/lib/extension/download/blob/index.d.ts +0 -1
  518. package/lib/extension/download/index.d.ts +0 -2
  519. package/lib/extension/download/text/download.text.component.d.ts +0 -39
  520. package/lib/extension/download/text/download.text.d.ts +0 -5
  521. package/lib/extension/download/text/download.text.module.d.ts +0 -10
  522. package/lib/extension/download/text/index.d.ts +0 -3
  523. package/lib/extension/help/absract.help.widget.directive.d.ts +0 -13
  524. package/lib/extension/help/help.context.d.ts +0 -11
  525. package/lib/extension/help/help.context.directive.d.ts +0 -17
  526. package/lib/extension/help/help.context.service.d.ts +0 -20
  527. package/lib/extension/help/help.d.ts +0 -15
  528. package/lib/extension/help/help.providers.d.ts +0 -22
  529. package/lib/extension/help/help.view.list.component.d.ts +0 -39
  530. package/lib/extension/help/help.view.list.entry.component.d.ts +0 -16
  531. package/lib/extension/help/help.view.popover.button.component.d.ts +0 -32
  532. package/lib/extension/help/help.view.popover.component.d.ts +0 -81
  533. package/lib/extension/help/help.widget.d.ts +0 -52
  534. package/lib/extension/help/help.widget.service.d.ts +0 -74
  535. package/lib/extension/help/index.d.ts +0 -12
  536. package/lib/extension/index.d.ts +0 -7
  537. package/lib/extension/model/index.d.ts +0 -8
  538. package/lib/extension/model/model.providers.d.ts +0 -13
  539. package/lib/extension/model/model.state.service.d.ts +0 -12
  540. package/lib/extension/model/model.tracker.d.ts +0 -32
  541. package/lib/extension/model/model.tracker.service.d.ts +0 -19
  542. package/lib/extension/model/model.tracker.view.storage.d.ts +0 -30
  543. package/lib/extension/model/model.types.d.ts +0 -41
  544. package/lib/extension/model/model.types.service.d.ts +0 -30
  545. package/lib/extension/model/state/actions/actions.d.ts +0 -1
  546. package/lib/extension/model/state/actions/index.d.ts +0 -3
  547. package/lib/extension/model/state/actions/model.actions.d.ts +0 -9
  548. package/lib/extension/model/state/effects/tracker.effects.d.ts +0 -13
  549. package/lib/extension/model/state/index.d.ts +0 -5
  550. package/lib/extension/model/state/reducers/index.d.ts +0 -15
  551. package/lib/extension/model/state/reducers/model.module.config.d.ts +0 -5
  552. package/lib/extension/model/state/state.d.ts +0 -2
  553. package/lib/extension/preview/index.d.ts +0 -4
  554. package/lib/extension/preview/webfilepreview.component.d.ts +0 -19
  555. package/lib/extension/preview/webfilepreview.d.ts +0 -94
  556. package/lib/extension/preview/webfilepreview.service.d.ts +0 -36
  557. package/lib/extension/preview/webfilepreview.service.preset.d.ts +0 -6
  558. package/lib/extension/structure/index.d.ts +0 -3
  559. package/lib/extension/structure/structure.body.directive.d.ts +0 -9
  560. package/lib/extension/structure/structure.module.d.ts +0 -11
  561. package/lib/extension/structure/structure.structure.directive.d.ts +0 -17
  562. package/lib/extension/widget/index.d.ts +0 -6
  563. package/lib/extension/widget/widget.component.d.ts +0 -16
  564. package/lib/extension/widget/widget.d.ts +0 -19
  565. package/lib/extension/widget/widget.directive.d.ts +0 -6
  566. package/lib/extension/widget/widget.list.component.d.ts +0 -25
  567. package/lib/extension/widget/widget.module.d.ts +0 -18
  568. package/lib/extension/widget/widget.service.d.ts +0 -32
  569. package/lib/extension/zip/index.d.ts +0 -4
  570. package/lib/extension/zip/zip.blob.d.ts +0 -9
  571. package/lib/extension/zip/zip.blob.preview.component.d.ts +0 -54
  572. package/lib/extension/zip/zip.blob.preview.list.component.d.ts +0 -25
  573. package/lib/extension/zip/zip.preview.component.d.ts +0 -31
  574. package/lib/extension/zip/zip.preview.dialog.component.d.ts +0 -17
  575. package/lib/index.d.ts +0 -12
  576. package/lib/interaction/dialog/abstract.dialog.directive.d.ts +0 -15
  577. package/lib/interaction/dialog/dialog.action.directive.d.ts +0 -22
  578. package/lib/interaction/dialog/dialog.content.close.component.d.ts +0 -11
  579. package/lib/interaction/dialog/dialog.content.d.ts +0 -4
  580. package/lib/interaction/dialog/dialog.content.directive.d.ts +0 -12
  581. package/lib/interaction/dialog/dialog.content.footer.component.d.ts +0 -21
  582. package/lib/interaction/dialog/dialog.injection.component.d.ts +0 -19
  583. package/lib/interaction/dialog/dialog.module.d.ts +0 -18
  584. package/lib/interaction/dialog/index.d.ts +0 -8
  585. package/lib/interaction/filter/filter.config.d.ts +0 -62
  586. package/lib/interaction/filter/filter.menu.d.ts +0 -22
  587. package/lib/interaction/filter/filter.module.d.ts +0 -14
  588. package/lib/interaction/filter/filter.partial.d.ts +0 -20
  589. package/lib/interaction/filter/filter.partial.list.component.d.ts +0 -6
  590. package/lib/interaction/filter/filter.partial.menu.component.d.ts +0 -16
  591. package/lib/interaction/filter/filter.popover.button.component.d.ts +0 -13
  592. package/lib/interaction/filter/filter.popover.button.directive.d.ts +0 -17
  593. package/lib/interaction/filter/filter.popover.component.d.ts +0 -40
  594. package/lib/interaction/filter/filter.preset.directive.d.ts +0 -23
  595. package/lib/interaction/filter/filter.preset.list.component.d.ts +0 -7
  596. package/lib/interaction/filter/filter.preset.menu.component.d.ts +0 -17
  597. package/lib/interaction/filter/filter.wrapper.component.d.ts +0 -19
  598. package/lib/interaction/filter/index.d.ts +0 -12
  599. package/lib/interaction/iframe/embed.component.d.ts +0 -40
  600. package/lib/interaction/iframe/embed.dialog.component.d.ts +0 -18
  601. package/lib/interaction/iframe/iframe.component.d.ts +0 -22
  602. package/lib/interaction/iframe/iframe.dialog.component.d.ts +0 -15
  603. package/lib/interaction/iframe/index.d.ts +0 -4
  604. package/lib/interaction/index.d.ts +0 -8
  605. package/lib/interaction/interaction.module.d.ts +0 -20
  606. package/lib/interaction/popover/abstract.popover.directive.d.ts +0 -12
  607. package/lib/interaction/popover/abstract.popover.ref.directive.d.ts +0 -28
  608. package/lib/interaction/popover/index.d.ts +0 -16
  609. package/lib/interaction/popover/popover.action.directive.d.ts +0 -25
  610. package/lib/interaction/popover/popover.close.component.d.ts +0 -10
  611. package/lib/interaction/popover/popover.component.d.ts +0 -84
  612. package/lib/interaction/popover/popover.content.component.d.ts +0 -18
  613. package/lib/interaction/popover/popover.content.module.d.ts +0 -14
  614. package/lib/interaction/popover/popover.controls.directive.d.ts +0 -12
  615. package/lib/interaction/popover/popover.coordinator.component.d.ts +0 -16
  616. package/lib/interaction/popover/popover.coordinator.service.d.ts +0 -16
  617. package/lib/interaction/popover/popover.d.ts +0 -16
  618. package/lib/interaction/popover/popover.header.component.d.ts +0 -15
  619. package/lib/interaction/popover/popover.module.d.ts +0 -10
  620. package/lib/interaction/popover/popover.position.strategy.d.ts +0 -11
  621. package/lib/interaction/popover/popover.scroll.content.directive.d.ts +0 -13
  622. package/lib/interaction/popover/popover.service.d.ts +0 -19
  623. package/lib/interaction/popup/abstract.popup.directive.d.ts +0 -11
  624. package/lib/interaction/popup/index.d.ts +0 -11
  625. package/lib/interaction/popup/popup.component.d.ts +0 -57
  626. package/lib/interaction/popup/popup.content.component.d.ts +0 -11
  627. package/lib/interaction/popup/popup.controls.buttons.component.d.ts +0 -18
  628. package/lib/interaction/popup/popup.controls.component.d.ts +0 -9
  629. package/lib/interaction/popup/popup.coordinator.component.d.ts +0 -16
  630. package/lib/interaction/popup/popup.coordinator.service.d.ts +0 -16
  631. package/lib/interaction/popup/popup.d.ts +0 -26
  632. package/lib/interaction/popup/popup.module.d.ts +0 -11
  633. package/lib/interaction/popup/popup.position.strategy.d.ts +0 -14
  634. package/lib/interaction/popup/popup.service.d.ts +0 -18
  635. package/lib/interaction/prompt/index.d.ts +0 -9
  636. package/lib/interaction/prompt/prompt.box.directive.d.ts +0 -6
  637. package/lib/interaction/prompt/prompt.button.confirm.directive.d.ts +0 -16
  638. package/lib/interaction/prompt/prompt.component.d.ts +0 -11
  639. package/lib/interaction/prompt/prompt.confirm.component.d.ts +0 -22
  640. package/lib/interaction/prompt/prompt.confirm.d.ts +0 -7
  641. package/lib/interaction/prompt/prompt.confirm.dialog.component.d.ts +0 -22
  642. package/lib/interaction/prompt/prompt.confirm.directive.d.ts +0 -29
  643. package/lib/interaction/prompt/prompt.module.d.ts +0 -13
  644. package/lib/interaction/prompt/prompt.page.component.d.ts +0 -5
  645. package/lib/interaction/upload/abstract.upload.component.d.ts +0 -54
  646. package/lib/interaction/upload/index.d.ts +0 -7
  647. package/lib/interaction/upload/upload.accept.d.ts +0 -87
  648. package/lib/interaction/upload/upload.action.d.ts +0 -17
  649. package/lib/interaction/upload/upload.action.directive.d.ts +0 -17
  650. package/lib/interaction/upload/upload.area.component.d.ts +0 -22
  651. package/lib/interaction/upload/upload.button.component.d.ts +0 -24
  652. package/lib/interaction/upload/upload.component.d.ts +0 -60
  653. package/lib/keypress/index.d.ts +0 -2
  654. package/lib/keypress/keydown.listener.directive.d.ts +0 -23
  655. package/lib/keypress/keypress.module.d.ts +0 -10
  656. package/lib/layout/avatar/avatar.component.d.ts +0 -34
  657. package/lib/layout/avatar/avatar.d.ts +0 -58
  658. package/lib/layout/avatar/avatar.service.d.ts +0 -66
  659. package/lib/layout/avatar/avatar.view.component.d.ts +0 -29
  660. package/lib/layout/avatar/index.d.ts +0 -3
  661. package/lib/layout/bar/bar.d.ts +0 -2
  662. package/lib/layout/bar/bar.directive.d.ts +0 -11
  663. package/lib/layout/bar/bar.header.component.d.ts +0 -12
  664. package/lib/layout/bar/bar.layout.module.d.ts +0 -12
  665. package/lib/layout/bar/index.d.ts +0 -4
  666. package/lib/layout/bar/pagebar.component.d.ts +0 -8
  667. package/lib/layout/block/block.layout.module.d.ts +0 -12
  668. package/lib/layout/block/index.d.ts +0 -2
  669. package/lib/layout/block/two.block.component.d.ts +0 -20
  670. package/lib/layout/card/card.box.component.d.ts +0 -10
  671. package/lib/layout/card/card.box.container.directive.d.ts +0 -8
  672. package/lib/layout/card/card.box.layout.module.d.ts +0 -8
  673. package/lib/layout/card/index.d.ts +0 -3
  674. package/lib/layout/column/column.layout.module.d.ts +0 -8
  675. package/lib/layout/column/index.d.ts +0 -3
  676. package/lib/layout/column/one/index.d.ts +0 -2
  677. package/lib/layout/column/one/one.column.component.d.ts +0 -12
  678. package/lib/layout/column/one/one.column.module.d.ts +0 -10
  679. package/lib/layout/column/two/index.d.ts +0 -10
  680. package/lib/layout/column/two/two.column.back.directive.d.ts +0 -15
  681. package/lib/layout/column/two/two.column.component.d.ts +0 -58
  682. package/lib/layout/column/two/two.column.context.directive.d.ts +0 -13
  683. package/lib/layout/column/two/two.column.full.left.directive.d.ts +0 -12
  684. package/lib/layout/column/two/two.column.head.directive.d.ts +0 -11
  685. package/lib/layout/column/two/two.column.module.d.ts +0 -14
  686. package/lib/layout/column/two/two.column.right.component.d.ts +0 -29
  687. package/lib/layout/column/two/two.column.sref.directive.d.ts +0 -13
  688. package/lib/layout/column/two/two.column.sref.showright.directive.d.ts +0 -13
  689. package/lib/layout/column/two/two.column.store.d.ts +0 -125
  690. package/lib/layout/compact/compact.d.ts +0 -16
  691. package/lib/layout/compact/compact.directive.d.ts +0 -14
  692. package/lib/layout/compact/compact.layout.module.d.ts +0 -10
  693. package/lib/layout/compact/compact.store.d.ts +0 -13
  694. package/lib/layout/compact/index.d.ts +0 -4
  695. package/lib/layout/content/content.border.directive.d.ts +0 -11
  696. package/lib/layout/content/content.box.directive.d.ts +0 -10
  697. package/lib/layout/content/content.container.directive.d.ts +0 -14
  698. package/lib/layout/content/content.directive.d.ts +0 -8
  699. package/lib/layout/content/content.elevate.directive.d.ts +0 -9
  700. package/lib/layout/content/content.layout.module.d.ts +0 -16
  701. package/lib/layout/content/content.page.directive.d.ts +0 -8
  702. package/lib/layout/content/content.pit.directive.d.ts +0 -15
  703. package/lib/layout/content/index.d.ts +0 -8
  704. package/lib/layout/flag/flag.component.d.ts +0 -10
  705. package/lib/layout/flag/flag.layout.module.d.ts +0 -8
  706. package/lib/layout/flag/flag.prompt.component.d.ts +0 -12
  707. package/lib/layout/flag/index.d.ts +0 -3
  708. package/lib/layout/flex/flex.d.ts +0 -4
  709. package/lib/layout/flex/flex.group.directive.d.ts +0 -18
  710. package/lib/layout/flex/flex.layout.module.d.ts +0 -11
  711. package/lib/layout/flex/flex.size.directive.d.ts +0 -11
  712. package/lib/layout/flex/index.d.ts +0 -4
  713. package/lib/layout/index.d.ts +0 -16
  714. package/lib/layout/item/index.d.ts +0 -1
  715. package/lib/layout/item/item.icon.component.d.ts +0 -11
  716. package/lib/layout/layout.module.d.ts +0 -18
  717. package/lib/layout/list/grid/index.d.ts +0 -2
  718. package/lib/layout/list/grid/list.grid.view.component.d.ts +0 -50
  719. package/lib/layout/list/grid/list.grid.view.directive.d.ts +0 -24
  720. package/lib/layout/list/group/index.d.ts +0 -3
  721. package/lib/layout/list/group/list.view.value.group.d.ts +0 -44
  722. package/lib/layout/list/group/list.view.value.group.title.d.ts +0 -53
  723. package/lib/layout/list/group/list.view.value.group.title.directive.d.ts +0 -15
  724. package/lib/layout/list/group/list.view.value.group.title.header.component.d.ts +0 -21
  725. package/lib/layout/list/index.d.ts +0 -20
  726. package/lib/layout/list/list.component.d.ts +0 -134
  727. package/lib/layout/list/list.content.empty.component.d.ts +0 -8
  728. package/lib/layout/list/list.directive.d.ts +0 -54
  729. package/lib/layout/list/list.layout.module.d.ts +0 -34
  730. package/lib/layout/list/list.module.d.ts +0 -13
  731. package/lib/layout/list/list.track.d.ts +0 -6
  732. package/lib/layout/list/list.view.d.ts +0 -59
  733. package/lib/layout/list/list.view.directive.d.ts +0 -43
  734. package/lib/layout/list/list.view.selection.directive.d.ts +0 -25
  735. package/lib/layout/list/list.view.value.component.d.ts +0 -56
  736. package/lib/layout/list/list.view.value.d.ts +0 -53
  737. package/lib/layout/list/list.view.value.directive.d.ts +0 -21
  738. package/lib/layout/list/list.view.value.item.directive.d.ts +0 -8
  739. package/lib/layout/list/list.view.value.modifier.d.ts +0 -12
  740. package/lib/layout/list/list.view.value.selection.component.d.ts +0 -32
  741. package/lib/layout/list/list.wrapper.d.ts +0 -21
  742. package/lib/layout/list/meta/index.d.ts +0 -1
  743. package/lib/layout/list/meta/list.view.meta.icon.component.d.ts +0 -17
  744. package/lib/layout/list/modifier/index.d.ts +0 -4
  745. package/lib/layout/list/modifier/list.modifier.module.d.ts +0 -12
  746. package/lib/layout/list/modifier/list.view.value.modifier.directive.d.ts +0 -36
  747. package/lib/layout/list/modifier/list.view.value.modifier.ripple.directive.d.ts +0 -15
  748. package/lib/layout/list/modifier/list.view.value.modifier.selection.directive.d.ts +0 -15
  749. package/lib/layout/section/index.d.ts +0 -7
  750. package/lib/layout/section/section.component.d.ts +0 -11
  751. package/lib/layout/section/section.d.ts +0 -32
  752. package/lib/layout/section/section.header.component.d.ts +0 -21
  753. package/lib/layout/section/section.intro.component.d.ts +0 -14
  754. package/lib/layout/section/section.layout.module.d.ts +0 -14
  755. package/lib/layout/section/section.page.component.d.ts +0 -25
  756. package/lib/layout/section/subsection.component.d.ts +0 -9
  757. package/lib/layout/step/index.d.ts +0 -2
  758. package/lib/layout/step/step.component.d.ts +0 -10
  759. package/lib/layout/step/step.layout.module.d.ts +0 -10
  760. package/lib/layout/style/index.d.ts +0 -9
  761. package/lib/layout/style/spacer.directive.d.ts +0 -5
  762. package/lib/layout/style/style.body.directive.d.ts +0 -16
  763. package/lib/layout/style/style.color.directive.d.ts +0 -12
  764. package/lib/layout/style/style.d.ts +0 -58
  765. package/lib/layout/style/style.directive.d.ts +0 -14
  766. package/lib/layout/style/style.layout.module.d.ts +0 -11
  767. package/lib/layout/style/style.providers.d.ts +0 -19
  768. package/lib/layout/style/style.service.d.ts +0 -45
  769. package/lib/layout/style/style.set.directive.d.ts +0 -33
  770. package/lib/layout/text/address.component.d.ts +0 -7
  771. package/lib/layout/text/copy.text.component.d.ts +0 -17
  772. package/lib/layout/text/copy.text.directive.d.ts +0 -23
  773. package/lib/layout/text/detail.block.component.d.ts +0 -13
  774. package/lib/layout/text/detail.block.header.component.d.ts +0 -9
  775. package/lib/layout/text/icon.spacer.component.d.ts +0 -8
  776. package/lib/layout/text/index.d.ts +0 -12
  777. package/lib/layout/text/label.block.component.d.ts +0 -10
  778. package/lib/layout/text/linkify.component.d.ts +0 -13
  779. package/lib/layout/text/number.limit.component.d.ts +0 -40
  780. package/lib/layout/text/text.chip.directive.d.ts +0 -9
  781. package/lib/layout/text/text.chips.component.d.ts +0 -15
  782. package/lib/layout/text/text.module.d.ts +0 -17
  783. package/lib/loading/basic-loading.component.d.ts +0 -32
  784. package/lib/loading/index.d.ts +0 -6
  785. package/lib/loading/loading-progress.component.d.ts +0 -23
  786. package/lib/loading/loading.action.directive.d.ts +0 -16
  787. package/lib/loading/loading.component.d.ts +0 -46
  788. package/lib/loading/loading.d.ts +0 -10
  789. package/lib/loading/loading.module.d.ts +0 -10
  790. package/lib/router/index.d.ts +0 -2
  791. package/lib/router/layout/anchor/anchor.component.d.ts +0 -23
  792. package/lib/router/layout/anchor/anchor.content.component.d.ts +0 -20
  793. package/lib/router/layout/anchor/anchor.icon.component.d.ts +0 -11
  794. package/lib/router/layout/anchor/anchor.link.component.d.ts +0 -14
  795. package/lib/router/layout/anchor/anchor.module.d.ts +0 -23
  796. package/lib/router/layout/anchor/anchor.segue.directive.d.ts +0 -17
  797. package/lib/router/layout/anchor/index.d.ts +0 -6
  798. package/lib/router/layout/anchorlist/anchorlist.component.d.ts +0 -16
  799. package/lib/router/layout/anchorlist/anchorlist.module.d.ts +0 -10
  800. package/lib/router/layout/anchorlist/index.d.ts +0 -2
  801. package/lib/router/layout/index.d.ts +0 -6
  802. package/lib/router/layout/layout.module.d.ts +0 -11
  803. package/lib/router/layout/list/index.d.ts +0 -2
  804. package/lib/router/layout/list/list.module.d.ts +0 -10
  805. package/lib/router/layout/list/router.list.directive.d.ts +0 -15
  806. package/lib/router/layout/navbar/index.d.ts +0 -2
  807. package/lib/router/layout/navbar/navbar.component.d.ts +0 -48
  808. package/lib/router/layout/navbar/navbar.module.d.ts +0 -10
  809. package/lib/router/layout/sidenav/index.d.ts +0 -7
  810. package/lib/router/layout/sidenav/sidenav.button.component.d.ts +0 -18
  811. package/lib/router/layout/sidenav/sidenav.component.d.ts +0 -36
  812. package/lib/router/layout/sidenav/sidenav.d.ts +0 -6
  813. package/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.d.ts +0 -19
  814. package/lib/router/layout/sidenav/sidenav.module.d.ts +0 -11
  815. package/lib/router/layout/sidenav/sidenav.page.component.d.ts +0 -19
  816. package/lib/router/layout/sidenav/sidenav.pagebar.component.d.ts +0 -11
  817. package/lib/router/provider/index.d.ts +0 -3
  818. package/lib/router/provider/ngrouter/anchor.component.d.ts +0 -14
  819. package/lib/router/provider/ngrouter/angular.router.providers.d.ts +0 -7
  820. package/lib/router/provider/ngrouter/index.d.ts +0 -2
  821. package/lib/router/provider/router.provider.config.d.ts +0 -14
  822. package/lib/router/provider/uirouter/anchor.component.d.ts +0 -19
  823. package/lib/router/provider/uirouter/index.d.ts +0 -2
  824. package/lib/router/provider/uirouter/uirouter.router.providers.d.ts +0 -7
  825. package/lib/screen/index.d.ts +0 -5
  826. package/lib/screen/resize.d.ts +0 -19
  827. package/lib/screen/resize.directive.d.ts +0 -14
  828. package/lib/screen/screen.d.ts +0 -36
  829. package/lib/screen/screen.providers.d.ts +0 -15
  830. package/lib/screen/screen.service.d.ts +0 -59
  831. package/lib/util/cdk.d.ts +0 -9
  832. package/lib/util/click.d.ts +0 -29
  833. package/lib/util/clipboard.d.ts +0 -78
  834. package/lib/util/clipboard.directive.d.ts +0 -12
  835. package/lib/util/index.d.ts +0 -4
  836. package/mapbox/index.d.ts +0 -1
  837. package/mapbox/lib/index.d.ts +0 -21
  838. package/mapbox/lib/mapbox.change.service.d.ts +0 -20
  839. package/mapbox/lib/mapbox.d.ts +0 -93
  840. package/mapbox/lib/mapbox.injection.component.d.ts +0 -11
  841. package/mapbox/lib/mapbox.injection.store.d.ts +0 -45
  842. package/mapbox/lib/mapbox.injection.store.provide.d.ts +0 -23
  843. package/mapbox/lib/mapbox.layout.component.d.ts +0 -56
  844. package/mapbox/lib/mapbox.layout.drawer.component.d.ts +0 -11
  845. package/mapbox/lib/mapbox.layout.resize.sync.directive.d.ts +0 -14
  846. package/mapbox/lib/mapbox.marker.component.d.ts +0 -16
  847. package/mapbox/lib/mapbox.marker.d.ts +0 -65
  848. package/mapbox/lib/mapbox.markers.component.d.ts +0 -14
  849. package/mapbox/lib/mapbox.menu.component.d.ts +0 -29
  850. package/mapbox/lib/mapbox.module.d.ts +0 -16
  851. package/mapbox/lib/mapbox.options.d.ts +0 -11
  852. package/mapbox/lib/mapbox.providers.d.ts +0 -17
  853. package/mapbox/lib/mapbox.rxjs.d.ts +0 -45
  854. package/mapbox/lib/mapbox.service.d.ts +0 -24
  855. package/mapbox/lib/mapbox.store.d.ts +0 -239
  856. package/mapbox/lib/mapbox.store.map.directive.d.ts +0 -17
  857. package/mapbox/lib/mapbox.store.provide.d.ts +0 -23
  858. package/mapbox/lib/mapbox.util.d.ts +0 -27
  859. package/table/index.d.ts +0 -1
  860. package/table/lib/date/date.table.column.header.component.d.ts +0 -18
  861. package/table/lib/date/daterange.table.cell.input.component.d.ts +0 -69
  862. package/table/lib/date/index.d.ts +0 -3
  863. package/table/lib/date/table.date.module.d.ts +0 -8
  864. package/table/lib/index.d.ts +0 -23
  865. package/table/lib/table.cell.action.component.d.ts +0 -9
  866. package/table/lib/table.cell.input.component.d.ts +0 -12
  867. package/table/lib/table.cell.summaryend.component.d.ts +0 -9
  868. package/table/lib/table.cell.summarystart.component.d.ts +0 -12
  869. package/table/lib/table.column.directive.d.ts +0 -14
  870. package/table/lib/table.column.footer.component.d.ts +0 -8
  871. package/table/lib/table.column.header.component.d.ts +0 -8
  872. package/table/lib/table.column.size.d.ts +0 -2
  873. package/table/lib/table.column.size.directive.d.ts +0 -29
  874. package/table/lib/table.component.d.ts +0 -59
  875. package/table/lib/table.d.ts +0 -143
  876. package/table/lib/table.directive.d.ts +0 -16
  877. package/table/lib/table.fullsummaryrow.component.d.ts +0 -12
  878. package/table/lib/table.group.directive.d.ts +0 -14
  879. package/table/lib/table.group.footer.component.d.ts +0 -9
  880. package/table/lib/table.group.header.component.d.ts +0 -9
  881. package/table/lib/table.item.action.component.d.ts +0 -9
  882. package/table/lib/table.item.cell.component.d.ts +0 -12
  883. package/table/lib/table.item.directive.d.ts +0 -13
  884. package/table/lib/table.item.header.component.d.ts +0 -8
  885. package/table/lib/table.module.d.ts +0 -8
  886. package/table/lib/table.reader.d.ts +0 -102
  887. package/table/lib/table.store.d.ts +0 -42
@@ -1 +1 @@
1
- {"version":3,"file":"dereekb-dbx-web-mapbox.mjs","sources":["../../../../packages/dbx-web/mapbox/src/lib/mapbox.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.util.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.rxjs.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.change.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.map.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.menu.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.markers.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.resize.sync.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.providers.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.ts","../../../../packages/dbx-web/mapbox/src/dereekb-dbx-web-mapbox.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { latLngPoint, LatLngPointInput, Milliseconds } from '@dereekb/util';\nimport { MapboxOptions, MapOptions } from 'mapbox-gl';\nimport { KnownMapboxStyle, MapboxZoomLevel } from './mapbox';\n\nexport class DbxMapboxConfig {\n readonly defaultStyle?: MapboxOptions['style'];\n readonly defaultZoom?: MapboxZoomLevel;\n readonly defaultCenter?: LatLngPointInput;\n readonly defaultStoreRefreshPeriod?: number;\n}\n\nexport const DEFAULT_MAPBOX_STYLE: KnownMapboxStyle = 'mapbox://styles/mapbox/streets-v12';\nexport const DEFAULT_MAPBOX_CENTER: LatLngPointInput = [30.2690138665, -97.7408297965];\nexport const DEFAULT_MAPBOX_ZOOM: MapboxZoomLevel = 8;\nexport const DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD: Milliseconds = 200;\n\n@Injectable()\nexport class DbxMapboxService {\n private readonly _config = inject(DbxMapboxConfig, { optional: true }) ?? {};\n\n get defaultStyle() {\n return this._config.defaultStyle ?? DEFAULT_MAPBOX_STYLE;\n }\n\n get defaultZoom(): MapboxZoomLevel {\n return this._config.defaultZoom ?? DEFAULT_MAPBOX_ZOOM;\n }\n\n get defaultCenter(): LatLngPointInput {\n return this._config.defaultCenter ?? DEFAULT_MAPBOX_CENTER;\n }\n\n get mapboxMapStoreTimerRefreshPeriod(): number {\n return this._config.defaultStoreRefreshPeriod ?? DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD;\n }\n\n initializationOptions(): Partial<MapOptions> {\n return {\n style: this.defaultStyle,\n zoom: this.defaultZoom,\n center: latLngPoint(this.defaultCenter)\n };\n }\n}\n","import { type LatLngBound, type LatLngPoint, type Vector, type VectorTuple } from '@dereekb/util';\nimport { bounds } from '@placemarkio/geo-viewport';\nimport { type MapboxTileSize, type MapboxZoomLevel } from './mapbox';\n\nexport interface MapboxViewportBoundFunctionConfig {\n readonly mapCanvasSize: Vector;\n /**\n * Mapbox tilesize being used. Defaults to 512x512.\n */\n readonly tileSize?: MapboxTileSize;\n}\n\n/**\n * Input for MapboxViewportBoundFunction.\n */\nexport interface MapboxViewportBoundFunctionInput {\n /**\n * Center of the viewport\n */\n readonly center: LatLngPoint;\n /**\n * Zoom level\n */\n readonly zoom: MapboxZoomLevel;\n}\n\n/**\n * Used to calculate the bounds of a view/object given the input MapboxViewportBoundFunctionInput.\n */\nexport type MapboxViewportBoundFunction = (input: MapboxViewportBoundFunctionInput) => LatLngBound;\n\nexport function mapboxViewportBoundFunction(config: MapboxViewportBoundFunctionConfig): MapboxViewportBoundFunction {\n const { mapCanvasSize, tileSize = 512 } = config;\n const dimensions: VectorTuple = [mapCanvasSize.x, mapCanvasSize.y];\n return ({ center, zoom }) => {\n const boundingBox = bounds([center.lng, center.lat], zoom, dimensions, tileSize);\n const [swLng, swLat, neLng, neLat] = boundingBox;\n\n const result = {\n sw: { lat: swLat, lng: swLng },\n ne: { lat: neLat, lng: neLng }\n };\n\n return result;\n };\n}\n","import { type ObservableOrValue, asObservable } from '@dereekb/rxjs';\nimport { LAT_LONG_10M_PRECISION, type LatLngPointInput, type LatLngBound, type LatLngBoundCheckFunction, latLngPointFunction, roundNumberToStepFunction, type RoundNumberToStepFunctionInput, type LatLngPrecision, type Maybe } from '@dereekb/util';\nimport { combineLatestWith, map, type Observable, type OperatorFunction, switchMap, shareReplay, distinctUntilChanged } from 'rxjs';\nimport { type MapboxZoomLevel } from './mapbox';\nimport { type MapboxViewportBoundFunction } from './mapbox.util';\n\nexport type FilterMapboxBoundReadItemValueFunction<T> = (value: T) => MapboxViewportBoundFunctionItemValue;\n\nexport interface FilterMapboxBoundConfig<T> {\n readonly boundFunctionObs: ObservableOrValue<MapboxViewportBoundFunction>;\n readonly boundDecisionObs: ObservableOrValue<LatLngBoundCheckFunction>;\n /**\n * Reads the value from the input item.\n */\n readonly readValue: FilterMapboxBoundReadItemValueFunction<T>;\n /**\n * Minimum precision to retain. Defaults to LAT_LONG_10M_PRECISION\n */\n readonly precision?: LatLngPrecision;\n /**\n * Amount of zoom rounding to use. By default rounds to 0.5 steps using \"floor\" in order to \"round up\" since zoom values are inversely proportional to bounds area.\n */\n readonly zoomRounding?: RoundNumberToStepFunctionInput;\n /**\n * Default zoom level for item values that do not have an explicit zoom, or a zoom of 0.\n *\n * Defaults to 17, which can produce a viewport/bounds about the size of a park.\n */\n readonly defaultZoom?: MapboxZoomLevel;\n}\n\nexport interface MapboxViewportBoundFunctionItemValue {\n readonly center: LatLngPointInput;\n readonly zoom?: Maybe<MapboxZoomLevel>;\n}\n\nexport interface MapboxViewportBoundFunctionItem<T> {\n readonly value: T;\n readonly bound: LatLngBound;\n}\n\n/**\n * Filters the input objects based on their center and zoom values.\n *\n * This function caches the bounds computations for each of the input values.\n *\n * @param config\n * @returns\n */\nexport function filterByMapboxViewportBound<T>(config: FilterMapboxBoundConfig<T>): OperatorFunction<T[], T[]> {\n const { boundDecisionObs: inputBoundDecisionObs, boundFunctionObs: inputBoundFunctionObs, defaultZoom: inputDefaultZoom = 17, readValue, zoomRounding, precision = LAT_LONG_10M_PRECISION } = config;\n const _latLngPoint = latLngPointFunction({ wrap: false, validate: false, precision });\n const _roundZoom = roundNumberToStepFunction(zoomRounding || { step: 0.5, round: 'floor' });\n\n const boundDecisionObs = asObservable(inputBoundDecisionObs);\n const boundFunctionObs = asObservable(inputBoundFunctionObs);\n\n return (input: Observable<T[]>) => {\n return boundFunctionObs.pipe(\n distinctUntilChanged(),\n switchMap((viewportBoundFunction) => {\n const cache = new Map<string, LatLngBound>();\n\n return input.pipe(\n map((values: T[]) => {\n return values.map((value: T) => {\n const item: MapboxViewportBoundFunctionItemValue = readValue(value);\n const centerLatLng = _latLngPoint(item.center);\n const zoomStep = _roundZoom(item.zoom || inputDefaultZoom);\n const cacheKey = `${zoomStep}_${centerLatLng.lat}_${centerLatLng.lng}`;\n\n const cachedValue = cache.get(cacheKey);\n let bound: LatLngBound;\n\n if (!cachedValue) {\n bound = viewportBoundFunction({ center: centerLatLng, zoom: zoomStep });\n cache.set(cacheKey, bound);\n } else {\n bound = cachedValue;\n }\n\n return {\n value,\n bound\n } as MapboxViewportBoundFunctionItem<T>;\n });\n }),\n combineLatestWith(boundDecisionObs),\n map(([items, boundFunction]) => {\n const valuesInBounds: T[] = [];\n\n items.forEach((item) => {\n if (boundFunction(item.bound)) {\n valuesInBounds.push(item.value);\n }\n });\n\n return valuesInBounds;\n })\n );\n }),\n shareReplay(1)\n );\n };\n}\n","import { cleanup, filterMaybe, onTrueToFalse } from '@dereekb/rxjs';\nimport { Injectable, OnDestroy, inject } from '@angular/core';\nimport {\n isSameLatLngBound,\n isSameLatLngPoint,\n IsWithinLatLngBoundFunction,\n isWithinLatLngBoundFunction,\n LatLngBound,\n latLngBoundFunction,\n LatLngPointInput,\n LatLngPoint,\n latLngPointFunction,\n Maybe,\n OverlapsLatLngBoundFunction,\n overlapsLatLngBoundFunction,\n diffLatLngBoundPoints,\n latLngBoundCenterPoint,\n addLatLngPoints,\n isDefaultLatLngPoint,\n swMostLatLngPoint,\n neMostLatLngPoint,\n latLngBoundWrapsMap,\n Vector,\n filterUndefinedValues,\n latLngBoundFromInput,\n vectorMinimumSizeResizeFunction,\n isSameVector,\n ZoomLevel\n} from '@dereekb/util';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { MapService } from 'ngx-mapbox-gl';\nimport { defaultIfEmpty, distinctUntilChanged, filter, map, shareReplay, switchMap, tap, NEVER, Observable, of, Subscription, startWith, interval, first, combineLatest, EMPTY, OperatorFunction, throttleTime } from 'rxjs';\nimport * as MapboxGl from 'mapbox-gl';\nimport { DbxMapboxClickEvent, KnownMapboxStyle, MapboxBearing, MapboxEaseTo, MapboxEventData, MapboxFitBounds, MapboxFitPositions, MapboxFlyTo, MapboxJumpTo, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSnapToNorth, MapboxStyleConfig, MapboxZoomLevel, MapboxZoomLevelRange } from './mapbox';\nimport { DbxMapboxService } from './mapbox.service';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { mapboxViewportBoundFunction, MapboxViewportBoundFunction } from './mapbox.util';\nimport { FilterMapboxBoundConfig, FilterMapboxBoundReadItemValueFunction, filterByMapboxViewportBound } from './mapbox.rxjs';\n\nexport type MapboxMapLifecycleState = 'init' | 'load' | 'render' | 'idle';\nexport type MapboxMapMoveState = 'init' | 'idle' | 'moving';\nexport type MapboxMapZoomState = 'init' | 'idle' | 'zooming';\nexport type MapboxMapRotateState = 'init' | 'idle' | 'rotating';\n\nexport interface StringMapboxListenerPair {\n type: string;\n listener: (ev: MapboxEventData) => void;\n}\n\nexport interface TypedMapboxListenerPair<T extends keyof MapboxGl.MapEventType> {\n type: T;\n listener: (ev: MapboxGl.MapEventType[T] & MapboxEventData) => void;\n}\n\nexport interface DbxMapboxMarginCalculationSizing {\n leftMargin: number;\n rightMargin: number;\n fullWidth: number;\n}\n\nexport type DbxMapboxStoreBoundRefreshType = 'always' | 'when_not_rendering' | 'only_after_render_finishes';\n\nexport interface DbxMapboxStoreBoundRefreshSettings {\n /**\n * Max bound refresh interval.\n */\n throttle: number;\n /**\n * Whether or not to wait to update the bound until after it has finished rendering.\n */\n refreshType: DbxMapboxStoreBoundRefreshType;\n}\n\nexport interface DbxMapboxStoreState {\n /**\n * Current MapService being utilized.\n */\n readonly mapService?: Maybe<MapService>;\n readonly lifecycleState: MapboxMapLifecycleState;\n readonly moveState: MapboxMapMoveState;\n readonly zoomState: MapboxMapZoomState;\n readonly rotateState: MapboxMapRotateState;\n /**\n * Visual container size of the map.\n */\n readonly mapCanvasSize?: Maybe<Vector>;\n /**\n * Latest click event\n */\n readonly clickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Latest double-click event\n */\n readonly doubleClickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Latest contextmenu event.\n */\n readonly rightClickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Whether or not to retain content between resets.\n *\n * True by default.\n */\n readonly retainContent: boolean;\n /**\n * Custom drawer content configuration.\n */\n readonly drawerContent?: Maybe<DbxInjectionComponentConfig<unknown>>;\n /**\n * Latest error\n */\n readonly error?: Maybe<Error>;\n /**\n * Map margin/offset\n */\n readonly margin?: Maybe<DbxMapboxMarginCalculationSizing>;\n /**\n * Minimum vector size to use for the viewportBoundFunction$. If not defined there is no minimum.\n */\n readonly minimumVirtualViewportSize?: Maybe<Partial<Vector>>;\n /**\n * Bound refresh settings\n */\n readonly boundRefreshSettings: DbxMapboxStoreBoundRefreshSettings;\n /**\n * Whether or not to use the virtual bound (vs raw bound) for all bound-related observables.\n *\n * Defaults to true.\n */\n readonly useVirtualBound: boolean;\n}\n\n/**\n * Store used for retrieving information.\n */\n@Injectable()\nexport class DbxMapboxMapStore extends ComponentStore<DbxMapboxStoreState> implements OnDestroy {\n private readonly dbxMapboxService = inject(DbxMapboxService);\n\n private safeLatLngPoint = latLngPointFunction({ wrap: true });\n private latLngPoint = latLngPointFunction({ wrap: false, validate: false });\n private latLngBound = latLngBoundFunction({ pointFunction: this.latLngPoint });\n\n constructor() {\n super({\n lifecycleState: 'init',\n moveState: 'init',\n zoomState: 'init',\n rotateState: 'init',\n retainContent: true,\n useVirtualBound: true,\n boundRefreshSettings: {\n throttle: 300,\n refreshType: 'always'\n }\n });\n }\n\n // MARK: Effects\n readonly setMapService = this.effect((input: Observable<Maybe<MapService>>) => {\n return input.pipe(\n switchMap((service: Maybe<MapService>) => {\n this._setMapService(service);\n\n if (!service) {\n return NEVER;\n } else {\n return service.mapLoaded$.pipe(\n defaultIfEmpty(undefined),\n map(() => {\n this._setLifecycleState('idle');\n this._setMoveState('idle');\n this._setZoomState('idle');\n this._setRotateState('idle');\n\n const map = service.mapInstance;\n\n const listenerPairs: StringMapboxListenerPair[] = [];\n\n function addListener<T extends keyof MapboxGl.MapEvents>(type: T, listener: Parameters<typeof map.on<T>>[2]) {\n map.on<T>(type, listener);\n listenerPairs.push({ type, listener } as StringMapboxListenerPair);\n }\n\n addListener('idle', () => this._setLifecycleState('idle'));\n addListener('render', () => this._setLifecycleState('render'));\n addListener('error', (x) => {\n this._setError(x.error);\n });\n\n addListener('movestart', () => this._setMoveState('moving'));\n addListener('moveend', () => this._setMoveState('idle'));\n\n addListener('zoomstart', () => this._setZoomState('zooming'));\n addListener('zoomend', () => this._setZoomState('idle'));\n\n addListener('rotatestart', () => this._setRotateState('rotating'));\n addListener('rotateend', () => this._setRotateState('idle'));\n\n addListener('click', (x) => this._setClickEvent(x));\n addListener('dblclick', (x) => this._setDoubleClickEvent(x));\n addListener('contextmenu', (x) => this._setRightClickEvent(x));\n\n const refreshForResize = () => {\n const { clientWidth: x, clientHeight: y } = map.getCanvas();\n this._setMapCanvasSize({ x, y });\n };\n\n addListener('resize', refreshForResize);\n refreshForResize();\n\n const subs: Subscription[] = [];\n\n return {\n service,\n listenerPairs,\n subs\n };\n })\n );\n }\n }),\n cleanup(({ service, listenerPairs, subs }) => {\n const map = service.mapInstance;\n\n if (map) {\n listenerPairs.forEach((x) => {\n map.off(x.type, x.listener);\n });\n }\n\n subs.forEach((sub) => sub.unsubscribe());\n })\n );\n });\n\n readonly setStyle = this.effect((input: Observable<MapboxStyleConfig | KnownMapboxStyle | string>) => {\n return input.pipe(\n switchMap((style) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (typeof style === 'string') {\n map.setStyle(style);\n } else {\n map.setStyle(style.style, style.options);\n }\n })\n );\n })\n );\n });\n\n readonly setCenter = this.effect((input: Observable<LatLngPointInput>) => {\n return input.pipe(\n switchMap((center: LatLngPointInput) => {\n const centerPoint = this.safeLatLngPoint(center);\n return this.mapInstance$.pipe(tap((map) => map.setCenter(centerPoint)));\n })\n );\n });\n\n readonly setZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setZoom(zoom)));\n })\n );\n });\n\n readonly setZoomRange = this.effect((input: Observable<Partial<MapboxZoomLevelRange>>) => {\n return input.pipe(\n switchMap((zoomRange: Partial<MapboxZoomLevelRange>) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n map.setMinZoom(zoomRange.min || null);\n map.setMaxZoom(zoomRange.max || null);\n })\n );\n })\n );\n });\n\n readonly setMinZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setMinZoom(zoom)));\n })\n );\n });\n\n readonly setMaxZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setMaxZoom(zoom)));\n })\n );\n });\n\n readonly setKeyboardDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.keyboard.enable();\n } else {\n map.keyboard.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setDragRotateDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.dragRotate.enable();\n } else {\n map.dragRotate.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setDragPanDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.dragPan.enable();\n } else {\n map.dragPan.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setZoomDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.scrollZoom.enable();\n map.doubleClickZoom.enable();\n } else {\n map.scrollZoom.disable();\n map.doubleClickZoom.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch) => {\n return this.mapInstance$.pipe(tap((map) => map.setPitch(pitch)));\n })\n );\n });\n\n readonly setMinPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch: number) => {\n return this.mapInstance$.pipe(tap((map) => map.setMinPitch(pitch)));\n })\n );\n });\n\n readonly setMaxPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch: number) => {\n return this.mapInstance$.pipe(tap((map) => map.setMaxPitch(pitch)));\n })\n );\n });\n\n readonly setBearing = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((bearing) => {\n return this.mapInstance$.pipe(tap((map) => map.setBearing(bearing)));\n })\n );\n });\n\n readonly rotateTo = this.effect((input: Observable<MapboxBearing | MapboxRotateTo>) => {\n return input.pipe(\n switchMap((rotateInput: MapboxBearing | MapboxRotateTo) => {\n const rotate: MapboxRotateTo = typeof rotateInput === 'number' ? { bearing: rotateInput } : rotateInput;\n return this.mapInstance$.pipe(tap((map) => map.rotateTo(rotate.bearing, rotate.options, rotate?.eventData)));\n })\n );\n });\n\n readonly resetNorth = this.effect((input: Observable<Maybe<MapboxResetNorth> | void>) => {\n return input.pipe(\n switchMap((reset: Maybe<MapboxResetNorth> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.resetNorth(reset?.options, reset?.eventData)));\n })\n );\n });\n\n readonly resetNorthPitch = this.effect((input: Observable<Maybe<MapboxResetNorthPitch> | void>) => {\n return input.pipe(\n switchMap((reset: Maybe<MapboxResetNorthPitch> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.resetNorthPitch(reset?.options, reset?.eventData)));\n })\n );\n });\n\n readonly snapToNorth = this.effect((input: Observable<Maybe<MapboxSnapToNorth> | void>) => {\n return input.pipe(\n switchMap((snap: Maybe<MapboxSnapToNorth> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.snapToNorth(snap?.options, snap?.eventData)));\n })\n );\n });\n\n readonly fitPositions = this.effect((input: Observable<MapboxFitPositions>) => {\n return input.pipe(\n switchMap((x) => {\n const boundFromInput = latLngBoundFromInput(x.positions);\n\n if (boundFromInput) {\n const bound = this.latLngBound(boundFromInput);\n return this.mapInstance$.pipe(tap((map) => map.fitBounds(new MapboxGl.LngLatBounds(bound.sw, bound.ne), x.options, x.eventData)));\n } else {\n return EMPTY;\n }\n })\n );\n });\n\n readonly fitBounds = this.effect((input: Observable<MapboxFitBounds>) => {\n return input.pipe(\n switchMap((x) => {\n const bound = this.latLngBound(x.bounds);\n return this.mapInstance$.pipe(tap((map) => map.fitBounds(new MapboxGl.LngLatBounds(bound.sw, bound.ne), x.options, x.eventData)));\n })\n );\n });\n\n readonly jumpTo = this.effect((input: Observable<MapboxJumpTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.jumpTo(filterUndefinedValues({ ...x.to, center }), x.eventData)));\n })\n );\n });\n\n readonly easeTo = this.effect((input: Observable<MapboxEaseTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.easeTo(filterUndefinedValues({ ...x.to, center }), x.eventData)));\n })\n );\n });\n\n readonly flyTo = this.effect((input: Observable<MapboxFlyTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.flyTo(filterUndefinedValues({ ...x.to, center }), x.eventData)));\n })\n );\n });\n\n readonly resetPitchAndBearing = this.effect((input: Observable<void>) => {\n return input.pipe(\n switchMap(() => {\n return this.mapInstance$.pipe(\n tap((map) => {\n map.setPitch(0);\n map.setBearing(0);\n })\n );\n })\n );\n });\n\n // MARK: Accessors\n get timerRefreshPeriod() {\n return this.dbxMapboxService.mapboxMapStoreTimerRefreshPeriod;\n }\n\n movingTimer(period = this.timerRefreshPeriod) {\n return this.moveState$.pipe(\n switchMap((x) => {\n if (x === 'moving') {\n return interval(period);\n } else {\n return of(0);\n }\n }),\n shareReplay(1)\n );\n }\n\n lifecycleRenderTimer(period = this.timerRefreshPeriod) {\n return this.lifecycleState$.pipe(\n switchMap((x) => {\n if (x === 'render') {\n return interval(period);\n } else {\n return of(0);\n }\n }),\n shareReplay(1)\n );\n }\n\n atNextIdle(): Observable<boolean> {\n return this.moveState$.pipe(\n map((x) => x === 'idle'),\n first()\n );\n }\n\n calculateNextCenterWithOffset(inputOffset: LatLngPointInput): Observable<LatLngPoint> {\n const offset = this.latLngPoint(inputOffset);\n\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.center$.pipe(\n first(),\n map((center) => {\n const newCenter = {\n lat: offset.lat + center.lat,\n lng: offset.lng + center.lng\n };\n return newCenter;\n })\n )\n )\n );\n }\n\n calculateNextCenterOffsetWithScreenMarginChange(sizing: DbxMapboxMarginCalculationSizing): Observable<LatLngPoint> {\n // TODO: Consider calculating this using the viewport() function from @placemarkio/geo-viewport\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.bound$.pipe(\n first(),\n map((bounds) => {\n const diff = diffLatLngBoundPoints(bounds, true);\n const center = latLngBoundCenterPoint(bounds);\n\n const offsetWidth = sizing.leftMargin + sizing.rightMargin; // 300 + 0\n const newWidth = sizing.fullWidth - offsetWidth; // 1000 - 300 - 0\n const newWidthRatio = newWidth / sizing.fullWidth; // 700 / 1000\n const newCenterLongitudeWidth = diff.lng * newWidthRatio; // 70% offset\n\n const effectiveOffset: LatLngPoint = {\n lat: 0,\n lng: newCenterLongitudeWidth / 2\n };\n\n const newCenter = addLatLngPoints(bounds.sw, effectiveOffset);\n newCenter.lat = center.lat; // retain center position\n\n // console.log({ sizing, bounds, effectiveOffset, newWidth, offsetWidth, diff, center, newCenter });\n\n return newCenter;\n })\n )\n )\n );\n }\n\n filterByViewportBound<T>(input: FilterMapboxBoundReadItemValueFunction<T> | Omit<FilterMapboxBoundConfig<T>, 'boundFunctionObs' | 'boundDecisionObs'>): OperatorFunction<T[], T[]> {\n const config = typeof input === 'function' ? { readValue: input } : input;\n\n return filterByMapboxViewportBound({\n ...config,\n boundFunctionObs: this.viewportBoundFunction$,\n boundDecisionObs: this.overlapsBoundFunction$\n });\n }\n\n readonly currentMapService$ = this.state$.pipe(\n map((x) => x.mapService),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly mapService$ = this.currentMapService$.pipe(filterMaybe());\n\n readonly currentMapInstance$: Observable<Maybe<MapboxGl.Map>> = this.currentMapService$.pipe(\n switchMap((currentMapService: Maybe<MapService>) => {\n if (currentMapService) {\n return currentMapService.mapLoaded$.pipe(\n defaultIfEmpty(undefined),\n map(() => currentMapService.mapInstance)\n );\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly mapInstance$ = this.currentMapInstance$.pipe(filterMaybe());\n\n readonly boundRefreshSettings$ = this.state$.pipe(\n map((x) => x.boundRefreshSettings),\n shareReplay(1)\n );\n\n readonly moveState$ = this.state$.pipe(\n map((x) => x.moveState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly lifecycleState$ = this.state$.pipe(\n map((x) => x.lifecycleState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly zoomState$ = this.state$.pipe(\n map((x) => x.zoomState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly rotateState$ = this.state$.pipe(\n map((x) => x.rotateState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isInitialized$ = this.currentMapInstance$.pipe(\n switchMap((x) => {\n if (!x) {\n return of(false);\n } else {\n return combineLatest([this.moveState$.pipe(map((x) => x === 'idle')), this.lifecycleState$.pipe(map((x) => x === 'idle'))]).pipe(\n filter(([m, l]) => m && l),\n first(),\n map(() => true)\n );\n }\n }),\n shareReplay(1)\n );\n\n readonly whenInitialized$ = this.isInitialized$.pipe(\n filter((x) => true),\n shareReplay(1)\n );\n\n readonly isRendering$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.lifecycleState$.pipe(\n map((x) => x === 'render'),\n distinctUntilChanged(),\n shareReplay(1)\n )\n )\n );\n\n readonly isMoving$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.moveState$.pipe(\n map((x) => x === 'moving'),\n distinctUntilChanged(),\n shareReplay(1)\n )\n )\n );\n\n readonly isZooming$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.zoomState$.pipe(\n map((x) => x === 'zooming'),\n distinctUntilChanged(),\n shareReplay(1)\n )\n )\n );\n\n readonly isRotating$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.rotateState$.pipe(\n map((x) => x === 'rotating'),\n distinctUntilChanged(),\n shareReplay(1)\n )\n )\n );\n\n private readonly _movingTimer = this.movingTimer();\n private readonly _renderingTimer = this.lifecycleRenderTimer();\n\n readonly centerNow$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => this.latLngPoint(x.getCenter())))),\n shareReplay(1)\n )\n ),\n shareReplay(1)\n );\n\n readonly center$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isMoving$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.centerNow$.pipe(first())),\n distinctUntilChanged<LatLngPoint>(isSameLatLngPoint),\n shareReplay(1)\n );\n }),\n shareReplay(1)\n );\n\n readonly minimumVirtualViewportSize$ = this.state$.pipe(\n map((x) => x.minimumVirtualViewportSize),\n distinctUntilChanged(isSameVector),\n shareReplay(1)\n );\n\n readonly currentMapCanvasSize$ = this.state$.pipe(\n map((x) => x.mapCanvasSize),\n distinctUntilChanged<Maybe<Vector>>(isSameVector),\n shareReplay(1)\n );\n\n /**\n * The map canvas size with consideration to the virtual viewport size.\n */\n readonly mapCanvasSize$ = this.currentMapCanvasSize$.pipe(filterMaybe());\n\n minimumMapCanvasSize(minVector: Partial<Vector>): Observable<Vector> {\n const resizeFn = vectorMinimumSizeResizeFunction(minVector);\n return this.mapCanvasSize$.pipe(\n map((x) => resizeFn(x)),\n distinctUntilChanged<Vector>(isSameVector),\n shareReplay(1)\n );\n }\n\n /**\n * The map canvas size with consideration to the virtual viewport size.\n */\n readonly virtualMapCanvasSize$ = this.minimumVirtualViewportSize$.pipe(\n switchMap((minimumVirtualViewportSize) => {\n if (minimumVirtualViewportSize) {\n return this.minimumMapCanvasSize(minimumVirtualViewportSize);\n } else {\n return this.mapCanvasSize$;\n }\n }),\n distinctUntilChanged<Vector>(isSameVector),\n shareReplay(1)\n );\n\n readonly rawViewportBoundFunction$: Observable<MapboxViewportBoundFunction> = this.mapCanvasSize$.pipe(\n map((mapCanvasSize) => mapboxViewportBoundFunction({ mapCanvasSize })),\n shareReplay(1)\n );\n\n /**\n * Creates a MapboxViewportBoundFunction observable that returns the minimum viewport size.\n *\n * @param minVector\n * @returns\n */\n viewportBoundFunctionWithMinimumSize(minVector: Partial<Vector>): Observable<MapboxViewportBoundFunction> {\n const resizeFn = vectorMinimumSizeResizeFunction(minVector);\n return this.mapCanvasSize$.pipe(\n map((x) => resizeFn(x)),\n distinctUntilChanged<Vector>(isSameVector),\n map((mapCanvasSize) => mapboxViewportBoundFunction({ mapCanvasSize })),\n shareReplay(1)\n );\n }\n\n readonly viewportBoundFunction$: Observable<MapboxViewportBoundFunction> = this.minimumVirtualViewportSize$.pipe(\n switchMap((minimumVirtualViewportSize) => {\n if (minimumVirtualViewportSize) {\n return this.viewportBoundFunctionWithMinimumSize(minimumVirtualViewportSize);\n } else {\n return this.rawViewportBoundFunction$;\n }\n }),\n shareReplay(1)\n );\n\n readonly virtualBound$: Observable<LatLngBound> = this.viewportBoundFunction$.pipe(\n switchMap((fn) => {\n return this.boundRefreshSettings$.pipe(\n switchMap((settings) => {\n const { throttle: throttleMs, refreshType } = settings;\n\n let obs: Observable<[LatLngPoint, ZoomLevel]>;\n\n switch (refreshType) {\n case 'always':\n obs = combineLatest([this.centerNow$, this.zoomNow$]);\n break;\n case 'when_not_rendering':\n case 'only_after_render_finishes':\n obs = this.bound$.pipe(switchMap(() => combineLatest([this.centerNow$, this.zoomNow$]))); // refresh whenever the bound refreshes\n break;\n }\n\n return obs.pipe(\n throttleTime(throttleMs, undefined, { leading: true, trailing: true }),\n map(([center, zoom]) =>\n fn({\n center,\n zoom\n })\n )\n );\n })\n );\n }),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n\n readonly margin$ = this.state$.pipe(\n map((x) => x.margin),\n distinctUntilChanged((a, b) => a != null && b != null && a.fullWidth === b.fullWidth && a.leftMargin === b.leftMargin && a.rightMargin === b.rightMargin),\n shareReplay(1)\n );\n\n readonly reverseMargin$ = this.margin$.pipe(\n map((x) => {\n if (x) {\n return { leftMargin: -x.leftMargin, rightMargin: -x.rightMargin, fullWidth: x.fullWidth };\n } else {\n return x;\n }\n })\n );\n\n readonly centerGivenMargin$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.reverseMargin$.pipe(\n switchMap((x) => {\n if (x) {\n return this.center$.pipe(switchMap((_) => this.calculateNextCenterOffsetWithScreenMarginChange(x)));\n } else {\n return this.isMoving$.pipe(\n filter((x) => !x),\n switchMap(() => this.center$)\n );\n }\n })\n );\n }),\n shareReplay(1)\n );\n\n readonly rawBoundNow$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) =>\n this._renderingTimer.pipe(\n map(() => {\n const bound = x.getBounds();\n let result: LatLngBound | null = null;\n\n if (bound != null) {\n const boundSw = bound.getSouthWest();\n const boundNe = bound.getNorthEast();\n\n const sw = isDefaultLatLngPoint(boundSw) ? swMostLatLngPoint() : { lat: boundSw.lat, lng: boundSw.lng };\n const ne = isDefaultLatLngPoint(boundNe) ? neMostLatLngPoint() : { lat: boundNe.lat, lng: boundNe.lng };\n\n result = this.latLngBound(sw, ne);\n }\n\n return result;\n }),\n filterMaybe()\n )\n )\n )\n ),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n\n readonly rawBound$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.boundRefreshSettings$.pipe(\n switchMap((settings) => {\n const { throttle: throttleMs, refreshType } = settings;\n\n let obs: Observable<LatLngBound>;\n\n switch (refreshType) {\n case 'always':\n obs = this.rawBoundNow$;\n break;\n case 'when_not_rendering':\n obs = this.isRendering$.pipe(switchMap((x) => (x ? EMPTY : this.rawBoundNow$)));\n break;\n case 'only_after_render_finishes':\n obs = this.isRendering$.pipe(\n onTrueToFalse(),\n switchMap((x) => this.rawBoundNow$.pipe(first()))\n );\n break;\n }\n\n return obs.pipe(throttleTime(throttleMs, undefined, { leading: true, trailing: true }));\n })\n );\n }),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n\n readonly useVirtualBound$: Observable<boolean> = this.state$.pipe(\n map((x) => x.useVirtualBound),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly bound$: Observable<LatLngBound> = this.useVirtualBound$.pipe(\n switchMap((useVirtualBound) => {\n if (useVirtualBound) {\n return this.virtualBound$;\n } else {\n return this.rawBound$;\n }\n }),\n shareReplay(1)\n );\n\n readonly boundSizing$: Observable<LatLngPoint> = this.bound$.pipe(\n map((x) => diffLatLngBoundPoints(x)),\n shareReplay(1)\n );\n\n readonly boundWrapsAroundWorld$: Observable<boolean> = this.bound$.pipe(\n map((x) => latLngBoundWrapsMap(x)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isWithinBoundFunction$: Observable<IsWithinLatLngBoundFunction> = this.bound$.pipe(\n map((x) => isWithinLatLngBoundFunction(x)),\n shareReplay(1)\n );\n\n readonly overlapsBoundFunction$: Observable<OverlapsLatLngBoundFunction> = this.virtualBound$.pipe(\n map((x) => overlapsLatLngBoundFunction(x)),\n shareReplay(1)\n );\n\n readonly zoomNow$: Observable<MapboxZoomLevel> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._renderingTimer.pipe(map(() => x.getZoom() as MapboxZoomLevel))),\n shareReplay(1)\n )\n )\n );\n\n readonly zoom$: Observable<MapboxZoomLevel> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isZooming$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.zoomNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly pitchNow$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => x.getPitch()))),\n shareReplay(1)\n )\n )\n );\n\n readonly pitch$ = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRotating$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.pitchNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly bearingNow$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => x.getBearing()))),\n shareReplay(1)\n )\n )\n );\n\n readonly bearing$ = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRotating$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.bearingNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly drawerContent$ = this.state$.pipe(\n map((x) => x.drawerContent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hasDrawerContent$ = this.drawerContent$.pipe(\n map((x) => x != null),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly clickEvent$ = this.state$.pipe(\n map((x) => x.clickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly doubleClickEvent$ = this.state$.pipe(\n map((x) => x.doubleClickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly rightClickEvent$ = this.state$.pipe(\n map((x) => x.rightClickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n // MARK: State Changes\n readonly setMargin = this.updater((state, margin: Maybe<DbxMapboxMarginCalculationSizing>) => ({ ...state, margin: margin && (margin.rightMargin !== 0 || margin.leftMargin !== 0) ? margin : undefined }));\n readonly setMinimumVirtualViewportSize = this.updater((state, minimumVirtualViewportSize: Maybe<Partial<Vector>>) => ({ ...state, minimumVirtualViewportSize }));\n readonly setUseVirtualBound = this.updater((state, useVirtualBound: boolean) => ({ ...state, useVirtualBound }));\n readonly setBoundRefreshSettings = this.updater((state, boundRefreshSettings: Partial<DbxMapboxStoreBoundRefreshSettings>) => ({ ...state, boundRefreshSettings: { ...state.boundRefreshSettings, ...boundRefreshSettings } }));\n\n private readonly _setMapService = this.updater((state, mapService: Maybe<MapService>) => ({ mapService, moveState: 'init', lifecycleState: 'init', zoomState: 'init', rotateState: 'init', retainContent: state.retainContent, drawerContent: state.retainContent ? state.drawerContent : undefined, useVirtualBound: state.useVirtualBound, boundRefreshSettings: state.boundRefreshSettings }));\n private readonly _setLifecycleState = this.updater((state, lifecycleState: MapboxMapLifecycleState) => ({ ...state, lifecycleState }));\n private readonly _setMoveState = this.updater((state, moveState: MapboxMapMoveState) => ({ ...state, moveState }));\n private readonly _setZoomState = this.updater((state, zoomState: MapboxMapZoomState) => ({ ...state, zoomState }));\n private readonly _setRotateState = this.updater((state, rotateState: MapboxMapRotateState) => ({ ...state, rotateState }));\n\n private readonly _setMapCanvasSize = this.updater((state, mapCanvasSize: Vector) => ({ ...state, mapCanvasSize }));\n private readonly _setClickEvent = this.updater((state, clickEvent: DbxMapboxClickEvent) => ({ ...state, clickEvent }));\n private readonly _setDoubleClickEvent = this.updater((state, doubleClickEvent: DbxMapboxClickEvent) => ({ ...state, doubleClickEvent }));\n private readonly _setRightClickEvent = this.updater((state, rightClickEvent: DbxMapboxClickEvent) => ({ ...state, rightClickEvent }));\n\n private readonly _setError = this.updater((state, error: Error) => ({ ...state, error }));\n\n readonly clearDrawerContent = this.updater((state) => setDrawerContent(state, undefined));\n readonly setDrawerContent = this.updater(setDrawerContent);\n\n // MARK: Compat\n /**\n * @deprecated use drawerContent$ instead.\n */\n readonly content$ = this.drawerContent$;\n\n /**\n * @deprecated use hasDrawerContent$ instead.\n */\n readonly hasContent$ = this.hasDrawerContent$;\n\n /**\n * @deprecated use clearDrawerContent instead.\n */\n readonly clearContent = this.updater((state) => setDrawerContent(state, undefined));\n\n /**\n * @deprecated use setDrawerContent instead.\n */\n readonly setContent = this.updater(setDrawerContent);\n}\n\nfunction setDrawerContent(state: DbxMapboxStoreState, drawerContent: Maybe<DbxInjectionComponentConfig<unknown>>) {\n return { ...state, drawerContent };\n}\n","import { Injectable, OnDestroy, inject } from '@angular/core';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { switchMap, tap, merge, Subject, throttleTime } from 'rxjs';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Provided in the parent component that allows children to emit events related to their lifecycles.\n */\n@Injectable({\n providedIn: null\n})\nexport class DbxMapboxChangeService implements OnDestroy {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n\n private readonly _markerDestroyed = new Subject<void>();\n private readonly _applyChanges = new Subject<void>();\n\n readonly markerDestroyed$ = this._markerDestroyed;\n readonly applyChanges$ = merge(this._applyChanges, this.markerDestroyed$).pipe(throttleTime(100, undefined, { leading: false, trailing: true }));\n\n private readonly _applyChangesSub = new SubscriptionObject(\n this.dbxMapboxMapStore.mapService$\n .pipe(\n switchMap((mapService) =>\n this.applyChanges$.pipe(\n tap(() => {\n mapService.applyChanges();\n })\n )\n )\n )\n .subscribe()\n );\n\n applyChanges() {\n this._applyChanges.next();\n }\n\n emitMarkerDestroyed() {\n this._markerDestroyed.next();\n }\n\n ngOnDestroy(): void {\n this._markerDestroyed.complete();\n this._applyChanges.complete();\n this._applyChangesSub.destroy();\n }\n}\n","import { map, Observable, shareReplay } from 'rxjs';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { DbxInjectionComponentConfigWithoutInjector } from '@dereekb/dbx-core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { distinctUntilMapHasDifferentKeys, ObservableOrValueGetter } from '@dereekb/rxjs';\n\nexport type DbxMapboxInjectionKey = string;\n\nexport interface DbxMapboxInjectionConfig {\n /**\n * Unique key that identifies this config specifically.\n *\n * Keys should all be unique. The system does not expect duplicate keys. Modifications to injectionConfig should occur through the observable value.\n */\n readonly key: DbxMapboxInjectionKey;\n /**\n * Arbitrary injection type. Is used for filtering on configurations.\n */\n readonly type?: string;\n /**\n * Injection configuration. The injector is disallowed, as the parent injector must include the mapbox component.\n */\n readonly injectionConfig: ObservableOrValueGetter<DbxInjectionComponentConfigWithoutInjector>;\n}\n\nexport interface DbxMapboxMapInjectionStoreState {\n /**\n * Current map of injection keys and configurations.\n */\n readonly map: Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>;\n\n // TODO: Add filters for showing/hiding elements of different types.\n}\n\n/**\n * Store used for storing injectable content into the map.\n */\n@Injectable()\nexport class DbxMapboxInjectionStore extends ComponentStore<DbxMapboxMapInjectionStoreState> implements OnDestroy {\n constructor() {\n super({\n map: new Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>()\n });\n }\n\n readonly map$: Observable<Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>> = this.state$.pipe(\n map((x) => x.map),\n distinctUntilMapHasDifferentKeys(),\n shareReplay(1)\n );\n\n readonly allInjectionConfigs$: Observable<DbxMapboxInjectionConfig[]> = this.map$.pipe(\n map((x) => Array.from(x.values())),\n shareReplay(1)\n );\n\n // MARK: State Changes\n readonly addInjectionConfig = this.updater(updateDbxMapboxMapInjectionStoreStateWithInjectionConfig);\n readonly removeInjectionConfigWithKey = this.updater(updateDbxMapboxMapInjectionStoreStateWithRemovedKey);\n}\n\nexport function updateDbxMapboxMapInjectionStoreStateWithInjectionConfig(state: DbxMapboxMapInjectionStoreState, config: DbxMapboxInjectionConfig) {\n const map = new Map(state.map).set(config.key, config);\n return { ...state, map };\n}\n\nexport function updateDbxMapboxMapInjectionStoreStateWithRemovedKey(state: DbxMapboxMapInjectionStoreState, key: DbxMapboxInjectionKey) {\n // only create a new state if the key is going to get removed\n if (state.map.has(key)) {\n const map = new Map(state.map);\n map.delete(key);\n state = { ...state, map };\n }\n\n return state;\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { DbxInjectionArrayComponent } from '@dereekb/dbx-core';\nimport { DbxMapboxInjectionStore } from './mapbox.injection.store';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Injects the components configured in the DbxMapboxInjectionStore into the view.\n */\n@Component({\n selector: 'dbx-mapbox-injection',\n template: `\n <dbx-injection-array [entries]=\"entriesSignal()\"></dbx-injection-array>\n `,\n imports: [DbxInjectionArrayComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxInjectionComponent {\n readonly dbxMapboxMapKeyInjectionStore = inject(DbxMapboxInjectionStore);\n readonly entriesSignal = toSignal(this.dbxMapboxMapKeyInjectionStore.allInjectionConfigs$);\n}\n","import { Directive, Injectable, Injector, Optional, Provider, SkipSelf, inject } from '@angular/core';\nimport { DbxMapboxInjectionStore } from './mapbox.injection.store';\n\n/**\n * Token used by provideMapboxInjectionStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxInjectionStore into the child view.\n */\n@Injectable()\nexport class DbxMapboxInjectionStoreProviderBlock {\n readonly dbxMapboxInjectionStore = inject(DbxMapboxInjectionStore, { skipSelf: true });\n}\n\n@Directive({\n selector: '[dbxMapboxInjectionStoreParentBlocker]',\n providers: [DbxMapboxInjectionStoreProviderBlock],\n standalone: true\n})\nexport class DbxMapboxInjectionStoreInjectionBlockDirective {}\n\n/**\n * Creates a Provider that initializes a new DbxMapboxInjectionStore if a parent does not exist.\n *\n * If a DbxMapboxInjectionStoreInjectionBlock is available in the context, and references the same dbxMapboxInjectionStore that is attempting to be injected, a new DbxMapboxInjectionStore is created.\n *\n * @returns\n */\nexport function provideMapboxInjectionStoreIfParentIsUnavailable(): Provider {\n return {\n provide: DbxMapboxInjectionStore,\n useFactory: (parentInjector: Injector, dbxMapboxInjectionStoreInjectionBlock?: DbxMapboxInjectionStoreProviderBlock, dbxMapboxInjectionStore?: DbxMapboxInjectionStore) => {\n if (!dbxMapboxInjectionStore || (dbxMapboxInjectionStore && dbxMapboxInjectionStoreInjectionBlock != null && dbxMapboxInjectionStoreInjectionBlock.dbxMapboxInjectionStore === dbxMapboxInjectionStore)) {\n // create a new dbxMapboxInjectionStore to use\n const injector = Injector.create({ providers: [{ provide: DbxMapboxInjectionStore }], parent: parentInjector });\n dbxMapboxInjectionStore = injector.get(DbxMapboxInjectionStore);\n }\n\n return dbxMapboxInjectionStore;\n },\n deps: [Injector, [new Optional(), DbxMapboxInjectionStoreProviderBlock], [new Optional(), new SkipSelf(), DbxMapboxInjectionStore]]\n };\n}\n","import { DbxMapboxService } from './mapbox.service';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { Directive, OnInit, inject } from '@angular/core';\nimport { MAP_COMPONENT_INITIALIZATION_OPTIONS, MapComponent, MapService } from 'ngx-mapbox-gl';\n\n/**\n * Directive that configures a MapComponent with content from DbxMapboxService. Connects a host MapService to a parent DbxMapboxMapStore if available.\n */\n@Directive({\n selector: '[dbxMapboxMap]',\n providers: [\n {\n provide: MAP_COMPONENT_INITIALIZATION_OPTIONS,\n useFactory: (dbxMapboxService: DbxMapboxService) => dbxMapboxService.initializationOptions(),\n deps: [DbxMapboxService]\n }\n ],\n standalone: true\n})\nexport class DbxMapboxMapDirective implements OnInit {\n readonly mapService = inject(MapService, { host: true });\n readonly mapboxMap = inject(MapComponent, { host: true });\n readonly dbxMapboxService = inject(DbxMapboxService);\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore, { optional: true });\n\n ngOnInit(): void {\n if (this.dbxMapboxMapStore) {\n this.dbxMapboxMapStore.setMapService(this.mapService);\n }\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * Content drawer that connects with DbxMapboxMapStore to show the content.\n */\n@Component({\n selector: 'dbx-mapbox-layout-drawer',\n templateUrl: './mapbox.layout.drawer.component.html',\n host: {\n class: 'dbx-mapbox-layout-drawer'\n },\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxMapboxLayoutDrawerComponent {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n readonly drawerConfigSignal = toSignal(this.dbxMapboxMapStore.drawerContent$);\n}\n","<div>\n <dbx-injection [config]=\"drawerConfigSignal()\"></dbx-injection>\n</div>\n","import { tap, switchMap, first, startWith, throttleTime, map, distinctUntilChanged, combineLatest, Subject, Observable, delay } from 'rxjs';\nimport { Component, ElementRef, OnDestroy, OnInit, inject, signal, computed, input, output, viewChild, ChangeDetectionStrategy, Signal, effect } from '@angular/core';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxColorDirective, DbxResizedDirective, DbxThemeColor, ResizedEvent } from '@dereekb/dbx-web';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { MatDrawer, MatDrawerContainer, MatDrawerContent } from '@angular/material/sidenav';\nimport { MapboxEaseTo } from './mapbox';\nimport { NgClass } from '@angular/common';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxMapboxLayoutDrawerComponent } from './mapbox.layout.drawer.component';\n\nexport type DbxMapboxLayoutSide = 'left' | 'right';\n\nexport type DbxMapboxLayoutMode = 'side' | 'push';\n\n/**\n * Responsive component meant to split a left and right column.\n *\n * The left column is smaller than the right column, which contains the primary content.\n *\n * Requires a TwoColumnsContextStore to be provided.\n */\n@Component({\n selector: 'dbx-mapbox-layout',\n templateUrl: './mapbox.layout.component.html',\n styleUrls: ['./mapbox.layout.component.scss'],\n imports: [DbxResizedDirective, NgClass, DbxMapboxLayoutDrawerComponent, MatDrawer, MatDrawerContainer, MatDrawerContent, MatIconModule, MatIconButton, DbxColorDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxLayoutComponent implements OnInit, OnDestroy {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n\n private readonly _viewResized = new Subject<ResizedEvent>();\n private readonly _refreshContentMargins = new Subject<void>();\n\n readonly drawerOpenedChange = output<boolean>();\n\n readonly drawerContainer = viewChild.required<MatDrawerContainer>(MatDrawerContainer);\n readonly drawerContainerElement = viewChild.required<MatDrawerContainer, ElementRef<HTMLElement>>(MatDrawerContainer, { read: ElementRef<HTMLElement> });\n readonly drawerContent = viewChild.required<ElementRef<HTMLElement>>('drawerContent');\n\n readonly side = input<DbxMapboxLayoutSide, Maybe<DbxMapboxLayoutSide>>('right', { transform: (x) => x || 'right' });\n readonly mode = input<DbxMapboxLayoutMode, Maybe<DbxMapboxLayoutMode>>('side', { transform: (x) => x || 'side' });\n\n /**\n * Forces the drawer to assume the drawer has content if true, or assume it has no content if false.\n */\n readonly forceHasDrawerContent = input<Maybe<boolean>>(undefined);\n readonly drawerButtonColor = input<DbxThemeColor, Maybe<DbxThemeColor>>('background', { transform: (x) => x ?? 'background' });\n\n readonly openDrawer = input<Maybe<boolean>>(undefined); // input open/close drawer config\n readonly isDrawerOpenSignal = signal<Maybe<boolean>>(undefined); // Signal to toggle the drawer\n\n protected readonly _openDrawerEffect = effect(\n () => {\n this.isDrawerOpenSignal.set(this.openDrawer());\n },\n { allowSignalWrites: true }\n );\n\n readonly storeHasDrawerContent = toSignal(this.dbxMapboxMapStore.hasDrawerContent$);\n readonly drawerHasContentSignal = computed(() => this.forceHasDrawerContent() ?? this.storeHasDrawerContent());\n\n readonly refreshContentMargins$ = this._refreshContentMargins;\n\n readonly isOpenAndHasContentSignal = computed(() => {\n return this.drawerHasContentSignal() && this.isDrawerOpenSignal();\n });\n\n readonly viewResized$ = this._viewResized.asObservable();\n readonly side$ = toObservable(this.side);\n readonly mode$ = toObservable(this.mode);\n readonly drawerHasContent$ = toObservable(this.drawerHasContentSignal);\n readonly isOpenAndHasContent$ = toObservable(this.isOpenAndHasContentSignal);\n\n readonly positionSignal: Signal<'start' | 'end'> = computed(() => {\n return this.side() === 'right' ? 'end' : 'start';\n });\n\n readonly drawerClassesSignal = computed(() => {\n const side = this.side();\n const hasContent = this.drawerHasContentSignal();\n const isOpen = this.isDrawerOpenSignal(); // NOTE: isOpenAndHasContentSignal is not used here\n\n return (hasContent ? 'has-drawer-content' : 'no-drawer-content') + ` ${side}-drawer ` + (isOpen ? 'open-drawer' : '');\n });\n\n readonly buttonIconSignal = computed(() => {\n const side = this.side();\n const opened = this.isDrawerOpenSignal(); // NOTE: isOpenAndHasContentSignal is not used here\n\n let icons = ['chevron_right', 'chevron_left'];\n\n if (side === 'left') {\n icons = icons.reverse();\n }\n\n return opened ? icons[0] : icons[1];\n });\n\n private readonly _reszieSyncSub = new SubscriptionObject();\n private readonly _toggleSyncSub = new SubscriptionObject();\n\n ngOnInit(): void {\n this._reszieSyncSub.subscription = (\n this.side$.pipe(\n switchMap(() =>\n this._viewResized.pipe(\n throttleTime(80, undefined, { leading: true, trailing: true }),\n map(() => 'r'),\n startWith('s')\n )\n )\n ) as Observable<'s' | 'r'>\n ).subscribe((reason) => {\n this.dbxMapboxMapStore.mapInstance$.subscribe((x) => {\n x.resize();\n\n // side changed\n if (reason === 's') {\n this._refreshContentMargins.next();\n }\n });\n });\n\n let init = false;\n\n this._toggleSyncSub.subscription = this.mode$\n .pipe(\n switchMap((mode) => {\n let obs: Observable<unknown>;\n\n if (mode === 'push') {\n obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this.refreshContentMargins$]).pipe(\n tap(([opened]) => {\n const drawerContainer = this.drawerContainer();\n\n let { right } = drawerContainer._contentMargins;\n\n drawerContainer.updateContentMargins();\n\n setTimeout(() => {\n const flip = opened ? 1 : -1;\n\n if (opened) {\n right = drawerContainer._contentMargins.right;\n }\n\n right = (right || 0) * flip;\n\n const element: HTMLElement = this.drawerContent().nativeElement;\n const width = element.clientWidth;\n\n const margin = {\n leftMargin: 0,\n rightMargin: right,\n fullWidth: width\n };\n\n const easeTo: Observable<MapboxEaseTo> = this.dbxMapboxMapStore.calculateNextCenterOffsetWithScreenMarginChange(margin).pipe(\n first(),\n map((center) => ({ to: { center, duration: 3200, essential: false } }) as MapboxEaseTo)\n );\n\n this.dbxMapboxMapStore.setMargin(opened ? margin : undefined);\n\n if (!init) {\n this.dbxMapboxMapStore.easeTo(easeTo);\n } else {\n init = true;\n }\n });\n })\n );\n } else {\n obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._refreshContentMargins.pipe(delay(0))]).pipe(\n switchMap((_) => this.dbxMapboxMapStore.mapInstance$),\n tap((map) => {\n this.drawerContainer().updateContentMargins();\n map.triggerRepaint();\n })\n );\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this._viewResized.complete();\n this._refreshContentMargins.complete();\n this._reszieSyncSub.destroy();\n this._toggleSyncSub.destroy();\n }\n\n viewResized(event: ResizedEvent): void {\n this._viewResized.next(event);\n }\n\n drawerOpened(opened: boolean) {\n const currentToggleState = this.isDrawerOpenSignal();\n\n if (currentToggleState !== opened) {\n this.toggleDrawer(opened); // sync with drawer toggling\n this.drawerOpenedChange.emit(opened);\n }\n }\n\n toggleDrawer(open?: Maybe<boolean>) {\n if (open == null) {\n open = !this.isDrawerOpenSignal();\n }\n\n this.isDrawerOpenSignal.set(open);\n }\n}\n","<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"drawerClassesSignal()\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer (openedChange)=\"drawerOpened($event)\" [opened]=\"isOpenAndHasContentSignal()\" [mode]=\"mode()\" [position]=\"positionSignal()\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"drawerClassesSignal()\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (dbxResized)=\"viewResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [dbxColor]=\"drawerButtonColor()\">\n <mat-icon>{{ buttonIconSignal() }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n","import { SubscriptionObject } from '@dereekb/rxjs';\nimport { filter, switchMap, of } from 'rxjs';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { ChangeDetectionStrategy, Component, OnInit, OnDestroy, inject, signal, input, effect } from '@angular/core';\nimport { Maybe, DestroyFunctionObject, isNotFalse } from '@dereekb/util';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { disableRightClickInCdkBackdrop } from '@dereekb/dbx-web';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n/**\n * Directive that connects a host MatMenuTrigger to a DbxMapboxMapStore and listens for right-clicks on the map.\n *\n * The map dissapears if the mouse scrolls anywhere else on the map.\n */\n@Component({\n selector: 'dbx-mapbox-menu',\n template: '',\n host: {\n style: 'visibility: hidden; position: fixed',\n '[style.top]': 'posSignal().y',\n '[style.left]': 'posSignal().x'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxMenuComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n readonly matMenuTrigger = inject(MatMenuTrigger, { host: true });\n\n readonly active = input<boolean, Maybe<boolean>>(true, { transform: isNotFalse });\n\n readonly openCloseSignal = signal<Maybe<boolean>>(undefined);\n readonly posSignal = signal<{ x: string; y: string }>({ x: `0`, y: `0` });\n\n protected readonly _openCloseEffect = effect(() => {\n const openOrClose = this.openCloseSignal();\n\n switch (openOrClose) {\n case true:\n this.matMenuTrigger.openMenu();\n break;\n case false:\n this.matMenuTrigger.closeMenu();\n break;\n }\n });\n\n private readonly _menuCloseSub = new SubscriptionObject();\n private readonly _preventRightClick = new DestroyFunctionObject();\n\n readonly active$ = toObservable(this.active);\n\n ngOnInit(): void {\n this.sub = this.active$\n .pipe(\n switchMap((active) => {\n if (active) {\n return this.dbxMapboxMapStore.rightClickEvent$;\n } else {\n return of();\n }\n }),\n filter(Boolean)\n )\n .subscribe((event) => {\n const menu = this.matMenuTrigger.menu;\n const buttonEvent = event.originalEvent;\n\n if (menu && buttonEvent) {\n buttonEvent.preventDefault();\n\n // update position of this component for menu to open at\n this.posSignal.set({\n x: `${buttonEvent.x}px`,\n y: `${buttonEvent.y}px`\n });\n\n // open menu\n this.matMenuTrigger.openMenu();\n\n // prevent right clicks in the cdkOverlay while the menu is open\n this._preventRightClick.destroy = disableRightClickInCdkBackdrop(undefined, () => {\n this.matMenuTrigger.closeMenu();\n });\n }\n });\n\n this._menuCloseSub.subscription = this.matMenuTrigger.menuClosed.subscribe(() => {\n // destroy prevention when the menu is closed.\n this._preventRightClick.destroy();\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._menuCloseSub.destroy();\n this._preventRightClick.destroy();\n\n if (this.matMenuTrigger) {\n this.matMenuTrigger.closeMenu();\n }\n }\n}\n","import { Directive, Injectable, Injector, Optional, Provider, SkipSelf, inject } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Token used by provideMapboxStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxMapStore into the child view.\n */\n@Injectable()\nexport class DbxMapboxMapStoreProviderBlock {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore, { skipSelf: true });\n}\n\n@Directive({\n selector: '[dbxMapboxStoreParentBlocker]',\n providers: [DbxMapboxMapStoreProviderBlock],\n standalone: true\n})\nexport class DbxMapboxMapStoreInjectionBlockDirective {}\n\n/**\n * Creates a Provider that initializes a new DbxMapboxMapStore if a parent does not exist.\n *\n * If a DbxMapboxMapStoreInjectionBlock is available in the context, and references the same dbxMapboxMapStore that is attempting to be injected, a new DbxMapboxMapStore is created.\n *\n * @returns\n */\nexport function provideMapboxStoreIfParentIsUnavailable(): Provider {\n return {\n provide: DbxMapboxMapStore,\n useFactory: (parentInjector: Injector, dbxMapboxMapStoreInjectionBlock?: DbxMapboxMapStoreProviderBlock, dbxMapboxMapStore?: DbxMapboxMapStore) => {\n if (!dbxMapboxMapStore || (dbxMapboxMapStore && dbxMapboxMapStoreInjectionBlock != null && dbxMapboxMapStoreInjectionBlock.dbxMapboxMapStore === dbxMapboxMapStore)) {\n // create a new dbxMapboxMapStore to use\n const injector = Injector.create({ providers: [{ provide: DbxMapboxMapStore }], parent: parentInjector });\n dbxMapboxMapStore = injector.get(DbxMapboxMapStore);\n }\n\n return dbxMapboxMapStore;\n },\n deps: [Injector, [new Optional(), DbxMapboxMapStoreProviderBlock], [new Optional(), new SkipSelf(), DbxMapboxMapStore]]\n };\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, computed, inject, input } from '@angular/core';\nimport { CssClassesArray, getValueFromGetter, latLngPointFunction, spaceSeparatedCssClasses, type Maybe, pushItemOrArrayItemsIntoArray } from '@dereekb/util';\nimport { DbxMapboxChangeService } from './mapbox.change.service';\nimport { DbxMapboxMarker } from './mapbox.marker';\nimport { MarkerComponent } from 'ngx-mapbox-gl';\nimport { DbxAnchorComponent } from '@dereekb/dbx-web';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'dbx-mapbox-marker',\n template: `\n <mgl-marker [lngLat]=\"latLngSignal()\">\n <dbx-anchor [anchor]=\"marker()?.anchor\">\n <div class=\"dbx-mapbox-marker\" [ngClass]=\"presentationCssClassSignal()\">\n <div class=\"dbx-mapbox-marker-icon-content\" [ngStyle]=\"styleSignal()\">\n @if (marker()?.icon) {\n <mat-icon>{{ marker()?.icon }}</mat-icon>\n }\n </div>\n @if (marker()?.label) {\n <div class=\"dbx-mapbox-marker-label dbx-outlined-text\">{{ marker()?.label }}</div>\n }\n </div>\n </dbx-anchor>\n </mgl-marker>\n `,\n styleUrls: ['./mapbox.marker.component.scss'],\n imports: [MarkerComponent, DbxAnchorComponent, MatIconModule, NgStyle, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxMarkerComponent implements OnDestroy {\n private readonly _dbxMapboxChangeService = inject(DbxMapboxChangeService, { optional: true });\n\n private static _latLngPoint = latLngPointFunction({ wrap: true });\n\n readonly marker = input.required<Maybe<DbxMapboxMarker>>();\n\n readonly latLngSignal = computed(() => {\n const marker = this.marker();\n return marker?.latLng ? DbxMapboxMarkerComponent._latLngPoint(marker.latLng) : undefined;\n });\n\n readonly presentationSignal = computed(() => this.marker()?.presentation ?? 'normal');\n\n readonly styleSignal = computed(() => {\n const marker = this.marker();\n\n let width = 0;\n let height = 0;\n\n const size = marker?.size || 'medium';\n\n switch (marker?.presentation) {\n case 'normal':\n if (typeof size === 'number') {\n width = size;\n } else {\n switch (size) {\n case 'small':\n width = 18;\n break;\n case 'medium':\n width = 24;\n break;\n case 'large':\n width = 32;\n break;\n case 'tall':\n width = 24;\n height = 32;\n break;\n }\n break;\n }\n break;\n }\n\n if (!height) {\n height = width;\n }\n\n const imageInput = marker?.image;\n const image = imageInput ? (typeof imageInput === 'string' ? imageInput : getValueFromGetter(imageInput, width)) : undefined;\n\n const style: any = {\n ...marker?.style,\n 'background-image': image\n };\n\n if (width && height) {\n style.width = width + 'px';\n style.height = height + 'px';\n style['font-size'] = width + 'px';\n }\n\n return style;\n });\n\n readonly presentationCssClassSignal = computed(() => {\n const marker = this.marker();\n const presentation = this.presentationSignal();\n const markerClasses = marker?.markerClasses;\n\n let cssClasses: CssClassesArray = [];\n\n switch (presentation) {\n case 'chip':\n case 'chip-small':\n cssClasses = ['dbx-mapbox-marker-chip', 'dbx-chip', 'mat-standard-chip', 'dbx-bg'];\n\n if (presentation === 'chip-small') {\n cssClasses.push('dbx-chip-small');\n }\n\n break;\n }\n\n if (!marker?.icon) {\n cssClasses.push('dbx-mapbox-marker-no-icon');\n }\n\n if (markerClasses) {\n pushItemOrArrayItemsIntoArray(cssClasses, markerClasses);\n }\n\n return spaceSeparatedCssClasses(cssClasses);\n });\n\n ngOnDestroy(): void {\n this._dbxMapboxChangeService?.emitMarkerDestroyed();\n }\n}\n","import { type Maybe } from '@dereekb/util';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { DbxMapboxMarker, DbxMapboxMarkerFactory } from './mapbox.marker';\nimport { DbxMapboxMarkerComponent } from './mapbox.marker.component';\n\n/**\n * Component used to render a set of DbxMapboxMarker values from the input data and marker factory.\n */\n@Component({\n selector: 'dbx-mapbox-markers',\n template: `\n @for (marker of markersSignal(); track trackMarkerById($index, marker)) {\n <dbx-mapbox-marker [marker]=\"marker\"></dbx-mapbox-marker>\n }\n `,\n imports: [DbxMapboxMarkerComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxMarkersComponent<T> {\n readonly data = input.required<Maybe<T[]>>();\n readonly markerFactory = input.required<Maybe<DbxMapboxMarkerFactory<T>>>();\n\n readonly markersSignal = computed(() => {\n const data = this.data();\n const markerFactory = this.markerFactory();\n\n if (data?.length && markerFactory) {\n return data.map(markerFactory);\n } else {\n return [];\n }\n });\n\n trackMarkerById(index: number, marker: DbxMapboxMarker) {\n return marker.id ?? `__MID__${index}_`;\n }\n}\n","import { shareReplay, map, distinctUntilChanged } from 'rxjs';\nimport { Directive, OnInit, inject } from '@angular/core';\nimport { isSameVector } from '@dereekb/util';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\n\n/**\n * Directive that synchronizes a map's virtual size with the size of the element.\n */\n@Directive({\n selector: '[dbxMapboxLayoutVirtualResizeSync]',\n standalone: true\n})\nexport class DbxMapboxLayoutVirtualResizeSyncComponent extends AbstractSubscriptionDirective implements OnInit {\n readonly dbxMapboxLayoutComponent = inject(DbxMapboxLayoutComponent, { host: true });\n\n readonly resizedVector$ = this.dbxMapboxLayoutComponent.viewResized$.pipe(\n map(() => {\n const element = this.dbxMapboxLayoutComponent.drawerContainerElement()?.nativeElement as HTMLElement;\n const { clientWidth, clientHeight } = element;\n\n return {\n x: clientWidth,\n y: clientHeight\n };\n }),\n distinctUntilChanged(isSameVector),\n shareReplay(1)\n );\n\n ngOnInit(): void {\n this.sub = this.dbxMapboxLayoutComponent.dbxMapboxMapStore.setMinimumVirtualViewportSize(this.resizedVector$);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxMapboxMapDirective } from './mapbox.store.map.directive';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\nimport { DbxMapboxLayoutDrawerComponent } from './mapbox.layout.drawer.component';\nimport { DbxMapboxMenuComponent } from './mapbox.menu.component';\nimport { DbxMapboxMapStoreInjectionBlockDirective } from './mapbox.store.provide';\nimport { DbxMapboxMarkerComponent } from './mapbox.marker.component';\nimport { DbxMapboxMarkersComponent } from './mapbox.markers.component';\nimport { DbxMapboxInjectionComponent } from './mapbox.injection.component';\nimport { DbxMapboxLayoutVirtualResizeSyncComponent } from './mapbox.layout.resize.sync.directive';\nimport { MapComponent, MarkerComponent } from 'ngx-mapbox-gl';\n\nconst importsAndExports = [\n //\n DbxMapboxLayoutVirtualResizeSyncComponent,\n DbxMapboxMapDirective,\n DbxMapboxLayoutComponent,\n DbxMapboxLayoutDrawerComponent,\n DbxMapboxInjectionComponent,\n DbxMapboxMenuComponent,\n DbxMapboxMarkerComponent,\n DbxMapboxMarkersComponent,\n DbxMapboxMapStoreInjectionBlockDirective,\n // ngx-mapbox-gl\n MapComponent,\n MarkerComponent\n];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxMapboxModule {}\n","import { type EnvironmentProviders, makeEnvironmentProviders, type Provider } from '@angular/core';\nimport { DbxMapboxConfig, DbxMapboxService } from './mapbox.service';\nimport { provideMapboxGL } from 'ngx-mapbox-gl';\n\n/**\n * Configuration for provideDbxMapbox().\n */\nexport interface ProvideDbxMapboxConfig {\n readonly dbxMapboxConfig: DbxMapboxConfig;\n readonly ngxMapboxGLModuleConfig: Parameters<typeof provideMapboxGL>[0];\n}\n\n/**\n * Creates EnvironmentProviders for providing DbxMapboxConfig and configuring the NgxMapboxGLModule.\n *\n * @param config Configuration\n * @returns EnvironmentProviders\n */\nexport function provideDbxMapbox(config: ProvideDbxMapboxConfig): EnvironmentProviders {\n const { dbxMapboxConfig, ngxMapboxGLModuleConfig } = config;\n\n const providers: (Provider | EnvironmentProviders)[] = [\n // config\n {\n provide: DbxMapboxConfig,\n useValue: dbxMapboxConfig\n },\n // service\n DbxMapboxService,\n // ngxMapboxGL\n provideMapboxGL(ngxMapboxGLModuleConfig)\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { type ClickableAnchor } from '@dereekb/dbx-core';\nimport { type Pixels, type FactoryWithRequiredInput, type LatLngInputRef, type UniqueModel, type CssClassesArray, type Maybe, type CssStyleObject } from '@dereekb/util';\n\n/**\n * DbxMapboxMarkerSize. Numbers are converted to pixels.\n */\nexport type DbxMapboxMarkerSize = 'small' | 'medium' | 'large' | 'tall' | Pixels;\n\n/**\n * Presentation style.\n *\n * - normal: Text under dot with optional icon within dot\n * - chip: \"dbx-chip\"-like presentation\n */\nexport type DbxMapboxMarkerPresentation = 'normal' | 'chip' | 'chip-small';\n\nexport interface DbxMapboxMarkerDisplayConfig {\n /**\n * Presentation style. Defaults to \"normal\"\n */\n readonly presentation?: DbxMapboxMarkerPresentation;\n /**\n * Additional classes to add to the marker.\n */\n readonly markerClasses?: Maybe<CssClassesArray>;\n /**\n * Marker icon to display.\n */\n readonly icon?: Maybe<string>;\n /**\n * Marker label to display.\n */\n readonly label?: Maybe<string>;\n /**\n * Image URL or Factory that returns an image URL.\n */\n readonly image?: Maybe<string | FactoryWithRequiredInput<string, Pixels>>;\n /**\n * Size of the marker.\n */\n readonly size?: Maybe<DbxMapboxMarkerSize>;\n /**\n * ClickableAnchor for the marker.\n */\n readonly anchor?: Maybe<ClickableAnchor>;\n /**\n * Additional icon content styling. Style is not applied to the entire marker. Use markerClasses instead.\n */\n readonly style?: Maybe<CssStyleObject>;\n}\n\nexport type DbxMapboxMarker = UniqueModel & LatLngInputRef & DbxMapboxMarkerDisplayConfig;\n\n/**\n * MapFunction that converts the input data to a DbxMapboxMarker.\n */\nexport type DbxMapboxMarkerFactory<T> = (value: T, index: number) => DbxMapboxMarker;\n\n/**\n * Creates the styling for rendering a dot.\n *\n * @param background\n * @param color\n * @returns\n */\nexport function dbxMapboxColoredDotStyle(background: string, color?: string) {\n return {\n background,\n padding: '2px',\n color: (color ?? background) ? 'white' : undefined,\n 'border-radius': '50%'\n };\n}\n","import { type LatLngPointInput, type LatLngBoundInput, type ZoomLevel, type ZoomLevelRange, type ExtendLatLngBoundInput } from '@dereekb/util';\nimport type * as MapboxGl from 'mapbox-gl';\n\n/**\n * List of styles that are defined here:\n *\n * https://docs.mapbox.com/api/maps/styles/\n */\nexport type KnownMapboxStyle = 'mapbox://styles/mapbox/standard' | 'mapbox://styles/mapbox/streets-v12' | 'mapbox://styles/mapbox/outdoors-v12' | 'mapbox://styles/mapbox/light-v11' | 'mapbox://styles/mapbox/dark-v11' | 'mapbox://styles/mapbox/satellite-v9' | 'mapbox://styles/mapbox/satellite-streets-v12' | 'mapbox://styles/mapbox/navigation-day-v1' | 'mapbox://styles/mapbox/navigation-night-v1';\n\nexport const KNOWN_MAPBOX_STYLES: KnownMapboxStyle[] = [\n // standard\n 'mapbox://styles/mapbox/standard',\n // classic\n 'mapbox://styles/mapbox/streets-v12',\n 'mapbox://styles/mapbox/outdoors-v12',\n 'mapbox://styles/mapbox/light-v11',\n 'mapbox://styles/mapbox/dark-v11',\n 'mapbox://styles/mapbox/satellite-v9',\n 'mapbox://styles/mapbox/satellite-streets-v12',\n 'mapbox://styles/mapbox/navigation-day-v1',\n 'mapbox://styles/mapbox/navigation-night-v1'\n];\n\nexport type MapboxEventData = object;\n\nexport type MapboxZoomLevel = ZoomLevel;\nexport type MapboxZoomLevelRange = ZoomLevelRange;\n\nexport const MAPBOX_MIN_ZOOM_LEVEL: MapboxZoomLevel = 0;\nexport const MAPBOX_MAX_ZOOM_LEVEL: MapboxZoomLevel = 22;\n\nexport function mapboxZoomLevel(input: number): MapboxZoomLevel {\n return Math.min(Math.max(input, MAPBOX_MIN_ZOOM_LEVEL), MAPBOX_MAX_ZOOM_LEVEL);\n}\n\nexport type MapboxPitch = number;\nexport type MapboxBearing = number;\n\n/**\n * Size of the tiles. Vector-based tiles used by the web are generally 512x512, and legacy ones are 256x256.\n *\n * https://blog.mapbox.com/512-map-tiles-cb5bfd6e72ba\n */\nexport type MapboxTileSize = 512 | 256;\n\nexport type DbxMapboxClickEvent = MapboxGl.MapMouseEvent & MapboxEventData;\n\n/**\n * Options for MapboxGl.Map.fitBounds()\n */\nexport type MapboxFitBoundsOptions = Parameters<MapboxGl.Map['fitBounds']>[1];\n\n/**\n * Options for MapboxGl.Map.easeTo()\n */\nexport type MapboxEaseToOptions = Parameters<MapboxGl.Map['easeTo']>[0];\n\n/**\n * Options for MapboxGl.Map.flyTo()\n */\nexport type MapboxFlyToOptions = Parameters<MapboxGl.Map['flyTo']>[0];\n\n/**\n * Options for MapboxGl.Map.setStyle()\n */\nexport type MapboxSetStyleOptions = Parameters<MapboxGl.Map['setStyle']>[1];\n\nexport interface MapboxStyleConfig {\n style: MapboxGl.StyleSpecification | string;\n options?: MapboxSetStyleOptions;\n}\n\nexport interface MapboxFitPositions {\n positions: ExtendLatLngBoundInput;\n options?: MapboxFitBoundsOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxFitBounds {\n bounds: LatLngBoundInput;\n options?: MapboxFitBoundsOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxJumpToPositionOptions extends Omit<MapboxGl.CameraOptions, 'center'> {\n center: LatLngPointInput;\n}\n\nexport interface MapboxJumpTo {\n center?: LatLngPointInput;\n to?: MapboxJumpToPositionOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxEaseToPositionOptions extends Omit<MapboxEaseToOptions, 'center'>, MapboxJumpToPositionOptions {}\n\nexport interface MapboxEaseTo {\n center?: LatLngPointInput;\n to?: MapboxEaseToPositionOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxFlyToPositionOptions extends Omit<MapboxFlyToOptions, 'center'>, MapboxJumpToPositionOptions {}\n\nexport interface MapboxFlyTo {\n center?: LatLngPointInput;\n to?: MapboxFlyToPositionOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxRotateTo {\n bearing: MapboxBearing;\n options?: mapboxgl.AnimationOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxResetNorth {\n options?: mapboxgl.AnimationOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxResetNorthPitch {\n options?: mapboxgl.AnimationOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxSnapToNorth {\n options?: mapboxgl.AnimationOptions;\n eventData?: MapboxEventData;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dereekb-dbx-web-mapbox.mjs","sources":["../../../../packages/dbx-web/mapbox/src/lib/mapbox.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.util.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.rxjs.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.change.service.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.store.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.injection.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.map.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.drawer.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.component.html","../../../../packages/dbx-web/mapbox/src/lib/mapbox.menu.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.store.provide.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.markers.component.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.layout.resize.sync.directive.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.module.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.providers.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.marker.ts","../../../../packages/dbx-web/mapbox/src/lib/mapbox.ts","../../../../packages/dbx-web/mapbox/src/dereekb-dbx-web-mapbox.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { latLngPoint, LatLngPointInput, Milliseconds } from '@dereekb/util';\nimport { MapOptions } from 'mapbox-gl';\nimport { KnownMapboxStyle, MapboxZoomLevel } from './mapbox';\n\nexport class DbxMapboxConfig {\n readonly defaultStyle?: MapOptions['style'];\n readonly defaultZoom?: MapboxZoomLevel;\n readonly defaultCenter?: LatLngPointInput;\n readonly defaultStoreRefreshPeriod?: number;\n}\n\nexport const DEFAULT_MAPBOX_STYLE: KnownMapboxStyle = 'mapbox://styles/mapbox/streets-v12';\nexport const DEFAULT_MAPBOX_CENTER: LatLngPointInput = [30.2690138665, -97.7408297965];\nexport const DEFAULT_MAPBOX_ZOOM: MapboxZoomLevel = 8;\nexport const DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD: Milliseconds = 200;\n\n@Injectable()\nexport class DbxMapboxService {\n private readonly _config = inject(DbxMapboxConfig, { optional: true }) ?? {};\n\n get defaultStyle() {\n return this._config.defaultStyle ?? DEFAULT_MAPBOX_STYLE;\n }\n\n get defaultZoom(): MapboxZoomLevel {\n return this._config.defaultZoom ?? DEFAULT_MAPBOX_ZOOM;\n }\n\n get defaultCenter(): LatLngPointInput {\n return this._config.defaultCenter ?? DEFAULT_MAPBOX_CENTER;\n }\n\n get mapboxMapStoreTimerRefreshPeriod(): number {\n return this._config.defaultStoreRefreshPeriod ?? DEFAULT_MAPBOX_MAP_STORE_TIMER_REFRESH_PERIOD;\n }\n\n initializationOptions(): Partial<MapOptions> {\n return {\n style: this.defaultStyle,\n zoom: this.defaultZoom,\n center: latLngPoint(this.defaultCenter)\n };\n }\n}\n","import { type LatLngBound, type LatLngPoint, type Vector, type VectorTuple } from '@dereekb/util';\nimport { bounds } from '@placemarkio/geo-viewport';\nimport { type MapboxTileSize, type MapboxZoomLevel } from './mapbox';\n\nexport interface MapboxViewportBoundFunctionConfig {\n readonly mapCanvasSize: Vector;\n /**\n * Mapbox tilesize being used. Defaults to 512x512.\n */\n readonly tileSize?: MapboxTileSize;\n}\n\n/**\n * Input for MapboxViewportBoundFunction.\n */\nexport interface MapboxViewportBoundFunctionInput {\n /**\n * Center of the viewport\n */\n readonly center: LatLngPoint;\n /**\n * Zoom level\n */\n readonly zoom: MapboxZoomLevel;\n}\n\n/**\n * Used to calculate the bounds of a view/object given the input MapboxViewportBoundFunctionInput.\n */\nexport type MapboxViewportBoundFunction = (input: MapboxViewportBoundFunctionInput) => LatLngBound;\n\nexport function mapboxViewportBoundFunction(config: MapboxViewportBoundFunctionConfig): MapboxViewportBoundFunction {\n const { mapCanvasSize, tileSize = 512 } = config;\n const dimensions: VectorTuple = [mapCanvasSize.x, mapCanvasSize.y];\n return ({ center, zoom }) => {\n const boundingBox = bounds([center.lng, center.lat], zoom, dimensions, tileSize);\n const [swLng, swLat, neLng, neLat] = boundingBox;\n\n const result = {\n sw: { lat: swLat, lng: swLng },\n ne: { lat: neLat, lng: neLng }\n };\n\n return result;\n };\n}\n","import { type ObservableOrValue, asObservable } from '@dereekb/rxjs';\nimport { LAT_LONG_10M_PRECISION, type LatLngPointInput, type LatLngBound, type LatLngBoundCheckFunction, latLngPointFunction, roundNumberToStepFunction, type RoundNumberToStepFunctionInput, type LatLngPrecision, type Maybe } from '@dereekb/util';\nimport { combineLatestWith, map, type Observable, type OperatorFunction, switchMap, shareReplay, distinctUntilChanged } from 'rxjs';\nimport { type MapboxZoomLevel } from './mapbox';\nimport { type MapboxViewportBoundFunction } from './mapbox.util';\n\nexport type FilterMapboxBoundReadItemValueFunction<T> = (value: T) => MapboxViewportBoundFunctionItemValue;\n\nexport interface FilterMapboxBoundConfig<T> {\n readonly boundFunctionObs: ObservableOrValue<MapboxViewportBoundFunction>;\n readonly boundDecisionObs: ObservableOrValue<LatLngBoundCheckFunction>;\n /**\n * Reads the value from the input item.\n */\n readonly readValue: FilterMapboxBoundReadItemValueFunction<T>;\n /**\n * Minimum precision to retain. Defaults to LAT_LONG_10M_PRECISION\n */\n readonly precision?: LatLngPrecision;\n /**\n * Amount of zoom rounding to use. By default rounds to 0.5 steps using \"floor\" in order to \"round up\" since zoom values are inversely proportional to bounds area.\n */\n readonly zoomRounding?: RoundNumberToStepFunctionInput;\n /**\n * Default zoom level for item values that do not have an explicit zoom, or a zoom of 0.\n *\n * Defaults to 17, which can produce a viewport/bounds about the size of a park.\n */\n readonly defaultZoom?: MapboxZoomLevel;\n}\n\nexport interface MapboxViewportBoundFunctionItemValue {\n readonly center: LatLngPointInput;\n readonly zoom?: Maybe<MapboxZoomLevel>;\n}\n\nexport interface MapboxViewportBoundFunctionItem<T> {\n readonly value: T;\n readonly bound: LatLngBound;\n}\n\n/**\n * Filters the input objects based on their center and zoom values.\n *\n * This function caches the bounds computations for each of the input values.\n *\n * @param config\n * @returns\n */\nexport function filterByMapboxViewportBound<T>(config: FilterMapboxBoundConfig<T>): OperatorFunction<T[], T[]> {\n const { boundDecisionObs: inputBoundDecisionObs, boundFunctionObs: inputBoundFunctionObs, defaultZoom: inputDefaultZoom = 17, readValue, zoomRounding, precision = LAT_LONG_10M_PRECISION } = config;\n const _latLngPoint = latLngPointFunction({ wrap: false, validate: false, precision });\n const _roundZoom = roundNumberToStepFunction(zoomRounding || { step: 0.5, round: 'floor' });\n\n const boundDecisionObs = asObservable(inputBoundDecisionObs);\n const boundFunctionObs = asObservable(inputBoundFunctionObs);\n\n return (input: Observable<T[]>) => {\n return boundFunctionObs.pipe(\n distinctUntilChanged(),\n switchMap((viewportBoundFunction) => {\n const cache = new Map<string, LatLngBound>();\n\n return input.pipe(\n map((values: T[]) => {\n return values.map((value: T) => {\n const item: MapboxViewportBoundFunctionItemValue = readValue(value);\n const centerLatLng = _latLngPoint(item.center);\n const zoomStep = _roundZoom(item.zoom || inputDefaultZoom);\n const cacheKey = `${zoomStep}_${centerLatLng.lat}_${centerLatLng.lng}`;\n\n const cachedValue = cache.get(cacheKey);\n let bound: LatLngBound;\n\n if (!cachedValue) {\n bound = viewportBoundFunction({ center: centerLatLng, zoom: zoomStep });\n cache.set(cacheKey, bound);\n } else {\n bound = cachedValue;\n }\n\n return {\n value,\n bound\n } as MapboxViewportBoundFunctionItem<T>;\n });\n }),\n combineLatestWith(boundDecisionObs),\n map(([items, boundFunction]) => {\n const valuesInBounds: T[] = [];\n\n items.forEach((item) => {\n if (boundFunction(item.bound)) {\n valuesInBounds.push(item.value);\n }\n });\n\n return valuesInBounds;\n })\n );\n }),\n shareReplay(1)\n );\n };\n}\n","import { cleanup, filterMaybe, onTrueToFalse } from '@dereekb/rxjs';\nimport { Injectable, inject } from '@angular/core';\nimport {\n isSameLatLngBound,\n isSameLatLngPoint,\n IsWithinLatLngBoundFunction,\n isWithinLatLngBoundFunction,\n LatLngBound,\n latLngBoundFunction,\n LatLngPointInput,\n LatLngPoint,\n latLngPointFunction,\n Maybe,\n OverlapsLatLngBoundFunction,\n overlapsLatLngBoundFunction,\n diffLatLngBoundPoints,\n latLngBoundCenterPoint,\n addLatLngPoints,\n isDefaultLatLngPoint,\n swMostLatLngPoint,\n neMostLatLngPoint,\n latLngBoundWrapsMap,\n Vector,\n filterUndefinedValues,\n latLngBoundFromInput,\n vectorMinimumSizeResizeFunction,\n isSameVector,\n ZoomLevel\n} from '@dereekb/util';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { MapService } from 'ngx-mapbox-gl';\nimport { defaultIfEmpty, distinctUntilChanged, filter, map, shareReplay, switchMap, tap, NEVER, Observable, of, Subscription, startWith, interval, first, combineLatest, EMPTY, OperatorFunction, throttleTime } from 'rxjs';\nimport MapboxGl, { MapEventType, MapEvents, Map } from 'mapbox-gl';\nimport { DbxMapboxClickEvent, KnownMapboxStyle, MapboxBearing, MapboxEaseTo, MapboxEventData, MapboxFitBounds, MapboxFitPositions, MapboxFlyTo, MapboxJumpTo, MapboxResetNorth, MapboxResetNorthPitch, MapboxRotateTo, MapboxSnapToNorth, MapboxStyleConfig, MapboxZoomLevel, MapboxZoomLevelRange } from './mapbox';\nimport { DbxMapboxService } from './mapbox.service';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { mapboxViewportBoundFunction, MapboxViewportBoundFunction } from './mapbox.util';\nimport { FilterMapboxBoundConfig, FilterMapboxBoundReadItemValueFunction, filterByMapboxViewportBound } from './mapbox.rxjs';\n\nexport type MapboxMapLifecycleState = 'init' | 'load' | 'render' | 'idle';\nexport type MapboxMapMoveState = 'init' | 'idle' | 'moving';\nexport type MapboxMapZoomState = 'init' | 'idle' | 'zooming';\nexport type MapboxMapRotateState = 'init' | 'idle' | 'rotating';\n\nexport interface StringMapboxListenerPair {\n type: string;\n listener: (ev: MapboxEventData) => void;\n}\n\nexport interface TypedMapboxListenerPair<T extends keyof MapEventType> {\n type: T;\n listener: (ev: MapEventType[T] & MapboxEventData) => void;\n}\n\nexport interface DbxMapboxMarginCalculationSizing {\n leftMargin: number;\n rightMargin: number;\n fullWidth: number;\n}\n\nexport type DbxMapboxStoreBoundRefreshType = 'always' | 'when_not_rendering' | 'only_after_render_finishes';\n\nexport interface DbxMapboxStoreBoundRefreshSettings {\n /**\n * Max bound refresh interval.\n */\n throttle: number;\n /**\n * Whether or not to wait to update the bound until after it has finished rendering.\n */\n refreshType: DbxMapboxStoreBoundRefreshType;\n}\n\nexport interface DbxMapboxStoreState {\n /**\n * Current MapService being utilized.\n */\n readonly mapService?: Maybe<MapService>;\n readonly lifecycleState: MapboxMapLifecycleState;\n readonly moveState: MapboxMapMoveState;\n readonly zoomState: MapboxMapZoomState;\n readonly rotateState: MapboxMapRotateState;\n /**\n * Visual container size of the map.\n */\n readonly mapCanvasSize?: Maybe<Vector>;\n /**\n * Latest click event\n */\n readonly clickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Latest double-click event\n */\n readonly doubleClickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Latest contextmenu event.\n */\n readonly rightClickEvent?: Maybe<DbxMapboxClickEvent>;\n /**\n * Whether or not to retain content between resets.\n *\n * True by default.\n */\n readonly retainContent: boolean;\n /**\n * Custom drawer content configuration.\n */\n readonly drawerContent?: Maybe<DbxInjectionComponentConfig<unknown>>;\n /**\n * Latest error\n */\n readonly error?: Maybe<Error>;\n /**\n * Map margin/offset\n */\n readonly margin?: Maybe<DbxMapboxMarginCalculationSizing>;\n /**\n * Minimum vector size to use for the viewportBoundFunction$. If not defined there is no minimum.\n */\n readonly minimumVirtualViewportSize?: Maybe<Partial<Vector>>;\n /**\n * Bound refresh settings\n */\n readonly boundRefreshSettings: DbxMapboxStoreBoundRefreshSettings;\n /**\n * Whether or not to use the virtual bound (vs raw bound) for all bound-related observables.\n *\n * Defaults to true.\n */\n readonly useVirtualBound: boolean;\n}\n\n/**\n * Store used for retrieving information.\n */\n@Injectable()\nexport class DbxMapboxMapStore extends ComponentStore<DbxMapboxStoreState> {\n private readonly dbxMapboxService = inject(DbxMapboxService);\n\n private safeLatLngPoint = latLngPointFunction({ wrap: true });\n private latLngPoint = latLngPointFunction({ wrap: false, validate: false });\n private latLngBound = latLngBoundFunction({ pointFunction: this.latLngPoint });\n\n constructor() {\n super({\n lifecycleState: 'init',\n moveState: 'init',\n zoomState: 'init',\n rotateState: 'init',\n retainContent: true,\n useVirtualBound: true,\n boundRefreshSettings: {\n throttle: 300,\n refreshType: 'always'\n }\n });\n }\n\n // MARK: Effects\n readonly setMapService = this.effect((input: Observable<Maybe<MapService>>) => {\n return input.pipe(\n switchMap((service: Maybe<MapService>) => {\n this._setMapService(service);\n\n if (!service) {\n return NEVER;\n } else {\n return service.mapLoaded$.pipe(\n defaultIfEmpty(undefined),\n map(() => {\n this._setLifecycleState('idle');\n this._setMoveState('idle');\n this._setZoomState('idle');\n this._setRotateState('idle');\n\n const map = service.mapInstance;\n\n const listenerPairs: StringMapboxListenerPair[] = [];\n\n function addListener<T extends keyof MapEvents>(type: T, listener: Parameters<typeof map.on<T>>[2]) {\n map.on<T>(type, listener);\n listenerPairs.push({ type, listener } as StringMapboxListenerPair);\n }\n\n addListener('idle', () => this._setLifecycleState('idle'));\n addListener('render', () => this._setLifecycleState('render'));\n addListener('error', (x) => {\n this._setError(x.error);\n });\n\n addListener('movestart', () => this._setMoveState('moving'));\n addListener('moveend', () => this._setMoveState('idle'));\n\n addListener('zoomstart', () => this._setZoomState('zooming'));\n addListener('zoomend', () => this._setZoomState('idle'));\n\n addListener('rotatestart', () => this._setRotateState('rotating'));\n addListener('rotateend', () => this._setRotateState('idle'));\n\n addListener('click', (x) => this._setClickEvent(x));\n addListener('dblclick', (x) => this._setDoubleClickEvent(x));\n addListener('contextmenu', (x) => this._setRightClickEvent(x));\n\n const refreshForResize = () => {\n const { clientWidth: x, clientHeight: y } = map.getCanvas();\n this._setMapCanvasSize({ x, y });\n };\n\n addListener('resize', refreshForResize);\n refreshForResize();\n\n const subs: Subscription[] = [];\n\n return {\n service,\n listenerPairs,\n subs\n };\n })\n );\n }\n }),\n cleanup(({ service, listenerPairs, subs }) => {\n const map = service.mapInstance;\n\n if (map) {\n listenerPairs.forEach((x) => {\n map.off(x.type, x.listener);\n });\n }\n\n subs.forEach((sub) => sub.unsubscribe());\n })\n );\n });\n\n readonly setStyle = this.effect((input: Observable<MapboxStyleConfig | KnownMapboxStyle | string>) => {\n return input.pipe(\n switchMap((style) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (typeof style === 'string') {\n map.setStyle(style);\n } else {\n map.setStyle(style.style, style.options);\n }\n })\n );\n })\n );\n });\n\n readonly setCenter = this.effect((input: Observable<LatLngPointInput>) => {\n return input.pipe(\n switchMap((center: LatLngPointInput) => {\n const centerPoint = this.safeLatLngPoint(center);\n return this.mapInstance$.pipe(tap((map) => map.setCenter(centerPoint)));\n })\n );\n });\n\n readonly setZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setZoom(zoom)));\n })\n );\n });\n\n readonly setZoomRange = this.effect((input: Observable<Partial<MapboxZoomLevelRange>>) => {\n return input.pipe(\n switchMap((zoomRange: Partial<MapboxZoomLevelRange>) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n map.setMinZoom(zoomRange.min || null);\n map.setMaxZoom(zoomRange.max || null);\n })\n );\n })\n );\n });\n\n readonly setMinZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setMinZoom(zoom)));\n })\n );\n });\n\n readonly setMaxZoom = this.effect((input: Observable<MapboxZoomLevel>) => {\n return input.pipe(\n switchMap((zoom: MapboxZoomLevel) => {\n return this.mapInstance$.pipe(tap((map) => map.setMaxZoom(zoom)));\n })\n );\n });\n\n readonly setKeyboardDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.keyboard.enable();\n } else {\n map.keyboard.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setDragRotateDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.dragRotate.enable();\n } else {\n map.dragRotate.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setDragPanDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.dragPan.enable();\n } else {\n map.dragPan.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setZoomDisabled = this.effect((input: Observable<Maybe<boolean> | void>) => {\n return input.pipe(\n switchMap((disabled: Maybe<boolean> | void) => {\n return this.mapInstance$.pipe(\n tap((map) => {\n if (disabled === false) {\n map.scrollZoom.enable();\n map.doubleClickZoom.enable();\n } else {\n map.scrollZoom.disable();\n map.doubleClickZoom.disable();\n }\n })\n );\n })\n );\n });\n\n readonly setPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch) => {\n return this.mapInstance$.pipe(tap((map) => map.setPitch(pitch)));\n })\n );\n });\n\n readonly setMinPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch: number) => {\n return this.mapInstance$.pipe(tap((map) => map.setMinPitch(pitch)));\n })\n );\n });\n\n readonly setMaxPitch = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((pitch: number) => {\n return this.mapInstance$.pipe(tap((map) => map.setMaxPitch(pitch)));\n })\n );\n });\n\n readonly setBearing = this.effect((input: Observable<number>) => {\n return input.pipe(\n switchMap((bearing) => {\n return this.mapInstance$.pipe(tap((map) => map.setBearing(bearing)));\n })\n );\n });\n\n readonly rotateTo = this.effect((input: Observable<MapboxBearing | MapboxRotateTo>) => {\n return input.pipe(\n switchMap((rotateInput: MapboxBearing | MapboxRotateTo) => {\n const rotate: MapboxRotateTo = typeof rotateInput === 'number' ? { bearing: rotateInput } : rotateInput;\n return this.mapInstance$.pipe(tap((map) => map.rotateTo(rotate.bearing, rotate.options, rotate?.eventData)));\n })\n );\n });\n\n readonly resetNorth = this.effect((input: Observable<Maybe<MapboxResetNorth> | void>) => {\n return input.pipe(\n switchMap((reset: Maybe<MapboxResetNorth> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.resetNorth(reset?.options, reset?.eventData)));\n })\n );\n });\n\n readonly resetNorthPitch = this.effect((input: Observable<Maybe<MapboxResetNorthPitch> | void>) => {\n return input.pipe(\n switchMap((reset: Maybe<MapboxResetNorthPitch> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.resetNorthPitch(reset?.options, reset?.eventData)));\n })\n );\n });\n\n readonly snapToNorth = this.effect((input: Observable<Maybe<MapboxSnapToNorth> | void>) => {\n return input.pipe(\n switchMap((snap: Maybe<MapboxSnapToNorth> | void) => {\n return this.mapInstance$.pipe(tap((map) => map.snapToNorth(snap?.options, snap?.eventData)));\n })\n );\n });\n\n readonly fitPositions = this.effect((input: Observable<MapboxFitPositions>) => {\n return input.pipe(\n switchMap((x) => {\n const boundFromInput = latLngBoundFromInput(x.positions);\n\n if (boundFromInput) {\n const bound = this.latLngBound(boundFromInput);\n return this.mapInstance$.pipe(tap((map) => map.fitBounds(new MapboxGl.LngLatBounds(bound.sw, bound.ne), x.options, x.eventData)));\n } else {\n return EMPTY;\n }\n })\n );\n });\n\n readonly fitBounds = this.effect((input: Observable<MapboxFitBounds>) => {\n return input.pipe(\n switchMap((x) => {\n const bound = this.latLngBound(x.bounds);\n return this.mapInstance$.pipe(tap((map) => map.fitBounds(new MapboxGl.LngLatBounds(bound.sw, bound.ne), x.options, x.eventData)));\n })\n );\n });\n\n readonly jumpTo = this.effect((input: Observable<MapboxJumpTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.jumpTo(filterUndefinedValues({ ...x.to, center }), x.eventData)));\n })\n );\n });\n\n readonly easeTo = this.effect((input: Observable<MapboxEaseTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.easeTo(filterUndefinedValues({ ...x.to, center }), x.eventData)));\n })\n );\n });\n\n readonly flyTo = this.effect((input: Observable<MapboxFlyTo>) => {\n return input.pipe(\n switchMap((x) => {\n const inputCenter = x.center ?? x.to?.center;\n const center = inputCenter ? this.safeLatLngPoint(inputCenter) : undefined;\n return this.mapInstance$.pipe(tap((map) => map.flyTo(filterUndefinedValues({ ...x.to, center }), x.eventData)));\n })\n );\n });\n\n readonly resetPitchAndBearing = this.effect((input: Observable<void>) => {\n return input.pipe(\n switchMap(() => {\n return this.mapInstance$.pipe(\n tap((map) => {\n map.setPitch(0);\n map.setBearing(0);\n })\n );\n })\n );\n });\n\n // MARK: Accessors\n get timerRefreshPeriod() {\n return this.dbxMapboxService.mapboxMapStoreTimerRefreshPeriod;\n }\n\n movingTimer(period = this.timerRefreshPeriod) {\n return this.moveState$.pipe(\n switchMap((x) => {\n if (x === 'moving') {\n return interval(period);\n } else {\n return of(0);\n }\n }),\n shareReplay(1)\n );\n }\n\n lifecycleRenderTimer(period = this.timerRefreshPeriod) {\n return this.lifecycleState$.pipe(\n switchMap((x) => {\n if (x === 'render') {\n return interval(period);\n } else {\n return of(0);\n }\n }),\n shareReplay(1)\n );\n }\n\n atNextIdle(): Observable<boolean> {\n return this.moveState$.pipe(\n map((x) => x === 'idle'),\n first()\n );\n }\n\n calculateNextCenterWithOffset(inputOffset: LatLngPointInput): Observable<LatLngPoint> {\n const offset = this.latLngPoint(inputOffset);\n\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.center$.pipe(\n first(),\n map((center) => {\n const newCenter = {\n lat: offset.lat + center.lat,\n lng: offset.lng + center.lng\n };\n return newCenter;\n })\n )\n )\n );\n }\n\n calculateNextCenterOffsetWithScreenMarginChange(sizing: DbxMapboxMarginCalculationSizing): Observable<LatLngPoint> {\n // TODO: Consider calculating this using the viewport() function from @placemarkio/geo-viewport\n return this.atNextIdle().pipe(\n switchMap(() =>\n this.bound$.pipe(\n first(),\n map((bounds) => {\n const diff = diffLatLngBoundPoints(bounds, true);\n const center = latLngBoundCenterPoint(bounds);\n\n const offsetWidth = sizing.leftMargin + sizing.rightMargin; // 300 + 0\n const newWidth = sizing.fullWidth - offsetWidth; // 1000 - 300 - 0\n const newWidthRatio = newWidth / sizing.fullWidth; // 700 / 1000\n const newCenterLongitudeWidth = diff.lng * newWidthRatio; // 70% offset\n\n const effectiveOffset: LatLngPoint = {\n lat: 0,\n lng: newCenterLongitudeWidth / 2\n };\n\n const newCenter = addLatLngPoints(bounds.sw, effectiveOffset);\n newCenter.lat = center.lat; // retain center position\n\n // console.log({ sizing, bounds, effectiveOffset, newWidth, offsetWidth, diff, center, newCenter });\n\n return newCenter;\n })\n )\n )\n );\n }\n\n filterByViewportBound<T>(input: FilterMapboxBoundReadItemValueFunction<T> | Omit<FilterMapboxBoundConfig<T>, 'boundFunctionObs' | 'boundDecisionObs'>): OperatorFunction<T[], T[]> {\n const config = typeof input === 'function' ? { readValue: input } : input;\n\n return filterByMapboxViewportBound({\n ...config,\n boundFunctionObs: this.viewportBoundFunction$,\n boundDecisionObs: this.overlapsBoundFunction$\n });\n }\n\n readonly currentMapService$ = this.state$.pipe(\n map((x) => x.mapService),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly mapService$ = this.currentMapService$.pipe(filterMaybe());\n\n readonly currentMapInstance$: Observable<Maybe<Map>> = this.currentMapService$.pipe(\n switchMap((currentMapService: Maybe<MapService>) => {\n if (currentMapService) {\n return currentMapService.mapLoaded$.pipe(\n defaultIfEmpty(undefined),\n map(() => currentMapService.mapInstance)\n );\n } else {\n return of(undefined);\n }\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly mapInstance$ = this.currentMapInstance$.pipe(filterMaybe());\n\n readonly boundRefreshSettings$ = this.state$.pipe(\n map((x) => x.boundRefreshSettings),\n shareReplay(1)\n );\n\n readonly moveState$ = this.state$.pipe(\n map((x) => x.moveState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly lifecycleState$ = this.state$.pipe(\n map((x) => x.lifecycleState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly zoomState$ = this.state$.pipe(\n map((x) => x.zoomState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly rotateState$ = this.state$.pipe(\n map((x) => x.rotateState),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isInitialized$ = this.currentMapInstance$.pipe(\n switchMap((x) => {\n if (!x) {\n return of(false);\n } else {\n return combineLatest([this.moveState$.pipe(map((x) => x === 'idle')), this.lifecycleState$.pipe(map((x) => x === 'idle'))]).pipe(\n filter(([m, l]) => m && l),\n first(),\n map(() => true)\n );\n }\n }),\n shareReplay(1)\n );\n\n readonly whenInitialized$ = this.isInitialized$.pipe(\n filter((x) => true),\n shareReplay(1)\n );\n\n readonly isRendering$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.lifecycleState$.pipe(\n map((x) => x === 'render'),\n distinctUntilChanged(),\n shareReplay(1)\n )\n )\n );\n\n readonly isMoving$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.moveState$.pipe(\n map((x) => x === 'moving'),\n distinctUntilChanged(),\n shareReplay(1)\n )\n )\n );\n\n readonly isZooming$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.zoomState$.pipe(\n map((x) => x === 'zooming'),\n distinctUntilChanged(),\n shareReplay(1)\n )\n )\n );\n\n readonly isRotating$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.rotateState$.pipe(\n map((x) => x === 'rotating'),\n distinctUntilChanged(),\n shareReplay(1)\n )\n )\n );\n\n private readonly _movingTimer = this.movingTimer();\n private readonly _renderingTimer = this.lifecycleRenderTimer();\n\n readonly centerNow$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => this.latLngPoint(x.getCenter())))),\n shareReplay(1)\n )\n ),\n shareReplay(1)\n );\n\n readonly center$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isMoving$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.centerNow$.pipe(first())),\n distinctUntilChanged<LatLngPoint>(isSameLatLngPoint),\n shareReplay(1)\n );\n }),\n shareReplay(1)\n );\n\n readonly minimumVirtualViewportSize$ = this.state$.pipe(\n map((x) => x.minimumVirtualViewportSize),\n distinctUntilChanged(isSameVector),\n shareReplay(1)\n );\n\n readonly currentMapCanvasSize$ = this.state$.pipe(\n map((x) => x.mapCanvasSize),\n distinctUntilChanged<Maybe<Vector>>(isSameVector),\n shareReplay(1)\n );\n\n /**\n * The map canvas size with consideration to the virtual viewport size.\n */\n readonly mapCanvasSize$ = this.currentMapCanvasSize$.pipe(filterMaybe());\n\n minimumMapCanvasSize(minVector: Partial<Vector>): Observable<Vector> {\n const resizeFn = vectorMinimumSizeResizeFunction(minVector);\n return this.mapCanvasSize$.pipe(\n map((x) => resizeFn(x)),\n distinctUntilChanged<Vector>(isSameVector),\n shareReplay(1)\n );\n }\n\n /**\n * The map canvas size with consideration to the virtual viewport size.\n */\n readonly virtualMapCanvasSize$ = this.minimumVirtualViewportSize$.pipe(\n switchMap((minimumVirtualViewportSize) => {\n if (minimumVirtualViewportSize) {\n return this.minimumMapCanvasSize(minimumVirtualViewportSize);\n } else {\n return this.mapCanvasSize$;\n }\n }),\n distinctUntilChanged<Vector>(isSameVector),\n shareReplay(1)\n );\n\n readonly rawViewportBoundFunction$: Observable<MapboxViewportBoundFunction> = this.mapCanvasSize$.pipe(\n map((mapCanvasSize) => mapboxViewportBoundFunction({ mapCanvasSize })),\n shareReplay(1)\n );\n\n /**\n * Creates a MapboxViewportBoundFunction observable that returns the minimum viewport size.\n *\n * @param minVector\n * @returns\n */\n viewportBoundFunctionWithMinimumSize(minVector: Partial<Vector>): Observable<MapboxViewportBoundFunction> {\n const resizeFn = vectorMinimumSizeResizeFunction(minVector);\n return this.mapCanvasSize$.pipe(\n map((x) => resizeFn(x)),\n distinctUntilChanged<Vector>(isSameVector),\n map((mapCanvasSize) => mapboxViewportBoundFunction({ mapCanvasSize })),\n shareReplay(1)\n );\n }\n\n readonly viewportBoundFunction$: Observable<MapboxViewportBoundFunction> = this.minimumVirtualViewportSize$.pipe(\n switchMap((minimumVirtualViewportSize) => {\n if (minimumVirtualViewportSize) {\n return this.viewportBoundFunctionWithMinimumSize(minimumVirtualViewportSize);\n } else {\n return this.rawViewportBoundFunction$;\n }\n }),\n shareReplay(1)\n );\n\n readonly virtualBound$: Observable<LatLngBound> = this.viewportBoundFunction$.pipe(\n switchMap((fn) => {\n return this.boundRefreshSettings$.pipe(\n switchMap((settings) => {\n const { throttle: throttleMs, refreshType } = settings;\n\n let obs: Observable<[LatLngPoint, ZoomLevel]>;\n\n switch (refreshType) {\n case 'always':\n obs = combineLatest([this.centerNow$, this.zoomNow$]);\n break;\n case 'when_not_rendering':\n case 'only_after_render_finishes':\n obs = this.bound$.pipe(switchMap(() => combineLatest([this.centerNow$, this.zoomNow$]))); // refresh whenever the bound refreshes\n break;\n }\n\n return obs.pipe(\n throttleTime(throttleMs, undefined, { leading: true, trailing: true }),\n map(([center, zoom]) =>\n fn({\n center,\n zoom\n })\n )\n );\n })\n );\n }),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n\n readonly margin$ = this.state$.pipe(\n map((x) => x.margin),\n distinctUntilChanged((a, b) => a != null && b != null && a.fullWidth === b.fullWidth && a.leftMargin === b.leftMargin && a.rightMargin === b.rightMargin),\n shareReplay(1)\n );\n\n readonly reverseMargin$ = this.margin$.pipe(\n map((x) => {\n if (x) {\n return { leftMargin: -x.leftMargin, rightMargin: -x.rightMargin, fullWidth: x.fullWidth };\n } else {\n return x;\n }\n })\n );\n\n readonly centerGivenMargin$: Observable<LatLngPoint> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.reverseMargin$.pipe(\n switchMap((x) => {\n if (x) {\n return this.center$.pipe(switchMap((_) => this.calculateNextCenterOffsetWithScreenMarginChange(x)));\n } else {\n return this.isMoving$.pipe(\n filter((x) => !x),\n switchMap(() => this.center$)\n );\n }\n })\n );\n }),\n shareReplay(1)\n );\n\n readonly rawBoundNow$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) =>\n this._renderingTimer.pipe(\n map(() => {\n const bound = x.getBounds();\n let result: LatLngBound | null = null;\n\n if (bound != null) {\n const boundSw = bound.getSouthWest();\n const boundNe = bound.getNorthEast();\n\n const sw = isDefaultLatLngPoint(boundSw) ? swMostLatLngPoint() : { lat: boundSw.lat, lng: boundSw.lng };\n const ne = isDefaultLatLngPoint(boundNe) ? neMostLatLngPoint() : { lat: boundNe.lat, lng: boundNe.lng };\n\n result = this.latLngBound(sw, ne);\n }\n\n return result;\n }),\n filterMaybe()\n )\n )\n )\n ),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n\n readonly rawBound$: Observable<LatLngBound> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.boundRefreshSettings$.pipe(\n switchMap((settings) => {\n const { throttle: throttleMs, refreshType } = settings;\n\n let obs: Observable<LatLngBound>;\n\n switch (refreshType) {\n case 'always':\n obs = this.rawBoundNow$;\n break;\n case 'when_not_rendering':\n obs = this.isRendering$.pipe(switchMap((x) => (x ? EMPTY : this.rawBoundNow$)));\n break;\n case 'only_after_render_finishes':\n obs = this.isRendering$.pipe(\n onTrueToFalse(),\n switchMap((x) => this.rawBoundNow$.pipe(first()))\n );\n break;\n }\n\n return obs.pipe(throttleTime(throttleMs, undefined, { leading: true, trailing: true }));\n })\n );\n }),\n distinctUntilChanged(isSameLatLngBound),\n shareReplay(1)\n );\n\n readonly useVirtualBound$: Observable<boolean> = this.state$.pipe(\n map((x) => x.useVirtualBound),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly bound$: Observable<LatLngBound> = this.useVirtualBound$.pipe(\n switchMap((useVirtualBound) => {\n if (useVirtualBound) {\n return this.virtualBound$;\n } else {\n return this.rawBound$;\n }\n }),\n shareReplay(1)\n );\n\n readonly boundSizing$: Observable<LatLngPoint> = this.bound$.pipe(\n map((x) => diffLatLngBoundPoints(x)),\n shareReplay(1)\n );\n\n readonly boundWrapsAroundWorld$: Observable<boolean> = this.bound$.pipe(\n map((x) => latLngBoundWrapsMap(x)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isWithinBoundFunction$: Observable<IsWithinLatLngBoundFunction> = this.bound$.pipe(\n map((x) => isWithinLatLngBoundFunction(x)),\n shareReplay(1)\n );\n\n readonly overlapsBoundFunction$: Observable<OverlapsLatLngBoundFunction> = this.virtualBound$.pipe(\n map((x) => overlapsLatLngBoundFunction(x)),\n shareReplay(1)\n );\n\n readonly zoomNow$: Observable<MapboxZoomLevel> = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._renderingTimer.pipe(map(() => x.getZoom() as MapboxZoomLevel))),\n shareReplay(1)\n )\n )\n );\n\n readonly zoom$: Observable<MapboxZoomLevel> = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isZooming$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.zoomNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly pitchNow$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => x.getPitch()))),\n shareReplay(1)\n )\n )\n );\n\n readonly pitch$ = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRotating$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.pitchNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly bearingNow$ = this.whenInitialized$.pipe(\n switchMap(() =>\n this.mapInstance$.pipe(\n switchMap((x) => this._movingTimer.pipe(map(() => x.getBearing()))),\n shareReplay(1)\n )\n )\n );\n\n readonly bearing$ = this.whenInitialized$.pipe(\n switchMap(() => {\n return this.isRotating$.pipe(\n onTrueToFalse(),\n startWith(undefined),\n switchMap(() => this.bearingNow$.pipe(first())),\n distinctUntilChanged(),\n shareReplay(1)\n );\n })\n );\n\n readonly drawerContent$ = this.state$.pipe(\n map((x) => x.drawerContent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hasDrawerContent$ = this.drawerContent$.pipe(\n map((x) => x != null),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly clickEvent$ = this.state$.pipe(\n map((x) => x.clickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly doubleClickEvent$ = this.state$.pipe(\n map((x) => x.doubleClickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly rightClickEvent$ = this.state$.pipe(\n map((x) => x.rightClickEvent),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n // MARK: State Changes\n readonly setMargin = this.updater((state, margin: Maybe<DbxMapboxMarginCalculationSizing>) => ({ ...state, margin: margin && (margin.rightMargin !== 0 || margin.leftMargin !== 0) ? margin : undefined }));\n readonly setMinimumVirtualViewportSize = this.updater((state, minimumVirtualViewportSize: Maybe<Partial<Vector>>) => ({ ...state, minimumVirtualViewportSize }));\n readonly setUseVirtualBound = this.updater((state, useVirtualBound: boolean) => ({ ...state, useVirtualBound }));\n readonly setBoundRefreshSettings = this.updater((state, boundRefreshSettings: Partial<DbxMapboxStoreBoundRefreshSettings>) => ({ ...state, boundRefreshSettings: { ...state.boundRefreshSettings, ...boundRefreshSettings } }));\n\n private readonly _setMapService = this.updater((state, mapService: Maybe<MapService>) => ({ mapService, moveState: 'init', lifecycleState: 'init', zoomState: 'init', rotateState: 'init', retainContent: state.retainContent, drawerContent: state.retainContent ? state.drawerContent : undefined, useVirtualBound: state.useVirtualBound, boundRefreshSettings: state.boundRefreshSettings }));\n private readonly _setLifecycleState = this.updater((state, lifecycleState: MapboxMapLifecycleState) => ({ ...state, lifecycleState }));\n private readonly _setMoveState = this.updater((state, moveState: MapboxMapMoveState) => ({ ...state, moveState }));\n private readonly _setZoomState = this.updater((state, zoomState: MapboxMapZoomState) => ({ ...state, zoomState }));\n private readonly _setRotateState = this.updater((state, rotateState: MapboxMapRotateState) => ({ ...state, rotateState }));\n\n private readonly _setMapCanvasSize = this.updater((state, mapCanvasSize: Vector) => ({ ...state, mapCanvasSize }));\n private readonly _setClickEvent = this.updater((state, clickEvent: DbxMapboxClickEvent) => ({ ...state, clickEvent }));\n private readonly _setDoubleClickEvent = this.updater((state, doubleClickEvent: DbxMapboxClickEvent) => ({ ...state, doubleClickEvent }));\n private readonly _setRightClickEvent = this.updater((state, rightClickEvent: DbxMapboxClickEvent) => ({ ...state, rightClickEvent }));\n\n private readonly _setError = this.updater((state, error: Error) => ({ ...state, error }));\n\n readonly clearDrawerContent = this.updater((state) => setDrawerContent(state, undefined));\n readonly setDrawerContent = this.updater(setDrawerContent);\n}\n\nfunction setDrawerContent(state: DbxMapboxStoreState, drawerContent: Maybe<DbxInjectionComponentConfig<unknown>>) {\n return { ...state, drawerContent };\n}\n","import { Injectable, OnDestroy, inject } from '@angular/core';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { switchMap, tap, merge, Subject, throttleTime } from 'rxjs';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Provided in the parent component that allows children to emit events related to their lifecycles.\n */\n@Injectable({\n providedIn: null\n})\nexport class DbxMapboxChangeService implements OnDestroy {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n\n private readonly _markerDestroyed = new Subject<void>();\n private readonly _applyChanges = new Subject<void>();\n\n readonly markerDestroyed$ = this._markerDestroyed;\n readonly applyChanges$ = merge(this._applyChanges, this.markerDestroyed$).pipe(throttleTime(100, undefined, { leading: false, trailing: true }));\n\n private readonly _applyChangesSub = new SubscriptionObject(\n this.dbxMapboxMapStore.mapService$\n .pipe(\n switchMap((mapService) =>\n this.applyChanges$.pipe(\n tap(() => {\n mapService.applyChanges();\n })\n )\n )\n )\n .subscribe()\n );\n\n applyChanges() {\n this._applyChanges.next();\n }\n\n emitMarkerDestroyed() {\n this._markerDestroyed.next();\n }\n\n ngOnDestroy(): void {\n this._markerDestroyed.complete();\n this._applyChanges.complete();\n this._applyChangesSub.destroy();\n }\n}\n","import { map, Observable, shareReplay } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { DbxInjectionComponentConfigWithoutInjector } from '@dereekb/dbx-core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { distinctUntilMapHasDifferentKeys, ObservableOrValueGetter } from '@dereekb/rxjs';\n\nexport type DbxMapboxInjectionKey = string;\n\nexport interface DbxMapboxInjectionConfig {\n /**\n * Unique key that identifies this config specifically.\n *\n * Keys should all be unique. The system does not expect duplicate keys. Modifications to injectionConfig should occur through the observable value.\n */\n readonly key: DbxMapboxInjectionKey;\n /**\n * Arbitrary injection type. Is used for filtering on configurations.\n */\n readonly type?: string;\n /**\n * Injection configuration. The injector is disallowed, as the parent injector must include the mapbox component.\n */\n readonly injectionConfig: ObservableOrValueGetter<DbxInjectionComponentConfigWithoutInjector>;\n}\n\nexport interface DbxMapboxMapInjectionStoreState {\n /**\n * Current map of injection keys and configurations.\n */\n readonly map: Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>;\n\n // TODO: Add filters for showing/hiding elements of different types.\n}\n\n/**\n * Store used for storing injectable content into the map.\n */\n@Injectable()\nexport class DbxMapboxInjectionStore extends ComponentStore<DbxMapboxMapInjectionStoreState> {\n constructor() {\n super({\n map: new Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>()\n });\n }\n\n readonly map$: Observable<Map<DbxMapboxInjectionKey, DbxMapboxInjectionConfig>> = this.state$.pipe(\n map((x) => x.map),\n distinctUntilMapHasDifferentKeys(),\n shareReplay(1)\n );\n\n readonly allInjectionConfigs$: Observable<DbxMapboxInjectionConfig[]> = this.map$.pipe(\n map((x) => Array.from(x.values())),\n shareReplay(1)\n );\n\n // MARK: State Changes\n readonly addInjectionConfig = this.updater(updateDbxMapboxMapInjectionStoreStateWithInjectionConfig);\n readonly removeInjectionConfigWithKey = this.updater(updateDbxMapboxMapInjectionStoreStateWithRemovedKey);\n}\n\nexport function updateDbxMapboxMapInjectionStoreStateWithInjectionConfig(state: DbxMapboxMapInjectionStoreState, config: DbxMapboxInjectionConfig) {\n const map = new Map(state.map).set(config.key, config);\n return { ...state, map };\n}\n\nexport function updateDbxMapboxMapInjectionStoreStateWithRemovedKey(state: DbxMapboxMapInjectionStoreState, key: DbxMapboxInjectionKey) {\n // only create a new state if the key is going to get removed\n if (state.map.has(key)) {\n const map = new Map(state.map);\n map.delete(key);\n state = { ...state, map };\n }\n\n return state;\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { DbxInjectionArrayComponent } from '@dereekb/dbx-core';\nimport { DbxMapboxInjectionStore } from './mapbox.injection.store';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Injects the components configured in the DbxMapboxInjectionStore into the view.\n */\n@Component({\n selector: 'dbx-mapbox-injection',\n template: `\n <dbx-injection-array [entries]=\"entriesSignal()\"></dbx-injection-array>\n `,\n imports: [DbxInjectionArrayComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxInjectionComponent {\n readonly dbxMapboxMapKeyInjectionStore = inject(DbxMapboxInjectionStore);\n readonly entriesSignal = toSignal(this.dbxMapboxMapKeyInjectionStore.allInjectionConfigs$);\n}\n","import { Directive, Injectable, Injector, Optional, Provider, SkipSelf, inject } from '@angular/core';\nimport { DbxMapboxInjectionStore } from './mapbox.injection.store';\n\n/**\n * Token used by provideMapboxInjectionStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxInjectionStore into the child view.\n */\n@Injectable()\nexport class DbxMapboxInjectionStoreProviderBlock {\n readonly dbxMapboxInjectionStore = inject(DbxMapboxInjectionStore, { skipSelf: true });\n}\n\n@Directive({\n selector: '[dbxMapboxInjectionStoreParentBlocker]',\n providers: [DbxMapboxInjectionStoreProviderBlock],\n standalone: true\n})\nexport class DbxMapboxInjectionStoreInjectionBlockDirective {}\n\n/**\n * Creates a Provider that initializes a new DbxMapboxInjectionStore if a parent does not exist.\n *\n * If a DbxMapboxInjectionStoreInjectionBlock is available in the context, and references the same dbxMapboxInjectionStore that is attempting to be injected, a new DbxMapboxInjectionStore is created.\n *\n * @returns\n */\nexport function provideMapboxInjectionStoreIfParentIsUnavailable(): Provider {\n return {\n provide: DbxMapboxInjectionStore,\n useFactory: (parentInjector: Injector, dbxMapboxInjectionStoreInjectionBlock?: DbxMapboxInjectionStoreProviderBlock, dbxMapboxInjectionStore?: DbxMapboxInjectionStore) => {\n if (!dbxMapboxInjectionStore || (dbxMapboxInjectionStore && dbxMapboxInjectionStoreInjectionBlock != null && dbxMapboxInjectionStoreInjectionBlock.dbxMapboxInjectionStore === dbxMapboxInjectionStore)) {\n // create a new dbxMapboxInjectionStore to use\n const injector = Injector.create({ providers: [{ provide: DbxMapboxInjectionStore }], parent: parentInjector });\n dbxMapboxInjectionStore = injector.get(DbxMapboxInjectionStore);\n }\n\n return dbxMapboxInjectionStore;\n },\n deps: [Injector, [new Optional(), DbxMapboxInjectionStoreProviderBlock], [new Optional(), new SkipSelf(), DbxMapboxInjectionStore]]\n };\n}\n","import { DbxMapboxService } from './mapbox.service';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { Directive, inject } from '@angular/core';\nimport { MapComponent, MapService } from 'ngx-mapbox-gl';\n\n/**\n * Directive that configures a MapComponent with content from DbxMapboxService. Connects a host MapService to a parent DbxMapboxMapStore if available.\n */\n@Directive({\n selector: '[dbxMapboxMap]',\n providers: [\n /* {\n provide: MAP_COMPONENT_INITIALIZATION_OPTIONS,\n useFactory: (dbxMapboxService: DbxMapboxService) => dbxMapboxService.initializationOptions(),\n deps: [DbxMapboxService]\n }\n */\n ],\n standalone: true\n})\nexport class DbxMapboxMapDirective {\n readonly mapService = inject(MapService, { host: true });\n readonly mapboxMap = inject(MapComponent, { host: true });\n\n readonly dbxMapboxService = inject(DbxMapboxService);\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore, { optional: true });\n\n constructor() {\n if (this.dbxMapboxMapStore) {\n this.dbxMapboxMapStore.setMapService(this.mapService);\n }\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * Content drawer that connects with DbxMapboxMapStore to show the content.\n */\n@Component({\n selector: 'dbx-mapbox-layout-drawer',\n templateUrl: './mapbox.layout.drawer.component.html',\n host: {\n class: 'dbx-mapbox-layout-drawer'\n },\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxMapboxLayoutDrawerComponent {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n readonly drawerConfigSignal = toSignal(this.dbxMapboxMapStore.drawerContent$);\n}\n","<div>\n <dbx-injection [config]=\"drawerConfigSignal()\"></dbx-injection>\n</div>\n","import { tap, switchMap, first, startWith, throttleTime, map, distinctUntilChanged, combineLatest, Subject, Observable, delay } from 'rxjs';\nimport { Component, ElementRef, OnDestroy, OnInit, inject, signal, computed, input, output, viewChild, ChangeDetectionStrategy, Signal, effect } from '@angular/core';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxColorDirective, DbxResizedDirective, DbxThemeColor, ResizedEvent } from '@dereekb/dbx-web';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { MatDrawer, MatDrawerContainer, MatDrawerContent } from '@angular/material/sidenav';\nimport { MapboxEaseTo } from './mapbox';\nimport { NgClass } from '@angular/common';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxMapboxLayoutDrawerComponent } from './mapbox.layout.drawer.component';\n\nexport type DbxMapboxLayoutSide = 'left' | 'right';\n\nexport type DbxMapboxLayoutMode = 'side' | 'push';\n\n/**\n * Responsive component meant to split a left and right column.\n *\n * The left column is smaller than the right column, which contains the primary content.\n *\n * Requires a TwoColumnsContextStore to be provided.\n */\n@Component({\n selector: 'dbx-mapbox-layout',\n templateUrl: './mapbox.layout.component.html',\n styleUrls: ['./mapbox.layout.component.scss'],\n imports: [DbxResizedDirective, NgClass, DbxMapboxLayoutDrawerComponent, MatDrawer, MatDrawerContainer, MatDrawerContent, MatIconModule, MatIconButton, DbxColorDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxLayoutComponent implements OnInit, OnDestroy {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n\n private readonly _viewResized = new Subject<ResizedEvent>();\n private readonly _refreshContentMargins = new Subject<void>();\n\n readonly drawerOpenedChange = output<boolean>();\n\n readonly drawerContainer = viewChild.required<MatDrawerContainer>(MatDrawerContainer);\n readonly drawerContainerElement = viewChild.required<MatDrawerContainer, ElementRef<HTMLElement>>(MatDrawerContainer, { read: ElementRef<HTMLElement> });\n readonly drawerContent = viewChild.required<ElementRef<HTMLElement>>('drawerContent');\n\n readonly side = input<DbxMapboxLayoutSide, Maybe<DbxMapboxLayoutSide>>('right', { transform: (x) => x || 'right' });\n readonly mode = input<DbxMapboxLayoutMode, Maybe<DbxMapboxLayoutMode>>('side', { transform: (x) => x || 'side' });\n\n /**\n * Forces the drawer to assume the drawer has content if true, or assume it has no content if false.\n */\n readonly forceHasDrawerContent = input<Maybe<boolean>>(undefined);\n readonly drawerButtonColor = input<DbxThemeColor, Maybe<DbxThemeColor>>('default', { transform: (x) => x ?? 'default' });\n\n readonly openDrawer = input<Maybe<boolean>>(undefined); // input open/close drawer config\n readonly isDrawerOpenSignal = signal<Maybe<boolean>>(undefined); // Signal to toggle the drawer\n\n protected readonly _openDrawerEffect = effect(() => {\n this.isDrawerOpenSignal.set(this.openDrawer());\n });\n\n readonly storeHasDrawerContent = toSignal(this.dbxMapboxMapStore.hasDrawerContent$);\n readonly drawerHasContentSignal = computed(() => this.forceHasDrawerContent() ?? this.storeHasDrawerContent());\n\n readonly refreshContentMargins$ = this._refreshContentMargins;\n\n readonly isOpenAndHasContentSignal = computed(() => {\n return this.drawerHasContentSignal() && this.isDrawerOpenSignal();\n });\n\n readonly viewResized$ = this._viewResized.asObservable();\n readonly side$ = toObservable(this.side);\n readonly mode$ = toObservable(this.mode);\n readonly drawerHasContent$ = toObservable(this.drawerHasContentSignal);\n readonly isOpenAndHasContent$ = toObservable(this.isOpenAndHasContentSignal);\n\n readonly positionSignal: Signal<'start' | 'end'> = computed(() => {\n return this.side() === 'right' ? 'end' : 'start';\n });\n\n readonly drawerClassesSignal = computed(() => {\n const side = this.side();\n const hasContent = this.drawerHasContentSignal();\n const isOpen = this.isDrawerOpenSignal(); // NOTE: isOpenAndHasContentSignal is not used here\n\n return (hasContent ? 'has-drawer-content' : 'no-drawer-content') + ` ${side}-drawer ` + (isOpen ? 'open-drawer' : '');\n });\n\n readonly buttonIconSignal = computed(() => {\n const side = this.side();\n const opened = this.isDrawerOpenSignal(); // NOTE: isOpenAndHasContentSignal is not used here\n\n let icons = ['chevron_right', 'chevron_left'];\n\n if (side === 'left') {\n icons = icons.reverse();\n }\n\n return opened ? icons[0] : icons[1];\n });\n\n private readonly _reszieSyncSub = new SubscriptionObject();\n private readonly _toggleSyncSub = new SubscriptionObject();\n\n ngOnInit(): void {\n this._reszieSyncSub.subscription = (\n this.side$.pipe(\n switchMap(() =>\n this._viewResized.pipe(\n throttleTime(80, undefined, { leading: true, trailing: true }),\n map(() => 'r'),\n startWith('s')\n )\n )\n ) as Observable<'s' | 'r'>\n ).subscribe((reason) => {\n this.dbxMapboxMapStore.mapInstance$.subscribe((x) => {\n x.resize();\n\n // side changed\n if (reason === 's') {\n this._refreshContentMargins.next();\n }\n });\n });\n\n let init = false;\n\n this._toggleSyncSub.subscription = this.mode$\n .pipe(\n switchMap((mode) => {\n let obs: Observable<unknown>;\n\n if (mode === 'push') {\n obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this.refreshContentMargins$]).pipe(\n tap(([opened]) => {\n const drawerContainer = this.drawerContainer();\n\n let { right } = drawerContainer._contentMargins;\n\n drawerContainer.updateContentMargins();\n\n setTimeout(() => {\n const flip = opened ? 1 : -1;\n\n if (opened) {\n right = drawerContainer._contentMargins.right;\n }\n\n right = (right || 0) * flip;\n\n const element: HTMLElement = this.drawerContent().nativeElement;\n const width = element.clientWidth;\n\n const margin = {\n leftMargin: 0,\n rightMargin: right,\n fullWidth: width\n };\n\n const easeTo: Observable<MapboxEaseTo> = this.dbxMapboxMapStore.calculateNextCenterOffsetWithScreenMarginChange(margin).pipe(\n first(),\n map((center) => ({ to: { center, duration: 3200, essential: false } }) as MapboxEaseTo)\n );\n\n this.dbxMapboxMapStore.setMargin(opened ? margin : undefined);\n\n if (!init) {\n this.dbxMapboxMapStore.easeTo(easeTo);\n } else {\n init = true;\n }\n });\n })\n );\n } else {\n obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._refreshContentMargins.pipe(delay(0))]).pipe(\n switchMap((_) => this.dbxMapboxMapStore.mapInstance$),\n tap((map) => {\n this.drawerContainer().updateContentMargins();\n map.triggerRepaint();\n })\n );\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this._viewResized.complete();\n this._refreshContentMargins.complete();\n this._reszieSyncSub.destroy();\n this._toggleSyncSub.destroy();\n }\n\n viewResized(event: ResizedEvent): void {\n this._viewResized.next(event);\n }\n\n drawerOpened(opened: boolean) {\n const currentToggleState = this.isDrawerOpenSignal();\n\n if (currentToggleState !== opened) {\n this.toggleDrawer(opened); // sync with drawer toggling\n this.drawerOpenedChange.emit(opened);\n }\n }\n\n toggleDrawer(open?: Maybe<boolean>) {\n if (open == null) {\n open = !this.isDrawerOpenSignal();\n }\n\n this.isDrawerOpenSignal.set(open);\n }\n}\n","<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"drawerClassesSignal()\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer (openedChange)=\"drawerOpened($event)\" [opened]=\"isOpenAndHasContentSignal()\" [mode]=\"mode()\" [position]=\"positionSignal()\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"drawerClassesSignal()\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (dbxResized)=\"viewResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [dbxColor]=\"drawerButtonColor()\">\n <mat-icon>{{ buttonIconSignal() }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n","import { SubscriptionObject } from '@dereekb/rxjs';\nimport { filter, switchMap, of } from 'rxjs';\nimport { DbxMapboxMapStore } from './mapbox.store';\nimport { ChangeDetectionStrategy, Component, inject, signal, input, effect } from '@angular/core';\nimport { Maybe, DestroyFunctionObject, isNotFalse } from '@dereekb/util';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { clean, cleanSubscription } from '@dereekb/dbx-core';\nimport { disableRightClickInCdkBackdrop } from '@dereekb/dbx-web';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n/**\n * Directive that connects a host MatMenuTrigger to a DbxMapboxMapStore and listens for right-clicks on the map.\n *\n * The map dissapears if the mouse scrolls anywhere else on the map.\n */\n@Component({\n selector: 'dbx-mapbox-menu',\n template: '',\n host: {\n style: 'visibility: hidden; position: fixed',\n '[style.top]': 'posSignal().y',\n '[style.left]': 'posSignal().x'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxMenuComponent {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore);\n readonly matMenuTrigger = inject(MatMenuTrigger, { host: true });\n\n readonly active = input<boolean, Maybe<boolean>>(true, { transform: isNotFalse });\n\n readonly openCloseSignal = signal<Maybe<boolean>>(undefined);\n readonly posSignal = signal<{ x: string; y: string }>({ x: `0`, y: `0` });\n\n protected readonly _openCloseEffect = effect(() => {\n const openOrClose = this.openCloseSignal();\n\n switch (openOrClose) {\n case true:\n this.matMenuTrigger.openMenu();\n break;\n case false:\n this.matMenuTrigger.closeMenu();\n break;\n }\n });\n\n readonly active$ = toObservable(this.active);\n\n protected readonly _sub = cleanSubscription();\n private readonly _menuCloseSub = new SubscriptionObject();\n private readonly _preventRightClick = new DestroyFunctionObject();\n\n constructor() {\n cleanSubscription(\n this.active$\n .pipe(\n switchMap((active) => {\n if (active) {\n return this.dbxMapboxMapStore.rightClickEvent$;\n } else {\n return of();\n }\n }),\n filter(Boolean)\n )\n .subscribe((event) => {\n const menu = this.matMenuTrigger.menu;\n const buttonEvent = event.originalEvent;\n\n if (menu && buttonEvent) {\n buttonEvent.preventDefault();\n\n // update position of this component for menu to open at\n this.posSignal.set({\n x: `${buttonEvent.x}px`,\n y: `${buttonEvent.y}px`\n });\n\n // open menu\n this.matMenuTrigger.openMenu();\n\n // prevent right clicks in the cdkOverlay while the menu is open\n this._preventRightClick.destroy = disableRightClickInCdkBackdrop(undefined, () => {\n this.matMenuTrigger.closeMenu();\n });\n }\n })\n );\n\n cleanSubscription(\n this.matMenuTrigger.menuClosed.subscribe(() => {\n // destroy prevention when the menu is closed.\n this._preventRightClick.destroy();\n })\n );\n\n clean(() => {\n if (this.matMenuTrigger) {\n this.matMenuTrigger.closeMenu();\n }\n });\n }\n}\n","import { Directive, Injectable, Injector, Optional, Provider, SkipSelf, inject } from '@angular/core';\nimport { DbxMapboxMapStore } from './mapbox.store';\n\n/**\n * Token used by provideMapboxStoreIfDoesNotExist() to prevent injecting a parent DbxMapboxMapStore into the child view.\n */\n@Injectable()\nexport class DbxMapboxMapStoreProviderBlock {\n readonly dbxMapboxMapStore = inject(DbxMapboxMapStore, { skipSelf: true });\n}\n\n@Directive({\n selector: '[dbxMapboxStoreParentBlocker]',\n providers: [DbxMapboxMapStoreProviderBlock],\n standalone: true\n})\nexport class DbxMapboxMapStoreInjectionBlockDirective {}\n\n/**\n * Creates a Provider that initializes a new DbxMapboxMapStore if a parent does not exist.\n *\n * If a DbxMapboxMapStoreInjectionBlock is available in the context, and references the same dbxMapboxMapStore that is attempting to be injected, a new DbxMapboxMapStore is created.\n *\n * @returns\n */\nexport function provideMapboxStoreIfParentIsUnavailable(): Provider {\n return {\n provide: DbxMapboxMapStore,\n useFactory: (parentInjector: Injector, dbxMapboxMapStoreInjectionBlock?: DbxMapboxMapStoreProviderBlock, dbxMapboxMapStore?: DbxMapboxMapStore) => {\n if (!dbxMapboxMapStore || (dbxMapboxMapStore && dbxMapboxMapStoreInjectionBlock != null && dbxMapboxMapStoreInjectionBlock.dbxMapboxMapStore === dbxMapboxMapStore)) {\n // create a new dbxMapboxMapStore to use\n const injector = Injector.create({ providers: [{ provide: DbxMapboxMapStore }], parent: parentInjector });\n dbxMapboxMapStore = injector.get(DbxMapboxMapStore);\n }\n\n return dbxMapboxMapStore;\n },\n deps: [Injector, [new Optional(), DbxMapboxMapStoreProviderBlock], [new Optional(), new SkipSelf(), DbxMapboxMapStore]]\n };\n}\n","import { ChangeDetectionStrategy, Component, OnDestroy, computed, inject, input } from '@angular/core';\nimport { CssClassesArray, getValueFromGetter, latLngPointFunction, spaceSeparatedCssClasses, type Maybe, pushItemOrArrayItemsIntoArray } from '@dereekb/util';\nimport { DbxMapboxChangeService } from './mapbox.change.service';\nimport { DbxMapboxMarker } from './mapbox.marker';\nimport { MarkerComponent } from 'ngx-mapbox-gl';\nimport { DbxAnchorComponent } from '@dereekb/dbx-web';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'dbx-mapbox-marker',\n template: `\n <mgl-marker [lngLat]=\"latLngSignal()\">\n <dbx-anchor [anchor]=\"marker()?.anchor\">\n <div class=\"dbx-mapbox-marker\" [ngClass]=\"presentationCssClassSignal()\">\n <div class=\"dbx-mapbox-marker-icon-content\" [ngStyle]=\"styleSignal()\">\n @if (marker()?.icon) {\n <mat-icon>{{ marker()?.icon }}</mat-icon>\n }\n </div>\n @if (marker()?.label) {\n <div class=\"dbx-mapbox-marker-label dbx-outlined-text\">{{ marker()?.label }}</div>\n }\n </div>\n </dbx-anchor>\n </mgl-marker>\n `,\n styleUrls: ['./mapbox.marker.component.scss'],\n imports: [MarkerComponent, DbxAnchorComponent, MatIconModule, NgStyle, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxMarkerComponent implements OnDestroy {\n private readonly _dbxMapboxChangeService = inject(DbxMapboxChangeService, { optional: true });\n\n private static _latLngPoint = latLngPointFunction({ wrap: true });\n\n readonly marker = input.required<Maybe<DbxMapboxMarker>>();\n\n readonly latLngSignal = computed(() => {\n const marker = this.marker();\n return marker?.latLng ? DbxMapboxMarkerComponent._latLngPoint(marker.latLng) : undefined;\n });\n\n readonly presentationSignal = computed(() => this.marker()?.presentation ?? 'normal');\n\n readonly styleSignal = computed(() => {\n const marker = this.marker();\n\n let width = 0;\n let height = 0;\n\n const size = marker?.size || 'medium';\n\n switch (marker?.presentation) {\n case 'normal':\n if (typeof size === 'number') {\n width = size;\n } else {\n switch (size) {\n case 'small':\n width = 18;\n break;\n case 'medium':\n width = 24;\n break;\n case 'large':\n width = 32;\n break;\n case 'tall':\n width = 24;\n height = 32;\n break;\n }\n break;\n }\n break;\n }\n\n if (!height) {\n height = width;\n }\n\n const imageInput = marker?.image;\n const image = imageInput ? (typeof imageInput === 'string' ? imageInput : getValueFromGetter(imageInput, width)) : undefined;\n\n const style: any = {\n ...marker?.style,\n 'background-image': image\n };\n\n if (width && height) {\n style.width = width + 'px';\n style.height = height + 'px';\n style['font-size'] = width + 'px';\n }\n\n return style;\n });\n\n readonly presentationCssClassSignal = computed(() => {\n const marker = this.marker();\n const presentation = this.presentationSignal();\n const markerClasses = marker?.markerClasses;\n\n let cssClasses: CssClassesArray = [];\n\n switch (presentation) {\n case 'chip':\n case 'chip-small':\n cssClasses = ['dbx-mapbox-marker-chip', 'dbx-chip', 'mat-standard-chip', 'dbx-default-bg'];\n\n if (presentation === 'chip-small') {\n cssClasses.push('dbx-chip-small');\n }\n\n break;\n }\n\n if (!marker?.icon) {\n cssClasses.push('dbx-mapbox-marker-no-icon');\n }\n\n if (markerClasses) {\n pushItemOrArrayItemsIntoArray(cssClasses, markerClasses);\n }\n\n return spaceSeparatedCssClasses(cssClasses);\n });\n\n ngOnDestroy(): void {\n this._dbxMapboxChangeService?.emitMarkerDestroyed();\n }\n}\n","import { type Maybe } from '@dereekb/util';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { DbxMapboxMarker, DbxMapboxMarkerFactory } from './mapbox.marker';\nimport { DbxMapboxMarkerComponent } from './mapbox.marker.component';\n\n/**\n * Component used to render a set of DbxMapboxMarker values from the input data and marker factory.\n */\n@Component({\n selector: 'dbx-mapbox-markers',\n template: `\n @for (marker of markersSignal(); track trackMarkerById($index, marker)) {\n <dbx-mapbox-marker [marker]=\"marker\"></dbx-mapbox-marker>\n }\n `,\n imports: [DbxMapboxMarkerComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxMapboxMarkersComponent<T> {\n readonly data = input.required<Maybe<T[]>>();\n readonly markerFactory = input.required<Maybe<DbxMapboxMarkerFactory<T>>>();\n\n readonly markersSignal = computed(() => {\n const data = this.data();\n const markerFactory = this.markerFactory();\n\n if (data?.length && markerFactory) {\n return data.map(markerFactory);\n } else {\n return [];\n }\n });\n\n trackMarkerById(index: number, marker: DbxMapboxMarker) {\n return marker.id ?? `__MID__${index}_`;\n }\n}\n","import { shareReplay, map, distinctUntilChanged, Subscription } from 'rxjs';\nimport { Directive, inject } from '@angular/core';\nimport { isSameVector } from '@dereekb/util';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\nimport { cleanSubscription } from '@dereekb/dbx-core';\n\n/**\n * Directive that synchronizes a map's virtual size with the size of the element.\n */\n@Directive({\n selector: '[dbxMapboxLayoutVirtualResizeSync]',\n standalone: true\n})\nexport class DbxMapboxLayoutVirtualResizeSyncComponent {\n readonly dbxMapboxLayoutComponent = inject(DbxMapboxLayoutComponent, { host: true });\n\n readonly resizedVector$ = this.dbxMapboxLayoutComponent.viewResized$.pipe(\n map(() => {\n const element = this.dbxMapboxLayoutComponent.drawerContainerElement()?.nativeElement as HTMLElement;\n const { clientWidth, clientHeight } = element;\n\n return {\n x: clientWidth,\n y: clientHeight\n };\n }),\n distinctUntilChanged(isSameVector),\n shareReplay(1)\n );\n\n constructor() {\n cleanSubscription(this.dbxMapboxLayoutComponent.dbxMapboxMapStore.setMinimumVirtualViewportSize(this.resizedVector$) as Subscription);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxMapboxMapDirective } from './mapbox.store.map.directive';\nimport { DbxMapboxLayoutComponent } from './mapbox.layout.component';\nimport { DbxMapboxLayoutDrawerComponent } from './mapbox.layout.drawer.component';\nimport { DbxMapboxMenuComponent } from './mapbox.menu.component';\nimport { DbxMapboxMapStoreInjectionBlockDirective } from './mapbox.store.provide';\nimport { DbxMapboxMarkerComponent } from './mapbox.marker.component';\nimport { DbxMapboxMarkersComponent } from './mapbox.markers.component';\nimport { DbxMapboxInjectionComponent } from './mapbox.injection.component';\nimport { DbxMapboxLayoutVirtualResizeSyncComponent } from './mapbox.layout.resize.sync.directive';\nimport { MapComponent, MarkerComponent } from 'ngx-mapbox-gl';\n\nconst importsAndExports = [\n //\n DbxMapboxLayoutVirtualResizeSyncComponent,\n DbxMapboxMapDirective,\n DbxMapboxLayoutComponent,\n DbxMapboxLayoutDrawerComponent,\n DbxMapboxInjectionComponent,\n DbxMapboxMenuComponent,\n DbxMapboxMarkerComponent,\n DbxMapboxMarkersComponent,\n DbxMapboxMapStoreInjectionBlockDirective,\n // ngx-mapbox-gl\n MapComponent,\n MarkerComponent\n];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxMapboxModule {}\n","import { type EnvironmentProviders, makeEnvironmentProviders, type Provider } from '@angular/core';\nimport { DbxMapboxConfig, DbxMapboxService } from './mapbox.service';\nimport { provideMapboxGL } from 'ngx-mapbox-gl';\n\n/**\n * Configuration for provideDbxMapbox().\n */\nexport interface ProvideDbxMapboxConfig {\n readonly dbxMapboxConfig: DbxMapboxConfig;\n readonly ngxMapboxGLModuleConfig: Parameters<typeof provideMapboxGL>[0];\n}\n\n/**\n * Creates EnvironmentProviders for providing DbxMapboxConfig and configuring the NgxMapboxGLModule.\n *\n * @param config Configuration\n * @returns EnvironmentProviders\n */\nexport function provideDbxMapbox(config: ProvideDbxMapboxConfig): EnvironmentProviders {\n const { dbxMapboxConfig, ngxMapboxGLModuleConfig } = config;\n\n const providers: (Provider | EnvironmentProviders)[] = [\n // config\n {\n provide: DbxMapboxConfig,\n useValue: dbxMapboxConfig\n },\n // service\n DbxMapboxService,\n // ngxMapboxGL\n provideMapboxGL(ngxMapboxGLModuleConfig)\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { type ClickableAnchor } from '@dereekb/dbx-core';\nimport { type Pixels, type FactoryWithRequiredInput, type LatLngInputRef, type UniqueModel, type CssClassesArray, type Maybe, type CssStyleObject } from '@dereekb/util';\n\n/**\n * DbxMapboxMarkerSize. Numbers are converted to pixels.\n */\nexport type DbxMapboxMarkerSize = 'small' | 'medium' | 'large' | 'tall' | Pixels;\n\n/**\n * Presentation style.\n *\n * - normal: Text under dot with optional icon within dot\n * - chip: \"dbx-chip\"-like presentation\n */\nexport type DbxMapboxMarkerPresentation = 'normal' | 'chip' | 'chip-small';\n\nexport interface DbxMapboxMarkerDisplayConfig {\n /**\n * Presentation style. Defaults to \"normal\"\n */\n readonly presentation?: DbxMapboxMarkerPresentation;\n /**\n * Additional classes to add to the marker.\n */\n readonly markerClasses?: Maybe<CssClassesArray>;\n /**\n * Marker icon to display.\n */\n readonly icon?: Maybe<string>;\n /**\n * Marker label to display.\n */\n readonly label?: Maybe<string>;\n /**\n * Image URL or Factory that returns an image URL.\n */\n readonly image?: Maybe<string | FactoryWithRequiredInput<string, Pixels>>;\n /**\n * Size of the marker.\n */\n readonly size?: Maybe<DbxMapboxMarkerSize>;\n /**\n * ClickableAnchor for the marker.\n */\n readonly anchor?: Maybe<ClickableAnchor>;\n /**\n * Additional icon content styling. Style is not applied to the entire marker. Use markerClasses instead.\n */\n readonly style?: Maybe<CssStyleObject>;\n}\n\nexport type DbxMapboxMarker = UniqueModel & LatLngInputRef & DbxMapboxMarkerDisplayConfig;\n\n/**\n * MapFunction that converts the input data to a DbxMapboxMarker.\n */\nexport type DbxMapboxMarkerFactory<T> = (value: T, index: number) => DbxMapboxMarker;\n\n/**\n * Creates the styling for rendering a dot.\n *\n * @param background\n * @param color\n * @returns\n */\nexport function dbxMapboxColoredDotStyle(background: string, color?: string) {\n return {\n background,\n padding: '2px',\n color: (color ?? background) ? 'white' : undefined,\n 'border-radius': '50%'\n };\n}\n","import { type LatLngPointInput, type LatLngBoundInput, type ZoomLevel, type ZoomLevelRange, type ExtendLatLngBoundInput } from '@dereekb/util';\nimport type * as MapboxGl from 'mapbox-gl';\n\n/**\n * List of styles that are defined here:\n *\n * https://docs.mapbox.com/api/maps/styles/\n */\nexport type KnownMapboxStyle = 'mapbox://styles/mapbox/standard' | 'mapbox://styles/mapbox/streets-v12' | 'mapbox://styles/mapbox/outdoors-v12' | 'mapbox://styles/mapbox/light-v11' | 'mapbox://styles/mapbox/dark-v11' | 'mapbox://styles/mapbox/satellite-v9' | 'mapbox://styles/mapbox/satellite-streets-v12' | 'mapbox://styles/mapbox/navigation-day-v1' | 'mapbox://styles/mapbox/navigation-night-v1';\n\nexport const KNOWN_MAPBOX_STYLES: KnownMapboxStyle[] = [\n // standard\n 'mapbox://styles/mapbox/standard',\n // classic\n 'mapbox://styles/mapbox/streets-v12',\n 'mapbox://styles/mapbox/outdoors-v12',\n 'mapbox://styles/mapbox/light-v11',\n 'mapbox://styles/mapbox/dark-v11',\n 'mapbox://styles/mapbox/satellite-v9',\n 'mapbox://styles/mapbox/satellite-streets-v12',\n 'mapbox://styles/mapbox/navigation-day-v1',\n 'mapbox://styles/mapbox/navigation-night-v1'\n];\n\nexport type MapboxEventData = object;\n\nexport type MapboxZoomLevel = ZoomLevel;\nexport type MapboxZoomLevelRange = ZoomLevelRange;\n\nexport const MAPBOX_MIN_ZOOM_LEVEL: MapboxZoomLevel = 0;\nexport const MAPBOX_MAX_ZOOM_LEVEL: MapboxZoomLevel = 22;\n\nexport function mapboxZoomLevel(input: number): MapboxZoomLevel {\n return Math.min(Math.max(input, MAPBOX_MIN_ZOOM_LEVEL), MAPBOX_MAX_ZOOM_LEVEL);\n}\n\nexport type MapboxPitch = number;\nexport type MapboxBearing = number;\n\n/**\n * Size of the tiles. Vector-based tiles used by the web are generally 512x512, and legacy ones are 256x256.\n *\n * https://blog.mapbox.com/512-map-tiles-cb5bfd6e72ba\n */\nexport type MapboxTileSize = 512 | 256;\n\nexport type DbxMapboxClickEvent = MapboxGl.MapMouseEvent & MapboxEventData;\n\n/**\n * Options for MapboxGl.Map.fitBounds()\n */\nexport type MapboxFitBoundsOptions = Parameters<MapboxGl.Map['fitBounds']>[1];\n\n/**\n * Options for MapboxGl.Map.easeTo()\n */\nexport type MapboxEaseToOptions = Parameters<MapboxGl.Map['easeTo']>[0];\n\n/**\n * Options for MapboxGl.Map.flyTo()\n */\nexport type MapboxFlyToOptions = Parameters<MapboxGl.Map['flyTo']>[0];\n\n/**\n * Options for MapboxGl.Map.setStyle()\n */\nexport type MapboxSetStyleOptions = Parameters<MapboxGl.Map['setStyle']>[1];\n\nexport interface MapboxStyleConfig {\n style: MapboxGl.StyleSpecification | string;\n options?: MapboxSetStyleOptions;\n}\n\nexport interface MapboxFitPositions {\n positions: ExtendLatLngBoundInput;\n options?: MapboxFitBoundsOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxFitBounds {\n bounds: LatLngBoundInput;\n options?: MapboxFitBoundsOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxJumpToPositionOptions extends Omit<MapboxGl.CameraOptions, 'center'> {\n center: LatLngPointInput;\n}\n\nexport interface MapboxJumpTo {\n center?: LatLngPointInput;\n to?: MapboxJumpToPositionOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxEaseToPositionOptions extends Omit<MapboxEaseToOptions, 'center'>, MapboxJumpToPositionOptions {}\n\nexport interface MapboxEaseTo {\n center?: LatLngPointInput;\n to?: MapboxEaseToPositionOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxFlyToPositionOptions extends Omit<MapboxFlyToOptions, 'center'>, MapboxJumpToPositionOptions {}\n\nexport interface MapboxFlyTo {\n center?: LatLngPointInput;\n to?: MapboxFlyToPositionOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxRotateTo {\n bearing: MapboxBearing;\n options?: mapboxgl.AnimationOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxResetNorth {\n options?: mapboxgl.AnimationOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxResetNorthPitch {\n options?: mapboxgl.AnimationOptions;\n eventData?: MapboxEventData;\n}\n\nexport interface MapboxSnapToNorth {\n options?: mapboxgl.AnimationOptions;\n eventData?: MapboxEventData;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}