@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,320 @@
1
+ import { Component, ViewChild, Output, EventEmitter, HostListener, Input, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { FormsModule } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ export class ColorPickerComponent {
8
+ colorCanvas;
9
+ hueCanvas;
10
+ opacityCanvas;
11
+ colorPicker;
12
+ /**
13
+ * Indica el color (hex) por defecto que debe mostrarse.
14
+ *
15
+ * Valor por defecto: `#ffffff`.
16
+ *
17
+ * @type {string}
18
+ */
19
+ currentColor = '#ffffff';
20
+ /**
21
+ * Indica la posicion del selector de color dentro del componente.
22
+ *
23
+ * Valor por defecto: `right`.
24
+ *
25
+ * @type {'left' | 'right' | 'top' | 'bottom'}
26
+ */
27
+ position = 'right';
28
+ /**
29
+ * Evento que emite el color seleccionado en formato hex.
30
+ *
31
+ * @type {EventEmitter<string>}
32
+ */
33
+ colorChange = new EventEmitter();
34
+ color = '';
35
+ hue = 0;
36
+ saturation = 0;
37
+ value = 0;
38
+ opacity = 100;
39
+ isDragging = false;
40
+ isHueDragging = false;
41
+ isOpacityDragging = false;
42
+ showEdit = false;
43
+ ngAfterViewInit() {
44
+ this.drawHueCanvas();
45
+ }
46
+ onMouseMove(event) {
47
+ if (this.isDragging) {
48
+ this.updateColorFromPosition(event);
49
+ return;
50
+ }
51
+ if (this.isHueDragging) {
52
+ this.updateHueFromPosition(event);
53
+ return;
54
+ }
55
+ if (this.isOpacityDragging) {
56
+ this.updateOpacityFromPosition(event);
57
+ return;
58
+ }
59
+ }
60
+ onMouseUp() {
61
+ this.isDragging = false;
62
+ this.isHueDragging = false;
63
+ this.isOpacityDragging = false;
64
+ }
65
+ drawColorCanvas() {
66
+ const canvas = this.colorCanvas.nativeElement;
67
+ const ctx = canvas.getContext('2d');
68
+ const width = canvas.width;
69
+ const height = canvas.height;
70
+ // Gradiente de saturación (eje X)
71
+ const saturationGradient = ctx.createLinearGradient(0, 0, width, 0);
72
+ saturationGradient.addColorStop(0, '#FFFFFF');
73
+ saturationGradient.addColorStop(1, `hsl(${this.hue}, 100%, 50%)`);
74
+ // Gradiente de valor (eje Y)
75
+ const valueGradient = ctx.createLinearGradient(0, 0, 0, height);
76
+ valueGradient.addColorStop(0, 'rgba(0, 0, 0, 0)');
77
+ valueGradient.addColorStop(1, '#000000');
78
+ ctx.fillStyle = saturationGradient;
79
+ ctx.fillRect(0, 0, width, height);
80
+ ctx.fillStyle = valueGradient;
81
+ ctx.fillRect(0, 0, width, height);
82
+ }
83
+ handleClickOutside(event) {
84
+ const clickedInside = this.colorPicker?.nativeElement.contains(event.target);
85
+ if (!clickedInside && this.showEdit) {
86
+ this.showEdit = false;
87
+ this.currentColor = this.color;
88
+ this.colorChange.emit(this.color);
89
+ }
90
+ }
91
+ drawHueCanvas() {
92
+ const canvas = this.hueCanvas.nativeElement;
93
+ const ctx = canvas.getContext('2d');
94
+ const width = canvas.width;
95
+ const height = canvas.height;
96
+ const hueGradient = ctx.createLinearGradient(0, 0, width, 0);
97
+ for (let i = 0; i <= 360; i += 60) {
98
+ hueGradient.addColorStop(i / 360, `hsl(${i}, 100%, 50%)`);
99
+ }
100
+ ctx.fillStyle = hueGradient;
101
+ ctx.fillRect(0, 0, width, height);
102
+ }
103
+ drawOpacityCanvas() {
104
+ const canvas = this.opacityCanvas.nativeElement;
105
+ const ctx = canvas.getContext('2d');
106
+ const width = canvas.width;
107
+ const height = canvas.height;
108
+ // Limpiar el canvas
109
+ ctx.clearRect(0, 0, width, height);
110
+ ctx.fillStyle = '#FFFFFF';
111
+ ctx.fillRect(0, 0, width, height);
112
+ // Obtener el color actual sin opacidad
113
+ const rgb = this.hsvToRgb(this.hue, this.saturation, this.value);
114
+ // Crear gradiente de opacidad
115
+ const opacityGradient = ctx.createLinearGradient(0, 0, width, 0);
116
+ opacityGradient.addColorStop(0, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 0)`);
117
+ opacityGradient.addColorStop(1, `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 1)`);
118
+ // Dibujar el gradiente
119
+ ctx.fillStyle = opacityGradient;
120
+ ctx.fillRect(0, 0, width, height);
121
+ }
122
+ updateColor() {
123
+ // Convertir HSV a RGB
124
+ const rgb = this.hsvToRgb(this.hue, this.saturation, this.value);
125
+ const hex = this.rgbToHex(rgb.r, rgb.g, rgb.b, this.opacity);
126
+ // Color a emitir
127
+ this.color = hex;
128
+ // Redibujar los canvas
129
+ this.drawColorCanvas();
130
+ this.drawOpacityCanvas();
131
+ }
132
+ hsvToRgb(h, s, v) {
133
+ s /= 100;
134
+ v /= 100;
135
+ const c = v * s;
136
+ const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
137
+ const m = v - c;
138
+ let r = 0, g = 0, b = 0;
139
+ if (h >= 0 && h < 60) {
140
+ r = c;
141
+ g = x;
142
+ b = 0;
143
+ }
144
+ else if (h >= 60 && h < 120) {
145
+ r = x;
146
+ g = c;
147
+ b = 0;
148
+ }
149
+ else if (h >= 120 && h < 180) {
150
+ r = 0;
151
+ g = c;
152
+ b = x;
153
+ }
154
+ else if (h >= 180 && h < 240) {
155
+ r = 0;
156
+ g = x;
157
+ b = c;
158
+ }
159
+ else if (h >= 240 && h < 300) {
160
+ r = x;
161
+ g = 0;
162
+ b = c;
163
+ }
164
+ else if (h >= 300 && h < 361) {
165
+ r = c;
166
+ g = 0;
167
+ b = x;
168
+ }
169
+ return {
170
+ r: Math.round((r + m) * 255),
171
+ g: Math.round((g + m) * 255),
172
+ b: Math.round((b + m) * 255),
173
+ };
174
+ }
175
+ rgbToHex(red, green, black, opacity = 1) {
176
+ const toHex = (val) => {
177
+ const hex = Math.round(val).toString(16);
178
+ return hex.padStart(2, '0');
179
+ };
180
+ const rHex = toHex(red);
181
+ const gHex = toHex(green);
182
+ const bHex = toHex(black);
183
+ const alpha = Math.round((opacity / 100) * 255);
184
+ const aHex = toHex(alpha);
185
+ return `#${rHex}${gHex}${bHex}${aHex}`;
186
+ }
187
+ onHexInputChange() {
188
+ if (/^#?[0-9A-F]{6}([0-9A-F]{2})?$/i.test(this.color)) {
189
+ if (!this.color.startsWith('#')) {
190
+ this.color = '#' + this.color;
191
+ }
192
+ const hex = this.color.substring(1);
193
+ const r = parseInt(hex.substring(0, 2), 16);
194
+ const g = parseInt(hex.substring(2, 4), 16);
195
+ const b = parseInt(hex.substring(4, 6), 16);
196
+ const a = hex.length === 8 ? parseInt(hex.substring(6, 8), 16) / 255 : 1;
197
+ const hsv = this.rgbToHsv(r, g, b, a);
198
+ this.hue = hsv.h;
199
+ this.saturation = hsv.s;
200
+ this.value = hsv.v;
201
+ this.opacity = a * 100;
202
+ this.drawColorCanvas();
203
+ this.drawOpacityCanvas();
204
+ }
205
+ }
206
+ rgbToHsv(r, g, b, a = 1) {
207
+ r /= 255;
208
+ g /= 255;
209
+ b /= 255;
210
+ const max = Math.max(r, g, b);
211
+ const min = Math.min(r, g, b);
212
+ const delta = max - min;
213
+ let h = 0;
214
+ if (delta !== 0) {
215
+ if (max === r)
216
+ h = 60 * (((g - b) / delta) % 6);
217
+ else if (max === g)
218
+ h = 60 * ((b - r) / delta + 2);
219
+ else if (max === b)
220
+ h = 60 * ((r - g) / delta + 4);
221
+ }
222
+ if (h < 0)
223
+ h += 360;
224
+ const s = max === 0 ? 0 : (delta / max) * 100;
225
+ const v = max * 100;
226
+ return {
227
+ h: Math.round(h),
228
+ s: Math.round(s),
229
+ v: Math.round(v),
230
+ a: parseFloat(a.toFixed(3)),
231
+ };
232
+ }
233
+ getCanvasPosition(canvas, event) {
234
+ const rect = canvas.getBoundingClientRect();
235
+ const scaleX = canvas.width / rect.width;
236
+ const scaleY = canvas.height / rect.height;
237
+ return {
238
+ x: (event.clientX - rect.left) * scaleX,
239
+ y: (event.clientY - rect.top) * scaleY,
240
+ };
241
+ }
242
+ onColorMouseDown(event) {
243
+ this.isDragging = true;
244
+ this.updateColorFromPosition(event);
245
+ }
246
+ onHueMouseDown(event) {
247
+ this.isHueDragging = true;
248
+ this.updateHueFromPosition(event);
249
+ }
250
+ onOpacityMouseDown(event) {
251
+ this.isOpacityDragging = true;
252
+ this.updateOpacityFromPosition(event);
253
+ }
254
+ updateColorFromPosition(event) {
255
+ const canvas = this.colorCanvas.nativeElement;
256
+ const pos = this.getCanvasPosition(canvas, event);
257
+ // Coordenadas dentro de canvas
258
+ const x = Math.max(0, Math.min(pos.x, canvas.width));
259
+ const y = Math.max(0, Math.min(pos.y, canvas.height));
260
+ this.saturation = Math.round((x / canvas.width) * 100);
261
+ this.value = 100 - Math.round((y / canvas.height) * 100);
262
+ this.updateColor();
263
+ }
264
+ updateHueFromPosition(event) {
265
+ const canvas = this.hueCanvas.nativeElement;
266
+ const pos = this.getCanvasPosition(canvas, event);
267
+ const x = Math.max(0, Math.min(pos.x, canvas.width));
268
+ this.hue = Math.round((x / canvas.width) * 360);
269
+ this.drawColorCanvas();
270
+ this.updateColor();
271
+ }
272
+ updateOpacityFromPosition(event) {
273
+ const canvas = this.opacityCanvas.nativeElement;
274
+ const pos = this.getCanvasPosition(canvas, event);
275
+ const x = Math.max(0, Math.min(pos.x, canvas.width));
276
+ this.opacity = Math.round((x / canvas.width) * 100);
277
+ this.updateColor();
278
+ }
279
+ showEditor() {
280
+ this.showEdit = !this.showEdit;
281
+ this.color = this.currentColor;
282
+ if (!this.showEdit)
283
+ return;
284
+ this.onHexInputChange();
285
+ }
286
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
287
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ColorPickerComponent, isStandalone: true, selector: "app-color-picker", inputs: { currentColor: "currentColor", position: "position" }, outputs: { colorChange: "colorChange" }, host: { listeners: { "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp()", "document:click": "handleClickOutside($event)" } }, viewQueries: [{ propertyName: "colorCanvas", first: true, predicate: ["colorCanvas"], descendants: true }, { propertyName: "hueCanvas", first: true, predicate: ["hueCanvas"], descendants: true }, { propertyName: "opacityCanvas", first: true, predicate: ["opacityCanvas"], descendants: true }, { propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true }], ngImport: i0, template: "<div class=\"general-container\" #colorPicker>\n <div class=\"main-input-container\">\n <div class=\"overlay\" (click)=\"showEditor()\"></div>\n <div class=\"line-color-preview\">\n <div class=\"color-preview\" [style.background]=\"currentColor\"></div>\n </div>\n <div class=\"color-info\">\n <input type=\"text\" class=\"color-input\" [ngModel]=\"currentColor\" maxlength=\"9\" />\n </div>\n </div>\n\n <div class=\"color-picker-container position-{{position}}\" [ngClass]=\"{ show: showEdit }\">\n <div class=\"main-color-canvas-container\">\n <canvas #colorCanvas width=\"256\" height=\"150\" (mousedown)=\"onColorMouseDown($event)\"></canvas>\n <div\n class=\"color-selector-pointer\"\n [style.left]=\"(saturation / 100) * 256 + 'px'\"\n [style.top]=\"((100 - value) / 100) * 150 + 'px'\"\n ></div>\n </div>\n\n <div class=\"slider-container\">\n <div class=\"slider-group\">\n <div class=\"hue-slider-container\">\n <canvas #hueCanvas width=\"256\" height=\"20\" (mousedown)=\"onHueMouseDown($event)\"></canvas>\n <div class=\"slider-pointer\" [style.left]=\"(hue / 360) * 234 + 'px'\"></div>\n </div>\n </div>\n\n <div class=\"slider-group\">\n <div class=\"opacity-slider-container\">\n <canvas\n #opacityCanvas\n width=\"256\"\n height=\"20\"\n (mousedown)=\"onOpacityMouseDown($event)\"\n ></canvas>\n <div class=\"slider-pointer\" [style.left]=\"(opacity / 100) * 234 + 'px'\"></div>\n </div>\n </div>\n\n <div class=\"color-info\">\n <div class=\"color-label\">HEX</div>\n <input\n type=\"text\"\n class=\"color-input\"\n [(ngModel)]=\"color\"\n (ngModelChange)=\"onHexInputChange()\"\n maxlength=\"9\"\n />\n </div>\n </div>\n </div>\n</div>\n", styles: [".general-container{position:relative;width:fit-content}.main-input-container{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:var(--Size-3);position:relative;width:fit-content}.main-input-container .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;cursor:pointer}.line-color-preview{width:40px;height:40px;border-radius:50%;border:1px solid var(--Gray-Gray-200);display:flex;justify-content:center;align-items:center;padding:5px}.line-color-preview .color-preview{width:100%;height:100%;border-radius:50%;border:1px solid var(--Gray-Gray-200)}.position-right{top:0;left:250px}.position-left{top:0;right:200px}.position-top{bottom:55px}.position-bottom{top:55px}.position-bottom:before{transform:rotate(90deg);left:50%;top:-15px}.position-right:before{left:-6px;top:10px}.position-top:before{transform:rotate(270deg);left:50%;bottom:-15px}.position-left:before{transform:rotate(180deg);right:-9px}.color-picker-container:before{content:\"\";position:absolute;width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid var(--Neutral-White);z-index:1}.color-picker-container{width:280px;padding:var(--Size-4);background:var(--Neutral-White);border-radius:var(--Size-2);box-shadow:var(--Shadow-large);position:absolute;z-index:100;transform-origin:top left;opacity:0;transition:transform .2s ease-out,opacity .2s ease-out;pointer-events:none}.color-picker-container .main-color-canvas-container{position:relative;margin-bottom:var(--Size-4);border:1px solid var(--Gray-Gray-200);border-radius:var(--Size-1);display:flex;justify-self:center;align-items:center}.color-picker-container .main-color-canvas-container canvas{display:block;border-radius:var(--Size-1)}.color-picker-container .main-color-canvas-container .color-selector-pointer{position:absolute;width:var(--Size-3);height:var(--Size-3);border:2px solid var(--Neutral-White);border-radius:50%;transform:translate(-6px,-6px);pointer-events:none}.color-picker-container .slider-container{display:flex;flex-direction:column;gap:var(--Size-3)}.color-picker-container .slider-container .slider-group{display:flex;flex-direction:column;gap:var(--Size-1)}.color-picker-container .slider-container .slider-group label{font-size:var(--font-size-xs);color:var(--Gray-Gray-500);font-weight:700}.color-picker-container .slider-container .slider-group .hue-slider-container,.color-picker-container .slider-container .slider-group .opacity-slider-container{position:relative;height:var(--Size-3);border-radius:var(--Size-4);overflow:hidden}.color-picker-container .slider-container .slider-group .hue-slider-container canvas,.color-picker-container .slider-container .slider-group .opacity-slider-container canvas{display:block;width:100%;height:100%}.color-picker-container .slider-container .slider-group .hue-slider-container .slider-pointer,.color-picker-container .slider-container .slider-group .opacity-slider-container .slider-pointer{position:absolute;top:0;height:var(--Size-3);width:var(--Size-3);background:transparent;border:2px solid var(--Neutral-White);border-radius:50%;pointer-events:none}.color-picker-container.show{transform:scale(1);opacity:1;pointer-events:auto}.color-info .color-label{font-size:var(--font-size-xs);color:var(--Gray-Gray-500);font-weight:700;text-transform:uppercase;margin-bottom:var(--Size-2)}.color-info .color-input{border:1px solid #ddd;border-radius:var(--Size-1);padding:6px 8px;font-size:var(--font-size-s);width:100%;font-family:monospace;text-transform:uppercase}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { 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.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
288
+ }
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ColorPickerComponent, decorators: [{
290
+ type: Component,
291
+ args: [{ selector: 'app-color-picker', standalone: true, imports: [CommonModule, FormsModule], template: "<div class=\"general-container\" #colorPicker>\n <div class=\"main-input-container\">\n <div class=\"overlay\" (click)=\"showEditor()\"></div>\n <div class=\"line-color-preview\">\n <div class=\"color-preview\" [style.background]=\"currentColor\"></div>\n </div>\n <div class=\"color-info\">\n <input type=\"text\" class=\"color-input\" [ngModel]=\"currentColor\" maxlength=\"9\" />\n </div>\n </div>\n\n <div class=\"color-picker-container position-{{position}}\" [ngClass]=\"{ show: showEdit }\">\n <div class=\"main-color-canvas-container\">\n <canvas #colorCanvas width=\"256\" height=\"150\" (mousedown)=\"onColorMouseDown($event)\"></canvas>\n <div\n class=\"color-selector-pointer\"\n [style.left]=\"(saturation / 100) * 256 + 'px'\"\n [style.top]=\"((100 - value) / 100) * 150 + 'px'\"\n ></div>\n </div>\n\n <div class=\"slider-container\">\n <div class=\"slider-group\">\n <div class=\"hue-slider-container\">\n <canvas #hueCanvas width=\"256\" height=\"20\" (mousedown)=\"onHueMouseDown($event)\"></canvas>\n <div class=\"slider-pointer\" [style.left]=\"(hue / 360) * 234 + 'px'\"></div>\n </div>\n </div>\n\n <div class=\"slider-group\">\n <div class=\"opacity-slider-container\">\n <canvas\n #opacityCanvas\n width=\"256\"\n height=\"20\"\n (mousedown)=\"onOpacityMouseDown($event)\"\n ></canvas>\n <div class=\"slider-pointer\" [style.left]=\"(opacity / 100) * 234 + 'px'\"></div>\n </div>\n </div>\n\n <div class=\"color-info\">\n <div class=\"color-label\">HEX</div>\n <input\n type=\"text\"\n class=\"color-input\"\n [(ngModel)]=\"color\"\n (ngModelChange)=\"onHexInputChange()\"\n maxlength=\"9\"\n />\n </div>\n </div>\n </div>\n</div>\n", styles: [".general-container{position:relative;width:fit-content}.main-input-container{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:var(--Size-3);position:relative;width:fit-content}.main-input-container .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;cursor:pointer}.line-color-preview{width:40px;height:40px;border-radius:50%;border:1px solid var(--Gray-Gray-200);display:flex;justify-content:center;align-items:center;padding:5px}.line-color-preview .color-preview{width:100%;height:100%;border-radius:50%;border:1px solid var(--Gray-Gray-200)}.position-right{top:0;left:250px}.position-left{top:0;right:200px}.position-top{bottom:55px}.position-bottom{top:55px}.position-bottom:before{transform:rotate(90deg);left:50%;top:-15px}.position-right:before{left:-6px;top:10px}.position-top:before{transform:rotate(270deg);left:50%;bottom:-15px}.position-left:before{transform:rotate(180deg);right:-9px}.color-picker-container:before{content:\"\";position:absolute;width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid var(--Neutral-White);z-index:1}.color-picker-container{width:280px;padding:var(--Size-4);background:var(--Neutral-White);border-radius:var(--Size-2);box-shadow:var(--Shadow-large);position:absolute;z-index:100;transform-origin:top left;opacity:0;transition:transform .2s ease-out,opacity .2s ease-out;pointer-events:none}.color-picker-container .main-color-canvas-container{position:relative;margin-bottom:var(--Size-4);border:1px solid var(--Gray-Gray-200);border-radius:var(--Size-1);display:flex;justify-self:center;align-items:center}.color-picker-container .main-color-canvas-container canvas{display:block;border-radius:var(--Size-1)}.color-picker-container .main-color-canvas-container .color-selector-pointer{position:absolute;width:var(--Size-3);height:var(--Size-3);border:2px solid var(--Neutral-White);border-radius:50%;transform:translate(-6px,-6px);pointer-events:none}.color-picker-container .slider-container{display:flex;flex-direction:column;gap:var(--Size-3)}.color-picker-container .slider-container .slider-group{display:flex;flex-direction:column;gap:var(--Size-1)}.color-picker-container .slider-container .slider-group label{font-size:var(--font-size-xs);color:var(--Gray-Gray-500);font-weight:700}.color-picker-container .slider-container .slider-group .hue-slider-container,.color-picker-container .slider-container .slider-group .opacity-slider-container{position:relative;height:var(--Size-3);border-radius:var(--Size-4);overflow:hidden}.color-picker-container .slider-container .slider-group .hue-slider-container canvas,.color-picker-container .slider-container .slider-group .opacity-slider-container canvas{display:block;width:100%;height:100%}.color-picker-container .slider-container .slider-group .hue-slider-container .slider-pointer,.color-picker-container .slider-container .slider-group .opacity-slider-container .slider-pointer{position:absolute;top:0;height:var(--Size-3);width:var(--Size-3);background:transparent;border:2px solid var(--Neutral-White);border-radius:50%;pointer-events:none}.color-picker-container.show{transform:scale(1);opacity:1;pointer-events:auto}.color-info .color-label{font-size:var(--font-size-xs);color:var(--Gray-Gray-500);font-weight:700;text-transform:uppercase;margin-bottom:var(--Size-2)}.color-info .color-input{border:1px solid #ddd;border-radius:var(--Size-1);padding:6px 8px;font-size:var(--font-size-s);width:100%;font-family:monospace;text-transform:uppercase}\n"] }]
292
+ }], propDecorators: { colorCanvas: [{
293
+ type: ViewChild,
294
+ args: ['colorCanvas']
295
+ }], hueCanvas: [{
296
+ type: ViewChild,
297
+ args: ['hueCanvas']
298
+ }], opacityCanvas: [{
299
+ type: ViewChild,
300
+ args: ['opacityCanvas']
301
+ }], colorPicker: [{
302
+ type: ViewChild,
303
+ args: ['colorPicker']
304
+ }], currentColor: [{
305
+ type: Input
306
+ }], position: [{
307
+ type: Input
308
+ }], colorChange: [{
309
+ type: Output
310
+ }], onMouseMove: [{
311
+ type: HostListener,
312
+ args: ['document:mousemove', ['$event']]
313
+ }], onMouseUp: [{
314
+ type: HostListener,
315
+ args: ['document:mouseup']
316
+ }], handleClickOutside: [{
317
+ type: HostListener,
318
+ args: ['document:click', ['$event']]
319
+ }] } });
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9jb2xvci1waWNrZXIvY29sb3ItcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUzdDLE1BQU0sT0FBTyxvQkFBb0I7SUFDRyxXQUFXLENBQWlDO0lBQzlDLFNBQVMsQ0FBaUM7SUFDdEMsYUFBYSxDQUFpQztJQUNoRCxXQUFXLENBQWM7SUFFM0Q7Ozs7OztPQU1HO0lBQ2EsWUFBWSxHQUFXLFNBQVMsQ0FBQztJQUNqRDs7Ozs7O09BTUc7SUFDYSxRQUFRLEdBQXdDLE9BQU8sQ0FBQztJQUN4RTs7OztPQUlHO0lBQ2MsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFbkQsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixHQUFHLEdBQVcsQ0FBQyxDQUFDO0lBQ2hCLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFDdkIsS0FBSyxHQUFXLENBQUMsQ0FBQztJQUNsQixPQUFPLEdBQVcsR0FBRyxDQUFDO0lBQ3JCLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUMvQixpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDcEMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUVqQyxlQUFlO1FB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QUFDO0lBRUQsUUFBUSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUztRQUN0QyxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ1QsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUVULE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNQLENBQUMsR0FBRyxDQUFDLEVBQ0wsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVSLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDckIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsQ0FBQzthQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDOUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsQ0FBQzthQUFNLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDL0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsQ0FBQzthQUFNLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDL0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNOLENBQUMsR0FB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QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jb2xvci1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JQaWNrZXJDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdjb2xvckNhbnZhcycpIHByaXZhdGUgY29sb3JDYW52YXMhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnaHVlQ2FudmFzJykgcHJpdmF0ZSBodWVDYW52YXMhOiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnb3BhY2l0eUNhbnZhcycpIHByaXZhdGUgb3BhY2l0eUNhbnZhcyE6IEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjb2xvclBpY2tlcicpIHByaXZhdGUgY29sb3JQaWNrZXIhOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBJbmRpY2EgZWwgY29sb3IgKGhleCkgcG9yIGRlZmVjdG8gcXVlIGRlYmUgbW9zdHJhcnNlLlxuICAgKlxuICAgKiBWYWxvciBwb3IgZGVmZWN0bzogYCNmZmZmZmZgLlxuICAgKlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGN1cnJlbnRDb2xvcjogc3RyaW5nID0gJyNmZmZmZmYnO1xuICAvKipcbiAgICogSW5kaWNhIGxhIHBvc2ljaW9uIGRlbCBzZWxlY3RvciBkZSBjb2xvciBkZW50cm8gZGVsIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIFZhbG9yIHBvciBkZWZlY3RvOiBgcmlnaHRgLlxuICAgKlxuICAgKiBAdHlwZSB7J2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbSd9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgcG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnID0gJ3JpZ2h0JztcbiAgLyoqXG4gICAqIEV2ZW50byBxdWUgZW1pdGUgZWwgY29sb3Igc2VsZWNjaW9uYWRvIGVuIGZvcm1hdG8gaGV4LlxuICAgKlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHN0cmluZz59XG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIGNvbG9yQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgcHVibGljIGNvbG9yOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIGh1ZTogbnVtYmVyID0gMDtcbiAgcHVibGljIHNhdHVyYXRpb246IG51bWJlciA9IDA7XG4gIHB1YmxpYyB2YWx1ZTogbnVtYmVyID0gMDtcbiAgcHVibGljIG9wYWNpdHk6IG51bWJlciA9IDEwMDtcbiAgcHJpdmF0ZSBpc0RyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgaXNIdWVEcmFnZ2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGlzT3BhY2l0eURyYWdnaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93RWRpdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmRyYXdIdWVDYW52YXMoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEcmFnZ2luZykge1xuICAgICAgdGhpcy51cGRhdGVDb2xvckZyb21Qb3NpdGlvbihldmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmlzSHVlRHJhZ2dpbmcpIHtcbiAgICAgIHRoaXMudXBkYXRlSHVlRnJvbVBvc2l0aW9uKGV2ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc09wYWNpdHlEcmFnZ2luZykge1xuICAgICAgdGhpcy51cGRhdGVPcGFjaXR5RnJvbVBvc2l0aW9uKGV2ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJylcbiAgb25Nb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNIdWVEcmFnZ2luZyA9IGZhbHNlO1xuICAgIHRoaXMuaXNPcGFjaXR5RHJhZ2dpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIGRyYXdDb2xvckNhbnZhcygpOiB2b2lkIHtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmNvbG9yQ2FudmFzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykhO1xuICAgIGNvbnN0IHdpZHRoID0gY2FudmFzLndpZHRoO1xuICAgIGNvbnN0IGhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7XG5cbiAgICAvLyBHcmFkaWVudGUgZGUgc2F0dXJhY2nDs24gKGVqZSBYKVxuICAgIGNvbnN0IHNhdHVyYXRpb25HcmFkaWVudCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCB3aWR0aCwgMCk7XG4gICAgc2F0dXJhdGlvbkdyYWRpZW50LmFkZENvbG9yU3RvcCgwLCAnI0ZGRkZGRicpO1xuICAgIHNhdHVyYXRpb25HcmFkaWVudC5hZGRDb2xvclN0b3AoMSwgYGhzbCgke3RoaXMuaHVlfSwgMTAwJSwgNTAlKWApO1xuXG4gICAgLy8gR3JhZGllbnRlIGRlIHZhbG9yIChlamUgWSlcbiAgICBjb25zdCB2YWx1ZUdyYWRpZW50ID0gY3R4LmNyZWF0ZUxpbmVhckdyYWRpZW50KDAsIDAsIDAsIGhlaWdodCk7XG4gICAgdmFsdWVHcmFkaWVudC5hZGRDb2xvclN0b3AoMCwgJ3JnYmEoMCwgMCwgMCwgMCknKTtcbiAgICB2YWx1ZUdyYWRpZW50LmFkZENvbG9yU3RvcCgxLCAnIzAwMDAwMCcpO1xuXG4gICAgY3R4LmZpbGxTdHlsZSA9IHNhdHVyYXRpb25HcmFkaWVudDtcbiAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7XG4gICAgY3R4LmZpbGxTdHlsZSA9IHZhbHVlR3JhZGllbnQ7XG4gICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBoYW5kbGVDbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gdGhpcy5jb2xvclBpY2tlcj8ubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpO1xuICAgIGlmICghY2xpY2tlZEluc2lkZSAmJiB0aGlzLnNob3dFZGl0KSB7XG4gICAgICB0aGlzLnNob3dFZGl0ID0gZmFsc2U7XG4gICAgICB0aGlzLmN1cnJlbnRDb2xvciA9IHRoaXMuY29sb3I7XG4gICAgICB0aGlzLmNvbG9yQ2hhbmdlLmVtaXQodGhpcy5jb2xvcik7XG4gICAgfVxuICB9XG5cbiAgZHJhd0h1ZUNhbnZhcygpOiB2b2lkIHtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmh1ZUNhbnZhcy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcbiAgICBjb25zdCB3aWR0aCA9IGNhbnZhcy53aWR0aDtcbiAgICBjb25zdCBoZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xuXG4gICAgY29uc3QgaHVlR3JhZGllbnQgPSBjdHguY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgd2lkdGgsIDApO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMzYwOyBpICs9IDYwKSB7XG4gICAgICBodWVHcmFkaWVudC5hZGRDb2xvclN0b3AoaSAvIDM2MCwgYGhzbCgke2l9LCAxMDAlLCA1MCUpYCk7XG4gICAgfVxuXG4gICAgY3R4LmZpbGxTdHlsZSA9IGh1ZUdyYWRpZW50O1xuXG4gICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xuICB9XG5cbiAgZHJhd09wYWNpdHlDYW52YXMoKTogdm9pZCB7XG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5vcGFjaXR5Q2FudmFzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykhO1xuICAgIGNvbnN0IHdpZHRoID0gY2FudmFzLndpZHRoO1xuICAgIGNvbnN0IGhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7XG5cbiAgICAvLyBMaW1waWFyIGVsIGNhbnZhc1xuICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7XG5cbiAgICBjdHguZmlsbFN0eWxlID0gJyNGRkZGRkYnO1xuICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTtcblxuICAgIC8vIE9idGVuZXIgZWwgY29sb3IgYWN0dWFsIHNpbiBvcGFjaWRhZFxuICAgIGNvbnN0IHJnYiA9IHRoaXMuaHN2VG9SZ2IodGhpcy5odWUsIHRoaXMuc2F0dXJhdGlvbiwgdGhpcy52YWx1ZSk7XG5cbiAgICAvLyBDcmVhciBncmFkaWVudGUgZGUgb3BhY2lkYWRcbiAgICBjb25zdCBvcGFjaXR5R3JhZGllbnQgPSBjdHguY3JlYXRlTGluZWFyR3JhZGllbnQoMCwgMCwgd2lkdGgsIDApO1xuICAgIG9wYWNpdHlHcmFkaWVudC5hZGRDb2xvclN0b3AoMCwgYHJnYmEoJHtyZ2Iucn0sICR7cmdiLmd9LCAke3JnYi5ifSwgMClgKTtcbiAgICBvcGFjaXR5R3JhZGllbnQuYWRkQ29sb3JTdG9wKDEsIGByZ2JhKCR7cmdiLnJ9LCAke3JnYi5nfSwgJHtyZ2IuYn0sIDEpYCk7XG5cbiAgICAvLyBEaWJ1amFyIGVsIGdyYWRpZW50ZVxuICAgIGN0eC5maWxsU3R5bGUgPSBvcGFjaXR5R3JhZGllbnQ7XG4gICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xuICB9XG5cbiAgdXBkYXRlQ29sb3IoKTogdm9pZCB7XG4gICAgLy8gQ29udmVydGlyIEhTViBhIFJHQlxuICAgIGNvbnN0IHJnYiA9IHRoaXMuaHN2VG9SZ2IodGhpcy5odWUsIHRoaXMuc2F0dXJhdGlvbiwgdGhpcy52YWx1ZSk7XG4gICAgY29uc3QgaGV4ID0gdGhpcy5yZ2JUb0hleChyZ2IuciwgcmdiLmcsIHJnYi5iLCB0aGlzLm9wYWNpdHkpO1xuICAgIC8vIENvbG9yIGEgZW1pdGlyXG4gICAgdGhpcy5jb2xvciA9IGhleDtcbiAgICAvLyBSZWRpYnVqYXIgbG9zIGNhbnZhc1xuICAgIHRoaXMuZHJhd0NvbG9yQ2FudmFzKCk7XG4gICAgdGhpcy5kcmF3T3BhY2l0eUNhbnZhcygpO1xuICB9XG5cbiAgaHN2VG9SZ2IoaDogbnVtYmVyLCBzOiBudW1iZXIsIHY6IG51bWJlcik6IHsgcjogbnVtYmVyOyBnOiBudW1iZXI7IGI6IG51bWJlciB9IHtcbiAgICBzIC89IDEwMDtcbiAgICB2IC89IDEwMDtcblxuICAgIGNvbnN0IGMgPSB2ICogcztcbiAgICBjb25zdCB4ID0gYyAqICgxIC0gTWF0aC5hYnMoKChoIC8gNjApICUgMikgLSAxKSk7XG4gICAgY29uc3QgbSA9IHYgLSBjO1xuXG4gICAgbGV0IHIgPSAwLFxuICAgICAgZyA9IDAsXG4gICAgICBiID0gMDtcblxuICAgIGlmIChoID49IDAgJiYgaCA8IDYwKSB7XG4gICAgICByID0gYztcbiAgICAgIGcgPSB4O1xuICAgICAgYiA9IDA7XG4gICAgfSBlbHNlIGlmIChoID49IDYwICYmIGggPCAxMjApIHtcbiAgICAgIHIgPSB4O1xuICAgICAgZyA9IGM7XG4gICAgICBiID0gMDtcbiAgICB9IGVsc2UgaWYgKGggPj0gMTIwICYmIGggPCAxODApIHtcbiAgICAgIHIgPSAwO1xuICAgICAgZyA9IGM7XG4gICAgICBiID0geDtcbiAgICB9IGVsc2UgaWYgKGggPj0gMTgwICYmIGggPCAyNDApIHtcbiAgICAgIHIgPSAwO1xuICAgICAgZyA9IHg7XG4gICAgICBiID0gYztcbiAgICB9IGVsc2UgaWYgKGggPj0gMjQwICYmIGggPCAzMDApIHtcbiAgICAgIHIgPSB4O1xuICAgICAgZyA9IDA7XG4gICAgICBiID0gYztcbiAgICB9IGVsc2UgaWYgKGggPj0gMzAwICYmIGggPCAzNjEpIHtcbiAgICAgIHIgPSBjO1xuICAgICAgZyA9IDA7XG4gICAgICBiID0geDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcjogTWF0aC5yb3VuZCgociArIG0pICogMjU1KSxcbiAgICAgIGc6IE1hdGgucm91bmQoKGcgKyBtKSAqIDI1NSksXG4gICAgICBiOiBNYXRoLnJvdW5kKChiICsgbSkgKiAyNTUpLFxuICAgIH07XG4gIH1cblxuICByZ2JUb0hleChyZWQ6IG51bWJlciwgZ3JlZW46IG51bWJlciwgYmxhY2s6IG51bWJlciwgb3BhY2l0eSA9IDEpIHtcbiAgICBjb25zdCB0b0hleCA9ICh2YWwpID0+IHtcbiAgICAgIGNvbnN0IGhleCA9IE1hdGgucm91bmQodmFsKS50b1N0cmluZygxNik7XG4gICAgICByZXR1cm4gaGV4LnBhZFN0YXJ0KDIsICcwJyk7XG4gICAgfTtcblxuICAgIGNvbnN0IHJIZXggPSB0b0hleChyZWQpO1xuICAgIGNvbnN0IGdIZXggPSB0b0hleChncmVlbik7XG4gICAgY29uc3QgYkhleCA9IHRvSGV4KGJsYWNrKTtcbiAgICBjb25zdCBhbHBoYSA9IE1hdGgucm91bmQoKG9wYWNpdHkgLyAxMDApICogMjU1KTtcbiAgICBjb25zdCBhSGV4ID0gdG9IZXgoYWxwaGEpO1xuXG4gICAgcmV0dXJuIGAjJHtySGV4fSR7Z0hleH0ke2JIZXh9JHthSGV4fWA7XG4gIH1cblxuICBvbkhleElucHV0Q2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICgvXiM/WzAtOUEtRl17Nn0oWzAtOUEtRl17Mn0pPyQvaS50ZXN0KHRoaXMuY29sb3IpKSB7XG4gICAgICBpZiAoIXRoaXMuY29sb3Iuc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICAgIHRoaXMuY29sb3IgPSAnIycgKyB0aGlzLmNvbG9yO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBoZXggPSB0aGlzLmNvbG9yLnN1YnN0cmluZygxKTtcbiAgICAgIGNvbnN0IHIgPSBwYXJzZUludChoZXguc3Vic3RyaW5nKDAsIDIpLCAxNik7XG4gICAgICBjb25zdCBnID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygyLCA0KSwgMTYpO1xuICAgICAgY29uc3QgYiA9IHBhcnNlSW50KGhleC5zdWJzdHJpbmcoNCwgNiksIDE2KTtcbiAgICAgIGNvbnN0IGEgPSBoZXgubGVuZ3RoID09PSA4ID8gcGFyc2VJbnQoaGV4LnN1YnN0cmluZyg2LCA4KSwgMTYpIC8gMjU1IDogMTtcblxuICAgICAgY29uc3QgaHN2ID0gdGhpcy5yZ2JUb0hzdihyLCBnLCBiLCBhKTtcbiAgICAgIHRoaXMuaHVlID0gaHN2Lmg7XG4gICAgICB0aGlzLnNhdHVyYXRpb24gPSBoc3YucztcbiAgICAgIHRoaXMudmFsdWUgPSBoc3YudjtcbiAgICAgIHRoaXMub3BhY2l0eSA9IGEgKiAxMDA7XG5cbiAgICAgIHRoaXMuZHJhd0NvbG9yQ2FudmFzKCk7XG4gICAgICB0aGlzLmRyYXdPcGFjaXR5Q2FudmFzKCk7XG4gICAgfVxuICB9XG5cbiAgcmdiVG9Ic3YoXG4gICAgcjogbnVtYmVyLFxuICAgIGc6IG51bWJlcixcbiAgICBiOiBudW1iZXIsXG4gICAgYTogbnVtYmVyID0gMSxcbiAgKTogeyBoOiBudW1iZXI7IHM6IG51bWJlcjsgdjogbnVtYmVyOyBhOiBudW1iZXIgfSB7XG4gICAgciAvPSAyNTU7XG4gICAgZyAvPSAyNTU7XG4gICAgYiAvPSAyNTU7XG5cbiAgICBjb25zdCBtYXggPSBNYXRoLm1heChyLCBnLCBiKTtcbiAgICBjb25zdCBtaW4gPSBNYXRoLm1pbihyLCBnLCBiKTtcbiAgICBjb25zdCBkZWx0YSA9IG1heCAtIG1pbjtcblxuICAgIGxldCBoID0gMDtcbiAgICBpZiAoZGVsdGEgIT09IDApIHtcbiAgICAgIGlmIChtYXggPT09IHIpIGggPSA2MCAqICgoKGcgLSBiKSAvIGRlbHRhKSAlIDYpO1xuICAgICAgZWxzZSBpZiAobWF4ID09PSBnKSBoID0gNjAgKiAoKGIgLSByKSAvIGRlbHRhICsgMik7XG4gICAgICBlbHNlIGlmIChtYXggPT09IGIpIGggPSA2MCAqICgociAtIGcpIC8gZGVsdGEgKyA0KTtcbiAgICB9XG5cbiAgICBpZiAoaCA8IDApIGggKz0gMzYwO1xuXG4gICAgY29uc3QgcyA9IG1heCA9PT0gMCA/IDAgOiAoZGVsdGEgLyBtYXgpICogMTAwO1xuICAgIGNvbnN0IHYgPSBtYXggKiAxMDA7XG5cbiAgICByZXR1cm4ge1xuICAgICAgaDogTWF0aC5yb3VuZChoKSxcbiAgICAgIHM6IE1hdGgucm91bmQocyksXG4gICAgICB2OiBNYXRoLnJvdW5kKHYpLFxuICAgICAgYTogcGFyc2VGbG9hdChhLnRvRml4ZWQoMykpLFxuICAgIH07XG4gIH1cblxuICBnZXRDYW52YXNQb3NpdGlvbihjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50LCBldmVudDogTW91c2VFdmVudCk6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB7XG4gICAgY29uc3QgcmVjdCA9IGNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBzY2FsZVggPSBjYW52YXMud2lkdGggLyByZWN0LndpZHRoO1xuICAgIGNvbnN0IHNjYWxlWSA9IGNhbnZhcy5oZWlnaHQgLyByZWN0LmhlaWdodDtcblxuICAgIHJldHVybiB7XG4gICAgICB4OiAoZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdCkgKiBzY2FsZVgsXG4gICAgICB5OiAoZXZlbnQuY2xpZW50WSAtIHJlY3QudG9wKSAqIHNjYWxlWSxcbiAgICB9O1xuICB9XG5cbiAgb25Db2xvck1vdXNlRG93bihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVDb2xvckZyb21Qb3NpdGlvbihldmVudCk7XG4gIH1cblxuICBvbkh1ZU1vdXNlRG93bihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXNIdWVEcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVIdWVGcm9tUG9zaXRpb24oZXZlbnQpO1xuICB9XG5cbiAgb25PcGFjaXR5TW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pc09wYWNpdHlEcmFnZ2luZyA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVPcGFjaXR5RnJvbVBvc2l0aW9uKGV2ZW50KTtcbiAgfVxuXG4gIHVwZGF0ZUNvbG9yRnJvbVBvc2l0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5jb2xvckNhbnZhcy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q2FudmFzUG9zaXRpb24oY2FudmFzLCBldmVudCk7XG5cbiAgICAvLyBDb29yZGVuYWRhcyBkZW50cm8gZGUgY2FudmFzXG4gICAgY29uc3QgeCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHBvcy54LCBjYW52YXMud2lkdGgpKTtcbiAgICBjb25zdCB5ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4ocG9zLnksIGNhbnZhcy5oZWlnaHQpKTtcblxuICAgIHRoaXMuc2F0dXJhdGlvbiA9IE1hdGgucm91bmQoKHggLyBjYW52YXMud2lkdGgpICogMTAwKTtcbiAgICB0aGlzLnZhbHVlID0gMTAwIC0gTWF0aC5yb3VuZCgoeSAvIGNhbnZhcy5oZWlnaHQpICogMTAwKTtcbiAgICB0aGlzLnVwZGF0ZUNvbG9yKCk7XG4gIH1cblxuICB1cGRhdGVIdWVGcm9tUG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmh1ZUNhbnZhcy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHBvcyA9IHRoaXMuZ2V0Q2FudmFzUG9zaXRpb24oY2FudmFzLCBldmVudCk7XG4gICAgY29uc3QgeCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHBvcy54LCBjYW52YXMud2lkdGgpKTtcbiAgICB0aGlzLmh1ZSA9IE1hdGgucm91bmQoKHggLyBjYW52YXMud2lkdGgpICogMzYwKTtcbiAgICB0aGlzLmRyYXdDb2xvckNhbnZhcygpO1xuICAgIHRoaXMudXBkYXRlQ29sb3IoKTtcbiAgfVxuXG4gIHVwZGF0ZU9wYWNpdHlGcm9tUG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLm9wYWNpdHlDYW52YXMubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBwb3MgPSB0aGlzLmdldENhbnZhc1Bvc2l0aW9uKGNhbnZhcywgZXZlbnQpO1xuICAgIGNvbnN0IHggPSBNYXRoLm1heCgwLCBNYXRoLm1pbihwb3MueCwgY2FudmFzLndpZHRoKSk7XG5cbiAgICB0aGlzLm9wYWNpdHkgPSBNYXRoLnJvdW5kKCh4IC8gY2FudmFzLndpZHRoKSAqIDEwMCk7XG4gICAgdGhpcy51cGRhdGVDb2xvcigpO1xuICB9XG5cbiAgc2hvd0VkaXRvcigpIHtcbiAgICB0aGlzLnNob3dFZGl0ID0gIXRoaXMuc2hvd0VkaXQ7XG4gICAgdGhpcy5jb2xvciA9IHRoaXMuY3VycmVudENvbG9yO1xuICAgIGlmICghdGhpcy5zaG93RWRpdCkgcmV0dXJuO1xuICAgIHRoaXMub25IZXhJbnB1dENoYW5nZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ2VuZXJhbC1jb250YWluZXJcIiAjY29sb3JQaWNrZXI+XG4gIDxkaXYgY2xhc3M9XCJtYWluLWlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5XCIgKGNsaWNrKT1cInNob3dFZGl0b3IoKVwiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJsaW5lLWNvbG9yLXByZXZpZXdcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1wcmV2aWV3XCIgW3N0eWxlLmJhY2tncm91bmRdPVwiY3VycmVudENvbG9yXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbG9yLWluZm9cIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY29sb3ItaW5wdXRcIiBbbmdNb2RlbF09XCJjdXJyZW50Q29sb3JcIiBtYXhsZW5ndGg9XCI5XCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbG9yLXBpY2tlci1jb250YWluZXIgcG9zaXRpb24te3twb3NpdGlvbn19XCIgW25nQ2xhc3NdPVwieyBzaG93OiBzaG93RWRpdCB9XCI+XG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29sb3ItY2FudmFzLWNvbnRhaW5lclwiPlxuICAgICAgPGNhbnZhcyAjY29sb3JDYW52YXMgd2lkdGg9XCIyNTZcIiBoZWlnaHQ9XCIxNTBcIiAobW91c2Vkb3duKT1cIm9uQ29sb3JNb3VzZURvd24oJGV2ZW50KVwiPjwvY2FudmFzPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNvbG9yLXNlbGVjdG9yLXBvaW50ZXJcIlxuICAgICAgICBbc3R5bGUubGVmdF09XCIoc2F0dXJhdGlvbiAvIDEwMCkgKiAyNTYgKyAncHgnXCJcbiAgICAgICAgW3N0eWxlLnRvcF09XCIoKDEwMCAtIHZhbHVlKSAvIDEwMCkgKiAxNTAgKyAncHgnXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJzbGlkZXItY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2xpZGVyLWdyb3VwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJodWUtc2xpZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxjYW52YXMgI2h1ZUNhbnZhcyB3aWR0aD1cIjI1NlwiIGhlaWdodD1cIjIwXCIgKG1vdXNlZG93bik9XCJvbkh1ZU1vdXNlRG93bigkZXZlbnQpXCI+PC9jYW52YXM+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNsaWRlci1wb2ludGVyXCIgW3N0eWxlLmxlZnRdPVwiKGh1ZSAvIDM2MCkgKiAyMzQgKyAncHgnXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZXItZ3JvdXBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wYWNpdHktc2xpZGVyLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxjYW52YXNcbiAgICAgICAgICAgICNvcGFjaXR5Q2FudmFzXG4gICAgICAgICAgICB3aWR0aD1cIjI1NlwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIyMFwiXG4gICAgICAgICAgICAobW91c2Vkb3duKT1cIm9uT3BhY2l0eU1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgICAgICA+PC9jYW52YXM+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNsaWRlci1wb2ludGVyXCIgW3N0eWxlLmxlZnRdPVwiKG9wYWNpdHkgLyAxMDApICogMjM0ICsgJ3B4J1wiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItaW5mb1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItbGFiZWxcIj5IRVg8L2Rpdj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIGNsYXNzPVwiY29sb3ItaW5wdXRcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiY29sb3JcIlxuICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSGV4SW5wdXRDaGFuZ2UoKVwiXG4gICAgICAgICAgbWF4bGVuZ3RoPVwiOVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,27 @@
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 "@ng-bootstrap/ng-bootstrap";
5
+ import * as i2 from "@ngx-translate/core";
6
+ export class ConfirmDialogComponent {
7
+ dialogRef;
8
+ data = {
9
+ message: '',
10
+ show: true
11
+ };
12
+ constructor(dialogRef) {
13
+ this.dialogRef = dialogRef;
14
+ }
15
+ close(type) {
16
+ this.dialogRef.close({ type: type });
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ConfirmDialogComponent, isStandalone: true, selector: "app-confirm-dialog", inputs: { data: "data" }, ngImport: i0, template: "<div class=\"wrapper text-center\">\n <div class=\"header text-center\">\n <!-- <mat-icon class=\"notranslate warn-500-fg s-64\">error_outline</mat-icon> -->\n <img\n src=\"../../../assets/img/theme/interrogation.png\"\n class=\"md-avatar\"\n style=\"width: 90px; height: 90px; border-radius: 100%\"\n />\n </div>\n <div mat-dialog-content>{{ data.message }}</div>\n <div class=\"actions\">\n <button class=\"btn btn-primary\" (click)=\"close('yes')\">{{ 'Yes' | translate }}</button>\n <button class=\"btn btn-secondary\" (click)=\"close('no')\">{{ 'No' | translate }}</button>\n </div>\n <!-- <div mat-dialog-actions class=\"pt-24\" class=\"d-flex justify-content-center\">\n <button mat-raised-button class=\"mat-accent mr-16\" (click)=\"close('yes')\">\n {{ 'Yes' | translate }}\n </button>\n <button mat-raised-button class=\"mat-accent mr-16\" (click)=\"close('no')\">\n {{ 'No' | translate }}\n </button>\n <button mat-raised-button class=\"mat-accent mr-16\" (click)=\"close('cancel')\" *ngIf=\"data.show\">\n {{ 'Cancel' | translate }}\n </button>\n </div> -->\n</div>\n", styles: [".wrapper{padding:20px;overflow:hidden!important;height:25%}.icono{font-size:60px!important}.mat-icon{background-repeat:no-repeat!important;display:inline-block!important;fill:currentColor!important;height:50px!important;width:40px!important}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{background-color:#198cf0}.actions{display:flex;gap:10px;width:100%;margin-top:1.5rem}button{flex:1;outline:none;border-radius:8px;display:flex;align-items:center;gap:8px;justify-content:center}button.btn-primary{background:var(--Primary-Naranja, #ff9333);border:navajowhite;height:40px;padding:8px 20px 8px 16px;font-weight:600}button.btn-secondary{background:#fff;color:var(--Primary-Naranja, #ff9333);border:1px solid;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'app-confirm-dialog', standalone: true, imports: [TranslateModule], template: "<div class=\"wrapper text-center\">\n <div class=\"header text-center\">\n <!-- <mat-icon class=\"notranslate warn-500-fg s-64\">error_outline</mat-icon> -->\n <img\n src=\"../../../assets/img/theme/interrogation.png\"\n class=\"md-avatar\"\n style=\"width: 90px; height: 90px; border-radius: 100%\"\n />\n </div>\n <div mat-dialog-content>{{ data.message }}</div>\n <div class=\"actions\">\n <button class=\"btn btn-primary\" (click)=\"close('yes')\">{{ 'Yes' | translate }}</button>\n <button class=\"btn btn-secondary\" (click)=\"close('no')\">{{ 'No' | translate }}</button>\n </div>\n <!-- <div mat-dialog-actions class=\"pt-24\" class=\"d-flex justify-content-center\">\n <button mat-raised-button class=\"mat-accent mr-16\" (click)=\"close('yes')\">\n {{ 'Yes' | translate }}\n </button>\n <button mat-raised-button class=\"mat-accent mr-16\" (click)=\"close('no')\">\n {{ 'No' | translate }}\n </button>\n <button mat-raised-button class=\"mat-accent mr-16\" (click)=\"close('cancel')\" *ngIf=\"data.show\">\n {{ 'Cancel' | translate }}\n </button>\n </div> -->\n</div>\n", styles: [".wrapper{padding:20px;overflow:hidden!important;height:25%}.icono{font-size:60px!important}.mat-icon{background-repeat:no-repeat!important;display:inline-block!important;fill:currentColor!important;height:50px!important;width:40px!important}.mat-flat-button.mat-accent,.mat-raised-button.mat-accent,.mat-fab.mat-accent,.mat-mini-fab.mat-accent{background-color:#198cf0}.actions{display:flex;gap:10px;width:100%;margin-top:1.5rem}button{flex:1;outline:none;border-radius:8px;display:flex;align-items:center;gap:8px;justify-content:center}button.btn-primary{background:var(--Primary-Naranja, #ff9333);border:navajowhite;height:40px;padding:8px 20px 8px 16px;font-weight:600}button.btn-secondary{background:#fff;color:var(--Primary-Naranja, #ff9333);border:1px solid;font-weight:500}\n"] }]
24
+ }], ctorParameters: () => [{ type: i1.NgbActiveModal }], propDecorators: { data: [{
25
+ type: Input
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMtc291cmNlL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFTdEQsTUFBTSxPQUFPLHNCQUFzQjtJQUtkO0lBSkgsSUFBSSxHQUFRO1FBQzFCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsSUFBSSxFQUFFLElBQUk7S0FDWCxDQUFDO0lBQ0YsWUFBbUIsU0FBeUI7UUFBekIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7SUFBRyxDQUFDO0lBRWhELEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO3dHQVRVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLHdHQ1huQywrbkNBMEJBLHUwQkRqQmMsZUFBZTs7NEZBRWhCLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDSSxvQkFBb0IsY0FHbEIsSUFBSSxXQUNQLENBQUMsZUFBZSxDQUFDO21GQUdaLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWNvbmZpcm0tZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb25maXJtLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlybURpYWxvZ0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRhOiBhbnkgPSB7XG4gICAgbWVzc2FnZTogJycsXG4gICAgc2hvdzogdHJ1ZVxuICB9O1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBOZ2JBY3RpdmVNb2RhbCkge31cblxuICBjbG9zZSh0eXBlKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyB0eXBlOiB0eXBlIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid3JhcHBlciB0ZXh0LWNlbnRlclwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyIHRleHQtY2VudGVyXCI+XG4gICAgPCEtLSA8bWF0LWljb24gY2xhc3M9XCJub3RyYW5zbGF0ZSB3YXJuLTUwMC1mZyBzLTY0XCI+ZXJyb3Jfb3V0bGluZTwvbWF0LWljb24+IC0tPlxuICAgIDxpbWdcbiAgICAgIHNyYz1cIi4uLy4uLy4uL2Fzc2V0cy9pbWcvdGhlbWUvaW50ZXJyb2dhdGlvbi5wbmdcIlxuICAgICAgY2xhc3M9XCJtZC1hdmF0YXJcIlxuICAgICAgc3R5bGU9XCJ3aWR0aDogOTBweDsgaGVpZ2h0OiA5MHB4OyBib3JkZXItcmFkaXVzOiAxMDAlXCJcbiAgICAvPlxuICA8L2Rpdj5cbiAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+e3sgZGF0YS5tZXNzYWdlIH19PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJjbG9zZSgneWVzJylcIj57eyAnWWVzJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIChjbGljayk9XCJjbG9zZSgnbm8nKVwiPnt7ICdObycgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDwhLS0gPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJwdC0yNFwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNsYXNzPVwibWF0LWFjY2VudCBtci0xNlwiIChjbGljayk9XCJjbG9zZSgneWVzJylcIj5cbiAgICAgIHt7ICdZZXMnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjbGFzcz1cIm1hdC1hY2NlbnQgbXItMTZcIiAoY2xpY2spPVwiY2xvc2UoJ25vJylcIj5cbiAgICAgIHt7ICdObycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNsYXNzPVwibWF0LWFjY2VudCBtci0xNlwiIChjbGljayk9XCJjbG9zZSgnY2FuY2VsJylcIiAqbmdJZj1cImRhdGEuc2hvd1wiPlxuICAgICAge3sgJ0NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+IC0tPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,27 @@
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 CountryFlagsComponent {
6
+ country = "";
7
+ width = 24;
8
+ height = 24;
9
+ style = "rectangle";
10
+ countries = [];
11
+ ngOnInit() { }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryFlagsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CountryFlagsComponent, isStandalone: true, selector: "app-country-flags", inputs: { country: "country", width: "width", height: "height", style: "style" }, ngImport: i0, template: "<figure [class]=\"'flag ' + style\">\n <img\n [src]=\"'https://flagsapi.com/' + country + '/flat/64.png'\"\n [ngStyle]=\"{\n width: width ? width + 'px' : null,\n height: height ? height + 'px' : null\n }\"\n alt=\"flag\"\n />\n</figure>\n", styles: [".flag{max-width:40px;max-height:40px;margin:0;display:flex;align-items:center;justify-content:center}.flag img{width:100%;height:100%;object-fit:none}::ng-deep .circle{border-radius:50%;overflow:hidden}::ng-deep .rectangle{border-radius:8px;overflow:hidden;max-width:32px!important;max-height:24px!important}::ng-deep .rectangle img{object-fit:cover!important}.flag img:not([style*=width]):not([style*=height]){width:100%;height:100%;object-fit:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CountryFlagsComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: "app-country-flags", standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<figure [class]=\"'flag ' + style\">\n <img\n [src]=\"'https://flagsapi.com/' + country + '/flat/64.png'\"\n [ngStyle]=\"{\n width: width ? width + 'px' : null,\n height: height ? height + 'px' : null\n }\"\n alt=\"flag\"\n />\n</figure>\n", styles: [".flag{max-width:40px;max-height:40px;margin:0;display:flex;align-items:center;justify-content:center}.flag img{width:100%;height:100%;object-fit:none}::ng-deep .circle{border-radius:50%;overflow:hidden}::ng-deep .rectangle{border-radius:8px;overflow:hidden;max-width:32px!important;max-height:24px!important}::ng-deep .rectangle img{object-fit:cover!important}.flag img:not([style*=width]):not([style*=height]){width:100%;height:100%;object-fit:none}\n"] }]
18
+ }], propDecorators: { country: [{
19
+ type: Input
20
+ }], width: [{
21
+ type: Input
22
+ }], height: [{
23
+ type: Input
24
+ }], style: [{
25
+ type: Input
26
+ }] } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1mbGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy1zb3VyY2UvY291bnRyeS1mbGFncy9jb3VudHJ5LWZsYWdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9jb3VudHJ5LWZsYWdzL2NvdW50cnktZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsc0JBQXNCLEdBQ3ZCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBVS9DLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFDcEIsS0FBSyxHQUFXLFdBQVcsQ0FBQztJQUVyQyxTQUFTLEdBQVUsRUFBRSxDQUFDO0lBRTdCLFFBQVEsS0FBVSxDQUFDO3dHQVJSLHFCQUFxQjs0RkFBckIscUJBQXFCLCtKQ2hCbEMseVFBVUEsNmZEQ1ksWUFBWTs7NEZBS1gscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsV0FDZCxDQUFDLHNCQUFzQixDQUFDOzhCQUtqQixPQUFPO3NCQUF0QixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXBwLWNvdW50cnktZmxhZ3NcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9jb3VudHJ5LWZsYWdzLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9jb3VudHJ5LWZsYWdzLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3VudHJ5RmxhZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgY291bnRyeTogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgcHVibGljIHdpZHRoOiBudW1iZXIgPSAyNDtcbiAgQElucHV0KCkgcHVibGljIGhlaWdodDogbnVtYmVyID0gMjQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdHlsZTogc3RyaW5nID0gXCJyZWN0YW5nbGVcIjtcblxuICBwdWJsaWMgY291bnRyaWVzOiBhbnlbXSA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiIsIjxmaWd1cmUgW2NsYXNzXT1cIidmbGFnICcgKyBzdHlsZVwiPlxuICA8aW1nXG4gICAgW3NyY109XCInaHR0cHM6Ly9mbGFnc2FwaS5jb20vJyArIGNvdW50cnkgKyAnL2ZsYXQvNjQucG5nJ1wiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgd2lkdGg6IHdpZHRoID8gd2lkdGggKyAncHgnIDogbnVsbCxcbiAgICAgIGhlaWdodDogaGVpZ2h0ID8gaGVpZ2h0ICsgJ3B4JyA6IG51bGxcbiAgICB9XCJcbiAgICBhbHQ9XCJmbGFnXCJcbiAgLz5cbjwvZmlndXJlPlxuIl19
@@ -0,0 +1,73 @@
1
+ import { Component, Input, Output, EventEmitter, CUSTOM_ELEMENTS_SCHEMA, } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { FormsModule, 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
+ export class DatePickerComponent {
9
+ label = null;
10
+ required = false;
11
+ selectedDate = new Date();
12
+ minDate;
13
+ maxDate;
14
+ showIcon = false;
15
+ showTime = false;
16
+ loading = false;
17
+ isInvalid = false;
18
+ placeholder = "DD/MM/YYYY";
19
+ disabled = false;
20
+ selectionMode = "single";
21
+ setRight = false;
22
+ filters = [];
23
+ onChangeDate = new EventEmitter();
24
+ onClosePanel = new EventEmitter();
25
+ constructor() { }
26
+ ngOnInit() { }
27
+ onSelect(event) {
28
+ this.onChangeDate.emit(event);
29
+ }
30
+ onClose(event) {
31
+ this.onClosePanel.emit(event);
32
+ }
33
+ onCalendarOpen(event) { }
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DatePickerComponent, isStandalone: true, selector: "app-date-picker", inputs: { label: "label", required: "required", selectedDate: "selectedDate", minDate: "minDate", maxDate: "maxDate", showIcon: "showIcon", showTime: "showTime", loading: "loading", isInvalid: "isInvalid", placeholder: "placeholder", disabled: "disabled", selectionMode: "selectionMode", setRight: "setRight", filters: "filters" }, outputs: { onChangeDate: "onChangeDate", onClosePanel: "onClosePanel" }, ngImport: i0, template: "<div [ngClass]=\"setRight ? '' : 'calendar-left'\" class=\"date-picker-range\" *ngIf=\"!loading\">\n <div class=\"label\" *ngIf=\"label\">{{ label }}</div>\n <p-calendar\n class=\"date-picker-input dropi-date-picker\"\n [ngClass]=\"{ 'date-picker-input--open': loading }\"\n [ngClass]=\"{ 'date-is-invalid': isInvalid }\"\n [required]=\"required\"\n [(ngModel)]=\"selectedDate\"\n [selectionMode]=\"selectionMode\"\n [readonlyInput]=\"true\"\n dateFormat=\"dd/mm/yy\"\n [placeholder]=\"placeholder\"\n [style]=\"{ width: '100%' }\"\n inputId=\"date-range\"\n (onSelect)=\"onSelect($event)\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n showOtherMonths=\"false\"\n responsiveOptions=\"true\"\n [disabled]=\"loading || disabled\"\n (onClose)=\"onClose($event)\"\n [showIcon]=\"showIcon\"\n [showTime]=\"showTime\"\n (onShow)=\"onCalendarOpen($event)\"\n >\n <ng-template pTemplate=\"triggericon\" let-clickCallBack=\"clickCallBack\">\n <app-icon name=\"Calendar\" width=\"18px\" height=\"18px\" color=\"Gray-Gray-400\" />\n <!-- <i class=\"pi pi-user pointer-events-none\" (click)=\"clickCallBack($event)\"></i> -->\n </ng-template>\n </p-calendar>\n\n <div class=\"loading\" *ngIf=\"loading\">\n <div class=\"skeleton dp\"></div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.calendar-left ::ng-deep .p-datepicker{right:0!important;left:unset!important}.date-picker-range{background:var(--White, #fff);width:100%}.date-picker-range span{background:var(--White, #fff)}.date-picker-range h3{margin-bottom:.5rem;font-size:1rem;font-weight:500}.date-picker-range .label{font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:18px;text-align:left;color:var(--Gray-600);margin-bottom:8px}.date-picker-range ::ng-deep .p-calendar{padding:0 5px;width:100%;border-radius:var(--Border-2, 8px);background:var(--White, #fff);border:1px solid var(--Gray-Gray-200);height:40px;color:var(--Gray-500, #69738c);font-style:normal;font-weight:400;line-height:150%;text-overflow:ellipsis;font-size:14px;display:flex;flex-direction:row-reverse;align-items:center;cursor:pointer}.date-picker-range ::ng-deep .p-calendar .p-inputtext{width:100%;border:none;padding:0;cursor:pointer}.date-picker-range ::ng-deep .p-calendar.p-calendar-disabled{border:1px solid var(--Gray-200, #c3c9d9)!important;color:var(--Gray-400, #858ea6)!important;background:var(--Gray-50, #f7f8fa)!important}.date-picker-range ::ng-deep .p-calendar.p-calendar-disabled .p-inputtext{background:var(--Gray-50, #f7f8fa)!important;color:var(--Gray-400, #858ea6)}.date-picker-range ::ng-deep .p-datepicker table td>span.p-highlight{color:#f49a3d;background:#fef5ec}.date-picker-range ::ng-deep .p-datepicker table td.p-datepicker-today>span{color:var(--White, #fff);background-color:var(--Primary-Primary-500)}.date-picker-range ::ng-deep .custom-header{display:flex;flex-direction:column;border-left:1px solid #dde5eb;padding:10px}.date-picker-range ::ng-deep .custom-header .p-button{margin-bottom:.5rem;justify-content:flex-start;color:#1f2937;padding:4px 6px}.date-picker-range ::ng-deep .custom-header .p-button span.p-button-label{font-family:Inter,sans-serif;font-size:13px;font-weight:400;line-height:14px;text-align:left;min-width:max-content}.date-picker-range ::ng-deep .custom-header .active{background:#f5f6f8;border-radius:5px}.date-picker-range ::ng-deep .custom-header .active span{font-weight:600!important}.date-picker-range ::ng-deep .p-datepicker:has(>*:nth-child(3)){display:flex!important;flex-direction:column!important}.date-picker-range ::ng-deep .p-datepicker:has(>*:nth-child(3)) .custom-header{display:none}.date-picker-range ::ng-deep .p-datepicker{display:flex;gap:10px;flex-direction:column;padding:0;width:280px;right:unset!important;z-index:9999!important}.date-picker-range ::ng-deep .p-element span{color:var(--Gray-Gray-600);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);line-height:var(--lineheight-large)}.date-picker-range ::ng-deep .p-datepicker-other-month{color:var(--Gray-Gray-400)}.date-picker-range ::ng-deep .p-button.p-button-icon-only{background-color:transparent;border:none;width:40px;height:40px}::ng-deep .date-picker-input--open .p-datepicker{display:none!important}::ng-deep .p-datepicker table td{padding:2px!important;font-size:14px!important}::ng-deep .p-datepicker table td>span{width:34px;height:34px}::ng-deep .p-datepicker-calendar th{color:var(--Gray-Gray-600);font-size:var(--font-size-s);font-weight:var(--font-weight-bold);line-height:var(--lineheight-simple);text-align:center}::ng-deep .p-datepicker-header{padding:var(--Size-3) var(--Size-5)}::ng-deep .p-datepicker-next,::ng-deep .p-datepicker-prev{color:var(--Gray-Gray-400)!important}::ng-deep .p-datepicker-next:hover,::ng-deep .p-datepicker-prev:hover{border-radius:50%}::ng-deep .p-datepicker-group-container{padding:var(--Size-4, 16px)}::ng-deep .p-icon-wrapper{width:12px!important;color:#a0a8b8}::ng-deep span.p-disabled{color:#9fb4c3;font-weight:200}::ng-deep .p-datepicker-title{font-size:14px!important}::ng-deep .p-datepicker-title button{color:var(--Gray-400, #858ea6);font-size:14px;font-style:normal;font-weight:700!important;line-height:110%}::ng-deep .ng-invalid.ng-touched>.p-calendar,::ng-deep .date-is-invalid>.p-calendar{border:1px solid var(--Dager-danger-500, #f46a6b)!important}.dp{height:40px;width:100%;min-width:180px;margin-top:18px}.custom-filters{background:#fff;padding:var(--Size-3) var(--Size-3) var(--Size-3) var(--Size-4);border-radius:6px;box-shadow:4px 3px 13px -6px #0000002e;-webkit-box-shadow:4px 3px 13px -6px rgba(0,0,0,.18);-moz-box-shadow:4px 3px 13px -6px rgba(0,0,0,.18);width:max-content!important;display:flex;width:100%;flex:0 0 auto;height:100%}.custom-filters .filtros{flex-direction:column;gap:4px;display:flex}.custom-filters .filtros .title-header{padding:var(--Size-2)}.custom-filters .filtros button{border:none;background:transparent;font-weight:500;color:var(--Gray-Gray-600);transition:box-shadow .2s ease;border:1px solid transparent;border-radius:var(--Size-2);padding:var(--Size-2)}.custom-filters .filtros button:hover{border:1px solid var(--Secondary-Secondary-500);border-radius:var(--Size-2)}::ng-deep .dropi-date-picker .p-datepicker .custom-filters{display:flex;background:#fff;padding:var(--Size-3) var(--Size-3) var(--Size-3) var(--Size-4);border-radius:6px;min-width:max-content;width:max-content;height:100%;flex:0 0 auto;flex-direction:column}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filtros{display:flex;flex-direction:column;gap:4px}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filtros .title-header{padding:var(--Size-2)}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filtros button{border:none;background:transparent;font-weight:500;color:var(--Gray-Gray-600);transition:box-shadow .2s ease;border:1px solid transparent;border-radius:var(--Size-2);padding:var(--Size-2);text-align:start}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filtros button:hover{border:1px solid var(--Secondary-Secondary-500);border-radius:var(--Size-2)}::ng-deep .dropi-date-picker .p-datepicker-group-container{width:100%}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filter-btn.selected{border:1px solid var(--Secondary-Secondary-500)}:host ::ng-deep .dropi-date-picker .p-datepicker.p-component{font-size:14px;font-weight:600;width:auto!important}@keyframes placeHolderShimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.skeleton{animation-duration:1s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:placeHolderShimmer;animation-timing-function:linear;background:#f6f7f8;background:linear-gradient(to right,#f5f6f8 8%,#e3e7efbf 28%,#f5f6f8 77%);background-size:800px 104px;position:relative;border-radius:6px}.warning-box{width:100%;margin:0;padding:4px 8px;gap:4px;border-radius:4px;border:1px 0px 0px 0px;border:1px solid #f4c370;background:#fef8ed;display:flex;flex-direction:row;align-items:center}.warning-box .warning-message{color:#495057;font-family:Inter,sans-serif;font-size:10px;font-weight:400;line-height:16px;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}:host ::ng-deep app-icon{display:flex}::ng-deep .p-datepicker{z-index:9999!important;position:absolute!important}::ng-deep .p-calendar-overlay{z-index:9999!important}::ng-deep .p-overlay{z-index:9999!important}\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: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }] });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatePickerComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: "app-date-picker", standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule, TranslateModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div [ngClass]=\"setRight ? '' : 'calendar-left'\" class=\"date-picker-range\" *ngIf=\"!loading\">\n <div class=\"label\" *ngIf=\"label\">{{ label }}</div>\n <p-calendar\n class=\"date-picker-input dropi-date-picker\"\n [ngClass]=\"{ 'date-picker-input--open': loading }\"\n [ngClass]=\"{ 'date-is-invalid': isInvalid }\"\n [required]=\"required\"\n [(ngModel)]=\"selectedDate\"\n [selectionMode]=\"selectionMode\"\n [readonlyInput]=\"true\"\n dateFormat=\"dd/mm/yy\"\n [placeholder]=\"placeholder\"\n [style]=\"{ width: '100%' }\"\n inputId=\"date-range\"\n (onSelect)=\"onSelect($event)\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n showOtherMonths=\"false\"\n responsiveOptions=\"true\"\n [disabled]=\"loading || disabled\"\n (onClose)=\"onClose($event)\"\n [showIcon]=\"showIcon\"\n [showTime]=\"showTime\"\n (onShow)=\"onCalendarOpen($event)\"\n >\n <ng-template pTemplate=\"triggericon\" let-clickCallBack=\"clickCallBack\">\n <app-icon name=\"Calendar\" width=\"18px\" height=\"18px\" color=\"Gray-Gray-400\" />\n <!-- <i class=\"pi pi-user pointer-events-none\" (click)=\"clickCallBack($event)\"></i> -->\n </ng-template>\n </p-calendar>\n\n <div class=\"loading\" *ngIf=\"loading\">\n <div class=\"skeleton dp\"></div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.calendar-left ::ng-deep .p-datepicker{right:0!important;left:unset!important}.date-picker-range{background:var(--White, #fff);width:100%}.date-picker-range span{background:var(--White, #fff)}.date-picker-range h3{margin-bottom:.5rem;font-size:1rem;font-weight:500}.date-picker-range .label{font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:18px;text-align:left;color:var(--Gray-600);margin-bottom:8px}.date-picker-range ::ng-deep .p-calendar{padding:0 5px;width:100%;border-radius:var(--Border-2, 8px);background:var(--White, #fff);border:1px solid var(--Gray-Gray-200);height:40px;color:var(--Gray-500, #69738c);font-style:normal;font-weight:400;line-height:150%;text-overflow:ellipsis;font-size:14px;display:flex;flex-direction:row-reverse;align-items:center;cursor:pointer}.date-picker-range ::ng-deep .p-calendar .p-inputtext{width:100%;border:none;padding:0;cursor:pointer}.date-picker-range ::ng-deep .p-calendar.p-calendar-disabled{border:1px solid var(--Gray-200, #c3c9d9)!important;color:var(--Gray-400, #858ea6)!important;background:var(--Gray-50, #f7f8fa)!important}.date-picker-range ::ng-deep .p-calendar.p-calendar-disabled .p-inputtext{background:var(--Gray-50, #f7f8fa)!important;color:var(--Gray-400, #858ea6)}.date-picker-range ::ng-deep .p-datepicker table td>span.p-highlight{color:#f49a3d;background:#fef5ec}.date-picker-range ::ng-deep .p-datepicker table td.p-datepicker-today>span{color:var(--White, #fff);background-color:var(--Primary-Primary-500)}.date-picker-range ::ng-deep .custom-header{display:flex;flex-direction:column;border-left:1px solid #dde5eb;padding:10px}.date-picker-range ::ng-deep .custom-header .p-button{margin-bottom:.5rem;justify-content:flex-start;color:#1f2937;padding:4px 6px}.date-picker-range ::ng-deep .custom-header .p-button span.p-button-label{font-family:Inter,sans-serif;font-size:13px;font-weight:400;line-height:14px;text-align:left;min-width:max-content}.date-picker-range ::ng-deep .custom-header .active{background:#f5f6f8;border-radius:5px}.date-picker-range ::ng-deep .custom-header .active span{font-weight:600!important}.date-picker-range ::ng-deep .p-datepicker:has(>*:nth-child(3)){display:flex!important;flex-direction:column!important}.date-picker-range ::ng-deep .p-datepicker:has(>*:nth-child(3)) .custom-header{display:none}.date-picker-range ::ng-deep .p-datepicker{display:flex;gap:10px;flex-direction:column;padding:0;width:280px;right:unset!important;z-index:9999!important}.date-picker-range ::ng-deep .p-element span{color:var(--Gray-Gray-600);font-size:var(--font-size-s);font-weight:var(--font-weight-medium);line-height:var(--lineheight-large)}.date-picker-range ::ng-deep .p-datepicker-other-month{color:var(--Gray-Gray-400)}.date-picker-range ::ng-deep .p-button.p-button-icon-only{background-color:transparent;border:none;width:40px;height:40px}::ng-deep .date-picker-input--open .p-datepicker{display:none!important}::ng-deep .p-datepicker table td{padding:2px!important;font-size:14px!important}::ng-deep .p-datepicker table td>span{width:34px;height:34px}::ng-deep .p-datepicker-calendar th{color:var(--Gray-Gray-600);font-size:var(--font-size-s);font-weight:var(--font-weight-bold);line-height:var(--lineheight-simple);text-align:center}::ng-deep .p-datepicker-header{padding:var(--Size-3) var(--Size-5)}::ng-deep .p-datepicker-next,::ng-deep .p-datepicker-prev{color:var(--Gray-Gray-400)!important}::ng-deep .p-datepicker-next:hover,::ng-deep .p-datepicker-prev:hover{border-radius:50%}::ng-deep .p-datepicker-group-container{padding:var(--Size-4, 16px)}::ng-deep .p-icon-wrapper{width:12px!important;color:#a0a8b8}::ng-deep span.p-disabled{color:#9fb4c3;font-weight:200}::ng-deep .p-datepicker-title{font-size:14px!important}::ng-deep .p-datepicker-title button{color:var(--Gray-400, #858ea6);font-size:14px;font-style:normal;font-weight:700!important;line-height:110%}::ng-deep .ng-invalid.ng-touched>.p-calendar,::ng-deep .date-is-invalid>.p-calendar{border:1px solid var(--Dager-danger-500, #f46a6b)!important}.dp{height:40px;width:100%;min-width:180px;margin-top:18px}.custom-filters{background:#fff;padding:var(--Size-3) var(--Size-3) var(--Size-3) var(--Size-4);border-radius:6px;box-shadow:4px 3px 13px -6px #0000002e;-webkit-box-shadow:4px 3px 13px -6px rgba(0,0,0,.18);-moz-box-shadow:4px 3px 13px -6px rgba(0,0,0,.18);width:max-content!important;display:flex;width:100%;flex:0 0 auto;height:100%}.custom-filters .filtros{flex-direction:column;gap:4px;display:flex}.custom-filters .filtros .title-header{padding:var(--Size-2)}.custom-filters .filtros button{border:none;background:transparent;font-weight:500;color:var(--Gray-Gray-600);transition:box-shadow .2s ease;border:1px solid transparent;border-radius:var(--Size-2);padding:var(--Size-2)}.custom-filters .filtros button:hover{border:1px solid var(--Secondary-Secondary-500);border-radius:var(--Size-2)}::ng-deep .dropi-date-picker .p-datepicker .custom-filters{display:flex;background:#fff;padding:var(--Size-3) var(--Size-3) var(--Size-3) var(--Size-4);border-radius:6px;min-width:max-content;width:max-content;height:100%;flex:0 0 auto;flex-direction:column}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filtros{display:flex;flex-direction:column;gap:4px}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filtros .title-header{padding:var(--Size-2)}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filtros button{border:none;background:transparent;font-weight:500;color:var(--Gray-Gray-600);transition:box-shadow .2s ease;border:1px solid transparent;border-radius:var(--Size-2);padding:var(--Size-2);text-align:start}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filtros button:hover{border:1px solid var(--Secondary-Secondary-500);border-radius:var(--Size-2)}::ng-deep .dropi-date-picker .p-datepicker-group-container{width:100%}::ng-deep .dropi-date-picker .p-datepicker .custom-filters .filter-btn.selected{border:1px solid var(--Secondary-Secondary-500)}:host ::ng-deep .dropi-date-picker .p-datepicker.p-component{font-size:14px;font-weight:600;width:auto!important}@keyframes placeHolderShimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.skeleton{animation-duration:1s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:placeHolderShimmer;animation-timing-function:linear;background:#f6f7f8;background:linear-gradient(to right,#f5f6f8 8%,#e3e7efbf 28%,#f5f6f8 77%);background-size:800px 104px;position:relative;border-radius:6px}.warning-box{width:100%;margin:0;padding:4px 8px;gap:4px;border-radius:4px;border:1px 0px 0px 0px;border:1px solid #f4c370;background:#fef8ed;display:flex;flex-direction:row;align-items:center}.warning-box .warning-message{color:#495057;font-family:Inter,sans-serif;font-size:10px;font-weight:400;line-height:16px;text-align:left;text-underline-position:from-font;text-decoration-skip-ink:none}:host ::ng-deep app-icon{display:flex}::ng-deep .p-datepicker{z-index:9999!important;position:absolute!important}::ng-deep .p-calendar-overlay{z-index:9999!important}::ng-deep .p-overlay{z-index:9999!important}\n"] }]
40
+ }], ctorParameters: () => [], propDecorators: { label: [{
41
+ type: Input
42
+ }], required: [{
43
+ type: Input
44
+ }], selectedDate: [{
45
+ type: Input
46
+ }], minDate: [{
47
+ type: Input
48
+ }], maxDate: [{
49
+ type: Input
50
+ }], showIcon: [{
51
+ type: Input
52
+ }], showTime: [{
53
+ type: Input
54
+ }], loading: [{
55
+ type: Input
56
+ }], isInvalid: [{
57
+ type: Input
58
+ }], placeholder: [{
59
+ type: Input
60
+ }], disabled: [{
61
+ type: Input
62
+ }], selectionMode: [{
63
+ type: Input
64
+ }], setRight: [{
65
+ type: Input
66
+ }], filters: [{
67
+ type: Input
68
+ }], onChangeDate: [{
69
+ type: Output
70
+ }], onClosePanel: [{
71
+ type: Output
72
+ }] } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMtc291cmNlL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUVaLHNCQUFzQixHQUN2QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQVV0RCxNQUFNLE9BQU8sbUJBQW1CO0lBQ2QsS0FBSyxHQUFrQixJQUFJLENBQUM7SUFDNUIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixZQUFZLEdBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUMvQixPQUFPLENBQU07SUFDYixPQUFPLENBQU07SUFDYixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUN6QixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFdBQVcsR0FBVyxZQUFZLENBQUM7SUFDbkMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixhQUFhLEdBQVcsUUFBUSxDQUFDO0lBQ2pDLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsT0FBTyxHQUFVLEVBQUUsQ0FBQztJQUVuQixZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN2QyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUV4RCxnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBVSxDQUFDO0lBRVosUUFBUSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBVSxJQUFTLENBQUM7d0dBL0IvQixtQkFBbUI7NEZBQW5CLG1CQUFtQixnZUNwQmhDLDh6Q0FtQ0Esa2lPRHBCWSxZQUFZLGdPQUFFLFdBQVcsMmpCQUFFLG1CQUFtQiw4QkFBRSxlQUFlOzs0RkFLOUQsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLFdBQ2pFLENBQUMsc0JBQXNCLENBQUM7d0RBS2pCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFFVyxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLFlBQVk7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25Jbml0LFxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtZGF0ZS1waWNrZXJcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkRGF0ZTogYW55ID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgcHVibGljIG1pbkRhdGU6IGFueTtcbiAgQElucHV0KCkgcHVibGljIG1heERhdGU6IGFueTtcbiAgQElucHV0KCkgcHVibGljIHNob3dJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93VGltZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJERC9NTS9ZWVlZXCI7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uTW9kZTogc3RyaW5nID0gXCJzaW5nbGVcIjtcbiAgQElucHV0KCkgcHVibGljIHNldFJpZ2h0OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25DaGFuZ2VEYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25DbG9zZVBhbmVsID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBwdWJsaWMgb25TZWxlY3QoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VEYXRlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DbG9zZVBhbmVsLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uQ2FsZW5kYXJPcGVuKGV2ZW50OiBhbnkpOiB2b2lkIHt9XG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cInNldFJpZ2h0ID8gJycgOiAnY2FsZW5kYXItbGVmdCdcIiBjbGFzcz1cImRhdGUtcGlja2VyLXJhbmdlXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICA8ZGl2IGNsYXNzPVwibGFiZWxcIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2Rpdj5cbiAgPHAtY2FsZW5kYXJcbiAgICBjbGFzcz1cImRhdGUtcGlja2VyLWlucHV0IGRyb3BpLWRhdGUtcGlja2VyXCJcbiAgICBbbmdDbGFzc109XCJ7ICdkYXRlLXBpY2tlci1pbnB1dC0tb3Blbic6IGxvYWRpbmcgfVwiXG4gICAgW25nQ2xhc3NdPVwieyAnZGF0ZS1pcy1pbnZhbGlkJzogaXNJbnZhbGlkIH1cIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVcIlxuICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxuICAgIFtyZWFkb25seUlucHV0XT1cInRydWVcIlxuICAgIGRhdGVGb3JtYXQ9XCJkZC9tbS95eVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnIH1cIlxuICAgIGlucHV0SWQ9XCJkYXRlLXJhbmdlXCJcbiAgICAob25TZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXG4gICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgc2hvd090aGVyTW9udGhzPVwiZmFsc2VcIlxuICAgIHJlc3BvbnNpdmVPcHRpb25zPVwidHJ1ZVwiXG4gICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZGlzYWJsZWRcIlxuICAgIChvbkNsb3NlKT1cIm9uQ2xvc2UoJGV2ZW50KVwiXG4gICAgW3Nob3dJY29uXT1cInNob3dJY29uXCJcbiAgICBbc2hvd1RpbWVdPVwic2hvd1RpbWVcIlxuICAgIChvblNob3cpPVwib25DYWxlbmRhck9wZW4oJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwidHJpZ2dlcmljb25cIiBsZXQtY2xpY2tDYWxsQmFjaz1cImNsaWNrQ2FsbEJhY2tcIj5cbiAgICAgIDxhcHAtaWNvbiBuYW1lPVwiQ2FsZW5kYXJcIiB3aWR0aD1cIjE4cHhcIiBoZWlnaHQ9XCIxOHB4XCIgY29sb3I9XCJHcmF5LUdyYXktNDAwXCIgLz5cbiAgICAgIDwhLS0gPGkgY2xhc3M9XCJwaSBwaS11c2VyIHBvaW50ZXItZXZlbnRzLW5vbmVcIiAoY2xpY2spPVwiY2xpY2tDYWxsQmFjaygkZXZlbnQpXCI+PC9pPiAtLT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3AtY2FsZW5kYXI+XG5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmdcIiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2tlbGV0b24gZHBcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==