@dereekb/dbx-web 11.1.8 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (742) hide show
  1. package/calendar/lib/calendar.base.component.d.ts +10 -1
  2. package/calendar/lib/calendar.component.d.ts +8 -5
  3. package/calendar/lib/calendar.module.d.ts +4 -16
  4. package/calendar/lib/calendar.provider.d.ts +5 -0
  5. package/calendar/lib/calendar.store.d.ts +13 -9
  6. package/calendar/lib/index.d.ts +1 -0
  7. package/esm2022/calendar/lib/calendar.base.component.mjs +26 -12
  8. package/esm2022/calendar/lib/calendar.component.mjs +19 -17
  9. package/esm2022/calendar/lib/calendar.mjs +1 -1
  10. package/esm2022/calendar/lib/calendar.module.mjs +10 -76
  11. package/esm2022/calendar/lib/calendar.provider.mjs +11 -0
  12. package/esm2022/calendar/lib/calendar.store.mjs +19 -19
  13. package/esm2022/calendar/lib/index.mjs +2 -1
  14. package/esm2022/lib/action/action.confirm.directive.mjs +10 -12
  15. package/esm2022/lib/action/action.module.mjs +12 -16
  16. package/esm2022/lib/action/key.trigger.directive.mjs +6 -5
  17. package/esm2022/lib/action/snackbar/action.snackbar.component.mjs +29 -36
  18. package/esm2022/lib/action/snackbar/action.snackbar.directive.mjs +14 -27
  19. package/esm2022/lib/action/snackbar/action.snackbar.generator.mjs +1 -1
  20. package/esm2022/lib/action/snackbar/action.snackbar.module.mjs +8 -14
  21. package/esm2022/lib/action/snackbar/action.snackbar.service.mjs +4 -4
  22. package/esm2022/lib/action/transition/action.transition.module.mjs +14 -13
  23. package/esm2022/lib/action/transition/transition.safety.dialog.component.mjs +18 -24
  24. package/esm2022/lib/action/transition/transition.safety.directive.mjs +30 -33
  25. package/esm2022/lib/button/button.component.mjs +71 -104
  26. package/esm2022/lib/button/button.module.mjs +44 -12
  27. package/esm2022/lib/button/button.spacer.directive.mjs +20 -0
  28. package/esm2022/lib/button/icon/icon.button.component.mjs +48 -32
  29. package/esm2022/lib/button/icon/icon.button.module.mjs +10 -24
  30. package/esm2022/lib/button/index.mjs +2 -2
  31. package/esm2022/lib/button/progress/abstract.progress.button.directive.mjs +103 -0
  32. package/esm2022/lib/button/progress/bar.button.component.mjs +15 -11
  33. package/esm2022/lib/button/progress/button.progress.config.mjs +2 -2
  34. package/esm2022/lib/button/progress/button.progress.module.mjs +13 -28
  35. package/esm2022/lib/button/progress/button.progress.providers.mjs +18 -0
  36. package/esm2022/lib/button/progress/index.mjs +2 -1
  37. package/esm2022/lib/button/progress/spinner.button.component.mjs +66 -38
  38. package/esm2022/lib/dbx-web.module.mjs +4 -4
  39. package/esm2022/lib/error/default.error.widget.component.mjs +22 -15
  40. package/esm2022/lib/error/error.action.directive.mjs +9 -8
  41. package/esm2022/lib/error/error.api.mjs +1 -1
  42. package/esm2022/lib/error/error.component.mjs +56 -94
  43. package/esm2022/lib/error/error.details.component.mjs +15 -14
  44. package/esm2022/lib/error/error.loading.directive.mjs +20 -20
  45. package/esm2022/lib/error/error.module.mjs +21 -18
  46. package/esm2022/lib/error/error.popover.component.mjs +14 -17
  47. package/esm2022/lib/error/error.snackbar.action.directive.mjs +6 -5
  48. package/esm2022/lib/error/error.snackbar.component.mjs +57 -39
  49. package/esm2022/lib/error/error.snackbar.service.mjs +11 -10
  50. package/esm2022/lib/error/error.view.component.mjs +40 -33
  51. package/esm2022/lib/error/error.widget.component.mjs +19 -25
  52. package/esm2022/lib/error/error.widget.directive.mjs +3 -3
  53. package/esm2022/lib/error/error.widget.service.mjs +7 -7
  54. package/esm2022/lib/error/state.mjs +1 -1
  55. package/esm2022/lib/extension/download/text/download.text.component.mjs +46 -56
  56. package/esm2022/lib/extension/download/text/download.text.module.mjs +11 -33
  57. package/esm2022/lib/extension/model/index.mjs +2 -2
  58. package/esm2022/lib/extension/model/model.providers.mjs +42 -0
  59. package/esm2022/lib/extension/model/model.state.service.mjs +5 -8
  60. package/esm2022/lib/extension/model/model.tracker.mjs +1 -1
  61. package/esm2022/lib/extension/model/model.tracker.service.mjs +5 -8
  62. package/esm2022/lib/extension/model/model.tracker.view.storage.mjs +8 -8
  63. package/esm2022/lib/extension/model/model.types.mjs +1 -1
  64. package/esm2022/lib/extension/model/model.types.service.mjs +5 -5
  65. package/esm2022/lib/extension/model/state/actions/model.actions.mjs +1 -1
  66. package/esm2022/lib/extension/model/state/effects/tracker.effects.mjs +3 -3
  67. package/esm2022/lib/extension/structure/structure.body.directive.mjs +6 -5
  68. package/esm2022/lib/extension/structure/structure.module.mjs +11 -17
  69. package/esm2022/lib/extension/structure/structure.structure.directive.mjs +10 -6
  70. package/esm2022/lib/extension/widget/widget.component.mjs +32 -37
  71. package/esm2022/lib/extension/widget/widget.directive.mjs +3 -3
  72. package/esm2022/lib/extension/widget/widget.list.component.mjs +31 -20
  73. package/esm2022/lib/extension/widget/widget.module.mjs +15 -24
  74. package/esm2022/lib/extension/widget/widget.service.mjs +4 -4
  75. package/esm2022/lib/index.mjs +2 -2
  76. package/esm2022/lib/interaction/dialog/abstract.dialog.directive.mjs +3 -3
  77. package/esm2022/lib/interaction/dialog/dialog.action.directive.mjs +19 -23
  78. package/esm2022/lib/interaction/dialog/dialog.content.close.component.mjs +23 -22
  79. package/esm2022/lib/interaction/dialog/dialog.content.directive.mjs +23 -0
  80. package/esm2022/lib/interaction/dialog/dialog.content.footer.component.mjs +21 -29
  81. package/esm2022/lib/interaction/dialog/dialog.module.mjs +9 -16
  82. package/esm2022/lib/interaction/dialog/index.mjs +2 -2
  83. package/esm2022/lib/interaction/filter/filter.config.mjs +2 -0
  84. package/esm2022/lib/interaction/filter/filter.menu.mjs +1 -1
  85. package/esm2022/lib/interaction/filter/filter.module.mjs +9 -54
  86. package/esm2022/lib/interaction/filter/filter.partial.list.component.mjs +13 -11
  87. package/esm2022/lib/interaction/filter/filter.partial.menu.component.mjs +22 -29
  88. package/esm2022/lib/interaction/filter/filter.partial.mjs +13 -24
  89. package/esm2022/lib/interaction/filter/filter.popover.button.component.mjs +17 -31
  90. package/esm2022/lib/interaction/filter/filter.popover.button.directive.mjs +10 -12
  91. package/esm2022/lib/interaction/filter/filter.popover.component.mjs +25 -30
  92. package/esm2022/lib/interaction/filter/filter.preset.directive.mjs +17 -29
  93. package/esm2022/lib/interaction/filter/filter.preset.list.component.mjs +13 -11
  94. package/esm2022/lib/interaction/filter/filter.preset.menu.component.mjs +22 -29
  95. package/esm2022/lib/interaction/filter/filter.wrapper.component.mjs +23 -29
  96. package/esm2022/lib/interaction/filter/index.mjs +2 -1
  97. package/esm2022/lib/interaction/interaction.module.mjs +17 -6
  98. package/esm2022/lib/interaction/popover/abstract.popover.directive.mjs +3 -3
  99. package/esm2022/lib/interaction/popover/abstract.popover.ref.directive.mjs +13 -22
  100. package/esm2022/lib/interaction/popover/index.mjs +2 -2
  101. package/esm2022/lib/interaction/popover/popover.action.directive.mjs +20 -23
  102. package/esm2022/lib/interaction/popover/popover.close.component.mjs +12 -8
  103. package/esm2022/lib/interaction/popover/popover.component.mjs +15 -13
  104. package/esm2022/lib/interaction/popover/popover.content.component.mjs +20 -13
  105. package/esm2022/lib/interaction/popover/popover.content.module.mjs +9 -19
  106. package/esm2022/lib/interaction/popover/popover.controls.directive.mjs +7 -6
  107. package/esm2022/lib/interaction/popover/popover.coordinator.component.mjs +17 -15
  108. package/esm2022/lib/interaction/popover/popover.coordinator.service.mjs +4 -4
  109. package/esm2022/lib/interaction/popover/popover.header.component.mjs +25 -22
  110. package/esm2022/lib/interaction/popover/popover.module.mjs +8 -18
  111. package/esm2022/lib/interaction/popover/popover.scroll.content.directive.mjs +41 -0
  112. package/esm2022/lib/interaction/popover/popover.service.mjs +4 -4
  113. package/esm2022/lib/interaction/popup/abstract.popup.directive.mjs +3 -3
  114. package/esm2022/lib/interaction/popup/popup.component.mjs +20 -23
  115. package/esm2022/lib/interaction/popup/popup.content.component.mjs +21 -14
  116. package/esm2022/lib/interaction/popup/popup.controls.buttons.component.mjs +49 -26
  117. package/esm2022/lib/interaction/popup/popup.controls.component.mjs +15 -14
  118. package/esm2022/lib/interaction/popup/popup.coordinator.component.mjs +15 -12
  119. package/esm2022/lib/interaction/popup/popup.coordinator.service.mjs +4 -4
  120. package/esm2022/lib/interaction/popup/popup.mjs +6 -7
  121. package/esm2022/lib/interaction/popup/popup.module.mjs +8 -19
  122. package/esm2022/lib/interaction/popup/popup.position.strategy.mjs +1 -1
  123. package/esm2022/lib/interaction/popup/popup.service.mjs +8 -5
  124. package/esm2022/lib/interaction/prompt/index.mjs +2 -2
  125. package/esm2022/lib/interaction/prompt/prompt.box.directive.mjs +19 -0
  126. package/esm2022/lib/interaction/prompt/prompt.button.confirm.directive.mjs +6 -5
  127. package/esm2022/lib/interaction/prompt/prompt.component.mjs +16 -17
  128. package/esm2022/lib/interaction/prompt/prompt.confirm.component.mjs +35 -35
  129. package/esm2022/lib/interaction/prompt/prompt.confirm.dialog.component.mjs +14 -13
  130. package/esm2022/lib/interaction/prompt/prompt.confirm.directive.mjs +28 -23
  131. package/esm2022/lib/interaction/prompt/prompt.module.mjs +9 -18
  132. package/esm2022/lib/interaction/prompt/prompt.page.component.mjs +11 -8
  133. package/esm2022/lib/keypress/keydown.listener.directive.mjs +6 -5
  134. package/esm2022/lib/keypress/keypress.module.mjs +9 -8
  135. package/esm2022/lib/layout/bar/bar.directive.mjs +14 -11
  136. package/esm2022/lib/layout/bar/bar.header.component.mjs +31 -26
  137. package/esm2022/lib/layout/bar/bar.layout.module.mjs +9 -12
  138. package/esm2022/lib/layout/bar/pagebar.component.mjs +33 -12
  139. package/esm2022/lib/layout/block/block.layout.module.mjs +10 -12
  140. package/esm2022/lib/layout/block/two.block.component.mjs +25 -32
  141. package/esm2022/lib/layout/card/card.box.component.mjs +27 -20
  142. package/esm2022/lib/layout/card/card.box.container.directive.mjs +20 -0
  143. package/esm2022/lib/layout/card/card.box.layout.module.mjs +10 -12
  144. package/esm2022/lib/layout/card/index.mjs +2 -2
  145. package/esm2022/lib/layout/column/column.layout.module.mjs +9 -7
  146. package/esm2022/lib/layout/column/one/one.column.component.mjs +16 -15
  147. package/esm2022/lib/layout/column/one/one.column.module.mjs +9 -9
  148. package/esm2022/lib/layout/column/two/index.mjs +2 -2
  149. package/esm2022/lib/layout/column/two/two.column.back.directive.mjs +10 -12
  150. package/esm2022/lib/layout/column/two/two.column.component.mjs +77 -51
  151. package/esm2022/lib/layout/column/two/two.column.context.directive.mjs +14 -21
  152. package/esm2022/lib/layout/column/two/two.column.full.left.directive.mjs +13 -28
  153. package/esm2022/lib/layout/column/two/two.column.head.directive.mjs +24 -0
  154. package/esm2022/lib/layout/column/two/two.column.module.mjs +9 -15
  155. package/esm2022/lib/layout/column/two/two.column.right.component.mjs +90 -49
  156. package/esm2022/lib/layout/column/two/two.column.sref.directive.mjs +13 -13
  157. package/esm2022/lib/layout/column/two/two.column.sref.showright.directive.mjs +9 -7
  158. package/esm2022/lib/layout/column/two/two.column.store.mjs +15 -11
  159. package/esm2022/lib/layout/compact/compact.directive.mjs +3 -3
  160. package/esm2022/lib/layout/compact/compact.layout.module.mjs +4 -4
  161. package/esm2022/lib/layout/compact/compact.mjs +1 -1
  162. package/esm2022/lib/layout/compact/compact.store.mjs +4 -4
  163. package/esm2022/lib/layout/content/content.border.directive.mjs +11 -11
  164. package/esm2022/lib/layout/content/content.box.directive.mjs +12 -15
  165. package/esm2022/lib/layout/content/content.container.directive.mjs +16 -17
  166. package/esm2022/lib/layout/content/content.directive.mjs +6 -5
  167. package/esm2022/lib/layout/content/content.elevate.directive.mjs +10 -11
  168. package/esm2022/lib/layout/content/content.layout.module.mjs +9 -11
  169. package/esm2022/lib/layout/content/content.page.directive.mjs +6 -5
  170. package/esm2022/lib/layout/content/content.pit.directive.mjs +10 -11
  171. package/esm2022/lib/layout/flag/flag.component.mjs +15 -14
  172. package/esm2022/lib/layout/flag/flag.layout.module.mjs +8 -13
  173. package/esm2022/lib/layout/flag/flag.prompt.component.mjs +18 -20
  174. package/esm2022/lib/layout/flex/flex.group.directive.mjs +21 -47
  175. package/esm2022/lib/layout/flex/flex.layout.module.mjs +11 -9
  176. package/esm2022/lib/layout/flex/flex.size.directive.mjs +11 -12
  177. package/esm2022/lib/layout/item/index.mjs +1 -2
  178. package/esm2022/lib/layout/item/item.icon.component.mjs +31 -24
  179. package/esm2022/lib/layout/layout.module.mjs +6 -8
  180. package/esm2022/lib/layout/list/grid/index.mjs +3 -0
  181. package/esm2022/lib/layout/list/grid/list.grid.view.component.mjs +98 -0
  182. package/esm2022/lib/layout/list/grid/list.grid.view.directive.mjs +34 -0
  183. package/esm2022/lib/layout/list/group/index.mjs +4 -0
  184. package/esm2022/lib/layout/list/group/list.view.value.group.mjs +32 -0
  185. package/esm2022/lib/layout/list/group/list.view.value.group.title.directive.mjs +70 -0
  186. package/esm2022/lib/layout/list/group/list.view.value.group.title.header.component.mjs +60 -0
  187. package/esm2022/lib/layout/list/group/list.view.value.group.title.mjs +2 -0
  188. package/esm2022/lib/layout/list/index.mjs +6 -10
  189. package/esm2022/lib/layout/list/list.component.mjs +109 -135
  190. package/esm2022/lib/layout/list/list.content.empty.component.mjs +9 -7
  191. package/esm2022/lib/layout/list/list.directive.mjs +70 -56
  192. package/esm2022/lib/layout/list/list.layout.module.mjs +59 -49
  193. package/esm2022/lib/layout/list/list.module.mjs +40 -0
  194. package/esm2022/lib/layout/list/list.view.directive.mjs +35 -28
  195. package/esm2022/lib/layout/list/list.view.mjs +1 -1
  196. package/esm2022/lib/layout/list/list.view.selection.directive.mjs +26 -10
  197. package/esm2022/lib/layout/list/list.view.value.component.mjs +135 -143
  198. package/esm2022/lib/layout/list/list.view.value.directive.mjs +12 -18
  199. package/esm2022/lib/layout/list/list.view.value.item.directive.mjs +3 -3
  200. package/esm2022/lib/layout/list/list.view.value.mjs +1 -1
  201. package/esm2022/lib/layout/list/list.view.value.modifier.mjs +1 -1
  202. package/esm2022/lib/layout/list/list.view.value.selection.component.mjs +80 -68
  203. package/esm2022/lib/layout/list/list.wrapper.mjs +1 -3
  204. package/esm2022/lib/layout/list/meta/index.mjs +2 -0
  205. package/esm2022/lib/layout/list/meta/list.view.meta.icon.component.mjs +39 -0
  206. package/esm2022/lib/layout/list/modifier/index.mjs +5 -0
  207. package/esm2022/lib/layout/list/modifier/list.modifier.module.mjs +22 -0
  208. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.directive.mjs +75 -0
  209. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.ripple.directive.mjs +37 -0
  210. package/esm2022/lib/layout/list/modifier/list.view.value.modifier.selection.directive.mjs +35 -0
  211. package/esm2022/lib/layout/section/section.component.mjs +18 -15
  212. package/esm2022/lib/layout/section/section.header.component.mjs +123 -106
  213. package/esm2022/lib/layout/section/section.intro.component.mjs +53 -51
  214. package/esm2022/lib/layout/section/section.layout.module.mjs +9 -15
  215. package/esm2022/lib/layout/section/section.mjs +1 -1
  216. package/esm2022/lib/layout/section/section.page.component.mjs +22 -18
  217. package/esm2022/lib/layout/section/subsection.component.mjs +13 -10
  218. package/esm2022/lib/layout/step/step.component.mjs +56 -21
  219. package/esm2022/lib/layout/step/step.layout.module.mjs +11 -10
  220. package/esm2022/lib/layout/style/index.mjs +2 -1
  221. package/esm2022/lib/layout/style/spacer.directive.mjs +6 -5
  222. package/esm2022/lib/layout/style/style.body.directive.mjs +22 -17
  223. package/esm2022/lib/layout/style/style.color.directive.mjs +11 -14
  224. package/esm2022/lib/layout/style/style.directive.mjs +13 -17
  225. package/esm2022/lib/layout/style/style.layout.module.mjs +8 -10
  226. package/esm2022/lib/layout/style/style.mjs +4 -1
  227. package/esm2022/lib/layout/style/style.providers.mjs +21 -0
  228. package/esm2022/lib/layout/style/style.service.mjs +54 -32
  229. package/esm2022/lib/layout/style/style.set.directive.mjs +31 -47
  230. package/esm2022/lib/layout/text/address.component.mjs +43 -22
  231. package/esm2022/lib/layout/text/compat/form.description.component.mjs +3 -3
  232. package/esm2022/lib/layout/text/compat/hint.component.mjs +3 -3
  233. package/esm2022/lib/layout/text/compat/label.component.mjs +3 -3
  234. package/esm2022/lib/layout/text/compat/note.component.mjs +3 -3
  235. package/esm2022/lib/layout/text/compat/notice.component.mjs +3 -3
  236. package/esm2022/lib/layout/text/compat/ok.component.mjs +3 -3
  237. package/esm2022/lib/layout/text/compat/success.component.mjs +3 -3
  238. package/esm2022/lib/layout/text/compat/text.compat.module.mjs +4 -4
  239. package/esm2022/lib/layout/text/compat/warn.component.mjs +3 -3
  240. package/esm2022/lib/layout/text/detail.block.component.mjs +11 -8
  241. package/esm2022/lib/layout/text/detail.block.header.component.mjs +24 -13
  242. package/esm2022/lib/layout/text/icon.spacer.component.mjs +6 -5
  243. package/esm2022/lib/layout/text/label.block.component.mjs +9 -7
  244. package/esm2022/lib/layout/text/linkify.component.mjs +13 -10
  245. package/esm2022/lib/layout/text/text.chip.directive.mjs +6 -5
  246. package/esm2022/lib/layout/text/text.chips.component.mjs +34 -29
  247. package/esm2022/lib/layout/text/text.module.mjs +8 -13
  248. package/esm2022/lib/loading/basic-loading.component.mjs +31 -97
  249. package/esm2022/lib/loading/loading-progress.component.mjs +47 -54
  250. package/esm2022/lib/loading/loading.action.directive.mjs +9 -11
  251. package/esm2022/lib/loading/loading.component.mjs +60 -81
  252. package/esm2022/lib/loading/loading.module.mjs +8 -13
  253. package/esm2022/lib/router/layout/anchor/anchor.component.mjs +86 -36
  254. package/esm2022/lib/router/layout/anchor/anchor.content.component.mjs +26 -14
  255. package/esm2022/lib/router/layout/anchor/anchor.icon.component.mjs +10 -6
  256. package/esm2022/lib/router/layout/anchor/anchor.link.component.mjs +9 -7
  257. package/esm2022/lib/router/layout/anchor/anchor.module.mjs +17 -13
  258. package/esm2022/lib/router/layout/anchor/anchor.segue.directive.mjs +11 -13
  259. package/esm2022/lib/router/layout/anchorlist/anchorlist.component.mjs +22 -28
  260. package/esm2022/lib/router/layout/anchorlist/anchorlist.module.mjs +9 -15
  261. package/esm2022/lib/router/layout/layout.module.mjs +4 -4
  262. package/esm2022/lib/router/layout/list/list.module.mjs +9 -7
  263. package/esm2022/lib/router/layout/list/router.list.directive.mjs +16 -20
  264. package/esm2022/lib/router/layout/navbar/navbar.component.mjs +41 -87
  265. package/esm2022/lib/router/layout/navbar/navbar.module.mjs +9 -43
  266. package/esm2022/lib/router/layout/sidenav/sidenav.button.component.mjs +28 -24
  267. package/esm2022/lib/router/layout/sidenav/sidenav.component.mjs +91 -71
  268. package/esm2022/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.mjs +18 -23
  269. package/esm2022/lib/router/layout/sidenav/sidenav.module.mjs +8 -22
  270. package/esm2022/lib/router/layout/sidenav/sidenav.page.component.mjs +37 -46
  271. package/esm2022/lib/router/layout/sidenav/sidenav.pagebar.component.mjs +18 -18
  272. package/esm2022/lib/router/provider/ngrouter/anchor.component.mjs +6 -7
  273. package/esm2022/lib/router/provider/ngrouter/angular.router.providers.mjs +23 -0
  274. package/esm2022/lib/router/provider/ngrouter/index.mjs +2 -2
  275. package/esm2022/lib/router/provider/router.provider.config.mjs +8 -1
  276. package/esm2022/lib/router/provider/uirouter/anchor.component.mjs +14 -12
  277. package/esm2022/lib/router/provider/uirouter/index.mjs +2 -2
  278. package/esm2022/lib/router/provider/uirouter/uirouter.router.providers.mjs +23 -0
  279. package/esm2022/lib/screen/index.mjs +2 -2
  280. package/esm2022/lib/screen/screen.providers.mjs +22 -0
  281. package/esm2022/lib/screen/screen.service.mjs +6 -6
  282. package/esm2022/lib/util/cdk.mjs +1 -1
  283. package/esm2022/mapbox/lib/index.mjs +3 -2
  284. package/esm2022/mapbox/lib/mapbox.change.service.mjs +4 -4
  285. package/esm2022/mapbox/lib/mapbox.injection.component.mjs +13 -12
  286. package/esm2022/mapbox/lib/mapbox.injection.store.mjs +5 -5
  287. package/esm2022/mapbox/lib/mapbox.injection.store.provide.mjs +9 -8
  288. package/esm2022/mapbox/lib/mapbox.layout.component.mjs +93 -117
  289. package/esm2022/mapbox/lib/mapbox.layout.drawer.component.mjs +8 -8
  290. package/esm2022/mapbox/lib/mapbox.layout.resize.sync.directive.mjs +9 -8
  291. package/esm2022/mapbox/lib/mapbox.marker.component.mjs +69 -72
  292. package/esm2022/mapbox/lib/mapbox.marker.mjs +2 -2
  293. package/esm2022/mapbox/lib/mapbox.markers.component.mjs +22 -36
  294. package/esm2022/mapbox/lib/mapbox.menu.component.mjs +33 -31
  295. package/esm2022/mapbox/lib/mapbox.mjs +1 -1
  296. package/esm2022/mapbox/lib/mapbox.module.mjs +24 -61
  297. package/esm2022/mapbox/lib/mapbox.options.mjs +2 -0
  298. package/esm2022/mapbox/lib/mapbox.providers.mjs +25 -0
  299. package/esm2022/mapbox/lib/mapbox.rxjs.mjs +1 -1
  300. package/esm2022/mapbox/lib/mapbox.service.mjs +5 -8
  301. package/esm2022/mapbox/lib/mapbox.store.map.directive.mjs +7 -6
  302. package/esm2022/mapbox/lib/mapbox.store.mjs +39 -15
  303. package/esm2022/mapbox/lib/mapbox.store.provide.mjs +9 -8
  304. package/esm2022/table/lib/date/date.table.column.header.component.mjs +27 -21
  305. package/esm2022/table/lib/date/daterange.table.cell.input.component.mjs +39 -46
  306. package/esm2022/table/lib/date/table.date.module.mjs +8 -58
  307. package/esm2022/table/lib/table.cell.action.component.mjs +13 -10
  308. package/esm2022/table/lib/table.cell.input.component.mjs +13 -10
  309. package/esm2022/table/lib/table.cell.summaryend.component.mjs +13 -10
  310. package/esm2022/table/lib/table.cell.summarystart.component.mjs +13 -10
  311. package/esm2022/table/lib/table.column.directive.mjs +10 -17
  312. package/esm2022/table/lib/table.column.footer.component.mjs +13 -10
  313. package/esm2022/table/lib/table.column.header.component.mjs +13 -10
  314. package/esm2022/table/lib/table.component.mjs +31 -24
  315. package/esm2022/table/lib/table.directive.mjs +16 -22
  316. package/esm2022/table/lib/table.item.action.component.mjs +20 -17
  317. package/esm2022/table/lib/table.item.cell.component.mjs +19 -26
  318. package/esm2022/table/lib/table.item.directive.mjs +10 -17
  319. package/esm2022/table/lib/table.item.header.component.mjs +15 -11
  320. package/esm2022/table/lib/table.module.mjs +11 -55
  321. package/esm2022/table/lib/table.store.mjs +8 -8
  322. package/fesm2022/dereekb-dbx-web-calendar.mjs +69 -110
  323. package/fesm2022/dereekb-dbx-web-calendar.mjs.map +1 -1
  324. package/fesm2022/dereekb-dbx-web-mapbox.mjs +340 -365
  325. package/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
  326. package/fesm2022/dereekb-dbx-web-table.mjs +230 -317
  327. package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
  328. package/fesm2022/dereekb-dbx-web.mjs +8063 -8083
  329. package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
  330. package/lib/action/action.confirm.directive.d.ts +4 -5
  331. package/lib/action/action.module.d.ts +7 -10
  332. package/lib/action/key.trigger.directive.d.ts +1 -1
  333. package/lib/action/snackbar/_snackbar.scss +3 -3
  334. package/lib/action/snackbar/action.snackbar.component.d.ts +15 -14
  335. package/lib/action/snackbar/action.snackbar.directive.d.ts +5 -7
  336. package/lib/action/snackbar/action.snackbar.generator.d.ts +9 -9
  337. package/lib/action/snackbar/action.snackbar.module.d.ts +1 -6
  338. package/lib/action/transition/action.transition.module.d.ts +7 -6
  339. package/lib/action/transition/transition.safety.dialog.component.d.ts +5 -9
  340. package/lib/action/transition/transition.safety.directive.d.ts +10 -7
  341. package/lib/button/_button.scss +3 -3
  342. package/lib/button/button.component.d.ts +16 -21
  343. package/lib/button/button.module.d.ts +10 -7
  344. package/lib/button/{button.spacer.component.d.ts → button.spacer.directive.d.ts} +1 -1
  345. package/lib/button/icon/icon.button.component.d.ts +1 -1
  346. package/lib/button/icon/icon.button.module.d.ts +4 -4
  347. package/lib/button/index.d.ts +1 -1
  348. package/lib/button/progress/abstract.progress.button.directive.d.ts +25 -0
  349. package/lib/button/progress/bar.button.component.d.ts +5 -4
  350. package/lib/button/progress/bar.button.component.scss +1 -1
  351. package/lib/button/progress/button.progress.config.d.ts +62 -34
  352. package/lib/button/progress/button.progress.module.d.ts +4 -10
  353. package/lib/button/progress/button.progress.providers.d.ts +9 -0
  354. package/lib/button/progress/index.d.ts +1 -0
  355. package/lib/button/progress/spinner.button.component.d.ts +18 -7
  356. package/lib/button/progress/spinner.button.component.scss +34 -7
  357. package/lib/error/_error.scss +3 -3
  358. package/lib/error/default.error.widget.component.d.ts +3 -3
  359. package/lib/error/error.action.directive.d.ts +3 -3
  360. package/lib/error/error.component.d.ts +21 -28
  361. package/lib/error/error.details.component.d.ts +2 -2
  362. package/lib/error/error.loading.directive.d.ts +8 -8
  363. package/lib/error/error.module.d.ts +4 -7
  364. package/lib/error/error.popover.component.d.ts +6 -6
  365. package/lib/error/error.snackbar.action.directive.d.ts +1 -1
  366. package/lib/error/error.snackbar.component.d.ts +12 -23
  367. package/lib/error/error.snackbar.service.d.ts +1 -0
  368. package/lib/error/error.view.component.d.ts +10 -12
  369. package/lib/error/error.widget.component.d.ts +4 -8
  370. package/lib/error/error.widget.service.d.ts +1 -1
  371. package/lib/error/state.d.ts +3 -2
  372. package/lib/extension/calendar/_calendar.scss +20 -20
  373. package/lib/extension/download/text/download.text.component.d.ts +16 -14
  374. package/lib/extension/download/text/download.text.module.d.ts +4 -6
  375. package/lib/extension/model/index.d.ts +1 -1
  376. package/lib/extension/model/model.providers.d.ts +13 -0
  377. package/lib/extension/model/model.tracker.d.ts +7 -7
  378. package/lib/extension/model/model.tracker.service.d.ts +2 -2
  379. package/lib/extension/model/model.tracker.view.storage.d.ts +4 -1
  380. package/lib/extension/model/model.types.d.ts +6 -6
  381. package/lib/extension/model/model.types.service.d.ts +1 -1
  382. package/lib/extension/model/state/actions/actions.d.ts +1 -1
  383. package/lib/extension/model/state/actions/model.actions.d.ts +5 -5
  384. package/lib/extension/model/state/effects/tracker.effects.d.ts +1 -1
  385. package/lib/extension/model/state/reducers/model.module.config.d.ts +1 -1
  386. package/lib/extension/structure/structure.body.directive.d.ts +1 -1
  387. package/lib/extension/structure/structure.module.d.ts +4 -2
  388. package/lib/extension/structure/structure.structure.directive.d.ts +5 -2
  389. package/lib/extension/table/_table.scss +3 -3
  390. package/lib/extension/widget/widget.component.d.ts +5 -9
  391. package/lib/extension/widget/widget.list.component.d.ts +8 -4
  392. package/lib/extension/widget/widget.module.d.ts +8 -4
  393. package/lib/index.d.ts +1 -1
  394. package/lib/interaction/dialog/_dialog.scss +3 -3
  395. package/lib/interaction/dialog/dialog.action.directive.d.ts +7 -6
  396. package/lib/interaction/dialog/dialog.content.close.component.d.ts +4 -6
  397. package/lib/interaction/dialog/{dialog.content.component.d.ts → dialog.content.directive.d.ts} +3 -2
  398. package/lib/interaction/dialog/dialog.content.footer.component.d.ts +10 -10
  399. package/lib/interaction/dialog/dialog.module.d.ts +2 -9
  400. package/lib/interaction/dialog/index.d.ts +1 -1
  401. package/lib/interaction/filter/_filter.scss +3 -3
  402. package/lib/interaction/filter/filter.config.d.ts +62 -0
  403. package/lib/interaction/filter/filter.menu.d.ts +3 -3
  404. package/lib/interaction/filter/filter.module.d.ts +2 -11
  405. package/lib/interaction/filter/filter.partial.d.ts +5 -7
  406. package/lib/interaction/filter/filter.partial.list.component.d.ts +1 -1
  407. package/lib/interaction/filter/filter.partial.menu.component.d.ts +5 -5
  408. package/lib/interaction/filter/filter.popover.button.component.d.ts +5 -7
  409. package/lib/interaction/filter/filter.popover.button.directive.d.ts +7 -6
  410. package/lib/interaction/filter/filter.popover.component.d.ts +15 -71
  411. package/lib/interaction/filter/filter.preset.directive.d.ts +7 -11
  412. package/lib/interaction/filter/filter.preset.list.component.d.ts +1 -1
  413. package/lib/interaction/filter/filter.preset.menu.component.d.ts +5 -5
  414. package/lib/interaction/filter/filter.wrapper.component.d.ts +5 -5
  415. package/lib/interaction/filter/index.d.ts +1 -0
  416. package/lib/interaction/interaction.module.d.ts +13 -4
  417. package/lib/interaction/popover/_popover.scss +3 -3
  418. package/lib/interaction/popover/abstract.popover.ref.directive.d.ts +3 -4
  419. package/lib/interaction/popover/index.d.ts +1 -1
  420. package/lib/interaction/popover/popover.action.directive.d.ts +7 -6
  421. package/lib/interaction/popover/popover.close.component.d.ts +1 -1
  422. package/lib/interaction/popover/popover.component.d.ts +15 -9
  423. package/lib/interaction/popover/popover.content.component.d.ts +6 -4
  424. package/lib/interaction/popover/popover.content.module.d.ts +2 -11
  425. package/lib/interaction/popover/popover.controls.directive.d.ts +3 -2
  426. package/lib/interaction/popover/popover.coordinator.component.d.ts +2 -2
  427. package/lib/interaction/popover/popover.header.component.d.ts +4 -3
  428. package/lib/interaction/popover/popover.module.d.ts +2 -11
  429. package/lib/interaction/popover/popover.scroll.content.directive.d.ts +13 -0
  430. package/lib/interaction/popover/popover.service.d.ts +4 -4
  431. package/lib/interaction/popup/_popup.scss +6 -6
  432. package/lib/interaction/popup/popup.component.d.ts +19 -19
  433. package/lib/interaction/popup/popup.content.component.d.ts +2 -1
  434. package/lib/interaction/popup/popup.controls.buttons.component.d.ts +3 -1
  435. package/lib/interaction/popup/popup.controls.component.d.ts +2 -2
  436. package/lib/interaction/popup/popup.coordinator.component.d.ts +3 -2
  437. package/lib/interaction/popup/popup.coordinator.service.d.ts +1 -1
  438. package/lib/interaction/popup/popup.d.ts +7 -6
  439. package/lib/interaction/popup/popup.module.d.ts +1 -10
  440. package/lib/interaction/popup/popup.position.strategy.d.ts +2 -2
  441. package/lib/interaction/popup/popup.service.d.ts +4 -4
  442. package/lib/interaction/prompt/_prompt.scss +4 -4
  443. package/lib/interaction/prompt/index.d.ts +1 -1
  444. package/lib/interaction/prompt/prompt.box.directive.d.ts +6 -0
  445. package/lib/interaction/prompt/prompt.button.confirm.directive.d.ts +1 -1
  446. package/lib/interaction/prompt/prompt.component.d.ts +3 -3
  447. package/lib/interaction/prompt/prompt.confirm.component.d.ts +11 -23
  448. package/lib/interaction/prompt/prompt.confirm.dialog.component.d.ts +2 -3
  449. package/lib/interaction/prompt/prompt.confirm.directive.d.ts +9 -5
  450. package/lib/interaction/prompt/prompt.module.d.ts +2 -11
  451. package/lib/interaction/prompt/prompt.page.component.d.ts +1 -1
  452. package/lib/interaction/style/_style.scss +6 -6
  453. package/lib/keypress/keydown.listener.directive.d.ts +1 -1
  454. package/lib/keypress/keypress.module.d.ts +4 -2
  455. package/lib/layout/bar/_bar.scss +8 -12
  456. package/lib/layout/bar/bar.directive.d.ts +3 -3
  457. package/lib/layout/bar/bar.header.component.d.ts +4 -5
  458. package/lib/layout/bar/bar.layout.module.d.ts +2 -5
  459. package/lib/layout/bar/pagebar.component.d.ts +3 -3
  460. package/lib/layout/block/_block.scss +3 -3
  461. package/lib/layout/block/block.layout.module.d.ts +3 -4
  462. package/lib/layout/block/two.block.component.d.ts +8 -8
  463. package/lib/layout/card/_card.scss +3 -3
  464. package/lib/layout/card/card.box.component.d.ts +3 -3
  465. package/lib/layout/card/card.box.container.directive.d.ts +8 -0
  466. package/lib/layout/card/card.box.layout.module.d.ts +2 -4
  467. package/lib/layout/card/index.d.ts +1 -1
  468. package/lib/layout/column/_column.scss +3 -3
  469. package/lib/layout/column/column.layout.module.d.ts +2 -2
  470. package/lib/layout/column/one/one.column.component.d.ts +3 -3
  471. package/lib/layout/column/one/one.column.module.d.ts +4 -3
  472. package/lib/layout/column/two/index.d.ts +1 -1
  473. package/lib/layout/column/two/two.column.back.directive.d.ts +3 -3
  474. package/lib/layout/column/two/two.column.component.d.ts +37 -20
  475. package/lib/layout/column/two/two.column.context.directive.d.ts +4 -7
  476. package/lib/layout/column/two/two.column.full.left.directive.d.ts +4 -8
  477. package/lib/layout/column/two/two.column.head.directive.d.ts +11 -0
  478. package/lib/layout/column/two/two.column.module.d.ts +2 -8
  479. package/lib/layout/column/two/two.column.right.component.d.ts +12 -14
  480. package/lib/layout/column/two/two.column.sref.directive.d.ts +3 -2
  481. package/lib/layout/column/two/two.column.sref.showright.directive.d.ts +3 -4
  482. package/lib/layout/column/two/two.column.store.d.ts +17 -9
  483. package/lib/layout/content/_content.scss +10 -10
  484. package/lib/layout/content/content.border.directive.d.ts +3 -2
  485. package/lib/layout/content/content.box.directive.d.ts +3 -3
  486. package/lib/layout/content/content.container.directive.d.ts +5 -4
  487. package/lib/layout/content/content.directive.d.ts +1 -1
  488. package/lib/layout/content/content.elevate.directive.d.ts +2 -2
  489. package/lib/layout/content/content.layout.module.d.ts +1 -2
  490. package/lib/layout/content/content.page.directive.d.ts +1 -1
  491. package/lib/layout/content/content.pit.directive.d.ts +2 -2
  492. package/lib/layout/flag/_flag.scss +3 -3
  493. package/lib/layout/flag/flag.component.d.ts +2 -2
  494. package/lib/layout/flag/flag.layout.module.d.ts +1 -6
  495. package/lib/layout/flag/flag.prompt.component.d.ts +4 -3
  496. package/lib/layout/flex/_flex.scss +3 -3
  497. package/lib/layout/flex/flex.group.directive.d.ts +7 -14
  498. package/lib/layout/flex/flex.layout.module.d.ts +4 -2
  499. package/lib/layout/flex/flex.size.directive.d.ts +3 -2
  500. package/lib/layout/item/_item.scss +3 -3
  501. package/lib/layout/item/index.d.ts +0 -1
  502. package/lib/layout/item/item.icon.component.d.ts +3 -3
  503. package/lib/layout/layout.module.d.ts +5 -7
  504. package/lib/layout/list/_list.scss +19 -6
  505. package/lib/layout/list/grid/index.d.ts +2 -0
  506. package/lib/layout/list/{list.grid.view.component.d.ts → grid/list.grid.view.component.d.ts} +23 -31
  507. package/lib/layout/list/grid/list.grid.view.directive.d.ts +24 -0
  508. package/lib/layout/list/group/index.d.ts +3 -0
  509. package/lib/layout/list/{list.view.value.group.d.ts → group/list.view.value.group.d.ts} +2 -2
  510. package/lib/layout/list/{list.view.value.group.title.d.ts → group/list.view.value.group.title.d.ts} +1 -1
  511. package/lib/layout/list/group/list.view.value.group.title.directive.d.ts +15 -0
  512. package/lib/layout/list/group/list.view.value.group.title.header.component.d.ts +21 -0
  513. package/lib/layout/list/index.d.ts +5 -9
  514. package/lib/layout/list/list.component.d.ts +54 -50
  515. package/lib/layout/list/list.content.empty.component.d.ts +1 -1
  516. package/lib/layout/list/list.directive.d.ts +35 -15
  517. package/lib/layout/list/list.layout.module.d.ts +27 -18
  518. package/lib/layout/list/list.module.d.ts +13 -0
  519. package/lib/layout/list/list.view.d.ts +8 -8
  520. package/lib/layout/list/list.view.directive.d.ts +14 -9
  521. package/lib/layout/list/list.view.selection.directive.d.ts +12 -3
  522. package/lib/layout/list/list.view.value.component.d.ts +32 -39
  523. package/lib/layout/list/list.view.value.d.ts +4 -1
  524. package/lib/layout/list/list.view.value.directive.d.ts +5 -7
  525. package/lib/layout/list/list.view.value.selection.component.d.ts +14 -13
  526. package/lib/layout/list/list.wrapper.d.ts +13 -4
  527. package/lib/layout/list/meta/index.d.ts +1 -0
  528. package/lib/layout/list/{list.view.meta.icon.component.d.ts → meta/list.view.meta.icon.component.d.ts} +2 -2
  529. package/lib/layout/list/modifier/index.d.ts +4 -0
  530. package/lib/layout/list/modifier/list.modifier.module.d.ts +12 -0
  531. package/lib/layout/list/{list.view.value.modifier.directive.d.ts → modifier/list.view.value.modifier.directive.d.ts} +13 -12
  532. package/lib/layout/list/{list.view.value.modifier.ripple.directive.d.ts → modifier/list.view.value.modifier.ripple.directive.d.ts} +5 -6
  533. package/lib/layout/list/{list.view.value.modifier.selection.directive.d.ts → modifier/list.view.value.modifier.selection.directive.d.ts} +5 -6
  534. package/lib/layout/section/_section.scss +3 -3
  535. package/lib/layout/section/section.component.d.ts +3 -2
  536. package/lib/layout/section/section.d.ts +28 -6
  537. package/lib/layout/section/section.header.component.d.ts +12 -11
  538. package/lib/layout/section/section.intro.component.d.ts +7 -8
  539. package/lib/layout/section/section.layout.module.d.ts +2 -7
  540. package/lib/layout/section/section.page.component.d.ts +4 -3
  541. package/lib/layout/section/subsection.component.d.ts +1 -1
  542. package/lib/layout/step/_step.scss +3 -3
  543. package/lib/layout/step/step.component.d.ts +6 -5
  544. package/lib/layout/step/step.layout.module.d.ts +4 -3
  545. package/lib/layout/style/_style.scss +20 -3
  546. package/lib/layout/style/index.d.ts +1 -0
  547. package/lib/layout/style/spacer.directive.d.ts +1 -1
  548. package/lib/layout/style/style.body.directive.d.ts +8 -8
  549. package/lib/layout/style/style.color.directive.d.ts +3 -3
  550. package/lib/layout/style/style.d.ts +48 -1
  551. package/lib/layout/style/style.directive.d.ts +5 -5
  552. package/lib/layout/style/style.layout.module.d.ts +1 -2
  553. package/lib/layout/style/style.providers.d.ts +19 -0
  554. package/lib/layout/style/style.service.d.ts +28 -18
  555. package/lib/layout/style/style.set.directive.d.ts +18 -16
  556. package/lib/layout/text/_text.scss +8 -8
  557. package/lib/layout/text/address.component.d.ts +2 -2
  558. package/lib/layout/text/detail.block.component.d.ts +1 -1
  559. package/lib/layout/text/detail.block.header.component.d.ts +1 -1
  560. package/lib/layout/text/icon.spacer.component.d.ts +1 -1
  561. package/lib/layout/text/label.block.component.d.ts +1 -1
  562. package/lib/layout/text/linkify.component.d.ts +3 -2
  563. package/lib/layout/text/text.chip.directive.d.ts +1 -1
  564. package/lib/layout/text/text.chips.component.d.ts +3 -4
  565. package/lib/layout/text/text.module.d.ts +1 -5
  566. package/lib/loading/_loading.scss +3 -3
  567. package/lib/loading/basic-loading.component.d.ts +17 -36
  568. package/lib/loading/loading-progress.component.d.ts +12 -14
  569. package/lib/loading/loading.action.directive.d.ts +2 -4
  570. package/lib/loading/loading.component.d.ts +31 -29
  571. package/lib/loading/loading.module.d.ts +1 -5
  572. package/lib/router/layout/anchor/_anchor.scss +3 -3
  573. package/lib/router/layout/anchor/anchor.component.d.ts +7 -12
  574. package/lib/router/layout/anchor/anchor.content.component.d.ts +4 -3
  575. package/lib/router/layout/anchor/anchor.icon.component.d.ts +1 -1
  576. package/lib/router/layout/anchor/anchor.link.component.d.ts +3 -3
  577. package/lib/router/layout/anchor/anchor.module.d.ts +14 -5
  578. package/lib/router/layout/anchor/anchor.segue.directive.d.ts +5 -6
  579. package/lib/router/layout/anchorlist/_anchorlist.scss +6 -6
  580. package/lib/router/layout/anchorlist/anchorlist.component.d.ts +6 -9
  581. package/lib/router/layout/anchorlist/anchorlist.module.d.ts +4 -9
  582. package/lib/router/layout/list/list.module.d.ts +4 -1
  583. package/lib/router/layout/list/router.list.directive.d.ts +6 -8
  584. package/lib/router/layout/navbar/_navbar.scss +3 -3
  585. package/lib/router/layout/navbar/navbar.component.d.ts +22 -29
  586. package/lib/router/layout/navbar/navbar.module.d.ts +4 -9
  587. package/lib/router/layout/sidenav/_sidenav.scss +8 -8
  588. package/lib/router/layout/sidenav/sidenav.button.component.d.ts +3 -4
  589. package/lib/router/layout/sidenav/sidenav.component.d.ts +19 -18
  590. package/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.d.ts +7 -7
  591. package/lib/router/layout/sidenav/sidenav.module.d.ts +1 -14
  592. package/lib/router/layout/sidenav/sidenav.page.component.d.ts +7 -10
  593. package/lib/router/layout/sidenav/sidenav.pagebar.component.d.ts +2 -2
  594. package/lib/router/provider/ngrouter/anchor.component.d.ts +1 -1
  595. package/lib/router/provider/ngrouter/angular.router.providers.d.ts +7 -0
  596. package/lib/router/provider/ngrouter/index.d.ts +1 -1
  597. package/lib/router/provider/router.provider.config.d.ts +7 -0
  598. package/lib/router/provider/uirouter/anchor.component.d.ts +6 -5
  599. package/lib/router/provider/uirouter/index.d.ts +1 -1
  600. package/lib/router/provider/uirouter/uirouter.router.providers.d.ts +7 -0
  601. package/lib/screen/index.d.ts +1 -1
  602. package/lib/screen/screen.providers.d.ts +15 -0
  603. package/lib/screen/screen.service.d.ts +7 -7
  604. package/lib/style/_all-typography.scss +1 -1
  605. package/lib/style/_root-variables.scss +13 -13
  606. package/lib/style/_theming.scss +4 -2
  607. package/mapbox/lib/index.d.ts +2 -1
  608. package/mapbox/lib/mapbox.change.service.d.ts +3 -3
  609. package/mapbox/lib/mapbox.d.ts +33 -19
  610. package/mapbox/lib/mapbox.injection.component.d.ts +2 -4
  611. package/mapbox/lib/mapbox.injection.store.provide.d.ts +1 -1
  612. package/mapbox/lib/mapbox.layout.component.d.ts +36 -34
  613. package/mapbox/lib/mapbox.layout.drawer.component.d.ts +2 -2
  614. package/mapbox/lib/mapbox.layout.resize.sync.directive.d.ts +1 -1
  615. package/mapbox/lib/mapbox.marker.component.d.ts +6 -11
  616. package/mapbox/lib/mapbox.marker.d.ts +13 -13
  617. package/mapbox/lib/mapbox.markers.component.d.ts +5 -11
  618. package/mapbox/lib/mapbox.menu.component.d.ts +9 -11
  619. package/mapbox/lib/mapbox.module.d.ts +2 -12
  620. package/mapbox/lib/mapbox.options.d.ts +11 -0
  621. package/mapbox/lib/mapbox.providers.d.ts +17 -0
  622. package/mapbox/lib/mapbox.rxjs.d.ts +6 -6
  623. package/mapbox/lib/mapbox.service.d.ts +1 -1
  624. package/mapbox/lib/mapbox.store.d.ts +28 -6
  625. package/mapbox/lib/mapbox.store.map.directive.d.ts +1 -1
  626. package/mapbox/lib/mapbox.store.provide.d.ts +1 -1
  627. package/package.json +14 -16
  628. package/table/lib/date/date.table.column.header.component.d.ts +3 -3
  629. package/table/lib/date/daterange.table.cell.input.component.d.ts +14 -12
  630. package/table/lib/date/table.date.module.d.ts +1 -9
  631. package/table/lib/table.cell.action.component.d.ts +2 -1
  632. package/table/lib/table.cell.input.component.d.ts +2 -1
  633. package/table/lib/table.cell.summaryend.component.d.ts +2 -1
  634. package/table/lib/table.cell.summarystart.component.d.ts +2 -1
  635. package/table/lib/table.column.directive.d.ts +3 -6
  636. package/table/lib/table.column.footer.component.d.ts +3 -3
  637. package/table/lib/table.column.header.component.d.ts +3 -3
  638. package/table/lib/table.component.d.ts +13 -8
  639. package/table/lib/table.directive.d.ts +5 -4
  640. package/table/lib/table.item.action.component.d.ts +4 -2
  641. package/table/lib/table.item.cell.component.d.ts +3 -5
  642. package/table/lib/table.item.directive.d.ts +3 -6
  643. package/table/lib/table.item.header.component.d.ts +2 -1
  644. package/table/lib/table.module.d.ts +4 -6
  645. package/calendar/esm2022/dereekb-dbx-web-calendar.mjs +0 -5
  646. package/calendar/esm2022/index.mjs +0 -2
  647. package/calendar/esm2022/lib/calendar.base.component.mjs +0 -54
  648. package/calendar/esm2022/lib/calendar.component.mjs +0 -54
  649. package/calendar/esm2022/lib/calendar.mjs +0 -30
  650. package/calendar/esm2022/lib/calendar.module.mjs +0 -87
  651. package/calendar/esm2022/lib/calendar.store.mjs +0 -174
  652. package/calendar/esm2022/lib/index.mjs +0 -6
  653. package/calendar/fesm2022/dereekb-dbx-web-calendar.mjs +0 -385
  654. package/calendar/fesm2022/dereekb-dbx-web-calendar.mjs.map +0 -1
  655. package/calendar/package.json +0 -21
  656. package/esm2022/lib/button/button.spacer.component.mjs +0 -19
  657. package/esm2022/lib/button/progress/base.progress.button.directive.mjs +0 -107
  658. package/esm2022/lib/extension/model/model.module.mjs +0 -66
  659. package/esm2022/lib/interaction/dialog/dialog.content.component.mjs +0 -23
  660. package/esm2022/lib/interaction/popover/popover.scroll.content.component.mjs +0 -48
  661. package/esm2022/lib/interaction/prompt/prompt.box.component.mjs +0 -25
  662. package/esm2022/lib/layout/card/card.box.container.component.mjs +0 -25
  663. package/esm2022/lib/layout/column/two/two.column.head.component.mjs +0 -32
  664. package/esm2022/lib/layout/item/item.layout.module.mjs +0 -19
  665. package/esm2022/lib/layout/list/list.grid.view.component.mjs +0 -112
  666. package/esm2022/lib/layout/list/list.grid.view.directive.mjs +0 -15
  667. package/esm2022/lib/layout/list/list.view.meta.icon.component.mjs +0 -35
  668. package/esm2022/lib/layout/list/list.view.value.group.mjs +0 -32
  669. package/esm2022/lib/layout/list/list.view.value.group.title.directive.mjs +0 -131
  670. package/esm2022/lib/layout/list/list.view.value.group.title.mjs +0 -2
  671. package/esm2022/lib/layout/list/list.view.value.modifier.directive.mjs +0 -77
  672. package/esm2022/lib/layout/list/list.view.value.modifier.ripple.directive.mjs +0 -41
  673. package/esm2022/lib/layout/list/list.view.value.modifier.selection.directive.mjs +0 -39
  674. package/esm2022/lib/router/provider/ngrouter/angular.router.module.mjs +0 -36
  675. package/esm2022/lib/router/provider/uirouter/uirouter.router.module.mjs +0 -36
  676. package/esm2022/lib/screen/screen.module.mjs +0 -24
  677. package/esm2022/mapbox/lib/options.mjs +0 -2
  678. package/lib/button/progress/base.progress.button.directive.d.ts +0 -32
  679. package/lib/extension/model/model.module.d.ts +0 -19
  680. package/lib/interaction/popover/popover.scroll.content.component.d.ts +0 -13
  681. package/lib/interaction/prompt/prompt.box.component.d.ts +0 -6
  682. package/lib/layout/card/card.box.container.component.d.ts +0 -8
  683. package/lib/layout/column/two/two.column.head.component.d.ts +0 -10
  684. package/lib/layout/item/item.layout.module.d.ts +0 -9
  685. package/lib/layout/list/list.grid.view.directive.d.ts +0 -10
  686. package/lib/layout/list/list.view.value.group.title.directive.d.ts +0 -35
  687. package/lib/router/provider/ngrouter/angular.router.module.d.ts +0 -12
  688. package/lib/router/provider/uirouter/uirouter.router.module.d.ts +0 -12
  689. package/lib/screen/screen.module.d.ts +0 -9
  690. package/mapbox/esm2022/dereekb-dbx-web-mapbox.mjs +0 -5
  691. package/mapbox/esm2022/index.mjs +0 -2
  692. package/mapbox/esm2022/lib/index.mjs +0 -21
  693. package/mapbox/esm2022/lib/mapbox.change.service.mjs +0 -40
  694. package/mapbox/esm2022/lib/mapbox.injection.component.mjs +0 -28
  695. package/mapbox/esm2022/lib/mapbox.injection.store.mjs +0 -39
  696. package/mapbox/esm2022/lib/mapbox.injection.store.provide.mjs +0 -47
  697. package/mapbox/esm2022/lib/mapbox.layout.component.mjs +0 -185
  698. package/mapbox/esm2022/lib/mapbox.layout.drawer.component.mjs +0 -21
  699. package/mapbox/esm2022/lib/mapbox.layout.resize.sync.directive.mjs +0 -32
  700. package/mapbox/esm2022/lib/mapbox.marker.component.mjs +0 -135
  701. package/mapbox/esm2022/lib/mapbox.marker.mjs +0 -16
  702. package/mapbox/esm2022/lib/mapbox.markers.component.mjs +0 -58
  703. package/mapbox/esm2022/lib/mapbox.menu.component.mjs +0 -91
  704. package/mapbox/esm2022/lib/mapbox.mjs +0 -19
  705. package/mapbox/esm2022/lib/mapbox.module.mjs +0 -108
  706. package/mapbox/esm2022/lib/mapbox.rxjs.mjs +0 -53
  707. package/mapbox/esm2022/lib/mapbox.service.mjs +0 -36
  708. package/mapbox/esm2022/lib/mapbox.store.map.directive.mjs +0 -33
  709. package/mapbox/esm2022/lib/mapbox.store.mjs +0 -525
  710. package/mapbox/esm2022/lib/mapbox.store.provide.mjs +0 -47
  711. package/mapbox/esm2022/lib/mapbox.util.mjs +0 -15
  712. package/mapbox/esm2022/lib/options.mjs +0 -2
  713. package/mapbox/fesm2022/dereekb-dbx-web-mapbox.mjs +0 -1449
  714. package/mapbox/fesm2022/dereekb-dbx-web-mapbox.mjs.map +0 -1
  715. package/mapbox/lib/options.d.ts +0 -7
  716. package/mapbox/package.json +0 -21
  717. package/table/esm2022/dereekb-dbx-web-table.mjs +0 -5
  718. package/table/esm2022/index.mjs +0 -2
  719. package/table/esm2022/lib/date/date.table.column.header.component.mjs +0 -49
  720. package/table/esm2022/lib/date/daterange.table.cell.input.component.mjs +0 -161
  721. package/table/esm2022/lib/date/index.mjs +0 -4
  722. package/table/esm2022/lib/date/table.date.module.mjs +0 -68
  723. package/table/esm2022/lib/index.mjs +0 -18
  724. package/table/esm2022/lib/table.cell.action.component.mjs +0 -25
  725. package/table/esm2022/lib/table.cell.input.component.mjs +0 -28
  726. package/table/esm2022/lib/table.cell.summaryend.component.mjs +0 -25
  727. package/table/esm2022/lib/table.cell.summarystart.component.mjs +0 -28
  728. package/table/esm2022/lib/table.column.directive.mjs +0 -27
  729. package/table/esm2022/lib/table.column.footer.component.mjs +0 -32
  730. package/table/esm2022/lib/table.column.header.component.mjs +0 -32
  731. package/table/esm2022/lib/table.component.mjs +0 -55
  732. package/table/esm2022/lib/table.directive.mjs +0 -34
  733. package/table/esm2022/lib/table.item.action.component.mjs +0 -32
  734. package/table/esm2022/lib/table.item.cell.component.mjs +0 -36
  735. package/table/esm2022/lib/table.item.directive.mjs +0 -27
  736. package/table/esm2022/lib/table.item.header.component.mjs +0 -24
  737. package/table/esm2022/lib/table.mjs +0 -2
  738. package/table/esm2022/lib/table.module.mjs +0 -74
  739. package/table/esm2022/lib/table.store.mjs +0 -53
  740. package/table/fesm2022/dereekb-dbx-web-table.mjs +0 -704
  741. package/table/fesm2022/dereekb-dbx-web-table.mjs.map +0 -1
  742. package/table/package.json +0 -21
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { clampDateToDateRange, isDateInDateRange, isFullDateRange, isSameDateDay, isSameDateRange } from '@dereekb/date';
2
+ import { clampDateToDateRange, dateRangeOverlapsDateRangeFunction, isDateInDateRange, isFullDateRange, isSameDateDay, isSameDateRange } from '@dereekb/date';
3
3
  import { invertDecision, reduceBooleansWithAndFn } from '@dereekb/util';
