@dereekb/dbx-web 11.1.8 → 12.0.1

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 (742) hide show
  1. package/calendar/lib/calendar.base.component.d.ts +10 -1
  2. package/calendar/lib/calendar.component.d.ts +8 -5
  3. package/calendar/lib/calendar.module.d.ts +4 -16
  4. package/calendar/lib/calendar.provider.d.ts +5 -0
  5. package/calendar/lib/calendar.store.d.ts +13 -9
  6. package/calendar/lib/index.d.ts +1 -0
  7. package/esm2022/calendar/lib/calendar.base.component.mjs +26 -12
  8. package/esm2022/calendar/lib/calendar.component.mjs +19 -17
  9. package/esm2022/calendar/lib/calendar.mjs +1 -1
  10. package/esm2022/calendar/lib/calendar.module.mjs +10 -76
  11. package/esm2022/calendar/lib/calendar.provider.mjs +11 -0
  12. package/esm2022/calendar/lib/calendar.store.mjs +19 -19
  13. package/esm2022/calendar/lib/index.mjs +2 -1
  14. package/esm2022/lib/action/action.confirm.directive.mjs +10 -12
  15. package/esm2022/lib/action/action.module.mjs +12 -16
  16. package/esm2022/lib/action/key.trigger.directive.mjs +6 -5
  17. package/esm2022/lib/action/snackbar/action.snackbar.component.mjs +29 -36
  18. package/esm2022/lib/action/snackbar/action.snackbar.directive.mjs +14 -27
  19. package/esm2022/lib/action/snackbar/action.snackbar.generator.mjs +1 -1
  20. package/esm2022/lib/action/snackbar/action.snackbar.module.mjs +8 -14
  21. package/esm2022/lib/action/snackbar/action.snackbar.service.mjs +4 -4
  22. package/esm2022/lib/action/transition/action.transition.module.mjs +14 -13
  23. package/esm2022/lib/action/transition/transition.safety.dialog.component.mjs +18 -24
  24. package/esm2022/lib/action/transition/transition.safety.directive.mjs +30 -33
  25. package/esm2022/lib/button/button.component.mjs +71 -104
  26. package/esm2022/lib/button/button.module.mjs +44 -12
  27. package/esm2022/lib/button/button.spacer.directive.mjs +20 -0
  28. package/esm2022/lib/button/icon/icon.button.component.mjs +48 -32
  29. package/esm2022/lib/button/icon/icon.button.module.mjs +10 -24
  30. package/esm2022/lib/button/index.mjs +2 -2
  31. package/esm2022/lib/button/progress/abstract.progress.button.directive.mjs +103 -0
  32. package/esm2022/lib/button/progress/bar.button.component.mjs +15 -11
  33. package/esm2022/lib/button/progress/button.progress.config.mjs +2 -2
  34. package/esm2022/lib/button/progress/button.progress.module.mjs +13 -28
  35. package/esm2022/lib/button/progress/button.progress.providers.mjs +18 -0
  36. package/esm2022/lib/button/progress/index.mjs +2 -1
  37. package/esm2022/lib/button/progress/spinner.button.component.mjs +66 -38
  38. package/esm2022/lib/dbx-web.module.mjs +4 -4
  39. package/esm2022/lib/error/default.error.widget.component.mjs +22 -15
  40. package/esm2022/lib/error/error.action.directive.mjs +9 -8
  41. package/esm2022/lib/error/error.api.mjs +1 -1
  42. package/esm2022/lib/error/error.component.mjs +56 -94
  43. package/esm2022/lib/error/error.details.component.mjs +15 -14
  44. package/esm2022/lib/error/error.loading.directive.mjs +20 -20
  45. package/esm2022/lib/error/error.module.mjs +21 -18
  46. package/esm2022/lib/error/error.popover.component.mjs +14 -17
  47. package/esm2022/lib/error/error.snackbar.action.directive.mjs +6 -5
  48. package/esm2022/lib/error/error.snackbar.component.mjs +57 -39
  49. package/esm2022/lib/error/error.snackbar.service.mjs +11 -10
  50. package/esm2022/lib/error/error.view.component.mjs +40 -33
  51. package/esm2022/lib/error/error.widget.component.mjs +19 -25
  52. package/esm2022/lib/error/error.widget.directive.mjs +3 -3
  53. package/esm2022/lib/error/error.widget.service.mjs +7 -7
  54. package/esm2022/lib/error/state.mjs +1 -1
  55. package/esm2022/lib/extension/download/text/download.text.component.mjs +46 -56
  56. package/esm2022/lib/extension/download/text/download.text.module.mjs +11 -33
  57. package/esm2022/lib/extension/model/index.mjs +2 -2
  58. package/esm2022/lib/extension/model/model.providers.mjs +42 -0
  59. package/esm2022/lib/extension/model/model.state.service.mjs +5 -8
  60. package/esm2022/lib/extension/model/model.tracker.mjs +1 -1
  61. package/esm2022/lib/extension/model/model.tracker.service.mjs +5 -8
  62. package/esm2022/lib/extension/model/model.tracker.view.storage.mjs +8 -8
  63. package/esm2022/lib/extension/model/model.types.mjs +1 -1
  64. package/esm2022/lib/extension/model/model.types.service.mjs +5 -5
  65. package/esm2022/lib/extension/model/state/actions/model.actions.mjs +1 -1
  66. package/esm2022/lib/extension/model/state/effects/tracker.effects.mjs +3 -3
  67. package/esm2022/lib/extension/structure/structure.body.directive.mjs +6 -5
  68. package/esm2022/lib/extension/structure/structure.module.mjs +11 -17
  69. package/esm2022/lib/extension/structure/structure.structure.directive.mjs +10 -6
  70. package/esm2022/lib/extension/widget/widget.component.mjs +32 -37
  71. package/esm2022/lib/extension/widget/widget.directive.mjs +3 -3
  72. package/esm2022/lib/extension/widget/widget.list.component.mjs +31 -20
  73. package/esm2022/lib/extension/widget/widget.module.mjs +15 -24
  74. package/esm2022/lib/extension/widget/widget.service.mjs +4 -4
  75. package/esm2022/lib/index.mjs +2 -2
  76. package/esm2022/lib/interaction/dialog/abstract.dialog.directive.mjs +3 -3
  77. package/esm2022/lib/interaction/dialog/dialog.action.directive.mjs +19 -23
  78. package/esm2022/lib/interaction/dialog/dialog.content.close.component.mjs +23 -22
  79. package/esm2022/lib/interaction/dialog/dialog.content.directive.mjs +23 -0
  80. package/esm2022/lib/interaction/dialog/dialog.content.footer.component.mjs +21 -29
  81. package/esm2022/lib/interaction/dialog/dialog.module.mjs +9 -16
  82. package/esm2022/lib/interaction/dialog/index.mjs +2 -2
  83. package/esm2022/lib/interaction/filter/filter.config.mjs +2 -0
  84. package/esm2022/lib/interaction/filter/filter.menu.mjs +1 -1
  85. package/esm2022/lib/interaction/filter/filter.module.mjs +9 -54
  86. package/esm2022/lib/interaction/filter/filter.partial.list.component.mjs +13 -11
  87. package/esm2022/lib/interaction/filter/filter.partial.menu.component.mjs +22 -29
  88. package/esm2022/lib/interaction/filter/filter.partial.mjs +13 -24
  89. package/esm2022/lib/interaction/filter/filter.popover.button.component.mjs +17 -31
  90. package/esm2022/lib/interaction/filter/filter.popover.button.directive.mjs +10 -12
  91. package/esm2022/lib/interaction/filter/filter.popover.component.mjs +25 -30
  92. package/esm2022/lib/interaction/filter/filter.preset.directive.mjs +17 -29
  93. package/esm2022/lib/interaction/filter/filter.preset.list.component.mjs +13 -11
  94. package/esm2022/lib/interaction/filter/filter.preset.menu.component.mjs +22 -29
  95. package/esm2022/lib/interaction/filter/filter.wrapper.component.mjs +23 -29
  96. package/esm2022/lib/interaction/filter/index.mjs +2 -1
  97. package/esm2022/lib/interaction/interaction.module.mjs +17 -6
  98. package/esm2022/lib/interaction/popover/abstract.popover.directive.mjs +3 -3
  99. package/esm2022/lib/interaction/popover/abstract.popover.ref.directive.mjs +13 -22
  100. package/esm2022/lib/interaction/popover/index.mjs +2 -2
  101. package/esm2022/lib/interaction/popover/popover.action.directive.mjs +20 -23
  102. package/esm2022/lib/interaction/popover/popover.close.component.mjs +12 -8
  103. package/esm2022/lib/interaction/popover/popover.component.mjs +15 -13
  104. package/esm2022/lib/interaction/popover/popover.content.component.mjs +20 -13
  105. package/esm2022/lib/interaction/popover/popover.content.module.mjs +9 -19
  106. package/esm2022/lib/interaction/popover/popover.controls.directive.mjs +7 -6
  107. package/esm2022/lib/interaction/popover/popover.coordinator.component.mjs +17 -15
  108. package/esm2022/lib/interaction/popover/popover.coordinator.service.mjs +4 -4
  109. package/esm2022/lib/interaction/popover/popover.header.component.mjs +25 -22
  110. package/esm2022/lib/interaction/popover/popover.module.mjs +8 -18
  111. package/esm2022/lib/interaction/popover/popover.scroll.content.directive.mjs +41 -0
  112. package/esm2022/lib/interaction/popover/popover.service.mjs +4 -4
  113. package/esm2022/lib/interaction/popup/abstract.popup.directive.mjs +3 -3
  114. package/esm2022/lib/interaction/popup/popup.component.mjs +20 -23
  115. package/esm2022/lib/interaction/popup/popup.content.component.mjs +21 -14
  116. package/esm2022/lib/interaction/popup/popup.controls.buttons.component.mjs +49 -26
  117. package/esm2022/lib/interaction/popup/popup.controls.component.mjs +15 -14
  118. package/esm2022/lib/interaction/popup/popup.coordinator.component.mjs +15 -12
  119. package/esm2022/lib/interaction/popup/popup.coordinator.service.mjs +4 -4
  120. package/esm2022/lib/interaction/popup/popup.mjs +6 -7
  121. package/esm2022/lib/interaction/popup/popup.module.mjs +8 -19
  122. package/esm2022/lib/interaction/popup/popup.position.strategy.mjs +1 -1
  123. package/esm2022/lib/interaction/popup/popup.service.mjs +8 -5
  124. package/esm2022/lib/interaction/prompt/index.mjs +2 -2
  125. package/esm2022/lib/interaction/prompt/prompt.box.directive.mjs +19 -0
  126. package/esm2022/lib/interaction/prompt/prompt.button.confirm.directive.mjs +6 -5
  127. package/esm2022/lib/interaction/prompt/prompt.component.mjs +16 -17
  128. package/esm2022/lib/interaction/prompt/prompt.confirm.component.mjs +35 -35
  129. package/esm2022/lib/interaction/prompt/prompt.confirm.dialog.component.mjs +14 -13
  130. package/esm2022/lib/interaction/prompt/prompt.confirm.directive.mjs +28 -23
  131. package/esm2022/lib/interaction/prompt/prompt.module.mjs +9 -18
  132. package/esm2022/lib/interaction/prompt/prompt.page.component.mjs +11 -8
  133. package/esm2022/lib/keypress/keydown.listener.directive.mjs +6 -5
  134. package/esm2022/lib/keypress/keypress.module.mjs +9 -8
  135. package/esm2022/lib/layout/bar/bar.directive.mjs +14 -11
  136. package/esm2022/lib/layout/bar/bar.header.component.mjs +31 -26
  137. package/esm2022/lib/layout/bar/bar.layout.module.mjs +9 -12
  138. package/esm2022/lib/layout/bar/pagebar.component.mjs +33 -12
  139. package/esm2022/lib/layout/block/block.layout.module.mjs +10 -12
  140. package/esm2022/lib/layout/block/two.block.component.mjs +25 -32
  141. package/esm2022/lib/layout/card/card.box.component.mjs +27 -20
  142. package/esm2022/lib/layout/card/card.box.container.directive.mjs +20 -0
  143. package/esm2022/lib/layout/card/card.box.layout.module.mjs +10 -12
  144. package/esm2022/lib/layout/card/index.mjs +2 -2
  145. package/esm2022/lib/layout/column/column.layout.module.mjs +9 -7
  146. package/esm2022/lib/layout/column/one/one.column.component.mjs +16 -15
  147. package/esm2022/lib/layout/column/one/one.column.module.mjs +9 -9
  148. package/esm2022/lib/layout/column/two/index.mjs +2 -2
  149. package/esm2022/lib/layout/column/two/two.column.back.directive.mjs +10 -12
  150. package/esm2022/lib/layout/column/two/two.column.component.mjs +77 -51
  151. package/esm2022/lib/layout/column/two/two.column.context.directive.mjs +14 -21
  152. package/esm2022/lib/layout/column/two/two.column.full.left.directive.mjs +13 -28
  153. package/esm2022/lib/layout/column/two/two.column.head.directive.mjs +24 -0
  154. package/esm2022/lib/layout/column/two/two.column.module.mjs +9 -15
  155. package/esm2022/lib/layout/column/two/two.column.right.component.mjs +90 -49
  156. package/esm2022/lib/layout/column/two/two.column.sref.directive.mjs +13 -13
  157. package/esm2022/lib/layout/column/two/two.column.sref.showright.directive.mjs +9 -7
  158. package/esm2022/lib/layout/column/two/two.column.store.mjs +15 -11
  159. package/esm2022/lib/layout/compact/compact.directive.mjs +3 -3
  160. package/esm2022/lib/layout/compact/compact.layout.module.mjs +4 -4
  161. package/esm2022/lib/layout/compact/compact.mjs +1 -1
  162. package/esm2022/lib/layout/compact/compact.store.mjs +4 -4
  163. package/esm2022/lib/layout/content/content.border.directive.mjs +11 -11
  164. package/esm2022/lib/layout/content/content.box.directive.mjs +12 -15
  165. package/esm2022/lib/layout/content/content.container.directive.mjs +16 -17
  166. package/esm2022/lib/layout/content/content.directive.mjs +6 -5
  167. package/esm2022/lib/layout/content/content.elevate.directive.mjs +10 -11
  168. package/esm2022/lib/layout/content/content.layout.module.mjs +9 -11
  169. package/esm2022/lib/layout/content/content.page.directive.mjs +6 -5
  170. package/esm2022/lib/layout/content/content.pit.directive.mjs +10 -11
  171. package/esm2022/lib/layout/flag/flag.component.mjs +15 -14
  172. package/esm2022/lib/layout/flag/flag.layout.module.mjs +8 -13
  173. package/esm2022/lib/layout/flag/flag.prompt.component.mjs +18 -20
  174. package/esm2022/lib/layout/flex/flex.group.directive.mjs +21 -47
  175. package/esm2022/lib/layout/flex/flex.layout.module.mjs +11 -9
  176. package/esm2022/lib/layout/flex/flex.size.directive.mjs +11 -12
  177. package/esm2022/lib/layout/item/index.mjs +1 -2
  178. package/esm2022/lib/layout/item/item.icon.component.mjs +31 -24
  179. package/esm2022/lib/layout/layout.module.mjs +6 -8
  180. package/esm2022/lib/layout/list/grid/index.mjs +3 -0
  181. package/esm2022/lib/layout/list/grid/list.grid.view.component.mjs +98 -0
  182. package/esm2022/lib/layout/list/grid/list.grid.view.directive.mjs +34 -0
  183. package/esm2022/lib/layout/list/group/index.mjs +4 -0
  184. package/esm2022/lib/layout/list/group/list.view.value.group.mjs +32 -0
  185. package/esm2022/lib/layout/list/group/list.view.value.group.title.directive.mjs +70 -0
  186. package/esm2022/lib/layout/list/group/list.view.value.group.title.header.component.mjs +60 -0
  187. package/esm2022/lib/layout/list/group/list.view.value.group.title.mjs +2 -0
  188. package/esm2022/lib/layout/list/index.mjs +6 -10
  189. package/esm2022/lib/layout/list/list.component.mjs +109 -135
  190. package/esm2022/lib/layout/list/list.content.empty.component.mjs +9 -7
  191. package/esm2022/lib/layout/list/list.directive.mjs +70 -56
  192. package/esm2022/lib/layout/list/list.layout.module.mjs +59 -49
  193. package/esm2022/lib/layout/list/list.module.mjs +40 -0
  194. package/esm2022/lib/layout/list/list.view.directive.mjs +35 -28
  195. package/esm2022/lib/layout/list/list.view.mjs +1 -1
  196. package/esm2022/lib/layout/list/list.view.selection.directive.mjs +26 -10
  197. package/esm2022/lib/layout/list/list.view.value.component.mjs +135 -143
  198. package/esm2022/lib/layout/list/list.view.value.directive.mjs +12 -18
  199. package/esm2022/lib/layout/list/list.view.value.item.directive.mjs +3 -3
  200. package/esm2022/lib/layout/list/list.view.value.mjs +1 -1
  201. package/esm2022/lib/layout/list/list.view.value.modifier.mjs +1 -1
  202. package/esm2022/lib/layout/list/list.view.value.selection.component.mjs +80 -68
  203. package/esm2022/lib/layout/list/list.wrapper.mjs +1 -3
  204. package/esm2022/lib/layout/list/meta/index.mjs +2 -0
  205. package/esm2022/lib/layout/list/meta/list.view.meta.icon.component.mjs +39 -0
  206. package/esm2022/lib/layout/list/modifier/index.mjs +5 -0
  207. package/esm2022/lib/layout/list/modifier/list.modifier.module.mjs +22 -0
  208. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.directive.mjs +75 -0
  209. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.ripple.directive.mjs +37 -0
  210. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.selection.directive.mjs +35 -0
  211. package/esm2022/lib/layout/section/section.component.mjs +18 -15
  212. package/esm2022/lib/layout/section/section.header.component.mjs +123 -106
  213. package/esm2022/lib/layout/section/section.intro.component.mjs +53 -51
  214. package/esm2022/lib/layout/section/section.layout.module.mjs +9 -15
  215. package/esm2022/lib/layout/section/section.mjs +1 -1
  216. package/esm2022/lib/layout/section/section.page.component.mjs +22 -18
  217. package/esm2022/lib/layout/section/subsection.component.mjs +13 -10
  218. package/esm2022/lib/layout/step/step.component.mjs +56 -21
  219. package/esm2022/lib/layout/step/step.layout.module.mjs +11 -10
  220. package/esm2022/lib/layout/style/index.mjs +2 -1
  221. package/esm2022/lib/layout/style/spacer.directive.mjs +6 -5
  222. package/esm2022/lib/layout/style/style.body.directive.mjs +22 -17
  223. package/esm2022/lib/layout/style/style.color.directive.mjs +11 -14
  224. package/esm2022/lib/layout/style/style.directive.mjs +13 -17
  225. package/esm2022/lib/layout/style/style.layout.module.mjs +8 -10
  226. package/esm2022/lib/layout/style/style.mjs +4 -1
  227. package/esm2022/lib/layout/style/style.providers.mjs +21 -0
  228. package/esm2022/lib/layout/style/style.service.mjs +54 -32
  229. package/esm2022/lib/layout/style/style.set.directive.mjs +31 -47
  230. package/esm2022/lib/layout/text/address.component.mjs +43 -22
  231. package/esm2022/lib/layout/text/compat/form.description.component.mjs +3 -3
  232. package/esm2022/lib/layout/text/compat/hint.component.mjs +3 -3
  233. package/esm2022/lib/layout/text/compat/label.component.mjs +3 -3
  234. package/esm2022/lib/layout/text/compat/note.component.mjs +3 -3
  235. package/esm2022/lib/layout/text/compat/notice.component.mjs +3 -3
  236. package/esm2022/lib/layout/text/compat/ok.component.mjs +3 -3
  237. package/esm2022/lib/layout/text/compat/success.component.mjs +3 -3
  238. package/esm2022/lib/layout/text/compat/text.compat.module.mjs +4 -4
  239. package/esm2022/lib/layout/text/compat/warn.component.mjs +3 -3
  240. package/esm2022/lib/layout/text/detail.block.component.mjs +11 -8
  241. package/esm2022/lib/layout/text/detail.block.header.component.mjs +24 -13
  242. package/esm2022/lib/layout/text/icon.spacer.component.mjs +6 -5
  243. package/esm2022/lib/layout/text/label.block.component.mjs +9 -7
  244. package/esm2022/lib/layout/text/linkify.component.mjs +13 -10
  245. package/esm2022/lib/layout/text/text.chip.directive.mjs +6 -5
  246. package/esm2022/lib/layout/text/text.chips.component.mjs +34 -29
  247. package/esm2022/lib/layout/text/text.module.mjs +8 -13
  248. package/esm2022/lib/loading/basic-loading.component.mjs +31 -97
  249. package/esm2022/lib/loading/loading-progress.component.mjs +47 -54
  250. package/esm2022/lib/loading/loading.action.directive.mjs +9 -11
  251. package/esm2022/lib/loading/loading.component.mjs +60 -81
  252. package/esm2022/lib/loading/loading.module.mjs +8 -13
  253. package/esm2022/lib/router/layout/anchor/anchor.component.mjs +86 -36
  254. package/esm2022/lib/router/layout/anchor/anchor.content.component.mjs +26 -14
  255. package/esm2022/lib/router/layout/anchor/anchor.icon.component.mjs +10 -6
  256. package/esm2022/lib/router/layout/anchor/anchor.link.component.mjs +9 -7
  257. package/esm2022/lib/router/layout/anchor/anchor.module.mjs +17 -13
  258. package/esm2022/lib/router/layout/anchor/anchor.segue.directive.mjs +11 -13
  259. package/esm2022/lib/router/layout/anchorlist/anchorlist.component.mjs +22 -28
  260. package/esm2022/lib/router/layout/anchorlist/anchorlist.module.mjs +9 -15
  261. package/esm2022/lib/router/layout/layout.module.mjs +4 -4
  262. package/esm2022/lib/router/layout/list/list.module.mjs +9 -7
  263. package/esm2022/lib/router/layout/list/router.list.directive.mjs +16 -20
  264. package/esm2022/lib/router/layout/navbar/navbar.component.mjs +41 -87
  265. package/esm2022/lib/router/layout/navbar/navbar.module.mjs +9 -43
  266. package/esm2022/lib/router/layout/sidenav/sidenav.button.component.mjs +28 -24
  267. package/esm2022/lib/router/layout/sidenav/sidenav.component.mjs +91 -71
  268. package/esm2022/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.mjs +18 -23
  269. package/esm2022/lib/router/layout/sidenav/sidenav.module.mjs +8 -22
  270. package/esm2022/lib/router/layout/sidenav/sidenav.page.component.mjs +37 -46
  271. package/esm2022/lib/router/layout/sidenav/sidenav.pagebar.component.mjs +18 -18
  272. package/esm2022/lib/router/provider/ngrouter/anchor.component.mjs +6 -7
  273. package/esm2022/lib/router/provider/ngrouter/angular.router.providers.mjs +23 -0
  274. package/esm2022/lib/router/provider/ngrouter/index.mjs +2 -2
  275. package/esm2022/lib/router/provider/router.provider.config.mjs +8 -1
  276. package/esm2022/lib/router/provider/uirouter/anchor.component.mjs +14 -12
  277. package/esm2022/lib/router/provider/uirouter/index.mjs +2 -2
  278. package/esm2022/lib/router/provider/uirouter/uirouter.router.providers.mjs +23 -0
  279. package/esm2022/lib/screen/index.mjs +2 -2
  280. package/esm2022/lib/screen/screen.providers.mjs +22 -0
  281. package/esm2022/lib/screen/screen.service.mjs +6 -6
  282. package/esm2022/lib/util/cdk.mjs +1 -1
  283. package/esm2022/mapbox/lib/index.mjs +3 -2
  284. package/esm2022/mapbox/lib/mapbox.change.service.mjs +4 -4
  285. package/esm2022/mapbox/lib/mapbox.injection.component.mjs +13 -12
  286. package/esm2022/mapbox/lib/mapbox.injection.store.mjs +5 -5
  287. package/esm2022/mapbox/lib/mapbox.injection.store.provide.mjs +9 -8
  288. package/esm2022/mapbox/lib/mapbox.layout.component.mjs +93 -117
  289. package/esm2022/mapbox/lib/mapbox.layout.drawer.component.mjs +8 -8
  290. package/esm2022/mapbox/lib/mapbox.layout.resize.sync.directive.mjs +9 -8
  291. package/esm2022/mapbox/lib/mapbox.marker.component.mjs +69 -72
  292. package/esm2022/mapbox/lib/mapbox.marker.mjs +2 -2
  293. package/esm2022/mapbox/lib/mapbox.markers.component.mjs +22 -36
  294. package/esm2022/mapbox/lib/mapbox.menu.component.mjs +33 -31
  295. package/esm2022/mapbox/lib/mapbox.mjs +1 -1
  296. package/esm2022/mapbox/lib/mapbox.module.mjs +24 -61
  297. package/esm2022/mapbox/lib/mapbox.options.mjs +2 -0
  298. package/esm2022/mapbox/lib/mapbox.providers.mjs +25 -0
  299. package/esm2022/mapbox/lib/mapbox.rxjs.mjs +1 -1
  300. package/esm2022/mapbox/lib/mapbox.service.mjs +5 -8
  301. package/esm2022/mapbox/lib/mapbox.store.map.directive.mjs +7 -6
  302. package/esm2022/mapbox/lib/mapbox.store.mjs +39 -15
  303. package/esm2022/mapbox/lib/mapbox.store.provide.mjs +9 -8
  304. package/esm2022/table/lib/date/date.table.column.header.component.mjs +27 -21
  305. package/esm2022/table/lib/date/daterange.table.cell.input.component.mjs +39 -46
  306. package/esm2022/table/lib/date/table.date.module.mjs +8 -58
  307. package/esm2022/table/lib/table.cell.action.component.mjs +13 -10
  308. package/esm2022/table/lib/table.cell.input.component.mjs +13 -10
  309. package/esm2022/table/lib/table.cell.summaryend.component.mjs +13 -10
  310. package/esm2022/table/lib/table.cell.summarystart.component.mjs +13 -10
  311. package/esm2022/table/lib/table.column.directive.mjs +10 -17
  312. package/esm2022/table/lib/table.column.footer.component.mjs +13 -10
  313. package/esm2022/table/lib/table.column.header.component.mjs +13 -10
  314. package/esm2022/table/lib/table.component.mjs +31 -24
  315. package/esm2022/table/lib/table.directive.mjs +16 -22
  316. package/esm2022/table/lib/table.item.action.component.mjs +20 -17
  317. package/esm2022/table/lib/table.item.cell.component.mjs +19 -26
  318. package/esm2022/table/lib/table.item.directive.mjs +10 -17
  319. package/esm2022/table/lib/table.item.header.component.mjs +15 -11
  320. package/esm2022/table/lib/table.module.mjs +11 -55
  321. package/esm2022/table/lib/table.store.mjs +8 -8
  322. package/fesm2022/dereekb-dbx-web-calendar.mjs +69 -110
  323. package/fesm2022/dereekb-dbx-web-calendar.mjs.map +1 -1
  324. package/fesm2022/dereekb-dbx-web-mapbox.mjs +340 -365
  325. package/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
  326. package/fesm2022/dereekb-dbx-web-table.mjs +230 -317
  327. package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
  328. package/fesm2022/dereekb-dbx-web.mjs +8063 -8083
  329. package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
  330. package/lib/action/action.confirm.directive.d.ts +4 -5
  331. package/lib/action/action.module.d.ts +7 -10
  332. package/lib/action/key.trigger.directive.d.ts +1 -1
  333. package/lib/action/snackbar/_snackbar.scss +3 -3
  334. package/lib/action/snackbar/action.snackbar.component.d.ts +15 -14
  335. package/lib/action/snackbar/action.snackbar.directive.d.ts +5 -7
  336. package/lib/action/snackbar/action.snackbar.generator.d.ts +9 -9
  337. package/lib/action/snackbar/action.snackbar.module.d.ts +1 -6
  338. package/lib/action/transition/action.transition.module.d.ts +7 -6
  339. package/lib/action/transition/transition.safety.dialog.component.d.ts +5 -9
  340. package/lib/action/transition/transition.safety.directive.d.ts +10 -7
  341. package/lib/button/_button.scss +3 -3
  342. package/lib/button/button.component.d.ts +16 -21
  343. package/lib/button/button.module.d.ts +10 -7
  344. package/lib/button/{button.spacer.component.d.ts → button.spacer.directive.d.ts} +1 -1
  345. package/lib/button/icon/icon.button.component.d.ts +1 -1
  346. package/lib/button/icon/icon.button.module.d.ts +4 -4
  347. package/lib/button/index.d.ts +1 -1
  348. package/lib/button/progress/abstract.progress.button.directive.d.ts +25 -0
  349. package/lib/button/progress/bar.button.component.d.ts +5 -4
  350. package/lib/button/progress/bar.button.component.scss +1 -1
  351. package/lib/button/progress/button.progress.config.d.ts +62 -34
  352. package/lib/button/progress/button.progress.module.d.ts +4 -10
  353. package/lib/button/progress/button.progress.providers.d.ts +9 -0
  354. package/lib/button/progress/index.d.ts +1 -0
  355. package/lib/button/progress/spinner.button.component.d.ts +18 -7
  356. package/lib/button/progress/spinner.button.component.scss +34 -7
  357. package/lib/error/_error.scss +3 -3
  358. package/lib/error/default.error.widget.component.d.ts +3 -3
  359. package/lib/error/error.action.directive.d.ts +3 -3
  360. package/lib/error/error.component.d.ts +21 -28
  361. package/lib/error/error.details.component.d.ts +2 -2
  362. package/lib/error/error.loading.directive.d.ts +8 -8
  363. package/lib/error/error.module.d.ts +4 -7
  364. package/lib/error/error.popover.component.d.ts +6 -6
  365. package/lib/error/error.snackbar.action.directive.d.ts +1 -1
  366. package/lib/error/error.snackbar.component.d.ts +12 -23
  367. package/lib/error/error.snackbar.service.d.ts +1 -0
  368. package/lib/error/error.view.component.d.ts +10 -12
  369. package/lib/error/error.widget.component.d.ts +4 -8
  370. package/lib/error/error.widget.service.d.ts +1 -1
  371. package/lib/error/state.d.ts +3 -2
  372. package/lib/extension/calendar/_calendar.scss +20 -20
  373. package/lib/extension/download/text/download.text.component.d.ts +16 -14
  374. package/lib/extension/download/text/download.text.module.d.ts +4 -6
  375. package/lib/extension/model/index.d.ts +1 -1
  376. package/lib/extension/model/model.providers.d.ts +13 -0
  377. package/lib/extension/model/model.tracker.d.ts +7 -7
  378. package/lib/extension/model/model.tracker.service.d.ts +2 -2
  379. package/lib/extension/model/model.tracker.view.storage.d.ts +4 -1
  380. package/lib/extension/model/model.types.d.ts +6 -6
  381. package/lib/extension/model/model.types.service.d.ts +1 -1
  382. package/lib/extension/model/state/actions/actions.d.ts +1 -1
  383. package/lib/extension/model/state/actions/model.actions.d.ts +5 -5
  384. package/lib/extension/model/state/effects/tracker.effects.d.ts +1 -1
  385. package/lib/extension/model/state/reducers/model.module.config.d.ts +1 -1
  386. package/lib/extension/structure/structure.body.directive.d.ts +1 -1
  387. package/lib/extension/structure/structure.module.d.ts +4 -2
  388. package/lib/extension/structure/structure.structure.directive.d.ts +5 -2
  389. package/lib/extension/table/_table.scss +3 -3
  390. package/lib/extension/widget/widget.component.d.ts +5 -9
  391. package/lib/extension/widget/widget.list.component.d.ts +8 -4
  392. package/lib/extension/widget/widget.module.d.ts +8 -4
  393. package/lib/index.d.ts +1 -1
  394. package/lib/interaction/dialog/_dialog.scss +3 -3
  395. package/lib/interaction/dialog/dialog.action.directive.d.ts +7 -6
  396. package/lib/interaction/dialog/dialog.content.close.component.d.ts +4 -6
  397. package/lib/interaction/dialog/{dialog.content.component.d.ts → dialog.content.directive.d.ts} +3 -2
  398. package/lib/interaction/dialog/dialog.content.footer.component.d.ts +10 -10
  399. package/lib/interaction/dialog/dialog.module.d.ts +2 -9
  400. package/lib/interaction/dialog/index.d.ts +1 -1
  401. package/lib/interaction/filter/_filter.scss +3 -3
  402. package/lib/interaction/filter/filter.config.d.ts +62 -0
  403. package/lib/interaction/filter/filter.menu.d.ts +3 -3
  404. package/lib/interaction/filter/filter.module.d.ts +2 -11
  405. package/lib/interaction/filter/filter.partial.d.ts +5 -7
  406. package/lib/interaction/filter/filter.partial.list.component.d.ts +1 -1
  407. package/lib/interaction/filter/filter.partial.menu.component.d.ts +5 -5
  408. package/lib/interaction/filter/filter.popover.button.component.d.ts +5 -7
  409. package/lib/interaction/filter/filter.popover.button.directive.d.ts +7 -6
  410. package/lib/interaction/filter/filter.popover.component.d.ts +15 -71
  411. package/lib/interaction/filter/filter.preset.directive.d.ts +7 -11
  412. package/lib/interaction/filter/filter.preset.list.component.d.ts +1 -1
  413. package/lib/interaction/filter/filter.preset.menu.component.d.ts +5 -5
  414. package/lib/interaction/filter/filter.wrapper.component.d.ts +5 -5
  415. package/lib/interaction/filter/index.d.ts +1 -0
  416. package/lib/interaction/interaction.module.d.ts +13 -4
  417. package/lib/interaction/popover/_popover.scss +3 -3
  418. package/lib/interaction/popover/abstract.popover.ref.directive.d.ts +3 -4
  419. package/lib/interaction/popover/index.d.ts +1 -1
  420. package/lib/interaction/popover/popover.action.directive.d.ts +7 -6
  421. package/lib/interaction/popover/popover.close.component.d.ts +1 -1
  422. package/lib/interaction/popover/popover.component.d.ts +15 -9
  423. package/lib/interaction/popover/popover.content.component.d.ts +6 -4
  424. package/lib/interaction/popover/popover.content.module.d.ts +2 -11
  425. package/lib/interaction/popover/popover.controls.directive.d.ts +3 -2
  426. package/lib/interaction/popover/popover.coordinator.component.d.ts +2 -2
  427. package/lib/interaction/popover/popover.header.component.d.ts +4 -3
  428. package/lib/interaction/popover/popover.module.d.ts +2 -11
  429. package/lib/interaction/popover/popover.scroll.content.directive.d.ts +13 -0
  430. package/lib/interaction/popover/popover.service.d.ts +4 -4
  431. package/lib/interaction/popup/_popup.scss +6 -6
  432. package/lib/interaction/popup/popup.component.d.ts +19 -19
  433. package/lib/interaction/popup/popup.content.component.d.ts +2 -1
  434. package/lib/interaction/popup/popup.controls.buttons.component.d.ts +3 -1
  435. package/lib/interaction/popup/popup.controls.component.d.ts +2 -2
  436. package/lib/interaction/popup/popup.coordinator.component.d.ts +3 -2
  437. package/lib/interaction/popup/popup.coordinator.service.d.ts +1 -1
  438. package/lib/interaction/popup/popup.d.ts +7 -6
  439. package/lib/interaction/popup/popup.module.d.ts +1 -10
  440. package/lib/interaction/popup/popup.position.strategy.d.ts +2 -2
  441. package/lib/interaction/popup/popup.service.d.ts +4 -4
  442. package/lib/interaction/prompt/_prompt.scss +4 -4
  443. package/lib/interaction/prompt/index.d.ts +1 -1
  444. package/lib/interaction/prompt/prompt.box.directive.d.ts +6 -0
  445. package/lib/interaction/prompt/prompt.button.confirm.directive.d.ts +1 -1
  446. package/lib/interaction/prompt/prompt.component.d.ts +3 -3
  447. package/lib/interaction/prompt/prompt.confirm.component.d.ts +11 -23
  448. package/lib/interaction/prompt/prompt.confirm.dialog.component.d.ts +2 -3
  449. package/lib/interaction/prompt/prompt.confirm.directive.d.ts +9 -5
  450. package/lib/interaction/prompt/prompt.module.d.ts +2 -11
  451. package/lib/interaction/prompt/prompt.page.component.d.ts +1 -1
  452. package/lib/interaction/style/_style.scss +6 -6
  453. package/lib/keypress/keydown.listener.directive.d.ts +1 -1
  454. package/lib/keypress/keypress.module.d.ts +4 -2
  455. package/lib/layout/bar/_bar.scss +8 -12
  456. package/lib/layout/bar/bar.directive.d.ts +3 -3
  457. package/lib/layout/bar/bar.header.component.d.ts +4 -5
  458. package/lib/layout/bar/bar.layout.module.d.ts +2 -5
  459. package/lib/layout/bar/pagebar.component.d.ts +3 -3
  460. package/lib/layout/block/_block.scss +3 -3
  461. package/lib/layout/block/block.layout.module.d.ts +3 -4
  462. package/lib/layout/block/two.block.component.d.ts +8 -8
  463. package/lib/layout/card/_card.scss +3 -3
  464. package/lib/layout/card/card.box.component.d.ts +3 -3
  465. package/lib/layout/card/card.box.container.directive.d.ts +8 -0
  466. package/lib/layout/card/card.box.layout.module.d.ts +2 -4
  467. package/lib/layout/card/index.d.ts +1 -1
  468. package/lib/layout/column/_column.scss +3 -3
  469. package/lib/layout/column/column.layout.module.d.ts +2 -2
  470. package/lib/layout/column/one/one.column.component.d.ts +3 -3
  471. package/lib/layout/column/one/one.column.module.d.ts +4 -3
  472. package/lib/layout/column/two/index.d.ts +1 -1
  473. package/lib/layout/column/two/two.column.back.directive.d.ts +3 -3
  474. package/lib/layout/column/two/two.column.component.d.ts +37 -20
  475. package/lib/layout/column/two/two.column.context.directive.d.ts +4 -7
  476. package/lib/layout/column/two/two.column.full.left.directive.d.ts +4 -8
  477. package/lib/layout/column/two/two.column.head.directive.d.ts +11 -0
  478. package/lib/layout/column/two/two.column.module.d.ts +2 -8
  479. package/lib/layout/column/two/two.column.right.component.d.ts +12 -14
  480. package/lib/layout/column/two/two.column.sref.directive.d.ts +3 -2
  481. package/lib/layout/column/two/two.column.sref.showright.directive.d.ts +3 -4
  482. package/lib/layout/column/two/two.column.store.d.ts +17 -9
  483. package/lib/layout/content/_content.scss +10 -10
  484. package/lib/layout/content/content.border.directive.d.ts +3 -2
  485. package/lib/layout/content/content.box.directive.d.ts +3 -3
  486. package/lib/layout/content/content.container.directive.d.ts +5 -4
  487. package/lib/layout/content/content.directive.d.ts +1 -1
  488. package/lib/layout/content/content.elevate.directive.d.ts +2 -2
  489. package/lib/layout/content/content.layout.module.d.ts +1 -2
  490. package/lib/layout/content/content.page.directive.d.ts +1 -1
  491. package/lib/layout/content/content.pit.directive.d.ts +2 -2
  492. package/lib/layout/flag/_flag.scss +3 -3
  493. package/lib/layout/flag/flag.component.d.ts +2 -2
  494. package/lib/layout/flag/flag.layout.module.d.ts +1 -6
  495. package/lib/layout/flag/flag.prompt.component.d.ts +4 -3
  496. package/lib/layout/flex/_flex.scss +3 -3
  497. package/lib/layout/flex/flex.group.directive.d.ts +7 -14
  498. package/lib/layout/flex/flex.layout.module.d.ts +4 -2
  499. package/lib/layout/flex/flex.size.directive.d.ts +3 -2
  500. package/lib/layout/item/_item.scss +3 -3
  501. package/lib/layout/item/index.d.ts +0 -1
  502. package/lib/layout/item/item.icon.component.d.ts +3 -3
  503. package/lib/layout/layout.module.d.ts +5 -7
  504. package/lib/layout/list/_list.scss +19 -6
  505. package/lib/layout/list/grid/index.d.ts +2 -0
  506. package/lib/layout/list/{list.grid.view.component.d.ts → grid/list.grid.view.component.d.ts} +23 -31
  507. package/lib/layout/list/grid/list.grid.view.directive.d.ts +24 -0
  508. package/lib/layout/list/group/index.d.ts +3 -0
  509. package/lib/layout/list/{list.view.value.group.d.ts → group/list.view.value.group.d.ts} +2 -2
  510. package/lib/layout/list/{list.view.value.group.title.d.ts → group/list.view.value.group.title.d.ts} +1 -1
  511. package/lib/layout/list/group/list.view.value.group.title.directive.d.ts +15 -0
  512. package/lib/layout/list/group/list.view.value.group.title.header.component.d.ts +21 -0
  513. package/lib/layout/list/index.d.ts +5 -9
  514. package/lib/layout/list/list.component.d.ts +54 -50
  515. package/lib/layout/list/list.content.empty.component.d.ts +1 -1
  516. package/lib/layout/list/list.directive.d.ts +35 -15
  517. package/lib/layout/list/list.layout.module.d.ts +27 -18
  518. package/lib/layout/list/list.module.d.ts +13 -0
  519. package/lib/layout/list/list.view.d.ts +8 -8
  520. package/lib/layout/list/list.view.directive.d.ts +14 -9
  521. package/lib/layout/list/list.view.selection.directive.d.ts +12 -3
  522. package/lib/layout/list/list.view.value.component.d.ts +32 -39
  523. package/lib/layout/list/list.view.value.d.ts +4 -1
  524. package/lib/layout/list/list.view.value.directive.d.ts +5 -7
  525. package/lib/layout/list/list.view.value.selection.component.d.ts +14 -13
  526. package/lib/layout/list/list.wrapper.d.ts +13 -4
  527. package/lib/layout/list/meta/index.d.ts +1 -0
  528. package/lib/layout/list/{list.view.meta.icon.component.d.ts → meta/list.view.meta.icon.component.d.ts} +2 -2
  529. package/lib/layout/list/modifier/index.d.ts +4 -0
  530. package/lib/layout/list/modifier/list.modifier.module.d.ts +12 -0
  531. package/lib/layout/list/{list.view.value.modifier.directive.d.ts → modifier/list.view.value.modifier.directive.d.ts} +13 -12
  532. package/lib/layout/list/{list.view.value.modifier.ripple.directive.d.ts → modifier/list.view.value.modifier.ripple.directive.d.ts} +5 -6
  533. package/lib/layout/list/{list.view.value.modifier.selection.directive.d.ts → modifier/list.view.value.modifier.selection.directive.d.ts} +5 -6
  534. package/lib/layout/section/_section.scss +3 -3
  535. package/lib/layout/section/section.component.d.ts +3 -2
  536. package/lib/layout/section/section.d.ts +28 -6
  537. package/lib/layout/section/section.header.component.d.ts +12 -11
  538. package/lib/layout/section/section.intro.component.d.ts +7 -8
  539. package/lib/layout/section/section.layout.module.d.ts +2 -7
  540. package/lib/layout/section/section.page.component.d.ts +4 -3
  541. package/lib/layout/section/subsection.component.d.ts +1 -1
  542. package/lib/layout/step/_step.scss +3 -3
  543. package/lib/layout/step/step.component.d.ts +6 -5
  544. package/lib/layout/step/step.layout.module.d.ts +4 -3
  545. package/lib/layout/style/_style.scss +20 -3
  546. package/lib/layout/style/index.d.ts +1 -0
  547. package/lib/layout/style/spacer.directive.d.ts +1 -1
  548. package/lib/layout/style/style.body.directive.d.ts +8 -8
  549. package/lib/layout/style/style.color.directive.d.ts +3 -3
  550. package/lib/layout/style/style.d.ts +48 -1
  551. package/lib/layout/style/style.directive.d.ts +5 -5
  552. package/lib/layout/style/style.layout.module.d.ts +1 -2
  553. package/lib/layout/style/style.providers.d.ts +19 -0
  554. package/lib/layout/style/style.service.d.ts +28 -18
  555. package/lib/layout/style/style.set.directive.d.ts +18 -16
  556. package/lib/layout/text/_text.scss +8 -8
  557. package/lib/layout/text/address.component.d.ts +2 -2
  558. package/lib/layout/text/detail.block.component.d.ts +1 -1
  559. package/lib/layout/text/detail.block.header.component.d.ts +1 -1
  560. package/lib/layout/text/icon.spacer.component.d.ts +1 -1
  561. package/lib/layout/text/label.block.component.d.ts +1 -1
  562. package/lib/layout/text/linkify.component.d.ts +3 -2
  563. package/lib/layout/text/text.chip.directive.d.ts +1 -1
  564. package/lib/layout/text/text.chips.component.d.ts +3 -4
  565. package/lib/layout/text/text.module.d.ts +1 -5
  566. package/lib/loading/_loading.scss +3 -3
  567. package/lib/loading/basic-loading.component.d.ts +17 -36
  568. package/lib/loading/loading-progress.component.d.ts +12 -14
  569. package/lib/loading/loading.action.directive.d.ts +2 -4
  570. package/lib/loading/loading.component.d.ts +31 -29
  571. package/lib/loading/loading.module.d.ts +1 -5
  572. package/lib/router/layout/anchor/_anchor.scss +3 -3
  573. package/lib/router/layout/anchor/anchor.component.d.ts +7 -12
  574. package/lib/router/layout/anchor/anchor.content.component.d.ts +4 -3
  575. package/lib/router/layout/anchor/anchor.icon.component.d.ts +1 -1
  576. package/lib/router/layout/anchor/anchor.link.component.d.ts +3 -3
  577. package/lib/router/layout/anchor/anchor.module.d.ts +14 -5
  578. package/lib/router/layout/anchor/anchor.segue.directive.d.ts +5 -6
  579. package/lib/router/layout/anchorlist/_anchorlist.scss +6 -6
  580. package/lib/router/layout/anchorlist/anchorlist.component.d.ts +6 -9
  581. package/lib/router/layout/anchorlist/anchorlist.module.d.ts +4 -9
  582. package/lib/router/layout/list/list.module.d.ts +4 -1
  583. package/lib/router/layout/list/router.list.directive.d.ts +6 -8
  584. package/lib/router/layout/navbar/_navbar.scss +3 -3
  585. package/lib/router/layout/navbar/navbar.component.d.ts +22 -29
  586. package/lib/router/layout/navbar/navbar.module.d.ts +4 -9
  587. package/lib/router/layout/sidenav/_sidenav.scss +8 -8
  588. package/lib/router/layout/sidenav/sidenav.button.component.d.ts +3 -4
  589. package/lib/router/layout/sidenav/sidenav.component.d.ts +19 -18
  590. package/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.d.ts +7 -7
  591. package/lib/router/layout/sidenav/sidenav.module.d.ts +1 -14
  592. package/lib/router/layout/sidenav/sidenav.page.component.d.ts +7 -10
  593. package/lib/router/layout/sidenav/sidenav.pagebar.component.d.ts +2 -2
  594. package/lib/router/provider/ngrouter/anchor.component.d.ts +1 -1
  595. package/lib/router/provider/ngrouter/angular.router.providers.d.ts +7 -0
  596. package/lib/router/provider/ngrouter/index.d.ts +1 -1
  597. package/lib/router/provider/router.provider.config.d.ts +7 -0
  598. package/lib/router/provider/uirouter/anchor.component.d.ts +6 -5
  599. package/lib/router/provider/uirouter/index.d.ts +1 -1
  600. package/lib/router/provider/uirouter/uirouter.router.providers.d.ts +7 -0
  601. package/lib/screen/index.d.ts +1 -1
  602. package/lib/screen/screen.providers.d.ts +15 -0
  603. package/lib/screen/screen.service.d.ts +7 -7
  604. package/lib/style/_all-typography.scss +1 -1
  605. package/lib/style/_root-variables.scss +13 -13
  606. package/lib/style/_theming.scss +4 -2
  607. package/mapbox/lib/index.d.ts +2 -1
  608. package/mapbox/lib/mapbox.change.service.d.ts +3 -3
  609. package/mapbox/lib/mapbox.d.ts +33 -19
  610. package/mapbox/lib/mapbox.injection.component.d.ts +2 -4
  611. package/mapbox/lib/mapbox.injection.store.provide.d.ts +1 -1
  612. package/mapbox/lib/mapbox.layout.component.d.ts +36 -34
  613. package/mapbox/lib/mapbox.layout.drawer.component.d.ts +2 -2
  614. package/mapbox/lib/mapbox.layout.resize.sync.directive.d.ts +1 -1
  615. package/mapbox/lib/mapbox.marker.component.d.ts +6 -11
  616. package/mapbox/lib/mapbox.marker.d.ts +13 -13
  617. package/mapbox/lib/mapbox.markers.component.d.ts +5 -11
  618. package/mapbox/lib/mapbox.menu.component.d.ts +9 -11
  619. package/mapbox/lib/mapbox.module.d.ts +2 -12
  620. package/mapbox/lib/mapbox.options.d.ts +11 -0
  621. package/mapbox/lib/mapbox.providers.d.ts +17 -0
  622. package/mapbox/lib/mapbox.rxjs.d.ts +6 -6
  623. package/mapbox/lib/mapbox.service.d.ts +1 -1
  624. package/mapbox/lib/mapbox.store.d.ts +28 -6
  625. package/mapbox/lib/mapbox.store.map.directive.d.ts +1 -1
  626. package/mapbox/lib/mapbox.store.provide.d.ts +1 -1
  627. package/package.json +16 -16
  628. package/table/lib/date/date.table.column.header.component.d.ts +3 -3
  629. package/table/lib/date/daterange.table.cell.input.component.d.ts +14 -12
  630. package/table/lib/date/table.date.module.d.ts +1 -9
  631. package/table/lib/table.cell.action.component.d.ts +2 -1
  632. package/table/lib/table.cell.input.component.d.ts +2 -1
  633. package/table/lib/table.cell.summaryend.component.d.ts +2 -1
  634. package/table/lib/table.cell.summarystart.component.d.ts +2 -1
  635. package/table/lib/table.column.directive.d.ts +3 -6
  636. package/table/lib/table.column.footer.component.d.ts +3 -3
  637. package/table/lib/table.column.header.component.d.ts +3 -3
  638. package/table/lib/table.component.d.ts +13 -8
  639. package/table/lib/table.directive.d.ts +5 -4
  640. package/table/lib/table.item.action.component.d.ts +4 -2
  641. package/table/lib/table.item.cell.component.d.ts +3 -5
  642. package/table/lib/table.item.directive.d.ts +3 -6
  643. package/table/lib/table.item.header.component.d.ts +2 -1
  644. package/table/lib/table.module.d.ts +4 -6
  645. package/calendar/esm2022/dereekb-dbx-web-calendar.mjs +0 -5
  646. package/calendar/esm2022/index.mjs +0 -2
  647. package/calendar/esm2022/lib/calendar.base.component.mjs +0 -54
  648. package/calendar/esm2022/lib/calendar.component.mjs +0 -54
  649. package/calendar/esm2022/lib/calendar.mjs +0 -30
  650. package/calendar/esm2022/lib/calendar.module.mjs +0 -87
  651. package/calendar/esm2022/lib/calendar.store.mjs +0 -174
  652. package/calendar/esm2022/lib/index.mjs +0 -6
  653. package/calendar/fesm2022/dereekb-dbx-web-calendar.mjs +0 -385
  654. package/calendar/fesm2022/dereekb-dbx-web-calendar.mjs.map +0 -1
  655. package/calendar/package.json +0 -21
  656. package/esm2022/lib/button/button.spacer.component.mjs +0 -19
  657. package/esm2022/lib/button/progress/base.progress.button.directive.mjs +0 -107
  658. package/esm2022/lib/extension/model/model.module.mjs +0 -66
  659. package/esm2022/lib/interaction/dialog/dialog.content.component.mjs +0 -23
  660. package/esm2022/lib/interaction/popover/popover.scroll.content.component.mjs +0 -48
  661. package/esm2022/lib/interaction/prompt/prompt.box.component.mjs +0 -25
  662. package/esm2022/lib/layout/card/card.box.container.component.mjs +0 -25
  663. package/esm2022/lib/layout/column/two/two.column.head.component.mjs +0 -32
  664. package/esm2022/lib/layout/item/item.layout.module.mjs +0 -19
  665. package/esm2022/lib/layout/list/list.grid.view.component.mjs +0 -112
  666. package/esm2022/lib/layout/list/list.grid.view.directive.mjs +0 -15
  667. package/esm2022/lib/layout/list/list.view.meta.icon.component.mjs +0 -35
  668. package/esm2022/lib/layout/list/list.view.value.group.mjs +0 -32
  669. package/esm2022/lib/layout/list/list.view.value.group.title.directive.mjs +0 -131
  670. package/esm2022/lib/layout/list/list.view.value.group.title.mjs +0 -2
  671. package/esm2022/lib/layout/list/list.view.value.modifier.directive.mjs +0 -77
  672. package/esm2022/lib/layout/list/list.view.value.modifier.ripple.directive.mjs +0 -41
  673. package/esm2022/lib/layout/list/list.view.value.modifier.selection.directive.mjs +0 -39
  674. package/esm2022/lib/router/provider/ngrouter/angular.router.module.mjs +0 -36
  675. package/esm2022/lib/router/provider/uirouter/uirouter.router.module.mjs +0 -36
  676. package/esm2022/lib/screen/screen.module.mjs +0 -24
  677. package/esm2022/mapbox/lib/options.mjs +0 -2
  678. package/lib/button/progress/base.progress.button.directive.d.ts +0 -32
  679. package/lib/extension/model/model.module.d.ts +0 -19
  680. package/lib/interaction/popover/popover.scroll.content.component.d.ts +0 -13
  681. package/lib/interaction/prompt/prompt.box.component.d.ts +0 -6
  682. package/lib/layout/card/card.box.container.component.d.ts +0 -8
  683. package/lib/layout/column/two/two.column.head.component.d.ts +0 -10
  684. package/lib/layout/item/item.layout.module.d.ts +0 -9
  685. package/lib/layout/list/list.grid.view.directive.d.ts +0 -10
  686. package/lib/layout/list/list.view.value.group.title.directive.d.ts +0 -35
  687. package/lib/router/provider/ngrouter/angular.router.module.d.ts +0 -12
  688. package/lib/router/provider/uirouter/uirouter.router.module.d.ts +0 -12
  689. package/lib/screen/screen.module.d.ts +0 -9
  690. package/mapbox/esm2022/dereekb-dbx-web-mapbox.mjs +0 -5
  691. package/mapbox/esm2022/index.mjs +0 -2
  692. package/mapbox/esm2022/lib/index.mjs +0 -21
  693. package/mapbox/esm2022/lib/mapbox.change.service.mjs +0 -40
  694. package/mapbox/esm2022/lib/mapbox.injection.component.mjs +0 -28
  695. package/mapbox/esm2022/lib/mapbox.injection.store.mjs +0 -39
  696. package/mapbox/esm2022/lib/mapbox.injection.store.provide.mjs +0 -47
  697. package/mapbox/esm2022/lib/mapbox.layout.component.mjs +0 -185
  698. package/mapbox/esm2022/lib/mapbox.layout.drawer.component.mjs +0 -21
  699. package/mapbox/esm2022/lib/mapbox.layout.resize.sync.directive.mjs +0 -32
  700. package/mapbox/esm2022/lib/mapbox.marker.component.mjs +0 -135
  701. package/mapbox/esm2022/lib/mapbox.marker.mjs +0 -16
  702. package/mapbox/esm2022/lib/mapbox.markers.component.mjs +0 -58
  703. package/mapbox/esm2022/lib/mapbox.menu.component.mjs +0 -91
  704. package/mapbox/esm2022/lib/mapbox.mjs +0 -19
  705. package/mapbox/esm2022/lib/mapbox.module.mjs +0 -108
  706. package/mapbox/esm2022/lib/mapbox.rxjs.mjs +0 -53
  707. package/mapbox/esm2022/lib/mapbox.service.mjs +0 -36
  708. package/mapbox/esm2022/lib/mapbox.store.map.directive.mjs +0 -33
  709. package/mapbox/esm2022/lib/mapbox.store.mjs +0 -525
  710. package/mapbox/esm2022/lib/mapbox.store.provide.mjs +0 -47
  711. package/mapbox/esm2022/lib/mapbox.util.mjs +0 -15
  712. package/mapbox/esm2022/lib/options.mjs +0 -2
  713. package/mapbox/fesm2022/dereekb-dbx-web-mapbox.mjs +0 -1449
  714. package/mapbox/fesm2022/dereekb-dbx-web-mapbox.mjs.map +0 -1
  715. package/mapbox/lib/options.d.ts +0 -7
  716. package/mapbox/package.json +0 -21
  717. package/table/esm2022/dereekb-dbx-web-table.mjs +0 -5
  718. package/table/esm2022/index.mjs +0 -2
  719. package/table/esm2022/lib/date/date.table.column.header.component.mjs +0 -49
  720. package/table/esm2022/lib/date/daterange.table.cell.input.component.mjs +0 -161
  721. package/table/esm2022/lib/date/index.mjs +0 -4
  722. package/table/esm2022/lib/date/table.date.module.mjs +0 -68
  723. package/table/esm2022/lib/index.mjs +0 -18
  724. package/table/esm2022/lib/table.cell.action.component.mjs +0 -25
  725. package/table/esm2022/lib/table.cell.input.component.mjs +0 -28
  726. package/table/esm2022/lib/table.cell.summaryend.component.mjs +0 -25
  727. package/table/esm2022/lib/table.cell.summarystart.component.mjs +0 -28
  728. package/table/esm2022/lib/table.column.directive.mjs +0 -27
  729. package/table/esm2022/lib/table.column.footer.component.mjs +0 -32
  730. package/table/esm2022/lib/table.column.header.component.mjs +0 -32
  731. package/table/esm2022/lib/table.component.mjs +0 -55
  732. package/table/esm2022/lib/table.directive.mjs +0 -34
  733. package/table/esm2022/lib/table.item.action.component.mjs +0 -32
  734. package/table/esm2022/lib/table.item.cell.component.mjs +0 -36
  735. package/table/esm2022/lib/table.item.directive.mjs +0 -27
  736. package/table/esm2022/lib/table.item.header.component.mjs +0 -24
  737. package/table/esm2022/lib/table.mjs +0 -2
  738. package/table/esm2022/lib/table.module.mjs +0 -74
  739. package/table/esm2022/lib/table.store.mjs +0 -53
  740. package/table/fesm2022/dereekb-dbx-web-table.mjs +0 -704
  741. package/table/fesm2022/dereekb-dbx-web-table.mjs.map +0 -1
  742. package/table/package.json +0 -21
@@ -1 +1 @@
1
- {"version":3,"file":"dereekb-dbx-web.mjs","sources":["../../../../packages/dbx-web/src/lib/layout/style/spacer.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.config.ts","../../../../packages/dbx-web/src/lib/button/progress/base.progress.button.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.html","../../../../packages/dbx-web/src/lib/button/button.component.ts","../../../../packages/dbx-web/src/lib/button/button.spacer.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.html","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.default.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.generator.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.service.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.directive.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.component.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.module.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.html","../../../../packages/dbx-web/src/lib/button/progress/button.progress.module.ts","../../../../packages/dbx-web/src/lib/button/button.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/abstract.dialog.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.footer.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.ts","../../../../packages/dbx-web/src/lib/layout/style/style.service.ts","../../../../packages/dbx-web/src/lib/layout/style/style.set.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.body.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.ts","../../../../packages/dbx-web/src/lib/layout/style/style.color.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.position.strategy.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.store.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.directive.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.ts","../../../../packages/dbx-web/src/lib/keypress/keydown.listener.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.header.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.scroll.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.html","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.ref.directive.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.directive.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.component.ts","../../../../packages/dbx-web/src/lib/keypress/keypress.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.controls.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.directive.ts","../../../../packages/dbx-web/src/lib/router/provider/router.provider.config.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.list.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.icon.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.link.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.content.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.module.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.menu.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.segue.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/router.list.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/list.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.ts","../../../../packages/dbx-web/src/lib/screen/screen.service.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.html","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.html","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.html","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.button.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.pagebar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.page.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.directive.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.header.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/content/content.elevate.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.border.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.box.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.page.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.pit.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.layout.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/index.ts","../../../../packages/dbx-web/src/lib/router/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/angular.router.module.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/uirouter/uirouter.router.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.list.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.module.ts","../../../../packages/dbx-web/src/lib/layout/block/two.block.component.ts","../../../../packages/dbx-web/src/lib/layout/block/block.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.container.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.store.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.back.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.context.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.full.left.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.head.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.showright.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/column.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.prompt.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.group.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.size.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/item/item.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/item/item.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.content.empty.component.ts","../../../../packages/dbx-web/src/lib/error/error.widget.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/label.block.component.ts","../../../../packages/dbx-web/src/lib/error/default.error.widget.component.ts","../../../../packages/dbx-web/src/lib/error/error.widget.service.ts","../../../../packages/dbx-web/src/lib/error/error.widget.component.ts","../../../../packages/dbx-web/src/lib/error/error.details.component.ts","../../../../packages/dbx-web/src/lib/error/error.popover.component.ts","../../../../packages/dbx-web/src/lib/error/error.view.component.ts","../../../../packages/dbx-web/src/lib/error/error.view.component.html","../../../../packages/dbx-web/src/lib/error/error.component.ts","../../../../packages/dbx-web/src/lib/loading/loading-progress.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.html","../../../../packages/dbx-web/src/lib/loading/loading.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.html","../../../../packages/dbx-web/src/lib/layout/list/list.directive.ts","../../../../packages/dbx-web/src/lib/error/error.action.directive.ts","../../../../packages/dbx-web/src/lib/error/error.api.ts","../../../../packages/dbx-web/src/lib/error/error.loading.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/address.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.header.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.component.ts","../../../../packages/dbx-web/src/lib/layout/text/icon.spacer.component.ts","../../../../packages/dbx-web/src/lib/layout/text/linkify.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.chip.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/text.chips.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.module.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.component.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.component.html","../../../../packages/dbx-web/src/lib/error/error.snackbar.service.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.action.directive.ts","../../../../packages/dbx-web/src/lib/error/error.module.ts","../../../../packages/dbx-web/src/lib/error/state.ts","../../../../packages/dbx-web/src/lib/loading/loading.action.directive.ts","../../../../packages/dbx-web/src/lib/loading/loading.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.group.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.selection.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ripple.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.group.title.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.meta.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.track.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.item.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.wrapper.ts","../../../../packages/dbx-web/src/lib/layout/section/section.header.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.intro.component.ts","../../../../packages/dbx-web/src/lib/layout/section/subsection.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.page.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.html","../../../../packages/dbx-web/src/lib/layout/step/step.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/form.description.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/hint.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/label.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/note.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/notice.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/ok.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/success.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/warn.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/text.compat.module.ts","../../../../packages/dbx-web/src/lib/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.position.strategy.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/abstract.popup.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.buttons.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.service.ts","../../../../packages/dbx-web/src/lib/action/key.trigger.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.html","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.dialog.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.directive.ts","../../../../packages/dbx-web/src/lib/action/action.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.box.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.page.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.button.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.module.ts","../../../../packages/dbx-web/src/lib/action/action.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.module.ts","../../../../packages/dbx-web/src/lib/interaction/interaction.module.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.module.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.dialog.component.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.directive.ts","../../../../packages/dbx-web/src/lib/action/transition/action.transition.module.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/model.actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/model.module.config.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/index.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.view.storage.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.service.ts","../../../../packages/dbx-web/src/lib/extension/model/state/effects/tracker.effects.ts","../../../../packages/dbx-web/src/lib/extension/model/model.module.ts","../../../../packages/dbx-web/src/lib/extension/model/model.state.service.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.ts","../../../../packages/dbx-web/src/lib/extension/model/model.types.service.ts","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.component.ts","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.component.html","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.module.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.structure.directive.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.body.directive.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.module.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.service.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.directive.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.list.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.module.ts","../../../../packages/dbx-web/src/lib/extension/index.ts","../../../../packages/dbx-web/src/lib/util/cdk.ts","../../../../packages/dbx-web/src/lib/dbx-web.module.ts","../../../../packages/dbx-web/src/dereekb-dbx-web.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'dbx-spacer, [dbxSpacer]',\n host: {\n class: 'dbx-spacer'\n }\n})\nexport class DbxSpacerDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxThemeColor } from '../../layout/style/style';\n\nexport interface DbxProgressButtonOptions {\n working?: boolean;\n text?: string;\n spinnerText?: string;\n buttonColor?: ThemePalette | DbxThemeColor;\n spinnerColor?: ThemePalette | DbxThemeColor;\n barColor?: ThemePalette | DbxThemeColor;\n raised?: boolean;\n stroked?: boolean;\n flat?: boolean;\n fab?: boolean;\n /**\n * Whether or not to render as an icon button.\n */\n iconOnly?: boolean;\n spinnerSize?: number;\n spinnerRatio?: number;\n mode?: ProgressSpinnerMode;\n value?: number;\n fullWidth?: boolean;\n disabled?: boolean;\n type?: string;\n customStyle?: { [key: string]: string };\n customClass?: string;\n /**\n * Custom spinner color. Overrides the normal spinner color if provided.\n */\n customSpinnerColor?: Maybe<string>;\n buttonIcon?: DbxProgressButtonIcon;\n id?: string;\n}\n\nexport interface DbxProgressButtonIcon {\n color?: ThemePalette | DbxThemeColor;\n fontIcon?: string;\n fontSet?: string;\n inline?: boolean;\n svgIcon?: string;\n customClass?: string;\n}\n\nexport interface DbxProgressButtonTargetedConfig extends DbxProgressButtonOptions {\n id?: string;\n}\n\nexport type DbxProgressButtonGlobalConfig = DbxProgressButtonTargetedConfig[];\n\nexport const DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG = new InjectionToken<DbxProgressButtonGlobalConfig>('DbxMatProgressButtonGlobalConfig');\n","import { ChangeDetectorRef, OnDestroy, OnInit, Directive, Input, Output, HostListener, EventEmitter, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { CssClass, type Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Observable, shareReplay, map, BehaviorSubject, combineLatest, first, distinctUntilChanged } from 'rxjs';\nimport { DbxProgressButtonGlobalConfig, DbxProgressButtonOptions, DbxProgressButtonTargetedConfig, DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\n\n@Directive()\nexport abstract class AbstractProgressButtonDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n readonly cdRef = inject(ChangeDetectorRef);\n private readonly globalConfig = inject<DbxProgressButtonGlobalConfig>(DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG, { optional: true }) ?? [];\n\n private _computedOptions: Maybe<DbxProgressButtonOptions> = undefined;\n\n private readonly _working = new BehaviorSubject<boolean>(false);\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n\n private readonly _buttonId = new BehaviorSubject<Maybe<string>>(undefined);\n private readonly _options = new BehaviorSubject<Maybe<DbxProgressButtonOptions>>(undefined);\n\n readonly globalOptions$: Observable<Maybe<DbxProgressButtonOptions>> = this._buttonId.pipe(map((buttonId: Maybe<string>) => (buttonId ? this.globalConfig.find((config: DbxProgressButtonTargetedConfig) => config.id === buttonId) : undefined)));\n\n readonly options$: Observable<DbxProgressButtonOptions> = combineLatest([this._options, this.globalOptions$, this._working, this._disabled]).pipe(\n map(([options, globalConfig, working, disabled]) => {\n let completeOptions: Maybe<DbxProgressButtonOptions>;\n\n if (options || globalConfig) {\n completeOptions = {\n ...globalConfig,\n ...options,\n working: options?.working || working,\n disabled: options?.disabled || disabled\n };\n }\n\n return completeOptions;\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly baseCssClasses$: Observable<[DbxProgressButtonOptions, CssClass[]]> = this.options$.pipe(\n map((x) => {\n const classes: CssClass[] = [x.customClass ?? ''];\n\n if (x.fullWidth) {\n classes.push('fullWidth');\n }\n\n if (x.disabled) {\n classes.push('disabled');\n }\n\n if (x.raised) {\n classes.push('mat-mdc-raised-button mdc-button--raised');\n }\n\n if (x.stroked) {\n classes.push('mat-mdc-outlined-button mdc-button--outlined');\n }\n\n if (x.flat) {\n classes.push('mat-mdc-unelevated-button mdc-button--unelevated');\n }\n\n return [x, classes] as [DbxProgressButtonOptions, CssClass[]];\n }),\n shareReplay(1)\n );\n\n @Output()\n readonly btnClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n ngOnInit(): void {\n this.sub = this.options$.subscribe((options) => {\n this._computedOptions = options;\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._working.complete();\n this._disabled.complete();\n this._buttonId.complete();\n this._options.complete();\n }\n\n @HostListener('click', ['$event'])\n public handleClick(event: MouseEvent): void {\n this.options$.pipe(first()).subscribe((options) => {\n if (!options.disabled && !options.working) {\n this.btnClick.emit(event);\n event.stopImmediatePropagation();\n }\n });\n }\n\n get customSpinnerStyle() {\n const customSpinnerColor = (this._computedOptions as DbxProgressButtonOptions).customSpinnerColor;\n return customSpinnerColor ? { stroke: customSpinnerColor } : undefined;\n }\n\n @Input()\n get options(): DbxProgressButtonOptions {\n return this._computedOptions as DbxProgressButtonOptions;\n }\n\n set options(options: DbxProgressButtonOptions) {\n this._options.next(options);\n }\n\n @Input()\n set buttonId(buttonId: string) {\n this._buttonId.next(buttonId);\n }\n\n @Input()\n set working(working: boolean) {\n this._working.next(working);\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled.next(disabled);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewChild } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { spaceSeparatedCssClasses } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-spinner-button',\n templateUrl: './spinner.button.component.html',\n styleUrls: ['./spinner.button.component.scss', './shared.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSpinnerButtonComponent extends AbstractProgressButtonDirective {\n @ViewChild('button', { static: true, read: ElementRef })\n readonly buttonRef!: ElementRef<HTMLElement>;\n\n readonly buttonCss$ = this.baseCssClasses$.pipe(\n map((x) => {\n const options = x[0];\n const classes = [...x[1]];\n\n if (options.iconOnly) {\n classes.push('mat-mdc-icon-button');\n }\n\n if (options.fab) {\n classes.push('mat-fab');\n }\n\n return spaceSeparatedCssClasses(classes);\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n get showText() {\n return !(this.options.fab || this.options.iconOnly);\n }\n\n calcSpinnerSize() {\n const options = this.options;\n const elem = this.buttonRef?.nativeElement;\n const height = elem.clientHeight;\n\n let size;\n\n if (options) {\n if (options.fab || options.iconOnly) {\n size = height;\n } else {\n size = options.spinnerSize;\n }\n }\n\n if (!size) {\n const minimumSpinnerSize = 18;\n const spinnerRatio = options.spinnerRatio ?? 0.33;\n const targetSpinnerSize = height * Math.min(1, spinnerRatio);\n size = Math.min(height, Math.max(minimumSpinnerSize, targetSpinnerSize));\n }\n\n return size;\n }\n}\n","<button class=\"dbx-base-button dbx-spinner-button\" #button mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [ngClass]=\"buttonCss$ | async\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"showText\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [class.working]=\"options.working && !options.disabled\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span class=\"button-text\" [class.working]=\"options.working && !options.disabled\">\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!showText && options.buttonIcon\">\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.fab && options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <mat-spinner class=\"spinner\" *ngIf=\"options.working && !options.disabled\" [diameter]=\"calcSpinnerSize()\" [color]=\"options.spinnerColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\" [ngStyle]=\"customSpinnerStyle!\" [ngClass]=\"{ 'dbx-spinner-custom': customSpinnerStyle! }\" [class.working]=\"options.working && !options.disabled\"></mat-spinner>\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { provideDbxButton, AbstractDbxButtonDirective } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxProgressButtonOptions } from './progress/button.progress.config';\nimport { DbxThemeColor } from '../layout/style/style';\n\nexport type DbxButtonType = 'basic' | 'raised' | 'stroked' | 'flat' | 'icon';\n\n/**\n * @deprecated use DbxButtonType instead.\n */\nexport enum DbxButtonDisplayType {\n RAISED = 'raised',\n STROKED = 'stroked',\n FLAT = 'flag',\n ICON_ONLY = 'icon'\n}\n\n/**\n * Complex button that supports loading states.\n */\n@Component({\n selector: 'dbx-button',\n template: `\n <dbx-spinner-button (btnClick)=\"clickButton()\" [options]=\"btnOptions\">\n <ng-content></ng-content>\n </dbx-spinner-button>\n `,\n providers: provideDbxButton(DbxButtonComponent),\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxButtonComponent extends AbstractDbxButtonDirective {\n @Input()\n type?: DbxButtonType;\n\n @Input()\n get basic(): boolean {\n return !this.type || this.type === 'basic';\n }\n\n set basic(basic: boolean) {\n if (basic) {\n this.type = 'basic';\n }\n }\n\n @Input()\n get raised(): boolean {\n return this.type === 'raised';\n }\n\n set raised(raised: boolean) {\n if (raised) {\n this.type = 'raised';\n }\n }\n\n @Input()\n get stroked(): boolean {\n return this.type === 'stroked';\n }\n\n set stroked(stroked: boolean) {\n if (stroked) {\n this.type = 'stroked';\n }\n }\n\n @Input()\n get flat(): boolean {\n return this.type === 'flat';\n }\n\n set flat(flat: boolean) {\n if (flat) {\n this.type = 'flat';\n }\n }\n\n @Input()\n get iconOnly(): boolean {\n return this.type === 'icon';\n }\n\n set iconOnly(iconOnly: boolean) {\n if (iconOnly) {\n this.type = 'icon';\n }\n }\n\n @Input()\n public color: ThemePalette | DbxThemeColor = undefined;\n\n @Input()\n public spinnerColor: ThemePalette | DbxThemeColor = undefined;\n\n @Input()\n public customButtonColor: Maybe<string>;\n\n @Input()\n public customTextColor: Maybe<string>;\n\n @Input()\n public customSpinnerColor: Maybe<string>;\n\n public get btnOptions(): DbxProgressButtonOptions {\n const buttonIcon = this.icon\n ? {\n fontIcon: this.icon\n }\n : undefined;\n\n const customStyle = {} as {\n [key: string]: string;\n };\n\n if (this.customButtonColor) {\n customStyle['background'] = this.customButtonColor;\n }\n\n if (this.customTextColor) {\n customStyle['color'] = this.customTextColor;\n }\n\n const customSpinnerColor: Maybe<string> = this.customSpinnerColor ?? this.customTextColor;\n const disabled = !this.working && this.disabled; // Only disabled if we're not working, in order to show the animation.\n\n const isIconOnlyButton = buttonIcon && !this.text;\n\n return {\n fab: false,\n working: this.working,\n buttonIcon,\n customStyle,\n customClass: 'dbx-button ' + (isIconOnlyButton ? 'dbx-button-no-text' : ''),\n text: this.text ?? '',\n buttonColor: this.color,\n barColor: 'accent',\n raised: this.raised,\n stroked: this.stroked,\n flat: this.flat,\n iconOnly: this.iconOnly,\n mode: 'indeterminate',\n spinnerColor: this.spinnerColor ?? this.color,\n customSpinnerColor,\n disabled\n };\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Button spacer directive.\n */\n@Directive({\n selector: 'dbx-button-spacer,[dbxButtonSpacer]',\n host: {\n class: 'dbx-button-spacer d-inline'\n }\n})\nexport class DbxButtonSpacerDirective {}\n","import { OnInit, Component, OnDestroy, AfterViewInit, inject } from '@angular/core';\nimport { filterMaybe, LoadingStateType } from '@dereekb/rxjs';\nimport { distinctUntilChanged, Observable, shareReplay, BehaviorSubject, switchMap, startWith, Subject, of, filter, map } from 'rxjs';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { MS_IN_SECOND, type Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarActionConfig } from './action.snackbar';\nimport { DbxActionContextSourceReference, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\n\n/**\n * Component for a snackbar that contains an action.\n */\n@Component({\n templateUrl: './action.snackbar.component.html'\n})\nexport class DbxActionSnackbarComponent extends AbstractSubscriptionDirective implements OnInit, AfterViewInit, OnDestroy {\n readonly snackbarRef = inject(MatSnackBarRef<DbxActionSnackbarComponent>);\n readonly data = inject<DbxActionSnackbarDisplayConfig>(MAT_SNACK_BAR_DATA);\n\n private readonly _durationTimeout = new Subject<void>();\n private readonly _actionRef = new BehaviorSubject<Maybe<DbxActionContextSourceReference>>(this.data.action?.reference);\n\n readonly value$ = of(0); // value passed to the action.\n readonly sourceInstance$ = this._actionRef.pipe(\n filterMaybe(),\n map((x) => x?.sourceInstance)\n );\n readonly complete$ = this.sourceInstance$.pipe(\n switchMap((x) => x.isSuccess$),\n startWith(false),\n shareReplay(1)\n );\n readonly loadingStateType$ = this.sourceInstance$.pipe(\n switchMap((x) => x.loadingStateType$),\n startWith(LoadingStateType.IDLE),\n shareReplay(1)\n );\n readonly snackbarStatusClass$: Observable<string> = this.loadingStateType$.pipe(\n map((x) => {\n let classes = 'dbx-action-snackbar-';\n\n switch (x) {\n case LoadingStateType.ERROR:\n classes += 'error';\n break;\n case LoadingStateType.SUCCESS:\n classes += 'success';\n break;\n default:\n classes += 'idle';\n break;\n }\n\n return classes;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly button: Maybe<string> = this.data.action?.button ?? this.data.button;\n\n get action() {\n return this.data.action;\n }\n\n get hasAction(): boolean {\n return Boolean(this._actionRef.value);\n }\n\n get message(): Maybe<string> {\n return this.data.message;\n }\n\n get actionConfig(): Maybe<DbxActionSnackbarActionConfig> {\n return this.data.action;\n }\n\n ngOnInit(): void {\n // Subscribe and close if the duration is up and the action state is idle.\n this.sub = this._durationTimeout\n .pipe(\n switchMap(() => this.loadingStateType$),\n filter((x) => x === LoadingStateType.IDLE)\n )\n .subscribe(() => {\n this.dismiss();\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._actionRef.value?.destroy();\n this._actionRef.complete();\n this._durationTimeout.complete();\n }\n\n ngAfterViewInit(): void {\n // Responsible for hiding itself if it has an action.\n if (this.hasAction) {\n setTimeout(() => {\n this._durationTimeout.next();\n }, this.action?.duration ?? MS_IN_SECOND * 10);\n }\n }\n\n dismissAfterActionCompletes = (): void => {\n this.snackbarRef._dismissAfter(MS_IN_SECOND * 3);\n };\n\n dismiss = (): void => {\n this.snackbarRef.dismiss();\n };\n}\n","<div class=\"dbx-action-snackbar\" [ngClass]=\"(snackbarStatusClass$ | async)!\">\n <ng-container [ngSwitch]=\"complete$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <dbx-spacer></dbx-spacer>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n <ng-container *ngIf=\"hasAction\">\n <dbx-action [dbxActionValueStream]=\"value$\" [dbxActionSource]=\"sourceInstance$ | async\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n </ng-container>\n </ng-container>\n</div>\n","import { DbxActionSnackbarEventMakeConfig } from './action.snackbar.service';\n\nexport const DBX_ACTION_SNACKBAR_DEFAULTS: DbxActionSnackbarEventMakeConfig = {\n create: {\n loading: {\n message: 'Creating...'\n },\n success: {\n button: 'Ok',\n message: 'Created'\n },\n error: {\n button: 'X',\n message: 'Create Failed'\n }\n },\n save: {\n loading: {\n message: 'Saving...'\n },\n success: {\n button: 'Ok',\n message: 'Saved'\n },\n error: {\n button: 'X',\n message: 'Save Failed'\n }\n },\n merge: {\n loading: {\n message: 'Merging...'\n },\n success: {\n button: 'Ok',\n message: 'Merged'\n },\n error: {\n button: 'X',\n message: 'Merge Failed'\n }\n },\n delete: {\n loading: {\n message: 'Deleting...'\n },\n success: {\n button: 'Ok',\n message: 'Deleted'\n },\n error: {\n button: 'X',\n message: 'Delete Failed'\n }\n },\n cancel: {\n loading: {\n message: 'Cancelling...'\n },\n success: {\n button: 'Ok',\n message: 'Canceled'\n },\n error: {\n button: 'X',\n message: 'Cancel Failed'\n }\n },\n restore: {\n loading: {\n message: 'Restoring...'\n },\n success: {\n button: 'Ok',\n message: 'Restored'\n },\n error: {\n button: 'X',\n message: 'Restore Failed'\n }\n },\n refresh: {\n loading: {\n message: 'Refreshing...'\n },\n success: {\n button: 'Ok',\n message: 'Refreshed'\n },\n error: {\n button: 'X',\n message: 'Refresh Failed'\n }\n },\n do: {\n loading: {\n message: 'Doing...'\n },\n success: {\n button: 'Ok',\n message: 'Done'\n },\n error: {\n button: 'X',\n message: 'Failed'\n }\n }\n};\n","import { DbxActionContextSourceReference } from '@dereekb/dbx-core';\nimport { Milliseconds, Maybe, GetterOrValue, getValueFromGetter, Getter } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent } from './action.snackbar';\n\nexport interface DbxActionSnackbarGeneratorInput<T = unknown, O = unknown> {\n event: DbxActionSnackbarEvent<O>;\n undo?: Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>;\n}\n\nexport type DbxActionSnackbarGeneratorUndoInput<T = unknown, O = unknown> = Getter<DbxActionContextSourceReference<T, O>> | DbxActionSnackbarGeneratorUndoInputConfig<T, O>;\n\nexport interface DbxActionSnackbarGeneratorUndoInputConfig<T = unknown, O = unknown> {\n duration?: Milliseconds;\n getUndoAction: Getter<DbxActionContextSourceReference<T, O>>;\n}\n\nexport type DbxActionSnackbarDisplayConfigGeneratorFunction = <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\nexport interface DbxMakeActionSnackbarGeneratorConfiguration {\n idle?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n loading?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n success?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n error?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n}\n\nexport interface DbxMakeActionSnackbarGeneratorEventConfiguration extends Omit<DbxActionSnackbarDisplayConfig, 'action'> {\n /**\n * Sets the undo action text. If undefined, will default to 'undo'\n */\n undoButtonText?: string;\n}\n\n/**\n * Creates a DbxActionSnackbarDisplayConfigGeneratorFunction from the input config.\n *\n * @param config\n * @returns\n */\nexport function makeDbxActionSnackbarDisplayConfigGeneratorFunction(config: DbxMakeActionSnackbarGeneratorConfiguration): DbxActionSnackbarDisplayConfigGeneratorFunction {\n return <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => {\n const { event, undo: undoInput } = input;\n const type = event.type;\n const eventConfigGetterOrValue = config[type];\n const eventConfig = eventConfigGetterOrValue && getValueFromGetter(eventConfigGetterOrValue);\n\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (eventConfig) {\n const { undoButtonText } = eventConfig;\n result = {\n button: eventConfig.button,\n message: eventConfig.message,\n snackbar: eventConfig.snackbar\n };\n\n if (undoInput) {\n let reference: DbxActionContextSourceReference<T, O>;\n\n if (typeof undoInput === 'object') {\n reference = undoInput.getUndoAction();\n } else {\n reference = getValueFromGetter(undoInput);\n }\n\n if (!reference) {\n console.error('Expected action source reference was not provided to undo...');\n } else {\n result.action = {\n button: undoButtonText ?? 'Undo',\n reference\n };\n }\n }\n }\n\n return result;\n };\n}\n","import { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DBX_ACTION_SNACKBAR_DEFAULTS } from './action.snackbar.default';\nimport { Injectable, InjectionToken, Type, inject } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { Milliseconds, Maybe, mergeObjects, MS_IN_SECOND } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarGeneratorInput, DbxMakeActionSnackbarGeneratorConfiguration, makeDbxActionSnackbarDisplayConfigGeneratorFunction } from './action.snackbar.generator';\n\nexport const DBX_ACTION_SNACKBAR_SERVICE_CONFIG = new InjectionToken('DbxActionSnackbarServiceConfig');\n\nexport const DEFAULT_SNACKBAR_DIRECTIVE_DURATION = MS_IN_SECOND * 4;\n\nexport interface DbxActionSnackbarEventMakeConfig {\n [key: string]: DbxMakeActionSnackbarGeneratorConfiguration;\n}\n\nexport interface DbxActionSnackbarServiceConfig<C = unknown> {\n readonly componentClass: Type<C>;\n readonly snackbar?: Pick<MatSnackBarConfig, 'horizontalPosition' | 'verticalPosition'>;\n readonly defaultDuration?: Milliseconds;\n readonly defaultUndoDuration?: Milliseconds;\n readonly eventTypeConfigs: DbxActionSnackbarEventMakeConfig;\n}\n\n/**\n * Used for managing/configuring the snackbar default values and pushing snackbar events.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxActionSnackbarService<C = DbxActionSnackbarComponent> {\n readonly matSnackBar = inject(MatSnackBar);\n\n readonly config: DbxActionSnackbarServiceConfig<C> = ((inputConfig) => {\n return {\n ...inputConfig,\n componentClass: inputConfig.componentClass ?? (DbxActionSnackbarComponent as unknown as Type<C>),\n defaultDuration: inputConfig.defaultDuration || DEFAULT_SNACKBAR_DIRECTIVE_DURATION,\n eventTypeConfigs: mergeObjects([DBX_ACTION_SNACKBAR_DEFAULTS, inputConfig.eventTypeConfigs]) as DbxActionSnackbarEventMakeConfig\n };\n })(inject<Partial<DbxActionSnackbarServiceConfig<C>>>(DBX_ACTION_SNACKBAR_SERVICE_CONFIG, { optional: true }) ?? {});\n\n get componentClass(): Type<C> {\n return this.config.componentClass;\n }\n\n get eventTypeConfigs(): DbxActionSnackbarEventMakeConfig {\n return this.config.eventTypeConfigs;\n }\n\n /**\n * Opens a new snackbar given the input configuration.\n *\n * @param config\n * @returns\n */\n openSnackbar<T = unknown, O = unknown>(config: DbxActionSnackbarDisplayConfig<T, O>): MatSnackBarRef<C> {\n const { snackbar: inputSnackbarConfig } = config;\n const { snackbar: defaultSnackbarConfig, defaultDuration } = this.config;\n\n const matSnackbarConfig: MatSnackBarConfig = {\n ...defaultSnackbarConfig,\n ...inputSnackbarConfig,\n data: config\n };\n\n const duration = config.action?.duration ?? matSnackbarConfig.duration ?? defaultDuration ?? DEFAULT_SNACKBAR_DIRECTIVE_DURATION;\n\n if (config.action) {\n // Set the duration on the action\n config.action = {\n ...config.action,\n duration\n };\n } else {\n // The snackbar does not close here. The duration is passed to the component and it will close it.\n matSnackbarConfig.duration = duration;\n }\n\n return this.matSnackBar.openFromComponent(this.componentClass, matSnackbarConfig);\n }\n\n generateDisplayConfig<T = unknown, O = unknown>(type: Maybe<DbxActionSnackbarType>, input: DbxActionSnackbarGeneratorInput<T, O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const configForType = this.eventTypeConfigs[type ?? 'none'];\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (configForType) {\n result = makeDbxActionSnackbarDisplayConfigGeneratorFunction(configForType)(input);\n }\n\n return result;\n }\n}\n","import { Directive, Input, OnInit, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarService } from './action.snackbar.service';\nimport { DbxActionSnackbarDisplayConfigGeneratorFunction, DbxActionSnackbarGeneratorInput, DbxActionSnackbarGeneratorUndoInput } from './action.snackbar.generator';\nimport { LoadingState, LoadingStateType, loadingStateType } from '@dereekb/rxjs';\n\n/**\n * Action directive that displays a snackbar when the action context hits a certain state.\n */\n@Directive({\n selector: '[dbxActionSnackbar]'\n})\nexport class DbxActionSnackbarDirective<T = unknown, O = unknown> extends AbstractSubscriptionDirective implements OnInit {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n readonly dbxActionSnackbarService = inject(DbxActionSnackbarService);\n\n private _snackbarFunction?: Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>;\n\n @Input('dbxActionSnackbar')\n get snackbarFunction(): Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction> {\n return this._snackbarFunction;\n }\n\n set snackbarFunction(snackbarFunction: Maybe<'' | DbxActionSnackbarDisplayConfigGeneratorFunction>) {\n if (snackbarFunction) {\n this._snackbarFunction = snackbarFunction;\n }\n }\n\n @Input()\n dbxActionSnackbarDefault?: Maybe<DbxActionSnackbarType>;\n\n @Input()\n dbxActionSnackbarUndo?: DbxActionSnackbarGeneratorUndoInput<T, O>;\n\n ngOnInit(): void {\n this.sub = this.source\n .pipeStore((store) => store.loadingState$)\n .subscribe((loadingState: LoadingState<O>) => {\n const event: DbxActionSnackbarEvent<O> = { value: loadingState.value, error: loadingState.error, type: loadingStateType(loadingState) };\n\n const config = this.buildConfigurationForEvent(event);\n\n if (config) {\n this.showSnackbarForConfiguration(config, event);\n }\n });\n }\n\n protected buildConfigurationForEvent(event: DbxActionSnackbarEvent<O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const input: DbxActionSnackbarGeneratorInput<T, O> = {\n event,\n undo: event.type === LoadingStateType.SUCCESS ? this.dbxActionSnackbarUndo : undefined // only show undo on success.\n };\n\n return this.snackbarFunction ? this.snackbarFunction(input) : this.dbxActionSnackbarService.generateDisplayConfig(this.dbxActionSnackbarDefault, input);\n }\n\n protected showSnackbarForConfiguration(config: DbxActionSnackbarDisplayConfig<T, O>, event: DbxActionSnackbarEvent<O>) {\n this.dbxActionSnackbarService.openSnackbar(config);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractDbxButtonDirective, provideDbxButton } from '@dereekb/dbx-core';\n\n/**\n * Simple dbx-button that displays a button with an icon.\n */\n@Component({\n selector: 'dbx-icon-button',\n template: `\n <ng-container [ngSwitch]=\"buttonDisplayType\">\n <button *ngSwitchCase=\"'text_button'\" mat-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span>{{ text }}</span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchCase=\"'icon_button'\" mat-icon-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon>{{ icon }}</mat-icon>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n </ng-container>\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: provideDbxButton(DbxIconButtonComponent),\n host: {\n class: 'dbx-icon-button'\n }\n})\nexport class DbxIconButtonComponent extends AbstractDbxButtonDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxIconButtonComponent } from './icon.button.component';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n MatButtonModule,\n MatIconModule\n ],\n exports: [DbxIconButtonComponent],\n declarations: [DbxIconButtonComponent]\n})\nexport class DbxIconButtonModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\nimport { map, shareReplay } from 'rxjs';\nimport { spaceSeparatedCssClasses } from '@dereekb/util';\nimport { distinctUntilItemsHaveDifferentValues } from '@dereekb/rxjs';\n\n@Component({\n selector: 'dbx-bar-button',\n templateUrl: './bar.button.component.html',\n styleUrls: ['./bar.button.component.scss', './shared.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxBarButtonComponent extends AbstractProgressButtonDirective {\n readonly buttonCss$ = this.baseCssClasses$.pipe(\n distinctUntilItemsHaveDifferentValues((x) => x[1]),\n map((x) => spaceSeparatedCssClasses(x[1])),\n shareReplay(1)\n );\n}\n","<button class=\"dbx-base-button dbx-bar-button\" mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [ngClass]=\"buttonCss$ | async\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span>\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n\n <mat-progress-bar class=\"bar\" *ngIf=\"options.working && !options.disabled\" [color]=\"options.barColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\"></mat-progress-bar>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG, DbxProgressButtonGlobalConfig } from './button.progress.config';\nimport { DbxBarButtonComponent } from './bar.button.component';\nimport { DbxSpinnerButtonComponent } from './spinner.button.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatProgressBarModule, MatProgressSpinnerModule, MatRippleModule, MatIconModule],\n exports: [DbxSpinnerButtonComponent, DbxBarButtonComponent],\n declarations: [DbxSpinnerButtonComponent, DbxBarButtonComponent]\n})\nexport class DbxProgressButtonsModule {\n static forRoot(config?: DbxProgressButtonGlobalConfig): ModuleWithProviders<DbxProgressButtonsModule> {\n return {\n ngModule: DbxProgressButtonsModule,\n providers: [\n {\n provide: DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxButtonComponent } from './button.component';\nimport { DbxButtonSpacerDirective } from './button.spacer.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxCoreButtonModule } from '@dereekb/dbx-core';\nimport { DbxProgressButtonsModule } from './progress/button.progress.module';\nimport { DbxIconButtonModule } from './icon/icon.button.module';\n\n@NgModule({\n imports: [CommonModule, DbxProgressButtonsModule],\n declarations: [DbxButtonComponent, DbxButtonSpacerDirective],\n exports: [DbxCoreButtonModule, DbxProgressButtonsModule, DbxIconButtonModule, DbxButtonComponent, DbxButtonSpacerDirective]\n})\nexport class DbxButtonModule {}\n","import { Directive, inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AbstractTransitionWatcherDirective } from '@dereekb/dbx-core';\n\n/**\n * Abstract dialog component that closes when a transition is successful.\n */\n@Directive()\nexport abstract class AbstractDialogDirective<R = unknown, D = unknown, T = unknown> extends AbstractTransitionWatcherDirective {\n readonly data: D = inject(MAT_DIALOG_DATA, { optional: true });\n readonly dialogRef = inject(MatDialogRef<T, R>);\n\n protected updateForSuccessfulTransition(): void {\n this.close();\n }\n\n returnValue(value?: R) {\n this.close(value);\n }\n\n close(value?: R) {\n this.dialogRef.close(value);\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\n\n/**\n * Component used to show a close button at the top of a dialog, floating in a corner.\n */\n@Component({\n selector: 'dbx-dialog-content-close',\n template: `\n <button class=\"dbx-dialog-content-close-button\" mat-icon-button (click)=\"closeClicked()\"><mat-icon>close</mat-icon></button>\n `,\n host: {\n class: 'dbx-dialog-content-close',\n '[class.dbx-dialog-content-close-padding]': 'padded'\n }\n})\nexport class DbxDialogContentCloseComponent implements OnDestroy {\n @Input()\n padded = true;\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxDialogContentFooterConfig {\n buttonColor?: ThemePalette;\n closeText?: string;\n}\n\n/**\n * Component used to show a close button at the bottom of a dialog.\n */\n@Component({\n selector: 'dbx-dialog-content-footer',\n template: `\n <button mat-raised-button [color]=\"buttonColor\" (click)=\"closeClicked()\">{{ closeText }}</button>\n `,\n host: {\n class: 'dbx-dialog-content-footer'\n }\n})\nexport class DbxDialogContentFooterComponent implements OnDestroy {\n @Input()\n closeText = 'Close';\n\n @Input()\n buttonColor: ThemePalette = undefined;\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n @Input()\n set config(config: Maybe<DbxDialogContentFooterConfig>) {\n this.closeText = config?.closeText ?? 'Close';\n this.buttonColor = config?.buttonColor ?? undefined;\n }\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nexport type DbxDialogContentContainerWidth = 'normal' | 'wide';\n\n/**\n * Component used to style a dialog.\n */\n@Directive({\n selector: 'dbx-dialog-content,[dbxDialogContent].dbx-dialog-content',\n host: {\n class: 'dbx-dialog-content',\n '[class]': `width + '-dialog-content'`\n }\n})\nexport class DbxDialogContentDirective {\n @Input()\n width = 'normal';\n}\n","import { first, Observable } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef, inject } from '@angular/core';\nimport { AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nexport type DbxActionDialogFunction<T = unknown> = () => MatDialogRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a dialog, then watches that dialog for a value.\n */\n@Directive({\n exportAs: 'dbxActionDialog',\n selector: '[dbxActionDialog]'\n})\nexport class DbxActionDialogDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n @Input('dbxActionDialog')\n fn?: DbxActionDialogFunction<T>;\n\n @Input()\n set dbxActionDialogModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor() {\n super();\n this.valueGetter = () => this._getDataFromDialog();\n }\n\n protected _getDataFromDialog(): Observable<Maybe<T>> {\n return this._makeDialogRef().afterClosed().pipe(first());\n }\n\n protected _makeDialogRef(): MatDialogRef<unknown, Maybe<T>> {\n if (!this.fn) {\n throw new Error('dbxActionDialog has no dialog function provided to it.');\n }\n\n return this.fn();\n }\n}\n","import { MatDialogConfig } from '@angular/material/dialog';\nimport { Maybe, cssClassesSet } from '@dereekb/util';\n\nexport type DbxDialogContentConfig = Omit<MatDialogConfig, 'viewContainerRef' | 'injector' | 'id' | 'data'>;\n\nexport function sanitizeDbxDialogContentConfig(input: Maybe<DbxDialogContentConfig>): DbxDialogContentConfig {\n const panelClass = input?.panelClass;\n\n return {\n ...input,\n panelClass: panelClass ? Array.from(cssClassesSet(input?.panelClass)) : undefined\n };\n}\n","import { Destroyable, type Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, map, switchMap, shareReplay } from 'rxjs';\nimport { Injectable, InjectionToken, inject } from '@angular/core';\n\nexport const DBX_STYLE_DEFAULT_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');\n\nexport interface DbxStyleConfig {\n /**\n * Root style name.\n */\n style: string;\n /**\n * Suffixes available to this configuration.\n */\n suffixes?: Set<string>;\n}\n\n/**\n * Used for managing styles within an app.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxStyleService implements Destroyable {\n private readonly _defaultConfig = new BehaviorSubject<Maybe<DbxStyleConfig>>(inject<DbxStyleConfig>(DBX_STYLE_DEFAULT_CONFIG_TOKEN));\n private readonly _config = new BehaviorSubject<Maybe<Observable<DbxStyleConfig>>>(undefined);\n private readonly _suffix = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly config$ = this._config.pipe(\n switchMap((x) => {\n if (x == null) {\n return this._defaultConfig;\n } else {\n return x;\n }\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly suffix$ = this._suffix.pipe(distinctUntilChanged(), shareReplay(1));\n readonly style$ = this.getStyleWithConfig(this.config$);\n\n get suffix(): Maybe<string> {\n return this._suffix.value;\n }\n\n set suffix(suffix: Maybe<string>) {\n this._suffix.next(suffix);\n }\n\n getStyleWithConfig(configObs: Observable<DbxStyleConfig>): Observable<string> {\n return combineLatest([configObs, this.suffix$]).pipe(\n map(([config, suffix]) => {\n let style = config.style;\n\n if (suffix != null && config.suffixes) {\n const sanitizedSuffix = suffix[0] === '-' ? suffix?.slice(1) : suffix;\n\n if (config.suffixes.has(sanitizedSuffix)) {\n style = `${style}-${sanitizedSuffix}`;\n }\n }\n\n return style;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n toggleDarkSuffix(dark?: Maybe<boolean>) {\n const toggle: boolean = dark != null ? dark : this.suffix !== '-dark';\n\n if (toggle) {\n this.suffix = '-dark';\n } else {\n this.suffix = undefined;\n }\n }\n\n setDefaultConfig(defaultConfig: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n setConfig(config: Observable<DbxStyleConfig>) {\n this._config.next(config);\n }\n\n destroy(): void {\n this._defaultConfig.complete();\n this._config.complete();\n this._suffix.complete();\n }\n}\n","import { splitCommaSeparatedStringToSet, type Maybe } from '@dereekb/util';\nimport { Observable, distinctUntilChanged, map, shareReplay, BehaviorSubject, delay, combineLatest } from 'rxjs';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, Input, OnDestroy, ChangeDetectorRef, OnInit, inject } from '@angular/core';\nimport { DbxStyleConfig, DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\n\n/**\n * Used to denote which app style to use for all children below this.\n *\n * Will update the parent DbxStyleService.\n */\n@Directive({\n selector: '[dbxSetStyle]',\n host: {\n class: 'dbx-style-root',\n '[class]': 'outputStyle'\n }\n})\nexport class DbxSetStyleDirective extends AbstractSubscriptionDirective implements OnDestroy, OnInit {\n private readonly _suffixes = new BehaviorSubject<Maybe<string>>(undefined);\n private readonly _style = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly styleService = inject(DbxStyleService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n readonly style$ = this._style.pipe(filterMaybe());\n readonly suffixes$ = this._suffixes.pipe(distinctUntilChanged(), map(splitCommaSeparatedStringToSet));\n\n readonly config$: Observable<DbxStyleConfig> = combineLatest([this.style$, this.suffixes$]).pipe(\n map(([style, suffixes]) => ({ style, suffixes })),\n shareReplay(1)\n );\n\n readonly outputStyle$ = this.styleService.getStyleWithConfig(this.config$);\n\n outputStyle = '';\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.styleService.setConfig(this.config$);\n this.sub = this.outputStyle$.pipe(delay(0)).subscribe((style) => {\n this.outputStyle = style;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._suffixes.complete();\n this._style.complete();\n }\n\n @Input('dbxSetStyle')\n get style(): string {\n return this._style.value ?? '';\n }\n\n set style(style: string) {\n this._style.next(style);\n }\n\n @Input()\n get suffixes(): Maybe<string> {\n return this._suffixes.value;\n }\n\n set suffixes(suffixes: Maybe<string>) {\n this._suffixes.next(suffixes);\n }\n}\n","import { Directive, ChangeDetectorRef, inject } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to retrieve the current app styling from the DbxStyleService.\n */\n@Directive({\n selector: 'dbx-style, [dbxStyle], .dbx-style',\n host: {\n '[class]': 'cssClass'\n }\n})\nexport class DbxStyleDirective extends AbstractSubscriptionDirective {\n private readonly _styleService = inject(DbxStyleService);\n private readonly _cdRef = inject(ChangeDetectorRef);\n\n cssClass = '';\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this._styleService.style$.pipe(delay(0)).subscribe((classes) => {\n this.cssClass = classes;\n safeDetectChanges(this._cdRef);\n });\n }\n}\n","import { Directive, ChangeDetectorRef, Renderer2, inject } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to style the body document using the style provided by DbxStyleService.\n */\n@Directive({\n selector: '[dbxStyleBody]',\n host: {\n '[class]': 'style'\n }\n})\nexport class DbxStyleBodyDirective extends AbstractSubscriptionDirective {\n private readonly _renderer = inject(Renderer2);\n readonly styleService = inject(DbxStyleService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _currentStyle = '';\n\n ngOnInit(): void {\n this.sub = this.styleService.style$.pipe(delay(0)).subscribe((style) => {\n this._currentStyle && this._renderer.removeClass(document.body, this._currentStyle);\n style && this._renderer.addClass(document.body, style);\n this._currentStyle = style;\n safeDetectChanges(this.cdRef);\n });\n }\n}\n","import { CssClass, type Maybe } from '@dereekb/util';\n\nexport type DbxThemeColorMain = 'primary' | 'accent' | 'warn';\nexport type DbxThemeColorExtra = 'notice' | 'ok' | 'success' | 'grey';\nexport type DbxThemeColorExtraSecondary = 'background' | 'disabled';\nexport type DbxThemeColorMainOrExtra = DbxThemeColorMain | DbxThemeColorExtra;\nexport type DbxThemeColor = DbxThemeColorMainOrExtra | DbxThemeColorExtraSecondary;\n\nexport const DBX_THEME_COLORS_MAIN: DbxThemeColorMain[] = ['primary', 'accent', 'warn'];\nexport const DBX_THEME_COLORS_EXTRA: DbxThemeColorExtra[] = ['notice', 'ok', 'success', 'grey'];\nexport const DBX_THEME_COLORS_EXTRA_SECONDARY: DbxThemeColorExtraSecondary[] = ['background', 'disabled'];\nexport const DBX_THEME_COLORS: DbxThemeColor[] = [...DBX_THEME_COLORS_MAIN, ...DBX_THEME_COLORS_EXTRA, ...DBX_THEME_COLORS_EXTRA_SECONDARY];\n\nexport function dbxColorBackground(color: Maybe<DbxThemeColor | ''>): CssClass {\n let cssClass = 'dbx-bg'; // background by default\n\n switch (color) {\n case 'primary':\n case 'accent':\n case 'warn':\n case 'notice':\n case 'ok':\n case 'success':\n case 'grey':\n case 'disabled':\n cssClass = `dbx-${color}-bg`;\n break;\n }\n\n return cssClass;\n}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor, dbxColorBackground } from './style';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Used to apply a background style using a color.\n */\n@Directive({\n selector: '[dbxColor]',\n host: {\n '[class]': 'cssClass'\n }\n})\nexport class DbxColorDirective {\n cssClass = '';\n\n @Input()\n set dbxColor(dbxColor: Maybe<DbxThemeColor | ''>) {\n this.cssClass = dbxColorBackground(dbxColor);\n }\n}\n","import { DbxSetStyleDirective } from './style.set.directive';\nimport { DbxStyleDirective } from './style.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxSpacerDirective } from './spacer.directive';\nimport { DbxStyleBodyDirective } from './style.body.directive';\nimport { DbxColorDirective } from './style.color.directive';\n\nconst declarations = [DbxColorDirective, DbxSpacerDirective, DbxStyleDirective, DbxSetStyleDirective, DbxStyleBodyDirective];\n\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxStyleLayoutModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxDialogContentDirective } from './dialog.content.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxActionDialogDirective } from './dialog.action.directive';\nimport { DbxDialogContentFooterComponent } from './dialog.content.footer.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogContentCloseComponent } from './dialog.content.close.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, MatButtonModule, MatIconModule],\n declarations: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent],\n exports: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent]\n})\nexport class DbxDialogInteractionModule {}\n","import { FlexibleConnectedPositionStrategy, HorizontalConnectionPos, Overlay, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\nimport { NgOverlayContainerConfiguration } from 'ng-overlay-container';\n\nexport interface PopoverPositionStrategyConfig {\n overlay: Overlay;\n elementRef: ElementRef;\n config: NgOverlayContainerConfiguration;\n}\n\nexport class PopoverPositionStrategy {\n static make(overlay: Overlay, elementRef: ElementRef, config: NgOverlayContainerConfiguration): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] = config.originX === 'end' ? ['end', 'start', 'center'] : config.originX === 'start' ? ['start', 'end', 'center'] : ['center', 'start', 'end'];\n\n const overlayX = originX;\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] = config.overlayY === 'bottom' ? ['bottom', 'top'] : ['top', 'bottom'];\n\n const [originY, originFallbackY] = [overlayFallbackY, overlayY];\n const { offsetX = 0, offsetY = 0 } = config;\n\n return overlay\n .position()\n .flexibleConnectedTo(elementRef)\n .withLockedPosition(true)\n .withPositions([\n {\n originX,\n originY,\n overlayX,\n overlayY,\n offsetY\n },\n {\n originX: origin2ndX,\n originY,\n overlayX: origin2ndX,\n overlayY,\n offsetY\n },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin3rdX,\n originY,\n overlayX: origin3rdX,\n overlayY,\n offsetY\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }\n ])\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n}\n","import { type Maybe } from '@dereekb/util';\nimport { isBoolean } from 'class-validator';\nimport { Observable, of, map } from 'rxjs';\n\nexport enum CompactMode {\n FULL = 'full',\n COMPACT = 'compact'\n}\n\nexport interface CompactModeOptions<T> {\n full?: T;\n compact?: T;\n}\n\nexport interface CompactModeDefaultOptions<T> extends CompactModeOptions<T> {\n defaultMode?: Maybe<CompactMode>;\n}\n\nexport type CompactModeOption = CompactMode | boolean;\n\nexport function compactModeFromInput(input: CompactMode | boolean): CompactMode {\n if (isBoolean(input)) {\n input = input ? CompactMode.COMPACT : CompactMode.FULL;\n }\n\n return input === CompactMode.COMPACT ? CompactMode.COMPACT : CompactMode.FULL;\n}\n\nexport function mapCompactModeObs<T>(mode$: Maybe<Observable<CompactMode>>, config: CompactModeDefaultOptions<T>): Observable<Maybe<T>> {\n const modeObs = mode$ ?? of(config.defaultMode ?? CompactMode.FULL);\n return modeObs.pipe(\n map((inputMode) => {\n const isCompact = (inputMode ?? config.defaultMode) === CompactMode.COMPACT;\n\n if (isCompact) {\n return config.compact;\n } else {\n return config.full;\n }\n })\n );\n}\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { map } from 'rxjs';\nimport { CompactMode, compactModeFromInput } from './compact';\n\nexport interface CompactContextState {\n mode: CompactMode;\n}\n\n@Injectable()\nexport class CompactContextStore extends ComponentStore<CompactContextState> {\n constructor() {\n super({ mode: CompactMode.FULL });\n }\n\n // MARK: Accessors\n readonly mode$ = this.state$.pipe(map((x) => x.mode));\n\n // MARK: State Changes\n readonly setMode = this.updater((state, mode: CompactMode | boolean) => ({ mode: compactModeFromInput(mode) }));\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { CompactMode } from './compact';\nimport { CompactContextStore } from './compact.store';\n\n/**\n * CompactContextStore provider.\n */\n@Directive({\n selector: '[dbxCompact]',\n providers: [CompactContextStore],\n exportAs: 'compact'\n})\nexport class DbxCompactDirective {\n readonly compactContextStore = inject(CompactContextStore);\n readonly mode$ = this.compactContextStore.mode$;\n\n @Input('dbxCompact')\n set mode(mode: CompactMode | boolean) {\n this.compactContextStore.setMode(mode);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCompactDirective } from './compact.directive';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxCompactDirective],\n exports: [DbxCompactDirective]\n})\nexport class DbxCompactLayoutModule {}\n","import { type Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopoverKey = string;\n\nexport abstract class DbxPopoverController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopoverKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popover to close.\n */\n abstract close(): void;\n /**\n * Closes the popover and returns the input value.\n */\n abstract return(value?: O): void;\n}\n","import { Input, OnDestroy, Output, EventEmitter, HostListener, Directive } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Directive({\n selector: '[dbxWindowKeyDownListener]'\n})\nexport class DbxWindowKeyDownListenerDirective implements OnDestroy {\n private _keysFilter?: Maybe<Set<string>>;\n\n @Input()\n appWindowKeyDownEnabled = true;\n\n @Output('dbxWindowKeyDownListener')\n keyPressed = new EventEmitter<KeyboardEvent>();\n\n @Input()\n set appWindowKeyDownFilter(filterOnKeys: string[]) {\n let filter: Maybe<Set<string>>;\n\n if (filterOnKeys) {\n filter = new Set(filterOnKeys);\n }\n\n this._keysFilter = filter;\n }\n\n ngOnDestroy(): void {\n this.keyPressed.complete();\n }\n\n @HostListener('window:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (this.appWindowKeyDownEnabled !== false) {\n if (!this._keysFilter || this._keysFilter.has(event.key)) {\n this.keyPressed.emit(event);\n }\n }\n }\n}\n","import { DbxPopoverKey, DbxPopoverController } from './popover';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverCoordinatorService implements OnDestroy {\n private _popovers = new BehaviorSubject<Map<DbxPopoverKey, DbxPopoverController>>(new Map());\n readonly popovers$ = this._popovers.asObservable();\n\n ngOnDestroy(): void {\n this._popovers.complete();\n }\n\n get popovers(): Map<DbxPopoverKey, DbxPopoverController> {\n return this._popovers.value;\n }\n\n public addPopover(popover: DbxPopoverController): void {\n const key = popover.key;\n\n if (key) {\n this.removePopover(key);\n this._popovers.value.set(key, popover);\n this._popovers.next(this.popovers);\n }\n }\n\n public removePopover(key: DbxPopoverKey, popover?: DbxPopoverController): void {\n if (key) {\n const existing = this.popovers.get(key);\n\n // Remove if there is one existing, and if popover is provided it is the same popover.\n if (existing && (!popover || popover === existing)) {\n existing.close();\n this._popovers.value.delete(key);\n this._popovers.next(this.popovers);\n }\n }\n }\n}\n","import { DbxPopoverController } from './popover';\nimport { Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { DbxPopoverCoordinatorService } from './popover.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Component({\n selector: 'dbx-popover-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopoverCoordinatorComponent implements OnInit, OnDestroy {\n private readonly _service = inject(DbxPopoverCoordinatorService);\n private readonly _popover = inject(DbxPopoverController);\n\n readonly isPopoverForKey$ = this._service.popovers$.pipe(\n map((x) => x.get(this._popover.key) === this._popover),\n shareReplay(1)\n );\n readonly show$ = this.isPopoverForKey$.pipe(delay(0));\n\n constructor() {}\n\n ngOnInit(): void {\n this._service.addPopover(this._popover);\n }\n\n ngOnDestroy(): void {\n this._service.removePopover(this._popover.key, this._popover);\n }\n}\n","import { Component, Type, OnInit, OnDestroy, ElementRef, inject } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgPopoverCloseType, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopoverPositionStrategy } from './popover.position.strategy';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { LockSet } from '@dereekb/rxjs';\nimport { CompactContextStore, CompactMode } from '../../layout/compact';\nimport { asPromise, Maybe, PromiseOrValue, SpaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxPopoverController, DbxPopoverKey } from './popover';\n\nexport abstract class DbxPopoverComponentController<O, I> extends DbxPopoverController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopoverComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popover should exist at a time given a certain key.\n */\n key: DbxPopoverKey;\n /**\n * Origin element to position on.\n */\n origin: ElementRef;\n /**\n * Whether or not to close if a transition occurs.\n */\n closeOnTransition?: boolean;\n /**\n * Whether or not to dismiss when the escape button is pressed.\n *\n * False by default.\n */\n closeOnEscape?: boolean;\n /**\n * Component to inject into the popover.\n */\n componentClass: Type<T>;\n /**\n * Panel classes to add to the popover.\n */\n panelClass?: Maybe<SpaceSeparatedCssClasses>;\n /**\n * Data available to the popover.\n */\n data?: Maybe<I>;\n init?: (component: T, controller: DbxPopoverController<O, I>) => void;\n}\n\nexport interface FullDbxPopoverComponentConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T> {\n configuration: NgOverlayContainerConfiguration;\n}\n\n/**\n * Popover component.\n */\n@Component({\n template: `\n <dbx-popover-coordinator (dbxWindowKeyDownListener)=\"handleKeydown()\" [appWindowKeyDownFilter]=\"triggerCloseKeys\">\n <div dbxStyle class=\"dbx-popover-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popover-coordinator>\n `,\n providers: [\n {\n provide: DbxPopoverController,\n useExisting: DbxPopoverComponent\n },\n {\n provide: CompactContextStore\n }\n ],\n host: {\n '[class]': 'config.panelClass'\n }\n})\nexport class DbxPopoverComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopoverController<O, I>, OnInit, OnDestroy {\n private readonly popoverRef = inject(NgPopoverRef<FullDbxPopoverComponentConfig<O, I, T>, O>);\n private readonly compactContextState = inject(CompactContextStore);\n\n readonly lockSet = new LockSet();\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<FullDbxPopoverComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private _startedClosing = false;\n private readonly _closing = new Subject<void>();\n\n private _triggerCloseKeys: string[] = [];\n\n readonly isClosing$ = this._closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n getClosingValueFn?: (value: Maybe<I>, closeType: NgPopoverCloseType) => PromiseOrValue<O | undefined>;\n\n constructor() {\n super();\n\n // Override Close to properly signal to listeners when a close is occuring.\n const originalClose = this.popoverRef.close;\n this.popoverRef.close = (x) => {\n if (!this._startedClosing) {\n this.lockSet.lockForSeconds(1);\n this._startedClosing = true;\n this.close();\n originalClose.call(this.popoverRef, x);\n }\n };\n\n // Also intercept the _close function to capture backdropClose, etc.\n const original_close = (this.popoverRef as any)._close;\n (this.popoverRef as any)._close = (closeType: NgPopoverCloseType, inputValue: O | undefined) => {\n const closeWithValue = (value?: O | undefined) => {\n original_close.call(this.popoverRef, closeType, value);\n };\n\n if (closeType === 'close' || inputValue != null) {\n closeWithValue(inputValue);\n } else {\n // expected to be a backdrop close. Get the closing value then close.\n this._useClosingValue(closeType, (x) => closeWithValue(x));\n }\n };\n\n // eslint-disable-next-line\n const overlay = (this.popoverRef as any)._overlay as Overlay; // overlay is not publically accessible\n const elementRef = this.config.origin;\n const configuration = this.config.configuration;\n\n this.compactContextState.setMode(CompactMode.COMPACT);\n const position = PopoverPositionStrategy.make(overlay, elementRef, configuration);\n this.popoverRef.overlay.updatePositionStrategy(position);\n }\n\n get config(): FullDbxPopoverComponentConfig<O, I, T> {\n return this.popoverRef.data;\n }\n\n get panelClass(): Maybe<SpaceSeparatedCssClasses> {\n return this.config.panelClass;\n }\n\n get key(): DbxPopoverKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n get triggerCloseKeys(): string[] {\n return this._triggerCloseKeys;\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n if (this.config.closeOnEscape) {\n this._triggerCloseKeys = ['Escape'];\n }\n }\n\n override ngOnDestroy(): void {\n this.lockSet.destroyOnNextUnlock(() => {\n super.ngOnDestroy();\n this._closing.complete();\n });\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popover Controls\n public close(): void {\n if (!this._startedClosing && this.getClosingValueFn != null) {\n this._useClosingValue('close', (x) => this.return(x));\n } else {\n this.return();\n }\n }\n\n public return(value?: O | undefined): void {\n this._closing.next();\n this.popoverRef.close(value);\n }\n\n private _useClosingValue(closeType: NgPopoverCloseType, useValue: (value?: O | undefined) => void) {\n if (this.getClosingValueFn != null) {\n asPromise(this.getClosingValueFn(this.data, closeType)).then(\n (x) => {\n useValue(x);\n },\n () => {\n useValue();\n }\n );\n } else {\n useValue();\n }\n }\n\n // Keypresses\n handleKeydown() {\n this.close();\n }\n}\n","import { DbxPopoverComponent, DbxPopoverComponentConfig, FullDbxPopoverComponentConfig } from './popover.component';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport type DbxPopoverConfigSizing = Pick<NgOverlayContainerConfiguration, 'originX' | 'originY' | 'height' | 'width' | 'minHeight' | 'minWidth' | 'isResizable'>;\n\nexport interface DbxPopoverConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T>, DbxPopoverConfigSizing {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popover.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverService {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _overlayContainerService: NgOverlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n\n open<O, I, T>(config: DbxPopoverConfig<O, I, T>): NgPopoverRef<DbxPopoverComponentConfig<O, I, T>, O> {\n const service = config.injector ? new NgOverlayContainerService(this._overlay, config.injector) : this._overlayContainerService;\n\n const configuration: NgOverlayContainerConfiguration = {\n panelClass: 'dbx-popover-container',\n originX: config.originX ?? 'start',\n originY: config.originY ?? 'top',\n // TODO: Resize height/width.\n minHeight: config.minHeight,\n minWidth: config.minWidth,\n height: config.height ?? '500px',\n width: config.width ?? '400px',\n hasBackdrop: true,\n isDraggable: false,\n isResizable: config.isResizable ?? false,\n disableBackdropClose: false\n };\n\n return service.open<FullDbxPopoverComponentConfig<O, I, T>, O>({\n content: DbxPopoverComponent,\n data: {\n ...config,\n configuration\n },\n configuration\n });\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\n\n/**\n * Abstract popover directive.\n */\n@Directive()\nexport abstract class AbstractPopoverDirective<O = unknown, I = unknown, T = unknown> {\n readonly popover = inject(DbxPopoverComponent<O, I, T>);\n\n close(): void {\n this.popover.close();\n }\n\n returnAndClose(value: O): void {\n this.popover.return(value);\n }\n}\n","import { BehaviorSubject, throttleTime } from 'rxjs';\nimport { OnDestroy, Component } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Popover content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-content',\n template: `\n <div class=\"d-block dbx-popover-content\" (resized)=\"onResized($event)\" [style.--popoverh]=\"height$ | async\">\n <ng-content select=\"[controls]\"></ng-content>\n <div class=\"dbx-popover-content-container\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxPopoverContentComponent implements OnDestroy {\n private readonly _height = new BehaviorSubject<string>('');\n readonly height$ = this._height.asObservable().pipe(throttleTime(100, undefined, { leading: true, trailing: true }));\n\n hasControls = false;\n hasHeader = false;\n\n onResized(event: ResizedEvent): void {\n this._height.next(`${event.newRect.height}px`);\n }\n\n ngOnDestroy(): void {\n this._height.complete();\n }\n}\n","import { Component, Input, OnInit, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Component used to format a header for a popover.\n */\n@Component({\n selector: 'dbx-popover-header',\n template: `\n <div class=\"dbx-popover-header\">\n <div class=\"dbx-popover-header-content\">\n <h3>\n <mat-icon *ngIf=\"icon\" class=\"dbx-icon-spacer\">{{ icon }}</mat-icon>\n {{ header }}\n </h3>\n <span class=\"spacer\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n <mat-divider></mat-divider>\n `\n})\nexport class DbxPopoverHeaderComponent implements OnInit {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasHeader = true;\n }\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover scrollable content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-scroll-content',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-popover-scroll-content',\n '[class]': 'sizingClasses'\n }\n})\nexport class DbxPopoverScrollContentComponent {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent);\n\n get sizingClasses(): string {\n const hasHeader = this.hasHeader;\n const hasControls = this.hasControls;\n\n const classes: string[] = [];\n\n if (hasHeader && hasControls) {\n classes.push('popover-has-controls-and-header');\n } else if (hasHeader) {\n classes.push('popover-has-header');\n } else if (hasControls) {\n classes.push('popover-has-controls');\n }\n\n return classes.join(' ');\n }\n\n get hasHeader(): boolean {\n return this.appPopoverContentComponent.hasHeader;\n }\n\n get hasControls(): boolean {\n return this.appPopoverContentComponent.hasControls;\n }\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ElementRef, Type, OnInit, OnDestroy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Observable, BehaviorSubject, map, skip, first, defaultIfEmpty } from 'rxjs';\nimport { AbstractPopoverDirective } from '../popover/abstract.popover.directive';\nimport { DbxPopoverConfigSizing, DbxPopoverService } from '../popover/popover.service';\nimport { FilterSource, FilterSourceConnector, PresetFilterSource, filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxPopoverKey } from '../popover/popover';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxFilterComponentParams<F extends object = object, P extends string = string, CF extends FilterSource<F> = FilterSource<F>, PF extends PresetFilterSource<F, P> = PresetFilterSource<F, P>> extends DbxPopoverConfigSizing {\n /**\n * Custom icon\n *\n * Defaults to \"filter_list\"\n */\n icon?: string;\n /**\n * Custom header text\n *\n * Defaults to \"Filter\"\n */\n header?: string;\n /**\n * Custom customize button text. If not defined, defaults to \"Customize\"\n */\n customizeButtonText?: string;\n /**\n * Custom close button text. If not defined, defaults to \"Close\"\n */\n closeButtonText?: string;\n /**\n * Whether or not to show the close button. Defaults to the value of !closeOnFilterChange\n */\n showCloseButton?: Maybe<boolean>;\n /**\n * Custom filter component to initialize.\n */\n customFilterComponentClass?: Type<CF>;\n /**\n * Preset filter component to initialize.\n */\n presetFilterComponentClass?: Type<PF>;\n /**\n * DbxInjectionComponentConfig for the custom filter component to initialize.\n */\n customFilterComponentConfig?: DbxInjectionComponentConfig<CF>;\n /**\n * DbxInjectionComponentConfig for the preset filter component to initialize.\n */\n presetFilterComponentConfig?: DbxInjectionComponentConfig<PF>;\n /**\n * The connector to use.\n */\n connector: FilterSourceConnector<F>;\n /**\n * (Optional) Inital filter to pass to the filter source.\n */\n initialFilterObs?: Observable<F>;\n /**\n * (Optional) Whether or not to close the component if the filter changes.\n *\n * True by default.\n */\n closeOnFilterChange?: boolean;\n}\n\nexport interface DbxFilterPopoverComponentParams<F extends object = object> extends DbxFilterComponentParams<F> {\n /**\n * Origin to add the popover to.\n */\n origin: ElementRef;\n}\n\nexport const DEFAULT_FILTER_POPOVER_KEY = 'filter';\n\n@Component({\n templateUrl: './filter.popover.component.html'\n})\nexport class DbxFilterPopoverComponent<F extends object> extends AbstractPopoverDirective<unknown, DbxFilterComponentParams<F>> implements OnInit, OnDestroy {\n private _closeOnChangeSub = new SubscriptionObject();\n\n readonly showCloseButton = this.config.showCloseButton ?? !(this.config.closeOnFilterChange ?? true);\n readonly closeButtonText = this.config.closeButtonText ?? 'Close';\n readonly customizeButtonText = this.config.customizeButtonText ?? 'Customize';\n\n /**\n * Whether or not to display buttons to toggle between custom and preset filters.\n */\n readonly showSwitchButtons = Boolean(this.config.customFilterComponentClass && this.config.presetFilterComponentClass);\n\n private _showPreset = new BehaviorSubject<boolean>(false);\n readonly showPreset$ = this._showPreset.asObservable();\n\n readonly config$: Observable<DbxInjectionComponentConfig<FilterSource<F>>> = this._showPreset.pipe(\n map((showPreset) => {\n const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;\n let componentClass: Type<FilterSource<F>>;\n let baseConfig: Maybe<DbxInjectionComponentConfig<FilterSource<F>>>;\n\n if (showPreset) {\n componentClass = (presetFilterComponentConfig?.componentClass ?? presetFilterComponentClass) as Type<FilterSource<F>>;\n baseConfig = presetFilterComponentConfig;\n } else {\n componentClass = (customFilterComponentConfig?.componentClass ?? customFilterComponentClass) as Type<FilterSource<F>>;\n baseConfig = customFilterComponentConfig;\n }\n\n const config: DbxInjectionComponentConfig<FilterSource<F>> = {\n ...baseConfig,\n componentClass,\n init: (filterSource) => {\n connector.connectWithSource(filterSource);\n\n if (initialFilterObs && filterSource.initWithFilter) {\n filterSource.initWithFilter(initialFilterObs);\n }\n\n if (closeOnFilterChange !== false) {\n this._closeOnChangeSub.subscription = filterSource.filter$.pipe(skip(1), filterMaybe(), first(), defaultIfEmpty(undefined)).subscribe(() => {\n this.close();\n });\n }\n\n // run the next init if provided\n baseConfig?.init?.(filterSource);\n }\n };\n\n return config;\n })\n );\n\n static openPopover<F extends object>(popupService: DbxPopoverService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig, connector, initialFilterObs, closeOnFilterChange, customizeButtonText, showCloseButton, closeButtonText }: DbxFilterPopoverComponentParams<F>, popoverKey?: DbxPopoverKey): NgPopoverRef {\n return popupService.open({\n key: popoverKey ?? DEFAULT_FILTER_POPOVER_KEY,\n origin,\n componentClass: DbxFilterPopoverComponent,\n width,\n height,\n isResizable,\n data: {\n header,\n icon,\n customizeButtonText,\n showCloseButton,\n closeButtonText,\n customFilterComponentClass,\n presetFilterComponentClass,\n customFilterComponentConfig,\n presetFilterComponentConfig,\n connector,\n initialFilterObs,\n closeOnFilterChange\n } as DbxFilterComponentParams<F>\n });\n }\n\n get config(): DbxFilterComponentParams<F> {\n return this.popover.data as DbxFilterComponentParams<F>;\n }\n\n get icon() {\n return this.config.icon ?? 'filter_list';\n }\n\n get header() {\n return this.config.header ?? 'Filter';\n }\n\n ngOnInit(): void {\n let showPreset = false;\n const { customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;\n\n if (customFilterComponentClass || customFilterComponentConfig) {\n showPreset = false;\n }\n\n if (presetFilterComponentClass || presetFilterComponentConfig) {\n showPreset = true;\n }\n\n if (!(customFilterComponentClass || customFilterComponentConfig) && !(presetFilterComponentClass || presetFilterComponentConfig)) {\n throw new Error('Requires a preset or custom class provided for DbxFilterPopover.');\n }\n\n this._showPreset.next(showPreset);\n }\n\n ngOnDestroy(): void {\n this._closeOnChangeSub.destroy();\n this._showPreset.complete();\n }\n\n showPresets() {\n this._showPreset.next(true);\n }\n\n showCustom() {\n this._showPreset.next(false);\n }\n}\n","<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n <ng-container *ngIf=\"showCloseButton\">\n <dbx-button-spacer *ngIf=\"showSwitchButtons\"></dbx-button-spacer>\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n","import { OnDestroy, Directive, EventEmitter, Output, ElementRef } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { NgPopoverCloseEvent, NgPopoverRef } from 'ng-overlay-container';\n\n/**\n * Abstract class for showing and handling a popover ref.\n */\n@Directive()\nexport abstract class AbstractPopoverRefDirective<T = unknown, R = unknown> extends AbstractSubscriptionDirective {\n private _popoverRef?: NgPopoverRef<T, R>;\n\n showPopover(origin?: ElementRef): void {\n if (!this._popoverRef) {\n this._showPopoverRef(origin);\n }\n }\n\n private _showPopoverRef(origin?: ElementRef): void {\n this._popoverRef = this._makePopoverRef(origin);\n this._afterOpened(this._popoverRef);\n this.sub = this._popoverRef.afterClosed$.subscribe((x) => {\n this._afterClosed(x);\n this._popoverRef = undefined;\n });\n }\n\n protected abstract _makePopoverRef(origin?: ElementRef): NgPopoverRef<T, R>;\n\n protected _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n // Do nothing. Override in parent type\n }\n\n protected _afterClosed(value: NgPopoverCloseEvent<R>): void {\n // Do nothing. Override in parent type\n }\n}\n\n/**\n * {@link AbstractPopoverRefDirective} extension that includes open/closed events.\n */\n@Directive()\nexport abstract class AbstractPopoverRefWithEventsDirective<T = unknown, R = unknown> extends AbstractPopoverRefDirective<T, R> implements OnDestroy {\n @Output()\n readonly popoverOpened = new EventEmitter<NgPopoverRef<T, R>>();\n\n @Output()\n readonly popoverClosed = new EventEmitter<NgPopoverCloseEvent<R>>();\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.popoverClosed.complete();\n this.popoverOpened.complete();\n }\n\n protected override _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n this.popoverOpened.next(popoverRef);\n }\n\n protected override _afterClosed(event: NgPopoverCloseEvent<R>): void {\n this.popoverClosed.next(event);\n }\n}\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { DbxFilterPopoverComponent, DbxFilterComponentParams } from './filter.popover.component';\nimport { AbstractPopoverRefDirective } from '../popover/abstract.popover.ref.directive';\nimport { FilterSource, PresetFilterSource } from '@dereekb/rxjs';\n\nexport type DbxFilterButtonConfig<F extends object> = DbxFilterComponentParams<F>;\nexport type DbxFilterButtonConfigWithCustomFilter<F extends object, CF extends FilterSource<F> = FilterSource<F>> = Omit<DbxFilterComponentParams<F, any, CF, any>, 'presetFilter' | 'presetFilterComponentConfig'>;\nexport type DbxFilterButtonConfigWithPresetFilter<F extends object, PF extends PresetFilterSource<F, any> = PresetFilterSource<F, any>> = Omit<DbxFilterComponentParams<F, any, any, PF>, 'customFilter' | 'customFilterComponentConfig'>;\n\n@Directive()\nexport abstract class AbstractFilterPopoverButtonDirective<F extends object> extends AbstractPopoverRefDirective<unknown, unknown> {\n private readonly popupService = inject(DbxPopoverService);\n\n @Input()\n config?: DbxFilterComponentParams<F, any, any, any>;\n\n protected override _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown> {\n const config = this.config;\n\n if (!config) {\n throw new Error('Missing filterButtonConfig.');\n } else if (!origin) {\n throw new Error('Missing origin.');\n }\n\n return DbxFilterPopoverComponent.openPopover(this.popupService, {\n origin,\n ...config\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { AbstractFilterPopoverButtonDirective } from './filter.popover.button.directive';\nimport { DbxButtonDisplayContent } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\nconst DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT: DbxButtonDisplayContent = {\n icon: 'filter_list'\n};\n\n@Component({\n selector: 'dbx-filter-popover-button',\n template: `\n <dbx-icon-button #button (buttonClick)=\"showFilterPopover()\" [buttonDisplay]=\"buttonDisplay\" [disabled]=\"disabled\"></dbx-icon-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxFilterPopoverButtonComponent<F extends object = object> extends AbstractFilterPopoverButtonDirective<F> {\n private _buttonDisplay: DbxButtonDisplayContent = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n\n @Input()\n disabled?: Maybe<boolean>;\n\n @Input()\n get buttonDisplay(): DbxButtonDisplayContent {\n return this._buttonDisplay;\n }\n\n set buttonDisplay(buttonDisplay: Maybe<DbxButtonDisplayContent>) {\n if (!buttonDisplay) {\n buttonDisplay = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n }\n\n this._buttonDisplay = buttonDisplay;\n }\n\n @ViewChild('button', { read: ElementRef, static: false })\n buttonElement!: ElementRef;\n\n showFilterPopover(): void {\n const origin = this.buttonElement.nativeElement;\n this.showPopover(origin);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxWindowKeyDownListenerDirective } from './keydown.listener.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxWindowKeyDownListenerDirective],\n exports: [DbxWindowKeyDownListenerDirective]\n})\nexport class DbxKeypressModule {}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover Controls\n */\n@Directive({\n selector: 'dbx-popover-controls,[dbxPopoverControls],.dbx-popover-controls',\n host: {\n class: 'd-block dbx-popover-controls'\n }\n})\nexport class DbxPopoverControlsDirective {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasControls = true;\n }\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\n\n/**\n * Pre-configured close icon button for use within popover header.\n */\n@Component({\n selector: 'dbx-popover-close-button',\n template: `\n <button mat-icon-button (click)=\"dbxPopoverComponent.close()\"><mat-icon>close</mat-icon></button>\n `\n})\nexport class DbxPopoverCloseButtonComponent {\n readonly dbxPopoverComponent = inject(DbxPopoverComponent);\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { DbxPopoverControlsDirective } from './popover.controls.directive';\nimport { DbxPopoverHeaderComponent } from './popover.header.component';\nimport { DbxPopoverScrollContentComponent } from './popover.scroll.content.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxPopoverCloseButtonComponent } from './popover.close.component';\n\nconst declarations = [DbxPopoverContentComponent, DbxPopoverControlsDirective, DbxPopoverHeaderComponent, DbxPopoverCloseButtonComponent, DbxPopoverScrollContentComponent];\n\n/**\n * Contains all popover content components, allowing other sibling dbx-web modules to use the directives without referencing the full popover module.\n */\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule],\n declarations,\n exports: declarations\n})\nexport class DbxPopoverInteractionContentModule {}\n","import { first, Observable, map } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxActionPopoverFunctionParams {\n origin: ElementRef;\n}\n\nexport type DbxActionPopoverFunction<T = unknown> = (params: DbxActionPopoverFunctionParams) => NgPopoverRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a popover, then watches that popover for a value.\n */\n@Directive({\n exportAs: 'dbxActionPopover',\n selector: '[dbxActionPopover]'\n})\nexport class DbxActionPopoverDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n @Input('dbxActionPopover')\n fn?: DbxActionPopoverFunction<T>;\n\n @Input()\n set dbxActionPopoverModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor() {\n super();\n this.valueGetter = () => this._getDataFromPopover();\n }\n\n protected _getDataFromPopover(): Observable<Maybe<T>> {\n return this._makePopoverRef().afterClosed$.pipe(\n first(),\n map((x) => x.data)\n );\n }\n\n protected _makePopoverRef(): NgPopoverRef<unknown, Maybe<T>> {\n const origin = this.elementRef;\n\n if (!this.fn) {\n throw new Error('popoverAction has no function provided to it yet.');\n }\n\n return this.fn({\n origin\n });\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxPopoverComponent } from './popover.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxPopoverInteractionContentModule } from './popover.content.module';\nimport { DbxActionPopoverDirective } from './popover.action.directive';\n\nconst declarations = [DbxPopoverComponent, DbxPopoverCoordinatorComponent, DbxActionPopoverDirective];\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule, DbxPopoverInteractionContentModule],\n declarations,\n exports: [...declarations, DbxPopoverInteractionContentModule]\n})\nexport class DbxPopoverInteractionModule {}\n","import { Component, Input, inject } from '@angular/core';\nimport { AbstractDbxActionHandlerDirective, FilterSourceDirective, provideActionStoreSource } from '@dereekb/dbx-core';\nimport { of } from 'rxjs';\n\n/**\n * Action component used to simplify creating a filter form.\n *\n * Provides a DbxAction and configures the action to set the filter on a FilterSourceDirective when triggered.\n */\n@Component({\n selector: 'dbx-filter-wrapper',\n templateUrl: './filter.wrapper.component.html',\n providers: [provideActionStoreSource(null)]\n})\nexport class DbxFilterWrapperComponent<F = unknown> extends AbstractDbxActionHandlerDirective<F> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n @Input()\n showButtons = true;\n\n @Input()\n applyRaised = true;\n\n @Input()\n applyIcon = 'filter_list';\n\n @Input()\n applyText = 'Filter';\n\n constructor() {\n super();\n\n // configure handler function\n this._dbxActionHandlerInstance.handlerFunction = (filter: F) => {\n this.filterSourceDirective.setFilter(filter);\n return of(true);\n };\n }\n\n applyFilter(): void {\n this.source.setIsModified(true); // Force setting modified.\n this.source.trigger();\n }\n\n resetFilter(): void {\n this.filterSourceDirective.resetFilter();\n }\n}\n","<div class=\"dbx-filter-wrapper\">\n <div class=\"dbx-filter-wrapper-content\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"showButtons\" fxLayout=\"row\">\n <dbx-button dbxActionButton [raised]=\"applyRaised\" [text]=\"applyText\" [icon]=\"applyIcon\"></dbx-button>\n <div class=\"spacer\"></div>\n <button mat-icon-button (click)=\"resetFilter()\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith } from 'rxjs';\nimport { Directive, EventEmitter, Input, OnDestroy, Output, inject } from '@angular/core';\nimport { ClickableFilterPreset, ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset, ClickableFilterPresetOrPartialPreset, isClickableFilterPreset } from '@dereekb/dbx-core';\nimport { getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { FilterWithPreset } from '@dereekb/rxjs';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Directive()\nexport abstract class AbstractDbxPresetFilterMenuDirective<F extends FilterWithPreset> implements OnDestroy {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n @Output()\n readonly presetSelected = new EventEmitter<ClickableFilterPresetOrPartialPreset<F>>();\n\n private _presets = new BehaviorSubject<ClickableFilterPresetOrPartialPreset<F>[]>([]);\n\n readonly selected$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n readonly presetsWithPresetStringOnly$: Observable<ClickableFilterPreset<F>[]> = this._presets.pipe(map((x) => x.filter((y) => Boolean((y as ClickableFilterPreset<F>).preset)) as ClickableFilterPreset<F>[]));\n\n readonly selectedPresetString$: Observable<Maybe<string>> = this.selected$.pipe(\n map((selectedFilter) => (selectedFilter ? selectedFilter.preset : undefined)),\n distinctUntilChanged()\n );\n\n readonly presetAnchorsPairs$: Observable<['preset' | 'partialPreset', ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink][]> = combineLatest([this._presets, this.selected$, this.selectedPresetString$]).pipe(\n map(([presets, currentFilterValue, selectedPresetString]) => {\n return presets.map((x) => {\n let selected: boolean;\n let type: 'preset' | 'partialPreset';\n\n if (isClickableFilterPreset(x)) {\n selected = x.preset === selectedPresetString;\n type = 'preset';\n } else {\n selected = x.isActive(currentFilterValue);\n type = 'partialPreset';\n }\n\n return [\n type,\n x,\n {\n ...x,\n selected,\n onClick: () => {\n this.selectPreset(x);\n }\n }\n ] as [typeof type, ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink];\n });\n }),\n shareReplay(1)\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = this.presetAnchorsPairs$.pipe(\n map((x) => x.map((x) => x[2])),\n shareReplay(1)\n );\n\n readonly firstSelectedAnchorPair$ = this.presetAnchorsPairs$.pipe(\n map((presets) => {\n const firstSelected = presets.find((x) => x[2].selected);\n return firstSelected ? firstSelected : undefined;\n }),\n shareReplay(1)\n );\n\n readonly selectedPreset$: Observable<Maybe<ClickableFilterPreset<F>>> = this.presetAnchorsPairs$.pipe(\n map((presets) => {\n const firstSelected = presets.filter((x) => x[0] === 'preset').find((x) => x[2].selected);\n return firstSelected ? (firstSelected[1] as ClickableFilterPreset<F>) : undefined;\n }),\n shareReplay(1)\n );\n\n @Input()\n get presets(): ClickableFilterPresetOrPartialPreset<F>[] {\n return this._presets.value;\n }\n\n set presets(presets: ClickableFilterPresetOrPartialPreset<F>[]) {\n this._presets.next(presets);\n }\n\n selectPreset(preset: ClickableFilterPresetOrPartialPreset<F>) {\n const presetString = (preset as ClickableFilterPreset<F>).preset;\n const presetValue = (preset as ClickableFilterPreset<F>).presetValue || (preset as ClickablePartialFilterPreset<F>).partialPresetValue;\n\n if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {\n // set and then reset if the value is null or empty\n this.filterSourceDirective.setFilter((presetValue ?? {}) as F);\n this.filterSourceDirective.resetFilter();\n } else {\n let filter = getValueFromGetter(presetValue) as F;\n\n if (filter.preset !== presetString) {\n filter = {\n ...filter,\n preset: presetString\n };\n }\n\n this.filterSourceDirective.setFilter(filter);\n }\n\n this.presetSelected.next(preset);\n }\n\n ngOnDestroy(): void {\n this._presets.complete();\n this.presetSelected.complete();\n }\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport abstract class DbxRouterWebProviderConfig {\n /**\n * Component used by the Anchor component to render a SegueRef link.\n */\n abstract anchorSegueRefComponent: DbxInjectionComponentConfig;\n}\n","import { skipFirstMaybe } from '@dereekb/rxjs';\nimport { Input, Component, TemplateRef, ViewChild, OnDestroy, HostListener, inject } from '@angular/core';\nimport { AbstractDbxAnchorDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { map, distinctUntilChanged, shareReplay, BehaviorSubject } from 'rxjs';\nimport { DbxRouterWebProviderConfig } from '../../provider/router.provider.config';\n\n/**\n * Component that renders an anchor element depending on the input.\n */\n@Component({\n selector: 'dbx-anchor, [dbx-anchor]',\n templateUrl: './anchor.component.html',\n host: {\n class: 'd-inline dbx-anchor',\n 'dbx-anchor-block': 'block'\n }\n})\nexport class DbxAnchorComponent extends AbstractDbxAnchorDirective implements OnDestroy {\n private readonly dbNgxRouterWebProviderConfig = inject(DbxRouterWebProviderConfig);\n\n private _templateRef = new BehaviorSubject<Maybe<TemplateRef<unknown>>>(undefined);\n readonly templateRef$ = this._templateRef.pipe(skipFirstMaybe(), shareReplay(1));\n\n @Input()\n public block?: boolean;\n\n @ViewChild('content', { read: TemplateRef })\n get templateRef(): Maybe<TemplateRef<unknown>> {\n return this._templateRef.value;\n }\n\n set templateRef(templateRef: Maybe<TemplateRef<unknown>>) {\n this._templateRef.next(templateRef);\n }\n\n readonly url$ = this.anchor$.pipe(\n map((x) => x?.url),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly target$ = this.anchor$.pipe(\n map((x) => x?.target),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectedClass$ = this.selected$.pipe(\n map((selected) => (selected ? 'dbx-anchor-selected' : '')),\n shareReplay(1)\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._templateRef.complete();\n }\n\n get srefAnchorConfig(): DbxInjectionComponentConfig {\n return this.dbNgxRouterWebProviderConfig.anchorSegueRefComponent;\n }\n\n clickAnchor(event?: Maybe<MouseEvent>): void {\n this.anchor?.onClick?.(event);\n }\n\n @HostListener('mouseenter')\n onMouseEnter(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('enter', event);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('leave', event);\n }\n}\n","<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"(selectedClass$ | async) || ''\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { OnDestroy, Input, Component } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged, Observable } from 'rxjs';\nimport { ClickableAnchorLinkTree, ExpandedClickableAnchorLinkTree, expandClickableAnchorLinkTrees } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxAnchorListExpandedAnchor extends ExpandedClickableAnchorLinkTree {\n classes: string;\n}\n\n/**\n * Component that displays a list of ClickableAnchorLink values within a MatNavList.\n */\n@Component({\n selector: 'dbx-anchor-list',\n templateUrl: './anchorlist.component.html'\n})\nexport class DbxAnchorListComponent implements OnDestroy {\n private _anchors = new BehaviorSubject<ClickableAnchorLinkTree[]>([]);\n\n readonly expandedAnchors$: Observable<DbxAnchorListExpandedAnchor[]> = this._anchors.pipe(\n distinctUntilChanged(),\n map((x) =>\n expandClickableAnchorLinkTrees(x).map((y) => {\n (y as DbxAnchorListExpandedAnchor).classes = `${y.depth > 0 ? `dbx-anchor-list-child` : 'dbx-anchor-list-root'} dbx-anchor-list-depth-${y.depth}`;\n return y as DbxAnchorListExpandedAnchor;\n })\n ),\n shareReplay(1)\n );\n\n @Input()\n set anchors(anchors: Maybe<ClickableAnchorLinkTree[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n ngOnDestroy(): void {\n this._anchors.complete();\n }\n}\n","<mat-nav-list class=\"dbx-anchor-list\">\n <ng-container *ngFor=\"let expanded of expandedAnchors$ | async; let last = last\">\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n <mat-icon matListItemIcon *ngIf=\"expanded.value.icon\">{{ expanded.value.icon }}</mat-icon>\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n <div matListItemLine class=\"dbx-small\" *ngIf=\"expanded.value.hint\">{{ expanded.value.hint }}</div>\n <dbx-injection *ngIf=\"expanded.value.content\" [config]=\"expanded.value.content\"></dbx-injection>\n </a>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </dbx-anchor>\n </ng-container>\n</mat-nav-list>\n","import { Component } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\n\n@Component({\n selector: 'dbx-preset-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPresetFilterListComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {}\n","import { Component, Input } from '@angular/core';\nimport { ClickableIconAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Component that displays an anchor and a mat-button.\n */\n@Component({\n selector: 'dbx-anchor-icon',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-icon-button>\n <mat-icon>{{ anchor?.icon }}</mat-icon>\n </button>\n </dbx-anchor>\n `\n})\nexport class DbxAnchorIconComponent {\n @Input()\n anchor: Maybe<ClickableIconAnchorLink>;\n}\n","import { Component, Input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Pre-styled text that can link to either a website or a ref using a dbx-anchor.\n */\n@Component({\n selector: 'dbx-link',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <ng-content></ng-content>\n </dbx-anchor>\n `,\n host: {\n class: 'd-inline dbx-link'\n }\n})\nexport class DbxAnchorLinkComponent {\n @Input()\n anchor?: Maybe<ClickableAnchor>;\n\n @Input()\n set ref(ref: Maybe<string>) {\n if (ref) {\n this.anchor = {\n ref\n };\n }\n }\n\n @Input()\n set href(href: Maybe<string>) {\n if (href) {\n this.anchor = {\n url: href\n };\n }\n }\n}\n","import { BehaviorSubject, combineLatest, map, Observable, of, shareReplay } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { ClickableAnchor, ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Component that displays an anchor and a span with the title.\n */\n@Component({\n selector: 'dbx-anchor-content',\n template: `\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon$ | async\">{{ icon$ | async }}</mat-icon>\n <span *ngIf=\"title$ | async\">{{ title$ | async }}</span>\n `,\n host: {\n class: 'dbx-anchor-content'\n }\n})\nexport class DbxAnchorContentComponent implements OnDestroy {\n readonly parent = inject(DbxAnchorComponent, { optional: true });\n\n private readonly _inputAnchor = new BehaviorSubject<Maybe<Partial<ClickableAnchorLink>>>(undefined);\n private readonly _parentAnchor: Observable<Maybe<ClickableAnchor | ClickableAnchorLink>> = this.parent ? this.parent.anchor$ : of(undefined);\n\n readonly anchor$: Observable<Maybe<Partial<ClickableAnchorLink>>> = combineLatest([this._inputAnchor, this._parentAnchor]).pipe(\n map(([input, parent]) => input ?? parent),\n shareReplay(1)\n );\n\n readonly icon$ = this.anchor$.pipe(map((x) => x?.icon));\n readonly title$ = this.anchor$.pipe(map((x) => x?.title));\n\n @Input()\n set anchor(anchor: Maybe<Partial<ClickableAnchorLink>>) {\n this._inputAnchor.next(anchor);\n }\n\n ngOnDestroy(): void {\n this._inputAnchor.complete();\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { NgModule } from '@angular/core';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxAnchorIconComponent } from './anchor.icon.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxAnchorLinkComponent } from './anchor.link.component';\nimport { DbxAnchorContentComponent } from './anchor.content.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxInjectionComponentModule],\n declarations: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent],\n exports: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent]\n})\nexport class DbxRouterAnchorModule {}\n","import { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxAnchorListComponent } from './anchorlist.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, DbxInjectionComponentModule, MatTabsModule, MatButtonModule, MatIconModule, MatListModule, MatMenuModule, DbxRouterAnchorModule],\n declarations: [DbxAnchorListComponent],\n exports: [DbxAnchorListComponent]\n})\nexport class DbxRouterAnchorListModule {}\n","import { ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { combineLatest, distinctUntilChanged, map, Observable, shareReplay, switchMap } from 'rxjs';\n\n/**\n * Configuration for the preset filter menus\n */\nexport interface DbxPresetFilterMenuConfig {\n /**\n * The text to display for the unknown selection.\n */\n unknownSelectionText?: string;\n /**\n * The icon to use for the filter, or false if no icon should be shown.\n */\n filterIcon?: Maybe<string> | false;\n /**\n * Whether or not to use the preset's icon if one is defined. If filterIcon is false, the icon will only appear when an item is selected.\n */\n usePresetIcon?: boolean;\n}\n\nexport function dbxPresetFilterMenuButtonTextObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'title'>>>>, defaultText = 'Filter') {\n return combineLatest([config$, selection$]).pipe(\n map(([config, preset]) => preset?.title ?? config.unknownSelectionText ?? defaultText),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\nexport function dbxPresetFilterMenuButtonIconObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'icon'>>>>, defaultIcon = 'arrow_drop_down') {\n return config$.pipe(\n switchMap((config) => {\n const filterIcon = config.filterIcon === false ? '' : config.filterIcon || defaultIcon;\n\n return selection$.pipe(\n map((preset) => {\n let icon: Maybe<string>;\n\n if (config.filterIcon === false) {\n if (config.usePresetIcon) {\n icon = preset?.icon;\n }\n } else if (config.usePresetIcon) {\n icon = preset?.icon ?? filterIcon;\n } else {\n icon = filterIcon;\n }\n\n return icon;\n })\n );\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Component({\n selector: 'dbx-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html'\n})\nexport class DbxPresetFilterMenuComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.selectedPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.selectedPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"buttonIcon$ | async\">{{ buttonIcon$ | async }}</mat-icon>\n <span>{{ buttonText$ | async }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n <dbx-anchor *ngFor=\"let anchor of presetAnchors$ | async\" [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"anchor.icon\">{{ anchor.icon }}</mat-icon>\n {{ anchor.title }}\n </button>\n </dbx-anchor>\n</mat-menu>\n","import { Directive, inject } from '@angular/core';\nimport { DbxInjectionTemplateConfig } from '@dereekb/dbx-core';\nimport { Observable, distinctUntilChanged, shareReplay, map } from 'rxjs';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Abstract implementation\n */\n@Directive()\nexport abstract class AbstractDbxSegueAnchorDirective {\n readonly parent = inject(DbxAnchorComponent);\n\n readonly target$ = this.parent.target$;\n\n readonly ref$ = this.parent.anchor$.pipe(\n map((x) => x?.ref),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refParams$ = this.parent.anchor$.pipe(\n map((x) => x?.refParams),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refOptions$ = this.parent.anchor$.pipe(\n map((x) => x?.refOptions),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly template$: Observable<DbxInjectionTemplateConfig> = this.parent.templateRef$.pipe(\n distinctUntilChanged(),\n map((templateRef) => ({\n templateRef\n })),\n shareReplay(1)\n );\n\n get anchor() {\n return this.parent.anchor;\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { ArrayOrValue, modifier, Modifier, ModifierFunction, ModifierMap } from '@dereekb/util';\nimport { Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\n\n// MARK: ValueListView\nexport abstract class DbxValueListItemModifier<T = unknown, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly modifiers$: Observable<ModifierMap<I>>;\n\n abstract addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n abstract removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n}\n\nexport function provideDbxValueListViewModifier<V extends DbxValueListItemModifier>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListItemModifier,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n\n// MARK: Utility\nexport type ListItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> = Modifier<I>;\n\nexport function listItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>>(key: string, modify: ModifierFunction<I>): ListItemModifier<T, I> {\n return modifier(key, modify);\n}\n","import { BehaviorSubject, map, Observable, shareReplay, combineLatest } from 'rxjs';\nimport { Directive, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { DbxValueListItem } from './list.view.value';\nimport { addModifiers, ArrayOrValue, combineMaps, Maybe, Modifier, ModifierMap, removeModifiers } from '@dereekb/util';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxValueListItemModifier, provideDbxValueListViewModifier } from './list.view.value.modifier';\n\n/**\n * DbxValueListViewModifier implementation\n */\n@Directive({\n selector: '[dbxListItemModifier]',\n providers: provideDbxValueListViewModifier(DbxValueListItemModifierDirective)\n})\nexport class DbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListItemModifier<T, I>, OnDestroy {\n private _modifiers = new BehaviorSubject<Maybe<ModifierMap<I>>>(undefined);\n private _inputModifiers = new BehaviorSubject<Maybe<ArrayOrValue<Modifier<I>>>>(undefined);\n\n readonly modifiers$ = combineLatest([this._modifiers, this._inputModifiers]).pipe(\n map(([modifiers, inputModifiers]) => {\n return combineMaps(modifiers, inputModifiers ? addModifiers(inputModifiers) : undefined);\n }),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._modifiers.complete();\n }\n\n // MARK: Modifiers\n addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(addModifiers(modifiers, this._modifiers.value));\n }\n\n removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(removeModifiers(modifiers, this._modifiers.value));\n }\n\n // MARK: Input Modifiers\n @Input('dbxListItemModifier')\n set inputModifiers(inputModifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._inputModifiers.next(inputModifiers);\n }\n}\n\n/**\n * Abstract directive used for managing modifyers for a DbxValueListView.\n */\n@Directive()\nexport abstract class AbstractDbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements OnInit, OnDestroy {\n readonly dbxValueListItemModifier = inject(DbxValueListItemModifier<T, I>);\n\n abstract readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<I>>>>;\n\n private _linkedModifiers: Maybe<ArrayOrValue<Modifier<I>>>;\n private _modifiersSub = new SubscriptionObject();\n\n ngOnInit(): void {\n this._modifiersSub.subscription = this.modifiers$.subscribe((modifiers) => {\n this._linkModifiers(modifiers);\n });\n }\n\n ngOnDestroy(): void {\n this._unlinkModifiers();\n }\n\n private _linkModifiers(modifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._unlinkModifiers();\n\n if (modifiers) {\n this.dbxValueListItemModifier.addModifiers(modifiers);\n this._linkedModifiers = modifiers;\n }\n }\n\n private _unlinkModifiers() {\n if (this._linkedModifiers) {\n this.dbxValueListItemModifier.removeModifiers(this._linkedModifiers);\n this._linkedModifiers = undefined;\n }\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { DbxValueListItem } from '../../../layout/list/list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from '../../../layout/list/list.view.value.modifier.directive';\n\nexport type AnchorForValueFunction<T> = (value: T, item: DbxValueListItem<T>) => Maybe<ClickableAnchor>;\n\nexport const DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY = 'router_anchor';\n\n@Directive({\n selector: '[dbxListItemAnchorModifier]'\n})\nexport class DbxListItemAnchorModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _anchorForItem = new BehaviorSubject<Maybe<AnchorForValueFunction<T>>>(undefined);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._anchorForItem.pipe(\n map((anchorForItem) => {\n let modifiers: Maybe<Modifier<DbxValueListItem<T>>>;\n\n if (anchorForItem) {\n modifiers = {\n key: DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.anchor = anchorForItem(x.itemValue, x);\n }\n };\n }\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._anchorForItem.complete();\n }\n\n @Input('dbxListItemAnchorModifier')\n set anchorForItem(anchorForItem: Maybe<AnchorForValueFunction<T>>) {\n this._anchorForItem.next(anchorForItem);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListItemAnchorModifierDirective } from './router.list.directive';\n\n@NgModule({\n imports: [],\n declarations: [DbxListItemAnchorModifierDirective],\n exports: [DbxListItemAnchorModifierDirective]\n})\nexport class DbxRouterListModule {}\n","/**\n * Set of screen media width types. Their pixel sizes correspond with the DbxScreenMediaService's configuration.\n *\n * Values:\n * - micro: Screen is considered mobile.\n * - small: Screen is consider small, but larger than mobile.\n * - tablet: Screen is considered tablet size.\n * - large: Screen is considered large than a tablet, but not full size.\n * - full: Screen is greater than large.\n */\nexport type ScreenMediaWidthType = 'micro' | 'small' | 'tablet' | 'large' | 'full';\n\nexport const SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP = {\n micro: 0,\n small: 1,\n tablet: 2,\n large: 3,\n full: 4\n};\n\n/**\n * Describes the current screen's vertical space.\n *\n * Values:\n * - tiny: Screen height is tiny, potentially the size of the navigation alone.\n * - normal: Screen has a normal height.\n */\nexport type ScreenMediaHeightType = 'tiny' | 'normal';\n\n/**\n * Compares the breakpoint with the current width and determines if it is \"active\" or not.\n *\n * The current is considered active if it is bigger or equal to the breakpoint.\n *\n * @param current\n * @param breakpoint\n */\nexport function screenMediaWidthTypeIsActive(current: ScreenMediaWidthType, breakpoint: ScreenMediaWidthType) {\n return compareScreenMediaWidthTypes(current, breakpoint, (a, b) => a >= b);\n}\n\nexport function compareScreenMediaWidthTypes(a: ScreenMediaWidthType, b: ScreenMediaWidthType, compare: (a: number, b: number) => boolean) {\n return compare(SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[a], SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[b]);\n}\n","import { Destroyable } from '@dereekb/util';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { ObservableOrValue, asObservable, initialize } from '@dereekb/rxjs';\nimport { Subject, map, shareReplay, distinctUntilChanged, throttleTime, Observable, combineLatest } from 'rxjs';\nimport { ScreenMediaWidthType, ScreenMediaHeightType, screenMediaWidthTypeIsActive } from './screen';\nimport { Inject, Injectable, inject } from '@angular/core';\n\n/**\n * ScreenMediaService configuration.\n */\nexport abstract class DbxScreenMediaServiceConfig {\n /**\n * The maximum size of a micro screen. Any size bigger than this is considered a small screen or larger.\n */\n abstract microScreenWidthMax: number;\n /**\n * The maximum size of a small screen. Any size bigger than this is considered a tablet screen or larger.\n */\n abstract smallScreenWidthMax: number;\n /**\n * The maximum size of a tablet screen. Any size bigger than this is considered a large screen or larger.\n */\n abstract tabletScreenWidthMax: number;\n /**\n * The maximum size of a large screen. Any size bigger than this is considered full.\n */\n abstract largeScreenWidthMax: number;\n /**\n * The maximum size of a tiny screen. Any size bigger than this is considered normal.\n */\n abstract tinyScreenHeightMax: number;\n}\n\nexport const DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG: DbxScreenMediaServiceConfig = {\n microScreenWidthMax: 360,\n smallScreenWidthMax: 520,\n tabletScreenWidthMax: 786,\n largeScreenWidthMax: 1280,\n tinyScreenHeightMax: 280\n};\n\n/**\n * Service that emits the current view type based on the configuration.\n */\n@Injectable()\nexport class DbxScreenMediaService implements Destroyable {\n private readonly _media = inject(MediaMatcher);\n\n private _microQuery: MediaQueryList;\n private _smallQuery: MediaQueryList;\n private _tabletQuery: MediaQueryList;\n private _largeQuery: MediaQueryList;\n\n private _tinyHeightQuery: MediaQueryList;\n\n private _updateWidth = new Subject<void>();\n private _updateHeight = new Subject<void>();\n\n readonly widthType$: Observable<ScreenMediaWidthType> = this._updateWidth.pipe(\n initialize(() => this._updateWidth.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readWidthType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly heightType$: Observable<ScreenMediaHeightType> = this._updateWidth.pipe(\n initialize(() => this._updateHeight.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readHeightType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(@Inject(DbxScreenMediaServiceConfig) config: DbxScreenMediaServiceConfig) {\n const { microScreenWidthMax, smallScreenWidthMax, tabletScreenWidthMax, largeScreenWidthMax } = config;\n\n this._microQuery = this._media.matchMedia(`screen and (max-width:${microScreenWidthMax}px)`);\n this._smallQuery = this._media.matchMedia(`screen and (max-width:${smallScreenWidthMax}px)`);\n this._tabletQuery = this._media.matchMedia(`screen and (max-width:${tabletScreenWidthMax}px)`);\n this._largeQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n this._tinyHeightQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n const widthHandler: (ev: MediaQueryListEvent) => void = () => this._updateWidth.next();\n const heightHandler: (ev: MediaQueryListEvent) => void = () => this._updateHeight.next();\n\n this._microQuery.onchange = widthHandler;\n this._smallQuery.onchange = widthHandler;\n this._tabletQuery.onchange = widthHandler;\n this._largeQuery.onchange = widthHandler;\n this._tinyHeightQuery.onchange = heightHandler;\n }\n\n destroy(): void {\n this._microQuery.onchange = null;\n this._smallQuery.onchange = null;\n this._tabletQuery.onchange = null;\n this._largeQuery.onchange = null;\n this._updateWidth.complete();\n this._updateHeight.complete();\n }\n\n /**\n * Returns an observable that detects whether or no the current width is greater or equal to the given breakpoint.\n *\n * @param inputBreakpoint\n * @returns\n */\n isBreakpointActive(inputBreakpoint: ObservableOrValue<ScreenMediaWidthType>): Observable<boolean> {\n return combineLatest([this.widthType$, asObservable(inputBreakpoint)]).pipe(\n map(([current, breakpoint]) => screenMediaWidthTypeIsActive(current, breakpoint)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n private _readWidthType(): ScreenMediaWidthType {\n let width: ScreenMediaWidthType;\n\n if (this._microQuery.matches) {\n width = 'micro';\n } else if (this._smallQuery.matches) {\n width = 'small';\n } else if (this._tabletQuery.matches) {\n width = 'tablet';\n } else if (this._largeQuery.matches) {\n width = 'large';\n } else {\n width = 'full';\n }\n\n return width;\n }\n\n private _readHeightType(): ScreenMediaHeightType {\n if (this._tinyHeightQuery) {\n return 'tiny';\n } else {\n return 'normal';\n }\n }\n}\n","import { Observable, BehaviorSubject, combineLatest, map, shareReplay, distinctUntilChanged, switchMap } from 'rxjs';\nimport { ScreenMediaWidthType } from './../../../screen/screen';\nimport { DbxScreenMediaService } from '../../../screen/screen.service';\nimport { applyBestFit, findNext, type Maybe } from '@dereekb/util';\nimport { Input, Component, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, TrackByFunction, inject } from '@angular/core';\nimport { ClickableAnchorLinkSegueRef, DbxRouterService, AbstractTransitionDirective, tapDetectChanges, DbxButtonDisplayContent } from '@dereekb/dbx-core';\nimport { HorizontalConnectionPos } from '@angular/cdk/overlay';\n\ninterface NavAnchorLink {\n selected: boolean;\n anchor: ClickableAnchorLinkSegueRef;\n}\n\nexport type NavBarContentAlign = 'center' | 'left' | 'right';\nexport type NavbarMode = 'bar' | 'button' | 'icon';\nexport type NavbarButtonMode = 'menu' | 'rotate';\n\n/**\n * Component that displays a navbar.\n */\n@Component({\n selector: 'dbx-navbar',\n templateUrl: './navbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-navbar'\n }\n})\nexport class DbxNavbarComponent extends AbstractTransitionDirective implements OnDestroy {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n private readonly _dbxRouterService = inject(DbxRouterService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n /**\n * Whether or not to show the dropwdown caret for a menu\n */\n @Input()\n showMenuCaret = false;\n\n @Input()\n navAlign: HorizontalConnectionPos = 'center';\n\n private _icon = new BehaviorSubject<Maybe<string>>(undefined);\n private _defaultIcon = new BehaviorSubject<Maybe<string>>('menu');\n private _defaultText = new BehaviorSubject<Maybe<string>>(undefined);\n\n private _inputMode = new BehaviorSubject<Maybe<NavbarMode>>(undefined);\n private _buttonMode = new BehaviorSubject<NavbarButtonMode>('menu');\n private _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('large');\n private _anchors = new BehaviorSubject<ClickableAnchorLinkSegueRef[]>([]);\n\n readonly isBreakpointActive$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint);\n\n readonly mode$ = combineLatest([this._inputMode, this.isBreakpointActive$]).pipe(\n map(([inputMode, breakpointActive]) => {\n return breakpointActive ? inputMode ?? 'bar' : 'button';\n }),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly anchors$: Observable<NavAnchorLink[]> = combineLatest([this._anchors, this.initAndUpdateOnTransitionSuccess$]).pipe(\n map(([anchors]) => {\n const results = anchors.map((anchor) => {\n const selected = this._dbxRouterService.isActive(anchor);\n\n return {\n selected,\n anchor\n };\n });\n\n return applyBestFit(\n results,\n (x) => x.selected,\n (a, b) => this._dbxRouterService.comparePrecision(a.anchor, b.anchor),\n (nonBestFit) => ({ ...nonBestFit, selected: false })\n );\n }),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly buttonMode$ = this._buttonMode.pipe(distinctUntilChanged(), shareReplay(1));\n\n readonly selectedAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => x.find((y) => y.selected)));\n readonly nextRotateAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => findNext(x, (y) => y.selected) || x[0]));\n\n readonly hasNoAnchors$ = this.anchors$.pipe(\n map((x) => x.length === 0),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonNavAnchor$ = this.buttonMode$.pipe(\n switchMap((x) => (x === 'menu' ? this.selectedAnchor$ : this.nextRotateAnchor$)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonDisplay$: Observable<DbxButtonDisplayContent> = combineLatest([this._defaultIcon, this._icon, this._defaultText, this.buttonNavAnchor$, this.mode$]).pipe(\n map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {\n let content: DbxButtonDisplayContent;\n\n if (icon) {\n content = { icon, text: defaultText };\n } else if (selectedAnchor) {\n content = { icon: selectedAnchor.anchor.icon ?? defaultIcon, text: selectedAnchor.anchor.title };\n } else {\n content = { icon: defaultIcon ?? 'menu', text: defaultText };\n }\n\n if (mode === 'icon') {\n return { icon: content.icon };\n } else {\n return content;\n }\n }),\n shareReplay(1)\n );\n\n readonly trackByFunction: TrackByFunction<NavAnchorLink> = (index: number, item: NavAnchorLink) => item.anchor;\n\n // TODO: potentially make the caret depending on the current button display.\n\n ngOnDestroy(): void {\n this._icon.complete();\n this._defaultIcon.complete();\n this._defaultText.complete();\n this._inputMode.complete();\n this._buttonMode.complete();\n this._breakpoint.complete();\n this._anchors.complete();\n }\n\n // MARK: Accessors\n @Input()\n public set icon(icon: Maybe<string>) {\n this._icon.next(icon);\n }\n\n @Input()\n public set defaultIcon(defaultIcon: Maybe<string>) {\n this._defaultIcon.next(defaultIcon);\n }\n\n @Input()\n public set defaultText(defaultText: Maybe<string>) {\n this._defaultText.next(defaultText);\n }\n\n @Input()\n public set anchors(anchors: Maybe<ClickableAnchorLinkSegueRef[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n @Input()\n public set buttonMode(mode: Maybe<NavbarButtonMode>) {\n this._buttonMode.next(mode ?? 'menu');\n }\n\n @Input()\n public set mode(mode: Maybe<NavbarMode>) {\n this._inputMode.next(mode);\n }\n\n @Input()\n public set breakpoint(breakpoint: ScreenMediaWidthType) {\n this._breakpoint.next(breakpoint);\n }\n}\n","<ng-container [ngSwitch]=\"mode$ | async\">\n <!-- Button -->\n <ng-container *ngSwitchDefault>\n <ng-container [ngSwitch]=\"buttonMode$ | async\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchors$ | async\">\n <mat-icon *ngIf=\"showMenuCaret\">arrow_drop_down</mat-icon>\n </dbx-icon-button>\n <mat-menu #menu>\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"x.anchor.icon\">{{ x.anchor.icon }}</mat-icon>\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n </mat-menu>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rotate'\">\n <dbx-anchor [anchor]=\"(nextRotateAnchor$ | async)?.anchor\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n </dbx-anchor>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- Bar -->\n <ng-container *ngSwitchCase=\"'bar'\">\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\" [attr.mat-align-tabs]=\"navAlign\">\n <dbx-anchor *ngFor=\"let x of anchors$ | async; trackBy: trackByFunction\" [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n </nav>\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n </ng-container>\n</ng-container>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxNavbarComponent } from './navbar.component';\nimport { DbxIconButtonModule } from '../../../button';\nimport { UIRouterModule } from '@uirouter/angular';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxIconButtonModule,\n MatTabsModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n UIRouterModule,\n DbxRouterAnchorModule\n ],\n declarations: [DbxNavbarComponent],\n exports: [DbxNavbarComponent]\n})\nexport class DbxRouterNavbarModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxScreenMediaService, DbxScreenMediaServiceConfig, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG } from './screen.service';\n\n@NgModule()\nexport class DbxScreenModule {\n static forRoot(config: DbxScreenMediaServiceConfig = DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG): ModuleWithProviders<DbxScreenModule> {\n return {\n ngModule: DbxScreenModule,\n providers: [\n {\n provide: DbxScreenMediaServiceConfig,\n useValue: config\n },\n DbxScreenMediaService\n ]\n };\n }\n}\n","export enum SideNavDisplayMode {\n NONE = 'none',\n MOBILE = 'mobile',\n ICON = 'icon',\n FULL = 'full'\n}\n","import { OnDestroy, OnInit, Component, Input, ViewChild, inject } from '@angular/core';\nimport { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';\nimport { DbxScreenMediaService } from '../../../screen';\nimport { AbstractTransitionWatcherDirective, ClickableAnchorLinkTree } from '@dereekb/dbx-core';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { distinctUntilChanged, map, shareReplay, Observable, first } from 'rxjs';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport interface DbxSidenavSidebarState {\n mode: SideNavDisplayMode;\n drawer: MatDrawerMode;\n open?: boolean;\n}\n\n/**\n * Navigation component that sits at the side of an app.\n */\n@Component({\n selector: 'dbx-sidenav',\n exportAs: 'sidenav',\n templateUrl: './sidenav.component.html'\n})\nexport class DbxSidenavComponent extends AbstractTransitionWatcherDirective implements OnInit, OnDestroy {\n private _screenMediaService = inject(DbxScreenMediaService);\n\n @Input()\n anchors?: Maybe<ClickableAnchorLinkTree[]>;\n\n @ViewChild(MatSidenav, { static: true })\n readonly sidenav!: MatSidenav;\n\n readonly mode$: Observable<SideNavDisplayMode> = this._screenMediaService.widthType$.pipe(\n distinctUntilChanged(),\n map((width) => {\n let mode!: SideNavDisplayMode;\n\n switch (width) {\n case 'micro':\n case 'small':\n mode = SideNavDisplayMode.MOBILE;\n break;\n case 'tablet':\n mode = SideNavDisplayMode.ICON;\n break;\n case 'large':\n case 'full':\n mode = SideNavDisplayMode.FULL;\n break;\n }\n\n return mode;\n }),\n shareReplay(1)\n );\n\n readonly disableBackdrop$: Observable<boolean> = this.mode$.pipe(\n map((x) => x !== SideNavDisplayMode.MOBILE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly sizeClass$: Observable<string> = this.mode$.pipe(\n map((mode) => `dbx-sidenav-${mode}`),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly state$: Observable<DbxSidenavSidebarState> = this.mode$.pipe(\n map((mode) => {\n let drawer!: MatDrawerMode;\n let open!: boolean;\n\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n drawer = 'over';\n open = false;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n drawer = 'side';\n open = true;\n break;\n }\n\n return {\n mode,\n drawer,\n open\n };\n }),\n shareReplay(1)\n );\n\n readonly drawer$: Observable<MatDrawerMode> = this.state$.pipe(\n map((x) => x.drawer),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n private _watcherSub = new SubscriptionObject();\n private _stateSub = new SubscriptionObject();\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n this._stateSub.subscription = this.state$.subscribe((state) => {\n if (state.open != null) {\n this._toggleNav(state.open, true);\n }\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._watcherSub.destroy();\n this._stateSub.destroy();\n }\n\n protected updateForSuccessfulTransition(): void {\n this.closeNav();\n }\n\n closeNav(): void {\n this.toggleNav(false);\n }\n\n toggleNav(open?: boolean): void {\n this._toggleNav(open);\n }\n\n private _toggleNav(toggleOpen = !this.sidenav.opened, forced = false): void {\n this.state$.pipe(first()).subscribe(({ mode }) => {\n this.ngZone.run(() => {\n let open: Maybe<boolean>;\n\n if (!forced) {\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n open = toggleOpen;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n // Do nothing. Should be always open.\n break;\n }\n } else {\n open = toggleOpen;\n }\n\n if (open != null) {\n if (open) {\n this.sidenav.open();\n } else {\n this.sidenav.close();\n }\n }\n });\n });\n }\n}\n","<mat-sidenav-container class=\"dbx-sidenav\" [ngClass]=\"(sizeClass$ | async) ?? ''\">\n <mat-sidenav class=\"dbx-sidenav-nav\" [disableClose]=\"disableBackdrop$ | async\" [mode]=\"(drawer$ | async)!\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-anchor-list class=\"dbx-sidenav-anchor-list\" [anchors]=\"anchors\"></dbx-anchor-list>\n <span class=\"spacer\"></span>\n <ng-content select=\"[bottom]\"></ng-content>\n <div class=\"dbx-sidenav-nav-end\"></div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n@Component({\n selector: 'dbx-pagebar',\n templateUrl: './pagebar.component.html'\n})\nexport class DbxPagebarComponent {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","<mat-toolbar class=\"dbx-pagebar\" [ngClass]=\"color ? 'dbx-bar-' + color : ''\">\n <ng-content select=\"[left]\"></ng-content>\n <span class=\"spacer\"></span>\n <ng-content select=\"[right]\"></ng-content>\n</mat-toolbar>\n","import { Component, Input, inject } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport const DEFAULT_DBX_SIDENAV_MENU_ICON = 'view_sidebar';\n\n/**\n * Button used to interface with a parent sidenav.\n */\n@Component({\n selector: 'dbx-sidenav-button',\n template: `\n <button class=\"dbx-sidenav-button\" mat-icon-button *ngIf=\"showMenuButton$ | async\" (click)=\"toggleNav()\" aria-label=\"open sidenav button\">\n <mat-icon>{{ sidenavMenuIcon }}</mat-icon>\n </button>\n `\n})\nexport class DbxSidenavButtonComponent {\n readonly parent = inject(DbxSidenavComponent);\n readonly mode$ = this.parent.mode$;\n readonly showMenuButton$ = this.mode$.pipe(map((x) => x === SideNavDisplayMode.MOBILE));\n\n private _sidenavMenuIcon: string = DEFAULT_DBX_SIDENAV_MENU_ICON;\n\n toggleNav() {\n this.parent.toggleNav();\n }\n\n @Input()\n get sidenavMenuIcon() {\n return this._sidenavMenuIcon;\n }\n\n set sidenavMenuIcon(sidenavMenuIcon: Maybe<string>) {\n this._sidenavMenuIcon = sidenavMenuIcon || DEFAULT_DBX_SIDENAV_MENU_ICON;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxPagebarComponent } from '../../../layout/bar/pagebar.component';\n\n/**\n * Pre-configured pagebar used with DbxSidenavComponent.\n */\n@Component({\n selector: 'dbx-sidenav-pagebar',\n template: `\n <dbx-pagebar class=\"dbx-sidenav-pagebar\" [color]=\"color\">\n <span left>\n <dbx-sidenav-button [sidenavMenuIcon]=\"sidenavMenuIcon\"></dbx-sidenav-button>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content left></ng-content>\n </span>\n <ng-content right></ng-content>\n </dbx-pagebar>\n `\n})\nexport class DbxSidenavPagebarComponent extends DbxPagebarComponent {\n @Input()\n sidenavMenuIcon: Maybe<string>;\n}\n","import { BehaviorSubject, switchMap, shareReplay, map, of } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from '../../../layout/bar/bar';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Pre-configured page used with DbxSidenavComponent.\n *\n * Can optionally be configured to only show the pagebar while in mobile mode.\n */\n@Component({\n selector: 'dbx-sidenav-page',\n template: `\n <div [ngClass]=\"(hidePagebar$ | async) ? 'dbx-pagebar-hide' : ''\">\n <dbx-sidenav-pagebar [sidenavMenuIcon]=\"sidenavMenuIcon\" [color]=\"color\">\n <ng-content left select=\"[navLeft]\"></ng-content>\n <ng-content select=\"[navRight]\"></ng-content>\n </dbx-sidenav-pagebar>\n <div class=\"dbx-content-page dbx-sidenav-page-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSidenavPageComponent implements OnDestroy {\n readonly parent = inject(DbxSidenavComponent);\n\n @Input()\n sidenavMenuIcon: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n\n private _mobileOnly = new BehaviorSubject<boolean>(false);\n\n readonly hidePagebar$ = this._mobileOnly.pipe(\n switchMap((mobileOnly) => (mobileOnly ? this.parent.mode$.pipe(map((x) => x !== SideNavDisplayMode.MOBILE)) : of(false))),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._mobileOnly.complete();\n }\n\n @Input()\n get mobileOnly(): boolean {\n return this._mobileOnly.value;\n }\n\n set mobileOnly(mobileOnly: boolean) {\n this._mobileOnly.next(mobileOnly);\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a wrapper for content distributed along a bar.\n */\n@Directive({\n selector: 'dbx-bar,[dbxBar]',\n host: {\n class: 'dbx-bar',\n '[class]': 'color ? (\"dbx-\" + color + \"-bg\") : \"dbx-bg\"'\n }\n})\nexport class DbxBarDirective {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a divider between content and centers a label within a background.\n */\n@Component({\n selector: 'dbx-bar-header',\n template: `\n <dbx-bar [color]=\"color\">\n <mat-icon class=\"button-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"text\">{{ text }}</span>\n <ng-content></ng-content>\n </dbx-bar>\n `,\n host: {\n class: 'dbx-bar-header dbx-hint'\n }\n})\nexport class DbxBarHeaderComponent {\n @Input()\n text?: Maybe<string>;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBarDirective } from './bar.directive';\nimport { DbxBarHeaderComponent } from './bar.header.component';\nimport { DbxPagebarComponent } from './pagebar.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule, MatIconModule],\n declarations: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent],\n exports: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent]\n})\nexport class DbxBarLayoutModule {}\n","import { Directive, Input } from '@angular/core';\n\n/**\n * Section used to elevate content in a pre-configured manner.\n */\n@Directive({\n selector: 'dbx-content-elevate,[dbxContentElevate]',\n host: {\n class: 'd-block',\n '[class.dbx-content-elevate]': 'elevate'\n }\n})\nexport class DbxContentElevateDirective {\n @Input()\n elevate = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content,[dbxContent]',\n host: {\n class: 'd-block dbx-content'\n }\n})\nexport class DbxContentDirective {}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor } from '../style/style';\n\n/**\n * Section used to wrap content in a border with internal padding.\n */\n@Directive({\n selector: 'dbx-content-border,[dbxContentBorder]',\n host: {\n class: 'd-block dbx-content-border',\n '[class]': `\"dbx-content-border-\" + color`\n }\n})\nexport class DbxContentBorderDirective {\n @Input()\n color: DbxThemeColor = 'background';\n}\n","import { Input, Directive } from '@angular/core';\n\nexport type DbxContentContainerPadding = 'none' | 'min' | 'small' | 'normal';\n\nexport type DbxContentContainerWidth = 'small' | 'medium' | 'large' | 'wide' | 'full';\n\n/**\n * Component that limits the max-width of the content.\n */\n@Directive({\n selector: 'dbx-content-container,[dbxContentContainer],.dbx-content-container',\n host: {\n class: 'd-block dbx-content-container',\n '[class]': `\"container-\" + grow + \" container-padding-\" + padding + \" container-top-padding-\" + topPadding`\n }\n})\nexport class DbxContentContainerDirective {\n @Input()\n grow: DbxContentContainerWidth = 'wide';\n\n @Input()\n padding: DbxContentContainerPadding = 'normal';\n\n @Input()\n topPadding: DbxContentContainerPadding = 'none';\n}\n","import { Directive, Input } from '@angular/core';\n\n/**\n * Component used to wrap content in a box with optionally elevation.\n */\n@Directive({\n selector: 'dbx-content-box, [dbxContentBox]',\n host: {\n class: 'd-block dbx-content-box',\n '[class.dbx-content-elevate]': 'elevate',\n '[class.dbx-content-box-wide]': 'wide'\n }\n})\nexport class DbxContentBoxDirective {\n @Input()\n elevate = true;\n\n @Input()\n wide = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content-page,[dbxContentPage]',\n host: {\n class: 'd-block dbx-content-page'\n }\n})\nexport class DbxContentPageDirective {}\n","import { Directive, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Component used to wrap content in a pit with a label.\n */\n@Directive({\n selector: 'dbx-content-pit, [dbxContentPit]',\n host: {\n class: 'd-block dbx-content-pit',\n '[class.dbx-content-pit-scrollable]': 'scrollable'\n }\n})\nexport class DbxContentPitDirective {\n @Input()\n scrollable?: Maybe<boolean>;\n}\n","import { DbxContentElevateDirective } from './content.elevate.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxContentDirective } from './content.directive';\nimport { DbxContentBorderDirective } from './content.border.directive';\nimport { DbxContentContainerDirective } from './content.container.directive';\nimport { DbxContentBoxDirective } from './content.box.directive';\nimport { DbxContentPageDirective } from './content.page.directive';\nimport { DbxContentPitDirective } from './content.pit.directive';\n\nconst declarations = [\n //\n DbxContentDirective,\n DbxContentContainerDirective,\n DbxContentBorderDirective,\n DbxContentElevateDirective,\n DbxContentBoxDirective,\n DbxContentPageDirective,\n DbxContentPitDirective\n];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxContentLayoutModule {}\n","import { OnDestroy, Input, Directive, inject } from '@angular/core';\nimport { AbstractIfDirective } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, asArray, filterMaybeArrayValues } from '@dereekb/util';\nimport { shareReplay, BehaviorSubject, switchMap, distinctUntilChanged, map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Structural directive that displays the content if the Sidenav has a specific sidenav size.\n */\n@Directive({\n selector: '[dbxIfSidenavDisplayMode]'\n})\nexport class DbxIfSidenavDisplayModeDirective extends AbstractIfDirective implements OnDestroy {\n private _sidenavModes = new BehaviorSubject<Set<SideNavDisplayMode>>(new Set([SideNavDisplayMode.NONE]));\n\n readonly dbxSidenavComponent = inject(DbxSidenavComponent);\n readonly show$ = this._sidenavModes.pipe(\n switchMap((modes) => {\n return this.dbxSidenavComponent.mode$.pipe(map((mode) => modes.has(mode)));\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input('dbxIfSidenavDisplayMode')\n get modes() {\n return Array.from(this._sidenavModes.value);\n }\n\n set modes(modes: Maybe<ArrayOrValue<SideNavDisplayMode | string>>) {\n this._sidenavModes.next(new Set(filterMaybeArrayValues(asArray(modes as SideNavDisplayMode))));\n }\n\n override ngOnDestroy(): void {\n this._sidenavModes.complete();\n }\n}\n","import { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatListModule } from '@angular/material/list';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from '../anchorlist/anchorlist.module';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { DbxSidenavPageComponent } from './sidenav.page.component';\nimport { DbxBarLayoutModule } from '../../../layout/bar/bar.layout.module';\nimport { DbxButtonModule } from '../../../button/button.module';\nimport { DbxContentLayoutModule } from './../../../layout/content/content.layout.module';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxIfSidenavDisplayModeDirective } from './sidenav.ifdisplaymode.directive';\n\nconst declarations = [DbxIfSidenavDisplayModeDirective, DbxSidenavComponent, DbxSidenavButtonComponent, DbxSidenavPagebarComponent, DbxSidenavPageComponent];\n\n@NgModule({\n imports: [CommonModule, DbxBarLayoutModule, DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxButtonModule, DbxContentLayoutModule, MatToolbarModule, MatButtonModule, MatIconModule, MatSidenavModule, MatListModule, MatDividerModule, UIRouterModule],\n declarations,\n exports: declarations\n})\nexport class DbxRouterSidenavModule {}\n","export * from './sidenav.component';\nexport * from './sidenav.module';\nexport * from './sidenav.button.component';\nexport * from './sidenav.pagebar.component';\nexport * from './sidenav.page.component';\nexport * from './sidenav.ifdisplaymode.directive';\nexport * from './sidenav';\n// export * from './side.item.component';\n// export * from './side.title.component';\n// export * from './side.title.content.component';\n","import { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from './anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from './anchorlist/anchorlist.module';\nimport { DbxRouterListModule } from './list/list.module';\nimport { DbxRouterNavbarModule } from './navbar/navbar.module';\nimport { DbxRouterSidenavModule } from './sidenav/sidenav.module';\n\n@NgModule({\n exports: [DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxRouterListModule, DbxRouterNavbarModule, DbxRouterSidenavModule]\n})\nexport class DbxRouterLayoutModule {}\n","import { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\n\n/**\n * SegueAnchor implementation for Angular Router.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxAngularRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {}\n","<a class=\"dbx-anchor-a\" [attr.target]=\"target$ | async\">\n <dbx-injection></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxAngularRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxAngularRouterSegueAnchorComponent],\n exports: [DbxAngularRouterSegueAnchorComponent]\n})\nexport class DbxWebAngularRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebAngularRouterModule> {\n return {\n ngModule: DbxWebAngularRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxAngularRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { Observable, filter } from 'rxjs';\nimport { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\nimport { TransitionOptions } from '@uirouter/core';\n\n/**\n * SegueAnchor implementation for UIRouter.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxUIRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {\n readonly uiRef$ = this.ref$.pipe(filter((x) => typeof x === 'string')) as Observable<string | null>;\n readonly uiOptions$ = this.refOptions$ as Observable<TransitionOptions | null>;\n}\n","<a class=\"dbx-anchor-a dbx-anchor-sref\" [attr.target]=\"target$ | async\" [uiSref]=\"(uiRef$ | async) ?? ''\" [uiParams]=\"refParams$ | async\" [uiOptions]=\"(uiOptions$ | async) ?? {}\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection [template]=\"template$ | async\"></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxUIRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxUIRouterSegueAnchorComponent],\n exports: [DbxUIRouterSegueAnchorComponent]\n})\nexport class DbxWebUIRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebUIRouterModule> {\n return {\n ngModule: DbxWebUIRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxUIRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith, first } from 'rxjs';\nimport { Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset } from '@dereekb/dbx-core';\nimport { filterUndefinedValues, firstValue, getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\n\n/**\n * Displays a button and menu for filtering partialPresets.\n */\n@Directive()\nexport abstract class AbstractDbxPartialPresetFilterMenuDirective<F> implements OnDestroy {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n private _partialPresets = new BehaviorSubject<ClickablePartialFilterPreset<F>[]>([]);\n\n readonly filter$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n\n readonly selectedPartialPresets$: Observable<ClickablePartialFilterPreset<F>[]> = combineLatest([this._partialPresets, this.filter$]).pipe(\n map(([partialPresets, selectedFilter]) => {\n const selectedPresets: ClickablePartialFilterPreset<F>[] = partialPresets.filter((x) => x.isActive(selectedFilter));\n return selectedPresets;\n }),\n distinctUntilChanged()\n );\n\n readonly firstSelectedPartialPreset$: Observable<Maybe<ClickablePartialFilterPreset<F>>> = this.selectedPartialPresets$.pipe(\n map((selectedPartialPresets) => firstValue(selectedPartialPresets)),\n distinctUntilChanged()\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = combineLatest([this._partialPresets, this.firstSelectedPartialPreset$]).pipe(\n map(([partialPresets, firstSelectedPartialPreset]) => {\n return partialPresets.map((x) => {\n return {\n ...x,\n selected: x === firstSelectedPartialPreset,\n onClick: () => {\n this.selectPartialPreset(x);\n }\n };\n });\n }),\n shareReplay(1)\n );\n\n @Input()\n get partialPresets(): ClickablePartialFilterPreset<F>[] {\n return this._partialPresets.value;\n }\n\n set partialPresets(partialPresets: ClickablePartialFilterPreset<F>[]) {\n this._partialPresets.next(partialPresets);\n }\n\n selectPartialPreset(preset: ClickablePartialFilterPreset<F>) {\n const presetValue = preset.partialPresetValue;\n\n if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {\n // set and then reset if the value is null or empty\n this.filterSourceDirective.setFilter((presetValue ?? {}) as F);\n this.filterSourceDirective.resetFilter();\n } else {\n const filter = getValueFromGetter(preset.partialPresetValue) as Partial<F>;\n\n this.filter$.pipe(first()).subscribe((currentFilter) => {\n const nextFilter = { ...currentFilter, ...filterUndefinedValues({ ...currentFilter, ...filter }, true) } as F;\n this.filterSourceDirective.setFilter(nextFilter);\n });\n }\n }\n\n ngOnDestroy(): void {\n this._partialPresets.complete();\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering partial preset values.\n */\n@Component({\n selector: 'dbx-partial-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html' // share the same template as the preset menu\n})\nexport class DbxPartialPresetFilterMenuComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.firstSelectedPartialPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.firstSelectedPartialPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","import { Component } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\n\n@Component({\n selector: 'dbx-preset-partial-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPartialPresetFilterListComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxFilterPopoverButtonComponent } from './filter.popover.button.component';\nimport { DbxPopoverInteractionModule } from '../popover/popover.module';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxFilterWrapperComponent } from './filter.wrapper.component';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\nimport { DbxCoreFilterModule, DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPresetFilterListComponent } from './filter.preset.list.component';\nimport { DbxRouterAnchorListModule } from '../../router/layout/anchorlist/anchorlist.module';\nimport { DbxPresetFilterMenuComponent } from './filter.preset.menu.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxPartialPresetFilterMenuComponent } from './filter.partial.menu.component';\nimport { DbxPartialPresetFilterListComponent } from './filter.partial.list.component';\n\nconst declarations = [DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxFilterPopoverComponent, DbxFilterPopoverButtonComponent, DbxFilterWrapperComponent, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n DbxPopoverInteractionModule,\n DbxCoreFilterModule,\n DbxButtonModule,\n DbxRouterAnchorModule,\n DbxRouterAnchorListModule,\n DbxInjectionComponentModule,\n FlexLayoutModule,\n // Material\n MatMenuModule,\n MatIconModule,\n MatButtonModule\n ],\n declarations,\n exports: [...declarations, DbxCoreFilterModule]\n})\nexport class DbxFilterInteractionModule {}\n","import { ElementRef, Component, ViewChild, Input } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Wrapper of a block that is broken into two parts, with the bottom content's height\n * being set to 100% of the height minus the top's height.\n *\n * The block is made up of two divs, a top and a bottom. The top is assigned a static height, and the bottom is given the remainder.\n * The height is calculated from 100%.\n */\n@Component({\n selector: 'dbx-two-block',\n template: `\n <div #two class=\"dbx-two-block-content\">\n <div #top class=\"dbx-two-block-top\" (resized)=\"onResized($event)\">\n <ng-content select=\"[top]\"></ng-content>\n </div>\n <div #bottom class=\"dbx-two-block-bottom\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-two-block d-block',\n '[class]': '{ \"dbx-two-block-fixed-top\": fixedTop }'\n }\n})\nexport class DbxTwoBlocksComponent {\n /**\n * Whether or not the top bar should be fixed in place instead of scrolling with the bottom when content is too tall.\n */\n @Input()\n fixedTop = true;\n\n @ViewChild('two', { read: ElementRef, static: true })\n twoElement!: ElementRef;\n\n /*\n @ViewChild('top', { read: ElementRef, static: true })\n topElement!: ElementRef;\n\n @ViewChild('bottom', { read: ElementRef, static: true })\n bottomElement!: ElementRef;\n */\n\n onResized(event: ResizedEvent): void {\n const height = event.newRect.height;\n const element: HTMLElement = this.twoElement.nativeElement;\n element.style.setProperty('--dbx-two-block-top-height', `${height}px`);\n }\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoBlocksComponent } from './two.block.component';\nimport { AngularResizeEventModule } from 'angular-resize-event';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, AngularResizeEventModule],\n declarations: [DbxTwoBlocksComponent],\n exports: [DbxTwoBlocksComponent]\n})\nexport class DbxBlockLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component that formats a card-box of content.\n */\n@Component({\n selector: 'dbx-card-box',\n template: `\n <div class=\"dbx-card-box\">\n <div class=\"dbx-section-header\">\n <div class=\"dbx-section-header-content\">\n <h4 class=\"dbx-section-header-content-title\">\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"title-text\">{{ header }}</span>\n </h4>\n <span class=\"spacer\"></span>\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n </div>\n <div class=\"dbx-card-box-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxCardBoxComponent {\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n}\n","import { Component } from '@angular/core';\n\n/**\n * Component that wraps a card box and adds content padding.\n */\n@Component({\n selector: 'dbx-card-box-container',\n template: `\n <div class=\"dbx-card-box-container\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxCardBoxContainerComponent {}\n","import { MatIconModule } from '@angular/material/icon';\nimport { DbxCardBoxContainerComponent } from './card.box.container.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCardBoxComponent } from './card.box.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxCardBoxComponent, DbxCardBoxContainerComponent],\n exports: [DbxCardBoxComponent, DbxCardBoxContainerComponent]\n})\nexport class DbxCardBoxLayoutModule {}\n","import { Injectable, OnDestroy, Provider } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Subject, distinct, map } from 'rxjs';\nimport { SegueRef } from '@dereekb/dbx-core';\nimport { isMaybeNot, type Maybe } from '@dereekb/util';\n\nexport interface TwoColumnsState {\n /**\n * Whether or not to reverse the sizing.\n */\n reverseSizing: boolean;\n /**\n * Whether or not the right side should be shown.\n */\n showRight: boolean;\n /**\n * Whether or not there is any registered right content currently.\n */\n hasRight: boolean;\n /**\n * Whether or not to allow the left to fill up the screen when no right is shown.\n */\n fullLeft: boolean;\n /**\n * Optional ref to use with TwoColumns that use an sref for the back button.\n */\n backRef?: Maybe<SegueRef>;\n /**\n * Size of the view's total width in pixels.\n */\n totalWidth?: Maybe<number>;\n /**\n * Minimum right side size allowed before hiding the left content.\n */\n minRightWidth: number;\n}\n\nexport const DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH = 320;\n\nconst INITIAL_STATE: TwoColumnsState = {\n reverseSizing: false,\n showRight: false,\n hasRight: false,\n fullLeft: false,\n minRightWidth: DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH\n};\n\n@Injectable()\nexport class TwoColumnsContextStore extends ComponentStore<TwoColumnsState> implements OnDestroy {\n private readonly _back = new Subject<void>();\n\n constructor() {\n super({ ...INITIAL_STATE });\n }\n\n // MARK: Accessors\n readonly hideLeft$ = this.state$.pipe(\n map((x) => {\n /**\n * The right side is less-than or equal to half the total width when resizing, so we can use the total width to guess the best case current scenario.\n */\n const expectedRightWidth = (x.totalWidth ?? 0) / 2;\n const hideLeft = x.showRight && expectedRightWidth < x.minRightWidth;\n return hideLeft;\n })\n );\n\n /**\n * Pipes the current state of reverseSizing.\n */\n readonly reverseSizing$ = this.state$.pipe(map((x) => x.reverseSizing));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly hasRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly currentShowRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight and hasRight\n */\n readonly showRight$ = this.state$.pipe(map((x) => x.hasRight && x.showRight));\n\n /**\n * Convenience function for the showRight compliment.\n */\n readonly hideRight$ = this.showRight$.pipe(map((x) => !x));\n\n /**\n * Pipes the current state of fullLeft.\n */\n readonly fullLeft$ = this.state$.pipe(map((x) => x.fullLeft));\n\n /**\n * Whether or not to show the full left.\n */\n readonly showFullLeft$ = this.state$.pipe(map((x) => !(x.hasRight && x.showRight) && x.fullLeft));\n\n /**\n * Pipes the current backRef value.\n */\n readonly backRef$ = this.state$.pipe(\n map((x) => x.backRef),\n distinct()\n );\n\n /**\n * Emits back events.\n */\n readonly back$ = this._back.asObservable();\n\n // MARK: State Changes\n /**\n * Completely resets the store.\n */\n readonly reset = this.updater(() => ({ ...INITIAL_STATE }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setReverseSizing = this.updater((state, reverseSizing: Maybe<boolean>) => (isMaybeNot(reverseSizing) ? state : { ...state, reverseSizing }));\n\n /**\n * Changes the state to have right content or not.\n */\n readonly setHasRight = this.updater((state, hasRight: Maybe<boolean>) => (isMaybeNot(hasRight) ? state : { ...state, hasRight }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setShowRight = this.updater((state, showRight: Maybe<boolean>) => (isMaybeNot(showRight) ? state : { ...state, showRight }));\n\n /**\n * Sets the full left. If undefined is passed, no change occurs.\n */\n readonly setFullLeft = this.updater((state, fullLeft: Maybe<boolean>) => (isMaybeNot(fullLeft) ? state : { ...state, fullLeft }));\n\n /**\n * Sets the new back ref.\n */\n readonly setBackRef = this.updater((state, backRef: Maybe<SegueRef>) => ({ ...state, backRef }));\n\n /**\n * Sets the new total width.\n */\n readonly setTotalWidth = this.updater((state, totalWidth: Maybe<number>) => ({ ...state, totalWidth }));\n\n /**\n * Sets the new min right width.\n */\n readonly setMinRightWidth = this.updater((state, minRightWidth: Maybe<number>) => ({ ...state, minRightWidth: minRightWidth ?? DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH }));\n\n /**\n * Emits a back event.\n */\n back(): void {\n this._back.next();\n }\n\n // MARK: Internal\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._back.complete();\n }\n}\n\nexport function provideTwoColumnsContext(): Provider[] {\n return [\n {\n provide: TwoColumnsContextStore,\n useClass: TwoColumnsContextStore\n }\n ];\n}\n","import { Directive, EventEmitter, Output, OnInit, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with an DbxTwoColumnComponent to help respond to a \"back\" function.\n */\n@Directive({\n selector: '[dbxTwoColumnBack]'\n})\nexport class DbxTwoColumnBackDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n @Output('dbxTwoColumnBack')\n public back = new EventEmitter();\n\n ngOnInit(): void {\n this.sub = this.twoColumnsContextStore.back$.subscribe(() => this.back.emit());\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { ChangeDetectorRef, OnDestroy, ChangeDetectionStrategy, OnInit, Component, Input, ElementRef, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { Observable, BehaviorSubject, combineLatest } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\nexport interface DbxTwoColumnViewState {\n showRight: boolean;\n showFullLeft: boolean;\n hideLeftColumn: boolean;\n reverseSizing: boolean;\n inSectionPage: boolean;\n}\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-two-column',\n templateUrl: './two.column.component.html',\n exportAs: 'columns',\n host: {\n class: 'dbx-two-column',\n '[class]': \"{ 'right-shown': v.showRight, 'full-left': v.showFullLeft,'hide-left-column': v.hideLeftColumn, 'two-column-reverse-sizing': v.reverseSizing, 'dbx-section-page-two': v.inSectionPage }\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTwoColumnComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private readonly _elementRef = inject(ElementRef);\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _view: DbxTwoColumnViewState = { showRight: false, showFullLeft: true, hideLeftColumn: false, reverseSizing: false, inSectionPage: false };\n\n private readonly _inSectionPage = new BehaviorSubject<boolean>(false);\n\n readonly reverseSizing$ = this.twoColumnsContextStore.reverseSizing$;\n readonly hideLeftColumn$: Observable<boolean> = this.twoColumnsContextStore.hideLeft$;\n readonly showRight$: Observable<boolean> = this.twoColumnsContextStore.showRight$;\n readonly showFullLeft$: Observable<boolean> = this.twoColumnsContextStore.showFullLeft$;\n\n readonly hideRight$: Observable<boolean> = this.twoColumnsContextStore.hideRight$;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.sub = combineLatest([this.showRight$, this.showFullLeft$, this.hideLeftColumn$, this.reverseSizing$, this._inSectionPage]).subscribe(([showRight, showFullLeft, hideLeftColumn, reverseSizing, inSectionPage]: [boolean, boolean, boolean, boolean, boolean]) => {\n this._view = {\n showRight,\n showFullLeft,\n hideLeftColumn,\n reverseSizing,\n inSectionPage\n };\n\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._inSectionPage.complete();\n }\n\n get v(): DbxTwoColumnViewState {\n return this._view;\n }\n\n @Input()\n set reverseSizing(reverseSizing: boolean) {\n this.twoColumnsContextStore.setReverseSizing(reverseSizing);\n }\n\n @Input()\n set inSectionPage(inSectionPage: boolean) {\n this._inSectionPage.next(inSectionPage);\n }\n\n onResized(event: ResizedEvent): void {\n const totalWidth = (this._elementRef.nativeElement as HTMLElement).clientWidth;\n this.twoColumnsContextStore.setTotalWidth(totalWidth);\n }\n}\n","<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height left-column\">\n <div *ngIf=\"!v.hideLeftColumn && v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[left]\"></ng-content>\n</dbx-content-container>\n<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height right-column\" *ngIf=\"v.showRight\">\n <div *ngIf=\"v.hideLeftColumn || !v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[right]\"></ng-content>\n</dbx-content-container>\n","import { Input, OnDestroy, Directive, OnInit, inject } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Provides a dbxTwoColumnContextStore\n */\n@Directive({\n selector: '[dbxTwoColumnContext]',\n providers: provideTwoColumnsContext()\n})\nexport class DbxTwoColumnContextDirective implements OnInit, OnDestroy {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n private _showRight = new BehaviorSubject<Maybe<boolean>>(undefined);\n\n ngOnInit(): void {\n this.twoColumnsContextStore.setShowRight(this._showRight);\n }\n\n ngOnDestroy(): void {\n this._showRight.complete();\n }\n\n @Input()\n set showRight(showRight: Maybe<boolean | ''>) {\n this._showRight.next(Boolean(showRight));\n }\n}\n","import { OnInit, Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { isNotNullOrEmptyString, type Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the full left to true.\n */\n@Directive({\n selector: '[dbxTwoColumnFullLeft]'\n})\nexport class DbxTwoColumnFullLeftDirective implements OnInit, OnDestroy {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n private _fullLeft = new BehaviorSubject<boolean>(true);\n\n @Input('dbxTwoColumnFullLeft')\n get fullLeft(): boolean {\n return this._fullLeft.value;\n }\n\n set fullLeft(fullLeft: Maybe<boolean | ''>) {\n if (isNotNullOrEmptyString(fullLeft)) {\n // only respond to boolean values\n this._fullLeft.next(Boolean(fullLeft));\n }\n }\n\n ngOnInit(): void {\n this._twoColumnsContextStore.setFullLeft(this._fullLeft);\n }\n\n ngOnDestroy(): void {\n this._fullLeft.complete();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Two Columns related component that sits at the top of the content bodies and wraps content.\n */\n@Component({\n selector: 'dbx-two-column-head',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-two-column-head',\n '[class.d-block]': 'block',\n '[class.full]': 'full'\n }\n})\nexport class DbxTwoColumnColumnHeadComponent {\n @Input()\n block?: boolean;\n\n @Input()\n full?: boolean;\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { asSegueRef, SegueRefOrSegueRefRouterLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the backRef of the TwoColumnsContextStore.\n */\n@Directive({\n selector: '[dbxTwoColumnSref]'\n})\nexport class DbxTwoColumnSrefDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n @Input('dbxTwoColumnSref')\n public set ref(ref: Maybe<SegueRefOrSegueRefRouterLink | ''>) {\n const segueRef = ref ? asSegueRef(ref) : undefined;\n this._twoColumnsContextStore.setBackRef(segueRef);\n }\n}\n","import { AfterViewInit, OnDestroy, Component, Input, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, map } from 'rxjs';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Optional responsive component that wraps content on the right side and shows a navigation bar.\n *\n * When rendered it will trigger the context to show left.\n */\n@Component({\n selector: 'dbx-two-column-right',\n templateUrl: './two.column.right.component.html',\n host: {\n class: 'dbx-two-column-right d-block'\n }\n})\nexport class DbxTwoColumnRightComponent implements AfterViewInit, OnDestroy {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n @Input()\n full: boolean = false;\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n block?: boolean;\n\n private _showBack = new BehaviorSubject<boolean>(true);\n\n readonly ref$: Observable<Maybe<ClickableAnchor>> = this.twoColumnsContextStore.backRef$;\n\n readonly showBack$: Observable<boolean> = combineLatest([\n this._showBack,\n this.ref$.pipe(map((x) => !x)) // TODO: Is this correct? Show back if ref is not defined?\n ]).pipe(map(([a, b]: [boolean, boolean]) => a && b));\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.twoColumnsContextStore.setHasRight(true);\n });\n }\n\n ngOnDestroy(): void {\n this._showBack.complete();\n this.twoColumnsContextStore.setHasRight(false);\n }\n\n @Input()\n get showBack(): boolean {\n return this._showBack.value;\n }\n\n set showBack(showBack: boolean) {\n this._showBack.next(showBack);\n }\n\n /**\n * Minimum right-side width allowed in pixels.\n */\n @Input()\n set minRightWidth(minRightWidth: Maybe<number | ''>) {\n this.twoColumnsContextStore.setMinRightWidth(typeof minRightWidth === 'number' ? minRightWidth : undefined);\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","<dbx-two-column-head [block]=\"block\" [full]=\"full\">\n <!-- Back Buttons -->\n <ng-container *ngIf=\"showBack$ | async\">\n <button mat-icon-button class=\"back-button\" (click)=\"backClicked()\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"ref$ | async\">\n <dbx-anchor [anchor]=\"ref$ | async\">\n <button mat-icon-button class=\"back-button\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </dbx-anchor>\n </ng-container>\n <span *ngIf=\"header\" class=\"right-nav-title\">{{ header }}</span>\n <span class=\"right-nav-spacer\"></span>\n <span class=\"spacer\"></span>\n <ng-content select=\"[nav]\"></ng-content>\n</dbx-two-column-head>\n<div class=\"dbx-two-column-right-content\">\n <ng-content></ng-content>\n</div>\n","import { Directive, OnInit, OnDestroy, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxRouterService, isSegueRefActive } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { shareReplay, distinctUntilChanged, Subscription } from 'rxjs';\nimport { isNot } from '@dereekb/rxjs';\n\n/**\n * Used with a DbxTwoColumnComponent to control showing right when the current route is a child of the backRef.\n */\n@Directive({\n selector: '[dbxTwoColumnSrefShowRight]'\n})\nexport class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n private readonly _dbxRouterService = inject(DbxRouterService);\n\n readonly showRight$ = this._twoColumnsContextStore.backRef$.pipe(\n // Only show right when the backRef is not exactly active\n isSegueRefActive({ dbxRouterService: this._dbxRouterService, activeExactly: true }),\n isNot(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n ngOnInit(): void {\n this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$) as Subscription;\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from '../../../router';\nimport { DbxContentLayoutModule } from '../../content';\nimport { DbxTwoColumnSrefDirective } from './two.column.sref.directive';\nimport { DbxTwoColumnComponent } from './two.column.component';\nimport { DbxTwoColumnColumnHeadComponent } from './two.column.head.component';\nimport { DbxTwoColumnRightComponent } from './two.column.right.component';\nimport { DbxTwoColumnBackDirective } from './two.column.back.directive';\nimport { DbxTwoColumnFullLeftDirective } from './two.column.full.left.directive';\nimport { DbxTwoColumnContextDirective } from './two.column.context.directive';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { DbxTwoColumnSrefShowRightDirective } from './two.column.sref.showright.directive';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxRouterAnchorModule, DbxContentLayoutModule, AngularResizeEventModule],\n declarations: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective],\n exports: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective]\n})\nexport class DbxTwoColumnLayoutModule {}\n","import { Component, Input, inject } from '@angular/core';\nimport { TwoColumnsContextStore } from '../two';\n\n/**\n * Pre-configured Two-columns view that only has a left view and shows full left.\n */\n@Component({\n selector: 'dbx-one-column',\n template: `\n <ng-container>\n <dbx-two-column [inSectionPage]=\"inSectionPage\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content left></ng-content>\n </dbx-two-column>\n </ng-container>\n `,\n exportAs: 'columns',\n providers: [TwoColumnsContextStore]\n})\nexport class DbxOneColumnComponent {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n constructor() {\n this.twoColumnsContextStore.setFullLeft(true);\n }\n\n @Input()\n inSectionPage = true;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from '../two';\nimport { DbxOneColumnComponent } from './one.column.component';\n\n@NgModule({\n imports: [CommonModule, DbxTwoColumnLayoutModule],\n declarations: [DbxOneColumnComponent],\n exports: [DbxOneColumnComponent]\n})\nexport class DbxOneColumnLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from './two';\nimport { DbxOneColumnLayoutModule } from './one';\n\n@NgModule({\n exports: [DbxOneColumnLayoutModule, DbxTwoColumnLayoutModule]\n})\nexport class DbxColumnLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Toolbar-like component that wraps content. Generally sits at the top of a page.\n */\n@Component({\n selector: 'dbx-flag',\n template: `\n <div class=\"dbx-flag\">\n <mat-toolbar [color]=\"color\">\n <ng-content></ng-content>\n </mat-toolbar>\n </div>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagComponent {\n @Input()\n color: ThemePalette = 'accent';\n}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Pre-configured dbx-flag prompt to do something.\n */\n@Component({\n selector: 'dbx-flag-prompt',\n template: `\n <dbx-flag [color]=\"color\">\n <span class=\"dbx-flag-prompt\">{{ text }}</span>\n <span class=\"dbx-flag-spacer\"></span>\n <ng-content></ng-content>\n </dbx-flag>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagPromptComponent {\n @Input()\n color: ThemePalette = 'accent';\n\n @Input()\n text?: string;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { DbxFlagPromptComponent } from './flag.prompt.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule],\n declarations: [DbxFlagComponent, DbxFlagPromptComponent],\n exports: [DbxFlagComponent, DbxFlagPromptComponent]\n})\nexport class DbxFlagLayoutModule {}\n","import { ScreenMediaWidthType } from '../../screen/screen';\nimport { DbxScreenMediaService } from '../../screen/screen.service';\nimport { Directive, ChangeDetectorRef, Input, OnInit, OnDestroy, inject } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged, delay } from 'rxjs';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Used to declare a dbxFlexGroup.\n */\n@Directive({\n selector: '[dbxFlexGroup]',\n host: {\n '[class.dbx-flex-group]': 'content',\n '[class.dbx-flex-group-break-to-column]': 'breakToColumn',\n '[class.dbx-flex-group-small]': 'small',\n '[class.dbx-flex-group-relative]': 'relative'\n }\n})\nexport class DbxFlexGroupDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n @Input()\n breakToColumn = false;\n\n @Input()\n content = true;\n\n @Input()\n relative = false;\n\n private _small = false;\n\n private readonly _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('tablet');\n\n readonly isSmallScreen$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint).pipe(\n map((x) => !x),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n get small(): boolean {\n return this._small;\n }\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.isSmallScreen$.pipe(delay(0)).subscribe((small) => {\n this._small = small;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._breakpoint.complete();\n }\n\n @Input()\n set breakpoint(breakpoint: Maybe<ScreenMediaWidthType>) {\n this._breakpoint.next(breakpoint ?? 'tablet');\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { DbxFlexSize } from './flex';\n\n/**\n * Applies the proper dbx-flex size class based on the input.\n */\n@Directive({\n selector: '[dbxFlexSize]',\n host: {\n '[class]': '\"dbx-flex-\" + size'\n }\n})\nexport class DbxFlexSizeDirective {\n @Input('dbxFlexSize')\n size: DbxFlexSize = 1;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlexGroupDirective } from './flex.group.directive';\nimport { DbxFlexSizeDirective } from './flex.size.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxFlexGroupDirective, DbxFlexSizeDirective],\n exports: [DbxFlexGroupDirective, DbxFlexSizeDirective]\n})\nexport class DbxFlexLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Section piece that puts an icon on the left, and arbitrary content on the right with a header.\n */\n@Component({\n selector: 'dbx-icon-item',\n template: `\n <div class=\"dbx-icon-item\">\n <div class=\"left\" *ngIf=\"icon\">\n <mat-icon>{{ icon }}</mat-icon>\n </div>\n <div class=\"right\">\n <h3 *ngIf=\"header\" class=\"dbx-icon-item-header\">{{ header }}</h3>\n <div class=\"right-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n `\n})\nexport class DbxIconItemComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxIconItemComponent } from './item.icon.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxIconItemComponent],\n exports: [DbxIconItemComponent]\n})\nexport class DbxItemLayoutModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Component that is centered for use within an empty list.\n */\n@Component({\n selector: 'dbx-list-empty-content',\n template: `\n <div class=\"dbx-list-empty-content\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxListEmptyContentComponent {}\n","import { Directive, inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\nimport { ReadableError, ReadableErrorWithCode } from '@dereekb/util';\n\n@Directive()\nexport abstract class AbstractDbxErrorWidgetComponent<T extends ReadableError = ReadableError> {\n readonly data = inject<ReadableErrorWithCode<T>>(DBX_INJECTION_COMPONENT_DATA);\n\n get code() {\n return this.data.code;\n }\n\n get message() {\n return this.data.message;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Combines a dbx-label and arbitrary content.\n */\n@Component({\n selector: 'dbx-label-block',\n template: `\n <span class=\"d-block dbx-label dbx-label-padded\">{{ header }}</span>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-label-block'\n }\n})\nexport class DbxLabelBlockComponent {\n @Input()\n header?: Maybe<string>;\n}\n","import { Component } from '@angular/core';\nimport { ServerError, ServerErrorResponseData } from '@dereekb/util';\nimport { AbstractDbxErrorWidgetComponent } from './error.widget.directive';\n\n@Component({\n template: `\n <dbx-label-block header=\"Error Code\">{{ code }}</dbx-label-block>\n <dbx-label-block header=\"Error Message\">{{ message }}</dbx-label-block>\n <dbx-label-block header=\"Error Data\" *ngIf=\"serverErrorData\">\n <p class=\"dbx-json\">{{ serverErrorData | json }}</p>\n </dbx-label-block>\n `,\n host: {\n class: 'd-block dbx-error-default-error-widget dbx-content-container'\n }\n})\nexport class DbxErrorDefaultErrorWidgetComponent extends AbstractDbxErrorWidgetComponent {\n get serverErrorData(): ServerErrorResponseData | undefined {\n return (this.data as ServerError).data;\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeArrayValues, mapIterable, StringErrorCode } from '@dereekb/util';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\n\nexport const DEFAULT_ERROR_WIDGET_CODE = 'DEFAULT_ERROR_WIDGET';\nexport const UNKNOWN_ERROR_WIDGET_CODE = 'UNKNOWN_ERROR_WIDGET';\n\nexport interface DbxErrorWidgetEntry {\n /**\n * Error code to respond to.\n */\n readonly code: StringErrorCode;\n /**\n * Error widget component class to use.\n *\n * @deprecated use `widgetComponentClass` instead.\n */\n readonly componentClass?: Maybe<Type<unknown>>;\n /**\n * In-line error widget component class to use.\n *\n * This changes how it appears in dbx-error.\n *\n * If not provided, dbx-error will display the default output.\n */\n readonly errorComponentClass?: Maybe<Type<unknown>>;\n /**\n * Custom popup error widget component class to use.\n *\n * This changes how it appears in the dbx-error-widget-view.\n *\n * If not provided, the widget will display the default entry.\n */\n readonly widgetComponentClass?: Maybe<Type<unknown>>;\n}\n\nexport type DbxErrorWidgetEntryWithPopupComponentClass = Omit<DbxErrorWidgetEntry, 'popupComponentClass'> & { popupComponentClass: Type<unknown> };\n\n/**\n * Service used to register error widgets.\n *\n * It has two default widgets:\n *\n * - default: used in cases where an error has been registered by its error code\n * - unknown: used in cases where an error has an error code that has not been registered\n *\n * By default the DbxErrorDefaultErrorWidgetComponent is registered to both the default and unknown error entries.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorWidgetService {\n private _entries = new Map<StringErrorCode, DbxErrorWidgetEntry>();\n\n constructor() {\n const defaultEntry = { widgetComponentClass: DbxErrorDefaultErrorWidgetComponent };\n this.registerDefaultEntry(defaultEntry);\n this.registerUnknownEntry(defaultEntry);\n }\n\n registerDefaultEntry(entry: Omit<DbxErrorWidgetEntry, 'errorComponentClass' | 'code'>) {\n return this.register({\n ...entry,\n errorComponentClass: null, // errorComponentClass is not allowed nor used for the default entry\n code: DEFAULT_ERROR_WIDGET_CODE\n });\n }\n\n registerUnknownEntry(entry: Omit<DbxErrorWidgetEntry, 'errorComponentClass' | 'code'>) {\n return this.register({\n ...entry,\n errorComponentClass: null, // errorComponentClass is not allowed nor used for the unknown entry\n code: UNKNOWN_ERROR_WIDGET_CODE\n });\n }\n\n register(entry: DbxErrorWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.code)) {\n this._entries.set(entry.code, {\n ...entry,\n widgetComponentClass: entry.widgetComponentClass ?? entry.componentClass\n });\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getErrorWidgetIdentifiers(): StringErrorCode[] {\n return Array.from(this._entries.keys());\n }\n\n getDefaultErrorWidgetEntry(): Maybe<DbxErrorWidgetEntry> {\n return this.getErrorWidgetEntry(DEFAULT_ERROR_WIDGET_CODE);\n }\n\n getUnknownErrorWidgetEntry(): Maybe<DbxErrorWidgetEntry> {\n return this.getErrorWidgetEntry(UNKNOWN_ERROR_WIDGET_CODE);\n }\n\n getErrorWidgetEntry(code: StringErrorCode): Maybe<DbxErrorWidgetEntry> {\n return this._entries.get(code);\n }\n\n getErrorWidgetEntries(codes: Iterable<StringErrorCode>): DbxErrorWidgetEntry[] {\n return filterMaybeArrayValues(mapIterable(codes ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { Maybe, ReadableError, ReadableErrorWithCode } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorWidgetService } from './error.widget.service';\n\n/**\n * Used to display a corresponding error widget based on the input data.\n */\n@Component({\n selector: 'dbx-error-widget-view',\n template: `\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n `,\n host: {\n class: 'dbx-error-widget-view'\n }\n})\nexport class DbxErrorWidgetViewComponent implements OnDestroy {\n readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n\n private _errorWithCode = new BehaviorSubject<Maybe<ReadableErrorWithCode>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._errorWithCode.pipe(\n map((error: Maybe<ReadableErrorWithCode>) => {\n let config: Maybe<DbxInjectionComponentConfig>;\n\n if (error != null) {\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n\n if (entry != null) {\n const defaultEntry = this.dbxErrorWidgetService.getDefaultErrorWidgetEntry();\n const componentClass = entry.widgetComponentClass ?? defaultEntry?.widgetComponentClass;\n\n if (componentClass != null) {\n config = {\n componentClass,\n data: error\n };\n }\n } else {\n const unknownEntry = this.dbxErrorWidgetService.getUnknownErrorWidgetEntry();\n\n if (unknownEntry?.widgetComponentClass != null) {\n config = {\n componentClass: unknownEntry?.widgetComponentClass,\n data: error\n };\n }\n }\n }\n\n return config;\n })\n );\n\n ngOnDestroy(): void {\n this._errorWithCode.complete();\n }\n\n @Input()\n set error(error: Maybe<ReadableError>) {\n const config = error && error.code ? (error as ReadableErrorWithCode) : undefined;\n this._errorWithCode.next(config);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, ReadableError } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-error-details',\n template: `\n <dbx-error-widget-view [error]=\"error\"></dbx-error-widget-view>\n `,\n host: {\n class: 'd-block dbx-error-details'\n }\n})\nexport class DbxErrorDetailsComponent {\n @Input()\n error?: Maybe<ReadableError>;\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { ReadableError } from '@dereekb/util';\nimport { AbstractPopoverDirective } from '../interaction/popover/abstract.popover.directive';\nimport { DbxPopoverKey } from '../interaction/popover/popover';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\n\nexport const DEFAULT_ERROR_POPOVER_KEY = 'error';\n\nexport interface DbxErrorPopoverConfig {\n origin: ElementRef;\n error: ReadableError;\n}\n\n@Component({\n template: `\n <dbx-popover-content class=\"dbx-error-popover\">\n <dbx-popover-header [header]=\"code\" icon=\"error\"></dbx-popover-header>\n <dbx-popover-scroll-content>\n <dbx-error-details [error]=\"error\"></dbx-error-details>\n </dbx-popover-scroll-content>\n </dbx-popover-content>\n `\n})\nexport class DbxErrorPopoverComponent extends AbstractPopoverDirective<void, ReadableError> {\n get error() {\n return this.popover.data as ReadableError;\n }\n\n get code() {\n return this.error.code;\n }\n\n static openPopover(popoverService: DbxPopoverService, { origin, error }: DbxErrorPopoverConfig, popoverKey?: DbxPopoverKey) {\n return popoverService.open({\n key: popoverKey ?? DEFAULT_ERROR_POPOVER_KEY,\n origin,\n isResizable: true,\n componentClass: DbxErrorPopoverComponent,\n data: error\n });\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxErrorViewButtonEvent {\n readonly origin: ElementRef;\n}\n\n/**\n * The basic error view.\n */\n@Component({\n selector: 'dbx-error-view',\n templateUrl: './error.view.component.html',\n host: {\n class: 'dbx-error dbx-warn dbx-b'\n }\n})\nexport class DbxErrorViewComponent implements OnDestroy {\n @Input()\n icon = 'error';\n\n @Input()\n message?: Maybe<string>;\n\n /**\n * Whether or not the error button is disabled.\n */\n @Input()\n buttonDisabled?: Maybe<boolean>;\n\n @Output()\n readonly buttonClick = new EventEmitter<DbxErrorViewButtonEvent>();\n\n @ViewChild('buttonPopoverOrigin', { read: ElementRef })\n buttonOrigin!: ElementRef;\n\n constructor() {}\n\n ngOnDestroy(): void {\n this.buttonClick.complete();\n }\n\n clickError() {\n if (!this.buttonDisabled) {\n this.buttonClick.emit({\n origin: this.buttonOrigin\n });\n }\n }\n}\n","<button class=\"dbx-error-button\" [disabled]=\"buttonDisabled\" #buttonPopoverOrigin mat-icon-button (click)=\"clickError()\">\n <mat-icon>{{ icon }}</mat-icon>\n</button>\n<span class=\"dbx-error-message\" *ngIf=\"message\">{{ message }}</span>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { Maybe, ErrorInput, toReadableError, ReadableError, isDefaultReadableError, Configurable } from '@dereekb/util';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { AbstractSubscriptionDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorViewButtonEvent } from './error.view.component';\nimport { DbxErrorWidgetService } from './error.widget.service';\nimport { NgPopoverRef } from 'ng-overlay-container';\n\ntype DbxReadableErrorComponentViewType = 'none' | 'default' | 'custom';\n\ninterface DbxReadableErrorComponentState {\n readonly viewType: DbxReadableErrorComponentViewType;\n readonly isDefaultError?: Maybe<boolean>;\n readonly message?: Maybe<string>;\n readonly rawError?: Maybe<ErrorInput>;\n readonly error?: Maybe<ReadableError>;\n readonly customView?: Maybe<DbxInjectionComponentConfig>;\n}\n\n/**\n * Root error component that displays content related to an error.\n */\n@Component({\n selector: 'dbx-error',\n template: `\n <ng-container [ngSwitch]=\"viewType\">\n <ng-container *ngSwitchCase=\"'default'\">\n <dbx-error-view icon=\"error\" [message]=\"message\" [buttonDisabled]=\"isDefaultError\" (buttonClick)=\"openErrorPopover($event)\"></dbx-error-view>\n </ng-container>\n <ng-container *ngSwitchCase=\"'custom'\">\n <dbx-injection [config]=\"customView\"></dbx-injection>\n </ng-container>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxReadableErrorComponent extends AbstractSubscriptionDirective {\n readonly popoverService = inject(DbxPopoverService);\n readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n @Output()\n readonly popoverOpen = new EventEmitter<NgPopoverRef>();\n\n private _state: DbxReadableErrorComponentState = {\n viewType: 'none'\n };\n\n private readonly _iconOnly = new BehaviorSubject<Maybe<boolean>>(undefined);\n private readonly _inputError = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n readonly state$ = combineLatest([this._inputError, this._iconOnly.pipe(distinctUntilChanged())]).pipe(\n map(([rawError, iconOnly]) => {\n let state: DbxReadableErrorComponentState;\n\n if (rawError != null) {\n const error = toReadableError(rawError);\n const isDefaultError = iconOnly ? false : isDefaultReadableError(error);\n\n state = {\n viewType: 'default',\n rawError,\n error,\n message: (error as ReadableError)?.message || 'An error occured.',\n isDefaultError\n };\n\n if (iconOnly) {\n delete (state as Configurable<DbxReadableErrorComponentState>).message; // remove the message when in icon-only mode\n } else if (error) {\n let customView: Maybe<DbxInjectionComponentConfig>;\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n const componentClass = entry?.errorComponentClass;\n\n if (componentClass != null) {\n customView = {\n componentClass,\n data: error\n };\n }\n\n // apply custom view\n if (customView) {\n state = {\n ...state,\n viewType: 'custom',\n customView\n };\n }\n }\n } else {\n state = {\n viewType: 'none'\n };\n }\n\n return state;\n }),\n shareReplay(1)\n );\n\n ngOnInit(): void {\n this.sub = this.state$.subscribe((state) => {\n this._state = state;\n this.cdRef.markForCheck();\n });\n }\n\n protected get viewType() {\n return this._state.viewType;\n }\n\n protected get isDefaultError() {\n return this._state.isDefaultError;\n }\n\n protected get message(): Maybe<string> {\n return this._state.message;\n }\n\n protected get customView(): Maybe<DbxInjectionComponentConfig> {\n return this._state.customView;\n }\n\n @Input()\n get error() {\n return this._state.rawError;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._inputError.next(error);\n }\n\n @Input()\n get iconOnly() {\n return this._iconOnly.value;\n }\n\n set iconOnly(iconOnly: Maybe<boolean>) {\n this._iconOnly.next(iconOnly);\n }\n\n protected openErrorPopover(event: DbxErrorViewButtonEvent) {\n const error = this._state.error;\n\n if (error != null) {\n const popoverRef = DbxErrorPopoverComponent.openPopover(this.popoverService, {\n origin: event.origin,\n error\n });\n\n this.popoverOpen.next(popoverRef);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxThemeColor } from '../layout/style/style';\n\nexport const DEFAULT_LOADING_PROGRESS_DIAMETER = 96;\n\n/**\n * Basic loading progress component.\n */\n@Component({\n selector: 'dbx-loading-progress',\n template: `\n <div class=\"loading-progress-view\">\n <ng-container [ngSwitch]=\"linear\">\n <mat-progress-bar *ngSwitchCase=\"true\" [mode]=\"bmode\" [color]=\"color\" [bufferValue]=\"bufferValue\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-bar>\n <mat-progress-spinner *ngSwitchDefault [diameter]=\"diameter || 96\" [mode]=\"smode\" [color]=\"color\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-spinner>\n </ng-container>\n <div *ngIf=\"text\" class=\"dbx-loading-progress-hint dbx-hint dbx-small\" [ngClass]=\"{ 'text-center': !linear }\">{{ text }}</div>\n </div>\n `\n})\nexport class DbxLoadingProgressComponent {\n private _diameter: number = DEFAULT_LOADING_PROGRESS_DIAMETER;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette | DbxThemeColor = 'primary';\n\n @Input()\n value?: number;\n\n @Input()\n bufferValue: number = undefined as unknown as number; // mat-progress-bar typing prevents using undefined as a type\n\n @Input()\n get diameter(): number {\n return this._diameter;\n }\n\n set diameter(diameter: Maybe<number>) {\n this._diameter = diameter ?? DEFAULT_LOADING_PROGRESS_DIAMETER;\n }\n\n get bmode(): ProgressBarMode {\n return this.mode;\n }\n\n get smode(): ProgressSpinnerMode {\n return this.mode as ProgressSpinnerMode;\n }\n}\n","import { startWith, distinctUntilChanged, shareReplay, combineLatest, map, BehaviorSubject } from 'rxjs';\nimport { OnDestroy, Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { checkNgContentWrapperHasContent } from '@dereekb/dbx-core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { DbxThemeColor } from '../layout/style/style';\n\n/**\n * DbxBasicLoadingComponent loading state.\n */\nexport enum LoadingComponentState {\n NONE = -1,\n LOADING = 0,\n CONTENT = 1,\n ERROR = 2\n}\n\n/**\n * Basic loading component.\n */\n@Component({\n selector: 'dbx-basic-loading',\n templateUrl: './basic-loading.component.html'\n})\nexport class DbxBasicLoadingComponent implements OnDestroy {\n private _loading = new BehaviorSubject<Maybe<boolean>>(undefined);\n private _show = new BehaviorSubject<boolean>(true);\n private _error = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n private _customErrorContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n private _customLoadingContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n\n readonly state$ = combineLatest([this._loading, this._show, this._error]).pipe(\n map(([loading, show, error]) => {\n let state: LoadingComponentState;\n\n if (error) {\n state = LoadingComponentState.ERROR;\n } else if (loading == null) {\n // If loading has not yet been defined and no error has occured, we're waiting for some input on loading or error.\n state = LoadingComponentState.NONE;\n } else if (loading || !show) {\n state = LoadingComponentState.LOADING;\n } else {\n state = LoadingComponentState.CONTENT;\n }\n\n return state;\n }),\n distinctUntilChanged(),\n startWith(LoadingComponentState.NONE),\n shareReplay(1)\n );\n\n readonly error$ = this._error.asObservable();\n\n readonly hasNoCustomError$ = this._customErrorContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n readonly hasNoCustomLoading$ = this._customLoadingContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette | DbxThemeColor = 'primary';\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear: Maybe<boolean> = false;\n\n ngOnDestroy() {\n this._error.complete();\n this._loading.complete();\n this._show.complete();\n this._customErrorContent.complete();\n this._customLoadingContent.complete();\n }\n\n @Input()\n get show(): boolean {\n return this._show.value;\n }\n\n set show(show: Maybe<boolean>) {\n this._show.next(show ?? true);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._loading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._loading.next(loading);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._error.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._error.next(error);\n }\n\n @ViewChild('customError')\n set customErrorContent(customErrorContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customErrorContent.next(customErrorContent);\n }, 0);\n }\n\n @ViewChild('customLoading')\n set customLoadingContent(customLoadingContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customLoadingContent.next(customLoadingContent);\n }, 0);\n }\n}\n","<ng-container [ngSwitch]=\"state$ | async\">\n <ng-container *ngSwitchCase=\"0\">\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <!-- Content -->\n <ng-content></ng-content>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loadingTemplate>\n <dbx-loading-progress *ngIf=\"hasNoCustomLoading$ | async\" [mode]=\"mode\" [color]=\"color\" [text]=\"text\" [linear]=\"linear\" [diameter]=\"diameter\"></dbx-loading-progress>\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n <dbx-error *ngIf=\"hasNoCustomError$ | async\" [error]=\"error$ | async\"></dbx-error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n","import { BehaviorSubject, shareReplay, Observable, distinctUntilChanged, map, switchMap, combineLatest, of } from 'rxjs';\nimport { OnDestroy, Component, Input, ChangeDetectorRef, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { tapSafeMarkForCheck } from '@dereekb/dbx-core';\nimport { DbxThemeColor } from '../layout/style/style';\n\nexport interface DbxLoadingComponentState {\n loading: boolean;\n error: Maybe<ErrorInput>;\n}\n\n/**\n * Loading View component that provides content sections for loading, error, and an error action.\n */\n@Component({\n selector: 'dbx-loading',\n template: `\n <dbx-basic-loading [show]=\"show\" [color]=\"color\" [text]=\"text\" [mode]=\"mode\" [linear]=\"linear\" [diameter]=\"diameter\" [error]=\"error$ | async\" [loading]=\"loading$ | async\">\n <ng-content loading select=\"[loading]\"></ng-content>\n <div class=\"dbx-loading-linear-done-padding\" *ngIf=\"linear && padding && !(loading$ | async)\"></div>\n <ng-content></ng-content>\n <ng-content error select=\"[error]\"></ng-content>\n <ng-content errorAction select=\"[errorAction]\"></ng-content>\n </dbx-basic-loading>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxLoadingComponent implements OnDestroy {\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _context = new BehaviorSubject<Maybe<LoadingContext>>(undefined);\n private _inputLoading = new BehaviorSubject<Maybe<boolean>>(true);\n private _inputError = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n readonly state$: Observable<DbxLoadingComponentState> = combineLatest([this._inputLoading, this._inputError, this._context.pipe(switchMap((x) => (x != null ? x.stream$ : of(undefined))))]).pipe(\n map(([inputLoading, inputError, loadingState]) => {\n if (loadingState) {\n return loadingState as DbxLoadingComponentState;\n } else {\n return {\n loading: inputLoading ?? false,\n error: inputError\n };\n }\n }),\n distinctUntilChanged((a, b) => a.loading === b.loading && a.error === b.error),\n tapSafeMarkForCheck(this.cdRef),\n shareReplay(1)\n );\n\n readonly loading$ = this.state$.pipe(\n map((x) => x.loading),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly error$ = this.state$.pipe(\n map((x) => x.error),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input()\n show?: Maybe<boolean>;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n mode: ProgressBarMode = 'indeterminate';\n\n @Input()\n color: ThemePalette | DbxThemeColor = 'primary';\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n /**\n * Whether or not to add padding to the linear presentation when linear is complete. This prevents the linear bar from pushing content around.\n */\n @Input()\n padding?: Maybe<boolean>;\n\n ngOnDestroy() {\n this._context.complete();\n this._inputError.complete();\n this._inputLoading.complete();\n }\n\n @Input()\n get context(): Maybe<LoadingContext> {\n return this._context.value;\n }\n\n set context(context: Maybe<LoadingContext>) {\n this._context.next(context);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._inputLoading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._inputLoading.next(loading ?? false);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._inputError.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._inputError.next(error);\n }\n}\n","import { catchError, filter, exhaustMap, merge, map, Subject, switchMap, shareReplay, distinctUntilChanged, of, Observable, BehaviorSubject, first } from 'rxjs';\nimport { Component, Input, EventEmitter, Output, OnDestroy, ElementRef, HostListener, ChangeDetectorRef, Directive, inject } from '@angular/core';\nimport { DbxInjectionComponentConfig, tapDetectChanges } from '@dereekb/dbx-core';\nimport { SubscriptionObject, ListLoadingStateContextInstance, ListLoadingState, filterMaybe, isLoadingStateFinishedLoading, startWithBeginLoading } from '@dereekb/rxjs';\nimport { Maybe, Milliseconds } from '@dereekb/util';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\n\n/**\n * Direction the scroll was triggered moving.\n */\nexport type DbxListScrollDirectionTrigger = 'up' | 'down';\n\n/**\n * Used to trigger the loading of additional items.\n *\n * If an observable is returned it is used to throttle the loading of more items until it returns.\n */\nexport type DbxListLoadMoreHandler = () => Observable<void> | void;\n\n/**\n * DbxListComponent configuration.\n */\nexport interface DbxListConfig<T = unknown, V extends DbxListView<T> = DbxListView<T>> extends DbxInjectionComponentConfig<V> {\n /**\n * Whether or not to hide the list content when it is an empty list.\n */\n hideOnEmpty?: boolean;\n\n /**\n * Whether or not this list should scroll upward from the bottom, like a message list.\n */\n invertedList?: boolean;\n\n /**\n * Distance to scroll.\n */\n scrollDistance?: number;\n\n /**\n * Number of ms to throttle scrolling events.\n */\n throttle?: Milliseconds;\n\n /**\n * (Optional) onClick handler\n */\n onClick?: (value: T) => void;\n\n /**\n * (Optional) onSelection handler\n */\n onSelectionChange?: (selection: ListSelectionState<T>) => void;\n\n /**\n * (Optional) handler function to load more items.\n */\n loadMore?: DbxListLoadMoreHandler;\n\n /**\n * Default selection list value. If not defined, will default to 'view'.\n */\n defaultSelectionMode?: Maybe<DbxListSelectionMode>;\n}\n\n/**\n * Used to display a potentially infinitely scrollable list of content.\n *\n * This component is generally wrapped by another component that provides this one configuration.\n */\n@Component({\n selector: 'dbx-list',\n templateUrl: './list.component.html',\n host: {\n class: 'd-block dbx-list',\n '[class.dbx-list-padded]': 'padded'\n }\n})\nexport class DbxListComponent<T = unknown, V extends DbxListView<T> = DbxListView<T>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy {\n readonly cdRef = inject(ChangeDetectorRef);\n\n readonly DEFAULT_SCROLL_DISTANCE = 1.5;\n readonly DEFAULT_THROTTLE_SCROLL = 50;\n\n /**\n * Whether or not to add bottom padding to the list content.\n */\n @Input()\n padded = true;\n\n @Output()\n readonly contentScrolled = new EventEmitter<number>();\n\n private _content: Maybe<DbxListInternalContentDirective>;\n private _disabled = new BehaviorSubject<boolean>(false);\n private _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n\n private _loadMoreTrigger = new Subject<void>();\n private _scrollTrigger = new Subject<DbxListScrollDirectionTrigger>();\n private _config = new BehaviorSubject<Maybe<DbxListConfig<T, V>>>(undefined);\n\n private _loadMoreSub = new SubscriptionObject();\n private _onClickSub = new SubscriptionObject();\n private _disabledSub = new SubscriptionObject();\n private _selectionModeSub = new SubscriptionObject();\n private _onSelectionChangeSub = new SubscriptionObject();\n\n readonly context = new ListLoadingStateContextInstance<T, S>({ showLoadingOnNoValue: false });\n readonly isEmpty$ = this.context.isEmpty$;\n readonly isEmptyLoading$ = this.context.isEmptyLoading$;\n readonly isEmptyAndNotLoading$ = this.context.isEmptyAndNotLoading$;\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n readonly hideOnEmpty$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x.hideOnEmpty)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly invertedList$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x?.throttle)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly throttleScroll$: Observable<number> = this._config.pipe(\n map((x) => x?.throttle ?? this.DEFAULT_THROTTLE_SCROLL),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly scrollDistance$: Observable<number> = this._config.pipe(\n map((x) => x?.scrollDistance ?? this.DEFAULT_SCROLL_DISTANCE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly scrollLoadMoreTrigger$ = this._config.pipe(\n switchMap((config) => {\n const loadNextDirection = config?.invertedList ? 'up' : 'down';\n return this._scrollTrigger.pipe(filter((x) => x === loadNextDirection));\n })\n );\n\n readonly loadMore$ = merge(this.scrollLoadMoreTrigger$, this._loadMoreTrigger);\n\n readonly injectedComponentConfig$: Observable<Maybe<DbxInjectionComponentConfig<V>>> = this._config.pipe(\n distinctUntilChanged(),\n map((config) => {\n let injectedComponentConfig: Maybe<DbxInjectionComponentConfig<V>>;\n\n if (config) {\n const { componentClass, init, onClick, onSelectionChange, loadMore, defaultSelectionMode = 'view' } = config;\n\n injectedComponentConfig = {\n componentClass: config.componentClass,\n injector: config.injector,\n init: (instance: V) => {\n // Synchronize disabled\n this._disabledSub.subscription = this.disabled$.subscribe((disabled) => instance.setDisabled(disabled));\n this._selectionModeSub.subscription = this.selectionMode$.subscribe((selectionMode) => instance.setSelectionMode(selectionMode ?? defaultSelectionMode));\n\n if (init) {\n init(instance);\n }\n\n instance.setListContext(this.context);\n\n if (loadMore) {\n this._loadMoreSub.subscription = this.loadMore$\n .pipe(\n // Throttle additional loading calls using exhaustMap until observable returns, if one is returned.\n exhaustMap(() => {\n const result = loadMore();\n let obs: Observable<void>;\n\n if (result) {\n obs = result.pipe(catchError(() => of()));\n } else {\n obs = of();\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n if (onClick) {\n if (instance.clickValue) {\n this._onClickSub.subscription = instance.clickValue.subscribe(onClick);\n } else {\n console.error(`onClick() was passed to listConfig, but target class ${componentClass} has no clicked event emitter.`);\n }\n }\n\n if (onSelectionChange) {\n if (instance.selectionChange) {\n this._onSelectionChangeSub.subscription = instance.selectionChange.subscribe(onSelectionChange);\n } else {\n console.error(`onSelectionChange() was passed to listConfig, but target class ${componentClass} has no selectionChange event emitter.`);\n }\n }\n }\n };\n }\n\n return injectedComponentConfig;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hideContent$: Observable<boolean> = this.context.stateChange$.pipe(\n switchMap(() =>\n this.context.state$.pipe(\n filter((x) => isLoadingStateFinishedLoading(x)),\n first(),\n startWithBeginLoading()\n )\n ),\n switchMap((state) => {\n if (state?.loading) {\n return of(true);\n } else {\n return this.hideOnEmpty$.pipe(\n switchMap((hide) => (hide === false ? of(false) : this.isEmpty$)),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n }\n })\n );\n\n ngOnDestroy(): void {\n delete this._content; // remove parent-child relation.\n this._scrollTrigger.complete();\n this._loadMoreTrigger.complete();\n this._config.complete();\n this._disabled.complete();\n this._selectionMode.complete();\n\n this._onClickSub.destroy();\n this._loadMoreSub.destroy();\n this._onSelectionChangeSub.destroy();\n this._disabledSub.destroy();\n\n this.context.destroy();\n }\n\n @Input()\n get state$(): Observable<S> {\n return this.context.state$;\n }\n\n set state$(state$: Maybe<Observable<S>>) {\n this.context.setStateObs(state$);\n }\n\n @Input()\n set config(config: Maybe<DbxListConfig<T, V>>) {\n this._config.next(config);\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled.value;\n }\n\n set disabled(disabled: Maybe<boolean>) {\n this._disabled.next(disabled ?? false);\n }\n\n @Input()\n get selectionMode(): Maybe<DbxListSelectionMode> {\n return this._selectionMode.value;\n }\n\n set selectionMode(selectionMode: Maybe<DbxListSelectionMode>) {\n this._selectionMode.next(selectionMode);\n }\n\n getScrollPositionRelativeToBottom(): number {\n try {\n const element = this.nativeElement;\n\n // At max scroll, scrollHeight = scrollTop + clientHeight;\n const { scrollTop, scrollHeight, clientHeight } = element;\n return scrollHeight - (scrollTop + clientHeight);\n } catch (e) {\n return 0;\n }\n }\n\n jumpToBottom(): void {\n try {\n this.nativeElement.scrollTop = this.nativeElement.scrollHeight;\n } catch (err) {\n // do nothing.\n }\n }\n\n jumpToPositionRelativeToBottom(pos: number): void {\n try {\n const element = this.nativeElement;\n const { scrollHeight, clientHeight } = element;\n element.scrollTop = scrollHeight - (clientHeight + pos);\n } catch (err) {\n // do nothing.\n }\n }\n\n onScrollDown(): void {\n this._scrollTrigger.next('down');\n }\n\n onScrollUp(): void {\n this._scrollTrigger.next('up');\n }\n\n loadMore(): void {\n this._loadMoreTrigger.next();\n }\n\n // MARK: Internal\n get nativeElement() {\n return this.__content.elementRef.nativeElement;\n }\n\n get __content(): DbxListInternalContentDirective {\n return this._content as DbxListInternalContentDirective;\n }\n\n set __content(content: DbxListInternalContentDirective) {\n if (this._content == null) {\n this._content = content;\n } else {\n throw new Error('Attempted to set __content in list outside of initialization.');\n }\n }\n}\n\n/**\n * Used internally by DbxListComponent\n */\n@Directive({\n selector: '[dbxListInternalContent]',\n host: {\n class: 'd-block dbx-list-content',\n '[class.dbx-list-content-hidden]': 'hide'\n }\n})\nexport class DbxListInternalContentDirective {\n private readonly parent = inject(DbxListComponent);\n readonly elementRef = inject(ElementRef);\n\n @Input()\n hide: Maybe<boolean> = false;\n\n constructor() {\n this.parent.__content = this;\n }\n\n @HostListener('scroll', ['$event'])\n onScrollEvent($event: Event): void {\n const position = ($event.target as Element).scrollTop;\n this.parent.contentScrolled.emit(position);\n }\n}\n","<dbx-loading [context]=\"context\" [linear]=\"true\"></dbx-loading>\n<div dbxListInternalContent [hide]=\"hideContent$ | async\" infinite-scroll [infiniteScrollDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [infiniteScrollUpDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [infiniteScrollThrottle]=\"(throttleScroll$ | async) ?? DEFAULT_THROTTLE_SCROLL\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\" (scrolledUp)=\"onScrollUp()\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-injection [config]=\"injectedComponentConfig$ | async\"></dbx-injection>\n <ng-content select=\"[bottom]\"></ng-content>\n</div>\n<ng-content *ngIf=\"isEmptyAndNotLoading$ | async\" select=\"[empty]\"></ng-content>\n<ng-content *ngIf=\"isEmptyLoading$ | async\" select=\"[emptyLoading]\"></ng-content>\n","import { ListLoadingState, filterMaybe, ObservableOrValue, valueFromObservableOrValue } from '@dereekb/rxjs';\nimport { Observable, BehaviorSubject, map, shareReplay } from 'rxjs';\nimport { Output, EventEmitter, OnDestroy, Directive, Input } from '@angular/core';\nimport { DbxListConfig } from './list.component';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxListViewWrapper } from './list.wrapper';\n\nexport const DEFAULT_STATIC_LIST_DIRECTIVE_TEMPLATE = `\n<dbx-list [config]=\"config\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n</dbx-list>\n`;\n\n// MARK: Wrapper\nexport const DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE = `\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n</dbx-list>\n`;\n\nexport type DbxListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListConfig<T, V>, 'onClick' | 'loadMore'>;\n\n@Directive()\nexport abstract class AbstractDbxListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxListWrapperConfig<T, V> = DbxListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy, DbxListViewWrapper<T, S> {\n private readonly _initialConfig = new BehaviorSubject<Maybe<ObservableOrValue<C>>>(undefined);\n\n readonly config$ = this._initialConfig.pipe(\n filterMaybe(),\n valueFromObservableOrValue(),\n map((x: C) => this._buildListConfig(x)),\n shareReplay(1)\n );\n\n @Input()\n disabled?: Maybe<boolean>;\n\n @Input()\n selectionMode?: Maybe<DbxListSelectionMode>;\n\n @Input()\n state$?: Maybe<Observable<S>>;\n\n @Output()\n readonly clickItem = new EventEmitter<T>();\n\n @Output()\n readonly loadMore = new EventEmitter<void>();\n\n constructor(initConfig: ObservableOrValue<C>) {\n this._initialConfig.next(initConfig);\n }\n\n ngOnDestroy(): void {\n this._initialConfig.complete();\n this.clickItem.complete();\n this.loadMore.complete();\n }\n\n protected _buildListConfig(config: C): DbxListConfig<T, V> {\n return {\n ...config,\n onClick: (x) => this.clickItem.emit(x),\n loadMore: () => this.loadMore.emit()\n };\n }\n}\n\n// MARK: Selection Wrapper\nexport type DbxSelectionListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListWrapperConfig<T, V>, 'onSelectionChange'>;\n\n@Directive()\nexport abstract class AbstractDbxSelectionListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxSelectionListWrapperConfig<T, V> = DbxSelectionListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> extends AbstractDbxListWrapperDirective<T, V, C, S> implements OnDestroy {\n @Output()\n selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n override ngOnDestroy(): void {\n this.selectionChange.complete();\n }\n\n protected override _buildListConfig(config: C): DbxListConfig<T, V> {\n const result = super._buildListConfig(config);\n result.onSelectionChange = (x) => this.selectionChange.next(x);\n return result;\n }\n}\n","import { Directive, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to an ActionContext.\n */\n@Directive({\n selector: '[dbxActionError]'\n})\nexport class DbxActionErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly error = inject(DbxReadableErrorComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n ngOnInit(): void {\n this.sub = this.source.error$.subscribe((error) => {\n this.error.error = error;\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ReadableError, ServerError, ServerErrorResponse, UnauthorizedServerErrorResponse, build } from '@dereekb/util';\n\n/**\n * Converts the error response to a POJO.\n */\nexport function convertToPOJOServerErrorResponse(httpError: HttpErrorResponse | object): ServerError {\n const result: ServerErrorResponse | undefined = convertToServerErrorResponse(httpError);\n const pojo: ServerErrorResponse = build({\n base: Object.assign({}, result),\n build: (x) => {\n if (x.data) {\n try {\n const stringy = JSON.stringify(pojo.data);\n x.data = JSON.parse(stringy);\n } catch (e) {\n console.warn('convertToPOJOServerErrorResponse(): Non-serializable Error Data Detected. It is being removed.: ', pojo.data);\n x.data = undefined;\n }\n }\n }\n });\n\n return pojo;\n}\n\n/**\n * Converts an HTTP Error Response to a ServerErrorResponse type.\n *\n * @param error\n * @returns\n */\nexport function convertToServerErrorResponse(error: HttpErrorResponse | object): ServerErrorResponse | undefined {\n let result: ServerErrorResponse | undefined;\n\n if (error instanceof HttpErrorResponse) {\n const { status, error: data }: { status: number; error: ServerError } = error;\n\n const code = data.code;\n const message = data.message ?? error.statusText;\n\n switch (status) {\n case 401:\n result = new UnauthorizedServerErrorResponse({ message, data, code });\n break;\n default:\n result = new ServerErrorResponse({ code, status, data, message });\n break;\n }\n } else if (error) {\n result = new ServerErrorResponse({ message: (error as ReadableError).message, status: 0 });\n }\n\n return result;\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to a LoadingContext.\n *\n * The error from the context is given to the app error when available.\n */\n@Directive({\n selector: '[dbxLoadingError]'\n})\nexport class DbxLoadingErrorDirective extends AbstractSubscriptionDirective {\n readonly error = inject(DbxReadableErrorComponent, { host: true });\n\n /**\n * Sets a LoadingContext that is watched for the loading state.\n */\n @Input('dbxLoadingError')\n set context(context: LoadingContext) {\n let subscription;\n\n if (context) {\n subscription = context.stream$.subscribe((x) => {\n this.error.error = x.error;\n });\n }\n\n this.sub = subscription;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, UnitedStatesAddressWithContact } from '@dereekb/util';\n\n// prettier-ignore\n@Component({\n selector: 'dbx-us-address',\n template: `\n <ng-container *ngIf=\"address\">\n <div *ngIf=\"address.name\" class=\"addr-name\">{{ address.name }}</div>\n <div *ngIf=\"address.phone\" class=\"addr-phone\">{{ address.phone }}</div>\n <div *ngIf=\"address.line1\" class=\"addr-line1\">{{ address.line1 }}</div>\n <div *ngIf=\"address.line2\" class=\"addr-line2\">{{ address.line2 }}</div>\n <div class=\"city-state-zip\">\n <span class=\"addr-city\">{{ address.city }}</span>\n <span *ngIf=\"address.state || address.zip\">, </span>\n <span class=\"addr-state\">{{ address.state }} </span>\n <span class=\"addr-zip\">{{ address.zip }}</span>\n </div>\n </ng-container>\n `,\n host: {\n class: 'dbx-us-address'\n }\n})\nexport class DbxUnitedStatesAddressComponent {\n @Input()\n address: Maybe<Partial<UnitedStatesAddressWithContact>>;\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-detail-block-header',\n template: `\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"dbx-detail-block-header-label\">{{ header }}</span>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-detail-block-header',\n '[class]': '{ \"dbx-detail-block-header-no-icon\": !icon }'\n }\n})\nexport class DbxDetailBlockHeaderComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Header and details offset with an icon.\n */\n@Component({\n selector: 'dbx-detail-block',\n template: `\n <dbx-detail-block-header [icon]=\"icon\" [header]=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </dbx-detail-block-header>\n <div class=\"dbx-detail-block-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-detail-block d-block'\n }\n})\nexport class DbxDetailBlockComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Icon spacer directive.\n */\n@Directive({\n selector: 'dbx-icon-spacer,[dbxIconSpacer]',\n host: {\n class: 'dbx-icon-spacer d-inline'\n }\n})\nexport class DbxIconSpacerDirective {}\n","import { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport linkifyStr from 'linkify-string';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Used to \"linkify\" the input text.\n */\n@Component({\n selector: 'dbx-linkify',\n template: `\n <span [innerHTML]=\"linkifiedBody$ | async\"></span>\n `,\n host: {\n class: 'dbx-i dbx-linkify'\n }\n})\nexport class DbxLinkifyComponent implements OnDestroy {\n private readonly sanitizer = inject(DomSanitizer);\n\n private _text = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly linkifiedText$ = this._text.pipe(\n distinctUntilChanged(),\n map((x) =>\n x\n ? linkifyStr(x, {\n defaultProtocol: 'https',\n target: {\n url: '_blank'\n }\n })\n : undefined\n ),\n shareReplay(1)\n );\n\n readonly linkifiedBody$ = this.linkifiedText$.pipe(\n map((x) => {\n return x ? this.sanitizer.bypassSecurityTrustHtml(x) : undefined;\n }),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._text.complete();\n }\n\n @Input()\n get text(): Maybe<string> {\n return this._text.value;\n }\n\n set text(text: Maybe<string>) {\n this._text.next(text);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Directive({\n selector: 'dbx-chip',\n host: {\n class: 'dbx-chip mat-standard-chip',\n '[class]': 'style'\n }\n})\nexport class DbxChipDirective {\n @Input()\n small?: Maybe<boolean>;\n\n @Input()\n block?: Maybe<boolean>;\n\n get style() {\n let style = this.small ? 'dbx-chip-small' : '';\n\n if (this.block) {\n style = style + ' dbx-chip-block';\n }\n\n return style;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface TextChip<T = unknown> {\n text: string;\n tooltip?: string;\n selected?: boolean;\n color?: 'primary' | 'accent' | 'warn' | undefined;\n data?: T;\n}\n\n@Component({\n selector: 'dbx-text-chips',\n template: `\n <mat-chip-listbox class=\"dbx-text-chips-listbox\" *ngIf=\"chips\">\n <mat-chip-option *ngFor=\"let chip of chips; trackBy: trackChipByText\" [selected]=\"chip.selected ?? defaultSelection\" [color]=\"chip.color\" [matTooltip]=\"chip.tooltip!\" matTooltipPosition=\"above\">\n {{ chip.text }}\n </mat-chip-option>\n </mat-chip-listbox>\n `\n})\nexport class DbxTextChipsComponent<T = unknown> {\n @Input()\n defaultSelection?: boolean;\n\n @Input()\n chips?: Maybe<TextChip<T>[]>;\n\n trackChipByText(index: number, chip: TextChip<T>) {\n return chip.text;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DbxUnitedStatesAddressComponent } from './address.component';\nimport { DbxDetailBlockComponent } from './detail.block.component';\nimport { DbxDetailBlockHeaderComponent } from './detail.block.header.component';\nimport { DbxIconSpacerDirective } from './icon.spacer.component';\nimport { DbxLabelBlockComponent } from './label.block.component';\nimport { DbxLinkifyComponent } from './linkify.component';\nimport { DbxChipDirective } from './text.chip.directive';\nimport { DbxTextChipsComponent } from './text.chips.component';\n\nconst declarations = [DbxUnitedStatesAddressComponent, DbxChipDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxLabelBlockComponent, DbxLinkifyComponent, DbxTextChipsComponent, DbxIconSpacerDirective];\n\n@NgModule({\n imports: [CommonModule, MatChipsModule, MatTooltipModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxTextModule {}\n","import { Component, OnDestroy, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { ErrorInput, MS_IN_MINUTE, TimerInstance, toggleTimerRunning } from '@dereekb/util';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { BehaviorSubject, from } from 'rxjs';\n\nexport type DbxErrorSnackbarConfig = Omit<MatSnackBarConfig<any>, 'data' | 'viewContainerRef'>;\n\nexport interface DbxErrorSnackbarData<T extends ErrorInput = ErrorInput> {\n /**\n * The error being passed to the error view.\n */\n readonly error: T;\n /**\n * Duration to show the error before closing while not interacting with the error view.\n *\n * While the error's info view is open the snackbar will not automatically be dismissed.\n */\n readonly duration?: number;\n}\n\n/**\n * A snackbar orientation for an error.\n */\n@Component({\n templateUrl: './error.snackbar.component.html'\n})\nexport class DbxErrorSnackbarComponent implements OnDestroy {\n readonly snackBarRef = inject(MatSnackBarRef<DbxErrorSnackbarComponent>);\n readonly data = inject<DbxErrorSnackbarData>(MAT_SNACK_BAR_DATA);\n\n private _allowAutoDismiss = Boolean(this.data.duration);\n\n private _popoverOpen = new BehaviorSubject<boolean>(false);\n private _autoDismissTimer = new TimerInstance(this.data.duration ?? MS_IN_MINUTE, this._allowAutoDismiss);\n\n private _popoverSub = new SubscriptionObject();\n private _popoverSyncSub = new SubscriptionObject(this._popoverOpen.subscribe((x) => toggleTimerRunning(this._autoDismissTimer, !x)));\n private _autoDismissSub = new SubscriptionObject(from(this._autoDismissTimer.promise).subscribe(() => this.dismiss()));\n\n get error() {\n return this.data.error;\n }\n\n ngOnInit(): void {\n if (!this._allowAutoDismiss) {\n this._popoverSyncSub.destroy();\n this._autoDismissSub.destroy();\n }\n }\n\n ngOnDestroy(): void {\n this._popoverOpen.complete();\n this._popoverSub.destroy();\n this._popoverSyncSub.destroy();\n this._autoDismissSub.destroy();\n this._autoDismissTimer.destroy();\n }\n\n static showErrorSnackbar(matSnackbar: MatSnackBar, error: ErrorInput, config?: DbxErrorSnackbarConfig) {\n matSnackbar.openFromComponent(DbxErrorSnackbarComponent, {\n ...config,\n duration: undefined, // do pass duration to matSnackbar. Component will handle it.\n panelClass: [...(config?.panelClass ?? []), 'dbx-error-snackbar'], // add the snackbar error class\n data: {\n error,\n duration: config?.duration\n }\n });\n }\n\n errorPopoverOpen(popover: NgPopoverRef) {\n this._popoverOpen.next(true);\n this._popoverSub.subscription = popover.afterClosed$.subscribe(() => {\n this._popoverOpen.next(false);\n });\n }\n\n dismiss() {\n return this.snackBarRef.dismiss();\n }\n}\n","<div class=\"dbx-error-snackbar-content\">\n <dbx-error [error]=\"error\" (popoverOpen)=\"errorPopoverOpen($event)\"></dbx-error>\n <div class=\"dbx-spacer\"></div>\n <button class=\"dbx-error-snackbar-content-button\" mat-icon-button aria-label=\"dismiss error\" (click)=\"dismiss()\">\n <mat-icon>close</mat-icon>\n </button>\n</div>\n","import { Injectable, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { DbxErrorSnackbarComponent, DbxErrorSnackbarConfig } from './error.snackbar.component';\n\n/**\n * Service used to show errors in the snackbar.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorSnackbarService {\n readonly matSnackbar = inject(MatSnackBar);\n\n private _defaultConfig: DbxErrorSnackbarConfig = {\n politeness: 'polite',\n announcementMessage: 'An error has occurred',\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n };\n\n get defaultConfig() {\n return this._defaultConfig;\n }\n\n setDefaultConfig(defaultConfig: DbxErrorSnackbarConfig) {\n this._defaultConfig = defaultConfig;\n }\n\n showSnackbarError(error: ErrorInput, inputConfig?: Maybe<DbxErrorSnackbarConfig>) {\n const config = {\n ...inputConfig,\n ...this._defaultConfig\n };\n\n return DbxErrorSnackbarComponent.showErrorSnackbar(this.matSnackbar, error, config);\n }\n}\n","import { Directive, Input, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorSnackbarService } from './error.snackbar.service';\nimport { Maybe, Milliseconds, toReadableError } from '@dereekb/util';\nimport { DbxErrorSnackbarConfig } from './error.snackbar.component';\nimport { filterMaybe } from '@dereekb/rxjs';\n\n/**\n * Context used for displaying an error from an ActionContext a snackbar when an ReadableErrorComponent\n */\n@Directive({\n selector: '[dbxActionSnackbarError]'\n})\nexport class DbxActionSnackbarErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly dbxErrorSnackbarService = inject(DbxErrorSnackbarService);\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n @Input('dbxActionSnackbarError')\n config?: Maybe<DbxErrorSnackbarConfig> | Milliseconds | '';\n\n ngOnInit(): void {\n this.sub = this.source.error$.pipe(filterMaybe()).subscribe((inputError) => {\n const error = toReadableError(inputError);\n const config = this.config ? (typeof this.config === 'number' ? { duration: this.config } : this.config) : undefined;\n this.dbxErrorSnackbarService.showSnackbarError(error, config);\n });\n }\n}\n","import { MatIconModule } from '@angular/material/icon';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbxReadableErrorComponent } from './error.component';\nimport { DbxLoadingErrorDirective } from './error.loading.directive';\nimport { DbxActionErrorDirective } from './error.action.directive';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxErrorDetailsComponent } from './error.details.component';\nimport { DbxPopoverInteractionContentModule } from '../interaction/popover/popover.content.module';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\nimport { DbxTextModule } from '../layout/text/text.module';\nimport { DbxErrorViewComponent } from './error.view.component';\nimport { DbxErrorSnackbarComponent } from './error.snackbar.component';\nimport { DbxActionSnackbarErrorDirective } from './error.snackbar.action.directive';\n\nconst declarations = [\n //\n DbxReadableErrorComponent,\n DbxLoadingErrorDirective,\n DbxActionErrorDirective,\n DbxActionSnackbarErrorDirective,\n DbxErrorViewComponent,\n DbxErrorSnackbarComponent,\n DbxErrorPopoverComponent,\n DbxErrorDetailsComponent,\n DbxErrorWidgetViewComponent,\n DbxErrorDefaultErrorWidgetComponent\n];\n\n@NgModule({\n imports: [CommonModule, DbxTextModule, DbxInjectionComponentModule, DbxPopoverInteractionContentModule, MatButtonModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxReadableErrorModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { convertToPOJOServerErrorResponse } from './error.api';\nimport { catchError, MonoTypeOperatorFunction, of } from 'rxjs';\nimport { ActionCreator, TypedAction } from '@ngrx/store/src/models';\nimport { ServerError } from '@dereekb/util';\n\nexport interface ServerErrorParams {\n error: ServerError;\n}\n\n/**\n * Converts the error response to ServerErrorParams.\n */\nexport function convertServerErrorParams(httpError: HttpErrorResponse | object): ServerErrorParams {\n const error: ServerError = convertToPOJOServerErrorResponse(httpError);\n return { error };\n}\n\n/**\n * Catches error server params and feeds them to an action that takes ServerErrorParams as a prop.\n */\nexport function catchErrorServerParams<E extends ServerErrorParams, T extends string>(action: ActionCreator<T, (props: E) => E & TypedAction<T>>, mapError: (error: ServerErrorParams) => E = (error) => error as E): MonoTypeOperatorFunction<E & TypedAction<T>> {\n return catchError((error: HttpErrorResponse | object) => {\n const serverErrorParams = convertServerErrorParams(error);\n const mappedError: E = mapError(serverErrorParams);\n const act = action(mappedError);\n return of(act);\n });\n}\n","import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Directive, OnInit, OnDestroy, inject } from '@angular/core';\nimport { LoadingStateContextInstance } from '@dereekb/rxjs';\nimport { DbxLoadingComponent } from './loading.component';\n\n/**\n * Context used for linking a loadingComponent to an ActionContext by providing a LoadingContext.\n */\n@Directive({\n selector: '[dbxActionLoadingContext]'\n})\nexport class DbxActionLoadingContextDirective implements OnInit, OnDestroy {\n readonly loadingComponent = inject(DbxLoadingComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n private _context = new LoadingStateContextInstance({ obs: this.source.loadingState$ });\n\n get context() {\n return this._context;\n }\n\n ngOnInit(): void {\n this.loadingComponent.context = this._context;\n }\n\n ngOnDestroy(): void {\n this._context.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DbxLoadingComponent } from './loading.component';\nimport { DbxReadableErrorModule } from '../error';\nimport { DbxActionLoadingContextDirective } from './loading.action.directive';\n\nconst declarations = [DbxLoadingComponent, DbxBasicLoadingComponent, DbxLoadingProgressComponent, DbxActionLoadingContextDirective];\n\n@NgModule({\n imports: [CommonModule, DbxReadableErrorModule, MatProgressSpinnerModule, MatProgressBarModule],\n declarations,\n exports: [...declarations, MatProgressSpinnerModule, MatProgressBarModule]\n})\nexport class DbxLoadingModule {}\n","import { Observable } from 'rxjs';\nimport { ListLoadingState, ListLoadingStateContext } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, TrackByFunction, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport type DbxListSelectionMode = 'select' | 'view';\n\nexport interface ListSelectionStateItem<T> {\n disabled?: boolean;\n selected?: boolean;\n itemValue: T;\n}\n\nexport interface ListSelectionState<T> {\n items: ListSelectionStateItem<T>[];\n}\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxListView<T, S extends ListLoadingState<T> = ListLoadingState<T>> {\n /**\n * Current disabled state.\n */\n abstract readonly disabled$: Observable<boolean>;\n /**\n * (Optional) current selection mode.\n */\n abstract readonly selectionMode$?: Observable<Maybe<DbxListSelectionMode>>;\n /**\n * Values of the list view.\n */\n abstract readonly values$: Observable<T[]>;\n /**\n * Track by configuration.\n */\n abstract trackBy?: TrackByFunction<T>;\n /**\n * (Optional) clicked event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract clickValue?: EventEmitter<T>;\n /**\n * (Optional) selection changed event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract selectionChange?: EventEmitter<ListSelectionState<T>>;\n /**\n * Sets the models input loading state context for the view to render from.\n */\n abstract setListContext(state: ListLoadingStateContext<T, S>): void;\n /**\n * Sets the disabled state of the list view.\n */\n abstract setDisabled(disabled: boolean): void;\n /**\n * Sets the selection mode of the list view.\n */\n abstract setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void;\n}\n\n// eslint-disable-next-line\nexport function provideDbxListView<V extends DbxListView<any>>(sourceType: Type<V>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { forwardRef, InjectionToken, Provider, StaticProvider, Type } from '@angular/core';\nimport { ClickableAnchor, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { map, Observable, of } from 'rxjs';\nimport { DecisionFunction, type Maybe } from '@dereekb/util';\n\nexport const DBX_VALUE_LIST_VIEW_ITEM = new InjectionToken<unknown>('DbxValueListViewItem');\n\nexport interface DbxValueListItem<T, M = unknown> {\n itemValue: T;\n /**\n * Arbitrary meta details available to the meta component.\n */\n meta?: M;\n icon?: string;\n disabled?: boolean;\n rippleDisabled?: boolean;\n selected?: boolean;\n anchor?: Maybe<ClickableAnchor>;\n}\n\nexport type DbxValueListItemDecisionFunction<T> = DecisionFunction<DbxValueListItem<T>>;\n\n/**\n * Convenience function for mapping a DecisionFunction for a value to a DecisionFunction for a DbxValueListItem with the same value type.\n * @param decisionFunction\n * @returns\n */\nexport function dbxValueListItemDecisionFunction<T>(decisionFunction: DecisionFunction<T>): DbxValueListItemDecisionFunction<T> {\n return (item) => decisionFunction(item.itemValue);\n}\n\n/**\n * Special type used with values that contain all the items of DbxValueListItem internally.\n */\nexport type DbxValueAsListItem<T> = T & Omit<DbxValueListItem<DbxValueListItem<T>>, 'itemValue'>;\n\nexport interface AbstractDbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxInjectionComponentConfig<V> {\n mapValuesToItemValues?(values: T[]): Observable<I[]>;\n metaConfig?: DbxInjectionComponentConfig<any>;\n}\n\nexport const DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES = <T, I extends DbxValueListItem<T>>(itemValues: T[]) => of(itemValues.map((itemValue) => ({ itemValue })) as I[]);\n\nexport type DbxValueListItemConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> = I & {\n config: DbxInjectionComponentConfig<V>;\n metaConfig?: DbxInjectionComponentConfig<any>;\n};\n\nexport function mapValuesToValuesListItemConfigObs<T, I extends DbxValueListItem<T>, V = unknown>(listViewConfig: AbstractDbxValueListViewConfig<T, I, V>, itemValues: T[]): Observable<DbxValueListItemConfig<T, I, V>[]> {\n const makeObs = listViewConfig.mapValuesToItemValues ?? DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES;\n return makeObs(itemValues).pipe(\n map((listItems: I[]) => {\n const listItemConfigs: DbxValueListItemConfig<T, I, V>[] = addConfigToValueListItems<T, I, V>(listViewConfig, listItems);\n return listItemConfigs;\n })\n );\n}\n\n/**\n * Adds config to the input value list items.\n *\n * @param listViewConfig\n * @param listItems\n * @returns\n */\nexport function addConfigToValueListItems<T, I extends DbxValueListItem<T>, V = unknown>(listViewConfig: AbstractDbxValueListViewConfig<T, I, V>, listItems: I[]): DbxValueListItemConfig<T, I, V>[] {\n const itemConfigs: DbxValueListItemConfig<T, I, V>[] = listItems.map((listItem: I) => {\n const anchor = listItem.anchor;\n\n listItem.disabled = listItem.disabled || anchor?.disabled;\n (listItem as DbxValueListItemConfig<T, I, V>).config = Object.assign({}, listViewConfig, {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n },\n ...(listViewConfig.providers ?? [])\n ] as StaticProvider[]\n });\n\n // only attach meta config if it is configured\n if (listViewConfig.metaConfig) {\n (listItem as DbxValueListItemConfig<T, I, V>).metaConfig = Object.assign({}, listViewConfig.metaConfig, {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n },\n ...(listViewConfig.metaConfig?.providers ?? [])\n ] as StaticProvider[]\n });\n }\n\n return listItem as DbxValueListItemConfig<T, I, V>;\n });\n\n return itemConfigs;\n}\n\n// MARK: ValueListView\nexport abstract class DbxValueListView<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly items$: Observable<I[]>;\n}\n\nexport function provideDbxValueListView<V extends DbxValueListView<unknown>>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Maybe, maybeModifierMapToFunction, ModifierFunction } from '@dereekb/util';\nimport { OnDestroy, Input, Directive, inject } from '@angular/core';\nimport { filterMaybe, mapForEach } from '@dereekb/rxjs';\nimport { BehaviorSubject, distinctUntilChanged, shareReplay, combineLatest, switchMap, map, Observable, of } from 'rxjs';\nimport { DbxListView } from './list.view';\nimport { AbstractDbxValueListViewConfig, DbxValueListItem, DbxValueListItemConfig, DbxValueListView, mapValuesToValuesListItemConfigObs } from './list.view.value';\nimport { DbxValueListItemModifier } from './list.view.value.modifier';\n\n/**\n * Abstract list directive that takes in items and a AbstractDbxValueItemListViewConfig configuration.\n */\n@Directive()\nexport abstract class AbstractDbxValueListViewDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends AbstractDbxValueListViewConfig<T, I, V> = AbstractDbxValueListViewConfig<T, I, V>> implements DbxValueListView<T, I>, OnDestroy {\n readonly dbxListView = inject(DbxListView<T>);\n readonly dbxValueListViewModifier = inject(DbxValueListItemModifier<T, I>, { optional: true });\n\n private _config = new BehaviorSubject<Maybe<C>>(undefined);\n readonly config$ = this._config.pipe(filterMaybe(), distinctUntilChanged());\n\n readonly modifyFn$: Observable<Maybe<ModifierFunction<I>>> = this.dbxValueListViewModifier ? this.dbxValueListViewModifier.modifiers$.pipe(map(maybeModifierMapToFunction)) : of(undefined);\n\n readonly items$: Observable<DbxValueListItemConfig<T, I>[]> = combineLatest([this.config$, this.dbxListView.values$, this.modifyFn$]).pipe(\n switchMap(([listViewConfig, values, modifyFn]) => mapValuesToValuesListItemConfigObs<T, I, V>(listViewConfig, values).pipe(mapForEach(modifyFn)) as Observable<DbxValueListItemConfig<T, I>[]>),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<C>) {\n this._config.next(config);\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n}\n","import { CssClassesArray, Maybe, UniqueModel } from '@dereekb/util';\nimport { DbxValueListItem, DbxValueListItemConfig } from './list.view.value';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Provider, Type, forwardRef } from '@angular/core';\nimport { ObservableOrValue } from '@dereekb/rxjs';\n\n/**\n * A group of DbxValueListItem values, grouped by common data, name, and id.\n */\nexport interface DbxValueListItemGroup<G, T, I extends DbxValueListItem<T>, H = unknown, F = unknown> extends Omit<DbxValueListItem<any>, 'itemValue' | 'icon'>, Readonly<Required<UniqueModel>> {\n readonly data: G;\n readonly items: DbxValueListItemConfig<T, I>[];\n /**\n * (Optional) View configuration for the group's header.\n */\n readonly headerConfig?: Maybe<DbxInjectionComponentConfig<H>>;\n /**\n * (Optional) View configuration for the group's header.\n */\n readonly footerConfig?: Maybe<DbxInjectionComponentConfig<F>>;\n /**\n * Whether or not to show the group's items. Defaults to true.\n */\n readonly showGroupItems?: boolean;\n /**\n * Custom CSS classes to apply to all groups.\n */\n readonly cssClasses?: CssClassesArray;\n}\n\n/**\n * Function that generates an array of DbxValueListItemGroup values from a list of items.\n */\nexport type DbxValueListViewGroupValuesFunction<G, T, I extends DbxValueListItem<T>, H = unknown, F = unknown> = (items: DbxValueListItemConfig<T, I>[]) => ObservableOrValue<DbxValueListItemGroup<G, T, I, H, F>[]>;\n\nexport const defaultDbxValueListViewGroupValuesFunction = <T, I extends DbxValueListItem<T>>(items: DbxValueListItemConfig<T, I>[]) => {\n const data = {};\n const result: DbxValueListItemGroup<unknown, T, I> = {\n id: '_',\n data,\n items\n };\n\n return [result];\n};\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxValueListViewGroupDelegate<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>, H = unknown, F = unknown> {\n /**\n * Groups all input items into groups.\n */\n abstract readonly groupValues: DbxValueListViewGroupValuesFunction<G, T, I, H, F>;\n}\n\nexport function defaultDbxValueListViewGroupDelegate<T, I extends DbxValueListItem<T>>(): DbxValueListViewGroupDelegate<any, T, I> {\n const result = {\n groupValues: defaultDbxValueListViewGroupValuesFunction\n };\n\n return result;\n}\n\n// eslint-disable-next-line\nexport function provideDbxValueListViewGroupDelegate<D extends DbxValueListViewGroupDelegate<any, any, any, any>>(sourceType: Type<D>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxValueListViewGroupDelegate,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, TrackByFunction, inject } from '@angular/core';\nimport { shareReplay, map, Observable, BehaviorSubject, switchMap } from 'rxjs';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { AnchorType, anchorTypeForAnchor } from '@dereekb/dbx-core';\nimport { DbxListView } from './list.view';\nimport { Maybe, SpaceSeparatedCssClasses, spaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, defaultDbxValueListViewGroupDelegate } from './list.view.value.group';\nimport { asObservable } from '@dereekb/rxjs';\n\nexport interface DbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n emitAllClicks?: boolean;\n}\n\n/**\n * Renders a list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-view',\n template: `\n <dbx-list-view-content [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-view-content>\n `\n})\nexport class DbxValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListViewConfig<T, I, V> = DbxValueListViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content',\n template: `\n <mat-nav-list [disabled]=\"disabled$ | async\">\n <ng-container *ngFor=\"let group of groups$ | async; trackBy: trackGroupByFunction\">\n <dbx-list-view-content-group [group]=\"group\"></dbx-list-view-content-group>\n </ng-container>\n </mat-nav-list>\n `,\n host: {\n class: 'dbx-list-view'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxListView = inject(DbxListView<T>);\n\n readonly _dbxListGroupDelegate: DbxValueListViewGroupDelegate<any, T, I> = inject<Maybe<DbxValueListViewGroupDelegate<any, T, I>>>(DbxValueListViewGroupDelegate, { optional: true }) ?? defaultDbxValueListViewGroupDelegate();\n\n private _items = new BehaviorSubject<Maybe<DbxValueListItemConfig<T, I>[]>>(undefined);\n\n readonly groups$: Observable<DbxValueListItemGroup<any, T, I>[]> = this._items.pipe(\n switchMap((items) => asObservable(this._dbxListGroupDelegate.groupValues(items ?? []))),\n shareReplay(1)\n );\n\n @Input()\n emitAllClicks?: Maybe<boolean>;\n\n readonly disabled$ = this.dbxListView.disabled$;\n\n readonly trackByFunction: TrackByFunction<DbxValueListItemConfig<T, I>>;\n readonly trackGroupByFunction: TrackByFunction<DbxValueListItemGroup<any, T, I>> = (_, v) => {\n return v.id; // track by the id\n };\n\n constructor() {\n const trackBy = this.dbxListView.trackBy;\n this.trackByFunction = trackBy ? (index: number, item: DbxValueListItemConfig<T, I>) => trackBy(index, item.itemValue) : () => undefined;\n }\n\n ngOnDestroy(): void {\n this._items.complete();\n }\n\n @Input()\n get items(): Maybe<DbxValueListItemConfig<T, I>[]> {\n return this._items.value;\n }\n\n set items(items: Maybe<DbxValueListItemConfig<T, I>[]>) {\n this._items.next(items);\n }\n\n onClickItem(item: I) {\n // do not emit clicks for disabled items.\n if (!item.disabled) {\n if (this.emitAllClicks || !item.anchor || anchorTypeForAnchor(item.anchor) === AnchorType.PLAIN) {\n // only emit clicks for items with no anchor, or plain anchors.\n this.onClickValue(item.itemValue);\n }\n }\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return item.rippleDisabled || (!this.emitAllClicks && !item.anchor);\n }\n}\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content-group',\n template: `\n <div class=\"dbx-list-view-group-content\">\n <div class=\"dbx-list-view-group-header\" *ngIf=\"headerConfig\">\n <dbx-injection [config]=\"headerConfig\"></dbx-injection>\n </div>\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\">\n <a mat-list-item class=\"dbx-list-view-item\" [disabled]=\"item.disabled\" [disableRipple]=\"rippleDisabledOnItem(item)\" (click)=\"onClickItem(item)\">\n <mat-icon matListItemIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n <span *ngIf=\"item.metaConfig\" matListItemMeta>\n <dbx-injection [config]=\"item.metaConfig\"></dbx-injection>\n </span>\n </a>\n </dbx-anchor>\n <div class=\"dbx-list-view-group-footer\" *ngIf=\"footerConfig\">\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-list-view-group',\n '[class]': 'cssClasses'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewContentGroupComponent<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxValueListViewContentComponent = inject(DbxValueListViewContentComponent<T>);\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _group: Maybe<DbxValueListItemGroup<G, T, I>>;\n private _cssClasses: Maybe<SpaceSeparatedCssClasses>;\n\n get cssClasses() {\n return this._cssClasses;\n }\n\n get items(): Maybe<DbxValueListItemConfig<T, I>[]> {\n return this._group?.items;\n }\n\n get headerConfig() {\n return this._group?.headerConfig;\n }\n\n get footerConfig() {\n return this._group?.footerConfig;\n }\n\n readonly disabled$: Observable<boolean> = this.dbxValueListViewContentComponent.disabled$;\n readonly trackByFunction: TrackByFunction<DbxValueListItemConfig<T, I>> = this.dbxValueListViewContentComponent.trackByFunction;\n\n @Input()\n get group() {\n return this._group;\n }\n\n set group(group: Maybe<DbxValueListItemGroup<G, T, I>>) {\n this._group = group;\n this._cssClasses = spaceSeparatedCssClasses(group?.cssClasses);\n this.cdRef.markForCheck();\n }\n\n onClickItem(item: I) {\n this.dbxValueListViewContentComponent.onClickItem(item);\n }\n\n onClickValue(value: T) {\n this.dbxValueListViewContentComponent.onClickValue(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return this.dbxValueListViewContentComponent.rippleDisabledOnItem(item);\n }\n}\n","import { Observable, map, shareReplay, distinctUntilChanged, of } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { DbxListSelectionMode, ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxValueListViewContentComponent } from './list.view.value.component';\n\nexport interface DbxSelectionValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n readonly multiple?: boolean;\n}\n\n/**\n * Renders a selection list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-selection-list-view',\n template: `\n <dbx-selection-list-view-content [selectionMode]=\"selectionMode$ | async\" [multiple]=\"multiple$ | async\" [items]=\"items$ | async\"></dbx-selection-list-view-content>\n `\n})\nexport class DbxSelectionValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewDirective<T, I, V, DbxSelectionValueListViewConfig<T, I, V>> {\n readonly selectionMode$: Observable<DbxListSelectionMode> = (this.dbxListView.selectionMode$ ?? of('select' as DbxListSelectionMode)).pipe(\n map((x) => x ?? 'select'),\n distinctUntilChanged()\n );\n readonly multiple$ = this.config$.pipe(\n map((x) => x.multiple ?? true),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxSelectionValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-selection-list-view-content',\n template: `\n <ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"'view'\">\n <dbx-list-view-content [items]=\"items\"></dbx-list-view-content>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <mat-selection-list [disabled]=\"disabled$ | async\" [multiple]=\"multiple\" (selectionChange)=\"matSelectionChanged($event)\">\n <mat-list-option class=\"dbx-list-view-item\" *ngFor=\"let item of items; trackBy: trackByFunction\" [selected]=\"item.selected\" [disabled]=\"item.disabled\" [value]=\"item.itemValue\" (click)=\"onClickValue(item.itemValue)\">\n <mat-icon matListItemIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n </ng-container>\n `,\n host: {\n class: 'dbx-list-view dbx-selection-list-view'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSelectionValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> {\n @Input()\n multiple?: Maybe<boolean>;\n\n @Input()\n selectionMode: Maybe<DbxListSelectionMode>;\n\n constructor() {\n super();\n if (!this.dbxListView.selectionChange) {\n throw new Error('Parent dbxListView to DbxSelectionValueListViewComponent has no selectionChange emitter.');\n }\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n (this.dbxListView.selectionChange as EventEmitter<ListSelectionState<T>>).next({\n // asserted in constructor\n items\n });\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY = 'disable_ripple_anchor';\n\nexport const DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.rippleDisabled || !item.anchor || (!item.anchor.ref && !item.anchor.url && !item.anchor.onClick);\n};\n\n@Directive({\n selector: '[dbxListItemDisableRippleModifier]'\n})\nexport class DbxListItemDisableRippleModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _disableRippleForItem = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._disableRippleForItem.pipe(\n map((disableRippleForItem) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n if (disableRippleForItem(x)) {\n x.rippleDisabled = true;\n }\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._disableRippleForItem.complete();\n }\n\n @Input('dbxListItemDisableRippleModifier')\n set disableRippleForItem(disableRippleForItem: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._disableRippleForItem.next(disableRippleForItem ?? DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n }\n}\n","import { ChangeDetectionStrategy, Component, Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { shareReplay, map, BehaviorSubject, combineLatest, of, Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxValueListViewContentComponent, DbxValueListViewConfig } from './list.view.value.component';\n\nexport interface DbxValueListGridViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxValueListViewConfig<T, I, V> {\n grid?: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>;\n}\n\n/**\n * Renders a grid view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-grid-view',\n template: `\n <dbx-list-grid-view-content [grid]=\"grid$ | async\" [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-grid-view-content>\n `\n})\nexport class DbxValueListGridViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListGridViewConfig<T, I, V> = DbxValueListGridViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly grid$ = this.config$.pipe(map((x) => x.grid));\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\nexport interface DbxValueListGridItemViewGridSizeConfig {\n /**\n * Gap size in %, px, vw, vh\n */\n gap: string;\n /**\n * Columns configuration.\n *\n * Example: repeat(auto-fill, minmax(200px, 1fr))\n */\n columns: string;\n}\n\nexport const DEFAULT_LIST_GRID_SIZE_CONFIG: DbxValueListGridItemViewGridSizeConfig = {\n columns: 'repeat(auto-fill, minmax(320px, 1fr))',\n gap: '8px'\n};\n\n/**\n * Optional parent directive used to control grid size.\n */\n@Directive({\n selector: '[dbxListGridSize]'\n})\nexport class DbxValueListGridSizeDirective implements OnDestroy {\n private _gridSize = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly gridSize$ = this._gridSize.asObservable();\n\n @Input('dbxListGridSize')\n get gridSize(): Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>> {\n return this._gridSize.value;\n }\n\n set gridSize(gridSize: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n if (gridSize) {\n this._gridSize.next(gridSize);\n }\n }\n\n ngOnDestroy(): void {\n this._gridSize.complete();\n }\n}\n\n/**\n * Content view for a DbxValueListGridView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-grid-view-content',\n template: `\n <div [gdGap]=\"gap$ | async\" [gdColumns]=\"columns$ | async\">\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" matRipple [matRippleDisabled]=\"rippleDisabledOnItem(item)\" class=\"dbx-list-grid-view-item\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\" (click)=\"onClickItem(item)\">\n <div dbx-injection [config]=\"item.config\"></div>\n </dbx-anchor>\n </div>\n `,\n host: {\n class: 'dbx-list-grid-view'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListGridViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> implements OnDestroy {\n private readonly _gridSizeOverride = inject(DbxValueListGridSizeDirective, { optional: true });\n private readonly _defaultGrid = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly grid$: Observable<DbxValueListGridItemViewGridSizeConfig> = combineLatest([this._defaultGrid, this._gridSizeOverride?.gridSize$ ?? of(undefined)]).pipe(\n map(([defaultGrid, overrideGrid]) => {\n const grid = mergeObjects<DbxValueListGridItemViewGridSizeConfig>([DEFAULT_LIST_GRID_SIZE_CONFIG, defaultGrid, overrideGrid]);\n return grid as DbxValueListGridItemViewGridSizeConfig;\n }),\n shareReplay(1)\n );\n\n readonly gap$ = this.grid$.pipe(map((x) => x.gap));\n readonly columns$ = this.grid$.pipe(map((x) => x.columns));\n\n @Input()\n set grid(grid: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n this._defaultGrid.next(grid);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._defaultGrid.complete();\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY = 'is_selected_item_modifier';\n\nexport const DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.selected ?? false;\n};\n\n@Directive({\n selector: '[dbxListItemIsSelectedModifier]'\n})\nexport class DbxListItemIsSelectedModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _listItemIsSelected = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._listItemIsSelected.pipe(\n map((listItemIsSelected) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.selected = listItemIsSelected(x);\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._listItemIsSelected.complete();\n }\n\n @Input('dbxListItemIsSelectedModifier')\n set listItemIsSelected(listItemIsSelected: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._listItemIsSelected.next(listItemIsSelected ?? DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n }\n}\n","import { Directive, Input, InjectionToken, Component, ChangeDetectionStrategy, StaticProvider, inject } from '@angular/core';\nimport { DbxValueListItem, DbxValueListItemConfig } from './list.view.value';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, DbxValueListViewGroupValuesFunction, provideDbxValueListViewGroupDelegate } from './list.view.value.group';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { Building, Maybe, PrimativeKey, compareWithMappedValuesFunction, makeValuesGroupMap } from '@dereekb/util';\nimport { DbxListTitleGroupData, DbxListTitleGroupTitleDelegate } from './list.view.value.group.title';\n\nexport const DBX_LIST_TITLE_GROUP_DATA = new InjectionToken<unknown>('DbxListTitleGroupData');\n\n/**\n * Abstract DbxListTitleGroupHeaderComponent that already has the data injected.\n */\nexport abstract class AbstractDbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> {\n readonly data = inject<D>(DBX_LIST_TITLE_GROUP_DATA);\n}\n\n/**\n * Delegate used to for grouping DbxValueListItemConfig<T, I> values.\n */\n@Directive({\n selector: '[dbxListTitleGroup]',\n providers: [provideDbxValueListViewGroupDelegate(DbxListTitleGroupDirective)]\n})\nexport class DbxListTitleGroupDirective<T, O extends PrimativeKey = PrimativeKey, D extends DbxListTitleGroupData<O> = DbxListTitleGroupData<O>, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListViewGroupDelegate<D, T, I> {\n private _delegate = new BehaviorSubject<Maybe<DbxListTitleGroupTitleDelegate<T, O, D, I>>>(undefined);\n\n readonly groupValues: DbxValueListViewGroupValuesFunction<D, T, I, unknown, unknown> = (items: DbxValueListItemConfig<T, I>[]) => {\n return this._delegate.pipe(\n map((delegate) => {\n let groups: DbxValueListItemGroup<D, T, I>[];\n\n if (delegate != null) {\n const groupsValuesMap = makeValuesGroupMap(items, delegate.groupValueForItem);\n const { sortGroupsByData, cssClasses: inputCssClasses } = delegate;\n const cssClassesForAllGroups = inputCssClasses ?? [];\n\n const componentClass = delegate.headerComponentClass ?? DbxListTitleGroupHeaderComponent;\n const { dataForGroupValue, footerComponentClass } = delegate;\n\n groups = Array.from(groupsValuesMap.entries()).map(([value, items]) => {\n const data = dataForGroupValue(value as O, items);\n (data as Building<D>).value = value as O;\n const cssClasses = data.cssClasses ? [...cssClassesForAllGroups, ...data.cssClasses] : cssClassesForAllGroups;\n\n const providers: StaticProvider[] = [\n {\n provide: DBX_LIST_TITLE_GROUP_DATA,\n useValue: data\n }\n ];\n\n const group: DbxValueListItemGroup<D, T, I> = {\n id: String(value),\n data,\n items,\n headerConfig: { componentClass, providers },\n footerConfig: footerComponentClass ? { componentClass: footerComponentClass, providers } : undefined,\n cssClasses\n };\n\n return group;\n });\n\n if (sortGroupsByData) {\n groups.sort(compareWithMappedValuesFunction((x) => x.data, sortGroupsByData));\n }\n } else {\n groups = [\n {\n id: '_',\n data: { value: null as any, title: '' } as D,\n items\n }\n ];\n }\n\n return groups;\n })\n );\n };\n\n ngOnDestroy(): void {\n this._delegate.complete();\n }\n\n @Input('dbxListTitleGroup')\n get delegate() {\n return this._delegate.value;\n }\n\n set delegate(delegate: Maybe<DbxListTitleGroupTitleDelegate<T, O, D, I>>) {\n this._delegate.next(delegate);\n }\n}\n\n/**\n *\n */\n@Component({\n selector: 'dbx-list-title-group-header',\n template: `\n <div class=\"dbx-list-item-padded dbx-list-two-line-item\" [ngClass]=\"{ 'dbx-list-two-line-item-with-icon': icon }\">\n <mat-icon class=\"item-icon\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <div class=\"item-left\">\n <div class=\"mat-subtitle-2\">{{ title }}</div>\n <div *ngIf=\"hint\" class=\"item-details\">{{ hint }}</div>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-list-title-group-header'\n }\n})\nexport class DbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> extends AbstractDbxListTitleGroupHeaderComponent<O, D> {\n get icon() {\n return this.data.icon;\n }\n\n get title() {\n return this.data.title;\n }\n\n get hint() {\n return this.data.hint;\n }\n}\n","import { Component, InjectionToken, inject } from '@angular/core';\nimport { DBX_VALUE_LIST_VIEW_ITEM, DbxValueListItem } from './list.view.value';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport const DBX_LIST_VIEW_DEFAULT_META_ICON = new InjectionToken<string>('DBX_LIST_VIEW_DEFAULT_META_ICON');\n\nexport interface DbxListViewMetaIconConfig {\n readonly icon?: Maybe<string>;\n}\n\n@Component({\n selector: 'dbx-list-view-meta-icon',\n template: `\n <mat-icon class=\"dbx-list-view-meta-icon\">{{ icon }}</mat-icon>\n `\n})\nexport class DbxListViewMetaIconComponent {\n readonly item = inject<DbxValueListItem<unknown, DbxListViewMetaIconConfig>>(DBX_VALUE_LIST_VIEW_ITEM, { optional: true });\n readonly defaultIcon = inject<Maybe<string>>(DBX_LIST_VIEW_DEFAULT_META_ICON, { optional: true });\n\n readonly icon: Maybe<string> = this.item?.meta?.icon ?? this.defaultIcon;\n\n static metaConfig(defaultIcon?: Maybe<string>): DbxInjectionComponentConfig<DbxListViewMetaIconConfig> {\n return {\n componentClass: DbxListViewMetaIconComponent,\n providers: [\n {\n provide: DBX_LIST_VIEW_DEFAULT_META_ICON,\n useValue: defaultIcon\n }\n ]\n };\n }\n}\n","import { MatRippleModule } from '@angular/material/core';\nimport { DbxRouterAnchorModule } from '../../router/layout/anchor/anchor.module';\nimport { DbxLoadingModule } from '../../loading/loading.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListComponent, DbxListInternalContentDirective } from './list.component';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { DbxSelectionValueListViewContentComponent, DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\nimport { DbxValueListViewContentComponent, DbxValueListViewComponent, DbxValueListViewContentGroupComponent } from './list.view.value.component';\nimport { DbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { DbxListItemDisableRippleModifierDirective } from './list.view.value.modifier.ripple.directive';\nimport { DbxValueListGridViewContentComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent } from './list.grid.view.component';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\nimport { DbxListItemIsSelectedModifierDirective } from './list.view.value.modifier.selection.directive';\nimport { DbxListTitleGroupDirective, DbxListTitleGroupHeaderComponent } from './list.view.value.group.title.directive';\nimport { DbxListViewMetaIconComponent } from './list.view.meta.icon.component';\n\nconst privateDeclarations = [DbxListInternalContentDirective];\n\nconst declarations = [\n // directives\n DbxListComponent,\n DbxListEmptyContentComponent,\n DbxValueListViewComponent,\n DbxValueListViewContentComponent,\n DbxValueListViewContentGroupComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridViewContentComponent,\n DbxListViewMetaIconComponent,\n DbxListTitleGroupDirective,\n DbxListTitleGroupHeaderComponent,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListViewContentComponent,\n DbxValueListItemModifierDirective,\n DbxListItemDisableRippleModifierDirective,\n DbxListItemIsSelectedModifierDirective\n];\n\n@NgModule({\n imports: [CommonModule, MatRippleModule, FlexLayoutModule, DbxLoadingModule, DbxRouterAnchorModule, InfiniteScrollModule, DbxInjectionComponentModule, MatListModule, MatIconModule],\n declarations: [...declarations, ...privateDeclarations],\n exports: declarations\n})\nexport class DbxListLayoutModule {}\n","import { TrackByFunction } from '@angular/core';\nimport { ModelKeyRef, UniqueModel } from '@dereekb/util';\n\nexport const TRACK_BY_MODEL_ID: TrackByFunction<UniqueModel> = (index, model) => model.id;\n\nexport function trackByUniqueIdentifier<T extends UniqueModel>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_ID;\n}\n\nexport const TRACK_BY_MODEL_KEY: TrackByFunction<ModelKeyRef> = (index, model) => model.key;\n\nexport function trackByModelKeyRef<T extends ModelKeyRef>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_KEY;\n}\n","import { ListLoadingStateContext, switchMapMaybeObs } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, of, shareReplay } from 'rxjs';\nimport { Directive, EventEmitter, Input, OnDestroy, Output, TrackByFunction } from '@angular/core';\nimport { DbxListSelectionMode, DbxListView } from './list.view';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Abstract DbxListView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListViewDirective<T> implements DbxListView<T>, OnDestroy {\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n private readonly _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n private readonly _values$ = new BehaviorSubject<Maybe<Observable<T[]>>>(undefined);\n\n readonly trackBy?: TrackByFunction<T> | undefined;\n\n readonly values$ = this._values$.pipe(switchMapMaybeObs(), shareReplay(1));\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n @Output()\n readonly clickValue = new EventEmitter<T>();\n\n @Input()\n set valueArray(values: Maybe<T[]>) {\n this.setValues(values ? of(values) : undefined);\n }\n\n @Input()\n set values(values: Maybe<Observable<T[]>>) {\n this.setValues(values);\n }\n\n ngOnDestroy(): void {\n this._disabled.complete();\n this._selectionMode.complete();\n this._values$.complete();\n }\n\n onClickValue(value: T) {\n this.clickValue.emit(value);\n }\n\n setListContext(state: ListLoadingStateContext<T>): void {\n this.setValues(state.list$);\n }\n\n setValues(valuesObs: Maybe<Observable<T[]>>): void {\n this._values$.next(valuesObs);\n }\n\n setDisabled(disabled: boolean): void {\n this._disabled.next(disabled);\n }\n\n setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void {\n this._selectionMode.next(selectionMode);\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE = '<dbx-list-grid-view [config]=\"config\"></dbx-list-grid-view>';\n\n/**\n * Abstract DbxListGridView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListGridViewDirective<T> extends AbstractDbxListViewDirective<T> {}\n","import { Directive, EventEmitter, Output } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE = '<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>';\n\n// MARK: Selection List View\n/**\n * Abstract list view that has a pre-built-in selection change event for an Angular Material MatSelectionListChange.\n */\n@Directive()\nexport abstract class AbstractDbxSelectionListViewDirective<T> extends AbstractDbxListViewDirective<T> {\n @Output()\n readonly selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n selectionChanged(selection: ListSelectionState<T>): void {\n this.selectionChange.emit(selection);\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n this.selectionChanged({ items });\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxValueListItem, DBX_VALUE_LIST_VIEW_ITEM } from './list.view.value';\n\n@Directive()\nexport abstract class AbstractDbxValueListViewItemComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly item = inject<I>(DBX_VALUE_LIST_VIEW_ITEM);\n\n get itemValue(): T {\n return this.item.itemValue;\n }\n}\n","import { Observable } from 'rxjs';\nimport { ListLoadingState } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Common interface for views that may wrap a DbxListView, and pass values through to it.\n */\nexport abstract class DbxListViewWrapper<T = unknown, S extends ListLoadingState<T> = ListLoadingState<T>> {\n state$?: Maybe<Observable<S>>;\n readonly loadMore?: EventEmitter<void>;\n}\n\nexport function provideDbxListViewWrapper<V extends DbxListViewWrapper>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxListViewWrapper,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxSectionHeaderConfig, DbxSectionHeaderHType } from './section';\n\n/**\n * Component used to style a section's header.\n */\n@Component({\n selector: 'dbx-section-header,.dbx-section-header',\n template: `\n <div class=\"dbx-section-header-content\">\n <ng-container *ngIf=\"showTitle\">\n <ng-container [ngSwitch]=\"h ?? 1\">\n <h1 *ngSwitchCase=\"1\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h5>\n </ng-container>\n <span class=\"spacer\"></span>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <p *ngIf=\"hint && !hintInline\" class=\"dbx-section-hint dbx-hint\">{{ hint }}</p>\n <ng-template #headerContentTitleTemplate>\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span class=\"title-text\">\n {{ header }}\n <span *ngIf=\"hint && hintInline\" class=\"dbx-section-hint-inline dbx-hint\">{{ hint }}</span>\n </span>\n </ng-template>\n `,\n host: {\n '[class.dbx-section-header-full-title]': 'onlyHeader',\n '[class.dbx-section-header-padded]': 'paddedHeader'\n }\n})\nexport class DbxSectionHeaderComponent {\n @Input()\n paddedHeader?: Maybe<boolean>;\n\n @Input()\n h?: Maybe<DbxSectionHeaderHType>;\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n onlyHeader?: Maybe<boolean> = false;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n hint?: Maybe<string>;\n\n @Input()\n hintInline?: Maybe<boolean>;\n\n constructor() {}\n\n @Input()\n set headerConfig(headerConfig: Maybe<DbxSectionHeaderConfig>) {\n if (headerConfig) {\n if (headerConfig.h !== undefined) {\n this.h = headerConfig.h;\n }\n\n if (headerConfig.header !== undefined) {\n this.header = headerConfig.header;\n }\n\n if (headerConfig.onlyHeader !== undefined) {\n this.onlyHeader = headerConfig.onlyHeader;\n }\n\n if (headerConfig.icon !== undefined) {\n this.icon = headerConfig.icon;\n }\n\n if (headerConfig.hint !== undefined) {\n this.hint = headerConfig.hint;\n }\n\n if (headerConfig.hintInline !== undefined) {\n this.hintInline = headerConfig.hintInline;\n }\n }\n }\n\n get showTitle() {\n return Boolean(this.header || this.icon);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Component used to format content on a page within a section.\n */\n@Component({\n selector: 'dbx-section',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 3\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-section',\n '[class]': `(elevate) ? 'dbx-section-elevate dbx-content-elevate' : ''`\n }\n})\nexport class DbxSectionComponent extends DbxSectionHeaderComponent {\n @Input()\n elevate = false;\n}\n","import { OnDestroy, Component, Input, EventEmitter, Output } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * Component used to format content that displays an intro until a button is pressed.\n */\n@Component({\n selector: 'dbx-intro-action-section',\n template: `\n <div class=\"dbx-intro-action-section\" [ngSwitch]=\"showIntro\">\n <div *ngSwitchCase=\"true\" class=\"dbx-intro-action-section-intro\">\n <p>{{ hint }}</p>\n <div>\n <ng-content select=\"[info]\"></ng-content>\n </div>\n <div>\n <button mat-raised-button color=\"accent\" (click)=\"actionClicked()\">{{ action }}</button>\n </div>\n </div>\n <ng-container *ngSwitchCase=\"false\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n `\n})\nexport class DbxIntroActionSectionComponent extends DbxSectionComponent implements OnDestroy {\n @Output()\n readonly showAction = new EventEmitter<void>();\n\n @Input()\n showIntro?: boolean;\n\n @Input()\n action?: string;\n\n ngOnDestroy() {\n this.showAction.complete();\n }\n\n actionClicked() {\n this.showAction.next();\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * A subsection.\n */\n@Component({\n selector: 'dbx-subsection',\n template: `\n <div class=\"dbx-subsection\">\n <div class=\"dbx-section-header\" [h]=\"h ?? 4\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSubSectionComponent extends DbxSectionComponent {}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Scroll locking modes.\n *\n * Types:\n * - all: The entire header + body is scrollable\n * - body: The header is locked while the body is scrollable\n * - locked: Overflow is locked and hidden\n */\nexport type DbxSectionPageScrollLockedMode = 'all' | 'body' | 'locked';\n\n/**\n * Component used to style a page that is made up of app sections.\n *\n * Should be used on pages that need a section page heading.\n *\n * Can be nested within eachother, retaining the proper fixed height.\n */\n@Component({\n selector: 'dbx-section-page',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 2\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"true\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-page-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-content-page dbx-section-page',\n '[class]': '\"dbx-section-page-scroll-\" + scroll'\n }\n})\nexport class DbxSectionPageComponent extends DbxSectionHeaderComponent {\n @Input()\n scroll: DbxSectionPageScrollLockedMode = 'all';\n\n @Input()\n override hintInline = true;\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxSectionComponent } from './section.component';\nimport { DbxSubSectionComponent } from './subsection.component';\nimport { DbxSectionPageComponent } from './section.page.component';\nimport { DbxIntroActionSectionComponent } from './section.intro.component';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\nconst declarations = [DbxSectionHeaderComponent, DbxSectionPageComponent, DbxSectionComponent, DbxSubSectionComponent, DbxIntroActionSectionComponent];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, MatButtonModule, MatRippleModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxSectionLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-step',\n templateUrl: './step.component.html'\n // TODO: styleUrls: ['./step.scss']\n})\nexport class DbxStepComponent {\n @Input()\n done?: boolean;\n\n @Input()\n step?: number;\n\n @Input()\n text?: string;\n\n @Input()\n hint?: string;\n}\n","<div class=\"step-section\" [ngClass]=\"done ? 'done' : ''\">\n <div class=\"step-section-header\">\n <span class=\"step\">{{ step }}.</span>\n <mat-icon class=\"done-check\" *ngIf=\"done\">done</mat-icon>\n <span class=\"text\">{{ text }}</span>\n <p *ngIf=\"hint\" class=\"hint\">{{ hint }}</p>\n </div>\n <div class=\"step-section-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxStepComponent } from './step.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxStepComponent],\n exports: [DbxStepComponent]\n})\nexport class DbxStepLayoutModule {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-form-description',\n host: {\n class: 'dbx-form-description'\n }\n})\nexport class DbxFormDescriptionComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-hint',\n host: {\n class: 'dbx-hint'\n }\n})\nexport class DbxHintComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-label',\n host: {\n class: 'dbx-label'\n }\n})\nexport class DbxLabelComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-note',\n host: {\n class: 'dbx-note'\n }\n})\nexport class DbxNoteComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-notice',\n host: {\n class: 'dbx-notice'\n }\n})\nexport class DbxNoticeComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-ok',\n host: {\n class: 'dbx-ok'\n }\n})\nexport class DbxOkComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-success',\n host: {\n class: 'dbx-success'\n }\n})\nexport class DbxSuccessComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-warn',\n host: {\n class: 'dbx-warn'\n }\n})\nexport class DbxWarnComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DbxFormDescriptionComponent } from './form.description.component';\nimport { DbxHintComponent } from './hint.component';\nimport { DbxLabelComponent } from './label.component';\nimport { DbxNoteComponent } from './note.component';\nimport { DbxNoticeComponent } from './notice.component';\nimport { DbxOkComponent } from './ok.component';\nimport { DbxSuccessComponent } from './success.component';\nimport { DbxWarnComponent } from './warn.component';\n\nconst declarations = [DbxNoteComponent, DbxNoticeComponent, DbxSuccessComponent, DbxWarnComponent, DbxHintComponent, DbxLabelComponent, DbxOkComponent, DbxFormDescriptionComponent];\n\n/**\n * Includes a number of deprecated text components.\n */\n@NgModule({\n imports: [CommonModule, MatChipsModule, MatTooltipModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxTextCompatModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxSectionLayoutModule } from './section/section.layout.module';\nimport { DbxListLayoutModule } from './list/list.layout.module';\nimport { DbxItemLayoutModule } from './item/item.layout.module';\nimport { DbxFlagLayoutModule } from './flag/flag.layout.module';\nimport { DbxContentLayoutModule } from './content/content.layout.module';\nimport { DbxColumnLayoutModule } from './column/column.layout.module';\nimport { DbxCardBoxLayoutModule } from './card/card.box.layout.module';\nimport { DbxBlockLayoutModule } from './block/block.layout.module';\nimport { DbxCompactLayoutModule } from './compact/compact.layout.module';\nimport { DbxStepLayoutModule } from './step/step.layout.module';\nimport { DbxBarLayoutModule } from './bar/bar.layout.module';\nimport { DbxTextModule } from './text/text.module';\nimport { DbxStyleLayoutModule } from './style/style.layout.module';\nimport { DbxFlexLayoutModule } from './flex/flex.layout.module';\n\n@NgModule({\n exports: [DbxBarLayoutModule, DbxBlockLayoutModule, DbxCardBoxLayoutModule, DbxColumnLayoutModule, DbxCompactLayoutModule, DbxContentLayoutModule, DbxFlagLayoutModule, DbxFlexLayoutModule, DbxItemLayoutModule, DbxListLayoutModule, DbxSectionLayoutModule, DbxStepLayoutModule, DbxStyleLayoutModule, DbxTextModule]\n})\nexport class DbxLayoutModule {}\n","import { GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport type PopupPosition = 'center' | 'bottom_left' | 'bottom_right';\n\nexport interface PopupPositionOffset {\n x?: string;\n y?: string;\n}\n\nexport class PopupGlobalPositionStrategy extends GlobalPositionStrategy {\n private _position!: PopupPosition;\n private _offset: PopupPositionOffset = {};\n\n constructor(position: PopupPosition = 'bottom_right', offset?: PopupPositionOffset) {\n super();\n this.setPopupPosition(position, offset);\n }\n\n setPopupOffset(offset?: PopupPositionOffset): void {\n this.setPopupPosition(this._position, offset ?? {});\n }\n\n setPopupPosition(position: PopupPosition, offset?: PopupPositionOffset): void {\n this._resetPositions();\n this._position = position;\n\n if (offset) {\n this._offset = offset;\n }\n\n const offsetX = this._offset.x ?? '0';\n const offsetY = this._offset.y ?? '0';\n\n switch (position) {\n case 'center':\n this.centerHorizontally();\n this.centerVertically();\n break;\n case 'bottom_left':\n this.bottom(offsetY);\n this.left(offsetX);\n break;\n case 'bottom_right':\n this.bottom(offsetY);\n this.right(offsetX);\n break;\n }\n }\n\n private _resetPositions(): void {\n this.top();\n this.bottom();\n this.left();\n this.right();\n }\n}\n","import { type Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopupKey = string;\n\nexport enum DbxPopupWindowState {\n NORMAL = 'normal',\n MINIMIZED = 'minimized',\n FULLSCREEN = 'fullscreen'\n}\n\nexport abstract class DbxPopupController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopupKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly windowState$: Observable<DbxPopupWindowState>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popup to close.\n */\n abstract close(): void;\n /**\n * Closes the popup and returns the input value.\n */\n abstract return(value?: O): void;\n abstract minimize(): void;\n abstract normalscreen(): void;\n abstract fullscreen(): void;\n}\n","import { DbxPopupKey, DbxPopupController } from './popup';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopupCoordinatorService implements OnDestroy {\n private _popups = new BehaviorSubject<Map<DbxPopupKey, DbxPopupController>>(new Map());\n\n readonly popups$ = this._popups.asObservable();\n\n ngOnDestroy(): void {\n this._popups.complete();\n }\n\n get popups(): Map<DbxPopupKey, DbxPopupController> {\n return this._popups.value;\n }\n\n public addPopup(popup: DbxPopupController): void {\n const key = popup.key;\n\n if (key) {\n this.removePopup(key);\n this._popups.value.set(key, popup);\n this._popups.next(this.popups);\n }\n }\n\n public removePopup(key: DbxPopupKey, popup?: DbxPopupController): void {\n if (key) {\n const existing = this.popups.get(key);\n\n // Remove if there is one existing, and if popup is provided it is the same popup.\n if (existing && (!popup || popup === existing)) {\n existing.close();\n this._popups.value.delete(key);\n this._popups.next(this.popups);\n }\n }\n }\n}\n","import { DbxPopupController } from './popup';\nimport { Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { DbxPopupCoordinatorService } from './popup.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Component({\n selector: 'dbx-popup-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopupCoordinatorComponent implements OnInit, OnDestroy {\n private readonly _service = inject(DbxPopupCoordinatorService);\n private readonly _popup = inject(DbxPopupController);\n\n readonly isPopupForKey$ = this._service.popups$.pipe(\n map((x) => x.get(this._popup.key) === this._popup),\n shareReplay(1)\n );\n readonly show$ = this.isPopupForKey$.pipe(delay(0));\n\n ngOnInit(): void {\n this._service.addPopup(this._popup);\n }\n\n ngOnDestroy(): void {\n this._service.removePopup(this._popup.key, this._popup);\n }\n}\n","import { Component, Type, OnDestroy, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Maybe, PixelsString } from '@dereekb/util';\nimport { CompactMode, CompactContextStore } from '../../layout';\nimport { BehaviorSubject, Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopupGlobalPositionStrategy, PopupPosition, PopupPositionOffset } from './popup.position.strategy';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxPopupController, DbxPopupKey, DbxPopupWindowState } from './popup';\n\nexport const APP_POPUP_NORMAL_WIDTH = '700px';\nexport const APP_POPUP_MINIMIZED_WIDTH = '300px';\nexport const APP_POPUP_NORMAL_HEIGHT = 'auto';\n\nexport abstract class DbxPopupComponentController<O, I> extends DbxPopupController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopupComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popup should exist at a time given a certain key.\n */\n key: DbxPopupKey;\n position?: PopupPosition;\n offset?: PopupPositionOffset;\n closeOnTransition?: boolean;\n componentClass: Type<T>;\n data?: I;\n isDraggable?: boolean;\n init?: (component: T, controller: DbxPopupController<O, I>) => void;\n width?: PixelsString;\n height?: PixelsString;\n}\n\n/**\n * Popup component.\n */\n@Component({\n template: `\n <dbx-popup-coordinator>\n <div class=\"dbx-popup-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popup-coordinator>\n `,\n providers: [\n {\n provide: DbxPopupController,\n useExisting: DbxPopupComponent\n },\n {\n provide: CompactContextStore\n }\n ]\n})\nexport class DbxPopupComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopupController<O, I>, OnDestroy {\n private popoverRef = inject(NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O>);\n private compactContextState = inject(CompactContextStore);\n\n private _position: PopupGlobalPositionStrategy;\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<DbxPopupComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private readonly closing = new Subject<void>();\n readonly isClosing$ = this.closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n private readonly _windowState = new BehaviorSubject<DbxPopupWindowState>(DbxPopupWindowState.NORMAL);\n readonly windowState$ = this._windowState.asObservable();\n\n getClosingValueFn?: (value?: I) => Promise<O>;\n\n constructor() {\n super();\n this.compactContextState.setMode(CompactMode.COMPACT);\n this._position = new PopupGlobalPositionStrategy(this.config.position, this.config.offset);\n this.popoverRef.overlay.updatePositionStrategy(this._position);\n }\n\n get config(): DbxPopupComponentConfig<O, I, T> {\n return this.popoverRef.data;\n }\n\n get key(): DbxPopupKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.closing.complete();\n this._windowState.complete();\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popup Controls\n public close(): void {\n this.closing.next();\n\n if (this.getClosingValueFn) {\n this.getClosingValueFn().then(\n (x) => {\n this.return(x);\n },\n () => {\n this.return();\n }\n );\n } else {\n this.return();\n }\n }\n\n public return(value?: O): void {\n this.closing.next();\n this.popoverRef.close(value);\n }\n\n public minimize(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize(APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.MINIMIZED);\n }\n\n public normalscreen(): void {\n this.popoverRef.isDraggable = this.config.isDraggable;\n this.popoverRef.resize(APP_POPUP_NORMAL_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.NORMAL);\n }\n\n public fullscreen(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize('100%', '100%');\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.FULLSCREEN);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopupComponent } from './popup.component';\n\n/**\n * Abstract popup directive.\n */\n@Directive()\nexport abstract class AbstractPopupDirective<O = unknown, I = unknown, T = unknown> {\n readonly popup = inject(DbxPopupComponent<O, I, T>);\n\n closePopup(): void {\n this.popup.close();\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup content wrapper component.\n */\n@Component({\n selector: 'dbx-popup-content',\n template: `\n <ng-content select=\"[controls]\"></ng-content>\n <div *ngIf=\"showContent$ | async\" class=\"dbx-popup-content-container\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-popup-content'\n }\n})\nexport class DbxPopupContentComponent {\n private readonly appPopupController = inject(DbxPopupController);\n\n readonly showContent$ = this.appPopupController.windowState$.pipe(map((x) => x !== DbxPopupWindowState.MINIMIZED));\n}\n","import { Component, inject } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup Control Buttons.\n */\n@Component({\n selector: 'dbx-popup-control-buttons',\n template: `\n <ng-container [ngSwitch]=\"isMinimized$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"minimize\" (buttonClick)=\"minimizeClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"maximize\" (buttonClick)=\"maximizeClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-container [ngSwitch]=\"isFullscreen$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"open_in_full\" (buttonClick)=\"fullscreenClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"close_fullscreen\" (buttonClick)=\"normalscreenClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [flat]=\"true\" icon=\"close\" color=\"warn\" (buttonClick)=\"closeClicked()\"></dbx-button>\n `,\n host: {\n class: 'dbx-popup-control-buttons'\n }\n})\nexport class DbxPopupControlButtonsComponent {\n private readonly _appPopupController = inject(DbxPopupController);\n\n readonly isMinimized$ = this._appPopupController.windowState$.pipe(map((x) => x === DbxPopupWindowState.MINIMIZED));\n readonly isFullscreen$ = this._appPopupController.windowState$.pipe(map((x) => x === DbxPopupWindowState.FULLSCREEN));\n\n minimizeClicked(): void {\n this._appPopupController.minimize();\n }\n\n maximizeClicked(): void {\n this._appPopupController.normalscreen();\n }\n\n fullscreenClicked(): void {\n this._appPopupController.fullscreen();\n }\n\n normalscreenClicked(): void {\n this._appPopupController.normalscreen();\n }\n\n closeClicked(): void {\n this._appPopupController.close();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Popup Controls\n */\n@Component({\n selector: 'dbx-popup-controls',\n template: `\n <span class=\"dbx-popup-controls-header\">{{ header }}</span>\n <div class=\"spacer\"></div>\n <dbx-popup-control-buttons></dbx-popup-control-buttons>\n `,\n host: {\n class: 'dbx-popup-controls'\n }\n})\nexport class DbxPopupControlsComponent {\n @Input()\n header?: string;\n}\n","import { DbxPopupComponent, DbxPopupComponentConfig, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH } from './popup.component';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbxPopupConfig<O, I, T> extends DbxPopupComponentConfig<O, I, T> {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popup.\n */\n@Injectable()\nexport class DbxPopupService {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n\n open<O, I, T>(config: DbxPopupConfig<O, I, T>): NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O> {\n const service = config.injector ? new NgOverlayContainerService(this._overlay, config.injector) : this._overlayContainerService;\n const isDraggable = config.isDraggable ?? false;\n const position = config.position ?? 'bottom_right';\n\n return service.open<DbxPopupComponentConfig<O, I, T>, O>({\n content: DbxPopupComponent,\n data: {\n ...config,\n isDraggable,\n position\n },\n configuration: {\n width: config.width ?? APP_POPUP_NORMAL_WIDTH,\n height: config.height ?? APP_POPUP_NORMAL_HEIGHT,\n useGlobalPositionStrategy: true,\n hasBackdrop: false,\n isResizable: false,\n isDraggable\n }\n });\n }\n}\n","import { Directive, HostListener, Input, inject } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\n\nconst DEFAULT_ACTION_KEY_TRIGGER = 'enter';\n\n/**\n * Directive that triggers the action on a specific key up event.\n *\n * Events/Keys to respond to should be lowercase.\n */\n@Directive({\n selector: '[dbxActionKeyTrigger]'\n})\nexport class DbxActionKeyTriggerDirective<T = unknown, O = unknown> {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n @Input('dbxActionKeyTrigger')\n inputKey: Maybe<string>;\n\n get key(): string {\n return this.inputKey || DEFAULT_ACTION_KEY_TRIGGER;\n }\n\n @HostListener('document:keyup', ['$event'])\n onKeyupHandler(event: KeyboardEvent): void {\n if (event.key && event.key.toLowerCase() === this.key) {\n this.source.trigger();\n }\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport abstract class DbxPromptConfirm {\n abstract showDialog(): Observable<Maybe<boolean>>;\n}\n\nexport function provideDbxPromptConfirm<S extends DbxPromptConfirm>(sourceType: Type<S>): Provider[] {\n return [\n {\n provide: DbxPromptConfirm,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Pre-configured prompt.\n */\n@Component({\n selector: 'dbx-prompt',\n template: `\n <div class=\"dbx-prompt\">\n <ng-content select=\"[hero]\"></ng-content>\n <dbx-subsection [header]=\"header\" [hint]=\"prompt\">\n <ng-content></ng-content>\n </dbx-subsection>\n </div>\n `\n})\nexport class DbxPromptComponent {\n @Input()\n header?: Maybe<string>;\n\n @Input()\n prompt?: Maybe<string>;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport enum DbxPromptConfirmTypes {\n /**\n * Dialog is for yes/no.\n */\n NORMAL = 'normal',\n /**\n * Dialog is for deleting something.\n */\n DELETE = 'delete'\n}\n\nexport interface DbxPromptConfirmConfig {\n type?: DbxPromptConfirmTypes;\n title?: string;\n prompt?: string;\n confirmText?: string;\n cancelText?: string;\n}\n\n/**\n * Displays a confirmation dialog.\n */\n@Component({\n selector: 'dbx-prompt-confirm',\n templateUrl: './prompt.confirm.component.html'\n})\nexport class DbxPromptConfirmComponent {\n private _config: DbxPromptConfirmConfig = {};\n\n @Output()\n readonly confirm = new EventEmitter<void>();\n\n @Output()\n readonly cancel = new EventEmitter<void>();\n\n @Input()\n get config(): DbxPromptConfirmConfig {\n return this._config;\n }\n\n set config(config: Maybe<DbxPromptConfirmConfig>) {\n this._config = config ?? {};\n }\n\n onConfirm(): void {\n this.confirm.emit();\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n}\n","<dbx-prompt [header]=\"config.title\" [prompt]=\"config.prompt\">\n <ng-content></ng-content>\n <button mat-stroked-button (click)=\"onConfirm()\">{{ config.confirmText || 'Confirm' }}</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-stroked-button color=\"warn\" (click)=\"onCancel()\">{{ config.cancelText || 'Cancel' }}</button>\n</dbx-prompt>\n","import { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes } from './prompt.confirm.component';\nimport { type Maybe } from '@dereekb/util';\n\nexport const DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG = {\n title: 'Confirm?',\n type: DbxPromptConfirmTypes.NORMAL\n};\n\nexport interface DbxPromptConfirmDialogConfig extends DbxPromptConfirmConfig {\n component?: DbxInjectionComponentConfig;\n}\n\n@Component({\n template: `\n <dbx-dialog-content>\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <dbx-injection [config]=\"injectionConfig\"></dbx-injection>\n </dbx-prompt-confirm>\n </dbx-dialog-content>\n `\n})\nexport class DbxPromptConfirmDialogComponent extends AbstractDialogDirective<boolean, DbxPromptConfirmDialogConfig> implements OnInit {\n get config(): DbxPromptConfirmDialogConfig {\n return this.data;\n }\n\n get injectionConfig(): Maybe<DbxInjectionComponentConfig> {\n return this.data.component;\n }\n\n static openDialog(matDialog: MatDialog, config?: Maybe<DbxPromptConfirmDialogConfig>): MatDialogRef<DbxPromptConfirmDialogComponent, boolean> {\n const dialogRef = matDialog.open(DbxPromptConfirmDialogComponent, {\n data: config || DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG\n });\n return dialogRef;\n }\n\n confirm(): void {\n this.close(true);\n }\n\n cancel(): void {\n this.close(false);\n }\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { type Maybe } from '@dereekb/util';\nimport { Observable, from } from 'rxjs';\nimport { DbxPromptConfirm, provideDbxPromptConfirm } from './prompt.confirm';\nimport { DbxPromptConfirmConfig } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\n\n// MARK: Abstract\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n */\n@Directive()\nexport abstract class AbstractPromptConfirmDirective implements DbxPromptConfirm {\n protected readonly matDialog = inject(MatDialog);\n\n private _dialogRef?: MatDialogRef<DbxPromptConfirmDialogComponent, boolean>;\n private _dialogPromise?: Promise<boolean>;\n\n abstract config?: Maybe<DbxPromptConfirmConfig>;\n\n showDialog(): Observable<boolean> {\n if (!this._dialogPromise) {\n this._dialogPromise = new Promise<boolean>((resolve) => {\n this._dialogRef = DbxPromptConfirmDialogComponent.openDialog(this.matDialog, this.config);\n this._dialogRef.afterClosed().subscribe((result: Maybe<boolean>) => {\n this._dialogRef = undefined;\n this._dialogPromise = undefined;\n resolve(this._handleDialogResult(Boolean(result)));\n });\n });\n }\n\n return from(this._dialogPromise);\n }\n\n protected _handleDialogResult(result: boolean): boolean {\n return result;\n }\n}\n\n// MARK: Directive\n/**\n * Directive that shows a confirmation screen.\n */\n@Directive({\n selector: '[dbxPromptConfirm]',\n providers: provideDbxPromptConfirm(DbxPromptConfirmDirective)\n})\nexport class DbxPromptConfirmDirective extends AbstractPromptConfirmDirective {\n @Input('dbxPromptConfirm')\n override config?: Maybe<DbxPromptConfirmConfig>;\n}\n","import { Directive, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { AbstractPromptConfirmDirective } from '../interaction/prompt/prompt.confirm.directive';\nimport { DbxPromptConfirmConfig } from '../interaction/prompt/prompt.confirm.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * DbxActionConfirmDirective configuration.\n */\nexport interface DbxActionConfirmConfig<T = unknown> extends DbxPromptConfirmConfig {\n /**\n * Optionally set the readyValue passed to the instance.\n */\n readyValue?: T;\n}\n\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n *\n * This only works to pass a ready value or reject through, not to work with a button.\n * For button usage, use an appPromptConfirmButton directive.\n */\n@Directive({\n selector: '[dbxActionConfirm]'\n})\nexport class DbxActionConfirmDirective<T = unknown, O = unknown> extends AbstractPromptConfirmDirective implements OnInit, OnDestroy {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n @Input('dbxActionConfirm')\n override config?: Maybe<DbxActionConfirmConfig<T>>;\n\n private _sourceSubscription = new SubscriptionObject();\n\n ngOnInit(): void {\n this._sourceSubscription.subscription = this.source.triggered$.subscribe(() => {\n this.showDialog();\n });\n }\n\n ngOnDestroy(): void {\n this._sourceSubscription.destroy();\n }\n\n protected override _handleDialogResult(result: boolean): boolean {\n if (result) {\n this.source.readyValue(this.config?.readyValue as unknown as T);\n } else {\n this.source.reject(undefined);\n }\n\n return result;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-box',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-prompt-box',\n '[class.elevated]': 'elevated'\n }\n})\nexport class DbxPromptBoxComponent {\n @Input()\n elevated = true;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-page',\n template: `\n <dbx-content-container grow=\"full\">\n <div class=\"dbx-prompt-page-content-wrap\">\n <ng-content></ng-content>\n </div>\n </dbx-content-container>\n `,\n host: {\n class: 'd-block dbx-prompt-page'\n }\n})\nexport class DbxPromptPageComponent {}\n","import { DbxButton, DbxButtonInterceptor } from '@dereekb/dbx-core';\nimport { Directive, OnInit, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { DbxPromptConfirm } from './prompt.confirm';\n\n/**\n * Directive that binds together a confirm dialog with the button.\n */\n@Directive({\n selector: '[dbxPromptConfirmButton]'\n})\nexport class DbxPromptConfirmButtonDirective implements OnInit, DbxButtonInterceptor {\n readonly button = inject(DbxButton, { host: true });\n readonly prompt = inject(DbxPromptConfirm, { host: true });\n\n readonly interceptButtonClick: () => Observable<boolean> = () => {\n return this.prompt.showDialog().pipe(map((x) => Boolean(x)));\n };\n\n ngOnInit(): void {\n this.button.setButtonInterceptor(this);\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from './../../button/button.module';\nimport { DbxPromptComponent } from './prompt.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxPromptBoxComponent } from './prompt.box.component';\nimport { DbxPromptPageComponent } from './prompt.page.component';\nimport { DbxTextModule } from '../../layout/text';\nimport { DbxSectionLayoutModule } from '../../layout/section/section.layout.module';\nimport { DbxContentLayoutModule } from '../../layout/content/content.layout.module';\nimport { DbxPromptConfirmComponent as DbxPromptConfirmComponent } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent as DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\nimport { DbxPromptConfirmDirective } from './prompt.confirm.directive';\nimport { DbxPromptConfirmButtonDirective } from './prompt.button.confirm.directive';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogInteractionModule } from '../dialog/dialog.module';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MatButtonModule, DbxTextModule, DbxButtonModule, DbxInjectionComponentModule, DbxDialogInteractionModule, DbxSectionLayoutModule, DbxContentLayoutModule],\n declarations: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective],\n exports: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDirective]\n})\nexport class DbxPromptModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { DbxButtonModule } from '../button/button.module';\n// import { DbxErrorModule } from '../error/error.module';\nimport { DbxActionKeyTriggerDirective } from './key.trigger.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxActionConfirmDirective } from './action.confirm.directive';\nimport { DbxPromptModule } from '../interaction/prompt/prompt.module';\n\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule],\n declarations: [DbxActionKeyTriggerDirective, DbxActionConfirmDirective],\n exports: [DbxCoreActionModule, DbxActionKeyTriggerDirective, DbxActionConfirmDirective]\n})\nexport class DbxActionModule {}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopupService } from './popup.service';\nimport { DbxPopupContentComponent } from './popup.content.component';\nimport { DbxPopupComponent } from './popup.component';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxActionModule } from '../../action/action.module';\nimport { DbxPopupControlsComponent } from './popup.controls.component';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxButtonModule, DbxRouterAnchorModule, DbxActionModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule],\n declarations: [DbxPopupComponent, DbxPopupCoordinatorComponent, DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n exports: [DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n providers: [DbxPopupService]\n})\nexport class DbxPopupInteractionModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxDialogInteractionModule } from './dialog/dialog.module';\nimport { DbxPromptModule } from './prompt/prompt.module';\nimport { DbxPopupInteractionModule } from './popup/popup.module';\nimport { DbxPopoverInteractionModule } from './popover/popover.module';\nimport { DbxFilterInteractionModule } from './filter/filter.module';\n\n@NgModule({\n exports: [DbxDialogInteractionModule, DbxFilterInteractionModule, DbxPromptModule, DbxPopoverInteractionModule, DbxPopupInteractionModule]\n})\nexport class DbxInteractionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from '../../interaction';\nimport { DbxActionSnackbarDirective } from './action.snackbar.directive';\nimport { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\nconst declarations = [DbxActionSnackbarComponent, DbxActionSnackbarDirective];\n\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule],\n declarations,\n exports: declarations\n})\nexport class DbxActionSnackbarModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes, AbstractDialogDirective } from '../../interaction';\n\nexport enum DbxActionTransitionSafetyDialogResult {\n SUCCESS,\n STAY,\n DISCARD,\n NONE\n}\n\n/**\n * Dialog that is shown/triggered as part of the DbxActionTransitionSafety\n */\n@Component({\n template: `\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <ng-container>\n <dbx-error dbxActionError></dbx-error>\n <dbx-button text=\"Save Changes\" dbxActionButton></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n </dbx-prompt-confirm>\n `\n})\nexport class DbxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDirective implements OnInit {\n config: DbxPromptConfirmConfig = {\n type: DbxPromptConfirmTypes.NORMAL,\n title: 'Unsaved Changes',\n prompt: 'You have unsaved changes on this page.',\n confirmText: 'Stay',\n cancelText: 'Discard Changes'\n };\n\n confirm(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.STAY);\n }\n\n cancel(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.DISCARD);\n }\n}\n","import { Directive, OnInit, OnDestroy, Input, ViewContainerRef, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { HookResult, Transition, TransitionService } from '@uirouter/core';\nimport { Observable, of, race, delay, first, map, mergeMap, tap, firstValueFrom } from 'rxjs';\nimport { DbxActionContextStoreSourceInstance, canTriggerAction, isIdleActionState } from '@dereekb/dbx-core';\nimport { DbxActionTransitionSafetyDialogResult, DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\n\n/**\n * How to handle transitions.\n *\n * Values:\n * - none: Nothing occurs.\n * - dialog: Always show a dialog and act based on the result.\n * - auto: Try to auto-trigger if in a triggerable state. If it is modified but in a non-triggerable state, show a dialog. Should be used in conjuction with the auto-saver.\n */\nexport type DbxActionTransitionSafetyType = 'none' | 'dialog' | 'auto';\n\ntype DbxActionTransitionSafetyRaceResult = [boolean | undefined, HookResult | undefined];\n\n/**\n * Context used for preventing a transition from occuring if the action is not complete or is in a modified state.\n *\n * This can be configured to auto-trigger and wait, or show a dialog and wait for the user's feedback before doing anything.\n *\n * NOTE: This dialog only works for uirouter.\n */\n@Directive({\n selector: '[dbxActionTransitionSafety]'\n})\nexport class DbxActionTransitionSafetyDirective<T, O> implements OnInit, OnDestroy {\n protected readonly transitionService = inject(TransitionService);\n protected readonly viewContainerRef = inject(ViewContainerRef);\n protected readonly dialog = inject(MatDialog);\n\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>);\n\n @Input('dbxActionTransitionSafety')\n inputSafetyType?: DbxActionTransitionSafetyType;\n\n private _dialogRef?: MatDialogRef<DbxActionUIRouterTransitionSafetyDialogComponent, DbxActionTransitionSafetyDialogResult>;\n private stopWatchingTransition?: () => void;\n\n get safetyType(): DbxActionTransitionSafetyType {\n return this.inputSafetyType ?? 'dialog';\n }\n\n private get _destroyed(): boolean {\n return !this.stopWatchingTransition;\n }\n\n ngOnInit(): void {\n this.stopWatchingTransition = this.transitionService.onStart({}, (transition: Transition) => {\n return this._handleOnBeforeTransition(transition);\n }) as () => void;\n }\n\n ngOnDestroy(): void {\n if (this.stopWatchingTransition) {\n this.stopWatchingTransition();\n delete this.stopWatchingTransition;\n }\n\n this._closeDialog();\n }\n\n protected _handleOnBeforeTransition(transition: Transition): HookResult {\n return firstValueFrom(\n this.source.isModified$.pipe(\n first(),\n mergeMap((isModified) => {\n if (isModified) {\n return race([\n // Watch for success to occur. At that point, close everything.\n this.source.success$.pipe(\n first(),\n map(() => [true, undefined] as DbxActionTransitionSafetyRaceResult)\n ),\n this._handleIsModifiedState(transition).pipe(\n first(),\n map((x) => [undefined, x] as DbxActionTransitionSafetyRaceResult)\n )\n ]).pipe(\n map(([saveSuccess, handleResult]: DbxActionTransitionSafetyRaceResult) => {\n if (saveSuccess) {\n return true;\n } else {\n return handleResult;\n }\n }),\n tap(() => this._closeDialog()), // Close dialog if it is still open.\n delay(10) // Delay to allow dialog to close before transition.\n );\n } else {\n return of(true);\n }\n })\n )\n ).then((x) => x); // Resolve/Flatten potential promise result.\n }\n\n protected _handleIsModifiedState(transition: Transition): Observable<HookResult> {\n const safetyType = this.safetyType;\n let obs: Observable<HookResult>;\n\n // console.log('Safety type: ', safetyType);\n\n switch (safetyType) {\n case 'none':\n obs = of(true); // Do nothing.\n break;\n case 'auto':\n obs = this._autoTrigger(transition);\n break;\n default:\n case 'dialog':\n obs = this._showDialog(transition);\n break;\n }\n\n return obs;\n }\n\n private _autoTrigger(transition: Transition): Observable<HookResult> {\n return this.source.pipeStore((store) =>\n store.state$.pipe(\n delay(20), // Prevent racing with auto-trigger.\n first(),\n mergeMap((state) => {\n if (isIdleActionState(state.actionState)) {\n // If we're in an idle state, get ready to trigger it.\n if (canTriggerAction(state)) {\n store.trigger(); // Try and trigger it.\n }\n }\n\n // Watch for errors. If an error occurs, show the dialog.\n // Success will cause the race in _handleOnBeforeTransition() to trigger and close everything.\n return store.rejected$.pipe(\n first(),\n mergeMap(() => this._showDialog(transition))\n );\n })\n )\n );\n }\n\n private _showDialog(transition: Transition): Observable<HookResult> {\n if (this._destroyed) {\n return of(true);\n }\n\n if (!this._dialogRef) {\n this._dialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {\n viewContainerRef: this.viewContainerRef\n });\n }\n\n return this._dialogRef.afterClosed().pipe(\n first(),\n map((result: DbxActionTransitionSafetyDialogResult | undefined = DbxActionTransitionSafetyDialogResult.STAY) => {\n // Default to Stay if the user clicks outside.\n switch (result) {\n case DbxActionTransitionSafetyDialogResult.DISCARD:\n case DbxActionTransitionSafetyDialogResult.SUCCESS:\n case DbxActionTransitionSafetyDialogResult.NONE:\n return true;\n case DbxActionTransitionSafetyDialogResult.STAY:\n return false;\n }\n })\n );\n }\n\n private _closeDialog(): void {\n if (this._dialogRef) {\n this._dialogRef.close(DbxActionTransitionSafetyDialogResult.NONE);\n }\n\n this._dialogRef = undefined;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { DbxActionTransitionSafetyDirective as DbxActionUIRouterTransitionSafetyDirective } from './transition.safety.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from './../../interaction';\nimport { DbxReadableErrorModule } from '../../error';\n\n/**\n * Provides the DbxActionUIRouterTransitionSafetyDirective.\n *\n * NOTE: Only works with UIRouter\n */\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule, DbxReadableErrorModule],\n declarations: [DbxActionUIRouterTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent],\n exports: [DbxActionUIRouterTransitionSafetyDirective]\n})\nexport class DbxActionUIRouterTransitionModule {}\n","import { createAction } from '@ngrx/store';\n\nexport const dbxModelResetState = createAction('[App/Model] Reset State');\n","import { ModelKeyTypeNamePair, ModelKeyTypePair } from '@dereekb/util';\nimport { createAction, props } from '@ngrx/store';\n\nexport interface DbxModelObjectViewedParams {\n modelKeyTypeNamePair: ModelKeyTypeNamePair;\n context?: string;\n}\n\nexport interface DbxModelGoToObjectViewParams {\n modelKeyTypePair: ModelKeyTypePair;\n}\n\nexport const emitObjectViewEvent = createAction('[App/Model/Type] Object Viewed', props<DbxModelObjectViewedParams>());\n","import { createReducer, on } from '@ngrx/store';\n\nimport { DbxModelStateActions } from '../actions';\n\nexport interface DbxModelModuleStateConfiguration {}\n\nexport const stateFeatureKey = 'model.module.config';\n\nexport const initialState: DbxModelModuleStateConfiguration = {\n types: {}\n};\n\nexport const reducer = createReducer(\n initialState,\n on(DbxModelStateActions.dbxModelResetState, () => initialState)\n);\n","import { Action, combineReducers, createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromObjectModuleConfig from './model.module.config';\nimport { DbxModelModuleStateConfiguration } from './model.module.config';\n\nexport const featureKey = 'app.model';\n\nexport interface DbxModelState {\n [fromObjectModuleConfig.stateFeatureKey]: DbxModelModuleStateConfiguration;\n}\n\nexport interface State {\n [featureKey]: DbxModelState;\n}\n\nexport function reducers(state: DbxModelState | undefined, action: Action) {\n return combineReducers({\n [fromObjectModuleConfig.stateFeatureKey]: fromObjectModuleConfig.reducer\n })(state, action);\n}\n\n// MARK: Context\nexport const selectDbxModelFeature = createFeatureSelector<State, DbxModelState>(featureKey);\n\n// MARK: Module Config\nexport const selectDbxModelFeatureObjectModuleConfig = createSelector(selectDbxModelFeature, (state: DbxModelState) => state[fromObjectModuleConfig.stateFeatureKey]);\n","import { Injectable, InjectionToken, OnDestroy, inject } from '@angular/core';\nimport { unixTimeNumberForNow } from '@dereekb/util';\nimport { StorageAccessor } from '@dereekb/dbx-core';\nimport { encodeModelKeyTypePair, ModelRelationUtility, type Maybe } from '@dereekb/util';\nimport { map, mergeMap, catchError, Observable, of, Subject, tap } from 'rxjs';\nimport { DbxModelViewTrackerEventSet, DbxModelViewTrackerEvent } from './model.tracker';\n\nexport const DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN = new InjectionToken('DbxModelViewTrackerStorageAccessor');\n\n/**\n * Used for managing DbxModelViewTrackerEvent storage.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelViewTrackerStorage implements OnDestroy {\n static readonly OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY = 'dbxModelViewTrackerEvents';\n static readonly DEFAULT_MAX_EVENTS = 100;\n\n readonly storageAccessor = inject<StorageAccessor<DbxModelViewTrackerEventSet>>(DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN);\n\n private _newEvent = new Subject<DbxModelViewTrackerEvent>();\n\n readonly newEvent$ = this._newEvent.asObservable();\n\n ngOnDestroy(): void {\n this._newEvent.complete();\n }\n\n protected get storageKey(): string {\n return DbxModelViewTrackerStorage.OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY;\n }\n\n protected get maxEventsToKeep(): number {\n return DbxModelViewTrackerStorage.DEFAULT_MAX_EVENTS;\n }\n\n addTrackerEvent(event: DbxModelViewTrackerEvent): Observable<void> {\n const storageKey = this.getStorageKeyForFolder(event.folder);\n return this._getEventSetForStorageKey(storageKey).pipe(\n mergeMap((set) => {\n const nextEvent: DbxModelViewTrackerEvent = {\n d: event.d ?? unixTimeNumberForNow(),\n c: event.c,\n m: event.m\n };\n\n const e = ModelRelationUtility.removeDuplicates(set.e, (x) => encodeModelKeyTypePair(x.m), [encodeModelKeyTypePair(nextEvent.m)]);\n e.push(nextEvent);\n e.sort((a, b) => (b.d ?? 0) - (a.d ?? 0));\n\n return this.storageAccessor\n .set(storageKey, {\n l: Math.max(set.l ?? 0, nextEvent.d as number),\n e: e.slice(0, this.maxEventsToKeep)\n })\n .pipe(tap(() => this._newEvent.next(nextEvent)));\n })\n );\n }\n\n getAllEvents(folder?: Maybe<string>): Observable<DbxModelViewTrackerEvent[]> {\n return this.getEventSet(folder).pipe(map((x) => x.e));\n }\n\n getEventSet(folder?: Maybe<string>): Observable<DbxModelViewTrackerEventSet> {\n const storageKey = this.getStorageKeyForFolder(folder);\n return this._getEventSetForStorageKey(storageKey);\n }\n\n private _getEventSetForStorageKey(storageKey: string): Observable<DbxModelViewTrackerEventSet> {\n return this.storageAccessor.get(storageKey).pipe(\n catchError((e) => {\n return of(undefined);\n }),\n map((result) => result ?? { e: [], l: 0 })\n );\n }\n\n getStorageKeyForFolder(folder?: Maybe<string>): string {\n const storageKey = `${this.storageKey}_${folder ?? 'default'}`;\n return storageKey;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Maybe, ModelKeyTypeNamePair } from '@dereekb/util';\nimport { first, Observable } from 'rxjs';\nimport { DbxModelViewTrackerEvent, DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelViewTrackerStorage } from './model.tracker.view.storage';\n\n/**\n * Service used for tracking/logging different kinds of events on objects.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTrackerService {\n private readonly _viewTrackerStorage = inject(DbxModelViewTrackerStorage);\n\n private _defaultFolder: Maybe<string>;\n\n readonly newEvent$ = this._viewTrackerStorage.newEvent$;\n\n get defaultFolder(): Maybe<string> {\n return this._defaultFolder;\n }\n\n set defaultFolder(folder: Maybe<string>) {\n this._defaultFolder = folder ?? undefined;\n }\n\n // MARK: View\n trackViewedObject(modelKeyTypeNamePair: ModelKeyTypeNamePair, context?: string, folder: Maybe<string> = this._defaultFolder): void {\n this._viewTrackerStorage\n .addTrackerEvent({\n m: modelKeyTypeNamePair,\n c: context,\n folder\n })\n .pipe(first())\n .subscribe();\n }\n\n getAllViewEvents(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEvent[]> {\n return this._viewTrackerStorage.getAllEvents(folder);\n }\n\n getViewEventSet(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEventSet> {\n return this._viewTrackerStorage.getEventSet(folder);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { distinctUntilChanged, filter, map, tap } from 'rxjs';\nimport { onDbxAppAuth } from '@dereekb/dbx-core';\nimport { DbxModelTrackerService } from '../../model.tracker.service';\nimport { onDbxModel } from '..';\n\n/**\n * Used to pass Object Store events to the ObjectTracker.\n */\n@Injectable()\nexport class DbxModelTrackerEffects {\n private readonly actions$ = inject(Actions);\n private readonly dbxModelTrackerService = inject(DbxModelTrackerService);\n\n readonly trackModelViewed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent),\n distinctUntilChanged((a, b) => a?.modelKeyTypeNamePair.key === b?.modelKeyTypeNamePair.key && a?.type === b?.type && a?.context === b?.context),\n tap((x) => {\n this.dbxModelTrackerService.trackViewedObject(x.modelKeyTypeNamePair, x.context);\n })\n ),\n { dispatch: false }\n );\n\n readonly changeTrackerFolderToMatchAuth$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxAppAuth.DbxAppAuthUserActions.setUserIdentifier),\n map((x) => x.id),\n filter((x) => Boolean(x)),\n distinctUntilChanged(),\n tap((accountId) => {\n this.dbxModelTrackerService.defaultFolder = accountId;\n })\n ),\n { dispatch: false }\n );\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule, SimpleStorageAccessorFactory, StorageAccessor } from '@dereekb/dbx-core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelTrackerService } from './model.tracker.service';\nimport { DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN } from './model.tracker.view.storage';\nimport { fromDbxModel } from './state';\nimport { DbxModelTrackerEffects } from './state/effects/tracker.effects';\n\nexport function appObjectViewTrackerStorageAccessorFactory(storageAccessorFactory: SimpleStorageAccessorFactory): StorageAccessor<DbxModelViewTrackerEventSet> {\n const accessor = storageAccessorFactory.createStorageAccessor<DbxModelViewTrackerEventSet>({\n prefix: 'mtvs'\n });\n\n return accessor;\n}\n\n/**\n * Contains components related to displaying content related to models identified only by their model key.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule,\n EffectsModule.forFeature([DbxModelTrackerEffects]),\n StoreModule.forFeature(fromDbxModel.featureKey, fromDbxModel.reducers)\n ],\n declarations: [],\n exports: []\n})\nexport class DbxModelInfoModule {\n static forRoot(): ModuleWithProviders<DbxModelInfoModule> {\n return {\n ngModule: DbxModelInfoModule,\n providers: [\n DbxModelTrackerService,\n {\n provide: DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN,\n useFactory: appObjectViewTrackerStorageAccessorFactory,\n deps: [SimpleStorageAccessorFactory]\n }\n ]\n };\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { onDbxModel } from './state';\nimport { DbxModelObjectViewedParams } from './state/actions/model.actions';\nimport { DbxModelFullState } from './state/state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelObjectStateService {\n readonly store = inject(Store<DbxModelFullState>);\n\n /**\n * Emit a model viewed event.\n */\n emitModelViewEvent({ modelKeyTypeNamePair, context }: DbxModelObjectViewedParams): void {\n this.store.dispatch(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent({ modelKeyTypeNamePair, context }));\n }\n}\n","import { UnixDateTimeNumber, Maybe, ModelKey, ModelKeyTypeNamePair } from '@dereekb/util';\n\n/**\n * Context in which a model was viewed.\n */\nexport type ModelViewContext = string;\n\nexport interface DbxModelViewTrackerEvent {\n /**\n * Event time\n */\n d?: UnixDateTimeNumber;\n /**\n * Context\n */\n c?: ModelViewContext;\n /**\n * Model info\n */\n m: ModelKeyTypeNamePair;\n folder?: Maybe<string>;\n}\n\nexport interface DbxModelViewTrackerEventSet {\n /**\n * The latest date/time number.\n */\n l: UnixDateTimeNumber;\n /**\n * List of events.\n */\n e: DbxModelViewTrackerEvent[];\n}\n\nexport function allDbxModelViewTrackerEventSetModelKeys(eventSet: DbxModelViewTrackerEventSet): ModelKey[] {\n return allDbxModelViewTrackerEventModelKeys(eventSet.e);\n}\n\nexport function allDbxModelViewTrackerEventModelKeys(events: DbxModelViewTrackerEvent[]): ModelKey[] {\n return events.map((y) => y.m.key);\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { capitalCase } from 'change-case';\nimport { map, shareReplay, Observable, BehaviorSubject } from 'rxjs';\nimport { ArrayOrValue, Building, ModelTypeString, useIterableOrValue } from '@dereekb/util';\nimport { DbxModelTypeConfiguration, DbxModelTypeConfigurationMap } from './model.types';\n\nexport interface DbxModelTypeInfo extends Omit<DbxModelTypeConfiguration, 'srefFactory'> {\n /**\n * Whether or not a response is expected for segues\n * to a view for objects of this type.\n */\n canSegueToView: boolean;\n}\n\nexport interface DbxModelTypesMap<I extends DbxModelTypeInfo> {\n readonly [type: string]: I;\n}\n\nexport interface DbxModelIconsMap {\n readonly [type: string]: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTypesService<I extends DbxModelTypeInfo = DbxModelTypeInfo> {\n static readonly DEFAULT_ICON = 'help_outline';\n\n readonly injector = inject(Injector);\n\n private readonly _configs = new BehaviorSubject<DbxModelTypeConfigurationMap>({});\n\n // MARK: Configuration\n addTypeConfigs(configs: ArrayOrValue<DbxModelTypeConfiguration>) {\n const types = {\n ...this._configs.value\n };\n\n useIterableOrValue(configs, (config) => {\n types[config.modelType] = config;\n });\n\n this._configs.next(types);\n }\n\n addTypeConfigsMap(configs: DbxModelTypeConfigurationMap) {\n const newConfig: DbxModelTypeConfigurationMap = {\n ...this._configs.value,\n ...configs\n };\n\n this._configs.next(newConfig);\n }\n\n // MARK: Accessors\n readonly typesMap$ = this._configs.pipe(\n map((types) => {\n const typesMap: Building<DbxModelTypesMap<I>> = {};\n\n Object.keys(types).forEach((type) => {\n const config = types[type];\n\n const label = config.label || capitalCase(type);\n const analyticsName = config.analyticsName || label;\n const sref = config.srefBuilder ? config.srefBuilder(this.injector) : config.sref;\n\n typesMap[type] = {\n ...config,\n sref,\n label,\n analyticsName,\n icon: config.icon ?? DbxModelTypesService.DEFAULT_ICON,\n canSegueToView: Boolean(sref)\n } as I;\n });\n\n return typesMap as DbxModelTypesMap<I>;\n }),\n shareReplay(1)\n );\n\n readonly iconMap$: Observable<DbxModelIconsMap> = this.typesMap$.pipe(\n map((types) => {\n const iconsMap: Building<DbxModelIconsMap> = {};\n\n Object.keys(types).forEach((type) => {\n iconsMap[type] = types[type].icon;\n });\n\n return iconsMap as DbxModelIconsMap;\n }),\n shareReplay(1)\n );\n\n iconForType(type: ModelTypeString): Observable<string> {\n return this.iconMap$.pipe(map((x) => x[type]));\n }\n}\n","import { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { WorkUsingObservable, LoadingState, filterMaybe, loadingStateContext, successResult, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { MS_IN_SECOND, type Maybe } from '@dereekb/util';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, first, map, of, shareReplay, switchMap, tap } from 'rxjs';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { DownloadTextContent } from './download.text';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\n\n/**\n * DbxStructureDirective used specifically on the body of the app.\n */\n@Component({\n templateUrl: './download.text.component.html',\n selector: 'dbx-download-text-view'\n})\nexport class DbxDownloadTextViewComponent extends AbstractSubscriptionDirective {\n private readonly _clipboard = inject(Clipboard);\n private readonly _matSnackbar = inject(MatSnackBar);\n private readonly _sanitizer = inject(DomSanitizer);\n\n @Input()\n loadingText?: Maybe<string>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n @Input()\n showTitle: boolean = true;\n\n @Input()\n showPreview: boolean = true;\n\n private readonly _downloadButton = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n readonly downloadButton$ = this._downloadButton.asObservable();\n\n private readonly _contentLoadingState = new BehaviorSubject<Maybe<LoadingState<DownloadTextContent>>>(undefined);\n readonly contentLoadingState$ = this._contentLoadingState.pipe(filterMaybe(), shareReplay(1));\n\n readonly content$ = this._contentLoadingState.pipe(\n switchMap((x) => {\n if (x) {\n return this.contentLoadingState$.pipe(valueFromFinishedLoadingState());\n } else {\n return of(undefined);\n }\n })\n );\n\n readonly contentData$ = this.content$.pipe(map((x) => x?.content));\n\n readonly context = loadingStateContext({ obs: this.contentLoadingState$ });\n\n readonly fileName$ = this.content$.pipe(\n map((x) => x?.name ?? 'File'),\n shareReplay(1)\n );\n\n readonly fileUrl$: Observable<Maybe<SafeResourceUrl>> = this.content$.pipe(\n map((content) => {\n let fileUrl: Maybe<SafeResourceUrl> = undefined;\n\n if (content) {\n const blob = new Blob([content.content], { type: content.mimeType ?? 'application/octet-stream' });\n fileUrl = this._sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));\n }\n\n return fileUrl;\n }),\n shareReplay(1)\n );\n\n readonly downloadReady$ = combineLatest([this._downloadButton, this.fileName$, this.fileUrl$]).pipe(\n map(([button, name, url]) => Boolean(button && name && url)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input()\n set content(content: Maybe<DownloadTextContent>) {\n this._contentLoadingState.next(content ? successResult(content) : undefined);\n }\n\n @Input()\n set contentState(contentState: Maybe<LoadingState<DownloadTextContent>>) {\n this._contentLoadingState.next(contentState);\n }\n\n @ViewChild('downloadButton', { read: ElementRef })\n set downloadButton(downloadButton: ElementRef) {\n this._downloadButton.next(downloadButton);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._downloadButton.complete();\n this._contentLoadingState.complete();\n }\n\n readonly handleCopyToClipboard: WorkUsingObservable = () => {\n return this.content$.pipe(\n first(),\n switchMap((downloadTextContent: Maybe<DownloadTextContent>) => {\n if (downloadTextContent) {\n return new Promise<boolean>((resolve, reject) => {\n const pending = this._clipboard.beginCopy(downloadTextContent.content);\n\n let secondsRemainingForCopy = 20; // attempt to copy for up to 20 seconds\n\n const attempt = () => {\n const copyIsFinished = pending.copy();\n\n if (!copyIsFinished && --secondsRemainingForCopy) {\n setTimeout(attempt, MS_IN_SECOND);\n } else {\n // Remember to destroy when you're done!\n pending.destroy();\n\n if (copyIsFinished) {\n resolve(true);\n } else {\n reject(false);\n }\n }\n };\n\n attempt();\n });\n } else {\n return of(false);\n }\n }),\n tap((success) => {\n if (success) {\n this._matSnackbar.open('Copied to clipboard', undefined, { duration: 3 * MS_IN_SECOND });\n } else {\n this._matSnackbar.open('Content failed to copy...', undefined, { duration: 3 * MS_IN_SECOND });\n }\n })\n );\n };\n}\n","<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear\" [text]=\"loadingText\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n <div *ngIf=\"showTitle\" class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileName$ | async }}</div>\n <div *ngIf=\"showPreview\" class=\"dbx-download-text-preview dbx-json dbx-content-pit dbx-content-pit-scrollable dbx-mb3\">{{ contentData$ | async }}</div>\n <div class=\"dbx-download-text-view-actions\">\n <dbx-button dbxAction dbxActionValue [raised]=\"true\" [dbxActionHandler]=\"handleCopyToClipboard\" icon=\"content_copy\" dbxActionButton text=\"Copy To Clipboard\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <a #downloadButton [href]=\"fileUrl$ | async\" [attr.download]=\"fileName$ | async\"><dbx-button icon=\"download\" text=\"Download\" [raised]=\"true\" [working]=\"!(downloadReady$ | async)\" [disabled]=\"!(downloadReady$ | async)\"></dbx-button></a>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxDownloadTextViewComponent } from './download.text.component';\nimport { DbxButtonModule } from '../../../button/button.module';\nimport { DbxLoadingModule } from '../../../loading/loading.module';\nimport { DbxActionModule } from '../../../action/action.module';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\n\nconst declarations = [DbxDownloadTextViewComponent];\n\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxLoadingModule,\n DbxButtonModule,\n DbxActionModule,\n MatSnackBarModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxDownloadTextModule {}\n","import { ChangeDetectorRef, Directive, ElementRef, Injector, inject } from '@angular/core';\n\n/**\n * Used to reference a cdRef, injector, and element at the given element.\n *\n * Generally used for child views to reference a well-placed parent view.\n */\n@Directive({\n selector: '[dbxStructure]'\n})\nexport class DbxStructureDirective {\n readonly cdRef = inject(ChangeDetectorRef);\n readonly injector = inject(Injector);\n readonly element = inject(ElementRef);\n}\n","import { Directive } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\n\n/**\n * DbxStructureDirective used specifically on the body of the app.\n */\n@Directive({\n selector: 'dbxBody,[dbxBody]',\n providers: [\n {\n provide: DbxStructureDirective,\n useExisting: DbxBodyDirective\n }\n ]\n})\nexport class DbxBodyDirective extends DbxStructureDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\nimport { DbxBodyDirective } from './structure.body.directive';\n\nconst declarations = [DbxBodyDirective, DbxStructureDirective];\n\n@NgModule({\n imports: [\n //\n CommonModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxStructureModule {}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeArrayValues, mapIterable } from '@dereekb/util';\nimport { DbxWidgetType } from './widget';\n\nexport interface DbxWidgetEntry {\n /**\n * Widget type to respond to.\n */\n readonly type: DbxWidgetType;\n /**\n * Widget component class to use.\n */\n readonly componentClass: Type<unknown>;\n}\n\n/**\n * Service used to register widgets.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxWidgetService {\n private _entries = new Map<DbxWidgetType, DbxWidgetEntry>();\n\n /**\n * Used to register an entry. If an entry with the same type is already registered, this will override it by default.\n *\n * @param entry\n * @param override\n */\n register(entry: DbxWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.type)) {\n this._entries.set(entry.type, entry);\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getWidgetIdentifiers(): DbxWidgetType[] {\n return Array.from(this._entries.keys());\n }\n\n getWidgetEntry(type: DbxWidgetType): Maybe<DbxWidgetEntry> {\n return this._entries.get(type);\n }\n\n getWidgetEntries(types: Iterable<DbxWidgetType>): DbxWidgetEntry[] {\n return filterMaybeArrayValues(mapIterable(types ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map, shareReplay, distinctUntilChanged } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxWidgetViewComponentConfig } from './widget';\nimport { DbxWidgetService } from './widget.service';\n\n/**\n * Used to display a corresponding widget based on the input data.\n */\n@Component({\n selector: 'dbx-widget-view',\n template: `\n <ng-container [ngSwitch]=\"widgetConfigExists$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <ng-container *ngTemplateOutlet=\"unknown\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #widget>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </ng-template>\n <ng-template #unknown>\n <ng-content empty select=\"[unknownWidget]\"></ng-content>\n </ng-template>\n `,\n host: {\n class: 'dbx-widget-view'\n }\n})\nexport class DbxWidgetViewComponent implements OnDestroy {\n readonly dbxWidgetService = inject(DbxWidgetService);\n\n private readonly _config = new BehaviorSubject<Maybe<DbxWidgetViewComponentConfig>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._config.pipe(\n map((pair: Maybe<DbxWidgetViewComponentConfig>) => {\n let config: Maybe<DbxInjectionComponentConfig> = undefined;\n\n if (pair != null) {\n let entry = this.dbxWidgetService.getWidgetEntry(pair.type);\n\n if (!entry && pair.defaultType) {\n entry = this.dbxWidgetService.getWidgetEntry(pair.defaultType);\n }\n\n if (entry) {\n config = {\n componentClass: entry.componentClass,\n data: pair.data\n };\n } else {\n config = null;\n }\n }\n\n return config;\n }),\n shareReplay(1)\n );\n\n readonly widgetConfigExists$ = this.config$.pipe(\n map((x) => x !== null),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<DbxWidgetViewComponentConfig>) {\n this._config.next(config);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\n\n@Directive()\nexport abstract class AbstractDbxWidgetComponent<T> {\n readonly data = inject<T>(DBX_INJECTION_COMPONENT_DATA);\n}\n","import { Component } from '@angular/core';\nimport { of } from 'rxjs';\nimport { AbstractDbxListWrapperDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, DbxValueListGridViewConfig, AbstractDbxValueListViewItemComponent, provideDbxListView, DbxValueAsListItem, AbstractDbxListGridViewDirective, DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE } from '../../layout/list';\nimport { DbxWidgetDataPair } from './widget';\n\nexport type DbxWidgetDataPairWithSelection = DbxValueAsListItem<DbxWidgetDataPair>;\n\n/**\n * Demo DbxSelectionListWrapperDirective\n */\n@Component({\n selector: 'dbx-widget-grid',\n template: DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE\n})\nexport class DbxWidgetListGridComponent extends AbstractDbxListWrapperDirective<DbxWidgetDataPair> {\n constructor() {\n super({\n componentClass: DbxWidgetListGridViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}\n\n@Component({\n selector: 'dbx-widget-grid-view',\n template: DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE,\n providers: provideDbxListView(DbxWidgetListGridViewComponent)\n})\nexport class DbxWidgetListGridViewComponent extends AbstractDbxListGridViewDirective<DbxWidgetDataPair> {\n readonly config: DbxValueListGridViewConfig<DbxWidgetDataPairWithSelection> = {\n grid: {\n // TODO: Make configurable.\n columns: 'repeat(auto-fill, minmax(120px, 1fr))',\n gap: '8px'\n },\n componentClass: DbxWidgetListGridViewItemComponent,\n mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, itemValue: y })))\n };\n}\n\n@Component({\n template: `\n <dbx-widget-view [config]=\"itemValue\"></dbx-widget-view>\n `\n})\nexport class DbxWidgetListGridViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxWidgetDataPair> {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent } from './widget.list.component';\n\n/**\n * Contains components related to displaying \"widgets\" for pieces of data.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule\n ],\n declarations: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent],\n exports: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent]\n})\nexport class DbxWidgetModule {}\n","// export * from './calendar'; // nothing to export\nexport * from './model';\nexport * from './download';\nexport * from './structure';\n// export * from './table'; // nothing to export\nexport * from './widget';\n","import { DestroyFunction } from '@dereekb/util';\n\n/**\n * Disables the \"contextmenu\" from popping up in the cdk-overlay-container.\n *\n * @param classes\n * @param onEvent\n * @returns\n */\nexport function disableRightClickInCdkBackdrop(classes: string = 'cdk-overlay-container', onEvent?: (event: MouseEvent) => void): DestroyFunction {\n const eventListener = function (this: Element, event: Event) {\n event.preventDefault();\n onEvent?.(event as MouseEvent);\n };\n\n const target = document.getElementsByClassName(classes).item(0);\n\n if (target) {\n target.addEventListener('contextmenu', eventListener);\n return () => target.removeEventListener('contextmenu', eventListener);\n } else {\n return () => {};\n }\n}\n","import { DbxLoadingModule } from './loading/loading.module';\nimport { NgModule } from '@angular/core';\nimport { DbxButtonModule } from './button';\nimport { DbxActionModule } from './action';\n\n@NgModule({\n exports: [DbxButtonModule, DbxActionModule, DbxLoadingModule]\n})\nexport class DbxWebModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","i1.DbxSpinnerButtonComponent","i2.DbxSpacerDirective","i3","i4.DbxButtonComponent","i5.DbxButtonSpacerDirective","i1","i2","declarations","i1.DbxWindowKeyDownListenerDirective","i2.DbxStyleDirective","i4.DbxPopoverCoordinatorComponent","i2.DbxPopoverContentComponent","i3.DbxPopoverHeaderComponent","i4.DbxPopoverScrollContentComponent","i6","i7","i1.DbxIconButtonComponent","i3.DbxButtonComponent","i5","i6.DbxAnchorComponent","i1.DbxAnchorListComponent","i3.DbxAnchorComponent","i1.DbxAnchorComponent","i2.DbxAnchorComponent","i2.DbxIconButtonComponent","i2.DbxAnchorListComponent","i1.DbxPagebarComponent","i2.DbxButtonSpacerDirective","i3.DbxSidenavButtonComponent","i2.DbxSidenavPagebarComponent","i3.DbxBarDirective","i2.DbxContentContainerDirective","i4.DbxAnchorComponent","i5.DbxTwoColumnColumnHeadComponent","i1.DbxTwoColumnComponent","i1.DbxFlagComponent","i2.DbxLabelBlockComponent","i1.DbxErrorWidgetViewComponent","i1.DbxPopoverContentComponent","i2.DbxPopoverHeaderComponent","i3.DbxPopoverScrollContentComponent","i4.DbxErrorDetailsComponent","i3.DbxErrorViewComponent","i2.DbxReadableErrorComponent","i3.DbxLoadingProgressComponent","i2.DbxBasicLoadingComponent","i2.DbxLoadingComponent","i1.DbxDetailBlockHeaderComponent","i3.DbxReadableErrorComponent","i5.DbxValueListViewContentComponent","i1.DbxSectionHeaderComponent","i2.DbxPopupCoordinatorComponent","i2.DbxButtonComponent","i3.DbxButtonSpacerDirective","i1.DbxPopupControlButtonsComponent","i1.DbxSubSectionComponent","i3.DbxPromptComponent","i2.DbxDialogContentDirective","i3.DbxPromptConfirmComponent","i1.DbxContentContainerDirective","i1.DbxPromptConfirmComponent","i4.DbxButtonSpacerDirective","i5.DbxReadableErrorComponent","i6.DbxActionErrorDirective","DbxActionUIRouterTransitionSafetyDirective","DbxModelStateActions.dbxModelResetState","fromObjectModuleConfig.stateFeatureKey","fromObjectModuleConfig.reducer","onDbxModel.DbxModelStateModelActions.emitObjectViewEvent","fromDbxModel.featureKey","fromDbxModel.reducers","i1.DbxListComponent","i3.DbxValueListGridViewComponent","i4.DbxWidgetViewComponent"],"mappings":"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"}
1
+ {"version":3,"file":"dereekb-dbx-web.mjs","sources":["../../../../packages/dbx-web/src/lib/interaction/popover/popover.position.strategy.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.store.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.directive.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.component.ts","../../../../packages/dbx-web/src/lib/keypress/keydown.listener.directive.ts","../../../../packages/dbx-web/src/lib/keypress/keypress.module.ts","../../../../packages/dbx-web/src/lib/layout/style/style.ts","../../../../packages/dbx-web/src/lib/layout/style/style.service.ts","../../../../packages/dbx-web/src/lib/layout/style/style.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/abstract.dialog.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.footer.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.ref.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.controls.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.header.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.scroll.content.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.module.ts","../../../../packages/dbx-web/src/lib/button/button.spacer.directive.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.directive.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.config.ts","../../../../packages/dbx-web/src/lib/button/progress/abstract.progress.button.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.html","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.html","../../../../packages/dbx-web/src/lib/button/progress/button.progress.module.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.providers.ts","../../../../packages/dbx-web/src/lib/button/button.component.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.module.ts","../../../../packages/dbx-web/src/lib/button/button.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.directive.ts","../../../../packages/dbx-web/src/lib/router/provider/router.provider.config.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.list.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.menu.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.menu.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.list.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.position.strategy.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/abstract.popup.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.buttons.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.service.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.box.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.button.confirm.directive.ts","../../../../packages/dbx-web/src/lib/layout/section/section.header.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.component.ts","../../../../packages/dbx-web/src/lib/layout/section/subsection.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.dialog.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.page.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.module.ts","../../../../packages/dbx-web/src/lib/interaction/interaction.module.ts","../../../../packages/dbx-web/src/lib/error/error.widget.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/label.block.component.ts","../../../../packages/dbx-web/src/lib/error/default.error.widget.component.ts","../../../../packages/dbx-web/src/lib/error/error.widget.service.ts","../../../../packages/dbx-web/src/lib/error/error.widget.component.ts","../../../../packages/dbx-web/src/lib/error/error.details.component.ts","../../../../packages/dbx-web/src/lib/error/error.popover.component.ts","../../../../packages/dbx-web/src/lib/error/error.view.component.ts","../../../../packages/dbx-web/src/lib/error/error.component.ts","../../../../packages/dbx-web/src/lib/loading/loading-progress.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.html","../../../../packages/dbx-web/src/lib/loading/loading.component.ts","../../../../packages/dbx-web/src/lib/loading/loading.action.directive.ts","../../../../packages/dbx-web/src/lib/loading/loading.module.ts","../../../../packages/dbx-web/src/lib/layout/style/spacer.directive.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.html","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.default.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.generator.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.service.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.directive.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.module.ts","../../../../packages/dbx-web/src/lib/error/error.action.directive.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.dialog.component.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.directive.ts","../../../../packages/dbx-web/src/lib/action/transition/action.transition.module.ts","../../../../packages/dbx-web/src/lib/action/action.confirm.directive.ts","../../../../packages/dbx-web/src/lib/action/key.trigger.directive.ts","../../../../packages/dbx-web/src/lib/action/action.module.ts","../../../../packages/dbx-web/src/lib/error/error.api.ts","../../../../packages/dbx-web/src/lib/error/error.loading.directive.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.component.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.service.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.action.directive.ts","../../../../packages/dbx-web/src/lib/error/error.module.ts","../../../../packages/dbx-web/src/lib/error/state.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/model.actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/model.module.config.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/index.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.view.storage.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.service.ts","../../../../packages/dbx-web/src/lib/extension/model/state/effects/tracker.effects.ts","../../../../packages/dbx-web/src/lib/extension/model/model.state.service.ts","../../../../packages/dbx-web/src/lib/extension/model/model.providers.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.ts","../../../../packages/dbx-web/src/lib/extension/model/model.types.service.ts","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.component.ts","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.component.html","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.module.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.structure.directive.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.body.directive.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.module.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.service.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.item.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/group/list.view.value.group.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.component.ts","../../../../packages/dbx-web/src/lib/layout/list/grid/list.grid.view.component.ts","../../../../packages/dbx-web/src/lib/layout/list/grid/list.grid.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.html","../../../../packages/dbx-web/src/lib/layout/list/list.directive.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.list.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.module.ts","../../../../packages/dbx-web/src/lib/extension/index.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.directive.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.header.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/block/two.block.component.ts","../../../../packages/dbx-web/src/lib/layout/block/block.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.container.directive.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.store.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.back.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.context.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.full.left.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.head.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.icon.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.link.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.content.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.module.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.segue.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.module.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.view.value.modifier.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/router.list.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/list.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.ts","../../../../packages/dbx-web/src/lib/screen/screen.service.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.html","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.button.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.pagebar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.page.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/index.ts","../../../../packages/dbx-web/src/lib/router/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/angular.router.providers.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/uirouter/uirouter.router.providers.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.showright.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/column.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/content/content.border.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.box.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.elevate.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.page.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.pit.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.prompt.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.group.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.size.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/item/item.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/list/meta/list.view.meta.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/list/group/list.view.value.group.title.header.component.ts","../../../../packages/dbx-web/src/lib/layout/list/group/list.view.value.group.title.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.view.value.modifier.ripple.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.view.value.modifier.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.modifier.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.content.empty.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.selection.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.track.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.wrapper.ts","../../../../packages/dbx-web/src/lib/layout/section/section.intro.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.page.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.ts","../../../../packages/dbx-web/src/lib/layout/step/step.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/style/style.set.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.body.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.color.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/style/style.providers.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/form.description.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/hint.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/label.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/note.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/notice.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/ok.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/success.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/warn.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/text.compat.module.ts","../../../../packages/dbx-web/src/lib/layout/text/address.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.header.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.component.ts","../../../../packages/dbx-web/src/lib/layout/text/icon.spacer.component.ts","../../../../packages/dbx-web/src/lib/layout/text/linkify.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.chip.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/text.chips.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.module.ts","../../../../packages/dbx-web/src/lib/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.providers.ts","../../../../packages/dbx-web/src/lib/util/cdk.ts","../../../../packages/dbx-web/src/lib/dbx-web.module.ts","../../../../packages/dbx-web/src/dereekb-dbx-web.ts"],"sourcesContent":["import { FlexibleConnectedPositionStrategy, HorizontalConnectionPos, Overlay, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\nimport { NgOverlayContainerConfiguration } from 'ng-overlay-container';\n\nexport interface PopoverPositionStrategyConfig {\n overlay: Overlay;\n elementRef: ElementRef;\n config: NgOverlayContainerConfiguration;\n}\n\nexport class PopoverPositionStrategy {\n static make(overlay: Overlay, elementRef: ElementRef, config: NgOverlayContainerConfiguration): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] = config.originX === 'end' ? ['end', 'start', 'center'] : config.originX === 'start' ? ['start', 'end', 'center'] : ['center', 'start', 'end'];\n\n const overlayX = originX;\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] = config.overlayY === 'bottom' ? ['bottom', 'top'] : ['top', 'bottom'];\n\n const [originY, originFallbackY] = [overlayFallbackY, overlayY];\n const { offsetX = 0, offsetY = 0 } = config;\n\n return overlay\n .position()\n .flexibleConnectedTo(elementRef)\n .withLockedPosition(true)\n .withPositions([\n {\n originX,\n originY,\n overlayX,\n overlayY,\n offsetY\n },\n {\n originX: origin2ndX,\n originY,\n overlayX: origin2ndX,\n overlayY,\n offsetY\n },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin3rdX,\n originY,\n overlayX: origin3rdX,\n overlayY,\n offsetY\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }\n ])\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n}\n","import { type Maybe } from '@dereekb/util';\nimport { isBoolean } from 'class-validator';\nimport { Observable, of, map } from 'rxjs';\n\nexport enum CompactMode {\n FULL = 'full',\n COMPACT = 'compact'\n}\n\nexport interface CompactModeOptions<T> {\n full?: T;\n compact?: T;\n}\n\nexport interface CompactModeDefaultOptions<T> extends CompactModeOptions<T> {\n defaultMode?: Maybe<CompactMode>;\n}\n\nexport type CompactModeOption = CompactMode | boolean;\n\nexport function compactModeFromInput(input: CompactMode | boolean): CompactMode {\n if (isBoolean(input)) {\n input = input ? CompactMode.COMPACT : CompactMode.FULL;\n }\n\n return input === CompactMode.COMPACT ? CompactMode.COMPACT : CompactMode.FULL;\n}\n\nexport function mapCompactModeObs<T>(mode$: Maybe<Observable<CompactMode>>, config: CompactModeDefaultOptions<T>): Observable<Maybe<T>> {\n const modeObs = mode$ ?? of(config.defaultMode ?? CompactMode.FULL);\n return modeObs.pipe(\n map((inputMode) => {\n const isCompact = (inputMode ?? config.defaultMode) === CompactMode.COMPACT;\n\n if (isCompact) {\n return config.compact;\n } else {\n return config.full;\n }\n })\n );\n}\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { map } from 'rxjs';\nimport { CompactMode, compactModeFromInput } from './compact';\n\nexport interface CompactContextState {\n mode: CompactMode;\n}\n\n@Injectable()\nexport class CompactContextStore extends ComponentStore<CompactContextState> {\n constructor() {\n super({ mode: CompactMode.FULL });\n }\n\n // MARK: Accessors\n readonly mode$ = this.state$.pipe(map((x) => x.mode));\n\n // MARK: State Changes\n readonly setMode = this.updater((state, mode: CompactMode | boolean) => ({ mode: compactModeFromInput(mode) }));\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { CompactMode } from './compact';\nimport { CompactContextStore } from './compact.store';\n\n/**\n * CompactContextStore provider.\n */\n@Directive({\n selector: '[dbxCompact]',\n providers: [CompactContextStore],\n exportAs: 'compact'\n})\nexport class DbxCompactDirective {\n readonly compactContextStore = inject(CompactContextStore);\n readonly mode$ = this.compactContextStore.mode$;\n\n @Input('dbxCompact')\n set mode(mode: CompactMode | boolean) {\n this.compactContextStore.setMode(mode);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCompactDirective } from './compact.directive';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxCompactDirective],\n exports: [DbxCompactDirective]\n})\nexport class DbxCompactLayoutModule {}\n","import { type Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopoverKey = string;\n\nexport abstract class DbxPopoverController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopoverKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popover to close.\n */\n abstract close(): void;\n /**\n * Closes the popover and returns the input value.\n */\n abstract return(value?: O): void;\n}\n","import { DbxPopoverKey, DbxPopoverController } from './popover';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverCoordinatorService implements OnDestroy {\n private _popovers = new BehaviorSubject<Map<DbxPopoverKey, DbxPopoverController>>(new Map());\n readonly popovers$ = this._popovers.asObservable();\n\n ngOnDestroy(): void {\n this._popovers.complete();\n }\n\n get popovers(): Map<DbxPopoverKey, DbxPopoverController> {\n return this._popovers.value;\n }\n\n public addPopover(popover: DbxPopoverController): void {\n const key = popover.key;\n\n if (key) {\n this.removePopover(key);\n this._popovers.value.set(key, popover);\n this._popovers.next(this.popovers);\n }\n }\n\n public removePopover(key: DbxPopoverKey, popover?: DbxPopoverController): void {\n if (key) {\n const existing = this.popovers.get(key);\n\n // Remove if there is one existing, and if popover is provided it is the same popover.\n if (existing && (!popover || popover === existing)) {\n existing.close();\n this._popovers.value.delete(key);\n this._popovers.next(this.popovers);\n }\n }\n }\n}\n","import { DbxPopoverController } from './popover';\nimport { Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { DbxPopoverCoordinatorService } from './popover.coordinator.service';\nimport { delay, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Component({\n selector: 'dbx-popover-coordinator',\n template: `\n @if (showSignal()) {\n <ng-content></ng-content>\n }\n `,\n standalone: true\n})\nexport class DbxPopoverCoordinatorComponent implements OnInit, OnDestroy {\n private readonly _service = inject(DbxPopoverCoordinatorService);\n private readonly _popover = inject(DbxPopoverController);\n\n readonly isPopoverForKey$ = this._service.popovers$.pipe(\n map((x) => x.get(this._popover.key) === this._popover),\n distinctUntilChanged(),\n shareReplay(1) // TODO: Unsure why this delay is here after all\n );\n\n readonly show$ = this.isPopoverForKey$.pipe(delay(0));\n readonly showSignal = toSignal(this.show$);\n\n ngOnInit(): void {\n this._service.addPopover(this._popover);\n }\n\n ngOnDestroy(): void {\n this._service.removePopover(this._popover.key, this._popover);\n }\n}\n","import { Input, OnDestroy, Output, EventEmitter, HostListener, Directive } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Directive({\n selector: '[dbxWindowKeyDownListener]',\n standalone: true\n})\nexport class DbxWindowKeyDownListenerDirective implements OnDestroy {\n private _keysFilter?: Maybe<Set<string>>;\n\n @Input()\n appWindowKeyDownEnabled = true;\n\n @Output('dbxWindowKeyDownListener')\n keyPressed = new EventEmitter<KeyboardEvent>();\n\n @Input()\n set appWindowKeyDownFilter(filterOnKeys: string[]) {\n let filter: Maybe<Set<string>>;\n\n if (filterOnKeys) {\n filter = new Set(filterOnKeys);\n }\n\n this._keysFilter = filter;\n }\n\n ngOnDestroy(): void {\n this.keyPressed.complete();\n }\n\n @HostListener('window:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (this.appWindowKeyDownEnabled !== false) {\n if (!this._keysFilter || this._keysFilter.has(event.key)) {\n this.keyPressed.emit(event);\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxWindowKeyDownListenerDirective } from './keydown.listener.directive';\n\n/**\n * @deprecated DbxWindowKeyDownListenerDirective is now standalone. Import that instead.\n */\n@NgModule({\n imports: [DbxWindowKeyDownListenerDirective],\n exports: [DbxWindowKeyDownListenerDirective]\n})\nexport class DbxKeypressModule {}\n","import { CharacterPrefixSuffixCleanString, CssClass, DASH_CHARACTER_PREFIX_INSTANCE, DashPrefixString, type Maybe } from '@dereekb/util';\n\n// MARK: App Styling\n/**\n * An kebab-case style name that uniquely identifies a styling for an app.\n *\n * Examples: 'doc-app'\n */\nexport type DbxStyleName = string;\n\n/**\n * A suffix that can be added to a style class to differentiate a separate mode.\n *\n * Dark mode is an example, with the suffix 'dark' or '-dark'. The suffix does not have to\n */\nexport type DbxStyleClassSuffix = DbxStyleClassCleanSuffix | DbxStyleClassDashSuffix;\n\n/**\n * A DbxStyleClassSuffix that does not start with a dash.\n *\n * Dark mode is an example, with the suffix 'dark'.\n */\nexport type DbxStyleClassCleanSuffix = CharacterPrefixSuffixCleanString;\n\n/**\n * A DbxStyleClassSuffix that starts with a dash.\n *\n * Dark mode is an example, with the suffix '-dark'.\n */\nexport type DbxStyleClassDashSuffix = DashPrefixString;\n\nexport const dbxStyleClassCleanSuffix = DASH_CHARACTER_PREFIX_INSTANCE.cleanString;\n\n/**\n * A style class that is a combination of a style name and a suffix.\n *\n * Examples:\n * - 'doc-app': the default style of an app\n * - 'doc-app-dark': the dark mode style of an app\n */\nexport type DbxStyleClass = string | `${DbxStyleName}${DbxStyleClassSuffix}`;\n\nexport const DBX_DARK_STYLE_CLASS_SUFFIX: DbxStyleClassSuffix = '-dark';\n\nexport interface DbxStyleConfig {\n /**\n * Root style class name.\n */\n readonly style: DbxStyleClass;\n /**\n * Set of all allowed DbxStyleClassSuffixes for the DbxStyleClass in the config, if applicable.\n */\n readonly suffixes?: Set<DbxStyleClassSuffix>;\n}\n\n// MARK: Theme\nexport type DbxThemeColorMain = 'primary' | 'accent' | 'warn';\nexport type DbxThemeColorExtra = 'notice' | 'ok' | 'success' | 'grey';\nexport type DbxThemeColorExtraSecondary = 'background' | 'disabled';\nexport type DbxThemeColorMainOrExtra = DbxThemeColorMain | DbxThemeColorExtra;\nexport type DbxThemeColor = DbxThemeColorMainOrExtra | DbxThemeColorExtraSecondary;\n\nexport const DBX_THEME_COLORS_MAIN: DbxThemeColorMain[] = ['primary', 'accent', 'warn'];\nexport const DBX_THEME_COLORS_EXTRA: DbxThemeColorExtra[] = ['notice', 'ok', 'success', 'grey'];\nexport const DBX_THEME_COLORS_EXTRA_SECONDARY: DbxThemeColorExtraSecondary[] = ['background', 'disabled'];\nexport const DBX_THEME_COLORS: DbxThemeColor[] = [...DBX_THEME_COLORS_MAIN, ...DBX_THEME_COLORS_EXTRA, ...DBX_THEME_COLORS_EXTRA_SECONDARY];\n\nexport function dbxColorBackground(color: Maybe<DbxThemeColor | ''>): CssClass {\n let cssClass = 'dbx-bg'; // background by default\n\n switch (color) {\n case 'primary':\n case 'accent':\n case 'warn':\n case 'notice':\n case 'ok':\n case 'success':\n case 'grey':\n case 'disabled':\n cssClass = `dbx-${color}-bg`;\n break;\n }\n\n return cssClass;\n}\n","import { DASH_CHARACTER_PREFIX_INSTANCE, Destroyable, type Maybe } from '@dereekb/util';\nimport { asObservable, filterMaybe, ObservableOrValue } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, map, switchMap, shareReplay } from 'rxjs';\nimport { Injectable, InjectionToken, inject } from '@angular/core';\nimport { DBX_DARK_STYLE_CLASS_SUFFIX, DbxStyleClass, dbxStyleClassCleanSuffix, DbxStyleClassCleanSuffix, DbxStyleClassSuffix, DbxStyleConfig } from './style';\n\nexport const DBX_STYLE_DEFAULT_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');\n\n/**\n * Used for managing styles within an app.\n */\n@Injectable()\nexport class DbxStyleService implements Destroyable {\n private readonly _defaultConfig = new BehaviorSubject<Maybe<DbxStyleConfig>>(inject<DbxStyleConfig>(DBX_STYLE_DEFAULT_CONFIG_TOKEN));\n\n private readonly _config = new BehaviorSubject<Maybe<Observable<DbxStyleConfig>>>(undefined);\n private readonly _styleClassSuffix = new BehaviorSubject<Maybe<DbxStyleClassCleanSuffix>>(undefined);\n\n readonly config$ = this._config.pipe(\n switchMap((x) => {\n if (x == null) {\n return this._defaultConfig;\n } else {\n return x;\n }\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly styleClassSuffix$ = this._styleClassSuffix.pipe(distinctUntilChanged(), shareReplay(1));\n readonly styleClassName$ = this.getStyleClassWithConfig(this.config$);\n\n /**\n * Returns the style class given the input configuration.\n *\n * @param configObs Observable containing the configuration to use.\n * @returns DbxStyleClass\n */\n getStyleClassWithConfig(configObs: Observable<DbxStyleConfig>): Observable<DbxStyleClass> {\n return combineLatest([configObs, this.styleClassSuffix$]).pipe(\n map(([config, suffix]) => {\n let styleClass = config.style;\n\n if (suffix != null && config.suffixes) {\n if (config.suffixes.has(suffix)) {\n styleClass = `${styleClass}${DASH_CHARACTER_PREFIX_INSTANCE.prefixSuffixString(suffix)}`;\n }\n }\n\n return styleClass;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n /**\n * Toggles the dark suffix on/off for the service.\n *\n * @param toggle Whether to toggle the suffix on or off\n */\n toggleDarkSuffix(toggle?: Maybe<boolean>) {\n this.toggleSuffix(DBX_DARK_STYLE_CLASS_SUFFIX, toggle);\n }\n\n /**\n * Toggles the arbitrary suffix on/off for the service.\n *\n * @param suffix The suffix to toggle\n * @param toggle Whether to toggle the suffix on or off\n */\n toggleSuffix(suffix: DbxStyleClassSuffix, toggle?: Maybe<boolean>) {\n // clean the suffix\n suffix = dbxStyleClassCleanSuffix(suffix);\n\n const toggleValue: boolean = toggle != null ? toggle : this.currentStyleClassSuffix !== suffix;\n let suffixValue: Maybe<DbxStyleClassSuffix> = undefined;\n\n if (toggleValue) {\n suffixValue = suffix;\n } else {\n suffixValue = undefined;\n }\n\n this._styleClassSuffix.next(suffixValue);\n }\n\n get currentStyleClassSuffix(): Maybe<DbxStyleClassCleanSuffix> {\n return this._styleClassSuffix.value;\n }\n\n setStyleClassSuffix(suffix: Maybe<DbxStyleClassSuffix>) {\n this._styleClassSuffix.next(suffix ? dbxStyleClassCleanSuffix(suffix) : undefined);\n }\n\n setDefaultConfig(defaultConfig: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n setConfig(config: ObservableOrValue<DbxStyleConfig>) {\n this._config.next(asObservable(config));\n }\n\n destroy(): void {\n this._defaultConfig.complete();\n this._config.complete();\n this._styleClassSuffix.complete();\n }\n}\n","import { Directive, inject, signal, OnInit } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { DbxStyleClass } from './style';\n\n/**\n * Used to retrieve the current app styling from the DbxStyleService.\n */\n@Directive({\n selector: 'dbx-style, [dbxStyle], .dbx-style',\n host: {\n '[class]': 'styleClassNameSignal()'\n },\n standalone: true\n})\nexport class DbxStyleDirective extends AbstractSubscriptionDirective implements OnInit {\n private readonly _styleService = inject(DbxStyleService);\n\n readonly styleClassNameSignal = signal<Maybe<DbxStyleClass>>(undefined);\n\n ngOnInit(): void {\n this.sub = this._styleService.styleClassName$.pipe(delay(0)).subscribe((classes) => {\n this.styleClassNameSignal.set(classes);\n });\n }\n}\n","import { Component, Type, OnInit, OnDestroy, ElementRef, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgPopoverCloseType, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopoverPositionStrategy } from './popover.position.strategy';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { LockSet } from '@dereekb/rxjs';\nimport { CompactContextStore, CompactMode } from '../../layout/compact';\nimport { asPromise, Maybe, PromiseOrValue, SpaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxPopoverController, DbxPopoverKey } from './popover';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxWindowKeyDownListenerDirective } from '../../keypress';\nimport { DbxStyleDirective } from '../../layout/style/style.directive';\n\nexport abstract class DbxPopoverComponentController<O, I> extends DbxPopoverController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopoverComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popover should exist at a time given a certain key.\n */\n readonly key: DbxPopoverKey;\n /**\n * Origin element to position on.\n */\n readonly origin: ElementRef;\n /**\n * Whether or not to close if a transition occurs.\n */\n readonly closeOnTransition?: boolean;\n /**\n * Whether or not to dismiss when the escape button is pressed.\n *\n * False by default.\n */\n readonly closeOnEscape?: boolean;\n /**\n * Component to inject into the popover.\n */\n readonly componentClass: Type<T>;\n /**\n * Panel classes to add to the popover.\n */\n readonly panelClass?: Maybe<SpaceSeparatedCssClasses>;\n /**\n * Data available to the popover.\n */\n readonly data?: Maybe<I>;\n /**\n * Optional function to initialize the popover component.\n *\n * @param component\n * @param controller\n */\n readonly init?: (component: T, controller: DbxPopoverController<O, I>) => void;\n}\n\nexport interface FullDbxPopoverComponentConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T> {\n configuration: NgOverlayContainerConfiguration;\n}\n\n/**\n * Popover component.\n */\n@Component({\n template: `\n <dbx-popover-coordinator (dbxWindowKeyDownListener)=\"handleKeydown()\" [appWindowKeyDownFilter]=\"triggerCloseKeys\">\n <div dbxStyle class=\"dbx-popover-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popover-coordinator>\n `,\n providers: [\n {\n provide: DbxPopoverController,\n useExisting: DbxPopoverComponent\n },\n {\n provide: CompactContextStore\n }\n ],\n host: {\n '[class]': 'config.panelClass'\n },\n imports: [DbxPopoverCoordinatorComponent, DbxWindowKeyDownListenerDirective, DbxStyleDirective, DbxInjectionComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopoverController<O, I>, OnInit, OnDestroy {\n private readonly popoverRef = inject(NgPopoverRef<FullDbxPopoverComponentConfig<O, I, T>, O>);\n private readonly compactContextState = inject(CompactContextStore);\n\n readonly lockSet = new LockSet();\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<FullDbxPopoverComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private _startedClosing = false;\n private readonly _closing = new Subject<void>();\n\n private _triggerCloseKeys: string[] = [];\n\n readonly isClosing$ = this._closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n getClosingValueFn?: (value: Maybe<I>, closeType: NgPopoverCloseType) => PromiseOrValue<O | undefined>;\n\n constructor() {\n super();\n\n // Override Close to properly signal to listeners when a close is occuring.\n const originalClose = this.popoverRef.close;\n this.popoverRef.close = (x) => {\n if (!this._startedClosing) {\n this.lockSet.lockForSeconds(1);\n this._startedClosing = true;\n this.close();\n originalClose.call(this.popoverRef, x);\n }\n };\n\n // Also intercept the _close function to capture backdropClose, etc.\n const original_close = (this.popoverRef as any)._close;\n (this.popoverRef as any)._close = (closeType: NgPopoverCloseType, inputValue: O | undefined) => {\n const closeWithValue = (value?: O | undefined) => {\n original_close.call(this.popoverRef, closeType, value);\n };\n\n if (closeType === 'close' || inputValue != null) {\n closeWithValue(inputValue);\n } else {\n // expected to be a backdrop close. Get the closing value then close.\n this._useClosingValue(closeType, (x) => closeWithValue(x));\n }\n };\n\n // eslint-disable-next-line\n const overlay = (this.popoverRef as any)._overlay as Overlay; // overlay is not publically accessible\n const elementRef = this.config.origin;\n const configuration = this.config.configuration;\n\n this.compactContextState.setMode(CompactMode.COMPACT);\n const position = PopoverPositionStrategy.make(overlay, elementRef, configuration);\n this.popoverRef.overlay.updatePositionStrategy(position);\n }\n\n get config(): FullDbxPopoverComponentConfig<O, I, T> {\n return this.popoverRef.data;\n }\n\n get panelClass(): Maybe<SpaceSeparatedCssClasses> {\n return this.config.panelClass;\n }\n\n get key(): DbxPopoverKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n get triggerCloseKeys(): string[] {\n return this._triggerCloseKeys;\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n if (this.config.closeOnEscape) {\n this._triggerCloseKeys = ['Escape'];\n }\n }\n\n override ngOnDestroy(): void {\n this.lockSet.destroyOnNextUnlock(() => {\n super.ngOnDestroy();\n this._closing.complete();\n });\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popover Controls\n public close(): void {\n if (!this._startedClosing && this.getClosingValueFn != null) {\n this._useClosingValue('close', (x) => this.return(x));\n } else {\n this.return();\n }\n }\n\n public return(value?: O | undefined): void {\n this._closing.next();\n this.popoverRef.close(value);\n }\n\n private _useClosingValue(closeType: NgPopoverCloseType, useValue: (value?: O | undefined) => void) {\n if (this.getClosingValueFn != null) {\n asPromise(this.getClosingValueFn(this.data, closeType)).then(\n (x) => {\n useValue(x);\n },\n () => {\n useValue();\n }\n );\n } else {\n useValue();\n }\n }\n\n // Keypresses\n handleKeydown() {\n this.close();\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\n\n/**\n * Abstract popover directive.\n */\n@Directive()\nexport abstract class AbstractPopoverDirective<O = unknown, I = unknown, T = unknown> {\n readonly popover = inject(DbxPopoverComponent<O, I, T>);\n\n close(): void {\n this.popover.close();\n }\n\n returnAndClose(value: O): void {\n this.popover.return(value);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AbstractTransitionWatcherDirective } from '@dereekb/dbx-core';\n\n/**\n * Abstract dialog component that closes when a transition is successful.\n */\n@Directive()\nexport abstract class AbstractDialogDirective<R = unknown, D = unknown, T = unknown> extends AbstractTransitionWatcherDirective {\n readonly data: D = inject(MAT_DIALOG_DATA, { optional: true });\n readonly dialogRef = inject(MatDialogRef<T, R>);\n\n protected updateForSuccessfulTransition(): void {\n this.close();\n }\n\n returnValue(value?: R) {\n this.close(value);\n }\n\n close(value?: R) {\n this.dialogRef.close(value);\n }\n}\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * Component used to show a close button at the top of a dialog, floating in a corner.\n */\n@Component({\n selector: 'dbx-dialog-content-close',\n template: `\n <button class=\"dbx-dialog-content-close-button\" mat-icon-button (click)=\"closeClicked()\">\n <mat-icon>close</mat-icon>\n </button>\n `,\n host: {\n class: 'dbx-dialog-content-close',\n '[class.dbx-dialog-content-close-padding]': 'padded()'\n },\n standalone: true,\n imports: [MatIconModule, MatIconButton],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDialogContentCloseComponent {\n readonly padded = input<boolean>(true);\n readonly close = output<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ThemePalette } from '@angular/material/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxDialogContentFooterConfig {\n readonly buttonColor?: ThemePalette;\n readonly closeText?: string;\n}\n\n/**\n * Component used to show a close button at the bottom of a dialog.\n */\n@Component({\n selector: 'dbx-dialog-content-footer',\n template: `\n <button mat-raised-button [color]=\"buttonColorSignal()\" (click)=\"closeClicked()\">{{ closeTextSignal() }}</button>\n `,\n host: {\n class: 'dbx-dialog-content-footer'\n },\n standalone: true,\n imports: [MatButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDialogContentFooterComponent {\n readonly config = input<Maybe<DbxDialogContentFooterConfig>>();\n\n readonly closeText = input<Maybe<string>>();\n readonly buttonColor = input<Maybe<ThemePalette>>();\n\n readonly closeTextSignal = computed(() => this.closeText() ?? this.config()?.closeText ?? 'Close');\n readonly buttonColorSignal = computed(() => this.buttonColor() ?? this.config()?.buttonColor ?? undefined);\n\n readonly close = output<void>();\n\n closeClicked() {\n this.close.emit();\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nexport type DbxDialogContentContainerWidth = 'normal' | 'wide';\n\n/**\n * Component used to style a dialog.\n */\n@Directive({\n selector: 'dbx-dialog-content,[dbxDialogContent].dbx-dialog-content',\n host: {\n class: 'dbx-dialog-content',\n '[class]': `classConfig()`\n },\n standalone: true\n})\nexport class DbxDialogContentDirective {\n readonly width = input<DbxDialogContentContainerWidth>('normal');\n readonly classConfig = computed(() => `${this.width()}-dialog-content`);\n}\n","import { first, Observable } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, ElementRef, inject, input } from '@angular/core';\nimport { AbstractDbxActionValueGetterDirective } from '@dereekb/dbx-core';\nimport { IsEqualFunction, IsModifiedFunction } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nexport type DbxActionDialogFunction<T = unknown> = () => MatDialogRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a dialog, then watches that dialog for a value.\n */\n@Directive({\n exportAs: 'dbxActionDialog',\n selector: '[dbxActionDialog]',\n standalone: true\n})\nexport class DbxActionDialogDirective<T = unknown> extends AbstractDbxActionValueGetterDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n readonly dbxActionDialog = input.required<DbxActionDialogFunction<T>>();\n readonly dbxActionDialogIsModified = input<Maybe<IsModifiedFunction>>();\n readonly dbxActionDialogIsEqual = input<Maybe<IsEqualFunction>>();\n\n constructor() {\n super();\n this.configureInputs({\n isModifiedSignal: this.dbxActionDialogIsModified,\n isEqualSignal: this.dbxActionDialogIsEqual\n });\n this.setValueGetterFunction(() => this._getDataFromDialog());\n }\n\n protected _getDataFromDialog(): Observable<Maybe<T>> {\n return this._makeDialogRef().afterClosed().pipe(first());\n }\n\n protected _makeDialogRef(): MatDialogRef<unknown, Maybe<T>> {\n return this.dbxActionDialog()();\n }\n}\n","import { MatDialogConfig } from '@angular/material/dialog';\nimport { Maybe, cssClassesSet } from '@dereekb/util';\n\nexport type DbxDialogContentConfig = Omit<MatDialogConfig, 'viewContainerRef' | 'injector' | 'id' | 'data'>;\n\nexport function sanitizeDbxDialogContentConfig(input: Maybe<DbxDialogContentConfig>): DbxDialogContentConfig {\n const panelClass = input?.panelClass;\n\n return {\n ...input,\n panelClass: panelClass ? Array.from(cssClassesSet(input?.panelClass)) : undefined\n };\n}\n","import { NgModule } from '@angular/core';\nimport { DbxDialogContentDirective } from './dialog.content.directive';\nimport { DbxActionDialogDirective } from './dialog.action.directive';\nimport { DbxDialogContentFooterComponent } from './dialog.content.footer.component';\nimport { DbxDialogContentCloseComponent } from './dialog.content.close.component';\n\nconst importsAndExports = [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxDialogInteractionModule {}\n","import { DbxPopoverComponent, type DbxPopoverComponentConfig, type FullDbxPopoverComponentConfig } from './popover.component';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport type DbxPopoverConfigSizing = Pick<NgOverlayContainerConfiguration, 'originX' | 'originY' | 'height' | 'width' | 'minHeight' | 'minWidth' | 'isResizable'>;\n\nexport interface DbxPopoverConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T>, DbxPopoverConfigSizing {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popover.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverService {\n private readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _overlayContainerService: NgOverlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n\n open<O, I, T>(config: DbxPopoverConfig<O, I, T>): NgPopoverRef<DbxPopoverComponentConfig<O, I, T>, O> {\n const service = config.injector ? new NgOverlayContainerService(this._overlay, config.injector) : this._overlayContainerService;\n\n const configuration: NgOverlayContainerConfiguration = {\n panelClass: 'dbx-popover-container',\n originX: config.originX ?? 'start',\n originY: config.originY ?? 'top',\n // TODO: Resize height/width.\n minHeight: config.minHeight,\n minWidth: config.minWidth,\n height: config.height ?? '500px',\n width: config.width ?? '400px',\n hasBackdrop: true,\n isDraggable: false,\n isResizable: config.isResizable ?? false,\n disableBackdropClose: false\n };\n\n return service.open<FullDbxPopoverComponentConfig<O, I, T>, O>({\n content: DbxPopoverComponent,\n data: {\n ...config,\n configuration\n },\n configuration\n });\n }\n}\n","import { OnDestroy, Directive, ElementRef, output } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { NgPopoverCloseEvent, NgPopoverRef } from 'ng-overlay-container';\n\n/**\n * Abstract class for showing and handling a popover ref.\n */\n@Directive()\nexport abstract class AbstractPopoverRefDirective<T = unknown, R = unknown> extends AbstractSubscriptionDirective {\n private _popoverRef?: NgPopoverRef<T, R>;\n\n showPopover(origin?: ElementRef): void {\n if (!this._popoverRef) {\n this._showPopoverRef(origin);\n }\n }\n\n private _showPopoverRef(origin?: ElementRef): void {\n this._popoverRef = this._makePopoverRef(origin);\n this._afterOpened(this._popoverRef);\n this.sub = this._popoverRef.afterClosed$.subscribe((x) => {\n this._afterClosed(x);\n this._popoverRef = undefined;\n });\n }\n\n protected abstract _makePopoverRef(origin?: ElementRef): NgPopoverRef<T, R>;\n\n protected _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n // Do nothing. Override in parent type\n }\n\n protected _afterClosed(value: NgPopoverCloseEvent<R>): void {\n // Do nothing. Override in parent type\n }\n}\n\n/**\n * {@link AbstractPopoverRefDirective} extension that includes open/closed events.\n */\n@Directive()\nexport abstract class AbstractPopoverRefWithEventsDirective<T = unknown, R = unknown> extends AbstractPopoverRefDirective<T, R> implements OnDestroy {\n readonly popoverOpened = output<NgPopoverRef<T, R>>();\n readonly popoverClosed = output<NgPopoverCloseEvent<R>>();\n\n protected override _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n this.popoverOpened.emit(popoverRef);\n }\n\n protected override _afterClosed(event: NgPopoverCloseEvent<R>): void {\n this.popoverClosed.emit(event);\n }\n}\n","import { first, Observable, map } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, ElementRef, inject, input } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractDbxActionValueGetterDirective } from '@dereekb/dbx-core';\nimport { IsEqualFunction, IsModifiedFunction } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxActionPopoverFunctionParams {\n origin: ElementRef;\n}\n\nexport type DbxActionPopoverFunction<T = unknown> = (params: DbxActionPopoverFunctionParams) => NgPopoverRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a popover, then watches that popover for a value.\n */\n@Directive({\n exportAs: 'dbxActionPopover',\n selector: '[dbxActionPopover]',\n standalone: true\n})\nexport class DbxActionPopoverDirective<T = unknown> extends AbstractDbxActionValueGetterDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n readonly dbxActionPopover = input.required<DbxActionPopoverFunction<T>>();\n readonly dbxActionPopoverIsModified = input<Maybe<IsModifiedFunction>>();\n readonly dbxActionPopoverIsEqual = input<Maybe<IsEqualFunction>>();\n\n constructor() {\n super();\n this.configureInputs({\n isModifiedSignal: this.dbxActionPopoverIsModified,\n isEqualSignal: this.dbxActionPopoverIsEqual\n });\n this.setValueGetterFunction(() => this._getDataFromPopover());\n }\n\n protected _getDataFromPopover(): Observable<Maybe<T>> {\n return this._makePopoverRef().afterClosed$.pipe(\n first(),\n map((x) => x.data)\n );\n }\n\n protected _makePopoverRef(): NgPopoverRef<unknown, Maybe<T>> {\n const origin = this.elementRef;\n const fn = this.dbxActionPopover();\n\n return fn({\n origin\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\n\n/**\n * Pre-configured close icon button for use within popover header.\n */\n@Component({\n selector: 'dbx-popover-close-button',\n template: `\n <button mat-icon-button (click)=\"dbxPopoverComponent.close()\"><mat-icon>close</mat-icon></button>\n `,\n imports: [MatIconModule, MatIconButton],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverCloseButtonComponent {\n readonly dbxPopoverComponent = inject(DbxPopoverComponent);\n}\n","import { BehaviorSubject, throttleTime } from 'rxjs';\nimport { OnDestroy, Component, ChangeDetectionStrategy } from '@angular/core';\nimport { AngularResizeEventModule, ResizedEvent } from 'angular-resize-event-package';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Popover content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-content',\n template: `\n <div class=\"d-block dbx-popover-content\" (resized)=\"onResized($event)\" [style.--popoverh]=\"heightSignal()\">\n <ng-content select=\"[controls]\"></ng-content>\n <div class=\"dbx-popover-content-container\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n imports: [AngularResizeEventModule],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverContentComponent implements OnDestroy {\n readonly hasControls = new BehaviorSubject<boolean>(false);\n readonly hasHeader = new BehaviorSubject<boolean>(false);\n\n private readonly _height = new BehaviorSubject<string>('');\n readonly height$ = this._height.asObservable().pipe(throttleTime(100, undefined, { leading: true, trailing: true }));\n\n readonly heightSignal = toSignal(this.height$);\n\n onResized(event: ResizedEvent): void {\n this._height.next(`${event.newRect.height}px`);\n }\n\n ngOnDestroy(): void {\n this.hasControls.complete();\n this.hasHeader.complete();\n this._height.complete();\n }\n}\n","import { Directive, inject, OnInit } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover Controls\n */\n@Directive({\n selector: 'dbx-popover-controls,[dbxPopoverControls],.dbx-popover-controls',\n host: {\n class: 'd-block dbx-popover-controls'\n },\n standalone: true\n})\nexport class DbxPopoverControlsDirective implements OnInit {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasControls.next(true);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit, inject, input } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDivider } from '@angular/material/divider';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Component used to format a header for a popover.\n */\n@Component({\n selector: 'dbx-popover-header',\n template: `\n <div class=\"dbx-popover-header\">\n <div class=\"dbx-popover-header-content\">\n <h3>\n @if (icon()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ icon() }}</mat-icon>\n }\n {{ header() }}\n </h3>\n <span class=\"spacer\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n <mat-divider></mat-divider>\n `,\n imports: [MatIconModule, MatDivider],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverHeaderComponent implements OnInit {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n readonly header = input<Maybe<string>>();\n readonly icon = input<Maybe<string>>();\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasHeader.next(true);\n }\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Popover scrollable content wrapper component.\n */\n@Directive({\n selector: 'dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content',\n host: {\n class: 'd-block dbx-popover-scroll-content',\n '[class]': 'sizingClassesSignal()'\n },\n standalone: true\n})\nexport class DbxPopoverScrollContentDirective {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent);\n\n readonly hasControlsSignal = toSignal(this.appPopoverContentComponent.hasControls);\n readonly hasHeaderSignal = toSignal(this.appPopoverContentComponent.hasHeader);\n\n readonly sizingClassesSignal = computed(() => {\n const hasHeader = this.hasHeaderSignal();\n const hasControls = this.hasControlsSignal();\n\n const classes: string[] = [];\n\n if (hasHeader && hasControls) {\n classes.push('popover-has-controls-and-header');\n } else if (hasHeader) {\n classes.push('popover-has-header');\n } else if (hasControls) {\n classes.push('popover-has-controls');\n }\n\n return classes.join(' ');\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { DbxPopoverControlsDirective } from './popover.controls.directive';\nimport { DbxPopoverHeaderComponent } from './popover.header.component';\nimport { DbxPopoverScrollContentDirective } from './popover.scroll.content.directive';\nimport { DbxPopoverCloseButtonComponent } from './popover.close.component';\n\nconst importsAndExports = [DbxPopoverContentComponent, DbxPopoverControlsDirective, DbxPopoverHeaderComponent, DbxPopoverCloseButtonComponent, DbxPopoverScrollContentDirective];\n\n/**\n * Contains all popover content components, allowing other sibling dbx-web modules to use the directives without referencing the full popover module.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPopoverInteractionContentModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxPopoverComponent } from './popover.component';\nimport { DbxPopoverInteractionContentModule } from './popover.content.module';\nimport { DbxActionPopoverDirective } from './popover.action.directive';\n\nconst importsAndExports = [DbxPopoverComponent, DbxPopoverCoordinatorComponent, DbxActionPopoverDirective, DbxPopoverInteractionContentModule];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPopoverInteractionModule {}\n","import { Directive } from '@angular/core';\n\n/**\n * Button spacer directive.\n */\n@Directive({\n selector: 'dbx-button-spacer,[dbxButtonSpacer]',\n host: {\n class: 'dbx-button-spacer d-inline'\n },\n standalone: true\n})\nexport class DbxButtonSpacerDirective {}\n","import { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ElementRef, Type, OnInit, OnDestroy, signal, ChangeDetectionStrategy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Observable, map, skip, first, defaultIfEmpty } from 'rxjs';\nimport { AbstractPopoverDirective } from '../popover/abstract.popover.directive';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { FilterSource, filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxPopoverKey } from '../popover/popover';\nimport { type Maybe } from '@dereekb/util';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxFilterComponentConfig } from './filter.config';\nimport { DbxPopoverInteractionModule } from '../popover';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\n\nexport interface DbxFilterPopoverComponentConfig<F extends object = object> extends DbxFilterComponentConfig<F> {\n /**\n * Origin to add the popover to.\n */\n readonly origin: ElementRef;\n}\n\nexport const DEFAULT_FILTER_POPOVER_KEY = 'filter';\n\n@Component({\n templateUrl: './filter.popover.component.html',\n imports: [DbxPopoverInteractionModule, DbxInjectionComponent, MatButtonModule, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFilterPopoverComponent<F extends object> extends AbstractPopoverDirective<unknown, DbxFilterComponentConfig<F>> implements OnInit, OnDestroy {\n private readonly _closeOnChangeSub = new SubscriptionObject();\n\n readonly config: DbxFilterComponentConfig<F> = this.popover.data as DbxFilterComponentConfig<F>;\n\n readonly icon = this.config.icon ?? 'filter_list';\n readonly header = this.config.header ?? 'Filter';\n\n readonly showCloseButton = this.config.showCloseButton ?? !(this.config.closeOnFilterChange ?? true);\n readonly closeButtonText = this.config.closeButtonText ?? 'Close';\n readonly customizeButtonText = this.config.customizeButtonText ?? 'Customize';\n\n /**\n * Whether or not to display buttons to toggle between custom and preset filters.\n */\n readonly showSwitchButtons = Boolean(this.config.customFilterComponentClass && this.config.presetFilterComponentClass);\n\n readonly showPresetSignal = signal<boolean>(false);\n\n readonly config$: Observable<DbxInjectionComponentConfig<FilterSource<F>>> = toObservable(this.showPresetSignal).pipe(\n map((showPreset) => {\n const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;\n let componentClass: Type<FilterSource<F>>;\n let baseConfig: Maybe<DbxInjectionComponentConfig<FilterSource<F>>>;\n\n if (showPreset) {\n componentClass = (presetFilterComponentConfig?.componentClass ?? presetFilterComponentClass) as Type<FilterSource<F>>;\n baseConfig = presetFilterComponentConfig;\n } else {\n componentClass = (customFilterComponentConfig?.componentClass ?? customFilterComponentClass) as Type<FilterSource<F>>;\n baseConfig = customFilterComponentConfig;\n }\n\n const config: DbxInjectionComponentConfig<FilterSource<F>> = {\n ...baseConfig,\n componentClass,\n init: (filterSource) => {\n connector.connectWithSource(filterSource);\n\n if (initialFilterObs && filterSource.initWithFilter) {\n filterSource.initWithFilter(initialFilterObs);\n }\n\n if (closeOnFilterChange !== false) {\n this._closeOnChangeSub.subscription = filterSource.filter$.pipe(skip(1), filterMaybe(), first(), defaultIfEmpty(undefined)).subscribe(() => {\n this.close();\n });\n }\n\n // run the next init if provided\n baseConfig?.init?.(filterSource);\n }\n };\n\n return config;\n })\n );\n\n readonly configSignal = toSignal(this.config$);\n\n static openPopover<F extends object>(popupService: DbxPopoverService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig, connector, initialFilterObs, closeOnFilterChange, customizeButtonText, showCloseButton, closeButtonText }: DbxFilterPopoverComponentConfig<F>, popoverKey?: DbxPopoverKey): NgPopoverRef {\n return popupService.open({\n key: popoverKey ?? DEFAULT_FILTER_POPOVER_KEY,\n origin,\n componentClass: DbxFilterPopoverComponent,\n width,\n height,\n isResizable,\n data: {\n header,\n icon,\n customizeButtonText,\n showCloseButton,\n closeButtonText,\n customFilterComponentClass,\n presetFilterComponentClass,\n customFilterComponentConfig,\n presetFilterComponentConfig,\n connector,\n initialFilterObs,\n closeOnFilterChange\n } as DbxFilterComponentConfig<F>\n });\n }\n\n ngOnInit(): void {\n let showPreset: boolean = false;\n\n const { customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;\n\n if (customFilterComponentClass || customFilterComponentConfig) {\n showPreset = false;\n }\n\n if (presetFilterComponentClass || presetFilterComponentConfig) {\n showPreset = true;\n }\n\n if (!(customFilterComponentClass || customFilterComponentConfig) && !(presetFilterComponentClass || presetFilterComponentConfig)) {\n throw new Error('Requires a preset or custom class provided for DbxFilterPopover.');\n }\n\n this.showPresetSignal.set(showPreset);\n }\n\n ngOnDestroy(): void {\n this._closeOnChangeSub.destroy();\n }\n\n showPresets() {\n this.showPresetSignal.set(true);\n }\n\n showCustom() {\n this.showPresetSignal.set(false);\n }\n}\n","<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n @if (showSwitchButtons) {\n @switch (showPresetSignal()) {\n @case (true) {\n <button mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n }\n @case (false) {\n <button mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n }\n }\n }\n @if (showCloseButton) {\n @if (showSwitchButtons) {\n <dbx-button-spacer></dbx-button-spacer>\n }\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n }\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n","import { Directive, ElementRef, input, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { AbstractPopoverRefDirective } from '../popover/abstract.popover.ref.directive';\nimport { FilterSource, PresetFilterSource } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { DbxFilterComponentConfig } from './filter.config';\n\nexport type DbxFilterButtonConfig<F extends object> = DbxFilterComponentConfig<F>;\nexport type DbxFilterButtonConfigWithCustomFilter<F extends object, CF extends FilterSource<F> = FilterSource<F>> = Omit<DbxFilterComponentConfig<F, any, CF, any>, 'presetFilter' | 'presetFilterComponentConfig'>;\nexport type DbxFilterButtonConfigWithPresetFilter<F extends object, PF extends PresetFilterSource<F, any> = PresetFilterSource<F, any>> = Omit<DbxFilterComponentConfig<F, any, any, PF>, 'customFilter' | 'customFilterComponentConfig'>;\n\n@Directive()\nexport abstract class AbstractFilterPopoverButtonDirective<F extends object> extends AbstractPopoverRefDirective<unknown, unknown> {\n private readonly popupService = inject(DbxPopoverService);\n readonly config = input<Maybe<DbxFilterComponentConfig<F, any, any, any>>>(undefined);\n\n protected override _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown> {\n const config = this.config();\n\n if (!config) {\n throw new Error('AbstractFilterPopoverButtonDirective(): Missing config.');\n } else if (!origin) {\n throw new Error('AbstractFilterPopoverButtonDirective(): Missing origin.');\n }\n\n return DbxFilterPopoverComponent.openPopover(this.popupService, {\n origin,\n ...config\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MatButtonModule, MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AbstractDbxButtonDirective, provideDbxButton } from '@dereekb/dbx-core';\n\n/**\n * Simple dbx-button that displays a button with an icon.\n */\n@Component({\n selector: 'dbx-icon-button',\n template: `\n @switch (buttonDisplayTypeSignal()) {\n @case ('text_button') {\n <button mat-button class=\"mat-unthemed\" [disabled]=\"disabledSignal()\" (click)=\"clickButton()\">\n @if (iconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ iconSignal() }}</mat-icon>\n }\n <span>{{ textSignal() }}</span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n }\n @case ('icon_button') {\n <button mat-icon-button [disabled]=\"disabledSignal()\" (click)=\"clickButton()\">\n <mat-icon>{{ iconSignal() }}</mat-icon>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n }\n }\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n providers: provideDbxButton(DbxIconButtonComponent),\n host: {\n class: 'dbx-icon-button'\n },\n imports: [MatButtonModule, MatIconModule, MatIconButton, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxIconButtonComponent extends AbstractDbxButtonDirective {}\n","import { ChangeDetectionStrategy, Component, ElementRef, input, viewChild } from '@angular/core';\nimport { AbstractFilterPopoverButtonDirective } from './filter.popover.button.directive';\nimport { DbxButtonDisplay } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxIconButtonComponent } from '../../button/icon/icon.button.component';\n\nconst DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT: DbxButtonDisplay = {\n icon: 'filter_list'\n};\n\n@Component({\n selector: 'dbx-filter-popover-button',\n template: `\n <dbx-icon-button #button (buttonClick)=\"showFilterPopover()\" [buttonDisplay]=\"buttonDisplay()\" [disabled]=\"disabled()\"></dbx-icon-button>\n `,\n imports: [DbxIconButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFilterPopoverButtonComponent<F extends object = object> extends AbstractFilterPopoverButtonDirective<F> {\n readonly buttonElement = viewChild<string, Maybe<ElementRef>>('button', { read: ElementRef });\n readonly disabled = input<Maybe<boolean>>();\n readonly buttonDisplay = input<DbxButtonDisplay, Maybe<DbxButtonDisplay>>(DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT, { transform: (x) => x ?? DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT });\n\n showFilterPopover(): void {\n const origin = this.buttonElement()?.nativeElement;\n this.showPopover(origin);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxThemeColor } from '../../layout/style/style';\nimport { DbxButtonType } from '../button.component';\n\nexport interface DbxProgressButtonConfig {\n readonly working?: Maybe<boolean>;\n readonly text?: Maybe<string>;\n readonly spinnerText?: Maybe<string>;\n readonly buttonColor?: Maybe<ThemePalette | DbxThemeColor>;\n readonly spinnerColor?: Maybe<ThemePalette | DbxThemeColor>;\n readonly barColor?: Maybe<ThemePalette | DbxThemeColor>;\n /**\n * Whether or not to render as an icon button.\n */\n readonly iconOnly?: Maybe<boolean>;\n readonly spinnerSize?: Maybe<number>;\n readonly spinnerRatio?: Maybe<number>;\n readonly mode?: Maybe<ProgressSpinnerMode>;\n readonly value?: Maybe<number>;\n readonly fullWidth?: Maybe<boolean>;\n readonly disabled?: Maybe<boolean>;\n readonly customStyle?: Maybe<{ [key: string]: string }>;\n readonly customClass?: Maybe<string>;\n /**\n * Custom spinner color. Overrides the normal spinner color if provided.\n */\n readonly customSpinnerColor?: Maybe<string>;\n readonly buttonIcon?: Maybe<DbxProgressButtonIcon>;\n readonly id?: Maybe<string>;\n\n /**\n * The type of button to render.\n */\n readonly buttonType?: Maybe<DbxButtonType>;\n\n /**\n * The HTML attribute \"type\" to add to the button.\n */\n readonly buttonTypeAttribute?: Maybe<string>;\n\n /**\n * @deprecated use buttonType=raised instead\n */\n readonly raised?: Maybe<boolean>;\n /**\n * @deprecated use buttonType=stroked instead\n */\n readonly stroked?: Maybe<boolean>;\n /**\n * @deprecated use buttonType=flat instead\n */\n readonly flat?: Maybe<boolean>;\n\n /**\n * Whether or not this is a floating action button.\n */\n readonly fab?: Maybe<boolean>;\n\n /**\n * @deprecated use buttonTypeAttribute instead\n */\n readonly type?: Maybe<string>;\n}\n\nexport interface DbxProgressButtonIcon {\n readonly color?: Maybe<ThemePalette | DbxThemeColor>;\n readonly fontIcon?: Maybe<string>;\n readonly fontSet?: Maybe<string>;\n readonly inline?: Maybe<boolean>;\n readonly svgIcon?: Maybe<string>;\n readonly customClass?: Maybe<string>;\n}\n\nexport interface DbxProgressButtonTargetedConfig extends DbxProgressButtonConfig {\n readonly id?: Maybe<string>;\n}\n\nexport type DbxProgressButtonGlobalConfig = DbxProgressButtonTargetedConfig[];\n\nexport const DBX_PROGRESS_BUTTON_GLOBAL_CONFIG = new InjectionToken<DbxProgressButtonGlobalConfig>('DbxProgressButtonGlobalConfig');\n\n// MARK: Compat\n/**\n * @deprecated use DbxProgressButtonConfig instead.\n */\nexport type DbxProgressButtonOptions = DbxProgressButtonConfig;\n","import { OnDestroy, Directive, HostListener, inject, computed, input, Signal, output } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { Configurable, CssClass, type Maybe } from '@dereekb/util';\nimport { DbxProgressButtonGlobalConfig, DbxProgressButtonConfig, DbxProgressButtonTargetedConfig, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { DbxButtonType } from '../button.component';\n\n@Directive()\nexport abstract class AbstractProgressButtonDirective extends AbstractSubscriptionDirective implements OnDestroy {\n private readonly globalConfig = inject<DbxProgressButtonGlobalConfig>(DBX_PROGRESS_BUTTON_GLOBAL_CONFIG, { optional: true }) ?? [];\n\n readonly btnClick = output<MouseEvent>();\n\n readonly config = input.required<Maybe<DbxProgressButtonConfig>>();\n readonly buttonId = input<Maybe<string>>();\n readonly working = input<Maybe<boolean>>();\n readonly disabled = input<Maybe<boolean>>();\n\n readonly globalOptionsSignal: Signal<Maybe<DbxProgressButtonConfig>> = computed(() => {\n const buttonId = this.buttonId();\n return buttonId ? this.globalConfig.find((config: DbxProgressButtonTargetedConfig) => config.id === buttonId) : undefined;\n });\n\n readonly configSignal = computed<Maybe<DbxProgressButtonConfig>>(() => {\n const config = this.config();\n const globalConfig = this.globalOptionsSignal();\n\n let completeConfig: Maybe<Configurable<DbxProgressButtonConfig>>;\n\n if (config || globalConfig) {\n completeConfig = {\n ...globalConfig,\n ...config\n };\n\n // set the iconOnly property if the buttonType is icon\n if (completeConfig.buttonType === 'icon') {\n completeConfig.iconOnly = true;\n } else if (completeConfig.iconOnly) {\n completeConfig.buttonType = 'icon';\n }\n }\n\n return completeConfig;\n });\n\n readonly baseCssClassSignal = computed(() => {\n const config = this.configSignal();\n const classes: CssClass[] = [config?.customClass ?? ''];\n\n if (config?.fullWidth) {\n classes.push('fullWidth');\n }\n\n if (config?.disabled) {\n classes.push('disabled');\n }\n\n let buttonType: DbxButtonType = 'basic';\n\n if (config?.buttonType) {\n buttonType = config.buttonType;\n } else if (config?.raised) {\n buttonType = 'raised';\n } else if (config?.stroked) {\n buttonType = 'stroked';\n } else if (config?.flat) {\n buttonType = 'flat';\n } else if (config?.iconOnly) {\n buttonType = 'icon';\n }\n\n switch (buttonType) {\n case 'raised':\n classes.push('mat-mdc-raised-button mdc-button--raised');\n break;\n case 'stroked':\n classes.push('mat-mdc-outlined-button mdc-button--outlined');\n break;\n case 'flat':\n classes.push('mat-mdc-unelevated-button mdc-button--unelevated');\n break;\n default:\n classes.push('mat-unthemed');\n break;\n }\n\n return classes;\n });\n\n readonly baseCssClasses$ = toObservable(this.baseCssClassSignal);\n\n readonly workingSignal = computed(() => (this.working() || this.configSignal()?.working) ?? false);\n readonly disabledSignal = computed(() => (this.disabled() || this.configSignal()?.disabled) ?? false);\n\n readonly buttonTypeAttributeSignal = computed(() => {\n const options = this.configSignal();\n return options?.buttonTypeAttribute ?? options?.type;\n });\n\n readonly buttonDisabledSignal = computed(() => this.workingSignal() || this.disabledSignal());\n readonly showProgressSignal = computed(() => this.workingSignal() && !this.disabledSignal());\n\n @HostListener('click', ['$event'])\n public handleClick(event: MouseEvent): void {\n const working = this.workingSignal();\n const disabled = this.disabledSignal();\n\n if (!working && !disabled) {\n this.btnClick.emit(event);\n event.stopImmediatePropagation();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './abstract.progress.button.directive';\nimport { map, shareReplay } from 'rxjs';\nimport { spaceSeparatedCssClasses } from '@dereekb/util';\nimport { distinctUntilItemsHaveDifferentValues } from '@dereekb/rxjs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'dbx-progress-bar-button,dbx-bar-button',\n templateUrl: './bar.button.component.html',\n styleUrls: ['./bar.button.component.scss', './shared.button.component.scss'],\n imports: [MatButtonModule, MatIconModule, MatProgressBar, NgClass, NgStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxProgressBarButtonComponent extends AbstractProgressButtonDirective {\n readonly buttonCss$ = this.baseCssClasses$.pipe(\n distinctUntilItemsHaveDifferentValues((x) => x[1]),\n map((x) => spaceSeparatedCssClasses(x[1])),\n shareReplay(1)\n );\n\n readonly buttonCssSignal = toSignal(this.buttonCss$);\n}\n","<button class=\"dbx-base-button dbx-progress-bar-button\" mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (configSignal()?.buttonIcon) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet!\" [ngClass]=\"configSignal()?.buttonIcon?.customClass!\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n }\n <span>\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n @if (showProgressSignal()) {\n <mat-progress-bar class=\"bar\" [color]=\"configSignal()?.barColor!\" [mode]=\"configSignal()?.mode!\" [value]=\"configSignal()?.value!\"></mat-progress-bar>\n }\n</button>\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, viewChild } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './abstract.progress.button.directive';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Maybe, spaceSeparatedCssClasses } from '@dereekb/util';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'dbx-progress-spinner-button,dbx-spinner-button',\n templateUrl: './spinner.button.component.html',\n styleUrls: ['./spinner.button.component.scss', './shared.button.component.scss'],\n imports: [MatButtonModule, MatIconModule, MatProgressSpinner, NgClass, NgStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxProgressSpinnerButtonComponent extends AbstractProgressButtonDirective {\n readonly buttonRef = viewChild.required<string, ElementRef<HTMLElement>>('button', { read: ElementRef<HTMLElement> });\n\n readonly buttonCssArraySignal = computed(() => {\n const config = this.configSignal();\n const classes = [...this.baseCssClassSignal()];\n\n if (config?.iconOnly) {\n classes.push('mat-mdc-icon-button');\n }\n\n if (config?.fab) {\n classes.push('dbx-progress-spinner-fab');\n }\n\n return classes;\n });\n\n readonly buttonCss$ = toObservable(this.buttonCssArraySignal).pipe(map(spaceSeparatedCssClasses), distinctUntilChanged(), shareReplay(1));\n\n readonly spinnerSizeSignal = computed(() => {\n const config = this.configSignal();\n const buttonRef = this.buttonRef();\n\n const elem = buttonRef.nativeElement;\n const height = elem.clientHeight;\n\n let size: Maybe<number>;\n\n if (config != null) {\n if (config.iconOnly) {\n if (config.fab) {\n size = 48;\n } else {\n size = height;\n }\n } else {\n size = config.spinnerSize;\n }\n }\n\n if (!size) {\n const minimumSpinnerSize = 24;\n const spinnerRatio = config?.spinnerRatio ?? 0.33;\n const targetSpinnerSize = height * Math.min(1, spinnerRatio);\n size = Math.min(height, Math.max(minimumSpinnerSize, targetSpinnerSize));\n }\n\n return size;\n });\n\n readonly buttonCssSignal = toSignal(this.buttonCss$);\n\n readonly showTextSignal = computed(() => {\n const config = this.configSignal();\n return !(config?.fab || config?.iconOnly);\n });\n\n readonly showTextButtonIconSignal = computed(() => {\n const config = this.configSignal();\n const showText = this.showTextSignal();\n return showText && config?.buttonIcon; // shows the button icon with showing the text.\n });\n\n readonly showIconSignal = computed(() => {\n const config = this.configSignal();\n return (\n config &&\n config.buttonIcon && // button icon must be defined\n !this.showTextSignal()\n ); // show icon if either fab or iconOnly is true\n });\n\n readonly customSpinnerStyleSignal = computed(() => {\n const customSpinnerColor = this.configSignal()?.customSpinnerColor;\n return customSpinnerColor ? { stroke: customSpinnerColor } : undefined;\n });\n\n readonly customSpinnerStyleClassSignal = computed(() => {\n const hasCustomStyle = Boolean(this.customSpinnerStyleSignal());\n return hasCustomStyle ? { 'dbx-progress-spinner-custom': true } : undefined;\n });\n}\n","<button class=\"dbx-base-button dbx-progress-spinner-button\" #button mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (showTextSignal()) {\n @if (showTextButtonIconSignal()) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet\" [class.working]=\"showProgressSignal()\" [ngClass]=\"configSignal()?.buttonIcon?.customClass\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\">\n {{ configSignal()?.buttonIcon?.fontSet ? '' : configSignal()?.buttonIcon?.fontIcon }}\n </mat-icon>\n }\n <span class=\"button-text\" [class.working]=\"showProgressSignal()\">\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n }\n @if (showIconSignal()) {\n <!-- Use ng-container to prevent mat-icon from being a child of the button which changes the behavior -->\n <ng-container>\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.fab && configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n </ng-container>\n }\n @if (showProgressSignal()) {\n <mat-spinner class=\"spinner\" [diameter]=\"spinnerSizeSignal()\" [color]=\"configSignal()?.spinnerColor!\" [mode]=\"configSignal()?.mode!\" [value]=\"configSignal()?.value!\" [ngStyle]=\"customSpinnerStyleSignal()\" [ngClass]=\"customSpinnerStyleClassSignal()\" [class.working]=\"showProgressSignal()\"></mat-spinner>\n }\n</button>\n","import { NgModule } from '@angular/core';\nimport { DbxProgressBarButtonComponent } from './bar.button.component';\nimport { DbxProgressSpinnerButtonComponent } from './spinner.button.component';\n\nconst importsAndExports = [DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent];\n\n/**\n * @deprecated import DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxProgressButtonsModule {}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DbxProgressButtonGlobalConfig, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\n\n/**\n * Provides the global configuration for DbxProgressButtonComponent.\n *\n * @param config\n * @returns\n */\nexport function provideDbxProgressButtonGlobalConfig(config: DbxProgressButtonGlobalConfig): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: DBX_PROGRESS_BUTTON_GLOBAL_CONFIG,\n useValue: config\n }\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { provideDbxButton, AbstractDbxButtonDirective } from '@dereekb/dbx-core';\nimport { Configurable, isDefinedAndNotFalse, type Maybe } from '@dereekb/util';\nimport { DbxProgressButtonConfig } from './progress/button.progress.config';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { DbxProgressSpinnerButtonComponent } from './progress';\n\nexport type DbxButtonType = 'basic' | 'raised' | 'stroked' | 'flat' | 'icon';\n\n/**\n * @deprecated use DbxButtonType instead.\n */\nexport enum DbxButtonDisplayType {\n RAISED = 'raised',\n STROKED = 'stroked',\n FLAT = 'flag',\n ICON_ONLY = 'icon'\n}\n\n/**\n * Complex button that supports loading states.\n */\n@Component({\n selector: 'dbx-button',\n template: `\n <dbx-progress-spinner-button (btnClick)=\"clickButton()\" [config]=\"configSignal()\">\n <ng-content></ng-content>\n </dbx-progress-spinner-button>\n `,\n providers: provideDbxButton(DbxButtonComponent),\n imports: [DbxProgressSpinnerButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxButtonComponent extends AbstractDbxButtonDirective {\n readonly type = input<Maybe<DbxButtonType>>();\n\n readonly color = input<ThemePalette | DbxThemeColor>(undefined);\n readonly spinnerColor = input<ThemePalette | DbxThemeColor>(undefined);\n readonly customButtonColor = input<Maybe<string>>();\n readonly customTextColor = input<Maybe<string>>();\n readonly customSpinnerColor = input<Maybe<string>>();\n\n readonly basic = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly raised = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly stroked = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly flat = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly iconOnly = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly fab = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n\n readonly typeSignal = computed(() => {\n let type = this.type();\n\n if (!type) {\n type = 'basic';\n\n if (this.raised()) {\n type = 'raised';\n } else if (this.stroked()) {\n type = 'stroked';\n } else if (this.flat()) {\n type = 'flat';\n } else if (this.iconOnly()) {\n type = 'icon';\n }\n }\n\n return type;\n });\n\n readonly configSignal = computed<DbxProgressButtonConfig>(() => {\n // configure custom style\n const customStyle = {} as {\n [key: string]: string;\n };\n\n const customButtonColorValue = this.customButtonColor();\n\n if (customButtonColorValue) {\n customStyle['background'] = customButtonColorValue;\n }\n\n const customTextColorValue = this.customTextColor();\n\n if (customTextColorValue) {\n customStyle['color'] = customTextColorValue;\n }\n\n const customSpinnerColorValue = this.customSpinnerColor();\n const customSpinnerColor: Maybe<string> = customSpinnerColorValue ?? customTextColorValue;\n\n const disabledSignalValue = this.disabledSignal();\n const disabled = !this.workingSignal() && disabledSignalValue; // Only disabled if we're not working, in order to show the animation.\n\n const iconValue = this.iconSignal();\n const buttonIcon = iconValue ? { fontIcon: iconValue } : undefined;\n\n const textValue = this.textSignal();\n const isIconOnlyButton = buttonIcon && !textValue;\n\n const config: Configurable<DbxProgressButtonConfig> = {\n fab: this.fab(),\n working: this.workingSignal(),\n buttonIcon,\n customStyle,\n customClass: 'dbx-button ' + (isIconOnlyButton ? 'dbx-button-no-text' : ''),\n text: textValue ?? '',\n buttonType: this.typeSignal(),\n buttonColor: this.color(),\n barColor: 'accent',\n mode: 'indeterminate',\n spinnerColor: this.spinnerColor() ?? this.color(),\n customSpinnerColor,\n disabled\n };\n\n return config;\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxIconButtonComponent } from './icon.button.component';\n\n/**\n * @deprecated import DbxIconButtonComponent directly instead.\n */\n@NgModule({\n imports: [DbxIconButtonComponent],\n exports: [DbxIconButtonComponent]\n})\nexport class DbxIconButtonModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxButtonComponent } from './button.component';\nimport { DbxButtonSpacerDirective } from './button.spacer.directive';\nimport { DbxCoreButtonModule } from '@dereekb/dbx-core';\nimport { DbxIconButtonComponent } from './icon';\nimport { DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent } from './progress';\n\nconst importsAndExports = [\n DbxCoreButtonModule,\n DbxIconButtonComponent,\n // buttons\n DbxButtonComponent,\n DbxButtonSpacerDirective,\n // progress\n DbxProgressSpinnerButtonComponent,\n DbxProgressBarButtonComponent\n];\n\n/**\n * Provides all base @dereekb/dbx-core and @dereekb/dbx-web button components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxButtonModule {}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { AbstractDbxActionHandlerDirective, FilterSourceDirective, provideActionStoreSource } from '@dereekb/dbx-core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\nimport { WorkInstance } from '@dereekb/rxjs';\n\n/**\n * Action component used to simplify creating a filter form.\n *\n * Provides a DbxAction and configures the action to set the filter on a FilterSourceDirective when triggered.\n */\n@Component({\n selector: 'dbx-filter-wrapper',\n templateUrl: './filter.wrapper.component.html',\n providers: [provideActionStoreSource(null)],\n standalone: true,\n imports: [DbxButtonModule, MatButtonModule, MatIconModule, FlexLayoutModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxFilterWrapperComponent<F = unknown> extends AbstractDbxActionHandlerDirective<F> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n readonly showButtons = input(true);\n readonly applyRaised = input(true);\n readonly applyIcon = input('filter_list');\n readonly applyText = input('Filter');\n\n constructor() {\n super();\n\n // configure handler function\n this._dbxActionHandlerInstance.setHandlerFunction((filter: F, instance: WorkInstance<F, unknown>) => {\n this.filterSourceDirective.setFilter(filter);\n instance.success(true);\n });\n }\n\n applyFilter(): void {\n this.source.setIsModified(true); // Force setting modified.\n this.source.trigger();\n }\n\n resetFilter(): void {\n this.filterSourceDirective.resetFilter();\n }\n}\n","<div class=\"dbx-filter-wrapper\">\n <div class=\"dbx-filter-wrapper-content\">\n <ng-content></ng-content>\n </div>\n @if (showButtons()) {\n <div fxLayout=\"row\">\n <dbx-button dbxActionButton [raised]=\"applyRaised()\" [text]=\"applyText()\" [icon]=\"applyIcon()\"></dbx-button>\n <div class=\"spacer\"></div>\n <button mat-icon-button (click)=\"resetFilter()\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n }\n</div>\n","import { shareReplay, map, Observable, combineLatest, distinctUntilChanged, startWith } from 'rxjs';\nimport { Directive, inject, input, output } from '@angular/core';\nimport { ClickableFilterPreset, ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset, ClickableFilterPresetOrPartialPreset, isClickableFilterPreset } from '@dereekb/dbx-core';\nimport { getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n@Directive()\nexport abstract class AbstractDbxPresetFilterMenuDirective<F extends FilterWithPreset> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n readonly presetSelected = output<ClickableFilterPresetOrPartialPreset<F>>();\n readonly presets = input<ClickableFilterPresetOrPartialPreset<F>[]>([]);\n\n readonly presets$ = toObservable(this.presets);\n\n readonly selected$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n readonly presetsWithPresetStringOnly$: Observable<ClickableFilterPreset<F>[]> = this.presets$.pipe(map((x) => x.filter((y) => Boolean((y as ClickableFilterPreset<F>).preset)) as ClickableFilterPreset<F>[]));\n\n readonly selectedPresetString$: Observable<Maybe<string>> = this.selected$.pipe(\n map((selectedFilter) => (selectedFilter ? selectedFilter.preset : undefined)),\n distinctUntilChanged()\n );\n\n readonly presetAnchorsPairs$: Observable<['preset' | 'partialPreset', ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink][]> = combineLatest([this.presets$, this.selected$, this.selectedPresetString$]).pipe(\n map(([presets, currentFilterValue, selectedPresetString]) => {\n return presets.map((x) => {\n let selected: boolean;\n let type: 'preset' | 'partialPreset';\n\n if (isClickableFilterPreset(x)) {\n selected = x.preset === selectedPresetString;\n type = 'preset';\n } else {\n selected = x.isActive(currentFilterValue);\n type = 'partialPreset';\n }\n\n return [\n type,\n x,\n {\n ...x,\n selected,\n onClick: () => {\n this.selectPreset(x);\n }\n }\n ] as [typeof type, ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink];\n });\n }),\n shareReplay(1)\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = this.presetAnchorsPairs$.pipe(\n map((x) => x.map((x) => x[2])),\n shareReplay(1)\n );\n\n readonly firstSelectedAnchorPair$ = this.presetAnchorsPairs$.pipe(\n map((presets) => {\n const firstSelected = presets.find((x) => x[2].selected);\n return firstSelected ? firstSelected : undefined;\n }),\n shareReplay(1)\n );\n\n readonly selectedPreset$: Observable<Maybe<ClickableFilterPreset<F>>> = this.presetAnchorsPairs$.pipe(\n map((presets) => {\n const firstSelected = presets.filter((x) => x[0] === 'preset').find((x) => x[2].selected);\n return firstSelected ? (firstSelected[1] as ClickableFilterPreset<F>) : undefined;\n }),\n shareReplay(1)\n );\n\n readonly presetAnchorsSignal = toSignal(this.presetAnchors$, { initialValue: [] });\n readonly selectedPresetSignal = toSignal(this.selectedPreset$);\n\n selectPreset(preset: ClickableFilterPresetOrPartialPreset<F>) {\n const presetString = (preset as ClickableFilterPreset<F>).preset;\n const presetValue = (preset as ClickableFilterPreset<F>).presetValue || (preset as ClickablePartialFilterPreset<F>).partialPresetValue;\n\n // emit before setting filter, as the view might be destroyed as a result of the filter being set\n this.presetSelected.emit(preset);\n\n if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {\n // set and then reset if the value is null or empty\n this.filterSourceDirective.setFilter((presetValue ?? {}) as F);\n this.filterSourceDirective.resetFilter();\n } else {\n let filter = getValueFromGetter(presetValue) as F;\n\n if (filter.preset !== presetString) {\n filter = {\n ...filter,\n preset: presetString\n };\n }\n\n this.filterSourceDirective.setFilter(filter);\n }\n }\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\n/**\n * Provider that describes to the app how to handle anchors.\n *\n * Use provideDbxRouterWebUiRouterProviderConfig() if using UIRouter in your application.\n * or\n * Use provideDbxRouterWebAngularRouterProviderConfig() if using Angular Router in your application.\n */\nexport abstract class DbxRouterWebProviderConfig {\n /**\n * Component used by the Anchor component to render a SegueRef link.\n */\n abstract anchorSegueRefComponent: DbxInjectionComponentConfig;\n}\n","import { skipFirstMaybe } from '@dereekb/rxjs';\nimport { Component, TemplateRef, HostListener, inject, viewChild, input, ChangeDetectionStrategy, computed } from '@angular/core';\nimport { AbstractDbxAnchorDirective, DbxInjectionComponentConfig, DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { NgTemplateOutlet, NgClass } from '@angular/common';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { shareReplay } from 'rxjs';\nimport { DbxRouterWebProviderConfig } from '../../provider/router.provider.config';\n\n/**\n * Component that renders an anchor element depending on the input.\n */\n@Component({\n selector: 'dbx-anchor, [dbx-anchor]',\n template: `\n @switch (typeSignal()) {\n @case ('plain') {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n @case ('clickable') {\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"selectedClassSignal()\" (click)=\"clickAnchor()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n @case ('sref') {\n <dbx-injection [config]=\"srefAnchorConfig\">\n <!-- Injected in child. -->\n </dbx-injection>\n }\n @case ('href') {\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"urlSignal()\" [attr.target]=\"targetSignal()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n @case ('disabled') {\n <a class=\"dbx-anchor-a dbx-anchor-disabled\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n }\n <!-- Template content -->\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n standalone: true,\n imports: [NgTemplateOutlet, NgClass, DbxInjectionComponent],\n host: {\n class: 'd-inline dbx-anchor',\n 'dbx-anchor-block': 'block()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxAnchorComponent extends AbstractDbxAnchorDirective {\n private readonly _dbNgxRouterWebProviderConfig = inject(DbxRouterWebProviderConfig);\n\n readonly block = input<Maybe<boolean>>();\n\n readonly templateRef = viewChild<string, Maybe<TemplateRef<unknown>>>('content', { read: TemplateRef });\n readonly templateRef$ = toObservable(this.templateRef).pipe(skipFirstMaybe(), shareReplay(1));\n\n readonly selectedClassSignal = computed(() => (this.selectedSignal() ? 'dbx-anchor-selected' : ''));\n\n get srefAnchorConfig(): DbxInjectionComponentConfig {\n return this._dbNgxRouterWebProviderConfig.anchorSegueRefComponent;\n }\n\n clickAnchor(event?: Maybe<MouseEvent>): void {\n this.anchor?.onClick?.(event);\n }\n\n @HostListener('mouseenter')\n onMouseEnter(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('enter', event);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('leave', event);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, Signal } from '@angular/core';\nimport { ClickableAnchorLinkTree, DbxInjectionComponent, ExpandedClickableAnchorLinkTree, expandClickableAnchorLinkTrees } from '@dereekb/dbx-core';\nimport { Configurable, type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from '../anchor/anchor.component';\nimport { MatListItem, MatListItemIcon, MatListItemLine, MatListItemTitle, MatNavList } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDivider } from '@angular/material/divider';\nimport { NgClass } from '@angular/common';\n\nexport interface DbxAnchorListExpandedAnchor extends ExpandedClickableAnchorLinkTree {\n readonly classes: string;\n}\n\n/**\n * Component that displays a list of ClickableAnchorLink values within a MatNavList.\n */\n@Component({\n selector: 'dbx-anchor-list',\n templateUrl: './anchorlist.component.html',\n imports: [NgClass, MatNavList, MatListItem, MatListItemIcon, MatListItemLine, MatListItemTitle, MatIconModule, MatDivider, DbxAnchorComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxAnchorListComponent {\n readonly anchors = input.required<ClickableAnchorLinkTree[], Maybe<ClickableAnchorLinkTree[]>>({ transform: (x) => x ?? [] });\n\n readonly expandedAnchors: Signal<DbxAnchorListExpandedAnchor[]> = computed(() => {\n const anchors = this.anchors();\n return expandClickableAnchorLinkTrees(anchors).map((y) => {\n (y as Configurable<DbxAnchorListExpandedAnchor>).classes = `${y.depth > 0 ? 'dbx-anchor-list-child' : 'dbx-anchor-list-root'} dbx-anchor-list-depth-${y.depth}`;\n return y as DbxAnchorListExpandedAnchor;\n });\n });\n}\n","<mat-nav-list class=\"dbx-anchor-list\">\n @for (expanded of expandedAnchors(); track $index; let last = $last) {\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n @if (expanded.value.icon) {\n <mat-icon matListItemIcon>{{ expanded.value.icon }}</mat-icon>\n }\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n @if (expanded.value.hint) {\n <div matListItemLine class=\"dbx-small\">{{ expanded.value.hint }}</div>\n }\n @if (expanded.value.content) {\n <dbx-injection [config]=\"expanded.value.content\"></dbx-injection>\n }\n </a>\n @if (!last) {\n <mat-divider></mat-divider>\n }\n </dbx-anchor>\n }\n</mat-nav-list>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\nimport { DbxAnchorListComponent } from '../../router/layout/anchorlist/anchorlist.component';\n\n@Component({\n selector: 'dbx-preset-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchorsSignal()\"></dbx-anchor-list>\n `,\n imports: [DbxAnchorListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPresetFilterListComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {}\n","import { ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { combineLatest, distinctUntilChanged, map, Observable, shareReplay, switchMap } from 'rxjs';\n\n/**\n * Configuration for the preset filter menus\n */\nexport interface DbxPresetFilterMenuConfig {\n /**\n * The text to display for the unknown selection.\n */\n readonly unknownSelectionText?: string;\n /**\n * The icon to use for the filter, or false if no icon should be shown.\n */\n readonly filterIcon?: Maybe<string> | false;\n /**\n * Whether or not to use the preset's icon if one is defined. If filterIcon is false, the icon will only appear when an item is selected.\n */\n readonly usePresetIcon?: boolean;\n}\n\nexport function dbxPresetFilterMenuButtonTextObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'title'>>>>, defaultText = 'Filter') {\n return combineLatest([config$, selection$]).pipe(\n map(([config, preset]) => preset?.title ?? config.unknownSelectionText ?? defaultText),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\nexport function dbxPresetFilterMenuButtonIconObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'icon'>>>>, defaultIcon = 'arrow_drop_down') {\n return config$.pipe(\n switchMap((config) => {\n const filterIcon = config.filterIcon === false ? '' : config.filterIcon || defaultIcon;\n\n return selection$.pipe(\n map((preset) => {\n let icon: Maybe<string>;\n\n if (config.filterIcon === false) {\n if (config.usePresetIcon) {\n icon = preset?.icon;\n }\n } else if (config.usePresetIcon) {\n icon = preset?.icon ?? filterIcon;\n } else {\n icon = filterIcon;\n }\n\n return icon;\n })\n );\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxAnchorComponent } from '../../router/layout/anchor/anchor.component';\nimport { NgClass } from '@angular/common';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Component({\n selector: 'dbx-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html',\n imports: [NgClass, MatButtonModule, MatMenuModule, MatIconModule, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPresetFilterMenuComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {\n readonly config = input<DbxPresetFilterMenuConfig>({});\n readonly config$ = toObservable(this.config);\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this.config$, this.selectedPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this.config$, this.selectedPreset$);\n\n readonly buttonTextSignal = toSignal(this.buttonText$);\n readonly buttonIconSignal = toSignal(this.buttonIcon$);\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n @if (buttonIconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ buttonIconSignal() }}</mat-icon>\n }\n <span>{{ buttonTextSignal() }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n @for (anchor of presetAnchorsSignal(); track $index) {\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">\n @if (anchor.icon) {\n <mat-icon>{{ anchor.icon }}</mat-icon>\n }\n {{ anchor.title }}\n </button>\n </dbx-anchor>\n }\n</mat-menu>\n","import { shareReplay, map, Observable, combineLatest, distinctUntilChanged, startWith, first } from 'rxjs';\nimport { Directive, inject, input } from '@angular/core';\nimport { ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset } from '@dereekb/dbx-core';\nimport { filterUndefinedValues, firstValue, getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Displays a button and menu for filtering partialPresets.\n */\n@Directive()\nexport abstract class AbstractDbxPartialPresetFilterMenuDirective<F> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n readonly partialPresets = input<ClickablePartialFilterPreset<F>[], Maybe<ClickablePartialFilterPreset<F>[]>>([], { transform: (x) => x ?? [] });\n readonly partialPresets$ = toObservable(this.partialPresets);\n\n readonly filter$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n\n readonly selectedPartialPresets$: Observable<ClickablePartialFilterPreset<F>[]> = combineLatest([this.partialPresets$, this.filter$]).pipe(\n map(([partialPresets, selectedFilter]) => partialPresets.filter((x) => x.isActive(selectedFilter))),\n distinctUntilChanged()\n );\n\n readonly firstSelectedPartialPreset$: Observable<Maybe<ClickablePartialFilterPreset<F>>> = this.selectedPartialPresets$.pipe(\n map((selectedPartialPresets) => firstValue(selectedPartialPresets)),\n distinctUntilChanged()\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = combineLatest([this.partialPresets$, this.firstSelectedPartialPreset$]).pipe(\n map(([partialPresets, firstSelectedPartialPreset]) => {\n return partialPresets.map((x) => {\n return {\n ...x,\n selected: x === firstSelectedPartialPreset,\n onClick: () => {\n this.selectPartialPreset(x);\n }\n };\n });\n }),\n shareReplay(1)\n );\n\n readonly presetAnchorsSignal = toSignal(this.presetAnchors$);\n\n selectPartialPreset(preset: ClickablePartialFilterPreset<F>) {\n const presetValue = preset.partialPresetValue;\n\n if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {\n // set and then reset if the value is null or empty\n this.filterSourceDirective.setFilter((presetValue ?? {}) as F);\n this.filterSourceDirective.resetFilter();\n } else {\n const filter = getValueFromGetter(preset.partialPresetValue) as Partial<F>;\n\n this.filter$.pipe(first()).subscribe((currentFilter) => {\n const nextFilter = { ...currentFilter, ...filterUndefinedValues({ ...currentFilter, ...filter }, true) } as F;\n this.filterSourceDirective.setFilter(nextFilter);\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxAnchorComponent } from '../../router/layout/anchor/anchor.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { NgClass } from '@angular/common';\n\n/**\n * Displays a button and menu for filtering partial preset values.\n */\n@Component({\n selector: 'dbx-partial-preset-filter-menu',\n templateUrl: './filter.partial.menu.component.html', // share the same template as the preset menu\n imports: [NgClass, MatMenuModule, MatButtonModule, MatIconModule, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPartialPresetFilterMenuComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {\n readonly config = input<DbxPresetFilterMenuConfig>({});\n readonly config$ = toObservable(this.config);\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this.config$, this.firstSelectedPartialPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this.config$, this.firstSelectedPartialPreset$);\n\n readonly buttonTextSignal = toSignal(this.buttonText$);\n readonly buttonIconSignal = toSignal(this.buttonIcon$);\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n @if (buttonIconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ buttonIconSignal() }}</mat-icon>\n }\n <span>{{ buttonTextSignal() }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n @for (anchor of presetAnchorsSignal(); track anchor.title) {\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">{{ anchor.title }}</button>\n </dbx-anchor>\n }\n</mat-menu>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { DbxAnchorListComponent } from '../../router/layout/anchorlist/anchorlist.component';\n\n@Component({\n selector: 'dbx-preset-partial-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchorsSignal()\"></dbx-anchor-list>\n `,\n imports: [DbxAnchorListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPartialPresetFilterListComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {}\n","import { NgModule } from '@angular/core';\nimport { DbxFilterPopoverButtonComponent } from './filter.popover.button.component';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { DbxFilterWrapperComponent } from './filter.wrapper.component';\nimport { DbxCoreFilterModule } from '@dereekb/dbx-core';\nimport { DbxPresetFilterListComponent } from './filter.preset.list.component';\nimport { DbxPresetFilterMenuComponent } from './filter.preset.menu.component';\nimport { DbxPartialPresetFilterMenuComponent } from './filter.partial.menu.component';\nimport { DbxPartialPresetFilterListComponent } from './filter.partial.list.component';\n\nconst importsAndExports = [DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxFilterPopoverComponent, DbxFilterPopoverButtonComponent, DbxFilterWrapperComponent, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent, DbxCoreFilterModule];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxFilterInteractionModule {}\n","import { GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport type PopupPosition = 'center' | 'bottom_left' | 'bottom_right';\n\nexport interface PopupPositionOffset {\n readonly x?: string;\n readonly y?: string;\n}\n\nexport class PopupGlobalPositionStrategy extends GlobalPositionStrategy {\n private _position!: PopupPosition;\n private _offset: PopupPositionOffset = {};\n\n constructor(position: PopupPosition = 'bottom_right', offset?: PopupPositionOffset) {\n super();\n this.setPopupPosition(position, offset);\n }\n\n setPopupOffset(offset?: PopupPositionOffset): void {\n this.setPopupPosition(this._position, offset ?? {});\n }\n\n setPopupPosition(position: PopupPosition, offset?: PopupPositionOffset): void {\n this._resetPositions();\n this._position = position;\n\n if (offset) {\n this._offset = offset;\n }\n\n const offsetX = this._offset.x ?? '0';\n const offsetY = this._offset.y ?? '0';\n\n switch (position) {\n case 'center':\n this.centerHorizontally();\n this.centerVertically();\n break;\n case 'bottom_left':\n this.bottom(offsetY);\n this.left(offsetX);\n break;\n case 'bottom_right':\n this.bottom(offsetY);\n this.right(offsetX);\n break;\n }\n }\n\n private _resetPositions(): void {\n this.top();\n this.bottom();\n this.left();\n this.right();\n }\n}\n","import { type Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopupKey = string;\n\nexport const DbxPopupWindowState = {\n NORMAL: 'normal' as const,\n MINIMIZED: 'minimized' as const,\n FULLSCREEN: 'fullscreen' as const\n} as const;\n\nexport type DbxPopupWindowStateType = (typeof DbxPopupWindowState)[keyof typeof DbxPopupWindowState];\n\nexport abstract class DbxPopupController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopupKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly windowState$: Observable<DbxPopupWindowStateType>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popup to close.\n */\n abstract close(): void;\n /**\n * Closes the popup and returns the input value.\n */\n abstract return(value?: O): void;\n abstract minimize(): void;\n abstract normalscreen(): void;\n abstract fullscreen(): void;\n}\n","import { DbxPopupKey, DbxPopupController } from './popup';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopupCoordinatorService implements OnDestroy {\n private readonly _popups = new BehaviorSubject<Map<DbxPopupKey, DbxPopupController>>(new Map());\n\n readonly popups$ = this._popups.asObservable();\n\n ngOnDestroy(): void {\n this._popups.complete();\n }\n\n get popups(): Map<DbxPopupKey, DbxPopupController> {\n return this._popups.value;\n }\n\n public addPopup(popup: DbxPopupController): void {\n const key = popup.key;\n\n if (key) {\n this.removePopup(key);\n this._popups.value.set(key, popup);\n this._popups.next(this.popups);\n }\n }\n\n public removePopup(key: DbxPopupKey, popup?: DbxPopupController): void {\n if (key) {\n const existing = this.popups.get(key);\n\n // Remove if there is one existing, and if popup is provided it is the same popup.\n if (existing && (!popup || popup === existing)) {\n existing.close();\n this._popups.value.delete(key);\n this._popups.next(this.popups);\n }\n }\n }\n}\n","import { DbxPopupController } from './popup';\nimport { ChangeDetectionStrategy, Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport { DbxPopupCoordinatorService } from './popup.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Component({\n selector: 'dbx-popup-coordinator',\n template: `\n @if (showSignal()) {\n <ng-content></ng-content>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupCoordinatorComponent implements OnInit, OnDestroy {\n private readonly _service = inject(DbxPopupCoordinatorService);\n private readonly _popup = inject(DbxPopupController);\n\n readonly isPopupForKey$ = this._service.popups$.pipe(\n map((x) => x.get(this._popup.key) === this._popup),\n shareReplay(1)\n );\n\n readonly show$ = this.isPopupForKey$.pipe(delay(0));\n readonly showSignal = toSignal(this.show$);\n\n ngOnInit(): void {\n this._service.addPopup(this._popup);\n }\n\n ngOnDestroy(): void {\n this._service.removePopup(this._popup.key, this._popup);\n }\n}\n","import { Component, Type, OnDestroy, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Maybe, PixelsString } from '@dereekb/util';\nimport { CompactContextStore } from '../../layout/compact/compact.store';\nimport { CompactMode } from '../../layout/compact/compact';\nimport { BehaviorSubject, Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopupGlobalPositionStrategy, PopupPosition, PopupPositionOffset } from './popup.position.strategy';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxPopupController, DbxPopupKey, DbxPopupWindowState, DbxPopupWindowStateType } from './popup';\nimport { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\n\nexport const APP_POPUP_NORMAL_WIDTH = '700px';\nexport const APP_POPUP_MINIMIZED_WIDTH = '300px';\nexport const APP_POPUP_NORMAL_HEIGHT = 'auto';\n\nexport abstract class DbxPopupComponentController<O, I> extends DbxPopupController<O, I> {\n readonly getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopupComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popup should exist at a time given a certain key.\n */\n readonly key: DbxPopupKey;\n readonly position?: Maybe<PopupPosition>;\n readonly offset?: Maybe<PopupPositionOffset>;\n readonly closeOnTransition?: Maybe<boolean>;\n readonly componentClass: Type<T>;\n readonly data?: Maybe<I>;\n readonly isDraggable?: Maybe<boolean>;\n readonly init?: (component: T, controller: DbxPopupController<O, I>) => void;\n readonly width?: Maybe<PixelsString>;\n readonly height?: Maybe<PixelsString>;\n}\n\n/**\n * Popup component.\n */\n@Component({\n template: `\n <dbx-popup-coordinator>\n <div class=\"dbx-popup-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popup-coordinator>\n `,\n providers: [\n {\n provide: DbxPopupController,\n useExisting: DbxPopupComponent\n },\n {\n provide: CompactContextStore\n }\n ],\n imports: [DbxPopupCoordinatorComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopupController<O, I>, OnDestroy {\n private readonly popoverRef = inject(NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O>);\n private readonly compactContextState = inject(CompactContextStore);\n\n private _position: PopupGlobalPositionStrategy;\n\n readonly config: DbxPopupComponentConfig<O, I, T> = this.popoverRef.data;\n readonly key: DbxPopupKey = this.config.key;\n readonly data: Maybe<I> = this.config.data;\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<DbxPopupComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private readonly closing = new Subject<void>();\n readonly isClosing$ = this.closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n private readonly _windowState = new BehaviorSubject<DbxPopupWindowStateType>(DbxPopupWindowState.NORMAL);\n readonly windowState$ = this._windowState.asObservable();\n\n getClosingValueFn?: (value?: I) => Promise<O>;\n\n constructor() {\n super();\n this.compactContextState.setMode(CompactMode.COMPACT);\n this._position = new PopupGlobalPositionStrategy(this.config.position ?? undefined, this.config.offset ?? undefined);\n this.popoverRef.overlay.updatePositionStrategy(this._position);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.closing.complete();\n this._windowState.complete();\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popup Controls\n public close(): void {\n this.closing.next();\n\n if (this.getClosingValueFn) {\n this.getClosingValueFn().then(\n (x) => {\n this.return(x);\n },\n () => {\n this.return();\n }\n );\n } else {\n this.return();\n }\n }\n\n return(value?: O): void {\n this.closing.next();\n this.popoverRef.close(value);\n }\n\n minimize(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize(APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.MINIMIZED);\n }\n\n normalscreen(): void {\n this.popoverRef.isDraggable = this.config.isDraggable ?? undefined;\n this.popoverRef.resize(APP_POPUP_NORMAL_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.NORMAL);\n }\n\n fullscreen(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize('100%', '100%');\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.FULLSCREEN);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopupComponent } from './popup.component';\n\n/**\n * Abstract popup directive.\n */\n@Directive()\nexport abstract class AbstractPopupDirective<O = unknown, I = unknown, T = unknown> {\n readonly popup = inject(DbxPopupComponent<O, I, T>);\n\n closePopup(): void {\n this.popup.close();\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup content wrapper component.\n */\n@Component({\n selector: 'dbx-popup-content',\n template: `\n <ng-content select=\"[controls]\"></ng-content>\n @if (showContentSignal()) {\n <div class=\"dbx-popup-content-container\">\n <ng-content></ng-content>\n </div>\n }\n `,\n host: {\n class: 'dbx-popup-content'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupContentComponent {\n private readonly appPopupController = inject(DbxPopupController);\n\n readonly showContent$ = this.appPopupController.windowState$.pipe(map((x) => x !== DbxPopupWindowState.MINIMIZED));\n readonly showContentSignal = toSignal(this.showContent$, { initialValue: true });\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\n\n/**\n * Popup Control Buttons.\n */\n@Component({\n selector: 'dbx-popup-control-buttons',\n template: `\n @switch (isMinimizedSignal()) {\n @case (false) {\n <dbx-button [flat]=\"true\" icon=\"minimize\" (buttonClick)=\"minimizeClicked()\"></dbx-button>\n }\n @case (true) {\n <dbx-button [flat]=\"true\" icon=\"maximize\" (buttonClick)=\"maximizeClicked()\"></dbx-button>\n }\n }\n <dbx-button-spacer></dbx-button-spacer>\n @switch (isFullscreenSignal()) {\n @case (false) {\n <dbx-button [flat]=\"true\" icon=\"open_in_full\" (buttonClick)=\"fullscreenClicked()\"></dbx-button>\n }\n @case (true) {\n <dbx-button [flat]=\"true\" icon=\"close_fullscreen\" (buttonClick)=\"normalscreenClicked()\"></dbx-button>\n }\n }\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [flat]=\"true\" icon=\"close\" color=\"warn\" (buttonClick)=\"closeClicked()\"></dbx-button>\n `,\n host: {\n class: 'dbx-popup-control-buttons'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxButtonModule, DbxButtonSpacerDirective],\n standalone: true\n})\nexport class DbxPopupControlButtonsComponent {\n private readonly _appPopupController = inject(DbxPopupController);\n\n readonly isMinimized$ = this._appPopupController.windowState$.pipe(map((x) => x === DbxPopupWindowState.MINIMIZED));\n readonly isFullscreen$ = this._appPopupController.windowState$.pipe(map((x) => x === DbxPopupWindowState.FULLSCREEN));\n\n readonly isMinimizedSignal = toSignal(this.isMinimized$, { initialValue: false });\n readonly isFullscreenSignal = toSignal(this.isFullscreen$, { initialValue: false });\n\n minimizeClicked(): void {\n this._appPopupController.minimize();\n }\n\n maximizeClicked(): void {\n this._appPopupController.normalscreen();\n }\n\n fullscreenClicked(): void {\n this._appPopupController.fullscreen();\n }\n\n normalscreenClicked(): void {\n this._appPopupController.normalscreen();\n }\n\n closeClicked(): void {\n this._appPopupController.close();\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\n\n/**\n * Popup Controls\n */\n@Component({\n selector: 'dbx-popup-controls',\n template: `\n <span class=\"dbx-popup-controls-header\">{{ header() }}</span>\n <div class=\"spacer\"></div>\n <dbx-popup-control-buttons></dbx-popup-control-buttons>\n `,\n host: {\n class: 'dbx-popup-controls'\n },\n imports: [DbxPopupControlButtonsComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupControlsComponent {\n readonly header = input<string>();\n}\n","import { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\nimport { NgModule } from '@angular/core';\nimport { DbxPopupContentComponent } from './popup.content.component';\nimport { DbxPopupComponent } from './popup.component';\nimport { DbxPopupControlsComponent } from './popup.controls.component';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\n\nconst importsAndExports = [DbxPopupComponent, DbxPopupCoordinatorComponent, DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPopupInteractionModule {}\n","import { DbxPopupComponent, DbxPopupComponentConfig, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH } from './popup.component';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbxPopupConfig<O, I, T> extends DbxPopupComponentConfig<O, I, T> {\n readonly injector?: Injector;\n}\n\n/**\n * Used for displaying a popup.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopupService {\n private readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n\n open<O, I, T>(config: DbxPopupConfig<O, I, T>): NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O> {\n const service = config.injector ? new NgOverlayContainerService(this._overlay, config.injector) : this._overlayContainerService;\n const isDraggable = config.isDraggable ?? false;\n const position = config.position ?? 'bottom_right';\n\n return service.open<DbxPopupComponentConfig<O, I, T>, O>({\n content: DbxPopupComponent,\n data: {\n ...config,\n isDraggable,\n position\n },\n configuration: {\n width: config.width ?? APP_POPUP_NORMAL_WIDTH,\n height: config.height ?? APP_POPUP_NORMAL_HEIGHT,\n useGlobalPositionStrategy: true,\n hasBackdrop: false,\n isResizable: false,\n isDraggable\n }\n });\n }\n}\n","import { Directive, input } from '@angular/core';\n\n@Directive({\n selector: 'dbx-prompt-box, [dbxPromptBox]',\n host: {\n class: 'd-block dbx-prompt-box',\n '[class.elevate]': 'elevate()'\n },\n standalone: true\n})\nexport class DbxPromptBoxDirective {\n readonly elevate = input<boolean>(true);\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport abstract class DbxPromptConfirm {\n abstract showDialog(): Observable<Maybe<boolean>>;\n}\n\nexport function provideDbxPromptConfirm<S extends DbxPromptConfirm>(sourceType: Type<S>): Provider[] {\n return [\n {\n provide: DbxPromptConfirm,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { DbxButton, DbxButtonInterceptor } from '@dereekb/dbx-core';\nimport { Directive, OnInit, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { DbxPromptConfirm } from './prompt.confirm';\n\n/**\n * Directive that binds together a confirm dialog with the button.\n */\n@Directive({\n selector: '[dbxPromptConfirmButton]',\n standalone: true\n})\nexport class DbxPromptConfirmButtonDirective implements OnInit, DbxButtonInterceptor {\n readonly button = inject(DbxButton, { host: true });\n readonly prompt = inject(DbxPromptConfirm, { host: true });\n\n readonly interceptButtonClick: () => Observable<boolean> = () => {\n return this.prompt.showDialog().pipe(map((x) => Boolean(x)));\n };\n\n ngOnInit(): void {\n this.button.setButtonInterceptor(this);\n }\n}\n","import { Component, computed, input, ChangeDetectionStrategy, signal } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxSectionHeaderConfig, DbxSectionHeaderHType } from './section';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * Component used to style a section's header.\n */\n@Component({\n selector: 'dbx-section-header,.dbx-section-header',\n template: `\n <div class=\"dbx-section-header-content\">\n @if (showTitleSignal()) {\n @switch (headerConfigSignal().h ?? 1) {\n @case (1) {\n <h1 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h1>\n }\n @case (2) {\n <h2 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h2>\n }\n @case (3) {\n <h3 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h3>\n }\n @case (4) {\n <h4 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h4>\n }\n @case (5) {\n <h5 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h5>\n }\n }\n <span class=\"spacer\"></span>\n }\n <ng-content></ng-content>\n </div>\n <!-- Show Hint Not Inline -->\n @if (headerConfigSignal().hint && !headerConfigSignal().hintInline) {\n <p class=\"dbx-section-hint dbx-hint\">{{ headerConfigSignal().hint }}</p>\n }\n <ng-template #headerContentTitleTemplate>\n @if (headerConfigSignal().icon) {\n <mat-icon>{{ headerConfigSignal().icon }}</mat-icon>\n }\n <span class=\"title-text\">\n {{ headerConfigSignal().header }}\n <!-- Show Hint Inline -->\n @if (headerConfigSignal().hint && headerConfigSignal().hintInline) {\n <span class=\"dbx-section-hint-inline dbx-hint\">{{ headerConfigSignal().hint }}</span>\n }\n </span>\n </ng-template>\n `,\n standalone: true,\n imports: [MatIconModule, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.dbx-section-header-full-title]': 'headerConfigSignal().onlyHeader',\n '[class.dbx-section-header-padded]': 'headerConfigSignal().paddedHeader'\n }\n})\nexport class DbxSectionHeaderComponent {\n readonly headerConfig = input<Maybe<DbxSectionHeaderConfig>>();\n\n readonly h = input<Maybe<DbxSectionHeaderHType>>();\n readonly paddedHeader = input<Maybe<boolean>>();\n readonly header = input<Maybe<string>>();\n readonly onlyHeader = input<Maybe<boolean>>();\n readonly icon = input<Maybe<string>>();\n readonly hint = input<Maybe<string>>();\n readonly hintInline = input<Maybe<boolean>>();\n\n readonly hintInlineDefault = signal<Maybe<boolean>>(undefined);\n\n readonly headerConfigSignal = computed(() => {\n const headerConfig = this.headerConfig();\n\n const config: DbxSectionHeaderConfig = {\n h: this.h() ?? headerConfig?.h,\n paddedHeader: this.paddedHeader() ?? headerConfig?.paddedHeader,\n header: this.header() ?? headerConfig?.header,\n onlyHeader: this.onlyHeader() ?? headerConfig?.onlyHeader,\n icon: this.icon() ?? headerConfig?.icon,\n hint: this.hint() ?? headerConfig?.hint,\n hintInline: this.hintInline() ?? headerConfig?.hintInline ?? this.hintInlineDefault()\n };\n\n return config;\n });\n\n readonly showTitleSignal = computed(() => {\n const headerConfig = this.headerConfigSignal();\n return Boolean(headerConfig.header || headerConfig.icon);\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Component used to format content on a page within a section.\n */\n@Component({\n selector: 'dbx-section',\n template: `\n <div class=\"dbx-section-header\" [h]=\"headerConfigSignal().h ?? 3\" [header]=\"headerConfigSignal().header\" [onlyHeader]=\"headerConfigSignal().onlyHeader\" [icon]=\"headerConfigSignal().icon\" [hint]=\"headerConfigSignal().hint\" [hintInline]=\"headerConfigSignal().hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-section',\n '[class]': 'classConfig()'\n },\n imports: [DbxSectionHeaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSectionComponent extends DbxSectionHeaderComponent {\n readonly elevate = input<boolean>(false);\n\n readonly classConfig = computed(() => {\n return this.elevate() ? 'dbx-section-elevate dbx-content-elevate' : '';\n });\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * A subsection.\n */\n@Component({\n selector: 'dbx-subsection',\n template: `\n <div class=\"dbx-subsection\">\n <div class=\"dbx-section-header\" [h]=\"headerConfigSignal().h ?? 4\" [header]=\"headerConfigSignal().header\" [onlyHeader]=\"headerConfigSignal().onlyHeader\" [icon]=\"headerConfigSignal().icon\" [hint]=\"headerConfigSignal().hint\" [hintInline]=\"headerConfigSignal().hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n standalone: true,\n imports: [DbxSectionHeaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSubSectionComponent extends DbxSectionComponent {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxSubSectionComponent } from '../../layout/section/subsection.component';\n\n/**\n * Pre-configured prompt.\n */\n@Component({\n selector: 'dbx-prompt',\n template: `\n <div class=\"dbx-prompt\">\n <ng-content select=\"[hero]\"></ng-content>\n <dbx-subsection [header]=\"header()\" [hint]=\"prompt()\">\n <ng-content></ng-content>\n </dbx-subsection>\n </div>\n `,\n standalone: true,\n imports: [DbxSubSectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptComponent {\n readonly header = input<Maybe<string>>();\n readonly prompt = input<Maybe<string>>();\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { DbxPromptComponent } from './prompt.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxPromptConfirmConfig {\n readonly title?: string;\n readonly prompt?: string;\n readonly confirmText?: string;\n readonly cancelText?: string;\n}\n\n/**\n * Displays a confirmation dialog.\n */\n@Component({\n selector: 'dbx-prompt-confirm',\n template: `\n <dbx-prompt [header]=\"config()?.title\" [prompt]=\"config()?.prompt\">\n <ng-content></ng-content>\n <button mat-stroked-button (click)=\"onConfirm()\">{{ confirmTextSignal() }}</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-stroked-button color=\"warn\" (click)=\"onCancel()\">{{ cancelTextSignal() }}</button>\n </dbx-prompt>\n `,\n standalone: true,\n imports: [DbxPromptComponent, MatButtonModule, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptConfirmComponent {\n readonly config = input<Maybe<DbxPromptConfirmConfig>>({});\n\n readonly confirmTextSignal = computed(() => this.config()?.confirmText || 'Confirm');\n readonly cancelTextSignal = computed(() => this.config()?.cancelText || 'Cancel');\n\n readonly confirm = output<void>();\n readonly cancel = output<void>();\n\n onConfirm(): void {\n this.confirm.emit();\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n}\n","import { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ChangeDetectionStrategy, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmComponent, DbxPromptConfirmConfig } from './prompt.confirm.component';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxDialogContentDirective } from '../dialog/dialog.content.directive';\n\nexport const DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG = {\n title: 'Confirm?'\n};\n\nexport interface DbxPromptConfirmDialogConfig extends DbxPromptConfirmConfig {\n component?: DbxInjectionComponentConfig;\n}\n\n@Component({\n template: `\n <dbx-dialog-content>\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <dbx-injection [config]=\"injectionConfig\"></dbx-injection>\n </dbx-prompt-confirm>\n </dbx-dialog-content>\n `,\n standalone: true,\n imports: [DbxDialogContentDirective, DbxPromptConfirmComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptConfirmDialogComponent extends AbstractDialogDirective<boolean, DbxPromptConfirmDialogConfig> implements OnInit {\n get config(): DbxPromptConfirmDialogConfig {\n return this.data;\n }\n\n get injectionConfig(): Maybe<DbxInjectionComponentConfig> {\n return this.data.component;\n }\n\n static openDialog(matDialog: MatDialog, config?: Maybe<DbxPromptConfirmDialogConfig>): MatDialogRef<DbxPromptConfirmDialogComponent, boolean> {\n const dialogRef = matDialog.open(DbxPromptConfirmDialogComponent, {\n data: config || DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG\n });\n return dialogRef;\n }\n\n confirm(): void {\n this.close(true);\n }\n\n cancel(): void {\n this.close(false);\n }\n}\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { type Maybe } from '@dereekb/util';\nimport { Observable, from } from 'rxjs';\nimport { DbxPromptConfirm, provideDbxPromptConfirm } from './prompt.confirm';\nimport { DbxPromptConfirmConfig } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\n\n// MARK: Abstract\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n */\n@Directive()\nexport abstract class AbstractPromptConfirmDirective implements DbxPromptConfirm {\n protected readonly matDialog = inject(MatDialog);\n\n private _currentDialogRef?: MatDialogRef<DbxPromptConfirmDialogComponent, boolean>;\n private _currentDialogPromise?: Promise<boolean>;\n\n /**\n * Config used when showDialog() is called.\n */\n config?: Maybe<DbxPromptConfirmConfig>;\n\n showDialog(): Observable<boolean> {\n if (!this._currentDialogPromise) {\n this._currentDialogPromise = new Promise<boolean>((resolve) => {\n this._currentDialogRef = DbxPromptConfirmDialogComponent.openDialog(this.matDialog, this.config);\n this._currentDialogRef.afterClosed().subscribe((result: Maybe<boolean>) => {\n this._currentDialogRef = undefined;\n this._currentDialogPromise = undefined;\n resolve(this._handleDialogResult(Boolean(result)));\n });\n });\n }\n\n return from(this._currentDialogPromise);\n }\n\n protected _handleDialogResult(result: boolean): boolean {\n return result;\n }\n}\n\n// MARK: Directive\n/**\n * Directive that shows a confirmation screen.\n */\n@Directive({\n selector: '[dbxPromptConfirm]',\n providers: provideDbxPromptConfirm(DbxPromptConfirmDirective),\n standalone: true\n})\nexport class DbxPromptConfirmDirective extends AbstractPromptConfirmDirective {\n readonly dbxPromptConfirm = input<Maybe<DbxPromptConfirmConfig>>();\n\n protected readonly _dbxPromptConfirmConfigEffect = effect(() => {\n this.config = this.dbxPromptConfirm();\n });\n}\n","import { Directive, input, computed } from '@angular/core';\n\nexport type DbxContentContainerPadding = 'none' | 'min' | 'small' | 'normal';\n\nexport type DbxContentContainerWidth = 'small' | 'medium' | 'large' | 'wide' | 'full';\n\n/**\n * Component that limits the max-width of the content.\n */\n@Directive({\n selector: 'dbx-content-container,[dbxContentContainer],.dbx-content-container',\n host: {\n class: 'd-block dbx-content-container',\n '[class]': `classConfig()`\n },\n standalone: true\n})\nexport class DbxContentContainerDirective {\n readonly grow = input<DbxContentContainerWidth>('wide');\n readonly padding = input<DbxContentContainerPadding>('normal');\n readonly topPadding = input<DbxContentContainerPadding>('none');\n\n readonly classConfig = computed(() => {\n const classConfig = 'container-' + this.grow() + ' container-padding-' + this.padding() + ' container-top-padding-' + this.topPadding();\n return classConfig;\n });\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DbxContentContainerDirective } from '../../layout/content/content.container.directive';\n\n@Component({\n selector: 'dbx-prompt-page',\n template: `\n <dbx-content-container grow=\"full\">\n <div class=\"dbx-prompt-page-content-wrap\">\n <ng-content></ng-content>\n </div>\n </dbx-content-container>\n `,\n host: {\n class: 'd-block dbx-prompt-page'\n },\n imports: [DbxContentContainerDirective],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptPageComponent {}\n","import { DbxPromptComponent } from './prompt.component';\nimport { NgModule } from '@angular/core';\nimport { DbxPromptBoxDirective } from './prompt.box.directive';\nimport { DbxPromptPageComponent } from './prompt.page.component';\nimport { DbxPromptConfirmComponent as DbxPromptConfirmComponent } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent as DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\nimport { DbxPromptConfirmDirective } from './prompt.confirm.directive';\nimport { DbxPromptConfirmButtonDirective } from './prompt.button.confirm.directive';\n\nconst importsAndExports = [DbxPromptComponent, DbxPromptBoxDirective, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPromptModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxDialogInteractionModule } from './dialog/dialog.module';\nimport { DbxPromptModule } from './prompt/prompt.module';\nimport { DbxPopupInteractionModule } from './popup/popup.module';\nimport { DbxPopoverInteractionModule } from './popover/popover.module';\nimport { DbxFilterInteractionModule } from './filter/filter.module';\n\nconst importsAndExports = [DbxPromptModule, DbxDialogInteractionModule, DbxFilterInteractionModule, DbxPopoverInteractionModule, DbxPopupInteractionModule];\n\n/**\n * @deprecated import individual modules instead.\n *\n * @see DbxDialogInteractionModule\n * @see DbxFilterInteractionModule\n * @see DbxPromptModule\n * @see DbxPopoverInteractionModule\n * @see DbxPopupInteractionModule\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxInteractionModule {}\n","import { Directive, inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\nimport { ReadableError, ReadableErrorWithCode } from '@dereekb/util';\n\n@Directive()\nexport abstract class AbstractDbxErrorWidgetComponent<T extends ReadableError = ReadableError> {\n readonly data = inject<ReadableErrorWithCode<T>>(DBX_INJECTION_COMPONENT_DATA);\n\n get code() {\n return this.data.code;\n }\n\n get message() {\n return this.data.message;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Combines a dbx-label and arbitrary content.\n */\n@Component({\n selector: 'dbx-label-block',\n template: `\n <span class=\"d-block dbx-label dbx-label-padded\">{{ header }}</span>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-label-block'\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxLabelBlockComponent {\n @Input()\n header?: Maybe<string>;\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ServerError, ServerErrorResponseData } from '@dereekb/util';\nimport { AbstractDbxErrorWidgetComponent } from './error.widget.directive';\nimport { DbxLabelBlockComponent } from '../layout/text/label.block.component';\nimport { JsonPipe } from '@angular/common';\n\n@Component({\n template: `\n <dbx-label-block header=\"Error Code\">{{ code }}</dbx-label-block>\n <dbx-label-block header=\"Error Message\">{{ message }}</dbx-label-block>\n @if (serverErrorData) {\n <dbx-label-block header=\"Error Data\">\n <p class=\"dbx-json\">{{ serverErrorData | json }}</p>\n </dbx-label-block>\n }\n `,\n host: {\n class: 'd-block dbx-error-default-error-widget dbx-content-container'\n },\n imports: [DbxLabelBlockComponent, JsonPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxErrorDefaultErrorWidgetComponent extends AbstractDbxErrorWidgetComponent<ServerError> {\n get serverErrorData(): ServerErrorResponseData | undefined {\n return this.data.data;\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeArrayValues, mapIterable, StringErrorCode } from '@dereekb/util';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\n\nexport const DEFAULT_ERROR_WIDGET_CODE = 'DEFAULT_ERROR_WIDGET';\nexport const UNKNOWN_ERROR_WIDGET_CODE = 'UNKNOWN_ERROR_WIDGET';\n\nexport interface DbxErrorWidgetEntry {\n /**\n * Error code to respond to.\n */\n readonly code: StringErrorCode;\n /**\n * Error widget component class to use.\n *\n * @deprecated use `widgetComponentClass` instead.\n */\n readonly componentClass?: Maybe<Type<unknown>>;\n /**\n * In-line error widget component class to use.\n *\n * This changes how it appears in dbx-error.\n *\n * If not provided, dbx-error will display the default output.\n */\n readonly errorComponentClass?: Maybe<Type<unknown>>;\n /**\n * Custom popup error widget component class to use.\n *\n * This changes how it appears in the dbx-error-widget-view.\n *\n * If not provided, the widget will display the default entry.\n */\n readonly widgetComponentClass?: Maybe<Type<unknown>>;\n}\n\nexport type DbxErrorWidgetEntryWithPopupComponentClass = Omit<DbxErrorWidgetEntry, 'popupComponentClass'> & { popupComponentClass: Type<unknown> };\n\n/**\n * Service used to register error widgets.\n *\n * It has two default widgets:\n *\n * - default: used in cases where an error has been registered by its error code\n * - unknown: used in cases where an error has an error code that has not been registered\n *\n * By default the DbxErrorDefaultErrorWidgetComponent is registered to both the default and unknown error entries.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorWidgetService {\n private readonly _entries = new Map<StringErrorCode, DbxErrorWidgetEntry>();\n\n constructor() {\n const defaultEntry = { widgetComponentClass: DbxErrorDefaultErrorWidgetComponent };\n this.registerDefaultEntry(defaultEntry);\n this.registerUnknownEntry(defaultEntry);\n }\n\n registerDefaultEntry(entry: Omit<DbxErrorWidgetEntry, 'errorComponentClass' | 'code'>) {\n return this.register({\n ...entry,\n errorComponentClass: null, // errorComponentClass is not allowed nor used for the default entry\n code: DEFAULT_ERROR_WIDGET_CODE\n });\n }\n\n registerUnknownEntry(entry: Omit<DbxErrorWidgetEntry, 'errorComponentClass' | 'code'>) {\n return this.register({\n ...entry,\n errorComponentClass: null, // errorComponentClass is not allowed nor used for the unknown entry\n code: UNKNOWN_ERROR_WIDGET_CODE\n });\n }\n\n register(entry: DbxErrorWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.code)) {\n this._entries.set(entry.code, {\n ...entry,\n widgetComponentClass: entry.widgetComponentClass ?? entry.componentClass\n });\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getErrorWidgetIdentifiers(): StringErrorCode[] {\n return Array.from(this._entries.keys());\n }\n\n getDefaultErrorWidgetEntry(): Maybe<DbxErrorWidgetEntry> {\n return this.getErrorWidgetEntry(DEFAULT_ERROR_WIDGET_CODE);\n }\n\n getUnknownErrorWidgetEntry(): Maybe<DbxErrorWidgetEntry> {\n return this.getErrorWidgetEntry(UNKNOWN_ERROR_WIDGET_CODE);\n }\n\n getErrorWidgetEntry(code: StringErrorCode): Maybe<DbxErrorWidgetEntry> {\n return this._entries.get(code);\n }\n\n getErrorWidgetEntries(codes: Iterable<StringErrorCode>): DbxErrorWidgetEntry[] {\n return filterMaybeArrayValues(mapIterable(codes ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { Maybe, ReadableError, ReadableErrorWithCode } from '@dereekb/util';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorWidgetService } from './error.widget.service';\n\n/**\n * Used to display a corresponding error widget based on the input data.\n */\n@Component({\n selector: 'dbx-error-widget-view',\n template: `\n <dbx-injection [config]=\"errorWithCodeSignal()\"></dbx-injection>\n `,\n host: {\n class: 'dbx-error-widget-view'\n },\n imports: [DbxInjectionComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorWidgetViewComponent {\n readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n\n readonly error = input<Maybe<ReadableError>>();\n\n readonly errorWithCodeSignal = computed<Maybe<DbxInjectionComponentConfig>>(() => {\n const currentError = this.error();\n const error: Maybe<ReadableErrorWithCode> = currentError && currentError.code ? (currentError as ReadableErrorWithCode) : undefined;\n\n let config: Maybe<DbxInjectionComponentConfig>;\n\n if (error != null) {\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n\n if (entry != null) {\n const defaultEntry = this.dbxErrorWidgetService.getDefaultErrorWidgetEntry();\n const componentClass = entry.widgetComponentClass ?? defaultEntry?.widgetComponentClass;\n\n if (componentClass != null) {\n config = {\n componentClass,\n data: error\n };\n }\n } else {\n const unknownEntry = this.dbxErrorWidgetService.getUnknownErrorWidgetEntry();\n\n if (unknownEntry?.widgetComponentClass != null) {\n config = {\n componentClass: unknownEntry?.widgetComponentClass,\n data: error\n };\n }\n }\n }\n\n return config;\n });\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { Maybe, ReadableError } from '@dereekb/util';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\n\n@Component({\n selector: 'dbx-error-details',\n template: `\n <dbx-error-widget-view [error]=\"error()\"></dbx-error-widget-view>\n `,\n host: {\n class: 'd-block dbx-error-details'\n },\n imports: [DbxErrorWidgetViewComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorDetailsComponent {\n readonly error = input<Maybe<ReadableError>>();\n}\n","import { ChangeDetectionStrategy, Component, ElementRef } from '@angular/core';\nimport { ReadableError } from '@dereekb/util';\nimport { AbstractPopoverDirective } from '../interaction/popover/abstract.popover.directive';\nimport { DbxPopoverKey } from '../interaction/popover/popover';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\nimport { DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective } from '../interaction';\nimport { DbxErrorDetailsComponent } from './error.details.component';\n\nexport const DEFAULT_ERROR_POPOVER_KEY = 'error';\n\nexport interface DbxErrorPopoverConfig {\n readonly origin: ElementRef;\n readonly error: ReadableError;\n}\n\n@Component({\n template: `\n <dbx-popover-content class=\"dbx-error-popover\">\n <dbx-popover-header [header]=\"code\" icon=\"error\"></dbx-popover-header>\n <dbx-popover-scroll-content>\n <dbx-error-details [error]=\"error\"></dbx-error-details>\n </dbx-popover-scroll-content>\n </dbx-popover-content>\n `,\n imports: [DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxErrorDetailsComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorPopoverComponent extends AbstractPopoverDirective<void, ReadableError> {\n readonly error = this.popover.data as ReadableError;\n readonly code = this.error.code;\n\n static openPopover(popoverService: DbxPopoverService, { origin, error }: DbxErrorPopoverConfig, popoverKey?: DbxPopoverKey) {\n return popoverService.open({\n key: popoverKey ?? DEFAULT_ERROR_POPOVER_KEY,\n origin,\n isResizable: true,\n componentClass: DbxErrorPopoverComponent,\n data: error\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, input, output, viewChild } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nexport interface DbxErrorViewButtonEvent {\n readonly origin: ElementRef;\n}\n\n/**\n * The basic error view. Shows an info button and an error message.\n */\n@Component({\n selector: 'dbx-error-view',\n template: `\n <button class=\"dbx-error-button\" [disabled]=\"buttonDisabled()\" #buttonPopoverOrigin mat-icon-button (click)=\"clickError()\">\n <mat-icon>{{ icon() }}</mat-icon>\n </button>\n @if (message()) {\n <span class=\"dbx-error-message\">{{ message() }}</span>\n }\n `,\n host: {\n class: 'dbx-error dbx-warn dbx-b'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatIconModule, MatButtonModule],\n standalone: true\n})\nexport class DbxErrorViewComponent {\n readonly icon = input<string>('error');\n\n readonly message = input<Maybe<string>>();\n\n /**\n * Whether or not the error button is disabled.\n */\n readonly buttonDisabled = input<Maybe<boolean>>();\n\n readonly buttonClick = output<DbxErrorViewButtonEvent>();\n\n readonly buttonOrigin = viewChild.required<ElementRef, ElementRef>('buttonPopoverOrigin', { read: ElementRef });\n\n clickError() {\n if (!this.buttonDisabled()) {\n this.buttonClick.emit({\n origin: this.buttonOrigin()\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output, inject, signal } from '@angular/core';\nimport { Maybe, ErrorInput, toReadableError, ReadableError, isDefaultReadableError, Configurable } from '@dereekb/util';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorViewButtonEvent, DbxErrorViewComponent } from './error.view.component';\nimport { DbxErrorWidgetService } from './error.widget.service';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\nimport { NgPopoverRef } from 'ng-overlay-container';\n\ntype DbxErrorComponentViewType = 'none' | 'default' | 'custom';\n\ninterface DbxErrorComponentState {\n readonly viewType: DbxErrorComponentViewType;\n readonly isDefaultError?: Maybe<boolean>;\n readonly message?: Maybe<string>;\n readonly rawError?: Maybe<ErrorInput>;\n readonly error?: Maybe<ReadableError>;\n readonly customView?: Maybe<DbxInjectionComponentConfig>;\n}\n\n/**\n * Root error component that displays content related to an error.\n */\n@Component({\n selector: 'dbx-error',\n template: `\n @switch (viewTypeSignal()) {\n @case ('default') {\n <dbx-error-view icon=\"error\" [message]=\"messageSignal()\" [buttonDisabled]=\"isDefaultErrorSignal()\" (buttonClick)=\"openErrorPopover($event)\"></dbx-error-view>\n }\n @case ('custom') {\n <dbx-injection [config]=\"customViewSignal()\"></dbx-injection>\n }\n }\n `,\n standalone: true,\n imports: [DbxErrorViewComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorComponent {\n private readonly popoverService = inject(DbxPopoverService);\n private readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n\n readonly popoverOpened = output<NgPopoverRef>();\n\n readonly error = input<Maybe<ErrorInput>>();\n readonly iconOnly = input<Maybe<boolean>>(false);\n\n private readonly _errorOverrideSignal = signal<Maybe<ErrorInput>>(undefined);\n readonly errorSignal = computed(() => this._errorOverrideSignal() ?? this.error());\n\n readonly state = computed<DbxErrorComponentState>(() => {\n const rawError = this.errorSignal();\n const iconOnly = this.iconOnly();\n\n if (rawError != null) {\n const error = toReadableError(rawError);\n const isDefaultError = iconOnly ? false : isDefaultReadableError(error);\n\n let state: DbxErrorComponentState = {\n viewType: 'default',\n rawError,\n error,\n message: (error as ReadableError)?.message || 'An error occurred.',\n isDefaultError\n };\n\n if (iconOnly) {\n delete (state as Configurable<DbxErrorComponentState>).message;\n } else {\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n const componentClass = entry?.errorComponentClass;\n\n if (componentClass != null) {\n state = {\n ...state,\n viewType: 'custom',\n customView: {\n componentClass,\n data: error\n }\n };\n }\n }\n\n return state;\n } else {\n return { viewType: 'none' };\n }\n });\n\n readonly viewTypeSignal = computed(() => this.state().viewType);\n readonly isDefaultErrorSignal = computed(() => this.state().isDefaultError);\n readonly messageSignal = computed(() => this.state().message);\n readonly customViewSignal = computed(() => this.state().customView);\n\n setError(error: Maybe<ErrorInput>) {\n this._errorOverrideSignal.set(error);\n }\n\n openErrorPopover(event: DbxErrorViewButtonEvent) {\n const error = this.state().error;\n\n if (error != null) {\n const popoverRef = DbxErrorPopoverComponent.openPopover(this.popoverService, {\n origin: event.origin,\n error\n });\n\n this.popoverOpened.emit(popoverRef);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatProgressBar, ProgressBarMode } from '@angular/material/progress-bar';\nimport { MatProgressSpinner, ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { NgClass } from '@angular/common';\n\nexport const DEFAULT_LOADING_PROGRESS_DIAMETER = 96;\n\n/**\n * Basic loading progress component.\n */\n@Component({\n selector: 'dbx-loading-progress',\n template: `\n <div class=\"loading-progress-view\">\n @switch (linear()) {\n @case (true) {\n <mat-progress-bar [mode]=\"bmode()\" [color]=\"color()\" [bufferValue]=\"bufferValue()\" [value]=\"value()\" style=\"margin: auto;\"></mat-progress-bar>\n }\n @default {\n <mat-progress-spinner [diameter]=\"diameterSignal()\" [mode]=\"smode()\" [color]=\"color()\" [value]=\"value()\" style=\"margin: auto;\"></mat-progress-spinner>\n }\n }\n @if (text()) {\n <div class=\"dbx-loading-progress-hint dbx-hint dbx-small\" [ngClass]=\"{ 'text-center': !linear() }\">{{ text() }}</div>\n }\n </div>\n `,\n imports: [MatProgressBar, MatProgressSpinner, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxLoadingProgressComponent {\n readonly defaultDiameter = DEFAULT_LOADING_PROGRESS_DIAMETER;\n\n readonly diameter = input<Maybe<number>>(this.defaultDiameter);\n\n readonly text = input<Maybe<string>>();\n readonly linear = input<Maybe<boolean>>();\n readonly mode = input<ProgressBarMode | ProgressSpinnerMode>('indeterminate');\n readonly color = input<ThemePalette | DbxThemeColor>('primary');\n readonly value = input<Maybe<number>>();\n readonly bufferValue = input<Maybe<number>>();\n\n readonly bmode = computed(() => this.mode() as ProgressBarMode);\n readonly smode = computed(() => this.mode() as ProgressSpinnerMode);\n\n readonly diameterSignal = computed(() => this.diameter() || this.defaultDiameter);\n}\n","import { Component, ElementRef, input, computed, ChangeDetectionStrategy, viewChild } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { checkNgContentWrapperHasContent } from '@dereekb/dbx-core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { DbxErrorComponent } from '../error/error.component';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * DbxBasicLoadingComponent loading state.\n */\nexport type LoadingComponentState = 'none' | 'loading' | 'content' | 'error';\n\n/**\n * Basic loading component.\n */\n@Component({\n selector: 'dbx-basic-loading',\n templateUrl: './basic-loading.component.html',\n imports: [DbxErrorComponent, DbxLoadingProgressComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxBasicLoadingComponent {\n readonly customError = viewChild<string, Maybe<ElementRef>>('customError', { read: ElementRef });\n readonly customLoading = viewChild<string, Maybe<ElementRef>>('customLoading', { read: ElementRef });\n\n readonly diameter = input<Maybe<number>>();\n readonly mode = input<ProgressBarMode | ProgressSpinnerMode>('indeterminate');\n readonly color = input<ThemePalette | DbxThemeColor>('primary');\n readonly text = input<Maybe<string>>();\n readonly linear = input<Maybe<boolean>>(false);\n\n readonly show = input<Maybe<boolean>>(true);\n readonly loading = input<Maybe<boolean>>();\n readonly error = input<Maybe<ErrorInput>>();\n\n readonly stateSignal = computed<LoadingComponentState>(() => {\n const loading = this.loading();\n const error = this.error();\n const show = this.show() ?? true; // default to true if not defined\n\n let state: LoadingComponentState;\n\n if (error) {\n state = 'error';\n } else if (loading == null) {\n // If loading has not yet been defined and no error has occured, we're waiting for some input on loading or error.\n state = 'none';\n } else if (loading || !show) {\n state = 'loading';\n } else {\n state = 'content';\n }\n\n return state;\n });\n\n readonly hasNoCustomErrorSignal = computed(() => !checkNgContentWrapperHasContent(this.customError()));\n readonly hasNoCustomLoadingSignal = computed(() => !checkNgContentWrapperHasContent(this.customLoading()));\n}\n","@switch (stateSignal()) {\n @case ('none') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('loading') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('content') {\n <!-- Content -->\n <ng-content></ng-content>\n }\n @case ('error') {\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n }\n}\n\n<ng-template #loadingTemplate>\n @if (hasNoCustomLoadingSignal()) {\n <dbx-loading-progress [mode]=\"mode()\" [color]=\"color()\" [text]=\"text()\" [linear]=\"linear()\" [diameter]=\"diameter()\"></dbx-loading-progress>\n }\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n @if (hasNoCustomErrorSignal()) {\n <dbx-error [error]=\"error()\"></dbx-error>\n }\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n","import { Observable, shareReplay } from 'rxjs';\nimport { Component, ChangeDetectionStrategy, input, computed, signal, Signal } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { LoadingContext, LoadingContextEvent, MaybeObservableOrValue, maybeValueFromObservableOrValue, switchMapMaybeLoadingContextStream } from '@dereekb/rxjs';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\n\n/**\n * State of a DbxLoadingComponent.\n */\nexport interface DbxLoadingComponentState {\n readonly loading: boolean;\n readonly error: Maybe<ErrorInput>;\n}\n\n/**\n * Loading View component that provides content sections for loading, error, and an error action.\n */\n@Component({\n selector: 'dbx-loading',\n template: `\n <dbx-basic-loading [show]=\"show()\" [color]=\"color()\" [text]=\"text()\" [mode]=\"mode()\" [linear]=\"linear()\" [diameter]=\"diameter()\" [error]=\"stateSignal().error\" [loading]=\"stateSignal().loading\">\n <ng-content loading select=\"[loading]\"></ng-content>\n @if (showPaddingSignal()) {\n <div class=\"dbx-loading-linear-done-padding\"></div>\n }\n <ng-content></ng-content>\n <ng-content error select=\"[error]\"></ng-content>\n <ng-content errorAction select=\"[errorAction]\"></ng-content>\n </dbx-basic-loading>\n `,\n imports: [DbxBasicLoadingComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxLoadingComponent {\n private readonly _contextOverrideSignal = signal<MaybeObservableOrValue<LoadingContext>>(undefined);\n\n /**\n * Whether or not to add padding to the linear presentation when linear is complete. This prevents the linear bar from pushing content around.\n */\n readonly padding = input<Maybe<boolean>>(false);\n readonly show = input<Maybe<boolean>>();\n readonly text = input<Maybe<string>>();\n readonly mode = input<ProgressBarMode>('indeterminate');\n readonly color = input<ThemePalette | DbxThemeColor>('primary');\n readonly diameter = input<Maybe<number>>();\n readonly linear = input<Maybe<boolean>>();\n readonly loading = input<Maybe<boolean>>();\n readonly error = input<Maybe<ErrorInput>>();\n\n readonly context = input<MaybeObservableOrValue<LoadingContext>>();\n\n readonly contextSignal: Signal<MaybeObservableOrValue<LoadingContext>> = computed(() => this._contextOverrideSignal() ?? this.context());\n\n readonly contextStream$: Observable<Maybe<LoadingContextEvent>> = toObservable(this.contextSignal).pipe(maybeValueFromObservableOrValue(), switchMapMaybeLoadingContextStream(), shareReplay(1));\n readonly contextStreamSignal = toSignal(this.contextStream$);\n\n readonly stateSignal = computed<DbxLoadingComponentState>(() => {\n const loading = this.loading();\n const error = this.error();\n let loadingState = this.contextStreamSignal() as DbxLoadingComponentState;\n\n if (loadingState == null) {\n loadingState = {\n loading: loading ?? false,\n error: error\n };\n }\n\n return loadingState;\n });\n\n readonly showPaddingSignal = computed(() => {\n const linear = this.linear();\n const padding = this.padding();\n const loading = this.stateSignal()?.loading;\n return linear && padding && !loading;\n });\n\n /**\n * Sets/overrides the context directly.\n *\n * @param context Context source to use as an override.\n */\n setContext(context: MaybeObservableOrValue<LoadingContext>) {\n this._contextOverrideSignal.set(context);\n }\n}\n","import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Directive, OnInit, OnDestroy, inject } from '@angular/core';\nimport { DbxLoadingComponent } from './loading.component';\nimport { loadingStateContext } from '@dereekb/rxjs';\n\n/**\n * Context used for linking a loadingComponent to an ActionContext by providing a LoadingContext.\n */\n@Directive({\n selector: '[dbxActionLoadingContext]',\n standalone: true\n})\nexport class DbxActionLoadingContextDirective implements OnInit, OnDestroy {\n readonly loadingComponent = inject(DbxLoadingComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n private readonly _context = loadingStateContext({ obs: this.source.loadingState$ });\n\n ngOnInit(): void {\n this.loadingComponent.setContext(this._context);\n }\n\n ngOnDestroy(): void {\n this._context.destroy();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { DbxLoadingComponent } from './loading.component';\nimport { DbxActionLoadingContextDirective } from './loading.action.directive';\n\nconst importsAndExports = [DbxLoadingComponent, DbxBasicLoadingComponent, DbxLoadingProgressComponent, DbxActionLoadingContextDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxLoadingModule {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'dbx-spacer, [dbxSpacer]',\n host: {\n class: 'dbx-spacer'\n },\n standalone: true\n})\nexport class DbxSpacerDirective {}\n","import { OnInit, Component, OnDestroy, AfterViewInit, inject, computed, ChangeDetectionStrategy } from '@angular/core';\nimport { filterMaybe, LoadingStateType } from '@dereekb/rxjs';\nimport { shareReplay, switchMap, startWith, Subject, of, filter, map } from 'rxjs';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { MS_IN_SECOND, type Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarActionConfig } from './action.snackbar';\nimport { AbstractSubscriptionDirective, DbxActionDirective, DbxActionValueStreamDirective, DbxActionSuccessHandlerFunction, DbxActionSourceDirective, DbxActionSuccessHandlerDirective } from '@dereekb/dbx-core';\nimport { NgClass } from '@angular/common';\nimport { DbxButtonComponent } from '../../button/button.component';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DbxSpacerDirective } from '../../layout/style/spacer.directive';\n\n/**\n * Component for a snackbar that contains an action.\n */\n@Component({\n templateUrl: './action.snackbar.component.html',\n standalone: true,\n imports: [NgClass, DbxActionSourceDirective, DbxActionSuccessHandlerDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxSpacerDirective, DbxActionDirective, DbxActionValueStreamDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxActionSnackbarComponent extends AbstractSubscriptionDirective implements OnInit, AfterViewInit, OnDestroy {\n readonly snackbarRef = inject(MatSnackBarRef<DbxActionSnackbarComponent>);\n readonly snackbarData = inject<DbxActionSnackbarDisplayConfig>(MAT_SNACK_BAR_DATA);\n\n private readonly _durationTimeout = new Subject<void>();\n private readonly _actionRef = this.snackbarData.action?.reference;\n\n readonly sourceInstance$ = of(this._actionRef).pipe(\n filterMaybe(),\n map((x) => x?.sourceInstance)\n );\n\n readonly complete$ = this.sourceInstance$.pipe(\n switchMap((x) => x.isSuccess$),\n startWith(false),\n shareReplay(1)\n );\n\n readonly loadingStateType$ = this.sourceInstance$.pipe(\n switchMap((x) => x.loadingStateType$),\n startWith(LoadingStateType.IDLE),\n shareReplay(1)\n );\n\n readonly sourceInstanceSignal = toSignal(this.sourceInstance$);\n readonly completeSignal = toSignal(this.complete$);\n readonly loadingStateTypeSignal = toSignal(this.loadingStateType$);\n readonly snackbarStatusClassSignal = computed(() => {\n let classes = 'dbx-action-snackbar-';\n const loadingStateType = this.loadingStateTypeSignal();\n\n switch (loadingStateType) {\n case LoadingStateType.ERROR:\n classes += 'error';\n break;\n case LoadingStateType.SUCCESS:\n classes += 'success';\n break;\n default:\n classes += 'idle';\n break;\n }\n\n return classes;\n });\n\n readonly button: Maybe<string> = this.snackbarData.action?.button ?? this.snackbarData.button;\n readonly action: Maybe<DbxActionSnackbarActionConfig> = this.snackbarData.action;\n readonly hasAction: boolean = Boolean(this.action?.reference);\n readonly message: Maybe<string> = this.snackbarData.message;\n readonly actionConfig: Maybe<DbxActionSnackbarActionConfig> = this.snackbarData.action;\n\n ngOnInit(): void {\n // Subscribe and close if the duration is up and the action state is idle.\n this.sub = this._durationTimeout\n .pipe(\n switchMap(() => this.loadingStateType$),\n filter((x) => x === LoadingStateType.IDLE)\n )\n .subscribe(() => {\n this.dismiss();\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._durationTimeout.complete();\n }\n\n ngAfterViewInit(): void {\n // Responsible for hiding itself if it has an action.\n if (this.hasAction) {\n setTimeout(\n () => {\n this._durationTimeout.next();\n },\n this.snackbarData.action?.duration ?? MS_IN_SECOND * 10\n );\n }\n }\n\n dismissAfterActionCompletes: DbxActionSuccessHandlerFunction = (): void => {\n this.snackbarRef._dismissAfter(MS_IN_SECOND * 3);\n };\n\n dismiss = (): void => {\n this.snackbarRef.dismiss();\n };\n}\n","<div class=\"dbx-action-snackbar\" [ngClass]=\"snackbarStatusClassSignal()\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n @switch (completeSignal()) {\n @case (true) {\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n }\n @case (false) {\n @if (hasAction) {\n <dbx-action dbxActionValue [dbxActionSource]=\"sourceInstanceSignal()\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n }\n }\n</div>\n","import { DbxActionSnackbarEventMakeConfig } from './action.snackbar.service';\n\nexport const DBX_ACTION_SNACKBAR_DEFAULTS: DbxActionSnackbarEventMakeConfig = {\n create: {\n loading: {\n message: 'Creating...'\n },\n success: {\n button: 'Ok',\n message: 'Created'\n },\n error: {\n button: 'X',\n message: 'Create Failed'\n }\n },\n save: {\n loading: {\n message: 'Saving...'\n },\n success: {\n button: 'Ok',\n message: 'Saved'\n },\n error: {\n button: 'X',\n message: 'Save Failed'\n }\n },\n merge: {\n loading: {\n message: 'Merging...'\n },\n success: {\n button: 'Ok',\n message: 'Merged'\n },\n error: {\n button: 'X',\n message: 'Merge Failed'\n }\n },\n delete: {\n loading: {\n message: 'Deleting...'\n },\n success: {\n button: 'Ok',\n message: 'Deleted'\n },\n error: {\n button: 'X',\n message: 'Delete Failed'\n }\n },\n cancel: {\n loading: {\n message: 'Cancelling...'\n },\n success: {\n button: 'Ok',\n message: 'Canceled'\n },\n error: {\n button: 'X',\n message: 'Cancel Failed'\n }\n },\n restore: {\n loading: {\n message: 'Restoring...'\n },\n success: {\n button: 'Ok',\n message: 'Restored'\n },\n error: {\n button: 'X',\n message: 'Restore Failed'\n }\n },\n refresh: {\n loading: {\n message: 'Refreshing...'\n },\n success: {\n button: 'Ok',\n message: 'Refreshed'\n },\n error: {\n button: 'X',\n message: 'Refresh Failed'\n }\n },\n do: {\n loading: {\n message: 'Doing...'\n },\n success: {\n button: 'Ok',\n message: 'Done'\n },\n error: {\n button: 'X',\n message: 'Failed'\n }\n }\n};\n","import { DbxActionContextSourceReference } from '@dereekb/dbx-core';\nimport { Milliseconds, Maybe, GetterOrValue, getValueFromGetter, Getter } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent } from './action.snackbar';\n\nexport interface DbxActionSnackbarGeneratorInput<T = unknown, O = unknown> {\n readonly event: DbxActionSnackbarEvent<O>;\n readonly undo?: Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>;\n}\n\nexport type DbxActionSnackbarGeneratorUndoInput<T = unknown, O = unknown> = Getter<DbxActionContextSourceReference<T, O>> | DbxActionSnackbarGeneratorUndoInputConfig<T, O>;\n\nexport interface DbxActionSnackbarGeneratorUndoInputConfig<T = unknown, O = unknown> {\n readonly duration?: Milliseconds;\n readonly getUndoAction: Getter<DbxActionContextSourceReference<T, O>>;\n}\n\nexport type DbxActionSnackbarDisplayConfigGeneratorFunction = <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\nexport interface DbxMakeActionSnackbarGeneratorConfiguration {\n readonly idle?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n readonly loading?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n readonly success?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n readonly error?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n}\n\nexport interface DbxMakeActionSnackbarGeneratorEventConfiguration extends Omit<DbxActionSnackbarDisplayConfig, 'action'> {\n /**\n * Sets the undo action text. If undefined, will default to 'undo'\n */\n readonly undoButtonText?: string;\n}\n\n/**\n * Creates a DbxActionSnackbarDisplayConfigGeneratorFunction from the input config.\n *\n * @param config\n * @returns\n */\nexport function makeDbxActionSnackbarDisplayConfigGeneratorFunction(config: DbxMakeActionSnackbarGeneratorConfiguration): DbxActionSnackbarDisplayConfigGeneratorFunction {\n return <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => {\n const { event, undo: undoInput } = input;\n const type = event.type;\n const eventConfigGetterOrValue = config[type];\n const eventConfig = eventConfigGetterOrValue && getValueFromGetter(eventConfigGetterOrValue);\n\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (eventConfig) {\n const { undoButtonText } = eventConfig;\n result = {\n button: eventConfig.button,\n message: eventConfig.message,\n snackbar: eventConfig.snackbar\n };\n\n if (undoInput) {\n let reference: DbxActionContextSourceReference<T, O>;\n\n if (typeof undoInput === 'object') {\n reference = undoInput.getUndoAction();\n } else {\n reference = getValueFromGetter(undoInput);\n }\n\n if (!reference) {\n console.error('Expected action source reference was not provided to undo...');\n } else {\n result.action = {\n button: undoButtonText ?? 'Undo',\n reference\n };\n }\n }\n }\n\n return result;\n };\n}\n","import { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DBX_ACTION_SNACKBAR_DEFAULTS } from './action.snackbar.default';\nimport { Injectable, InjectionToken, Type, inject } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { Milliseconds, Maybe, mergeObjects, MS_IN_SECOND } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarGeneratorInput, DbxMakeActionSnackbarGeneratorConfiguration, makeDbxActionSnackbarDisplayConfigGeneratorFunction } from './action.snackbar.generator';\n\nexport const DBX_ACTION_SNACKBAR_SERVICE_CONFIG = new InjectionToken('DbxActionSnackbarServiceConfig');\n\nexport const DEFAULT_SNACKBAR_DIRECTIVE_DURATION = MS_IN_SECOND * 4;\n\nexport interface DbxActionSnackbarEventMakeConfig {\n [key: string]: DbxMakeActionSnackbarGeneratorConfiguration;\n}\n\nexport interface DbxActionSnackbarServiceConfig<C = unknown> {\n readonly componentClass: Type<C>;\n readonly snackbar?: Pick<MatSnackBarConfig, 'horizontalPosition' | 'verticalPosition'>;\n readonly defaultDuration?: Milliseconds;\n readonly defaultUndoDuration?: Milliseconds;\n readonly eventTypeConfigs: DbxActionSnackbarEventMakeConfig;\n}\n\n/**\n * Used for managing/configuring the snackbar default values and pushing snackbar events.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxActionSnackbarService<C = DbxActionSnackbarComponent> {\n readonly matSnackBar = inject(MatSnackBar);\n\n readonly config: DbxActionSnackbarServiceConfig<C> = ((inputConfig) => {\n return {\n ...inputConfig,\n componentClass: inputConfig.componentClass ?? (DbxActionSnackbarComponent as unknown as Type<C>),\n defaultDuration: inputConfig.defaultDuration || DEFAULT_SNACKBAR_DIRECTIVE_DURATION,\n eventTypeConfigs: mergeObjects([DBX_ACTION_SNACKBAR_DEFAULTS, inputConfig.eventTypeConfigs]) as DbxActionSnackbarEventMakeConfig\n };\n })(inject<Partial<DbxActionSnackbarServiceConfig<C>>>(DBX_ACTION_SNACKBAR_SERVICE_CONFIG, { optional: true }) ?? {});\n\n get componentClass(): Type<C> {\n return this.config.componentClass;\n }\n\n get eventTypeConfigs(): DbxActionSnackbarEventMakeConfig {\n return this.config.eventTypeConfigs;\n }\n\n /**\n * Opens a new snackbar given the input configuration.\n *\n * @param config\n * @returns\n */\n openSnackbar<T = unknown, O = unknown>(config: DbxActionSnackbarDisplayConfig<T, O>): MatSnackBarRef<C> {\n const { snackbar: inputSnackbarConfig } = config;\n const { snackbar: defaultSnackbarConfig, defaultDuration } = this.config;\n\n const matSnackbarConfig: MatSnackBarConfig = {\n ...defaultSnackbarConfig,\n ...inputSnackbarConfig,\n data: config\n };\n\n const duration = config.action?.duration ?? matSnackbarConfig.duration ?? defaultDuration ?? DEFAULT_SNACKBAR_DIRECTIVE_DURATION;\n\n if (config.action) {\n // Set the duration on the action\n config.action = {\n ...config.action,\n duration\n };\n } else {\n // The snackbar does not close here. The duration is passed to the component and it will close it.\n matSnackbarConfig.duration = duration;\n }\n\n return this.matSnackBar.openFromComponent(this.componentClass, matSnackbarConfig);\n }\n\n generateDisplayConfig<T = unknown, O = unknown>(type: Maybe<DbxActionSnackbarType>, input: DbxActionSnackbarGeneratorInput<T, O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const configForType = this.eventTypeConfigs[type ?? 'none'];\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (configForType) {\n result = makeDbxActionSnackbarDisplayConfigGeneratorFunction(configForType)(input);\n }\n\n return result;\n }\n}\n","import { Directive, OnInit, inject, input } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarService } from './action.snackbar.service';\nimport { DbxActionSnackbarDisplayConfigGeneratorFunction, DbxActionSnackbarGeneratorInput, DbxActionSnackbarGeneratorUndoInput } from './action.snackbar.generator';\nimport { LoadingState, LoadingStateType, loadingStateType } from '@dereekb/rxjs';\n\n/**\n * Action directive that displays a snackbar when the action context hits a certain state.\n */\n@Directive({\n selector: '[dbxActionSnackbar]',\n standalone: true\n})\nexport class DbxActionSnackbarDirective<T = unknown, O = unknown> extends AbstractSubscriptionDirective implements OnInit {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n readonly dbxActionSnackbarService = inject(DbxActionSnackbarService);\n\n readonly dbxActionSnackbarDefault = input<Maybe<DbxActionSnackbarType>>();\n readonly dbxActionSnackbarUndo = input<Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>>();\n readonly dbxActionSnackbar = input<Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>>();\n\n ngOnInit(): void {\n this.sub = this.source\n .pipeStore((store) => store.loadingState$)\n .subscribe((loadingState: LoadingState<O>) => {\n const event: DbxActionSnackbarEvent<O> = { value: loadingState.value, error: loadingState.error, type: loadingStateType(loadingState) };\n\n const config = this.buildConfigurationForEvent(event);\n\n if (config) {\n this.showSnackbarForConfiguration(config, event);\n }\n });\n }\n\n protected buildConfigurationForEvent(event: DbxActionSnackbarEvent<O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const input: DbxActionSnackbarGeneratorInput<T, O> = {\n event,\n undo: event.type === LoadingStateType.SUCCESS ? this.dbxActionSnackbarUndo() : undefined // only show undo on success.\n };\n\n const snackbarFunction = this.dbxActionSnackbar();\n return snackbarFunction ? snackbarFunction(input) : this.dbxActionSnackbarService.generateDisplayConfig(this.dbxActionSnackbarDefault(), input);\n }\n\n protected showSnackbarForConfiguration(config: DbxActionSnackbarDisplayConfig<T, O>, event: DbxActionSnackbarEvent<O>) {\n this.dbxActionSnackbarService.openSnackbar(config);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxActionSnackbarDirective } from './action.snackbar.directive';\nimport { DbxActionSnackbarComponent } from './action.snackbar.component';\n\nconst importsAndExports = [DbxActionSnackbarComponent, DbxActionSnackbarDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxActionSnackbarModule {}\n","import { Directive, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to an ActionContext.\n */\n@Directive({\n selector: '[dbxActionError]',\n standalone: true\n})\nexport class DbxActionErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly error = inject(DbxErrorComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n ngOnInit(): void {\n this.sub = this.source.error$.subscribe((error) => {\n this.error.setError(error);\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../../interaction/dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmComponent } from '../../interaction/prompt/prompt.confirm.component';\nimport { DbxErrorComponent } from '../../error/error.component';\nimport { DbxActionErrorDirective } from '../../error/error.action.directive';\nimport { DbxButtonComponent } from '../../button/button.component';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\n\nexport type DbxActionTransitionSafetyDialogResult = 'success' | 'stay' | 'discard' | 'none';\n\n/**\n * Dialog that is shown/triggered as part of the DbxActionTransitionSafety\n */\n@Component({\n template: `\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <ng-container>\n <dbx-error dbxActionError></dbx-error>\n <dbx-button text=\"Save Changes\" dbxActionButton></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n </dbx-prompt-confirm>\n `,\n standalone: true,\n imports: [DbxPromptConfirmComponent, DbxErrorComponent, DbxActionErrorDirective, DbxButtonComponent, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDirective implements OnInit {\n readonly config: DbxPromptConfirmConfig = {\n title: 'Unsaved Changes',\n prompt: 'You have unsaved changes on this page.',\n confirmText: 'Stay',\n cancelText: 'Discard Changes'\n };\n\n confirm(): void {\n this.dialogRef.close('stay');\n }\n\n cancel(): void {\n this.dialogRef.close('discard');\n }\n}\n","import { Directive, OnInit, OnDestroy, ViewContainerRef, inject, input, effect } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { HookResult, Transition, TransitionService } from '@uirouter/core';\nimport { Observable, of, race, delay, first, map, mergeMap, tap, BehaviorSubject, combineLatest, firstValueFrom } from 'rxjs';\nimport { DbxActionContextStoreSourceInstance, canTriggerAction, isIdleActionState } from '@dereekb/dbx-core';\nimport { DbxActionTransitionSafetyDialogResult, DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * How to handle transitions.\n *\n * Values:\n * - none: Nothing occurs.\n * - dialog: Always show a dialog and act based on the result.\n * - auto: Try to auto-trigger if in a triggerable state. If it is modified but in a non-triggerable state, show a dialog. Should be used in conjuction with the auto-saver.\n */\nexport type DbxActionTransitionSafetyType = 'none' | 'dialog' | 'auto';\n\n/**\n * Context used for preventing a transition from occuring if the action is not complete or is in a modified state.\n *\n * This can be configured to auto-trigger and wait, or show a dialog and wait for the user's feedback before doing anything.\n *\n * NOTE: This dialog only works for uirouter.\n */\n@Directive({\n selector: '[dbxActionTransitionSafety]',\n standalone: true\n})\nexport class DbxActionTransitionSafetyDirective<T, O> implements OnInit, OnDestroy {\n protected readonly _safetyType = new BehaviorSubject<Maybe<DbxActionTransitionSafetyType>>(undefined);\n\n readonly dbxActionTransitionSafety = input<DbxActionTransitionSafetyType>();\n\n protected readonly transitionService = inject(TransitionService);\n protected readonly viewContainerRef = inject(ViewContainerRef);\n protected readonly dialog = inject(MatDialog);\n\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>);\n readonly safetyType$ = this._safetyType.pipe(map((x) => x ?? 'dialog'));\n\n protected readonly _dbxActionTransitionSafetyUpdateEffect = effect(() => this._safetyType.next(this.dbxActionTransitionSafety()));\n\n private _currentDialogRef?: MatDialogRef<DbxActionUIRouterTransitionSafetyDialogComponent, DbxActionTransitionSafetyDialogResult>;\n private stopWatchingTransition?: () => void;\n\n private checkIsDestroyed(): boolean {\n return !this.stopWatchingTransition;\n }\n\n ngOnInit(): void {\n this.stopWatchingTransition = this.transitionService.onStart({}, (transition: Transition) => {\n return this._handleOnBeforeTransition(transition);\n }) as () => void;\n }\n\n ngOnDestroy(): void {\n if (this.stopWatchingTransition) {\n this.stopWatchingTransition();\n delete this.stopWatchingTransition;\n }\n\n this._closeDialog();\n }\n\n protected _handleOnBeforeTransition(transition: Transition): HookResult {\n type DbxActionTransitionSafetyRaceResult = [boolean | undefined, HookResult | undefined];\n\n return firstValueFrom(\n combineLatest([this.source.isModified$, this.safetyType$]).pipe(\n first(),\n mergeMap(([isModified, safetyType]) => {\n if (isModified) {\n return race([\n // Watch for success to occur. At that point, close everything.\n this.source.success$.pipe(\n first(),\n map(() => [true, undefined] as DbxActionTransitionSafetyRaceResult)\n ),\n this._handleIsModifiedState(transition, safetyType).pipe(\n first(),\n map((x) => [undefined, x] as DbxActionTransitionSafetyRaceResult)\n )\n ]).pipe(\n map(([saveSuccess, handleResult]: DbxActionTransitionSafetyRaceResult) => {\n if (saveSuccess) {\n return true;\n } else {\n return handleResult;\n }\n }),\n tap(() => this._closeDialog()), // Close dialog if it is still open.\n delay(10) // Delay to allow dialog to close before transition.\n );\n } else {\n return of(true);\n }\n })\n )\n ).then((x) => x); // Resolve/Flatten potential promise result.\n }\n\n protected _handleIsModifiedState(transition: Transition, safetyType: DbxActionTransitionSafetyType): Observable<HookResult> {\n let obs: Observable<HookResult>;\n\n // console.log('Safety type: ', safetyType);\n\n switch (safetyType) {\n case 'none':\n obs = of(true); // Do nothing.\n break;\n case 'auto':\n obs = this._autoTrigger(transition);\n break;\n default:\n case 'dialog':\n obs = this._showDialog(transition);\n break;\n }\n\n return obs;\n }\n\n private _autoTrigger(transition: Transition): Observable<HookResult> {\n return this.source.pipeStore((store) =>\n store.state$.pipe(\n delay(20), // Prevent racing with auto-trigger.\n first(),\n mergeMap((state) => {\n if (isIdleActionState(state.actionState)) {\n // If we're in an idle state, get ready to trigger it.\n if (canTriggerAction(state)) {\n store.trigger(); // Try and trigger it.\n }\n }\n\n // Watch for errors. If an error occurs, show the dialog.\n // Success will cause the race in _handleOnBeforeTransition() to trigger and close everything.\n return store.rejected$.pipe(\n first(),\n mergeMap(() => this._showDialog(transition))\n );\n })\n )\n );\n }\n\n private _showDialog(transition: Transition): Observable<HookResult> {\n if (this.checkIsDestroyed()) {\n return of(true);\n }\n\n if (!this._currentDialogRef) {\n this._currentDialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {\n viewContainerRef: this.viewContainerRef\n });\n }\n\n return this._currentDialogRef.afterClosed().pipe(\n first(),\n map((result: DbxActionTransitionSafetyDialogResult | undefined = 'stay') => {\n // Default to Stay if the user clicks outside.\n switch (result) {\n case 'discard':\n case 'success':\n case 'none':\n return true;\n case 'stay':\n return false;\n }\n })\n );\n }\n\n private _closeDialog(): void {\n if (this._currentDialogRef) {\n this._currentDialogRef.close('none');\n }\n\n this._currentDialogRef = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { DbxActionTransitionSafetyDirective as DbxActionUIRouterTransitionSafetyDirective } from './transition.safety.directive';\n\nconst importsAndExports = [DbxActionUIRouterTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent];\n\n/**\n * Provides the DbxActionUIRouterTransitionSafetyDirective.\n *\n * NOTE: Only works with UIRouter\n * \n * @deprecated import the standalone components directly\n * \n * @see DbxActionUIRouterTransitionSafetyDirective\n * @see DbxActionUIRouterTransitionSafetyDialogComponent\n \n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxActionUIRouterTransitionModule {}\n","import { Directive, OnDestroy, OnInit, inject, input } from '@angular/core';\nimport { AbstractPromptConfirmDirective } from '../interaction/prompt/prompt.confirm.directive';\nimport { DbxPromptConfirmConfig } from '../interaction/prompt/prompt.confirm.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\n\n/**\n * DbxActionConfirmDirective configuration.\n */\nexport interface DbxActionConfirmConfig<T = unknown> extends DbxPromptConfirmConfig {\n /**\n * Optionally set the readyValue passed to the instance.\n */\n readonly readyValue?: T;\n}\n\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n *\n * This only works to pass a ready value or reject through, not to work with a button.\n * For button usage, use an appPromptConfirmButton directive.\n */\n@Directive({\n selector: '[dbxActionConfirm]',\n standalone: true\n})\nexport class DbxActionConfirmDirective<T = unknown, O = unknown> extends AbstractPromptConfirmDirective implements OnInit, OnDestroy {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n readonly dbxActionConfirm = input<DbxActionConfirmConfig<T>>();\n\n private readonly _sourceSubscription = new SubscriptionObject();\n\n ngOnInit(): void {\n this._sourceSubscription.subscription = this.source.triggered$.subscribe(() => {\n this.showDialog();\n });\n }\n\n ngOnDestroy(): void {\n this._sourceSubscription.destroy();\n }\n\n protected override _handleDialogResult(result: boolean): boolean {\n if (result) {\n this.source.readyValue(this.dbxActionConfirm()?.readyValue as unknown as T);\n } else {\n this.source.reject(undefined);\n }\n\n return result;\n }\n}\n","import { Directive, HostListener, Input, inject } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\n\nconst DEFAULT_ACTION_KEY_TRIGGER = 'enter';\n\n/**\n * Directive that triggers the action on a specific key up event.\n *\n * Events/Keys to respond to should be lowercase.\n */\n@Directive({\n selector: '[dbxActionKeyTrigger]',\n standalone: true\n})\nexport class DbxActionKeyTriggerDirective<T = unknown, O = unknown> {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n @Input('dbxActionKeyTrigger')\n inputKey: Maybe<string>;\n\n get key(): string {\n return this.inputKey || DEFAULT_ACTION_KEY_TRIGGER;\n }\n\n @HostListener('document:keyup', ['$event'])\n onKeyupHandler(event: KeyboardEvent): void {\n if (event.key && event.key.toLowerCase() === this.key) {\n this.source.trigger();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxActionKeyTriggerDirective } from './key.trigger.directive';\nimport { DbxActionButtonDirective, DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxActionConfirmDirective } from './action.confirm.directive';\n\nconst importsAndExports = [DbxCoreActionModule, DbxActionButtonDirective, DbxActionKeyTriggerDirective, DbxActionConfirmDirective];\n\n/**\n * Provides all base dbxAction-related components from both @dereekb/core and @dereekb/web.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxActionModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ReadableError, ServerError, ServerErrorResponse, UnauthorizedServerErrorResponse, build } from '@dereekb/util';\n\n/**\n * Converts the error response to a POJO.\n */\nexport function convertToPOJOServerErrorResponse(httpError: HttpErrorResponse | object): ServerError {\n const result: ServerErrorResponse | undefined = convertToServerErrorResponse(httpError);\n const pojo: ServerErrorResponse = build({\n base: Object.assign({}, result),\n build: (x) => {\n if (x.data) {\n try {\n const stringy = JSON.stringify(pojo.data);\n x.data = JSON.parse(stringy);\n } catch (e) {\n console.warn('convertToPOJOServerErrorResponse(): Non-serializable Error Data Detected. It is being removed.: ', pojo.data);\n x.data = undefined;\n }\n }\n }\n });\n\n return pojo;\n}\n\n/**\n * Converts an HTTP Error Response to a ServerErrorResponse type.\n *\n * @param error\n * @returns\n */\nexport function convertToServerErrorResponse(error: HttpErrorResponse | object): ServerErrorResponse | undefined {\n let result: ServerErrorResponse | undefined;\n\n if (error instanceof HttpErrorResponse) {\n const { status, error: data }: { status: number; error: ServerError } = error;\n\n const code = data.code;\n const message = data.message ?? error.statusText;\n\n switch (status) {\n case 401:\n result = new UnauthorizedServerErrorResponse({ message, data, code });\n break;\n default:\n result = new ServerErrorResponse({ code, status, data, message });\n break;\n }\n } else if (error) {\n result = new ServerErrorResponse({ message: (error as ReadableError).message, status: 0 });\n }\n\n return result;\n}\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { LoadingContext, MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorComponent } from './error.component';\nimport { distinctUntilChanged, shareReplay, Subscription } from 'rxjs';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Context used for linking an ReadableErrorComponent to a LoadingContext.\n *\n * The error from the context is given to the app error when available.\n */\n@Directive({\n selector: '[dbxLoadingError]',\n standalone: true\n})\nexport class DbxLoadingErrorDirective extends AbstractSubscriptionDirective {\n readonly error = inject(DbxErrorComponent, { host: true });\n readonly context = input.required<MaybeObservableOrValue<LoadingContext>>({ alias: 'dbxLoadingError' });\n readonly context$ = toObservable(this.context).pipe(maybeValueFromObservableOrValue(), distinctUntilChanged(), shareReplay(1));\n readonly contextSignal = toSignal(this.context$);\n\n protected readonly _errorEffect = effect(() => {\n const context = this.contextSignal();\n let subscription: Subscription | undefined;\n\n if (context) {\n subscription = context.stream$.subscribe((x) => this.error.setError(x.error));\n }\n\n this.sub = subscription;\n });\n}\n","import { ChangeDetectionStrategy, Component, inject, OnInit, OnDestroy, signal, effect } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { ErrorInput, MS_IN_MINUTE, makeTimer, toggleTimerRunning } from '@dereekb/util';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxErrorViewComponent } from './error.view.component';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { from } from 'rxjs';\nimport { DbxErrorComponent } from './error.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\n\nexport type DbxErrorSnackbarConfig = Omit<MatSnackBarConfig<any>, 'data' | 'viewContainerRef'>;\n\nexport interface DbxErrorSnackbarData<T extends ErrorInput = ErrorInput> {\n readonly error: T;\n readonly duration?: number;\n}\n\n@Component({\n selector: 'dbx-error-snackbar',\n template: `\n <div class=\"dbx-error-snackbar-content\">\n <dbx-error [error]=\"error\" (popoverOpened)=\"onPopoverOpened($event)\"></dbx-error>\n <div class=\"dbx-spacer\"></div>\n <button class=\"dbx-error-snackbar-content-button\" mat-icon-button aria-label=\"dismiss error\" (click)=\"dismiss()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n `,\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxErrorViewComponent, DbxErrorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorSnackbarComponent implements OnInit, OnDestroy {\n readonly snackBarRef = inject(MatSnackBarRef<DbxErrorSnackbarComponent>);\n readonly data = inject<DbxErrorSnackbarData>(MAT_SNACK_BAR_DATA);\n\n readonly error = this.data.error;\n private readonly _popoverOpen = signal(false);\n\n private readonly _timer = makeTimer(this.data.duration ?? MS_IN_MINUTE, Boolean(this.data.duration));\n private readonly _allowAutoDismiss = this.data.duration != null;\n\n protected readonly _popoverSyncEffect = effect(() => toggleTimerRunning(this._timer, !this._popoverOpen()));\n\n private readonly _popoverAfterClosedSub = new SubscriptionObject();\n private readonly _autoDismissSub = new SubscriptionObject();\n\n ngOnInit(): void {\n if (this._allowAutoDismiss) {\n this._autoDismissSub.subscription = from(this._timer.promise).subscribe(() => this.dismiss());\n } else {\n this._popoverSyncEffect.destroy();\n }\n }\n\n ngOnDestroy(): void {\n this._autoDismissSub.destroy();\n this._timer.destroy();\n }\n\n onPopoverOpened(popover: NgPopoverRef) {\n this._popoverOpen.set(true);\n this._popoverAfterClosedSub.subscription = popover.afterClosed$.subscribe(() => this._popoverOpen.set(false));\n }\n\n dismiss() {\n this.snackBarRef.dismiss();\n }\n\n static showErrorSnackbar(matSnackbar: MatSnackBar, error: ErrorInput, config?: DbxErrorSnackbarConfig) {\n matSnackbar.openFromComponent(DbxErrorSnackbarComponent, {\n ...config,\n duration: undefined,\n panelClass: [...(config?.panelClass ?? []), 'dbx-error-snackbar'],\n data: {\n error,\n duration: config?.duration\n }\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { DbxErrorSnackbarComponent, DbxErrorSnackbarConfig } from './error.snackbar.component';\n\nexport const DEFAULT_DBX_ERROR_SNACKBAR_CONFIG: DbxErrorSnackbarConfig = {\n politeness: 'polite',\n announcementMessage: 'An error has occurred',\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n};\n\n/**\n * Service used to show errors in the snackbar.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorSnackbarService {\n readonly matSnackbar = inject(MatSnackBar);\n\n private _defaultConfig: DbxErrorSnackbarConfig = DEFAULT_DBX_ERROR_SNACKBAR_CONFIG;\n\n get defaultConfig() {\n return this._defaultConfig;\n }\n\n setDefaultConfig(defaultConfig: DbxErrorSnackbarConfig) {\n this._defaultConfig = defaultConfig;\n }\n\n showSnackbarError(error: ErrorInput, inputConfig?: Maybe<DbxErrorSnackbarConfig>) {\n const config = {\n ...inputConfig,\n ...this._defaultConfig\n };\n\n return DbxErrorSnackbarComponent.showErrorSnackbar(this.matSnackbar, error, config);\n }\n}\n","import { Directive, Input, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorSnackbarService } from './error.snackbar.service';\nimport { Maybe, Milliseconds, toReadableError } from '@dereekb/util';\nimport { DbxErrorSnackbarConfig } from './error.snackbar.component';\nimport { filterMaybe } from '@dereekb/rxjs';\n\n/**\n * Context used for displaying an error from an ActionContext a snackbar when an ReadableErrorComponent\n */\n@Directive({\n selector: '[dbxActionSnackbarError]',\n standalone: true\n})\nexport class DbxActionSnackbarErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly dbxErrorSnackbarService = inject(DbxErrorSnackbarService);\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n @Input('dbxActionSnackbarError')\n config?: Maybe<DbxErrorSnackbarConfig> | Milliseconds | '';\n\n ngOnInit(): void {\n this.sub = this.source.error$.pipe(filterMaybe()).subscribe((inputError) => {\n const error = toReadableError(inputError);\n const config = this.config ? (typeof this.config === 'number' ? { duration: this.config } : this.config) : undefined;\n this.dbxErrorSnackbarService.showSnackbarError(error, config);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxErrorComponent } from './error.component';\nimport { DbxLoadingErrorDirective } from './error.loading.directive';\nimport { DbxActionErrorDirective } from './error.action.directive';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxErrorDetailsComponent } from './error.details.component';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\nimport { DbxErrorViewComponent } from './error.view.component';\nimport { DbxErrorSnackbarComponent } from './error.snackbar.component';\nimport { DbxActionSnackbarErrorDirective } from './error.snackbar.action.directive';\n\nconst declarations = [\n //\n DbxErrorComponent,\n DbxLoadingErrorDirective,\n DbxActionErrorDirective,\n DbxActionSnackbarErrorDirective,\n DbxErrorViewComponent,\n DbxErrorSnackbarComponent,\n DbxErrorPopoverComponent,\n DbxErrorDetailsComponent,\n DbxErrorWidgetViewComponent,\n DbxErrorDefaultErrorWidgetComponent\n];\n\n/**\n * @deprecated all components are now standalone\n */\n@NgModule({\n imports: declarations,\n exports: declarations\n})\nexport class DbxReadableErrorModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { convertToPOJOServerErrorResponse } from './error.api';\nimport { catchError, MonoTypeOperatorFunction, of } from 'rxjs';\nimport { ActionCreator } from '@ngrx/store/src/models';\nimport { Action } from '@ngrx/store';\nimport { ServerError } from '@dereekb/util';\n\nexport interface ServerErrorParams {\n error: ServerError;\n}\n\n/**\n * Converts the error response to ServerErrorParams.\n */\nexport function convertServerErrorParams(httpError: HttpErrorResponse | object): ServerErrorParams {\n const error: ServerError = convertToPOJOServerErrorResponse(httpError);\n return { error };\n}\n\n/**\n * Catches error server params and feeds them to an action that takes ServerErrorParams as a prop.\n */\nexport function catchErrorServerParams<E extends ServerErrorParams, T extends string>(action: ActionCreator<T, (props: E) => E & Action<T>>, mapError: (error: ServerErrorParams) => E = (error) => error as E): MonoTypeOperatorFunction<E & Action<T>> {\n return catchError((error: HttpErrorResponse | object) => {\n const serverErrorParams = convertServerErrorParams(error);\n const mappedError: E = mapError(serverErrorParams);\n const act = action(mappedError);\n return of(act);\n });\n}\n","import { createAction } from '@ngrx/store';\n\nexport const dbxModelResetState = createAction('[App/Model] Reset State');\n","import { Maybe, ModelKeyTypeNamePair } from '@dereekb/util';\nimport { createAction, props } from '@ngrx/store';\n\nexport interface DbxModelObjectViewedParams {\n readonly modelKeyTypeNamePair: ModelKeyTypeNamePair;\n readonly context?: Maybe<string>;\n}\n\nexport interface DbxModelGoToObjectViewParams {\n readonly modelKeyTypeNamePair: ModelKeyTypeNamePair;\n}\n\nexport const emitObjectViewEvent = createAction('[App/Model/Type] Object Viewed', props<DbxModelObjectViewedParams>());\n","import { createReducer, on } from '@ngrx/store';\n\nimport { DbxModelStateActions } from '../actions';\n\nexport interface DbxModelModuleStateConfiguration {}\n\nexport const stateFeatureKey = 'model.module.config';\n\nexport const initialState: DbxModelModuleStateConfiguration = {\n types: {}\n};\n\nexport const reducer = createReducer(\n initialState,\n on(DbxModelStateActions.dbxModelResetState, () => initialState)\n);\n","import { Action, combineReducers, createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromObjectModuleConfig from './model.module.config';\nimport { DbxModelModuleStateConfiguration } from './model.module.config';\n\nexport const featureKey = 'app.model';\n\nexport interface DbxModelState {\n [fromObjectModuleConfig.stateFeatureKey]: DbxModelModuleStateConfiguration;\n}\n\nexport interface State {\n [featureKey]: DbxModelState;\n}\n\nexport function reducers(state: DbxModelState | undefined, action: Action) {\n return combineReducers({\n [fromObjectModuleConfig.stateFeatureKey]: fromObjectModuleConfig.reducer\n })(state, action);\n}\n\n// MARK: Context\nexport const selectDbxModelFeature = createFeatureSelector<State, DbxModelState>(featureKey);\n\n// MARK: Module Config\nexport const selectDbxModelFeatureObjectModuleConfig = createSelector(selectDbxModelFeature, (state: DbxModelState) => state[fromObjectModuleConfig.stateFeatureKey]);\n","import { Injectable, InjectionToken, OnDestroy, inject } from '@angular/core';\nimport { unixTimeNumberForNow } from '@dereekb/util';\nimport { StorageAccessor } from '@dereekb/dbx-core';\nimport { encodeModelKeyTypePair, ModelRelationUtility, type Maybe } from '@dereekb/util';\nimport { map, mergeMap, catchError, Observable, of, Subject, tap } from 'rxjs';\nimport { DbxModelViewTrackerEventSet, DbxModelViewTrackerEvent } from './model.tracker';\n\n/**\n * Token that corresponds to a StorageAccessor<DbxModelViewTrackerEventSet> that is used by DbxModelViewTrackerStorage.\n */\nexport const DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN = new InjectionToken('DbxModelViewTrackerStorageAccessor');\n\n/**\n * Used for managing DbxModelViewTrackerEvent storage.\n */\n@Injectable()\nexport class DbxModelViewTrackerStorage implements OnDestroy {\n static readonly OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY = 'dbxModelViewTrackerEvents';\n static readonly DEFAULT_MAX_EVENTS = 100;\n\n readonly storageAccessor = inject<StorageAccessor<DbxModelViewTrackerEventSet>>(DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN);\n\n private readonly _newEvent = new Subject<DbxModelViewTrackerEvent>();\n\n readonly newEvent$ = this._newEvent.asObservable();\n\n ngOnDestroy(): void {\n this._newEvent.complete();\n }\n\n protected get storageKey(): string {\n return DbxModelViewTrackerStorage.OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY;\n }\n\n protected get maxEventsToKeep(): number {\n return DbxModelViewTrackerStorage.DEFAULT_MAX_EVENTS;\n }\n\n addTrackerEvent(event: DbxModelViewTrackerEvent): Observable<void> {\n const storageKey = this.getStorageKeyForFolder(event.folder);\n return this._getEventSetForStorageKey(storageKey).pipe(\n mergeMap((set) => {\n const nextEvent: DbxModelViewTrackerEvent = {\n d: event.d ?? unixTimeNumberForNow(),\n c: event.c,\n m: event.m\n };\n\n const e = ModelRelationUtility.removeDuplicates(set.e, (x) => encodeModelKeyTypePair(x.m), [encodeModelKeyTypePair(nextEvent.m)]);\n e.push(nextEvent);\n e.sort((a, b) => (b.d ?? 0) - (a.d ?? 0));\n\n return this.storageAccessor\n .set(storageKey, {\n l: Math.max(set.l ?? 0, nextEvent.d as number),\n e: e.slice(0, this.maxEventsToKeep)\n })\n .pipe(tap(() => this._newEvent.next(nextEvent)));\n })\n );\n }\n\n getAllEvents(folder?: Maybe<string>): Observable<DbxModelViewTrackerEvent[]> {\n return this.getEventSet(folder).pipe(map((x) => x.e));\n }\n\n getEventSet(folder?: Maybe<string>): Observable<DbxModelViewTrackerEventSet> {\n const storageKey = this.getStorageKeyForFolder(folder);\n return this._getEventSetForStorageKey(storageKey);\n }\n\n private _getEventSetForStorageKey(storageKey: string): Observable<DbxModelViewTrackerEventSet> {\n return this.storageAccessor.get(storageKey).pipe(\n catchError((e) => {\n return of(undefined);\n }),\n map((result) => result ?? { e: [], l: 0 })\n );\n }\n\n getStorageKeyForFolder(folder?: Maybe<string>): string {\n const storageKey = `${this.storageKey}_${folder ?? 'default'}`;\n return storageKey;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Maybe, ModelKeyTypeNamePair } from '@dereekb/util';\nimport { first, Observable } from 'rxjs';\nimport { DbxModelViewTrackerEvent, DbxModelViewTrackerEventSet, ModelViewContext } from './model.tracker';\nimport { DbxModelViewTrackerStorage } from './model.tracker.view.storage';\n\n/**\n * Service used for tracking/logging different kinds of events on objects.\n */\n@Injectable()\nexport class DbxModelTrackerService {\n private readonly _viewTrackerStorage = inject(DbxModelViewTrackerStorage);\n\n private _defaultFolder: Maybe<string>;\n\n readonly newEvent$ = this._viewTrackerStorage.newEvent$;\n\n get defaultFolder(): Maybe<string> {\n return this._defaultFolder;\n }\n\n set defaultFolder(folder: Maybe<string>) {\n this._defaultFolder = folder ?? undefined;\n }\n\n // MARK: View\n trackViewedObject(modelKeyTypeNamePair: ModelKeyTypeNamePair, context?: Maybe<ModelViewContext>, folder: Maybe<string> = this._defaultFolder): void {\n this._viewTrackerStorage\n .addTrackerEvent({\n m: modelKeyTypeNamePair,\n c: context,\n folder\n })\n .pipe(first())\n .subscribe();\n }\n\n getAllViewEvents(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEvent[]> {\n return this._viewTrackerStorage.getAllEvents(folder);\n }\n\n getViewEventSet(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEventSet> {\n return this._viewTrackerStorage.getEventSet(folder);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { distinctUntilChanged, filter, map, tap } from 'rxjs';\nimport { onDbxAppAuth } from '@dereekb/dbx-core';\nimport { DbxModelTrackerService } from '../../model.tracker.service';\nimport { onDbxModel } from '..';\n\n/**\n * Used to pass Object Store events to the ObjectTracker.\n */\n@Injectable()\nexport class DbxModelTrackerEffects {\n private readonly actions$ = inject(Actions);\n private readonly dbxModelTrackerService = inject(DbxModelTrackerService);\n\n readonly trackModelViewed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent),\n distinctUntilChanged((a, b) => a?.modelKeyTypeNamePair.key === b?.modelKeyTypeNamePair.key && a?.type === b?.type && a?.context === b?.context),\n tap((x) => {\n this.dbxModelTrackerService.trackViewedObject(x.modelKeyTypeNamePair, x.context);\n })\n ),\n { dispatch: false }\n );\n\n readonly changeTrackerFolderToMatchAuth$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxAppAuth.DbxAppAuthUserActions.setUserIdentifier),\n map((x) => x.id),\n filter((x) => Boolean(x)),\n distinctUntilChanged(),\n tap((accountId) => {\n this.dbxModelTrackerService.defaultFolder = accountId;\n })\n ),\n { dispatch: false }\n );\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { onDbxModel } from './state';\nimport { DbxModelObjectViewedParams } from './state/actions/model.actions';\nimport { DbxModelFullState } from './state/state';\n\n@Injectable()\nexport class DbxModelObjectStateService {\n readonly store = inject(Store<DbxModelFullState>);\n\n /**\n * Emit a model viewed event.\n */\n emitModelViewEvent({ modelKeyTypeNamePair, context }: DbxModelObjectViewedParams): void {\n this.store.dispatch(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent({ modelKeyTypeNamePair, context }));\n }\n}\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { SimpleStorageAccessorFactory, StorageAccessor } from '@dereekb/dbx-core';\nimport { provideEffects } from '@ngrx/effects';\nimport { provideState } from '@ngrx/store';\nimport { DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelTrackerService } from './model.tracker.service';\nimport { DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN, DbxModelViewTrackerStorage } from './model.tracker.view.storage';\nimport { fromDbxModel } from './state';\nimport { DbxModelTrackerEffects } from './state/effects/tracker.effects';\nimport { DbxModelObjectStateService } from './model.state.service';\n\n/**\n * Factory function for creating a StorageAccessor for the model view tracker.\n */\nexport function defaultDbxModelViewTrackerStorageAccessorFactory(storageAccessorFactory: SimpleStorageAccessorFactory): StorageAccessor<DbxModelViewTrackerEventSet> {\n const accessor = storageAccessorFactory.createStorageAccessor<DbxModelViewTrackerEventSet>({\n prefix: 'mtvs'\n });\n\n return accessor;\n}\n\n/**\n * Creates EnvironmentProviders for providing DbxModelTrackerService, DbxModelObjectStateService and sets up the NgRx store for DbxModelTrackerEffects.\n *\n * @returns EnvironmentProviders\n */\nexport function provideDbxModelService(): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n // Storage accessor\n {\n provide: DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN,\n useFactory: defaultDbxModelViewTrackerStorageAccessorFactory,\n deps: [SimpleStorageAccessorFactory]\n },\n // Service\n DbxModelViewTrackerStorage,\n DbxModelTrackerService,\n DbxModelObjectStateService,\n // NgRx\n provideEffects([DbxModelTrackerEffects]),\n provideState(fromDbxModel.featureKey, fromDbxModel.reducers)\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { UnixDateTimeNumber, Maybe, ModelKey, ModelKeyTypeNamePair } from '@dereekb/util';\n\n/**\n * String context in which a model was viewed.\n */\nexport type ModelViewContext = string;\n\nexport interface DbxModelViewTrackerEvent {\n /**\n * Event time\n */\n readonly d?: UnixDateTimeNumber;\n /**\n * Context\n */\n readonly c?: Maybe<ModelViewContext>;\n /**\n * Model info\n */\n readonly m: ModelKeyTypeNamePair;\n readonly folder?: Maybe<string>;\n}\n\nexport interface DbxModelViewTrackerEventSet {\n /**\n * The latest date/time number.\n */\n readonly l: UnixDateTimeNumber;\n /**\n * List of events.\n */\n readonly e: DbxModelViewTrackerEvent[];\n}\n\nexport function allDbxModelViewTrackerEventSetModelKeys(eventSet: DbxModelViewTrackerEventSet): ModelKey[] {\n return allDbxModelViewTrackerEventModelKeys(eventSet.e);\n}\n\nexport function allDbxModelViewTrackerEventModelKeys(events: DbxModelViewTrackerEvent[]): ModelKey[] {\n return events.map((y) => y.m.key);\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { capitalCase } from 'change-case-all';\nimport { map, shareReplay, Observable, BehaviorSubject } from 'rxjs';\nimport { ArrayOrValue, Building, ModelTypeString, useIterableOrValue } from '@dereekb/util';\nimport { DbxModelTypeConfiguration, DbxModelTypeConfigurationMap } from './model.types';\n\nexport interface DbxModelTypeInfo extends Omit<DbxModelTypeConfiguration, 'srefFactory'> {\n /**\n * Whether or not a response is expected for segues\n * to a view for objects of this type.\n */\n readonly canSegueToView: boolean;\n}\n\nexport interface DbxModelTypesMap<I extends DbxModelTypeInfo> {\n readonly [type: string]: I;\n}\n\nexport interface DbxModelIconsMap {\n readonly [type: string]: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTypesService<I extends DbxModelTypeInfo = DbxModelTypeInfo> {\n static readonly DEFAULT_ICON = 'help_outline';\n\n readonly injector = inject(Injector);\n\n private readonly _configs = new BehaviorSubject<DbxModelTypeConfigurationMap>({});\n\n // MARK: Configuration\n addTypeConfigs(configs: ArrayOrValue<DbxModelTypeConfiguration>) {\n const types = {\n ...this._configs.value\n };\n\n useIterableOrValue(configs, (config) => {\n types[config.modelType] = config;\n });\n\n this._configs.next(types);\n }\n\n addTypeConfigsMap(configs: DbxModelTypeConfigurationMap) {\n const newConfig: DbxModelTypeConfigurationMap = {\n ...this._configs.value,\n ...configs\n };\n\n this._configs.next(newConfig);\n }\n\n // MARK: Accessors\n readonly typesMap$ = this._configs.pipe(\n map((types) => {\n const typesMap: Building<DbxModelTypesMap<I>> = {};\n\n Object.keys(types).forEach((type) => {\n const config = types[type];\n\n const label = config.label || capitalCase(type);\n const analyticsName = config.analyticsName || label;\n const sref = config.srefBuilder ? config.srefBuilder(this.injector) : config.sref;\n\n typesMap[type] = {\n ...config,\n sref,\n label,\n analyticsName,\n icon: config.icon ?? DbxModelTypesService.DEFAULT_ICON,\n canSegueToView: Boolean(sref)\n } as I;\n });\n\n return typesMap as DbxModelTypesMap<I>;\n }),\n shareReplay(1)\n );\n\n readonly iconMap$: Observable<DbxModelIconsMap> = this.typesMap$.pipe(\n map((types) => {\n const iconsMap: Building<DbxModelIconsMap> = {};\n\n Object.keys(types).forEach((type) => {\n iconsMap[type] = types[type].icon;\n });\n\n return iconsMap as DbxModelIconsMap;\n }),\n shareReplay(1)\n );\n\n iconForType(type: ModelTypeString): Observable<string> {\n return this.iconMap$.pipe(map((x) => x[type]));\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, computed, inject, input, viewChild } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { WorkUsingObservable, LoadingState, loadingStateContext, successResult, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { MS_IN_SECOND, type Maybe } from '@dereekb/util';\nimport { Observable, combineLatest, distinctUntilChanged, first, map, of, shareReplay, switchMap, tap } from 'rxjs';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { DownloadTextContent } from './download.text';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { AbstractSubscriptionDirective, DbxActionButtonDirective } from '@dereekb/dbx-core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxLoadingComponent } from '../../../loading/loading.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { DbxButtonComponent } from '../../../button/button.component';\nimport { DbxActionModule } from '../../../action/action.module';\nimport { DbxButtonSpacerDirective } from '../../../button/button.spacer.directive';\n\n/**\n * DbxStructureDirective used specifically on the body of the app.\n */\n@Component({\n templateUrl: './download.text.component.html',\n selector: 'dbx-download-text-view',\n standalone: true,\n imports: [NgTemplateOutlet, DbxLoadingComponent, DbxActionModule, DbxActionButtonDirective, DbxButtonComponent, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDownloadTextViewComponent extends AbstractSubscriptionDirective {\n private readonly _clipboard = inject(Clipboard);\n private readonly _matSnackbar = inject(MatSnackBar);\n private readonly _sanitizer = inject(DomSanitizer);\n\n readonly downloadButton = viewChild<string, Maybe<ElementRef>>('downloadButton', { read: ElementRef });\n\n readonly loadingText = input<Maybe<string>>(undefined);\n readonly linear = input<Maybe<boolean>>(undefined);\n readonly showTitle = input<boolean>(true);\n readonly showPreview = input<boolean>(true);\n\n readonly content = input<Maybe<DownloadTextContent>>(undefined);\n readonly contentState = input<Maybe<LoadingState<DownloadTextContent>>>(undefined);\n\n readonly contentLoadingStateSignal = computed(() => {\n const content = this.content();\n const contentState = this.contentState();\n\n let result: Maybe<LoadingState<DownloadTextContent>>;\n\n if (contentState) {\n result = contentState;\n } else if (content) {\n result = successResult(content);\n }\n\n return result;\n });\n\n readonly contentLoadingState$ = toObservable(this.contentLoadingStateSignal);\n readonly content$: Observable<Maybe<DownloadTextContent>> = this.contentLoadingState$.pipe(\n switchMap((x) => {\n if (x) {\n return of(x).pipe(valueFromFinishedLoadingState());\n } else {\n return of(undefined);\n }\n })\n );\n\n readonly contentData$ = this.content$.pipe(map((x) => x?.content));\n\n readonly fileName$ = this.content$.pipe(\n map((x) => x?.name ?? 'File'),\n shareReplay(1)\n );\n\n readonly fileUrl$: Observable<Maybe<SafeResourceUrl>> = this.content$.pipe(\n map((content) => {\n let fileUrl: Maybe<SafeResourceUrl> = undefined;\n\n if (content) {\n const blob = new Blob([content.content], { type: content.mimeType ?? 'application/octet-stream' });\n fileUrl = this._sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));\n }\n\n return fileUrl;\n }),\n shareReplay(1)\n );\n\n readonly downloadReady$ = combineLatest([toObservable(this.downloadButton), this.fileName$, this.fileUrl$]).pipe(\n map(([button, name, url]) => Boolean(button && name && url)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly contentSignal = toSignal(this.content$);\n readonly contentDataSignal = toSignal(this.contentData$);\n\n readonly fileNameSignal = toSignal(this.fileName$);\n readonly fileUrlSignal = toSignal(this.fileUrl$);\n readonly downloadReadySignal = toSignal(this.downloadReady$);\n\n readonly context = loadingStateContext({ obs: this.contentLoadingState$ });\n\n readonly handleCopyToClipboard: WorkUsingObservable = () => {\n return this.content$.pipe(\n first(),\n switchMap((downloadTextContent: Maybe<DownloadTextContent>) => {\n if (downloadTextContent) {\n return new Promise<boolean>((resolve, reject) => {\n const pending = this._clipboard.beginCopy(downloadTextContent.content);\n\n let secondsRemainingForCopy = 20; // attempt to copy for up to 20 seconds\n\n const attempt = () => {\n const copyIsFinished = pending.copy();\n\n if (!copyIsFinished && --secondsRemainingForCopy) {\n setTimeout(attempt, MS_IN_SECOND);\n } else {\n // Remember to destroy when you're done!\n pending.destroy();\n\n if (copyIsFinished) {\n resolve(true);\n } else {\n reject(false);\n }\n }\n };\n\n attempt();\n });\n } else {\n return of(false);\n }\n }),\n tap((success) => {\n if (success) {\n this._matSnackbar.open('Copied to clipboard', undefined, { duration: 3 * MS_IN_SECOND });\n } else {\n this._matSnackbar.open('Content failed to copy...', undefined, { duration: 3 * MS_IN_SECOND });\n }\n })\n );\n };\n}\n","<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear()\" [text]=\"loadingText()\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <div class=\"dbx-download-text-preview dbx-json dbx-content-pit dbx-content-pit-scrollable dbx-mb3\">{{ contentDataSignal() }}</div>\n }\n <div class=\"dbx-download-text-view-actions\">\n <dbx-button dbxAction dbxActionValue dbxActionLogger [raised]=\"true\" [dbxActionHandler]=\"handleCopyToClipboard\" icon=\"content_copy\" dbxActionButton text=\"Copy To Clipboard\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <a #downloadButton [href]=\"fileUrlSignal()\" [attr.download]=\"fileNameSignal()\"><dbx-button icon=\"download\" text=\"Download\" [raised]=\"true\" [working]=\"!downloadReadySignal()\" [disabled]=\"!downloadReadySignal()\"></dbx-button></a>\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DbxDownloadTextViewComponent } from './download.text.component';\n\nconst importsAndExports = [DbxDownloadTextViewComponent];\n\n/**\n * @deprecated import DbxDownloadtextVie\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxDownloadTextModule {}\n","import { ChangeDetectorRef, Directive, ElementRef, Injector, inject } from '@angular/core';\n\n/**\n * Used to reference a cdRef, injector, and element at the given element.\n *\n * Generally used for child views to reference a well-placed parent view.\n */\n@Directive({\n selector: '[dbxStructure]',\n standalone: true\n})\nexport class DbxStructureDirective {\n readonly injector = inject(Injector);\n readonly element = inject(ElementRef);\n\n /**\n * @deprecated do not use cdRef here anymore. Rely on signals instead. Will be removed in the future.\n */\n readonly cdRef = inject(ChangeDetectorRef);\n}\n","import { Directive } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\n\n/**\n * DbxStructureDirective used specifically on the body of the app.\n */\n@Directive({\n selector: 'dbxBody,[dbxBody]',\n providers: [\n {\n provide: DbxStructureDirective,\n useExisting: DbxBodyDirective\n }\n ],\n standalone: true\n})\nexport class DbxBodyDirective extends DbxStructureDirective {}\n","import { NgModule } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\nimport { DbxBodyDirective } from './structure.body.directive';\n\nconst importsAndExports = [DbxBodyDirective, DbxStructureDirective];\n\n/**\n * @deprecated Use DbxStructureDirective and DbxBodyDirective directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxStructureModule {}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeArrayValues, mapIterable } from '@dereekb/util';\nimport { DbxWidgetType } from './widget';\n\nexport interface DbxWidgetEntry {\n /**\n * Widget type to respond to.\n */\n readonly type: DbxWidgetType;\n /**\n * Widget component class to use.\n */\n readonly componentClass: Type<unknown>;\n}\n\n/**\n * Service used to register widgets.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxWidgetService {\n private _entries = new Map<DbxWidgetType, DbxWidgetEntry>();\n\n /**\n * Used to register an entry. If an entry with the same type is already registered, this will override it by default.\n *\n * @param entry\n * @param override\n */\n register(entry: DbxWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.type)) {\n this._entries.set(entry.type, entry);\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getWidgetIdentifiers(): DbxWidgetType[] {\n return Array.from(this._entries.keys());\n }\n\n getWidgetEntry(type: DbxWidgetType): Maybe<DbxWidgetEntry> {\n return this._entries.get(type);\n }\n\n getWidgetEntries(types: Iterable<DbxWidgetType>): DbxWidgetEntry[] {\n return filterMaybeArrayValues(mapIterable(types ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxWidgetViewComponentConfig } from './widget';\nimport { DbxWidgetService } from './widget.service';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * Used to display a corresponding widget based on the input data.\n */\n@Component({\n selector: 'dbx-widget-view',\n template: `\n @switch (widgetConfigExistsSignal()) {\n @case (true) {\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"unknown\"></ng-container>\n }\n }\n <ng-template #widget>\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </ng-template>\n <ng-template #unknown>\n <ng-content empty select=\"[unknownWidget]\"></ng-content>\n </ng-template>\n `,\n host: {\n class: 'dbx-widget-view'\n },\n standalone: true,\n imports: [DbxInjectionComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxWidgetViewComponent {\n readonly dbxWidgetService = inject(DbxWidgetService);\n\n readonly config = input<Maybe<DbxWidgetViewComponentConfig>>();\n\n readonly configSignal = computed(() => {\n const pair = this.config();\n let config: Maybe<DbxInjectionComponentConfig> = undefined;\n\n if (pair != null) {\n let entry = this.dbxWidgetService.getWidgetEntry(pair.type);\n\n if (!entry && pair.defaultType) {\n entry = this.dbxWidgetService.getWidgetEntry(pair.defaultType);\n }\n\n if (entry) {\n config = {\n componentClass: entry.componentClass,\n data: pair.data\n };\n } else {\n config = null;\n }\n }\n\n return config;\n });\n\n readonly widgetConfigExistsSignal = computed(() => this.configSignal() !== null);\n}\n","import { Directive, inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\n\n@Directive()\nexport abstract class AbstractDbxWidgetComponent<T> {\n readonly data = inject<T>(DBX_INJECTION_COMPONENT_DATA);\n}\n","import { forwardRef, InjectionToken, Provider, StaticProvider, Type } from '@angular/core';\nimport { ClickableAnchor, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { map, Observable, of } from 'rxjs';\nimport { DecisionFunction, type Maybe } from '@dereekb/util';\n\nexport const DBX_VALUE_LIST_VIEW_ITEM = new InjectionToken<unknown>('DbxValueListViewItem');\n\nexport interface DbxValueListItem<T, M = unknown> {\n itemValue: T;\n /**\n * Arbitrary meta details available to the meta component.\n */\n meta?: M;\n icon?: string;\n disabled?: boolean;\n rippleDisabled?: boolean;\n selected?: boolean;\n anchor?: Maybe<ClickableAnchor>;\n}\n\nexport type DbxValueListItemDecisionFunction<T> = DecisionFunction<DbxValueListItem<T>>;\n\n/**\n * Convenience function for mapping a DecisionFunction for a value to a DecisionFunction for a DbxValueListItem with the same value type.\n * @param decisionFunction\n * @returns\n */\nexport function dbxValueListItemDecisionFunction<T>(decisionFunction: DecisionFunction<T>): DbxValueListItemDecisionFunction<T> {\n return (item) => decisionFunction(item.itemValue);\n}\n\n/**\n * Special type used with values that contain all the items of DbxValueListItem internally.\n */\nexport type DbxValueAsListItem<T> = T & Omit<DbxValueListItem<DbxValueListItem<T>>, 'itemValue'>;\n\nexport interface AbstractDbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxInjectionComponentConfig<V> {\n mapValuesToItemValues?(values: T[]): Observable<I[]>;\n /**\n * @see DbxListViewMetaIconComponent.metaConfig()\n */\n metaConfig?: DbxInjectionComponentConfig<any>;\n}\n\nexport const DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES = <T, I extends DbxValueListItem<T>>(itemValues: T[]) => of(itemValues.map((itemValue) => ({ itemValue })) as I[]);\n\nexport type DbxValueListItemConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> = I & {\n config: DbxInjectionComponentConfig<V>;\n metaConfig?: DbxInjectionComponentConfig<any>;\n};\n\nexport function mapValuesToValuesListItemConfigObs<T, I extends DbxValueListItem<T>, V = unknown>(listViewConfig: AbstractDbxValueListViewConfig<T, I, V>, itemValues: T[]): Observable<DbxValueListItemConfig<T, I, V>[]> {\n const makeObs = listViewConfig.mapValuesToItemValues ?? DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES;\n return makeObs(itemValues).pipe(\n map((listItems: I[]) => {\n const listItemConfigs: DbxValueListItemConfig<T, I, V>[] = addConfigToValueListItems<T, I, V>(listViewConfig, listItems);\n return listItemConfigs;\n })\n );\n}\n\n/**\n * Adds config to the input value list items.\n *\n * @param listViewConfig\n * @param listItems\n * @returns\n */\nexport function addConfigToValueListItems<T, I extends DbxValueListItem<T>, V = unknown>(listViewConfig: AbstractDbxValueListViewConfig<T, I, V>, listItems: I[]): DbxValueListItemConfig<T, I, V>[] {\n const itemConfigs: DbxValueListItemConfig<T, I, V>[] = listItems.map((listItem: I) => {\n const anchor = listItem.anchor;\n\n listItem.disabled = listItem.disabled || anchor?.disabled;\n (listItem as DbxValueListItemConfig<T, I, V>).config = Object.assign({}, listViewConfig, {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n },\n ...(listViewConfig.providers ?? [])\n ] as StaticProvider[]\n });\n\n // only attach meta config if it is configured\n if (listViewConfig.metaConfig) {\n (listItem as DbxValueListItemConfig<T, I, V>).metaConfig = Object.assign({}, listViewConfig.metaConfig, {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n },\n ...(listViewConfig.metaConfig?.providers ?? [])\n ] as StaticProvider[]\n });\n }\n\n return listItem as DbxValueListItemConfig<T, I, V>;\n });\n\n return itemConfigs;\n}\n\n// MARK: ValueListView\nexport abstract class DbxValueListView<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly items$: Observable<I[]>;\n}\n\nexport function provideDbxValueListView<V extends DbxValueListView<unknown>>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxValueListItem, DBX_VALUE_LIST_VIEW_ITEM } from './list.view.value';\n\n@Directive()\nexport abstract class AbstractDbxValueListViewItemComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly item = inject<I>(DBX_VALUE_LIST_VIEW_ITEM);\n\n get itemValue(): T {\n return this.item.itemValue;\n }\n}\n","import { ListLoadingStateContext, MaybeObservableOrValue, asObservable, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { BehaviorSubject, combineLatest, distinctUntilChanged, map, Observable, of, shareReplay, switchMap } from 'rxjs';\nimport { Directive, input, OnDestroy, output, TrackByFunction } from '@angular/core';\nimport { DbxListSelectionMode, DbxListView } from './list.view';\nimport { type Maybe } from '@dereekb/util';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n/**\n * Abstract DbxListView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListViewDirective<T> implements DbxListView<T>, OnDestroy {\n readonly valuesArray = input<Maybe<T[]>>();\n readonly values = input<MaybeObservableOrValue<T[]>>();\n\n private readonly _trackBy = new BehaviorSubject<Maybe<TrackByFunction<T>>>(undefined);\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n private readonly _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n private readonly _valuesOverride = new BehaviorSubject<MaybeObservableOrValue<T[]>>(undefined);\n\n readonly trackBy$ = this._trackBy.asObservable();\n\n readonly _inputValuesArray$ = toObservable(this.valuesArray);\n readonly _inputValues$ = toObservable(this.values);\n\n readonly _values$: Observable<Maybe<T[]>> = this._valuesOverride.pipe(\n switchMap((x) => {\n let valuesObs: Observable<Maybe<T[]>>;\n\n if (x) {\n valuesObs = asObservable(x);\n } else {\n valuesObs = combineLatest([this._inputValues$, this._inputValuesArray$]).pipe(switchMap(([x, y]) => (y != null ? of(y) : asObservable(x))));\n }\n\n return valuesObs;\n })\n );\n\n readonly values$: Observable<T[]> = this._values$.pipe(\n maybeValueFromObservableOrValue(),\n map((x) => x ?? []),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n readonly clickValue = output<T>();\n\n ngOnDestroy(): void {\n this._disabled.complete();\n this._selectionMode.complete();\n this._valuesOverride.complete();\n }\n\n onClickValue(value: T) {\n this.clickValue.emit(value);\n }\n\n setListContext(state: ListLoadingStateContext<T>): void {\n this.setValues(state.currentList$);\n }\n\n setValues(values: MaybeObservableOrValue<T[]>): void {\n this._valuesOverride.next(values);\n }\n\n setDisabled(disabled: boolean): void {\n this._disabled.next(disabled);\n }\n\n setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void {\n this._selectionMode.next(selectionMode);\n }\n\n setTrackBy(trackBy: Maybe<TrackByFunction<T>>) {\n this._trackBy.next(trackBy);\n }\n}\n","import { Observable } from 'rxjs';\nimport { ListLoadingState, ListLoadingStateContext } from '@dereekb/rxjs';\nimport { forwardRef, OutputEmitterRef, Provider, TrackByFunction, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport type DbxListSelectionMode = 'select' | 'view';\n\nexport interface ListSelectionStateItem<T> {\n readonly disabled?: boolean;\n readonly selected?: boolean;\n readonly itemValue: T;\n}\n\nexport interface ListSelectionState<T> {\n readonly items: ListSelectionStateItem<T>[];\n}\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxListView<T, S extends ListLoadingState<T> = ListLoadingState<T>> {\n /**\n * Current disabled state.\n */\n abstract readonly disabled$: Observable<boolean>;\n /**\n * (Optional) current selection mode.\n */\n abstract readonly selectionMode$?: Observable<Maybe<DbxListSelectionMode>>;\n /**\n * Values of the list view.\n */\n abstract readonly values$: Observable<T[]>;\n /**\n * Track by configuration.\n */\n abstract readonly trackBy$?: Observable<Maybe<TrackByFunction<T>>>;\n /**\n * (Optional) clicked event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract clickValue?: OutputEmitterRef<T>;\n /**\n * (Optional) selection changed event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract selectionChange?: OutputEmitterRef<ListSelectionState<T>>;\n /**\n * Sets the models input loading state context for the view to render from.\n */\n abstract setListContext(state: ListLoadingStateContext<T, S>): void;\n /**\n * Sets the disabled state of the list view.\n */\n abstract setDisabled(disabled: boolean): void;\n /**\n * Sets the selection mode of the list view.\n */\n abstract setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void;\n}\n\n// eslint-disable-next-line\nexport function provideDbxListView<V extends DbxListView<any>>(sourceType: Type<V>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { ArrayOrValue, modifier, Modifier, ModifierFunction, ModifierMap } from '@dereekb/util';\nimport { Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\n\n// MARK: ValueListView\nexport abstract class DbxValueListItemModifier<T = unknown, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly modifiers$: Observable<ModifierMap<I>>;\n abstract addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n abstract removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n}\n\nexport function provideDbxValueListViewModifier<V extends DbxValueListItemModifier>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListItemModifier,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n\n// MARK: Utility\nexport type ListItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> = Modifier<I>;\n\nexport function listItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>>(key: string, modify: ModifierFunction<I>): ListItemModifier<T, I> {\n return modifier(key, modify);\n}\n","import { Maybe, maybeModifierMapToFunction, ModifierFunction } from '@dereekb/util';\nimport { Directive, inject, input } from '@angular/core';\nimport { filterMaybe, mapForEach } from '@dereekb/rxjs';\nimport { distinctUntilChanged, shareReplay, combineLatest, switchMap, map, Observable, of } from 'rxjs';\nimport { DbxListView } from './list.view';\nimport { AbstractDbxValueListViewConfig, DbxValueListItem, DbxValueListItemConfig, DbxValueListView, mapValuesToValuesListItemConfigObs } from './list.view.value';\nimport { DbxValueListItemModifier } from './list.view.value.modifier';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Abstract list directive that takes in items and a AbstractDbxValueItemListViewConfig configuration.\n */\n@Directive()\nexport abstract class AbstractDbxValueListViewDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends AbstractDbxValueListViewConfig<T, I, V> = AbstractDbxValueListViewConfig<T, I, V>> implements DbxValueListView<T, I> {\n readonly dbxListView = inject(DbxListView<T>);\n readonly dbxValueListViewModifier = inject(DbxValueListItemModifier<T, I>, { optional: true });\n\n readonly config = input.required<C>();\n\n readonly config$ = toObservable(this.config).pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));\n readonly modifyFn$: Observable<Maybe<ModifierFunction<I>>> = this.dbxValueListViewModifier ? this.dbxValueListViewModifier.modifiers$.pipe(map(maybeModifierMapToFunction)) : of(undefined);\n\n readonly items$: Observable<DbxValueListItemConfig<T, I>[]> = combineLatest([this.config$, this.dbxListView.values$, this.modifyFn$]).pipe(\n switchMap(([listViewConfig, values, modifyFn]) => mapValuesToValuesListItemConfigObs<T, I, V>(listViewConfig, values).pipe(mapForEach(modifyFn)) as Observable<DbxValueListItemConfig<T, I>[]>),\n shareReplay(1)\n );\n\n readonly itemsSignal = toSignal(this.items$);\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.emit(value);\n }\n}\n","import { CssClassesArray, Maybe, UniqueModel } from '@dereekb/util';\nimport { DbxValueListItem, DbxValueListItemConfig } from '../list.view.value';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Provider, Type, forwardRef } from '@angular/core';\nimport { ObservableOrValue } from '@dereekb/rxjs';\n\n/**\n * A group of DbxValueListItem values, grouped by common data, name, and id.\n */\nexport interface DbxValueListItemGroup<G, T, I extends DbxValueListItem<T>, H = unknown, F = unknown> extends Omit<DbxValueListItem<any>, 'itemValue' | 'icon'>, Readonly<Required<UniqueModel>> {\n readonly data: G;\n readonly items: DbxValueListItemConfig<T, I>[];\n /**\n * (Optional) View configuration for the group's header.\n */\n readonly headerConfig?: Maybe<DbxInjectionComponentConfig<H>>;\n /**\n * (Optional) View configuration for the group's header.\n */\n readonly footerConfig?: Maybe<DbxInjectionComponentConfig<F>>;\n /**\n * Whether or not to show the group's items. Defaults to true.\n */\n readonly showGroupItems?: boolean;\n /**\n * Custom CSS classes to apply to all groups.\n */\n readonly cssClasses?: CssClassesArray;\n}\n\n/**\n * Function that generates an array of DbxValueListItemGroup values from a list of items.\n */\nexport type DbxValueListViewGroupValuesFunction<G, T, I extends DbxValueListItem<T>, H = unknown, F = unknown> = (items: DbxValueListItemConfig<T, I>[]) => ObservableOrValue<DbxValueListItemGroup<G, T, I, H, F>[]>;\n\nexport const defaultDbxValueListViewGroupValuesFunction = <T, I extends DbxValueListItem<T>>(items: DbxValueListItemConfig<T, I>[]) => {\n const data = {};\n const result: DbxValueListItemGroup<unknown, T, I> = {\n id: '_',\n data,\n items\n };\n\n return [result];\n};\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxValueListViewGroupDelegate<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>, H = unknown, F = unknown> {\n /**\n * Groups all input items into groups.\n */\n abstract readonly groupValues: DbxValueListViewGroupValuesFunction<G, T, I, H, F>;\n}\n\nexport function defaultDbxValueListViewGroupDelegate<T, I extends DbxValueListItem<T>>(): DbxValueListViewGroupDelegate<any, T, I> {\n const result = {\n groupValues: defaultDbxValueListViewGroupValuesFunction\n };\n\n return result;\n}\n\n// eslint-disable-next-line\nexport function provideDbxValueListViewGroupDelegate<D extends DbxValueListViewGroupDelegate<any, any, any, any>>(sourceType: Type<D>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxValueListViewGroupDelegate,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { ChangeDetectionStrategy, Component, Signal, TrackByFunction, computed, inject, input } from '@angular/core';\nimport { shareReplay, map, Observable, switchMap, of } from 'rxjs';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { DbxInjectionComponent, anchorTypeForAnchor } from '@dereekb/dbx-core';\nimport { DbxListView } from './list.view';\nimport { Maybe, spaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, defaultDbxValueListViewGroupDelegate } from './group/list.view.value.group';\nimport { asObservable } from '@dereekb/rxjs';\nimport { MatListModule, MatNavList } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxAnchorComponent } from '../../router/layout/anchor/anchor.component';\n\nexport interface DbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n readonly emitAllClicks?: boolean;\n}\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content-group',\n template: `\n <div class=\"dbx-list-view-group-content\">\n @if (headerConfigSignal()) {\n <div class=\"dbx-list-view-group-header\">\n <dbx-injection [config]=\"headerConfigSignal()\"></dbx-injection>\n </div>\n }\n @for (item of itemsSignal(); track trackByFunctionSignal()($index, item)) {\n <dbx-anchor [anchor]=\"item.anchor\" [disabled]=\"item.disabled\">\n <a mat-list-item class=\"dbx-list-view-item\" [disabled]=\"item.disabled\" [disableRipple]=\"rippleDisabledOnItem(item)\" (click)=\"onClickItem(item)\">\n @if (item.icon) {\n <mat-icon matListItemIcon>{{ item.icon }}</mat-icon>\n }\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n @if (item.metaConfig) {\n <span matListItemMeta>\n <dbx-injection [config]=\"item.metaConfig\"></dbx-injection>\n </span>\n }\n </a>\n </dbx-anchor>\n }\n @if (footerConfigSignal()) {\n <div class=\"dbx-list-view-group-footer\">\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n </div>\n }\n </div>\n `,\n host: {\n class: 'dbx-list-view-group',\n '[class]': 'cssClassSignal()'\n },\n imports: [DbxInjectionComponent, DbxAnchorComponent, MatListModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxValueListViewContentGroupComponent<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxValueListViewContentComponent = inject(DbxValueListViewContentComponent<T>);\n readonly group = input<Maybe<DbxValueListItemGroup<G, T, I>>>();\n\n readonly trackByFunctionSignal = toSignal(this.dbxValueListViewContentComponent.trackBy$, { initialValue: DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION });\n\n readonly itemsSignal = computed(() => this.group()?.items ?? []);\n readonly headerConfigSignal = computed(() => this.group()?.headerConfig);\n readonly footerConfigSignal = computed(() => this.group()?.footerConfig);\n readonly cssClassSignal = computed(() => spaceSeparatedCssClasses(this.group()?.cssClasses));\n\n onClickItem(item: I) {\n this.dbxValueListViewContentComponent.onClickItem(item);\n }\n\n onClickValue(value: T) {\n this.dbxValueListViewContentComponent.onClickValue(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return this.dbxValueListViewContentComponent.rippleDisabledOnItem(item);\n }\n}\n\n// MARK: DbxValueListViewContentComponent\nexport const DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION: TrackByFunction<any> = (index: number) => index;\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content',\n template: `\n <mat-nav-list [disabled]=\"disabledSignal()\">\n @for (group of groupsSignal(); track group.id) {\n <dbx-list-view-content-group [group]=\"group\"></dbx-list-view-content-group>\n }\n </mat-nav-list>\n `,\n host: {\n class: 'dbx-list-view'\n },\n standalone: true,\n imports: [MatNavList, DbxValueListViewContentGroupComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxListView = inject(DbxListView<T>);\n private readonly _dbxListGroupDelegate: DbxValueListViewGroupDelegate<any, T, I> = inject<Maybe<DbxValueListViewGroupDelegate<any, T, I>>>(DbxValueListViewGroupDelegate, { optional: true }) ?? defaultDbxValueListViewGroupDelegate();\n\n private readonly _trackBy$ = this.dbxListView.trackBy$ ?? of(undefined);\n readonly trackBy$ = this._trackBy$.pipe(map((trackBy) => (trackBy ? (index: number, item: DbxValueListItemConfig<T, I>) => trackBy(index, item.itemValue) : DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION)));\n\n readonly items = input<Maybe<DbxValueListItemConfig<T, I>[]>>();\n readonly emitAllClicks = input<Maybe<boolean>>();\n\n readonly groups$: Observable<DbxValueListItemGroup<any, T, I>[]> = toObservable(this.items).pipe(\n switchMap((items) => asObservable(this._dbxListGroupDelegate.groupValues(items ?? []))),\n shareReplay(1)\n );\n\n readonly groupsSignal = toSignal(this.groups$);\n readonly disabledSignal = toSignal(this.dbxListView.disabled$);\n\n onClickItem(item: I) {\n // do not emit clicks for disabled items.\n if (!item.disabled) {\n if (this.emitAllClicks() || !item.anchor || anchorTypeForAnchor(item.anchor) === 'plain') {\n // only emit clicks for items with no anchor, or plain anchors.\n this.onClickValue(item.itemValue);\n }\n }\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.emit(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return item.rippleDisabled || (!this.emitAllClicks() && !item.anchor);\n }\n}\n\n// MARK: DbxValueListViewComponent\n/**\n * Renders a list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-view',\n template: `\n <dbx-list-view-content [items]=\"itemsSignal()\" [emitAllClicks]=\"emitAllClicksSignal()\"></dbx-list-view-content>\n `,\n standalone: true,\n imports: [DbxValueListViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListViewConfig<T, I, V> = DbxValueListViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly emitAllClicksSignal: Signal<Maybe<boolean>> = computed(() => this.config()?.emitAllClicks);\n}\n","import { ChangeDetectionStrategy, Component, Directive, Signal, computed, inject, input } from '@angular/core';\nimport { of } from 'rxjs';\nimport { DbxValueListItem } from '../list.view.value';\nimport { AbstractDbxValueListViewDirective } from '../list.view.value.directive';\nimport { Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxValueListViewContentComponent, DbxValueListViewConfig, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION } from '../list.view.value.component';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatRipple } from '@angular/material/core';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { DbxAnchorComponent } from '../../../router/layout/anchor/anchor.component';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\n\nexport interface DbxValueListGridViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxValueListViewConfig<T, I, V> {\n grid?: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>;\n}\n\nexport interface DbxValueListGridItemViewGridSizeConfig {\n /**\n * Gap size in %, px, vw, vh\n */\n readonly gap: string;\n /**\n * Columns configuration.\n *\n * Example: repeat(auto-fill, minmax(200px, 1fr))\n */\n readonly columns: string;\n}\n\nexport const DEFAULT_LIST_GRID_SIZE_CONFIG: DbxValueListGridItemViewGridSizeConfig = {\n columns: 'repeat(auto-fill, minmax(320px, 1fr))',\n gap: '8px'\n};\n\n/**\n * Optional parent directive used to control grid size.\n */\n@Directive({\n selector: '[dbxListGridSize]',\n standalone: true\n})\nexport class DbxValueListGridSizeDirective {\n readonly gridSize = input.required<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>({ alias: 'dbxListGridSize' });\n readonly gridSize$ = toObservable(this.gridSize);\n}\n\n/**\n * Content view for a DbxValueListGridView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-grid-view-content',\n template: `\n <div [gdGap]=\"gridConfigSignal().gap\" [gdColumns]=\"gridConfigSignal().columns\">\n @for (item of items(); track trackByFunctionSignal()($index, item)) {\n <dbx-anchor class=\"dbx-list-grid-view-item\" matRipple [matRippleDisabled]=\"rippleDisabledOnItem(item)\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\" (click)=\"onClickItem(item)\">\n <div dbx-injection [config]=\"item.config\"></div>\n </dbx-anchor>\n }\n </div>\n `,\n host: {\n class: 'dbx-list-grid-view'\n },\n standalone: true,\n imports: [FlexLayoutModule, MatRipple, DbxAnchorComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListGridViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> {\n private readonly _gridSizeOverride = inject(DbxValueListGridSizeDirective, { optional: true });\n\n readonly inputGridConfig = input<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined, { alias: 'grid' });\n readonly gridConfigFromGridSizeSignal = toSignal(this._gridSizeOverride?.gridSize$ ?? of(undefined));\n\n readonly gridConfigSignal: Signal<DbxValueListGridItemViewGridSizeConfig> = computed(() => {\n return mergeObjects<DbxValueListGridItemViewGridSizeConfig>([DEFAULT_LIST_GRID_SIZE_CONFIG, this.inputGridConfig(), this.gridConfigFromGridSizeSignal()]) as DbxValueListGridItemViewGridSizeConfig;\n });\n\n readonly trackByFunctionSignal = toSignal(this.trackBy$, { initialValue: DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION });\n}\n\n// MARK: DbxValueListGridViewComponent\n/**\n * Renders a grid view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-grid-view',\n template: `\n <dbx-list-grid-view-content [items]=\"itemsSignal()\" [grid]=\"config().grid\" [emitAllClicks]=\"config().emitAllClicks\"></dbx-list-grid-view-content>\n `,\n standalone: true,\n imports: [DbxValueListGridViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListGridViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListGridViewConfig<T, I, V> = DbxValueListGridViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {}\n","import { Directive, NgModule } from '@angular/core';\nimport { AbstractDbxListViewDirective } from '../list.view.directive';\nimport { DbxValueListGridViewComponent, DbxValueListGridViewConfig } from './list.grid.view.component';\nimport { DbxValueAsListItem } from '../list.view.value';\n\nexport const DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE = '<dbx-list-grid-view [config]=\"config\"></dbx-list-grid-view>';\n\nexport const dbxListGridViewDirectiveImportsAndExports = [DbxValueListGridViewComponent];\n\n@NgModule({\n exports: dbxListGridViewDirectiveImportsAndExports,\n imports: dbxListGridViewDirectiveImportsAndExports\n})\nexport class DbxListGridViewDirectiveImportsModule {}\n\n/**\n * Abstract DbxListGridView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListGridViewDirective<T> extends AbstractDbxListViewDirective<T> {\n abstract readonly config: DbxValueListGridViewConfig<DbxValueAsListItem<T>>;\n}\n\n// MARK: Compat\n/**\n * @deprecated Use DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE instead.\n */\nexport const DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE = DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE;\n","import { InfiniteScrollDirective } from 'ngx-infinite-scroll';\nimport { catchError, filter, exhaustMap, merge, map, Subject, switchMap, shareReplay, of, Observable, first, distinctUntilChanged } from 'rxjs';\nimport { Component, OnDestroy, ElementRef, HostListener, Directive, inject, ChangeDetectionStrategy, input, output, signal, computed } from '@angular/core';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { SubscriptionObject, ListLoadingState, filterMaybe, isLoadingStateFinishedLoading, startWithBeginLoading, listLoadingStateContext, switchMapMaybe } from '@dereekb/rxjs';\nimport { Maybe, Milliseconds } from '@dereekb/util';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxLoadingComponent } from '../../loading/loading.component';\n\n// MARK: DbxListInternalContentDirective\n/**\n * Used internally by DbxListComponent\n */\n@Directive({\n selector: '[dbxListInternalContent]',\n host: {\n class: 'd-block dbx-list-content',\n '[class.dbx-list-content-hidden]': 'hide()'\n },\n standalone: true\n})\nexport class DbxListInternalContentDirective {\n private readonly parent = inject(DbxListComponent);\n\n readonly elementRef = inject(ElementRef);\n\n readonly hide = input<Maybe<boolean>>(false);\n\n constructor() {\n this.parent.setInternalContent(this);\n }\n\n @HostListener('scroll', ['$event'])\n onScrollEvent($event: Event): void {\n const position = ($event.target as Element).scrollTop;\n this.parent.contentScrolled.emit(position);\n }\n}\n\n// MARK: DbxList\n/**\n * Direction the scroll was triggered moving.\n */\nexport type DbxListScrollDirectionTrigger = 'up' | 'down';\n\n/**\n * Used to trigger the loading of additional items.\n *\n * If an observable is returned it is used to throttle the loading of more items until it returns.\n */\nexport type DbxListLoadMoreHandler = () => Observable<void> | void;\n\n/**\n * DbxListComponent configuration.\n */\nexport interface DbxListConfig<T = unknown, V extends DbxListView<T> = DbxListView<T>> extends DbxInjectionComponentConfig<V> {\n /**\n * Whether or not to hide the list content when it is an empty list.\n */\n readonly hideOnEmpty?: boolean;\n\n /**\n * Whether or not this list should scroll upward from the bottom, like a message list.\n */\n readonly invertedList?: boolean;\n\n /**\n * Distance to scroll.\n */\n readonly scrollDistance?: number;\n\n /**\n * Number of ms to throttle scrolling events.\n */\n readonly throttle?: Milliseconds;\n\n /**\n * (Optional) onClick handler\n */\n readonly onClick?: (value: T) => void;\n\n /**\n * (Optional) onSelection handler\n */\n readonly onSelectionChange?: (selection: ListSelectionState<T>) => void;\n\n /**\n * (Optional) handler function to load more items.\n */\n readonly loadMore?: DbxListLoadMoreHandler;\n\n /**\n * Default selection list value. If not defined, will default to 'view'.\n */\n readonly defaultSelectionMode?: Maybe<DbxListSelectionMode>;\n}\n\nexport type DbxListComponentScrolledEventPosition = number;\n\nexport const DBX_LIST_DEFAULT_SCROLL_DISTANCE = 1.5;\nexport const DBX_LIST_DEFAULT_THROTTLE_SCROLL = 50;\n\n/**\n * Used to display a potentially infinitely scrollable list of content.\n *\n * This component is generally wrapped by another component that provides this one configuration.\n */\n@Component({\n selector: 'dbx-list',\n templateUrl: './list.component.html',\n host: {\n class: 'd-block dbx-list',\n '[class.dbx-list-padded]': 'padded()'\n },\n imports: [DbxInjectionComponent, InfiniteScrollDirective, DbxListInternalContentDirective, DbxLoadingComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxListComponent<T = unknown, V extends DbxListView<T> = DbxListView<T>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy {\n /**\n * Emitted when content is scrolled.\n */\n readonly contentScrolled = output<DbxListComponentScrolledEventPosition>();\n\n /**\n * Whether or not to add bottom padding to the list content.\n */\n readonly padded = input<boolean>(true);\n\n readonly state = input<Maybe<Observable<Maybe<S>>>>(undefined);\n readonly config = input<Maybe<DbxListConfig<T, V>>>(undefined);\n\n readonly disabled = input<Maybe<boolean>>(false);\n readonly selectionMode = input<Maybe<DbxListSelectionMode>>(undefined);\n\n private readonly _internalContentSignal = signal<Maybe<DbxListInternalContentDirective>>(undefined);\n readonly nativeElementSignal = computed(() => (this._internalContentSignal()?.elementRef as Maybe<ElementRef<HTMLElement>>)?.nativeElement);\n\n private readonly _loadMoreTrigger = new Subject<void>();\n private readonly _scrollTrigger = new Subject<DbxListScrollDirectionTrigger>();\n\n private readonly _loadMoreSub = new SubscriptionObject();\n private readonly _onClickSub = new SubscriptionObject();\n private readonly _disabledSub = new SubscriptionObject();\n private readonly _selectionModeSub = new SubscriptionObject();\n private readonly _onSelectionChangeSub = new SubscriptionObject();\n\n readonly currentState$: Observable<Maybe<S>> = toObservable(this.state).pipe(switchMapMaybe());\n readonly context = listLoadingStateContext<T, S>({ obs: this.currentState$, showLoadingOnNoValue: false });\n\n readonly isEmpty$ = this.context.isEmpty$;\n readonly isEmptyLoading$ = this.context.isEmptyLoading$;\n readonly isEmptyAndNotLoading$ = this.context.isEmptyAndNotLoading$;\n\n readonly config$ = toObservable(this.config);\n readonly disabled$ = toObservable(this.disabled).pipe(\n map((x) => Boolean(x)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectionMode$ = toObservable(this.selectionMode).pipe(distinctUntilChanged(), shareReplay(1));\n\n readonly hideOnEmpty$: Observable<boolean> = this.config$.pipe(\n filterMaybe(),\n map((x) => Boolean(x.hideOnEmpty)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly invertedList$: Observable<boolean> = this.config$.pipe(\n filterMaybe(),\n map((x) => Boolean(x?.throttle)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly throttleScroll$: Observable<number> = this.config$.pipe(\n map((x) => x?.throttle ?? DBX_LIST_DEFAULT_THROTTLE_SCROLL),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly scrollDistance$: Observable<number> = this.config$.pipe(\n map((x) => x?.scrollDistance ?? DBX_LIST_DEFAULT_SCROLL_DISTANCE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly scrollLoadMoreTrigger$ = this.config$.pipe(\n switchMap((config) => {\n const loadNextDirection = config?.invertedList ? 'up' : 'down';\n return this._scrollTrigger.pipe(filter((x) => x === loadNextDirection));\n })\n );\n\n readonly loadMore$ = merge(this.scrollLoadMoreTrigger$, this._loadMoreTrigger);\n\n readonly injectedComponentConfig$: Observable<Maybe<DbxInjectionComponentConfig<V>>> = this.config$.pipe(\n distinctUntilChanged(),\n map((config) => {\n let injectedComponentConfig: Maybe<DbxInjectionComponentConfig<V>>;\n\n if (config) {\n const { componentClass, init, onClick, onSelectionChange, loadMore, defaultSelectionMode = 'view' } = config;\n\n injectedComponentConfig = {\n componentClass: config.componentClass,\n injector: config.injector,\n init: (instance: V) => {\n // Synchronize disabled\n this._disabledSub.subscription = this.disabled$.subscribe((disabled) => instance.setDisabled(disabled));\n this._selectionModeSub.subscription = this.selectionMode$.subscribe((selectionMode) => instance.setSelectionMode(selectionMode ?? defaultSelectionMode));\n\n if (init) {\n init(instance);\n }\n\n instance.setListContext(this.context);\n\n if (loadMore) {\n this._loadMoreSub.subscription = this.loadMore$\n .pipe(\n // Throttle additional loading calls using exhaustMap until observable returns, if one is returned.\n exhaustMap(() => {\n const result = loadMore();\n let obs: Observable<void>;\n\n if (result) {\n obs = result.pipe(catchError(() => of()));\n } else {\n obs = of();\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n if (onClick) {\n if (instance.clickValue) {\n this._onClickSub.subscription = instance.clickValue.subscribe(onClick);\n } else {\n console.error(`onClick() was passed to listConfig, but target class ${componentClass} has no clicked event emitter.`);\n }\n }\n\n if (onSelectionChange) {\n if (instance.selectionChange) {\n this._onSelectionChangeSub.subscription = instance.selectionChange.subscribe(onSelectionChange);\n } else {\n console.error(`onSelectionChange() was passed to listConfig, but target class ${componentClass} has no selectionChange event emitter.`);\n }\n }\n }\n };\n }\n\n return injectedComponentConfig;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hideContent$: Observable<boolean> = this.context.currentStateStream$.pipe(\n switchMap(() =>\n this.context.state$.pipe(\n filter((x) => isLoadingStateFinishedLoading(x)),\n first(),\n startWithBeginLoading()\n )\n ),\n switchMap((state) => {\n if (state?.loading) {\n return of(true);\n } else {\n return this.hideOnEmpty$.pipe(\n switchMap((hide) => (hide === false ? of(false) : this.isEmpty$)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly infiniteScrollDistanceSignal = toSignal(this.scrollDistance$, { initialValue: DBX_LIST_DEFAULT_SCROLL_DISTANCE });\n readonly infiniteScrollThrottleSignal = toSignal(this.throttleScroll$, { initialValue: DBX_LIST_DEFAULT_THROTTLE_SCROLL });\n readonly hideContentSignal = toSignal(this.hideContent$);\n readonly injectedComponentConfigSignal = toSignal(this.injectedComponentConfig$);\n readonly isEmptyAndNotLoadingSignal = toSignal(this.isEmptyAndNotLoading$);\n readonly isEmptyLoadingSignal = toSignal(this.isEmptyLoading$);\n\n ngOnDestroy(): void {\n this._scrollTrigger.complete();\n this._loadMoreTrigger.complete();\n\n this._onClickSub.destroy();\n this._loadMoreSub.destroy();\n this._onSelectionChangeSub.destroy();\n this._disabledSub.destroy();\n\n this.context.destroy();\n }\n\n getScrollPositionRelativeToBottom(): number {\n const element = this.nativeElementSignal();\n\n if (element) {\n try {\n // At max scroll, scrollHeight = scrollTop + clientHeight;\n const { scrollTop, scrollHeight, clientHeight } = element;\n return scrollHeight - (scrollTop + clientHeight);\n } catch (e) {}\n }\n\n return 0;\n }\n\n jumpToBottom(): void {\n const element = this.nativeElementSignal();\n\n if (element) {\n try {\n element.scrollTop = element.scrollHeight;\n } catch (err) {\n // do nothing.\n }\n }\n }\n\n jumpToPositionRelativeToBottom(pos: number): void {\n const element = this.nativeElementSignal();\n\n if (element) {\n try {\n const { scrollHeight, clientHeight } = element;\n element.scrollTop = scrollHeight - (clientHeight + pos);\n } catch (err) {\n // do nothing.\n }\n }\n }\n\n onScrollDown(): void {\n this._scrollTrigger.next('down');\n }\n\n onScrollUp(): void {\n this._scrollTrigger.next('up');\n }\n\n loadMore(): void {\n this._loadMoreTrigger.next();\n }\n\n // MARK: Internal\n setInternalContent(content: DbxListInternalContentDirective) {\n if (this._internalContentSignal() == null) {\n this._internalContentSignal.set(content);\n } else {\n throw new Error('Attempted to set internal content in DbxListComponent when it was already set.');\n }\n }\n}\n","<dbx-loading [context]=\"context\" [linear]=\"true\"></dbx-loading>\n<div dbxListInternalContent [hide]=\"hideContentSignal()\" infinite-scroll [infiniteScrollDistance]=\"infiniteScrollDistanceSignal()\" [infiniteScrollUpDistance]=\"infiniteScrollDistanceSignal()\" [infiniteScrollThrottle]=\"infiniteScrollThrottleSignal()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\" (scrolledUp)=\"onScrollUp()\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-injection [config]=\"injectedComponentConfigSignal()\"></dbx-injection>\n <ng-content select=\"[bottom]\"></ng-content>\n</div>\n@if (isEmptyAndNotLoadingSignal()) {\n <ng-content select=\"[empty]\"></ng-content>\n}\n@if (isEmptyLoadingSignal()) {\n <ng-content select=\"[emptyLoading]\"></ng-content>\n}\n","import { ListLoadingState, ObservableOrValue, maybeValueFromObservableOrValue, MaybeObservableOrValue } from '@dereekb/rxjs';\nimport { Observable, BehaviorSubject, map, shareReplay, combineLatest } from 'rxjs';\nimport { OnDestroy, Directive, input, output, computed, Signal, NgModule } from '@angular/core';\nimport { DbxListComponent, DbxListConfig } from './list.component';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { Configurable, type Maybe } from '@dereekb/util';\nimport { DbxListViewWrapper } from './list.wrapper';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n// MARK: Wrapper\nexport const DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE = `\n <dbx-list [state]=\"currentState$\" [config]=\"configSignal()\" [disabled]=\"disabled()\" [selectionMode]=\"selectionModeSignal()\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n </dbx-list>`;\n\nconst dbxListWrapperComponentImportsAndExports = [DbxListComponent];\n\n@NgModule({\n exports: dbxListWrapperComponentImportsAndExports,\n imports: dbxListWrapperComponentImportsAndExports\n})\nexport class DbxListWrapperComponentImportsModule {}\n\nexport type DbxListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListConfig<T, V>, 'onClick' | 'loadMore'>;\n\n@Directive()\nexport abstract class AbstractDbxListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxListWrapperConfig<T, V> = DbxListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy, DbxListViewWrapper<T, S> {\n private readonly _config = new BehaviorSubject<MaybeObservableOrValue<C>>(undefined);\n private readonly _stateOverride = new BehaviorSubject<MaybeObservableOrValue<S>>(undefined);\n private readonly _selectionModeOverride = new BehaviorSubject<MaybeObservableOrValue<DbxListSelectionMode>>(undefined);\n private readonly _selectionModeOverrideSignal = toSignal(this._selectionModeOverride.pipe(maybeValueFromObservableOrValue()));\n\n readonly clickItem = output<T>();\n readonly loadMore = output<void>();\n\n readonly disabled = input<Maybe<boolean>>();\n readonly selectionMode = input<Maybe<DbxListSelectionMode>>();\n readonly state = input<Maybe<ObservableOrValue<S>>>();\n\n /**\n * @deprecated use state as the input instead.\n */\n readonly deprecatedInputState$ = input<Maybe<Observable<S>>>(undefined, { alias: 'state$' });\n\n readonly selectionModeSignal: Signal<Maybe<DbxListSelectionMode>> = computed(() => {\n return this._selectionModeOverrideSignal() ?? this.selectionMode();\n });\n\n readonly currentState$ = combineLatest([this._stateOverride, toObservable(this.state), toObservable(this.deprecatedInputState$)]).pipe(\n map(([stateOverride, state, state$]) => stateOverride ?? state ?? state$),\n maybeValueFromObservableOrValue(),\n shareReplay(1)\n );\n\n readonly config$ = this._config.pipe(\n maybeValueFromObservableOrValue(),\n map((x: Maybe<C>) => (x ? this._buildListConfig(x) : undefined)),\n shareReplay(1)\n );\n\n readonly configSignal = toSignal(this.config$);\n\n constructor(initConfig: ObservableOrValue<C>) {\n this._config.next(initConfig);\n }\n\n ngOnDestroy(): void {\n this._config.complete();\n this._stateOverride.complete();\n this._selectionModeOverride.complete();\n }\n\n setState(stateObs: MaybeObservableOrValue<S>): void {\n this._stateOverride.next(stateObs);\n }\n\n setSelectionMode(selectionMode: MaybeObservableOrValue<DbxListSelectionMode>): void {\n this._selectionModeOverride.next(selectionMode);\n }\n\n protected _buildListConfig(config: C): DbxListConfig<T, V> {\n return {\n ...config,\n onClick: (x) => this.clickItem.emit(x),\n loadMore: () => this.loadMore.emit()\n };\n }\n}\n\n// MARK: Selection Wrapper\nexport type DbxSelectionListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListWrapperConfig<T, V>, 'onSelectionChange'>;\n\n@Directive()\nexport abstract class AbstractDbxSelectionListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxSelectionListWrapperConfig<T, V> = DbxSelectionListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> extends AbstractDbxListWrapperDirective<T, V, C, S> {\n readonly selectionChange = output<ListSelectionState<T>>();\n\n protected override _buildListConfig(config: C): DbxListConfig<T, V> {\n const result = super._buildListConfig(config) as Configurable<DbxListConfig<T, V>>;\n result.onSelectionChange = (x) => this.selectionChange.emit(x);\n return result;\n }\n}\n\n// MARK: COMPAT\n/**\n * @deprecated update components to use DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION instead of just referencing only the template and DbxListWrapperComponentImportsModule.\n */\nexport const DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE = DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE;\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { of } from 'rxjs';\nimport { DbxWidgetDataPair } from './widget';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { AbstractDbxValueListViewItemComponent } from '../../layout/list/list.view.value.item.directive';\nimport { DbxValueAsListItem } from '../../layout/list/list.view.value';\nimport { AbstractDbxListGridViewDirective, DbxListGridViewDirectiveImportsModule, DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE } from '../../layout/list/grid/list.grid.view.directive';\nimport { DbxValueListGridViewConfig } from '../../layout/list/grid/list.grid.view.component';\nimport { provideDbxListView } from '../../layout/list/list.view';\nimport { AbstractDbxListWrapperDirective, DbxListWrapperComponentImportsModule, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE } from '../../layout/list/list.directive';\n\nexport type DbxWidgetDataPairWithSelection = DbxValueAsListItem<DbxWidgetDataPair>;\n\n/**\n * Demo DbxSelectionListWrapperDirective\n */\n@Component({\n selector: 'dbx-widget-grid',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxWidgetListGridComponent extends AbstractDbxListWrapperDirective<DbxWidgetDataPair> {\n constructor() {\n super({\n componentClass: DbxWidgetListGridViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}\n\n@Component({\n selector: 'dbx-widget-grid-view',\n template: DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE,\n imports: [DbxListGridViewDirectiveImportsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n providers: provideDbxListView(DbxWidgetListGridViewComponent)\n})\nexport class DbxWidgetListGridViewComponent extends AbstractDbxListGridViewDirective<DbxWidgetDataPair> {\n readonly config: DbxValueListGridViewConfig<DbxWidgetDataPairWithSelection> = {\n grid: {\n // TODO: Make configurable.\n columns: 'repeat(auto-fill, minmax(120px, 1fr))',\n gap: '8px'\n },\n componentClass: DbxWidgetListGridViewItemComponent,\n mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, itemValue: y })))\n };\n}\n\n@Component({\n template: `\n <dbx-widget-view [config]=\"itemValue\"></dbx-widget-view>\n `,\n imports: [DbxWidgetViewComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxWidgetListGridViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxWidgetDataPair> {}\n","import { NgModule } from '@angular/core';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent } from './widget.list.component';\n\nconst importsAndExports = [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent];\n\n/**\n * Contains components related to displaying \"widgets\" for pieces of data.\n *\n * @deprecated Import standalone components directly instead.\n *\n * @see DbxWidgetViewComponent\n * @see DbxWidgetListGridComponent\n * @see DbxWidgetListGridViewComponent\n * @see DbxWidgetListGridViewItemComponent\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxWidgetModule {}\n","// export * from './calendar'; // nothing to export\nexport * from './model';\nexport * from './download';\nexport * from './structure';\n// export * from './table'; // nothing to export\nexport * from './widget';\n","import { computed, Directive, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a wrapper for content distributed along a bar.\n */\n@Directive({\n selector: 'dbx-bar,[dbxBar]',\n host: {\n class: 'dbx-bar',\n '[class]': 'cssClassSignal()'\n },\n standalone: true\n})\nexport class DbxBarDirective {\n readonly color = input<Maybe<DbxBarColor>>();\n\n readonly cssClassSignal = computed(() => {\n const color = this.color();\n return color ? `dbx-${color}-bg` : 'dbx-bg';\n });\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxBarDirective } from './bar.directive';\n\n/**\n * Acts as a divider between content and centers a label within a background.\n */\n@Component({\n selector: 'dbx-bar-header',\n template: `\n <dbx-bar [color]=\"color()\">\n @if (icon()) {\n <mat-icon class=\"button-spacer\">{{ icon() }}</mat-icon>\n }\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <ng-content></ng-content>\n </dbx-bar>\n `,\n host: {\n class: 'dbx-bar-header dbx-hint'\n },\n imports: [DbxBarDirective, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxBarHeaderComponent {\n readonly text = input<Maybe<string>>();\n readonly icon = input<Maybe<string>>();\n readonly color = input<Maybe<DbxBarColor>>();\n}\n","import { Component, input, ChangeDetectionStrategy, computed } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\nimport { NgClass } from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\n\n@Component({\n selector: 'dbx-pagebar',\n template: `\n <mat-toolbar class=\"dbx-pagebar\" [ngClass]=\"cssClassSignal()\">\n <ng-content select=\"[left]\"></ng-content>\n <span class=\"spacer\"></span>\n <ng-content select=\"[right]\"></ng-content>\n </mat-toolbar>\n `,\n imports: [NgClass, MatToolbarModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPagebarComponent {\n readonly color = input<Maybe<DbxBarColor>>();\n\n readonly cssClassSignal = computed(() => {\n const color = this.color();\n return color ? `dbx-bar-${color}` : '';\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxBarDirective } from './bar.directive';\nimport { DbxBarHeaderComponent } from './bar.header.component';\nimport { DbxPagebarComponent } from './pagebar.component';\n\nconst importsAndExports = [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent];\n\n/**\n * Module for dbx-bar components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxBarLayoutModule {}\n","import { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { AngularResizeEventModule, ResizedEvent } from 'angular-resize-event-package';\n\n/**\n * Wrapper of a block that is broken into two parts, with the bottom content's height\n * being set to 100% of the height minus the top's height.\n *\n * The block is made up of two divs, a top and a bottom. The top is assigned a static height, and the bottom is given the remainder.\n * The height is calculated from 100%.\n */\n@Component({\n selector: 'dbx-two-block',\n template: `\n <div #two class=\"dbx-two-block-content\" [ngStyle]=\"{ '--dbx-two-block-top-height': topHeightPixelsSignal() }\">\n <div #top class=\"dbx-two-block-top\" (resized)=\"viewResized($event)\">\n <ng-content select=\"[top]\"></ng-content>\n </div>\n <div #bottom class=\"dbx-two-block-bottom\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-two-block d-block',\n '[class]': '{ \"dbx-two-block-fixed-top\": fixedTop() }'\n },\n imports: [AngularResizeEventModule, NgStyle],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTwoBlockComponent {\n /**\n * Whether or not the top bar should be fixed in place instead of scrolling with the bottom when content is too tall.\n */\n readonly fixedTop = input<boolean>(true);\n\n readonly topHeightSignal = signal<number>(0);\n readonly topHeightPixelsSignal = computed(() => `${this.topHeightSignal()}px`);\n\n viewResized(event: ResizedEvent): void {\n const height = event.newRect.height;\n this.topHeightSignal.set(height);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoBlockComponent } from './two.block.component';\n\n/**\n * Module for block components.\n *\n * @deprecated import DbxTwoBlockComponent directly instead.\n */\n@NgModule({\n imports: [DbxTwoBlockComponent],\n exports: [DbxTwoBlockComponent]\n})\nexport class DbxBlockLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * Component that formats a card-box of content.\n */\n@Component({\n selector: 'dbx-card-box',\n template: `\n <div class=\"dbx-card-box\">\n <div class=\"dbx-section-header\">\n <div class=\"dbx-section-header-content\">\n <h4 class=\"dbx-section-header-content-title\">\n @if (icon()) {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n @if (header()) {\n <span class=\"title-text\">{{ header() }}</span>\n }\n </h4>\n <span class=\"spacer\"></span>\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n </div>\n <div class=\"dbx-card-box-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxCardBoxComponent {\n readonly header = input<string>();\n readonly icon = input<string>();\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Component that wraps a card box and adds content padding.\n */\n@Directive({\n selector: 'dbx-card-box-container, [dbxCardBoxContainer]',\n host: {\n class: 'd-block dbx-card-box-container'\n },\n standalone: true\n})\nexport class DbxCardBoxContainerDirective {}\n","import { DbxCardBoxContainerDirective } from './card.box.container.directive';\nimport { DbxCardBoxComponent } from './card.box.component';\nimport { NgModule } from '@angular/core';\n\nconst importsAndExports = [DbxCardBoxComponent, DbxCardBoxContainerDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxCardBoxLayoutModule {}\n","import { Injectable, OnDestroy, Provider } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Subject, distinct, map } from 'rxjs';\nimport { SegueRef } from '@dereekb/dbx-core';\nimport { isMaybeNot, type Maybe } from '@dereekb/util';\n\nexport interface TwoColumnsState {\n /**\n * Whether or not to reverse the sizing.\n */\n readonly reverseSizing: boolean;\n /**\n * Whether or not the right side should be shown.\n */\n readonly showRight: boolean;\n /**\n * Overrides showRight if not null.\n */\n readonly showRightOverride?: Maybe<boolean>;\n /**\n * Whether or not there is any registered right content currently.\n */\n readonly hasRight: boolean;\n /**\n * Whether or not to allow the left to fill up the screen when no right is shown.\n */\n readonly fullLeft: boolean;\n /**\n * Optional ref to use with TwoColumns that use an sref for the back button.\n */\n readonly backRef?: Maybe<SegueRef>;\n /**\n * Size of the view's total width in pixels.\n */\n readonly totalWidth?: Maybe<number>;\n /**\n * Minimum right side size allowed before hiding the left content.\n */\n readonly minRightWidth: number;\n}\n\nexport const DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH = 320;\n\nconst INITIAL_STATE: TwoColumnsState = {\n reverseSizing: false,\n showRight: false,\n hasRight: false,\n fullLeft: false,\n minRightWidth: DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH\n};\n\n@Injectable()\nexport class TwoColumnsContextStore extends ComponentStore<TwoColumnsState> implements OnDestroy {\n private readonly _back = new Subject<void>();\n\n constructor() {\n super({ ...INITIAL_STATE });\n }\n\n // MARK: Accessors\n readonly hideLeft$ = this.state$.pipe(\n map((x) => {\n /**\n * The right side is less-than or equal to half the total width when resizing, so we can use the total width to guess the best case current scenario.\n */\n const expectedRightWidth = (x.totalWidth ?? 0) / 2;\n const hideLeft = x.showRight && expectedRightWidth < x.minRightWidth;\n return hideLeft;\n })\n );\n\n /**\n * Pipes the current state of reverseSizing.\n */\n readonly reverseSizing$ = this.state$.pipe(map((x) => x.reverseSizing));\n\n /**\n * Pipes the current state of hasRight.\n */\n readonly hasRight$ = this.state$.pipe(map((x) => x.hasRight));\n\n /**\n * Pipes the current state of showRight and showRightOverride.\n */\n readonly currentShowRight$ = this.state$.pipe(map((x) => x.showRightOverride ?? x.showRight));\n\n /**\n * Pipes the current state of showRight and hasRight\n */\n readonly showRight$ = this.state$.pipe(map((x) => x.hasRight && (x.showRightOverride ?? x.showRight)));\n\n /**\n * Convenience function for the showRight compliment.\n */\n readonly hideRight$ = this.showRight$.pipe(map((x) => !x));\n\n /**\n * Pipes the current state of fullLeft.\n */\n readonly fullLeft$ = this.state$.pipe(map((x) => x.fullLeft));\n\n /**\n * Whether or not to show the full left.\n */\n readonly showFullLeft$ = this.state$.pipe(map((x) => !(x.hasRight && (x.showRightOverride ?? x.showRight)) && x.fullLeft));\n\n /**\n * Pipes the current backRef value.\n */\n readonly backRef$ = this.state$.pipe(\n map((x) => x.backRef),\n distinct()\n );\n\n /**\n * Emits back events.\n */\n readonly back$ = this._back.asObservable();\n\n // MARK: State Changes\n /**\n * Completely resets the store.\n */\n readonly reset = this.updater(() => ({ ...INITIAL_STATE }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setReverseSizing = this.updater((state, reverseSizing: Maybe<boolean>) => (isMaybeNot(reverseSizing) ? state : { ...state, reverseSizing }));\n\n /**\n * Changes the state to have right content or not.\n */\n readonly setHasRight = this.updater((state, hasRight: Maybe<boolean>) => (isMaybeNot(hasRight) ? state : { ...state, hasRight }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setShowRight = this.updater((state, showRight: Maybe<boolean>) => (isMaybeNot(showRight) ? state : { ...state, showRight }));\n\n /**\n * Changes the override state to show right or not.\n */\n readonly setShowRightOverride = this.updater((state, showRightOverride: Maybe<boolean>) => ({ ...state, showRightOverride }));\n\n /**\n * Sets the full left. If undefined is passed, no change occurs.\n */\n readonly setFullLeft = this.updater((state, fullLeft: Maybe<boolean>) => (isMaybeNot(fullLeft) ? state : { ...state, fullLeft }));\n\n /**\n * Sets the new back ref.\n */\n readonly setBackRef = this.updater((state, backRef: Maybe<SegueRef>) => ({ ...state, backRef }));\n\n /**\n * Sets the new total width.\n */\n readonly setTotalWidth = this.updater((state, totalWidth: Maybe<number>) => ({ ...state, totalWidth }));\n\n /**\n * Sets the new min right width.\n */\n readonly setMinRightWidth = this.updater((state, minRightWidth: Maybe<number>) => ({ ...state, minRightWidth: minRightWidth ?? DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH }));\n\n /**\n * Emits a back event.\n */\n back(): void {\n this._back.next();\n }\n\n // MARK: Internal\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._back.complete();\n }\n}\n\nexport function provideTwoColumnsContext(): Provider[] {\n return [\n {\n provide: TwoColumnsContextStore,\n useClass: TwoColumnsContextStore\n }\n ];\n}\n","import { OnDestroy, ChangeDetectionStrategy, Component, ElementRef, inject, input, effect } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { AngularResizeEventModule, ResizedEvent } from 'angular-resize-event-package';\nimport { Observable, combineLatest, distinctUntilChanged, map } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxContentContainerDirective } from '../../content/content.container.directive';\nimport { isDefinedAndNotFalse, Maybe } from '@dereekb/util';\n\nexport interface DbxTwoColumnViewState {\n readonly showRight: boolean;\n readonly showFullLeft: boolean;\n readonly hideLeftColumn: boolean;\n readonly reverseSizing: boolean;\n readonly inSectionPage: boolean;\n}\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-two-column',\n template: `\n <dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height left-column\">\n @if (!hideLeftColumnSignal() && reverseSizingSignal()) {\n <div (resized)=\"viewResized($event)\"></div>\n }\n <ng-content select=\"[left]\"></ng-content>\n </dbx-content-container>\n @if (showRightSignal()) {\n <dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height right-column\">\n @if (hideLeftColumnSignal() || !reverseSizingSignal()) {\n <div (resized)=\"viewResized($event)\"></div>\n }\n <ng-content select=\"[right]\"></ng-content>\n </dbx-content-container>\n }\n `,\n exportAs: 'columns',\n host: {\n class: 'dbx-two-column',\n '[class]': 'cssClassSignal()'\n },\n imports: [AngularResizeEventModule, DbxContentContainerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxTwoColumnComponent extends AbstractSubscriptionDirective implements OnDestroy {\n private readonly _elementRef = inject(ElementRef);\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly reverseSizing = input<boolean>(false);\n readonly inSectionPage = input<boolean>(false);\n\n /**\n * Acts as an override to show the right column without having to use dbx-two-column-right or update the context store directly.\n */\n readonly hasRightContent = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n\n readonly reverseSizing$ = this.twoColumnsContextStore.reverseSizing$;\n readonly hideLeftColumn$: Observable<boolean> = this.twoColumnsContextStore.hideLeft$;\n readonly inSectionPage$: Observable<boolean> = toObservable(this.inSectionPage);\n\n readonly showRight$: Observable<boolean> = this.twoColumnsContextStore.showRight$;\n readonly showFullLeft$: Observable<boolean> = this.twoColumnsContextStore.showFullLeft$;\n\n readonly hideLeftColumnSignal = toSignal(this.hideLeftColumn$);\n readonly reverseSizingSignal = toSignal(this.reverseSizing$);\n readonly showRightSignal = toSignal(this.showRight$);\n\n readonly cssClasses$ = combineLatest([this.showRight$, this.showFullLeft$, this.hideLeftColumn$, this.reverseSizing$, this.inSectionPage$]).pipe(\n distinctUntilChanged((prev, curr) => {\n return prev[0] === curr[0] && prev[1] === curr[1] && prev[2] === curr[2] && prev[3] === curr[3] && prev[4] === curr[4];\n }),\n map(([showRight, showFullLeft, hideLeftColumn, reverseSizing, inSectionPage]) => ({ 'right-shown': showRight, 'full-left': showFullLeft, 'hide-left-column': hideLeftColumn, 'two-column-reverse-sizing': reverseSizing, 'dbx-section-page-two': inSectionPage }))\n );\n\n readonly cssClassSignal = toSignal(this.cssClasses$);\n\n protected readonly _reverseSizingEffect = effect(\n () => {\n this.twoColumnsContextStore.setReverseSizing(this.reverseSizing());\n },\n { allowSignalWrites: true }\n );\n\n protected readonly _hasRightContentEffect = effect(\n () => {\n if (this.hasRightContent()) {\n this.twoColumnsContextStore.setHasRight(true);\n }\n },\n { allowSignalWrites: true }\n );\n\n viewResized(event: ResizedEvent): void {\n const totalWidth = (this._elementRef.nativeElement as HTMLElement).clientWidth;\n this.twoColumnsContextStore.setTotalWidth(totalWidth);\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { DbxTwoColumnComponent } from '../two/two.column.component';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from '../two/two.column.store';\n\n/**\n * Pre-configured Two-columns view that only has a left view and shows full left.\n */\n@Component({\n selector: 'dbx-one-column',\n template: `\n <ng-container>\n <dbx-two-column [inSectionPage]=\"inSectionPage()\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content left></ng-content>\n </dbx-two-column>\n </ng-container>\n `,\n exportAs: 'columns',\n providers: provideTwoColumnsContext(),\n imports: [DbxTwoColumnComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxOneColumnComponent {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n readonly inSectionPage = input<boolean>(true);\n\n constructor() {\n this.twoColumnsContextStore.setFullLeft(true);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxOneColumnComponent } from './one.column.component';\n\n/**\n * @deprecated import DbxOneColumnComponent directly instead.\n */\n@NgModule({\n imports: [DbxOneColumnComponent],\n exports: [DbxOneColumnComponent]\n})\nexport class DbxOneColumnLayoutModule {}\n","import { Directive, OnInit, inject, output } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with an DbxTwoColumnComponent to help respond to a \"back\" function.\n */\n@Directive({\n selector: '[dbxTwoColumnBack]',\n standalone: true\n})\nexport class DbxTwoColumnBackDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly dbxTwoColumnBack = output();\n\n ngOnInit(): void {\n this.sub = this.twoColumnsContextStore.back$.subscribe(() => this.dbxTwoColumnBack.emit());\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { isDefinedAndNotFalse, type Maybe } from '@dereekb/util';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Provides a dbxTwoColumnContextStore\n */\n@Directive({\n selector: '[dbxTwoColumnContext]',\n providers: provideTwoColumnsContext(),\n standalone: true\n})\nexport class DbxTwoColumnContextDirective {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore, { self: true });\n readonly showRight = input<Maybe<boolean>, Maybe<boolean | ''>>(undefined, { transform: isDefinedAndNotFalse });\n\n protected readonly _showRightEffect = effect(\n () => {\n this.twoColumnsContextStore.setShowRightOverride(this.showRight());\n },\n { allowSignalWrites: true }\n );\n}\n","import { Directive, inject, input, effect } from '@angular/core';\nimport { isNotFalse, type Maybe } from '@dereekb/util';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the full left to true.\n */\n@Directive({\n selector: '[dbxTwoColumnFullLeft]',\n standalone: true\n})\nexport class DbxTwoColumnFullLeftDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly fullLeft = input<boolean, Maybe<boolean | ''>>(true, { alias: 'dbxTwoColumnFullLeft', transform: isNotFalse });\n\n protected readonly _fullLeftEffect = effect(\n () => {\n this._twoColumnsContextStore.setFullLeft(this.fullLeft());\n },\n { allowSignalWrites: true }\n );\n}\n","import { Directive, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Two Columns related component that sits at the top of the content bodies and wraps content.\n */\n@Directive({\n selector: 'dbx-two-column-head,[dbxTwoColumnHead],.dbx-two-column-head',\n host: {\n class: 'd-flex dbx-two-column-head',\n '[class.d-block]': 'block()',\n '[class.full]': 'full()'\n },\n standalone: true\n})\nexport class DbxTwoColumnColumnHeadDirective {\n readonly block = input<Maybe<boolean>>(false);\n readonly full = input<Maybe<boolean>>(false);\n}\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { asSegueRef, SegueRefOrSegueRefRouterLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the backRef of the TwoColumnsContextStore.\n */\n@Directive({\n selector: '[dbxTwoColumnSref]',\n standalone: true\n})\nexport class DbxTwoColumnSrefDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly dbxTwoColumnSref = input.required<Maybe<SegueRefOrSegueRefRouterLink>>();\n\n protected readonly _dbxTwoColumnSrefEffect = effect(\n () => {\n const sref = this.dbxTwoColumnSref();\n const segueRef = sref ? asSegueRef(sref) : undefined;\n this._twoColumnsContextStore.setBackRef(segueRef);\n },\n { allowSignalWrites: true }\n );\n}\n","import { Component, Input } from '@angular/core';\nimport { ClickableIconAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Component that displays an anchor and a mat-button.\n */\n@Component({\n selector: 'dbx-anchor-icon',\n standalone: true,\n imports: [MatIconModule, MatButtonModule, DbxAnchorComponent],\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-icon-button>\n <mat-icon>{{ anchor?.icon }}</mat-icon>\n </button>\n </dbx-anchor>\n `\n})\nexport class DbxAnchorIconComponent {\n @Input()\n anchor: Maybe<ClickableIconAnchorLink>;\n}\n","import { Component, Input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Pre-styled text that can link to either a website or a ref using a dbx-anchor.\n */\n@Component({\n selector: 'dbx-link',\n standalone: true,\n imports: [DbxAnchorComponent],\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <ng-content></ng-content>\n </dbx-anchor>\n `,\n host: {\n class: 'd-inline dbx-link'\n }\n})\nexport class DbxLinkComponent {\n @Input()\n anchor?: Maybe<ClickableAnchor>;\n\n @Input()\n set ref(ref: Maybe<string>) {\n if (ref) {\n this.anchor = {\n ref\n };\n }\n }\n\n @Input()\n set href(href: Maybe<string>) {\n if (href) {\n this.anchor = {\n url: href\n };\n }\n }\n}\n","import { BehaviorSubject, combineLatest, map, Observable, of, shareReplay } from 'rxjs';\nimport { Component, Input, OnDestroy, inject, computed } from '@angular/core';\nimport { ClickableAnchor, ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Component that displays an anchor and a span with the title.\n */\n@Component({\n selector: 'dbx-anchor-content',\n standalone: true,\n imports: [MatIconModule],\n template: `\n @if (iconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ iconSignal() }}</mat-icon>\n }\n @if (titleSignal()) {\n <span>{{ titleSignal() }}</span>\n }\n `,\n host: {\n class: 'dbx-anchor-content'\n }\n})\nexport class DbxAnchorContentComponent implements OnDestroy {\n readonly parent = inject(DbxAnchorComponent, { optional: true });\n\n private readonly _inputAnchor = new BehaviorSubject<Maybe<Partial<ClickableAnchorLink>>>(undefined);\n private readonly _parentAnchor: Observable<Maybe<ClickableAnchor | ClickableAnchorLink>> = this.parent ? this.parent.anchor$ : of(undefined);\n\n readonly anchor$: Observable<Maybe<Partial<ClickableAnchorLink>>> = combineLatest([this._inputAnchor, this._parentAnchor]).pipe(\n map(([input, parent]) => input ?? parent),\n shareReplay(1)\n );\n\n readonly anchorSignal = toSignal(this.anchor$);\n\n readonly iconSignal = computed(() => this.anchorSignal()?.icon);\n readonly titleSignal = computed(() => this.anchorSignal()?.title);\n\n @Input()\n set anchor(anchor: Maybe<Partial<ClickableAnchorLink>>) {\n this._inputAnchor.next(anchor);\n }\n\n ngOnDestroy(): void {\n this._inputAnchor.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { DbxAnchorIconComponent } from './anchor.icon.component';\nimport { DbxLinkComponent } from './anchor.link.component';\nimport { DbxAnchorContentComponent } from './anchor.content.component';\n\n/**\n * All standalone components related to anchors and links.\n */\nexport const DBX_ROUTER_ANCHOR_COMPONENTS = [DbxAnchorComponent, DbxAnchorIconComponent, DbxLinkComponent, DbxAnchorContentComponent];\n\n/**\n * Module that provides anchor and link components.\n *\n * All components are now standalone. This module is provided for backward compatibility.\n */\n@NgModule({\n imports: DBX_ROUTER_ANCHOR_COMPONENTS,\n exports: DBX_ROUTER_ANCHOR_COMPONENTS\n})\nexport class DbxRouterAnchorModule {}\n","import { computed, Directive, inject } from '@angular/core';\nimport { DbxInjectionTemplateConfig } from '@dereekb/dbx-core';\nimport { Observable, distinctUntilChanged, shareReplay, map } from 'rxjs';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Abstract implementation\n */\n@Directive()\nexport abstract class AbstractDbxSegueAnchorDirective {\n readonly parent = inject(DbxAnchorComponent);\n\n readonly anchor$ = this.parent.anchor$;\n readonly templateConfig$: Observable<DbxInjectionTemplateConfig> = this.parent.templateRef$.pipe(\n distinctUntilChanged(),\n map((templateRef) => ({\n templateRef\n })),\n shareReplay(1)\n );\n\n readonly anchorSignal = toSignal(this.anchor$, { initialValue: undefined });\n readonly templateConfigSignal = toSignal(this.templateConfig$, { initialValue: undefined });\n\n readonly targetSignal = computed(() => this.anchorSignal()?.target);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxAnchorListComponent } from './anchorlist.component';\n\n/**\n * @deprecated import standalone DbxAnchorListComponent directly\n */\n@NgModule({\n imports: [DbxAnchorListComponent],\n exports: [DbxAnchorListComponent]\n})\nexport class DbxRouterAnchorListModule {}\n","import { BehaviorSubject, map, Observable, shareReplay, combineLatest, distinctUntilChanged } from 'rxjs';\nimport { Directive, OnDestroy, inject, input } from '@angular/core';\nimport { DbxValueListItem } from '../list.view.value';\nimport { addModifiers, ArrayOrValue, combineMaps, Maybe, Modifier, ModifierMap, removeModifiers } from '@dereekb/util';\nimport { MaybeObservableOrValue, maybeValueFromObservableOrValue, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxValueListItemModifier, provideDbxValueListViewModifier } from '../list.view.value.modifier';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n/**\n * DbxValueListViewModifier implementation\n */\n@Directive({\n selector: 'dbxListItemModifier,[dbxListItemModifier]',\n providers: provideDbxValueListViewModifier(DbxValueListItemModifierDirective),\n standalone: true\n})\nexport class DbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListItemModifier<T, I>, OnDestroy {\n readonly inputModifiers = input<Maybe<ArrayOrValue<Modifier<I>>>, Maybe<string | ArrayOrValue<Modifier<I>>>>(undefined, { alias: 'dbxListItemModifier', transform: (x) => (typeof x === 'string' ? undefined : x) });\n\n private readonly _additionalModifiers = new BehaviorSubject<Maybe<ModifierMap<I>>>(undefined);\n\n readonly modifiers$ = combineLatest([this._additionalModifiers, toObservable(this.inputModifiers)]).pipe(\n map(([modifiers, inputModifiers]) => {\n return combineMaps(modifiers, inputModifiers ? addModifiers(inputModifiers) : undefined);\n }),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._additionalModifiers.complete();\n }\n\n // MARK: Modifiers\n addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._additionalModifiers.next(addModifiers(modifiers, this._additionalModifiers.value));\n }\n\n removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._additionalModifiers.next(removeModifiers(modifiers, this._additionalModifiers.value));\n }\n}\n\n/**\n * Abstract directive used for managing modifyers for a DbxValueListView.\n */\n@Directive()\nexport abstract class AbstractDbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements OnDestroy {\n readonly dbxValueListItemModifier = inject(DbxValueListItemModifier<T, I>);\n\n private _currentLinkedModifiers: Maybe<ArrayOrValue<Modifier<I>>>;\n\n private readonly _modifiers = new BehaviorSubject<MaybeObservableOrValue<ArrayOrValue<Modifier<I>>>>(undefined);\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<I>>>> = this._modifiers.pipe(maybeValueFromObservableOrValue(), distinctUntilChanged());\n\n private readonly _modifiersSub = new SubscriptionObject(\n this.modifiers$.subscribe((modifiers) => {\n this._linkModifiers(modifiers);\n })\n );\n\n ngOnDestroy(): void {\n this._modifiersSub.destroy();\n this._unlinkModifiers();\n }\n\n setModifiers(modifiers: MaybeObservableOrValue<ArrayOrValue<Modifier<I>>>) {\n this._modifiers.next(modifiers);\n }\n\n private _linkModifiers(modifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._unlinkModifiers();\n\n if (modifiers) {\n this.dbxValueListItemModifier.addModifiers(modifiers);\n this._currentLinkedModifiers = modifiers;\n }\n }\n\n private _unlinkModifiers() {\n if (this._currentLinkedModifiers) {\n this.dbxValueListItemModifier.removeModifiers(this._currentLinkedModifiers);\n this._currentLinkedModifiers = undefined;\n }\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, Modifier } from '@dereekb/util';\nimport { map, Observable } from 'rxjs';\nimport { DbxValueListItem } from '../../../layout/list/list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from '../../../layout/list/modifier/list.view.value.modifier.directive';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\nexport type AnchorForValueFunction<T> = (value: T, item: DbxValueListItem<T>) => Maybe<ClickableAnchor>;\n\nexport const DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY = 'router_anchor';\n\n@Directive({\n selector: '[dbxListItemAnchorModifier]',\n standalone: true\n})\nexport class DbxListItemAnchorModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> {\n readonly anchorForItem = input<Maybe<AnchorForValueFunction<T>>>(undefined, { alias: 'dbxListItemAnchorModifier' });\n\n readonly anchorForItemModifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = toObservable(this.anchorForItem).pipe(\n map((anchorForItem) => {\n let modifiers: Maybe<Modifier<DbxValueListItem<T>>>;\n\n if (anchorForItem) {\n modifiers = {\n key: DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.anchor = anchorForItem(x.itemValue, x);\n }\n };\n }\n\n return modifiers;\n })\n );\n\n constructor() {\n super();\n this.setModifiers(this.anchorForItemModifiers$);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListItemAnchorModifierDirective } from './router.list.directive';\n\n/**\n * @deprecated import DbxValueListItemModifierDirective directly instead.\n */\n@NgModule({\n imports: [DbxListItemAnchorModifierDirective],\n exports: [DbxListItemAnchorModifierDirective]\n})\nexport class DbxRouterListModule {}\n","/**\n * Set of screen media width types. Their pixel sizes correspond with the DbxScreenMediaService's configuration.\n *\n * Values:\n * - micro: Screen is considered mobile.\n * - small: Screen is consider small, but larger than mobile.\n * - tablet: Screen is considered tablet size.\n * - large: Screen is considered large than a tablet, but not full size.\n * - full: Screen is greater than large.\n */\nexport type ScreenMediaWidthType = 'micro' | 'small' | 'tablet' | 'large' | 'full';\n\nexport const SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP = {\n micro: 0,\n small: 1,\n tablet: 2,\n large: 3,\n full: 4\n};\n\n/**\n * Describes the current screen's vertical space.\n *\n * Values:\n * - tiny: Screen height is tiny, potentially the size of the navigation alone.\n * - normal: Screen has a normal height.\n */\nexport type ScreenMediaHeightType = 'tiny' | 'normal';\n\n/**\n * Compares the breakpoint with the current width and determines if it is \"active\" or not.\n *\n * The current is considered active if it is bigger or equal to the breakpoint.\n *\n * @param current\n * @param breakpoint\n */\nexport function screenMediaWidthTypeIsActive(current: ScreenMediaWidthType, breakpoint: ScreenMediaWidthType) {\n return compareScreenMediaWidthTypes(current, breakpoint, (a, b) => a >= b);\n}\n\nexport function compareScreenMediaWidthTypes(a: ScreenMediaWidthType, b: ScreenMediaWidthType, compare: (a: number, b: number) => boolean) {\n return compare(SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[a], SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[b]);\n}\n","import { Destroyable } from '@dereekb/util';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { ObservableOrValue, asObservable, initialize } from '@dereekb/rxjs';\nimport { Subject, map, shareReplay, distinctUntilChanged, throttleTime, Observable, combineLatest } from 'rxjs';\nimport { ScreenMediaWidthType, ScreenMediaHeightType, screenMediaWidthTypeIsActive } from './screen';\nimport { Inject, Injectable, inject } from '@angular/core';\n\n/**\n * ScreenMediaService configuration.\n */\nexport abstract class DbxScreenMediaServiceConfig {\n /**\n * The maximum size of a micro screen. Any size bigger than this is considered a small screen or larger.\n */\n abstract microScreenWidthMax: number;\n /**\n * The maximum size of a small screen. Any size bigger than this is considered a tablet screen or larger.\n */\n abstract smallScreenWidthMax: number;\n /**\n * The maximum size of a tablet screen. Any size bigger than this is considered a large screen or larger.\n */\n abstract tabletScreenWidthMax: number;\n /**\n * The maximum size of a large screen. Any size bigger than this is considered full.\n */\n abstract largeScreenWidthMax: number;\n /**\n * The maximum size of a tiny screen. Any size bigger than this is considered normal.\n */\n abstract tinyScreenHeightMax: number;\n}\n\nexport const DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG: DbxScreenMediaServiceConfig = {\n microScreenWidthMax: 360,\n smallScreenWidthMax: 520,\n tabletScreenWidthMax: 786,\n largeScreenWidthMax: 1280,\n tinyScreenHeightMax: 280\n};\n\n/**\n * Service that emits the current view type based on the configuration.\n */\n@Injectable()\nexport class DbxScreenMediaService implements Destroyable {\n private readonly _media = inject(MediaMatcher);\n\n private readonly _microQuery: MediaQueryList;\n private readonly _smallQuery: MediaQueryList;\n private readonly _tabletQuery: MediaQueryList;\n private readonly _largeQuery: MediaQueryList;\n\n private readonly _tinyHeightQuery: MediaQueryList;\n\n private readonly _updateWidth = new Subject<void>();\n private readonly _updateHeight = new Subject<void>();\n\n readonly widthType$: Observable<ScreenMediaWidthType> = this._updateWidth.pipe(\n initialize(() => this._updateWidth.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readWidthType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly heightType$: Observable<ScreenMediaHeightType> = this._updateWidth.pipe(\n initialize(() => this._updateHeight.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readHeightType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(@Inject(DbxScreenMediaServiceConfig) config: DbxScreenMediaServiceConfig) {\n const { microScreenWidthMax, smallScreenWidthMax, tabletScreenWidthMax, largeScreenWidthMax } = config;\n\n this._microQuery = this._media.matchMedia(`screen and (max-width:${microScreenWidthMax}px)`);\n this._smallQuery = this._media.matchMedia(`screen and (max-width:${smallScreenWidthMax}px)`);\n this._tabletQuery = this._media.matchMedia(`screen and (max-width:${tabletScreenWidthMax}px)`);\n this._largeQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n this._tinyHeightQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n const widthHandler: (ev: MediaQueryListEvent) => void = () => this._updateWidth.next();\n const heightHandler: (ev: MediaQueryListEvent) => void = () => this._updateHeight.next();\n\n this._microQuery.onchange = widthHandler;\n this._smallQuery.onchange = widthHandler;\n this._tabletQuery.onchange = widthHandler;\n this._largeQuery.onchange = widthHandler;\n this._tinyHeightQuery.onchange = heightHandler;\n }\n\n destroy(): void {\n this._microQuery.onchange = null;\n this._smallQuery.onchange = null;\n this._tabletQuery.onchange = null;\n this._largeQuery.onchange = null;\n this._updateWidth.complete();\n this._updateHeight.complete();\n }\n\n /**\n * Returns an observable that detects whether or no the current width is greater or equal to the given breakpoint.\n *\n * @param inputBreakpoint\n * @returns\n */\n isBreakpointActive(inputBreakpoint: ObservableOrValue<ScreenMediaWidthType>): Observable<boolean> {\n return combineLatest([this.widthType$, asObservable(inputBreakpoint)]).pipe(\n map(([current, breakpoint]) => screenMediaWidthTypeIsActive(current, breakpoint)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n private _readWidthType(): ScreenMediaWidthType {\n let width: ScreenMediaWidthType;\n\n if (this._microQuery.matches) {\n width = 'micro';\n } else if (this._smallQuery.matches) {\n width = 'small';\n } else if (this._tabletQuery.matches) {\n width = 'tablet';\n } else if (this._largeQuery.matches) {\n width = 'large';\n } else {\n width = 'full';\n }\n\n return width;\n }\n\n private _readHeightType(): ScreenMediaHeightType {\n if (this._tinyHeightQuery) {\n return 'tiny';\n } else {\n return 'normal';\n }\n }\n}\n","import { Observable, combineLatest, map, shareReplay, distinctUntilChanged, switchMap } from 'rxjs';\nimport { ScreenMediaWidthType } from '../../../screen/screen';\nimport { DbxScreenMediaService } from '../../../screen/screen.service';\nimport { applyBestFit, findNext, type Maybe } from '@dereekb/util';\nimport { Component, ChangeDetectionStrategy, inject, input } from '@angular/core';\nimport { ClickableAnchorLinkSegueRef, DbxRouterService, AbstractTransitionDirective, DbxButtonDisplay } from '@dereekb/dbx-core';\nimport { HorizontalConnectionPos } from '@angular/cdk/overlay';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxAnchorComponent } from '../anchor';\nimport { MatTabLink, MatTabNav, MatTabNavPanel } from '@angular/material/tabs';\nimport { DbxIconButtonComponent } from '../../../button/icon/icon.button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\nimport { NgClass } from '@angular/common';\n\ninterface NavAnchorLink {\n readonly selected: boolean;\n readonly anchor: ClickableAnchorLinkSegueRef;\n}\n\nexport type NavBarContentAlign = 'center' | 'left' | 'right';\nexport type NavbarMode = 'bar' | 'button' | 'icon';\nexport type NavbarButtonMode = 'menu' | 'rotate';\n\n/**\n * Component that displays a navbar.\n */\n@Component({\n selector: 'dbx-navbar',\n templateUrl: './navbar.component.html',\n host: {\n class: 'dbx-navbar'\n },\n imports: [DbxAnchorComponent, MatTabNav, MatTabNavPanel, MatTabLink, DbxIconButtonComponent, MatIconModule, MatMenu, MatMenuItem, NgClass, MatMenuTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxNavbarComponent extends AbstractTransitionDirective {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n private readonly _dbxRouterService = inject(DbxRouterService);\n\n /**\n * Whether or not to show the dropwdown caret for a menu\n */\n readonly showMenuCaret = input<boolean>(false);\n\n readonly navAlign = input<HorizontalConnectionPos>('center');\n\n readonly icon = input<Maybe<string>>();\n readonly defaultIcon = input<Maybe<string>>('menu');\n readonly defaultText = input<Maybe<string>>();\n readonly mode = input<Maybe<NavbarMode>>();\n readonly buttonMode = input<NavbarButtonMode>('menu');\n readonly breakpoint = input<ScreenMediaWidthType>('large');\n readonly anchors = input<Maybe<ClickableAnchorLinkSegueRef[]>>([]);\n\n readonly isBreakpointActive$ = this._dbxScreenMediaService.isBreakpointActive(toObservable(this.breakpoint));\n\n readonly mode$ = combineLatest([toObservable(this.mode), this.isBreakpointActive$]).pipe(\n map(([inputMode, breakpointActive]) => {\n return breakpointActive ? (inputMode ?? 'bar') : 'button';\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly anchors$: Observable<NavAnchorLink[]> = combineLatest([toObservable(this.anchors), this.initAndUpdateOnTransitionSuccess$]).pipe(\n map(([anchors]) => {\n const results = (anchors || []).map((anchor) => {\n const selected = this._dbxRouterService.isActive(anchor);\n\n return {\n selected,\n anchor\n };\n });\n\n return applyBestFit(\n results,\n (x) => x.selected,\n (a, b) => this._dbxRouterService.comparePrecision(a.anchor, b.anchor),\n (nonBestFit) => ({ ...nonBestFit, selected: false })\n );\n }),\n shareReplay(1)\n );\n\n readonly selectedAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => x.find((y) => y.selected)));\n readonly nextRotateAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => findNext(x, (y) => y.selected) || x[0]));\n\n readonly hasNoAnchors$ = this.anchors$.pipe(\n map((x) => x.length === 0),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonNavAnchor$ = toObservable(this.buttonMode).pipe(\n switchMap((x) => (x === 'menu' ? this.selectedAnchor$ : this.nextRotateAnchor$)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonDisplay$: Observable<DbxButtonDisplay> = combineLatest([toObservable(this.defaultIcon), toObservable(this.icon), toObservable(this.defaultText), this.buttonNavAnchor$, this.mode$]).pipe(\n map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {\n let content: DbxButtonDisplay;\n\n if (icon) {\n content = { icon, text: defaultText };\n } else if (selectedAnchor) {\n content = { icon: selectedAnchor.anchor.icon ?? defaultIcon, text: selectedAnchor.anchor.title };\n } else {\n content = { icon: defaultIcon ?? 'menu', text: defaultText };\n }\n\n if (mode === 'icon') {\n return { icon: content.icon };\n } else {\n return content;\n }\n }),\n shareReplay(1)\n );\n\n readonly modeSignal = toSignal(this.mode$);\n readonly anchorsSignal = toSignal(this.anchors$);\n readonly buttonDisplaySignal = toSignal(this.buttonDisplay$);\n readonly hasNoAnchorsSignal = toSignal(this.hasNoAnchors$);\n readonly nextRotateAnchorSignal = toSignal(this.nextRotateAnchor$);\n\n // TODO: potentially make the caret depending on the current button display.\n}\n","@switch (modeSignal()) {\n @case ('bar') {\n <!-- Bar -->\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\" [attr.mat-align-tabs]=\"navAlign()\">\n @for (x of anchorsSignal(); track x.anchor) {\n <dbx-anchor [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n }\n </nav>\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n }\n @default {\n <!-- Button -->\n @switch (buttonMode()) {\n <!-- Menu -->\n @case ('menu') {\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplaySignal()\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchorsSignal()\">\n @if (showMenuCaret()) {\n <mat-icon>arrow_drop_down</mat-icon>\n }\n </dbx-icon-button>\n <mat-menu #menu>\n @for (x of anchorsSignal(); track x) {\n <dbx-anchor [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n @if (x.anchor.icon) {\n <mat-icon>{{ x.anchor.icon }}</mat-icon>\n }\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n }\n </mat-menu>\n }\n <!-- Rotate -->\n @case ('rotate') {\n <dbx-anchor [anchor]=\"nextRotateAnchorSignal()?.anchor\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplaySignal()\" [disabled]=\"hasNoAnchorsSignal()\"></dbx-icon-button>\n </dbx-anchor>\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxNavbarComponent } from './navbar.component';\n\n/**\n * @deprecated import DbxNavbarComponent directly\n */\n@NgModule({\n imports: [DbxNavbarComponent],\n exports: [DbxNavbarComponent]\n})\nexport class DbxRouterNavbarModule {}\n","export enum SideNavDisplayMode {\n NONE = 'none',\n MOBILE = 'mobile',\n ICON = 'icon',\n FULL = 'full'\n}\n","import { Component, input, viewChild, inject, ChangeDetectionStrategy, computed, effect } from '@angular/core';\nimport { MatDrawerMode, MatSidenav, MatSidenavModule } from '@angular/material/sidenav';\nimport { DbxScreenMediaService } from '../../../screen/screen.service';\nimport { AbstractTransitionWatcherDirective, ClickableAnchorLinkTree } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { SideNavDisplayMode } from './sidenav';\nimport { NgClass } from '@angular/common';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { DbxAnchorListComponent } from '../anchorlist/anchorlist.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, Observable, shareReplay } from 'rxjs';\n\nexport interface DbxSidenavSidebarState {\n readonly mode: SideNavDisplayMode;\n readonly drawer: MatDrawerMode;\n readonly open?: boolean;\n}\n\n/**\n * Navigation component that sits at the side of an app.\n */\n@Component({\n selector: 'dbx-sidenav',\n exportAs: 'sidenav',\n template: `\n <mat-sidenav-container class=\"dbx-sidenav\" [ngClass]=\"sizeCssClassSignal()\">\n <mat-sidenav class=\"dbx-sidenav-nav\" [disableClose]=\"disableBackdropSignal()\" [mode]=\"drawerSignal()\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-anchor-list class=\"dbx-sidenav-anchor-list\" [anchors]=\"anchors()\"></dbx-anchor-list>\n <span class=\"spacer\"></span>\n <ng-content select=\"[bottom]\"></ng-content>\n <div class=\"dbx-sidenav-nav-end\"></div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n </mat-sidenav-container>\n `,\n imports: [NgClass, MatSidenavModule, DbxRouterAnchorModule, DbxAnchorListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavComponent extends AbstractTransitionWatcherDirective {\n private readonly _screenMediaService = inject(DbxScreenMediaService);\n\n readonly sidenav = viewChild.required<MatSidenav>(MatSidenav);\n\n readonly anchors = input<Maybe<ClickableAnchorLinkTree[]>>();\n\n readonly mode$: Observable<SideNavDisplayMode> = this._screenMediaService.widthType$.pipe(\n distinctUntilChanged(),\n map((width) => {\n let mode!: SideNavDisplayMode;\n\n switch (width) {\n case 'micro':\n case 'small':\n mode = SideNavDisplayMode.MOBILE;\n break;\n case 'tablet':\n mode = SideNavDisplayMode.ICON;\n break;\n case 'large':\n case 'full':\n mode = SideNavDisplayMode.FULL;\n break;\n }\n\n return mode;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly modeSignal = toSignal(this.mode$);\n readonly disableBackdropSignal = computed(() => this.modeSignal() !== SideNavDisplayMode.MOBILE);\n readonly sizeCssClassSignal = computed(() => `dbx-sidenav-${this.modeSignal()}`);\n\n readonly stateSignal = computed(() => {\n const mode = this.modeSignal();\n\n let drawer: MatDrawerMode = 'over';\n let open: boolean = false;\n\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n drawer = 'over';\n open = false;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n drawer = 'side';\n open = true;\n break;\n }\n\n return {\n mode,\n drawer,\n open\n };\n });\n\n readonly drawerSignal = computed(() => this.stateSignal().drawer);\n\n protected readonly _stateSignalToggleEffect = effect(() => {\n const state = this.stateSignal();\n\n if (state.open != null) {\n this._toggleNav(state.open, true);\n }\n });\n\n protected updateForSuccessfulTransition(): void {\n this.closeNav();\n }\n\n closeNav(): void {\n this.toggleNav(false);\n }\n\n toggleNav(open?: boolean): void {\n this._toggleNav(open);\n }\n\n private _toggleNav(toggleOpen?: Maybe<boolean>, forced = false): void {\n toggleOpen = toggleOpen ?? !this.sidenav().opened;\n\n const mode = this.stateSignal().mode;\n\n let open: Maybe<boolean>;\n\n if (!forced) {\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n open = toggleOpen;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n // Do nothing. Should be always open.\n break;\n }\n } else {\n open = toggleOpen;\n }\n\n if (open != null) {\n if (open) {\n this.sidenav().open();\n } else {\n this.sidenav().close();\n }\n }\n }\n}\n","import { Component, input, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport const DEFAULT_DBX_SIDENAV_MENU_ICON = 'view_sidebar';\n\n/**\n * Button used to interface with a parent sidenav.\n */\n@Component({\n selector: 'dbx-sidenav-button',\n template: `\n @if (showMenuButtonSignal()) {\n <button class=\"dbx-sidenav-button\" mat-icon-button (click)=\"toggleNav()\" aria-label=\"open sidenav button\">\n <mat-icon>{{ sidenavMenuIcon() }}</mat-icon>\n </button>\n }\n `,\n imports: [MatIconModule, MatButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavButtonComponent {\n readonly parent = inject(DbxSidenavComponent);\n readonly mode$ = this.parent.mode$;\n readonly showMenuButton$ = this.mode$.pipe(map((x) => x === SideNavDisplayMode.MOBILE));\n readonly showMenuButtonSignal = toSignal(this.showMenuButton$, { initialValue: false });\n\n readonly sidenavMenuIcon = input<string, Maybe<string>>(DEFAULT_DBX_SIDENAV_MENU_ICON, {\n transform: (value: Maybe<string>) => value || DEFAULT_DBX_SIDENAV_MENU_ICON\n });\n\n toggleNav() {\n this.parent.toggleNav();\n }\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxPagebarComponent } from '../../../layout/bar/pagebar.component';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxButtonSpacerDirective } from '../../../button/button.spacer.directive';\n\n/**\n * Pre-configured pagebar used with DbxSidenavComponent.\n */\n@Component({\n selector: 'dbx-sidenav-pagebar',\n template: `\n <dbx-pagebar class=\"dbx-sidenav-pagebar\" [color]=\"color()\">\n <span left>\n <dbx-sidenav-button [sidenavMenuIcon]=\"sidenavMenuIcon()\"></dbx-sidenav-button>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content left></ng-content>\n </span>\n <ng-content right></ng-content>\n </dbx-pagebar>\n `,\n imports: [DbxPagebarComponent, DbxSidenavButtonComponent, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavPagebarComponent extends DbxPagebarComponent {\n readonly sidenavMenuIcon = input<Maybe<string>>();\n}\n","import { switchMap, shareReplay, map, of } from 'rxjs';\nimport { Component, input, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from '../../../layout/bar/bar';\nimport { SideNavDisplayMode } from './sidenav';\nimport { NgClass } from '@angular/common';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Pre-configured page used with DbxSidenavComponent.\n *\n * Can optionally be configured to only show the pagebar while in mobile mode.\n */\n@Component({\n selector: 'dbx-sidenav-page',\n template: `\n <dbx-sidenav-pagebar [sidenavMenuIcon]=\"sidenavMenuIcon()\" [color]=\"color()\">\n <ng-content left select=\"[navLeft]\"></ng-content>\n <ng-content select=\"[navRight]\"></ng-content>\n </dbx-sidenav-pagebar>\n <div class=\"dbx-content-page dbx-sidenav-page-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block',\n '[class.dbx-pagebar-hide]': 'hidePagebarSignal()'\n },\n imports: [NgClass, DbxSidenavPagebarComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavPageComponent {\n readonly parent = inject(DbxSidenavComponent);\n\n readonly color = input<Maybe<DbxBarColor>>();\n readonly sidenavMenuIcon = input<Maybe<string>>();\n readonly mobileOnly = input<boolean>(false);\n\n readonly mobileOnly$ = toObservable(this.mobileOnly);\n\n readonly hidePagebar$ = this.mobileOnly$.pipe(\n switchMap((mobileOnly) => (mobileOnly ? this.parent.mode$.pipe(map((x) => x !== SideNavDisplayMode.MOBILE)) : of(false))),\n shareReplay(1)\n );\n\n readonly hidePagebarSignal = toSignal(this.hidePagebar$, { initialValue: false });\n}\n","import { input, Directive, inject, computed, Signal } from '@angular/core';\nimport { AbstractIfDirective } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, asArray, filterMaybeArrayValues } from '@dereekb/util';\nimport { shareReplay, switchMap, distinctUntilChanged, map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Structural directive that displays the content if the Sidenav has a specific sidenav size.\n */\n@Directive({\n selector: '[dbxIfSidenavDisplayMode]',\n standalone: true\n})\nexport class DbxIfSidenavDisplayModeDirective extends AbstractIfDirective {\n readonly dbxSidenavComponent = inject(DbxSidenavComponent);\n\n readonly modes = input<Maybe<ArrayOrValue<SideNavDisplayMode | string>>>(undefined, { alias: 'dbxIfSidenavDisplayMode' });\n\n readonly modesSetSignal: Signal<Set<SideNavDisplayMode>> = computed(() => {\n const modes = this.modes();\n return new Set(filterMaybeArrayValues(asArray(modes as SideNavDisplayMode)));\n });\n\n readonly modes$ = toObservable(this.modesSetSignal);\n\n readonly show$ = this.modes$.pipe(\n switchMap((modes) => {\n return this.dbxSidenavComponent.mode$.pipe(map((mode) => modes.has(mode)));\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly showSignal = toSignal(this.show$, { initialValue: false });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { DbxSidenavPageComponent } from './sidenav.page.component';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxIfSidenavDisplayModeDirective } from './sidenav.ifdisplaymode.directive';\n\nconst importsAndExports = [DbxIfSidenavDisplayModeDirective, DbxSidenavComponent, DbxSidenavButtonComponent, DbxSidenavPagebarComponent, DbxSidenavPageComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxRouterSidenavModule {}\n","export * from './sidenav.component';\nexport * from './sidenav.module';\nexport * from './sidenav.button.component';\nexport * from './sidenav.pagebar.component';\nexport * from './sidenav.page.component';\nexport * from './sidenav.ifdisplaymode.directive';\nexport * from './sidenav';\n// export * from './side.item.component';\n// export * from './side.title.component';\n// export * from './side.title.content.component';\n","import { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from './anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from './anchorlist/anchorlist.module';\nimport { DbxRouterListModule } from './list/list.module';\nimport { DbxRouterNavbarModule } from './navbar/navbar.module';\nimport { DbxRouterSidenavModule } from './sidenav/sidenav.module';\n\n@NgModule({\n exports: [DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxRouterListModule, DbxRouterNavbarModule, DbxRouterSidenavModule]\n})\nexport class DbxRouterLayoutModule {}\n","import { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * SegueAnchor implementation for Angular Router.\n */\n@Component({\n templateUrl: './anchor.component.html',\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxAngularRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {}\n","<a class=\"dbx-anchor-a\" [attr.target]=\"targetSignal()\">\n <dbx-injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxAngularRouterSegueAnchorComponent } from './anchor.component';\n\n/**\n * Provides a DbxRouterWebProviderConfig that configures the app to use Angular Router for anchors.\n *\n * @returns EnvironmentProviders\n */\nexport function provideDbxRouterWebAngularRouterProviderConfig(): EnvironmentProviders {\n const config: DbxRouterWebProviderConfig = {\n anchorSegueRefComponent: {\n componentClass: DbxAngularRouterSegueAnchorComponent\n }\n };\n\n const providers: Provider[] = [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: config\n }\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { Component, computed } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\nimport { Obj, StateOrName, TransitionOptions, UISref } from '@uirouter/angular';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { AsyncPipe } from '@angular/common';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * SegueAnchor implementation for UIRouter.\n */\n@Component({\n templateUrl: './anchor.component.html',\n imports: [UISref, DbxInjectionComponent, AsyncPipe],\n standalone: true\n})\nexport class DbxUIRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {\n private readonly _parentAnchorSignal = toSignal(this.parent.anchor$, { initialValue: undefined });\n\n readonly uiSrefSignal = computed<StateOrName>(() => (this._parentAnchorSignal()?.ref ?? '') as StateOrName);\n readonly uiParamsSignal = computed<Obj | undefined>(() => this._parentAnchorSignal()?.refParams);\n readonly uiOptionsSignal = computed<TransitionOptions>(() => this._parentAnchorSignal()?.refOptions ?? ({} as TransitionOptions));\n}\n","<a class=\"dbx-anchor-a dbx-anchor-sref\" [attr.target]=\"targetSignal()\" [uiSref]=\"uiSrefSignal()\" [uiParams]=\"uiParamsSignal()\" [uiOptions]=\"uiOptionsSignal()\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxUIRouterSegueAnchorComponent } from './anchor.component';\n\n/**\n * Provides a DbxRouterWebProviderConfig that configures the app to use UIRouter for anchors.\n \n * @returns EnvironmentProviders\n */\nexport function provideDbxRouterWebUiRouterProviderConfig(): EnvironmentProviders {\n const config: DbxRouterWebProviderConfig = {\n anchorSegueRefComponent: {\n componentClass: DbxUIRouterSegueAnchorComponent\n }\n };\n\n const providers: Provider[] = [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: config\n }\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, input } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { delay, Observable } from 'rxjs';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { type Maybe } from '@dereekb/util';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxTwoColumnColumnHeadDirective } from './two.column.head.directive';\nimport { DbxAnchorComponent } from '../../../router';\n\n/**\n * Optional responsive component that wraps content on the right side and shows a navigation bar.\n *\n * When rendered it will trigger the context to show left.\n */\n@Component({\n selector: 'dbx-two-column-right',\n template: `\n <dbx-two-column-head [block]=\"block()\" [full]=\"full()\">\n <!-- Back Buttons -->\n @if (showBackSignal()) {\n <button mat-icon-button class=\"back-button\" (click)=\"backClicked()\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n }\n @if (alternativeBackRefSignal()) {\n <dbx-anchor [anchor]=\"alternativeBackRefSignal()\">\n <button mat-icon-button class=\"back-button\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </dbx-anchor>\n }\n @if (header()) {\n <span class=\"right-nav-title\">{{ header() }}</span>\n }\n <span class=\"right-nav-spacer\"></span>\n <span class=\"spacer\"></span>\n <ng-content select=\"[nav]\"></ng-content>\n </dbx-two-column-head>\n <div class=\"dbx-two-column-right-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-two-column-right d-block'\n },\n imports: [DbxTwoColumnColumnHeadDirective, MatButtonModule, MatIconModule, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxTwoColumnRightComponent {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly full = input<boolean>(false);\n readonly header = input<Maybe<string>>();\n readonly block = input<Maybe<boolean>>();\n\n readonly showBack = input<boolean>(true);\n\n readonly alternativeBackRef$: Observable<Maybe<ClickableAnchor>> = this.twoColumnsContextStore.backRef$;\n readonly alternativeBackRefSignal = toSignal(this.alternativeBackRef$.pipe(delay(0)));\n\n /**\n * Minimum right-side width allowed in pixels.\n */\n readonly minRightWidth = input<Maybe<number>>();\n\n protected readonly _setMinRightWidthEffect = effect(\n () => {\n this.twoColumnsContextStore.setMinRightWidth(this.minRightWidth());\n },\n { allowSignalWrites: true }\n );\n\n readonly showBackSignal = computed(() => {\n const showBack = this.showBack();\n const alternativeBackRef = this.alternativeBackRefSignal();\n\n // show the back signal if true and there is no alternative back\n return showBack && !alternativeBackRef;\n });\n\n constructor() {\n this.twoColumnsContextStore.setHasRight(true);\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxRouterService, isSegueRefActive } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { shareReplay, distinctUntilChanged, Subscription } from 'rxjs';\nimport { isNot } from '@dereekb/rxjs';\n\n/**\n * Used with a DbxTwoColumnComponent to control showing right when the current route is a child of the backRef.\n */\n@Directive({\n selector: '[dbxTwoColumnSrefShowRight]',\n standalone: true\n})\nexport class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n private readonly _dbxRouterService = inject(DbxRouterService);\n\n readonly showRight$ = this._twoColumnsContextStore.backRef$.pipe(\n // Only show right when the backRef is not exactly active\n isSegueRefActive({ dbxRouterService: this._dbxRouterService, activeExactly: true }),\n isNot(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor() {\n super();\n this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$) as Subscription;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnSrefDirective } from './two.column.sref.directive';\nimport { DbxTwoColumnComponent } from './two.column.component';\nimport { DbxTwoColumnColumnHeadDirective } from './two.column.head.directive';\nimport { DbxTwoColumnRightComponent } from './two.column.right.component';\nimport { DbxTwoColumnBackDirective } from './two.column.back.directive';\nimport { DbxTwoColumnFullLeftDirective } from './two.column.full.left.directive';\nimport { DbxTwoColumnContextDirective } from './two.column.context.directive';\nimport { DbxTwoColumnSrefShowRightDirective } from './two.column.sref.showright.directive';\n\nconst importsAndExports = [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadDirective, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTwoColumnLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from './two';\nimport { DbxOneColumnComponent } from './one';\n\nconst importsAndExports = [DbxOneColumnComponent, DbxTwoColumnLayoutModule];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxColumnLayoutModule {}\n","import { computed, Directive, input } from '@angular/core';\nimport { DbxThemeColor } from '../style/style';\n\n/**\n * Section used to wrap content in a border with internal padding.\n */\n@Directive({\n selector: 'dbx-content-border,[dbxContentBorder]',\n host: {\n class: 'd-block dbx-content-border',\n '[class]': `classConfig()`\n },\n standalone: true\n})\nexport class DbxContentBorderDirective {\n readonly color = input<DbxThemeColor>('background');\n readonly classConfig = computed(() => `dbx-content-border-${this.color()}`);\n}\n","import { Directive, input } from '@angular/core';\n\n/**\n * Component used to wrap content in a box with optionally elevation.\n */\n@Directive({\n selector: 'dbx-content-box, [dbxContentBox]',\n host: {\n class: 'd-block dbx-content-box',\n '[class.dbx-content-elevate]': 'elevate()',\n '[class.dbx-content-box-wide]': 'wide()'\n },\n standalone: true\n})\nexport class DbxContentBoxDirective {\n readonly elevate = input<boolean>(true);\n readonly wide = input<boolean>(true);\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content,[dbxContent]',\n host: {\n class: 'd-block dbx-content'\n },\n standalone: true\n})\nexport class DbxContentDirective {}\n","import { Directive, input } from '@angular/core';\n\n/**\n * Section used to elevate content in a pre-configured manner.\n */\n@Directive({\n selector: 'dbx-content-elevate,[dbxContentElevate]',\n host: {\n class: 'd-block',\n '[class.dbx-content-elevate]': 'elevate()'\n },\n standalone: true\n})\nexport class DbxContentElevateDirective {\n readonly elevate = input<boolean>(true);\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content-page,[dbxContentPage]',\n host: {\n class: 'd-block dbx-content-page'\n },\n standalone: true\n})\nexport class DbxContentPageDirective {}\n","import { Directive, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Component used to wrap content in a pit with a label.\n */\n@Directive({\n selector: 'dbx-content-pit, [dbxContentPit]',\n host: {\n class: 'd-block dbx-content-pit',\n '[class.dbx-content-pit-scrollable]': 'scrollable()'\n },\n standalone: true\n})\nexport class DbxContentPitDirective {\n readonly scrollable = input<Maybe<boolean>>();\n}\n","import { DbxContentElevateDirective } from './content.elevate.directive';\nimport { NgModule } from '@angular/core';\nimport { DbxContentDirective } from './content.directive';\nimport { DbxContentBorderDirective } from './content.border.directive';\nimport { DbxContentContainerDirective } from './content.container.directive';\nimport { DbxContentBoxDirective } from './content.box.directive';\nimport { DbxContentPageDirective } from './content.page.directive';\nimport { DbxContentPitDirective } from './content.pit.directive';\n\nconst importsAndExports = [\n //\n DbxContentDirective,\n DbxContentContainerDirective,\n DbxContentBorderDirective,\n DbxContentElevateDirective,\n DbxContentBoxDirective,\n DbxContentPageDirective,\n DbxContentPitDirective\n];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxContentLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\n\n/**\n * Toolbar-like component that wraps content. Generally sits at the top of a page.\n */\n@Component({\n selector: 'dbx-flag',\n template: `\n <div class=\"dbx-flag\">\n <mat-toolbar [color]=\"color()\">\n <ng-content></ng-content>\n </mat-toolbar>\n </div>\n `,\n imports: [MatToolbarModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFlagComponent {\n readonly color = input<ThemePalette>('accent');\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Pre-configured dbx-flag prompt to do something.\n */\n@Component({\n selector: 'dbx-flag-prompt',\n template: `\n <dbx-flag [color]=\"color()\">\n <span class=\"dbx-flag-prompt\">{{ text() }}</span>\n <span class=\"dbx-flag-spacer\"></span>\n <ng-content></ng-content>\n </dbx-flag>\n `,\n imports: [DbxFlagComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFlagPromptComponent {\n readonly color = input<ThemePalette>('accent');\n readonly text = input<Maybe<string>>();\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { DbxFlagPromptComponent } from './flag.prompt.component';\n\nconst importsAndExports = [DbxFlagComponent, DbxFlagPromptComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxFlagLayoutModule {}\n","import { ScreenMediaWidthType } from '../../screen/screen';\nimport { DbxScreenMediaService } from '../../screen/screen.service';\nimport { Directive, inject, input } from '@angular/core';\nimport { map, distinctUntilChanged, shareReplay } from 'rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\n\n/**\n * Used to declare a dbxFlexGroup.\n */\n@Directive({\n selector: '[dbxFlexGroup]',\n host: {\n '[class.dbx-flex-group]': 'content()',\n '[class.dbx-flex-group-break-to-column]': 'breakToColumn()',\n '[class.dbx-flex-group-relative]': 'relative()',\n '[class.dbx-flex-group-small]': 'smallSignal()'\n },\n standalone: true\n})\nexport class DbxFlexGroupDirective extends AbstractSubscriptionDirective {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n\n readonly content = input<boolean>(true);\n readonly breakToColumn = input<boolean>(false);\n readonly relative = input<boolean>(false);\n\n readonly breakpoint = input<ScreenMediaWidthType, Maybe<ScreenMediaWidthType>>('tablet', { transform: (x) => x ?? 'tablet' });\n\n readonly isSmallScreen$ = this._dbxScreenMediaService.isBreakpointActive(toObservable(this.breakpoint)).pipe(\n map((x) => !x),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly smallSignal = toSignal(this.isSmallScreen$, { initialValue: false });\n}\n","import { Directive, input, computed } from '@angular/core';\nimport { DbxFlexSize } from './flex';\n\n/**\n * Applies the proper dbx-flex size class based on the input.\n */\n@Directive({\n selector: '[dbxFlexSize]',\n host: {\n '[class]': 'cssClassSignal()'\n },\n standalone: true\n})\nexport class DbxFlexSizeDirective {\n readonly dbxFlexSize = input.required<DbxFlexSize>();\n readonly cssClassSignal = computed(() => `dbx-flex-${this.dbxFlexSize()}`);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFlexGroupDirective } from './flex.group.directive';\nimport { DbxFlexSizeDirective } from './flex.size.directive';\n\nconst importsAndExports = [DbxFlexGroupDirective, DbxFlexSizeDirective];\n\n/**\n * @deprecated Import DbxFlexGroupDirective and DbxFlexSizeDirective instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxFlexLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * Section piece that puts an icon on the left, and arbitrary content on the right with a header.\n */\n@Component({\n selector: 'dbx-icon-item',\n template: `\n <div class=\"dbx-icon-item\">\n @if (icon()) {\n <div class=\"left\">\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n }\n <div class=\"right\">\n @if (header()) {\n <h3 class=\"dbx-icon-item-header\">{{ header() }}</h3>\n }\n <div class=\"right-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n `,\n standalone: true,\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxIconItemComponent {\n readonly icon = input<Maybe<string>>();\n readonly header = input<Maybe<string>>();\n}\n","import { ChangeDetectionStrategy, Component, InjectionToken, inject } from '@angular/core';\nimport { DBX_VALUE_LIST_VIEW_ITEM, DbxValueListItem } from '../list.view.value';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { MatIconModule } from '@angular/material/icon';\n\nexport const DBX_LIST_VIEW_DEFAULT_META_ICON = new InjectionToken<string>('DBX_LIST_VIEW_DEFAULT_META_ICON');\n\nexport interface DbxListViewMetaIconConfig {\n readonly icon?: Maybe<string>;\n}\n\n@Component({\n selector: 'dbx-list-view-meta-icon',\n template: `\n <mat-icon class=\"dbx-list-view-meta-icon\">{{ icon }}</mat-icon>\n `,\n standalone: true,\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxListViewMetaIconComponent {\n readonly item = inject<DbxValueListItem<unknown, DbxListViewMetaIconConfig>>(DBX_VALUE_LIST_VIEW_ITEM, { optional: true });\n readonly defaultIcon = inject<Maybe<string>>(DBX_LIST_VIEW_DEFAULT_META_ICON, { optional: true });\n\n readonly icon: Maybe<string> = this.item?.meta?.icon ?? this.defaultIcon;\n\n static metaConfig(defaultIcon?: Maybe<string>): DbxInjectionComponentConfig<DbxListViewMetaIconConfig> {\n return {\n componentClass: DbxListViewMetaIconComponent,\n providers: [\n {\n provide: DBX_LIST_VIEW_DEFAULT_META_ICON,\n useValue: defaultIcon\n }\n ]\n };\n }\n}\n","import { InjectionToken, Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { PrimativeKey } from '@dereekb/util';\nimport { DbxListTitleGroupData } from './list.view.value.group.title';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgClass } from '@angular/common';\n\nexport const DBX_LIST_TITLE_GROUP_DATA = new InjectionToken<unknown>('DbxListTitleGroupData');\n\n/**\n * Abstract DbxListTitleGroupHeaderComponent that already has the data injected.\n */\nexport abstract class AbstractDbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> {\n readonly data = inject<D>(DBX_LIST_TITLE_GROUP_DATA);\n}\n\n/**\n * The default group header component.\n */\n@Component({\n selector: 'dbx-list-title-group-header',\n template: `\n <div class=\"dbx-list-item-padded dbx-list-two-line-item\" [ngClass]=\"{ 'dbx-list-two-line-item-with-icon': icon }\">\n @if (icon) {\n <mat-icon class=\"item-icon\">{{ icon }}</mat-icon>\n }\n <div class=\"item-left\">\n <div class=\"mat-subtitle-2\">{{ title }}</div>\n @if (hint) {\n <div class=\"item-details\">{{ hint }}</div>\n }\n </div>\n </div>\n `,\n imports: [NgClass, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-list-title-group-header'\n },\n standalone: true\n})\nexport class DbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> extends AbstractDbxListTitleGroupHeaderComponent<O, D> {\n readonly icon = this.data.icon;\n readonly title = this.data.title;\n readonly hint = this.data.hint;\n}\n","import { Directive, input, StaticProvider } from '@angular/core';\nimport { DbxValueListItem, DbxValueListItemConfig } from '../list.view.value';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, DbxValueListViewGroupValuesFunction, provideDbxValueListViewGroupDelegate } from './list.view.value.group';\nimport { map } from 'rxjs';\nimport { Building, Maybe, PrimativeKey, compareWithMappedValuesFunction, makeValuesGroupMap } from '@dereekb/util';\nimport { DbxListTitleGroupData, DbxListTitleGroupTitleDelegate } from './list.view.value.group.title';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { DbxListTitleGroupHeaderComponent, DBX_LIST_TITLE_GROUP_DATA } from './list.view.value.group.title.header.component';\n\n/**\n * Delegate used to for grouping DbxValueListItemConfig<T, I> values.\n */\n@Directive({\n selector: '[dbxListTitleGroup]',\n providers: [provideDbxValueListViewGroupDelegate(DbxListTitleGroupDirective)],\n standalone: true\n})\nexport class DbxListTitleGroupDirective<T, O extends PrimativeKey = PrimativeKey, D extends DbxListTitleGroupData<O> = DbxListTitleGroupData<O>, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListViewGroupDelegate<D, T, I> {\n readonly delegate = input<Maybe<DbxListTitleGroupTitleDelegate<T, O, D, I>>>(undefined, { alias: 'dbxListTitleGroup' });\n\n private readonly _delegate$ = toObservable(this.delegate);\n\n readonly groupValues: DbxValueListViewGroupValuesFunction<D, T, I, unknown, unknown> = (items: DbxValueListItemConfig<T, I>[]) => {\n return this._delegate$.pipe(\n map((delegate) => {\n let groups: DbxValueListItemGroup<D, T, I>[];\n\n if (delegate != null) {\n const groupsValuesMap = makeValuesGroupMap(items, delegate.groupValueForItem);\n const { sortGroupsByData, cssClasses: inputCssClasses } = delegate;\n const cssClassesForAllGroups = inputCssClasses ?? [];\n\n const componentClass = delegate.headerComponentClass ?? DbxListTitleGroupHeaderComponent;\n const { dataForGroupValue, footerComponentClass } = delegate;\n\n groups = Array.from(groupsValuesMap.entries()).map(([value, items]) => {\n const data = dataForGroupValue(value as O, items);\n (data as Building<D>).value = value as O;\n const cssClasses = data.cssClasses ? [...cssClassesForAllGroups, ...data.cssClasses] : cssClassesForAllGroups;\n\n const providers: StaticProvider[] = [\n {\n provide: DBX_LIST_TITLE_GROUP_DATA,\n useValue: data\n }\n ];\n\n const group: DbxValueListItemGroup<D, T, I> = {\n id: String(value),\n data,\n items,\n headerConfig: { componentClass, providers },\n footerConfig: footerComponentClass ? { componentClass: footerComponentClass, providers } : undefined,\n cssClasses\n };\n\n return group;\n });\n\n if (sortGroupsByData) {\n groups.sort(compareWithMappedValuesFunction((x) => x.data, sortGroupsByData));\n }\n } else {\n groups = [\n {\n id: '_',\n data: { value: null as any, title: '' } as D,\n items\n }\n ];\n }\n\n return groups;\n })\n );\n };\n}\n","import { Directive, input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from '../list.view.value';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY = 'disable_ripple_anchor';\n\nexport const DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.rippleDisabled || !item.anchor || (!item.anchor.ref && !item.anchor.url && !item.anchor.onClick);\n};\n\n@Directive({\n selector: 'dbxListItemDisableRippleModifier,[dbxListItemDisableRippleModifier]',\n standalone: true\n})\nexport class DbxListItemDisableRippleModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n readonly disableRippleForItem = input<Maybe<DbxValueListItemDecisionFunction<T>>, Maybe<string | DbxValueListItemDecisionFunction<T>>>(undefined, { alias: 'dbxListItemDisableRippleModifier', transform: (x) => (typeof x !== 'string' ? x : undefined) });\n\n readonly disableRippleForItemModifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = toObservable(this.disableRippleForItem).pipe(\n map((x) => x ?? DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION),\n map((disableRippleForItem) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n if (disableRippleForItem(x)) {\n x.rippleDisabled = true;\n }\n }\n };\n\n return modifiers;\n })\n );\n\n constructor() {\n super();\n this.setModifiers(this.disableRippleForItemModifiers$);\n }\n}\n","import { Directive, input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from '../list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\nexport const DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY = 'is_selected_item_modifier';\n\nexport const DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.selected ?? false;\n};\n\n@Directive({\n selector: 'dbxListItemIsSelectedModifier,[dbxListItemIsSelectedModifier]',\n standalone: true\n})\nexport class DbxListItemIsSelectedModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n readonly listItemIsSelected = input.required<Maybe<DbxValueListItemDecisionFunction<T>>, Maybe<string | DbxValueListItemDecisionFunction<T>>>({ alias: 'dbxListItemIsSelectedModifier', transform: (x) => (typeof x !== 'string' ? x : undefined) });\n\n readonly listItemIsSelectedModifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = toObservable(this.listItemIsSelected).pipe(\n map((x) => x ?? DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION),\n map((listItemIsSelected) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.selected = listItemIsSelected(x);\n }\n };\n\n return modifiers;\n })\n );\n\n constructor() {\n super();\n this.setModifiers(this.listItemIsSelectedModifiers$);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { DbxListItemDisableRippleModifierDirective } from './list.view.value.modifier.ripple.directive';\nimport { DbxListItemIsSelectedModifierDirective } from './list.view.value.modifier.selection.directive';\n\nconst importsAndExports = [DbxValueListItemModifierDirective, DbxListItemDisableRippleModifierDirective, DbxListItemIsSelectedModifierDirective];\n\n/**\n * Exports all dbx-list modifier-related directives.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxListModifierModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Component that is centered for use within an empty list.\n */\n@Component({\n selector: 'dbx-list-empty-content',\n template: `\n <div class=\"dbx-list-empty-content\">\n <ng-content></ng-content>\n </div>\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxListEmptyContentComponent {}\n","import { NgModule } from '@angular/core';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { DbxListTitleGroupDirective } from './group/list.view.value.group.title.directive';\nimport { DbxListViewMetaIconComponent } from './meta/list.view.meta.icon.component';\nimport { DbxListModifierModule } from './modifier/list.modifier.module';\n\nconst importsAndExports = [\n // directives\n DbxListEmptyContentComponent,\n DbxListViewMetaIconComponent,\n DbxListTitleGroupDirective,\n DbxListModifierModule\n];\n\n/**\n * Contains all supporting list components and directives.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxListModule {}\n","import { map, shareReplay, distinctUntilChanged, of } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MatListModule, MatSelectionList, MatSelectionListChange } from '@angular/material/list';\nimport { DbxListSelectionMode, ListSelectionStateItem } from './list.view';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxValueListViewContentComponent, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION } from './list.view.value.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nexport interface DbxSelectionValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n readonly multiple?: boolean;\n}\n\n// MARK: DbxSelectionValueListViewContentComponent\n/**\n * Content view for a DbxSelectionValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-selection-list-view-content',\n template: `\n @switch (selectionMode()) {\n @case ('view') {\n <dbx-list-view-content [items]=\"items()\"></dbx-list-view-content>\n }\n @default {\n <mat-selection-list [disabled]=\"disabledSignal()\" [multiple]=\"multiple()\" (selectionChange)=\"matSelectionChanged($event)\">\n @for (item of items(); track trackByFunctionSignal()($index, item)) {\n <mat-list-option class=\"dbx-list-view-item\" [selected]=\"item.selected\" [disabled]=\"item.disabled\" [value]=\"item.itemValue\" (click)=\"onClickValue(item.itemValue)\">\n @if (item.icon) {\n <mat-icon matListItemIcon>{{ item.icon }}</mat-icon>\n }\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </mat-list-option>\n }\n </mat-selection-list>\n }\n }\n `,\n host: {\n class: 'dbx-list-view dbx-selection-list-view'\n },\n imports: [MatSelectionList, MatListModule, MatIconModule, DbxInjectionComponent, DbxValueListViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSelectionValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> {\n readonly multiple = input<Maybe<boolean>>();\n readonly selectionMode = input<Maybe<DbxListSelectionMode>>();\n readonly trackByFunctionSignal = toSignal(this.trackBy$, { initialValue: DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION });\n\n constructor() {\n super();\n if (!this.dbxListView.selectionChange) {\n throw new Error('DbxSelectionValueListViewContentComponent(): Parent dbxListView is missing a required selectionChange output ref.');\n }\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n // asserted in constructor\n this.dbxListView.selectionChange?.emit({ items });\n }\n}\n\n// MARK: DbxSelectionValueListViewComponent\n/**\n * Renders a selection list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-selection-list-view',\n template: `\n <dbx-selection-list-view-content [selectionMode]=\"selectionModeSignal()\" [multiple]=\"multipleSignal()\" [items]=\"itemsSignal()\"></dbx-selection-list-view-content>\n `,\n standalone: true,\n imports: [DbxSelectionValueListViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSelectionValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewDirective<T, I, V, DbxSelectionValueListViewConfig<T, I, V>> {\n readonly selectionMode$ = (this.dbxListView.selectionMode$ ?? of('select')).pipe(\n map((x) => x ?? 'select'),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectionModeSignal = toSignal(this.selectionMode$, { initialValue: 'select' as DbxListSelectionMode });\n readonly multipleSignal = computed(() => this.config()?.multiple ?? true);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListComponent } from './list.component';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { DbxSelectionValueListViewContentComponent, DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\nimport { DbxValueListViewContentComponent, DbxValueListViewComponent, DbxValueListViewContentGroupComponent } from './list.view.value.component';\nimport { DbxValueListGridViewContentComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent } from './grid/list.grid.view.component';\nimport { DbxListModifierModule } from './modifier/list.modifier.module';\nimport { DbxListTitleGroupDirective } from './group';\n\nconst importsAndExports = [\n // modules\n DbxListModifierModule,\n // components/directives\n DbxListEmptyContentComponent,\n DbxListComponent,\n DbxValueListViewComponent,\n DbxValueListViewContentComponent,\n DbxValueListViewContentGroupComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridViewContentComponent,\n DbxListTitleGroupDirective,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListViewContentComponent\n];\n\n/**\n * @deprecated Import the standalone modules instead or DbxListModule.\n *\n * @see DbxListModule\n * @see DbxListComponent\n * @see DbxListEmptyContentComponent\n * @see DbxValueListViewComponent\n * @see DbxValueListViewContentComponent\n * @see DbxValueListViewContentGroupComponent\n * @see DbxValueListGridSizeDirective\n * @see DbxValueListGridViewComponent\n * @see DbxValueListGridViewContentComponent\n * @see DbxListViewMetaIconComponent\n * @see DbxListTitleGroupDirective\n * @see DbxListTitleGroupHeaderComponent\n * @see DbxSelectionValueListViewComponent\n * @see DbxSelectionValueListViewContentComponent\n * @see DbxValueListItemModifierDirective\n * @see DbxListItemDisableRippleModifierDirective\n * @see DbxListItemIsSelectedModifierDirective\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxListLayoutModule {}\n","import { TrackByFunction } from '@angular/core';\nimport { ModelKeyRef, UniqueModel } from '@dereekb/util';\n\nexport const TRACK_BY_MODEL_ID: TrackByFunction<UniqueModel> = (index, model) => model.id;\n\nexport function trackByUniqueIdentifier<T extends UniqueModel>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_ID;\n}\n\nexport const TRACK_BY_MODEL_KEY: TrackByFunction<ModelKeyRef> = (index, model) => model.key;\n\nexport function trackByModelKeyRef<T extends ModelKeyRef>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_KEY;\n}\n","import { Directive, NgModule, output } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\nimport { DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\n\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE = '<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>';\n\n@NgModule({\n exports: [DbxSelectionValueListViewComponent],\n imports: [DbxSelectionValueListViewComponent]\n})\nexport class DbxSelectionValueListViewComponentImportsModule {}\n\n// MARK: Selection List View\n/**\n * Abstract list view that has a pre-built-in selection change event for an Angular Material MatSelectionListChange.\n */\n@Directive()\nexport abstract class AbstractDbxSelectionListViewDirective<T> extends AbstractDbxListViewDirective<T> {\n readonly selectionChange = output<ListSelectionState<T>>();\n\n selectionChanged(selection: ListSelectionState<T>): void {\n this.selectionChange.emit(selection);\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n this.selectionChanged({ items });\n }\n}\n\n// MARK: Compat\n/**\n * @deprecated use DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE instead and import DbxSelectionValueListViewComponentImportsModule\n */\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE = DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE;\n","import { Observable } from 'rxjs';\nimport { ListLoadingState, MaybeObservableOrValue } from '@dereekb/rxjs';\nimport { forwardRef, OutputRef, Provider, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxListSelectionMode } from './list.view';\n\n/**\n * Common interface for views that may wrap a DbxListView, and pass values through to it.\n */\nexport abstract class DbxListViewWrapper<T = unknown, S extends ListLoadingState<T> = ListLoadingState<T>> {\n abstract readonly currentState$: Observable<Maybe<S>>;\n abstract readonly loadMore?: OutputRef<void>;\n /**\n * Sets/overrides the state for this view.\n */\n abstract setState(state: MaybeObservableOrValue<S>): void;\n /**\n * Sets/overrides the selection mode for this view.\n */\n abstract setSelectionMode(selectionMode: MaybeObservableOrValue<DbxListSelectionMode>): void;\n}\n\nexport function provideDbxListViewWrapper<V extends DbxListViewWrapper>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxListViewWrapper,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, input, output, ChangeDetectionStrategy } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { MatButtonModule } from '@angular/material/button';\n\n/**\n * Component used to format content that displays an intro until a button is pressed.\n */\n@Component({\n selector: 'dbx-intro-action-section',\n template: `\n <div class=\"dbx-intro-action-section\">\n @switch (showIntro()) {\n @case (true) {\n <div class=\"dbx-intro-action-section-intro\">\n <p>{{ hint() }}</p>\n <div>\n <ng-content select=\"[info]\"></ng-content>\n </div>\n <div>\n <button mat-raised-button color=\"accent\" (click)=\"actionClicked()\">{{ action() }}</button>\n </div>\n </div>\n }\n @case (false) {\n <ng-content></ng-content>\n }\n }\n </div>\n `,\n standalone: true,\n imports: [MatButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxIntroActionSectionComponent {\n readonly hint = input<Maybe<string>>();\n readonly showIntro = input<Maybe<boolean>>(true);\n readonly action = input<Maybe<string>>();\n\n readonly showAction = output<void>();\n\n actionClicked() {\n this.showAction.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Scroll locking modes.\n *\n * Types:\n * - all: The entire header + body is scrollable\n * - body: The header is locked while the body is scrollable\n * - locked: Overflow is locked and hidden\n */\nexport type DbxSectionPageScrollLockedMode = 'all' | 'body' | 'locked';\n\n/**\n * Component used to style a page that is made up of app sections.\n *\n * Should be used on pages that need a section page heading.\n *\n * Can be nested within eachother, retaining the proper fixed height.\n */\n@Component({\n selector: 'dbx-section-page',\n template: `\n <div class=\"dbx-section-header\" [h]=\"headerConfigSignal().h ?? 2\" [header]=\"headerConfigSignal().header\" [onlyHeader]=\"headerConfigSignal().onlyHeader\" [icon]=\"headerConfigSignal().icon\" [hint]=\"headerConfigSignal().hint\" [hintInline]=\"headerConfigSignal().hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-page-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-content-page dbx-section-page',\n '[class]': 'classConfig()'\n },\n standalone: true,\n imports: [DbxSectionHeaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSectionPageComponent extends DbxSectionHeaderComponent {\n readonly scroll = input<DbxSectionPageScrollLockedMode>('all');\n\n readonly classConfig = computed(() => {\n return `dbx-section-page-scroll-${this.scroll()}`;\n });\n\n constructor() {\n super();\n this.hintInlineDefault.set(true);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\nimport { DbxSubSectionComponent } from './subsection.component';\nimport { DbxSectionPageComponent } from './section.page.component';\nimport { DbxIntroActionSectionComponent } from './section.intro.component';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\nconst importsAndExports = [DbxSectionHeaderComponent, DbxSectionPageComponent, DbxSectionComponent, DbxSubSectionComponent, DbxIntroActionSectionComponent];\n\n/**\n * Module for dbx-section components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxSectionLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Maybe } from '@dereekb/util';\n\n// TODO: Incomplete component. Requires styling.\n\n@Component({\n selector: 'dbx-step',\n template: `\n <div class=\"step-section\">\n <div class=\"step-section-header\">\n <span class=\"step\">{{ step() }}.</span>\n @if (done()) {\n <mat-icon class=\"done-check\">done</mat-icon>\n }\n <span class=\"text\">{{ text() }}</span>\n @if (hint()) {\n <p class=\"hint\">{{ hint() }}</p>\n }\n </div>\n <div class=\"step-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-step',\n '[class.done]': 'done()'\n },\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxStepComponent {\n readonly done = input<boolean>();\n readonly step = input<number>();\n readonly text = input<Maybe<string>>();\n readonly hint = input<Maybe<string>>();\n}\n","import { NgModule } from '@angular/core';\nimport { DbxStepComponent } from './step.component';\n\nconst importsAndExports = [DbxStepComponent];\n\n/**\n * @deprecated import DbxStepComponent directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxStepLayoutModule {}\n","import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { splitCommaSeparatedStringToSet, type Maybe } from '@dereekb/util';\nimport { Observable, distinctUntilChanged, map, shareReplay, delay, combineLatest } from 'rxjs';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, OnDestroy, OnInit, inject, signal, input } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { DbxStyleConfig, DbxStyleClass, DbxStyleName } from './style';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n/**\n * Used to denote which app style to use for all children below this.\n *\n * Will update the parent DbxStyleService.\n */\n@Directive({\n selector: '[dbxSetStyle]',\n host: {\n class: 'dbx-style-root',\n '[class]': 'outputStyleClassSignal()'\n },\n standalone: true\n})\nexport class DbxSetStyleDirective extends AbstractSubscriptionDirective implements OnDestroy, OnInit {\n private readonly _styleService = inject(DbxStyleService);\n\n /**\n * The input DbxStyleName to style the host element with.\n */\n readonly dbxSetStyle = input<DbxStyleName>();\n\n /**\n * The input suffixes to allow to be applied to the\n */\n readonly suffixes = input<Maybe<string>>(undefined);\n\n /**\n * The output style class to apply to the host element.\n */\n readonly outputStyleClassSignal = signal<DbxStyleClass>('');\n\n readonly style$ = toObservable(this.dbxSetStyle).pipe(filterMaybe());\n readonly suffixes$ = toObservable(this.suffixes).pipe(distinctUntilChanged(), map(splitCommaSeparatedStringToSet));\n\n readonly config$: Observable<DbxStyleConfig> = combineLatest([this.style$, this.suffixes$]).pipe(\n map(([style, suffixes]) => ({ style, suffixes })),\n shareReplay(1)\n );\n\n readonly styleClass$: Observable<DbxStyleClass> = this._styleService.getStyleClassWithConfig(this.config$);\n\n ngOnInit(): void {\n this._styleService.setConfig(this.config$);\n this.sub = this.styleClass$.pipe(delay(0)).subscribe((style) => {\n this.outputStyleClassSignal.set(style);\n });\n }\n}\n","import { Directive, Renderer2, inject, signal, OnInit } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\nimport { DbxStyleClass } from './style';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to style the <body> element of the document document using the style provided by DbxStyleService.\n */\n@Directive({\n selector: '[dbxStyleBody]',\n host: {\n '[class]': 'styleClassNameSignal()'\n },\n standalone: true\n})\nexport class DbxStyleBodyDirective extends AbstractSubscriptionDirective implements OnInit {\n private readonly _styleService = inject(DbxStyleService);\n private readonly _renderer = inject(Renderer2);\n\n private readonly _styleClassNameSignal = signal<Maybe<DbxStyleClass>>(undefined);\n readonly styleClassNameSignal = this._styleClassNameSignal.asReadonly();\n\n ngOnInit(): void {\n this.sub = this._styleService.styleClassName$.pipe(delay(0)).subscribe((newClassStyleToApply) => {\n const currentStyle = this._styleClassNameSignal();\n\n if (currentStyle) {\n this._renderer.removeClass(document.body, currentStyle);\n }\n\n if (newClassStyleToApply) {\n this._renderer.addClass(document.body, newClassStyleToApply);\n }\n\n this._styleClassNameSignal.set(newClassStyleToApply);\n });\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { DbxThemeColor, dbxColorBackground } from './style';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Used to apply a background style using a color.\n */\n@Directive({\n selector: '[dbxColor]',\n host: {\n '[class]': 'cssClassSignal()'\n },\n standalone: true\n})\nexport class DbxColorDirective {\n readonly dbxColor = input<Maybe<DbxThemeColor | ''>>();\n readonly cssClassSignal = computed(() => dbxColorBackground(this.dbxColor()));\n}\n","import { DbxSetStyleDirective } from './style.set.directive';\nimport { DbxStyleDirective } from './style.directive';\nimport { NgModule } from '@angular/core';\nimport { DbxSpacerDirective } from './spacer.directive';\nimport { DbxStyleBodyDirective } from './style.body.directive';\nimport { DbxColorDirective } from './style.color.directive';\n\nconst importsAndExports = [DbxColorDirective, DbxSpacerDirective, DbxStyleDirective, DbxSetStyleDirective, DbxStyleBodyDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxStyleLayoutModule {}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DBX_STYLE_DEFAULT_CONFIG_TOKEN, DbxStyleService } from './style.service';\nimport { DbxStyleConfig } from './style';\n\n/**\n * Configuration for provideDbxStyleService().\n */\nexport interface ProvideDbxStyleServiceConfig {\n /**\n * Default style configuration, if applicable.\n *\n * If null, the DbxStyleService will not have a default style\n */\n readonly dbxStyleConfig: DbxStyleConfig | null;\n}\n\n/**\n * Provides EnvironmentalProviders for a DbxStyleService and the default config.\n *\n * @returns\n */\nexport function provideDbxStyleService(config: ProvideDbxStyleServiceConfig): EnvironmentProviders {\n const { dbxStyleConfig } = config;\n\n const providers: Provider[] = [\n // config\n {\n provide: DBX_STYLE_DEFAULT_CONFIG_TOKEN,\n useValue: dbxStyleConfig\n },\n // service\n DbxStyleService\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-form-description',\n host: {\n class: 'dbx-form-description'\n }\n})\nexport class DbxFormDescriptionComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-hint',\n host: {\n class: 'dbx-hint'\n }\n})\nexport class DbxHintComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-label',\n host: {\n class: 'dbx-label'\n }\n})\nexport class DbxLabelComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-note',\n host: {\n class: 'dbx-note'\n }\n})\nexport class DbxNoteComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-notice',\n host: {\n class: 'dbx-notice'\n }\n})\nexport class DbxNoticeComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-ok',\n host: {\n class: 'dbx-ok'\n }\n})\nexport class DbxOkComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-success',\n host: {\n class: 'dbx-success'\n }\n})\nexport class DbxSuccessComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-warn',\n host: {\n class: 'dbx-warn'\n }\n})\nexport class DbxWarnComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DbxFormDescriptionComponent } from './form.description.component';\nimport { DbxHintComponent } from './hint.component';\nimport { DbxLabelComponent } from './label.component';\nimport { DbxNoteComponent } from './note.component';\nimport { DbxNoticeComponent } from './notice.component';\nimport { DbxOkComponent } from './ok.component';\nimport { DbxSuccessComponent } from './success.component';\nimport { DbxWarnComponent } from './warn.component';\n\nconst declarations = [DbxNoteComponent, DbxNoticeComponent, DbxSuccessComponent, DbxWarnComponent, DbxHintComponent, DbxLabelComponent, DbxOkComponent, DbxFormDescriptionComponent];\n\n/**\n * Includes a number of deprecated text components.\n */\n@NgModule({\n imports: [CommonModule, MatChipsModule, MatTooltipModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxTextCompatModule {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Maybe, UnitedStatesAddressWithContact } from '@dereekb/util';\n\n// prettier-ignore\n@Component({\n selector: 'dbx-us-address',\n template: `\n @if (address) {\n @if (address.name) {\n <div class=\"addr-name\">{{ address.name }}</div>\n }\n @if (address.phone) {\n <div class=\"addr-phone\">{{ address.phone }}</div>\n }\n @if (address.line1) {\n <div class=\"addr-line1\">{{ address.line1 }}</div>\n }\n @if (address.line2) {\n <div class=\"addr-line2\">{{ address.line2 }}</div>\n }\n <div class=\"city-state-zip\">\n <span class=\"addr-city\">{{ address.city }}</span>\n @if (address.state || address.zip) {\n <span>, </span>\n }\n <span class=\"addr-state\">{{ address.state }} </span>\n <span class=\"addr-zip\">{{ address.zip }}</span>\n </div>\n }\n `,\n host: {\n class: 'dbx-us-address'\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxUnitedStatesAddressComponent {\n\n @Input()\n address?: Maybe<Partial<UnitedStatesAddressWithContact>>;\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { type Maybe } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-detail-block-header',\n template: `\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n }\n @if (header) {\n <span class=\"dbx-detail-block-header-label\">{{ header }}</span>\n }\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-detail-block-header',\n '[class]': '{ \"dbx-detail-block-header-no-icon\": !icon }'\n },\n imports: [MatIconModule],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDetailBlockHeaderComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxDetailBlockHeaderComponent } from './detail.block.header.component';\n\n/**\n * Header and details offset with an icon.\n */\n@Component({\n selector: 'dbx-detail-block',\n template: `\n <dbx-detail-block-header [icon]=\"icon\" [header]=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </dbx-detail-block-header>\n <div class=\"dbx-detail-block-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-detail-block d-block'\n },\n imports: [DbxDetailBlockHeaderComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDetailBlockComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Icon spacer directive.\n */\n@Directive({\n selector: 'dbx-icon-spacer,[dbxIconSpacer]',\n host: {\n class: 'dbx-icon-spacer d-inline'\n },\n standalone: true\n})\nexport class DbxIconSpacerDirective {}\n","import { ChangeDetectionStrategy, Component, Input, OnDestroy, inject } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport linkifyStr from 'linkify-string';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { type Maybe } from '@dereekb/util';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Used to \"linkify\" the input text.\n */\n@Component({\n selector: 'dbx-linkify',\n template: `\n <span [innerHTML]=\"linkifiedBodySignal()\"></span>\n `,\n host: {\n class: 'dbx-i dbx-linkify'\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxLinkifyComponent implements OnDestroy {\n private readonly sanitizer = inject(DomSanitizer);\n private readonly _text = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly linkifiedText$ = this._text.pipe(\n distinctUntilChanged(),\n map((x) =>\n x\n ? linkifyStr(x, {\n defaultProtocol: 'https',\n target: {\n url: '_blank'\n }\n })\n : undefined\n ),\n shareReplay(1)\n );\n\n readonly linkifiedBody$ = this.linkifiedText$.pipe(\n map((x) => {\n return x ? this.sanitizer.bypassSecurityTrustHtml(x) : undefined;\n }),\n shareReplay(1)\n );\n\n readonly linkifiedBodySignal = toSignal(this.linkifiedBody$);\n\n ngOnDestroy(): void {\n this._text.complete();\n }\n\n @Input()\n get text(): Maybe<string> {\n return this._text.value;\n }\n\n set text(text: Maybe<string>) {\n this._text.next(text);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Directive({\n selector: 'dbx-chip',\n host: {\n class: 'dbx-chip mat-standard-chip',\n '[class]': 'style'\n },\n standalone: true\n})\nexport class DbxChipDirective {\n @Input()\n small?: Maybe<boolean>;\n\n @Input()\n block?: Maybe<boolean>;\n\n get style() {\n let style = this.small ? 'dbx-chip-small' : '';\n\n if (this.block) {\n style = style + ' dbx-chip-block';\n }\n\n return style;\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface TextChip<T = unknown> {\n text: string;\n tooltip?: string;\n selected?: boolean;\n color?: 'primary' | 'accent' | 'warn' | undefined;\n data?: T;\n}\n\n@Component({\n selector: 'dbx-text-chips',\n template: `\n @if (chips()) {\n <mat-chip-listbox class=\"dbx-text-chips-listbox\">\n @for (chip of chips(); track chip.text) {\n <mat-chip-option [selected]=\"chip.selected ?? defaultSelection()\" [color]=\"chip.color\" [matTooltip]=\"chip.tooltip!\" matTooltipPosition=\"above\">\n {{ chip.text }}\n </mat-chip-option>\n }\n </mat-chip-listbox>\n }\n `,\n imports: [MatChipsModule, MatTooltipModule],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTextChipsComponent<T = unknown> {\n readonly defaultSelection = input<Maybe<boolean>>();\n readonly chips = input<Maybe<TextChip<T>[]>>();\n}\n","import { NgModule } from '@angular/core';\nimport { DbxUnitedStatesAddressComponent } from './address.component';\nimport { DbxDetailBlockComponent } from './detail.block.component';\nimport { DbxDetailBlockHeaderComponent } from './detail.block.header.component';\nimport { DbxIconSpacerDirective } from './icon.spacer.component';\nimport { DbxLabelBlockComponent } from './label.block.component';\nimport { DbxLinkifyComponent } from './linkify.component';\nimport { DbxChipDirective } from './text.chip.directive';\nimport { DbxTextChipsComponent } from './text.chips.component';\n\nconst importsAndExports = [DbxUnitedStatesAddressComponent, DbxChipDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxLabelBlockComponent, DbxLinkifyComponent, DbxTextChipsComponent, DbxIconSpacerDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTextModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxSectionLayoutModule } from './section/section.layout.module';\nimport { DbxListLayoutModule } from './list/list.layout.module';\nimport { DbxFlagLayoutModule } from './flag/flag.layout.module';\nimport { DbxContentLayoutModule } from './content/content.layout.module';\nimport { DbxColumnLayoutModule } from './column/column.layout.module';\nimport { DbxCardBoxLayoutModule } from './card/card.box.layout.module';\nimport { DbxBlockLayoutModule } from './block/block.layout.module';\nimport { DbxCompactLayoutModule } from './compact/compact.layout.module';\nimport { DbxBarLayoutModule } from './bar/bar.layout.module';\nimport { DbxTextModule } from './text/text.module';\nimport { DbxStyleLayoutModule } from './style/style.layout.module';\nimport { DbxFlexLayoutModule } from './flex/flex.layout.module';\n\n@NgModule({\n exports: [DbxBarLayoutModule, DbxBlockLayoutModule, DbxCardBoxLayoutModule, DbxColumnLayoutModule, DbxCompactLayoutModule, DbxContentLayoutModule, DbxFlagLayoutModule, DbxFlexLayoutModule, DbxListLayoutModule, DbxSectionLayoutModule, DbxStyleLayoutModule, DbxTextModule]\n})\nexport class DbxLayoutModule {}\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { DbxScreenMediaService, DbxScreenMediaServiceConfig, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG } from './screen.service';\n\n/**\n * Configuration for provideDbxScreenMediaService().\n */\nexport interface ProvideDbxScreenMediaServiceConfig {\n readonly config?: DbxScreenMediaServiceConfig;\n}\n\n/**\n * Creates EnvironmentProviders for providing DbxScreenMediaService and its configuration.\n *\n * @param config Configuration\n * @returns EnvironmentProviders\n */\nexport function provideDbxScreenMediaService(config: ProvideDbxScreenMediaServiceConfig = {}): EnvironmentProviders {\n const screenConfig = config.config ?? DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG;\n\n const providers: Provider[] = [\n // config\n {\n provide: DbxScreenMediaServiceConfig,\n useValue: screenConfig\n },\n // service\n DbxScreenMediaService\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { DestroyFunction } from '@dereekb/util';\n\n/**\n * Disables the \"contextmenu\" from popping up in the cdk-overlay-container.\n *\n * @param classes\n * @param onEvent\n * @returns\n */\nexport function disableRightClickInCdkBackdrop(classes: string = 'cdk-overlay-container', onEvent?: (event: MouseEvent) => void): DestroyFunction {\n const eventListener = function (this: Element, event: Event) {\n event.preventDefault();\n onEvent?.(event as MouseEvent);\n };\n\n const target = document.getElementsByClassName(classes).item(0);\n\n if (target) {\n target.addEventListener('contextmenu', eventListener);\n return () => target.removeEventListener('contextmenu', eventListener);\n } else {\n return () => {};\n }\n}\n","import { DbxLoadingModule } from './loading/loading.module';\nimport { NgModule } from '@angular/core';\nimport { DbxButtonModule } from './button';\nimport { DbxActionModule } from './action';\n\n@NgModule({\n exports: [DbxButtonModule, DbxActionModule, DbxLoadingModule]\n})\nexport class DbxWebModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","importsAndExports","i4","i2","i2.DbxButtonComponent","i3","i1.DbxButtonComponent","i2.DbxButtonSpacerDirective","DbxActionUIRouterTransitionSafetyDirective","declarations","DbxModelStateActions.dbxModelResetState","fromObjectModuleConfig.stateFeatureKey","fromObjectModuleConfig.reducer","onDbxModel.DbxModelStateModelActions.emitObjectViewEvent","fromDbxModel.featureKey","fromDbxModel.reducers","i1.DbxListComponent","i2.DbxValueListGridViewComponent"],"mappings":"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"}