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,183 +0,0 @@
1
- /**
2
- * Configuración de espaciado predefinida
3
- */
4
- export const ARTICLE_SPACING = {
5
- NONE: { top: 'none', bottom: 'none' },
6
- SMALL: { top: 'small', bottom: 'small' },
7
- MEDIUM: { top: 'medium', bottom: 'medium' },
8
- LARGE: { top: 'large', bottom: 'large' },
9
- XLARGE: { top: 'xlarge', bottom: 'xlarge' },
10
- // Espaciados específicos para elementos
11
- TITLE: { top: 'large', bottom: 'medium' },
12
- SUBTITLE: { top: 'medium', bottom: 'small' },
13
- PARAGRAPH: { top: 'small', bottom: 'medium' },
14
- QUOTE: { top: 'medium', bottom: 'medium' },
15
- CODE: { top: 'medium', bottom: 'medium' },
16
- NOTE: { top: 'medium', bottom: 'medium' },
17
- COMMAND: { top: 'medium', bottom: 'medium' },
18
- LIST: { top: 'small', bottom: 'medium' },
19
- BUTTON: { top: 'medium', bottom: 'medium' },
20
- IMAGE: { top: 'large', bottom: 'large' },
21
- SEPARATOR: { top: 'large', bottom: 'large' },
22
- };
23
- /**
24
- * Función helper para crear elementos de artículo de forma fácil
25
- */
26
- export class ArticleBuilder {
27
- constructor() {
28
- this.elements = [];
29
- }
30
- /**
31
- * Añade un título al artículo
32
- */
33
- title(props, options) {
34
- this.elements.push({
35
- type: 'title',
36
- props,
37
- ...options,
38
- });
39
- return this;
40
- }
41
- /**
42
- * Añade un subtítulo al artículo
43
- */
44
- subtitle(props, options) {
45
- this.elements.push({
46
- type: 'subtitle',
47
- props,
48
- ...options,
49
- });
50
- return this;
51
- }
52
- /**
53
- * Añade un párrafo al artículo
54
- */
55
- paragraph(props, options) {
56
- this.elements.push({
57
- type: 'paragraph',
58
- props,
59
- ...options,
60
- });
61
- return this;
62
- }
63
- /**
64
- * Añade una cita al artículo
65
- */
66
- quote(props, options) {
67
- this.elements.push({
68
- type: 'quote',
69
- props,
70
- ...options,
71
- });
72
- return this;
73
- }
74
- /**
75
- * Añade código al artículo
76
- */
77
- code(code, language, options) {
78
- this.elements.push({
79
- type: 'code',
80
- props: { code, language },
81
- ...options,
82
- });
83
- return this;
84
- }
85
- /**
86
- * Añade una lista al artículo
87
- */
88
- list(items, listType, options) {
89
- this.elements.push({
90
- type: 'list',
91
- props: { items, listType },
92
- ...options,
93
- });
94
- return this;
95
- }
96
- /**
97
- * Añade un botón al artículo
98
- */
99
- button(props, alignment, options) {
100
- this.elements.push({
101
- type: 'button',
102
- props: { ...props, alignment },
103
- ...options,
104
- });
105
- return this;
106
- }
107
- /**
108
- * Añade un separador al artículo
109
- */
110
- separator(style, options) {
111
- this.elements.push({
112
- type: 'separator',
113
- props: { style },
114
- ...options,
115
- });
116
- return this;
117
- }
118
- /**
119
- * Añade una imagen al artículo
120
- */
121
- image(src, alt, caption, options) {
122
- this.elements.push({
123
- type: 'image',
124
- props: { src, alt, caption },
125
- ...options,
126
- });
127
- return this;
128
- }
129
- /**
130
- * Añade una nota destacada al artículo
131
- */
132
- note(text, prefix, color, options) {
133
- this.elements.push({
134
- type: 'note',
135
- props: {
136
- text,
137
- prefix: prefix || 'Nota:',
138
- color: color || 'warning',
139
- textColor: 'dark',
140
- size: 'medium',
141
- rounded: true,
142
- },
143
- ...options,
144
- });
145
- return this;
146
- }
147
- /**
148
- * Añade un comando de terminal al artículo
149
- * Acepta un string simple o un array de comandos
150
- */
151
- command(command, options) {
152
- const commands = Array.isArray(command) ? command : [command];
153
- this.elements.push({
154
- type: 'command',
155
- props: {
156
- lines: commands.map(cmd => ({ text: cmd, type: 'command' })),
157
- showCopyButton: true,
158
- },
159
- ...options,
160
- });
161
- return this;
162
- }
163
- /**
164
- * Construye el artículo final
165
- */
166
- build(config) {
167
- return {
168
- elements: this.elements,
169
- maxWidth: 'auto',
170
- centered: true,
171
- theme: 'auto',
172
- ...config,
173
- };
174
- }
175
- /**
176
- * Resetea el builder para crear un nuevo artículo
177
- */
178
- clear() {
179
- this.elements = [];
180
- return this;
181
- }
182
- }
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2FydGljbGUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ1ZBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBb0I7SUFDdkQsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFvQjtJQUMxRCxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQW9CO0lBQzdELEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBb0I7SUFDMUQsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFvQjtJQUU3RCx3Q0FBd0M7SUFDeEMsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFvQjtJQUMzRCxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQW9CO0lBQzlELFNBQVMsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBb0I7SUFDL0QsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFvQjtJQUM1RCxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQW9CO0lBQzNELElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBb0I7SUFDM0QsT0FBTyxF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QUssRUFBRTtnQkFDTCxLQUFLLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFrQixFQUFFLENBQUMsQ0FBQztnQkFDckUsY0FBYyxFQUFFLElBQUk7YUFDckI7WUFDRCxHQUFHLE9BQU87U0FDYyxDQUFDLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsTUFBaUM7UUFDckMsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsTUFBTTtZQUNoQixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsR0FBRyxNQUFNO1NBQ1YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgVGV4dE1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90eXBlcyc7XG5pbXBvcnQgeyBUaXRsZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbi8qKlxuICogVGlwb3MgZGUgY29udGVuaWRvIHNvcG9ydGFkb3MgZW4gZWwgY29tcG9uZW50ZSB2YWwtYXJ0aWNsZVxuICovXG5leHBvcnQgdHlwZSBBcnRpY2xlQ29udGVudFR5cGUgPVxuICB8ICd0aXRsZSdcbiAgfCAnc3VidGl0bGUnXG4gIHwgJ3RleHQnXG4gIHwgJ3BhcmFncmFwaCdcbiAgfCAncXVvdGUnXG4gIHwgJ2hpZ2hsaWdodCdcbiAgfCAnY29kZSdcbiAgfCAnbm90ZSdcbiAgfCAnY29tbWFuZCdcbiAgfCAnbGlzdCdcbiAgfCAnYnV0dG9uJ1xuICB8ICdzZXBhcmF0b3InXG4gIHwgJ2ltYWdlJ1xuICB8ICd2aWRlbydcbiAgfCAnY3VzdG9tJztcblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBkZSBlc3BhY2lhZG8gZW50cmUgZWxlbWVudG9zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZVNwYWNpbmcge1xuICAvKiogRXNwYWNpYWRvIHN1cGVyaW9yICovXG4gIHRvcD86ICdub25lJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJztcbiAgLyoqIEVzcGFjaWFkbyBpbmZlcmlvciAqL1xuICBib3R0b20/OiAnbm9uZScgfCAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJ3hsYXJnZSc7XG4gIC8qKiBFc3BhY2lhZG8gbGF0ZXJhbCAqL1xuICBob3Jpem9udGFsPzogJ25vbmUnIHwgJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYWNpw7NuIGJhc2UgcGFyYSBjdWFscXVpZXIgZWxlbWVudG8gZGVsIGFydMOtY3Vsb1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VBcnRpY2xlRWxlbWVudCB7XG4gIC8qKiBUaXBvIGRlIGVsZW1lbnRvICovXG4gIHR5cGU6IEFydGljbGVDb250ZW50VHlwZTtcbiAgLyoqIElEIMO6bmljbyBkZWwgZWxlbWVudG8gKG9wY2lvbmFsKSAqL1xuICBpZD86IHN0cmluZztcbiAgLyoqIENsYXNlcyBDU1MgYWRpY2lvbmFsZXMgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIC8qKiBDb25maWd1cmFjacOzbiBkZSBlc3BhY2lhZG8gKi9cbiAgc3BhY2luZz86IEFydGljbGVTcGFjaW5nO1xuICAvKiogRWxlbWVudG8gdmlzaWJsZSBjb25kaWNpb25hbG1lbnRlICovXG4gIHZpc2libGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVsZW1lbnRvIGRlIHTDrXR1bG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlVGl0bGVFbGVtZW50IGV4dGVuZHMgQmFzZUFydGljbGVFbGVtZW50IHtcbiAgdHlwZTogJ3RpdGxlJztcbiAgcHJvcHM6IFRpdGxlTWV0YWRhdGE7XG59XG5cbi8qKlxuICogRWxlbWVudG8gZGUgc3VidMOtdHVsb1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVTdWJ0aXRsZUVsZW1lbnQgZXh0ZW5kcyBCYXNlQXJ0aWNsZUVsZW1lbnQge1xuICB0eXBlOiAnc3VidGl0bGUnO1xuICBwcm9wczogVGl0bGVNZXRhZGF0YTtcbn1cblxuLyoqXG4gKiBFbGVtZW50byBkZSB0ZXh0by9ww6FycmFmb1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVUZXh0RWxlbWVudCBleHRlbmRzIEJhc2VBcnRpY2xlRWxlbWVudCB7XG4gIHR5cGU6ICd0ZXh0JyB8ICdwYXJhZ3JhcGgnO1xuICBwcm9wczogVGV4dE1ldGFkYXRhO1xufVxuXG4vKipcbiAqIEVsZW1lbnRvIGRlIGNpdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlUXVvdGVFbGVtZW50IGV4dGVuZHMgQmFzZUFydGljbGVFbGVtZW50IHtcbiAgdHlwZTogJ3F1b3RlJztcbiAgcHJvcHM6IFRleHRNZXRhZGF0YSAmIHtcbiAgICAvKiogQXV0b3IgZGUgbGEgY2l0YSAqL1xuICAgIGF1dGhvcj86IHN0cmluZztcbiAgICAvKiogRnVlbnRlIGRlIGxhIGNpdGEgKi9cbiAgICBzb3VyY2U/OiBzdHJpbmc7XG4gICAgLyoqIENvbG9yIGRlbCBub21icmUgZGVsIGF1dG9yICovXG4gICAgYXV0aG9yQ29sb3I/OiBDb2xvcjtcbiAgICAvKiogQWxpbmVhY2nDs24gZGVsIHRleHRvICovXG4gICAgYWxpZ25tZW50PzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuICAgIC8qKiBNb3N0cmFyIGNvbWlsbGFzIGRlY29yYXRpdmFzICovXG4gICAgc2hvd1F1b3RlTWFyaz86IGJvb2xlYW47XG4gIH07XG59XG5cbi8qKlxuICogRWxlbWVudG8gZGUgdGV4dG8gZGVzdGFjYWRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZUhpZ2hsaWdodEVsZW1lbnQgZXh0ZW5kcyBCYXNlQXJ0aWNsZUVsZW1lbnQge1xuICB0eXBlOiAnaGlnaGxpZ2h0JztcbiAgcHJvcHM6IFRleHRNZXRhZGF0YSAmIHtcbiAgICAvKiogQ29sb3IgZGUgZm9uZG8gZGVsIGhpZ2hsaWdodCAqL1xuICAgIGJhY2tncm91bmRDb2xvcj86IENvbG9yO1xuICAgIC8qKiBFc3F1aW5hcyByZWRvbmRlYWRhcyAqL1xuICAgIHJvdW5kZWQ/OiBib29sZWFuO1xuICB9O1xufVxuXG4vKipcbiAqIEVsZW1lbnRvIGRlIGPDs2RpZ29cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlQ29kZUVsZW1lbnQgZXh0ZW5kcyBCYXNlQXJ0aWNsZUVsZW1lbnQge1xuICB0eXBlOiAnY29kZSc7XG4gIHByb3BzOiB7XG4gICAgLyoqIEPDs2RpZ28gYSBtb3N0cmFyICovXG4gICAgY29kZTogc3RyaW5nO1xuICAgIC8qKiBMZW5ndWFqZSBkZSBwcm9ncmFtYWNpw7NuICovXG4gICAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIE1vc3RyYXIgbsO6bWVyb3MgZGUgbMOtbmVhICovXG4gICAgc2hvd0xpbmVOdW1iZXJzPzogYm9vbGVhbjtcbiAgICAvKiogVGVtYSBkZWwgY8OzZGlnbyAqL1xuICAgIHRoZW1lPzogJ2xpZ2h0JyB8ICdkYXJrJztcbiAgfTtcbn1cblxuLyoqXG4gKiBFbGVtZW50byBkZSBub3RhIGRlc3RhY2FkYVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVOb3RlRWxlbWVudCBleHRlbmRzIEJhc2VBcnRpY2xlRWxlbWVudCB7XG4gIHR5cGU6ICdub3RlJztcbiAgcHJvcHM6IHtcbiAgICAvKiogVGV4dG8gcHJpbmNpcGFsIGRlIGxhIG5vdGEuIFB1ZWRlIGNvbnRlbmVyIGA8c3Ryb25nPmAvYDxiPmAgc2kgYGFsbG93UGFydGlhbEJvbGRgIGVzdMOhIGFjdGl2by4gKi9cbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgLyoqIFByZWZpam8gZW4gbmVncml0YSAoZWo6IFwiTm90YTpcIikuIFBhc2EgYCcnYCAoc3RyaW5nIHZhY8OtbykgcGFyYSBzdXByaW1pciBlbCBwcmVmaWpvLiAqL1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICAvKiogQ29sb3IgZGUgZm9uZG8gKi9cbiAgICBjb2xvcj86IENvbG9yO1xuICAgIC8qKiBDb2xvciBkZWwgdGV4dG8gKi9cbiAgICB0ZXh0Q29sb3I/OiBDb2xvcjtcbiAgICAvKiogVGFtYcOxbyBkZWwgdGV4dG8gKi9cbiAgICBzaXplPzogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyB8ICd4bGFyZ2UnO1xuICAgIC8qKiBFc3F1aW5hcyByZWRvbmRlYWRhcyAqL1xuICAgIHJvdW5kZWQ/OiBib29sZWFuO1xuICAgIC8qKiBQYWRkaW5nIHBlcnNvbmFsaXphZG8gKi9cbiAgICBwYWRkaW5nPzogc3RyaW5nO1xuICAgIC8qKiBSZW5kZXJpemEgYDxzdHJvbmc+YC9gPGI+YCBpbmxpbmUgZW4gYHRleHRgIHZpYSBpbm5lckhUTUwuIERlZmF1bHQgYGZhbHNlYC4gKi9cbiAgICBhbGxvd1BhcnRpYWxCb2xkPzogYm9vbGVhbjtcbiAgICAvKiogUHJvY2VzYSBVUkxzIHkgYFt0ZXh0XSh1cmwpYCBlbiBgdGV4dGAuIERlZmF1bHQgYGZhbHNlYC4gKi9cbiAgICBwcm9jZXNzTGlua3M/OiBib29sZWFuO1xuICAgIC8qKiBDb21wYWN0IG1vZGUg4oCUIGlubGluZS1ibG9jayBmaXQtY29udGVudCwgcGFkZGluZyByZWR1Y2lkbywgc2luIGxlZnQtYm9yZGVyLiAqL1xuICAgIGNvbXBhY3Q/OiBib29sZWFuO1xuICAgIC8qKiBBbGluZWFjacOzbiBkZWwgdGV4dG8uIERlZmF1bHQgYCdsZWZ0J2AuICovXG4gICAgYWxpZ24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCc7XG4gIH07XG59XG5cbi8qKlxuICogRWxlbWVudG8gZGUgY29tYW5kbyBkZSB0ZXJtaW5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVDb21tYW5kRWxlbWVudCBleHRlbmRzIEJhc2VBcnRpY2xlRWxlbWVudCB7XG4gIHR5cGU6ICdjb21tYW5kJztcbiAgcHJvcHM6IHtcbiAgICAvKiogTMOtbmVhcyBkZSBjb21hbmRvICovXG4gICAgbGluZXM6IEFycmF5PHtcbiAgICAgIC8qKiBUZXh0byBkZWwgY29tYW5kbyAqL1xuICAgICAgdGV4dDogc3RyaW5nO1xuICAgICAgLyoqIFRpcG8gZGUgbMOtbmVhICovXG4gICAgICB0eXBlPzogJ25vcm1hbCcgfCAnY29tbWFuZCcgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xuICAgIH0+O1xuICAgIC8qKiBNb3N0cmFyIGJvdMOzbiBkZSBjb3BpYXIgKi9cbiAgICBzaG93Q29weUJ1dHRvbj86IGJvb2xlYW47XG4gICAgLyoqIExlbmd1YWplIChvcGNpb25hbCkgKi9cbiAgICBsYW5ndWFnZT86IHN0cmluZztcbiAgfTtcbn1cblxuLyoqXG4gKiBFbGVtZW50byBkZSBsaXN0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVMaXN0RWxlbWVudCBleHRlbmRzIEJhc2VBcnRpY2xlRWxlbWVudCB7XG4gIHR5cGU6ICdsaXN0JztcbiAgcHJvcHM6IHtcbiAgICAvKiogRWxlbWVudG9zIGRlIGxhIGxpc3RhICovXG4gICAgaXRlbXM6IEFycmF5PHtcbiAgICAgIC8qKiBUZXh0byBkZWwgZWxlbWVudG8gKi9cbiAgICAgIHRleHQ6IHN0cmluZztcbiAgICAgIC8qKiBDb25maWd1cmFjacOzbiBkZSBjb250ZW5pZG8gcmVhY3Rpdm8gKi9cbiAgICAgIGNvbnRlbnRLZXk/OiBzdHJpbmc7XG4gICAgICBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XG4gICAgICBjb250ZW50RmFsbGJhY2s/OiBzdHJpbmc7XG4gICAgICBjb250ZW50SW50ZXJwb2xhdGlvbj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj47XG4gICAgfT47XG4gICAgLyoqIFRpcG8gZGUgbGlzdGEgKi9cbiAgICBsaXN0VHlwZT86ICd1bm9yZGVyZWQnIHwgJ29yZGVyZWQnIHwgJ2NoZWNrbGlzdCc7XG4gICAgLyoqIENvbG9yIGRlIGxvcyBlbGVtZW50b3MgKi9cbiAgICBjb2xvcj86IENvbG9yO1xuICB9O1xufVxuXG4vKipcbiAqIEVsZW1lbnRvIGRlIGJvdMOzblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVCdXR0b25FbGVtZW50IGV4dGVuZHMgQmFzZUFydGljbGVFbGVtZW50IHtcbiAgdHlwZTogJ2J1dHRvbic7XG4gIHByb3BzOiBCdXR0b25NZXRhZGF0YSAmIHtcbiAgICAvKiogQWxpbmVhY2nDs24gZGVsIGJvdMOzbiAqL1xuICAgIGFsaWdubWVudD86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JztcbiAgfTtcbn1cblxuLyoqXG4gKiBFbGVtZW50byBzZXBhcmFkb3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlU2VwYXJhdG9yRWxlbWVudCBleHRlbmRzIEJhc2VBcnRpY2xlRWxlbWVudCB7XG4gIHR5cGU6ICdzZXBhcmF0b3InO1xuICBwcm9wczoge1xuICAgIC8qKiBUaXBvIGRlIHNlcGFyYWRvciAqL1xuICAgIHN0eWxlPzogJ2xpbmUnIHwgJ2RvdHMnIHwgJ3NwYWNlJztcbiAgICAvKiogQ29sb3IgZGVsIHNlcGFyYWRvciAqL1xuICAgIGNvbG9yPzogQ29sb3I7XG4gICAgLyoqIEdyb3NvciBkZWwgc2VwYXJhZG9yICovXG4gICAgdGhpY2tuZXNzPzogJ3RoaW4nIHwgJ21lZGl1bScgfCAndGhpY2snO1xuICB9O1xufVxuXG4vKipcbiAqIEVsZW1lbnRvIGRlIGltYWdlblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGVJbWFnZUVsZW1lbnQgZXh0ZW5kcyBCYXNlQXJ0aWNsZUVsZW1lbnQge1xuICB0eXBlOiAnaW1hZ2UnO1xuICBwcm9wczoge1xuICAgIC8qKiBVUkwgZGUgbGEgaW1hZ2VuICovXG4gICAgc3JjOiBzdHJpbmc7XG4gICAgLyoqIFRleHRvIGFsdGVybmF0aXZvICovXG4gICAgYWx0OiBzdHJpbmc7XG4gICAgLyoqIFTDrXR1bG8gZGUgbGEgaW1hZ2VuICovXG4gICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgLyoqIExleWVuZGEgZGUgbGEgaW1hZ2VuICovXG4gICAgY2FwdGlvbj86IHN0cmluZztcbiAgICAvKiogQ29uZmlndXJhY2nDs24gZGUgY29udGVuaWRvIHJlYWN0aXZvIHBhcmEgY2FwdGlvbiAqL1xuICAgIGNhcHRpb25Db250ZW50S2V5Pzogc3RyaW5nO1xuICAgIGNhcHRpb25Db250ZW50Q2xhc3M/OiBzdHJpbmc7XG4gICAgY2FwdGlvbkNvbnRlbnRGYWxsYmFjaz86IHN0cmluZztcbiAgICAvKiogQWxpbmVhY2nDs24gZGUgbGEgaW1hZ2VuICovXG4gICAgYWxpZ25tZW50PzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xuICAgIC8qKiBBbmNobyBtw6F4aW1vICovXG4gICAgbWF4V2lkdGg/OiBzdHJpbmc7XG4gICAgLyoqIEltYWdlbiBjb24gYm9yZGVzIHJlZG9uZGVhZG9zICovXG4gICAgcm91bmRlZD86IGJvb2xlYW47XG4gICAgLyoqIFRhbWHDsW8gZGUgbGEgaW1hZ2VuICovXG4gICAgc2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAneGxhcmdlJztcbiAgICAvKiogTW9kbyBwcmV2aWV3IChjbGljayBwYXJhIGFtcGxpYXIpICovXG4gICAgcHJldmlldz86IGJvb2xlYW47XG4gIH07XG59XG5cbi8qKlxuICogRWxlbWVudG8gZGUgdmlkZW9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlVmlkZW9FbGVtZW50IGV4dGVuZHMgQmFzZUFydGljbGVFbGVtZW50IHtcbiAgdHlwZTogJ3ZpZGVvJztcbiAgcHJvcHM6IHtcbiAgICAvKiogVVJMIGRlbCB2aWRlbyAqL1xuICAgIHNyYzogc3RyaW5nO1xuICAgIC8qKiBJbWFnZW4gZGUgcG9zdGVyICovXG4gICAgcG9zdGVyPzogc3RyaW5nO1xuICAgIC8qKiBUw610dWxvIGRlbCB2aWRlbyAqL1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIC8qKiBDb250cm9sZXMgdmlzaWJsZXMgKi9cbiAgICBjb250cm9scz86IGJvb2xlYW47XG4gICAgLyoqIFJlcHJvZHVjY2nDs24gYXV0b23DoXRpY2EgKi9cbiAgICBhdXRvcGxheT86IGJvb2xlYW47XG4gICAgLyoqIFNpbGVuY2lhZG8gcG9yIGRlZmVjdG8gKi9cbiAgICBtdXRlZD86IGJvb2xlYW47XG4gICAgLyoqIEFuY2hvIG3DoXhpbW8gKi9cbiAgICBtYXhXaWR0aD86IHN0cmluZztcbiAgfTtcbn1cblxuLyoqXG4gKiBFbGVtZW50byBwZXJzb25hbGl6YWRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZUN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBCYXNlQXJ0aWNsZUVsZW1lbnQge1xuICB0eXBlOiAnY3VzdG9tJztcbiAgcHJvcHM6IHtcbiAgICAvKiogQ29udGVuaWRvIEhUTUwgcGVyc29uYWxpemFkbyAqL1xuICAgIGh0bWxDb250ZW50Pzogc3RyaW5nO1xuICAgIC8qKiBDbGFzZSBkZSBjb21wb25lbnRlIHBlcnNvbmFsaXphZG8gKi9cbiAgICBjb21wb25lbnRDbGFzcz86IGFueTtcbiAgICAvKiogUHJvcHMgcGFyYSBlbCBjb21wb25lbnRlIHBlcnNvbmFsaXphZG8gKi9cbiAgICBjb21wb25lbnRQcm9wcz86IGFueTtcbiAgfTtcbn1cblxuLyoqXG4gKiBVbmnDs24gZGUgdG9kb3MgbG9zIHRpcG9zIGRlIGVsZW1lbnRvcyBwb3NpYmxlc1xuICovXG5leHBvcnQgdHlwZSBBcnRpY2xlRWxlbWVudCA9XG4gIHwgQXJ0aWNsZVRpdGxlRWxlbWVudFxuICB8IEFydGljbGVTdWJ0aXRsZUVsZW1lbnRcbiAgfCBBcnRpY2xlVGV4dEVsZW1lbnRcbiAgfCBBcnRpY2xlUXVvdGVFbGVtZW50XG4gIHwgQXJ0aWNsZUhpZ2hsaWdodEVsZW1lbnRcbiAgfCBBcnRpY2xlQ29kZUVsZW1lbnRcbiAgfCBBcnRpY2xlTm90ZUVsZW1lbnRcbiAgfCBBcnRpY2xlQ29tbWFuZEVsZW1lbnRcbiAgfCBBcnRpY2xlTGlzdEVsZW1lbnRcbiAgfCBBcnRpY2xlQnV0dG9uRWxlbWVudFxuICB8IEFydGljbGVTZXBhcmF0b3JFbGVtZW50XG4gIHwgQXJ0aWNsZUltYWdlRWxlbWVudFxuICB8IEFydGljbGVWaWRlb0VsZW1lbnRcbiAgfCBBcnRpY2xlQ3VzdG9tRWxlbWVudDtcblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBkZWwgYXJ0w61jdWxvIGNvbXBsZXRvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZU1ldGFkYXRhIHtcbiAgLyoqIEVsZW1lbnRvcyBkZWwgYXJ0w61jdWxvICovXG4gIGVsZW1lbnRzOiBBcnRpY2xlRWxlbWVudFtdO1xuICAvKiogUGFkZGluZyBpbnRlcm5vIGRlbCBjb250ZW5lZG9yIGFydGljbGUgKi9cbiAgY29udGFpbmVyU3BhY2luZz86IEFydGljbGVTcGFjaW5nO1xuICAvKiogT3ZlcnJpZGUgZ2xvYmFsIGRlIHNwYWNpbmcgcGFyYSBlbGVtZW50b3MgKHByaW9yaWRhZCBzb2JyZSBzcGFjaW5nIHBvciB0aXBvKSAqL1xuICBlbGVtZW50U3BhY2luZz86IEFydGljbGVTcGFjaW5nO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNhciBlbGVtZW50U3BhY2luZyBlbiBzdSBsdWdhciAqL1xuICBkZWZhdWx0U3BhY2luZz86IEFydGljbGVTcGFjaW5nO1xuICAvKiogQW5jaG8gbcOheGltbyBkZWwgYXJ0w61jdWxvICovXG4gIG1heFdpZHRoPzogc3RyaW5nO1xuICAvKiogQ2VudHJhciBlbCBhcnTDrWN1bG8gKi9cbiAgY2VudGVyZWQ/OiBib29sZWFuO1xuICAvKiogVGVtYSBkZWwgYXJ0w61jdWxvICovXG4gIHRoZW1lPzogJ2xpZ2h0JyB8ICdkYXJrJyB8ICdhdXRvJztcbiAgLyoqIENsYXNlcyBDU1MgYWRpY2lvbmFsZXMgKi9cbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhY2nDs24gZGUgZXNwYWNpYWRvIHByZWRlZmluaWRhXG4gKi9cbmV4cG9ydCBjb25zdCBBUlRJQ0xFX1NQQUNJTkcgPSB7XG4gIE5PTkU6IHsgdG9wOiAnbm9uZScsIGJvdHRvbTogJ25vbmUnIH0gYXMgQXJ0aWNsZVNwYWNpbmcsXG4gIFNNQUxMOiB7IHRvcDogJ3NtYWxsJywgYm90dG9tOiAnc21hbGwnIH0gYXMgQXJ0aWNsZVNwYWNpbmcsXG4gIE1FRElVTTogeyB0b3A6ICdtZWRpdW0nLCBib3R0b206ICdtZWRpdW0nIH0gYXMgQXJ0aWNsZVNwYWNpbmcsXG4gIExBUkdFOiB7IHRvcDogJ2xhcmdlJywgYm90dG9tOiAnbGFyZ2UnIH0gYXMgQXJ0aWNsZVNwYWNpbmcsXG4gIFhMQVJHRTogeyB0b3A6ICd4bGFyZ2UnLCBib3R0b206ICd4bGFyZ2UnIH0gYXMgQXJ0aWNsZVNwYWNpbmcsXG5cbiAgLy8gRXNwYWNpYWRvcyBlc3BlY8OtZmljb3MgcGFyYSBlbGVtZW50b3NcbiAgVElUTEU6IHsgdG9wOiAnbGFyZ2UnLCBib3R0b206ICdtZWRpdW0nIH0gYXMgQXJ0aWNsZVNwYWNpbmcsXG4gIFNVQlRJVExFOiB7IHRvcDogJ21lZGl1bScsIGJvdHRvbTogJ3NtYWxsJyB9IGFzIEFydGljbGVTcGFjaW5nLFxuICBQQVJBR1JBUEg6IHsgdG9wOiAnc21hbGwnLCBib3R0b206ICdtZWRpdW0nIH0gYXMgQXJ0aWNsZVNwYWNpbmcsXG4gIFFVT1RFOiB7IHRvcDogJ21lZGl1bScsIGJvdHRvbTogJ21lZGl1bScgfSBhcyBBcnRpY2xlU3BhY2luZyxcbiAgQ09ERTogeyB0b3A6ICdtZWRpdW0nLCBib3R0b206ICdtZWRpdW0nIH0gYXMgQXJ0aWNsZVNwYWNpbmcsXG4gIE5PVEU6IHsgdG9wOiAnbWVkaXVtJywgYm90dG9tOiAnbWVkaXVtJyB9IGFzIEFydGljbGVTcGFjaW5nLFxuICBDT01NQU5EOiB7IHRvcDogJ21lZGl1bScsIGJvdHRvbTogJ21lZGl1bScgfSBhcyBBcnRpY2xlU3BhY2luZyxcbiAgTElTVDogeyB0b3A6ICdzbWFsbCcsIGJvdHRvbTogJ21lZGl1bScgfSBhcyBBcnRpY2xlU3BhY2luZyxcbiAgQlVUVE9OOiB7IHRvcDogJ21lZGl1bScsIGJvdHRvbTogJ21lZGl1bScgfSBhcyBBcnRpY2xlU3BhY2luZyxcbiAgSU1BR0U6IHsgdG9wOiAnbGFyZ2UnLCBib3R0b206ICdsYXJnZScgfSBhcyBBcnRpY2xlU3BhY2luZyxcbiAgU0VQQVJBVE9SOiB7IHRvcDogJ2xhcmdlJywgYm90dG9tOiAnbGFyZ2UnIH0gYXMgQXJ0aWNsZVNwYWNpbmcsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEZ1bmNpw7NuIGhlbHBlciBwYXJhIGNyZWFyIGVsZW1lbnRvcyBkZSBhcnTDrWN1bG8gZGUgZm9ybWEgZsOhY2lsXG4gKi9cbmV4cG9ydCBjbGFzcyBBcnRpY2xlQnVpbGRlciB7XG4gIHByaXZhdGUgZWxlbWVudHM6IEFydGljbGVFbGVtZW50W10gPSBbXTtcblxuICAvKipcbiAgICogQcOxYWRlIHVuIHTDrXR1bG8gYWwgYXJ0w61jdWxvXG4gICAqL1xuICB0aXRsZShwcm9wczogVGl0bGVNZXRhZGF0YSwgb3B0aW9ucz86IFBhcnRpYWw8QmFzZUFydGljbGVFbGVtZW50Pik6IEFydGljbGVCdWlsZGVyIHtcbiAgICB0aGlzLmVsZW1lbnRzLnB1c2goe1xuICAgICAgdHlwZTogJ3RpdGxlJyxcbiAgICAgIHByb3BzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9IGFzIEFydGljbGVUaXRsZUVsZW1lbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEHDsWFkZSB1biBzdWJ0w610dWxvIGFsIGFydMOtY3Vsb1xuICAgKi9cbiAgc3VidGl0bGUocHJvcHM6IFRpdGxlTWV0YWRhdGEsIG9wdGlvbnM/OiBQYXJ0aWFsPEJhc2VBcnRpY2xlRWxlbWVudD4pOiBBcnRpY2xlQnVpbGRlciB7XG4gICAgdGhpcy5lbGVtZW50cy5wdXNoKHtcbiAgICAgIHR5cGU6ICdzdWJ0aXRsZScsXG4gICAgICBwcm9wcyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSBhcyBBcnRpY2xlU3VidGl0bGVFbGVtZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBw7FhZGUgdW4gcMOhcnJhZm8gYWwgYXJ0w61jdWxvXG4gICAqL1xuICBwYXJhZ3JhcGgocHJvcHM6IFRleHRNZXRhZGF0YSwgb3B0aW9ucz86IFBhcnRpYWw8QmFzZUFydGljbGVFbGVtZW50Pik6IEFydGljbGVCdWlsZGVyIHtcbiAgICB0aGlzLmVsZW1lbnRzLnB1c2goe1xuICAgICAgdHlwZTogJ3BhcmFncmFwaCcsXG4gICAgICBwcm9wcyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSBhcyBBcnRpY2xlVGV4dEVsZW1lbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEHDsWFkZSB1bmEgY2l0YSBhbCBhcnTDrWN1bG9cbiAgICovXG4gIHF1b3RlKFxuICAgIHByb3BzOiBBcnRpY2xlUXVvdGVFbGVtZW50Wydwcm9wcyddLFxuICAgIG9wdGlvbnM/OiBQYXJ0aWFsPEJhc2VBcnRpY2xlRWxlbWVudD5cbiAgKTogQXJ0aWNsZUJ1aWxkZXIge1xuICAgIHRoaXMuZWxlbWVudHMucHVzaCh7XG4gICAgICB0eXBlOiAncXVvdGUnLFxuICAgICAgcHJvcHMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0gYXMgQXJ0aWNsZVF1b3RlRWxlbWVudCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQcOxYWRlIGPDs2RpZ28gYWwgYXJ0w61jdWxvXG4gICAqL1xuICBjb2RlKGNvZGU6IHN0cmluZywgbGFuZ3VhZ2U/OiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJ0aWFsPEJhc2VBcnRpY2xlRWxlbWVudD4pOiBBcnRpY2xlQnVpbGRlciB7XG4gICAgdGhpcy5lbGVtZW50cy5wdXNoKHtcbiAgICAgIHR5cGU6ICdjb2RlJyxcbiAgICAgIHByb3BzOiB7IGNvZGUsIGxhbmd1YWdlIH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0gYXMgQXJ0aWNsZUNvZGVFbGVtZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBw7FhZGUgdW5hIGxpc3RhIGFsIGFydMOtY3Vsb1xuICAgKi9cbiAgbGlzdChcbiAgICBpdGVtczogQXJ0aWNsZUxpc3RFbGVtZW50Wydwcm9wcyddWydpdGVtcyddLFxuICAgIGxpc3RUeXBlPzogQXJ0aWNsZUxpc3RFbGVtZW50Wydwcm9wcyddWydsaXN0VHlwZSddLFxuICAgIG9wdGlvbnM/OiBQYXJ0aWFsPEJhc2VBcnRpY2xlRWxlbWVudD5cbiAgKTogQXJ0aWNsZUJ1aWxkZXIge1xuICAgIHRoaXMuZWxlbWVudHMucHVzaCh7XG4gICAgICB0eXBlOiAnbGlzdCcsXG4gICAgICBwcm9wczogeyBpdGVtcywgbGlzdFR5cGUgfSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSBhcyBBcnRpY2xlTGlzdEVsZW1lbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEHDsWFkZSB1biBib3TDs24gYWwgYXJ0w61jdWxvXG4gICAqL1xuICBidXR0b24oXG4gICAgcHJvcHM6IEJ1dHRvbk1ldGFkYXRhLFxuICAgIGFsaWdubWVudD86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyxcbiAgICBvcHRpb25zPzogUGFydGlhbDxCYXNlQXJ0aWNsZUVsZW1lbnQ+XG4gICk6IEFydGljbGVCdWlsZGVyIHtcbiAgICB0aGlzLmVsZW1lbnRzLnB1c2goe1xuICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICBwcm9wczogeyAuLi5wcm9wcywgYWxpZ25tZW50IH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0gYXMgQXJ0aWNsZUJ1dHRvbkVsZW1lbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEHDsWFkZSB1biBzZXBhcmFkb3IgYWwgYXJ0w61jdWxvXG4gICAqL1xuICBzZXBhcmF0b3IoXG4gICAgc3R5bGU/OiAnbGluZScgfCAnZG90cycgfCAnc3BhY2UnLFxuICAgIG9wdGlvbnM/OiBQYXJ0aWFsPEJhc2VBcnRpY2xlRWxlbWVudD5cbiAgKTogQXJ0aWNsZUJ1aWxkZXIge1xuICAgIHRoaXMuZWxlbWVudHMucHVzaCh7XG4gICAgICB0eXBlOiAnc2VwYXJhdG9yJyxcbiAgICAgIHByb3BzOiB7IHN0eWxlIH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0gYXMgQXJ0aWNsZVNlcGFyYXRvckVsZW1lbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEHDsWFkZSB1bmEgaW1hZ2VuIGFsIGFydMOtY3Vsb1xuICAgKi9cbiAgaW1hZ2UoXG4gICAgc3JjOiBzdHJpbmcsXG4gICAgYWx0OiBzdHJpbmcsXG4gICAgY2FwdGlvbj86IHN0cmluZyxcbiAgICBvcHRpb25zPzogUGFydGlhbDxCYXNlQXJ0aWNsZUVsZW1lbnQ+XG4gICk6IEFydGljbGVCdWlsZGVyIHtcbiAgICB0aGlzLmVsZW1lbnRzLnB1c2goe1xuICAgICAgdHlwZTogJ2ltYWdlJyxcbiAgICAgIHByb3BzOiB7IHNyYywgYWx0LCBjYXB0aW9uIH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0gYXMgQXJ0aWNsZUltYWdlRWxlbWVudCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQcOxYWRlIHVuYSBub3RhIGRlc3RhY2FkYSBhbCBhcnTDrWN1bG9cbiAgICovXG4gIG5vdGUoXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIHByZWZpeD86IHN0cmluZyxcbiAgICBjb2xvcj86IENvbG9yLFxuICAgIG9wdGlvbnM/OiBQYXJ0aWFsPEJhc2VBcnRpY2xlRWxlbWVudD5cbiAgKTogQXJ0aWNsZUJ1aWxkZXIge1xuICAgIHRoaXMuZWxlbWVudHMucHVzaCh7XG4gICAgICB0eXBlOiAnbm90ZScsXG4gICAgICBwcm9wczoge1xuICAgICAgICB0ZXh0LFxuICAgICAgICBwcmVmaXg6IHByZWZpeCB8fCAnTm90YTonLFxuICAgICAgICBjb2xvcjogY29sb3IgfHwgJ3dhcm5pbmcnLFxuICAgICAgICB0ZXh0Q29sb3I6ICdkYXJrJyxcbiAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgIHJvdW5kZWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9IGFzIEFydGljbGVOb3RlRWxlbWVudCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQcOxYWRlIHVuIGNvbWFuZG8gZGUgdGVybWluYWwgYWwgYXJ0w61jdWxvXG4gICAqIEFjZXB0YSB1biBzdHJpbmcgc2ltcGxlIG8gdW4gYXJyYXkgZGUgY29tYW5kb3NcbiAgICovXG4gIGNvbW1hbmQoY29tbWFuZDogc3RyaW5nIHwgc3RyaW5nW10sIG9wdGlvbnM/OiBQYXJ0aWFsPEJhc2VBcnRpY2xlRWxlbWVudD4pOiBBcnRpY2xlQnVpbGRlciB7XG4gICAgY29uc3QgY29tbWFuZHMgPSBBcnJheS5pc0FycmF5KGNvbW1hbmQpID8gY29tbWFuZCA6IFtjb21tYW5kXTtcbiAgICB0aGlzLmVsZW1lbnRzLnB1c2goe1xuICAgICAgdHlwZTogJ2NvbW1hbmQnLFxuICAgICAgcHJvcHM6IHtcbiAgICAgICAgbGluZXM6IGNvbW1hbmRzLm1hcChjbWQgPT4gKHsgdGV4dDogY21kLCB0eXBlOiAnY29tbWFuZCcgYXMgY29uc3QgfSkpLFxuICAgICAgICBzaG93Q29weUJ1dHRvbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0gYXMgQXJ0aWNsZUNvbW1hbmRFbGVtZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1eWUgZWwgYXJ0w61jdWxvIGZpbmFsXG4gICAqL1xuICBidWlsZChjb25maWc/OiBQYXJ0aWFsPEFydGljbGVNZXRhZGF0YT4pOiBBcnRpY2xlTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBlbGVtZW50czogdGhpcy5lbGVtZW50cyxcbiAgICAgIG1heFdpZHRoOiAnYXV0bycsXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcbiAgICAgIHRoZW1lOiAnYXV0bycsXG4gICAgICAuLi5jb25maWcsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldGVhIGVsIGJ1aWxkZXIgcGFyYSBjcmVhciB1biBudWV2byBhcnTDrWN1bG9cbiAgICovXG4gIGNsZWFyKCk6IEFydGljbGVCdWlsZGVyIHtcbiAgICB0aGlzLmVsZW1lbnRzID0gW107XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
@@ -1,325 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, computed, EventEmitter, inject, input, Output, signal, ViewChild } from '@angular/core';
3
- import { IonIcon, IonModal, IonSpinner } from '@ionic/angular/standalone';
4
- import { addIcons } from 'ionicons';
5
- import { cameraOutline } from 'ionicons/icons';
6
- import { firstValueFrom } from 'rxjs';
7
- import { AuthService } from '../../../services/auth';
8
- import { StorageService } from '../../../services/firebase';
9
- import { I18nService } from '../../../services/i18n';
10
- import { ImageService } from '../../../services/image';
11
- import { ImageCropComponent } from '../../molecules/image-crop';
12
- import { AVATAR_UPLOAD_DEFAULTS } from './types';
13
- import * as i0 from "@angular/core";
14
- addIcons({ cameraOutline });
15
- /**
16
- * AvatarUploadComponent
17
- *
18
- * A complete avatar upload solution with:
19
- * - Image selection from device
20
- * - Crop modal with round preview
21
- * - Automatic compression and thumbnail generation
22
- * - Upload to Firebase Storage
23
- * - Backend sync via AuthService
24
- *
25
- * @example Basic usage
26
- * ```html
27
- * <val-avatar-upload
28
- * [props]="{
29
- * currentUrl: user()?.avatarUrl,
30
- * initials: 'JD',
31
- * size: 120
32
- * }"
33
- * (uploaded)="onAvatarUploaded($event)"
34
- * (error)="onError($event)"
35
- * />
36
- * ```
37
- */
38
- export class AvatarUploadComponent {
39
- constructor() {
40
- this.imageService = inject(ImageService);
41
- this.storageService = inject(StorageService);
42
- this.authService = inject(AuthService);
43
- this.i18n = inject(I18nService);
44
- /** Component configuration */
45
- this.props = input({});
46
- /** Emitted after successful upload and backend sync */
47
- this.uploaded = new EventEmitter();
48
- /** Emitted on any error during the process */
49
- this.error = new EventEmitter();
50
- /** Emitted when upload starts */
51
- this.uploadStart = new EventEmitter();
52
- // Internal state
53
- this.loading = signal(false);
54
- this.showCropModal = signal(false);
55
- this.selectedFile = signal(null);
56
- this.previewUrl = signal(null);
57
- this.imageLoadError = signal(false);
58
- /** Merged config with defaults */
59
- this.config = computed(() => ({
60
- ...AVATAR_UPLOAD_DEFAULTS,
61
- ...this.props(),
62
- }));
63
- /** URL to display (preview takes priority over current) */
64
- this.displayUrl = computed(() => {
65
- if (this.imageLoadError())
66
- return null;
67
- return this.previewUrl() || this.config().currentUrl || null;
68
- });
69
- /** Aria label for edit button */
70
- this.editButtonLabel = computed(() => {
71
- this.i18n.lang();
72
- return this.i18n.t('changePhoto', this.config().i18nNamespace) || 'Cambiar foto';
73
- });
74
- }
75
- /** Open file picker dialog */
76
- openFilePicker() {
77
- this.fileInput.nativeElement.click();
78
- }
79
- /** Handle file selection */
80
- onFileSelected(event) {
81
- const input = event.target;
82
- const file = input.files?.[0];
83
- if (!file)
84
- return;
85
- // Reset input for same file selection
86
- input.value = '';
87
- // Validate file
88
- const validation = this.imageService.validate(file, {
89
- maxSize: this.config().maxFileSize,
90
- allowedTypes: ['image/jpeg', 'image/png', 'image/webp'],
91
- });
92
- if (!validation.valid) {
93
- this.emitError(validation.error, validation.message);
94
- return;
95
- }
96
- // Open crop modal
97
- this.selectedFile.set(file);
98
- this.showCropModal.set(true);
99
- }
100
- /** Handle crop completion */
101
- async onCropComplete(croppedBlob) {
102
- this.showCropModal.set(false);
103
- this.selectedFile.set(null);
104
- await this.processAndUpload(croppedBlob);
105
- }
106
- /** Handle crop cancel */
107
- onCropCancel() {
108
- this.showCropModal.set(false);
109
- this.selectedFile.set(null);
110
- }
111
- /** Handle crop load failure */
112
- onCropLoadFailed() {
113
- this.showCropModal.set(false);
114
- this.selectedFile.set(null);
115
- this.emitError('invalidType', this.i18n.t('loadFailed', this.config().i18nNamespace) || 'No se pudo cargar la imagen');
116
- }
117
- /** Handle image load error */
118
- onImageError() {
119
- this.imageLoadError.set(true);
120
- }
121
- /** Timeout for upload operations (30 seconds) */
122
- static { this.UPLOAD_TIMEOUT_MS = 30000; }
123
- /** Process cropped image and upload */
124
- async processAndUpload(croppedBlob) {
125
- this.loading.set(true);
126
- this.uploadStart.emit();
127
- // Timeout promise to prevent infinite loading
128
- const uploadTimeout = new Promise((_, reject) => setTimeout(() => reject(new Error('Upload timeout')), AvatarUploadComponent.UPLOAD_TIMEOUT_MS));
129
- try {
130
- const config = this.config();
131
- // 1. Compress image
132
- const compressed = await this.imageService.compress(croppedBlob, {
133
- maxWidth: config.maxWidth,
134
- maxHeight: config.maxWidth,
135
- quality: config.compressQuality,
136
- });
137
- // 2. Generate thumbnail
138
- const thumbnail = await this.imageService.thumbnail(compressed.blob, config.thumbnailSize);
139
- // 3. Set preview immediately
140
- this.previewUrl.set(compressed.dataUrl);
141
- this.imageLoadError.set(false);
142
- // 4. Get user ID for storage path
143
- const userId = this.authService.user()?.userId;
144
- if (!userId) {
145
- throw new Error('User not authenticated');
146
- }
147
- // 5. Upload to Firebase Storage with predictable paths
148
- // Path: users/{userId}/avatar.jpg - allows any app to construct URL with just userId
149
- // skipPrefix: true - bypasses appId prefix for shared/cross-app paths
150
- const avatarPath = `users/${userId}/avatar.jpg`;
151
- const thumbPath = `users/${userId}/thumb.jpg`;
152
- const uploadMetadata = { skipPrefix: true, contentType: 'image/jpeg' };
153
- // Race against timeout to prevent infinite loading
154
- const [avatarResult, thumbResult] = await Promise.race([
155
- Promise.all([
156
- this.storageService.uploadAndGetUrl(avatarPath, compressed.blob, uploadMetadata),
157
- this.storageService.uploadAndGetUrl(thumbPath, thumbnail.blob, uploadMetadata),
158
- ]),
159
- uploadTimeout,
160
- ]);
161
- // 6. Update backend with URLs
162
- await firstValueFrom(this.authService.updateAvatar({
163
- avatarUrl: avatarResult.downloadUrl,
164
- avatarThumbnail: thumbResult.downloadUrl,
165
- }));
166
- // 7. Update preview with cache-busting to force refresh
167
- const cacheBuster = `?t=${Date.now()}`;
168
- this.previewUrl.set(avatarResult.downloadUrl + cacheBuster);
169
- // 8. Emit success
170
- const result = {
171
- avatarUrl: avatarResult.downloadUrl,
172
- thumbnailUrl: thumbResult.downloadUrl,
173
- };
174
- this.uploaded.emit(result);
175
- }
176
- catch (err) {
177
- console.error('[AvatarUpload] processAndUpload failed:', err);
178
- // Revert preview on error
179
- this.previewUrl.set(null);
180
- // Determine error message based on error type
181
- let message;
182
- if (err instanceof Error) {
183
- if (err.message === 'Upload timeout') {
184
- message =
185
- this.i18n.t('uploadTimeout', this.config().i18nNamespace) ||
186
- 'La subida tardó demasiado. Verifica tu conexión.';
187
- }
188
- else {
189
- message = err.message;
190
- }
191
- }
192
- else {
193
- message = this.i18n.t('uploadError', this.config().i18nNamespace) || 'Error al subir la imagen';
194
- }
195
- this.emitError('uploadFailed', message, err);
196
- }
197
- finally {
198
- this.loading.set(false);
199
- }
200
- }
201
- /** Emit error event */
202
- emitError(type, message, originalError) {
203
- this.error.emit({ type, message, originalError });
204
- }
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
206
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AvatarUploadComponent, isStandalone: true, selector: "val-avatar-upload", inputs: { props: { classPropertyName: "props", publicName: "props", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { uploaded: "uploaded", error: "error", uploadStart: "uploadStart" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: `
207
- <div class="avatar-upload" [style.--avatar-size.px]="config().size" [class.avatar-upload--loading]="loading()">
208
- <div class="avatar-container">
209
- <!-- Avatar Image or Initials -->
210
- @if (displayUrl()) {
211
- <img class="avatar-image" [src]="displayUrl()" alt="Avatar" (error)="onImageError()" />
212
- } @else {
213
- <div class="avatar-initials" [style.background-color]="config().backgroundColor">
214
- {{ config().initials || '?' }}
215
- </div>
216
- }
217
-
218
- <!-- Edit Button -->
219
- @if (config().editable && !loading()) {
220
- <button class="edit-button" type="button" (click)="openFilePicker()" [attr.aria-label]="editButtonLabel()">
221
- <ion-icon name="camera-outline"></ion-icon>
222
- </button>
223
- }
224
-
225
- <!-- Loading Overlay -->
226
- @if (loading()) {
227
- <div class="loading-overlay">
228
- <ion-spinner name="crescent"></ion-spinner>
229
- </div>
230
- }
231
- </div>
232
-
233
- <!-- Hidden File Input -->
234
- <input #fileInput type="file" accept="image/jpeg,image/png,image/webp" (change)="onFileSelected($event)" hidden />
235
-
236
- <!-- Crop Modal -->
237
- <ion-modal
238
- [isOpen]="showCropModal()"
239
- (didDismiss)="onCropCancel()"
240
- [breakpoints]="[0, 1]"
241
- [initialBreakpoint]="1"
242
- >
243
- <ng-template>
244
- @if (selectedFile()) {
245
- <val-image-crop
246
- [image]="selectedFile()!"
247
- [aspectRatio]="1"
248
- [roundCropper]="true"
249
- [i18nNamespace]="config().i18nNamespace"
250
- (cropComplete)="onCropComplete($event)"
251
- (cancel)="onCropCancel()"
252
- (loadFailed)="onCropLoadFailed()"
253
- />
254
- }
255
- </ng-template>
256
- </ion-modal>
257
- </div>
258
- `, isInline: true, styles: [".avatar-upload{--avatar-size: 100px;--edit-button-size: 32px;--edit-button-offset: 4px;display:inline-block}.avatar-container{position:relative;width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;overflow:visible}.avatar-image{width:100%;height:100%;border-radius:50%;object-fit:cover;background-color:var(--ion-color-light)}.avatar-initials{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(var(--avatar-size) * .4);font-weight:600;color:#fff;text-transform:uppercase;-webkit-user-select:none;user-select:none}.edit-button{position:absolute;bottom:var(--edit-button-offset);right:var(--edit-button-offset);width:var(--edit-button-size);height:var(--edit-button-size);border-radius:50%;border:2px solid white;background:var(--ion-color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background-color .2s ease;box-shadow:0 2px 8px #00000026}.edit-button ion-icon{font-size:calc(var(--edit-button-size) * .5)}.edit-button:hover{transform:scale(1.1);background:var(--ion-color-primary-shade)}.edit-button:active{transform:scale(.95)}.edit-button:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:#00000080;display:flex;align-items:center;justify-content:center}.loading-overlay ion-spinner{--color: white;width:calc(var(--avatar-size) * .4);height:calc(var(--avatar-size) * .4)}.avatar-upload--loading .edit-button{display:none}.avatar-upload--loading .avatar-image,.avatar-upload--loading .avatar-initials{filter:brightness(.7)}@container (max-width: 60px){.edit-button{--edit-button-size: 24px;--edit-button-offset: 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: ImageCropComponent, selector: "val-image-crop", inputs: ["image", "aspectRatio", "roundCropper", "resizeToWidth", "i18nNamespace"], outputs: ["cropComplete", "cancel", "loadFailed"] }] }); }
259
- }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AvatarUploadComponent, decorators: [{
261
- type: Component,
262
- args: [{ selector: 'val-avatar-upload', standalone: true, imports: [CommonModule, IonIcon, IonSpinner, IonModal, ImageCropComponent], template: `
263
- <div class="avatar-upload" [style.--avatar-size.px]="config().size" [class.avatar-upload--loading]="loading()">
264
- <div class="avatar-container">
265
- <!-- Avatar Image or Initials -->
266
- @if (displayUrl()) {
267
- <img class="avatar-image" [src]="displayUrl()" alt="Avatar" (error)="onImageError()" />
268
- } @else {
269
- <div class="avatar-initials" [style.background-color]="config().backgroundColor">
270
- {{ config().initials || '?' }}
271
- </div>
272
- }
273
-
274
- <!-- Edit Button -->
275
- @if (config().editable && !loading()) {
276
- <button class="edit-button" type="button" (click)="openFilePicker()" [attr.aria-label]="editButtonLabel()">
277
- <ion-icon name="camera-outline"></ion-icon>
278
- </button>
279
- }
280
-
281
- <!-- Loading Overlay -->
282
- @if (loading()) {
283
- <div class="loading-overlay">
284
- <ion-spinner name="crescent"></ion-spinner>
285
- </div>
286
- }
287
- </div>
288
-
289
- <!-- Hidden File Input -->
290
- <input #fileInput type="file" accept="image/jpeg,image/png,image/webp" (change)="onFileSelected($event)" hidden />
291
-
292
- <!-- Crop Modal -->
293
- <ion-modal
294
- [isOpen]="showCropModal()"
295
- (didDismiss)="onCropCancel()"
296
- [breakpoints]="[0, 1]"
297
- [initialBreakpoint]="1"
298
- >
299
- <ng-template>
300
- @if (selectedFile()) {
301
- <val-image-crop
302
- [image]="selectedFile()!"
303
- [aspectRatio]="1"
304
- [roundCropper]="true"
305
- [i18nNamespace]="config().i18nNamespace"
306
- (cropComplete)="onCropComplete($event)"
307
- (cancel)="onCropCancel()"
308
- (loadFailed)="onCropLoadFailed()"
309
- />
310
- }
311
- </ng-template>
312
- </ion-modal>
313
- </div>
314
- `, styles: [".avatar-upload{--avatar-size: 100px;--edit-button-size: 32px;--edit-button-offset: 4px;display:inline-block}.avatar-container{position:relative;width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;overflow:visible}.avatar-image{width:100%;height:100%;border-radius:50%;object-fit:cover;background-color:var(--ion-color-light)}.avatar-initials{width:100%;height:100%;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(var(--avatar-size) * .4);font-weight:600;color:#fff;text-transform:uppercase;-webkit-user-select:none;user-select:none}.edit-button{position:absolute;bottom:var(--edit-button-offset);right:var(--edit-button-offset);width:var(--edit-button-size);height:var(--edit-button-size);border-radius:50%;border:2px solid white;background:var(--ion-color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease,background-color .2s ease;box-shadow:0 2px 8px #00000026}.edit-button ion-icon{font-size:calc(var(--edit-button-size) * .5)}.edit-button:hover{transform:scale(1.1);background:var(--ion-color-primary-shade)}.edit-button:active{transform:scale(.95)}.edit-button:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;background:#00000080;display:flex;align-items:center;justify-content:center}.loading-overlay ion-spinner{--color: white;width:calc(var(--avatar-size) * .4);height:calc(var(--avatar-size) * .4)}.avatar-upload--loading .edit-button{display:none}.avatar-upload--loading .avatar-image,.avatar-upload--loading .avatar-initials{filter:brightness(.7)}@container (max-width: 60px){.edit-button{--edit-button-size: 24px;--edit-button-offset: 0}}\n"] }]
315
- }], propDecorators: { fileInput: [{
316
- type: ViewChild,
317
- args: ['fileInput']
318
- }], uploaded: [{
319
- type: Output
320
- }], error: [{
321
- type: Output
322
- }], uploadStart: [{
323
- type: Output
324
- }] } });
325
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLXVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F2YXRhci11cGxvYWQvYXZhdGFyLXVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBK0QsTUFBTSxTQUFTLENBQUM7O0FBRTlHLFFBQVEsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7QUFFNUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUE0REgsTUFBTSxPQUFPLHFCQUFxQjtJQTNEbEM7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QUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDOytHQTVNVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix3WUF2RHRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RULDgwREFyRFMsWUFBWSwrQkFBRSxPQUFPLDJKQUFFLFVBQVUseUdBQUUsUUFBUSxzREFBRSxrQkFBa0I7OzRGQXdEOUQscUJBQXFCO2tCQTNEakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLFlBQ2hFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RUOzhCQVN1QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBTVosUUFBUTtzQkFBakIsTUFBTTtnQkFHRyxLQUFLO3NCQUFkLE1BQU07Z0JBR0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgaW5wdXQsIE91dHB1dCwgc2lnbmFsLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvbkljb24sIElvbk1vZGFsLCBJb25TcGlubmVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBhZGRJY29ucyB9IGZyb20gJ2lvbmljb25zJztcbmltcG9ydCB7IGNhbWVyYU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlyZWJhc2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEltYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ltYWdlJztcbmltcG9ydCB7IEltYWdlQ3JvcENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9pbWFnZS1jcm9wJztcbmltcG9ydCB7IEFWQVRBUl9VUExPQURfREVGQVVMVFMsIEF2YXRhclVwbG9hZEVycm9yLCBBdmF0YXJVcGxvYWRNZXRhZGF0YSwgQXZhdGFyVXBsb2FkUmVzdWx0IH0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHsgY2FtZXJhT3V0bGluZSB9KTtcblxuLyoqXG4gKiBBdmF0YXJVcGxvYWRDb21wb25lbnRcbiAqXG4gKiBBIGNvbXBsZXRlIGF2YXRhciB1cGxvYWQgc29sdXRpb24gd2l0aDpcbiAqIC0gSW1hZ2Ugc2VsZWN0aW9uIGZyb20gZGV2aWNlXG4gKiAtIENyb3AgbW9kYWwgd2l0aCByb3VuZCBwcmV2aWV3XG4gKiAtIEF1dG9tYXRpYyBjb21wcmVzc2lvbiBhbmQgdGh1bWJuYWlsIGdlbmVyYXRpb25cbiAqIC0gVXBsb2FkIHRvIEZpcmViYXNlIFN0b3JhZ2VcbiAqIC0gQmFja2VuZCBzeW5jIHZpYSBBdXRoU2VydmljZVxuICpcbiAqIEBleGFtcGxlIEJhc2ljIHVzYWdlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWF2YXRhci11cGxvYWRcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICBjdXJyZW50VXJsOiB1c2VyKCk/LmF2YXRhclVybCxcbiAqICAgICBpbml0aWFsczogJ0pEJyxcbiAqICAgICBzaXplOiAxMjBcbiAqICAgfVwiXG4gKiAgICh1cGxvYWRlZCk9XCJvbkF2YXRhclVwbG9hZGVkKCRldmVudClcIlxuICogICAoZXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWF2YXRhci11cGxvYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uLCBJb25TcGlubmVyLCBJb25Nb2RhbCwgSW1hZ2VDcm9wQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLXVwbG9hZFwiIFtzdHlsZS4tLWF2YXRhci1zaXplLnB4XT1cImNvbmZpZygpLnNpemVcIiBbY2xhc3MuYXZhdGFyLXVwbG9hZC0tbG9hZGluZ109XCJsb2FkaW5nKClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCI+XG4gICAgICAgIDwhLS0gQXZhdGFyIEltYWdlIG9yIEluaXRpYWxzIC0tPlxuICAgICAgICBAaWYgKGRpc3BsYXlVcmwoKSkge1xuICAgICAgICAgIDxpbWcgY2xhc3M9XCJhdmF0YXItaW1hZ2VcIiBbc3JjXT1cImRpc3BsYXlVcmwoKVwiIGFsdD1cIkF2YXRhclwiIChlcnJvcik9XCJvbkltYWdlRXJyb3IoKVwiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItaW5pdGlhbHNcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjb25maWcoKS5iYWNrZ3JvdW5kQ29sb3JcIj5cbiAgICAgICAgICAgIHt7IGNvbmZpZygpLmluaXRpYWxzIHx8ICc/JyB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBFZGl0IEJ1dHRvbiAtLT5cbiAgICAgICAgQGlmIChjb25maWcoKS5lZGl0YWJsZSAmJiAhbG9hZGluZygpKSB7XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXQtYnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuRmlsZVBpY2tlcigpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJlZGl0QnV0dG9uTGFiZWwoKVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjYW1lcmEtb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIExvYWRpbmcgT3ZlcmxheSAtLT5cbiAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1vdmVybGF5XCI+XG4gICAgICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImNyZXNjZW50XCI+PC9pb24tc3Bpbm5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gSGlkZGVuIEZpbGUgSW5wdXQgLS0+XG4gICAgICA8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlL2pwZWcsaW1hZ2UvcG5nLGltYWdlL3dlYnBcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiBoaWRkZW4gLz5cblxuICAgICAgPCEtLSBDcm9wIE1vZGFsIC0tPlxuICAgICAgPGlvbi1tb2RhbFxuICAgICAgICBbaXNPcGVuXT1cInNob3dDcm9wTW9kYWwoKVwiXG4gICAgICAgIChkaWREaXNtaXNzKT1cIm9uQ3JvcENhbmNlbCgpXCJcbiAgICAgICAgW2JyZWFrcG9pbnRzXT1cIlswLCAxXVwiXG4gICAgICAgIFtpbml0aWFsQnJlYWtwb2ludF09XCIxXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgIEBpZiAoc2VsZWN0ZWRGaWxlKCkpIHtcbiAgICAgICAgICAgIDx2YWwtaW1hZ2UtY3JvcFxuICAgICAgICAgICAgICBbaW1hZ2VdPVwic2VsZWN0ZWRGaWxlKCkhXCJcbiAgICAgICAgICAgICAgW2FzcGVjdFJhdGlvXT1cIjFcIlxuICAgICAgICAgICAgICBbcm91bmRDcm9wcGVyXT1cInRydWVcIlxuICAgICAgICAgICAgICBbaTE4bk5hbWVzcGFjZV09XCJjb25maWcoKS5pMThuTmFtZXNwYWNlXCJcbiAgICAgICAgICAgICAgKGNyb3BDb21wbGV0ZSk9XCJvbkNyb3BDb21wbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGNhbmNlbCk9XCJvbkNyb3BDYW5jZWwoKVwiXG4gICAgICAgICAgICAgIChsb2FkRmFpbGVkKT1cIm9uQ3JvcExvYWRGYWlsZWQoKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvaW9uLW1vZGFsPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9hdmF0YXItdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEF2YXRhclVwbG9hZENvbXBvbmVudCB7XG4gIHByaXZhdGUgaW1hZ2VTZXJ2aWNlID0gaW5qZWN0KEltYWdlU2VydmljZSk7XG4gIHByaXZhdGUgc3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuICBwcml2YXRlIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PEF2YXRhclVwbG9hZE1ldGFkYXRhPih7fSk7XG5cbiAgLyoqIEVtaXR0ZWQgYWZ0ZXIgc3VjY2Vzc2Z1bCB1cGxvYWQgYW5kIGJhY2tlbmQgc3luYyAqL1xuICBAT3V0cHV0KCkgdXBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEF2YXRhclVwbG9hZFJlc3VsdD4oKTtcblxuICAvKiogRW1pdHRlZCBvbiBhbnkgZXJyb3IgZHVyaW5nIHRoZSBwcm9jZXNzICovXG4gIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8QXZhdGFyVXBsb2FkRXJyb3I+KCk7XG5cbiAgLyoqIEVtaXR0ZWQgd2hlbiB1cGxvYWQgc3RhcnRzICovXG4gIEBPdXRwdXQoKSB1cGxvYWRTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvLyBJbnRlcm5hbCBzdGF0ZVxuICBwcm90ZWN0ZWQgbG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBzaG93Q3JvcE1vZGFsID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkRmlsZSA9IHNpZ25hbDxGaWxlIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBwcmV2aWV3VXJsID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgaW1hZ2VMb2FkRXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlnIHdpdGggZGVmYXVsdHMgKi9cbiAgcHJvdGVjdGVkIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQVZBVEFSX1VQTE9BRF9ERUZBVUxUUyxcbiAgICAuLi50aGlzLnByb3BzKCksXG4gIH0pKTtcblxuICAvKiogVVJMIHRvIGRpc3BsYXkgKHByZXZpZXcgdGFrZXMgcHJpb3JpdHkgb3ZlciBjdXJyZW50KSAqL1xuICBwcm90ZWN0ZWQgZGlzcGxheVVybCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5pbWFnZUxvYWRFcnJvcigpKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3VXJsKCkgfHwgdGhpcy5jb25maWcoKS5jdXJyZW50VXJsIHx8IG51bGw7XG4gIH0pO1xuXG4gIC8qKiBBcmlhIGxhYmVsIGZvciBlZGl0IGJ1dHRvbiAqL1xuICBwcm90ZWN0ZWQgZWRpdEJ1dHRvbkxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdjaGFuZ2VQaG90bycsIHRoaXMuY29uZmlnKCkuaTE4bk5hbWVzcGFjZSkgfHwgJ0NhbWJpYXIgZm90byc7XG4gIH0pO1xuXG4gIC8qKiBPcGVuIGZpbGUgcGlja2VyIGRpYWxvZyAqL1xuICBvcGVuRmlsZVBpY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICAvKiogSGFuZGxlIGZpbGUgc2VsZWN0aW9uICovXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzPy5bMF07XG5cbiAgICBpZiAoIWZpbGUpIHJldHVybjtcblxuICAgIC8vIFJlc2V0IGlucHV0IGZvciBzYW1lIGZpbGUgc2VsZWN0aW9uXG4gICAgaW5wdXQudmFsdWUgPSAnJztcblxuICAgIC8vIFZhbGlkYXRlIGZpbGVcbiAgICBjb25zdCB2YWxpZGF0aW9uID0gdGhpcy5pbWFnZVNlcnZpY2UudmFsaWRhdGUoZmlsZSwge1xuICAgICAgbWF4U2l6ZTogdGhpcy5jb25maWcoKS5tYXhGaWxlU2l6ZSxcbiAgICAgIGFsbG93ZWRUeXBlczogWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZycsICdpbWFnZS93ZWJwJ10sXG4gICAgfSk7XG5cbiAgICBpZiAoIXZhbGlkYXRpb24udmFsaWQpIHtcbiAgICAgIHRoaXMuZW1pdEVycm9yKHZhbGlkYXRpb24uZXJyb3IgYXMgQXZhdGFyVXBsb2FkRXJyb3JbJ3R5cGUnXSwgdmFsaWRhdGlvbi5tZXNzYWdlISk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gT3BlbiBjcm9wIG1vZGFsXG4gICAgdGhpcy5zZWxlY3RlZEZpbGUuc2V0KGZpbGUpO1xuICAgIHRoaXMuc2hvd0Nyb3BNb2RhbC5zZXQodHJ1ZSk7XG4gIH1cblxuICAvKiogSGFuZGxlIGNyb3AgY29tcGxldGlvbiAqL1xuICBhc3luYyBvbkNyb3BDb21wbGV0ZShjcm9wcGVkQmxvYjogQmxvYik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2hvd0Nyb3BNb2RhbC5zZXQoZmFsc2UpO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlLnNldChudWxsKTtcblxuICAgIGF3YWl0IHRoaXMucHJvY2Vzc0FuZFVwbG9hZChjcm9wcGVkQmxvYik7XG4gIH1cblxuICAvKiogSGFuZGxlIGNyb3AgY2FuY2VsICovXG4gIG9uQ3JvcENhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDcm9wTW9kYWwuc2V0KGZhbHNlKTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsZS5zZXQobnVsbCk7XG4gIH1cblxuICAvKiogSGFuZGxlIGNyb3AgbG9hZCBmYWlsdXJlICovXG4gIG9uQ3JvcExvYWRGYWlsZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q3JvcE1vZGFsLnNldChmYWxzZSk7XG4gICAgdGhpcy5zZWxlY3RlZEZpbGUuc2V0KG51bGwpO1xuICAgIHRoaXMuZW1pdEVycm9yKFxuICAgICAgJ2ludmFsaWRUeXBlJyxcbiAgICAgIHRoaXMuaTE4bi50KCdsb2FkRmFpbGVkJywgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKSB8fCAnTm8gc2UgcHVkbyBjYXJnYXIgbGEgaW1hZ2VuJ1xuICAgICk7XG4gIH1cblxuICAvKiogSGFuZGxlIGltYWdlIGxvYWQgZXJyb3IgKi9cbiAgb25JbWFnZUVycm9yKCk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2VMb2FkRXJyb3Iuc2V0KHRydWUpO1xuICB9XG5cbiAgLyoqIFRpbWVvdXQgZm9yIHVwbG9hZCBvcGVyYXRpb25zICgzMCBzZWNvbmRzKSAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBVUExPQURfVElNRU9VVF9NUyA9IDMwMDAwO1xuXG4gIC8qKiBQcm9jZXNzIGNyb3BwZWQgaW1hZ2UgYW5kIHVwbG9hZCAqL1xuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NBbmRVcGxvYWQoY3JvcHBlZEJsb2I6IEJsb2IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMudXBsb2FkU3RhcnQuZW1pdCgpO1xuXG4gICAgLy8gVGltZW91dCBwcm9taXNlIHRvIHByZXZlbnQgaW5maW5pdGUgbG9hZGluZ1xuICAgIGNvbnN0IHVwbG9hZFRpbWVvdXQgPSBuZXcgUHJvbWlzZTxuZXZlcj4oKF8sIHJlamVjdCkgPT5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KG5ldyBFcnJvcignVXBsb2FkIHRpbWVvdXQnKSksIEF2YXRhclVwbG9hZENvbXBvbmVudC5VUExPQURfVElNRU9VVF9NUylcbiAgICApO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG5cbiAgICAgIC8vIDEuIENvbXByZXNzIGltYWdlXG4gICAgICBjb25zdCBjb21wcmVzc2VkID0gYXdhaXQgdGhpcy5pbWFnZVNlcnZpY2UuY29tcHJlc3MoY3JvcHBlZEJsb2IsIHtcbiAgICAgICAgbWF4V2lkdGg6IGNvbmZpZy5tYXhXaWR0aCxcbiAgICAgICAgbWF4SGVpZ2h0OiBjb25maWcubWF4V2lkdGgsXG4gICAgICAgIHF1YWxpdHk6IGNvbmZpZy5jb21wcmVzc1F1YWxpdHksXG4gICAgICB9KTtcblxuICAgICAgLy8gMi4gR2VuZXJhdGUgdGh1bWJuYWlsXG4gICAgICBjb25zdCB0aHVtYm5haWwgPSBhd2FpdCB0aGlzLmltYWdlU2VydmljZS50aHVtYm5haWwoY29tcHJlc3NlZC5ibG9iLCBjb25maWcudGh1bWJuYWlsU2l6ZSk7XG5cbiAgICAgIC8vIDMuIFNldCBwcmV2aWV3IGltbWVkaWF0ZWx5XG4gICAgICB0aGlzLnByZXZpZXdVcmwuc2V0KGNvbXByZXNzZWQuZGF0YVVybCk7XG4gICAgICB0aGlzLmltYWdlTG9hZEVycm9yLnNldChmYWxzZSk7XG5cbiAgICAgIC8vIDQuIEdldCB1c2VyIElEIGZvciBzdG9yYWdlIHBhdGhcbiAgICAgIGNvbnN0IHVzZXJJZCA9IHRoaXMuYXV0aFNlcnZpY2UudXNlcigpPy51c2VySWQ7XG4gICAgICBpZiAoIXVzZXJJZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzZXIgbm90IGF1dGhlbnRpY2F0ZWQnKTtcbiAgICAgIH1cblxuICAgICAgLy8gNS4gVXBsb2FkIHRvIEZpcmViYXNlIFN0b3JhZ2Ugd2l0aCBwcmVkaWN0YWJsZSBwYXRoc1xuICAgICAgLy8gUGF0aDogdXNlcnMve3VzZXJJZH0vYXZhdGFyLmpwZyAtIGFsbG93cyBhbnkgYXBwIHRvIGNvbnN0cnVjdCBVUkwgd2l0aCBqdXN0IHVzZXJJZFxuICAgICAgLy8gc2tpcFByZWZpeDogdHJ1ZSAtIGJ5cGFzc2VzIGFwcElkIHByZWZpeCBmb3Igc2hhcmVkL2Nyb3NzLWFwcCBwYXRoc1xuICAgICAgY29uc3QgYXZhdGFyUGF0aCA9IGB1c2Vycy8ke3VzZXJJZH0vYXZhdGFyLmpwZ2A7XG4gICAgICBjb25zdCB0aHVtYlBhdGggPSBgdXNlcnMvJHt1c2VySWR9L3RodW1iLmpwZ2A7XG4gICAgICBjb25zdCB1cGxvYWRNZXRhZGF0YSA9IHsgc2tpcFByZWZpeDogdHJ1ZSwgY29udGVudFR5cGU6ICdpbWFnZS9qcGVnJyB9O1xuXG4gICAgICAvLyBSYWNlIGFnYWluc3QgdGltZW91dCB0byBwcmV2ZW50IGluZmluaXRlIGxvYWRpbmdcbiAgICAgIGNvbnN0IFthdmF0YXJSZXN1bHQsIHRodW1iUmVzdWx0XSA9IGF3YWl0IFByb21pc2UucmFjZShbXG4gICAgICAgIFByb21pc2UuYWxsKFtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwbG9hZEFuZEdldFVybChhdmF0YXJQYXRoLCBjb21wcmVzc2VkLmJsb2IsIHVwbG9hZE1ldGFkYXRhKSxcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwbG9hZEFuZEdldFVybCh0aHVtYlBhdGgsIHRodW1ibmFpbC5ibG9iLCB1cGxvYWRNZXRhZGF0YSksXG4gICAgICAgIF0pLFxuICAgICAgICB1cGxvYWRUaW1lb3V0LFxuICAgICAgXSk7XG5cbiAgICAgIC8vIDYuIFVwZGF0ZSBiYWNrZW5kIHdpdGggVVJMc1xuICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudXBkYXRlQXZhdGFyKHtcbiAgICAgICAgICBhdmF0YXJVcmw6IGF2YXRhclJlc3VsdC5kb3dubG9hZFVybCxcbiAgICAgICAgICBhdmF0YXJUaHVtYm5haWw6IHRodW1iUmVzdWx0LmRvd25sb2FkVXJsLFxuICAgICAgICB9KVxuICAgICAgKTtcblxuICAgICAgLy8gNy4gVXBkYXRlIHByZXZpZXcgd2l0aCBjYWNoZS1idXN0aW5nIHRvIGZvcmNlIHJlZnJlc2hcbiAgICAgIGNvbnN0IGNhY2hlQnVzdGVyID0gYD90PSR7RGF0ZS5ub3coKX1gO1xuICAgICAgdGhpcy5wcmV2aWV3VXJsLnNldChhdmF0YXJSZXN1bHQuZG93bmxvYWRVcmwgKyBjYWNoZUJ1c3Rlcik7XG5cbiAgICAgIC8vIDguIEVtaXQgc3VjY2Vzc1xuICAgICAgY29uc3QgcmVzdWx0OiBBdmF0YXJVcGxvYWRSZXN1bHQgPSB7XG4gICAgICAgIGF2YXRhclVybDogYXZhdGFyUmVzdWx0LmRvd25sb2FkVXJsLFxuICAgICAgICB0aHVtYm5haWxVcmw6IHRodW1iUmVzdWx0LmRvd25sb2FkVXJsLFxuICAgICAgfTtcblxuICAgICAgdGhpcy51cGxvYWRlZC5lbWl0KHJlc3VsdCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbQXZhdGFyVXBsb2FkXSBwcm9jZXNzQW5kVXBsb2FkIGZhaWxlZDonLCBlcnIpO1xuICAgICAgLy8gUmV2ZXJ0IHByZXZpZXcgb24gZXJyb3JcbiAgICAgIHRoaXMucHJldmlld1VybC5zZXQobnVsbCk7XG5cbiAgICAgIC8vIERldGVybWluZSBlcnJvciBtZXNzYWdlIGJhc2VkIG9uIGVycm9yIHR5cGVcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmc7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgaWYgKGVyci5tZXNzYWdlID09PSAnVXBsb2FkIHRpbWVvdXQnKSB7XG4gICAgICAgICAgbWVzc2FnZSA9XG4gICAgICAgICAgICB0aGlzLmkxOG4udCgndXBsb2FkVGltZW91dCcsIHRoaXMuY29uZmlnKCkuaTE4bk5hbWVzcGFjZSkgfHxcbiAgICAgICAgICAgICdMYSBzdWJpZGEgdGFyZMOzIGRlbWFzaWFkby4gVmVyaWZpY2EgdHUgY29uZXhpw7NuLic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWVzc2FnZSA9IGVyci5tZXNzYWdlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlID0gdGhpcy5pMThuLnQoJ3VwbG9hZEVycm9yJywgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKSB8fCAnRXJyb3IgYWwgc3ViaXIgbGEgaW1hZ2VuJztcbiAgICAgIH1cblxuICAgICAgdGhpcy5lbWl0RXJyb3IoJ3VwbG9hZEZhaWxlZCcsIG1lc3NhZ2UsIGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbWl0IGVycm9yIGV2ZW50ICovXG4gIHByaXZhdGUgZW1pdEVycm9yKHR5cGU6IEF2YXRhclVwbG9hZEVycm9yWyd0eXBlJ10sIG1lc3NhZ2U6IHN0cmluZywgb3JpZ2luYWxFcnJvcj86IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yLmVtaXQoeyB0eXBlLCBtZXNzYWdlLCBvcmlnaW5hbEVycm9yIH0pO1xuICB9XG59XG4iXX0=
@@ -1,15 +0,0 @@
1
- /**
2
- * Default values
3
- */
4
- export const AVATAR_UPLOAD_DEFAULTS = {
5
- size: 100,
6
- editable: true,
7
- storagePath: 'avatars',
8
- i18nNamespace: 'AvatarUpload',
9
- maxFileSize: 10 * 1024 * 1024, // 10MB
10
- compressQuality: 0.8,
11
- maxWidth: 800,
12
- thumbnailSize: 150,
13
- backgroundColor: '#6366f1', // Indigo
14
- };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F2YXRhci11cGxvYWQvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeURBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsSUFBSSxFQUFFLEdBQUc7SUFDVCxRQUFRLEVBQUUsSUFBSTtJQUNkLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLGFBQWEsRUFBRSxjQUFjO0lBQzdCLFdBQVcsRUFBRSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxPQUFPO0lBQ3RDLGVBQWUsRUFBRSxHQUFHO0lBQ3BCLFFBQVEsRUFBRSxHQUFHO0lBQ2IsYUFBYSxFQUFFLEdBQUc7SUFDbEIsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTO0NBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIEF2YXRhclVwbG9hZENvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YXRhclVwbG9hZE1ldGFkYXRhIHtcbiAgLyoqIEN1cnJlbnQgYXZhdGFyIFVSTCAqL1xuICBjdXJyZW50VXJsPzogc3RyaW5nO1xuICAvKiogSW5pdGlhbHMgdG8gc2hvdyB3aGVuIG5vIGF2YXRhciAoZS5nLiwgXCJKRFwiIGZvciBKb2huIERvZSkgKi9cbiAgaW5pdGlhbHM/OiBzdHJpbmc7XG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIGZvciBpbml0aWFscyBhdmF0YXIgKi9cbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAvKiogQXZhdGFyIHNpemUgaW4gcGl4ZWxzIChkZWZhdWx0OiAxMDApICovXG4gIHNpemU/OiBudW1iZXI7XG4gIC8qKiBTaG93IGVkaXQgYnV0dG9uIChkZWZhdWx0OiB0cnVlKSAqL1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIC8qKiBTdG9yYWdlIHBhdGggcHJlZml4IHdpdGhvdXQgdXNlcklkIChkZWZhdWx0OiAnYXZhdGFycycpICovXG4gIHN0b3JhZ2VQYXRoPzogc3RyaW5nO1xuICAvKiogaTE4biBuYW1lc3BhY2UgZm9yIGxhYmVscyAoZGVmYXVsdDogJ0F2YXRhclVwbG9hZCcpICovXG4gIGkxOG5OYW1lc3BhY2U/OiBzdHJpbmc7XG4gIC8qKiBNYXggZmlsZSBzaXplIGluIGJ5dGVzIChkZWZhdWx0OiAxME1CKSAqL1xuICBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgLyoqIFF1YWxpdHkgZm9yIGNvbXByZXNzZWQgaW1hZ2UgMC0xIChkZWZhdWx0OiAwLjgpICovXG4gIGNvbXByZXNzUXVhbGl0eT86IG51bWJlcjtcbiAgLyoqIE1heCB3aWR0aCBmb3IgYXZhdGFyIChkZWZhdWx0OiA4MDApICovXG4gIG1heFdpZHRoPzogbnVtYmVyO1xuICAvKiogVGh1bWJuYWlsIHNpemUgKGRlZmF1bHQ6IDE1MCkgKi9cbiAgdGh1bWJuYWlsU2l6ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBSZXN1bHQgZW1pdHRlZCBhZnRlciBzdWNjZXNzZnVsIHVwbG9hZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YXRhclVwbG9hZFJlc3VsdCB7XG4gIC8qKiBGdWxsLXNpemUgYXZhdGFyIFVSTCAqL1xuICBhdmF0YXJVcmw6IHN0cmluZztcbiAgLyoqIFRodW1ibmFpbCBVUkwgKi9cbiAgdGh1bWJuYWlsVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRXJyb3IgdHlwZXMgdGhhdCBjYW4gb2NjdXIgZHVyaW5nIHVwbG9hZFxuICovXG5leHBvcnQgdHlwZSBBdmF0YXJVcGxvYWRFcnJvclR5cGUgPVxuICB8ICdpbnZhbGlkVHlwZSdcbiAgfCAnZmlsZVRvb0xhcmdlJ1xuICB8ICd1cGxvYWRGYWlsZWQnXG4gIHwgJ2JhY2tlbmRGYWlsZWQnXG4gIHwgJ2NhbmNlbGxlZCc7XG5cbi8qKlxuICogRXJyb3Igb2JqZWN0IGVtaXR0ZWQgb24gZmFpbHVyZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YXRhclVwbG9hZEVycm9yIHtcbiAgdHlwZTogQXZhdGFyVXBsb2FkRXJyb3JUeXBlO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIG9yaWdpbmFsRXJyb3I/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIERlZmF1bHQgdmFsdWVzXG4gKi9cbmV4cG9ydCBjb25zdCBBVkFUQVJfVVBMT0FEX0RFRkFVTFRTID0ge1xuICBzaXplOiAxMDAsXG4gIGVkaXRhYmxlOiB0cnVlLFxuICBzdG9yYWdlUGF0aDogJ2F2YXRhcnMnLFxuICBpMThuTmFtZXNwYWNlOiAnQXZhdGFyVXBsb2FkJyxcbiAgbWF4RmlsZVNpemU6IDEwICogMTAyNCAqIDEwMjQsIC8vIDEwTUJcbiAgY29tcHJlc3NRdWFsaXR5OiAwLjgsXG4gIG1heFdpZHRoOiA4MDAsXG4gIHRodW1ibmFpbFNpemU6IDE1MCxcbiAgYmFja2dyb3VuZENvbG9yOiAnIzYzNjZmMScsIC8vIEluZGlnb1xufTtcbiJdfQ==