@dropi/ui-components 1.0.12 → 1.0.13

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 (255) hide show
  1. package/README.md +55 -36
  2. package/dist/README.md +58 -38
  3. package/dist/components-source/accordion/accordion-item/accordion-item.component.d.ts +31 -0
  4. package/dist/components-source/accordion/accordion.component.d.ts +26 -0
  5. package/dist/components-source/alert/alert.component.d.ts +32 -0
  6. package/dist/components-source/alert-modal/alert-modal.component.d.ts +78 -0
  7. package/dist/components-source/alert-validation/alert-validation.component.d.ts +21 -0
  8. package/dist/components-source/badge/badge.component.d.ts +12 -0
  9. package/dist/components-source/beta-tag/beta-tag.component.d.ts +5 -0
  10. package/dist/components-source/breadcrumb/breadcrumb.component.d.ts +11 -0
  11. package/dist/components-source/card-product/card-product.component.d.ts +204 -0
  12. package/dist/components-source/card-section/card-section.component.d.ts +31 -0
  13. package/dist/components-source/checkbox-selection-list/checkbox-selection-list.component.d.ts +26 -0
  14. package/dist/components-source/city-selector/city-selector.component.d.ts +17 -0
  15. package/dist/components-source/color-picker/color-picker.component.d.ts +73 -0
  16. package/dist/components-source/confirm-dialog/confirm-dialog.component.d.ts +10 -0
  17. package/dist/components-source/country-flags/country-flags.component.d.ts +12 -0
  18. package/dist/components-source/date-picker/date-picker.component.d.ts +27 -0
  19. package/dist/components-source/date-picker-range/date-picker-range.component.d.ts +26 -0
  20. package/dist/components-source/dropi-avatars/dropi-avatars.component.d.ts +11 -0
  21. package/dist/components-source/dropi-badge/dropi-badge.component.d.ts +29 -0
  22. package/dist/components-source/dropi-banner-external/dropi-banner-external.component.d.ts +19 -0
  23. package/dist/components-source/dropi-breadcrumb/dropi-breadcrumb.component.d.ts +22 -0
  24. package/dist/components-source/dropi-card-checkbox/dropi-card-checkbox.component.d.ts +20 -0
  25. package/dist/components-source/dropi-carousel/dropi-carousel.component.d.ts +52 -0
  26. package/dist/components-source/dropi-checkbox/dropi-checkbox.component.d.ts +11 -0
  27. package/dist/components-source/dropi-chips/dropi-chips.component.d.ts +17 -0
  28. package/dist/components-source/dropi-country-selector/countries.data.d.ts +6 -0
  29. package/dist/components-source/dropi-country-selector/dropi-country-selector.component.d.ts +90 -0
  30. package/dist/components-source/dropi-drawer/dropi-drawer.component.d.ts +20 -0
  31. package/dist/components-source/dropi-dropdown/dropi-dropdown.component.d.ts +20 -0
  32. package/dist/components-source/dropi-favorite-button/dropi-favorite-button.component.d.ts +12 -0
  33. package/dist/components-source/dropi-file-upload/card-view/card-view.component.d.ts +19 -0
  34. package/dist/components-source/dropi-file-upload/drop-zone/drop-zone.component.d.ts +38 -0
  35. package/dist/components-source/dropi-file-upload/dropi-file-upload.component.d.ts +18 -0
  36. package/dist/components-source/dropi-file-upload/file-list/file-list.component.d.ts +39 -0
  37. package/dist/components-source/dropi-file-upload/grid-view/grid-view.component.d.ts +15 -0
  38. package/dist/components-source/dropi-ilustration-icon/dropi-ilustration-icon.component.d.ts +20 -0
  39. package/dist/components-source/dropi-image-overlay/dropi-image-overlay.component.d.ts +8 -0
  40. package/dist/components-source/dropi-languages-selector/dropi-languages-selector.component.d.ts +18 -0
  41. package/dist/components-source/dropi-logo/dropi-logo.component.d.ts +12 -0
  42. package/dist/components-source/dropi-modal/dropi-modal.component.d.ts +34 -0
  43. package/dist/components-source/dropi-modal/p-template.directive.d.ts +9 -0
  44. package/dist/components-source/dropi-navbar/dropi-navbar.component.d.ts +20 -0
  45. package/dist/components-source/dropi-paginator/dropi-paginator.component.d.ts +21 -0
  46. package/dist/components-source/dropi-phone-input/dropi-phone-input.component.d.ts +55 -0
  47. package/dist/components-source/dropi-radio-button/dropi-radio-button.component.d.ts +17 -0
  48. package/dist/components-source/dropi-search/dropi-search.component.d.ts +40 -0
  49. package/dist/components-source/dropi-select/dropi-select.component.d.ts +34 -0
  50. package/dist/components-source/dropi-skeleton/dropi-skeleton.component.d.ts +14 -0
  51. package/dist/components-source/dropi-steps/dropi-steps.component.d.ts +64 -0
  52. package/dist/components-source/dropi-switch/dropi-switch.component.d.ts +11 -0
  53. package/dist/components-source/dropi-table/dropi-table.component.d.ts +82 -0
  54. package/dist/components-source/dropi-tag/dropi-tag.component.d.ts +15 -0
  55. package/dist/components-source/dropi-text-area/dropi-text-area.component.d.ts +14 -0
  56. package/dist/components-source/dropi-tooltip/dropi-tooltip.component.d.ts +28 -0
  57. package/dist/components-source/dropi-youtube-lazy-video/dropi-youtube-lazy-video.component.d.ts +16 -0
  58. package/dist/components-source/empty/empty.component.d.ts +9 -0
  59. package/dist/components-source/empty-state/empty-state.component.d.ts +17 -0
  60. package/dist/components-source/file-upload-progress-bar/file-upload-progress-bar.component.d.ts +30 -0
  61. package/dist/components-source/index.d.ts +85 -0
  62. package/dist/components-source/input/input.component.d.ts +33 -0
  63. package/dist/components-source/lottie-loader/lottie-loader.component.d.ts +9 -0
  64. package/dist/components-source/otp-send-code/otp-send-code.component.d.ts +83 -0
  65. package/dist/components-source/radio-selection-list/radio-selection-list.component.d.ts +30 -0
  66. package/dist/components-source/read-more/read-more.component.d.ts +60 -0
  67. package/dist/components-source/sidebar/sidebar.component.d.ts +27 -0
  68. package/dist/components-source/simple-stepper/simple-stepper.component.d.ts +21 -0
  69. package/dist/components-source/spinner/spinner.component.d.ts +9 -0
  70. package/dist/components-source/tabs/tabs.component.d.ts +27 -0
  71. package/dist/components-source/tag-type-product/tag-type-product.component.d.ts +5 -0
  72. package/dist/components-source/toast/toast.component.d.ts +21 -0
  73. package/dist/components-source/toggle/input-toggle.component.d.ts +11 -0
  74. package/dist/components-source/tooltip/tooltip.component.d.ts +15 -0
  75. package/dist/components-source/vertical-steps/vertical-steps.component.d.ts +27 -0
  76. package/dist/esm2022/components-source/accordion/accordion-item/accordion-item.component.mjs +51 -0
  77. package/dist/esm2022/components-source/accordion/accordion.component.mjs +46 -0
  78. package/dist/esm2022/components-source/alert/alert.component.mjs +114 -0
  79. package/dist/esm2022/components-source/alert-modal/alert-modal.component.mjs +247 -0
  80. package/dist/esm2022/components-source/alert-validation/alert-validation.component.mjs +53 -0
  81. package/dist/esm2022/components-source/badge/badge.component.mjs +23 -0
  82. package/dist/esm2022/components-source/beta-tag/beta-tag.component.mjs +11 -0
  83. package/dist/esm2022/components-source/breadcrumb/breadcrumb.component.mjs +26 -0
  84. package/dist/esm2022/components-source/card-product/card-product.component.mjs +534 -0
  85. package/dist/esm2022/components-source/card-section/card-section.component.mjs +91 -0
  86. package/dist/esm2022/components-source/checkbox-selection-list/checkbox-selection-list.component.mjs +79 -0
  87. package/dist/esm2022/components-source/city-selector/city-selector.component.mjs +53 -0
  88. package/dist/esm2022/components-source/color-picker/color-picker.component.mjs +320 -0
  89. package/dist/esm2022/components-source/confirm-dialog/confirm-dialog.component.mjs +27 -0
  90. package/dist/esm2022/components-source/country-flags/country-flags.component.mjs +27 -0
  91. package/dist/esm2022/components-source/date-picker/date-picker.component.mjs +73 -0
  92. package/dist/esm2022/components-source/date-picker-range/date-picker-range.component.mjs +67 -0
  93. package/dist/esm2022/components-source/dropi-avatars/dropi-avatars.component.mjs +31 -0
  94. package/dist/esm2022/components-source/dropi-badge/dropi-badge.component.mjs +45 -0
  95. package/dist/esm2022/components-source/dropi-banner-external/dropi-banner-external.component.mjs +39 -0
  96. package/dist/esm2022/components-source/dropi-breadcrumb/dropi-breadcrumb.component.mjs +45 -0
  97. package/dist/esm2022/components-source/dropi-card-checkbox/dropi-card-checkbox.component.mjs +53 -0
  98. package/dist/esm2022/components-source/dropi-carousel/dropi-carousel.component.mjs +243 -0
  99. package/dist/esm2022/components-source/dropi-checkbox/dropi-checkbox.component.mjs +31 -0
  100. package/dist/esm2022/components-source/dropi-chips/dropi-chips.component.mjs +38 -0
  101. package/dist/esm2022/components-source/dropi-country-selector/countries.data.mjs +254 -0
  102. package/dist/esm2022/components-source/dropi-country-selector/dropi-country-selector.component.mjs +183 -0
  103. package/dist/esm2022/components-source/dropi-drawer/dropi-drawer.component.mjs +69 -0
  104. package/dist/esm2022/components-source/dropi-dropdown/dropi-dropdown.component.mjs +59 -0
  105. package/dist/esm2022/components-source/dropi-favorite-button/dropi-favorite-button.component.mjs +33 -0
  106. package/dist/esm2022/components-source/dropi-file-upload/card-view/card-view.component.mjs +47 -0
  107. package/dist/esm2022/components-source/dropi-file-upload/drop-zone/drop-zone.component.mjs +115 -0
  108. package/dist/esm2022/components-source/dropi-file-upload/dropi-file-upload.component.mjs +66 -0
  109. package/dist/esm2022/components-source/dropi-file-upload/file-list/file-list.component.mjs +95 -0
  110. package/dist/esm2022/components-source/dropi-file-upload/grid-view/grid-view.component.mjs +37 -0
  111. package/dist/esm2022/components-source/dropi-ilustration-icon/dropi-ilustration-icon.component.mjs +59 -0
  112. package/dist/esm2022/components-source/dropi-image-overlay/dropi-image-overlay.component.mjs +31 -0
  113. package/dist/esm2022/components-source/dropi-languages-selector/dropi-languages-selector.component.mjs +38 -0
  114. package/dist/esm2022/components-source/dropi-logo/dropi-logo.component.mjs +27 -0
  115. package/dist/esm2022/components-source/dropi-modal/dropi-modal.component.mjs +92 -0
  116. package/dist/esm2022/components-source/dropi-modal/p-template.directive.mjs +22 -0
  117. package/dist/esm2022/components-source/dropi-navbar/dropi-navbar.component.mjs +51 -0
  118. package/dist/esm2022/components-source/dropi-paginator/dropi-paginator.component.mjs +89 -0
  119. package/dist/esm2022/components-source/dropi-phone-input/dropi-phone-input.component.mjs +155 -0
  120. package/dist/esm2022/components-source/dropi-radio-button/dropi-radio-button.component.mjs +48 -0
  121. package/dist/esm2022/components-source/dropi-search/dropi-search.component.mjs +104 -0
  122. package/dist/esm2022/components-source/dropi-select/dropi-select.component.mjs +96 -0
  123. package/dist/esm2022/components-source/dropi-skeleton/dropi-skeleton.component.mjs +39 -0
  124. package/dist/esm2022/components-source/dropi-steps/dropi-steps.component.mjs +97 -0
  125. package/dist/esm2022/components-source/dropi-switch/dropi-switch.component.mjs +22 -0
  126. package/dist/esm2022/components-source/dropi-table/dropi-table.component.mjs +333 -0
  127. package/dist/esm2022/components-source/dropi-tag/dropi-tag.component.mjs +36 -0
  128. package/dist/esm2022/components-source/dropi-text-area/dropi-text-area.component.mjs +53 -0
  129. package/dist/esm2022/components-source/dropi-tooltip/dropi-tooltip.component.mjs +78 -0
  130. package/dist/esm2022/components-source/dropi-youtube-lazy-video/dropi-youtube-lazy-video.component.mjs +46 -0
  131. package/dist/esm2022/components-source/empty/empty.component.mjs +18 -0
  132. package/dist/esm2022/components-source/empty-state/empty-state.component.mjs +62 -0
  133. package/dist/esm2022/components-source/file-upload-progress-bar/file-upload-progress-bar.component.mjs +91 -0
  134. package/dist/esm2022/components-source/index.mjs +107 -0
  135. package/dist/esm2022/components-source/input/input.component.mjs +104 -0
  136. package/dist/esm2022/components-source/lottie-loader/lottie-loader.component.mjs +25 -0
  137. package/dist/esm2022/components-source/otp-send-code/otp-send-code.component.mjs +201 -0
  138. package/dist/esm2022/components-source/radio-selection-list/radio-selection-list.component.mjs +89 -0
  139. package/dist/esm2022/components-source/read-more/read-more.component.mjs +91 -0
  140. package/dist/esm2022/components-source/sidebar/sidebar.component.mjs +88 -0
  141. package/dist/esm2022/components-source/simple-stepper/simple-stepper.component.mjs +60 -0
  142. package/dist/esm2022/components-source/spinner/spinner.component.mjs +19 -0
  143. package/dist/esm2022/components-source/tabs/tabs.component.mjs +83 -0
  144. package/dist/esm2022/components-source/tag-type-product/tag-type-product.component.mjs +11 -0
  145. package/dist/esm2022/components-source/toast/toast.component.mjs +47 -0
  146. package/dist/esm2022/components-source/toggle/input-toggle.component.mjs +36 -0
  147. package/dist/esm2022/components-source/tooltip/tooltip.component.mjs +34 -0
  148. package/dist/esm2022/components-source/vertical-steps/vertical-steps.component.mjs +75 -0
  149. package/dist/esm2022/lib/elements-registry.mjs +343 -2
  150. package/dist/esm2022/utilities/interfaces/ui/dropi-table.interface.mjs +2 -0
  151. package/dist/esm2022/utilities/interfaces/ui/input-interface.mjs +2 -0
  152. package/dist/esm2022/utilities/interfaces/ui/select-interface.mjs +2 -0
  153. package/dist/esm2022/utilities/interfaces/ui/selection-list-interface.mjs +2 -0
  154. package/dist/esm2022/utilities/interfaces/ui/upload.model.mjs +5 -0
  155. package/dist/fesm2022/dropi-ui-components.mjs +5913 -2
  156. package/dist/fesm2022/dropi-ui-components.mjs.map +1 -1
  157. package/dist/utilities/interfaces/ui/dropi-table.interface.d.ts +45 -0
  158. package/dist/utilities/interfaces/ui/input-interface.d.ts +33 -0
  159. package/dist/utilities/interfaces/ui/select-interface.d.ts +8 -0
  160. package/dist/utilities/interfaces/ui/selection-list-interface.d.ts +24 -0
  161. package/dist/utilities/interfaces/ui/upload.model.d.ts +30 -0
  162. package/package.json +18 -6
  163. package/src/components-source/alert/alert.component.ts +12 -129
  164. package/src/components-source/alert-modal/alert-modal.component.ts +84 -114
  165. package/src/components-source/alert-validation/alert-validation.component.html +8 -0
  166. package/src/components-source/alert-validation/alert-validation.component.scss +225 -0
  167. package/src/components-source/alert-validation/alert-validation.component.ts +43 -0
  168. package/src/components-source/beta-tag/beta-tag.component.html +1 -0
  169. package/src/components-source/beta-tag/beta-tag.component.scss +26 -0
  170. package/src/components-source/beta-tag/beta-tag.component.ts +11 -0
  171. package/src/components-source/breadcrumb/breadcrumb.component.html +13 -5
  172. package/src/components-source/breadcrumb/breadcrumb.component.scss +8 -1
  173. package/src/components-source/breadcrumb/breadcrumb.component.spec.ts +26 -26
  174. package/src/components-source/breadcrumb/breadcrumb.component.ts +10 -12
  175. package/src/components-source/card-product/card-product.component.spec.ts +9 -9
  176. package/src/components-source/card-product/card-product.component.stories.ts +2 -2
  177. package/src/components-source/card-product/card-product.component.ts +294 -818
  178. package/src/components-source/card-section/card-section.component.html +7 -7
  179. package/src/components-source/card-section/card-section.component.ts +41 -15
  180. package/src/components-source/checkbox-selection-list/checkbox-selection-list.component.ts +42 -179
  181. package/src/components-source/city-selector/city-selector.component.ts +37 -137
  182. package/src/components-source/confirm-dialog/confirm-dialog.component.html +26 -0
  183. package/src/components-source/confirm-dialog/confirm-dialog.component.scss +55 -0
  184. package/src/components-source/confirm-dialog/confirm-dialog.component.ts +22 -0
  185. package/src/components-source/country-flags/country-flags.component.ts +20 -12
  186. package/src/components-source/date-picker/date-picker.component.ts +32 -292
  187. package/src/components-source/date-picker-range/date-picker-range.component.html +15 -7
  188. package/src/components-source/date-picker-range/date-picker-range.component.ts +42 -235
  189. package/src/components-source/dropi-banner-external/dropi-banner-external.component.ts +24 -185
  190. package/src/components-source/dropi-breadcrumb/dropi-breadcrumb.component.html +21 -21
  191. package/src/components-source/dropi-breadcrumb/dropi-breadcrumb.component.spec.ts +9 -9
  192. package/src/components-source/dropi-breadcrumb/dropi-breadcrumb.component.ts +41 -23
  193. package/src/components-source/dropi-breadcrumb/dropi-breadcrumb.stories.ts +12 -12
  194. package/src/components-source/dropi-chips/dropi-chips.component.ts +22 -87
  195. package/src/components-source/dropi-country-selector/countries.data.ts +256 -236
  196. package/src/components-source/dropi-country-selector/dropi-country-selector.component.ts +37 -25
  197. package/src/components-source/dropi-drawer/dropi-drawer.component.ts +91 -78
  198. package/src/components-source/dropi-dropdown/dropi-dropdown.component.ts +44 -47
  199. package/src/components-source/dropi-file-upload/card-view/card-view.component.ts +33 -53
  200. package/src/components-source/dropi-file-upload/drop-zone/drop-zone.component.ts +52 -123
  201. package/src/components-source/dropi-file-upload/dropi-file-upload.component.ts +38 -294
  202. package/src/components-source/dropi-file-upload/file-list/file-list.component.ts +62 -43
  203. package/src/components-source/dropi-file-upload/grid-view/grid-view.component.ts +23 -22
  204. package/src/components-source/dropi-ilustration-icon/dropi-ilustration-icon.component.scss +6 -2
  205. package/src/components-source/dropi-image-overlay/dropi-image-overlay.component.ts +16 -71
  206. package/src/components-source/dropi-modal/dropi-modal.component.ts +56 -372
  207. package/src/components-source/dropi-navbar/dropi-navbar.component.ts +17 -17
  208. package/src/components-source/dropi-paginator/dropi-paginator.component.html +18 -7
  209. package/src/components-source/dropi-paginator/dropi-paginator.component.ts +40 -32
  210. package/src/components-source/dropi-phone-input/dropi-phone-input.component.html +78 -79
  211. package/src/components-source/dropi-phone-input/dropi-phone-input.component.ts +29 -85
  212. package/src/components-source/dropi-search/dropi-search.component.ts +59 -222
  213. package/src/components-source/dropi-select/dropi-select.component.html +82 -131
  214. package/src/components-source/dropi-select/dropi-select.component.ts +60 -423
  215. package/src/components-source/dropi-table/dropi-table.component.html +40 -23
  216. package/src/components-source/dropi-table/dropi-table.component.ts +130 -374
  217. package/src/components-source/dropi-tag/dropi-tag.component.ts +20 -90
  218. package/src/components-source/dropi-text-area/dropi-text-area.component.ts +22 -48
  219. package/src/components-source/dropi-tooltip/dropi-tooltip.component.ts +40 -129
  220. package/src/components-source/empty/empty.component.html +3 -0
  221. package/src/components-source/empty/empty.component.scss +0 -0
  222. package/src/components-source/empty/empty.component.ts +16 -0
  223. package/src/components-source/empty-state/empty-state.component.ts +47 -19
  224. package/src/components-source/index.ts +82 -37
  225. package/src/components-source/input/input.component.html +79 -63
  226. package/src/components-source/input/input.component.ts +51 -97
  227. package/src/components-source/lottie-loader/lottie-loader.component.ts +13 -16
  228. package/src/components-source/otp-send-code/otp-send-code.component.ts +60 -528
  229. package/src/components-source/radio-selection-list/radio-selection-list.component.ts +36 -97
  230. package/src/components-source/sidebar/sidebar.component.spec.ts +11 -11
  231. package/src/components-source/sidebar/sidebar.component.stories.ts +3 -3
  232. package/src/components-source/sidebar/sidebar.component.ts +51 -47
  233. package/src/components-source/simple-stepper/simple-stepper.component.ts +20 -35
  234. package/src/components-source/spinner/spinner.component.html +6 -0
  235. package/src/components-source/spinner/spinner.component.scss +15 -0
  236. package/src/components-source/spinner/spinner.component.ts +17 -0
  237. package/src/components-source/tabs/tabs.component.spec.ts +8 -8
  238. package/src/components-source/tabs/tabs.component.stories.ts +5 -5
  239. package/src/components-source/tabs/tabs.component.ts +41 -83
  240. package/src/components-source/toast/toast.component.ts +40 -46
  241. package/src/components-source/toggle/input-toggle.component.html +34 -0
  242. package/src/components-source/toggle/input-toggle.component.scss +0 -0
  243. package/src/components-source/toggle/input-toggle.component.ts +27 -0
  244. package/src/components-source/toggle/inputToggleConfig.ts +11 -0
  245. package/src/components-source/tooltip/tooltip.component.html +22 -11
  246. package/src/components-source/tooltip/tooltip.component.ts +28 -13
  247. package/src/components-source/vertical-steps/vertical-steps.component.ts +16 -78
  248. package/src/lib/elements-registry.ts +413 -1
  249. package/src/lib/router-stub.ts +7 -0
  250. package/src/libreria work space.code-workspace +11 -8
  251. package/src/utilities/interfaces/ui/dropi-table.interface.ts +60 -0
  252. package/src/utilities/interfaces/ui/input-interface.ts +34 -0
  253. package/src/utilities/interfaces/ui/select-interface.ts +8 -0
  254. package/src/utilities/interfaces/ui/selection-list-interface.ts +15 -0
  255. package/src/utilities/interfaces/ui/upload.model.ts +41 -0