4
4
  import { ComponentStore } from '@ngrx/component-store';
5
5
  import { differenceInDays, addDays, endOfDay, endOfMonth, endOfWeek, isSameDay, startOfDay, startOfMonth, startOfWeek, isBefore, isAfter } from 'date-fns';
@@ -11,6 +11,9 @@ export var CalendarDisplayType;
11
11
  CalendarDisplayType["WEEK"] = "week";
12
12
  CalendarDisplayType["DAY"] = "day";
13
13
  })(CalendarDisplayType || (CalendarDisplayType = {}));
14
+ export function isCalendarViewDateRangeEqual(a, b) {
15
+ return a.type === b.type && isSameDay(a.start, b.start) && isSameDay(a.end, b.end) && a.distance === b.distance && a.isMinDateVisible === b.isMinDateVisible && a.isMaxDateVisible === b.isMaxDateVisible;
16
+ }
14
17
  export function visibleDateRangeForCalendarState(calendarState) {
15
18
  const { navigationRangeLimit, type, date } = calendarState;
16
19
  let start;
@@ -37,7 +40,7 @@ export function visibleDateRangeForCalendarState(calendarState) {
37
40
  const isMaxDateVisible = navigationRangeLimit?.end != null ? !isBefore(end, navigationRangeLimit.end) : false;
38
41
  // TODO: Consider changing min/max date visible logical utility to be fully within the current month or not,
39
42
  // not just visible, since it can change to a locked out calendar and doesn't feel as UI friendly.
40
- return {
43
+ const result = {
41
44
  type,
42
45
  start,
43
46
  end,
@@ -45,6 +48,7 @@ export function visibleDateRangeForCalendarState(calendarState) {
45
48
  isMinDateVisible,
46
49
  isMaxDateVisible
47
50
  };
51
+ return result;
48
52
  }
49
53
  const distinctUntilDateOrTypeOrEventsChanged = distinctUntilChanged((a, b) => a?.date === b?.date && a?.type === b?.type && a?.events === b?.events);
50
54
  export class DbxCalendarStore extends ComponentStore {
@@ -90,24 +94,20 @@ export class DbxCalendarStore extends ComponentStore {
90
94
  showTodayButton$ = this.state$.pipe(map((x) => x.showTodayButton), distinctUntilChanged(), shareReplay(1));
91
95
  date$ = this.state$.pipe(map((x) => x.date));
92
96
  dateTappedTwice$ = this.state$.pipe(map((x) => x.dateTappedTwice));
93
- events$ = this.state$.pipe(map((x) => x.events));
94
- // TODO: Filter to be events that will only be displayed based on the current calendar.
95
- visibleEvents$ = this.state$.pipe(map((x) => x.events), shareReplay(1));
97
+ events$ = this.state$.pipe(map((x) => x.events), distinctUntilChanged(), shareReplay(1));
98
+ /**
99
+ * Returns the events that match the tapped date range state.
100
+ */
96
101
  eventsForDateState$ = this.state$.pipe(distinctUntilDateOrTypeOrEventsChanged, map((state) => ({
97
102
  date: state.date,
98
103
  events: state.events.filter((x) => isSameDay(x.start, state.date) || (x.end && isBefore(x.start, state.date) && isAfter(x.end, state.date))),
99
104
  dateTappedTwice: state.dateTappedTwice
100
105
  })), shareReplay(1));
101
106
  eventsForDate$ = this.eventsForDateState$.pipe(map((state) => state.events));
102
- visibleDateRange$ = this.state$.pipe(
103
- // If the date or type changes, check again.
104
- distinctUntilChanged((a, b) => a?.date === b?.date && a?.type === b?.type), map(visibleDateRangeForCalendarState), distinctUntilChanged((a, b) => {
105
- if (a.type === b.type) {
106
- return isSameDay(a.start, b.start);
107
- }
108
- else {
109
- return false; // Type changed, date range changed.
110
- }
107
+ visibleDateRange$ = this.state$.pipe(map(visibleDateRangeForCalendarState), distinctUntilChanged(isCalendarViewDateRangeEqual), shareReplay(1));
108
+ visibleEvents$ = combineLatest([this.events$, this.visibleDateRange$]).pipe(map(([events, dateRange]) => {
109
+ const isEventInDateRange = dateRangeOverlapsDateRangeFunction(dateRange);
110
+ return events.filter((x) => isEventInDateRange(x));
111
111
  }), shareReplay(1));
112
112
  isLookingAtToday$ = this.visibleDateRange$.pipe(map((x) => isDateInDateRange(new Date(), x)), distinctUntilChanged(), shareReplay(1));
113
113
  isLookingAtMinimumDate$ = this.visibleDateRange$.pipe(map((x) => x.isMinDateVisible), distinctUntilChanged(), shareReplay(1));
@@ -144,12 +144,12 @@ export class DbxCalendarStore extends ComponentStore {
144
144
  setNavigationRangeLimit = this.updater((state, navigationRangeLimit) => updateCalendarStateWithNavigationRangeLimit(state, navigationRangeLimit));
145
145
  setShowTodayButton = this.updater((state, showTodayButton) => ({ ...state, showTodayButton: showTodayButton != null ? showTodayButton : true }));
146
146
  setShowPageButtons = this.updater((state, showPageButtons) => ({ ...state, showPageButtons: showPageButtons != null ? showPageButtons : false }));
147
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxCalendarStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
148
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxCalendarStore });
147
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxCalendarStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
148
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxCalendarStore });
149
149
  }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxCalendarStore, decorators: [{
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxCalendarStore, decorators: [{
151
151
  type: Injectable
152
- }], ctorParameters: function () { return []; } });
152
+ }], ctorParameters: () => [] });
153
153
  export function updateCalendarStateWithTappedDate(state, date) {
154
154
  // only update the date if it is different
155
155
  if (!isSameDateDay(state.date, date)) {
@@ -171,4 +171,4 @@ export function updateCalendarStateWithNavigationRangeLimit(state, navigationRan
171
171
  return { ...state, navigationRangeLimit };
172
172
  }
173
173
  }
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQWEsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUFFLGNBQWMsRUFBUyx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzSixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRWhILE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0Isc0NBQWUsQ0FBQTtJQUNmLG9DQUFhLENBQUE7SUFDYixrQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUI7QUFnREQsTUFBTSxVQUFVLGdDQUFnQyxDQUFDLGFBQTRCO0lBQzNFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBQzNELElBQUksS0FBVyxDQUFDO0lBQ2hCLElBQUksR0FBUyxD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QUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDM0c7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSwyQ0FBMkMsQ0FBQyxLQUFvQixFQUFFLG9CQUErQztJQUMvSCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXZCLG9EQUFvRDtJQUNwRCxJQUFJLG9CQUFvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLEVBQUU7UUFDMUUsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDckUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztLQUM5RDtTQUFNO1FBQ0wsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUM7S0FDM0M7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xhbXBEYXRlVG9EYXRlUmFuZ2UsIERhdGVSYW5nZSwgaXNEYXRlSW5EYXRlUmFuZ2UsIGlzRnVsbERhdGVSYW5nZSwgaXNTYW1lRGF0ZURheSwgaXNTYW1lRGF0ZVJhbmdlIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBpbnZlcnREZWNpc2lvbiwgTWF5YmUsIHJlZHVjZUJvb2xlYW5zV2l0aEFuZEZuIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBDYWxlbmRhckV2ZW50IH0gZnJvbSAnYW5ndWxhci1jYWxlbmRhcic7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5EYXlzLCBhZGREYXlzLCBlbmRPZkRheSwgZW5kT2ZNb250aCwgZW5kT2ZXZWVrLCBpc1NhbWVEYXksIHN0YXJ0T2ZEYXksIHN0YXJ0T2ZNb250aCwgc3RhcnRPZldlZWssIGlzQmVmb3JlLCBpc0FmdGVyIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZW51bSBDYWxlbmRhckRpc3BsYXlUeXBlIHtcbiAgTU9OVEggPSAnbW9udGgnLFxuICBXRUVLID0gJ3dlZWsnLFxuICBEQVkgPSAnZGF5J1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyVmlld0RhdGVSYW5nZSB7XG4gIHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGU7XG4gIHN0YXJ0OiBEYXRlO1xuICBlbmQ6IERhdGU7XG4gIGRpc3RhbmNlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgbWluIG5hdmlnYXRpb24gZGF0ZSBpcyBjdXJyZW50bHkgdmlzaWJsZS4gVGhpcyBpbXBsaWVzIHRoYXQgd2UncmUgYXQgdGhlIG1pbmltdW0gZGF0ZS5cbiAgICovXG4gIGlzTWluRGF0ZVZpc2libGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgbWF4aW11bSBuYXZpZ2F0aW9uIGRhdGUgaXMgdmlzaWJsZS4gVGhpcyBpbXBsaWVzIHRoYXQgd2UncmUgYXQgdGhlIG1heGltdW0gZGF0ZS5cbiAgICovXG4gIGlzTWF4RGF0ZVZpc2libGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJTdGF0ZTxUID0gYW55PiB7XG4gIC8qKlxuICAgKiBDYWxlbmRhciBkaXNwbGF5IG1vZGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IHRoZSB0b2RheSBidXR0b24uIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICByZWFkb25seSBzaG93VG9kYXlCdXR0b24/OiBib29sZWFuO1xuICAvKipcbiAgICogRGF0ZSB0aGF0IGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0ZTogRGF0ZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBkYXkgd2FzIHRhcHBlZC9zZXQgdHdpY2UuXG4gICAqL1xuICByZWFkb25seSBkYXRlVGFwcGVkVHdpY2U6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZXQgb2YgY2FsZW5kYXIgZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzOiBDYWxlbmRhckV2ZW50PFQ+W107XG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYXZpZ2F0aW9uIHJhbmdlIGxpbWl0YXRpb24gdGhhdCBsaW1pdHMgd2hpY2ggZGF0ZXMgY2FuIGJlIG5hdmlnYXRlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IG5hdmlnYXRpb25SYW5nZUxpbWl0PzogTWF5YmU8UGFydGlhbDxEYXRlUmFuZ2U+PjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgdGhlIHBhZ2UgYnV0dG9ucyB3aGVuIGFwcGxpY2FibGUuIENhbiBvbmx5IGJlIGRpc3BsYXllZCB3aGVuIGEgbmF2aWdhdGlvblJhbmdlTGltaXQgaXMgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1BhZ2VCdXR0b25zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZpc2libGVEYXRlUmFuZ2VGb3JDYWxlbmRhclN0YXRlKGNhbGVuZGFyU3RhdGU6IENhbGVuZGFyU3RhdGUpOiBDYWxlbmRhclZpZXdEYXRlUmFuZ2Uge1xuICBjb25zdCB7IG5hdmlnYXRpb25SYW5nZUxpbWl0LCB0eXBlLCBkYXRlIH0gPSBjYWxlbmRhclN0YXRlO1xuICBsZXQgc3RhcnQ6IERhdGU7XG4gIGxldCBlbmQ6IERhdGU7XG4gIGxldCBkaXN0YW5jZTogbnVtYmVyO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgQ2FsZW5kYXJEaXNwbGF5VHlwZS5NT05USDpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZkRheShzdGFydE9mV2VlayhzdGFydE9mTW9udGgoZGF0ZSksIHsgd2Vla1N0YXJ0c09uOiAwIH0pKTtcbiAgICAgIGVuZCA9IGVuZE9mV2VlayhlbmRPZk1vbnRoKGRhdGUpKTtcbiAgICAgIGRpc3RhbmNlID0gZGlmZmVyZW5jZUluRGF5cyhlbmQsIHN0YXJ0KSArIDE7XG4gICAgICBicmVhaztcbiAgICBjYXNlIENhbGVuZGFyRGlzcGxheVR5cGUuV0VFSzpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZldlZWsoZGF0ZSk7XG4gICAgICBlbmQgPSBlbmRPZldlZWsoc3RhcnQpO1xuICAgICAgZGlzdGFuY2UgPSA3OyAvLyA3IGRheXMgaW4gYSB3ZWVrLlxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBDYWxlbmRhckRpc3BsYXlUeXBlLkRBWTpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZkRheShkYXRlKTtcbiAgICAgIGVuZCA9IGVuZE9mRGF5KGRhdGUpO1xuICAgICAgZGlzdGFuY2UgPSAxO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjb25zdCBpc01pbkRhdGVWaXNpYmxlOiBib29sZWFuID0gbmF2aWdhdGlvblJhbmdlTGltaXQ/LnN0YXJ0ICE9IG51bGwgPyAhaXNBZnRlcihzdGFydCwgbmF2aWdhdGlvblJhbmdlTGltaXQuc3RhcnQpIDogZmFsc2U7XG4gIGNvbnN0IGlzTWF4RGF0ZVZpc2libGU6IGJvb2xlYW4gPSBuYXZpZ2F0aW9uUmFuZ2VMaW1pdD8uZW5kICE9IG51bGwgPyAhaXNCZWZvcmUoZW5kLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdC5lbmQpIDogZmFsc2U7XG5cbiAgLy8gVE9ETzogQ29uc2lkZXIgY2hhbmdpbmcgbWluL21heCBkYXRlIHZpc2libGUgbG9naWNhbCB1dGlsaXR5IHRvIGJlIGZ1bGx5IHdpdGhpbiB0aGUgY3VycmVudCBtb250aCBvciBub3QsXG4gIC8vIG5vdCBqdXN0IHZpc2libGUsIHNpbmNlIGl0IGNhbiBjaGFuZ2UgdG8gYSBsb2NrZWQgb3V0IGNhbGVuZGFyIGFuZCBkb2Vzbid0IGZlZWwgYXMgVUkgZnJpZW5kbHkuXG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlLFxuICAgIHN0YXJ0LFxuICAgIGVuZCxcbiAgICBkaXN0YW5jZSxcbiAgICBpc01pbkRhdGVWaXNpYmxlLFxuICAgIGlzTWF4RGF0ZVZpc2libGVcbiAgfTtcbn1cblxuY29uc3QgZGlzdGluY3RVbnRpbERhdGVPclR5cGVPckV2ZW50c0NoYW5nZWQgPSBkaXN0aW5jdFVudGlsQ2hhbmdlZDxDYWxlbmRhclN0YXRlPigoYSwgYikgPT4gYT8uZGF0ZSA9PT0gYj8uZGF0ZSAmJiBhPy50eXBlID09PSBiPy50eXBlICYmIGE/LmV2ZW50cyA9PT0gYj8uZXZlbnRzKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieENhbGVuZGFyU3RvcmU8VCA9IGFueT4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxDYWxlbmRhclN0YXRlPFQ+PiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGUuTU9OVEgsXG4gICAgICBzaG93VG9kYXlCdXR0b246IHRydWUsXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgZGF0ZVRhcHBlZFR3aWNlOiBmYWxzZSxcbiAgICAgIGV2ZW50czogW11cbiAgICB9KTtcbiAgfVxuXG4gIC8vIE1BUks6IEVmZmVjdHNcbiAgcmVhZG9ubHkgdGFwRmlyc3RQYWdlID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5taW5OYXZpZ2F0aW9uRGF0ZSQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4ge1xuICAgICAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRhcE5leHQgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHsgZW5kLCBpc01heERhdGVWaXNpYmxlIH0pID0+IHtcbiAgICAgICAgICAgIGlmICghaXNNYXhEYXRlVmlzaWJsZSkge1xuICAgICAgICAgICAgICB0aGlzLnRhcERheShhZGREYXlzKGVuZCwgMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSB0YXBQcmV2aW91cyA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIHRoaXMudmlzaWJsZURhdGVSYW5nZSQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeyBzdGFydCwgaXNNaW5EYXRlVmlzaWJsZSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTWluRGF0ZVZpc2libGUpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoYWRkRGF5cyhzdGFydCwgLTEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgdGFwTGFzdFBhZ2UgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLm1heE5hdmlnYXRpb25EYXRlJC5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKCh4KSA9PiB7XG4gICAgICAgICAgICBpZiAoeCkge1xuICAgICAgICAgICAgICB0aGlzLnRhcERheSh4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG5cbiAgcmVhZG9ubHkgc2hvd1RvZGF5QnV0dG9uJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnNob3dUb2RheUJ1dHRvbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoKHgpID0+IHguZGF0ZSkpO1xuICByZWFkb25seSBkYXRlVGFwcGVkVHdpY2UkID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoKHgpID0+IHguZGF0ZVRhcHBlZFR3aWNlKSk7XG5cbiAgcmVhZG9ubHkgZXZlbnRzJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4LmV2ZW50cykpO1xuXG4gIC8vIFRPRE86IEZpbHRlciB0byBiZSBldmVudHMgdGhhdCB3aWxsIG9ubHkgYmUgZGlzcGxheWVkIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNhbGVuZGFyLlxuICByZWFkb25seSB2aXNpYmxlRXZlbnRzJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmV2ZW50cyksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBldmVudHNGb3JEYXRlU3RhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsRGF0ZU9yVHlwZU9yRXZlbnRzQ2hhbmdlZCxcbiAgICBtYXAoKHN0YXRlKSA9PiAoe1xuICAgICAgZGF0ZTogc3RhdGUuZGF0ZSxcbiAgICAgIGV2ZW50czogc3RhdGUuZXZlbnRzLmZpbHRlcigoeCkgPT4gaXNTYW1lRGF5KHguc3RhcnQsIHN0YXRlLmRhdGUpIHx8ICh4LmVuZCAmJiBpc0JlZm9yZSh4LnN0YXJ0LCBzdGF0ZS5kYXRlKSAmJiBpc0FmdGVyKHguZW5kLCBzdGF0ZS5kYXRlKSkpLFxuICAgICAgZGF0ZVRhcHBlZFR3aWNlOiBzdGF0ZS5kYXRlVGFwcGVkVHdpY2VcbiAgICB9KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBldmVudHNGb3JEYXRlJCA9IHRoaXMuZXZlbnRzRm9yRGF0ZVN0YXRlJC5waXBlKG1hcCgoc3RhdGUpID0+IHN0YXRlLmV2ZW50cykpO1xuXG4gIHJlYWRvbmx5IHZpc2libGVEYXRlUmFuZ2UkOiBPYnNlcnZhYmxlPENhbGVuZGFyVmlld0RhdGVSYW5nZT4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIC8vIElmIHRoZSBkYXRlIG9yIHR5cGUgY2hhbmdlcywgY2hlY2sgYWdhaW4uXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/LmRhdGUgPT09IGI/LmRhdGUgJiYgYT8udHlwZSA9PT0gYj8udHlwZSksXG4gICAgbWFwKHZpc2libGVEYXRlUmFuZ2VGb3JDYWxlbmRhclN0YXRlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEudHlwZSA9PT0gYi50eXBlKSB7XG4gICAgICAgIHJldHVybiBpc1NhbWVEYXkoYS5zdGFydCwgYi5zdGFydCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFR5cGUgY2hhbmdlZCwgZGF0ZSByYW5nZSBjaGFuZ2VkLlxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNMb29raW5nQXRUb2RheSQgPSB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBpc0RhdGVJbkRhdGVSYW5nZShuZXcgRGF0ZSgpLCB4KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzTG9va2luZ0F0TWluaW11bURhdGUkID0gdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pc01pbkRhdGVWaXNpYmxlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNMb29raW5nQXRNYXhpbXVtRGF0ZSQgPSB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlzTWF4RGF0ZVZpc2libGUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNNdWx0aXBsZVBhZ2VzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNMb29raW5nQXRNaW5pbXVtRGF0ZSQsIHRoaXMuaXNMb29raW5nQXRNYXhpbXVtRGF0ZSRdKS5waXBlKG1hcChpbnZlcnREZWNpc2lvbihyZWR1Y2VCb29sZWFuc1dpdGhBbmRGbih0cnVlKSkpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheVR5cGUkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgudHlwZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGEgPT09IGIpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbmF2aWdhdGlvblJhbmdlTGltaXQkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgubmF2aWdhdGlvblJhbmdlTGltaXQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzU2FtZURhdGVSYW5nZSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtaW5OYXZpZ2F0aW9uRGF0ZSQ6IE9ic2VydmFibGU8TWF5YmU8RGF0ZT4+ID0gdGhpcy5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LnN0YXJ0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc1NhbWVEYXRlRGF5KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG1heE5hdmlnYXRpb25EYXRlJDogT2JzZXJ2YWJsZTxNYXliZTxEYXRlPj4gPSB0aGlzLm5hdmlnYXRpb25SYW5nZUxpbWl0JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geD8uZW5kKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc1NhbWVEYXRlRGF5KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzVG9kYXlJbk5hdmlnYXRpb25SYW5nZUxpbWl0JCA9IHRoaXMubmF2aWdhdGlvblJhbmdlTGltaXQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBpc0RhdGVJbkRhdGVSYW5nZShuZXcgRGF0ZSgpLCB4ID8/IHt9KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNhbkp1bXBUb1RvZGF5JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNMb29raW5nQXRUb2RheSQsIHRoaXMuaXNUb2RheUluTmF2aWdhdGlvblJhbmdlTGltaXQkXSkucGlwZShcbiAgICBtYXAoKFtpc0xvb2tpbmdBdFRvZGF5LCBpc1RvZGF5SW5OYXZpZ2F0aW9uUmFuZ2VMaW1pdF0pID0+ICFpc0xvb2tpbmdBdFRvZGF5ICYmIGlzVG9kYXlJbk5hdmlnYXRpb25SYW5nZUxpbWl0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY2FuU2hvd1BhZ2VCdXR0b25zJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnNob3dQYWdlQnV0dG9ucyAmJiB4Lm5hdmlnYXRpb25SYW5nZUxpbWl0ICYmIGlzRnVsbERhdGVSYW5nZSh4Lm5hdmlnYXRpb25SYW5nZUxpbWl0KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dQYWdlQnV0dG9ucyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNhblNob3dQYWdlQnV0dG9ucyQsIHRoaXMuaXNMb29raW5nQXRNaW5pbXVtRGF0ZSQsIHRoaXMuaXNMb29raW5nQXRNYXhpbXVtRGF0ZSRdKS5waXBlKFxuICAgIG1hcCgoW2NhblNob3dQYWdlQnV0dG9ucywgaXNMb29raW5nQXRNaW5pbXVtRGF0ZSwgaXNMb29raW5nQXRNYXhpbXVtRGF0ZV0pID0+IHtcbiAgICAgIHJldHVybiBjYW5TaG93UGFnZUJ1dHRvbnMgJiYgIShpc0xvb2tpbmdBdE1pbmltdW1EYXRlICYmIGlzTG9va2luZ0F0TWF4aW11bURhdGUpO1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvLyBNQVJLOiBTdGF0ZSBDaGFuZ2VzXG4gIC8qKlxuICAgKiBUYXAgYSBkYXkuXG4gICAqXG4gICAqIC0gSWYgdGhlIHNhbWUgZGF5IGlzIHByZXNlbnRlZCwgZGF0ZVRhcHBlZFR3aWNlIGlzIGZsaXBwZWQuXG4gICAqL1xuICByZWFkb25seSB0YXBEYXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBkYXRlOiBEYXRlKSA9PiB1cGRhdGVDYWxlbmRhclN0YXRlV2l0aFRhcHBlZERhdGUoc3RhdGUsIGRhdGUpKTtcblxuICAvKipcbiAgICogU2V0IGFsbCBldmVudHMgb24gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RXZlbnRzID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZXZlbnRzOiBDYWxlbmRhckV2ZW50PFQ+W10pID0+ICh7IC4uLnN0YXRlLCBldmVudHMgfSkpO1xuXG4gIC8qKlxuICAgKiBTZXQgYWxsIGV2ZW50cyBvbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICByZWFkb25seSBzZXREaXNwbGF5VHlwZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGUpID0+ICh7IC4uLnN0YXRlLCB0eXBlIH0pKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgbmF2aWdhdGlvbiBsaW1pdC5cbiAgICovXG4gIHJlYWRvbmx5IHNldE5hdmlnYXRpb25SYW5nZUxpbWl0ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQ6IE1heWJlPFBhcnRpYWw8RGF0ZVJhbmdlPj4pID0+IHVwZGF0ZUNhbGVuZGFyU3RhdGVXaXRoTmF2aWdhdGlvblJhbmdlTGltaXQoc3RhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0KSk7XG5cbiAgcmVhZG9ubHkgc2V0U2hvd1RvZGF5QnV0dG9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgc2hvd1RvZGF5QnV0dG9uOiBNYXliZTxib29sZWFuPikgPT4gKHsgLi4uc3RhdGUsIHNob3dUb2RheUJ1dHRvbjogc2hvd1RvZGF5QnV0dG9uICE9IG51bGwgPyBzaG93VG9kYXlCdXR0b24gOiB0cnVlIH0pKTtcbiAgcmVhZG9ubHkgc2V0U2hvd1BhZ2VCdXR0b25zID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgc2hvd1BhZ2VCdXR0b25zOiBNYXliZTxib29sZWFuPikgPT4gKHsgLi4uc3RhdGUsIHNob3dQYWdlQnV0dG9uczogc2hvd1BhZ2VCdXR0b25zICE9IG51bGwgPyBzaG93UGFnZUJ1dHRvbnMgOiBmYWxzZSB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDYWxlbmRhclN0YXRlV2l0aFRhcHBlZERhdGUoc3RhdGU6IENhbGVuZGFyU3RhdGUsIGRhdGU6IERhdGUpIHtcbiAgLy8gb25seSB1cGRhdGUgdGhlIGRhdGUgaWYgaXQgaXMgZGlmZmVyZW50XG4gIGlmICghaXNTYW1lRGF0ZURheShzdGF0ZS5kYXRlLCBkYXRlKSkge1xuICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBkYXRlIGlmIGl0IGlzIHdpdGhpbiB0aGUgZGF0ZSByYW5nZVxuICAgIGlmICghc3RhdGUubmF2aWdhdGlvblJhbmdlTGltaXQgfHwgaXNEYXRlSW5EYXRlUmFuZ2UoZGF0ZSwgc3RhdGUubmF2aWdhdGlvblJhbmdlTGltaXQpKSB7XG4gICAgICBzdGF0ZSA9IHsgLi4uc3RhdGUsIGRhdGUsIGRhdGVUYXBwZWRUd2ljZTogaXNTYW1lRGF5KGRhdGUsIHN0YXRlLmRhdGUpID8gIXN0YXRlLmRhdGVUYXBwZWRUd2ljZSA6IGZhbHNlIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FsZW5kYXJTdGF0ZVdpdGhOYXZpZ2F0aW9uUmFuZ2VMaW1pdChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQ6IE1heWJlPFBhcnRpYWw8RGF0ZVJhbmdlPj4pIHtcbiAgY29uc3QgeyBkYXRlIH0gPSBzdGF0ZTtcblxuICAvLyBjYXAgdGhlIGRhdGUgaWYgaXQgZG9lc24ndCBmYWxsIHdpdGhpbiB0aGUgcmFuZ2UuXG4gIGlmIChuYXZpZ2F0aW9uUmFuZ2VMaW1pdCAmJiAhaXNEYXRlSW5EYXRlUmFuZ2UoZGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQpKSB7XG4gICAgY29uc3QgY2xhbXBlZERhdGUgPSBjbGFtcERhdGVUb0RhdGVSYW5nZShkYXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCk7XG4gICAgcmV0dXJuIHsgLi4uc3RhdGUsIGRhdGU6IGNsYW1wZWREYXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IC4uLnN0YXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCB9O1xuICB9XG59XG4iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQWEsa0NBQWtDLEVBQUUsaUJBQWlCLEVBQTZCLGVBQWUsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25NLE9BQU8sRUFBRSxjQUFjLEVBQVMsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0osT0FBTyxFQUFjLG9CQUFvQixFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFTLE1BQU0sTUFBTSxDQUFDOztBQUV2SCxNQUFNLENBQU4sSUFBWSxtQkFJWDtBQUpELFdBQVksbUJBQW1CO0lBQzdCLHNDQUFlLENBQUE7SUFDZixvQ0FBYSxDQUFBO0lBQ2Isa0NBQVcsQ0FBQTtBQUNiLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBaUJELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxDQUF3QixFQUFFLENBQXdCO0lBQzdGLE9BQU8sQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxF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QztJQUM1QyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsYW1wRGF0ZVRvRGF0ZVJhbmdlLCBEYXRlUmFuZ2UsIGRhdGVSYW5nZU92ZXJsYXBzRGF0ZVJhbmdlRnVuY3Rpb24sIGlzRGF0ZUluRGF0ZVJhbmdlLCBpc0RhdGVJbkRhdGVSYW5nZUZ1bmN0aW9uLCBpc0Z1bGxEYXRlUmFuZ2UsIGlzU2FtZURhdGVEYXksIGlzU2FtZURhdGVSYW5nZSB9IGZyb20gJ0BkZXJlZWtiL2RhdGUnO1xuaW1wb3J0IHsgaW52ZXJ0RGVjaXNpb24sIE1heWJlLCByZWR1Y2VCb29sZWFuc1dpdGhBbmRGbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJFdmVudCB9IGZyb20gJ2FuZ3VsYXItY2FsZW5kYXInO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluRGF5cywgYWRkRGF5cywgZW5kT2ZEYXksIGVuZE9mTW9udGgsIGVuZE9mV2VlaywgaXNTYW1lRGF5LCBzdGFydE9mRGF5LCBzdGFydE9mTW9udGgsIHN0YXJ0T2ZXZWVrLCBpc0JlZm9yZSwgaXNBZnRlciB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAsIGNvbWJpbmVMYXRlc3QsIHNoYXJlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBlbnVtIENhbGVuZGFyRGlzcGxheVR5cGUge1xuICBNT05USCA9ICdtb250aCcsXG4gIFdFRUsgPSAnd2VlaycsXG4gIERBWSA9ICdkYXknXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJWaWV3RGF0ZVJhbmdlIHtcbiAgcmVhZG9ubHkgdHlwZTogQ2FsZW5kYXJEaXNwbGF5VHlwZTtcbiAgcmVhZG9ubHkgc3RhcnQ6IERhdGU7XG4gIHJlYWRvbmx5IGVuZDogRGF0ZTtcbiAgcmVhZG9ubHkgZGlzdGFuY2U6IG51bWJlcjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBtaW4gbmF2aWdhdGlvbiBkYXRlIGlzIGN1cnJlbnRseSB2aXNpYmxlLiBUaGlzIGltcGxpZXMgdGhhdCB3ZSdyZSBhdCB0aGUgbWluaW11bSBkYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNNaW5EYXRlVmlzaWJsZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBtYXhpbXVtIG5hdmlnYXRpb24gZGF0ZSBpcyB2aXNpYmxlLiBUaGlzIGltcGxpZXMgdGhhdCB3ZSdyZSBhdCB0aGUgbWF4aW11bSBkYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNNYXhEYXRlVmlzaWJsZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FsZW5kYXJWaWV3RGF0ZVJhbmdlRXF1YWwoYTogQ2FsZW5kYXJWaWV3RGF0ZVJhbmdlLCBiOiBDYWxlbmRhclZpZXdEYXRlUmFuZ2UpOiBib29sZWFuIHtcbiAgcmV0dXJuIGEudHlwZSA9PT0gYi50eXBlICYmIGlzU2FtZURheShhLnN0YXJ0LCBiLnN0YXJ0KSAmJiBpc1NhbWVEYXkoYS5lbmQsIGIuZW5kKSAmJiBhLmRpc3RhbmNlID09PSBiLmRpc3RhbmNlICYmIGEuaXNNaW5EYXRlVmlzaWJsZSA9PT0gYi5pc01pbkRhdGVWaXNpYmxlICYmIGEuaXNNYXhEYXRlVmlzaWJsZSA9PT0gYi5pc01heERhdGVWaXNpYmxlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyU3RhdGU8VCA9IGFueT4ge1xuICAvKipcbiAgICogQ2FsZW5kYXIgZGlzcGxheSBtb2RlXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2hvdyB0aGUgdG9kYXkgYnV0dG9uLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1RvZGF5QnV0dG9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERhdGUgdGhhdCBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGU6IERhdGU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZGF5IHdhcyB0YXBwZWQvc2V0IHR3aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0ZVRhcHBlZFR3aWNlOiBib29sZWFuO1xuICAvKipcbiAgICogU2V0IG9mIGNhbGVuZGFyIGV2ZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50czogQ2FsZW5kYXJFdmVudDxUPltdO1xuICAvKipcbiAgICogT3B0aW9uYWwgbmF2aWdhdGlvbiByYW5nZSBsaW1pdGF0aW9uIHRoYXQgbGltaXRzIHdoaWNoIGRhdGVzIGNhbiBiZSBuYXZpZ2F0ZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBuYXZpZ2F0aW9uUmFuZ2VMaW1pdD86IE1heWJlPFBhcnRpYWw8RGF0ZVJhbmdlPj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBkaXNwbGF5IHRoZSBwYWdlIGJ1dHRvbnMgd2hlbiBhcHBsaWNhYmxlLiBDYW4gb25seSBiZSBkaXNwbGF5ZWQgd2hlbiBhIG5hdmlnYXRpb25SYW5nZUxpbWl0IGlzIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3dQYWdlQnV0dG9ucz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2aXNpYmxlRGF0ZVJhbmdlRm9yQ2FsZW5kYXJTdGF0ZShjYWxlbmRhclN0YXRlOiBDYWxlbmRhclN0YXRlKTogQ2FsZW5kYXJWaWV3RGF0ZVJhbmdlIHtcbiAgY29uc3QgeyBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCwgdHlwZSwgZGF0ZSB9ID0gY2FsZW5kYXJTdGF0ZTtcblxuICBsZXQgc3RhcnQ6IERhdGU7XG4gIGxldCBlbmQ6IERhdGU7XG4gIGxldCBkaXN0YW5jZTogbnVtYmVyO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgQ2FsZW5kYXJEaXNwbGF5VHlwZS5NT05USDpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZkRheShzdGFydE9mV2VlayhzdGFydE9mTW9udGgoZGF0ZSksIHsgd2Vla1N0YXJ0c09uOiAwIH0pKTtcbiAgICAgIGVuZCA9IGVuZE9mV2VlayhlbmRPZk1vbnRoKGRhdGUpKTtcbiAgICAgIGRpc3RhbmNlID0gZGlmZmVyZW5jZUluRGF5cyhlbmQsIHN0YXJ0KSArIDE7XG4gICAgICBicmVhaztcbiAgICBjYXNlIENhbGVuZGFyRGlzcGxheVR5cGUuV0VFSzpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZldlZWsoZGF0ZSk7XG4gICAgICBlbmQgPSBlbmRPZldlZWsoc3RhcnQpO1xuICAgICAgZGlzdGFuY2UgPSA3OyAvLyA3IGRheXMgaW4gYSB3ZWVrLlxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBDYWxlbmRhckRpc3BsYXlUeXBlLkRBWTpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZkRheShkYXRlKTtcbiAgICAgIGVuZCA9IGVuZE9mRGF5KGRhdGUpO1xuICAgICAgZGlzdGFuY2UgPSAxO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjb25zdCBpc01pbkRhdGVWaXNpYmxlOiBib29sZWFuID0gbmF2aWdhdGlvblJhbmdlTGltaXQ/LnN0YXJ0ICE9IG51bGwgPyAhaXNBZnRlcihzdGFydCwgbmF2aWdhdGlvblJhbmdlTGltaXQuc3RhcnQpIDogZmFsc2U7XG4gIGNvbnN0IGlzTWF4RGF0ZVZpc2libGU6IGJvb2xlYW4gPSBuYXZpZ2F0aW9uUmFuZ2VMaW1pdD8uZW5kICE9IG51bGwgPyAhaXNCZWZvcmUoZW5kLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdC5lbmQpIDogZmFsc2U7XG5cbiAgLy8gVE9ETzogQ29uc2lkZXIgY2hhbmdpbmcgbWluL21heCBkYXRlIHZpc2libGUgbG9naWNhbCB1dGlsaXR5IHRvIGJlIGZ1bGx5IHdpdGhpbiB0aGUgY3VycmVudCBtb250aCBvciBub3QsXG4gIC8vIG5vdCBqdXN0IHZpc2libGUsIHNpbmNlIGl0IGNhbiBjaGFuZ2UgdG8gYSBsb2NrZWQgb3V0IGNhbGVuZGFyIGFuZCBkb2Vzbid0IGZlZWwgYXMgVUkgZnJpZW5kbHkuXG5cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIHR5cGUsXG4gICAgc3RhcnQsXG4gICAgZW5kLFxuICAgIGRpc3RhbmNlLFxuICAgIGlzTWluRGF0ZVZpc2libGUsXG4gICAgaXNNYXhEYXRlVmlzaWJsZVxuICB9O1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmNvbnN0IGRpc3RpbmN0VW50aWxEYXRlT3JUeXBlT3JFdmVudHNDaGFuZ2VkID0gZGlzdGluY3RVbnRpbENoYW5nZWQ8Q2FsZW5kYXJTdGF0ZT4oKGEsIGIpID0+IGE/LmRhdGUgPT09IGI/LmRhdGUgJiYgYT8udHlwZSA9PT0gYj8udHlwZSAmJiBhPy5ldmVudHMgPT09IGI/LmV2ZW50cyk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYnhDYWxlbmRhclN0b3JlPFQgPSBhbnk+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8Q2FsZW5kYXJTdGF0ZTxUPj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih7XG4gICAgICB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlLk1PTlRILFxuICAgICAgc2hvd1RvZGF5QnV0dG9uOiB0cnVlLFxuICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgIGRhdGVUYXBwZWRUd2ljZTogZmFsc2UsXG4gICAgICBldmVudHM6IFtdXG4gICAgfSk7XG4gIH1cblxuICAvLyBNQVJLOiBFZmZlY3RzXG4gIHJlYWRvbmx5IHRhcEZpcnN0UGFnZSA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIHRoaXMubWluTmF2aWdhdGlvbkRhdGUkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHtcbiAgICAgICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAgIHRoaXMudGFwRGF5KHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSB0YXBOZXh0ID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKCh7IGVuZCwgaXNNYXhEYXRlVmlzaWJsZSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTWF4RGF0ZVZpc2libGUpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoYWRkRGF5cyhlbmQsIDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgdGFwUHJldmlvdXMgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHsgc3RhcnQsIGlzTWluRGF0ZVZpc2libGUgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc01pbkRhdGVWaXNpYmxlKSB7XG4gICAgICAgICAgICAgIHRoaXMudGFwRGF5KGFkZERheXMoc3RhcnQsIC0xKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRhcExhc3RQYWdlID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5tYXhOYXZpZ2F0aW9uRGF0ZSQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4ge1xuICAgICAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuXG4gIHJlYWRvbmx5IHNob3dUb2RheUJ1dHRvbiQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5zaG93VG9kYXlCdXR0b24pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkYXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4LmRhdGUpKTtcbiAgcmVhZG9ubHkgZGF0ZVRhcHBlZFR3aWNlJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4LmRhdGVUYXBwZWRUd2ljZSkpO1xuXG4gIHJlYWRvbmx5IGV2ZW50cyQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5ldmVudHMpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXZlbnRzIHRoYXQgbWF0Y2ggdGhlIHRhcHBlZCBkYXRlIHJhbmdlIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzRm9yRGF0ZVN0YXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbERhdGVPclR5cGVPckV2ZW50c0NoYW5nZWQsXG4gICAgbWFwKChzdGF0ZSkgPT4gKHtcbiAgICAgIGRhdGU6IHN0YXRlLmRhdGUsXG4gICAgICBldmVudHM6IHN0YXRlLmV2ZW50cy5maWx0ZXIoKHgpID0+IGlzU2FtZURheSh4LnN0YXJ0LCBzdGF0ZS5kYXRlKSB8fCAoeC5lbmQgJiYgaXNCZWZvcmUoeC5zdGFydCwgc3RhdGUuZGF0ZSkgJiYgaXNBZnRlcih4LmVuZCwgc3RhdGUuZGF0ZSkpKSxcbiAgICAgIGRhdGVUYXBwZWRUd2ljZTogc3RhdGUuZGF0ZVRhcHBlZFR3aWNlXG4gICAgfSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZXZlbnRzRm9yRGF0ZSQgPSB0aGlzLmV2ZW50c0ZvckRhdGVTdGF0ZSQucGlwZShtYXAoKHN0YXRlKSA9PiBzdGF0ZS5ldmVudHMpKTtcblxuICByZWFkb25seSB2aXNpYmxlRGF0ZVJhbmdlJDogT2JzZXJ2YWJsZTxDYWxlbmRhclZpZXdEYXRlUmFuZ2U+ID0gdGhpcy5zdGF0ZSQucGlwZShtYXAodmlzaWJsZURhdGVSYW5nZUZvckNhbGVuZGFyU3RhdGUpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc0NhbGVuZGFyVmlld0RhdGVSYW5nZUVxdWFsKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IHZpc2libGVFdmVudHMkID0gY29tYmluZUxhdGVzdChbdGhpcy5ldmVudHMkLCB0aGlzLnZpc2libGVEYXRlUmFuZ2UkXSkucGlwZShcbiAgICBtYXAoKFtldmVudHMsIGRhdGVSYW5nZV0pID0+IHtcbiAgICAgIGNvbnN0IGlzRXZlbnRJbkRhdGVSYW5nZSA9IGRhdGVSYW5nZU92ZXJsYXBzRGF0ZVJhbmdlRnVuY3Rpb24oZGF0ZVJhbmdlKTtcbiAgICAgIHJldHVybiBldmVudHMuZmlsdGVyKCh4KSA9PiBpc0V2ZW50SW5EYXRlUmFuZ2UoeCkpO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNMb29raW5nQXRUb2RheSQgPSB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBpc0RhdGVJbkRhdGVSYW5nZShuZXcgRGF0ZSgpLCB4KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzTG9va2luZ0F0TWluaW11bURhdGUkID0gdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pc01pbkRhdGVWaXNpYmxlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNMb29raW5nQXRNYXhpbXVtRGF0ZSQgPSB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlzTWF4RGF0ZVZpc2libGUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNNdWx0aXBsZVBhZ2VzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNMb29raW5nQXRNaW5pbXVtRGF0ZSQsIHRoaXMuaXNMb29raW5nQXRNYXhpbXVtRGF0ZSRdKS5waXBlKG1hcChpbnZlcnREZWNpc2lvbihyZWR1Y2VCb29sZWFuc1dpdGhBbmRGbih0cnVlKSkpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheVR5cGUkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgudHlwZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGEgPT09IGIpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbmF2aWdhdGlvblJhbmdlTGltaXQkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgubmF2aWdhdGlvblJhbmdlTGltaXQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzU2FtZURhdGVSYW5nZSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtaW5OYXZpZ2F0aW9uRGF0ZSQ6IE9ic2VydmFibGU8TWF5YmU8RGF0ZT4+ID0gdGhpcy5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LnN0YXJ0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc1NhbWVEYXRlRGF5KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG1heE5hdmlnYXRpb25EYXRlJDogT2JzZXJ2YWJsZTxNYXliZTxEYXRlPj4gPSB0aGlzLm5hdmlnYXRpb25SYW5nZUxpbWl0JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geD8uZW5kKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc1NhbWVEYXRlRGF5KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzVG9kYXlJbk5hdmlnYXRpb25SYW5nZUxpbWl0JCA9IHRoaXMubmF2aWdhdGlvblJhbmdlTGltaXQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBpc0RhdGVJbkRhdGVSYW5nZShuZXcgRGF0ZSgpLCB4ID8/IHt9KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNhbkp1bXBUb1RvZGF5JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNMb29raW5nQXRUb2RheSQsIHRoaXMuaXNUb2RheUluTmF2aWdhdGlvblJhbmdlTGltaXQkXSkucGlwZShcbiAgICBtYXAoKFtpc0xvb2tpbmdBdFRvZGF5LCBpc1RvZGF5SW5OYXZpZ2F0aW9uUmFuZ2VMaW1pdF0pID0+ICFpc0xvb2tpbmdBdFRvZGF5ICYmIGlzVG9kYXlJbk5hdmlnYXRpb25SYW5nZUxpbWl0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY2FuU2hvd1BhZ2VCdXR0b25zJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnNob3dQYWdlQnV0dG9ucyAmJiB4Lm5hdmlnYXRpb25SYW5nZUxpbWl0ICYmIGlzRnVsbERhdGVSYW5nZSh4Lm5hdmlnYXRpb25SYW5nZUxpbWl0KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dQYWdlQnV0dG9ucyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNhblNob3dQYWdlQnV0dG9ucyQsIHRoaXMuaXNMb29raW5nQXRNaW5pbXVtRGF0ZSQsIHRoaXMuaXNMb29raW5nQXRNYXhpbXVtRGF0ZSRdKS5waXBlKFxuICAgIG1hcCgoW2NhblNob3dQYWdlQnV0dG9ucywgaXNMb29raW5nQXRNaW5pbXVtRGF0ZSwgaXNMb29raW5nQXRNYXhpbXVtRGF0ZV0pID0+IHtcbiAgICAgIHJldHVybiBjYW5TaG93UGFnZUJ1dHRvbnMgJiYgIShpc0xvb2tpbmdBdE1pbmltdW1EYXRlICYmIGlzTG9va2luZ0F0TWF4aW11bURhdGUpO1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvLyBNQVJLOiBTdGF0ZSBDaGFuZ2VzXG4gIC8qKlxuICAgKiBUYXAgYSBkYXkuXG4gICAqXG4gICAqIC0gSWYgdGhlIHNhbWUgZGF5IGlzIHByZXNlbnRlZCwgZGF0ZVRhcHBlZFR3aWNlIGlzIGZsaXBwZWQuXG4gICAqL1xuICByZWFkb25seSB0YXBEYXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBkYXRlOiBEYXRlKSA9PiB1cGRhdGVDYWxlbmRhclN0YXRlV2l0aFRhcHBlZERhdGUoc3RhdGUsIGRhdGUpKTtcblxuICAvKipcbiAgICogU2V0IGFsbCBldmVudHMgb24gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RXZlbnRzID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZXZlbnRzOiBDYWxlbmRhckV2ZW50PFQ+W10pID0+ICh7IC4uLnN0YXRlLCBldmVudHMgfSkpO1xuXG4gIC8qKlxuICAgKiBTZXQgYWxsIGV2ZW50cyBvbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICByZWFkb25seSBzZXREaXNwbGF5VHlwZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGUpID0+ICh7IC4uLnN0YXRlLCB0eXBlIH0pKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgbmF2aWdhdGlvbiBsaW1pdC5cbiAgICovXG4gIHJlYWRvbmx5IHNldE5hdmlnYXRpb25SYW5nZUxpbWl0ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQ6IE1heWJlPFBhcnRpYWw8RGF0ZVJhbmdlPj4pID0+IHVwZGF0ZUNhbGVuZGFyU3RhdGVXaXRoTmF2aWdhdGlvblJhbmdlTGltaXQoc3RhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0KSk7XG5cbiAgcmVhZG9ubHkgc2V0U2hvd1RvZGF5QnV0dG9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgc2hvd1RvZGF5QnV0dG9uOiBNYXliZTxib29sZWFuPikgPT4gKHsgLi4uc3RhdGUsIHNob3dUb2RheUJ1dHRvbjogc2hvd1RvZGF5QnV0dG9uICE9IG51bGwgPyBzaG93VG9kYXlCdXR0b24gOiB0cnVlIH0pKTtcbiAgcmVhZG9ubHkgc2V0U2hvd1BhZ2VCdXR0b25zID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgc2hvd1BhZ2VCdXR0b25zOiBNYXliZTxib29sZWFuPikgPT4gKHsgLi4uc3RhdGUsIHNob3dQYWdlQnV0dG9uczogc2hvd1BhZ2VCdXR0b25zICE9IG51bGwgPyBzaG93UGFnZUJ1dHRvbnMgOiBmYWxzZSB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDYWxlbmRhclN0YXRlV2l0aFRhcHBlZERhdGUoc3RhdGU6IENhbGVuZGFyU3RhdGUsIGRhdGU6IERhdGUpIHtcbiAgLy8gb25seSB1cGRhdGUgdGhlIGRhdGUgaWYgaXQgaXMgZGlmZmVyZW50XG4gIGlmICghaXNTYW1lRGF0ZURheShzdGF0ZS5kYXRlLCBkYXRlKSkge1xuICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBkYXRlIGlmIGl0IGlzIHdpdGhpbiB0aGUgZGF0ZSByYW5nZVxuICAgIGlmICghc3RhdGUubmF2aWdhdGlvblJhbmdlTGltaXQgfHwgaXNEYXRlSW5EYXRlUmFuZ2UoZGF0ZSwgc3RhdGUubmF2aWdhdGlvblJhbmdlTGltaXQpKSB7XG4gICAgICBzdGF0ZSA9IHsgLi4uc3RhdGUsIGRhdGUsIGRhdGVUYXBwZWRUd2ljZTogaXNTYW1lRGF5KGRhdGUsIHN0YXRlLmRhdGUpID8gIXN0YXRlLmRhdGVUYXBwZWRUd2ljZSA6IGZhbHNlIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FsZW5kYXJTdGF0ZVdpdGhOYXZpZ2F0aW9uUmFuZ2VMaW1pdChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQ6IE1heWJlPFBhcnRpYWw8RGF0ZVJhbmdlPj4pIHtcbiAgY29uc3QgeyBkYXRlIH0gPSBzdGF0ZTtcblxuICAvLyBjYXAgdGhlIGRhdGUgaWYgaXQgZG9lc24ndCBmYWxsIHdpdGhpbiB0aGUgcmFuZ2UuXG4gIGlmIChuYXZpZ2F0aW9uUmFuZ2VMaW1pdCAmJiAhaXNEYXRlSW5EYXRlUmFuZ2UoZGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQpKSB7XG4gICAgY29uc3QgY2xhbXBlZERhdGUgPSBjbGFtcERhdGVUb0RhdGVSYW5nZShkYXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCk7XG4gICAgcmV0dXJuIHsgLi4uc3RhdGUsIGRhdGU6IGNsYW1wZWREYXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IC4uLnN0YXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCB9O1xuICB9XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  export * from './calendar.module';
2
2
  export * from './calendar.component';
3
3
  export * from './calendar.base.component';
4
+ export * from './calendar.provider';
4
5
  export * from './calendar.store';
5
6
  export * from './calendar';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL2NhbGVuZGFyL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIuYmFzZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci5zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhbGVuZGFyJztcbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL2NhbGVuZGFyL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhci5iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NhbGVuZGFyLnByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vY2FsZW5kYXIuc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9jYWxlbmRhcic7XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Directive, Input, inject } from '@angular/core';
