valtech-components 2.0.820 → 2.0.821

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 (817) hide show
  1. package/fesm2022/valtech-components.mjs +1 -1
  2. package/fesm2022/valtech-components.mjs.map +1 -1
  3. package/package.json +1 -1
  4. package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +0 -94
  5. package/esm2022/lib/components/atoms/avatar/types.mjs +0 -2
  6. package/esm2022/lib/components/atoms/box/box.component.mjs +0 -88
  7. package/esm2022/lib/components/atoms/box/types.mjs +0 -2
  8. package/esm2022/lib/components/atoms/button/button.component.mjs +0 -174
  9. package/esm2022/lib/components/atoms/button/factory.mjs +0 -217
  10. package/esm2022/lib/components/atoms/container/container.component.mjs +0 -52
  11. package/esm2022/lib/components/atoms/container/types.mjs +0 -2
  12. package/esm2022/lib/components/atoms/countdown/countdown.component.mjs +0 -340
  13. package/esm2022/lib/components/atoms/countdown/types.mjs +0 -27
  14. package/esm2022/lib/components/atoms/display/display.component.mjs +0 -51
  15. package/esm2022/lib/components/atoms/display/types.mjs +0 -2
  16. package/esm2022/lib/components/atoms/divider/divider.component.mjs +0 -27
  17. package/esm2022/lib/components/atoms/divider/types.mjs +0 -2
  18. package/esm2022/lib/components/atoms/fab/fab.component.mjs +0 -190
  19. package/esm2022/lib/components/atoms/fab/types.mjs +0 -2
  20. package/esm2022/lib/components/atoms/glass/glass.component.mjs +0 -125
  21. package/esm2022/lib/components/atoms/glass/types.mjs +0 -2
  22. package/esm2022/lib/components/atoms/glow/glow.component.mjs +0 -95
  23. package/esm2022/lib/components/atoms/glow/types.mjs +0 -2
  24. package/esm2022/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.mjs +0 -82
  25. package/esm2022/lib/components/atoms/horizontal-scroll/types.mjs +0 -2
  26. package/esm2022/lib/components/atoms/href/href.component.mjs +0 -62
  27. package/esm2022/lib/components/atoms/href/types.mjs +0 -2
  28. package/esm2022/lib/components/atoms/icon/icon.component.mjs +0 -29
  29. package/esm2022/lib/components/atoms/icon/types.mjs +0 -2
  30. package/esm2022/lib/components/atoms/image/image.component.mjs +0 -507
  31. package/esm2022/lib/components/atoms/image/types.mjs +0 -2
  32. package/esm2022/lib/components/atoms/pattern/motifs.mjs +0 -147
  33. package/esm2022/lib/components/atoms/pattern/pattern.component.mjs +0 -178
  34. package/esm2022/lib/components/atoms/pattern/types.mjs +0 -2
  35. package/esm2022/lib/components/atoms/price-tag/price-tag.component.mjs +0 -235
  36. package/esm2022/lib/components/atoms/price-tag/types.mjs +0 -15
  37. package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +0 -91
  38. package/esm2022/lib/components/atoms/progress-bar/types.mjs +0 -2
  39. package/esm2022/lib/components/atoms/progress-ring/progress-ring.component.mjs +0 -149
  40. package/esm2022/lib/components/atoms/progress-ring/types.mjs +0 -2
  41. package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +0 -394
  42. package/esm2022/lib/components/atoms/qr-code/types.mjs +0 -2
  43. package/esm2022/lib/components/atoms/rights-footer/rights-footer.component.mjs +0 -108
  44. package/esm2022/lib/components/atoms/rights-footer/types.mjs +0 -2
  45. package/esm2022/lib/components/atoms/skeleton/skeleton.component.mjs +0 -193
  46. package/esm2022/lib/components/atoms/skeleton/types.mjs +0 -13
  47. package/esm2022/lib/components/atoms/text/text.component.mjs +0 -132
  48. package/esm2022/lib/components/atoms/text/types.mjs +0 -2
  49. package/esm2022/lib/components/atoms/title/title.component.mjs +0 -68
  50. package/esm2022/lib/components/atoms/title/types.mjs +0 -22
  51. package/esm2022/lib/components/atoms/user-avatar/types.mjs +0 -2
  52. package/esm2022/lib/components/atoms/user-avatar/user-avatar.component.mjs +0 -209
  53. package/esm2022/lib/components/molecules/accordion/accordion.component.mjs +0 -120
  54. package/esm2022/lib/components/molecules/accordion/types.mjs +0 -2
  55. package/esm2022/lib/components/molecules/action-card/action-card.component.mjs +0 -273
  56. package/esm2022/lib/components/molecules/action-card/types.mjs +0 -11
  57. package/esm2022/lib/components/molecules/action-header/action-header.component.mjs +0 -55
  58. package/esm2022/lib/components/molecules/action-header/types.mjs +0 -2
  59. package/esm2022/lib/components/molecules/ad-slot/ad-slot.component.mjs +0 -274
  60. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +0 -119
  61. package/esm2022/lib/components/molecules/alert-box/types.mjs +0 -2
  62. package/esm2022/lib/components/molecules/breadcrumb/breadcrumb.component.mjs +0 -130
  63. package/esm2022/lib/components/molecules/breadcrumb/types.mjs +0 -2
  64. package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +0 -63
  65. package/esm2022/lib/components/molecules/button-group/types.mjs +0 -2
  66. package/esm2022/lib/components/molecules/card/card.component.mjs +0 -450
  67. package/esm2022/lib/components/molecules/card/types.mjs +0 -16
  68. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +0 -82
  69. package/esm2022/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.mjs +0 -79
  70. package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +0 -166
  71. package/esm2022/lib/components/molecules/chip-group/types.mjs +0 -2
  72. package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +0 -115
  73. package/esm2022/lib/components/molecules/code-display/types.mjs +0 -2
  74. package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +0 -49
  75. package/esm2022/lib/components/molecules/command-display/types.mjs +0 -2
  76. package/esm2022/lib/components/molecules/comment/comment.component.mjs +0 -618
  77. package/esm2022/lib/components/molecules/comment/types.mjs +0 -2
  78. package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +0 -41
  79. package/esm2022/lib/components/molecules/comment-input/types.mjs +0 -2
  80. package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +0 -42
  81. package/esm2022/lib/components/molecules/content-loader/types.mjs +0 -2
  82. package/esm2022/lib/components/molecules/content-reaction/content-reaction.component.mjs +0 -210
  83. package/esm2022/lib/components/molecules/content-reaction/types.mjs +0 -2
  84. package/esm2022/lib/components/molecules/currency-input/currency-input.component.mjs +0 -347
  85. package/esm2022/lib/components/molecules/currency-input/types.mjs +0 -18
  86. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +0 -148
  87. package/esm2022/lib/components/molecules/date-input/types.mjs +0 -2
  88. package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +0 -416
  89. package/esm2022/lib/components/molecules/date-range-input/types.mjs +0 -2
  90. package/esm2022/lib/components/molecules/docs-api-table/docs-api-table.component.mjs +0 -222
  91. package/esm2022/lib/components/molecules/docs-api-table/types.mjs +0 -11
  92. package/esm2022/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.mjs +0 -144
  93. package/esm2022/lib/components/molecules/docs-breadcrumb/types.mjs +0 -2
  94. package/esm2022/lib/components/molecules/docs-callout/docs-callout.component.mjs +0 -60
  95. package/esm2022/lib/components/molecules/docs-code-example/docs-code-example.component.mjs +0 -249
  96. package/esm2022/lib/components/molecules/docs-code-example/types.mjs +0 -2
  97. package/esm2022/lib/components/molecules/docs-nav-links/docs-nav-links.component.mjs +0 -140
  98. package/esm2022/lib/components/molecules/docs-nav-links/types.mjs +0 -2
  99. package/esm2022/lib/components/molecules/docs-search/docs-search.component.mjs +0 -268
  100. package/esm2022/lib/components/molecules/docs-search/types.mjs +0 -2
  101. package/esm2022/lib/components/molecules/docs-section/docs-section.component.mjs +0 -85
  102. package/esm2022/lib/components/molecules/docs-section/types.mjs +0 -2
  103. package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +0 -68
  104. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +0 -77
  105. package/esm2022/lib/components/molecules/expandable-text/types.mjs +0 -2
  106. package/esm2022/lib/components/molecules/features-list/features-list.component.mjs +0 -179
  107. package/esm2022/lib/components/molecules/features-list/types.mjs +0 -11
  108. package/esm2022/lib/components/molecules/feedback-form/feedback-form.component.mjs +0 -354
  109. package/esm2022/lib/components/molecules/feedback-form/types.mjs +0 -2
  110. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +0 -90
  111. package/esm2022/lib/components/molecules/file-input/types.mjs +0 -2
  112. package/esm2022/lib/components/molecules/footer-links/footer-links.component.mjs +0 -391
  113. package/esm2022/lib/components/molecules/footer-links/types.mjs +0 -2
  114. package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +0 -314
  115. package/esm2022/lib/components/molecules/glow-card/types.mjs +0 -11
  116. package/esm2022/lib/components/molecules/hint/hint.component.mjs +0 -90
  117. package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +0 -28
  118. package/esm2022/lib/components/molecules/image-crop/image-crop.component.mjs +0 -174
  119. package/esm2022/lib/components/molecules/image-crop/index.mjs +0 -2
  120. package/esm2022/lib/components/molecules/info/info.component.mjs +0 -49
  121. package/esm2022/lib/components/molecules/info/types.mjs +0 -2
  122. package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +0 -221
  123. package/esm2022/lib/components/molecules/language-selector/types.mjs +0 -2
  124. package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +0 -104
  125. package/esm2022/lib/components/molecules/layered-card/types.mjs +0 -2
  126. package/esm2022/lib/components/molecules/link/link.component.mjs +0 -64
  127. package/esm2022/lib/components/molecules/link/types.mjs +0 -2
  128. package/esm2022/lib/components/molecules/linked-providers/linked-providers.component.mjs +0 -236
  129. package/esm2022/lib/components/molecules/linked-providers/types.mjs +0 -27
  130. package/esm2022/lib/components/molecules/links-accordion/links-accordion.component.mjs +0 -203
  131. package/esm2022/lib/components/molecules/links-accordion/types.mjs +0 -2
  132. package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +0 -51
  133. package/esm2022/lib/components/molecules/links-cake/types.mjs +0 -2
  134. package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +0 -488
  135. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +0 -92
  136. package/esm2022/lib/components/molecules/notes-box/types.mjs +0 -2
  137. package/esm2022/lib/components/molecules/number-from-to/number-from-to.component.mjs +0 -143
  138. package/esm2022/lib/components/molecules/number-from-to/types.mjs +0 -2
  139. package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +0 -34
  140. package/esm2022/lib/components/molecules/number-stepper/number-stepper.component.mjs +0 -379
  141. package/esm2022/lib/components/molecules/number-stepper/types.mjs +0 -2
  142. package/esm2022/lib/components/molecules/page-links/page-links.component.mjs +0 -150
  143. package/esm2022/lib/components/molecules/page-links/types.mjs +0 -2
  144. package/esm2022/lib/components/molecules/pagination/pagination.component.mjs +0 -253
  145. package/esm2022/lib/components/molecules/pagination/types.mjs +0 -2
  146. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +0 -93
  147. package/esm2022/lib/components/molecules/phone-input/phone-input.component.mjs +0 -365
  148. package/esm2022/lib/components/molecules/phone-input/types.mjs +0 -19
  149. package/esm2022/lib/components/molecules/pill/pill.component.mjs +0 -202
  150. package/esm2022/lib/components/molecules/pill/types.mjs +0 -2
  151. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +0 -78
  152. package/esm2022/lib/components/molecules/pin-input/types.mjs +0 -2
  153. package/esm2022/lib/components/molecules/plain-code-box/plain-code-box.component.mjs +0 -82
  154. package/esm2022/lib/components/molecules/plain-code-box/types.mjs +0 -2
  155. package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +0 -188
  156. package/esm2022/lib/components/molecules/popover-selector/types.mjs +0 -2
  157. package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +0 -105
  158. package/esm2022/lib/components/molecules/progress-status/types.mjs +0 -2
  159. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +0 -85
  160. package/esm2022/lib/components/molecules/prompter/types.mjs +0 -2
  161. package/esm2022/lib/components/molecules/quote-box/quote-box.component.mjs +0 -155
  162. package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +0 -52
  163. package/esm2022/lib/components/molecules/range-input/range-input.component.mjs +0 -127
  164. package/esm2022/lib/components/molecules/range-input/types.mjs +0 -2
  165. package/esm2022/lib/components/molecules/rating/rating.component.mjs +0 -166
  166. package/esm2022/lib/components/molecules/rating/types.mjs +0 -2
  167. package/esm2022/lib/components/molecules/refresher/refresher.component.mjs +0 -275
  168. package/esm2022/lib/components/molecules/refresher/types.mjs +0 -15
  169. package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +0 -127
  170. package/esm2022/lib/components/molecules/searchbar/types.mjs +0 -2
  171. package/esm2022/lib/components/molecules/segment-control/segment-control.component.mjs +0 -129
  172. package/esm2022/lib/components/molecules/segment-control/types.mjs +0 -2
  173. package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +0 -148
  174. package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +0 -434
  175. package/esm2022/lib/components/molecules/share-buttons/share-buttons.component.mjs +0 -274
  176. package/esm2022/lib/components/molecules/share-buttons/types.mjs +0 -88
  177. package/esm2022/lib/components/molecules/stats-card/stats-card.component.mjs +0 -211
  178. package/esm2022/lib/components/molecules/stats-card/types.mjs +0 -2
  179. package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +0 -242
  180. package/esm2022/lib/components/molecules/stepper/types.mjs +0 -2
  181. package/esm2022/lib/components/molecules/swipe-carousel/swipe-carousel.component.mjs +0 -206
  182. package/esm2022/lib/components/molecules/swipe-carousel/types.mjs +0 -2
  183. package/esm2022/lib/components/molecules/tabs/tabs.component.mjs +0 -139
  184. package/esm2022/lib/components/molecules/tabs/types.mjs +0 -2
  185. package/esm2022/lib/components/molecules/testimonial-card/testimonial-card.component.mjs +0 -138
  186. package/esm2022/lib/components/molecules/testimonial-card/types.mjs +0 -2
  187. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +0 -77
  188. package/esm2022/lib/components/molecules/textarea-input/textarea-input.component.mjs +0 -213
  189. package/esm2022/lib/components/molecules/textarea-input/types.mjs +0 -2
  190. package/esm2022/lib/components/molecules/timeline/timeline.component.mjs +0 -140
  191. package/esm2022/lib/components/molecules/timeline/types.mjs +0 -2
  192. package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +0 -102
  193. package/esm2022/lib/components/molecules/title-block/types.mjs +0 -2
  194. package/esm2022/lib/components/molecules/toggle-input/toggle-input.component.mjs +0 -93
  195. package/esm2022/lib/components/molecules/toggle-input/types.mjs +0 -2
  196. package/esm2022/lib/components/molecules/update-banner/types.mjs +0 -42
  197. package/esm2022/lib/components/molecules/update-banner/update-banner.component.mjs +0 -243
  198. package/esm2022/lib/components/molecules/username-input/types.mjs +0 -2
  199. package/esm2022/lib/components/molecules/username-input/username-input.component.mjs +0 -295
  200. package/esm2022/lib/components/organisms/article/article.component.mjs +0 -578
  201. package/esm2022/lib/components/organisms/article/types.mjs +0 -183
  202. package/esm2022/lib/components/organisms/avatar-upload/avatar-upload.component.mjs +0 -325
  203. package/esm2022/lib/components/organisms/avatar-upload/types.mjs +0 -15
  204. package/esm2022/lib/components/organisms/banner/banner.component.mjs +0 -111
  205. package/esm2022/lib/components/organisms/banner/types.mjs +0 -2
  206. package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +0 -383
  207. package/esm2022/lib/components/organisms/bottom-nav/types.mjs +0 -19
  208. package/esm2022/lib/components/organisms/cards-carousel/cards-carousel.component.mjs +0 -108
  209. package/esm2022/lib/components/organisms/cards-carousel/types.mjs +0 -2
  210. package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +0 -537
  211. package/esm2022/lib/components/organisms/comment-section/types.mjs +0 -2
  212. package/esm2022/lib/components/organisms/company-footer/company-footer.component.mjs +0 -76
  213. package/esm2022/lib/components/organisms/company-footer/types.mjs +0 -2
  214. package/esm2022/lib/components/organisms/cookie-banner/cookie-banner.component.mjs +0 -199
  215. package/esm2022/lib/components/organisms/cookie-banner/types.mjs +0 -2
  216. package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +0 -1081
  217. package/esm2022/lib/components/organisms/data-table/types.mjs +0 -13
  218. package/esm2022/lib/components/organisms/docs-sidebar/docs-sidebar.component.mjs +0 -290
  219. package/esm2022/lib/components/organisms/docs-sidebar/types.mjs +0 -2
  220. package/esm2022/lib/components/organisms/docs-toc/docs-toc.component.mjs +0 -307
  221. package/esm2022/lib/components/organisms/docs-toc/types.mjs +0 -2
  222. package/esm2022/lib/components/organisms/faq/faq.component.mjs +0 -176
  223. package/esm2022/lib/components/organisms/faq/types.mjs +0 -9
  224. package/esm2022/lib/components/organisms/footer/footer.component.mjs +0 -73
  225. package/esm2022/lib/components/organisms/footer/types.mjs +0 -2
  226. package/esm2022/lib/components/organisms/form/factory.mjs +0 -29
  227. package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +0 -83
  228. package/esm2022/lib/components/organisms/form/form.component.mjs +0 -510
  229. package/esm2022/lib/components/organisms/fun-header/fun-header.component.mjs +0 -225
  230. package/esm2022/lib/components/organisms/fun-header/types.mjs +0 -2
  231. package/esm2022/lib/components/organisms/header/header.component.mjs +0 -51
  232. package/esm2022/lib/components/organisms/header/types.mjs +0 -2
  233. package/esm2022/lib/components/organisms/infinite-list/infinite-list.component.mjs +0 -620
  234. package/esm2022/lib/components/organisms/infinite-list/types.mjs +0 -15
  235. package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +0 -418
  236. package/esm2022/lib/components/organisms/item-list/types.mjs +0 -2
  237. package/esm2022/lib/components/organisms/login/login.component.mjs +0 -735
  238. package/esm2022/lib/components/organisms/login/types.mjs +0 -11
  239. package/esm2022/lib/components/organisms/menu/menu.component.mjs +0 -206
  240. package/esm2022/lib/components/organisms/menu/types.mjs +0 -2
  241. package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +0 -66
  242. package/esm2022/lib/components/organisms/no-content/types.mjs +0 -2
  243. package/esm2022/lib/components/organisms/rotating-text/rotating-text.component.mjs +0 -180
  244. package/esm2022/lib/components/organisms/rotating-text/types.mjs +0 -2
  245. package/esm2022/lib/components/organisms/skeleton-layout/skeleton-layout.component.mjs +0 -423
  246. package/esm2022/lib/components/organisms/skeleton-layout/types.mjs +0 -10
  247. package/esm2022/lib/components/organisms/tabbed-content/tabbed-content.component.mjs +0 -170
  248. package/esm2022/lib/components/organisms/tabbed-content/types.mjs +0 -2
  249. package/esm2022/lib/components/organisms/terminal-404/terminal-404.component.mjs +0 -214
  250. package/esm2022/lib/components/organisms/terminal-404/types.mjs +0 -2
  251. package/esm2022/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.mjs +0 -72
  252. package/esm2022/lib/components/organisms/testimonial-carousel/types.mjs +0 -2
  253. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +0 -255
  254. package/esm2022/lib/components/organisms/toolbar/types.mjs +0 -2
  255. package/esm2022/lib/components/organisms/wizard/types.mjs +0 -10
  256. package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +0 -111
  257. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +0 -161
  258. package/esm2022/lib/components/templates/auth-background/auth-background.component.mjs +0 -164
  259. package/esm2022/lib/components/templates/auth-background/types.mjs +0 -2
  260. package/esm2022/lib/components/templates/docs-layout/docs-layout.component.mjs +0 -221
  261. package/esm2022/lib/components/templates/docs-layout/types.mjs +0 -2
  262. package/esm2022/lib/components/templates/docs-page/docs-page.component.mjs +0 -251
  263. package/esm2022/lib/components/templates/docs-page/types.mjs +0 -2
  264. package/esm2022/lib/components/templates/docs-shell/docs-shell.component.mjs +0 -376
  265. package/esm2022/lib/components/templates/docs-shell/types.mjs +0 -2
  266. package/esm2022/lib/components/templates/maintenance-page/maintenance-page.component.mjs +0 -153
  267. package/esm2022/lib/components/templates/maintenance-page/types.mjs +0 -2
  268. package/esm2022/lib/components/templates/page-content/page-content.component.mjs +0 -193
  269. package/esm2022/lib/components/templates/page-content/types.mjs +0 -2
  270. package/esm2022/lib/components/templates/page-template/page-template.component.mjs +0 -188
  271. package/esm2022/lib/components/templates/page-template/types.mjs +0 -2
  272. package/esm2022/lib/components/templates/page-wrapper/page-wrapper.component.mjs +0 -238
  273. package/esm2022/lib/components/templates/page-wrapper/types.mjs +0 -2
  274. package/esm2022/lib/components/templates/simple/simple.component.mjs +0 -123
  275. package/esm2022/lib/components/templates/simple/types.mjs +0 -2
  276. package/esm2022/lib/components/types.mjs +0 -60
  277. package/esm2022/lib/config/company-footer.config.mjs +0 -125
  278. package/esm2022/lib/config/index.mjs +0 -5
  279. package/esm2022/lib/services/ads/ads-loader.service.mjs +0 -120
  280. package/esm2022/lib/services/ads/ads.service.mjs +0 -236
  281. package/esm2022/lib/services/ads/config.mjs +0 -81
  282. package/esm2022/lib/services/ads/index.mjs +0 -13
  283. package/esm2022/lib/services/ads/types.mjs +0 -23
  284. package/esm2022/lib/services/app-config/app-config.service.mjs +0 -209
  285. package/esm2022/lib/services/app-config/config.mjs +0 -47
  286. package/esm2022/lib/services/app-config/index.mjs +0 -48
  287. package/esm2022/lib/services/app-config/types.mjs +0 -13
  288. package/esm2022/lib/services/app-config/version.mjs +0 -85
  289. package/esm2022/lib/services/app-version/app-version.service.mjs +0 -187
  290. package/esm2022/lib/services/app-version/config.mjs +0 -42
  291. package/esm2022/lib/services/app-version/index.mjs +0 -24
  292. package/esm2022/lib/services/app-version/types.mjs +0 -17
  293. package/esm2022/lib/services/auth/auth-state.service.mjs +0 -207
  294. package/esm2022/lib/services/auth/auth.service.mjs +0 -1142
  295. package/esm2022/lib/services/auth/config.mjs +0 -75
  296. package/esm2022/lib/services/auth/device.service.mjs +0 -135
  297. package/esm2022/lib/services/auth/guards.mjs +0 -199
  298. package/esm2022/lib/services/auth/handoff.service.mjs +0 -152
  299. package/esm2022/lib/services/auth/index.mjs +0 -98
  300. package/esm2022/lib/services/auth/interceptor.mjs +0 -122
  301. package/esm2022/lib/services/auth/notification-action.service.mjs +0 -117
  302. package/esm2022/lib/services/auth/oauth-callback.component.mjs +0 -169
  303. package/esm2022/lib/services/auth/oauth.service.mjs +0 -322
  304. package/esm2022/lib/services/auth/org-switch.service.mjs +0 -137
  305. package/esm2022/lib/services/auth/session.service.mjs +0 -78
  306. package/esm2022/lib/services/auth/storage.service.mjs +0 -152
  307. package/esm2022/lib/services/auth/sync.service.mjs +0 -149
  308. package/esm2022/lib/services/auth/token.service.mjs +0 -122
  309. package/esm2022/lib/services/auth/types.mjs +0 -30
  310. package/esm2022/lib/services/confirmation-dialog/confirmation-dialog.service.mjs +0 -189
  311. package/esm2022/lib/services/confirmation-dialog/types.mjs +0 -14
  312. package/esm2022/lib/services/content/content-types/blog.mjs +0 -275
  313. package/esm2022/lib/services/content/content-types/documentation.mjs +0 -303
  314. package/esm2022/lib/services/content/content-types/news.mjs +0 -277
  315. package/esm2022/lib/services/content/index.mjs +0 -51
  316. package/esm2022/lib/services/content/transformer.mjs +0 -265
  317. package/esm2022/lib/services/content/types.mjs +0 -41
  318. package/esm2022/lib/services/docs/docs-navigation.service.mjs +0 -91
  319. package/esm2022/lib/services/donation/config.mjs +0 -41
  320. package/esm2022/lib/services/donation/donation.service.mjs +0 -92
  321. package/esm2022/lib/services/donation/index.mjs +0 -25
  322. package/esm2022/lib/services/donation/types.mjs +0 -10
  323. package/esm2022/lib/services/download.service.mjs +0 -80
  324. package/esm2022/lib/services/feedback/config.mjs +0 -49
  325. package/esm2022/lib/services/feedback/feedback.service.mjs +0 -296
  326. package/esm2022/lib/services/feedback/index.mjs +0 -44
  327. package/esm2022/lib/services/feedback/types.mjs +0 -30
  328. package/esm2022/lib/services/firebase/analytics-error-handler.mjs +0 -141
  329. package/esm2022/lib/services/firebase/analytics-router-tracker.mjs +0 -99
  330. package/esm2022/lib/services/firebase/analytics-types.mjs +0 -7
  331. package/esm2022/lib/services/firebase/analytics.service.mjs +0 -620
  332. package/esm2022/lib/services/firebase/config.mjs +0 -131
  333. package/esm2022/lib/services/firebase/firebase.service.mjs +0 -506
  334. package/esm2022/lib/services/firebase/firestore-collection.mjs +0 -301
  335. package/esm2022/lib/services/firebase/firestore.service.mjs +0 -571
  336. package/esm2022/lib/services/firebase/index.mjs +0 -56
  337. package/esm2022/lib/services/firebase/messaging.service.mjs +0 -721
  338. package/esm2022/lib/services/firebase/notifications.service.mjs +0 -274
  339. package/esm2022/lib/services/firebase/shared-config.mjs +0 -147
  340. package/esm2022/lib/services/firebase/storage.service.mjs +0 -484
  341. package/esm2022/lib/services/firebase/types.mjs +0 -18
  342. package/esm2022/lib/services/firebase/utils/path-builder.mjs +0 -195
  343. package/esm2022/lib/services/firebase/utils/query-builder.mjs +0 -302
  344. package/esm2022/lib/services/i18n/config.mjs +0 -128
  345. package/esm2022/lib/services/i18n/default-content.mjs +0 -577
  346. package/esm2022/lib/services/i18n/i18n.service.mjs +0 -217
  347. package/esm2022/lib/services/i18n/index.mjs +0 -13
  348. package/esm2022/lib/services/i18n/input-i18n.helper.mjs +0 -97
  349. package/esm2022/lib/services/i18n/translate.pipe.mjs +0 -50
  350. package/esm2022/lib/services/i18n/types.mjs +0 -15
  351. package/esm2022/lib/services/icons.service.mjs +0 -83
  352. package/esm2022/lib/services/image/image.service.mjs +0 -244
  353. package/esm2022/lib/services/image/index.mjs +0 -3
  354. package/esm2022/lib/services/image/types.mjs +0 -13
  355. package/esm2022/lib/services/in-app-browser.service.mjs +0 -35
  356. package/esm2022/lib/services/legal-link/legal-link.service.mjs +0 -85
  357. package/esm2022/lib/services/link-processor.service.mjs +0 -259
  358. package/esm2022/lib/services/local-storage.service.mjs +0 -37
  359. package/esm2022/lib/services/locale.service.mjs +0 -75
  360. package/esm2022/lib/services/markdown-article/legal-content.service.mjs +0 -107
  361. package/esm2022/lib/services/markdown-article/markdown-article-parser.mjs +0 -302
  362. package/esm2022/lib/services/markdown-article/markdown-article-parser.service.mjs +0 -20
  363. package/esm2022/lib/services/meta/index.mjs +0 -3
  364. package/esm2022/lib/services/meta/meta.service.mjs +0 -63
  365. package/esm2022/lib/services/meta/types.mjs +0 -2
  366. package/esm2022/lib/services/modal/modal.service.mjs +0 -220
  367. package/esm2022/lib/services/modal/simple-modal-content.component.mjs +0 -133
  368. package/esm2022/lib/services/modal/types.mjs +0 -26
  369. package/esm2022/lib/services/navigation/index.mjs +0 -3
  370. package/esm2022/lib/services/navigation/navigation.service.mjs +0 -216
  371. package/esm2022/lib/services/navigation/types.mjs +0 -16
  372. package/esm2022/lib/services/page-refresh/page-refresh.service.mjs +0 -104
  373. package/esm2022/lib/services/pagination/index.mjs +0 -5
  374. package/esm2022/lib/services/pagination/pagination.service.mjs +0 -218
  375. package/esm2022/lib/services/pagination/types.mjs +0 -14
  376. package/esm2022/lib/services/preferences/index.mjs +0 -3
  377. package/esm2022/lib/services/preferences/preferences.service.mjs +0 -198
  378. package/esm2022/lib/services/preferences/preferences.types.mjs +0 -7
  379. package/esm2022/lib/services/presets/config.mjs +0 -46
  380. package/esm2022/lib/services/presets/index.mjs +0 -5
  381. package/esm2022/lib/services/presets/preset.service.mjs +0 -104
  382. package/esm2022/lib/services/presets/types.mjs +0 -2
  383. package/esm2022/lib/services/qr-generator/qr-generator.service.mjs +0 -341
  384. package/esm2022/lib/services/qr-generator/types.mjs +0 -46
  385. package/esm2022/lib/services/refreshable-stream/index.mjs +0 -8
  386. package/esm2022/lib/services/refreshable-stream/refreshable-stream.mjs +0 -112
  387. package/esm2022/lib/services/skeleton/config.mjs +0 -79
  388. package/esm2022/lib/services/skeleton/directives/loading.directive.mjs +0 -215
  389. package/esm2022/lib/services/skeleton/index.mjs +0 -16
  390. package/esm2022/lib/services/skeleton/skeleton.service.mjs +0 -198
  391. package/esm2022/lib/services/skeleton/templates/detail-skeleton.component.mjs +0 -223
  392. package/esm2022/lib/services/skeleton/templates/form-skeleton.component.mjs +0 -127
  393. package/esm2022/lib/services/skeleton/templates/grid-skeleton.component.mjs +0 -154
  394. package/esm2022/lib/services/skeleton/templates/list-skeleton.component.mjs +0 -110
  395. package/esm2022/lib/services/skeleton/templates/profile-skeleton.component.mjs +0 -207
  396. package/esm2022/lib/services/skeleton/templates/table-skeleton.component.mjs +0 -116
  397. package/esm2022/lib/services/skeleton/types.mjs +0 -11
  398. package/esm2022/lib/services/theme.service.mjs +0 -153
  399. package/esm2022/lib/services/toast.service.mjs +0 -53
  400. package/esm2022/lib/services/types.mjs +0 -5
  401. package/esm2022/lib/shared/constants/storage.mjs +0 -3
  402. package/esm2022/lib/shared/pipes/process-links.pipe.mjs +0 -69
  403. package/esm2022/lib/shared/utils/datetime.mjs +0 -24
  404. package/esm2022/lib/shared/utils/dom.mjs +0 -27
  405. package/esm2022/lib/shared/utils/form-defaults.mjs +0 -112
  406. package/esm2022/lib/shared/utils/styles.mjs +0 -37
  407. package/esm2022/lib/shared/utils/text.mjs +0 -12
  408. package/esm2022/lib/version.mjs +0 -6
  409. package/esm2022/public-api.mjs +0 -367
  410. package/esm2022/valtech-components.mjs +0 -5
  411. package/index.d.ts +0 -5
  412. package/lib/components/atoms/avatar/avatar.component.d.ts +0 -36
  413. package/lib/components/atoms/avatar/types.d.ts +0 -15
  414. package/lib/components/atoms/box/box.component.d.ts +0 -26
  415. package/lib/components/atoms/box/types.d.ts +0 -19
  416. package/lib/components/atoms/button/button.component.d.ts +0 -63
  417. package/lib/components/atoms/button/factory.d.ts +0 -71
  418. package/lib/components/atoms/container/container.component.d.ts +0 -30
  419. package/lib/components/atoms/container/types.d.ts +0 -11
  420. package/lib/components/atoms/countdown/countdown.component.d.ts +0 -38
  421. package/lib/components/atoms/countdown/types.d.ts +0 -108
  422. package/lib/components/atoms/display/display.component.d.ts +0 -19
  423. package/lib/components/atoms/display/types.d.ts +0 -33
  424. package/lib/components/atoms/divider/divider.component.d.ts +0 -27
  425. package/lib/components/atoms/divider/types.d.ts +0 -12
  426. package/lib/components/atoms/fab/fab.component.d.ts +0 -36
  427. package/lib/components/atoms/fab/types.d.ts +0 -45
  428. package/lib/components/atoms/glass/glass.component.d.ts +0 -43
  429. package/lib/components/atoms/glass/types.d.ts +0 -70
  430. package/lib/components/atoms/glow/glow.component.d.ts +0 -42
  431. package/lib/components/atoms/glow/types.d.ts +0 -40
  432. package/lib/components/atoms/horizontal-scroll/horizontal-scroll.component.d.ts +0 -41
  433. package/lib/components/atoms/horizontal-scroll/types.d.ts +0 -13
  434. package/lib/components/atoms/href/href.component.d.ts +0 -25
  435. package/lib/components/atoms/href/types.d.ts +0 -19
  436. package/lib/components/atoms/icon/icon.component.d.ts +0 -18
  437. package/lib/components/atoms/icon/types.d.ts +0 -13
  438. package/lib/components/atoms/image/image.component.d.ts +0 -41
  439. package/lib/components/atoms/image/types.d.ts +0 -37
  440. package/lib/components/atoms/pattern/motifs.d.ts +0 -60
  441. package/lib/components/atoms/pattern/pattern.component.d.ts +0 -68
  442. package/lib/components/atoms/pattern/types.d.ts +0 -61
  443. package/lib/components/atoms/price-tag/price-tag.component.d.ts +0 -15
  444. package/lib/components/atoms/price-tag/types.d.ts +0 -59
  445. package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +0 -35
  446. package/lib/components/atoms/progress-bar/types.d.ts +0 -19
  447. package/lib/components/atoms/progress-ring/progress-ring.component.d.ts +0 -20
  448. package/lib/components/atoms/progress-ring/types.d.ts +0 -24
  449. package/lib/components/atoms/qr-code/qr-code.component.d.ts +0 -33
  450. package/lib/components/atoms/qr-code/types.d.ts +0 -124
  451. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +0 -53
  452. package/lib/components/atoms/rights-footer/types.d.ts +0 -21
  453. package/lib/components/atoms/skeleton/skeleton.component.d.ts +0 -12
  454. package/lib/components/atoms/skeleton/types.d.ts +0 -29
  455. package/lib/components/atoms/text/text.component.d.ts +0 -33
  456. package/lib/components/atoms/text/types.d.ts +0 -42
  457. package/lib/components/atoms/title/title.component.d.ts +0 -21
  458. package/lib/components/atoms/title/types.d.ts +0 -36
  459. package/lib/components/atoms/user-avatar/types.d.ts +0 -74
  460. package/lib/components/atoms/user-avatar/user-avatar.component.d.ts +0 -55
  461. package/lib/components/molecules/accordion/accordion.component.d.ts +0 -18
  462. package/lib/components/molecules/accordion/types.d.ts +0 -47
  463. package/lib/components/molecules/action-card/action-card.component.d.ts +0 -90
  464. package/lib/components/molecules/action-card/types.d.ts +0 -83
  465. package/lib/components/molecules/action-header/action-header.component.d.ts +0 -27
  466. package/lib/components/molecules/action-header/types.d.ts +0 -27
  467. package/lib/components/molecules/ad-slot/ad-slot.component.d.ts +0 -69
  468. package/lib/components/molecules/alert-box/alert-box.component.d.ts +0 -39
  469. package/lib/components/molecules/alert-box/types.d.ts +0 -37
  470. package/lib/components/molecules/breadcrumb/breadcrumb.component.d.ts +0 -22
  471. package/lib/components/molecules/breadcrumb/types.d.ts +0 -45
  472. package/lib/components/molecules/button-group/button-group.component.d.ts +0 -23
  473. package/lib/components/molecules/button-group/types.d.ts +0 -13
  474. package/lib/components/molecules/card/card.component.d.ts +0 -49
  475. package/lib/components/molecules/card/types.d.ts +0 -32
  476. package/lib/components/molecules/check-input/check-input.component.d.ts +0 -36
  477. package/lib/components/molecules/checkbox-radio-input/checkbox-radio-input.component.d.ts +0 -17
  478. package/lib/components/molecules/chip-group/chip-group.component.d.ts +0 -22
  479. package/lib/components/molecules/chip-group/types.d.ts +0 -65
  480. package/lib/components/molecules/code-display/code-display.component.d.ts +0 -24
  481. package/lib/components/molecules/code-display/types.d.ts +0 -10
  482. package/lib/components/molecules/command-display/command-display.component.d.ts +0 -11
  483. package/lib/components/molecules/command-display/types.d.ts +0 -3
  484. package/lib/components/molecules/comment/comment.component.d.ts +0 -42
  485. package/lib/components/molecules/comment/types.d.ts +0 -171
  486. package/lib/components/molecules/comment-input/comment-input.component.d.ts +0 -16
  487. package/lib/components/molecules/comment-input/types.d.ts +0 -59
  488. package/lib/components/molecules/content-loader/content-loader.component.d.ts +0 -18
  489. package/lib/components/molecules/content-loader/types.d.ts +0 -15
  490. package/lib/components/molecules/content-reaction/content-reaction.component.d.ts +0 -58
  491. package/lib/components/molecules/content-reaction/types.d.ts +0 -77
  492. package/lib/components/molecules/currency-input/currency-input.component.d.ts +0 -40
  493. package/lib/components/molecules/currency-input/types.d.ts +0 -96
  494. package/lib/components/molecules/date-input/date-input.component.d.ts +0 -40
  495. package/lib/components/molecules/date-input/types.d.ts +0 -74
  496. package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +0 -50
  497. package/lib/components/molecules/date-range-input/types.d.ts +0 -109
  498. package/lib/components/molecules/docs-api-table/docs-api-table.component.d.ts +0 -41
  499. package/lib/components/molecules/docs-api-table/types.d.ts +0 -62
  500. package/lib/components/molecules/docs-breadcrumb/docs-breadcrumb.component.d.ts +0 -31
  501. package/lib/components/molecules/docs-breadcrumb/types.d.ts +0 -20
  502. package/lib/components/molecules/docs-callout/docs-callout.component.d.ts +0 -17
  503. package/lib/components/molecules/docs-code-example/docs-code-example.component.d.ts +0 -45
  504. package/lib/components/molecules/docs-code-example/types.d.ts +0 -63
  505. package/lib/components/molecules/docs-nav-links/docs-nav-links.component.d.ts +0 -30
  506. package/lib/components/molecules/docs-nav-links/types.d.ts +0 -31
  507. package/lib/components/molecules/docs-search/docs-search.component.d.ts +0 -47
  508. package/lib/components/molecules/docs-search/types.d.ts +0 -27
  509. package/lib/components/molecules/docs-section/docs-section.component.d.ts +0 -29
  510. package/lib/components/molecules/docs-section/types.d.ts +0 -27
  511. package/lib/components/molecules/email-input/email-input.component.d.ts +0 -34
  512. package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +0 -23
  513. package/lib/components/molecules/expandable-text/types.d.ts +0 -14
  514. package/lib/components/molecules/features-list/features-list.component.d.ts +0 -66
  515. package/lib/components/molecules/features-list/types.d.ts +0 -36
  516. package/lib/components/molecules/feedback-form/feedback-form.component.d.ts +0 -58
  517. package/lib/components/molecules/feedback-form/types.d.ts +0 -54
  518. package/lib/components/molecules/file-input/file-input.component.d.ts +0 -25
  519. package/lib/components/molecules/file-input/types.d.ts +0 -72
  520. package/lib/components/molecules/footer-links/footer-links.component.d.ts +0 -47
  521. package/lib/components/molecules/footer-links/types.d.ts +0 -50
  522. package/lib/components/molecules/glow-card/glow-card.component.d.ts +0 -60
  523. package/lib/components/molecules/glow-card/types.d.ts +0 -94
  524. package/lib/components/molecules/hint/hint.component.d.ts +0 -19
  525. package/lib/components/molecules/hour-input/hour-input.component.d.ts +0 -15
  526. package/lib/components/molecules/image-crop/image-crop.component.d.ts +0 -59
  527. package/lib/components/molecules/image-crop/index.d.ts +0 -1
  528. package/lib/components/molecules/info/info.component.d.ts +0 -9
  529. package/lib/components/molecules/info/types.d.ts +0 -10
  530. package/lib/components/molecules/language-selector/language-selector.component.d.ts +0 -40
  531. package/lib/components/molecules/language-selector/types.d.ts +0 -82
  532. package/lib/components/molecules/layered-card/layered-card.component.d.ts +0 -10
  533. package/lib/components/molecules/layered-card/types.d.ts +0 -15
  534. package/lib/components/molecules/link/link.component.d.ts +0 -24
  535. package/lib/components/molecules/link/types.d.ts +0 -19
  536. package/lib/components/molecules/linked-providers/linked-providers.component.d.ts +0 -30
  537. package/lib/components/molecules/linked-providers/types.d.ts +0 -38
  538. package/lib/components/molecules/links-accordion/links-accordion.component.d.ts +0 -61
  539. package/lib/components/molecules/links-accordion/types.d.ts +0 -39
  540. package/lib/components/molecules/links-cake/links-cake.component.d.ts +0 -17
  541. package/lib/components/molecules/links-cake/types.d.ts +0 -13
  542. package/lib/components/molecules/multi-select-search/multi-select-search.component.d.ts +0 -76
  543. package/lib/components/molecules/notes-box/notes-box.component.d.ts +0 -33
  544. package/lib/components/molecules/notes-box/types.d.ts +0 -35
  545. package/lib/components/molecules/number-from-to/number-from-to.component.d.ts +0 -27
  546. package/lib/components/molecules/number-from-to/types.d.ts +0 -76
  547. package/lib/components/molecules/number-input/number-input.component.d.ts +0 -16
  548. package/lib/components/molecules/number-stepper/number-stepper.component.d.ts +0 -38
  549. package/lib/components/molecules/number-stepper/types.d.ts +0 -88
  550. package/lib/components/molecules/page-links/page-links.component.d.ts +0 -29
  551. package/lib/components/molecules/page-links/types.d.ts +0 -38
  552. package/lib/components/molecules/pagination/pagination.component.d.ts +0 -15
  553. package/lib/components/molecules/pagination/types.d.ts +0 -41
  554. package/lib/components/molecules/password-input/password-input.component.d.ts +0 -37
  555. package/lib/components/molecules/phone-input/phone-input.component.d.ts +0 -59
  556. package/lib/components/molecules/phone-input/types.d.ts +0 -98
  557. package/lib/components/molecules/pill/pill.component.d.ts +0 -44
  558. package/lib/components/molecules/pill/types.d.ts +0 -63
  559. package/lib/components/molecules/pin-input/pin-input.component.d.ts +0 -21
  560. package/lib/components/molecules/pin-input/types.d.ts +0 -69
  561. package/lib/components/molecules/plain-code-box/plain-code-box.component.d.ts +0 -22
  562. package/lib/components/molecules/plain-code-box/types.d.ts +0 -10
  563. package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +0 -42
  564. package/lib/components/molecules/popover-selector/types.d.ts +0 -69
  565. package/lib/components/molecules/progress-status/progress-status.component.d.ts +0 -23
  566. package/lib/components/molecules/progress-status/types.d.ts +0 -20
  567. package/lib/components/molecules/prompter/prompter.component.d.ts +0 -10
  568. package/lib/components/molecules/prompter/types.d.ts +0 -25
  569. package/lib/components/molecules/quote-box/quote-box.component.d.ts +0 -26
  570. package/lib/components/molecules/radio-input/radio-input.component.d.ts +0 -15
  571. package/lib/components/molecules/range-input/range-input.component.d.ts +0 -25
  572. package/lib/components/molecules/range-input/types.d.ts +0 -59
  573. package/lib/components/molecules/rating/rating.component.d.ts +0 -23
  574. package/lib/components/molecules/rating/types.d.ts +0 -41
  575. package/lib/components/molecules/refresher/refresher.component.d.ts +0 -84
  576. package/lib/components/molecules/refresher/types.d.ts +0 -86
  577. package/lib/components/molecules/searchbar/searchbar.component.d.ts +0 -43
  578. package/lib/components/molecules/searchbar/types.d.ts +0 -33
  579. package/lib/components/molecules/segment-control/segment-control.component.d.ts +0 -35
  580. package/lib/components/molecules/segment-control/types.d.ts +0 -46
  581. package/lib/components/molecules/select-input/select-input.component.d.ts +0 -57
  582. package/lib/components/molecules/select-search/select-search.component.d.ts +0 -78
  583. package/lib/components/molecules/share-buttons/share-buttons.component.d.ts +0 -22
  584. package/lib/components/molecules/share-buttons/types.d.ts +0 -108
  585. package/lib/components/molecules/stats-card/stats-card.component.d.ts +0 -20
  586. package/lib/components/molecules/stats-card/types.d.ts +0 -60
  587. package/lib/components/molecules/stepper/stepper.component.d.ts +0 -31
  588. package/lib/components/molecules/stepper/types.d.ts +0 -66
  589. package/lib/components/molecules/swipe-carousel/swipe-carousel.component.d.ts +0 -66
  590. package/lib/components/molecules/swipe-carousel/types.d.ts +0 -35
  591. package/lib/components/molecules/tabs/tabs.component.d.ts +0 -34
  592. package/lib/components/molecules/tabs/types.d.ts +0 -45
  593. package/lib/components/molecules/testimonial-card/testimonial-card.component.d.ts +0 -41
  594. package/lib/components/molecules/testimonial-card/types.d.ts +0 -25
  595. package/lib/components/molecules/text-input/text-input.component.d.ts +0 -42
  596. package/lib/components/molecules/textarea-input/textarea-input.component.d.ts +0 -46
  597. package/lib/components/molecules/textarea-input/types.d.ts +0 -74
  598. package/lib/components/molecules/timeline/timeline.component.d.ts +0 -14
  599. package/lib/components/molecules/timeline/types.d.ts +0 -39
  600. package/lib/components/molecules/title-block/title-block.component.d.ts +0 -12
  601. package/lib/components/molecules/title-block/types.d.ts +0 -15
  602. package/lib/components/molecules/toggle-input/toggle-input.component.d.ts +0 -39
  603. package/lib/components/molecules/toggle-input/types.d.ts +0 -30
  604. package/lib/components/molecules/update-banner/types.d.ts +0 -41
  605. package/lib/components/molecules/update-banner/update-banner.component.d.ts +0 -48
  606. package/lib/components/molecules/username-input/types.d.ts +0 -36
  607. package/lib/components/molecules/username-input/username-input.component.d.ts +0 -58
  608. package/lib/components/organisms/article/article.component.d.ts +0 -108
  609. package/lib/components/organisms/article/types.d.ts +0 -367
  610. package/lib/components/organisms/avatar-upload/avatar-upload.component.d.ts +0 -84
  611. package/lib/components/organisms/avatar-upload/types.d.ts +0 -62
  612. package/lib/components/organisms/banner/banner.component.d.ts +0 -16
  613. package/lib/components/organisms/banner/types.d.ts +0 -29
  614. package/lib/components/organisms/bottom-nav/bottom-nav.component.d.ts +0 -91
  615. package/lib/components/organisms/bottom-nav/types.d.ts +0 -120
  616. package/lib/components/organisms/cards-carousel/cards-carousel.component.d.ts +0 -36
  617. package/lib/components/organisms/cards-carousel/types.d.ts +0 -40
  618. package/lib/components/organisms/comment-section/comment-section.component.d.ts +0 -50
  619. package/lib/components/organisms/comment-section/types.d.ts +0 -144
  620. package/lib/components/organisms/company-footer/company-footer.component.d.ts +0 -37
  621. package/lib/components/organisms/company-footer/types.d.ts +0 -15
  622. package/lib/components/organisms/cookie-banner/cookie-banner.component.d.ts +0 -36
  623. package/lib/components/organisms/cookie-banner/types.d.ts +0 -62
  624. package/lib/components/organisms/data-table/data-table.component.d.ts +0 -63
  625. package/lib/components/organisms/data-table/types.d.ts +0 -219
  626. package/lib/components/organisms/docs-sidebar/docs-sidebar.component.d.ts +0 -51
  627. package/lib/components/organisms/docs-sidebar/types.d.ts +0 -93
  628. package/lib/components/organisms/docs-toc/docs-toc.component.d.ts +0 -62
  629. package/lib/components/organisms/docs-toc/types.d.ts +0 -62
  630. package/lib/components/organisms/faq/faq.component.d.ts +0 -46
  631. package/lib/components/organisms/faq/types.d.ts +0 -53
  632. package/lib/components/organisms/footer/footer.component.d.ts +0 -36
  633. package/lib/components/organisms/footer/types.d.ts +0 -16
  634. package/lib/components/organisms/form/factory.d.ts +0 -17
  635. package/lib/components/organisms/form/form-footer/form-footer.component.d.ts +0 -17
  636. package/lib/components/organisms/form/form.component.d.ts +0 -72
  637. package/lib/components/organisms/fun-header/fun-header.component.d.ts +0 -72
  638. package/lib/components/organisms/fun-header/types.d.ts +0 -28
  639. package/lib/components/organisms/header/header.component.d.ts +0 -22
  640. package/lib/components/organisms/header/types.d.ts +0 -16
  641. package/lib/components/organisms/infinite-list/infinite-list.component.d.ts +0 -113
  642. package/lib/components/organisms/infinite-list/types.d.ts +0 -197
  643. package/lib/components/organisms/item-list/item-list.component.d.ts +0 -43
  644. package/lib/components/organisms/item-list/types.d.ts +0 -126
  645. package/lib/components/organisms/login/login.component.d.ts +0 -79
  646. package/lib/components/organisms/login/types.d.ts +0 -70
  647. package/lib/components/organisms/menu/menu.component.d.ts +0 -44
  648. package/lib/components/organisms/menu/types.d.ts +0 -23
  649. package/lib/components/organisms/no-content/no-content.component.d.ts +0 -14
  650. package/lib/components/organisms/no-content/types.d.ts +0 -17
  651. package/lib/components/organisms/rotating-text/rotating-text.component.d.ts +0 -47
  652. package/lib/components/organisms/rotating-text/types.d.ts +0 -28
  653. package/lib/components/organisms/skeleton-layout/skeleton-layout.component.d.ts +0 -37
  654. package/lib/components/organisms/skeleton-layout/types.d.ts +0 -50
  655. package/lib/components/organisms/tabbed-content/tabbed-content.component.d.ts +0 -65
  656. package/lib/components/organisms/tabbed-content/types.d.ts +0 -53
  657. package/lib/components/organisms/terminal-404/terminal-404.component.d.ts +0 -42
  658. package/lib/components/organisms/terminal-404/types.d.ts +0 -22
  659. package/lib/components/organisms/testimonial-carousel/testimonial-carousel.component.d.ts +0 -33
  660. package/lib/components/organisms/testimonial-carousel/types.d.ts +0 -8
  661. package/lib/components/organisms/toolbar/toolbar.component.d.ts +0 -85
  662. package/lib/components/organisms/toolbar/types.d.ts +0 -31
  663. package/lib/components/organisms/wizard/types.d.ts +0 -42
  664. package/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.d.ts +0 -23
  665. package/lib/components/organisms/wizard/wizard.component.d.ts +0 -27
  666. package/lib/components/templates/auth-background/auth-background.component.d.ts +0 -62
  667. package/lib/components/templates/auth-background/types.d.ts +0 -30
  668. package/lib/components/templates/docs-layout/docs-layout.component.d.ts +0 -42
  669. package/lib/components/templates/docs-layout/types.d.ts +0 -39
  670. package/lib/components/templates/docs-page/docs-page.component.d.ts +0 -61
  671. package/lib/components/templates/docs-page/types.d.ts +0 -121
  672. package/lib/components/templates/docs-shell/docs-shell.component.d.ts +0 -33
  673. package/lib/components/templates/docs-shell/types.d.ts +0 -152
  674. package/lib/components/templates/maintenance-page/maintenance-page.component.d.ts +0 -57
  675. package/lib/components/templates/maintenance-page/types.d.ts +0 -12
  676. package/lib/components/templates/page-content/page-content.component.d.ts +0 -107
  677. package/lib/components/templates/page-content/types.d.ts +0 -27
  678. package/lib/components/templates/page-template/page-template.component.d.ts +0 -54
  679. package/lib/components/templates/page-template/types.d.ts +0 -17
  680. package/lib/components/templates/page-wrapper/page-wrapper.component.d.ts +0 -99
  681. package/lib/components/templates/page-wrapper/types.d.ts +0 -26
  682. package/lib/components/templates/simple/simple.component.d.ts +0 -14
  683. package/lib/components/templates/simple/types.d.ts +0 -10
  684. package/lib/components/types.d.ts +0 -304
  685. package/lib/config/company-footer.config.d.ts +0 -118
  686. package/lib/config/index.d.ts +0 -4
  687. package/lib/services/ads/ads-loader.service.d.ts +0 -41
  688. package/lib/services/ads/ads.service.d.ts +0 -99
  689. package/lib/services/ads/config.d.ts +0 -53
  690. package/lib/services/ads/index.d.ts +0 -9
  691. package/lib/services/ads/types.d.ts +0 -106
  692. package/lib/services/app-config/app-config.service.d.ts +0 -115
  693. package/lib/services/app-config/config.d.ts +0 -31
  694. package/lib/services/app-config/index.d.ts +0 -47
  695. package/lib/services/app-config/types.d.ts +0 -54
  696. package/lib/services/app-config/version.d.ts +0 -64
  697. package/lib/services/app-version/app-version.service.d.ts +0 -64
  698. package/lib/services/app-version/config.d.ts +0 -35
  699. package/lib/services/app-version/index.d.ts +0 -23
  700. package/lib/services/app-version/types.d.ts +0 -35
  701. package/lib/services/auth/auth-state.service.d.ts +0 -106
  702. package/lib/services/auth/auth.service.d.ts +0 -429
  703. package/lib/services/auth/config.d.ts +0 -38
  704. package/lib/services/auth/device.service.d.ts +0 -101
  705. package/lib/services/auth/guards.d.ts +0 -126
  706. package/lib/services/auth/handoff.service.d.ts +0 -159
  707. package/lib/services/auth/index.d.ts +0 -89
  708. package/lib/services/auth/interceptor.d.ts +0 -22
  709. package/lib/services/auth/notification-action.service.d.ts +0 -34
  710. package/lib/services/auth/oauth-callback.component.d.ts +0 -34
  711. package/lib/services/auth/oauth.service.d.ts +0 -99
  712. package/lib/services/auth/org-switch.service.d.ts +0 -127
  713. package/lib/services/auth/session.service.d.ts +0 -60
  714. package/lib/services/auth/storage.service.d.ts +0 -52
  715. package/lib/services/auth/sync.service.d.ts +0 -49
  716. package/lib/services/auth/token.service.d.ts +0 -57
  717. package/lib/services/auth/types.d.ts +0 -862
  718. package/lib/services/confirmation-dialog/confirmation-dialog.service.d.ts +0 -71
  719. package/lib/services/confirmation-dialog/types.d.ts +0 -61
  720. package/lib/services/content/content-types/blog.d.ts +0 -148
  721. package/lib/services/content/content-types/documentation.d.ts +0 -183
  722. package/lib/services/content/content-types/news.d.ts +0 -162
  723. package/lib/services/content/index.d.ts +0 -49
  724. package/lib/services/content/transformer.d.ts +0 -96
  725. package/lib/services/content/types.d.ts +0 -220
  726. package/lib/services/docs/docs-navigation.service.d.ts +0 -51
  727. package/lib/services/donation/config.d.ts +0 -33
  728. package/lib/services/donation/donation.service.d.ts +0 -54
  729. package/lib/services/donation/index.d.ts +0 -25
  730. package/lib/services/donation/types.d.ts +0 -85
  731. package/lib/services/download.service.d.ts +0 -21
  732. package/lib/services/feedback/config.d.ts +0 -35
  733. package/lib/services/feedback/feedback.service.d.ts +0 -134
  734. package/lib/services/feedback/index.d.ts +0 -40
  735. package/lib/services/feedback/types.d.ts +0 -173
  736. package/lib/services/firebase/analytics-error-handler.d.ts +0 -54
  737. package/lib/services/firebase/analytics-router-tracker.d.ts +0 -51
  738. package/lib/services/firebase/analytics-types.d.ts +0 -221
  739. package/lib/services/firebase/analytics.service.d.ts +0 -256
  740. package/lib/services/firebase/config.d.ts +0 -49
  741. package/lib/services/firebase/firebase.service.d.ts +0 -303
  742. package/lib/services/firebase/firestore-collection.d.ts +0 -199
  743. package/lib/services/firebase/firestore.service.d.ts +0 -335
  744. package/lib/services/firebase/index.d.ts +0 -44
  745. package/lib/services/firebase/messaging.service.d.ts +0 -341
  746. package/lib/services/firebase/notifications.service.d.ts +0 -158
  747. package/lib/services/firebase/shared-config.d.ts +0 -151
  748. package/lib/services/firebase/storage.service.d.ts +0 -238
  749. package/lib/services/firebase/types.d.ts +0 -374
  750. package/lib/services/firebase/utils/path-builder.d.ts +0 -132
  751. package/lib/services/firebase/utils/query-builder.d.ts +0 -210
  752. package/lib/services/i18n/config.d.ts +0 -29
  753. package/lib/services/i18n/default-content.d.ts +0 -30
  754. package/lib/services/i18n/i18n.service.d.ts +0 -128
  755. package/lib/services/i18n/index.d.ts +0 -6
  756. package/lib/services/i18n/input-i18n.helper.d.ts +0 -70
  757. package/lib/services/i18n/translate.pipe.d.ts +0 -36
  758. package/lib/services/i18n/types.d.ts +0 -93
  759. package/lib/services/icons.service.d.ts +0 -9
  760. package/lib/services/image/image.service.d.ts +0 -76
  761. package/lib/services/image/index.d.ts +0 -2
  762. package/lib/services/image/types.d.ts +0 -74
  763. package/lib/services/in-app-browser.service.d.ts +0 -16
  764. package/lib/services/legal-link/legal-link.service.d.ts +0 -73
  765. package/lib/services/link-processor.service.d.ts +0 -104
  766. package/lib/services/local-storage.service.d.ts +0 -27
  767. package/lib/services/locale.service.d.ts +0 -52
  768. package/lib/services/markdown-article/legal-content.service.d.ts +0 -73
  769. package/lib/services/markdown-article/markdown-article-parser.d.ts +0 -38
  770. package/lib/services/markdown-article/markdown-article-parser.service.d.ts +0 -12
  771. package/lib/services/meta/index.d.ts +0 -2
  772. package/lib/services/meta/meta.service.d.ts +0 -23
  773. package/lib/services/meta/types.d.ts +0 -12
  774. package/lib/services/modal/modal.service.d.ts +0 -100
  775. package/lib/services/modal/simple-modal-content.component.d.ts +0 -19
  776. package/lib/services/modal/types.d.ts +0 -155
  777. package/lib/services/navigation/index.d.ts +0 -2
  778. package/lib/services/navigation/navigation.service.d.ts +0 -134
  779. package/lib/services/navigation/types.d.ts +0 -67
  780. package/lib/services/page-refresh/page-refresh.service.d.ts +0 -86
  781. package/lib/services/pagination/index.d.ts +0 -2
  782. package/lib/services/pagination/pagination.service.d.ts +0 -43
  783. package/lib/services/pagination/types.d.ts +0 -113
  784. package/lib/services/preferences/index.d.ts +0 -2
  785. package/lib/services/preferences/preferences.service.d.ts +0 -61
  786. package/lib/services/preferences/preferences.types.d.ts +0 -35
  787. package/lib/services/presets/config.d.ts +0 -32
  788. package/lib/services/presets/index.d.ts +0 -3
  789. package/lib/services/presets/preset.service.d.ts +0 -69
  790. package/lib/services/presets/types.d.ts +0 -39
  791. package/lib/services/qr-generator/qr-generator.service.d.ts +0 -115
  792. package/lib/services/qr-generator/types.d.ts +0 -141
  793. package/lib/services/refreshable-stream/index.d.ts +0 -7
  794. package/lib/services/refreshable-stream/refreshable-stream.d.ts +0 -113
  795. package/lib/services/skeleton/config.d.ts +0 -30
  796. package/lib/services/skeleton/directives/loading.directive.d.ts +0 -71
  797. package/lib/services/skeleton/index.d.ts +0 -10
  798. package/lib/services/skeleton/skeleton.service.d.ts +0 -127
  799. package/lib/services/skeleton/templates/detail-skeleton.component.d.ts +0 -18
  800. package/lib/services/skeleton/templates/form-skeleton.component.d.ts +0 -22
  801. package/lib/services/skeleton/templates/grid-skeleton.component.d.ts +0 -18
  802. package/lib/services/skeleton/templates/list-skeleton.component.d.ts +0 -17
  803. package/lib/services/skeleton/templates/profile-skeleton.component.d.ts +0 -20
  804. package/lib/services/skeleton/templates/table-skeleton.component.d.ts +0 -17
  805. package/lib/services/skeleton/types.d.ts +0 -111
  806. package/lib/services/theme.service.d.ts +0 -76
  807. package/lib/services/toast.service.d.ts +0 -28
  808. package/lib/services/types.d.ts +0 -1
  809. package/lib/shared/constants/storage.d.ts +0 -2
  810. package/lib/shared/pipes/process-links.pipe.d.ts +0 -55
  811. package/lib/shared/utils/datetime.d.ts +0 -21
  812. package/lib/shared/utils/dom.d.ts +0 -13
  813. package/lib/shared/utils/form-defaults.d.ts +0 -30
  814. package/lib/shared/utils/styles.d.ts +0 -13
  815. package/lib/shared/utils/text.d.ts +0 -11
  816. package/lib/version.d.ts +0 -5
  817. package/public-api.d.ts +0 -316