@@ -0,0 +1,53 @@
1
+ import { Component, Input, CUSTOM_ELEMENTS_SCHEMA, } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { ReactiveFormsModule } from "@angular/forms";
4
+ import { TranslateModule } from "@ngx-translate/core";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "@ngx-translate/core";
9
+ export class DropiTextAreaComponent {
10
+ textAreaProperties;
11
+ disabled = false;
12
+ showObligatoryAsterisk = false;
13
+ ngOnInit() {
14
+ this.validateDisabled();
15
+ }
16
+ isRequired() {
17
+ const control = this.textAreaProperties?.formControl;
18
+ if (!control || !control.validator)
19
+ return false;
20
+ const validationResult = control.validator({});
21
+ return !!validationResult?.["required"];
22
+ }
23
+ validateDisabled() {
24
+ if (this.disabled) {
25
+ this.textAreaProperties?.formControl?.disable();
26
+ }
27
+ else {
28
+ this.textAreaProperties?.formControl?.enable();
29
+ }
30
+ }
31
+ getErrorMessage() {
32
+ const control = this.textAreaProperties?.formControl;
33
+ if (control?.errors) {
34
+ if (control.errors["required"]) {
35
+ return "This field is required";
36
+ }
37
+ }
38
+ return "";
39
+ }
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropiTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DropiTextAreaComponent, isStandalone: true, selector: "app-dropi-text-area", inputs: { textAreaProperties: "textAreaProperties", disabled: "disabled", showObligatoryAsterisk: "showObligatoryAsterisk" }, ngImport: i0, template: "<div class=\"textarea-wrapper\">\n <label\n *ngIf=\"textAreaProperties?.label !== ''\"\n [for]=\"textAreaProperties.label\"\n [ngStyle]=\"{ color: disabled ? 'var(--Gray-Gray-500)' : 'var(--Gray-Gray-600)' }\"\n >{{ textAreaProperties.label | translate }}\n <span\n *ngIf=\"\n isRequired() &&\n showObligatoryAsterisk &&\n (!disabled || !textAreaProperties.formControl.disabled)\n \"\n >*</span\n ></label\n >\n\n <div class=\"textarea-container\">\n <textarea\n [id]=\"textAreaProperties.id ? textAreaProperties.id : textAreaProperties.label\"\n [rows]=\"textAreaProperties.rows ? textAreaProperties.rows : 4\"\n [formControl]=\"textAreaProperties.formControl\"\n [placeholder]=\"textAreaProperties.placeholder | translate\"\n [maxlength]=\"textAreaProperties?.maxLength\"\n [minlength]=\"textAreaProperties?.minLength ?? 0\"\n [style.resize]=\"textAreaProperties?.resize ? textAreaProperties.resize : 'vertical'\"\n class=\"form-control Body-M-Regular\"\n [ngClass]=\"{\n 'form-control-invalid':\n textAreaProperties.formControl?.invalid && textAreaProperties.formControl?.touched,\n 'form-control-valid':\n textAreaProperties.formControl?.valid && textAreaProperties.formControl?.touched\n }\"\n >\n {{ textAreaProperties.formControl.value }}\n </textarea>\n <div class=\"char-counter\">\n {{ textAreaProperties.formControl.value?.length }}/{{ textAreaProperties.maxLength }}\n </div>\n </div>\n <div\n *ngIf=\"\n textAreaProperties.textHelper ||\n (textAreaProperties.formControl.invalid && textAreaProperties.formControl.touched)\n \"\n class=\"form-control-helper\"\n >\n <app-icon\n *ngIf=\"textAreaProperties.formControl.invalid && textAreaProperties.formControl.touched\"\n name=\"Warning-circle\"\n width=\"12px\"\n height=\"12px\"\n color=\"Error-Error-500\"\n ></app-icon>\n <span\n [ngStyle]=\"{ color: disabled ? 'var(--Gray-Gray-500)' : 'var(--Gray-Gray-600)' }\"\n [ngClass]=\"{\n 'invalid-color':\n textAreaProperties.formControl.invalid && textAreaProperties.formControl.touched\n }\"\n >{{ (getErrorMessage() | translate) || (textAreaProperties.textHelper | translate) }}</span\n >\n </div>\n</div>\n", styles: [".form-group{position:relative;width:100%}.form-control{border:1px solid var(--Gray-Gray-200);border-radius:var(--Border-2);font-size:var(--font-size-s);transition:border-color .3s ease-in-out}.form-control-helper{display:flex;gap:4px;align-items:baseline}.form-control-helper span{display:block;margin-top:8px;color:var(--Gray-Gray-600);font-size:var(--font-size-xs)}.form-control:focus::placeholder{color:var(--Gray-Gray-500)}.form-control:focus{border-color:var(--Info-Info-500);outline:none}.form-control-valid{border:1px solid var(--Gray-Gray-400)!important;color:var(--Gray-Gray-600);outline:none}.form-control-invalid{border:1px solid var(--Error-Error-500)!important;color:var(--Gray-Gray-600);outline:none}.form-control:disabled{border:1px solid var(--Gray-Gray-200)!important;color:var(--Gray-Gray-400);background-color:var(--Gray-Gray-50);outline:none}.form-control:focus+label,.form-control:not(:placeholder-shown)+label{top:-28px;left:0;margin-bottom:8px;font-size:var(--font-size-xs);width:unset;color:var(--Gray-Gray-600)}.form-control:disabled+label{color:var(--Gray-Gray-500)}.form-control:disabled+label+.form-control-helper{color:var(--Gray-Gray-500)}.invalid-color{color:var(--Error-Error-500)!important}.textarea-wrapper{position:relative;width:100%}.textarea-wrapper label{font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);color:var(--Gray-Gray-600)}.textarea-wrapper label span{color:var(--Error-Error-500)}.textarea-container{position:relative}textarea{width:100%;overflow:auto;padding:12px;box-sizing:border-box;border-radius:var(--Border-2)}.char-counter{position:absolute;bottom:10px;right:16px;font-size:12px;color:var(--Gray-Gray-500)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropiTextAreaComponent, decorators: [{
44
+ type: Component,
45
+ args: [{ selector: "app-dropi-text-area", standalone: true, imports: [CommonModule, ReactiveFormsModule, TranslateModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div class=\"textarea-wrapper\">\n <label\n *ngIf=\"textAreaProperties?.label !== ''\"\n [for]=\"textAreaProperties.label\"\n [ngStyle]=\"{ color: disabled ? 'var(--Gray-Gray-500)' : 'var(--Gray-Gray-600)' }\"\n >{{ textAreaProperties.label | translate }}\n <span\n *ngIf=\"\n isRequired() &&\n showObligatoryAsterisk &&\n (!disabled || !textAreaProperties.formControl.disabled)\n \"\n >*</span\n ></label\n >\n\n <div class=\"textarea-container\">\n <textarea\n [id]=\"textAreaProperties.id ? textAreaProperties.id : textAreaProperties.label\"\n [rows]=\"textAreaProperties.rows ? textAreaProperties.rows : 4\"\n [formControl]=\"textAreaProperties.formControl\"\n [placeholder]=\"textAreaProperties.placeholder | translate\"\n [maxlength]=\"textAreaProperties?.maxLength\"\n [minlength]=\"textAreaProperties?.minLength ?? 0\"\n [style.resize]=\"textAreaProperties?.resize ? textAreaProperties.resize : 'vertical'\"\n class=\"form-control Body-M-Regular\"\n [ngClass]=\"{\n 'form-control-invalid':\n textAreaProperties.formControl?.invalid && textAreaProperties.formControl?.touched,\n 'form-control-valid':\n textAreaProperties.formControl?.valid && textAreaProperties.formControl?.touched\n }\"\n >\n {{ textAreaProperties.formControl.value }}\n </textarea>\n <div class=\"char-counter\">\n {{ textAreaProperties.formControl.value?.length }}/{{ textAreaProperties.maxLength }}\n </div>\n </div>\n <div\n *ngIf=\"\n textAreaProperties.textHelper ||\n (textAreaProperties.formControl.invalid && textAreaProperties.formControl.touched)\n \"\n class=\"form-control-helper\"\n >\n <app-icon\n *ngIf=\"textAreaProperties.formControl.invalid && textAreaProperties.formControl.touched\"\n name=\"Warning-circle\"\n width=\"12px\"\n height=\"12px\"\n color=\"Error-Error-500\"\n ></app-icon>\n <span\n [ngStyle]=\"{ color: disabled ? 'var(--Gray-Gray-500)' : 'var(--Gray-Gray-600)' }\"\n [ngClass]=\"{\n 'invalid-color':\n textAreaProperties.formControl.invalid && textAreaProperties.formControl.touched\n }\"\n >{{ (getErrorMessage() | translate) || (textAreaProperties.textHelper | translate) }}</span\n >\n </div>\n</div>\n", styles: [".form-group{position:relative;width:100%}.form-control{border:1px solid var(--Gray-Gray-200);border-radius:var(--Border-2);font-size:var(--font-size-s);transition:border-color .3s ease-in-out}.form-control-helper{display:flex;gap:4px;align-items:baseline}.form-control-helper span{display:block;margin-top:8px;color:var(--Gray-Gray-600);font-size:var(--font-size-xs)}.form-control:focus::placeholder{color:var(--Gray-Gray-500)}.form-control:focus{border-color:var(--Info-Info-500);outline:none}.form-control-valid{border:1px solid var(--Gray-Gray-400)!important;color:var(--Gray-Gray-600);outline:none}.form-control-invalid{border:1px solid var(--Error-Error-500)!important;color:var(--Gray-Gray-600);outline:none}.form-control:disabled{border:1px solid var(--Gray-Gray-200)!important;color:var(--Gray-Gray-400);background-color:var(--Gray-Gray-50);outline:none}.form-control:focus+label,.form-control:not(:placeholder-shown)+label{top:-28px;left:0;margin-bottom:8px;font-size:var(--font-size-xs);width:unset;color:var(--Gray-Gray-600)}.form-control:disabled+label{color:var(--Gray-Gray-500)}.form-control:disabled+label+.form-control-helper{color:var(--Gray-Gray-500)}.invalid-color{color:var(--Error-Error-500)!important}.textarea-wrapper{position:relative;width:100%}.textarea-wrapper label{font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);color:var(--Gray-Gray-600)}.textarea-wrapper label span{color:var(--Error-Error-500)}.textarea-container{position:relative}textarea{width:100%;overflow:auto;padding:12px;box-sizing:border-box;border-radius:var(--Border-2)}.char-counter{position:absolute;bottom:10px;right:16px;font-size:12px;color:var(--Gray-Gray-500)}\n"] }]
46
+ }], propDecorators: { textAreaProperties: [{
47
+ type: Input
48
+ }], disabled: [{
49
+ type: Input
50
+ }], showObligatoryAsterisk: [{
51
+ type: Input
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGktdGV4dC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9kcm9waS10ZXh0LWFyZWEvZHJvcGktdGV4dC1hcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9kcm9waS10ZXh0LWFyZWEvZHJvcGktdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLHNCQUFzQixHQUN2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFjLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQVd0RCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pCLGtCQUFrQixDQUFxQjtJQUN2QyxRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLHNCQUFzQixHQUFZLEtBQUssQ0FBQztJQUV4RCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFTLENBQUMsQ0FBQztRQUN0RCxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2xELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDO1FBQ3JELElBQUksT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLHdCQUF3QixDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO3dHQWhDVSxzQkFBc0I7NEZBQXRCLHNCQUFzQiw2TUNwQm5DLDIwRUErREEsNnNERGhEWSxZQUFZLHFUQUFFLG1CQUFtQiwrNEJBQUUsZUFBZTs7NEZBS2pELHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxXQUNwRCxDQUFDLHNCQUFzQixDQUFDOzhCQUtqQixrQkFBa0I7c0JBQWpDLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxzQkFBc0I7c0JBQXJDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIEluamVjdCxcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IFZhbGlkYXRvcnMsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBUZXh0QXJlYVByb3BlcnRpZXMgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2ludGVyZmFjZXMvdWkvaW5wdXQtaW50ZXJmYWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtZHJvcGktdGV4dC1hcmVhXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcm9waS10ZXh0LWFyZWEuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2Ryb3BpLXRleHQtYXJlYS5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGlUZXh0QXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyB0ZXh0QXJlYVByb3BlcnRpZXM6IFRleHRBcmVhUHJvcGVydGllcztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93T2JsaWdhdG9yeUFzdGVyaXNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52YWxpZGF0ZURpc2FibGVkKCk7XG4gIH1cblxuICBpc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnRleHRBcmVhUHJvcGVydGllcz8uZm9ybUNvbnRyb2w7XG4gICAgaWYgKCFjb250cm9sIHx8ICFjb250cm9sLnZhbGlkYXRvcikgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBjb250cm9sLnZhbGlkYXRvcih7fSBhcyBhbnkpO1xuICAgIHJldHVybiAhIXZhbGlkYXRpb25SZXN1bHQ/LltcInJlcXVpcmVkXCJdO1xuICB9XG5cbiAgdmFsaWRhdGVEaXNhYmxlZCgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy50ZXh0QXJlYVByb3BlcnRpZXM/LmZvcm1Db250cm9sPy5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGV4dEFyZWFQcm9wZXJ0aWVzPy5mb3JtQ29udHJvbD8uZW5hYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMudGV4dEFyZWFQcm9wZXJ0aWVzPy5mb3JtQ29udHJvbDtcbiAgICBpZiAoY29udHJvbD8uZXJyb3JzKSB7XG4gICAgICBpZiAoY29udHJvbC5lcnJvcnNbXCJyZXF1aXJlZFwiXSkge1xuICAgICAgICByZXR1cm4gXCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkXCI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGV4dGFyZWEtd3JhcHBlclwiPlxuICA8bGFiZWxcbiAgICAqbmdJZj1cInRleHRBcmVhUHJvcGVydGllcz8ubGFiZWwgIT09ICcnXCJcbiAgICBbZm9yXT1cInRleHRBcmVhUHJvcGVydGllcy5sYWJlbFwiXG4gICAgW25nU3R5bGVdPVwieyBjb2xvcjogZGlzYWJsZWQgPyAndmFyKC0tR3JheS1HcmF5LTUwMCknIDogJ3ZhcigtLUdyYXktR3JheS02MDApJyB9XCJcbiAgICA+e3sgdGV4dEFyZWFQcm9wZXJ0aWVzLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIGlzUmVxdWlyZWQoKSAmJlxuICAgICAgICBzaG93T2JsaWdhdG9yeUFzdGVyaXNrICYmXG4gICAgICAgICghZGlzYWJsZWQgfHwgIXRleHRBcmVhUHJvcGVydGllcy5mb3JtQ29udHJvbC5kaXNhYmxlZClcbiAgICAgIFwiXG4gICAgICA+Kjwvc3BhblxuICAgID48L2xhYmVsXG4gID5cblxuICA8ZGl2IGNsYXNzPVwidGV4dGFyZWEtY29udGFpbmVyXCI+XG4gICAgPHRleHRhcmVhXG4gICAgICBbaWRdPVwidGV4dEFyZWFQcm9wZXJ0aWVzLmlkID8gdGV4dEFyZWFQcm9wZXJ0aWVzLmlkIDogdGV4dEFyZWFQcm9wZXJ0aWVzLmxhYmVsXCJcbiAgICAgIFtyb3dzXT1cInRleHRBcmVhUHJvcGVydGllcy5yb3dzID8gdGV4dEFyZWFQcm9wZXJ0aWVzLnJvd3MgOiA0XCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJ0ZXh0QXJlYVByb3BlcnRpZXMuZm9ybUNvbnRyb2xcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInRleHRBcmVhUHJvcGVydGllcy5wbGFjZWhvbGRlciB8IHRyYW5zbGF0ZVwiXG4gICAgICBbbWF4bGVuZ3RoXT1cInRleHRBcmVhUHJvcGVydGllcz8ubWF4TGVuZ3RoXCJcbiAgICAgIFttaW5sZW5ndGhdPVwidGV4dEFyZWFQcm9wZXJ0aWVzPy5taW5MZW5ndGggPz8gMFwiXG4gICAgICBbc3R5bGUucmVzaXplXT1cInRleHRBcmVhUHJvcGVydGllcz8ucmVzaXplID8gdGV4dEFyZWFQcm9wZXJ0aWVzLnJlc2l6ZSA6ICd2ZXJ0aWNhbCdcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgQm9keS1NLVJlZ3VsYXJcIlxuICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnZm9ybS1jb250cm9sLWludmFsaWQnOlxuICAgICAgICAgIHRleHRBcmVhUHJvcGVydGllcy5mb3JtQ29udHJvbD8uaW52YWxpZCAmJiB0ZXh0QXJlYVByb3BlcnRpZXMuZm9ybUNvbnRyb2w/LnRvdWNoZWQsXG4gICAgICAgICdmb3JtLWNvbnRyb2wtdmFsaWQnOlxuICAgICAgICAgIHRleHRBcmVhUHJvcGVydGllcy5mb3JtQ29udHJvbD8udmFsaWQgJiYgdGV4dEFyZWFQcm9wZXJ0aWVzLmZvcm1Db250cm9sPy50b3VjaGVkXG4gICAgICB9XCJcbiAgICA+XG4gICAge3sgdGV4dEFyZWFQcm9wZXJ0aWVzLmZvcm1Db250cm9sLnZhbHVlIH19XG4gICAgPC90ZXh0YXJlYT5cbiAgICA8ZGl2IGNsYXNzPVwiY2hhci1jb3VudGVyXCI+XG4gICAgICB7eyB0ZXh0QXJlYVByb3BlcnRpZXMuZm9ybUNvbnRyb2wudmFsdWU/Lmxlbmd0aCB9fS97eyB0ZXh0QXJlYVByb3BlcnRpZXMubWF4TGVuZ3RoIH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgKm5nSWY9XCJcbiAgICAgIHRleHRBcmVhUHJvcGVydGllcy50ZXh0SGVscGVyIHx8XG4gICAgICAodGV4dEFyZWFQcm9wZXJ0aWVzLmZvcm1Db250cm9sLmludmFsaWQgJiYgdGV4dEFyZWFQcm9wZXJ0aWVzLmZvcm1Db250cm9sLnRvdWNoZWQpXG4gICAgXCJcbiAgICBjbGFzcz1cImZvcm0tY29udHJvbC1oZWxwZXJcIlxuICA+XG4gICAgPGFwcC1pY29uXG4gICAgICAqbmdJZj1cInRleHRBcmVhUHJvcGVydGllcy5mb3JtQ29udHJvbC5pbnZhbGlkICYmIHRleHRBcmVhUHJvcGVydGllcy5mb3JtQ29udHJvbC50b3VjaGVkXCJcbiAgICAgIG5hbWU9XCJXYXJuaW5nLWNpcmNsZVwiXG4gICAgICB3aWR0aD1cIjEycHhcIlxuICAgICAgaGVpZ2h0PVwiMTJweFwiXG4gICAgICBjb2xvcj1cIkVycm9yLUVycm9yLTUwMFwiXG4gICAgPjwvYXBwLWljb24+XG4gICAgPHNwYW5cbiAgICAgIFtuZ1N0eWxlXT1cInsgY29sb3I6IGRpc2FibGVkID8gJ3ZhcigtLUdyYXktR3JheS01MDApJyA6ICd2YXIoLS1HcmF5LUdyYXktNjAwKScgfVwiXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICdpbnZhbGlkLWNvbG9yJzpcbiAgICAgICAgICB0ZXh0QXJlYVByb3BlcnRpZXMuZm9ybUNvbnRyb2wuaW52YWxpZCAmJiB0ZXh0QXJlYVByb3BlcnRpZXMuZm9ybUNvbnRyb2wudG91Y2hlZFxuICAgICAgfVwiXG4gICAgICA+e3sgKGdldEVycm9yTWVzc2FnZSgpIHwgdHJhbnNsYXRlKSB8fCAodGV4dEFyZWFQcm9wZXJ0aWVzLnRleHRIZWxwZXIgfCB0cmFuc2xhdGUpIH19PC9zcGFuXG4gICAgPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,78 @@
1
+ import { Component, Input, CUSTOM_ELEMENTS_SCHEMA, } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class DropiTooltipComponent {
6
+ text = "";
7
+ maxWidth = "200px";
8
+ minWidth = "auto";
9
+ position = "top";
10
+ arrowPosition = "center";
11
+ trigger = "hover";
12
+ disabled = false;
13
+ showIcon = true;
14
+ iconName = "Info";
15
+ iconColor = "currentColor";
16
+ iconSize = "24px";
17
+ showX = false;
18
+ isVisible = false;
19
+ displayContent = "";
20
+ constructor() { }
21
+ ngOnInit() {
22
+ this.displayContent = this.text;
23
+ }
24
+ onMouseEnter() {
25
+ if (!this.disabled && this.trigger === "hover")
26
+ this.isVisible = true;
27
+ }
28
+ onMouseLeave() {
29
+ if (this.trigger === "hover")
30
+ this.isVisible = false;
31
+ }
32
+ onClick() {
33
+ if (!this.disabled && this.trigger === "click")
34
+ this.isVisible = !this.isVisible;
35
+ }
36
+ onFocus() {
37
+ if (!this.disabled && this.trigger === "focus")
38
+ this.isVisible = true;
39
+ }
40
+ onBlur() {
41
+ if (this.trigger === "focus")
42
+ this.isVisible = false;
43
+ }
44
+ onCloseClick() {
45
+ this.isVisible = false;
46
+ }
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropiTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DropiTooltipComponent, isStandalone: true, selector: "app-dropi-tooltip", inputs: { text: "text", maxWidth: "maxWidth", minWidth: "minWidth", position: "position", arrowPosition: "arrowPosition", trigger: "trigger", disabled: "disabled", showIcon: "showIcon", iconName: "iconName", iconColor: "iconColor", iconSize: "iconSize", showX: "showX" }, ngImport: i0, template: "<div class=\"dropi-tooltip-container\" [class.disabled]=\"disabled\">\n <!-- Trigger element -->\n <div\n class=\"dropi-tooltip-trigger\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (click)=\"onClick()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.tabindex]=\"trigger === 'focus' ? '0' : null\"\n >\n <!-- Default icon trigger -->\n <app-icon\n *ngIf=\"showIcon\"\n [name]=\"iconName\"\n [color]=\"iconColor\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n >\n </app-icon>\n\n <!-- Custom content slot -->\n <ng-content></ng-content>\n </div>\n\n <!-- Tooltip content - siguiendo estructura exacta de Figma -->\n <div\n @tooltipAnimation\n class=\"tooltip-master\"\n *ngIf=\"isVisible\"\n [class.position-top]=\"position === 'top'\"\n [class.position-bottom]=\"position === 'bottom'\"\n [class.position-left]=\"position === 'left'\"\n [class.position-right]=\"position === 'right'\"\n [class.arrow-start]=\"arrowPosition === 'start'\"\n [class.arrow-center]=\"arrowPosition === 'center'\"\n [class.arrow-end]=\"arrowPosition === 'end'\"\n [style.min-width]=\"minWidth\"\n [style.max-width]=\"maxWidth\"\n >\n <!-- Tooltip wrapper -->\n <div class=\"tooltip-wrapper\">\n <!-- Beak container (flecha superior) -->\n <div class=\"beak-top\" *ngIf=\"position === 'bottom'\">\n <div class=\"beak-container-top\">\n <div class=\"beak-arrow-top\"></div>\n </div>\n </div>\n\n <!-- Bubble content -->\n <div class=\"bubble\">\n <div class=\"tooltip-content\">\n <div class=\"tooltip-text\" [innerHTML]=\"displayContent\"></div>\n </div>\n\n <!-- Close button -->\n <div class=\"close-button\" *ngIf=\"showX\" (click)=\"onCloseClick()\">\n <app-icon name=\"Close-small\" color=\"#ffffff\" width=\"16\" height=\"16\"></app-icon>\n </div>\n </div>\n\n <!-- Beak container (flecha inferior) -->\n <div class=\"beak-bottom\" *ngIf=\"position === 'top'\">\n <div class=\"beak-container-bottom\">\n <div class=\"beak-arrow-bottom\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".dropi-tooltip-container{position:relative;display:inline-block}.dropi-tooltip-container.disabled{pointer-events:none;opacity:.5}.dropi-tooltip-trigger{display:inline-flex;width:100%;height:100%}.tooltip-master{position:absolute;z-index:9999;padding:8px;border-radius:4px}.tooltip-master.position-bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-master.position-bottom.arrow-start{transform:translate(-20px)}.tooltip-master.position-bottom.arrow-end{transform:translate(-80%)}.tooltip-master.position-top{bottom:calc(100% + 8px);left:50%;transform:translate(-44%)}.tooltip-master.position-top.arrow-start{transform:translate(-20px)}.tooltip-master.position-top.arrow-end{transform:translate(-80%)}.tooltip-master.position-left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-master.position-right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-wrapper{background-color:#1f2433;border:1px solid #1f2433;border-radius:8px;position:relative;width:100%}.beak-top{display:flex;align-items:center;justify-content:flex-start;position:relative;width:100%}.beak-top .beak-container-top{height:.001px;width:48px;position:relative}.beak-top .beak-container-top .beak-arrow-top{position:absolute;inset:-6.34px 0 0;width:12px;height:6px}.beak-top .beak-container-top .beak-arrow-top:before{content:\"\";position:absolute;top:0;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #1f2433}.arrow-start .beak-top .beak-container-top{margin-left:16px}.arrow-center .beak-top .beak-container-top{margin:0 auto}.arrow-end .beak-top .beak-container-top{margin-right:16px;margin-left:auto}.beak-bottom{display:flex;align-items:center;justify-content:flex-start;position:relative;width:100%}.beak-bottom .beak-container-bottom{height:.001px;width:48px;position:relative}.beak-bottom .beak-container-bottom .beak-arrow-bottom{position:absolute;inset:0 0 -6.34px;width:12px;height:6px}.beak-bottom .beak-container-bottom .beak-arrow-bottom:before{content:\"\";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #1f2433}.arrow-start .beak-bottom .beak-container-bottom{margin-left:16px}.arrow-center .beak-bottom .beak-container-bottom{margin:0 auto}.arrow-end .beak-bottom .beak-container-bottom{margin-right:16px;margin-left:auto}.bubble{display:flex;gap:4px;align-items:flex-start;justify-content:flex-start;padding:16px;border-radius:4px;flex-grow:1;min-height:1px;min-width:1px}.tooltip-content{display:flex;flex-direction:column;gap:8px;align-items:flex-start;justify-content:flex-start;flex-grow:1;min-height:1px;min-width:1px;position:relative}.tooltip-text{font-family:Inter,sans-serif;font-weight:400;font-size:14px;line-height:1.5;color:#fff;width:100%;margin:0}.tooltip-text strong{font-weight:600}.close-button{width:24px;height:24px;position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s ease}.close-button:hover{background-color:#ffffff1a}@media (max-width: 768px){.tooltip-master{max-width:200px!important}.tooltip-text{font-size:13px}.bubble{padding:12px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropiTooltipComponent, decorators: [{
51
+ type: Component,
52
+ args: [{ selector: "app-dropi-tooltip", standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div class=\"dropi-tooltip-container\" [class.disabled]=\"disabled\">\n <!-- Trigger element -->\n <div\n class=\"dropi-tooltip-trigger\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n (click)=\"onClick()\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n [attr.tabindex]=\"trigger === 'focus' ? '0' : null\"\n >\n <!-- Default icon trigger -->\n <app-icon\n *ngIf=\"showIcon\"\n [name]=\"iconName\"\n [color]=\"iconColor\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n >\n </app-icon>\n\n <!-- Custom content slot -->\n <ng-content></ng-content>\n </div>\n\n <!-- Tooltip content - siguiendo estructura exacta de Figma -->\n <div\n @tooltipAnimation\n class=\"tooltip-master\"\n *ngIf=\"isVisible\"\n [class.position-top]=\"position === 'top'\"\n [class.position-bottom]=\"position === 'bottom'\"\n [class.position-left]=\"position === 'left'\"\n [class.position-right]=\"position === 'right'\"\n [class.arrow-start]=\"arrowPosition === 'start'\"\n [class.arrow-center]=\"arrowPosition === 'center'\"\n [class.arrow-end]=\"arrowPosition === 'end'\"\n [style.min-width]=\"minWidth\"\n [style.max-width]=\"maxWidth\"\n >\n <!-- Tooltip wrapper -->\n <div class=\"tooltip-wrapper\">\n <!-- Beak container (flecha superior) -->\n <div class=\"beak-top\" *ngIf=\"position === 'bottom'\">\n <div class=\"beak-container-top\">\n <div class=\"beak-arrow-top\"></div>\n </div>\n </div>\n\n <!-- Bubble content -->\n <div class=\"bubble\">\n <div class=\"tooltip-content\">\n <div class=\"tooltip-text\" [innerHTML]=\"displayContent\"></div>\n </div>\n\n <!-- Close button -->\n <div class=\"close-button\" *ngIf=\"showX\" (click)=\"onCloseClick()\">\n <app-icon name=\"Close-small\" color=\"#ffffff\" width=\"16\" height=\"16\"></app-icon>\n </div>\n </div>\n\n <!-- Beak container (flecha inferior) -->\n <div class=\"beak-bottom\" *ngIf=\"position === 'top'\">\n <div class=\"beak-container-bottom\">\n <div class=\"beak-arrow-bottom\"></div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".dropi-tooltip-container{position:relative;display:inline-block}.dropi-tooltip-container.disabled{pointer-events:none;opacity:.5}.dropi-tooltip-trigger{display:inline-flex;width:100%;height:100%}.tooltip-master{position:absolute;z-index:9999;padding:8px;border-radius:4px}.tooltip-master.position-bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-master.position-bottom.arrow-start{transform:translate(-20px)}.tooltip-master.position-bottom.arrow-end{transform:translate(-80%)}.tooltip-master.position-top{bottom:calc(100% + 8px);left:50%;transform:translate(-44%)}.tooltip-master.position-top.arrow-start{transform:translate(-20px)}.tooltip-master.position-top.arrow-end{transform:translate(-80%)}.tooltip-master.position-left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-master.position-right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-wrapper{background-color:#1f2433;border:1px solid #1f2433;border-radius:8px;position:relative;width:100%}.beak-top{display:flex;align-items:center;justify-content:flex-start;position:relative;width:100%}.beak-top .beak-container-top{height:.001px;width:48px;position:relative}.beak-top .beak-container-top .beak-arrow-top{position:absolute;inset:-6.34px 0 0;width:12px;height:6px}.beak-top .beak-container-top .beak-arrow-top:before{content:\"\";position:absolute;top:0;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #1f2433}.arrow-start .beak-top .beak-container-top{margin-left:16px}.arrow-center .beak-top .beak-container-top{margin:0 auto}.arrow-end .beak-top .beak-container-top{margin-right:16px;margin-left:auto}.beak-bottom{display:flex;align-items:center;justify-content:flex-start;position:relative;width:100%}.beak-bottom .beak-container-bottom{height:.001px;width:48px;position:relative}.beak-bottom .beak-container-bottom .beak-arrow-bottom{position:absolute;inset:0 0 -6.34px;width:12px;height:6px}.beak-bottom .beak-container-bottom .beak-arrow-bottom:before{content:\"\";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #1f2433}.arrow-start .beak-bottom .beak-container-bottom{margin-left:16px}.arrow-center .beak-bottom .beak-container-bottom{margin:0 auto}.arrow-end .beak-bottom .beak-container-bottom{margin-right:16px;margin-left:auto}.bubble{display:flex;gap:4px;align-items:flex-start;justify-content:flex-start;padding:16px;border-radius:4px;flex-grow:1;min-height:1px;min-width:1px}.tooltip-content{display:flex;flex-direction:column;gap:8px;align-items:flex-start;justify-content:flex-start;flex-grow:1;min-height:1px;min-width:1px;position:relative}.tooltip-text{font-family:Inter,sans-serif;font-weight:400;font-size:14px;line-height:1.5;color:#fff;width:100%;margin:0}.tooltip-text strong{font-weight:600}.close-button{width:24px;height:24px;position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .15s ease}.close-button:hover{background-color:#ffffff1a}@media (max-width: 768px){.tooltip-master{max-width:200px!important}.tooltip-text{font-size:13px}.bubble{padding:12px}}\n"] }]
53
+ }], ctorParameters: () => [], propDecorators: { text: [{
54
+ type: Input
55
+ }], maxWidth: [{
56
+ type: Input
57
+ }], minWidth: [{
58
+ type: Input
59
+ }], position: [{
60
+ type: Input
61
+ }], arrowPosition: [{
62
+ type: Input
63
+ }], trigger: [{
64
+ type: Input
65
+ }], disabled: [{
66
+ type: Input
67
+ }], showIcon: [{
68
+ type: Input
69
+ }], iconName: [{
70
+ type: Input
71
+ }], iconColor: [{
72
+ type: Input
73
+ }], iconSize: [{
74
+ type: Input
75
+ }], showX: [{
76
+ type: Input
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGktdG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy1zb3VyY2UvZHJvcGktdG9vbHRpcC9kcm9waS10b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9kcm9waS10b29sdGlwL2Ryb3BpLXRvb2x0aXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsc0JBQXNCLEdBQ3ZCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBVS9DLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixRQUFRLEdBQVcsT0FBTyxDQUFDO0lBQzNCLFFBQVEsR0FBVyxNQUFNLENBQUM7SUFDMUIsUUFBUSxHQUF3QyxLQUFLLENBQUM7SUFDdEQsYUFBYSxHQUErQixRQUFRLENBQUM7SUFDckQsT0FBTyxHQUFnQyxPQUFPLENBQUM7SUFDL0MsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixRQUFRLEdBQVksSUFBSSxDQUFDO0lBQ3pCLFFBQVEsR0FBVyxNQUFNLENBQUM7SUFDMUIsU0FBUyxHQUFXLGNBQWMsQ0FBQztJQUNuQyxRQUFRLEdBQVcsTUFBTSxDQUFDO0lBQzFCLEtBQUssR0FBWSxLQUFLLENBQUM7SUFFaEMsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixjQUFjLEdBQVcsRUFBRSxDQUFDO0lBRW5DLGdCQUFlLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLE9BQU87WUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4RSxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPO1lBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPO1lBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEUsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7d0dBOUNVLHFCQUFxQjs0RkFBckIscUJBQXFCLDZWQ2hCbEMsOHRFQXNFQSxteUdEM0RZLFlBQVk7OzRGQUtYLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFdBQ2QsQ0FBQyxzQkFBc0IsQ0FBQzt3REFLakIsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtZHJvcGktdG9vbHRpcFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3BpLXRvb2x0aXAuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2Ryb3BpLXRvb2x0aXAuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIERyb3BpVG9vbHRpcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyB0ZXh0OiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBwdWJsaWMgbWF4V2lkdGg6IHN0cmluZyA9IFwiMjAwcHhcIjtcbiAgQElucHV0KCkgcHVibGljIG1pbldpZHRoOiBzdHJpbmcgPSBcImF1dG9cIjtcbiAgQElucHV0KCkgcHVibGljIHBvc2l0aW9uOiBcInRvcFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiIHwgXCJyaWdodFwiID0gXCJ0b3BcIjtcbiAgQElucHV0KCkgcHVibGljIGFycm93UG9zaXRpb246IFwic3RhcnRcIiB8IFwiY2VudGVyXCIgfCBcImVuZFwiID0gXCJjZW50ZXJcIjtcbiAgQElucHV0KCkgcHVibGljIHRyaWdnZXI6IFwiaG92ZXJcIiB8IFwiY2xpY2tcIiB8IFwiZm9jdXNcIiA9IFwiaG92ZXJcIjtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93SWNvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uTmFtZTogc3RyaW5nID0gXCJJbmZvXCI7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uQ29sb3I6IHN0cmluZyA9IFwiY3VycmVudENvbG9yXCI7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uU2l6ZTogc3RyaW5nID0gXCIyNHB4XCI7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93WDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGRpc3BsYXlDb250ZW50OiBzdHJpbmcgPSBcIlwiO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlDb250ZW50ID0gdGhpcy50ZXh0O1xuICB9XG5cbiAgcHVibGljIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy50cmlnZ2VyID09PSBcImhvdmVyXCIpIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gXCJob3ZlclwiKSB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmIHRoaXMudHJpZ2dlciA9PT0gXCJjbGlja1wiKVxuICAgICAgdGhpcy5pc1Zpc2libGUgPSAhdGhpcy5pc1Zpc2libGU7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy50cmlnZ2VyID09PSBcImZvY3VzXCIpIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PT0gXCJmb2N1c1wiKSB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2VDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZHJvcGktdG9vbHRpcC1jb250YWluZXJcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cbiAgPCEtLSBUcmlnZ2VyIGVsZW1lbnQgLS0+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3BpLXRvb2x0aXAtdHJpZ2dlclwiXG4gICAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIlxuICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCJcbiAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidHJpZ2dlciA9PT0gJ2ZvY3VzJyA/ICcwJyA6IG51bGxcIlxuICA+XG4gICAgPCEtLSBEZWZhdWx0IGljb24gdHJpZ2dlciAtLT5cbiAgICA8YXBwLWljb25cbiAgICAgICpuZ0lmPVwic2hvd0ljb25cIlxuICAgICAgW25hbWVdPVwiaWNvbk5hbWVcIlxuICAgICAgW2NvbG9yXT1cImljb25Db2xvclwiXG4gICAgICBbd2lkdGhdPVwiaWNvblNpemVcIlxuICAgICAgW2hlaWdodF09XCJpY29uU2l6ZVwiXG4gICAgPlxuICAgIDwvYXBwLWljb24+XG5cbiAgICA8IS0tIEN1c3RvbSBjb250ZW50IHNsb3QgLS0+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8IS0tIFRvb2x0aXAgY29udGVudCAtIHNpZ3VpZW5kbyBlc3RydWN0dXJhIGV4YWN0YSBkZSBGaWdtYSAtLT5cbiAgPGRpdlxuICAgIEB0b29sdGlwQW5pbWF0aW9uXG4gICAgY2xhc3M9XCJ0b29sdGlwLW1hc3RlclwiXG4gICAgKm5nSWY9XCJpc1Zpc2libGVcIlxuICAgIFtjbGFzcy5wb3NpdGlvbi10b3BdPVwicG9zaXRpb24gPT09ICd0b3AnXCJcbiAgICBbY2xhc3MucG9zaXRpb24tYm90dG9tXT1cInBvc2l0aW9uID09PSAnYm90dG9tJ1wiXG4gICAgW2NsYXNzLnBvc2l0aW9uLWxlZnRdPVwicG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgW2NsYXNzLnBvc2l0aW9uLXJpZ2h0XT1cInBvc2l0aW9uID09PSAncmlnaHQnXCJcbiAgICBbY2xhc3MuYXJyb3ctc3RhcnRdPVwiYXJyb3dQb3NpdGlvbiA9PT0gJ3N0YXJ0J1wiXG4gICAgW2NsYXNzLmFycm93LWNlbnRlcl09XCJhcnJvd1Bvc2l0aW9uID09PSAnY2VudGVyJ1wiXG4gICAgW2NsYXNzLmFycm93LWVuZF09XCJhcnJvd1Bvc2l0aW9uID09PSAnZW5kJ1wiXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJtaW5XaWR0aFwiXG4gICAgW3N0eWxlLm1heC13aWR0aF09XCJtYXhXaWR0aFwiXG4gID5cbiAgICA8IS0tIFRvb2x0aXAgd3JhcHBlciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC13cmFwcGVyXCI+XG4gICAgICA8IS0tIEJlYWsgY29udGFpbmVyIChmbGVjaGEgc3VwZXJpb3IpIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImJlYWstdG9wXCIgKm5nSWY9XCJwb3NpdGlvbiA9PT0gJ2JvdHRvbSdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJlYWstY29udGFpbmVyLXRvcFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZWFrLWFycm93LXRvcFwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEJ1YmJsZSBjb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImJ1YmJsZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1jb250ZW50XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtdGV4dFwiIFtpbm5lckhUTUxdPVwiZGlzcGxheUNvbnRlbnRcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBDbG9zZSBidXR0b24gLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZS1idXR0b25cIiAqbmdJZj1cInNob3dYXCIgKGNsaWNrKT1cIm9uQ2xvc2VDbGljaygpXCI+XG4gICAgICAgICAgPGFwcC1pY29uIG5hbWU9XCJDbG9zZS1zbWFsbFwiIGNvbG9yPVwiI2ZmZmZmZlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjwvYXBwLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQmVhayBjb250YWluZXIgKGZsZWNoYSBpbmZlcmlvcikgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmVhay1ib3R0b21cIiAqbmdJZj1cInBvc2l0aW9uID09PSAndG9wJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYmVhay1jb250YWluZXItYm90dG9tXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJlYWstYXJyb3ctYm90dG9tXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { Component, Input, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IconComponent } from '../icon/icon.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/platform-browser";
6
+ import * as i2 from "@angular/common";
7
+ export class DropiYoutubeLazyVideoComponent {
8
+ sanitizer;
9
+ videoId;
10
+ thumbnailSrc = '';
11
+ videoTitle = '';
12
+ isPlaying = false;
13
+ safeVideoUrl = null;
14
+ constructor(sanitizer) {
15
+ this.sanitizer = sanitizer;
16
+ }
17
+ get thumbnail() {
18
+ return `/assets/images/${this.thumbnailSrc}.png`;
19
+ }
20
+ playVideo() {
21
+ if (!this.safeVideoUrl) {
22
+ const timestamp = Date.now();
23
+ const url = `https://www.youtube.com/embed/${this.videoId}?autoplay=1&rel=0&modestbranding=1&enablejsapi=1&t=${timestamp}`;
24
+ this.safeVideoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url);
25
+ console.log('Created video URL:', url);
26
+ }
27
+ this.isPlaying = true;
28
+ }
29
+ onImageError(event) {
30
+ console.error('Error loading thumbnail image:', this.thumbnail);
31
+ console.error('Event:', event);
32
+ }
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropiYoutubeLazyVideoComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
34
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DropiYoutubeLazyVideoComponent, isStandalone: true, selector: "dropi-youtube-lazy-video", inputs: { videoId: "videoId", thumbnailSrc: "thumbnailSrc", videoTitle: "videoTitle" }, ngImport: i0, template: "<div class=\"video-wrapper\" [class.playing]=\"isPlaying\">\n <!-- Thumbnail -->\n <div *ngIf=\"!isPlaying\" class=\"thumbnail\" (click)=\"playVideo()\">\n <img [src]=\"thumbnail\" [alt]=\"'Video thumbnail ' + videoId\" (error)=\"onImageError($event)\" />\n <button class=\"play-button\" aria-label=\"Reproducir video\">\n <app-icon name=\"Play\" width=\"17px\" height=\"21px\" color=\"Neutral-White\"></app-icon>\n </button>\n </div>\n\n <iframe\n *ngIf=\"isPlaying && safeVideoUrl\"\n [attr.src]=\"safeVideoUrl\"\n [title]=\"videoTitle\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerpolicy=\"strict-origin-when-cross-origin\"\n allowfullscreen\n loading=\"lazy\"\n ></iframe>\n</div>\n", styles: [".video-wrapper{position:relative;width:100%;padding-bottom:56.25%;background:#000;overflow:hidden;border-radius:12px}.video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}.video-wrapper .thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden}.video-wrapper .thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.video-wrapper .thumbnail:hover img{transform:scale(1.05)}.video-wrapper .thumbnail .play-button{position:absolute;color:#fff;border:none;border-radius:50%;font-size:var(--Size-6);width:70px;height:70px;cursor:pointer;transition:background .3s ease;background:#0e111a99;backdrop-filter:blur(2.181330204px)}.video-wrapper .thumbnail .play-button:hover{background:#000c}@media screen and (max-width: 768px){.video-wrapper .thumbnail .play-button{width:40px;height:40px;font-size:var(--Size-4)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "app-icon", inputs: ["name", "width", "height", "color"] }] });
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropiYoutubeLazyVideoComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'dropi-youtube-lazy-video', standalone: true, imports: [CommonModule, IconComponent], schemas: [NO_ERRORS_SCHEMA], template: "<div class=\"video-wrapper\" [class.playing]=\"isPlaying\">\n <!-- Thumbnail -->\n <div *ngIf=\"!isPlaying\" class=\"thumbnail\" (click)=\"playVideo()\">\n <img [src]=\"thumbnail\" [alt]=\"'Video thumbnail ' + videoId\" (error)=\"onImageError($event)\" />\n <button class=\"play-button\" aria-label=\"Reproducir video\">\n <app-icon name=\"Play\" width=\"17px\" height=\"21px\" color=\"Neutral-White\"></app-icon>\n </button>\n </div>\n\n <iframe\n *ngIf=\"isPlaying && safeVideoUrl\"\n [attr.src]=\"safeVideoUrl\"\n [title]=\"videoTitle\"\n frameborder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerpolicy=\"strict-origin-when-cross-origin\"\n allowfullscreen\n loading=\"lazy\"\n ></iframe>\n</div>\n", styles: [".video-wrapper{position:relative;width:100%;padding-bottom:56.25%;background:#000;overflow:hidden;border-radius:12px}.video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}.video-wrapper .thumbnail{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden}.video-wrapper .thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.video-wrapper .thumbnail:hover img{transform:scale(1.05)}.video-wrapper .thumbnail .play-button{position:absolute;color:#fff;border:none;border-radius:50%;font-size:var(--Size-6);width:70px;height:70px;cursor:pointer;transition:background .3s ease;background:#0e111a99;backdrop-filter:blur(2.181330204px)}.video-wrapper .thumbnail .play-button:hover{background:#000c}@media screen and (max-width: 768px){.video-wrapper .thumbnail .play-button{width:40px;height:40px;font-size:var(--Size-4)}}\n"] }]
39
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { videoId: [{
40
+ type: Input
41
+ }], thumbnailSrc: [{
42
+ type: Input
43
+ }], videoTitle: [{
44
+ type: Input
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGkteW91dHViZS1sYXp5LXZpZGVvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9kcm9waS15b3V0dWJlLWxhenktdmlkZW8vZHJvcGkteW91dHViZS1sYXp5LXZpZGVvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9kcm9waS15b3V0dWJlLWxhenktdmlkZW8vZHJvcGkteW91dHViZS1sYXp5LXZpZGVvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFVdkQsTUFBTSxPQUFPLDhCQUE4QjtJQVFyQjtJQVBYLE9BQU8sQ0FBVTtJQUNqQixZQUFZLEdBQVcsRUFBRSxDQUFDO0lBQzFCLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFFakMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixZQUFZLEdBQTJCLElBQUksQ0FBQztJQUU1QyxZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQUcsQ0FBQztJQUUvQyxJQUFJLFNBQVM7UUFDWCxPQUFPLGtCQUFrQixJQUFJLENBQUMsWUFBWSxNQUFNLENBQUM7SUFDbkQsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM3QixNQUFNLEdBQUcsR0FBRyxpQ0FBaUMsSUFBSSxDQUFDLE9BQU8sc0RBQXNELFNBQVMsRUFBRSxDQUFDO1lBQzNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2RSxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVk7UUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEUsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzt3R0E1QlUsOEJBQThCOzRGQUE5Qiw4QkFBOEIsNEtDYjNDLDZ6QkFvQkEsay9CRFpZLFlBQVksbUlBQUUsYUFBYTs7NEZBSzFCLDhCQUE4QjtrQkFSMUMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxXQUM3QixDQUFDLGdCQUFnQixDQUFDO2lGQUtsQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ryb3BpLXlvdXR1YmUtbGF6eS12aWRlbycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25Db21wb25lbnRdLFxuICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kcm9waS15b3V0dWJlLWxhenktdmlkZW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9waS15b3V0dWJlLWxhenktdmlkZW8uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGlZb3V0dWJlTGF6eVZpZGVvQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmlkZW9JZCE6IHN0cmluZztcbiAgQElucHV0KCkgdGh1bWJuYWlsU3JjOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdmlkZW9UaXRsZTogc3RyaW5nID0gJyc7XG5cbiAgaXNQbGF5aW5nID0gZmFsc2U7XG4gIHNhZmVWaWRlb1VybDogU2FmZVJlc291cmNlVXJsIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBnZXQgdGh1bWJuYWlsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAvYXNzZXRzL2ltYWdlcy8ke3RoaXMudGh1bWJuYWlsU3JjfS5wbmdgO1xuICB9XG5cbiAgcGxheVZpZGVvKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zYWZlVmlkZW9VcmwpIHtcbiAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvJHt0aGlzLnZpZGVvSWR9P2F1dG9wbGF5PTEmcmVsPTAmbW9kZXN0YnJhbmRpbmc9MSZlbmFibGVqc2FwaT0xJnQ9JHt0aW1lc3RhbXB9YDtcbiAgICAgIHRoaXMuc2FmZVZpZGVvVXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHVybCk7XG4gICAgICBjb25zb2xlLmxvZygnQ3JlYXRlZCB2aWRlbyBVUkw6JywgdXJsKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzUGxheWluZyA9IHRydWU7XG4gIH1cblxuICBvbkltYWdlRXJyb3IoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyB0aHVtYm5haWwgaW1hZ2U6JywgdGhpcy50aHVtYm5haWwpO1xuICAgIGNvbnNvbGUuZXJyb3IoJ0V2ZW50OicsIGV2ZW50KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInZpZGVvLXdyYXBwZXJcIiBbY2xhc3MucGxheWluZ109XCJpc1BsYXlpbmdcIj5cbiAgPCEtLSBUaHVtYm5haWwgLS0+XG4gIDxkaXYgKm5nSWY9XCIhaXNQbGF5aW5nXCIgY2xhc3M9XCJ0aHVtYm5haWxcIiAoY2xpY2spPVwicGxheVZpZGVvKClcIj5cbiAgICA8aW1nIFtzcmNdPVwidGh1bWJuYWlsXCIgW2FsdF09XCInVmlkZW8gdGh1bWJuYWlsICcgKyB2aWRlb0lkXCIgKGVycm9yKT1cIm9uSW1hZ2VFcnJvcigkZXZlbnQpXCIgLz5cbiAgICA8YnV0dG9uIGNsYXNzPVwicGxheS1idXR0b25cIiBhcmlhLWxhYmVsPVwiUmVwcm9kdWNpciB2aWRlb1wiPlxuICAgICAgPGFwcC1pY29uIG5hbWU9XCJQbGF5XCIgd2lkdGg9XCIxN3B4XCIgaGVpZ2h0PVwiMjFweFwiIGNvbG9yPVwiTmV1dHJhbC1XaGl0ZVwiPjwvYXBwLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxpZnJhbWVcbiAgICAqbmdJZj1cImlzUGxheWluZyAmJiBzYWZlVmlkZW9VcmxcIlxuICAgIFthdHRyLnNyY109XCJzYWZlVmlkZW9VcmxcIlxuICAgIFt0aXRsZV09XCJ2aWRlb1RpdGxlXCJcbiAgICBmcmFtZWJvcmRlcj1cIjBcIlxuICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZTsgd2ViLXNoYXJlXCJcbiAgICByZWZlcnJlcnBvbGljeT1cInN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW5cIlxuICAgIGFsbG93ZnVsbHNjcmVlblxuICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgPjwvaWZyYW1lPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { TranslateModule } from '@ngx-translate/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-translate/core";
5
+ export class EmptyComponent {
6
+ text = 'No results';
7
+ constructor() { }
8
+ ngOnInit() { }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EmptyComponent, isStandalone: true, selector: "app-empty", inputs: { text: "text" }, ngImport: i0, template: "<div class=\"text-center mt-5\">\n {{ text | translate }}\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmptyComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'app-empty', standalone: true, imports: [TranslateModule], template: "<div class=\"text-center mt-5\">\n {{ text | translate }}\n</div>\n" }]
15
+ }], ctorParameters: () => [], propDecorators: { text: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMtc291cmNlL2VtcHR5L2VtcHR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9lbXB0eS9lbXB0eS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVN0RCxNQUFNLE9BQU8sY0FBYztJQUNULElBQUksR0FBVyxZQUFZLENBQUM7SUFDNUMsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQzt3R0FKUixjQUFjOzRGQUFkLGNBQWMsK0ZDVjNCLHNFQUdBLHlEREtjLGVBQWU7OzRGQUVoQixjQUFjO2tCQVAxQixTQUFTOytCQUNJLFdBQVcsY0FHVCxJQUFJLFdBQ1AsQ0FBQyxlQUFlLENBQUM7d0RBR1osSUFBSTtzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWVtcHR5JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZW1wdHkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VtcHR5LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBFbXB0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyB0ZXh0OiBzdHJpbmcgPSAnTm8gcmVzdWx0cyc7XG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbXQtNVwiPlxuICB7eyB0ZXh0IHwgdHJhbnNsYXRlIH19XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import { Component, EventEmitter, Input, Output, Inject, CUSTOM_ELEMENTS_SCHEMA, } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { ButtonComponent } from "../dropi-button/dropi-button.component";
4
+ import { IconComponent } from "../icon/icon.component";
5
+ import { TranslateModule } from "@ngx-translate/core";
6
+ import { DropiIlustrationIconComponent } from "../dropi-ilustration-icon/dropi-ilustration-icon.component";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@ngx-translate/core";
10
+ export class EmptyStateComponent {
11
+ settingsService;
12
+ buttonText = "";
13
+ description = "";
14
+ buttonSeverity = "tertiary";
15
+ title = "";
16
+ buttonClickEvent = new EventEmitter();
17
+ brandName = "dropi";
18
+ dropiIcon = "default";
19
+ constructor(settingsService) {
20
+ this.settingsService = settingsService;
21
+ }
22
+ ngOnInit() {
23
+ try {
24
+ this.brandName =
25
+ this.settingsService?.getBrandInfo()?.name?.toLowerCase() || "dropi";
26
+ }
27
+ catch (e) {
28
+ this.brandName = "dropi";
29
+ }
30
+ }
31
+ buttonClick() {
32
+ this.buttonClickEvent.emit();
33
+ }
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmptyStateComponent, deps: [{ token: "SettingsService" }], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EmptyStateComponent, isStandalone: true, selector: "app-empty-state", inputs: { buttonText: "buttonText", description: "description", buttonSeverity: "buttonSeverity", title: "title", dropiIcon: "dropiIcon" }, outputs: { buttonClickEvent: "buttonClickEvent" }, ngImport: i0, template: "<div class=\"container\">\n <div class=\"empty-container\">\n <!-- <img\n class=\"empty-dropi-icon\"\n *ngIf=\"brandName === 'dropi'\"\n src=\"\\assets\\utils\\logo-dropi-img-loader.png\"\n alt=\"\"\n /> -->\n <dropi-ilustration-icon class=\"empty-dropi-icon\" *ngIf=\"brandName === 'dropi'\" [type]=\"'dropi' \" [state]=\"dropiIcon\"\n ></dropi-ilustration-icon>\n <div class=\"icon-container\" *ngIf=\"brandName !== 'dropi'\">\n <app-icon name=\"Warning-circle\" width=\"24px\" color=\"Gray-Gray-500\"></app-icon>\n </div>\n <div class=\"text-container\">\n <div *ngIf=\"title !== ''\" class=\"empty-title Body-L-Medium\">\n {{ title | translate }}\n </div>\n <div class=\"description-container\">\n <div class=\"description Body-M-Regular\">{{ description | translate }}</div>\n </div>\n </div>\n\n <dropi-button\n *ngIf=\"buttonText !== ''\"\n [text]=\"buttonText | translate\"\n [severity]=\"buttonSeverity\"\n (onClick)=\"buttonClick()\"\n ></dropi-button>\n </div>\n</div>\n", styles: [".description{color:var(--Gray-500, #69738c);text-align:center;max-width:400px;align-self:stretch;width:100%}.icon-container{display:flex;width:48px;height:48px;flex-direction:column;justify-content:center;align-items:center;gap:8px;border-radius:var(--Size-7, 40px);background:var(--GrayGray-50, #f7f8fa)}.empty-dropi-icon{height:60px;flex-shrink:0;width:60px;filter:brightness(0) saturate(100%) invert(73%) sepia(9%) saturate(503%) hue-rotate(187deg) brightness(91%) contrast(88%)}.empty-container{display:flex;width:420px;padding:var(--Size-4, 16px);flex-direction:column;align-items:center;gap:var(--Size-4, 16px)}.container{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.description-container{width:100%;display:flex;align-items:center;justify-content:center}.text-container{display:flex;flex-direction:column;align-items:center;gap:var(--Size-2, 8px);align-self:stretch}.empty-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;align-self:stretch;overflow:hidden;color:var(--Gray-Gray-700, #32394d);text-align:center;text-overflow:ellipsis}@media screen and (max-width: 600px){.description{max-width:calc(100vw - 32px);width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "app-icon", inputs: ["name", "width", "height", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: DropiIlustrationIconComponent, selector: "dropi-ilustration-icon", inputs: ["type", "state", "stateInsignia", "tagProduct"] }] });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EmptyStateComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: "app-empty-state", standalone: true, imports: [
40
+ CommonModule,
41
+ ButtonComponent,
42
+ IconComponent,
43
+ TranslateModule,
44
+ DropiIlustrationIconComponent,
45
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div class=\"container\">\n <div class=\"empty-container\">\n <!-- <img\n class=\"empty-dropi-icon\"\n *ngIf=\"brandName === 'dropi'\"\n src=\"\\assets\\utils\\logo-dropi-img-loader.png\"\n alt=\"\"\n /> -->\n <dropi-ilustration-icon class=\"empty-dropi-icon\" *ngIf=\"brandName === 'dropi'\" [type]=\"'dropi' \" [state]=\"dropiIcon\"\n ></dropi-ilustration-icon>\n <div class=\"icon-container\" *ngIf=\"brandName !== 'dropi'\">\n <app-icon name=\"Warning-circle\" width=\"24px\" color=\"Gray-Gray-500\"></app-icon>\n </div>\n <div class=\"text-container\">\n <div *ngIf=\"title !== ''\" class=\"empty-title Body-L-Medium\">\n {{ title | translate }}\n </div>\n <div class=\"description-container\">\n <div class=\"description Body-M-Regular\">{{ description | translate }}</div>\n </div>\n </div>\n\n <dropi-button\n *ngIf=\"buttonText !== ''\"\n [text]=\"buttonText | translate\"\n [severity]=\"buttonSeverity\"\n (onClick)=\"buttonClick()\"\n ></dropi-button>\n </div>\n</div>\n", styles: [".description{color:var(--Gray-500, #69738c);text-align:center;max-width:400px;align-self:stretch;width:100%}.icon-container{display:flex;width:48px;height:48px;flex-direction:column;justify-content:center;align-items:center;gap:8px;border-radius:var(--Size-7, 40px);background:var(--GrayGray-50, #f7f8fa)}.empty-dropi-icon{height:60px;flex-shrink:0;width:60px;filter:brightness(0) saturate(100%) invert(73%) sepia(9%) saturate(503%) hue-rotate(187deg) brightness(91%) contrast(88%)}.empty-container{display:flex;width:420px;padding:var(--Size-4, 16px);flex-direction:column;align-items:center;gap:var(--Size-4, 16px)}.container{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.description-container{width:100%;display:flex;align-items:center;justify-content:center}.text-container{display:flex;flex-direction:column;align-items:center;gap:var(--Size-2, 8px);align-self:stretch}.empty-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;align-self:stretch;overflow:hidden;color:var(--Gray-Gray-700, #32394d);text-align:center;text-overflow:ellipsis}@media screen and (max-width: 600px){.description{max-width:calc(100vw - 32px);width:100%}}\n"] }]
46
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
47
+ type: Inject,
48
+ args: ["SettingsService"]
49
+ }] }], propDecorators: { buttonText: [{
50
+ type: Input
51
+ }], description: [{
52
+ type: Input
53
+ }], buttonSeverity: [{
54
+ type: Input
55
+ }], title: [{
56
+ type: Input
57
+ }], buttonClickEvent: [{
58
+ type: Output
59
+ }], dropiIcon: [{
60
+ type: Input
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMtc291cmNlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFDTixzQkFBc0IsR0FDdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDOzs7O0FBZ0IzRyxNQUFNLE9BQU8sbUJBQW1CO0lBaUJnQjtJQWhCckMsVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUN4QixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLGNBQWMsR0FBeUMsVUFBVSxDQUFDO0lBQ2xFLEtBQUssR0FBVyxFQUFFLENBQUM7SUFDbEIsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNoRCxTQUFTLEdBQVcsT0FBTyxDQUFDO0lBQ25CLFNBQVMsR0FPSixTQUFTLENBQUM7SUFFeEIsWUFDOEMsZUFBb0I7UUFBcEIsb0JBQWUsR0FBZixlQUFlLENBQUs7SUFDL0QsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsU0FBUztnQkFDWixJQUFJLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxPQUFPLENBQUM7UUFDekUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQzt3R0EvQlUsbUJBQW1CLGtCQWlCcEIsaUJBQWlCOzRGQWpCaEIsbUJBQW1CLDBRQzdCaEMsd2tDQThCQSx5dkNEWEksWUFBWSxtSUFFWixhQUFhLGtHQUNiLGVBQWUsNEZBQ2YsNkJBQTZCOzs0RkFNcEIsbUJBQW1CO2tCQWQvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLDZCQUE2QjtxQkFDOUIsV0FDUSxDQUFDLHNCQUFzQixDQUFDOzswQkFxQjlCLE1BQU07MkJBQUMsaUJBQWlCO3lDQWhCbEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFRSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgSW5qZWN0LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Ryb3BpLWJ1dHRvbi9kcm9waS1idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ljb24vaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBEcm9waUlsdXN0cmF0aW9uSWNvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9kcm9waS1pbHVzdHJhdGlvbi1pY29uL2Ryb3BpLWlsdXN0cmF0aW9uLWljb24uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtZW1wdHktc3RhdGVcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgRHJvcGlJbHVzdHJhdGlvbkljb25Db21wb25lbnQsXG4gIF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9lbXB0eS1zdGF0ZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vZW1wdHktc3RhdGUuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEVtcHR5U3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBidXR0b25UZXh0OiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbjogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgYnV0dG9uU2V2ZXJpdHk6IFwicHJpbWFyeVwiIHwgXCJzZWNvbmRhcnlcIiB8IFwidGVydGlhcnlcIiA9IFwidGVydGlhcnlcIjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IFwiXCI7XG4gIEBPdXRwdXQoKSBidXR0b25DbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBicmFuZE5hbWU6IHN0cmluZyA9IFwiZHJvcGlcIjtcbiAgQElucHV0KCkgZHJvcGlJY29uOlxuICAgIHwgXCJzdWNjZXNzXCJcbiAgICB8IFwiZXJyb3JcIlxuICAgIHwgXCJ3YXJuaW5nXCJcbiAgICB8IFwiaW5mb1wiXG4gICAgfCBcImRlZmF1bHRcIlxuICAgIHwgXCJsb2FkaW5nXCJcbiAgICB8IFwic29ycnlcIiA9IFwiZGVmYXVsdFwiO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoXCJTZXR0aW5nc1NlcnZpY2VcIikgcHJpdmF0ZSByZWFkb25seSBzZXR0aW5nc1NlcnZpY2U6IGFueSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmJyYW5kTmFtZSA9XG4gICAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlPy5nZXRCcmFuZEluZm8oKT8ubmFtZT8udG9Mb3dlckNhc2UoKSB8fCBcImRyb3BpXCI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5icmFuZE5hbWUgPSBcImRyb3BpXCI7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uQ2xpY2soKSB7XG4gICAgdGhpcy5idXR0b25DbGlja0V2ZW50LmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiZW1wdHktY29udGFpbmVyXCI+XG4gICAgPCEtLSA8aW1nXG4gICAgICBjbGFzcz1cImVtcHR5LWRyb3BpLWljb25cIlxuICAgICAgKm5nSWY9XCJicmFuZE5hbWUgPT09ICdkcm9waSdcIlxuICAgICAgc3JjPVwiXFxhc3NldHNcXHV0aWxzXFxsb2dvLWRyb3BpLWltZy1sb2FkZXIucG5nXCJcbiAgICAgIGFsdD1cIlwiXG4gICAgLz4gLS0+XG4gICAgPGRyb3BpLWlsdXN0cmF0aW9uLWljb24gY2xhc3M9XCJlbXB0eS1kcm9waS1pY29uXCIgKm5nSWY9XCJicmFuZE5hbWUgPT09ICdkcm9waSdcIiBbdHlwZV09XCInZHJvcGknIFwiIFtzdGF0ZV09XCJkcm9waUljb25cIlxuICAgICAgPjwvZHJvcGktaWx1c3RyYXRpb24taWNvbj5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiAqbmdJZj1cImJyYW5kTmFtZSAhPT0gJ2Ryb3BpJ1wiPlxuICAgICAgPGFwcC1pY29uIG5hbWU9XCJXYXJuaW5nLWNpcmNsZVwiIHdpZHRoPVwiMjRweFwiIGNvbG9yPVwiR3JheS1HcmF5LTUwMFwiPjwvYXBwLWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwidGl0bGUgIT09ICcnXCIgY2xhc3M9XCJlbXB0eS10aXRsZSBCb2R5LUwtTWVkaXVtXCI+XG4gICAgICAgIHt7IHRpdGxlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uIEJvZHktTS1SZWd1bGFyXCI+e3sgZGVzY3JpcHRpb24gfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRyb3BpLWJ1dHRvblxuICAgICAgKm5nSWY9XCJidXR0b25UZXh0ICE9PSAnJ1wiXG4gICAgICBbdGV4dF09XCJidXR0b25UZXh0IHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzZXZlcml0eV09XCJidXR0b25TZXZlcml0eVwiXG4gICAgICAob25DbGljayk9XCJidXR0b25DbGljaygpXCJcbiAgICA+PC9kcm9waS1idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,91 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { IconComponent } from '../icon/icon.component';
3
+ import { CommonModule } from '@angular/common';
4
+ import { DropiSkeletonComponent } from '../dropi-skeleton/dropi-skeleton.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ export class FileUploadProgressBarComponent {
8
+ constructor() { }
9
+ textFile = 'Nombre del archivo.xlsx';
10
+ progress = 0;
11
+ type = 'file';
12
+ ulrImage = 'assets/img/LOGO-250-PX.png';
13
+ isPreview = true;
14
+ deleteFile = new EventEmitter();
15
+ uploadComplete = new EventEmitter();
16
+ viewFile = new EventEmitter();
17
+ fileExtension = '';
18
+ ngOnInit() {
19
+ this.checkProgress();
20
+ }
21
+ ngOnChanges(changes) {
22
+ if (changes['progress']) {
23
+ this.checkProgress();
24
+ }
25
+ if (changes['textFile']) {
26
+ this.fileExtension = this.getFileExtensionInfo(this.textFile).extension;
27
+ this.type = this.getFileExtensionInfo(this.textFile).isImage ? 'image' : 'file';
28
+ }
29
+ }
30
+ checkProgress() {
31
+ if (this.progress === 100) {
32
+ this.uploadComplete.emit();
33
+ }
34
+ }
35
+ deleteFileAction() {
36
+ this.deleteFile.emit();
37
+ }
38
+ viewEmiter() {
39
+ this.viewFile.emit();
40
+ }
41
+ /**
42
+ * Extrae la extensión de un archivo y determina si es una imagen
43
+ * @param fileName Nombre del archivo (ej: 'documento.pdf' o 'foto.jpg')
44
+ * @returns Objeto con la extensión y un booleano indicando si es imagen
45
+ */
46
+ getFileExtensionInfo(fileName) {
47
+ // Extraer la extensión (todo después del último punto)
48
+ const lastDotIndex = fileName.lastIndexOf('.');
49
+ const extension = lastDotIndex > 0 ? fileName.substring(lastDotIndex + 1).toLowerCase() : '';
50
+ // Lista de extensiones de imagen comunes (puedes añadir más si necesitas)
51
+ const imageExtensions = [
52
+ 'jpg',
53
+ 'jpeg',
54
+ 'png',
55
+ 'gif',
56
+ 'bmp',
57
+ 'webp',
58
+ 'svg',
59
+ 'tiff',
60
+ 'ico',
61
+ 'jfif',
62
+ ];
63
+ return {
64
+ extension,
65
+ isImage: imageExtensions.includes(extension),
66
+ };
67
+ }
68
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileUploadProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
69
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FileUploadProgressBarComponent, isStandalone: true, selector: "app-file-upload-progress-bar", inputs: { textFile: "textFile", progress: "progress", type: "type", ulrImage: "ulrImage", isPreview: "isPreview" }, outputs: { deleteFile: "deleteFile", uploadComplete: "uploadComplete", viewFile: "viewFile" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-progress-bar\">\n <div class=\"container-icon-info\" *ngIf=\"fileExtension !== 'pdf'\">\n <app-icon\n *ngIf=\"type !== 'image'\"\n name=\"File-text\"\n width=\"24px\"\n height=\"24px\"\n color=\"Info-Info-600\"\n ></app-icon>\n <app-dropi-skeleton\n *ngIf=\"type == 'image' && !ulrImage\"\n width=\"34px\"\n height=\"34px\"\n radius=\"8px\"\n >\n </app-dropi-skeleton>\n\n <img\n *ngIf=\"type == 'image' && ulrImage\"\n class=\"image-to-view\"\n width=\"34\"\n height=\"34\"\n [src]=\"ulrImage\"\n alt=\"\"\n />\n </div>\n\n <div class=\"icon-pdf\" *ngIf=\"fileExtension === 'pdf'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <g clip-path=\"url(#clip0_6227_22223)\">\n <path\n d=\"M16.6243 4.61667L13.716 1.70833C12.616 0.608333 11.1493 0 9.59102 0H5.83268C3.53268 0 1.66602 1.86667 1.66602 4.16667V15.8333C1.66602 18.1333 3.53268 20 5.83268 20H14.166C16.466 20 18.3327 18.1333 18.3327 15.8333V8.74167C18.3327 7.18333 17.7243 5.71667 16.6243 4.61667ZM15.4493 5.79167C15.716 6.05833 15.941 6.35 16.1243 6.66667H12.5077C12.0493 6.66667 11.6743 6.29167 11.6743 5.83333V2.21667C11.991 2.4 12.2827 2.625 12.5493 2.89167L15.4577 5.8L15.4493 5.79167ZM16.666 15.8333C16.666 17.2083 15.541 18.3333 14.166 18.3333H5.83268C4.45768 18.3333 3.33268 17.2083 3.33268 15.8333V4.16667C3.33268 2.79167 4.45768 1.66667 5.83268 1.66667H9.59102C9.72435 1.66667 9.86602 1.66667 9.99935 1.68333V5.83333C9.99935 7.20833 11.1243 8.33333 12.4993 8.33333H16.6493C16.666 8.46667 16.666 8.6 16.666 8.74167V15.8333ZM5.90768 10.8333H4.99935C4.54102 10.8333 4.16602 11.2083 4.16602 11.6667V15.3667C4.16602 15.6583 4.39935 15.8833 4.68268 15.8833C4.96602 15.8833 5.19935 15.65 5.19935 15.3667V14.35H5.89935C6.88268 14.35 7.68268 13.5583 7.68268 12.5917C7.68268 11.625 6.88268 10.8333 5.89935 10.8333H5.90768ZM5.90768 13.3083H5.21602V11.875H5.91602C6.31602 11.875 6.65768 12.2 6.65768 12.5917C6.65768 12.9833 6.31602 13.3083 5.91602 13.3083H5.90768ZM15.8493 11.3583C15.8493 11.65 15.616 11.875 15.3327 11.875H13.9243V12.825H14.9577C15.2493 12.825 15.4743 13.0583 15.4743 13.3417C15.4743 13.625 15.241 13.8583 14.9577 13.8583H13.9243V15.3583C13.9243 15.65 13.691 15.875 13.4077 15.875C13.1243 15.875 12.891 15.6417 12.891 15.3583V11.35C12.891 11.0583 13.1243 10.8333 13.4077 10.8333H15.3327C15.6243 10.8333 15.8493 11.0667 15.8493 11.35V11.3583ZM10.0743 10.8417H9.16602C8.70768 10.8417 8.33268 11.2167 8.33268 11.675V15.375C8.33268 15.6667 8.56602 15.8417 8.84935 15.8417C9.13268 15.8417 10.066 15.8417 10.066 15.8417C11.0493 15.8417 11.8493 15.05 11.8493 14.0833V12.6C11.8493 11.6333 11.0493 10.8417 10.066 10.8417H10.0743ZM10.816 14.0833C10.816 14.475 10.4743 14.8 10.0743 14.8H9.38268V11.8833H10.0827C10.4827 11.8833 10.8243 12.2083 10.8243 12.6V14.0833H10.816Z\"\n fill=\"#DE6061\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_6227_22223\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n\n <div class=\"container-bar-title\">\n <p class=\"Body-S-Regular\">{{ textFile }}</p>\n <progress *ngIf=\"progress < 100\" [value]=\"progress\" max=\"100\">{{ progress }}%</progress>\n </div>\n <div class=\"view-icon\" *ngIf=\"progress == 100 && isPreview\" (click)=\"viewEmiter()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"14\" viewBox=\"0 0 18 14\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.07148 4.14758C7.64227 3.76618 8.31334 3.56262 8.99983 3.56262C9.92004 3.56372 10.8022 3.92976 11.4529 4.58045C12.1036 5.23114 12.4697 6.11334 12.4708 7.03355C12.4708 7.72004 12.2672 8.39111 11.8858 8.9619C11.5044 9.53269 10.9623 9.97757 10.3281 10.2403C9.69387 10.503 8.99598 10.5717 8.32268 10.4378C7.64939 10.3039 7.03092 9.9733 6.54551 9.48788C6.06009 9.00246 5.72951 8.384 5.59558 7.7107C5.46166 7.0374 5.53039 6.33951 5.7931 5.70528C6.05581 5.07105 6.50069 4.52897 7.07148 4.14758ZM7.84282 8.76514C8.18529 8.99398 8.58794 9.11612 8.99983 9.11612C9.55216 9.11612 10.0819 8.8967 10.4724 8.50615C10.863 8.11559 11.0824 7.58588 11.0824 7.03355C11.0824 6.62166 10.9602 6.21902 10.7314 5.87654C10.5026 5.53407 10.1773 5.26714 9.79679 5.10952C9.41625 4.95189 8.99752 4.91065 8.59354 4.99101C8.18956 5.07136 7.81849 5.26971 7.52723 5.56096C7.23598 5.85221 7.03764 6.22329 6.95728 6.62727C6.87693 7.03124 6.91817 7.44998 7.07579 7.83052C7.23342 8.21105 7.50034 8.53631 7.84282 8.76514Z\"\n fill=\"#475066\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.99996 0.546387C13.2984 0.546387 15.7475 3.48835 16.8241 5.24187C17.157 5.78022 17.3333 6.40064 17.3333 7.03357C17.3333 7.6665 17.157 8.28692 16.8241 8.82526C15.7475 10.5788 13.2984 13.5207 8.99996 13.5207C4.70155 13.5207 2.25246 10.5788 1.17577 8.82526C0.842931 8.28692 0.666626 7.6665 0.666626 7.03357C0.666626 6.40064 0.842931 5.78022 1.17577 5.24187C2.25246 3.48835 4.70155 0.546387 8.99996 0.546387ZM8.99996 12.1324C12.6229 12.1324 14.7159 9.60206 15.6406 8.09845C15.8383 7.77846 15.943 7.40973 15.943 7.03357C15.943 6.6574 15.8383 6.28867 15.6406 5.96868C14.7159 4.4623 12.6229 1.93476 8.99996 1.93476C5.377 1.93476 3.28402 4.46507 2.35936 5.96868C2.16161 6.28867 2.05687 6.6574 2.05687 7.03357C2.05687 7.40973 2.16161 7.77846 2.35936 8.09845C3.28402 9.60206 5.377 12.1324 8.99996 12.1324Z\"\n fill=\"#475066\"\n />\n </svg>\n </div>\n\n <div *ngIf=\"progress == 100\" (click)=\"deleteFileAction()\" class=\"container-icon-trash\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\n <path\n d=\"M16.2501 4.94477H14.0973C13.9362 4.16103 13.5097 3.45682 12.8899 2.95082C12.27 2.44483 11.4947 2.168 10.6946 2.16699H9.30566C8.50552 2.168 7.73019 2.44483 7.11035 2.95082C6.49051 3.45682 6.06406 4.16103 5.90289 4.94477H3.75011C3.56593 4.94477 3.3893 5.01793 3.25906 5.14817C3.12883 5.2784 3.05566 5.45504 3.05566 5.63921C3.05566 5.82339 3.12883 6.00003 3.25906 6.13026C3.3893 6.26049 3.56593 6.33366 3.75011 6.33366H4.44455V15.3614C4.44566 16.282 4.81183 17.1645 5.46276 17.8155C6.11369 18.4664 6.99622 18.8326 7.91677 18.8337H12.0834C13.004 18.8326 13.8865 18.4664 14.5375 17.8155C15.1884 17.1645 15.5546 16.282 15.5557 15.3614V6.33366H16.2501C16.4343 6.33366 16.6109 6.26049 16.7412 6.13026C16.8714 6.00003 16.9446 5.82339 16.9446 5.63921C16.9446 5.45504 16.8714 5.2784 16.7412 5.14817C16.6109 5.01793 16.4343 4.94477 16.2501 4.94477ZM9.30566 3.55588H10.6946C11.1253 3.55641 11.5453 3.69017 11.8971 3.93883C12.2488 4.18749 12.515 4.53886 12.6591 4.94477H7.34108C7.48524 4.53886 7.75143 4.18749 8.10315 3.93883C8.45488 3.69017 8.87492 3.55641 9.30566 3.55588ZM14.1668 15.3614C14.1668 15.914 13.9473 16.4439 13.5566 16.8346C13.1659 17.2253 12.636 17.4448 12.0834 17.4448H7.91677C7.36424 17.4448 6.83434 17.2253 6.44364 16.8346C6.05294 16.4439 5.83344 15.914 5.83344 15.3614V6.33366H14.1668V15.3614Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M8.61128 14.6666C8.79545 14.6666 8.97209 14.5934 9.10232 14.4632C9.23256 14.3329 9.30572 14.1563 9.30572 13.9721V9.80545C9.30572 9.62127 9.23256 9.44464 9.10232 9.3144C8.97209 9.18417 8.79545 9.11101 8.61128 9.11101C8.4271 9.11101 8.25046 9.18417 8.12023 9.3144C7.99 9.44464 7.91683 9.62127 7.91683 9.80545V13.9721C7.91683 14.1563 7.99 14.3329 8.12023 14.4632C8.25046 14.5934 8.4271 14.6666 8.61128 14.6666Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M11.389 14.6666C11.5731 14.6666 11.7498 14.5934 11.88 14.4632C12.0102 14.3329 12.0834 14.1563 12.0834 13.9721V9.80545C12.0834 9.62127 12.0102 9.44464 11.88 9.3144C11.7498 9.18417 11.5731 9.11101 11.389 9.11101C11.2048 9.11101 11.0281 9.18417 10.8979 9.3144C10.7677 9.44464 10.6945 9.62127 10.6945 9.80545V13.9721C10.6945 14.1563 10.7677 14.3329 10.8979 14.4632C11.0281 14.5934 11.2048 14.6666 11.389 14.6666Z\"\n fill=\"#DE6061\"\n />\n </svg>\n </div>\n</div>\n", styles: [".container-progress-bar{width:100%;height:100%;display:flex;padding:var(--Size-4);gap:var(--Size-3);border-radius:var(--Size-2);border:1px solid var(--Gray-Gray-100);min-width:0;overflow:hidden}.container-icon-info{background:var(--Info-Info-50);width:32px;height:32px;border-radius:var(--Size-2);display:flex;justify-content:center;align-items:center}progress{width:100%;height:4px;-webkit-appearance:none;appearance:none;border-radius:4.5px;max-width:100%}progress::-webkit-progress-bar{background-color:var(--Gray-Gray-100);border-radius:4.5px}progress::-webkit-progress-value{background-color:var(--Primary-Primary-500);border-radius:4.5px;transition:width .3s ease}.container-bar-title{display:flex;gap:8px;flex:1;flex-direction:column;justify-content:center;min-width:0}.container-bar-title p{margin-bottom:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.container-icon-trash,.view-icon{cursor:pointer;display:flex;align-items:center;justify-content:center}.image-to-view{border-radius:var(--Border-2)}.icon-pdf{background:var(--Error-Error-50);border-radius:var(--Border-2);width:34px;height:34px;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "app-icon", inputs: ["name", "width", "height", "color"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropiSkeletonComponent, selector: "app-dropi-skeleton", inputs: ["width", "height", "radius", "baseColor"] }] });
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FileUploadProgressBarComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'app-file-upload-progress-bar', standalone: true, imports: [IconComponent, CommonModule, DropiSkeletonComponent], template: "<div class=\"container-progress-bar\">\n <div class=\"container-icon-info\" *ngIf=\"fileExtension !== 'pdf'\">\n <app-icon\n *ngIf=\"type !== 'image'\"\n name=\"File-text\"\n width=\"24px\"\n height=\"24px\"\n color=\"Info-Info-600\"\n ></app-icon>\n <app-dropi-skeleton\n *ngIf=\"type == 'image' && !ulrImage\"\n width=\"34px\"\n height=\"34px\"\n radius=\"8px\"\n >\n </app-dropi-skeleton>\n\n <img\n *ngIf=\"type == 'image' && ulrImage\"\n class=\"image-to-view\"\n width=\"34\"\n height=\"34\"\n [src]=\"ulrImage\"\n alt=\"\"\n />\n </div>\n\n <div class=\"icon-pdf\" *ngIf=\"fileExtension === 'pdf'\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <g clip-path=\"url(#clip0_6227_22223)\">\n <path\n d=\"M16.6243 4.61667L13.716 1.70833C12.616 0.608333 11.1493 0 9.59102 0H5.83268C3.53268 0 1.66602 1.86667 1.66602 4.16667V15.8333C1.66602 18.1333 3.53268 20 5.83268 20H14.166C16.466 20 18.3327 18.1333 18.3327 15.8333V8.74167C18.3327 7.18333 17.7243 5.71667 16.6243 4.61667ZM15.4493 5.79167C15.716 6.05833 15.941 6.35 16.1243 6.66667H12.5077C12.0493 6.66667 11.6743 6.29167 11.6743 5.83333V2.21667C11.991 2.4 12.2827 2.625 12.5493 2.89167L15.4577 5.8L15.4493 5.79167ZM16.666 15.8333C16.666 17.2083 15.541 18.3333 14.166 18.3333H5.83268C4.45768 18.3333 3.33268 17.2083 3.33268 15.8333V4.16667C3.33268 2.79167 4.45768 1.66667 5.83268 1.66667H9.59102C9.72435 1.66667 9.86602 1.66667 9.99935 1.68333V5.83333C9.99935 7.20833 11.1243 8.33333 12.4993 8.33333H16.6493C16.666 8.46667 16.666 8.6 16.666 8.74167V15.8333ZM5.90768 10.8333H4.99935C4.54102 10.8333 4.16602 11.2083 4.16602 11.6667V15.3667C4.16602 15.6583 4.39935 15.8833 4.68268 15.8833C4.96602 15.8833 5.19935 15.65 5.19935 15.3667V14.35H5.89935C6.88268 14.35 7.68268 13.5583 7.68268 12.5917C7.68268 11.625 6.88268 10.8333 5.89935 10.8333H5.90768ZM5.90768 13.3083H5.21602V11.875H5.91602C6.31602 11.875 6.65768 12.2 6.65768 12.5917C6.65768 12.9833 6.31602 13.3083 5.91602 13.3083H5.90768ZM15.8493 11.3583C15.8493 11.65 15.616 11.875 15.3327 11.875H13.9243V12.825H14.9577C15.2493 12.825 15.4743 13.0583 15.4743 13.3417C15.4743 13.625 15.241 13.8583 14.9577 13.8583H13.9243V15.3583C13.9243 15.65 13.691 15.875 13.4077 15.875C13.1243 15.875 12.891 15.6417 12.891 15.3583V11.35C12.891 11.0583 13.1243 10.8333 13.4077 10.8333H15.3327C15.6243 10.8333 15.8493 11.0667 15.8493 11.35V11.3583ZM10.0743 10.8417H9.16602C8.70768 10.8417 8.33268 11.2167 8.33268 11.675V15.375C8.33268 15.6667 8.56602 15.8417 8.84935 15.8417C9.13268 15.8417 10.066 15.8417 10.066 15.8417C11.0493 15.8417 11.8493 15.05 11.8493 14.0833V12.6C11.8493 11.6333 11.0493 10.8417 10.066 10.8417H10.0743ZM10.816 14.0833C10.816 14.475 10.4743 14.8 10.0743 14.8H9.38268V11.8833H10.0827C10.4827 11.8833 10.8243 12.2083 10.8243 12.6V14.0833H10.816Z\"\n fill=\"#DE6061\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_6227_22223\">\n <rect width=\"20\" height=\"20\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </div>\n\n <div class=\"container-bar-title\">\n <p class=\"Body-S-Regular\">{{ textFile }}</p>\n <progress *ngIf=\"progress < 100\" [value]=\"progress\" max=\"100\">{{ progress }}%</progress>\n </div>\n <div class=\"view-icon\" *ngIf=\"progress == 100 && isPreview\" (click)=\"viewEmiter()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"14\" viewBox=\"0 0 18 14\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M7.07148 4.14758C7.64227 3.76618 8.31334 3.56262 8.99983 3.56262C9.92004 3.56372 10.8022 3.92976 11.4529 4.58045C12.1036 5.23114 12.4697 6.11334 12.4708 7.03355C12.4708 7.72004 12.2672 8.39111 11.8858 8.9619C11.5044 9.53269 10.9623 9.97757 10.3281 10.2403C9.69387 10.503 8.99598 10.5717 8.32268 10.4378C7.64939 10.3039 7.03092 9.9733 6.54551 9.48788C6.06009 9.00246 5.72951 8.384 5.59558 7.7107C5.46166 7.0374 5.53039 6.33951 5.7931 5.70528C6.05581 5.07105 6.50069 4.52897 7.07148 4.14758ZM7.84282 8.76514C8.18529 8.99398 8.58794 9.11612 8.99983 9.11612C9.55216 9.11612 10.0819 8.8967 10.4724 8.50615C10.863 8.11559 11.0824 7.58588 11.0824 7.03355C11.0824 6.62166 10.9602 6.21902 10.7314 5.87654C10.5026 5.53407 10.1773 5.26714 9.79679 5.10952C9.41625 4.95189 8.99752 4.91065 8.59354 4.99101C8.18956 5.07136 7.81849 5.26971 7.52723 5.56096C7.23598 5.85221 7.03764 6.22329 6.95728 6.62727C6.87693 7.03124 6.91817 7.44998 7.07579 7.83052C7.23342 8.21105 7.50034 8.53631 7.84282 8.76514Z\"\n fill=\"#475066\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8.99996 0.546387C13.2984 0.546387 15.7475 3.48835 16.8241 5.24187C17.157 5.78022 17.3333 6.40064 17.3333 7.03357C17.3333 7.6665 17.157 8.28692 16.8241 8.82526C15.7475 10.5788 13.2984 13.5207 8.99996 13.5207C4.70155 13.5207 2.25246 10.5788 1.17577 8.82526C0.842931 8.28692 0.666626 7.6665 0.666626 7.03357C0.666626 6.40064 0.842931 5.78022 1.17577 5.24187C2.25246 3.48835 4.70155 0.546387 8.99996 0.546387ZM8.99996 12.1324C12.6229 12.1324 14.7159 9.60206 15.6406 8.09845C15.8383 7.77846 15.943 7.40973 15.943 7.03357C15.943 6.6574 15.8383 6.28867 15.6406 5.96868C14.7159 4.4623 12.6229 1.93476 8.99996 1.93476C5.377 1.93476 3.28402 4.46507 2.35936 5.96868C2.16161 6.28867 2.05687 6.6574 2.05687 7.03357C2.05687 7.40973 2.16161 7.77846 2.35936 8.09845C3.28402 9.60206 5.377 12.1324 8.99996 12.1324Z\"\n fill=\"#475066\"\n />\n </svg>\n </div>\n\n <div *ngIf=\"progress == 100\" (click)=\"deleteFileAction()\" class=\"container-icon-trash\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\n <path\n d=\"M16.2501 4.94477H14.0973C13.9362 4.16103 13.5097 3.45682 12.8899 2.95082C12.27 2.44483 11.4947 2.168 10.6946 2.16699H9.30566C8.50552 2.168 7.73019 2.44483 7.11035 2.95082C6.49051 3.45682 6.06406 4.16103 5.90289 4.94477H3.75011C3.56593 4.94477 3.3893 5.01793 3.25906 5.14817C3.12883 5.2784 3.05566 5.45504 3.05566 5.63921C3.05566 5.82339 3.12883 6.00003 3.25906 6.13026C3.3893 6.26049 3.56593 6.33366 3.75011 6.33366H4.44455V15.3614C4.44566 16.282 4.81183 17.1645 5.46276 17.8155C6.11369 18.4664 6.99622 18.8326 7.91677 18.8337H12.0834C13.004 18.8326 13.8865 18.4664 14.5375 17.8155C15.1884 17.1645 15.5546 16.282 15.5557 15.3614V6.33366H16.2501C16.4343 6.33366 16.6109 6.26049 16.7412 6.13026C16.8714 6.00003 16.9446 5.82339 16.9446 5.63921C16.9446 5.45504 16.8714 5.2784 16.7412 5.14817C16.6109 5.01793 16.4343 4.94477 16.2501 4.94477ZM9.30566 3.55588H10.6946C11.1253 3.55641 11.5453 3.69017 11.8971 3.93883C12.2488 4.18749 12.515 4.53886 12.6591 4.94477H7.34108C7.48524 4.53886 7.75143 4.18749 8.10315 3.93883C8.45488 3.69017 8.87492 3.55641 9.30566 3.55588ZM14.1668 15.3614C14.1668 15.914 13.9473 16.4439 13.5566 16.8346C13.1659 17.2253 12.636 17.4448 12.0834 17.4448H7.91677C7.36424 17.4448 6.83434 17.2253 6.44364 16.8346C6.05294 16.4439 5.83344 15.914 5.83344 15.3614V6.33366H14.1668V15.3614Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M8.61128 14.6666C8.79545 14.6666 8.97209 14.5934 9.10232 14.4632C9.23256 14.3329 9.30572 14.1563 9.30572 13.9721V9.80545C9.30572 9.62127 9.23256 9.44464 9.10232 9.3144C8.97209 9.18417 8.79545 9.11101 8.61128 9.11101C8.4271 9.11101 8.25046 9.18417 8.12023 9.3144C7.99 9.44464 7.91683 9.62127 7.91683 9.80545V13.9721C7.91683 14.1563 7.99 14.3329 8.12023 14.4632C8.25046 14.5934 8.4271 14.6666 8.61128 14.6666Z\"\n fill=\"#DE6061\"\n />\n <path\n d=\"M11.389 14.6666C11.5731 14.6666 11.7498 14.5934 11.88 14.4632C12.0102 14.3329 12.0834 14.1563 12.0834 13.9721V9.80545C12.0834 9.62127 12.0102 9.44464 11.88 9.3144C11.7498 9.18417 11.5731 9.11101 11.389 9.11101C11.2048 9.11101 11.0281 9.18417 10.8979 9.3144C10.7677 9.44464 10.6945 9.62127 10.6945 9.80545V13.9721C10.6945 14.1563 10.7677 14.3329 10.8979 14.4632C11.0281 14.5934 11.2048 14.6666 11.389 14.6666Z\"\n fill=\"#DE6061\"\n />\n </svg>\n </div>\n</div>\n", styles: [".container-progress-bar{width:100%;height:100%;display:flex;padding:var(--Size-4);gap:var(--Size-3);border-radius:var(--Size-2);border:1px solid var(--Gray-Gray-100);min-width:0;overflow:hidden}.container-icon-info{background:var(--Info-Info-50);width:32px;height:32px;border-radius:var(--Size-2);display:flex;justify-content:center;align-items:center}progress{width:100%;height:4px;-webkit-appearance:none;appearance:none;border-radius:4.5px;max-width:100%}progress::-webkit-progress-bar{background-color:var(--Gray-Gray-100);border-radius:4.5px}progress::-webkit-progress-value{background-color:var(--Primary-Primary-500);border-radius:4.5px;transition:width .3s ease}.container-bar-title{display:flex;gap:8px;flex:1;flex-direction:column;justify-content:center;min-width:0}.container-bar-title p{margin-bottom:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.container-icon-trash,.view-icon{cursor:pointer;display:flex;align-items:center;justify-content:center}.image-to-view{border-radius:var(--Border-2)}.icon-pdf{background:var(--Error-Error-50);border-radius:var(--Border-2);width:34px;height:34px;display:flex;align-items:center;justify-content:center}\n"] }]
74
+ }], ctorParameters: () => [], propDecorators: { textFile: [{
75
+ type: Input
76
+ }], progress: [{
77
+ type: Input
78
+ }], type: [{
79
+ type: Input
80
+ }], ulrImage: [{
81
+ type: Input
82
+ }], isPreview: [{
83
+ type: Input
84
+ }], deleteFile: [{
85
+ type: Output
86
+ }], uploadComplete: [{
87
+ type: Output
88
+ }], viewFile: [{
89
+ type: Output
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9maWxlLXVwbG9hZC1wcm9ncmVzcy1iYXIvZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9maWxlLXVwbG9hZC1wcm9ncmVzcy1iYXIvZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7OztBQVNwRixNQUFNLE9BQU8sOEJBQThCO0lBQ3pDLGdCQUFlLENBQUM7SUFDUCxRQUFRLEdBQVcseUJBQXlCLENBQUM7SUFDN0MsUUFBUSxHQUFXLENBQUMsQ0FBQztJQUNyQixJQUFJLEdBQXFCLE1BQU0sQ0FBQztJQUNoQyxRQUFRLEdBQVcsNEJBQTRCLENBQUM7SUFDaEQsU0FBUyxHQUFZLElBQUksQ0FBQztJQUV6QixVQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDeEQsY0FBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQzVELFFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVoRSxhQUFhLEdBQVcsRUFBRSxDQUFDO0lBRTNCLFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFFSCxvQkFBb0IsQ0FBQyxRQUFnQjtRQUluQyx1REFBdUQ7UUFDdkQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQyxNQUFNLFNBQVMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRTdGLDBFQUEwRTtRQUMxRSxNQUFNLGVBQWUsR0FBRztZQUN0QixLQUFLO1lBQ0wsTUFBTTtZQUNOLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLE1BQU07WUFDTixLQUFLO1lBQ0wsTUFBTTtZQUNOLEtBQUs7WUFDTCxNQUFNO1NBQ1AsQ0FBQztRQUVGLE9BQU87WUFDTCxTQUFTO1lBQ1QsT0FBTyxFQUFFLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1NBQzdDLENBQUM7SUFDSixDQUFDO3dHQTNFVSw4QkFBOEI7NEZBQTlCLDhCQUE4QixnVUNaM0MsKy9QQWlGQSwrdENEdkVZLGFBQWEsa0dBQUUsWUFBWSxtSUFBRSxzQkFBc0I7OzRGQUVsRCw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLENBQUM7d0RBSXJELFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERyb3BpU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICcuLi9kcm9waS1za2VsZXRvbi9kcm9waS1za2VsZXRvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZmlsZS11cGxvYWQtcHJvZ3Jlc3MtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLXByb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLXByb2dyZXNzLWJhci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudCwgQ29tbW9uTW9kdWxlLCBEcm9waVNrZWxldG9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZFByb2dyZXNzQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoKSB7fVxuICBASW5wdXQoKSB0ZXh0RmlsZTogc3RyaW5nID0gJ05vbWJyZSBkZWwgYXJjaGl2by54bHN4JztcbiAgQElucHV0KCkgcHJvZ3Jlc3M6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHR5cGU6ICdpbWFnZScgfCAnZmlsZScgPSAnZmlsZSc7XG4gIEBJbnB1dCgpIHVsckltYWdlOiBzdHJpbmcgPSAnYXNzZXRzL2ltZy9MT0dPLTI1MC1QWC5wbmcnO1xuICBASW5wdXQoKSBpc1ByZXZpZXc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBkZWxldGVGaWxlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgdXBsb2FkQ29tcGxldGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSB2aWV3RmlsZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBmaWxlRXh0ZW5zaW9uOiBzdHJpbmcgPSAnJztcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNoZWNrUHJvZ3Jlc3MoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sncHJvZ3Jlc3MnXSkge1xuICAgICAgdGhpcy5jaGVja1Byb2dyZXNzKCk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXNbJ3RleHRGaWxlJ10pIHtcbiAgICAgIHRoaXMuZmlsZUV4dGVuc2lvbiA9IHRoaXMuZ2V0RmlsZUV4dGVuc2lvbkluZm8odGhpcy50ZXh0RmlsZSkuZXh0ZW5zaW9uO1xuICAgICAgdGhpcy50eXBlID0gdGhpcy5nZXRGaWxlRXh0ZW5zaW9uSW5mbyh0aGlzLnRleHRGaWxlKS5pc0ltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcbiAgICB9XG4gIH1cblxuICBjaGVja1Byb2dyZXNzKCkge1xuICAgIGlmICh0aGlzLnByb2dyZXNzID09PSAxMDApIHtcbiAgICAgIHRoaXMudXBsb2FkQ29tcGxldGUuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGRlbGV0ZUZpbGVBY3Rpb24oKSB7XG4gICAgdGhpcy5kZWxldGVGaWxlLmVtaXQoKTtcbiAgfVxuXG4gIHZpZXdFbWl0ZXIoKSB7XG4gICAgdGhpcy52aWV3RmlsZS5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFlIGxhIGV4dGVuc2nDs24gZGUgdW4gYXJjaGl2byB5IGRldGVybWluYSBzaSBlcyB1bmEgaW1hZ2VuXG4gICAqIEBwYXJhbSBmaWxlTmFtZSBOb21icmUgZGVsIGFyY2hpdm8gKGVqOiAnZG9jdW1lbnRvLnBkZicgbyAnZm90by5qcGcnKVxuICAgKiBAcmV0dXJucyBPYmpldG8gY29uIGxhIGV4dGVuc2nDs24geSB1biBib29sZWFubyBpbmRpY2FuZG8gc2kgZXMgaW1hZ2VuXG4gICAqL1xuXG4gIGdldEZpbGVFeHRlbnNpb25JbmZvKGZpbGVOYW1lOiBzdHJpbmcpOiB7XG4gICAgZXh0ZW5zaW9uOiBzdHJpbmc7XG4gICAgaXNJbWFnZTogYm9vbGVhbjtcbiAgfSB7XG4gICAgLy8gRXh0cmFlciBsYSBleHRlbnNpw7NuICh0b2RvIGRlc3B1w6lzIGRlbCDDumx0aW1vIHB1bnRvKVxuICAgIGNvbnN0IGxhc3REb3RJbmRleCA9IGZpbGVOYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gbGFzdERvdEluZGV4ID4gMCA/IGZpbGVOYW1lLnN1YnN0cmluZyhsYXN0RG90SW5kZXggKyAxKS50b0xvd2VyQ2FzZSgpIDogJyc7XG5cbiAgICAvLyBMaXN0YSBkZSBleHRlbnNpb25lcyBkZSBpbWFnZW4gY29tdW5lcyAocHVlZGVzIGHDsWFkaXIgbcOhcyBzaSBuZWNlc2l0YXMpXG4gICAgY29uc3QgaW1hZ2VFeHRlbnNpb25zID0gW1xuICAgICAgJ2pwZycsXG4gICAgICAnanBlZycsXG4gICAgICAncG5nJyxcbiAgICAgICdnaWYnLFxuICAgICAgJ2JtcCcsXG4gICAgICAnd2VicCcsXG4gICAgICAnc3ZnJyxcbiAgICAgICd0aWZmJyxcbiAgICAgICdpY28nLFxuICAgICAgJ2pmaWYnLFxuICAgIF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgZXh0ZW5zaW9uLFxuICAgICAgaXNJbWFnZTogaW1hZ2VFeHRlbnNpb25zLmluY2x1ZGVzKGV4dGVuc2lvbiksXG4gICAgfTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1wcm9ncmVzcy1iYXJcIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1pY29uLWluZm9cIiAqbmdJZj1cImZpbGVFeHRlbnNpb24gIT09ICdwZGYnXCI+XG4gICAgPGFwcC1pY29uXG4gICAgICAqbmdJZj1cInR5cGUgIT09ICdpbWFnZSdcIlxuICAgICAgbmFtZT1cIkZpbGUtdGV4dFwiXG4gICAgICB3aWR0aD1cIjI0cHhcIlxuICAgICAgaGVpZ2h0PVwiMjRweFwiXG4gICAgICBjb2xvcj1cIkluZm8tSW5mby02MDBcIlxuICAgID48L2FwcC1pY29uPlxuICAgIDxhcHAtZHJvcGktc2tlbGV0b25cbiAgICAgICpuZ0lmPVwidHlwZSA9PSAnaW1hZ2UnICYmICF1bHJJbWFnZVwiXG4gICAgICB3aWR0aD1cIjM0cHhcIlxuICAgICAgaGVpZ2h0PVwiMzRweFwiXG4gICAgICByYWRpdXM9XCI4cHhcIlxuICAgID5cbiAgICA8L2FwcC1kcm9waS1za2VsZXRvbj5cblxuICAgIDxpbWdcbiAgICAgICpuZ0lmPVwidHlwZSA9PSAnaW1hZ2UnICYmIHVsckltYWdlXCJcbiAgICAgIGNsYXNzPVwiaW1hZ2UtdG8tdmlld1wiXG4gICAgICB3aWR0aD1cIjM0XCJcbiAgICAgIGhlaWdodD1cIjM0XCJcbiAgICAgIFtzcmNdPVwidWxySW1hZ2VcIlxuICAgICAgYWx0PVwiXCJcbiAgICAvPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiaWNvbi1wZGZcIiAqbmdJZj1cImZpbGVFeHRlbnNpb24gPT09ICdwZGYnXCI+XG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XG4gICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzYyMjdfMjIyMjMpXCI+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xNi42MjQzIDQuNjE2NjdMMTMuNzE2IDEuNzA4MzNDMTIuNjE2IDAuNjA4MzMzIDExLjE0OTMgMCA5LjU5MTAyIDBINS44MzI2OEMzLjUzMjY4IDAgMS42NjYwMiAxLjg2NjY3IDEuNjY2MDIgNC4xNjY2N1YxNS44MzMzQzEuNjY2MDIgMTguMTMzMyAzLjUzMjY4IDIwIDUuODMyNjggMjBIMTQuMTY2QzE2LjQ2NiAyMCAxOC4zMzI3IDE4LjEzMzMgMTguMzMyNyAxNS44MzMzVjguNzQxNjdDMTguMzMyNyA3LjE4MzMzIDE3LjcyNDMgNS43MTY2NyAxNi42MjQzIDQuNjE2NjdaTTE1LjQ0OTMgNS43OTE2N0MxNS43MTYgNi4wNTgzMyAxNS45NDEgNi4zNSAxNi4xMjQzIDYuNjY2NjdIMTIuNTA3N0MxMi4wNDkzIDYuNjY2NjcgMTEuNjc0MyA2LjI5MTY3IDExLjY3NDMgNS44MzMzM1YyLjIxNjY3QzExLjk5MSAyLjQgMTIuMjgyNyAyLjYyNSAxMi41NDkzIDIuODkxNjdMMTUuNDU3NyA1LjhMMTUuNDQ5MyA1Ljc5MTY3Wk0xNi42NjYgMTUuODMzM0MxNi42NjYgMTcuMjA4MyAxNS41NDEgMTguMzMzMyAxNC4xNjYgMTguMzMzM0g1LjgzMjY4QzQuNDU3NjggMTguMzMzMyAzLjMzMjY4IDE3LjIwODMgMy4zMzI2OCAxNS44MzMzVjQuMTY2NjdDMy4zMzI2OCAyLjc5MTY3IDQuNDU3NjggMS42NjY2NyA1LjgzMjY4IDEuNjY2NjdIOS41OTEwMkM5LjcyNDM1IDEuNjY2NjcgOS44NjYwMiAxLjY2NjY3IDkuOTk5MzUgMS42ODMzM1Y1LjgzMzMzQzkuOTk5MzUgNy4yMDgzMyAxMS4xMjQzIDguMzMzMzMgMTIuNDk5MyA4LjMzMzMzSDE2LjY0OTNDMTYuNjY2IDguNDY2NjcgMTYuNjY2IDguNiAxNi42NjYgOC43NDE2N1YxNS44MzMzWk01LjkwNzY4IDEwLjgzMzNINC45OTkzNUM0LjU0MTAyIDEwLjgzMzMgNC4xNjYwMiAxMS4yMDgzIDQuMTY2MDIgMTEuNjY2N1YxNS4zNjY3QzQuMTY2MDIgMTUuNjU4MyA0LjM5OTM1IDE1Ljg4MzMgNC42ODI2OCAxNS44ODMzQzQuOTY2MDIgMTUuODgzMyA1LjE5OTM1IDE1LjY1IDUuMTk5MzUgMTUuMzY2N1YxNC4zNUg1Ljg5OTM1QzYuODgyNjggMTQuMzUgNy42ODI2OCAxMy41NTgzIDcuNjgyNjggMTIuNTkxN0M3LjY4MjY4IDExLjYyNSA2Ljg4MjY4IDEwLjgzMzMgNS44OTkzNSAxMC44MzMzSDUuOTA3NjhaTTUuOTA3NjggMTMuMzA4M0g1LjIxNjAyVjExLjg3NUg1LjkxNjAyQzYuMzE2MDIgMTEuODc1IDYuNjU3NjggMTIuMiA2LjY1NzY4IDEyLjU5MTdDNi42NTc2OCAxMi45ODMzIDYuMzE2MDIgMTMuMzA4MyA1LjkxNjAyIDEzLjMwODNINS45MDc2OFpNMTUuODQ5MyAxMS4zNTgzQzE1Ljg0OTMgMTEuNjUgMTUuNjE2IDExLjg3NSAxNS4zMzI3IDExLjg3NUgxMy45MjQzVjEyLjgyNUgxNC45NTc3QzE1LjI0OTMgMTIuODI1IDE1LjQ3NDMgMTMuMDU4MyAxNS40NzQzIDEzLjM0MTdDMTUuNDc0MyAxMy42MjUgMTUuMjQxIDEzLjg1ODMgMTQuOTU3NyAxMy44NTgzSDEzLjkyNDNWMTUuMzU4M0MxMy45MjQzIDE1LjY1IDEzLjY5MSAxNS44NzUgMTMuNDA3NyAxNS44NzVDMTMuMTI0MyAxNS44NzUgMTIuODkxIDE1LjY0MTcgMTIuODkxIDE1LjM1ODNWMTEuMzVDMTIuODkxIDExLjA1ODMgMTMuMTI0MyAxMC44MzMzIDEzLjQwNzcgMTAuODMzM0gxNS4zMzI3QzE1LjYyNDMgMTAuODMzMyAxNS44NDkzIDExLjA2NjcgMTUuODQ5MyAxMS4zNVYxMS4zNTgzWk0xMC4wNzQzIDEwLjg0MTdIOS4xNjYwMkM4LjcwNzY4IDEwLjg0MTcgOC4zMzI2OCAxMS4yMTY3IDguMzMyNjggMTEuNjc1VjE1LjM3NUM4LjMzMjY4IDE1LjY2NjcgOC41NjYwMiAxNS44NDE3IDguODQ5MzUgMTUuODQxN0M5LjEzMjY4IDE1Ljg0MTcgMTAuMDY2IDE1Ljg0MTcgMTAuMDY2IDE1Ljg0MTdDMTEuMDQ5MyAxNS44NDE3IDExLjg0OTMgMTUuMDUgMTEuODQ5MyAxNC4wODMzVjEyLjZDMTEuODQ5MyAxMS42MzMzIDExLjA0OTMgMTAuODQxNyAxMC4wNjYgMTAuODQxN0gxMC4wNzQzWk0xMC44MTYgMTQuMDgzM0MxMC44MTYgMTQuNDc1IDEwLjQ3NDMgMTQuOCAxMC4wNzQzIDE0LjhIOS4zODI2OFYxMS44ODMzSDEwLjA4MjdDMTAuNDgyNyAxMS44ODMzIDEwLjgyNDMgMTIuMjA4MyAxMC44MjQzIDEyLjZWMTQuMDgzM0gxMC44MTZaXCJcbiAgICAgICAgICBmaWxsPVwiI0RFNjA2MVwiXG4gICAgICAgIC8+XG4gICAgICA8L2c+XG4gICAgICA8ZGVmcz5cbiAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNjIyN18yMjIyM1wiPlxuICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgIDwvY2xpcFBhdGg+XG4gICAgICA8L2RlZnM+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItYmFyLXRpdGxlXCI+XG4gICAgPHAgY2xhc3M9XCJCb2R5LVMtUmVndWxhclwiPnt7IHRleHRGaWxlIH19PC9wPlxuICAgIDxwcm9ncmVzcyAqbmdJZj1cInByb2dyZXNzIDwgMTAwXCIgW3ZhbHVlXT1cInByb2dyZXNzXCIgbWF4PVwiMTAwXCI+e3sgcHJvZ3Jlc3MgfX0lPC9wcm9ncmVzcz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ2aWV3LWljb25cIiAqbmdJZj1cInByb2dyZXNzID09IDEwMCAmJiBpc1ByZXZpZXdcIiAoY2xpY2spPVwidmlld0VtaXRlcigpXCI+XG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxOCAxNFwiIGZpbGw9XCJub25lXCI+XG4gICAgICA8cGF0aFxuICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGQ9XCJNNy4wNzE0OCA0LjE0NzU4QzcuNjQyMjcgMy43NjYxOCA4LjMxMzM0IDMuNTYyNjIgOC45OTk4MyAzLjU2MjYyQzkuOTIwMDQgMy41NjM3MiAxMC44MDIyIDMuOTI5NzYgMTEuNDUyOSA0LjU4MDQ1QzEyLjEwMzYgNS4yMzExNCAxMi40Njk3IDYuMTEzMzQgMTIuNDcwOCA3LjAzMzU1QzEyLjQ3MDggNy43MjAwNCAxMi4yNjcyIDguMzkxMTEgMTEuODg1OCA4Ljk2MTlDMTEuNTA0NCA5LjUzMjY5IDEwLjk2MjMgOS45Nzc1NyAxMC4zMjgxIDEwLjI0MDNDOS42OTM4NyAxMC41MDMgOC45OTU5OCAxMC41NzE3IDguMzIyNjggMTAuNDM3OEM3LjY0OTM5IDEwLjMwMzkgNy4wMzA5MiA5Ljk3MzMgNi41NDU1MSA5LjQ4Nzg4QzYuMDYwMDkgOS4wMDI0NiA1LjcyOTUxIDguMzg0IDUuNTk1NTggNy43MTA3QzUuNDYxNjYgNy4wMzc0IDUuNTMwMzkgNi4zMzk1MSA1Ljc5MzEgNS43MDUyOEM2LjA1NTgxIDUuMDcxMDUgNi41MDA2OSA0LjUyODk3IDcuMDcxNDggNC4xNDc1OFpNNy44NDI4MiA4Ljc2NTE0QzguMTg1MjkgOC45OTM5OCA4LjU4Nzk0IDkuMTE2MTIgOC45OTk4MyA5LjExNjEyQzkuNTUyMTYgOS4xMTYxMiAxMC4wODE5IDguODk2NyAxMC40NzI0IDguNTA2MTVDMTAuODYzIDguMTE1NTkgMTEuMDgyNCA3LjU4NTg4IDExLjA4MjQgNy4wMzM1NUMxMS4wODI0IDYuNjIxNjYgMTAuOTYwMiA2LjIxOTAyIDEwLjczMTQgNS44NzY1NEMxMC41MDI2IDUuNTM0MDcgMTAuMTc3MyA1LjI2NzE0IDkuNzk2NzkgNS4xMDk1MkM5LjQxNjI1IDQuOTUxODkgOC45OTc1MiA0LjkxMDY1IDguNTkzNTQgNC45OTEwMUM4LjE4OTU2IDUuMDcxMzYgNy44MTg0OSA1LjI2OTcxIDcuNTI3MjMgNS41NjA5NkM3LjIzNTk4IDUuODUyMjEgNy4wMzc2NCA2LjIyMzI5IDYuOTU3MjggNi42MjcyN0M2Ljg3NjkzIDcuMDMxMjQgNi45MTgxNyA3LjQ0OTk4IDcuMDc1NzkgNy44MzA1MkM3LjIzMzQyIDguMjExMDUgNy41MDAzNCA4LjUzNjMxIDcuODQyODIgOC43NjUxNFpcIlxuICAgICAgICBmaWxsPVwiIzQ3NTA2NlwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICBkPVwiTTguOTk5OTYgMC41NDYzODdDMTMuMjk4NCAwLjU0NjM4NyAxNS43NDc1IDMuNDg4MzUgMTYuODI0MSA1LjI0MTg3QzE3LjE1NyA1Ljc4MDIyIDE3LjMzMzMgNi40MDA2NCAxNy4zMzMzIDcuMDMzNTdDMTcuMzMzMyA3LjY2NjUgMTcuMTU3IDguMjg2OTIgMTYuODI0MSA4LjgyNTI2QzE1Ljc0NzUgMTAuNTc4OCAxMy4yOTg0IDEzLjUyMDcgOC45OTk5NiAxMy41MjA3QzQuNzAxNTUgMTMuNTIwNyAyLjI1MjQ2IDEwLjU3ODggMS4xNzU3NyA4LjgyNTI2QzAuODQyOTMxIDguMjg2OTIgMC42NjY2MjYgNy42NjY1IDAuNjY2NjI2IDcuMDMzNTdDMC42NjY2MjYgNi40MDA2NCAwLjg0MjkzMSA1Ljc4MDIyIDEuMTc1NzcgNS4yNDE4N0MyLjI1MjQ2IDMuNDg4MzUgNC43MDE1NSAwLjU0NjM4NyA4Ljk5OTk2IDAuNTQ2Mzg3Wk04Ljk5OTk2IDEyLjEzMjRDMTIuNjIyOSAxMi4xMzI0IDE0LjcxNTkgOS42MDIwNiAxNS42NDA2IDguMDk4NDVDMTUuODM4MyA3Ljc3ODQ2IDE1Ljk0MyA3LjQwOTczIDE1Ljk0MyA3LjAzMzU3QzE1Ljk0MyA2LjY1NzQgMTUuODM4MyA2LjI4ODY3IDE1LjY0MDYgNS45Njg2OEMxNC43MTU5IDQuNDYyMyAxMi42MjI5IDEuOTM0NzYgOC45OTk5NiAxLjkzNDc2QzUuMzc3IDEuOTM0NzYgMy4yODQwMiA0LjQ2NTA3IDIuMzU5MzYgNS45Njg2OEMyLjE2MTYxIDYuMjg4NjcgMi4wNTY4NyA2LjY1NzQgMi4wNTY4NyA3LjAzMzU3QzIuMDU2ODcgNy40MDk3MyAyLjE2MTYxIDcuNzc4NDYgMi4zNTkzNiA4LjA5ODQ1QzMuMjg0MDIgOS42MDIwNiA1LjM3NyAxMi4xMzI0IDguOTk5OTYgMTIuMTMyNFpcIlxuICAgICAgICBmaWxsPVwiIzQ3NTA2NlwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwicHJvZ3Jlc3MgPT0gMTAwXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGVBY3Rpb24oKVwiIGNsYXNzPVwiY29udGFpbmVyLWljb24tdHJhc2hcIj5cbiAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIwIDIxXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTYuMjUwMSA0Ljk0NDc3SDE0LjA5NzNDMTMuOTM2MiA0LjE2MTAzIDEzLjUwOTcgMy40NTY4MiAxMi44ODk5IDIuOTUwODJDMTIuMjcgMi40NDQ4MyAxMS40OTQ3IDIuMTY4IDEwLjY5NDYgMi4xNjY5OUg5LjMwNTY2QzguNTA1NTIgMi4xNjggNy43MzAxOSAyLjQ0NDgzIDcuMTEwMzUgMi45NTA4MkM2LjQ5MDUxIDMuNDU2ODIgNi4wNjQwNiA0LjE2MTAzIDUuOTAyODkgNC45NDQ3N0gzLjc1MDExQzMuNTY1OTMgNC45NDQ3NyAzLjM4OTMgNS4wMTc5MyAzLjI1OTA2IDUuMTQ4MTdDMy4xMjg4MyA1LjI3ODQgMy4wNTU2NiA1LjQ1NTA0IDMuMDU1NjYgNS42MzkyMUMzLjA1NTY2IDUuODIzMzkgMy4xMjg4MyA2LjAwMDAzIDMuMjU5MDYgNi4xMzAyNkMzLjM4OTMgNi4yNjA0OSAzLjU2NTkzIDYuMzMzNjYgMy43NTAxMSA2LjMzMzY2SDQuNDQ0NTVWMTUuMzYxNEM0LjQ0NTY2IDE2LjI4MiA0LjgxMTgzIDE3LjE2NDUgNS40NjI3NiAxNy44MTU1QzYuMTEzNjkgMTguNDY2NCA2Ljk5NjIyIDE4LjgzMjYgNy45MTY3NyAxOC44MzM3SDEyLjA4MzRDMTMuMDA0IDE4LjgzMjYgMTMuODg2NSAxOC40NjY0IDE0LjUzNzUgMTcuODE1NUMxNS4xODg0IDE3LjE2NDUgMTUuNTU0NiAxNi4yODIgMTUuNTU1NyAxNS4zNjE0VjYuMzMzNjZIMTYuMjUwMUMxNi40MzQzIDYuMzMzNjYgMTYuNjEwOSA2LjI2MDQ5IDE2Ljc0MTIgNi4xMzAyNkMxNi44NzE0IDYuMDAwMDMgMTYuOTQ0NiA1LjgyMzM5IDE2Ljk0NDYgNS42MzkyMUMxNi45NDQ2IDUuNDU1MDQgMTYuODcxNCA1LjI3ODQgMTYuNzQxMiA1LjE0ODE3QzE2LjYxMDkgNS4wMTc5MyAxNi40MzQzIDQuOTQ0NzcgMTYuMjUwMSA0Ljk0NDc3Wk05LjMwNTY2IDMuNTU1ODhIMTAuNjk0NkMxMS4xMjUzIDMuNTU2NDEgMTEuNTQ1MyAzLjY5MDE3IDExLjg5NzEgMy45Mzg4M0MxMi4yNDg4IDQuMTg3NDkgMTIuNTE1IDQuNTM4ODYgMTIuNjU5MSA0Ljk0NDc3SDcuMzQxMDhDNy40ODUyNCA0LjUzODg2IDcuNzUxNDMgNC4xODc0OSA4LjEwMzE1IDMuOTM4ODNDOC40NTQ4OCAzLjY5MDE3IDguODc0OTIgMy41NTY0MSA5LjMwNTY2IDMuNTU1ODhaTTE0LjE2NjggMTUuMzYxNEMxNC4xNjY4IDE1LjkxNCAxMy45NDczIDE2LjQ0MzkgMTMuNTU2NiAxNi44MzQ2QzEzLjE2NTkgMTcuMjI1MyAxMi42MzYgMTcuNDQ0OCAxMi4wODM0IDE3LjQ0NDhINy45MTY3N0M3LjM2NDI0IDE3LjQ0NDggNi44MzQzNCAxNy4yMjUzIDYuNDQzNjQgMTYuODM0NkM2LjA1Mjk0IDE2LjQ0MzkgNS44MzM0NCAxNS45MTQgNS44MzM0NCAxNS4zNjE0VjYuMzMzNjZIMTQuMTY2OFYxNS4zNjE0WlwiXG4gICAgICAgIGZpbGw9XCIjREU2MDYxXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTguNjExMjggMTQuNjY2NkM4Ljc5NTQ1IDE0LjY2NjYgOC45NzIwOSAxNC41OTM0IDkuMTAyMzIgMTQuNDYzMkM5LjIzMjU2IDE0LjMzMjkgOS4zMDU3MiAxNC4xNTYzIDkuMzA1NzIgMTMuOTcyMVY5LjgwNTQ1QzkuMzA1NzIgOS42MjEyNyA5LjIzMjU2IDkuNDQ0NjQgOS4xMDIzMiA5LjMxNDRDOC45NzIwOSA5LjE4NDE3IDguNzk1NDUgOS4xMTEwMSA4LjYxMTI4IDkuMTExMDFDOC40MjcxIDkuMTExMDEgOC4yNTA0NiA5LjE4NDE3IDguMTIwMjMgOS4zMTQ0QzcuOTkgOS40NDQ2NCA3LjkxNjgzIDkuNjIxMjcgNy45MTY4MyA5LjgwNTQ1VjEzLjk3MjFDNy45MTY4MyAxNC4xNTYzIDcuOTkgMTQuMzMyOSA4LjEyMDIzIDE0LjQ2MzJDOC4yNTA0NiAxNC41OTM0IDguNDI3MSAxNC42NjY2IDguNjExMjggMTQuNjY2NlpcIlxuICAgICAgICBmaWxsPVwiI0RFNjA2MVwiXG4gICAgICAvPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMS4zODkgMTQuNjY2NkMxMS41NzMxIDE0LjY2NjYgMTEuNzQ5OCAxNC41OTM0IDExLjg4IDE0LjQ2MzJDMTIuMDEwMiAxNC4zMzI5IDEyLjA4MzQgMTQuMTU2MyAxMi4wODM0IDEzLjk3MjFWOS44MDU0NUMxMi4wODM0IDkuNjIxMjcgMTIuMDEwMiA5LjQ0NDY0IDExLjg4IDkuMzE0NEMxMS43NDk4IDkuMTg0MTcgMTEuNTczMSA5LjExMTAxIDExLjM4OSA5LjExMTAxQzExLjIwNDggOS4xMTEwMSAxMS4wMjgxIDkuMTg0MTcgMTAuODk3OSA5LjMxNDRDMTAuNzY3NyA5LjQ0NDY0IDEwLjY5NDUgOS42MjEyNyAxMC42OTQ1IDkuODA1NDVWMTMuOTcyMUMxMC42OTQ1IDE0LjE1NjMgMTAuNzY3NyAxNC4zMzI5IDEwLjg5NzkgMTQuNDYzMkMxMS4wMjgxIDE0LjU5MzQgMTEuMjA0OCAxNC42NjY2IDExLjM4OSAxNC42NjY2WlwiXG4gICAgICAgIGZpbGw9XCIjREU2MDYxXCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=