1
+ import { Directive, inject, input } from '@angular/core';
2
2
  import { AbstractPromptConfirmDirective } from '../interaction/prompt/prompt.confirm.directive';
3
3
  import { SubscriptionObject } from '@dereekb/rxjs';
4
4
  import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  */
12
12
  export class DbxActionConfirmDirective extends AbstractPromptConfirmDirective {
13
13
  source = inject((DbxActionContextStoreSourceInstance), { host: true });
14
- config;
14
+ dbxActionConfirm = input();
15
15
  _sourceSubscription = new SubscriptionObject();
16
16
  ngOnInit() {
17
17
  this._sourceSubscription.subscription = this.source.triggered$.subscribe(() => {
@@ -23,23 +23,21 @@ export class DbxActionConfirmDirective extends AbstractPromptConfirmDirective {
23
23
  }
24
24
  _handleDialogResult(result) {
25
25
  if (result) {
26
- this.source.readyValue(this.config?.readyValue);
26
+ this.source.readyValue(this.dbxActionConfirm()?.readyValue);
27
27
  }
28
28
  else {
29
29
  this.source.reject(undefined);
30
30
  }
31
31
  return result;
32
32
  }
33
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionConfirmDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
34
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxActionConfirmDirective, selector: "[dbxActionConfirm]", inputs: { config: ["dbxActionConfirm", "config"] }, usesInheritance: true, ngImport: i0 });
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionConfirmDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
34
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxActionConfirmDirective, isStandalone: true, selector: "[dbxActionConfirm]", inputs: { dbxActionConfirm: { classPropertyName: "dbxActionConfirm", publicName: "dbxActionConfirm", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
35
35
  }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionConfirmDirective, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionConfirmDirective, decorators: [{
37
37
  type: Directive,
38
38
  args: [{
39
- selector: '[dbxActionConfirm]'
39
+ selector: '[dbxActionConfirm]',
40
+ standalone: true
40
41
  }]
41
- }], propDecorators: { config: [{
42
- type: Input,
43
- args: ['dbxActionConfirm']
44
- }] } });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbmZpcm0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2FjdGlvbi9hY3Rpb24uY29uZmlybS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUVoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBYXhFOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLHlCQUFvRCxTQUFRLDhCQUE4QjtJQUM1RixNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsbUNBQXlDLENBQUEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRzNFLE1BQU0sQ0FBb0M7SUFFM0MsbUJBQW1CLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBRXZELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVrQixtQkFBbUIsQ0FBQyxNQUFlO1FBQ3BELElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUEwQixDQUFDLENBQUM7U0FDakU7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9CO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt3R0ExQlUseUJBQXlCOzRGQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7OEJBS1UsTUFBTTtzQkFEZCxLQUFLO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0UHJvbXB0Q29uZmlybURpcmVjdGl2ZSB9IGZyb20gJy4uL2ludGVyYWN0aW9uL3Byb21wdC9wcm9tcHQuY29uZmlybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4UHJvbXB0Q29uZmlybUNvbmZpZyB9IGZyb20gJy4uL2ludGVyYWN0aW9uL3Byb21wdC9wcm9tcHQuY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBEYnhBY3Rpb25Db25maXJtRGlyZWN0aXZlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4QWN0aW9uQ29uZmlybUNvbmZpZzxUID0gdW5rbm93bj4gZXh0ZW5kcyBEYnhQcm9tcHRDb25maXJtQ29uZmlnIHtcbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgc2V0IHRoZSByZWFkeVZhbHVlIHBhc3NlZCB0byB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkeVZhbHVlPzogVDtcbn1cblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCB3aGVuIHRyaWdnZXJlZCBzaG93cyBhIGRpYWxvZyB0byBhY2NlcHQgb3IgcmVqZWN0LlxuICpcbiAqIFRoaXMgb25seSB3b3JrcyB0byBwYXNzIGEgcmVhZHkgdmFsdWUgb3IgcmVqZWN0IHRocm91Z2gsIG5vdCB0byB3b3JrIHdpdGggYSBidXR0b24uXG4gKiBGb3IgYnV0dG9uIHVzYWdlLCB1c2UgYW4gYXBwUHJvbXB0Q29uZmlybUJ1dHRvbiBkaXJlY3RpdmUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhBY3Rpb25Db25maXJtXSdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4QWN0aW9uQ29uZmlybURpcmVjdGl2ZTxUID0gdW5rbm93biwgTyA9IHVua25vd24+IGV4dGVuZHMgQWJzdHJhY3RQcm9tcHRDb25maXJtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSBzb3VyY2UgPSBpbmplY3QoRGJ4QWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2U8VCwgTz4sIHsgaG9zdDogdHJ1ZSB9KTtcblxuICBASW5wdXQoJ2RieEFjdGlvbkNvbmZpcm0nKVxuICBvdmVycmlkZSBjb25maWc/OiBNYXliZTxEYnhBY3Rpb25Db25maXJtQ29uZmlnPFQ+PjtcblxuICBwcml2YXRlIF9zb3VyY2VTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc291cmNlU3Vic2NyaXB0aW9uLnN1YnNjcmlwdGlvbiA9IHRoaXMuc291cmNlLnRyaWdnZXJlZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd0RpYWxvZygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc291cmNlU3Vic2NyaXB0aW9uLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBfaGFuZGxlRGlhbG9nUmVzdWx0KHJlc3VsdDogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIHRoaXMuc291cmNlLnJlYWR5VmFsdWUodGhpcy5jb25maWc/LnJlYWR5VmFsdWUgYXMgdW5rbm93biBhcyBUKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zb3VyY2UucmVqZWN0KHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbmZpcm0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2FjdGlvbi9hY3Rpb24uY29uZmlybS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUVoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBWXhFOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLHlCQUFvRCxTQUFRLDhCQUE4QjtJQUM1RixNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsbUNBQXlDLENBQUEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLGdCQUFnQixHQUFHLEtBQUssRUFBNkIsQ0FBQztJQUU5QyxtQkFBbUIsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFFaEUsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1RSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRWtCLG1CQUFtQixDQUFDLE1BQWU7UUFDcEQsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFVBQTBCLENBQUMsQ0FBQztRQUM5RSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO3dHQXpCVSx5QkFBeUI7NEZBQXpCLHlCQUF5Qjs7NEZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFByb21wdENvbmZpcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9pbnRlcmFjdGlvbi9wcm9tcHQvcHJvbXB0LmNvbmZpcm0uZGlyZWN0aXZlJztcbmltcG9ydCB7IERieFByb21wdENvbmZpcm1Db25maWcgfSBmcm9tICcuLi9pbnRlcmFjdGlvbi9wcm9tcHQvcHJvbXB0LmNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbk9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2UgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5cbi8qKlxuICogRGJ4QWN0aW9uQ29uZmlybURpcmVjdGl2ZSBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERieEFjdGlvbkNvbmZpcm1Db25maWc8VCA9IHVua25vd24+IGV4dGVuZHMgRGJ4UHJvbXB0Q29uZmlybUNvbmZpZyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IHNldCB0aGUgcmVhZHlWYWx1ZSBwYXNzZWQgdG8gdGhlIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVhZHlWYWx1ZT86IFQ7XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgd2hlbiB0cmlnZ2VyZWQgc2hvd3MgYSBkaWFsb2cgdG8gYWNjZXB0IG9yIHJlamVjdC5cbiAqXG4gKiBUaGlzIG9ubHkgd29ya3MgdG8gcGFzcyBhIHJlYWR5IHZhbHVlIG9yIHJlamVjdCB0aHJvdWdoLCBub3QgdG8gd29yayB3aXRoIGEgYnV0dG9uLlxuICogRm9yIGJ1dHRvbiB1c2FnZSwgdXNlIGFuIGFwcFByb21wdENvbmZpcm1CdXR0b24gZGlyZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uQ29uZmlybV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEFjdGlvbkNvbmZpcm1EaXJlY3RpdmU8VCA9IHVua25vd24sIE8gPSB1bmtub3duPiBleHRlbmRzIEFic3RyYWN0UHJvbXB0Q29uZmlybURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc291cmNlID0gaW5qZWN0KERieEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlPFQsIE8+LCB7IGhvc3Q6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgZGJ4QWN0aW9uQ29uZmlybSA9IGlucHV0PERieEFjdGlvbkNvbmZpcm1Db25maWc8VD4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc291cmNlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3NvdXJjZVN1YnNjcmlwdGlvbi5zdWJzY3JpcHRpb24gPSB0aGlzLnNvdXJjZS50cmlnZ2VyZWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dEaWFsb2coKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3NvdXJjZVN1YnNjcmlwdGlvbi5kZXN0cm95KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2hhbmRsZURpYWxvZ1Jlc3VsdChyZXN1bHQ6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICB0aGlzLnNvdXJjZS5yZWFkeVZhbHVlKHRoaXMuZGJ4QWN0aW9uQ29uZmlybSgpPy5yZWFkeVZhbHVlIGFzIHVua25vd24gYXMgVCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc291cmNlLnJlamVjdCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,26 +1,22 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import { NgModule } from '@angular/core';
3
- import { MatButtonModule } from '@angular/material/button';
4
- import { MatDialogModule } from '@angular/material/dialog';
5
- import { MatSnackBarModule } from '@angular/material/snack-bar';
6
- import { DbxButtonModule } from '../button/button.module';
7
- // import { DbxErrorModule } from '../error/error.module';
8
2
  import { DbxActionKeyTriggerDirective } from './key.trigger.directive';
9
- import { DbxCoreActionModule } from '@dereekb/dbx-core';
3
+ import { DbxActionButtonDirective, DbxCoreActionModule } from '@dereekb/dbx-core';
10
4
  import { DbxActionConfirmDirective } from './action.confirm.directive';
11
- import { DbxPromptModule } from '../interaction/prompt/prompt.module';
12
5
  import * as i0 from "@angular/core";
6
+ const importsAndExports = [DbxCoreActionModule, DbxActionButtonDirective, DbxActionKeyTriggerDirective, DbxActionConfirmDirective];
7
+ /**
8
+ * Provides all base dbxAction-related components from both @dereekb/core and @dereekb/web.
9
+ */
13
10
  export class DbxActionModule {
14
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxActionModule, declarations: [DbxActionKeyTriggerDirective, DbxActionConfirmDirective], imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule], exports: [DbxCoreActionModule, DbxActionKeyTriggerDirective, DbxActionConfirmDirective] });
16
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionModule, imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule, DbxCoreActionModule] });
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxActionModule, imports: [DbxCoreActionModule, DbxActionButtonDirective, DbxActionKeyTriggerDirective, DbxActionConfirmDirective], exports: [DbxCoreActionModule, DbxActionButtonDirective, DbxActionKeyTriggerDirective, DbxActionConfirmDirective] });
13
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionModule, imports: [DbxCoreActionModule, DbxCoreActionModule] });
17
14
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionModule, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionModule, decorators: [{
19
16
  type: NgModule,
20
17
  args: [{
21
- imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule],
22
- declarations: [DbxActionKeyTriggerDirective, DbxActionConfirmDirective],
23
- exports: [DbxCoreActionModule, DbxActionKeyTriggerDirective, DbxActionConfirmDirective]
18
+ imports: importsAndExports,
19
+ exports: importsAndExports
24
20
  }]
25
21
  }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9hY3Rpb24vYWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCwwREFBMEQ7QUFDMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQU90RSxNQUFNLE9BQU8sZUFBZTt3R0FBZixlQUFlO3lHQUFmLGVBQWUsaUJBSFgsNEJBQTRCLEVBQUUseUJBQXlCLGFBRDVELFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLGFBRXhILG1CQUFtQixFQUFFLDRCQUE0QixFQUFFLHlCQUF5Qjt5R0FFM0UsZUFBZSxZQUpoQixZQUFZLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUV4SCxtQkFBbUI7OzRGQUVsQixlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7b0JBQ25JLFlBQVksRUFBRSxDQUFDLDRCQUE0QixFQUFFLHlCQUF5QixDQUFDO29CQUN2RSxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsQ0FBQztpQkFDeEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgRGJ4QnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuLy8gaW1wb3J0IHsgRGJ4RXJyb3JNb2R1bGUgfSBmcm9tICcuLi9lcnJvci9lcnJvci5tb2R1bGUnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uS2V5VHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4va2V5LnRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IERieENvcmVBY3Rpb25Nb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Db25maXJtRGlyZWN0aXZlIH0gZnJvbSAnLi9hY3Rpb24uY29uZmlybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4UHJvbXB0TW9kdWxlIH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vcHJvbXB0L3Byb21wdC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEYnhDb3JlQWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIE1hdFNuYWNrQmFyTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgRGJ4UHJvbXB0TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbRGJ4QWN0aW9uS2V5VHJpZ2dlckRpcmVjdGl2ZSwgRGJ4QWN0aW9uQ29uZmlybURpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtEYnhDb3JlQWN0aW9uTW9kdWxlLCBEYnhBY3Rpb25LZXlUcmlnZ2VyRGlyZWN0aXZlLCBEYnhBY3Rpb25Db25maXJtRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhBY3Rpb25Nb2R1bGUge31cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9hY3Rpb24vYWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUV2RSxNQUFNLGlCQUFpQixHQUFHLENBQUMsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsNEJBQTRCLEVBQUUseUJBQXlCLENBQUMsQ0FBQztBQUVuSTs7R0FFRztBQUtILE1BQU0sT0FBTyxlQUFlO3dHQUFmLGVBQWU7eUdBQWYsZUFBZSxZQVRELG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFFLHlCQUF5QixhQUF0RyxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUI7eUdBU3BILGVBQWUsWUFURCxtQkFBbUIsRUFBbkIsbUJBQW1COzs0RkFTakMsZUFBZTtrQkFKM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixPQUFPLEVBQUUsaUJBQWlCO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhBY3Rpb25LZXlUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9rZXkudHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uQnV0dG9uRGlyZWN0aXZlLCBEYnhDb3JlQWN0aW9uTW9kdWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uQ29uZmlybURpcmVjdGl2ZSB9IGZyb20gJy4vYWN0aW9uLmNvbmZpcm0uZGlyZWN0aXZlJztcblxuY29uc3QgaW1wb3J0c0FuZEV4cG9ydHMgPSBbRGJ4Q29yZUFjdGlvbk1vZHVsZSwgRGJ4QWN0aW9uQnV0dG9uRGlyZWN0aXZlLCBEYnhBY3Rpb25LZXlUcmlnZ2VyRGlyZWN0aXZlLCBEYnhBY3Rpb25Db25maXJtRGlyZWN0aXZlXTtcblxuLyoqXG4gKiBQcm92aWRlcyBhbGwgYmFzZSBkYnhBY3Rpb24tcmVsYXRlZCBjb21wb25lbnRzIGZyb20gYm90aCBAZGVyZWVrYi9jb3JlIGFuZCBAZGVyZWVrYi93ZWIuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IGltcG9ydHNBbmRFeHBvcnRzLFxuICBleHBvcnRzOiBpbXBvcnRzQW5kRXhwb3J0c1xufSlcbmV4cG9ydCBjbGFzcyBEYnhBY3Rpb25Nb2R1bGUge31cbiJdfQ==
