@dereekb/dbx-web 0.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 (324) hide show
  1. package/README.md +7 -0
  2. package/dereekb-dbx-web.d.ts +5 -0
  3. package/esm2020/dereekb-dbx-web.mjs +5 -0
  4. package/esm2020/index.mjs +3 -0
  5. package/esm2020/lib/action/action.confirm.directive.mjs +52 -0
  6. package/esm2020/lib/action/action.module.mjs +63 -0
  7. package/esm2020/lib/action/action.snackbar.component.mjs +105 -0
  8. package/esm2020/lib/action/index.mjs +6 -0
  9. package/esm2020/lib/action/key.trigger.directive.mjs +40 -0
  10. package/esm2020/lib/action/transition/action.transition.module.mjs +50 -0
  11. package/esm2020/lib/action/transition/index.mjs +4 -0
  12. package/esm2020/lib/action/transition/transition.safety.dialog.component.mjs +61 -0
  13. package/esm2020/lib/action/transition/transition.safety.directive.mjs +156 -0
  14. package/esm2020/lib/button/button.component.mjs +92 -0
  15. package/esm2020/lib/button/button.module.mjs +43 -0
  16. package/esm2020/lib/button/button.spacer.component.mjs +18 -0
  17. package/esm2020/lib/button/index.mjs +4 -0
  18. package/esm2020/lib/dbx-web.module.mjs +50 -0
  19. package/esm2020/lib/error/error.action.directive.mjs +32 -0
  20. package/esm2020/lib/error/error.api.mjs +47 -0
  21. package/esm2020/lib/error/error.component.mjs +27 -0
  22. package/esm2020/lib/error/error.loading.directive.mjs +42 -0
  23. package/esm2020/lib/error/error.module.mjs +36 -0
  24. package/esm2020/lib/error/index.mjs +7 -0
  25. package/esm2020/lib/error/state.mjs +17 -0
  26. package/esm2020/lib/index.mjs +10 -0
  27. package/esm2020/lib/interaction/dialog/abstract.dialog.directive.mjs +27 -0
  28. package/esm2020/lib/interaction/dialog/index.mjs +2 -0
  29. package/esm2020/lib/interaction/index.mjs +5 -0
  30. package/esm2020/lib/interaction/popover/abstract.popover.directive.mjs +24 -0
  31. package/esm2020/lib/interaction/popover/abstract.popover.ref.directive.mjs +63 -0
  32. package/esm2020/lib/interaction/popover/index.mjs +15 -0
  33. package/esm2020/lib/interaction/popover/popover.action.button.directive.mjs +29 -0
  34. package/esm2020/lib/interaction/popover/popover.action.directive.mjs +83 -0
  35. package/esm2020/lib/interaction/popover/popover.component.mjs +143 -0
  36. package/esm2020/lib/interaction/popover/popover.content.component.mjs +55 -0
  37. package/esm2020/lib/interaction/popover/popover.controls.component.mjs +35 -0
  38. package/esm2020/lib/interaction/popover/popover.coordinator.component.mjs +44 -0
  39. package/esm2020/lib/interaction/popover/popover.coordinator.service.mjs +40 -0
  40. package/esm2020/lib/interaction/popover/popover.header.component.mjs +52 -0
  41. package/esm2020/lib/interaction/popover/popover.mjs +3 -0
  42. package/esm2020/lib/interaction/popover/popover.module.mjs +108 -0
  43. package/esm2020/lib/interaction/popover/popover.position.strategy.mjs +61 -0
  44. package/esm2020/lib/interaction/popover/popover.scroll.content.component.mjs +53 -0
  45. package/esm2020/lib/interaction/popover/popover.service.mjs +45 -0
  46. package/esm2020/lib/interaction/popup/abstract.popup.directive.mjs +21 -0
  47. package/esm2020/lib/interaction/popup/index.mjs +11 -0
  48. package/esm2020/lib/interaction/popup/popup.component.mjs +138 -0
  49. package/esm2020/lib/interaction/popup/popup.content.component.mjs +40 -0
  50. package/esm2020/lib/interaction/popup/popup.controls.buttons.component.mjs +72 -0
  51. package/esm2020/lib/interaction/popup/popup.controls.component.mjs +33 -0
  52. package/esm2020/lib/interaction/popup/popup.coordinator.component.mjs +44 -0
  53. package/esm2020/lib/interaction/popup/popup.coordinator.service.mjs +40 -0
  54. package/esm2020/lib/interaction/popup/popup.mjs +9 -0
  55. package/esm2020/lib/interaction/popup/popup.module.mjs +81 -0
  56. package/esm2020/lib/interaction/popup/popup.position.strategy.mjs +45 -0
  57. package/esm2020/lib/interaction/popup/popup.service.mjs +42 -0
  58. package/esm2020/lib/interaction/prompt/index.mjs +10 -0
  59. package/esm2020/lib/interaction/prompt/prompt.box.component.mjs +35 -0
  60. package/esm2020/lib/interaction/prompt/prompt.button.confirm.directive.mjs +35 -0
  61. package/esm2020/lib/interaction/prompt/prompt.component.mjs +21 -0
  62. package/esm2020/lib/interaction/prompt/prompt.confirm.component.mjs +51 -0
  63. package/esm2020/lib/interaction/prompt/prompt.confirm.dialog.component.mjs +27 -0
  64. package/esm2020/lib/interaction/prompt/prompt.confirm.directive.mjs +69 -0
  65. package/esm2020/lib/interaction/prompt/prompt.confirm.mjs +9 -0
  66. package/esm2020/lib/interaction/prompt/prompt.module.mjs +77 -0
  67. package/esm2020/lib/interaction/prompt/prompt.page.component.mjs +32 -0
  68. package/esm2020/lib/keypress/index.mjs +3 -0
  69. package/esm2020/lib/keypress/keydown.listener.directive.mjs +45 -0
  70. package/esm2020/lib/keypress/keypress.module.mjs +26 -0
  71. package/esm2020/lib/layout/block/block.layout.module.mjs +37 -0
  72. package/esm2020/lib/layout/block/index.mjs +3 -0
  73. package/esm2020/lib/layout/block/two.block.component.mjs +55 -0
  74. package/esm2020/lib/layout/card/card.box.component.mjs +49 -0
  75. package/esm2020/lib/layout/card/card.box.container.component.mjs +25 -0
  76. package/esm2020/lib/layout/card/card.box.layout.module.mjs +35 -0
  77. package/esm2020/lib/layout/card/index.mjs +4 -0
  78. package/esm2020/lib/layout/column/column.layout.module.mjs +21 -0
  79. package/esm2020/lib/layout/column/index.mjs +4 -0
  80. package/esm2020/lib/layout/column/one/index.mjs +3 -0
  81. package/esm2020/lib/layout/column/one/one.column.component.mjs +46 -0
  82. package/esm2020/lib/layout/column/one/one.column.module.mjs +30 -0
  83. package/esm2020/lib/layout/column/two/index.mjs +9 -0
  84. package/esm2020/lib/layout/column/two/two.column.back.directive.mjs +33 -0
  85. package/esm2020/lib/layout/column/two/two.column.component.mjs +36 -0
  86. package/esm2020/lib/layout/column/two/two.column.full.left.directive.mjs +40 -0
  87. package/esm2020/lib/layout/column/two/two.column.head.component.mjs +30 -0
  88. package/esm2020/lib/layout/column/two/two.column.module.mjs +67 -0
  89. package/esm2020/lib/layout/column/two/two.column.right.component.mjs +55 -0
  90. package/esm2020/lib/layout/column/two/two.column.sref.directive.mjs +34 -0
  91. package/esm2020/lib/layout/column/two/two.column.store.mjs +80 -0
  92. package/esm2020/lib/layout/compact/compact.directive.mjs +30 -0
  93. package/esm2020/lib/layout/compact/compact.layout.module.mjs +29 -0
  94. package/esm2020/lib/layout/compact/compact.mjs +27 -0
  95. package/esm2020/lib/layout/compact/compact.store.mjs +19 -0
  96. package/esm2020/lib/layout/compact/index.mjs +5 -0
  97. package/esm2020/lib/layout/content/content.bordered.component.mjs +26 -0
  98. package/esm2020/lib/layout/content/content.component.mjs +32 -0
  99. package/esm2020/lib/layout/content/content.container.component.mjs +66 -0
  100. package/esm2020/lib/layout/content/content.container.fullwidth.component.mjs +26 -0
  101. package/esm2020/lib/layout/content/content.layout.module.mjs +44 -0
  102. package/esm2020/lib/layout/content/index.mjs +6 -0
  103. package/esm2020/lib/layout/dialog/dialog.content.component.mjs +37 -0
  104. package/esm2020/lib/layout/dialog/dialog.layout.module.mjs +29 -0
  105. package/esm2020/lib/layout/dialog/index.mjs +3 -0
  106. package/esm2020/lib/layout/flag/flag.component.mjs +36 -0
  107. package/esm2020/lib/layout/flag/flag.layout.module.mjs +38 -0
  108. package/esm2020/lib/layout/flag/flag.prompt.component.mjs +38 -0
  109. package/esm2020/lib/layout/flag/index.mjs +4 -0
  110. package/esm2020/lib/layout/index.mjs +13 -0
  111. package/esm2020/lib/layout/item/index.mjs +3 -0
  112. package/esm2020/lib/layout/item/item.icon.component.mjs +47 -0
  113. package/esm2020/lib/layout/item/item.layout.module.mjs +30 -0
  114. package/esm2020/lib/layout/layout.module.mjs +57 -0
  115. package/esm2020/lib/layout/list/index.mjs +3 -0
  116. package/esm2020/lib/layout/list/list.empty.component.mjs +26 -0
  117. package/esm2020/lib/layout/list/list.layout.module.mjs +26 -0
  118. package/esm2020/lib/layout/section/index.mjs +9 -0
  119. package/esm2020/lib/layout/section/section.box.anchor.component.mjs +39 -0
  120. package/esm2020/lib/layout/section/section.box.component.mjs +32 -0
  121. package/esm2020/lib/layout/section/section.component.mjs +54 -0
  122. package/esm2020/lib/layout/section/section.elevated.component.mjs +26 -0
  123. package/esm2020/lib/layout/section/section.intro.component.mjs +67 -0
  124. package/esm2020/lib/layout/section/section.layout.module.mjs +75 -0
  125. package/esm2020/lib/layout/section/section.page.component.mjs +46 -0
  126. package/esm2020/lib/layout/section/subsection.component.mjs +35 -0
  127. package/esm2020/lib/layout/step/index.mjs +3 -0
  128. package/esm2020/lib/layout/step/step.component.mjs +21 -0
  129. package/esm2020/lib/layout/step/step.layout.module.mjs +30 -0
  130. package/esm2020/lib/loading/basic-loading.component.mjs +116 -0
  131. package/esm2020/lib/loading/index.mjs +5 -0
  132. package/esm2020/lib/loading/loading-progress.component.mjs +69 -0
  133. package/esm2020/lib/loading/loading.component.mjs +95 -0
  134. package/esm2020/lib/loading/loading.module.mjs +53 -0
  135. package/esm2020/lib/router/anchor/anchor.component.mjs +50 -0
  136. package/esm2020/lib/router/anchor/anchor.icon.component.mjs +30 -0
  137. package/esm2020/lib/router/anchor/anchor.module.mjs +43 -0
  138. package/esm2020/lib/router/anchor/anchor.segue.directive.mjs +32 -0
  139. package/esm2020/lib/router/anchor/index.mjs +5 -0
  140. package/esm2020/lib/router/index.mjs +3 -0
  141. package/esm2020/lib/router/provider/index.mjs +4 -0
  142. package/esm2020/lib/router/provider/ngrouter/anchor.component.mjs +18 -0
  143. package/esm2020/lib/router/provider/ngrouter/angular.router.module.mjs +46 -0
  144. package/esm2020/lib/router/provider/ngrouter/index.mjs +3 -0
  145. package/esm2020/lib/router/provider/router.provider.config.mjs +3 -0
  146. package/esm2020/lib/router/provider/uirouter/anchor.component.mjs +18 -0
  147. package/esm2020/lib/router/provider/uirouter/index.mjs +3 -0
  148. package/esm2020/lib/router/provider/uirouter/uirouter.router.module.mjs +46 -0
  149. package/esm2020/lib/text/hint.component.mjs +15 -0
  150. package/esm2020/lib/text/index.mjs +13 -0
  151. package/esm2020/lib/text/label.bar.component.mjs +32 -0
  152. package/esm2020/lib/text/label.component.mjs +18 -0
  153. package/esm2020/lib/text/link.component.mjs +36 -0
  154. package/esm2020/lib/text/linkify.component.mjs +48 -0
  155. package/esm2020/lib/text/note.component.mjs +15 -0
  156. package/esm2020/lib/text/notice.component.mjs +15 -0
  157. package/esm2020/lib/text/ok.component.mjs +15 -0
  158. package/esm2020/lib/text/success.component.mjs +15 -0
  159. package/esm2020/lib/text/text.chips.component.mjs +32 -0
  160. package/esm2020/lib/text/text.module.mjs +92 -0
  161. package/esm2020/lib/text/warn.component.mjs +15 -0
  162. package/fesm2015/dereekb-dbx-web.mjs +4914 -0
  163. package/fesm2015/dereekb-dbx-web.mjs.map +1 -0
  164. package/fesm2020/dereekb-dbx-web.mjs +4885 -0
  165. package/fesm2020/dereekb-dbx-web.mjs.map +1 -0
  166. package/index.d.ts +2 -0
  167. package/lib/action/action.confirm.directive.d.ts +23 -0
  168. package/lib/action/action.module.d.ts +16 -0
  169. package/lib/action/action.snackbar.component.d.ts +22 -0
  170. package/lib/action/index.d.ts +5 -0
  171. package/lib/action/key.trigger.directive.d.ts +17 -0
  172. package/lib/action/transition/action.transition.module.d.ts +18 -0
  173. package/lib/action/transition/index.d.ts +3 -0
  174. package/lib/action/transition/transition.safety.dialog.component.d.ts +19 -0
  175. package/lib/action/transition/transition.safety.directive.d.ts +52 -0
  176. package/lib/button/button.component.d.ts +25 -0
  177. package/lib/button/button.module.d.ts +12 -0
  178. package/lib/button/button.spacer.component.d.ts +8 -0
  179. package/lib/button/index.d.ts +3 -0
  180. package/lib/dbx-web.module.d.ts +16 -0
  181. package/lib/error/error.action.directive.d.ts +15 -0
  182. package/lib/error/error.api.d.ts +13 -0
  183. package/lib/error/error.component.d.ts +14 -0
  184. package/lib/error/error.loading.directive.d.ts +19 -0
  185. package/lib/error/error.module.d.ts +10 -0
  186. package/lib/error/index.d.ts +6 -0
  187. package/lib/error/state.d.ts +15 -0
  188. package/lib/index.d.ts +9 -0
  189. package/lib/interaction/dialog/abstract.dialog.directive.d.ts +14 -0
  190. package/lib/interaction/dialog/index.d.ts +1 -0
  191. package/lib/interaction/index.d.ts +4 -0
  192. package/lib/interaction/popover/abstract.popover.directive.d.ts +13 -0
  193. package/lib/interaction/popover/abstract.popover.ref.directive.d.ts +30 -0
  194. package/lib/interaction/popover/index.d.ts +14 -0
  195. package/lib/interaction/popover/popover.action.button.directive.d.ts +14 -0
  196. package/lib/interaction/popover/popover.action.directive.d.ts +33 -0
  197. package/lib/interaction/popover/popover.component.d.ts +75 -0
  198. package/lib/interaction/popover/popover.content.component.d.ts +17 -0
  199. package/lib/interaction/popover/popover.controls.component.d.ts +10 -0
  200. package/lib/interaction/popover/popover.coordinator.component.d.ts +18 -0
  201. package/lib/interaction/popover/popover.coordinator.service.d.ts +14 -0
  202. package/lib/interaction/popover/popover.d.ts +16 -0
  203. package/lib/interaction/popover/popover.header.component.d.ts +12 -0
  204. package/lib/interaction/popover/popover.module.d.ts +26 -0
  205. package/lib/interaction/popover/popover.position.strategy.d.ts +11 -0
  206. package/lib/interaction/popover/popover.scroll.content.component.d.ts +14 -0
  207. package/lib/interaction/popover/popover.service.d.ts +22 -0
  208. package/lib/interaction/popup/abstract.popup.directive.d.ts +12 -0
  209. package/lib/interaction/popup/index.d.ts +10 -0
  210. package/lib/interaction/popup/popup.component.d.ts +60 -0
  211. package/lib/interaction/popup/popup.content.component.d.ts +12 -0
  212. package/lib/interaction/popup/popup.controls.buttons.component.d.ts +18 -0
  213. package/lib/interaction/popup/popup.controls.component.d.ts +9 -0
  214. package/lib/interaction/popup/popup.coordinator.component.d.ts +18 -0
  215. package/lib/interaction/popup/popup.coordinator.service.d.ts +15 -0
  216. package/lib/interaction/popup/popup.d.ts +25 -0
  217. package/lib/interaction/popup/popup.module.d.ts +20 -0
  218. package/lib/interaction/popup/popup.position.strategy.d.ts +18 -0
  219. package/lib/interaction/popup/popup.service.d.ts +20 -0
  220. package/lib/interaction/prompt/index.d.ts +9 -0
  221. package/lib/interaction/prompt/prompt.box.component.d.ts +8 -0
  222. package/lib/interaction/prompt/prompt.button.confirm.directive.d.ts +17 -0
  223. package/lib/interaction/prompt/prompt.component.d.ts +12 -0
  224. package/lib/interaction/prompt/prompt.confirm.component.d.ts +34 -0
  225. package/lib/interaction/prompt/prompt.confirm.d.ts +7 -0
  226. package/lib/interaction/prompt/prompt.confirm.dialog.component.d.ts +12 -0
  227. package/lib/interaction/prompt/prompt.confirm.directive.d.ts +31 -0
  228. package/lib/interaction/prompt/prompt.module.d.ts +20 -0
  229. package/lib/interaction/prompt/prompt.page.component.d.ts +5 -0
  230. package/lib/keypress/index.d.ts +2 -0
  231. package/lib/keypress/keydown.listener.directive.d.ts +12 -0
  232. package/lib/keypress/keypress.module.d.ts +8 -0
  233. package/lib/layout/block/block.layout.module.d.ts +13 -0
  234. package/lib/layout/block/index.d.ts +2 -0
  235. package/lib/layout/block/two.block.component.d.ts +16 -0
  236. package/lib/layout/card/card.box.component.d.ts +10 -0
  237. package/lib/layout/card/card.box.container.component.d.ts +8 -0
  238. package/lib/layout/card/card.box.layout.module.d.ts +10 -0
  239. package/lib/layout/card/index.d.ts +3 -0
  240. package/lib/layout/column/column.layout.module.d.ts +8 -0
  241. package/lib/layout/column/index.d.ts +3 -0
  242. package/lib/layout/column/one/index.d.ts +2 -0
  243. package/lib/layout/column/one/one.column.component.d.ts +12 -0
  244. package/lib/layout/column/one/one.column.module.d.ts +9 -0
  245. package/lib/layout/column/two/index.d.ts +8 -0
  246. package/lib/layout/column/two/two.column.back.directive.d.ts +16 -0
  247. package/lib/layout/column/two/two.column.component.d.ts +21 -0
  248. package/lib/layout/column/two/two.column.full.left.directive.d.ts +18 -0
  249. package/lib/layout/column/two/two.column.head.component.d.ts +10 -0
  250. package/lib/layout/column/two/two.column.module.d.ts +17 -0
  251. package/lib/layout/column/two/two.column.right.component.d.ts +24 -0
  252. package/lib/layout/column/two/two.column.sref.directive.d.ts +14 -0
  253. package/lib/layout/column/two/two.column.store.d.ts +67 -0
  254. package/lib/layout/compact/compact.d.ts +16 -0
  255. package/lib/layout/compact/compact.directive.d.ts +14 -0
  256. package/lib/layout/compact/compact.layout.module.d.ts +11 -0
  257. package/lib/layout/compact/compact.store.d.ts +13 -0
  258. package/lib/layout/compact/index.d.ts +4 -0
  259. package/lib/layout/content/content.bordered.component.d.ts +8 -0
  260. package/lib/layout/content/content.component.d.ts +9 -0
  261. package/lib/layout/content/content.container.component.d.ts +34 -0
  262. package/lib/layout/content/content.container.fullwidth.component.d.ts +8 -0
  263. package/lib/layout/content/content.layout.module.d.ts +14 -0
  264. package/lib/layout/content/index.d.ts +5 -0
  265. package/lib/layout/dialog/dialog.content.component.d.ts +13 -0
  266. package/lib/layout/dialog/dialog.layout.module.d.ts +11 -0
  267. package/lib/layout/dialog/index.d.ts +2 -0
  268. package/lib/layout/flag/flag.component.d.ts +10 -0
  269. package/lib/layout/flag/flag.layout.module.d.ts +13 -0
  270. package/lib/layout/flag/flag.prompt.component.d.ts +11 -0
  271. package/lib/layout/flag/index.d.ts +3 -0
  272. package/lib/layout/index.d.ts +12 -0
  273. package/lib/layout/item/index.d.ts +2 -0
  274. package/lib/layout/item/item.icon.component.d.ts +10 -0
  275. package/lib/layout/item/item.layout.module.d.ts +9 -0
  276. package/lib/layout/layout.module.d.ts +17 -0
  277. package/lib/layout/list/index.d.ts +2 -0
  278. package/lib/layout/list/list.empty.component.d.ts +8 -0
  279. package/lib/layout/list/list.layout.module.d.ts +8 -0
  280. package/lib/layout/section/index.d.ts +8 -0
  281. package/lib/layout/section/section.box.anchor.component.d.ts +11 -0
  282. package/lib/layout/section/section.box.component.d.ts +9 -0
  283. package/lib/layout/section/section.component.d.ts +12 -0
  284. package/lib/layout/section/section.elevated.component.d.ts +8 -0
  285. package/lib/layout/section/section.intro.component.d.ts +16 -0
  286. package/lib/layout/section/section.layout.module.d.ts +21 -0
  287. package/lib/layout/section/section.page.component.d.ts +10 -0
  288. package/lib/layout/section/subsection.component.d.ts +9 -0
  289. package/lib/layout/step/index.d.ts +2 -0
  290. package/lib/layout/step/step.component.d.ts +9 -0
  291. package/lib/layout/step/step.layout.module.d.ts +9 -0
  292. package/lib/loading/basic-loading.component.d.ts +46 -0
  293. package/lib/loading/index.d.ts +4 -0
  294. package/lib/loading/loading-progress.component.d.ts +24 -0
  295. package/lib/loading/loading.component.d.ts +37 -0
  296. package/lib/loading/loading.module.d.ts +13 -0
  297. package/lib/router/anchor/anchor.component.d.ts +24 -0
  298. package/lib/router/anchor/anchor.icon.component.d.ts +11 -0
  299. package/lib/router/anchor/anchor.module.d.ts +12 -0
  300. package/lib/router/anchor/anchor.segue.directive.d.ts +20 -0
  301. package/lib/router/anchor/index.d.ts +4 -0
  302. package/lib/router/index.d.ts +2 -0
  303. package/lib/router/provider/index.d.ts +3 -0
  304. package/lib/router/provider/ngrouter/anchor.component.d.ts +9 -0
  305. package/lib/router/provider/ngrouter/angular.router.module.d.ts +12 -0
  306. package/lib/router/provider/ngrouter/index.d.ts +2 -0
  307. package/lib/router/provider/router.provider.config.d.ts +7 -0
  308. package/lib/router/provider/uirouter/anchor.component.d.ts +9 -0
  309. package/lib/router/provider/uirouter/index.d.ts +2 -0
  310. package/lib/router/provider/uirouter/uirouter.router.module.d.ts +12 -0
  311. package/lib/text/hint.component.d.ts +5 -0
  312. package/lib/text/index.d.ts +12 -0
  313. package/lib/text/label.bar.component.d.ts +10 -0
  314. package/lib/text/label.component.d.ts +8 -0
  315. package/lib/text/link.component.d.ts +9 -0
  316. package/lib/text/linkify.component.d.ts +18 -0
  317. package/lib/text/note.component.d.ts +5 -0
  318. package/lib/text/notice.component.d.ts +5 -0
  319. package/lib/text/ok.component.d.ts +5 -0
  320. package/lib/text/success.component.d.ts +5 -0
  321. package/lib/text/text.chips.component.d.ts +13 -0
  322. package/lib/text/text.module.d.ts +22 -0
  323. package/lib/text/warn.component.d.ts +5 -0
  324. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dereekb-dbx-web.mjs","sources":["../../../../packages/dbx-web/src/lib/interaction/dialog/abstract.dialog.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.position.strategy.ts","../../../../packages/dbx-web/src/lib/router/provider/router.provider.config.ts","../../../../packages/dbx-web/src/lib/router/anchor/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/anchor/anchor.component.html","../../../../packages/dbx-web/src/lib/router/anchor/anchor.icon.component.ts","../../../../packages/dbx-web/src/lib/router/anchor/anchor.module.ts","../../../../packages/dbx-web/src/lib/router/anchor/anchor.segue.directive.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/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.full.left.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.head.component.ts","../../../../packages/dbx-web/src/lib/layout/content/content.component.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.fullwidth.component.ts","../../../../packages/dbx-web/src/lib/layout/content/content.bordered.component.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.component.ts","../../../../packages/dbx-web/src/lib/layout/content/content.layout.module.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.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/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/layout/dialog/dialog.content.component.ts","../../../../packages/dbx-web/src/lib/layout/dialog/dialog.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/item/item.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/item/item.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.empty.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/section/section.box.anchor.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.box.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.elevated.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/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/interaction/popover/popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.directive.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.action.button.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.controls.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.header.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.scroll.content.component.ts","../../../../packages/dbx-web/src/lib/keypress/keypress.module.ts","../../../../packages/dbx-web/src/lib/button/button.component.ts","../../../../packages/dbx-web/src/lib/button/button.spacer.component.ts","../../../../packages/dbx-web/src/lib/button/button.module.ts","../../../../packages/dbx-web/src/lib/action/key.trigger.directive.ts","../../../../packages/dbx-web/src/lib/action/action.snackbar.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.box.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.component.html","../../../../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.page.component.ts","../../../../packages/dbx-web/src/lib/text/hint.component.ts","../../../../packages/dbx-web/src/lib/text/label.bar.component.ts","../../../../packages/dbx-web/src/lib/text/label.component.ts","../../../../packages/dbx-web/src/lib/text/link.component.ts","../../../../packages/dbx-web/src/lib/text/linkify.component.ts","../../../../packages/dbx-web/src/lib/text/note.component.ts","../../../../packages/dbx-web/src/lib/text/notice.component.ts","../../../../packages/dbx-web/src/lib/text/ok.component.ts","../../../../packages/dbx-web/src/lib/text/success.component.ts","../../../../packages/dbx-web/src/lib/text/text.chips.component.ts","../../../../packages/dbx-web/src/lib/text/warn.component.ts","../../../../packages/dbx-web/src/lib/text/text.module.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/popover/popover.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/interaction/popup/popup.module.ts","../../../../packages/dbx-web/src/lib/error/error.component.ts","../../../../packages/dbx-web/src/lib/error/error.component.html","../../../../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/error/error.api.ts","../../../../packages/dbx-web/src/lib/error/error.loading.directive.ts","../../../../packages/dbx-web/src/lib/error/error.module.ts","../../../../packages/dbx-web/src/lib/error/state.ts","../../../../packages/dbx-web/src/lib/action/transition/action.transition.module.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.module.ts","../../../../packages/dbx-web/src/lib/dbx-web.module.ts","../../../../packages/dbx-web/src/dereekb-dbx-web.ts"],"sourcesContent":["import { Directive, Inject, NgZone } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { AbstractTransitionWatcherDirective, DbNgxRouterTransitionService } from '@dereekb/dbx-core';\n\n/**\n * Abstract dialog component that closes when a transition is successful.\n */\n@Directive()\nexport abstract class AbstractDialogDirective<T = any, R = any> extends AbstractTransitionWatcherDirective {\n\n constructor(\n @Inject(MatDialogRef) public readonly dialogRef: MatDialogRef<T, R>,\n dbNgxRouterTransitionService: DbNgxRouterTransitionService,\n ngZone: NgZone) {\n super(dbNgxRouterTransitionService, ngZone);\n }\n\n protected updateForSuccessfulTransition(): void {\n this.dialogRef.close();\n }\n\n}\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\n static make(overlay: Overlay, elementRef: ElementRef, config: NgOverlayContainerConfiguration): FlexibleConnectedPositionStrategy {\n\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] =\n config.originX === 'end' ? ['end', 'start', 'center'] :\n config.originX === 'start' ? ['start', 'end', 'center'] : ['center', 'start', 'end'];\n\n const overlayX = originX;\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] =\n 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}\n","import { DbNgxInjectedComponentConfig } from \"@dereekb/dbx-core\";\n\nexport abstract class DbNgxRouterWebProviderConfig {\n\n /**\n * Component used by the Anchor component to render a SegueRef link.\n */\n abstract anchorSegueRefComponent: DbNgxInjectedComponentConfig;\n\n}\n","import { skipFirstMaybe } from '@dereekb/rxjs';\nimport { Input, Component, TemplateRef, ViewChild } from '@angular/core';\nimport { AbstractDbNgxAnchorDirective, DbNgxInjectedComponentConfig } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { map, distinctUntilChanged, shareReplay } from 'rxjs/operators';\nimport { DbNgxRouterWebProviderConfig } 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 // TODO: styleUrls: ['./anchor.scss']\n})\nexport class DbNgxAnchorComponent extends AbstractDbNgxAnchorDirective {\n\n private _templateRef = new BehaviorSubject<Maybe<TemplateRef<any>>>(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<any>> {\n return this._templateRef.value;\n }\n\n set templateRef(templateRef: Maybe<TemplateRef<any>>) {\n this._templateRef.next(templateRef);\n }\n\n readonly url$ = this.anchor$.pipe(map(x => x?.url), distinctUntilChanged(), shareReplay(1));\n readonly target$ = this.anchor$.pipe(map(x => x?.target), distinctUntilChanged(), shareReplay(1));\n\n constructor(private readonly dbNgxRouterWebProviderConfig: DbNgxRouterWebProviderConfig) {\n super();\n }\n\n get srefAnchorConfig(): DbNgxInjectedComponentConfig {\n return this.dbNgxRouterWebProviderConfig.anchorSegueRefComponent;\n }\n\n get anchorBlockClass(): string {\n return this.block ? 'dbx-anchor-block' : '';\n }\n\n clickAnchor(event?: Maybe<MouseEvent>): void {\n this.anchor?.onClick?.(event);\n }\n\n}\n","<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Click -->\n <a class=\"dbx-anchor dbx-anchor-click {{ anchorBlockClass }}\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injected-content [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injected-content>\n <!-- Href -->\n <a class=\"dbx-anchor dbx-anchor-href {{ anchorBlockClass }}\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\"\n *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor dbx-anchor-disabled {{ anchorBlockClass }}\" *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 { Component, Input } from '@angular/core';\nimport { ClickableIconAnchorLink } from '@dereekb/dbx-core';\nimport { 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><mat-icon>{{ anchor?.icon }}</mat-icon></button>\n </dbx-anchor>\n`\n})\nexport class DbNgxAnchorIconComponent {\n\n @Input()\n anchor: Maybe<ClickableIconAnchorLink>;\n\n}\n","import { DbNgxInjectedComponentModule } from '@dereekb/dbx-core';\nimport { NgModule } from '@angular/core';\nimport { DbNgxAnchorComponent } from './anchor.component';\nimport { CommonModule } from '@angular/common';\nimport { DbNgxAnchorIconComponent } from './anchor.icon.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n DbNgxInjectedComponentModule\n ],\n declarations: [\n DbNgxAnchorComponent,\n DbNgxAnchorIconComponent\n ],\n exports: [\n DbNgxAnchorComponent,\n DbNgxAnchorIconComponent\n ]\n})\nexport class DbNgxAnchorModule { }\n","import { Directive } from \"@angular/core\";\nimport { DbNgxInjectedTemplateConfig } from \"@dereekb/dbx-core\";\nimport { Observable } from \"rxjs\";\nimport { distinctUntilChanged, shareReplay, map, share } from \"rxjs/operators\";\nimport { DbNgxAnchorComponent } from \"./anchor.component\";\n\n/**\n * Abstract implementation\n */\n@Directive()\nexport abstract class AbstractDbNgxSegueAnchorDirective {\n\n readonly target$ = this.parent.target$;\n\n readonly ref$ = this.parent.anchor$.pipe(map(x => x?.ref), distinctUntilChanged(), shareReplay(1));\n readonly refParams$ = this.parent.anchor$.pipe(map(x => x?.refParams), distinctUntilChanged(), shareReplay(1));\n readonly refOptions$ = this.parent.anchor$.pipe(map(x => x?.refOptions), distinctUntilChanged(), shareReplay(1));\n\n constructor(readonly parent: DbNgxAnchorComponent) { }\n\n readonly template$: Observable<DbNgxInjectedTemplateConfig> = this.parent.templateRef$.pipe(\n distinctUntilChanged(),\n map(templateRef => ({\n templateRef\n })),\n shareReplay(1)\n );\n\n get anchorBlockClass(): string {\n return this.parent.anchorBlockClass;\n }\n\n get anchor() {\n return this.parent.anchor;\n }\n\n}\n","import { Component } from '@angular/core';\nimport { AbstractDbNgxSegueAnchorDirective } from '../../anchor/anchor.segue.directive';\n\n/**\n * SegueAnchor implementation for Angular Router.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbNgxAngularRouterSegueAnchorComponent extends AbstractDbNgxSegueAnchorDirective { }\n","<a class=\"dbx-anchor dbx-anchor-sref {{ anchorBlockClass }}\" [attr.target]=\"target$ | async\" [uiSref]=\"ref$ | async\"\n [uiParams]=\"refParams$ | async\" [uiOptions]=\"refOptions$ | async\">\n <dbx-injected-content></dbx-injected-content>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbNgxAngularRouterSegueAnchorComponent } from './anchor.component';\nimport { DbNgxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbNgxInjectedComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [\n CommonModule,\n UIRouterModule,\n DbNgxInjectedComponentModule\n ],\n declarations: [DbNgxAngularRouterSegueAnchorComponent],\n exports: [DbNgxAngularRouterSegueAnchorComponent]\n})\nexport class DbNgxWebAngularRouterModule {\n\n static forRoot(): ModuleWithProviders<DbNgxWebAngularRouterModule> {\n return {\n ngModule: DbNgxWebAngularRouterModule,\n providers: [\n {\n provide: DbNgxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbNgxAngularRouterSegueAnchorComponent\n }\n } as DbNgxRouterWebProviderConfig\n }\n ]\n };\n }\n\n}\n","import { Component } from '@angular/core';\nimport { AbstractDbNgxSegueAnchorDirective } from '../../anchor/anchor.segue.directive';\n\n/**\n * SegueAnchor implementation for UIRouter.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbNgxUIRouterSegueAnchorComponent extends AbstractDbNgxSegueAnchorDirective { }\n","<a class=\"dbx-anchor dbx-anchor-sref {{ anchorBlockClass }}\" [attr.target]=\"target$ | async\" [uiSref]=\"ref$ | async\"\n [uiParams]=\"refParams$ | async\" [uiOptions]=\"refOptions$ | async\">\n <dbx-injected-content [template]=\"template$ | async\"></dbx-injected-content>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbNgxUIRouterSegueAnchorComponent } from './anchor.component';\nimport { DbNgxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbNgxInjectedComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [\n CommonModule,\n UIRouterModule,\n DbNgxInjectedComponentModule\n ],\n declarations: [DbNgxUIRouterSegueAnchorComponent],\n exports: [DbNgxUIRouterSegueAnchorComponent]\n})\nexport class DbNgxWebUIRouterModule {\n\n static forRoot(): ModuleWithProviders<DbNgxWebUIRouterModule> {\n return {\n ngModule: DbNgxWebUIRouterModule,\n providers: [\n {\n provide: DbNgxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbNgxUIRouterSegueAnchorComponent\n }\n } as DbNgxRouterWebProviderConfig\n }\n ]\n };\n }\n\n}\n","import { ElementRef, Component, ViewChild } 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\">\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})\nexport class DbNgxTwoBlocksComponent {\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('--two-block-top-height', `${height}px`);\n }\n\n}\n","import { DbNgxAnchorModule } from '../../router';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxTwoBlocksComponent } from './two.block.component';\nimport { AngularResizeEventModule } from 'angular-resize-event';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [\n CommonModule,\n DbNgxAnchorModule,\n AngularResizeEventModule\n ],\n declarations: [\n DbNgxTwoBlocksComponent\n ],\n exports: [\n DbNgxTwoBlocksComponent\n ]\n})\nexport class DbNgxBlockLayoutModule { }\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\"><mat-icon *ngIf=\"icon\">{{icon}}</mat-icon><span *ngIf=\"header\" class=\"title-text\">{{ header }}</span></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 DbNgxCardBoxComponent {\n\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n\n}\n","import { Component, Input } 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 DbNgxCardBoxContainerComponent { }\n","import { MatIconModule } from '@angular/material/icon';\nimport { DbNgxCardBoxContainerComponent } from './card.box.container.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxCardBoxComponent } from './card.box.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule\n ],\n declarations: [\n DbNgxCardBoxComponent,\n DbNgxCardBoxContainerComponent\n ],\n exports: [\n DbNgxCardBoxComponent,\n DbNgxCardBoxContainerComponent\n ]\n})\nexport class DbNgxCardBoxLayoutModule { }\n","import { Injectable, OnDestroy, Provider } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Subject } from 'rxjs';\nimport { distinct, map } from 'rxjs/operators';\nimport { SegueRef } from '@dereekb/dbx-core';\n\nexport interface TwoColumnsState {\n showRight: 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?: SegueRef;\n}\n\nconst INITIAL_STATE: TwoColumnsState = {\n showRight: false,\n fullLeft: false\n};\n\n@Injectable()\nexport class TwoColumnsContextStore extends ComponentStore<TwoColumnsState> implements OnDestroy {\n\n private readonly _back = new Subject<void>();\n\n constructor() {\n super({ ...INITIAL_STATE });\n }\n\n // MARK: Accessors\n /**\n * Pipes the current state of showRight.\n */\n readonly showRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Convenience function for the showRight compliment.\n */\n readonly hideRight$ = this.state$.pipe(map((x) => !x.showRight));\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.showRight && x.fullLeft));\n\n /**\n * Pipes the current backRef value.\n */\n readonly backRef$ = this.state$.pipe(map((x) => x.backRef), distinct());\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((state) => ({ ...INITIAL_STATE }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setShowRight = this.updater((state, showRight: boolean) => ({ ...state, showRight }));\n\n /**\n * Sets the full left.\n */\n readonly setFullLeft = this.updater((state, fullLeft: boolean) => ({ ...state, fullLeft }));\n\n /**\n * Sets the new back ref.\n */\n readonly setBackRef = this.updater((state, backRef: SegueRef) => ({ ...state, backRef }));\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}\n\nexport function ProvideTwoColumnsContext(): Provider[] {\n return [{\n provide: TwoColumnsContextStore,\n useClass: TwoColumnsContextStore\n }];\n}\n","import { Directive, EventEmitter, Output, OnInit } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with an DbNgxTwoColumnsComponent to help respond to a \"back\" function.\n */\n@Directive({\n selector: '[dbxTwoColumnsBack]'\n})\nexport class DbNgxTwoColumnsBackDirective extends AbstractSubscriptionDirective implements OnInit {\n\n @Output('dbxTwoColumnsBack')\n public back = new EventEmitter();\n\n constructor(public readonly twoColumnsContextStore: TwoColumnsContextStore) {\n super();\n }\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}\n","import { Component, Inject, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\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-columns',\n templateUrl: './two.column.component.html',\n exportAs: 'columns'\n})\nexport class DbNgxTwoColumnsComponent {\n\n readonly showRight$: Observable<boolean> = this.twoColumnsContextStore.showRight$;\n readonly hideRight$: Observable<boolean> = this.twoColumnsContextStore.hideRight$;\n readonly showFullLeft$: Observable<boolean> = this.twoColumnsContextStore.showFullLeft$;\n\n constructor(@Inject(TwoColumnsContextStore) public readonly twoColumnsContextStore: TwoColumnsContextStore) { }\n\n @Input()\n reverseSizing: boolean = false;\n\n @Input()\n inSectionPage: boolean = false;\n\n}\n","<div class=\"two-column\" [ngClass]=\"{ 'two-column-reverse-sizing': reverseSizing, 'right-shown': showRight$ | async, 'full-left': (showFullLeft$ | async), 'dbx-section-page-two': inSectionPage }\">\n <div class=\"left-column\">\n <ng-content select=\"[left]\"></ng-content>\n </div>\n <div class=\"right-column\" *ngIf=\"showRight$ | async\">\n <!-- NOTE: This will only hide the content project. Be sure to use *ngIf separately on the right's content if needed. -->\n <!-- https://github.com/angular/angular/issues/17983 -->\n <ng-content select=\"[right]\"></ng-content>\n </div>\n</div>\n","import { OnInit } from '@angular/core';\nimport { Directive, Input, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbNgxTwoColumnsComponent to set the full left to true.\n */\n@Directive({\n selector: '[dbxTwoColumnsFullLeft]'\n})\nexport class DbNgxTwoColumnsFullLeftDirective implements OnInit, OnDestroy {\n\n private _fullLeft = new BehaviorSubject<boolean>(true);\n\n @Input('dbxTwoColumnsFullLeft')\n get fullLeft(): boolean {\n return this._fullLeft.value;\n }\n\n set fullLeft(fullLeft: boolean) {\n if (fullLeft != null && (fullLeft as any) !== '') {\n this._fullLeft.next(fullLeft);\n }\n }\n\n constructor(private readonly _twoColumnsContextStore: TwoColumnsContextStore) { }\n\n ngOnInit(): void {\n this._twoColumnsContextStore.setFullLeft(this._fullLeft);\n }\n\n ngOnDestroy(): void {\n this._fullLeft.complete();\n }\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-columns-head',\n template: `\n <div class=\"dbx-two-columns-head\" [ngClass]=\"{ 'block': block, 'full': full }\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbNgxTwoColumnsColumnHeadComponent {\n\n @Input()\n block?: boolean;\n\n @Input()\n full?: boolean;\n\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component that sets the height of it's content to fill the page with respect to the top two navigation bars.\n */\n@Component({\n selector: 'dbx-content',\n template: `\n <div class=\"dbx-content\" [ngClass]=\"{ 'has-second-bar': hasSecondBar }\">\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxContentComponent {\n\n @Input()\n hasSecondBar = true;\n\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component that extends the entire width and has padding.\n */\n@Component({\n selector: 'dbx-full-width-content-container',\n template: `\n <div class=\"dbx-full-width-content-container\">\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxFullWidthContentContainerComponent { }\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component that is wrapped with a padded border.\n */\n@Component({\n selector: 'dbx-bordered-content',\n template: `\n <div class=\"dbx-bordered-content\">\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxBorderedContentComponent { }\n","import { Component, Input } from '@angular/core';\n\nexport enum DbNgxContentContainerPadding {\n NONE = 'none',\n MIN = 'min',\n SMALL = 'small',\n NORMAL = 'normal'\n}\n\nexport enum DbNgxContentContainerWidth {\n SMALL = 'small',\n MEDIUM = 'medium',\n WIDE = 'wide',\n FULL = 'full'\n}\n\nexport enum DbNgxContentContainerType {\n /**\n * Full/unrestricted height content.\n */\n NORMAL = 'normal',\n /**\n * Content that has a header above it and should take up the rest of the height of the page.\n */\n CONTENT = 'content'\n}\n\n/**\n * Component that limits the max-width of the content.\n */\n@Component({\n selector: 'dbx-content-container',\n template: `\n <div class=\"dbx-content-container\" [ngClass]=\"width + '-container ' + type + '-container-type container-padding-' + padding + ((scrollingContent) ? ' container-scrolling-content' : '')\">\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxContentContainerComponent {\n\n @Input()\n type = DbNgxContentContainerType.NORMAL;\n\n @Input()\n width = DbNgxContentContainerWidth.WIDE;\n\n @Input()\n padding = DbNgxContentContainerPadding.NORMAL;\n\n @Input()\n scrollingContent = false;\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxContentComponent } from './content.component';\nimport { DbNgxFullWidthContentContainerComponent } from './content.container.fullwidth.component';\nimport { DbNgxBorderedContentComponent } from './content.bordered.component';\nimport { DbNgxContentContainerComponent } from './content.container.component';\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n DbNgxContentComponent,\n DbNgxContentContainerComponent,\n DbNgxBorderedContentComponent,\n DbNgxFullWidthContentContainerComponent\n ],\n exports: [\n DbNgxContentComponent,\n DbNgxContentContainerComponent,\n DbNgxBorderedContentComponent,\n DbNgxFullWidthContentContainerComponent\n ]\n})\nexport class DbNgxContentLayoutModule { }\n","import { Directive, Input } from '@angular/core';\nimport { SegueRef } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbNgxTwoColumnsComponent to set the backRef of the TwoColumnsContextStore.\n */\n@Directive({\n selector: '[dbxTwoColumnsSref]'\n})\nexport class DbNgxTwoColumnsSrefDirective {\n\n constructor(private readonly _twoColumnsContextStore: TwoColumnsContextStore) { }\n\n @Input('dbxTwoColumnsSref')\n public set refString(ref: string) {\n this.ref = {\n ref\n };\n }\n\n @Input()\n public set ref(ref: SegueRef) {\n this._twoColumnsContextStore.setBackRef(ref);\n }\n\n}\n","import { AfterViewInit, OnDestroy, Component, Inject, Input } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Optional responsive component that wraps content on the right side and shows a navigation bar.\n */\n@Component({\n selector: 'dbx-two-columns-right',\n templateUrl: './two.column.right.component.html'\n})\nexport class DbNgxTwoColumnsRightComponent implements AfterViewInit, OnDestroy {\n\n private _showBack = new BehaviorSubject<boolean>(true);\n\n @Input()\n header?: string;\n\n readonly ref$: Observable<Maybe<ClickableAnchor>> = this.twoColumnsContextStore.backRef$;\n\n readonly showBack$: Observable<boolean> = combineLatest([\n this._showBack, this.ref$.pipe(map((x) => !Boolean(x))) // TODO: Is this correct? Show back if ref is not defined?\n ]).pipe(\n map(([a, b]: [boolean, boolean]) => a && b)\n );\n\n constructor(\n @Inject(TwoColumnsContextStore) private readonly twoColumnsContextStore: TwoColumnsContextStore\n ) { }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.twoColumnsContextStore.setShowRight(true);\n });\n }\n\n ngOnDestroy(): void {\n this.twoColumnsContextStore.setShowRight(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 public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n\n}\n","<div class=\"two-columns-right\">\n <dbx-two-columns-head>\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-columns-head>\n <div class=\"two-columns-right-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxAnchorModule } from '../../../router';\nimport { DbNgxContentLayoutModule } from '../../content';\nimport { DbNgxTwoColumnsSrefDirective } from './two.column.sref.directive';\nimport { DbNgxTwoColumnsComponent } from './two.column.component';\nimport { DbNgxTwoColumnsColumnHeadComponent } from './two.column.head.component';\nimport { DbNgxTwoColumnsRightComponent } from './two.column.right.component';\nimport { DbNgxTwoColumnsBackDirective } from './two.column.back.directive';\nimport { DbNgxTwoColumnsFullLeftDirective } from './two.column.full.left.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n DbNgxAnchorModule,\n DbNgxContentLayoutModule\n ],\n declarations: [\n DbNgxTwoColumnsComponent,\n DbNgxTwoColumnsRightComponent,\n DbNgxTwoColumnsColumnHeadComponent,\n DbNgxTwoColumnsSrefDirective,\n DbNgxTwoColumnsBackDirective,\n DbNgxTwoColumnsFullLeftDirective\n ],\n exports: [\n DbNgxTwoColumnsComponent,\n DbNgxTwoColumnsRightComponent,\n DbNgxTwoColumnsColumnHeadComponent,\n DbNgxTwoColumnsSrefDirective,\n DbNgxTwoColumnsBackDirective,\n DbNgxTwoColumnsFullLeftDirective\n ],\n})\nexport class DbNgxTwoColumnLayoutModule { }\n","import { Component, Inject, Input } 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-columns [inSectionPage]=\"inSectionPage\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content left></ng-content>\n </dbx-two-columns>\n </ng-container>\n `,\n exportAs: 'columns',\n providers: [TwoColumnsContextStore]\n})\nexport class DbNgxOneColumnComponent {\n\n constructor(@Inject(TwoColumnsContextStore) public readonly twoColumnsContextStore: TwoColumnsContextStore) {\n twoColumnsContextStore.setFullLeft(true);\n }\n\n @Input()\n inSectionPage = true;\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxTwoColumnLayoutModule } from '../two';\nimport { DbNgxOneColumnComponent } from './one.column.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DbNgxTwoColumnLayoutModule\n ],\n declarations: [\n DbNgxOneColumnComponent\n ],\n exports: [\n DbNgxOneColumnComponent\n ],\n})\nexport class DbNgxOneColumnLayoutModule { }\n","import { NgModule } from '@angular/core';\nimport { DbNgxTwoColumnLayoutModule } from './two';\nimport { DbNgxOneColumnLayoutModule } from './one';\n\n@NgModule({\n exports: [\n DbNgxOneColumnLayoutModule,\n DbNgxTwoColumnLayoutModule\n ]\n})\nexport class DbNgxColumnLayoutModule { }\n","import { Maybe } from '@dereekb/util';\nimport { isBoolean } from 'class-validator';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\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}","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { map } from 'rxjs/operators';\nimport { CompactMode, compactModeFromInput } from './compact';\n\nexport interface CompactContextState {\n mode: CompactMode;\n}\n\n@Injectable()\nexport class CompactContextStore extends ComponentStore<CompactContextState> {\n\n constructor() {\n super({ mode: CompactMode.FULL });\n }\n\n // MARK: Accessors\n readonly mode$ = this.state$.pipe(map(x => x.mode));\n\n readonly setMode = this.updater((state, mode: CompactMode | boolean) => ({ mode: compactModeFromInput(mode) }));\n\n}\n","import { Directive, Input } from '@angular/core';\nimport { CompactMode } from './compact';\nimport { CompactContextStore } from './compact.store';\n\n\n/**\n * CompactContextStore provider.\n */\n@Directive({\n selector: '[dbxCompact]',\n providers: [CompactContextStore],\n exportAs: 'compact',\n})\nexport class DbNgxCompactDirective {\n\n mode$ = this.compactContextStore.mode$;\n\n constructor(readonly compactContextStore: CompactContextStore) { }\n\n @Input('dbxCompact')\n set mode(mode: CompactMode | boolean) {\n this.compactContextStore.setMode(mode);\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxCompactDirective } from './compact.directive';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n DbNgxCompactDirective\n ],\n exports: [\n DbNgxCompactDirective\n ]\n})\nexport class DbNgxCompactLayoutModule { }\n","import { Component, Input } from '@angular/core';\n\nexport enum DbNgxDialogContentContainerWidth {\n NORMAL = 'normal',\n WIDE = 'wide'\n}\n\n/**\n * Component used to style a dialog.\n */\n@Component({\n selector: 'dbx-dialog-content',\n template: `\n <div class=\"dbx-dialog-content\" [ngClass]=\"width + '-dialog-content'\">\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxDialogContentComponent {\n\n @Input()\n width = DbNgxDialogContentContainerWidth.NORMAL;\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxDialogContentComponent } from './dialog.content.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n DbNgxDialogContentComponent\n ],\n exports: [\n DbNgxDialogContentComponent\n ]\n})\nexport class DbNgxDialogLayoutModule { }\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 DbNgxFlagComponent {\n\n @Input()\n color: ThemePalette = 'accent';\n\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 DbNgxFlagPromptComponent {\n\n @Input()\n color: ThemePalette = 'accent';\n\n @Input()\n text?: string;\n\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxFlagComponent } from './flag.component';\nimport { DbNgxFlagPromptComponent } from './flag.prompt.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [\n CommonModule,\n MatToolbarModule\n ],\n declarations: [\n DbNgxFlagComponent,\n DbNgxFlagPromptComponent\n ],\n exports: [\n DbNgxFlagComponent,\n DbNgxFlagPromptComponent\n ]\n})\nexport class DbNgxFlagLayoutModule { }\n","import { Component, Input } from '@angular/core';\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\">\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 DbNgxIconItemComponent {\n\n @Input()\n icon?: string;\n\n @Input()\n header?: string;\n\n}\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxIconItemComponent } from './item.icon.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule\n ],\n declarations: [\n DbNgxIconItemComponent\n ],\n exports: [\n DbNgxIconItemComponent\n ]\n})\nexport class DbNgxItemLayoutModule { }\n","import { Component, Input } 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 // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxListEmptyContentComponent { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxListEmptyContentComponent } from './list.empty.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n DbNgxListEmptyContentComponent\n ],\n exports: [\n DbNgxListEmptyContentComponent\n ]\n})\nexport class DbNgxListLayoutModule { }\n","import { Component, Input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\n\n/**\n * Component used to wrap sectional content on an elevated box that is clickable.\n */\n@Component({\n selector: 'dbx-section-box-anchor',\n template: `\n <dbx-anchor [anchor]=\"anchor\" [disabled]=\"disabled\">\n <div matRipple [matRippleDisabled]=\"disabled\" class=\"dbx-section-box\">\n <ng-content></ng-content>\n </div>\n </dbx-anchor>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxSectionBoxAnchorComponent {\n\n @Input()\n anchor?: ClickableAnchor;\n\n @Input()\n disabled: boolean = false;\n\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component used to wrap sectional content on an elevated box.\n */\n@Component({\n selector: 'dbx-section-box',\n template: `\n <div class=\"dbx-section-box\" [ngClass]=\"(elevated) ? 'dbx-section-elevated' : ''\">\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxSectionBoxComponent {\n\n @Input()\n elevated = true;\n\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\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\">\n <div class=\"dbx-section-header\">\n <div class=\"dbx-section-header-content\">\n <h2 class=\"dbx-section-header-content-title\"><mat-icon *ngIf=\"icon\">{{icon}}</mat-icon><span class=\"title-text\">{{ header }}</span></h2>\n <span class=\"spacer\"></span>\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <p *ngIf=\"hint\" class=\"dbx-section-hint\">{{ hint }}</p>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxSectionComponent {\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n hint?: Maybe<string>;\n\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component used to elevate content.\n */\n@Component({\n selector: 'dbx-section-elevated',\n template: `\n <div class=\"dbx-section-elevated\">\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxSectionElevatedComponent { }\n","import { OnDestroy } from '@angular/core';\nimport { Component, Input, EventEmitter, Output } from '@angular/core';\nimport { DbNgxSectionComponent } 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 // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxIntroActionSectionComponent extends DbNgxSectionComponent implements OnDestroy {\n\n @Output()\n 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, Input } from '@angular/core';\nimport { DbNgxSectionComponent } from './section.component';\n\n/**\n * Component used to format content on a page within a section.\n */\n@Component({\n selector: 'dbx-subsection',\n template: `\n <div class=\"dbx-subsection\">\n <h3>{{ header }}</h3>\n <p class=\"dbx-section-hint\">{{ hint }}</p>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxSubSectionComponent extends DbNgxSectionComponent {}","import { Component, Input } from '@angular/core';\n\n/**\n * Component used to style a page that is made up of app sections.\n */\n@Component({\n selector: 'dbx-section-page',\n template: `\n <div class=\"dbx-section-page\">\n <div class=\"dbx-section-header\">\n <div class=\"dbx-section-header-content\">\n <h1 class=\"dbx-section-header-content-title\"><mat-icon *ngIf=\"icon\">{{icon}}</mat-icon><span class=\"title-text\">{{ header }}</span></h1>\n <span class=\"spacer\"></span>\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n </div>\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbNgxSectionPageComponent {\n\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n\n}\n","import { DbNgxAnchorModule } from '../../router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxSectionComponent } from './section.component';\nimport { DbNgxSubSectionComponent } from './subsection.component';\nimport { DbNgxSectionBoxComponent } from './section.box.component';\nimport { DbNgxSectionPageComponent } from './section.page.component';\nimport { DbNgxSectionElevatedComponent } from './section.elevated.component';\nimport { DbNgxSectionBoxAnchorComponent } from './section.box.anchor.component';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbNgxIntroActionSectionComponent } from './section.intro.component';\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [\n CommonModule,\n DbNgxAnchorModule,\n MatButtonModule,\n MatRippleModule,\n MatIconModule\n ],\n declarations: [\n DbNgxSectionPageComponent,\n DbNgxSectionBoxComponent,\n DbNgxSectionBoxAnchorComponent,\n DbNgxSectionElevatedComponent,\n DbNgxSectionComponent,\n DbNgxSubSectionComponent,\n DbNgxIntroActionSectionComponent\n ],\n exports: [\n DbNgxSectionPageComponent,\n DbNgxSectionBoxComponent,\n DbNgxSectionBoxAnchorComponent,\n DbNgxSectionElevatedComponent,\n DbNgxSectionComponent,\n DbNgxSubSectionComponent,\n DbNgxIntroActionSectionComponent\n ]\n})\nexport class DbNgxSectionLayoutModule { }\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dbx-step',\n templateUrl: './step.component.html',\n // TODO: styleUrls: ['./step.scss']\n})\nexport class DbNgxStepComponent {\n\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}\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 { DbNgxStepComponent } from './step.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule\n ],\n declarations: [\n DbNgxStepComponent\n ],\n exports: [\n DbNgxStepComponent\n ],\n})\nexport class DbNgxStepLayoutModule { }\n","import { NgModule } from '@angular/core';\nimport { DbNgxSectionLayoutModule } from './section/section.layout.module';\nimport { DbNgxListLayoutModule } from './list/list.layout.module';\nimport { DbNgxItemLayoutModule } from './item/item.layout.module';\nimport { DbNgxFlagLayoutModule } from './flag/flag.layout.module';\nimport { DbNgxDialogLayoutModule } from './dialog/dialog.layout.module';\nimport { DbNgxContentLayoutModule } from './content/content.layout.module';\nimport { DbNgxColumnLayoutModule } from './column/column.layout.module';\nimport { DbNgxCardBoxLayoutModule } from './card/card.box.layout.module';\nimport { DbNgxBlockLayoutModule } from './block/block.layout.module';\nimport { DbNgxCompactLayoutModule } from './compact/compact.layout.module';\nimport { DbNgxStepLayoutModule } from './step/step.layout.module';\n\n@NgModule({\n exports: [\n DbNgxBlockLayoutModule,\n DbNgxCardBoxLayoutModule,\n DbNgxColumnLayoutModule,\n DbNgxCompactLayoutModule,\n DbNgxContentLayoutModule,\n DbNgxDialogLayoutModule,\n DbNgxFlagLayoutModule,\n DbNgxItemLayoutModule,\n DbNgxListLayoutModule,\n DbNgxSectionLayoutModule,\n DbNgxStepLayoutModule\n ],\n})\nexport class DbNgxLayoutModule { }\n","import { Maybe } from \"@dereekb/util\";\nimport { Observable } from \"rxjs\";\n\nexport type DbNgxPopoverKey = string;\n\nexport abstract class DbNgxPopoverController<I = any, O = any> {\n abstract readonly key: DbNgxPopoverKey;\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 { DbNgxPopoverKey, DbNgxPopoverController } from './popover';\nimport { Injectable } 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()\nexport class DbNgxPopoverCoordinatorService {\n\n private _popovers = new BehaviorSubject<Map<DbNgxPopoverKey, DbNgxPopoverController>>(new Map());\n readonly popovers$ = this._popovers.asObservable();\n\n get popovers(): Map<DbNgxPopoverKey, DbNgxPopoverController> {\n return this._popovers.value;\n }\n\n public addPopover(popover: DbNgxPopoverController): 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: DbNgxPopoverKey, popover?: DbNgxPopoverController): 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}\n","import { DbNgxPopoverController } from './popover';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { DbNgxPopoverCoordinatorService } from './popover.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs/operators';\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 // TODO: styleUrls: ['./popover.scss']\n})\nexport class DbNgxPopoverCoordinatorComponent implements OnInit, OnDestroy {\n\n readonly isPopoverForKey$ = this.service.popovers$.pipe(map(x => x.get(this.popover.key) === this.popover), shareReplay(1));\n readonly show$ = this.isPopoverForKey$.pipe(delay(0));\n\n constructor(private readonly service: DbNgxPopoverCoordinatorService, private readonly popover: DbNgxPopoverController) { }\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}\n","import { Input, OnDestroy, Output, EventEmitter, HostListener, Directive } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Directive({\n selector: '[dbxWindowKeyDownListener]'\n})\nexport class DbNgxWindowKeyDownListenerDirective implements OnDestroy {\n\n private _keysFilter?: Maybe<Set<string>>;\n\n @Input()\n appWindowKeyDownEnabled: boolean = true;\n\n @Output('dbxWindowKeyDownListener')\n keyPressed = new EventEmitter<KeyboardEvent>();\n\n @Input('appWindowKeyDownFilter')\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}\n","import { Component, ComponentFactoryResolver, NgZone, Type, ViewChild, ViewContainerRef, OnInit, OnDestroy, ComponentRef, ElementRef } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractTransitionWatcherDirective, DbNgxRouterTransitionService } from '@dereekb/dbx-core';\nimport { Subject } from 'rxjs';\nimport { PopoverPositionStrategy } from './popover.position.strategy';\nimport { filter, first, map, shareReplay, startWith } from 'rxjs/operators';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { LockSet } from '@dereekb/rxjs';\nimport { CompactContextStore, CompactMode } from '../../layout';\nimport { Maybe } from '@dereekb/util';\nimport { DbNgxPopoverController, DbNgxPopoverKey } from './popover';\n\nexport abstract class DbNgxPopoverComponentController<I, O> extends DbNgxPopoverController<I, O> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbNgxPopoverComponentConfig<I, O, 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: DbNgxPopoverKey;\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 * Data available to the popover.\n */\n data?: Maybe<I>;\n init?: (component: T, controller: DbNgxPopoverController<I, O>) => void;\n}\n\nexport interface FullDbNgxPopoverComponentConfig<I, O, T> extends DbNgxPopoverComponentConfig<I, O, T> {\n configuration: NgOverlayContainerConfiguration;\n}\n\n/**\n * Popover component.\n */\n@Component({\n template: `\n <dbx-popover-coordinator (dbxWindowKeyDownListener)=\"handleKeydown($event)\" [appWindowKeyDownFilter]=\"triggerCloseKeys\">\n <div class=\"dbx-popover-component\">\n <ng-template #content></ng-template>\n </div>\n </dbx-popover-coordinator>\n `,\n // TODO: styleUrls: ['./popover.scss'],\n providers: [{\n provide: DbNgxPopoverController,\n useExisting: DbNgxPopoverComponent\n }, {\n provide: CompactContextStore\n }]\n})\nexport class DbNgxPopoverComponent<I = any, O = any, T = any> extends AbstractTransitionWatcherDirective implements DbNgxPopoverController<I, O>, OnInit, OnDestroy {\n\n readonly lockSet = new LockSet();\n\n @ViewChild('content', { static: true, read: ViewContainerRef })\n private _content!: ViewContainerRef;\n private _componentRef?: ComponentRef<T>;\n\n private _startedClosing = false;\n private readonly _closing = new Subject<void>();\n\n private _triggerCloseKeys: string[] = [];\n\n readonly isClosing$ = this._closing.pipe(first(), map(x => true), startWith(false), shareReplay(1));\n readonly closing$ = this.isClosing$.pipe(filter(x => x));\n\n getClosingValueFn?: (value?: I) => Promise<O>;\n\n constructor(\n private popoverRef: NgPopoverRef<FullDbNgxPopoverComponentConfig<I, O, T>, O>,\n private compactContextState: CompactContextStore,\n private resolver: ComponentFactoryResolver,\n dbNgxRouterTransitionService: DbNgxRouterTransitionService,\n ngZone: NgZone) {\n super(dbNgxRouterTransitionService, ngZone);\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 const overlay = (popoverRef as any)._overlay as Overlay;\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(): FullDbNgxPopoverComponentConfig<I, O, T> {\n return this.popoverRef.data;\n }\n\n get key(): DbNgxPopoverKey {\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 this._content.clear();\n const componentClass = this.config.componentClass;\n const factory = this.resolver.resolveComponentFactory(componentClass);\n this._componentRef = this._content.createComponent(factory);\n\n if (this.config.init) {\n this.config.init(this._componentRef.instance, this);\n }\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) {\n this.getClosingValueFn().then((x) => {\n this.return(x);\n }, () => {\n this.return();\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 // Keypresses\n handleKeydown(key: KeyboardEvent) {\n this.close();\n }\n\n}\n","import { Directive } from '@angular/core';\nimport { DbNgxPopoverComponent } from './popover.component';\n\n/**\n * Abstract popover directive.\n */\n@Directive()\nexport abstract class AbstractPopoverDirective<I = any, O = any, T = any> {\n\n constructor(public readonly popover: DbNgxPopoverComponent<I, O, T>) { }\n\n closePopover(): void {\n this.popover.close();\n }\n\n returnAndClosePopover(value: O): void {\n this.popover.return(value);\n }\n\n}\n","import { OnDestroy } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { Directive, EventEmitter, Output } from '@angular/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 = any, R = any> extends AbstractSubscriptionDirective {\n\n private _popoverRef?: NgPopoverRef<T, R>;\n\n showPopover(): void {\n if (!this._popoverRef) {\n this._showPopoverRef();\n }\n }\n\n private _showPopoverRef(): void {\n this._popoverRef = this._makePopoverRef();\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(): NgPopoverRef<T, R>;\n\n protected _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n // Do nothing.\n }\n\n protected _afterClosed(value: NgPopoverCloseEvent<R>): void {\n // Do nothing.\n }\n\n}\n\n/**\n * {@link AbstractPopoverRefDirective} extension that includes open/closed events.\n */\n@Directive()\nexport abstract class AbstractPopoverRefWithEventsDirective<T = any, R = any> extends AbstractPopoverRefDirective<T, R> implements OnDestroy {\n\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}\n","import { BehaviorSubject, Observable, of } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef } from '@angular/core';\nimport { NgPopoverCloseEvent, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractPopoverRefWithEventsDirective } from './abstract.popover.ref.directive';\nimport { ActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { first, switchMap } from 'rxjs/operators';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbNgxPopoverActionFnParam {\n origin: ElementRef;\n}\n\nexport type DbNgxPopoverActionFn<T = object> = (params: DbNgxPopoverActionFnParam) => NgPopoverRef<any, T>;\nexport type DbNgxPopoverActionModifiedFn<T = any> = (value: T) => Observable<boolean>;\n\n/**\n * Action directive that is used to trigger/display a popover,\n * then watches that popover for a value.\n *\n * The value is passed to the isModified function (ifProvided), and if that returns true it will \n */\n@Directive({\n exportAs: 'popoverAction',\n selector: '[dbxPopoverAction]'\n})\nexport class DbNgxPopoverActionDirective<T = object> extends AbstractPopoverRefWithEventsDirective<any, T> implements OnInit, OnDestroy {\n\n @Input('dbxPopoverAction')\n fn?: DbNgxPopoverActionFn<T>;\n\n @Input()\n appPopoverActionModified?: DbNgxPopoverActionModifiedFn<T>;\n\n private _popoverValue = new BehaviorSubject<Maybe<T>>(undefined);\n\n private _triggeredSub = new SubscriptionObject();\n private _isModifiedSub = new SubscriptionObject();\n\n constructor(\n readonly elementRef: ElementRef,\n readonly source: ActionContextStoreSourceInstance<T, any>\n ) {\n super();\n }\n\n ngOnInit(): void {\n\n // Used for triggering isModified on the action.\n this._isModifiedSub.subscription = this._popoverValue.pipe(\n filterMaybe(),\n switchMap((value) => {\n let isModifiedObs: Observable<boolean>;\n\n if (this.appPopoverActionModified) {\n isModifiedObs = this.appPopoverActionModified(value).pipe(first());\n } else {\n isModifiedObs = of(true); // Considered modified\n }\n\n return isModifiedObs;\n })\n ).subscribe((isModified) => {\n this.source.setIsModified(isModified);\n });\n\n // Ready the value after the source is triggered.\n this._triggeredSub.subscription = this.source.triggered$.pipe(\n switchMap(() => {\n return this._popoverValue.pipe(\n filterMaybe(),\n first()\n );\n })\n ).subscribe((x) => {\n this.source.readyValue(x);\n });\n }\n\n override ngOnDestroy(): void {\n this.source.lockSet.onNextUnlock(() => {\n super.ngOnDestroy();\n this._triggeredSub.destroy();\n this._popoverValue.complete();\n });\n }\n\n protected _makePopoverRef(): NgPopoverRef<any, 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 protected override _afterClosed(event: NgPopoverCloseEvent<T>): void {\n super._afterClosed(event);\n const { data } = event;\n\n if (data != null) {\n this._popoverValue.next(data);\n }\n }\n\n}\n","import { Directive, Host, NgZone } from '@angular/core';\nimport { DbNgxButtonDirective, DbNgxActionButtonDirective, ActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { DbNgxPopoverActionDirective } from './popover.action.directive';\n\n/**\n * Action directive that is used to link an DbNgxButton to an DbNgxPopoverActionDirective.\n */\n@Directive({\n selector: '[dbxPopoverActionButton]'\n})\nexport class DbNgxPopoverActionButtonDirective extends DbNgxActionButtonDirective {\n\n constructor(\n @Host() button: DbNgxButtonDirective,\n source: ActionContextStoreSourceInstance,\n ngZone: NgZone,\n readonly appPopoverActionDirective: DbNgxPopoverActionDirective) {\n super(button, source, ngZone);\n }\n\n protected override _buttonClicked(): void {\n this.appPopoverActionDirective.showPopover();\n }\n\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\nimport { Component, Input } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { throttleTime } from 'rxjs/operators';\n\n/**\n * Popover content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-content',\n template: `\n <div class=\"dbx-popover-content\" (resized)=\"onResized($event)\" [style.--popoverh]=\"height$ | async\">\n <ng-content select=\"[controls]\"></ng-content>\n <div class=\"dbx-popover-content-container\" [ngClass]=\"{ 'dbx-popover-content-container-scrollable': scrollable }\">\n <ng-content></ng-content>\n </div>\n </div>\n`,\n // TODO: styleUrls: ['./popover.scss']\n})\nexport class DbNgxPopoverContentComponent implements OnDestroy {\n\n private readonly _height = new BehaviorSubject<string>('');\n readonly height$ = this._height.asObservable().pipe(throttleTime(100, undefined, { leading: true, trailing: true }));\n\n @Input()\n scrollable = false;\n\n @Input()\n hasControls = false;\n\n @Input()\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}\n","import { Component, Optional } from '@angular/core';\nimport { DbNgxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover Controls\n */\n@Component({\n selector: 'dbx-popover-controls',\n template: `\n <div class=\"dbx-popover-controls\">\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./popover.scss']\n})\nexport class DbNgxPopoverControlsComponent {\n\n constructor(@Optional() appPopoverContentComponent: DbNgxPopoverContentComponent) {\n if (appPopoverContentComponent) {\n appPopoverContentComponent.hasControls = true;\n }\n }\n\n}\n","import { Component, Input, Optional } from '@angular/core';\nimport { DbNgxPopoverContentComponent } 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><mat-icon *ngIf=\"icon\" class=\"dbx-icon-spacing\">{{ icon }}</mat-icon> {{ header }}</h3>\n <span class=\"spacer\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n <mat-divider></mat-divider>\n `,\n // TODO: styleUrls: ['./popover.scss']\n})\nexport class DbNgxPopoverHeaderComponent {\n\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n\n constructor(@Optional() appPopoverContentComponent: DbNgxPopoverContentComponent) {\n if (appPopoverContentComponent) {\n appPopoverContentComponent.hasHeader = true;\n }\n }\n\n}\n","import { DbNgxPopoverComponent, DbNgxPopoverComponentConfig, FullDbNgxPopoverComponentConfig } from './popover.component';\nimport { Injectable, Injector } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbNgxPopoverConfig<I, O, T> extends DbNgxPopoverComponentConfig<I, O, T> {\n injector?: Injector;\n height?: string;\n width?: string;\n}\n\n/**\n * Used for displaying a popover.\n */\n@Injectable()\nexport class DbNgxPopoverService {\n\n private _overlayContainerService: NgOverlayContainerService;\n\n constructor(private _overlay: Overlay, private _injector: Injector) {\n this._overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n }\n\n open<I, O, T>(config: DbNgxPopoverConfig<I, O, T>): NgPopoverRef<DbNgxPopoverComponentConfig<I, O, 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: 'start',\n originY: 'top',\n // TODO: Resize height/width.\n height: config.height ?? '500px',\n width: config.height ?? '400px',\n hasBackdrop: true,\n isDraggable: false,\n isResizable: false,\n disableBackdropClose: false\n };\n\n return service.open<FullDbNgxPopoverComponentConfig<I, O, T>, O>({\n content: DbNgxPopoverComponent,\n data: {\n ...config,\n configuration\n },\n configuration\n });\n }\n\n}\n","import { Component } from '@angular/core';\nimport { DbNgxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover scrollable content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-scroll-content',\n template: `\n <div class=\"dbx-popover-scroll-content\" [ngClass]=\"sizingClasses\">\n <ng-content></ng-content>\n </div>\n`,\n // TODO: styleUrls: ['./popover.scss']\n})\nexport class DbNgxPopoverScrollContentComponent {\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 constructor(readonly appPopoverContentComponent: DbNgxPopoverContentComponent) {}\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxWindowKeyDownListenerDirective } from './keydown.listener.directive';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n DbNgxWindowKeyDownListenerDirective\n ],\n exports: [\n DbNgxWindowKeyDownListenerDirective\n ]\n})\nexport class DbNgxKeypressModule { }\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProvideDbNgxButton, AbstractDbNgxButtonDirective } from '@dereekb/dbx-core';\nimport { MatProgressButtonOptions } from 'mat-progress-buttons';\n\nexport enum DbNgxButtonDisplayType {\n RAISED,\n STROKED,\n FLAT\n}\n\n/**\n * Complex button that supports loading states.\n */\n@Component({\n selector: 'dbx-button',\n template: `\n <mat-spinner-button class=\"page-button\" (btnClick)=\"clickButton()\" [options]=\"btnOptions\"></mat-spinner-button>\n `,\n // TODO: styleUrls: ['./button.scss'],\n providers: ProvideDbNgxButton(DbNgxButtonComponent)\n})\nexport class DbNgxButtonComponent extends AbstractDbNgxButtonDirective {\n\n @Input()\n type?: DbNgxButtonDisplayType;\n\n @Input()\n get raised(): boolean {\n return this.type === DbNgxButtonDisplayType.RAISED;\n }\n\n set raised(raised: boolean) {\n if (raised) {\n this.type = DbNgxButtonDisplayType.RAISED;\n }\n }\n\n @Input()\n get stroked(): boolean {\n return this.type === DbNgxButtonDisplayType.STROKED;\n }\n\n set stroked(stroked: boolean) {\n if (stroked) {\n this.type = DbNgxButtonDisplayType.STROKED;\n }\n }\n\n @Input()\n get flat(): boolean {\n return this.type === DbNgxButtonDisplayType.FLAT;\n }\n\n set flat(flat: boolean) {\n if (flat) {\n this.type = DbNgxButtonDisplayType.FLAT;\n }\n }\n\n @Input()\n public color: ThemePalette = 'primary';\n\n public get btnOptions(): MatProgressButtonOptions {\n const buttonIcon = (this.icon) ? {\n fontIcon: this.icon\n } : undefined;\n\n return {\n fab: false,\n active: this.working,\n buttonIcon,\n customClass: 'dbx-button ' + ((buttonIcon && !this.text) ? 'dbx-button-no-text' : ''),\n // buttonIcon: icon,\n text: this.text ?? '',\n buttonColor: this.color,\n barColor: 'accent',\n raised: this.raised,\n stroked: this.stroked,\n flat: this.flat,\n mode: 'indeterminate',\n spinnerSize: 18,\n spinnerColor: 'accent', // TODO: Set spinner color to opposite of button color.\n // Only disabled if we're not working, in order to show the animation.\n disabled: !this.working && this.disabled\n };\n }\n\n}\n","import { Component } from '@angular/core';\n\n/**\n * Button spacer component.\n */\n@Component({\n selector: 'dbx-button-spacer',\n template: `<span class=\"button-spacer\"></span>`,\n // TODO: styleUrls: ['./button.scss']\n})\nexport class DbNgxButtonSpacerComponent { }\n","import { MatIconModule } from '@angular/material/icon';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressButtonsModule } from 'mat-progress-buttons';\nimport { DbNgxButtonComponent } from './button.component';\nimport { DbNgxButtonSpacerComponent } from './button.spacer.component';\nimport { BrowserModule } from '@angular/platform-browser';\n\n@NgModule({\n imports: [\n BrowserModule,\n MatIconModule,\n MatButtonModule,\n MatProgressButtonsModule\n ],\n declarations: [\n DbNgxButtonComponent,\n DbNgxButtonSpacerComponent\n ],\n exports: [\n DbNgxButtonComponent,\n DbNgxButtonSpacerComponent\n ],\n})\nexport class DbNgxButtonModule {}\n","import { Directive, Host, HostListener, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { ActionContextStoreSourceInstance } 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 DbNgxActionKeyTriggerDirective<T = any, O = any> {\n\n @Input('dbxActionKeyTrigger')\n inputKey: Maybe<string>;\n\n constructor(@Host() public readonly source: ActionContextStoreSourceInstance<T, O>) { }\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}\n","import { distinctUntilChanged, Observable } from 'rxjs';\nimport { shareReplay } from 'rxjs';\nimport { Component, Inject } from '@angular/core';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { Maybe } from '@dereekb/util';\nimport ms from 'ms';\nimport { map } from 'rxjs/operators';\nimport { ActionContextStoreSourceInstance, ActionState, DbNgxActionSnackbarComponentConfig } from '@dereekb/dbx-core';\n\n/**\n * Component for a snackbar that contains an action.\n */\n@Component({\n template: `\n <div class=\"dbx-action-snackbar\" [ngClass]=\"(snackbarStatusClass$ | async)!\">\n <ng-container [ngSwitch]=\"complete$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <div class=\"spacer\"></div>\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 <div class=\"spacer\"></div>\n <dbx-action dbxActionValue [dbxActionSource]=\"actionSourceInstance\" [dbxActionSuccess]=\"dismissEarly\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"action\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n </ng-container>\n </ng-container>\n </div>\n `,\n // TODO: styleUrls: ['./action.scss']\n})\nexport class DbNgxActionSnackbarComponent {\n\n constructor(\n readonly snackbar: MatSnackBarRef<DbNgxActionSnackbarComponent>,\n @Inject(MAT_SNACK_BAR_DATA) readonly data: DbNgxActionSnackbarComponentConfig\n ) {\n if (!data.actionSource) {\n throw new Error('No action was provided to ActionSnackbar.');\n }\n }\n\n readonly complete$ = this.actionSourceInstance.isSuccess$;\n readonly snackbarStatusClass$: Observable<string> = this.actionSourceInstance.actionState$.pipe(\n map((x) => {\n let classes = 'dbx-action-snackbar-';\n\n switch (x) {\n case ActionState.Rejected:\n classes += 'error';\n break;\n case ActionState.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 get message(): Maybe<string> {\n return this.data.message;\n }\n\n get action(): string {\n return this.data.action;\n }\n\n get actionSourceInstance(): ActionContextStoreSourceInstance {\n return this.data.actionSource;\n }\n\n dismissEarly = (): void => {\n this.snackbar._dismissAfter(ms('3s'));\n }\n\n dismiss = (): void => {\n this.snackbar.dismiss();\n }\n\n}\n","import { Provider, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport abstract class DbNgxPromptConfirm {\n abstract showDialog(): Observable<Maybe<boolean>>;\n}\n\nexport function ProvideDbNgxPromptConfirm<S>(sourceType: Type<S>): Provider[] {\n return [{\n provide: DbNgxPromptConfirm,\n useExisting: sourceType\n }];\n}\n\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-box',\n template: `\n <div class=\"prompt-box\" [ngClass]=\"{ 'elevated': elevated, 'full-width': fullWidth, 'no-padding': noPadding }\">\n <ng-content></ng-content>\n </div>\n `,\n // TODO: styleUrls: ['./prompt.scss']\n})\nexport class DbNgxPromptBoxComponent {\n\n @Input()\n elevated = true;\n\n @Input()\n fullWidth = false;\n\n @Input()\n noPadding = false;\n\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbNgxPromptBoxComponent } from './prompt.box.component';\n\n/**\n * Pre-configured prompt.\n */\n@Component({\n selector: 'dbx-prompt',\n templateUrl: './prompt.component.html',\n // TODO: styleUrls: ['./prompt.scss']\n})\nexport class DbNgxPromptComponent extends DbNgxPromptBoxComponent {\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n prompt?: Maybe<string>;\n\n}\n","<dbx-prompt-box [elevated]=\"elevated\" [fullWidth]=\"fullWidth\" [noPadding]=\"noPadding\">\n <ng-content select=\"[hero]\"></ng-content>\n <dbx-subsection [header]=\"header\" [hint]=\"prompt\">\n <ng-content></ng-content>\n </dbx-subsection>\n</dbx-prompt-box>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport enum DbNgxPromptConfirmTypes {\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 DbNgxPromptConfirmConfig {\n type?: DbNgxPromptConfirmTypes;\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 // TODO: styleUrls: ['./prompt.scss']\n})\nexport class DbNgxPromptConfirmComponent {\n\n private _config: DbNgxPromptConfirmConfig = {};\n\n @Output()\n confirm = new EventEmitter<void>();\n\n @Output()\n cancel = new EventEmitter<void>();\n\n @Input()\n get config(): DbNgxPromptConfirmConfig {\n return this._config;\n }\n\n set config(config: Maybe<DbNgxPromptConfirmConfig>) {\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}\n","<dbx-prompt [header]=\"config.title\" [prompt]=\"config.prompt\" [elevated]=\"false\">\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 { Component, Input, OnInit } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { AbstractDialogDirective } from '../../interaction/dialog/abstract.dialog.directive';\nimport { DbNgxPromptConfirmConfig } from './prompt.confirm.component';\n\n@Component({\n template: `\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\"></dbx-prompt-confirm>\n `\n})\nexport class DbNgxPromptConfirmDialogComponent extends AbstractDialogDirective implements OnInit {\n\n @Input()\n config?: Maybe<DbNgxPromptConfirmConfig>;\n\n confirm(): void {\n this.dialogRef.close(true);\n }\n\n cancel(): void {\n this.dialogRef.close(false);\n }\n\n}\n","import { Directive, Input } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Maybe } from '@dereekb/util';\nimport { Observable, from } from 'rxjs';\nimport { DbNgxPromptConfirm, ProvideDbNgxPromptConfirm } from './prompt.confirm';\nimport { DbNgxPromptConfirmConfig, DbNgxPromptConfirmTypes } from './prompt.confirm.component';\nimport { DbNgxPromptConfirmDialogComponent } 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 DbNgxPromptConfirm {\n\n private static readonly DEFAULT_CONFIG = {\n title: 'Confirm?',\n type: DbNgxPromptConfirmTypes.NORMAL\n };\n\n config?: DbNgxPromptConfirmConfig;\n\n private _dialogRef?: MatDialogRef<DbNgxPromptConfirmDialogComponent, boolean>;\n private _dialogPromise?: Promise<boolean>;\n\n constructor(protected readonly dialog: MatDialog) { }\n\n showDialog(): Observable<boolean> {\n if (!this._dialogPromise) {\n this._dialogPromise = new Promise<boolean>((resolve) => {\n this._dialogRef = this._makeDialog();\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 _makeDialog(): MatDialogRef<DbNgxPromptConfirmDialogComponent, boolean> {\n const dialogRef = this.dialog.open(DbNgxPromptConfirmDialogComponent);\n dialogRef.componentInstance.config = this.config ?? AbstractPromptConfirmDirective.DEFAULT_CONFIG;\n return dialogRef;\n }\n\n protected _handleDialogResult(result: boolean): boolean {\n return result;\n }\n\n}\n\n// MARK: Directive\n/**\n * Directive that shows a confirmation screen.\n */\n@Directive({\n selector: '[dbxPromptConfirm]',\n providers: ProvideDbNgxPromptConfirm(DbNgxPromptConfirmDirective)\n})\nexport class DbNgxPromptConfirmDirective<T, O> extends AbstractPromptConfirmDirective {\n\n @Input('dbxPromptConfirm')\n override config?: DbNgxPromptConfirmConfig;\n\n constructor(dialog: MatDialog) {\n super(dialog);\n }\n\n}\n","import { Directive, Host, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AbstractPromptConfirmDirective } from '../interaction/prompt/prompt.confirm.directive';\nimport { DbNgxPromptConfirmConfig } from '../interaction/prompt/prompt.confirm.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { ActionContextStoreSourceInstance } from '@dereekb/dbx-core';\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 DbNgxActionConfirmDirective<T, O> extends AbstractPromptConfirmDirective implements OnInit, OnDestroy {\n\n @Input('dbxActionConfirm')\n override config?: DbNgxPromptConfirmConfig;\n\n private _sourceSubscription = new SubscriptionObject();\n\n constructor(@Host() public readonly source: ActionContextStoreSourceInstance<T, O>, dialog: MatDialog) {\n super(dialog);\n }\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(null);\n } else {\n this.source.reject(undefined);\n }\n\n return result;\n }\n\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-page',\n template: `\n <div class=\"prompt-page\">\n <dbx-full-width-content-container>\n <div class=\"prompt-page-content-wrap\">\n <ng-content></ng-content>\n </div>\n </dbx-full-width-content-container>\n </div>\n `,\n // TODO: styleUrls: ['./prompt.scss']\n})\nexport class DbNgxPromptPageComponent { }\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dbx-hint',\n template: `<p class=\"dbx-hint\"><ng-content></ng-content></p>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxHintComponent {}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Acts as a divider between content and centers a label within a background.\n */\n@Component({\n selector: 'dbx-label-bar',\n template: `\n <div class=\"dbx-label-bar dbx-hint mat-small dbx-text-center\">\n <mat-icon class=\"button-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"text\">{{ text }}</span>\n </div>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxLabelBarComponent {\n\n @Input()\n text?: string;\n\n @Input()\n icon?: string;\n\n}\n","import { Component } from '@angular/core';\n\n/**\n * DbNgx field label.\n */\n@Component({\n selector: 'dbx-label',\n template: `<div class=\"dbx-label mat-small\"><ng-content></ng-content></div>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxLabelComponent {}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\n\n@Component({\n selector: 'dbx-link',\n template: `<span class=\"dbx-link\"><dbx-anchor [anchor]=\"anchor\"><ng-content></ng-content></dbx-anchor></span>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxLinkComponent {\n\n @Input()\n anchor?: ClickableAnchor;\n\n @Input()\n set ref(ref: string) {\n if (ref) {\n this.anchor = {\n ref\n };\n }\n }\n\n @Input()\n set href(href: string) {\n if (href) {\n this.anchor = {\n url: href\n };\n }\n }\n\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\nimport * as linkifyStr from 'linkify-string';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * Used to \"linkify\" the input text.\n */\n@Component({\n selector: 'dbx-linkify',\n template: `<span class=\"dbx-linkify\" [innerHTML]=\"linkifiedBody$ | async\"></span>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxLinkifyComponent implements OnDestroy {\n\n private _text = new BehaviorSubject<string>('');\n\n readonly linkifiedText$ = this._text.pipe(\n distinctUntilChanged(),\n map(x => linkifyStr(x, {\n defaultProtocol: 'https',\n target: {\n url: '_blank'\n }\n })),\n shareReplay(1)\n );\n\n readonly linkifiedBody$ = this.linkifiedText$.pipe(\n map(x => {\n return this.sanitizer.bypassSecurityTrustHtml(x);\n }),\n shareReplay(1)\n );\n\n constructor(private readonly sanitizer: DomSanitizer) { }\n\n ngOnDestroy(): void {\n this._text.complete();\n }\n\n @Input()\n get text(): string {\n return this._text.value;\n }\n\n set text(text: string) {\n this._text.next(text);\n }\n\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-note',\n template: `<p class=\"dbx-note\"><ng-content></ng-content></p>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxNoteComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-notice',\n template: `<p class=\"dbx-notice\"><ng-content></ng-content></p>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxNoticeComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-ok',\n template: `<p class=\"dbx-ok\"><ng-content></ng-content></p>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxOkComponent { }\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dbx-success',\n template: `<p class=\"dbx-success\"><ng-content></ng-content></p>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxSuccessComponent { }\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport interface TextChip<T = any> {\n text: string;\n tooltip?: string;\n color?: 'primary' | 'accent';\n data?: T;\n}\n\n@Component({\n selector: 'dbx-text-chips',\n template: `\n <mat-chip-list *ngIf=\"chips\" [multiple]=\"false\">\n <mat-chip *ngFor=\"let chip of chips\" selected [color]=\"chip.color\" [matTooltip]=\"chip.tooltip!\" matTooltipPosition=\"above\">\n {{chip.text}}\n </mat-chip>\n </mat-chip-list>\n `,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxTextChipsComponent<T = any> {\n\n @Input()\n chips?: Maybe<TextChip<T>[]>;\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dbx-warn',\n template: `<p class=\"dbx-warn\"><ng-content></ng-content></p>`,\n // TODO: styleUrls: ['./text.scss']\n})\nexport class DbNgxWarnComponent {}\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 { DbNgxAnchorModule } from '../router';\nimport { DbNgxHintComponent } from './hint.component';\nimport { DbNgxLabelBarComponent } from './label.bar.component';\nimport { DbNgxLabelComponent } from './label.component';\nimport { DbNgxLinkComponent } from './link.component';\nimport { DbNgxLinkifyComponent } from './linkify.component';\nimport { DbNgxNoteComponent } from './note.component';\nimport { DbNgxNoticeComponent } from './notice.component';\nimport { DbNgxOkComponent } from './ok.component';\nimport { DbNgxSuccessComponent } from './success.component';\nimport { DbNgxTextChipsComponent } from './text.chips.component';\nimport { DbNgxWarnComponent } from './warn.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatChipsModule,\n MatTooltipModule,\n MatIconModule,\n DbNgxAnchorModule\n ],\n declarations: [\n DbNgxNoteComponent,\n DbNgxNoticeComponent,\n DbNgxSuccessComponent,\n DbNgxWarnComponent,\n DbNgxHintComponent,\n DbNgxLinkComponent,\n DbNgxLabelComponent,\n DbNgxLinkifyComponent,\n DbNgxOkComponent,\n DbNgxTextChipsComponent,\n DbNgxLabelBarComponent\n ],\n exports: [\n DbNgxNoteComponent,\n DbNgxNoticeComponent,\n DbNgxSuccessComponent,\n DbNgxWarnComponent,\n DbNgxHintComponent,\n DbNgxLinkComponent,\n DbNgxLabelComponent,\n DbNgxLinkifyComponent,\n DbNgxOkComponent,\n DbNgxTextChipsComponent,\n DbNgxLabelBarComponent\n ],\n})\nexport class DbNgxTextModule { }\n","import { DbNgxButtonDirective, DbNgxButtonInterceptor } from '@dereekb/dbx-core';\nimport { Directive, Host, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DbNgxPromptConfirm } from './prompt.confirm';\nimport { map } from 'rxjs/operators';\n\n/**\n * Directive that binds together a confirm dialog with the button.\n */\n@Directive({\n selector: '[dbxPromptConfirmButton]',\n})\nexport class DbNgxPromptConfirmButtonDirective implements OnInit, DbNgxButtonInterceptor {\n\n readonly interceptButtonClick: () => Observable<boolean> = () => {\n return this.prompt.showDialog().pipe(map(x => Boolean(x)));\n }\n\n constructor(\n @Host() readonly appButton: DbNgxButtonDirective,\n @Host() readonly prompt: DbNgxPromptConfirm\n ) { }\n\n ngOnInit(): void {\n this.appButton.setButtonInterceptor(this);\n }\n\n}\n","import { DbNgxButtonModule } from './../../button/button.module';\nimport { DbNgxPromptComponent } from './prompt.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxPromptBoxComponent } from './prompt.box.component';\nimport { DbNgxPromptPageComponent } from './prompt.page.component';\nimport { DbNgxTextModule } from '../../text';\nimport { DbNgxContentLayoutModule, DbNgxSectionLayoutModule } from '../../layout';\nimport { DbNgxPromptConfirmComponent as DbNgxPromptConfirmComponent } from './prompt.confirm.component';\nimport { DbNgxPromptConfirmDialogComponent as DbNgxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\nimport { DbNgxPromptConfirmDirective } from './prompt.confirm.directive';\nimport { DbNgxPromptConfirmButtonDirective } from './prompt.button.confirm.directive';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n imports: [\n CommonModule,\n MatDialogModule,\n MatButtonModule,\n DbNgxTextModule,\n DbNgxButtonModule,\n DbNgxSectionLayoutModule,\n DbNgxContentLayoutModule\n ],\n declarations: [\n DbNgxPromptComponent,\n DbNgxPromptBoxComponent,\n DbNgxPromptPageComponent,\n DbNgxPromptConfirmComponent,\n DbNgxPromptConfirmButtonDirective,\n DbNgxPromptConfirmDialogComponent,\n DbNgxPromptConfirmDirective,\n ],\n exports: [\n DbNgxPromptComponent,\n DbNgxPromptBoxComponent,\n DbNgxPromptPageComponent,\n DbNgxPromptConfirmComponent,\n DbNgxPromptConfirmButtonDirective,\n DbNgxPromptConfirmDirective,\n ],\n})\nexport class DbNgxPromptModule { }\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 { DbNgxButtonModule } from '../button/button.module';\n// import { DbNgxErrorModule } from '../error/error.module';\nimport { DbNgxActionKeyTriggerDirective } from './key.trigger.directive';\nimport { DbNgxActionSnackbarComponent } from './action.snackbar.component';\nimport { DbNgxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbNgxActionConfirmDirective } from './action.confirm.directive';\nimport { DbNgxPromptModule } from '../interaction/prompt/prompt.module';\n\n@NgModule({\n imports: [\n CommonModule,\n DbNgxCoreActionModule,\n DbNgxButtonModule,\n MatSnackBarModule,\n MatDialogModule,\n MatButtonModule,\n DbNgxPromptModule,\n ],\n declarations: [\n DbNgxActionKeyTriggerDirective,\n DbNgxActionSnackbarComponent,\n DbNgxActionConfirmDirective,\n ],\n exports: [\n DbNgxCoreActionModule,\n DbNgxActionKeyTriggerDirective,\n DbNgxActionSnackbarComponent,\n DbNgxActionConfirmDirective,\n ]\n})\nexport class DbNgxActionModule { }\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 { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbNgxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbNgxPopoverService } from './popover.service';\nimport { DbNgxPopoverContentComponent } from './popover.content.component';\nimport { DbNgxPopoverComponent } from './popover.component';\nimport { DbNgxPopoverControlsComponent } from './popover.controls.component';\nimport { DbNgxPopoverCoordinatorService } from './popover.coordinator.service';\nimport { DbNgxPopoverHeaderComponent } from './popover.header.component';\nimport { DbNgxPopoverScrollContentComponent } from './popover.scroll.content.component';\nimport { DbNgxPopoverActionButtonDirective } from './popover.action.button.directive';\nimport { DbNgxPopoverActionDirective } from './popover.action.directive';\nimport { DbNgxKeypressModule } from '../../keypress';\nimport { DbNgxAnchorModule } from '../../router';\nimport { DbNgxActionModule } from '../../action/action.module';\nimport { DbNgxButtonModule } from '../../button/button.module';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatDividerModule,\n DbNgxButtonModule,\n DbNgxAnchorModule,\n DbNgxActionModule,\n DbNgxKeypressModule,\n NgOverlayContainerModule,\n AngularResizeEventModule\n ],\n declarations: [\n DbNgxPopoverActionButtonDirective,\n DbNgxPopoverActionDirective,\n DbNgxPopoverComponent,\n DbNgxPopoverCoordinatorComponent,\n DbNgxPopoverContentComponent,\n DbNgxPopoverControlsComponent,\n DbNgxPopoverHeaderComponent,\n DbNgxPopoverScrollContentComponent\n ],\n exports: [\n DbNgxPopoverActionButtonDirective,\n DbNgxPopoverActionDirective,\n DbNgxPopoverContentComponent,\n DbNgxPopoverControlsComponent,\n DbNgxPopoverHeaderComponent,\n DbNgxPopoverScrollContentComponent\n ],\n providers: [\n DbNgxPopoverService\n ]\n})\nexport class DbNgxPopoverModule {\n\n static forRoot(): ModuleWithProviders<DbNgxPopoverModule> {\n return {\n ngModule: DbNgxPopoverModule,\n providers: [\n DbNgxPopoverCoordinatorService\n ]\n };\n }\n\n}\n","import { GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport enum PopupPosition {\n CENTERED = 'centered',\n BOTTOM_LEFT = 'bottom_left',\n BOTTOM_RIGHT = 'bottom_right'\n}\n\nexport interface PopupPositionOffset {\n x?: string;\n y?: string;\n}\n\nexport class PopupGlobalPositionStrategy extends GlobalPositionStrategy {\n\n private _position: PopupPosition = PopupPosition.BOTTOM_RIGHT;\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\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 PopupPosition.CENTERED:\n break;\n case PopupPosition.BOTTOM_LEFT:\n this.bottom(offsetY);\n this.left(offsetX);\n break;\n case PopupPosition.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}\n","import { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbNgxPopupKey = string;\n\nexport enum DbNgxPopupWindowState {\n NORMAL = 'normal',\n MINIMIZED = 'minimized',\n FULLSCREEN = 'fullscreen'\n}\n\nexport abstract class DbNgxPopupController<I = any, O = any> {\n abstract readonly key: DbNgxPopupKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly windowState$: Observable<DbNgxPopupWindowState>;\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 { DbNgxPopupKey, DbNgxPopupController } from './popup';\nimport { Injectable } 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()\nexport class DbNgxPopupCoordinatorService {\n\n private _popups = new BehaviorSubject<Map<DbNgxPopupKey, DbNgxPopupController>>(new Map());\n\n readonly popups$ = this._popups.asObservable();\n\n constructor() { }\n\n get popups(): Map<DbNgxPopupKey, DbNgxPopupController> {\n return this._popups.value;\n }\n\n public addPopup(popup: DbNgxPopupController): 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: DbNgxPopupKey, popup?: DbNgxPopupController): 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}\n","import { DbNgxPopupController } from './popup';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { DbNgxPopupCoordinatorService } from './popup.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs/operators';\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 // TODO: styleUrls: ['./popup.scss']\n})\nexport class DbNgxPopupCoordinatorComponent implements OnInit, OnDestroy {\n\n readonly isPopupForKey$ = this.service.popups$.pipe(map(x => x.get(this.popup.key) === this.popup), shareReplay(1));\n readonly show$ = this.isPopupForKey$.pipe(delay(0));\n\n constructor(private readonly service: DbNgxPopupCoordinatorService, private readonly popup: DbNgxPopupController) { }\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}\n","import { Component, ComponentFactoryResolver, NgZone, Type, ViewChild, ViewContainerRef, OnInit, OnDestroy, ComponentRef } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Maybe } from '@dereekb/util';\nimport { CompactMode, CompactContextStore } from '../../layout';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { PopupGlobalPositionStrategy, PopupPosition, PopupPositionOffset } from './popup.position.strategy';\nimport { filter, first, map, shareReplay, startWith } from 'rxjs/operators';\nimport { AbstractTransitionWatcherDirective, DbNgxRouterTransitionService } from '@dereekb/dbx-core';\nimport { DbNgxPopupController, DbNgxPopupKey, DbNgxPopupWindowState } 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 DbNgxPopupComponentController<I, O> extends DbNgxPopupController<I, O> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbNgxPopupComponentConfig<I, O, 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: DbNgxPopupKey;\n position?: PopupPosition;\n offset?: PopupPositionOffset;\n closeOnTransition?: boolean;\n componentClass: Type<T>;\n data?: I;\n isDraggable?: boolean;\n init?: (component: T, controller: DbNgxPopupController<I, O>) => void;\n}\n\n/**\n * Popup component.\n */\n@Component({\n template: `\n <dbx-popup-coordinator>\n <div class=\"dbx-popup-component\">\n <ng-template #content></ng-template>\n </div>\n </dbx-popup-coordinator>\n `,\n // TODO: styleUrls: ['./popup.scss'],\n providers: [{\n provide: DbNgxPopupController,\n useExisting: DbNgxPopupComponent\n }, {\n provide: CompactContextStore\n }]\n})\nexport class DbNgxPopupComponent<I = any, O = any, T = any> extends AbstractTransitionWatcherDirective implements DbNgxPopupController<I, O>, OnInit, OnDestroy {\n\n private _position: PopupGlobalPositionStrategy;\n\n @ViewChild('content', { static: true, read: ViewContainerRef })\n private _content!: ViewContainerRef;\n private _componentRef?: ComponentRef<T>;\n\n private readonly closing = new Subject<void>();\n readonly isClosing$ = this.closing.pipe(first(), map(x => true), startWith(false), shareReplay(1));\n readonly closing$ = this.isClosing$.pipe(filter(x => x));\n\n private readonly _windowState = new BehaviorSubject<DbNgxPopupWindowState>(DbNgxPopupWindowState.NORMAL);\n readonly windowState$ = this._windowState.asObservable();\n\n getClosingValueFn?: (value?: I) => Promise<O>;\n\n constructor(\n private popoverRef: NgPopoverRef<DbNgxPopupComponentConfig<I, O, T>, O>,\n private compactContextState: CompactContextStore,\n private resolver: ComponentFactoryResolver,\n dbNgxRouterTransitionService: DbNgxRouterTransitionService,\n ngZone: NgZone) {\n super(dbNgxRouterTransitionService, ngZone);\n\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(): DbNgxPopupComponentConfig<I, O, T> {\n return this.popoverRef.data;\n }\n\n get key(): DbNgxPopupKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n this._content.clear();\n const componentClass = this.config.componentClass;\n const factory = this.resolver.resolveComponentFactory(componentClass);\n this._componentRef = this._content.createComponent(factory);\n\n if (this.config.init) {\n this.config.init(this._componentRef.instance, this);\n }\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((x) => {\n this.return(x);\n }, () => {\n this.return();\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(DbNgxPopupWindowState.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(DbNgxPopupWindowState.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(DbNgxPopupWindowState.FULLSCREEN);\n }\n\n}\n","import { Directive } from '@angular/core';\nimport { DbNgxPopupComponent } from './popup.component';\n\n/**\n * Abstract popup directive.\n */\n@Directive()\nexport abstract class AbstractPopupDirective<I = any, O = any, T = any> {\n\n constructor(public readonly popup: DbNgxPopupComponent<I, O, T>) { }\n\n closePopup(): void {\n this.popup.close();\n }\n\n}\n","import { Component } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { DbNgxPopupController, DbNgxPopupWindowState } from './popup';\n\n/**\n * Popup content wrapper component.\n */\n@Component({\n selector: 'dbx-popup-content',\n template: `\n <div class=\"dbx-popup-content\">\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 </div>\n`,\n // TODO: styleUrls: ['./popup.scss']\n})\nexport class DbNgxPopupContentComponent {\n\n readonly showContent$ = this.appPopupController.windowState$.pipe(map(x => x !== DbNgxPopupWindowState.MINIMIZED));\n\n constructor(private appPopupController: DbNgxPopupController) { }\n\n}\n","import { Component } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { DbNgxPopupController, DbNgxPopupWindowState } from './popup';\n\n/**\n * Popup Control Buttons.\n */\n@Component({\n selector: 'dbx-popup-control-buttons',\n template: `\n <span class=\"dbx-popup-control-buttons\">\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 </span>\n `,\n // TODO: styleUrls: ['./popup.scss']\n})\nexport class DbNgxPopupControlButtonsComponent {\n\n readonly isMinimized$ = this.appPopupController.windowState$.pipe(map(x => x === DbNgxPopupWindowState.MINIMIZED));\n readonly isFullscreen$ = this.appPopupController.windowState$.pipe(map(x => x === DbNgxPopupWindowState.FULLSCREEN));\n\n constructor(private appPopupController: DbNgxPopupController) { }\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}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Popup Controls\n */\n@Component({\n selector: 'dbx-popup-controls',\n template: `\n <div class=\"dbx-popup-controls\">\n <span class=\"dbx-popup-controls-header\">{{ header }}</span>\n <div class=\"spacer\"></div>\n <dbx-popup-control-buttons></dbx-popup-control-buttons>\n </div>\n `,\n // TODO: styleUrls: ['./popup.scss']\n})\nexport class DbNgxPopupControlsComponent {\n\n @Input()\n header?: string;\n\n}\n","import { DbNgxPopupComponent, DbNgxPopupComponentConfig, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH } from './popup.component';\nimport { Injectable, Injector } from '@angular/core';\nimport { NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbNgxPopupConfig<I, O, T> extends DbNgxPopupComponentConfig<I, O, T> {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popup.\n */\n@Injectable()\nexport class DbNgxPopupService {\n\n private _overlayContainerService: NgOverlayContainerService;\n\n constructor(private _overlay: Overlay, private _injector: Injector) {\n this._overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n }\n\n open<I, O, T>(config: DbNgxPopupConfig<I, O, T>): NgPopoverRef<DbNgxPopupComponentConfig<I, O, T>, O> {\n const service = (config.injector) ? new NgOverlayContainerService(this._overlay, config.injector) : this._overlayContainerService;\n const isDraggable = config.isDraggable ?? false;\n\n return service.open<DbNgxPopupComponentConfig<I, O, T>, O>({\n content: DbNgxPopupComponent,\n data: {\n ...config,\n isDraggable,\n },\n configuration: {\n panelClass: 'dbx-popup-container',\n width: APP_POPUP_NORMAL_WIDTH,\n height: APP_POPUP_NORMAL_HEIGHT,\n useGlobalPositionStrategy: true,\n hasBackdrop: false,\n isResizable: false,\n isDraggable\n }\n });\n }\n\n}\n","import { DbNgxPopupCoordinatorComponent } from './popup.coordinator.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbNgxPopupService } from './popup.service';\nimport { DbNgxPopupContentComponent } from './popup.content.component';\nimport { DbNgxPopupComponent } from './popup.component';\nimport { DbNgxAnchorModule } from '../../router';\nimport { DbNgxActionModule } from '../../action/action.module';\nimport { DbNgxPopupControlsComponent } from './popup.controls.component';\nimport { DbNgxPopupControlButtonsComponent } from './popup.controls.buttons.component';\nimport { DbNgxButtonModule } from '../../button/button.module';\nimport { DbNgxPopupCoordinatorService } from './popup.coordinator.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n DbNgxButtonModule,\n DbNgxAnchorModule,\n DbNgxActionModule,\n NgOverlayContainerModule\n ],\n declarations: [\n DbNgxPopupComponent,\n DbNgxPopupCoordinatorComponent,\n DbNgxPopupContentComponent,\n DbNgxPopupControlsComponent,\n DbNgxPopupControlButtonsComponent\n ],\n exports: [\n DbNgxPopupContentComponent,\n DbNgxPopupControlsComponent,\n DbNgxPopupControlButtonsComponent\n ],\n providers: [\n DbNgxPopupService\n ]\n})\nexport class DbNgxPopupModule {\n\n static forRoot(): ModuleWithProviders<DbNgxPopupModule> {\n return {\n ngModule: DbNgxPopupModule,\n providers: [\n DbNgxPopupCoordinatorService\n ]\n };\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { ErrorInput, convertToReadableError, ReadableError } from '@dereekb/util';\n\n/**\n * Basic error component.\n */\n@Component({\n selector: 'dbx-error',\n templateUrl: './error.component.html',\n // TODO: styleUrls: ['./error.scss']\n})\nexport class DbNgxReadableErrorComponent {\n\n private _error?: ReadableError;\n\n get error(): Maybe<ReadableError> {\n return this._error;\n }\n\n @Input()\n set error(error: Maybe<ErrorInput | ReadableError>) {\n this._error = convertToReadableError(error as any) as ReadableError;\n }\n\n get message(): Maybe<string> {\n return this._error?.message;\n }\n\n}\n","<div *ngIf=\"error\" class=\"dbx-error\">\n <h4>An error occured.</h4>\n <!-- <p class=\"dbx-error-code\" *ngIf=\"errorData.code\">{{ errorData.code }}</p> -->\n <p class=\"dbx-error-message\" *ngIf=\"message\">{{ message }}</p>\n</div>\n","import { Directive, Host, OnInit, OnDestroy, Input, NgZone } from '@angular/core';\nimport { ActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbNgxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to an ActionContext.\n */\n@Directive({\n selector: '[dbxActionError]'\n})\nexport class DbNgxActionErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n\n constructor(@Host() public readonly error: DbNgxReadableErrorComponent, public readonly source: ActionContextStoreSourceInstance) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.source.error$.subscribe((error) => {\n this.error.error = error;\n });\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DbNgxPromptConfirmConfig, DbNgxPromptConfirmTypes, AbstractDialogDirective } from '../../interaction';\n\nexport enum DbNgxActionTransitionSafetyDialogResult {\n SUCCESS,\n STAY,\n DISCARD,\n NONE\n}\n\n/**\n * Dialog that is shown/triggered as part of the DbNgxActionTransitionSafety\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 DbNgxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDirective implements OnInit {\n\n config: DbNgxPromptConfirmConfig = {\n type: DbNgxPromptConfirmTypes.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(DbNgxActionTransitionSafetyDialogResult.STAY);\n }\n\n cancel(): void {\n this.dialogRef.close(DbNgxActionTransitionSafetyDialogResult.DISCARD);\n }\n\n}\n","import { Directive, OnInit, OnDestroy, Input, ViewContainerRef } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { HookResult, Transition, TransitionService } from '@uirouter/core';\nimport { Observable, of, race } from 'rxjs';\nimport { delay, first, map, mergeMap, tap } from 'rxjs/operators';\nimport { ActionContextStoreSourceInstance, canTriggerAction, isIdleActionState } from '@dereekb/dbx-core';\nimport { DbNgxActionTransitionSafetyDialogResult, DbNgxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\n\nexport enum DbNgxActionTransitionSafetyType {\n /**\n * Nothing occurs.\n */\n NONE = 'none',\n\n /**\n * Always show a dialog and act based on the result.\n */\n DIALOG = 'dialog',\n\n /**\n * Try to auto-trigger if in a triggerable state.\n *\n * If it is modified but in a non-triggerable state show a dialog.\n *\n * Should be used in conjuction with the auto-saver.\n */\n AUTO_TRIGGER = 'auto'\n}\n\ntype DbNgxActionTransitionSafetyRaceResult = [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 DbNgxActionTransitionSafetyDirective<T, O> implements OnInit, OnDestroy {\n\n @Input('dbxActionTransitionSafety')\n inputSafetyType?: DbNgxActionTransitionSafetyType;\n\n private _dialogRef?: MatDialogRef<DbNgxActionUIRouterTransitionSafetyDialogComponent, DbNgxActionTransitionSafetyDialogResult>;\n private stopWatchingTransition?: () => void;\n\n constructor(\n public readonly source: ActionContextStoreSourceInstance<T, O>,\n protected readonly transitionService: TransitionService,\n protected readonly viewContainerRef: ViewContainerRef,\n protected readonly dialog: MatDialog\n ) { }\n\n get safetyType(): DbNgxActionTransitionSafetyType {\n return this.inputSafetyType || DbNgxActionTransitionSafetyType.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 any;\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 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(first(), map((x) => [true, undefined] as DbNgxActionTransitionSafetyRaceResult)),\n this._handleIsModifiedState(transition).pipe(first(), map((x) => [undefined, x] as DbNgxActionTransitionSafetyRaceResult))\n ]).pipe(\n map(([saveSuccess, handleResult]: DbNgxActionTransitionSafetyRaceResult) => {\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 ).toPromise().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 DbNgxActionTransitionSafetyType.NONE:\n obs = of(true); // Do nothing.\n break;\n case DbNgxActionTransitionSafetyType.DIALOG:\n obs = this._showDialog(transition);\n break;\n case DbNgxActionTransitionSafetyType.AUTO_TRIGGER:\n obs = this._autoTrigger(transition);\n break;\n }\n\n return obs;\n }\n\n private _autoTrigger(transition: Transition): Observable<HookResult> {\n return this.source.pipeStore((store) => 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 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(DbNgxActionUIRouterTransitionSafetyDialogComponent, {\n viewContainerRef: this.viewContainerRef\n });\n }\n\n return this._dialogRef.afterClosed().pipe(\n first(),\n map((result: DbNgxActionTransitionSafetyDialogResult = DbNgxActionTransitionSafetyDialogResult.STAY) => {\n // Default to Stay if the user clicks outside.\n switch (result) {\n case DbNgxActionTransitionSafetyDialogResult.DISCARD:\n case DbNgxActionTransitionSafetyDialogResult.SUCCESS:\n case DbNgxActionTransitionSafetyDialogResult.NONE:\n return true;\n case DbNgxActionTransitionSafetyDialogResult.STAY:\n return false;\n }\n })\n );\n }\n\n private _closeDialog(): void {\n if (this._dialogRef) {\n this._dialogRef.close(DbNgxActionTransitionSafetyDialogResult.NONE);\n }\n\n this._dialogRef = undefined;\n }\n\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ServerError, ServerErrorResponse, ServerErrorResponseData, UnauthorizedServerErrorResponse } from '@dereekb/util';\n\n/**\n * Converts the error response to a POJO.\n */\nexport function convertToPOJOServerErrorResponse(httpError: HttpErrorResponse | any): ServerError {\n const result: ServerErrorResponse | undefined = convertToServerErrorResponse(httpError);\n const pojo: ServerErrorResponse = Object.assign({}, result);\n\n if (pojo.data) {\n try {\n const stringy = JSON.stringify(pojo.data);\n (pojo as any).data = JSON.parse(stringy);\n } catch (e) {\n console.warn('convertToPOJOServerErrorResponse(): Non-serializable Error Data Detected. It is being removed.: ', pojo.data);\n (pojo as any).data = undefined;\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 | any): ServerErrorResponse | undefined {\n let result: ServerErrorResponse | undefined;\n\n if (error instanceof HttpErrorResponse) {\n const { status, error: data }: { status: number, error: ServerErrorResponseData } = 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.message, status: 0 });\n }\n\n return result;\n}\n","import { Directive, Host, Input } from '@angular/core';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbNgxReadableErrorComponent } 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 DbNgxLoadingErrorDirective extends AbstractSubscriptionDirective {\n\n constructor(@Host() public readonly error: DbNgxReadableErrorComponent) {\n super();\n }\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}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbNgxReadableErrorComponent } from './error.component';\nimport { DbNgxLoadingErrorDirective } from './error.loading.directive';\nimport { DbNgxActionErrorDirective } from './error.action.directive';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n DbNgxReadableErrorComponent,\n DbNgxLoadingErrorDirective,\n DbNgxActionErrorDirective\n ],\n exports: [\n DbNgxReadableErrorComponent,\n DbNgxLoadingErrorDirective,\n DbNgxActionErrorDirective\n ]\n})\nexport class DbNgxReadableErrorModule { }\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { convertToPOJOServerErrorResponse } from './error.api';\nimport { of, OperatorFunction } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\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 | any): 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>(\n action: ActionCreator<T, (props: E) => E & TypedAction<T>>,\n mapError: (error: ServerErrorParams) => E = (error) => error as E\n):\n OperatorFunction<HttpErrorResponse | any, E & TypedAction<T>> {\n return catchError((error: HttpErrorResponse) => of(action(mapError(convertServerErrorParams(error)))));\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbNgxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { DbNgxActionTransitionSafetyDirective as DbNgxActionUIRouterTransitionSafetyDirective } from './transition.safety.directive';\nimport { DbNgxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbNgxButtonModule } from '../../button';\nimport { DbNgxPromptModule } from './../../interaction';\nimport { DbNgxReadableErrorModule } from '../../error';\n\n/**\n * Provides the DbNgxActionUIRouterTransitionSafetyDirective.\n * \n * NOTE: Only works with UIRouter\n */\n@NgModule({\n imports: [\n CommonModule,\n DbNgxCoreActionModule,\n DbNgxPromptModule,\n DbNgxButtonModule,\n DbNgxReadableErrorModule\n ],\n declarations: [\n DbNgxActionUIRouterTransitionSafetyDirective,\n DbNgxActionUIRouterTransitionSafetyDialogComponent\n ],\n exports: [\n DbNgxActionUIRouterTransitionSafetyDirective\n ]\n})\nexport class DbNgxActionUIRouterTransitionModule { }\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 { Maybe } from '@dereekb/util';\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=\"hint\">{{ text }}</div>\n </div>\n `\n})\nexport class DbNgxLoadingProgressComponent {\n\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 = 'primary';\n\n @Input()\n value?: number;\n\n @Input()\n bufferValue: number = undefined!;\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 any;\n }\n\n}\n","import { startWith } from 'rxjs';\nimport { OnDestroy } from '@angular/core';\nimport { distinctUntilChanged, shareReplay, combineLatest, map, BehaviorSubject } from 'rxjs';\nimport { Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ErrorInput, Maybe } from '@dereekb/util';\nimport { checkNgContentWrapperHasContent } from '@dereekb/dbx-core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\n\n/**\n * DbNgxBasicLoadingComponent 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 DbNgxBasicLoadingComponent implements OnDestroy {\n\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) { // 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 = '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}\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\"\n [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 } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { ErrorInput, Maybe } from '@dereekb/util';\n\nexport interface DbNgxLoadingComponentState {\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 <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})\nexport class DbNgxLoadingComponent implements OnDestroy {\n\n private _context = new BehaviorSubject<Maybe<LoadingContext>>(undefined);\n\n private _inputLoading = new BehaviorSubject<Maybe<boolean>>(true);\n private _inputError = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n readonly state$: Observable<DbNgxLoadingComponentState> = combineLatest([this._inputLoading, this._inputError, this._context.pipe(\n switchMap(x => (x != null) ? x.stream$ : of(undefined))\n )]).pipe(\n map(([inputLoading, inputError, loadingState]) => {\n if (loadingState) {\n return loadingState as DbNgxLoadingComponentState;\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 shareReplay(1)\n );\n\n readonly loading$ = this.state$.pipe(map(x => x.loading), distinctUntilChanged(), shareReplay(1));\n readonly error$ = this.state$.pipe(map(x => x.error), distinctUntilChanged(), shareReplay(1));\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 = 'primary';\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n linear?: 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}\n","import { NgModule } from '@angular/core';\nimport { DbNgxBasicLoadingComponent } from './basic-loading.component';\nimport { DbNgxLoadingProgressComponent } from './loading-progress.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DbNgxLoadingComponent } from './loading.component';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { DbNgxReadableErrorModule } from '../error';\n\n@NgModule({\n imports: [\n BrowserModule,\n DbNgxReadableErrorModule,\n MatProgressSpinnerModule,\n MatProgressBarModule\n ],\n declarations: [\n DbNgxLoadingComponent,\n DbNgxBasicLoadingComponent,\n DbNgxLoadingProgressComponent\n ],\n exports: [\n DbNgxLoadingComponent,\n DbNgxBasicLoadingComponent,\n DbNgxLoadingProgressComponent,\n MatProgressSpinnerModule,\n MatProgressBarModule\n ]\n})\nexport class DbNgxLoadingModule { }\n","import { DbNgxLoadingModule } from './loading/loading.module';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { MatProgressButtonsModule } from 'mat-progress-buttons';\nimport { NgModule } from '@angular/core';\nimport { DbNgxButtonModule } from './button';\nimport { DbNgxActionModule } from './action';\n\n@NgModule({\n exports: [\n DbNgxButtonModule,\n DbNgxActionModule,\n DbNgxLoadingModule\n ],\n})\nexport class DbNgxWebModule { }\n\n@NgModule({\n imports: [\n BrowserModule,\n DbNgxWebModule,\n MatProgressButtonsModule.forRoot()\n ],\n exports: [\n DbNgxWebModule\n ]\n})\nexport class DbNgxSharedWebModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["distinctUntilChanged","shareReplay","DbNgxActionUIRouterTransitionSafetyDirective","map","startWith","switchMap"],"mappings":"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"}