@@ -1,274 +0,0 @@
1
- /**
2
- * Notifications Service
3
- *
4
- * Servicio para leer notificaciones desde Firestore.
5
- * El backend escribe las notificaciones, el frontend solo las lee y actualiza estado.
6
- *
7
- * Se auto-inicializa cuando AuthService tiene un usuario autenticado.
8
- * También puede inicializarse manualmente con `initialize(userId)`.
9
- */
10
- import { effect, Injectable, Optional, runInInjectionContext } from '@angular/core';
11
- import { BehaviorSubject, EMPTY, from, of } from 'rxjs';
12
- import { map, switchMap } from 'rxjs/operators';
13
- import { AuthService } from '../auth/auth.service';
14
- import { FirebaseService } from './firebase.service';
15
- import * as i0 from "@angular/core";
16
- import * as i1 from "./firestore-collection";
17
- /** Límite por defecto de notificaciones a cargar */
18
- const DEFAULT_LIMIT = 50;
19
- /**
20
- * Servicio para leer notificaciones desde Firestore.
21
- *
22
- * Se auto-inicializa cuando AuthService tiene un usuario autenticado.
23
- * No requiere llamar a `initialize()` manualmente si AuthService está configurado.
24
- *
25
- * @example
26
- * ```typescript
27
- * // Con AuthService configurado: auto-inicialización
28
- * // Solo inyectar y usar directamente
29
- * private notifications = inject(NotificationsService);
30
- *
31
- * notifications$ = this.notifications.getAll();
32
- * unreadCount$ = this.notifications.getUnreadCount();
33
- *
34
- * // Sin AuthService: inicialización manual
35
- * this.notifications.initialize(userId);
36
- * ```
37
- */
38
- export class NotificationsService {
39
- constructor(injector, collectionFactory) {
40
- this.injector = injector;
41
- this.collectionFactory = collectionFactory;
42
- this.collection = null;
43
- this.currentUserId = null;
44
- this.collectionReady$ = new BehaviorSubject(null);
45
- // Inyección opcional - AuthService puede no estar configurado
46
- this.authService = null;
47
- // Inyección opcional - FirebaseService gatea los listeners hasta que la
48
- // sesión de Firebase Auth esté lista (cierra la ventana de permission-denied
49
- // en cold start de PWA).
50
- this.firebaseService = null;
51
- this.firebaseService = this.injector.get(FirebaseService, null);
52
- // Intentar obtener AuthService de forma lazy (puede no estar configurado)
53
- this.setupAutoInitialization();
54
- }
55
- /**
56
- * Gate de Firebase Auth: emite la colección lista SOLO cuando la sesión de
57
- * Firebase Auth está confirmada. Sin FirebaseService disponible, no gatea
58
- * (degrada al comportamiento previo). Espera a que `firebaseAuthReady$`
59
- * emita antes de propagar la colección — así el listener Firestore nunca se
60
- * adjunta antes de que `request.auth` esté disponible.
61
- */
62
- collectionWhenAuthReady$() {
63
- const fb = this.firebaseService;
64
- if (!fb) {
65
- return this.collectionReady$.asObservable();
66
- }
67
- return this.collectionReady$.pipe(switchMap(collection => {
68
- if (!collection)
69
- return of(null);
70
- return from(fb.whenFirebaseAuthReady()).pipe(map(() => collection));
71
- }));
72
- }
73
- /**
74
- * Configura auto-inicialización observando el estado de AuthService.
75
- * Se ejecuta en el contexto del injector para poder usar effect().
76
- */
77
- setupAutoInitialization() {
78
- // Obtener AuthService de forma lazy
79
- try {
80
- this.authService = this.injector.get(AuthService, null);
81
- }
82
- catch {
83
- // AuthService no está configurado, no hay auto-inicialización
84
- return;
85
- }
86
- if (!this.authService) {
87
- return;
88
- }
89
- // Usar runInInjectionContext para poder crear el effect
90
- runInInjectionContext(this.injector, () => {
91
- effect(() => {
92
- const user = this.authService.user();
93
- if (user?.userId && this.currentUserId !== user.userId) {
94
- // Usuario autenticado: inicializar con su ID
95
- this.initialize(user.userId);
96
- }
97
- else if (!user && this.currentUserId) {
98
- // Logout: limpiar estado
99
- this.reset();
100
- }
101
- });
102
- });
103
- }
104
- /**
105
- * Inicializa el servicio para un usuario específico.
106
- *
107
- * NOTA: Se llama automáticamente si AuthService está configurado.
108
- * Solo usar manualmente si AuthService no está disponible o se necesita
109
- * un userId diferente al del usuario autenticado.
110
- */
111
- initialize(userId) {
112
- if (!this.collectionFactory) {
113
- console.warn('[Notifications] FirestoreCollectionFactory not available. Ensure provideValtechFirebase() is configured.');
114
- return;
115
- }
116
- this.currentUserId = userId;
117
- // Path global cross-app: /users/{uid}/notifications (sin prefijo apps/{appId}/).
118
- // skipAppPrefix bypassa FirestoreService.prefixCollectionPath para fan-out compartido.
119
- const basePath = `users/${userId}/notifications`;
120
- this.collection = this.collectionFactory.create(basePath, {
121
- timestamps: true,
122
- skipAppPrefix: true,
123
- });
124
- this.collectionReady$.next(this.collection);
125
- console.log('[Notifications] Initialized with path:', basePath);
126
- }
127
- /**
128
- * Verifica si el servicio está inicializado.
129
- */
130
- get isReady() {
131
- return this.collection !== null;
132
- }
133
- /**
134
- * Obtiene el ID del usuario actual.
135
- */
136
- get userId() {
137
- return this.currentUserId;
138
- }
139
- // ===========================================================================
140
- // LECTURA
141
- // ===========================================================================
142
- /**
143
- * Obtiene notificaciones ordenadas por fecha descendente (real-time).
144
- * Se actualiza automáticamente cuando cambian los datos.
145
- *
146
- * El listener Firestore NO se adjunta hasta que la sesión de Firebase Auth
147
- * esté confirmada (`FirebaseService.firebaseAuthReady`). Esto cierra la
148
- * ventana de `permission-denied` en cold start de PWA, donde el JWT del
149
- * backend puede estar listo antes que la sesión de Firebase Auth.
150
- *
151
- * @param limit - Máximo de notificaciones a cargar (default: 50)
152
- */
153
- getAll(limit = DEFAULT_LIMIT) {
154
- return this.collectionWhenAuthReady$().pipe(switchMap(collection => {
155
- if (!collection)
156
- return EMPTY;
157
- return collection.watchAll({
158
- orderBy: [{ field: 'createdAt', direction: 'desc' }],
159
- limit,
160
- });
161
- }));
162
- }
163
- /**
164
- * Obtiene notificaciones (one-time fetch sin listener).
165
- * Útil para cargas iniciales sin necesidad de updates en tiempo real.
166
- *
167
- * @param limit - Máximo de notificaciones a cargar (default: 50)
168
- */
169
- async getAllOnce(limit = DEFAULT_LIMIT) {
170
- if (!this.collection)
171
- return [];
172
- return this.collection.getAllOnce({
173
- orderBy: [{ field: 'createdAt', direction: 'desc' }],
174
- limit,
175
- });
176
- }
177
- /**
178
- * Obtiene solo notificaciones no leídas (real-time, filtrado server-side).
179
- *
180
- * @param limit - Máximo de notificaciones (default: 50)
181
- */
182
- getUnread(limit = DEFAULT_LIMIT) {
183
- if (!this.collection)
184
- return of([]);
185
- return this.collection.watchAll({
186
- where: [{ field: 'isRead', operator: '==', value: false }],
187
- orderBy: [{ field: 'createdAt', direction: 'desc' }],
188
- limit,
189
- });
190
- }
191
- /**
192
- * Cuenta notificaciones no leídas usando server-side aggregation query.
193
- * No descarga documentos — eficiente para badges en UI.
194
- *
195
- * Gateado por `firebaseAuthReady` — la aggregation query no se ejecuta hasta
196
- * que la sesión de Firebase Auth esté lista.
197
- */
198
- getUnreadCount() {
199
- return this.collectionWhenAuthReady$().pipe(switchMap(collection => {
200
- if (!collection)
201
- return of(0);
202
- return from(collection.count({
203
- where: [{ field: 'isRead', operator: '==', value: false }],
204
- }));
205
- }));
206
- }
207
- /**
208
- * Obtiene una notificación por ID.
209
- */
210
- async getById(notificationId) {
211
- if (!this.collection)
212
- return null;
213
- return this.collection.getById(notificationId);
214
- }
215
- // ===========================================================================
216
- // ACCIONES
217
- // ===========================================================================
218
- /**
219
- * Marca una notificación como leída.
220
- */
221
- async markAsRead(notificationId) {
222
- if (!this.collection)
223
- return;
224
- await this.collection.update(notificationId, { isRead: true });
225
- }
226
- /**
227
- * Marca todas las notificaciones no leídas como leídas (batch write).
228
- */
229
- async markAllAsRead() {
230
- if (!this.collection)
231
- return;
232
- const unread = await this.collection.query({
233
- where: [{ field: 'isRead', operator: '==', value: false }],
234
- });
235
- const ids = unread.map(n => n.id).filter(Boolean);
236
- await this.collection.batchUpdate(ids, { isRead: true });
237
- }
238
- /**
239
- * Elimina una notificación.
240
- */
241
- async delete(notificationId) {
242
- if (!this.collection)
243
- return;
244
- await this.collection.delete(notificationId);
245
- }
246
- /**
247
- * Elimina todas las notificaciones del usuario (batch delete).
248
- */
249
- async deleteAll() {
250
- if (!this.collection)
251
- return;
252
- const all = await this.collection.getAll();
253
- const ids = all.map(n => n.id).filter(Boolean);
254
- await this.collection.batchDelete(ids);
255
- }
256
- /**
257
- * Limpia el estado del servicio.
258
- * Útil para logout.
259
- */
260
- reset() {
261
- this.collection = null;
262
- this.currentUserId = null;
263
- this.collectionReady$.next(null);
264
- }
265
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NotificationsService, deps: [{ token: i0.Injector }, { token: i1.FirestoreCollectionFactory, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
266
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NotificationsService, providedIn: 'root' }); }
267
- }
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NotificationsService, decorators: [{
269
- type: Injectable,
270
- args: [{ providedIn: 'root' }]
271
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.FirestoreCollectionFactory, decorators: [{
272
- type: Optional
273
- }] }] });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUlyRCxvREFBb0Q7QUFDcEQsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBNkJ6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQWUvQixZQUNVLFFBQWtCLEVBQ04saUJBQTZDO1FBRHpELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDTixzQkFBaUIsR0FBakIsaUJBQWlCLENBQTRCO1FBaEIzRCxlQUFVLEdBQWlELElBQUksQ0FBQztRQUNoRSxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQzVDLElBQUksQ0FDTCxDQUFDO1FBRUYsOERBQThEO1FBQ3RELGdCQUFXLEdBQXVCLElBQUksQ0FBQztRQUUvQyx3RUFBd0U7UUFDeEUsNkVBQTZFO1FBQzdFLHlCQUF5QjtRQUNqQixvQkFBZSxHQUEyQixJQUFJLENBQUM7UUFNckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyx3QkFBd0I7UUFDOUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNoQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUMvQixTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdEUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSyx1QkFBdUI7UUFDN0Isb0NBQW9DO1FBQ3BDLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCw4REFBOEQ7WUFDOUQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBRUQsd0RBQXdEO1FBQ3hELHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFdEMsSUFBSSxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN2RCw2Q0FBNkM7b0JBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQixDQUFDO3FCQUFNLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUN2Qyx5QkFBeUI7b0JBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxVQUFVLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FDViwwR0FBMEcsQ0FDM0csQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFFNUIsaUZBQWlGO1FBQ2pGLHVGQUF1RjtRQUN2RixNQUFNLFFBQVEsR0FBRyxTQUFTLE1BQU0sZ0JBQWdCLENBQUM7UUFFakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUF1QixRQUFRLEVBQUU7WUFDOUUsVUFBVSxFQUFFLElBQUk7WUFDaEIsYUFBYSxFQUFFLElBQUk7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3Q0FBd0MsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsOEVBQThFO0lBQzlFLFVBQVU7SUFDViw4RUFBOEU7SUFFOUU7Ozs7Ozs7Ozs7T0FVRztJQUNILE1BQU0sQ0FBQyxLQUFLLEdBQUcsYUFBYTtRQUMxQixPQUFPLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLElBQUksQ0FDekMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBQzlCLE9BQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDcEQsS0FBSzthQUNOLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxhQUFhO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRWhDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7WUFDaEMsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwRCxLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsS0FBSyxHQUFHLGFBQWE7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5QixLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDMUQsT0FBTyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNwRCxLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLElBQUksQ0FDekMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVO2dCQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUNULFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQzNELENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBc0I7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsOEVBQThFO0lBQzlFLFdBQVc7SUFDWCw4RUFBOEU7SUFFOUU7O09BRUc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLGNBQXNCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU87UUFDN0IsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsYUFBYTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBRTdCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDekMsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1NBQzNELENBQUMsQ0FBQztRQUVILE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFzQjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQzdCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFNBQVM7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBRTdCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQW5RVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQURQLE1BQU07OzRGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFrQjdCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5vdGlmaWNhdGlvbnMgU2VydmljZVxuICpcbiAqIFNlcnZpY2lvIHBhcmEgbGVlciBub3RpZmljYWNpb25lcyBkZXNkZSBGaXJlc3RvcmUuXG4gKiBFbCBiYWNrZW5kIGVzY3JpYmUgbGFzIG5vdGlmaWNhY2lvbmVzLCBlbCBmcm9udGVuZCBzb2xvIGxhcyBsZWUgeSBhY3R1YWxpemEgZXN0YWRvLlxuICpcbiAqIFNlIGF1dG8taW5pY2lhbGl6YSBjdWFuZG8gQXV0aFNlcnZpY2UgdGllbmUgdW4gdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAqIFRhbWJpw6luIHB1ZWRlIGluaWNpYWxpemFyc2UgbWFudWFsbWVudGUgY29uIGBpbml0aWFsaXplKHVzZXJJZClgLlxuICovXG5cbmltcG9ydCB7IGVmZmVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsLCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBGaXJlYmFzZVNlcnZpY2UgfSBmcm9tICcuL2ZpcmViYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnksIFR5cGVkQ29sbGVjdGlvbiB9IGZyb20gJy4vZmlyZXN0b3JlLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqIEzDrW1pdGUgcG9yIGRlZmVjdG8gZGUgbm90aWZpY2FjaW9uZXMgYSBjYXJnYXIgKi9cbmNvbnN0IERFRkFVTFRfTElNSVQgPSA1MDtcblxuLyoqXG4gKiBEb2N1bWVudG8gZGUgbm90aWZpY2FjacOzbiBlbiBGaXJlc3RvcmUuXG4gKiBFc3RydWN0dXJhIGVzY3JpdGEgcG9yIGVsIGJhY2tlbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uRG9jdW1lbnQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudCB7XG4gIC8qKiBUw610dWxvIGRlIGxhIG5vdGlmaWNhY2nDs24gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBDdWVycG8gZGVsIG1lbnNhamUgKi9cbiAgYm9keT86IHN0cmluZztcbiAgLyoqIFVSTCBkZSBpbWFnZW4gKi9cbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIC8qKiBEYXRvcyBwZXJzb25hbGl6YWRvcyAoZWo6IHJvdXRlLCBhY3Rpb25UeXBlKS4gTGVnYWN5IOKAlCBwcmVmZXJpciBhY3Rpb25Sb3V0ZSArIHBheWxvYWQgKi9cbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBUaXBvIGRlIG5vdGlmaWNhY2nDs24gKi9cbiAgdHlwZT86ICdmY20nIHwgJ3N5c3RlbScgfCAncmVtaW5kZXInIHwgc3RyaW5nO1xuICAvKiogU2kgbGEgbm90aWZpY2FjacOzbiBmdWUgbGXDrWRhICovXG4gIGlzUmVhZDogYm9vbGVhbjtcbiAgLyoqIEFwcElEIG9yaWdlbiAoZWo6ICdzaG93Y2FzZScsICdzaWdpZnknKS4gUGVybWl0ZSBjcm9zcy1hcHAgcm91dGluZyAqL1xuICBhcHBJZD86IHN0cmluZztcbiAgLyoqIE9yZ0lEIGFzb2NpYWRvIChzaSBsYSBub3RpZiBlcyBvcmctc2NvcGVkKS4gSGFiaWxpdGEgc3dpdGNoLW9yZyBhbCBhYnJpciAqL1xuICBvcmdJZD86IHN0cmluZztcbiAgLyoqIFJvdXRlIGRlc3Rpbm8gYWwgY2xpY2sgKGVqOiAnL2FwcC9kb2NzLzEyMycpICovXG4gIGFjdGlvblJvdXRlPzogc3RyaW5nO1xuICAvKiogUGF5bG9hZCBlc3RydWN0dXJhZG8gcGFyYSBhY2Npb25lcyAocmVlbXBsYXpvIHRpcGFkbyBkZSBgZGF0YWApICovXG4gIHBheWxvYWQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIGxlZXIgbm90aWZpY2FjaW9uZXMgZGVzZGUgRmlyZXN0b3JlLlxuICpcbiAqIFNlIGF1dG8taW5pY2lhbGl6YSBjdWFuZG8gQXV0aFNlcnZpY2UgdGllbmUgdW4gdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAqIE5vIHJlcXVpZXJlIGxsYW1hciBhIGBpbml0aWFsaXplKClgIG1hbnVhbG1lbnRlIHNpIEF1dGhTZXJ2aWNlIGVzdMOhIGNvbmZpZ3VyYWRvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDb24gQXV0aFNlcnZpY2UgY29uZmlndXJhZG86IGF1dG8taW5pY2lhbGl6YWNpw7NuXG4gKiAvLyBTb2xvIGlueWVjdGFyIHkgdXNhciBkaXJlY3RhbWVudGVcbiAqIHByaXZhdGUgbm90aWZpY2F0aW9ucyA9IGluamVjdChOb3RpZmljYXRpb25zU2VydmljZSk7XG4gKlxuICogbm90aWZpY2F0aW9ucyQgPSB0aGlzLm5vdGlmaWNhdGlvbnMuZ2V0QWxsKCk7XG4gKiB1bnJlYWRDb3VudCQgPSB0aGlzLm5vdGlmaWNhdGlvbnMuZ2V0VW5yZWFkQ291bnQoKTtcbiAqXG4gKiAvLyBTaW4gQXV0aFNlcnZpY2U6IGluaWNpYWxpemFjacOzbiBtYW51YWxcbiAqIHRoaXMubm90aWZpY2F0aW9ucy5pbml0aWFsaXplKHVzZXJJZCk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU2VydmljZSB7XG4gIHByaXZhdGUgY29sbGVjdGlvbjogVHlwZWRDb2xsZWN0aW9uPE5vdGlmaWNhdGlvbkRvY3VtZW50PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGN1cnJlbnRVc2VySWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbGxlY3Rpb25SZWFkeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFR5cGVkQ29sbGVjdGlvbjxOb3RpZmljYXRpb25Eb2N1bWVudD4gfCBudWxsPihcbiAgICBudWxsXG4gICk7XG5cbiAgLy8gSW55ZWNjacOzbiBvcGNpb25hbCAtIEF1dGhTZXJ2aWNlIHB1ZWRlIG5vIGVzdGFyIGNvbmZpZ3VyYWRvXG4gIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gSW55ZWNjacOzbiBvcGNpb25hbCAtIEZpcmViYXNlU2VydmljZSBnYXRlYSBsb3MgbGlzdGVuZXJzIGhhc3RhIHF1ZSBsYVxuICAvLyBzZXNpw7NuIGRlIEZpcmViYXNlIEF1dGggZXN0w6kgbGlzdGEgKGNpZXJyYSBsYSB2ZW50YW5hIGRlIHBlcm1pc3Npb24tZGVuaWVkXG4gIC8vIGVuIGNvbGQgc3RhcnQgZGUgUFdBKS5cbiAgcHJpdmF0ZSBmaXJlYmFzZVNlcnZpY2U6IEZpcmViYXNlU2VydmljZSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29sbGVjdGlvbkZhY3Rvcnk6IEZpcmVzdG9yZUNvbGxlY3Rpb25GYWN0b3J5XG4gICkge1xuICAgIHRoaXMuZmlyZWJhc2VTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoRmlyZWJhc2VTZXJ2aWNlLCBudWxsKTtcbiAgICAvLyBJbnRlbnRhciBvYnRlbmVyIEF1dGhTZXJ2aWNlIGRlIGZvcm1hIGxhenkgKHB1ZWRlIG5vIGVzdGFyIGNvbmZpZ3VyYWRvKVxuICAgIHRoaXMuc2V0dXBBdXRvSW5pdGlhbGl6YXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHYXRlIGRlIEZpcmViYXNlIEF1dGg6IGVtaXRlIGxhIGNvbGVjY2nDs24gbGlzdGEgU09MTyBjdWFuZG8gbGEgc2VzacOzbiBkZVxuICAgKiBGaXJlYmFzZSBBdXRoIGVzdMOhIGNvbmZpcm1hZGEuIFNpbiBGaXJlYmFzZVNlcnZpY2UgZGlzcG9uaWJsZSwgbm8gZ2F0ZWFcbiAgICogKGRlZ3JhZGEgYWwgY29tcG9ydGFtaWVudG8gcHJldmlvKS4gRXNwZXJhIGEgcXVlIGBmaXJlYmFzZUF1dGhSZWFkeSRgXG4gICAqIGVtaXRhIGFudGVzIGRlIHByb3BhZ2FyIGxhIGNvbGVjY2nDs24g4oCUIGFzw60gZWwgbGlzdGVuZXIgRmlyZXN0b3JlIG51bmNhIHNlXG4gICAqIGFkanVudGEgYW50ZXMgZGUgcXVlIGByZXF1ZXN0LmF1dGhgIGVzdMOpIGRpc3BvbmlibGUuXG4gICAqL1xuICBwcml2YXRlIGNvbGxlY3Rpb25XaGVuQXV0aFJlYWR5JCgpOiBPYnNlcnZhYmxlPFR5cGVkQ29sbGVjdGlvbjxOb3RpZmljYXRpb25Eb2N1bWVudD4gfCBudWxsPiB7XG4gICAgY29uc3QgZmIgPSB0aGlzLmZpcmViYXNlU2VydmljZTtcbiAgICBpZiAoIWZiKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uUmVhZHkkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uUmVhZHkkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY29sbGVjdGlvbiA9PiB7XG4gICAgICAgIGlmICghY29sbGVjdGlvbikgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICByZXR1cm4gZnJvbShmYi53aGVuRmlyZWJhc2VBdXRoUmVhZHkoKSkucGlwZShtYXAoKCkgPT4gY29sbGVjdGlvbikpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYSBhdXRvLWluaWNpYWxpemFjacOzbiBvYnNlcnZhbmRvIGVsIGVzdGFkbyBkZSBBdXRoU2VydmljZS5cbiAgICogU2UgZWplY3V0YSBlbiBlbCBjb250ZXh0byBkZWwgaW5qZWN0b3IgcGFyYSBwb2RlciB1c2FyIGVmZmVjdCgpLlxuICAgKi9cbiAgcHJpdmF0ZSBzZXR1cEF1dG9Jbml0aWFsaXphdGlvbigpOiB2b2lkIHtcbiAgICAvLyBPYnRlbmVyIEF1dGhTZXJ2aWNlIGRlIGZvcm1hIGxhenlcbiAgICB0cnkge1xuICAgICAgdGhpcy5hdXRoU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEF1dGhTZXJ2aWNlLCBudWxsKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEF1dGhTZXJ2aWNlIG5vIGVzdMOhIGNvbmZpZ3VyYWRvLCBubyBoYXkgYXV0by1pbmljaWFsaXphY2nDs25cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYXV0aFNlcnZpY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBVc2FyIHJ1bkluSW5qZWN0aW9uQ29udGV4dCBwYXJhIHBvZGVyIGNyZWFyIGVsIGVmZmVjdFxuICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5hdXRoU2VydmljZSEudXNlcigpO1xuXG4gICAgICAgIGlmICh1c2VyPy51c2VySWQgJiYgdGhpcy5jdXJyZW50VXNlcklkICE9PSB1c2VyLnVzZXJJZCkge1xuICAgICAgICAgIC8vIFVzdWFyaW8gYXV0ZW50aWNhZG86IGluaWNpYWxpemFyIGNvbiBzdSBJRFxuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZSh1c2VyLnVzZXJJZCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXVzZXIgJiYgdGhpcy5jdXJyZW50VXNlcklkKSB7XG4gICAgICAgICAgLy8gTG9nb3V0OiBsaW1waWFyIGVzdGFkb1xuICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pY2lhbGl6YSBlbCBzZXJ2aWNpbyBwYXJhIHVuIHVzdWFyaW8gZXNwZWPDrWZpY28uXG4gICAqXG4gICAqIE5PVEE6IFNlIGxsYW1hIGF1dG9tw6F0aWNhbWVudGUgc2kgQXV0aFNlcnZpY2UgZXN0w6EgY29uZmlndXJhZG8uXG4gICAqIFNvbG8gdXNhciBtYW51YWxtZW50ZSBzaSBBdXRoU2VydmljZSBubyBlc3TDoSBkaXNwb25pYmxlIG8gc2UgbmVjZXNpdGFcbiAgICogdW4gdXNlcklkIGRpZmVyZW50ZSBhbCBkZWwgdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAgICovXG4gIGluaXRpYWxpemUodXNlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbkZhY3RvcnkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1tOb3RpZmljYXRpb25zXSBGaXJlc3RvcmVDb2xsZWN0aW9uRmFjdG9yeSBub3QgYXZhaWxhYmxlLiBFbnN1cmUgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSgpIGlzIGNvbmZpZ3VyZWQuJ1xuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRVc2VySWQgPSB1c2VySWQ7XG5cbiAgICAvLyBQYXRoIGdsb2JhbCBjcm9zcy1hcHA6IC91c2Vycy97dWlkfS9ub3RpZmljYXRpb25zIChzaW4gcHJlZmlqbyBhcHBzL3thcHBJZH0vKS5cbiAgICAvLyBza2lwQXBwUHJlZml4IGJ5cGFzc2EgRmlyZXN0b3JlU2VydmljZS5wcmVmaXhDb2xsZWN0aW9uUGF0aCBwYXJhIGZhbi1vdXQgY29tcGFydGlkby5cbiAgICBjb25zdCBiYXNlUGF0aCA9IGB1c2Vycy8ke3VzZXJJZH0vbm90aWZpY2F0aW9uc2A7XG5cbiAgICB0aGlzLmNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb25GYWN0b3J5LmNyZWF0ZTxOb3RpZmljYXRpb25Eb2N1bWVudD4oYmFzZVBhdGgsIHtcbiAgICAgIHRpbWVzdGFtcHM6IHRydWUsXG4gICAgICBza2lwQXBwUHJlZml4OiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuY29sbGVjdGlvblJlYWR5JC5uZXh0KHRoaXMuY29sbGVjdGlvbik7XG5cbiAgICBjb25zb2xlLmxvZygnW05vdGlmaWNhdGlvbnNdIEluaXRpYWxpemVkIHdpdGggcGF0aDonLCBiYXNlUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgc2VydmljaW8gZXN0w6EgaW5pY2lhbGl6YWRvLlxuICAgKi9cbiAgZ2V0IGlzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbiAhPT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIElEIGRlbCB1c3VhcmlvIGFjdHVhbC5cbiAgICovXG4gIGdldCB1c2VySWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFVzZXJJZDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBMRUNUVVJBXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIG5vdGlmaWNhY2lvbmVzIG9yZGVuYWRhcyBwb3IgZmVjaGEgZGVzY2VuZGVudGUgKHJlYWwtdGltZSkuXG4gICAqIFNlIGFjdHVhbGl6YSBhdXRvbcOhdGljYW1lbnRlIGN1YW5kbyBjYW1iaWFuIGxvcyBkYXRvcy5cbiAgICpcbiAgICogRWwgbGlzdGVuZXIgRmlyZXN0b3JlIE5PIHNlIGFkanVudGEgaGFzdGEgcXVlIGxhIHNlc2nDs24gZGUgRmlyZWJhc2UgQXV0aFxuICAgKiBlc3TDqSBjb25maXJtYWRhIChgRmlyZWJhc2VTZXJ2aWNlLmZpcmViYXNlQXV0aFJlYWR5YCkuIEVzdG8gY2llcnJhIGxhXG4gICAqIHZlbnRhbmEgZGUgYHBlcm1pc3Npb24tZGVuaWVkYCBlbiBjb2xkIHN0YXJ0IGRlIFBXQSwgZG9uZGUgZWwgSldUIGRlbFxuICAgKiBiYWNrZW5kIHB1ZWRlIGVzdGFyIGxpc3RvIGFudGVzIHF1ZSBsYSBzZXNpw7NuIGRlIEZpcmViYXNlIEF1dGguXG4gICAqXG4gICAqIEBwYXJhbSBsaW1pdCAtIE3DoXhpbW8gZGUgbm90aWZpY2FjaW9uZXMgYSBjYXJnYXIgKGRlZmF1bHQ6IDUwKVxuICAgKi9cbiAgZ2V0QWxsKGxpbWl0ID0gREVGQVVMVF9MSU1JVCk6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uRG9jdW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25XaGVuQXV0aFJlYWR5JCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY29sbGVjdGlvbiA9PiB7XG4gICAgICAgIGlmICghY29sbGVjdGlvbikgcmV0dXJuIEVNUFRZO1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi53YXRjaEFsbCh7XG4gICAgICAgICAgb3JkZXJCeTogW3sgZmllbGQ6ICdjcmVhdGVkQXQnLCBkaXJlY3Rpb246ICdkZXNjJyB9XSxcbiAgICAgICAgICBsaW1pdCxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBub3RpZmljYWNpb25lcyAob25lLXRpbWUgZmV0Y2ggc2luIGxpc3RlbmVyKS5cbiAgICogw5p0aWwgcGFyYSBjYXJnYXMgaW5pY2lhbGVzIHNpbiBuZWNlc2lkYWQgZGUgdXBkYXRlcyBlbiB0aWVtcG8gcmVhbC5cbiAgICpcbiAgICogQHBhcmFtIGxpbWl0IC0gTcOheGltbyBkZSBub3RpZmljYWNpb25lcyBhIGNhcmdhciAoZGVmYXVsdDogNTApXG4gICAqL1xuICBhc3luYyBnZXRBbGxPbmNlKGxpbWl0ID0gREVGQVVMVF9MSU1JVCk6IFByb21pc2U8Tm90aWZpY2F0aW9uRG9jdW1lbnRbXT4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uLmdldEFsbE9uY2Uoe1xuICAgICAgb3JkZXJCeTogW3sgZmllbGQ6ICdjcmVhdGVkQXQnLCBkaXJlY3Rpb246ICdkZXNjJyB9XSxcbiAgICAgIGxpbWl0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgc29sbyBub3RpZmljYWNpb25lcyBubyBsZcOtZGFzIChyZWFsLXRpbWUsIGZpbHRyYWRvIHNlcnZlci1zaWRlKS5cbiAgICpcbiAgICogQHBhcmFtIGxpbWl0IC0gTcOheGltbyBkZSBub3RpZmljYWNpb25lcyAoZGVmYXVsdDogNTApXG4gICAqL1xuICBnZXRVbnJlYWQobGltaXQgPSBERUZBVUxUX0xJTUlUKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Eb2N1bWVudFtdPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybiBvZihbXSk7XG5cbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uLndhdGNoQWxsKHtcbiAgICAgIHdoZXJlOiBbeyBmaWVsZDogJ2lzUmVhZCcsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogZmFsc2UgfV0sXG4gICAgICBvcmRlckJ5OiBbeyBmaWVsZDogJ2NyZWF0ZWRBdCcsIGRpcmVjdGlvbjogJ2Rlc2MnIH1dLFxuICAgICAgbGltaXQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3VlbnRhIG5vdGlmaWNhY2lvbmVzIG5vIGxlw61kYXMgdXNhbmRvIHNlcnZlci1zaWRlIGFnZ3JlZ2F0aW9uIHF1ZXJ5LlxuICAgKiBObyBkZXNjYXJnYSBkb2N1bWVudG9zIOKAlCBlZmljaWVudGUgcGFyYSBiYWRnZXMgZW4gVUkuXG4gICAqXG4gICAqIEdhdGVhZG8gcG9yIGBmaXJlYmFzZUF1dGhSZWFkeWAg4oCUIGxhIGFnZ3JlZ2F0aW9uIHF1ZXJ5IG5vIHNlIGVqZWN1dGEgaGFzdGFcbiAgICogcXVlIGxhIHNlc2nDs24gZGUgRmlyZWJhc2UgQXV0aCBlc3TDqSBsaXN0YS5cbiAgICovXG4gIGdldFVucmVhZENvdW50KCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbldoZW5BdXRoUmVhZHkkKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChjb2xsZWN0aW9uID0+IHtcbiAgICAgICAgaWYgKCFjb2xsZWN0aW9uKSByZXR1cm4gb2YoMCk7XG4gICAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICAgIGNvbGxlY3Rpb24uY291bnQoe1xuICAgICAgICAgICAgd2hlcmU6IFt7IGZpZWxkOiAnaXNSZWFkJywgb3BlcmF0b3I6ICc9PScsIHZhbHVlOiBmYWxzZSB9XSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgdW5hIG5vdGlmaWNhY2nDs24gcG9yIElELlxuICAgKi9cbiAgYXN5bmMgZ2V0QnlJZChub3RpZmljYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTxOb3RpZmljYXRpb25Eb2N1bWVudCB8IG51bGw+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbi5nZXRCeUlkKG5vdGlmaWNhdGlvbklkKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBBQ0NJT05FU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogTWFyY2EgdW5hIG5vdGlmaWNhY2nDs24gY29tbyBsZcOtZGEuXG4gICAqL1xuICBhc3luYyBtYXJrQXNSZWFkKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi51cGRhdGUobm90aWZpY2F0aW9uSWQsIHsgaXNSZWFkOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmNhIHRvZGFzIGxhcyBub3RpZmljYWNpb25lcyBubyBsZcOtZGFzIGNvbW8gbGXDrWRhcyAoYmF0Y2ggd3JpdGUpLlxuICAgKi9cbiAgYXN5bmMgbWFya0FsbEFzUmVhZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuO1xuXG4gICAgY29uc3QgdW5yZWFkID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uLnF1ZXJ5KHtcbiAgICAgIHdoZXJlOiBbeyBmaWVsZDogJ2lzUmVhZCcsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogZmFsc2UgfV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBpZHMgPSB1bnJlYWQubWFwKG4gPT4gbi5pZCEpLmZpbHRlcihCb29sZWFuKTtcbiAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uYmF0Y2hVcGRhdGUoaWRzLCB7IGlzUmVhZDogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbGltaW5hIHVuYSBub3RpZmljYWNpw7NuLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi5kZWxldGUobm90aWZpY2F0aW9uSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVsaW1pbmEgdG9kYXMgbGFzIG5vdGlmaWNhY2lvbmVzIGRlbCB1c3VhcmlvIChiYXRjaCBkZWxldGUpLlxuICAgKi9cbiAgYXN5bmMgZGVsZXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm47XG5cbiAgICBjb25zdCBhbGwgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZ2V0QWxsKCk7XG4gICAgY29uc3QgaWRzID0gYWxsLm1hcChuID0+IG4uaWQhKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgYXdhaXQgdGhpcy5jb2xsZWN0aW9uLmJhdGNoRGVsZXRlKGlkcyk7XG4gIH1cblxuICAvKipcbiAgICogTGltcGlhIGVsIGVzdGFkbyBkZWwgc2VydmljaW8uXG4gICAqIMOadGlsIHBhcmEgbG9nb3V0LlxuICAgKi9cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb2xsZWN0aW9uID0gbnVsbDtcbiAgICB0aGlzLmN1cnJlbnRVc2VySWQgPSBudWxsO1xuICAgIHRoaXMuY29sbGVjdGlvblJlYWR5JC5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=
@@ -1,147 +0,0 @@
1
- /**
2
- * Firebase Shared Configuration
3
- *
4
- * Utilidades genéricas para configuración de Firebase.
5
- * Las constantes específicas del proyecto (APP_IDS, FIREBASE_PROJECTS, EMULATOR_CONFIG)
6
- * deben definirse en cada app consumidora.
7
- */
8
- // ============================================================================
9
- // STORAGE PATH BUILDERS
10
- // ============================================================================
11
- /**
12
- * Genera paths de Storage alineados con storage.rules.
13
- *
14
- * Convenciones (ver frontend/firebase/storage.rules):
15
- * - Avatar global del user (cross-app): /users/{uid}/avatar.jpg
16
- * - Files privados del user (cross-app): /users/{uid}/files/{path}
17
- * - Avatar per-app del user: /apps/{appId}/users/{uid}/avatar.jpg
18
- * - Files per-app del user: /apps/{appId}/users/{uid}/files/{path}
19
- * - Public per-app: /apps/{appId}/public/{path}
20
- * - Shared per-app (auth-only): /apps/{appId}/shared/{path}
21
- * - Public global: /public/{path}
22
- *
23
- * @example
24
- * storagePaths.forApp('showcase', 'public', 'banner.jpg')
25
- * // => 'apps/showcase/public/banner.jpg'
26
- *
27
- * storagePaths.userAvatar('user123')
28
- * // => 'users/user123/avatar.jpg'
29
- *
30
- * storagePaths.appUserFile('showcase', 'user123', 'doc.pdf')
31
- * // => 'apps/showcase/users/user123/files/doc.pdf'
32
- */
33
- export const storagePaths = {
34
- /** Path per-app: apps/{appId}/{...paths} */
35
- forApp: (appId, ...paths) => ['apps', appId, ...paths].join('/'),
36
- /** Avatar global del user (cross-app) */
37
- userAvatar: (userId) => `users/${userId}/avatar.jpg`,
38
- /** Thumbnail global del user (cross-app) */
39
- userThumb: (userId) => `users/${userId}/thumb.jpg`,
40
- /** File privado global del user (cross-app) */
41
- userFile: (userId, ...paths) => ['users', userId, 'files', ...paths].join('/'),
42
- /** Avatar per-app del user */
43
- appUserAvatar: (appId, userId) => `apps/${appId}/users/${userId}/avatar.jpg`,
44
- /** File per-app del user */
45
- appUserFile: (appId, userId, ...paths) => ['apps', appId, 'users', userId, 'files', ...paths].join('/'),
46
- /** Public global (acceso sin auth, write admin-only) */
47
- public: (...paths) => `public/${paths.join('/')}`,
48
- };
49
- // ============================================================================
50
- // FIRESTORE COLLECTION BUILDERS
51
- // ============================================================================
52
- /**
53
- * Genera paths de colecciones alineados con firestore.rules.
54
- *
55
- * Convenciones (ver frontend/firebase/firestore.rules):
56
- * - Cross-app shared:
57
- * /users/{uid} (privado), /profiles/{uid} (público global),
58
- * /users/{uid}/notifications (INBOX GLOBAL cross-app cross-org)
59
- * - Per-app:
60
- * /apps/{appId}/{collection}, /apps/{appId}/profiles/{uid}
61
- * - Per-app per-user (notifications NO viven aquí):
62
- * /apps/{appId}/users/{uid}/{collection}
63
- * - Per-app per-org:
64
- * /apps/{appId}/orgs/{orgId}/{collection}
65
- *
66
- * @example
67
- * collections.forApp('showcase', 'items')
68
- * // => 'apps/showcase/items'
69
- *
70
- * collections.appUser('showcase', 'user123', 'drafts')
71
- * // => 'apps/showcase/users/user123/drafts'
72
- *
73
- * collections.appOrg('showcase', 'org_abc', 'posts')
74
- * // => 'apps/showcase/orgs/org_abc/posts'
75
- *
76
- * collections.userNotifications('user123')
77
- * // => 'users/user123/notifications'
78
- */
79
- export const collections = {
80
- /** Per-app cross-user: apps/{appId}/{collection} */
81
- forApp: (appId, collectionName) => `apps/${appId}/${collectionName}`,
82
- /** Per-app per-user: apps/{appId}/users/{uid}/{collection} */
83
- appUser: (appId, userId, collectionName) => `apps/${appId}/users/${userId}/${collectionName}`,
84
- /** Per-app per-org: apps/{appId}/orgs/{orgId}/{collection} */
85
- appOrg: (appId, orgId, collectionName) => `apps/${appId}/orgs/${orgId}/${collectionName}`,
86
- /** Per-app perfil público del user: apps/{appId}/profiles/{uid} */
87
- appProfile: (appId, userId) => `apps/${appId}/profiles/${userId}`,
88
- /** Inbox global del user (cross-app cross-org) */
89
- userNotifications: (userId) => `users/${userId}/notifications`,
90
- /** Cross-app shared (sin namespace, nivel raíz) */
91
- shared: {
92
- /** Doc privado del user — /users/{uid} */
93
- users: 'users',
94
- /** Perfiles públicos globales — /profiles/{uid} */
95
- profiles: 'profiles',
96
- },
97
- };
98
- /**
99
- * Crea la configuración completa de Firebase desde variables de entorno.
100
- * Usa esto en el environment.ts de cada app.
101
- *
102
- * @example
103
- * // environment.ts
104
- * import { createFirebaseConfig } from 'valtech-components';
105
- * import { APP_IDS, EMULATOR_CONFIG, USE_EMULATORS } from '../config/app-config';
106
- * import firebaseConfig from '../config/firebase.config.json';
107
- *
108
- * export const environment = {
109
- * valtechFirebase: createFirebaseConfig(
110
- * {
111
- * ...firebaseConfig,
112
- * enableMessaging: true,
113
- * messagingVapidKey: 'BHLx...',
114
- * },
115
- * {
116
- * emulator: USE_EMULATORS ? EMULATOR_CONFIG : undefined,
117
- * persistence: true,
118
- * appId: APP_IDS.MY_APP,
119
- * }
120
- * ),
121
- * };
122
- */
123
- export function createFirebaseConfig(config, options = {}) {
124
- const { emulator, persistence = true, appId, enableAnalytics, analyticsConfig } = options;
125
- // Extraer campos de messaging del config (nuevos campos opcionales)
126
- const { enableMessaging = false, messagingVapidKey, ...firebaseCore } = config;
127
- return {
128
- firebase: firebaseCore,
129
- persistence,
130
- enableMessaging,
131
- messagingVapidKey,
132
- emulator,
133
- appId,
134
- enableAnalytics,
135
- analyticsConfig,
136
- };
137
- }
138
- // ============================================================================
139
- // UTILITY: Check if running in emulator mode
140
- // ============================================================================
141
- /**
142
- * Verifica si la configuración tiene emuladores habilitados
143
- */
144
- export function isEmulatorMode(config) {
145
- return config.emulator !== undefined;
146
- }
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvZmlyZWJhc2Uvc2hhcmVkLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFRSCwrRUFBK0U7QUFDL0Usd0JBQXdCO0FBQ3hCLCtFQUErRTtBQUUvRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLDRDQUE0QztJQUM1QyxNQUFNLEVBQUUsQ0FBQyxLQUFZLEVBQUUsR0FBRyxLQUFlLEVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFFekYseUNBQXlDO0lBQ3pDLFVBQVUsRUFBRSxDQUFDLE1BQWMsRUFBVSxFQUFFLENBQUMsU0FBUyxNQUFNLGFBQWE7SUFFcEUsNENBQTRDO0lBQzVDLFNBQVMsRUFBRSxDQUFDLE1BQWMsRUFBVSxFQUFFLENBQUMsU0FBUyxNQUFNLFlBQVk7SUFFbEUsK0NBQStDO0lBQy9DLFFBQVEsRUFBRSxDQUFDLE1BQWMsRUFBRSxHQUFHLEtBQWUsRUFBVSxFQUFFLENBQ3ZELENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBRWhELDhCQUE4QjtJQUM5QixhQUFhLEVBQUUsQ0FBQyxLQUFZLEVBQUUsTUFBYyxFQUFVLEVBQUUsQ0FDdEQsUUFBUSxLQUFLLFVBQVUsTUFBTSxhQUFhO0lBRTVDLDRCQUE0QjtJQUM1QixXQUFXLEVBQUUsQ0FBQyxLQUFZLEVBQUUsTUFBYyxFQUFFLEdBQUcsS0FBZSxFQUFVLEVBQUUsQ0FDeEUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUUvRCx3REFBd0Q7SUFDeEQsTUFBTSxFQUFFLENBQUMsR0FBRyxLQUFlLEVBQVUsRUFBRSxDQUFDLFVBQVUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtDQUNwRSxDQUFDO0FBRUYsK0VBQStFO0FBQy9FLGdDQUFnQztBQUNoQywrRUFBK0U7QUFFL0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLG9EQUFvRDtJQUNwRCxNQUFNLEVBQUUsQ0FBQyxLQUFZLEVBQUUsY0FBc0IsRUFBVSxFQUFFLENBQUMsUUFBUSxLQUFLLElBQUksY0FBYyxFQUFFO0lBRTNGLDhEQUE4RDtJQUM5RCxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsTUFBYyxFQUFFLGNBQXNCLEVBQVUsRUFBRSxDQUN4RSxRQUFRLEtBQUssVUFBVSxNQUFNLElBQUksY0FBYyxFQUFFO0lBRW5ELDhEQUE4RDtJQUM5RCxNQUFNLEVBQUUsQ0FBQyxLQUFZLEVBQUUsS0FBYSxFQUFFLGNBQXNCLEVBQVUsRUFBRSxDQUN0RSxRQUFRLEtBQUssU0FBUyxLQUFLLElBQUksY0FBYyxFQUFFO0lBRWpELG1FQUFtRTtJQUNuRSxVQUFVLEVBQUUsQ0FBQyxLQUFZLEVBQUUsTUFBYyxFQUFVLEVBQUUsQ0FBQyxRQUFRLEtBQUssYUFBYSxNQUFNLEVBQUU7SUFFeEYsa0RBQWtEO0lBQ2xELGlCQUFpQixFQUFFLENBQUMsTUFBYyxFQUFVLEVBQUUsQ0FBQyxTQUFTLE1BQU0sZ0JBQWdCO0lBRTlFLG1EQUFtRDtJQUNuRCxNQUFNLEVBQUU7UUFDTiwwQ0FBMEM7UUFDMUMsS0FBSyxFQUFFLE9BQU87UUFDZCxtREFBbUQ7UUFDbkQsUUFBUSxFQUFFLFVBQVU7S0FDckI7Q0FDRixDQUFDO0FBa0NGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE1BQXNCLEVBQ3RCLFVBQXVDLEVBQUU7SUFFekMsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTFGLG9FQUFvRTtJQUNwRSxNQUFNLEVBQUUsZUFBZSxHQUFHLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxHQUFHLFlBQVksRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUUvRSxPQUFPO1FBQ0wsUUFBUSxFQUFFLFlBQThCO1FBQ3hDLFdBQVc7UUFDWCxlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLFFBQVE7UUFDUixLQUFLO1FBQ0wsZUFBZTtRQUNmLGVBQWU7S0FDaEIsQ0FBQztBQUNKLENBQUM7QUFFRCwrRUFBK0U7QUFDL0UsNkNBQTZDO0FBQzdDLCtFQUErRTtBQUUvRTs7R0FFRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBNkI7SUFDMUQsT0FBTyxNQUFNLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaXJlYmFzZSBTaGFyZWQgQ29uZmlndXJhdGlvblxuICpcbiAqIFV0aWxpZGFkZXMgZ2Vuw6lyaWNhcyBwYXJhIGNvbmZpZ3VyYWNpw7NuIGRlIEZpcmViYXNlLlxuICogTGFzIGNvbnN0YW50ZXMgZXNwZWPDrWZpY2FzIGRlbCBwcm95ZWN0byAoQVBQX0lEUywgRklSRUJBU0VfUFJPSkVDVFMsIEVNVUxBVE9SX0NPTkZJRylcbiAqIGRlYmVuIGRlZmluaXJzZSBlbiBjYWRhIGFwcCBjb25zdW1pZG9yYS5cbiAqL1xuXG5pbXBvcnQgeyBBcHBJZCwgRW11bGF0b3JDb25maWcsIEZpcmViYXNlQ29uZmlnLCBWYWx0ZWNoRmlyZWJhc2VDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgQW5hbHl0aWNzQ29uZmlnIH0gZnJvbSAnLi9hbmFseXRpY3MtdHlwZXMnO1xuXG4vLyBSZS1leHBvcnQgdHlwZXMgZm9yIGNvbnZlbmllbmNlXG5leHBvcnQgdHlwZSB7IEFwcElkIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNUT1JBR0UgUEFUSCBCVUlMREVSU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdlbmVyYSBwYXRocyBkZSBTdG9yYWdlIGFsaW5lYWRvcyBjb24gc3RvcmFnZS5ydWxlcy5cbiAqXG4gKiBDb252ZW5jaW9uZXMgKHZlciBmcm9udGVuZC9maXJlYmFzZS9zdG9yYWdlLnJ1bGVzKTpcbiAqIC0gQXZhdGFyIGdsb2JhbCBkZWwgdXNlciAoY3Jvc3MtYXBwKTogL3VzZXJzL3t1aWR9L2F2YXRhci5qcGdcbiAqIC0gRmlsZXMgcHJpdmFkb3MgZGVsIHVzZXIgKGNyb3NzLWFwcCk6IC91c2Vycy97dWlkfS9maWxlcy97cGF0aH1cbiAqIC0gQXZhdGFyIHBlci1hcHAgZGVsIHVzZXI6IC9hcHBzL3thcHBJZH0vdXNlcnMve3VpZH0vYXZhdGFyLmpwZ1xuICogLSBGaWxlcyBwZXItYXBwIGRlbCB1c2VyOiAvYXBwcy97YXBwSWR9L3VzZXJzL3t1aWR9L2ZpbGVzL3twYXRofVxuICogLSBQdWJsaWMgcGVyLWFwcDogL2FwcHMve2FwcElkfS9wdWJsaWMve3BhdGh9XG4gKiAtIFNoYXJlZCBwZXItYXBwIChhdXRoLW9ubHkpOiAvYXBwcy97YXBwSWR9L3NoYXJlZC97cGF0aH1cbiAqIC0gUHVibGljIGdsb2JhbDogL3B1YmxpYy97cGF0aH1cbiAqXG4gKiBAZXhhbXBsZVxuICogc3RvcmFnZVBhdGhzLmZvckFwcCgnc2hvd2Nhc2UnLCAncHVibGljJywgJ2Jhbm5lci5qcGcnKVxuICogLy8gPT4gJ2FwcHMvc2hvd2Nhc2UvcHVibGljL2Jhbm5lci5qcGcnXG4gKlxuICogc3RvcmFnZVBhdGhzLnVzZXJBdmF0YXIoJ3VzZXIxMjMnKVxuICogLy8gPT4gJ3VzZXJzL3VzZXIxMjMvYXZhdGFyLmpwZydcbiAqXG4gKiBzdG9yYWdlUGF0aHMuYXBwVXNlckZpbGUoJ3Nob3djYXNlJywgJ3VzZXIxMjMnLCAnZG9jLnBkZicpXG4gKiAvLyA9PiAnYXBwcy9zaG93Y2FzZS91c2Vycy91c2VyMTIzL2ZpbGVzL2RvYy5wZGYnXG4gKi9cbmV4cG9ydCBjb25zdCBzdG9yYWdlUGF0aHMgPSB7XG4gIC8qKiBQYXRoIHBlci1hcHA6IGFwcHMve2FwcElkfS97Li4ucGF0aHN9ICovXG4gIGZvckFwcDogKGFwcElkOiBBcHBJZCwgLi4ucGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nID0+IFsnYXBwcycsIGFwcElkLCAuLi5wYXRoc10uam9pbignLycpLFxuXG4gIC8qKiBBdmF0YXIgZ2xvYmFsIGRlbCB1c2VyIChjcm9zcy1hcHApICovXG4gIHVzZXJBdmF0YXI6ICh1c2VySWQ6IHN0cmluZyk6IHN0cmluZyA9PiBgdXNlcnMvJHt1c2VySWR9L2F2YXRhci5qcGdgLFxuXG4gIC8qKiBUaHVtYm5haWwgZ2xvYmFsIGRlbCB1c2VyIChjcm9zcy1hcHApICovXG4gIHVzZXJUaHVtYjogKHVzZXJJZDogc3RyaW5nKTogc3RyaW5nID0+IGB1c2Vycy8ke3VzZXJJZH0vdGh1bWIuanBnYCxcblxuICAvKiogRmlsZSBwcml2YWRvIGdsb2JhbCBkZWwgdXNlciAoY3Jvc3MtYXBwKSAqL1xuICB1c2VyRmlsZTogKHVzZXJJZDogc3RyaW5nLCAuLi5wYXRoczogc3RyaW5nW10pOiBzdHJpbmcgPT5cbiAgICBbJ3VzZXJzJywgdXNlcklkLCAnZmlsZXMnLCAuLi5wYXRoc10uam9pbignLycpLFxuXG4gIC8qKiBBdmF0YXIgcGVyLWFwcCBkZWwgdXNlciAqL1xuICBhcHBVc2VyQXZhdGFyOiAoYXBwSWQ6IEFwcElkLCB1c2VySWQ6IHN0cmluZyk6IHN0cmluZyA9PlxuICAgIGBhcHBzLyR7YXBwSWR9L3VzZXJzLyR7dXNlcklkfS9hdmF0YXIuanBnYCxcblxuICAvKiogRmlsZSBwZXItYXBwIGRlbCB1c2VyICovXG4gIGFwcFVzZXJGaWxlOiAoYXBwSWQ6IEFwcElkLCB1c2VySWQ6IHN0cmluZywgLi4ucGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nID0+XG4gICAgWydhcHBzJywgYXBwSWQsICd1c2VycycsIHVzZXJJZCwgJ2ZpbGVzJywgLi4ucGF0aHNdLmpvaW4oJy8nKSxcblxuICAvKiogUHVibGljIGdsb2JhbCAoYWNjZXNvIHNpbiBhdXRoLCB3cml0ZSBhZG1pbi1vbmx5KSAqL1xuICBwdWJsaWM6ICguLi5wYXRoczogc3RyaW5nW10pOiBzdHJpbmcgPT4gYHB1YmxpYy8ke3BhdGhzLmpvaW4oJy8nKX1gLFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRklSRVNUT1JFIENPTExFQ1RJT04gQlVJTERFUlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBHZW5lcmEgcGF0aHMgZGUgY29sZWNjaW9uZXMgYWxpbmVhZG9zIGNvbiBmaXJlc3RvcmUucnVsZXMuXG4gKlxuICogQ29udmVuY2lvbmVzICh2ZXIgZnJvbnRlbmQvZmlyZWJhc2UvZmlyZXN0b3JlLnJ1bGVzKTpcbiAqIC0gQ3Jvc3MtYXBwIHNoYXJlZDpcbiAqICAgL3VzZXJzL3t1aWR9IChwcml2YWRvKSwgL3Byb2ZpbGVzL3t1aWR9IChww7pibGljbyBnbG9iYWwpLFxuICogICAvdXNlcnMve3VpZH0vbm90aWZpY2F0aW9ucyAoSU5CT1ggR0xPQkFMIGNyb3NzLWFwcCBjcm9zcy1vcmcpXG4gKiAtIFBlci1hcHA6XG4gKiAgIC9hcHBzL3thcHBJZH0ve2NvbGxlY3Rpb259LCAvYXBwcy97YXBwSWR9L3Byb2ZpbGVzL3t1aWR9XG4gKiAtIFBlci1hcHAgcGVyLXVzZXIgKG5vdGlmaWNhdGlvbnMgTk8gdml2ZW4gYXF1w60pOlxuICogICAvYXBwcy97YXBwSWR9L3VzZXJzL3t1aWR9L3tjb2xsZWN0aW9ufVxuICogLSBQZXItYXBwIHBlci1vcmc6XG4gKiAgIC9hcHBzL3thcHBJZH0vb3Jncy97b3JnSWR9L3tjb2xsZWN0aW9ufVxuICpcbiAqIEBleGFtcGxlXG4gKiBjb2xsZWN0aW9ucy5mb3JBcHAoJ3Nob3djYXNlJywgJ2l0ZW1zJylcbiAqIC8vID0+ICdhcHBzL3Nob3djYXNlL2l0ZW1zJ1xuICpcbiAqIGNvbGxlY3Rpb25zLmFwcFVzZXIoJ3Nob3djYXNlJywgJ3VzZXIxMjMnLCAnZHJhZnRzJylcbiAqIC8vID0+ICdhcHBzL3Nob3djYXNlL3VzZXJzL3VzZXIxMjMvZHJhZnRzJ1xuICpcbiAqIGNvbGxlY3Rpb25zLmFwcE9yZygnc2hvd2Nhc2UnLCAnb3JnX2FiYycsICdwb3N0cycpXG4gKiAvLyA9PiAnYXBwcy9zaG93Y2FzZS9vcmdzL29yZ19hYmMvcG9zdHMnXG4gKlxuICogY29sbGVjdGlvbnMudXNlck5vdGlmaWNhdGlvbnMoJ3VzZXIxMjMnKVxuICogLy8gPT4gJ3VzZXJzL3VzZXIxMjMvbm90aWZpY2F0aW9ucydcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbGxlY3Rpb25zID0ge1xuICAvKiogUGVyLWFwcCBjcm9zcy11c2VyOiBhcHBzL3thcHBJZH0ve2NvbGxlY3Rpb259ICovXG4gIGZvckFwcDogKGFwcElkOiBBcHBJZCwgY29sbGVjdGlvbk5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiBgYXBwcy8ke2FwcElkfS8ke2NvbGxlY3Rpb25OYW1lfWAsXG5cbiAgLyoqIFBlci1hcHAgcGVyLXVzZXI6IGFwcHMve2FwcElkfS91c2Vycy97dWlkfS97Y29sbGVjdGlvbn0gKi9cbiAgYXBwVXNlcjogKGFwcElkOiBBcHBJZCwgdXNlcklkOiBzdHJpbmcsIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgICBgYXBwcy8ke2FwcElkfS91c2Vycy8ke3VzZXJJZH0vJHtjb2xsZWN0aW9uTmFtZX1gLFxuXG4gIC8qKiBQZXItYXBwIHBlci1vcmc6IGFwcHMve2FwcElkfS9vcmdzL3tvcmdJZH0ve2NvbGxlY3Rpb259ICovXG4gIGFwcE9yZzogKGFwcElkOiBBcHBJZCwgb3JnSWQ6IHN0cmluZywgY29sbGVjdGlvbk5hbWU6IHN0cmluZyk6IHN0cmluZyA9PlxuICAgIGBhcHBzLyR7YXBwSWR9L29yZ3MvJHtvcmdJZH0vJHtjb2xsZWN0aW9uTmFtZX1gLFxuXG4gIC8qKiBQZXItYXBwIHBlcmZpbCBww7pibGljbyBkZWwgdXNlcjogYXBwcy97YXBwSWR9L3Byb2ZpbGVzL3t1aWR9ICovXG4gIGFwcFByb2ZpbGU6IChhcHBJZDogQXBwSWQsIHVzZXJJZDogc3RyaW5nKTogc3RyaW5nID0+IGBhcHBzLyR7YXBwSWR9L3Byb2ZpbGVzLyR7dXNlcklkfWAsXG5cbiAgLyoqIEluYm94IGdsb2JhbCBkZWwgdXNlciAoY3Jvc3MtYXBwIGNyb3NzLW9yZykgKi9cbiAgdXNlck5vdGlmaWNhdGlvbnM6ICh1c2VySWQ6IHN0cmluZyk6IHN0cmluZyA9PiBgdXNlcnMvJHt1c2VySWR9L25vdGlmaWNhdGlvbnNgLFxuXG4gIC8qKiBDcm9zcy1hcHAgc2hhcmVkIChzaW4gbmFtZXNwYWNlLCBuaXZlbCByYcOteikgKi9cbiAgc2hhcmVkOiB7XG4gICAgLyoqIERvYyBwcml2YWRvIGRlbCB1c2VyIOKAlCAvdXNlcnMve3VpZH0gKi9cbiAgICB1c2VyczogJ3VzZXJzJyxcbiAgICAvKiogUGVyZmlsZXMgcMO6YmxpY29zIGdsb2JhbGVzIOKAlCAvcHJvZmlsZXMve3VpZH0gKi9cbiAgICBwcm9maWxlczogJ3Byb2ZpbGVzJyxcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEhFTFBFUjogQ3JlYXRlIEZpcmViYXNlIENvbmZpZyBmcm9tIEVudmlyb25tZW50XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogT3BjaW9uZXMgcGFyYSBjcmVhciBsYSBjb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUZpcmViYXNlQ29uZmlnT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDb25maWd1cmFjacOzbiBkZSBlbXVsYWRvcmVzIChwYXJhIGRlc2Fycm9sbG8gbG9jYWwpLlxuICAgKiBQYXNhIHR1IHByb3BpYSBjb25maWd1cmFjacOzbiBjb24gaG9zdHMgeSBwdWVydG9zLlxuICAgKi9cbiAgZW11bGF0b3I/OiBFbXVsYXRvckNvbmZpZztcbiAgLyoqIEhhYmlsaXRhciBwZXJzaXN0ZW5jaWEgb2ZmbGluZSBkZSBGaXJlc3RvcmUgKi9cbiAgcGVyc2lzdGVuY2U/OiBib29sZWFuO1xuICAvKipcbiAgICogSUQgZGUgbGEgYXBsaWNhY2nDs24gcGFyYSBuYW1lc3BhY2luZyBhdXRvbcOhdGljby5cbiAgICogQ3VhbmRvIHNlIGNvbmZpZ3VyYSwgRmlyZXN0b3JlU2VydmljZSB5IFN0b3JhZ2VTZXJ2aWNlIHByZWZpamFuIGF1dG9tw6F0aWNhbWVudGUgbG9zIHBhdGhzLlxuICAgKi9cbiAgYXBwSWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBIYWJpbGl0YXIgRmlyZWJhc2UgQW5hbHl0aWNzIC8gR0E0LlxuICAgKiBSZXF1aWVyZSBtZWFzdXJlbWVudElkIGVuIGZpcmViYXNlIGNvbmZpZy5cbiAgICovXG4gIGVuYWJsZUFuYWx5dGljcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb25maWd1cmFjacOzbiBkZXRhbGxhZGEgZGUgQW5hbHl0aWNzLlxuICAgKiBTb2xvIGFwbGljYSBzaSBlbmFibGVBbmFseXRpY3MgZXMgdHJ1ZS5cbiAgICovXG4gIGFuYWx5dGljc0NvbmZpZz86IEFuYWx5dGljc0NvbmZpZztcbn1cblxuLyoqXG4gKiBDcmVhIGxhIGNvbmZpZ3VyYWNpw7NuIGNvbXBsZXRhIGRlIEZpcmViYXNlIGRlc2RlIHZhcmlhYmxlcyBkZSBlbnRvcm5vLlxuICogVXNhIGVzdG8gZW4gZWwgZW52aXJvbm1lbnQudHMgZGUgY2FkYSBhcHAuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIGVudmlyb25tZW50LnRzXG4gKiBpbXBvcnQgeyBjcmVhdGVGaXJlYmFzZUNvbmZpZyB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKiBpbXBvcnQgeyBBUFBfSURTLCBFTVVMQVRPUl9DT05GSUcsIFVTRV9FTVVMQVRPUlMgfSBmcm9tICcuLi9jb25maWcvYXBwLWNvbmZpZyc7XG4gKiBpbXBvcnQgZmlyZWJhc2VDb25maWcgZnJvbSAnLi4vY29uZmlnL2ZpcmViYXNlLmNvbmZpZy5qc29uJztcbiAqXG4gKiBleHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XG4gKiAgIHZhbHRlY2hGaXJlYmFzZTogY3JlYXRlRmlyZWJhc2VDb25maWcoXG4gKiAgICAge1xuICogICAgICAgLi4uZmlyZWJhc2VDb25maWcsXG4gKiAgICAgICBlbmFibGVNZXNzYWdpbmc6IHRydWUsXG4gKiAgICAgICBtZXNzYWdpbmdWYXBpZEtleTogJ0JITHguLi4nLFxuICogICAgIH0sXG4gKiAgICAge1xuICogICAgICAgZW11bGF0b3I6IFVTRV9FTVVMQVRPUlMgPyBFTVVMQVRPUl9DT05GSUcgOiB1bmRlZmluZWQsXG4gKiAgICAgICBwZXJzaXN0ZW5jZTogdHJ1ZSxcbiAqICAgICAgIGFwcElkOiBBUFBfSURTLk1ZX0FQUCxcbiAqICAgICB9XG4gKiAgICksXG4gKiB9O1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmlyZWJhc2VDb25maWcoXG4gIGNvbmZpZzogRmlyZWJhc2VDb25maWcsXG4gIG9wdGlvbnM6IENyZWF0ZUZpcmViYXNlQ29uZmlnT3B0aW9ucyA9IHt9XG4pOiBWYWx0ZWNoRmlyZWJhc2VDb25maWcge1xuICBjb25zdCB7IGVtdWxhdG9yLCBwZXJzaXN0ZW5jZSA9IHRydWUsIGFwcElkLCBlbmFibGVBbmFseXRpY3MsIGFuYWx5dGljc0NvbmZpZyB9ID0gb3B0aW9ucztcblxuICAvLyBFeHRyYWVyIGNhbXBvcyBkZSBtZXNzYWdpbmcgZGVsIGNvbmZpZyAobnVldm9zIGNhbXBvcyBvcGNpb25hbGVzKVxuICBjb25zdCB7IGVuYWJsZU1lc3NhZ2luZyA9IGZhbHNlLCBtZXNzYWdpbmdWYXBpZEtleSwgLi4uZmlyZWJhc2VDb3JlIH0gPSBjb25maWc7XG5cbiAgcmV0dXJuIHtcbiAgICBmaXJlYmFzZTogZmlyZWJhc2VDb3JlIGFzIEZpcmViYXNlQ29uZmlnLFxuICAgIHBlcnNpc3RlbmNlLFxuICAgIGVuYWJsZU1lc3NhZ2luZyxcbiAgICBtZXNzYWdpbmdWYXBpZEtleSxcbiAgICBlbXVsYXRvcixcbiAgICBhcHBJZCxcbiAgICBlbmFibGVBbmFseXRpY3MsXG4gICAgYW5hbHl0aWNzQ29uZmlnLFxuICB9O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBVVElMSVRZOiBDaGVjayBpZiBydW5uaW5nIGluIGVtdWxhdG9yIG1vZGVcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBWZXJpZmljYSBzaSBsYSBjb25maWd1cmFjacOzbiB0aWVuZSBlbXVsYWRvcmVzIGhhYmlsaXRhZG9zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VtdWxhdG9yTW9kZShjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gY29uZmlnLmVtdWxhdG9yICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=