@@ -18,13 +18,14 @@ export class DbxActionKeyTriggerDirective {
18
18
  this.source.trigger();
19
19
  }
20
20
  }
21
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionKeyTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
22
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxActionKeyTriggerDirective, selector: "[dbxActionKeyTrigger]", inputs: { inputKey: ["dbxActionKeyTrigger", "inputKey"] }, host: { listeners: { "document:keyup": "onKeyupHandler($event)" } }, ngImport: i0 });
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionKeyTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
22
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxActionKeyTriggerDirective, isStandalone: true, selector: "[dbxActionKeyTrigger]", inputs: { inputKey: ["dbxActionKeyTrigger", "inputKey"] }, host: { listeners: { "document:keyup": "onKeyupHandler($event)" } }, ngImport: i0 });
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionKeyTriggerDirective, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionKeyTriggerDirective, decorators: [{
25
25
  type: Directive,
26
26
  args: [{
27
- selector: '[dbxActionKeyTrigger]'
27
+ selector: '[dbxActionKeyTrigger]',
28
+ standalone: true
28
29
  }]
29
30
  }], propDecorators: { inputKey: [{
30
31
  type: Input,
@@ -33,4 +34,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
33
34
  type: HostListener,
34
35
  args: ['document:keyup', ['$event']]
35
36
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2FjdGlvbi9rZXkudHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFeEUsTUFBTSwwQkFBMEIsR0FBRyxPQUFPLENBQUM7QUFFM0M7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyw0QkFBNEI7SUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLG1DQUF5QyxDQUFBLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUdwRixRQUFRLENBQWdCO0lBRXhCLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSwwQkFBMEIsQ0FBQztJQUNyRCxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQW9CO1FBQ2pDLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7d0dBZlUsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBSHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtpQkFDbEM7OEJBS0MsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLHFCQUFxQjtnQkFRNUIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IERieEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuXG5jb25zdCBERUZBVUxUX0FDVElPTl9LRVlfVFJJR0dFUiA9ICdlbnRlcic7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgdHJpZ2dlcnMgdGhlIGFjdGlvbiBvbiBhIHNwZWNpZmljIGtleSB1cCBldmVudC5cbiAqXG4gKiBFdmVudHMvS2V5cyB0byByZXNwb25kIHRvIHNob3VsZCBiZSBsb3dlcmNhc2UuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhBY3Rpb25LZXlUcmlnZ2VyXSdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4QWN0aW9uS2V5VHJpZ2dlckRpcmVjdGl2ZTxUID0gdW5rbm93biwgTyA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgc291cmNlID0gaW5qZWN0KERieEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlPFQsIE8+LCB7IGhvc3Q6IHRydWUgfSk7XG5cbiAgQElucHV0KCdkYnhBY3Rpb25LZXlUcmlnZ2VyJylcbiAgaW5wdXRLZXk6IE1heWJlPHN0cmluZz47XG5cbiAgZ2V0IGtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlucHV0S2V5IHx8IERFRkFVTFRfQUNUSU9OX0tFWV9UUklHR0VSO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAnLCBbJyRldmVudCddKVxuICBvbktleXVwSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgJiYgZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09IHRoaXMua2V5KSB7XG4gICAgICB0aGlzLnNvdXJjZS50cmlnZ2VyKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2FjdGlvbi9rZXkudHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFeEUsTUFBTSwwQkFBMEIsR0FBRyxPQUFPLENBQUM7QUFFM0M7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyw0QkFBNEI7SUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLG1DQUF5QyxDQUFBLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUdwRixRQUFRLENBQWdCO0lBRXhCLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSwwQkFBMEIsQ0FBQztJQUNyRCxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQW9CO1FBQ2pDLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO3dHQWZVLDRCQUE0Qjs0RkFBNUIsNEJBQTRCOzs0RkFBNUIsNEJBQTRCO2tCQUp4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFLQyxRQUFRO3NCQURQLEtBQUs7dUJBQUMscUJBQXFCO2dCQVE1QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2UgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5cbmNvbnN0IERFRkFVTFRfQUNUSU9OX0tFWV9UUklHR0VSID0gJ2VudGVyJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCB0cmlnZ2VycyB0aGUgYWN0aW9uIG9uIGEgc3BlY2lmaWMga2V5IHVwIGV2ZW50LlxuICpcbiAqIEV2ZW50cy9LZXlzIHRvIHJlc3BvbmQgdG8gc2hvdWxkIGJlIGxvd2VyY2FzZS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieEFjdGlvbktleVRyaWdnZXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhBY3Rpb25LZXlUcmlnZ2VyRGlyZWN0aXZlPFQgPSB1bmtub3duLCBPID0gdW5rbm93bj4ge1xuICByZWFkb25seSBzb3VyY2UgPSBpbmplY3QoRGJ4QWN0aW9uQ29udGV4dFN0b3JlU291cmNlSW5zdGFuY2U8VCwgTz4sIHsgaG9zdDogdHJ1ZSB9KTtcblxuICBASW5wdXQoJ2RieEFjdGlvbktleVRyaWdnZXInKVxuICBpbnB1dEtleTogTWF5YmU8c3RyaW5nPjtcblxuICBnZXQga2V5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRLZXkgfHwgREVGQVVMVF9BQ1RJT05fS0VZX1RSSUdHRVI7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5dXBIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSAmJiBldmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gdGhpcy5rZXkpIHtcbiAgICAgIHRoaXMuc291cmNlLnRyaWdnZXIoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,30 +1,33 @@
1
- import { Component, inject } from '@angular/core';
1
+ import { Component, inject, computed, ChangeDetectionStrategy } from '@angular/core';
2
2
  import { filterMaybe, LoadingStateType } from '@dereekb/rxjs';
3
- import { distinctUntilChanged, shareReplay, BehaviorSubject, switchMap, startWith, Subject, of, filter, map } from 'rxjs';
3
+ import { shareReplay, switchMap, startWith, Subject, of, filter, map } from 'rxjs';
4
4
  import { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
5
5
  import { MS_IN_SECOND } from '@dereekb/util';
6
- import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
6
+ import { AbstractSubscriptionDirective, DbxActionDirective, DbxActionValueStreamDirective, DbxActionSourceDirective, DbxActionSuccessHandlerDirective } from '@dereekb/dbx-core';
7
+ import { NgClass } from '@angular/common';
8
+ import { DbxButtonComponent } from '../../button/button.component';
9
+ import { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';
10
+ import { toSignal } from '@angular/core/rxjs-interop';
11
+ import { DbxSpacerDirective } from '../../layout/style/spacer.directive';
7
12
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/common";
9
- import * as i2 from "../../layout/style/spacer.directive";
10
- import * as i3 from "@dereekb/dbx-core";
11
- import * as i4 from "../../button/button.component";
12
- import * as i5 from "../../button/button.spacer.component";
13
13
  /**
14
14
  * Component for a snackbar that contains an action.
15
15
  */
16
16
  export class DbxActionSnackbarComponent extends AbstractSubscriptionDirective {
17
17
  snackbarRef = inject((MatSnackBarRef));
18
- data = inject(MAT_SNACK_BAR_DATA);
18
+ snackbarData = inject(MAT_SNACK_BAR_DATA);
19
19
  _durationTimeout = new Subject();
20
- _actionRef = new BehaviorSubject(this.data.action?.reference);
21
- value$ = of(0); // value passed to the action.
22
- sourceInstance$ = this._actionRef.pipe(filterMaybe(), map((x) => x?.sourceInstance));
20
+ _actionRef = this.snackbarData.action?.reference;
21
+ sourceInstance$ = of(this._actionRef).pipe(filterMaybe(), map((x) => x?.sourceInstance));
23
22
  complete$ = this.sourceInstance$.pipe(switchMap((x) => x.isSuccess$), startWith(false), shareReplay(1));
24
23
  loadingStateType$ = this.sourceInstance$.pipe(switchMap((x) => x.loadingStateType$), startWith(LoadingStateType.IDLE), shareReplay(1));
25
- snackbarStatusClass$ = this.loadingStateType$.pipe(map((x) => {
24
+ sourceInstanceSignal = toSignal(this.sourceInstance$);
25
+ completeSignal = toSignal(this.complete$);
26
+ loadingStateTypeSignal = toSignal(this.loadingStateType$);
27
+ snackbarStatusClassSignal = computed(() => {
26
28
  let classes = 'dbx-action-snackbar-';
27
- switch (x) {
29
+ const loadingStateType = this.loadingStateTypeSignal();
30
+ switch (loadingStateType) {
28
31
  case LoadingStateType.ERROR:
29
32
  classes += 'error';
30
33
  break;
@@ -36,20 +39,12 @@ export class DbxActionSnackbarComponent extends AbstractSubscriptionDirective {
36
39
  break;
37
40
  }
38
41
  return classes;
39
- }), distinctUntilChanged(), shareReplay(1));
40
- button = this.data.action?.button ?? this.data.button;
41
- get action() {
42
- return this.data.action;
43
- }
44
- get hasAction() {
45
- return Boolean(this._actionRef.value);
46
- }
47
- get message() {
48
- return this.data.message;
49
- }
50
- get actionConfig() {
51
- return this.data.action;
52
- }
42
+ });
43
+ button = this.snackbarData.action?.button ?? this.snackbarData.button;
44
+ action = this.snackbarData.action;
45
+ hasAction = Boolean(this.action?.reference);
46
+ message = this.snackbarData.message;
47
+ actionConfig = this.snackbarData.action;
53
48
  ngOnInit() {
54
49
  // Subscribe and close if the duration is up and the action state is idle.
55
50
  this.sub = this._durationTimeout
@@ -60,8 +55,6 @@ export class DbxActionSnackbarComponent extends AbstractSubscriptionDirective {
60
55
  }
61
56
  ngOnDestroy() {
62
57
  super.ngOnDestroy();
63
- this._actionRef.value?.destroy();
64
- this._actionRef.complete();
65
58
  this._durationTimeout.complete();
66
59
  }
67
60
  ngAfterViewInit() {
@@ -69,7 +62,7 @@ export class DbxActionSnackbarComponent extends AbstractSubscriptionDirective {
69
62
  if (this.hasAction) {
70
63
  setTimeout(() => {
71
64
  this._durationTimeout.next();
72
- }, this.action?.duration ?? MS_IN_SECOND * 10);
65
+ }, this.snackbarData.action?.duration ?? MS_IN_SECOND * 10);
73
66
  }
74
67
  }
75
68
  dismissAfterActionCompletes = () => {
@@ -78,11 +71,11 @@ export class DbxActionSnackbarComponent extends AbstractSubscriptionDirective {
78
71
  dismiss = () => {
79
72
  this.snackbarRef.dismiss();
80
73
  };
81
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionSnackbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
82
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxActionSnackbarComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-action-snackbar\" [ngClass]=\"(snackbarStatusClass$ | async)!\">\n <ng-container [ngSwitch]=\"complete$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <dbx-spacer></dbx-spacer>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n <ng-container *ngIf=\"hasAction\">\n <dbx-action [dbxActionValueStream]=\"value$\" [dbxActionSource]=\"sourceInstance$ | async\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.DbxSpacerDirective, selector: "dbx-spacer, [dbxSpacer]" }, { kind: "directive", type: i3.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i3.DbxActionSourceDirective, selector: "[dbxActionSource]", inputs: ["dbxActionSource"] }, { kind: "directive", type: i3.dbxActionValueStreamDirective, selector: "[dbxActionValueStream]", inputs: ["dbxActionValueStream", "dbxActionValueStreamIsNotEmpty", "dbxActionValueStreamModified"] }, { kind: "directive", type: i3.DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { kind: "directive", type: i3.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: i4.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "basic", "raised", "stroked", "flat", "iconOnly", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
74
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionSnackbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
75
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxActionSnackbarComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-action-snackbar\" [ngClass]=\"snackbarStatusClassSignal()\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n @switch (completeSignal()) {\n @case (true) {\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n }\n @case (false) {\n @if (hasAction) {\n <dbx-action dbxActionValue [dbxActionSource]=\"sourceInstanceSignal()\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: DbxActionSourceDirective, selector: "[dbxActionSource]", inputs: ["dbxActionSource"] }, { kind: "directive", type: DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "directive", type: DbxSpacerDirective, selector: "dbx-spacer, [dbxSpacer]" }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
83
76
  }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionSnackbarComponent, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionSnackbarComponent, decorators: [{
85
78
  type: Component,
86
- args: [{ template: "<div class=\"dbx-action-snackbar\" [ngClass]=\"(snackbarStatusClass$ | async)!\">\n <ng-container [ngSwitch]=\"complete$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <dbx-spacer></dbx-spacer>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n <ng-container *ngIf=\"hasAction\">\n <dbx-action [dbxActionValueStream]=\"value$\" [dbxActionSource]=\"sourceInstance$ | async\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n </ng-container>\n </ng-container>\n</div>\n" }]
79
+ args: [{ standalone: true, imports: [NgClass, DbxActionSourceDirective, DbxActionSuccessHandlerDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxSpacerDirective, DbxActionDirective, DbxActionValueStreamDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"dbx-action-snackbar\" [ngClass]=\"snackbarStatusClassSignal()\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n @switch (completeSignal()) {\n @case (true) {\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n }\n @case (false) {\n @if (hasAction) {\n <dbx-action dbxActionValue [dbxActionSource]=\"sourceInstanceSignal()\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n }\n }\n</div>\n" }]
87
80
  }] });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnNuYWNrYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9hY3Rpb24vc25hY2tiYXIvYWN0aW9uLnNuYWNrYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9hY3Rpb24vc25hY2tiYXIvYWN0aW9uLnNuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQTRCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBYyxXQUFXLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBbUMsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQUVuRzs7R0FFRztBQUlILE1BQU0sT0FBTywwQkFBMkIsU0FBUSw2QkFBNkI7SUFDbEUsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLGNBQTBDLENBQUEsQ0FBQyxDQUFDO0lBQ2pFLElBQUksR0FBRyxNQUFNLENBQWlDLGtCQUFrQixDQUFDLENBQUM7SUFFMUQsZ0JBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUN2QyxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQXlDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFB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QUFlO1FBQ2IscURBQXFEO1FBQ3JELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVELDJCQUEyQixHQUFHLEdBQVMsRUFBRTtRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQyxDQUFDO0lBRUYsT0FBTyxHQUFHLEdBQVMsRUFBRTtRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUMsQ0FBQzt3R0FoR1MsMEJBQTBCOzRGQUExQiwwQkFBMEIsMkVDZHZDLGk5QkFtQkE7OzRGRExhLDBCQUEwQjtrQkFIdEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIExvYWRpbmdTdGF0ZVR5cGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgQmVoYXZpb3JTdWJqZWN0LCBzd2l0Y2hNYXAsIHN0YXJ0V2l0aCwgU3ViamVjdCwgb2YsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhclJlZiwgTUFUX1NOQUNLX0JBUl9EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1TX0lOX1NFQ09ORCwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uU25hY2tiYXJEaXNwbGF5Q29uZmlnLCBEYnhBY3Rpb25TbmFja2JhckFjdGlvbkNvbmZpZyB9IGZyb20gJy4vYWN0aW9uLnNuYWNrYmFyJztcbmltcG9ydCB7IERieEFjdGlvbkNvbnRleHRTb3VyY2VSZWZlcmVuY2UsIEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgYSBzbmFja2JhciB0aGF0IGNvbnRhaW5zIGFuIGFjdGlvbi5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24uc25hY2tiYXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERieEFjdGlvblNuYWNrYmFyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IHNuYWNrYmFyUmVmID0gaW5qZWN0KE1hdFNuYWNrQmFyUmVmPERieEFjdGlvblNuYWNrYmFyQ29tcG9uZW50Pik7XG4gIHJlYWRvbmx5IGRhdGEgPSBpbmplY3Q8RGJ4QWN0aW9uU25hY2tiYXJEaXNwbGF5Q29uZmlnPihNQVRfU05BQ0tfQkFSX0RBVEEpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2R1cmF0aW9uVGltZW91dCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGlvblJlZiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8RGJ4QWN0aW9uQ29udGV4dFNvdXJjZVJlZmVyZW5jZT4+KHRoaXMuZGF0YS5hY3Rpb24/LnJlZmVyZW5jZSk7XG5cbiAgcmVhZG9ubHkgdmFsdWUkID0gb2YoMCk7IC8vIHZhbHVlIHBhc3NlZCB0byB0aGUgYWN0aW9uLlxuICByZWFkb25seSBzb3VyY2VJbnN0YW5jZSQgPSB0aGlzLl9hY3Rpb25SZWYucGlwZShcbiAgICBmaWx0ZXJNYXliZSgpLFxuICAgIG1hcCgoeCkgPT4geD8uc291cmNlSW5zdGFuY2UpXG4gICk7XG4gIHJlYWRvbmx5IGNvbXBsZXRlJCA9IHRoaXMuc291cmNlSW5zdGFuY2UkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LmlzU3VjY2VzcyQpLFxuICAgIHN0YXJ0V2l0aChmYWxzZSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgbG9hZGluZ1N0YXRlVHlwZSQgPSB0aGlzLnNvdXJjZUluc3RhbmNlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4geC5sb2FkaW5nU3RhdGVUeXBlJCksXG4gICAgc3RhcnRXaXRoKExvYWRpbmdTdGF0ZVR5cGUuSURMRSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgc25hY2tiYXJTdGF0dXNDbGFzcyQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMubG9hZGluZ1N0YXRlVHlwZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGxldCBjbGFzc2VzID0gJ2RieC1hY3Rpb24tc25hY2tiYXItJztcblxuICAgICAgc3dpdGNoICh4KSB7XG4gICAgICAgIGNhc2UgTG9hZGluZ1N0YXRlVHlwZS5FUlJPUjpcbiAgICAgICAgICBjbGFzc2VzICs9ICdlcnJvcic7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgTG9hZGluZ1N0YXRlVHlwZS5TVUNDRVNTOlxuICAgICAgICAgIGNsYXNzZXMgKz0gJ3N1Y2Nlc3MnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNsYXNzZXMgKz0gJ2lkbGUnO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2xhc3NlcztcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uOiBNYXliZTxzdHJpbmc+ID0gdGhpcy5kYXRhLmFjdGlvbj8uYnV0dG9uID8/IHRoaXMuZGF0YS5idXR0b247XG5cbiAgZ2V0IGFjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmFjdGlvbjtcbiAgfVxuXG4gIGdldCBoYXNBY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5fYWN0aW9uUmVmLnZhbHVlKTtcbiAgfVxuXG4gIGdldCBtZXNzYWdlKCk6IE1heWJlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmRhdGEubWVzc2FnZTtcbiAgfVxuXG4gIGdldCBhY3Rpb25Db25maWcoKTogTWF5YmU8RGJ4QWN0aW9uU25hY2tiYXJBY3Rpb25Db25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmFjdGlvbjtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFN1YnNjcmliZSBhbmQgY2xvc2UgaWYgdGhlIGR1cmF0aW9uIGlzIHVwIGFuZCB0aGUgYWN0aW9uIHN0YXRlIGlzIGlkbGUuXG4gICAgdGhpcy5zdWIgPSB0aGlzLl9kdXJhdGlvblRpbWVvdXRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5sb2FkaW5nU3RhdGVUeXBlJCksXG4gICAgICAgIGZpbHRlcigoeCkgPT4geCA9PT0gTG9hZGluZ1N0YXRlVHlwZS5JRExFKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGlzbWlzcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2FjdGlvblJlZi52YWx1ZT8uZGVzdHJveSgpO1xuICAgIHRoaXMuX2FjdGlvblJlZi5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2R1cmF0aW9uVGltZW91dC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vIFJlc3BvbnNpYmxlIGZvciBoaWRpbmcgaXRzZWxmIGlmIGl0IGhhcyBhbiBhY3Rpb24uXG4gICAgaWYgKHRoaXMuaGFzQWN0aW9uKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5fZHVyYXRpb25UaW1lb3V0Lm5leHQoKTtcbiAgICAgIH0sIHRoaXMuYWN0aW9uPy5kdXJhdGlvbiA/PyBNU19JTl9TRUNPTkQgKiAxMCk7XG4gICAgfVxuICB9XG5cbiAgZGlzbWlzc0FmdGVyQWN0aW9uQ29tcGxldGVzID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuc25hY2tiYXJSZWYuX2Rpc21pc3NBZnRlcihNU19JTl9TRUNPTkQgKiAzKTtcbiAgfTtcblxuICBkaXNtaXNzID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuc25hY2tiYXJSZWYuZGlzbWlzcygpO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImRieC1hY3Rpb24tc25hY2tiYXJcIiBbbmdDbGFzc109XCIoc25hY2tiYXJTdGF0dXNDbGFzcyQgfCBhc3luYykhXCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbXBsZXRlJCB8IGFzeW5jXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPlxuICAgICAgPGRieC1zcGFjZXI+PC9kYngtc3BhY2VyPlxuICAgICAgPGRieC1idXR0b24gKGJ1dHRvbkNsaWNrKT1cImRpc21pc3MoKVwiIGNvbG9yPVwiYWNjZW50XCIgaWNvbj1cImRvbmVcIiB0ZXh0PVwiU3VjY2Vzc1wiPjwvZGJ4LWJ1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiPlxuICAgICAgPHNwYW4+e3sgbWVzc2FnZSB9fTwvc3Bhbj5cbiAgICAgIDxkYngtc3BhY2VyPjwvZGJ4LXNwYWNlcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNBY3Rpb25cIj5cbiAgICAgICAgPGRieC1hY3Rpb24gW2RieEFjdGlvblZhbHVlU3RyZWFtXT1cInZhbHVlJFwiIFtkYnhBY3Rpb25Tb3VyY2VdPVwic291cmNlSW5zdGFuY2UkIHwgYXN5bmNcIiBbZGJ4QWN0aW9uU3VjY2Vzc0hhbmRsZXJdPVwiZGlzbWlzc0FmdGVyQWN0aW9uQ29tcGxldGVzXCI+XG4gICAgICAgICAgPGRieC1idXR0b24gZGJ4QWN0aW9uQnV0dG9uIGNvbG9yPVwid2FyblwiIFt0ZXh0XT1cImJ1dHRvblwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgICAgPC9kYngtYWN0aW9uPlxuICAgICAgICA8ZGJ4LWJ1dHRvbi1zcGFjZXI+PC9kYngtYnV0dG9uLXNwYWNlcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGRieC1idXR0b24gKGJ1dHRvbkNsaWNrKT1cImRpc21pc3MoKVwiIGNvbG9yPVwiYWNjZW50XCIgaWNvbj1cImNsb3NlXCI+PC9kYngtYnV0dG9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLnNuYWNrYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9hY3Rpb24vc25hY2tiYXIvYWN0aW9uLnNuYWNrYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9hY3Rpb24vc25hY2tiYXIvYWN0aW9uLnNuYWNrYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxTQUFTLEVBQTRCLE1BQU0sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSw2QkFBNkIsRUFBbUMsd0JBQXdCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsTixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxr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cnQgeyBPbkluaXQsIENvbXBvbmVudCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBpbmplY3QsIGNvbXB1dGVkLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyTWF5YmUsIExvYWRpbmdTdGF0ZVR5cGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHN0YXJ0V2l0aCwgU3ViamVjdCwgb2YsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhclJlZiwgTUFUX1NOQUNLX0JBUl9EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IE1TX0lOX1NFQ09ORCwgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uU25hY2tiYXJEaXNwbGF5Q29uZmlnLCBEYnhBY3Rpb25TbmFja2JhckFjdGlvbkNvbmZpZyB9IGZyb20gJy4vYWN0aW9uLnNuYWNrYmFyJztcbmltcG9ydCB7IEFic3RyYWN0U3Vic2NyaXB0aW9uRGlyZWN0aXZlLCBEYnhBY3Rpb25EaXJlY3RpdmUsIERieEFjdGlvblZhbHVlU3RyZWFtRGlyZWN0aXZlLCBEYnhBY3Rpb25TdWNjZXNzSGFuZGxlckZ1bmN0aW9uLCBEYnhBY3Rpb25Tb3VyY2VEaXJlY3RpdmUsIERieEFjdGlvblN1Y2Nlc3NIYW5kbGVyRGlyZWN0aXZlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhCdXR0b25TcGFjZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9idXR0b24vYnV0dG9uLnNwYWNlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBEYnhTcGFjZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9sYXlvdXQvc3R5bGUvc3BhY2VyLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBhIHNuYWNrYmFyIHRoYXQgY29udGFpbnMgYW4gYWN0aW9uLlxuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi5zbmFja2Jhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBEYnhBY3Rpb25Tb3VyY2VEaXJlY3RpdmUsIERieEFjdGlvblN1Y2Nlc3NIYW5kbGVyRGlyZWN0aXZlLCBEYnhCdXR0b25Db21wb25lbnQsIERieEJ1dHRvblNwYWNlckRpcmVjdGl2ZSwgRGJ4U3BhY2VyRGlyZWN0aXZlLCBEYnhBY3Rpb25EaXJlY3RpdmUsIERieEFjdGlvblZhbHVlU3RyZWFtRGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGJ4QWN0aW9uU25hY2tiYXJDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc25hY2tiYXJSZWYgPSBpbmplY3QoTWF0U25hY2tCYXJSZWY8RGJ4QWN0aW9uU25hY2tiYXJDb21wb25lbnQ+KTtcbiAgcmVhZG9ubHkgc25hY2tiYXJEYXRhID0gaW5qZWN0PERieEFjdGlvblNuYWNrYmFyRGlzcGxheUNvbmZpZz4oTUFUX1NOQUNLX0JBUl9EQVRBKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kdXJhdGlvblRpbWVvdXQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3Rpb25SZWYgPSB0aGlzLnNuYWNrYmFyRGF0YS5hY3Rpb24/LnJlZmVyZW5jZTtcblxuICByZWFkb25seSBzb3VyY2VJbnN0YW5jZSQgPSBvZih0aGlzLl9hY3Rpb25SZWYpLnBpcGUoXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBtYXAoKHgpID0+IHg/LnNvdXJjZUluc3RhbmNlKVxuICApO1xuXG4gIHJlYWRvbmx5IGNvbXBsZXRlJCA9IHRoaXMuc291cmNlSW5zdGFuY2UkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LmlzU3VjY2VzcyQpLFxuICAgIHN0YXJ0V2l0aChmYWxzZSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBsb2FkaW5nU3RhdGVUeXBlJCA9IHRoaXMuc291cmNlSW5zdGFuY2UkLnBpcGUoXG4gICAgc3dpdGNoTWFwKCh4KSA9PiB4LmxvYWRpbmdTdGF0ZVR5cGUkKSxcbiAgICBzdGFydFdpdGgoTG9hZGluZ1N0YXRlVHlwZS5JRExFKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNvdXJjZUluc3RhbmNlU2lnbmFsID0gdG9TaWduYWwodGhpcy5zb3VyY2VJbnN0YW5jZSQpO1xuICByZWFkb25seSBjb21wbGV0ZVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuY29tcGxldGUkKTtcbiAgcmVhZG9ubHkgbG9hZGluZ1N0YXRlVHlwZVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMubG9hZGluZ1N0YXRlVHlwZSQpO1xuICByZWFkb25seSBzbmFja2JhclN0YXR1c0NsYXNzU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGxldCBjbGFzc2VzID0gJ2RieC1hY3Rpb24tc25hY2tiYXItJztcbiAgICBjb25zdCBsb2FkaW5nU3RhdGVUeXBlID0gdGhpcy5sb2FkaW5nU3RhdGVUeXBlU2lnbmFsKCk7XG5cbiAgICBzd2l0Y2ggKGxvYWRpbmdTdGF0ZVR5cGUpIHtcbiAgICAgIGNhc2UgTG9hZGluZ1N0YXRlVHlwZS5FUlJPUjpcbiAgICAgICAgY2xhc3NlcyArPSAnZXJyb3InO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTG9hZGluZ1N0YXRlVHlwZS5TVUNDRVNTOlxuICAgICAgICBjbGFzc2VzICs9ICdzdWNjZXNzJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjbGFzc2VzICs9ICdpZGxlJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsYXNzZXM7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGJ1dHRvbjogTWF5YmU8c3RyaW5nPiA9IHRoaXMuc25hY2tiYXJEYXRhLmFjdGlvbj8uYnV0dG9uID8/IHRoaXMuc25hY2tiYXJEYXRhLmJ1dHRvbjtcbiAgcmVhZG9ubHkgYWN0aW9uOiBNYXliZTxEYnhBY3Rpb25TbmFja2JhckFjdGlvbkNvbmZpZz4gPSB0aGlzLnNuYWNrYmFyRGF0YS5hY3Rpb247XG4gIHJlYWRvbmx5IGhhc0FjdGlvbjogYm9vbGVhbiA9IEJvb2xlYW4odGhpcy5hY3Rpb24/LnJlZmVyZW5jZSk7XG4gIHJlYWRvbmx5IG1lc3NhZ2U6IE1heWJlPHN0cmluZz4gPSB0aGlzLnNuYWNrYmFyRGF0YS5tZXNzYWdlO1xuICByZWFkb25seSBhY3Rpb25Db25maWc6IE1heWJlPERieEFjdGlvblNuYWNrYmFyQWN0aW9uQ29uZmlnPiA9IHRoaXMuc25hY2tiYXJEYXRhLmFjdGlvbjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBTdWJzY3JpYmUgYW5kIGNsb3NlIGlmIHRoZSBkdXJhdGlvbiBpcyB1cCBhbmQgdGhlIGFjdGlvbiBzdGF0ZSBpcyBpZGxlLlxuICAgIHRoaXMuc3ViID0gdGhpcy5fZHVyYXRpb25UaW1lb3V0XG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZGluZ1N0YXRlVHlwZSQpLFxuICAgICAgICBmaWx0ZXIoKHgpID0+IHggPT09IExvYWRpbmdTdGF0ZVR5cGUuSURMRSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmRpc21pc3MoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9kdXJhdGlvblRpbWVvdXQuY29tcGxldGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBSZXNwb25zaWJsZSBmb3IgaGlkaW5nIGl0c2VsZiBpZiBpdCBoYXMgYW4gYWN0aW9uLlxuICAgIGlmICh0aGlzLmhhc0FjdGlvbikge1xuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2R1cmF0aW9uVGltZW91dC5uZXh0KCk7XG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuc25hY2tiYXJEYXRhLmFjdGlvbj8uZHVyYXRpb24gPz8gTVNfSU5fU0VDT05EICogMTBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZGlzbWlzc0FmdGVyQWN0aW9uQ29tcGxldGVzOiBEYnhBY3Rpb25TdWNjZXNzSGFuZGxlckZ1bmN0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuc25hY2tiYXJSZWYuX2Rpc21pc3NBZnRlcihNU19JTl9TRUNPTkQgKiAzKTtcbiAgfTtcblxuICBkaXNtaXNzID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuc25hY2tiYXJSZWYuZGlzbWlzcygpO1xuICB9O1xufVxuIiwiPGRpdiBjbGFzcz1cImRieC1hY3Rpb24tc25hY2tiYXJcIiBbbmdDbGFzc109XCJzbmFja2JhclN0YXR1c0NsYXNzU2lnbmFsKClcIj5cbiAgPHNwYW4+e3sgbWVzc2FnZSB9fTwvc3Bhbj5cbiAgPGRieC1zcGFjZXI+PC9kYngtc3BhY2VyPlxuICBAc3dpdGNoIChjb21wbGV0ZVNpZ25hbCgpKSB7XG4gICAgQGNhc2UgKHRydWUpIHtcbiAgICAgIDxkYngtYnV0dG9uIChidXR0b25DbGljayk9XCJkaXNtaXNzKClcIiBjb2xvcj1cImFjY2VudFwiIGljb249XCJkb25lXCIgdGV4dD1cIlN1Y2Nlc3NcIj48L2RieC1idXR0b24+XG4gICAgfVxuICAgIEBjYXNlIChmYWxzZSkge1xuICAgICAgQGlmIChoYXNBY3Rpb24pIHtcbiAgICAgICAgPGRieC1hY3Rpb24gZGJ4QWN0aW9uVmFsdWUgW2RieEFjdGlvblNvdXJjZV09XCJzb3VyY2VJbnN0YW5jZVNpZ25hbCgpXCIgW2RieEFjdGlvblN1Y2Nlc3NIYW5kbGVyXT1cImRpc21pc3NBZnRlckFjdGlvbkNvbXBsZXRlc1wiPlxuICAgICAgICAgIDxkYngtYnV0dG9uIGRieEFjdGlvbkJ1dHRvbiBjb2xvcj1cIndhcm5cIiBbdGV4dF09XCJidXR0b25cIj48L2RieC1idXR0b24+XG4gICAgICAgIDwvZGJ4LWFjdGlvbj5cbiAgICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgICB9XG4gICAgICA8ZGJ4LWJ1dHRvbiAoYnV0dG9uQ2xpY2spPVwiZGlzbWlzcygpXCIgY29sb3I9XCJhY2NlbnRcIiBpY29uPVwiY2xvc2VcIj48L2RieC1idXR0b24+XG4gICAgfVxuICB9XG48L2Rpdj5cbiJdfQ==