@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,89 @@
1
+ import { Component, EventEmitter, Input, Output, Inject, } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { FormControl, ReactiveFormsModule } from "@angular/forms";
4
+ import { Subscription } from "rxjs";
5
+ import { debounceTime } from "rxjs/operators";
6
+ import { TranslateModule, TranslateService } from "@ngx-translate/core";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "@ngx-translate/core";
11
+ export class RadioSelectionListComponent {
12
+ translateService;
13
+ extraContent = null;
14
+ withExtraContentId = null;
15
+ options = [];
16
+ typeLayout = "default";
17
+ alwaysShowDescription = true;
18
+ selectedOption = null;
19
+ showFilter = false;
20
+ filterPlaceholder = "Search";
21
+ searchDelay = 100;
22
+ valueChange = new EventEmitter();
23
+ onSearch = new EventEmitter();
24
+ subscriptions = new Subscription();
25
+ searchControl = new FormControl("");
26
+ filteredOptions = [];
27
+ constructor(translateService) {
28
+ this.translateService = translateService;
29
+ }
30
+ ngOnInit() {
31
+ this.subscriptions.add(this.searchControl.valueChanges
32
+ .pipe(debounceTime(this.searchDelay))
33
+ .subscribe((value) => {
34
+ this.filterOption(value);
35
+ }));
36
+ this.filteredOptions = this.options;
37
+ }
38
+ ngOnChanges(changes) {
39
+ if (changes["options"])
40
+ this.filteredOptions = this.options;
41
+ }
42
+ filterOption(optionName) {
43
+ const val = typeof optionName === "string" ? optionName : "";
44
+ if (!val.trim()) {
45
+ this.filteredOptions = this.options;
46
+ return;
47
+ }
48
+ this.filteredOptions = this.options.filter((o) => o.name.toLowerCase().includes(val.toLowerCase()));
49
+ }
50
+ selectOption(optionId) {
51
+ this.selectedOption = optionId;
52
+ this.valueChange.emit(this.selectedOption);
53
+ }
54
+ clearSearchInput() {
55
+ this.searchControl.setValue("");
56
+ }
57
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioSelectionListComponent, deps: [{ token: TranslateService }], target: i0.ɵɵFactoryTarget.Component });
58
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: RadioSelectionListComponent, isStandalone: true, selector: "app-radio-selection-list", inputs: { extraContent: "extraContent", withExtraContentId: "withExtraContentId", options: "options", typeLayout: "typeLayout", alwaysShowDescription: "alwaysShowDescription", selectedOption: "selectedOption", showFilter: "showFilter", filterPlaceholder: "filterPlaceholder", searchDelay: "searchDelay" }, outputs: { valueChange: "valueChange", onSearch: "onSearch" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"options-container\">\n <div class=\"search-container\" *ngIf=\"showFilter\">\n <span class=\"input-icon\">\n <i class=\"pi pi-search\"></i>\n <input\n type=\"text\"\n pInputText\n [formControl]=\"searchControl\"\n [placeholder]=\"filterPlaceholder\"\n />\n </span>\n </div>\n\n <div class=\"options\">\n <ng-container *ngFor=\"let option of filteredOptions\">\n <div\n (click)=\"selectOption(option.id)\"\n (keyup)=\"selectOption(option.id)\"\n [ngClass]=\"{\n selected: selectedOption === option.id,\n 'half-width': option.halfWidth!,\n 'full-width': !option.halfWidth,\n disabled: option?.disabled\n }\"\n [id]=\"'option-' + option.id\"\n class=\"option-container\"\n >\n <div class=\"option\">\n <div class=\"selection\" [ngClass]=\"{ box: typeLayout === 'description' }\">\n <div class=\"radio\" [ngClass]=\"{ selected: selectedOption === option.id }\">\n <div class=\"circle\" *ngIf=\"selectedOption === option.id\"></div>\n </div>\n <div *ngIf=\"typeLayout !== 'description'\" class=\"data-container\">\n <p *ngIf=\"typeLayout === 'default'\" class=\"option-name\">{{ option.name }}</p>\n <div\n class=\"description\"\n *ngIf=\"\n option.description && (selectedOption === option.id || alwaysShowDescription)\n \"\n >\n <p *ngIf=\"typeLayout !== 'description'\" [innerHTML]=\"option.description\"></p>\n </div>\n </div>\n\n <ng-container *ngIf=\"typeLayout === 'description'\">\n <img [src]=\"option.iconImages[0].url\" alt=\"img\" class=\"img\" />\n <div class=\"Body-M-Regular\">\n <div class=\"Body-M-Regular\">{{ option.name }}</div>\n <div\n class=\"description-wrapper\"\n [ngClass]=\"{ 'has-icons': option.descriptionIcons?.length > 0 }\"\n >\n <p class=\"description Body-S-Regular\" [innerHTML]=\"option.description\"></p>\n <div class=\"description-icons\" *ngIf=\"option.descriptionIcons?.length > 0\">\n <img\n *ngFor=\"let icon of option.descriptionIcons\"\n [src]=\"icon.url\"\n [alt]=\"icon.alt\"\n />\n </div>\n </div>\n <!-- <div\n class=\"description\"\n *ngIf=\"\n option.description && (selectedOption === option.id || alwaysShowDescription)\n \"\n ></div> -->\n </div>\n </ng-container>\n </div>\n <div\n class=\"icons-container\"\n *ngIf=\"option?.iconImages?.length > 0 && typeLayout === 'default'\"\n >\n <div class=\"icon\" *ngFor=\"let icon of option.iconImages\">\n <img [src]=\"icon.url\" [alt]=\"icon.alt\" />\n </div>\n </div>\n </div>\n\n <div\n class=\"table-contents description\"\n *ngIf=\"\n option.table?.length > 0 && (selectedOption === option.id || alwaysShowDescription)\n \"\n >\n <div class=\"item-table\" *ngFor=\"let item of option.table\">\n <div class=\"item-table-name\">{{ item.name }}</div>\n <div class=\"item-table-value\">\n {{ item.value }}\n <!-- <currency\n [value]=\"item.value\"\n ></currency> -->\n </div>\n </div>\n </div>\n\n <div class=\"tag\" *ngIf=\"option.tag\">\n {{ option.tag }}\n </div>\n </div>\n <ng-container *ngIf=\"option.id === withExtraContentId && extraContent\">\n <ng-container *ngTemplateOutlet=\"extraContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".options-container{display:flex;flex-direction:column;gap:10px;color:var(--Text-text-paragraph, #7b8190);font-family:Inter,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.option-container{display:flex;border:1px solid var(--Gray-200, #c3c9d9);border-radius:8px;flex-direction:column;padding:var(--Size-4, 16px);cursor:pointer;transition:.4s all ease;position:relative;box-sizing:border-box;width:100%}.option-container.half-width{width:calc(50% - 8px)}.option-container.selected{border:1px solid var(--Primary-Primary-500, #f49a3d);background-color:var(--Primary-Primary-50, #fef8f1)}.option-container:hover{border:1px solid var(--Primary-Primary-500, #f49a3d);transition:.4s all ease}.option-container .tag{padding:1px 8px;position:absolute;right:16px;top:13px;border-radius:var(--Border-5, 32px);background:var(--Success-Success-500, #0abb87);color:var(--White, #fff);font-size:12px;font-weight:500;line-height:16px;display:flex;justify-content:center;align-items:center}.options{display:flex;flex-wrap:wrap;gap:16px}.option{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.selection{display:flex;flex-direction:row;align-items:center}.radio{width:20px;height:20px;min-width:20px;min-height:20px;display:flex;justify-content:center;align-items:center;color:#fff;border-radius:50%;border:2px solid var(--Gray-200, #c3c9d9);margin-right:var(--Size-3)}.radio .circle{border-radius:50%;background-color:var(--Primary-Primary-500, #f49a3d);width:12px;height:12px}.radio.selected{border-color:var(--Primary-Primary-500, #f49a3d)}.radio i{font-size:9px;font-weight:700}.img{width:48px;height:48px;border-radius:32px}.option-name{margin:0;color:var(--Gray-Gray-700)}.icons-container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.icon{width:30px;height:30px;border-radius:50%;background-color:#f5f6f8;margin-left:5px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon img{max-width:100%}.description{margin-bottom:0}.description p{margin:0;color:#525252;font-size:12px;line-height:16px}.item-table{display:flex;align-items:center;justify-content:space-between;padding-right:20px}.item-table div{margin:0;color:#495057;font-size:14px;line-height:20px}.item-table .item-table-value{font-weight:700}.search-container{display:flex;justify-content:space-between;align-items:center;align-self:stretch;border-radius:8px;border:1px solid var(--Gray-100, #e6eaf2);background:var(--Gray-50, #f7f8fa);padding-left:var(--Size-3, 12px);margin-bottom:var(--Size-4, 16px)}.search-container .input-icon{display:flex;flex-direction:row;width:100%}.search-container .input-icon i{display:flex;justify-content:center;align-items:center}::ng-deep .search-container .p-inputtext{width:100%;text-overflow:ellipsis;font-size:14px;font-style:normal;font-weight:400;line-height:150%;border:none;padding:9px 0;background-color:transparent;margin-left:8px}::ng-deep .search-container .p-inputtext::placeholder{color:var(--Gray-500, #69738c);font-family:Inter,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:150%}@media (max-width: 500px){.option{flex-direction:column;align-items:flex-start}.icons-container{margin-top:10px}.icon{margin-left:0;margin-right:5px}.description{padding-left:0}.option-container.half-width{width:100%}}.box{display:flex;align-items:center;gap:var(--Size-3, 12px);width:100%}.data-container{display:flex;flex-direction:column}.disabled{pointer-events:none;opacity:.5}.description-wrapper{display:flex;align-items:center;gap:8px}.description-wrapper.has-icons{margin-top:8px}.description-icons{display:flex;align-items:center;gap:4px}.description-icons img{width:auto;height:28px;object-fit:contain}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadioSelectionListComponent, decorators: [{
61
+ type: Component,
62
+ args: [{ selector: "app-radio-selection-list", standalone: true, imports: [CommonModule, TranslateModule, ReactiveFormsModule], template: "<div class=\"options-container\">\n <div class=\"search-container\" *ngIf=\"showFilter\">\n <span class=\"input-icon\">\n <i class=\"pi pi-search\"></i>\n <input\n type=\"text\"\n pInputText\n [formControl]=\"searchControl\"\n [placeholder]=\"filterPlaceholder\"\n />\n </span>\n </div>\n\n <div class=\"options\">\n <ng-container *ngFor=\"let option of filteredOptions\">\n <div\n (click)=\"selectOption(option.id)\"\n (keyup)=\"selectOption(option.id)\"\n [ngClass]=\"{\n selected: selectedOption === option.id,\n 'half-width': option.halfWidth!,\n 'full-width': !option.halfWidth,\n disabled: option?.disabled\n }\"\n [id]=\"'option-' + option.id\"\n class=\"option-container\"\n >\n <div class=\"option\">\n <div class=\"selection\" [ngClass]=\"{ box: typeLayout === 'description' }\">\n <div class=\"radio\" [ngClass]=\"{ selected: selectedOption === option.id }\">\n <div class=\"circle\" *ngIf=\"selectedOption === option.id\"></div>\n </div>\n <div *ngIf=\"typeLayout !== 'description'\" class=\"data-container\">\n <p *ngIf=\"typeLayout === 'default'\" class=\"option-name\">{{ option.name }}</p>\n <div\n class=\"description\"\n *ngIf=\"\n option.description && (selectedOption === option.id || alwaysShowDescription)\n \"\n >\n <p *ngIf=\"typeLayout !== 'description'\" [innerHTML]=\"option.description\"></p>\n </div>\n </div>\n\n <ng-container *ngIf=\"typeLayout === 'description'\">\n <img [src]=\"option.iconImages[0].url\" alt=\"img\" class=\"img\" />\n <div class=\"Body-M-Regular\">\n <div class=\"Body-M-Regular\">{{ option.name }}</div>\n <div\n class=\"description-wrapper\"\n [ngClass]=\"{ 'has-icons': option.descriptionIcons?.length > 0 }\"\n >\n <p class=\"description Body-S-Regular\" [innerHTML]=\"option.description\"></p>\n <div class=\"description-icons\" *ngIf=\"option.descriptionIcons?.length > 0\">\n <img\n *ngFor=\"let icon of option.descriptionIcons\"\n [src]=\"icon.url\"\n [alt]=\"icon.alt\"\n />\n </div>\n </div>\n <!-- <div\n class=\"description\"\n *ngIf=\"\n option.description && (selectedOption === option.id || alwaysShowDescription)\n \"\n ></div> -->\n </div>\n </ng-container>\n </div>\n <div\n class=\"icons-container\"\n *ngIf=\"option?.iconImages?.length > 0 && typeLayout === 'default'\"\n >\n <div class=\"icon\" *ngFor=\"let icon of option.iconImages\">\n <img [src]=\"icon.url\" [alt]=\"icon.alt\" />\n </div>\n </div>\n </div>\n\n <div\n class=\"table-contents description\"\n *ngIf=\"\n option.table?.length > 0 && (selectedOption === option.id || alwaysShowDescription)\n \"\n >\n <div class=\"item-table\" *ngFor=\"let item of option.table\">\n <div class=\"item-table-name\">{{ item.name }}</div>\n <div class=\"item-table-value\">\n {{ item.value }}\n <!-- <currency\n [value]=\"item.value\"\n ></currency> -->\n </div>\n </div>\n </div>\n\n <div class=\"tag\" *ngIf=\"option.tag\">\n {{ option.tag }}\n </div>\n </div>\n <ng-container *ngIf=\"option.id === withExtraContentId && extraContent\">\n <ng-container *ngTemplateOutlet=\"extraContent\"></ng-container>\n </ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".options-container{display:flex;flex-direction:column;gap:10px;color:var(--Text-text-paragraph, #7b8190);font-family:Inter,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:20px}.option-container{display:flex;border:1px solid var(--Gray-200, #c3c9d9);border-radius:8px;flex-direction:column;padding:var(--Size-4, 16px);cursor:pointer;transition:.4s all ease;position:relative;box-sizing:border-box;width:100%}.option-container.half-width{width:calc(50% - 8px)}.option-container.selected{border:1px solid var(--Primary-Primary-500, #f49a3d);background-color:var(--Primary-Primary-50, #fef8f1)}.option-container:hover{border:1px solid var(--Primary-Primary-500, #f49a3d);transition:.4s all ease}.option-container .tag{padding:1px 8px;position:absolute;right:16px;top:13px;border-radius:var(--Border-5, 32px);background:var(--Success-Success-500, #0abb87);color:var(--White, #fff);font-size:12px;font-weight:500;line-height:16px;display:flex;justify-content:center;align-items:center}.options{display:flex;flex-wrap:wrap;gap:16px}.option{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.selection{display:flex;flex-direction:row;align-items:center}.radio{width:20px;height:20px;min-width:20px;min-height:20px;display:flex;justify-content:center;align-items:center;color:#fff;border-radius:50%;border:2px solid var(--Gray-200, #c3c9d9);margin-right:var(--Size-3)}.radio .circle{border-radius:50%;background-color:var(--Primary-Primary-500, #f49a3d);width:12px;height:12px}.radio.selected{border-color:var(--Primary-Primary-500, #f49a3d)}.radio i{font-size:9px;font-weight:700}.img{width:48px;height:48px;border-radius:32px}.option-name{margin:0;color:var(--Gray-Gray-700)}.icons-container{display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.icon{width:30px;height:30px;border-radius:50%;background-color:#f5f6f8;margin-left:5px;display:flex;align-items:center;justify-content:center;overflow:hidden}.icon img{max-width:100%}.description{margin-bottom:0}.description p{margin:0;color:#525252;font-size:12px;line-height:16px}.item-table{display:flex;align-items:center;justify-content:space-between;padding-right:20px}.item-table div{margin:0;color:#495057;font-size:14px;line-height:20px}.item-table .item-table-value{font-weight:700}.search-container{display:flex;justify-content:space-between;align-items:center;align-self:stretch;border-radius:8px;border:1px solid var(--Gray-100, #e6eaf2);background:var(--Gray-50, #f7f8fa);padding-left:var(--Size-3, 12px);margin-bottom:var(--Size-4, 16px)}.search-container .input-icon{display:flex;flex-direction:row;width:100%}.search-container .input-icon i{display:flex;justify-content:center;align-items:center}::ng-deep .search-container .p-inputtext{width:100%;text-overflow:ellipsis;font-size:14px;font-style:normal;font-weight:400;line-height:150%;border:none;padding:9px 0;background-color:transparent;margin-left:8px}::ng-deep .search-container .p-inputtext::placeholder{color:var(--Gray-500, #69738c);font-family:Inter,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:150%}@media (max-width: 500px){.option{flex-direction:column;align-items:flex-start}.icons-container{margin-top:10px}.icon{margin-left:0;margin-right:5px}.description{padding-left:0}.option-container.half-width{width:100%}}.box{display:flex;align-items:center;gap:var(--Size-3, 12px);width:100%}.data-container{display:flex;flex-direction:column}.disabled{pointer-events:none;opacity:.5}.description-wrapper{display:flex;align-items:center;gap:8px}.description-wrapper.has-icons{margin-top:8px}.description-icons{display:flex;align-items:center;gap:4px}.description-icons img{width:auto;height:28px;object-fit:contain}\n"] }]
63
+ }], ctorParameters: () => [{ type: i3.TranslateService, decorators: [{
64
+ type: Inject,
65
+ args: [TranslateService]
66
+ }] }], propDecorators: { extraContent: [{
67
+ type: Input
68
+ }], withExtraContentId: [{
69
+ type: Input
70
+ }], options: [{
71
+ type: Input
72
+ }], typeLayout: [{
73
+ type: Input
74
+ }], alwaysShowDescription: [{
75
+ type: Input
76
+ }], selectedOption: [{
77
+ type: Input
78
+ }], showFilter: [{
79
+ type: Input
80
+ }], filterPlaceholder: [{
81
+ type: Input
82
+ }], searchDelay: [{
83
+ type: Input
84
+ }], valueChange: [{
85
+ type: Output
86
+ }], onSearch: [{
87
+ type: Output
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMtc291cmNlL3JhZGlvLXNlbGVjdGlvbi1saXN0L3JhZGlvLXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9yYWRpby1zZWxlY3Rpb24tbGlzdC9yYWRpby1zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUdOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFVeEUsTUFBTSxPQUFPLDJCQUEyQjtJQW1CbkI7SUFsQlYsWUFBWSxHQUE0QixJQUFJLENBQUM7SUFDN0Msa0JBQWtCLEdBQWtCLElBQUksQ0FBQztJQUN6QyxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBQ3ZCLFVBQVUsR0FBdUMsU0FBUyxDQUFDO0lBQzNELHFCQUFxQixHQUFZLElBQUksQ0FBQztJQUN0QyxjQUFjLEdBQVksSUFBSSxDQUFDO0lBQy9CLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsaUJBQWlCLEdBQVcsUUFBUSxDQUFDO0lBQ3JDLFdBQVcsR0FBVyxHQUFHLENBQUM7SUFDekIsV0FBVyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO0lBQy9ELFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRTVCLGFBQWEsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNsRSxhQUFhLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsZUFBZSxHQUFhLEVBQUUsQ0FBQztJQUUvQixZQUVtQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUNsRCxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7YUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDO1lBQUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzlELENBQUM7SUFFRCxZQUFZLENBQUMsVUFBZTtRQUMxQixNQUFNLEdBQUcsR0FBRyxPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDcEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQzt3R0F4RFUsMkJBQTJCLGtCQWtCNUIsZ0JBQWdCOzRGQWxCZiwyQkFBMkIsMGRDeEJ4Qyw2aUlBMkdBLGt0SER2RlksWUFBWSxvZ0JBQUUsZUFBZSw4QkFBRSxtQkFBbUI7OzRGQUlqRCwyQkFBMkI7a0JBUHZDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUM7OzBCQXNCMUQsTUFBTTsyQkFBQyxnQkFBZ0I7eUNBakJqQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBJbmplY3QsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvaW50ZXJmYWNlcy91aS9zZWxlY3Rpb24tbGlzdC1pbnRlcmZhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFwcC1yYWRpby1zZWxlY3Rpb24tbGlzdFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogXCIuL3JhZGlvLXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9yYWRpby1zZWxlY3Rpb24tbGlzdC5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9TZWxlY3Rpb25MaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZXh0cmFDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHdpdGhFeHRyYUNvbnRlbnRJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIG9wdGlvbnM6IE9wdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHR5cGVMYXlvdXQ6IFwiZGVzY3JpcHRpb25cIiB8IFwiZGVmYXVsdFwiIHwgc3RyaW5nID0gXCJkZWZhdWx0XCI7XG4gIEBJbnB1dCgpIGFsd2F5c1Nob3dEZXNjcmlwdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkT3B0aW9uPzogc3RyaW5nID0gbnVsbDtcbiAgQElucHV0KCkgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBmaWx0ZXJQbGFjZWhvbGRlcjogc3RyaW5nID0gXCJTZWFyY2hcIjtcbiAgQElucHV0KCkgc2VhcmNoRGVsYXk6IG51bWJlciA9IDEwMDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgc2VhcmNoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChcIlwiKTtcbiAgZmlsdGVyZWRPcHRpb25zOiBPcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVHJhbnNsYXRlU2VydmljZSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5zZWFyY2hEZWxheSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJPcHRpb24odmFsdWUpO1xuICAgICAgICB9KSxcbiAgICApO1xuXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbXCJvcHRpb25zXCJdKSB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgfVxuXG4gIGZpbHRlck9wdGlvbihvcHRpb25OYW1lOiBhbnkpIHtcbiAgICBjb25zdCB2YWwgPSB0eXBlb2Ygb3B0aW9uTmFtZSA9PT0gXCJzdHJpbmdcIiA/IG9wdGlvbk5hbWUgOiBcIlwiO1xuICAgIGlmICghdmFsLnRyaW0oKSkge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigobykgPT5cbiAgICAgIG8ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbC50b0xvd2VyQ2FzZSgpKSxcbiAgICApO1xuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3B0aW9uSWQ7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRPcHRpb24pO1xuICB9XG5cbiAgY2xlYXJTZWFyY2hJbnB1dCgpIHtcbiAgICB0aGlzLnNlYXJjaENvbnRyb2wuc2V0VmFsdWUoXCJcIik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvcHRpb25zLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWNvbnRhaW5lclwiICpuZ0lmPVwic2hvd0ZpbHRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtaWNvblwiPlxuICAgICAgPGkgY2xhc3M9XCJwaSBwaS1zZWFyY2hcIj48L2k+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImZpbHRlclBsYWNlaG9sZGVyXCJcbiAgICAgIC8+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwib3B0aW9uc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdE9wdGlvbihvcHRpb24uaWQpXCJcbiAgICAgICAgKGtleXVwKT1cInNlbGVjdE9wdGlvbihvcHRpb24uaWQpXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZE9wdGlvbiA9PT0gb3B0aW9uLmlkLFxuICAgICAgICAgICdoYWxmLXdpZHRoJzogb3B0aW9uLmhhbGZXaWR0aCEsXG4gICAgICAgICAgJ2Z1bGwtd2lkdGgnOiAhb3B0aW9uLmhhbGZXaWR0aCxcbiAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uPy5kaXNhYmxlZFxuICAgICAgICB9XCJcbiAgICAgICAgW2lkXT1cIidvcHRpb24tJyArIG9wdGlvbi5pZFwiXG4gICAgICAgIGNsYXNzPVwib3B0aW9uLWNvbnRhaW5lclwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uXCIgW25nQ2xhc3NdPVwieyBib3g6IHR5cGVMYXlvdXQgPT09ICdkZXNjcmlwdGlvbicgfVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvXCIgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogc2VsZWN0ZWRPcHRpb24gPT09IG9wdGlvbi5pZCB9XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaXJjbGVcIiAqbmdJZj1cInNlbGVjdGVkT3B0aW9uID09PSBvcHRpb24uaWRcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInR5cGVMYXlvdXQgIT09ICdkZXNjcmlwdGlvbidcIiBjbGFzcz1cImRhdGEtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxwICpuZ0lmPVwidHlwZUxheW91dCA9PT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJvcHRpb24tbmFtZVwiPnt7IG9wdGlvbi5uYW1lIH19PC9wPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbi5kZXNjcmlwdGlvbiAmJiAoc2VsZWN0ZWRPcHRpb24gPT09IG9wdGlvbi5pZCB8fCBhbHdheXNTaG93RGVzY3JpcHRpb24pXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwidHlwZUxheW91dCAhPT0gJ2Rlc2NyaXB0aW9uJ1wiIFtpbm5lckhUTUxdPVwib3B0aW9uLmRlc2NyaXB0aW9uXCI+PC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHlwZUxheW91dCA9PT0gJ2Rlc2NyaXB0aW9uJ1wiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwib3B0aW9uLmljb25JbWFnZXNbMF0udXJsXCIgYWx0PVwiaW1nXCIgY2xhc3M9XCJpbWdcIiAvPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiQm9keS1NLVJlZ3VsYXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiQm9keS1NLVJlZ3VsYXJcIj57eyBvcHRpb24ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGVzY3JpcHRpb24td3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdoYXMtaWNvbnMnOiBvcHRpb24uZGVzY3JpcHRpb25JY29ucz8ubGVuZ3RoID4gMCB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uIEJvZHktUy1SZWd1bGFyXCIgW2lubmVySFRNTF09XCJvcHRpb24uZGVzY3JpcHRpb25cIj48L3A+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24taWNvbnNcIiAqbmdJZj1cIm9wdGlvbi5kZXNjcmlwdGlvbkljb25zPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaWNvbiBvZiBvcHRpb24uZGVzY3JpcHRpb25JY29uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJpY29uLnVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpY29uLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8IS0tIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRlc2NyaXB0aW9uICYmIChzZWxlY3RlZE9wdGlvbiA9PT0gb3B0aW9uLmlkIHx8IGFsd2F5c1Nob3dEZXNjcmlwdGlvbilcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImljb25zLWNvbnRhaW5lclwiXG4gICAgICAgICAgICAqbmdJZj1cIm9wdGlvbj8uaWNvbkltYWdlcz8ubGVuZ3RoID4gMCAmJiB0eXBlTGF5b3V0ID09PSAnZGVmYXVsdCdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uXCIgKm5nRm9yPVwibGV0IGljb24gb2Ygb3B0aW9uLmljb25JbWFnZXNcIj5cbiAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImljb24udXJsXCIgW2FsdF09XCJpY29uLmFsdFwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGFibGUtY29udGVudHMgZGVzY3JpcHRpb25cIlxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBvcHRpb24udGFibGU/Lmxlbmd0aCA+IDAgJiYgKHNlbGVjdGVkT3B0aW9uID09PSBvcHRpb24uaWQgfHwgYWx3YXlzU2hvd0Rlc2NyaXB0aW9uKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS10YWJsZVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbi50YWJsZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tdGFibGUtbmFtZVwiPnt7IGl0ZW0ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tdGFibGUtdmFsdWVcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB9fVxuICAgICAgICAgICAgICA8IS0tIDxjdXJyZW5jeVxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgPjwvY3VycmVuY3k+IC0tPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWdcIiAqbmdJZj1cIm9wdGlvbi50YWdcIj5cbiAgICAgICAgICB7eyBvcHRpb24udGFnIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uLmlkID09PSB3aXRoRXh0cmFDb250ZW50SWQgJiYgZXh0cmFDb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJleHRyYUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,91 @@
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@ngx-translate/core";
7
+ /**
8
+ * A component that displays a truncated version of a text string, with an option
9
+ * to expand the text to its full length.
10
+ *
11
+ * @example
12
+ * <app-read-more
13
+ * [text]="'This is a very long text'"
14
+ * [maxCharacters]="150"
15
+ * [textStyle]="'font-size: 14px'"
16
+ * [buttonStyle]="'color: blue'"
17
+ * [showSeeLess]="true"
18
+ * ></app-read-more>
19
+ */
20
+ export class ReadMoreComponent {
21
+ /**
22
+ * Text to be displayed
23
+ */
24
+ text = '';
25
+ /**
26
+ * Maximum number of words to display before truncating the text
27
+ */
28
+ maxWords = 20;
29
+ /**
30
+ * CSS styles for the text element
31
+ */
32
+ textStyle = '';
33
+ /**
34
+ * CSS styles for the expand/collapse button
35
+ */
36
+ buttonStyle = '';
37
+ /**
38
+ * Whether to show the "see less" button when the text is expanded
39
+ */
40
+ showSeeLess = true;
41
+ /**
42
+ * Current state of the component, expanded or not
43
+ */
44
+ isExpanded = false;
45
+ /**
46
+ * Truncated version of the text
47
+ */
48
+ truncatedText = '';
49
+ ngOnInit() {
50
+ this.truncatedText = this.truncateText();
51
+ }
52
+ /**
53
+ * Truncates the text to the maxWords limit if it is longer than
54
+ * that. If the text is shorter than maxWords, it is returned verbatim.
55
+ * If isExpanded is true, the text is not truncated.
56
+ */
57
+ truncateText() {
58
+ if (typeof this.text !== 'string')
59
+ return '';
60
+ if (this.isExpanded || this.text.split(' ').length <= this.maxWords)
61
+ return this.text;
62
+ return this.text.split(' ').slice(0, this.maxWords).join(' ').trim() + '...';
63
+ }
64
+ /**
65
+ * Toggle the expanded state of the text. If the text is currently expanded,
66
+ * calling this function will truncate it to the maxCharacters limit. If the
67
+ * text is currently truncated, calling this function will expand it to its
68
+ * full length.
69
+ */
70
+ toggleExpanded() {
71
+ this.isExpanded = !this.isExpanded;
72
+ this.truncatedText = this.truncateText();
73
+ }
74
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReadMoreComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
75
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ReadMoreComponent, isStandalone: true, selector: "app-read-more", inputs: { text: "text", maxWords: "maxWords", textStyle: "textStyle", buttonStyle: "buttonStyle", showSeeLess: "showSeeLess" }, ngImport: i0, template: "<div class=\"description-container\">\n <p class=\"text\" [style]=\"textStyle\">\n {{ truncatedText }}\n <a\n href=\"javascript:void(0);\"\n *ngIf=\"text?.split(' ')?.length > maxWords && (showSeeLess || !isExpanded)\"\n (click)=\"toggleExpanded()\"\n class=\"toggle-button\"\n [style]=\"buttonStyle\"\n >\n {{ isExpanded ? 'Show less' : 'Show more' | translate }}\n </a>\n </p>\n</div>", styles: [".description-container{font-family:Inter,sans-serif}.text{margin:0}.toggle-button{color:var(--Gray-gray-800, #585C65);font-size:12px;font-style:normal;font-weight:700;line-height:16px;cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReadMoreComponent, decorators: [{
78
+ type: Component,
79
+ args: [{ selector: 'app-read-more', standalone: true, imports: [CommonModule, TranslateModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<div class=\"description-container\">\n <p class=\"text\" [style]=\"textStyle\">\n {{ truncatedText }}\n <a\n href=\"javascript:void(0);\"\n *ngIf=\"text?.split(' ')?.length > maxWords && (showSeeLess || !isExpanded)\"\n (click)=\"toggleExpanded()\"\n class=\"toggle-button\"\n [style]=\"buttonStyle\"\n >\n {{ isExpanded ? 'Show less' : 'Show more' | translate }}\n </a>\n </p>\n</div>", styles: [".description-container{font-family:Inter,sans-serif}.text{margin:0}.toggle-button{color:var(--Gray-gray-800, #585C65);font-size:12px;font-style:normal;font-weight:700;line-height:16px;cursor:pointer}\n"] }]
80
+ }], propDecorators: { text: [{
81
+ type: Input
82
+ }], maxWords: [{
83
+ type: Input
84
+ }], textStyle: [{
85
+ type: Input
86
+ }], buttonStyle: [{
87
+ type: Input
88
+ }], showSeeLess: [{
89
+ type: Input
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1tb3JlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9yZWFkLW1vcmUvcmVhZC1tb3JlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9yZWFkLW1vcmUvcmVhZC1tb3JlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFFdEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBU0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7T0FFRztJQUNNLElBQUksR0FBVyxFQUFFLENBQUM7SUFFM0I7O09BRUc7SUFDTSxRQUFRLEdBQVcsRUFBRSxDQUFDO0lBRS9COztPQUVHO0lBQ00sU0FBUyxHQUFXLEVBQUUsQ0FBQztJQUVoQzs7T0FFRztJQUNNLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFFbEM7O09BRUc7SUFDTSxXQUFXLEdBQVksSUFBSSxDQUFDO0lBRXJDOztPQUVHO0lBQ0gsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUU1Qjs7T0FFRztJQUNILGFBQWEsR0FBVyxFQUFFLENBQUM7SUFFM0IsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWTtRQUNWLElBQUksT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUU3QyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztJQUMvRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjO1FBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQzt3R0E3RFUsaUJBQWlCOzRGQUFqQixpQkFBaUIseU1DekI5QixnYkFhTSxrUURPTSxZQUFZLGtJQUFFLGVBQWU7OzRGQUs1QixpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsV0FHL0IsQ0FBQyxzQkFBc0IsQ0FBQzs4QkFNeEIsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhIHRydW5jYXRlZCB2ZXJzaW9uIG9mIGEgdGV4dCBzdHJpbmcsIHdpdGggYW4gb3B0aW9uXG4gKiB0byBleHBhbmQgdGhlIHRleHQgdG8gaXRzIGZ1bGwgbGVuZ3RoLlxuICpcbiAqIEBleGFtcGxlXG4gKiA8YXBwLXJlYWQtbW9yZVxuICogICBbdGV4dF09XCInVGhpcyBpcyBhIHZlcnkgbG9uZyB0ZXh0J1wiXG4gKiAgIFttYXhDaGFyYWN0ZXJzXT1cIjE1MFwiXG4gKiAgIFt0ZXh0U3R5bGVdPVwiJ2ZvbnQtc2l6ZTogMTRweCdcIlxuICogICBbYnV0dG9uU3R5bGVdPVwiJ2NvbG9yOiBibHVlJ1wiXG4gKiAgIFtzaG93U2VlTGVzc109XCJ0cnVlXCJcbiAqID48L2FwcC1yZWFkLW1vcmU+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yZWFkLW1vcmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1tb3JlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVhZC1tb3JlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVhZE1vcmVDb21wb25lbnQge1xuICAvKipcbiAgICogVGV4dCB0byBiZSBkaXNwbGF5ZWRcbiAgICovXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiB3b3JkcyB0byBkaXNwbGF5IGJlZm9yZSB0cnVuY2F0aW5nIHRoZSB0ZXh0XG4gICAqL1xuICBASW5wdXQoKSBtYXhXb3JkczogbnVtYmVyID0gMjA7XG5cbiAgLyoqXG4gICAqIENTUyBzdHlsZXMgZm9yIHRoZSB0ZXh0IGVsZW1lbnRcbiAgICovXG4gIEBJbnB1dCgpIHRleHRTdHlsZTogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIENTUyBzdHlsZXMgZm9yIHRoZSBleHBhbmQvY29sbGFwc2UgYnV0dG9uXG4gICAqL1xuICBASW5wdXQoKSBidXR0b25TdHlsZTogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2hvdyB0aGUgXCJzZWUgbGVzc1wiIGJ1dHRvbiB3aGVuIHRoZSB0ZXh0IGlzIGV4cGFuZGVkXG4gICAqL1xuICBASW5wdXQoKSBzaG93U2VlTGVzczogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvbXBvbmVudCwgZXhwYW5kZWQgb3Igbm90XG4gICAqL1xuICBpc0V4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRydW5jYXRlZCB2ZXJzaW9uIG9mIHRoZSB0ZXh0XG4gICAqL1xuICB0cnVuY2F0ZWRUZXh0OiBzdHJpbmcgPSAnJztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRydW5jYXRlZFRleHQgPSB0aGlzLnRydW5jYXRlVGV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRydW5jYXRlcyB0aGUgdGV4dCB0byB0aGUgbWF4V29yZHMgbGltaXQgaWYgaXQgaXMgbG9uZ2VyIHRoYW5cbiAgICogdGhhdC4gSWYgdGhlIHRleHQgaXMgc2hvcnRlciB0aGFuIG1heFdvcmRzLCBpdCBpcyByZXR1cm5lZCB2ZXJiYXRpbS5cbiAgICogSWYgaXNFeHBhbmRlZCBpcyB0cnVlLCB0aGUgdGV4dCBpcyBub3QgdHJ1bmNhdGVkLlxuICAgKi9cbiAgdHJ1bmNhdGVUZXh0KCk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnRleHQgIT09ICdzdHJpbmcnKSByZXR1cm4gJyc7XG5cbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkIHx8IHRoaXMudGV4dC5zcGxpdCgnICcpLmxlbmd0aCA8PSB0aGlzLm1heFdvcmRzKSByZXR1cm4gdGhpcy50ZXh0O1xuICAgIHJldHVybiB0aGlzLnRleHQuc3BsaXQoJyAnKS5zbGljZSgwLCB0aGlzLm1heFdvcmRzKS5qb2luKCcgJykudHJpbSgpICsgJy4uLic7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgdGV4dC4gSWYgdGhlIHRleHQgaXMgY3VycmVudGx5IGV4cGFuZGVkLFxuICAgKiBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbCB0cnVuY2F0ZSBpdCB0byB0aGUgbWF4Q2hhcmFjdGVycyBsaW1pdC4gSWYgdGhlXG4gICAqIHRleHQgaXMgY3VycmVudGx5IHRydW5jYXRlZCwgY2FsbGluZyB0aGlzIGZ1bmN0aW9uIHdpbGwgZXhwYW5kIGl0IHRvIGl0c1xuICAgKiBmdWxsIGxlbmd0aC5cbiAgICovXG4gIHRvZ2dsZUV4cGFuZGVkKCk6IHZvaWQge1xuICAgIHRoaXMuaXNFeHBhbmRlZCA9ICF0aGlzLmlzRXhwYW5kZWQ7XG4gICAgdGhpcy50cnVuY2F0ZWRUZXh0ID0gdGhpcy50cnVuY2F0ZVRleHQoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLWNvbnRhaW5lclwiPlxuICA8cCBjbGFzcz1cInRleHRcIiBbc3R5bGVdPVwidGV4dFN0eWxlXCI+XG4gICAge3sgdHJ1bmNhdGVkVGV4dCB9fVxuICAgIDxhXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAqbmdJZj1cInRleHQ/LnNwbGl0KCcgJyk/Lmxlbmd0aCA+IG1heFdvcmRzICYmIChzaG93U2VlTGVzcyB8fCAhaXNFeHBhbmRlZClcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIlxuICAgICAgY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCJcbiAgICAgIFtzdHlsZV09XCJidXR0b25TdHlsZVwiXG4gICAgPlxuICAgICAge3sgaXNFeHBhbmRlZCA/ICdTaG93IGxlc3MnIDogJ1Nob3cgbW9yZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2E+XG4gIDwvcD5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,88 @@
1
+ import { Component, EventEmitter, Input, Output, Inject, } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { IconComponent } from "../icon/icon.component";
4
+ import { NavigationEnd } from "@angular/router";
5
+ import { Subscription } from "rxjs";
6
+ import { TranslateModule } from "@ngx-translate/core";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@ngx-translate/core";
10
+ export class SidebarComponent {
11
+ router;
12
+ sideBarProperties = [];
13
+ onIndexChanged = new EventEmitter();
14
+ subscriptions = new Subscription();
15
+ constructor(router) {
16
+ this.router = router;
17
+ }
18
+ ngOnInit() {
19
+ if (this.router?.url) {
20
+ this.setActiveIndex(this.router.url);
21
+ }
22
+ this.handleUrlChange();
23
+ }
24
+ ngOnDestroy() {
25
+ this.subscriptions.unsubscribe();
26
+ }
27
+ handleUrlChange() {
28
+ if (this.router?.events) {
29
+ this.subscriptions.add(this.router.events.subscribe((event) => {
30
+ if (event instanceof NavigationEnd) {
31
+ this.setActiveIndex(event.url);
32
+ }
33
+ }));
34
+ }
35
+ }
36
+ setActiveIndex(route) {
37
+ if (!this.sideBarProperties)
38
+ return;
39
+ this.sideBarProperties.forEach((propertie) => {
40
+ if (propertie.subItems && propertie.subItems.length > 0) {
41
+ propertie.subItems = propertie.subItems.map((subItem) => {
42
+ return {
43
+ ...subItem,
44
+ active: subItem.route && route.includes(subItem.route),
45
+ };
46
+ });
47
+ }
48
+ propertie.active = propertie.route && route.includes(propertie.route);
49
+ });
50
+ }
51
+ setExpandedPropertie(id) {
52
+ const propertieClicked = this.sideBarProperties.findIndex((item) => item.id === id);
53
+ if (propertieClicked !== -1) {
54
+ this.sideBarProperties[propertieClicked].expandedMenu =
55
+ !this.sideBarProperties[propertieClicked].expandedMenu;
56
+ }
57
+ }
58
+ onItemClick(itemClicked) {
59
+ this.onIndexChanged.emit(itemClicked);
60
+ if (itemClicked.subItems && itemClicked.subItems.length > 0) {
61
+ this.setExpandedPropertie(itemClicked.id);
62
+ return;
63
+ }
64
+ if (itemClicked.route) {
65
+ this.router?.navigate?.([itemClicked.route]);
66
+ }
67
+ }
68
+ onSubItemClick(itemClicked) {
69
+ this.onIndexChanged.emit(itemClicked);
70
+ if (itemClicked.route) {
71
+ this.router?.navigate?.([itemClicked.route]);
72
+ }
73
+ }
74
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarComponent, deps: [{ token: "Router" }], target: i0.ɵɵFactoryTarget.Component });
75
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SidebarComponent, isStandalone: true, selector: "app-sidebar", inputs: { sideBarProperties: "sideBarProperties" }, outputs: { onIndexChanged: "onIndexChanged" }, ngImport: i0, template: "<div class=\"main-sidebar-container\">\n <ng-container *ngFor=\"let item of sideBarProperties\">\n <div\n class=\"sidebar-option\"\n [ngClass]=\"item.active ? 'sidebar-active-option' : 'sidebar-default-option'\"\n (click)=\"onItemClick(item)\"\n >\n <app-icon\n [name]=\"item.icon\"\n width=\"20px\"\n height=\"20px\"\n [color]=\"item.active ? 'Primary-Primary-500' : 'Gray-Gray-500'\"\n ></app-icon>\n <span>{{ item.text | translate }}</span>\n <app-icon\n *ngIf=\"item.subItems && item.subItems.length > 0\"\n class=\"arrow\"\n [ngClass]=\"{\n 'arrow-expanded': item.expandedMenu\n }\"\n name=\"Dropdown-down\"\n width=\"20px\"\n height=\"20px\"\n [color]=\"item.active ? 'Primary-Primary-500' : 'Gray-Gray-500'\"\n ></app-icon>\n </div>\n <ng-container *ngIf=\"item.subItems && item.subItems.length > 0\">\n <div\n class=\"sidebar-sub-item\"\n *ngFor=\"let subOption of item.subItems\"\n (click)=\"onSubItemClick(subOption)\"\n [ngClass]=\"{\n 'sidebar-expanded': item.expandedMenu,\n 'sidebar-sub-item-default': !subOption.active,\n 'sidebar-sub-item-active': subOption.active\n }\"\n >\n {{ subOption.text | translate }}\n </div>\n </ng-container>\n </ng-container>\n</div>\n", styles: [".main-sidebar-container{margin-top:20px}.sidebar-option{height:45px;display:flex;align-items:center;position:relative;font-weight:var(--font-weight-medium);gap:var(--Size-3);padding:var(--Size-3);font-size:var(--font-size-s);border-radius:var(--Border-1);min-width:147px;cursor:pointer}.sidebar-option .arrow{position:absolute;right:17px;transition:transform .3s ease}.sidebar-option .arrow-expanded{transform:rotate(180deg)}.sidebar-default-option{color:var(--Gray-Gray-500)}.sidebar-active-option{color:var(--Primary-Primary-500);background-color:#fef8f1}.sidebar-sub-item{overflow:hidden;max-height:0;height:auto;font-weight:var(--font-weight-medium);gap:var(--Size-3);font-size:var(--font-size-s);cursor:pointer;opacity:0;padding:0 var(--Size-3) 0 var(--Size-8);transition:max-height .3s ease-out,opacity .3s ease-out,padding .3s ease-out}.sidebar-sub-item.sidebar-expanded{max-height:200px;opacity:1;padding:var(--Size-3) var(--Size-3) var(--Size-3) var(--Size-8)}.sidebar-sub-item-default{color:var(--Gray-Gray-500)}.sidebar-sub-item-active{color:var(--Primary-Primary-500)}.space-between{justify-content:space-between}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "app-icon", inputs: ["name", "width", "height", "color"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SidebarComponent, decorators: [{
78
+ type: Component,
79
+ args: [{ selector: "app-sidebar", standalone: true, imports: [CommonModule, IconComponent, TranslateModule], template: "<div class=\"main-sidebar-container\">\n <ng-container *ngFor=\"let item of sideBarProperties\">\n <div\n class=\"sidebar-option\"\n [ngClass]=\"item.active ? 'sidebar-active-option' : 'sidebar-default-option'\"\n (click)=\"onItemClick(item)\"\n >\n <app-icon\n [name]=\"item.icon\"\n width=\"20px\"\n height=\"20px\"\n [color]=\"item.active ? 'Primary-Primary-500' : 'Gray-Gray-500'\"\n ></app-icon>\n <span>{{ item.text | translate }}</span>\n <app-icon\n *ngIf=\"item.subItems && item.subItems.length > 0\"\n class=\"arrow\"\n [ngClass]=\"{\n 'arrow-expanded': item.expandedMenu\n }\"\n name=\"Dropdown-down\"\n width=\"20px\"\n height=\"20px\"\n [color]=\"item.active ? 'Primary-Primary-500' : 'Gray-Gray-500'\"\n ></app-icon>\n </div>\n <ng-container *ngIf=\"item.subItems && item.subItems.length > 0\">\n <div\n class=\"sidebar-sub-item\"\n *ngFor=\"let subOption of item.subItems\"\n (click)=\"onSubItemClick(subOption)\"\n [ngClass]=\"{\n 'sidebar-expanded': item.expandedMenu,\n 'sidebar-sub-item-default': !subOption.active,\n 'sidebar-sub-item-active': subOption.active\n }\"\n >\n {{ subOption.text | translate }}\n </div>\n </ng-container>\n </ng-container>\n</div>\n", styles: [".main-sidebar-container{margin-top:20px}.sidebar-option{height:45px;display:flex;align-items:center;position:relative;font-weight:var(--font-weight-medium);gap:var(--Size-3);padding:var(--Size-3);font-size:var(--font-size-s);border-radius:var(--Border-1);min-width:147px;cursor:pointer}.sidebar-option .arrow{position:absolute;right:17px;transition:transform .3s ease}.sidebar-option .arrow-expanded{transform:rotate(180deg)}.sidebar-default-option{color:var(--Gray-Gray-500)}.sidebar-active-option{color:var(--Primary-Primary-500);background-color:#fef8f1}.sidebar-sub-item{overflow:hidden;max-height:0;height:auto;font-weight:var(--font-weight-medium);gap:var(--Size-3);font-size:var(--font-size-s);cursor:pointer;opacity:0;padding:0 var(--Size-3) 0 var(--Size-8);transition:max-height .3s ease-out,opacity .3s ease-out,padding .3s ease-out}.sidebar-sub-item.sidebar-expanded{max-height:200px;opacity:1;padding:var(--Size-3) var(--Size-3) var(--Size-3) var(--Size-8)}.sidebar-sub-item-default{color:var(--Gray-Gray-500)}.sidebar-sub-item-active{color:var(--Primary-Primary-500)}.space-between{justify-content:space-between}\n"] }]
80
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
81
+ type: Inject,
82
+ args: ["Router"]
83
+ }] }], propDecorators: { sideBarProperties: [{
84
+ type: Input
85
+ }], onIndexChanged: [{
86
+ type: Output
87
+ }] } });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy1zb3VyY2Uvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9zaWRlYmFyL3NpZGViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFtQnRELE1BQU0sT0FBTyxnQkFBZ0I7SUFPVztJQU50QixpQkFBaUIsR0FBd0IsRUFBRSxDQUFDO0lBQzNDLGNBQWMsR0FDN0IsSUFBSSxZQUFZLEVBQXFCLENBQUM7SUFFaEMsYUFBYSxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXpELFlBQXNDLE1BQVc7UUFBWCxXQUFNLEdBQU4sTUFBTSxDQUFLO0lBQUcsQ0FBQztJQUVyRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFD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MENBLGdxQ0RkWSxZQUFZLDhWQUFFLGFBQWEsa0dBQUUsZUFBZTs7NEZBSTNDLGdCQUFnQjtrQkFQNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7OzBCQVcxQyxNQUFNOzJCQUFDLFFBQVE7eUNBTlosaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUNXLGNBQWM7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBJbmplY3QsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNpZGViYXJQcm9wZXJ0aWVzIHtcbiAgaWQ6IG51bWJlcjtcbiAgaWNvbjogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIHJvdXRlOiBzdHJpbmc7XG4gIGV4cGFuZGVkTWVudT86IGJvb2xlYW47XG4gIGFjdGl2ZT86IGJvb2xlYW47XG4gIHN1Ykl0ZW1zPzogU2lkZWJhclByb3BlcnRpZXNbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFwcC1zaWRlYmFyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25Db21wb25lbnQsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2lkZWJhci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vc2lkZWJhci5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lkZWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIHNpZGVCYXJQcm9wZXJ0aWVzOiBTaWRlYmFyUHJvcGVydGllc1tdID0gW107XG4gIEBPdXRwdXQoKSBwdWJsaWMgb25JbmRleENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTaWRlYmFyUHJvcGVydGllcz4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8U2lkZWJhclByb3BlcnRpZXM+KCk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChcIlJvdXRlclwiKSBwcml2YXRlIHJvdXRlcjogYW55KSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvdXRlcj8udXJsKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZUluZGV4KHRoaXMucm91dGVyLnVybCk7XG4gICAgfVxuICAgIHRoaXMuaGFuZGxlVXJsQ2hhbmdlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGhhbmRsZVVybENoYW5nZSgpIHtcbiAgICBpZiAodGhpcy5yb3V0ZXI/LmV2ZW50cykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QWN0aXZlSW5kZXgoZXZlbnQudXJsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBzZXRBY3RpdmVJbmRleChyb3V0ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnNpZGVCYXJQcm9wZXJ0aWVzKSByZXR1cm47XG4gICAgdGhpcy5zaWRlQmFyUHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0aWUpID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0aWUuc3ViSXRlbXMgJiYgcHJvcGVydGllLnN1Ykl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcHJvcGVydGllLnN1Ykl0ZW1zID0gcHJvcGVydGllLnN1Ykl0ZW1zLm1hcCgoc3ViSXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zdWJJdGVtLFxuICAgICAgICAgICAgYWN0aXZlOiBzdWJJdGVtLnJvdXRlICYmIHJvdXRlLmluY2x1ZGVzKHN1Ykl0ZW0ucm91dGUpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBwcm9wZXJ0aWUuYWN0aXZlID0gcHJvcGVydGllLnJvdXRlICYmIHJvdXRlLmluY2x1ZGVzKHByb3BlcnRpZS5yb3V0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRFeHBhbmRlZFByb3BlcnRpZShpZDogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJvcGVydGllQ2xpY2tlZCA9ICh0aGlzLnNpZGVCYXJQcm9wZXJ0aWVzIGFzIGFueVtdKS5maW5kSW5kZXgoXG4gICAgICAoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaWQsXG4gICAgKTtcbiAgICBpZiAocHJvcGVydGllQ2xpY2tlZCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuc2lkZUJhclByb3BlcnRpZXNbcHJvcGVydGllQ2xpY2tlZF0uZXhwYW5kZWRNZW51ID1cbiAgICAgICAgIXRoaXMuc2lkZUJhclByb3BlcnRpZXNbcHJvcGVydGllQ2xpY2tlZF0uZXhwYW5kZWRNZW51O1xuICAgIH1cbiAgfVxuXG4gIG9uSXRlbUNsaWNrKGl0ZW1DbGlja2VkOiBTaWRlYmFyUHJvcGVydGllcykge1xuICAgIHRoaXMub25JbmRleENoYW5nZWQuZW1pdChpdGVtQ2xpY2tlZCk7XG4gICAgaWYgKGl0ZW1DbGlja2VkLnN1Ykl0ZW1zICYmIGl0ZW1DbGlja2VkLnN1Ykl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2V0RXhwYW5kZWRQcm9wZXJ0aWUoaXRlbUNsaWNrZWQuaWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpdGVtQ2xpY2tlZC5yb3V0ZSkge1xuICAgICAgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlPy4oW2l0ZW1DbGlja2VkLnJvdXRlXSk7XG4gICAgfVxuICB9XG5cbiAgb25TdWJJdGVtQ2xpY2soaXRlbUNsaWNrZWQ6IFNpZGViYXJQcm9wZXJ0aWVzKSB7XG4gICAgdGhpcy5vbkluZGV4Q2hhbmdlZC5lbWl0KGl0ZW1DbGlja2VkKTtcbiAgICBpZiAoaXRlbUNsaWNrZWQucm91dGUpIHtcbiAgICAgIHRoaXMucm91dGVyPy5uYXZpZ2F0ZT8uKFtpdGVtQ2xpY2tlZC5yb3V0ZV0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1haW4tc2lkZWJhci1jb250YWluZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzaWRlQmFyUHJvcGVydGllc1wiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2lkZWJhci1vcHRpb25cIlxuICAgICAgW25nQ2xhc3NdPVwiaXRlbS5hY3RpdmUgPyAnc2lkZWJhci1hY3RpdmUtb3B0aW9uJyA6ICdzaWRlYmFyLWRlZmF1bHQtb3B0aW9uJ1wiXG4gICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSlcIlxuICAgID5cbiAgICAgIDxhcHAtaWNvblxuICAgICAgICBbbmFtZV09XCJpdGVtLmljb25cIlxuICAgICAgICB3aWR0aD1cIjIwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgICAgW2NvbG9yXT1cIml0ZW0uYWN0aXZlID8gJ1ByaW1hcnktUHJpbWFyeS01MDAnIDogJ0dyYXktR3JheS01MDAnXCJcbiAgICAgID48L2FwcC1pY29uPlxuICAgICAgPHNwYW4+e3sgaXRlbS50ZXh0IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPGFwcC1pY29uXG4gICAgICAgICpuZ0lmPVwiaXRlbS5zdWJJdGVtcyAmJiBpdGVtLnN1Ykl0ZW1zLmxlbmd0aCA+IDBcIlxuICAgICAgICBjbGFzcz1cImFycm93XCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdhcnJvdy1leHBhbmRlZCc6IGl0ZW0uZXhwYW5kZWRNZW51XG4gICAgICAgIH1cIlxuICAgICAgICBuYW1lPVwiRHJvcGRvd24tZG93blwiXG4gICAgICAgIHdpZHRoPVwiMjBweFwiXG4gICAgICAgIGhlaWdodD1cIjIwcHhcIlxuICAgICAgICBbY29sb3JdPVwiaXRlbS5hY3RpdmUgPyAnUHJpbWFyeS1QcmltYXJ5LTUwMCcgOiAnR3JheS1HcmF5LTUwMCdcIlxuICAgICAgPjwvYXBwLWljb24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uc3ViSXRlbXMgJiYgaXRlbS5zdWJJdGVtcy5sZW5ndGggPiAwXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2lkZWJhci1zdWItaXRlbVwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBzdWJPcHRpb24gb2YgaXRlbS5zdWJJdGVtc1wiXG4gICAgICAgIChjbGljayk9XCJvblN1Ykl0ZW1DbGljayhzdWJPcHRpb24pXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdzaWRlYmFyLWV4cGFuZGVkJzogaXRlbS5leHBhbmRlZE1lbnUsXG4gICAgICAgICAgJ3NpZGViYXItc3ViLWl0ZW0tZGVmYXVsdCc6ICFzdWJPcHRpb24uYWN0aXZlLFxuICAgICAgICAgICdzaWRlYmFyLXN1Yi1pdGVtLWFjdGl2ZSc6IHN1Yk9wdGlvbi5hY3RpdmVcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIHt7IHN1Yk9wdGlvbi50ZXh0IHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,60 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ // Stub del enum FlowMode para desacoplamiento
6
+ export var FlowMode;
7
+ (function (FlowMode) {
8
+ FlowMode["Simultaneous"] = "simultaneous";
9
+ FlowMode["Sequential"] = "sequential";
10
+ })(FlowMode || (FlowMode = {}));
11
+ export class SimpleStepperComponent {
12
+ stepsCount = 3;
13
+ typeStep = "point";
14
+ currentStep = 0;
15
+ labelStepper = [];
16
+ flowMode = FlowMode.Simultaneous;
17
+ white_brand = "dropi";
18
+ steps = [];
19
+ ngOnInit() {
20
+ this.steps = Array(this.stepsCount - 1).fill(0);
21
+ const color = this.white_brand?.toLowerCase() === "dropi"
22
+ ? "#f49a3d"
23
+ : "var(--Secondary-Secondary-500)";
24
+ document.documentElement.style.setProperty("--stepper-color", color);
25
+ }
26
+ isLineActive(index) {
27
+ return this.flowMode === FlowMode.Simultaneous
28
+ ? this.currentStep > index + 1
29
+ : this.currentStep > index * 2 + 1;
30
+ }
31
+ isCircleActive(index) {
32
+ return this.flowMode === FlowMode.Simultaneous
33
+ ? this.currentStep > index + 1
34
+ : this.currentStep > index * 2 + 2;
35
+ }
36
+ get secondaryColor() {
37
+ return this.white_brand?.toLowerCase() === "dropi"
38
+ ? "#f49a3d"
39
+ : "var(--Secondary-Secondary-500, #008DBF)";
40
+ }
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SimpleStepperComponent, isStandalone: true, selector: "app-simple-stepper", inputs: { stepsCount: "stepsCount", typeStep: "typeStep", currentStep: "currentStep", labelStepper: "labelStepper", flowMode: "flowMode", white_brand: "white_brand" }, ngImport: i0, template: "<div class=\"stepper-container\">\n <div class=\"circle\" [ngClass]=\"{ active2: currentStep >= 1 }\">\n <div *ngIf=\"typeStep=='point'\" class=\"internal-circle\" [ngClass]=\"{ active: currentStep >= 1 }\"></div>\n <div *ngIf=\"typeStep=='number'\" class=\"internal-number\" [ngClass]=\"{ active2: currentStep >= 1 }\">1</div>\n <div class=\"point-label Body-S-Regular\">{{labelStepper[0]}}</div>\n </div>\n\n <div *ngFor=\"let step of steps; let i = index\" class=\"step\">\n <div class=\"line\" [ngClass]=\"{ active: isLineActive(i) }\"></div>\n\n <div class=\"circle\" [ngClass]=\"{ active: isCircleActive(i) && typeStep=='point', active3: isCircleActive(i) && typeStep=='number' }\">\n <div *ngIf=\"typeStep=='point'\" class=\"internal-circle\" [ngClass]=\"{ active: isCircleActive(i) }\"></div>\n <div *ngIf=\"typeStep=='number'\" class=\"internal-number\" [ngClass]=\"{ active3: currentStep >= 1 }\">{{ i + 2 }}</div>\n <div class=\"point-label Body-S-Regular\"> {{labelStepper[i + 1]}}</div>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.stepper-container{display:flex;align-items:center;width:100%;justify-content:space-between;padding-left:3.5em;padding-right:3.5em;margin-bottom:2.2em}.step{display:flex;align-items:center;flex:1}.circle{width:20px;height:20px;border:2px solid #d1d5db;border-radius:50%;background-color:#fff;color:var(--Gray-200, #c3c9d9);display:flex;flex-direction:column;position:relative;align-items:center;font-size:12px;justify-content:center;transition:background-color .5s,border-color .5s}.circle.active{border-color:var(--stepper-color);color:#fff;background-color:#f49a3d;color:#f49a3d;border-color:#f49a3d;background-color:#fff}.circle.active3,.circle.active2{color:#fff;border-color:#f49a3d;background-color:#f49a3d}.circle .internal-circle{width:10px;height:10px;border-radius:50%;background-color:#fff;transition:background-color .5s}.circle .internal-circle.active{background-color:#f49a3d}.line{flex-grow:2;height:4px;background-color:#d1d5db;transition:background-color .5s}.line.active{background-color:var(--stepper-color)}.circle .point-label{display:block;width:100px;text-align:center;margin-top:6px;position:absolute;top:15px}.internal-number{padding:.8em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SimpleStepperComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: "app-simple-stepper", standalone: true, imports: [CommonModule], template: "<div class=\"stepper-container\">\n <div class=\"circle\" [ngClass]=\"{ active2: currentStep >= 1 }\">\n <div *ngIf=\"typeStep=='point'\" class=\"internal-circle\" [ngClass]=\"{ active: currentStep >= 1 }\"></div>\n <div *ngIf=\"typeStep=='number'\" class=\"internal-number\" [ngClass]=\"{ active2: currentStep >= 1 }\">1</div>\n <div class=\"point-label Body-S-Regular\">{{labelStepper[0]}}</div>\n </div>\n\n <div *ngFor=\"let step of steps; let i = index\" class=\"step\">\n <div class=\"line\" [ngClass]=\"{ active: isLineActive(i) }\"></div>\n\n <div class=\"circle\" [ngClass]=\"{ active: isCircleActive(i) && typeStep=='point', active3: isCircleActive(i) && typeStep=='number' }\">\n <div *ngIf=\"typeStep=='point'\" class=\"internal-circle\" [ngClass]=\"{ active: isCircleActive(i) }\"></div>\n <div *ngIf=\"typeStep=='number'\" class=\"internal-number\" [ngClass]=\"{ active3: currentStep >= 1 }\">{{ i + 2 }}</div>\n <div class=\"point-label Body-S-Regular\"> {{labelStepper[i + 1]}}</div>\n </div>\n </div>\n</div>\n", styles: ["@charset \"UTF-8\";.stepper-container{display:flex;align-items:center;width:100%;justify-content:space-between;padding-left:3.5em;padding-right:3.5em;margin-bottom:2.2em}.step{display:flex;align-items:center;flex:1}.circle{width:20px;height:20px;border:2px solid #d1d5db;border-radius:50%;background-color:#fff;color:var(--Gray-200, #c3c9d9);display:flex;flex-direction:column;position:relative;align-items:center;font-size:12px;justify-content:center;transition:background-color .5s,border-color .5s}.circle.active{border-color:var(--stepper-color);color:#fff;background-color:#f49a3d;color:#f49a3d;border-color:#f49a3d;background-color:#fff}.circle.active3,.circle.active2{color:#fff;border-color:#f49a3d;background-color:#f49a3d}.circle .internal-circle{width:10px;height:10px;border-radius:50%;background-color:#fff;transition:background-color .5s}.circle .internal-circle.active{background-color:#f49a3d}.line{flex-grow:2;height:4px;background-color:#d1d5db;transition:background-color .5s}.line.active{background-color:var(--stepper-color)}.circle .point-label{display:block;width:100px;text-align:center;margin-top:6px;position:absolute;top:15px}.internal-number{padding:.8em}\n"] }]
47
+ }], propDecorators: { stepsCount: [{
48
+ type: Input
49
+ }], typeStep: [{
50
+ type: Input
51
+ }], currentStep: [{
52
+ type: Input
53
+ }], labelStepper: [{
54
+ type: Input
55
+ }], flowMode: [{
56
+ type: Input
57
+ }], white_brand: [{
58
+ type: Input
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMtc291cmNlL3NpbXBsZS1zdGVwcGVyL3NpbXBsZS1zdGVwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9zaW1wbGUtc3RlcHBlci9zaW1wbGUtc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUUvQyw4Q0FBOEM7QUFDOUMsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNsQix5Q0FBNkIsQ0FBQTtJQUM3QixxQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFTRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ3hCLFVBQVUsR0FBVyxDQUFDLENBQUM7SUFDdkIsUUFBUSxHQUFXLE9BQU8sQ0FBQztJQUMzQixXQUFXLEdBQVcsQ0FBQyxDQUFDO0lBQ3hCLFlBQVksR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLFFBQVEsR0FBYSxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQzNDLFdBQVcsR0FBVyxPQUFPLENBQUM7SUFFdkMsS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUVyQixRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEQsTUFBTSxLQUFLLEdBQ1QsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxPQUFPO1lBQ3pDLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWE7UUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxZQUFZO1lBQzVDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssR0FBRyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFlBQVk7WUFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxHQUFHLENBQUM7WUFDOUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssT0FBTztZQUNoRCxDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyx5Q0FBeUMsQ0FBQztJQUNoRCxDQUFDO3dHQXBDVSxzQkFBc0I7NEZBQXRCLHNCQUFzQixzUENoQm5DLDBpQ0FpQkEsMHRDRExZLFlBQVk7OzRGQUlYLHNCQUFzQjtrQkFQbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDOzhCQUtkLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuLy8gU3R1YiBkZWwgZW51bSBGbG93TW9kZSBwYXJhIGRlc2Fjb3BsYW1pZW50b1xuZXhwb3J0IGVudW0gRmxvd01vZGUge1xuICBTaW11bHRhbmVvdXMgPSBcInNpbXVsdGFuZW91c1wiLFxuICBTZXF1ZW50aWFsID0gXCJzZXF1ZW50aWFsXCIsXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtc2ltcGxlLXN0ZXBwZXJcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2ltcGxlLXN0ZXBwZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3NpbXBsZS1zdGVwcGVyLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTaW1wbGVTdGVwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc3RlcHNDb3VudDogbnVtYmVyID0gMztcbiAgQElucHV0KCkgdHlwZVN0ZXA6IHN0cmluZyA9IFwicG9pbnRcIjtcbiAgQElucHV0KCkgY3VycmVudFN0ZXA6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIGxhYmVsU3RlcHBlcjogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICBASW5wdXQoKSBmbG93TW9kZTogRmxvd01vZGUgPSBGbG93TW9kZS5TaW11bHRhbmVvdXM7XG4gIEBJbnB1dCgpIHdoaXRlX2JyYW5kOiBzdHJpbmcgPSBcImRyb3BpXCI7XG5cbiAgc3RlcHM6IG51bWJlcltdID0gW107XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcyA9IEFycmF5KHRoaXMuc3RlcHNDb3VudCAtIDEpLmZpbGwoMCk7XG5cbiAgICBjb25zdCBjb2xvciA9XG4gICAgICB0aGlzLndoaXRlX2JyYW5kPy50b0xvd2VyQ2FzZSgpID09PSBcImRyb3BpXCJcbiAgICAgICAgPyBcIiNmNDlhM2RcIlxuICAgICAgICA6IFwidmFyKC0tU2Vjb25kYXJ5LVNlY29uZGFyeS01MDApXCI7XG4gICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwiLS1zdGVwcGVyLWNvbG9yXCIsIGNvbG9yKTtcbiAgfVxuXG4gIGlzTGluZUFjdGl2ZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmxvd01vZGUgPT09IEZsb3dNb2RlLlNpbXVsdGFuZW91c1xuICAgICAgPyB0aGlzLmN1cnJlbnRTdGVwID4gaW5kZXggKyAxXG4gICAgICA6IHRoaXMuY3VycmVudFN0ZXAgPiBpbmRleCAqIDIgKyAxO1xuICB9XG5cbiAgaXNDaXJjbGVBY3RpdmUoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZsb3dNb2RlID09PSBGbG93TW9kZS5TaW11bHRhbmVvdXNcbiAgICAgID8gdGhpcy5jdXJyZW50U3RlcCA+IGluZGV4ICsgMVxuICAgICAgOiB0aGlzLmN1cnJlbnRTdGVwID4gaW5kZXggKiAyICsgMjtcbiAgfVxuXG4gIGdldCBzZWNvbmRhcnlDb2xvcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLndoaXRlX2JyYW5kPy50b0xvd2VyQ2FzZSgpID09PSBcImRyb3BpXCJcbiAgICAgID8gXCIjZjQ5YTNkXCJcbiAgICAgIDogXCJ2YXIoLS1TZWNvbmRhcnktU2Vjb25kYXJ5LTUwMCwgIzAwOERCRilcIjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInN0ZXBwZXItY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJjaXJjbGVcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTI6IGN1cnJlbnRTdGVwID49IDEgfVwiPlxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlU3RlcD09J3BvaW50J1wiIGNsYXNzPVwiaW50ZXJuYWwtY2lyY2xlXCIgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGN1cnJlbnRTdGVwID49IDEgfVwiPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlU3RlcD09J251bWJlcidcIiBjbGFzcz1cImludGVybmFsLW51bWJlclwiIFtuZ0NsYXNzXT1cInsgYWN0aXZlMjogY3VycmVudFN0ZXAgPj0gMSB9XCI+MTwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwb2ludC1sYWJlbCBCb2R5LVMtUmVndWxhclwiPnt7bGFiZWxTdGVwcGVyWzBdfX08L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwic3RlcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaW5lXCIgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGlzTGluZUFjdGl2ZShpKSB9XCI+PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2lyY2xlXCIgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGlzQ2lyY2xlQWN0aXZlKGkpICYmIHR5cGVTdGVwPT0ncG9pbnQnLCBhY3RpdmUzOiBpc0NpcmNsZUFjdGl2ZShpKSAmJiB0eXBlU3RlcD09J251bWJlcicgfVwiPlxuICAgICAgPGRpdiAqbmdJZj1cInR5cGVTdGVwPT0ncG9pbnQnXCIgY2xhc3M9XCJpbnRlcm5hbC1jaXJjbGVcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXNDaXJjbGVBY3RpdmUoaSkgfVwiPjwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInR5cGVTdGVwPT0nbnVtYmVyJ1wiIGNsYXNzPVwiaW50ZXJuYWwtbnVtYmVyXCIgW25nQ2xhc3NdPVwieyBhY3RpdmUzOiBjdXJyZW50U3RlcCA+PSAxIH1cIj57eyBpICsgMiB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInBvaW50LWxhYmVsIEJvZHktUy1SZWd1bGFyXCI+IHt7bGFiZWxTdGVwcGVyW2kgKyAxXX19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { TranslateModule } from '@ngx-translate/core';
3
+ import { NgIf } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@ngx-translate/core";
6
+ export class SpinnerComponent {
7
+ loading = true;
8
+ constructor() { }
9
+ ngOnInit() { }
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: SpinnerComponent, isStandalone: true, selector: "app-spinner", inputs: { loading: "loading" }, ngImport: i0, template: "<div class=\"text-center loader-text\">\n <a *ngIf=\"loading\" href=\"javascript:void(0);\" class=\"text-primary\"\n ><i class=\"mdi mdi-loading mdi-spin font-size-20 align-middle me-2\"></i>\n {{ 'Loading' | translate }} ...\n </a>\n</div>\n", styles: [".loader-text{background:#fff;max-width:fit-content;border-radius:30px;display:flex;align-items:center;padding:0 10px;margin:0 auto 20px}.loader-text a,.loader-text i{color:#74788d!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpinnerComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'app-spinner', standalone: true, imports: [NgIf, TranslateModule], template: "<div class=\"text-center loader-text\">\n <a *ngIf=\"loading\" href=\"javascript:void(0);\" class=\"text-primary\"\n ><i class=\"mdi mdi-loading mdi-spin font-size-20 align-middle me-2\"></i>\n {{ 'Loading' | translate }} ...\n </a>\n</div>\n", styles: [".loader-text{background:#fff;max-width:fit-content;border-radius:30px;display:flex;align-items:center;padding:0 10px;margin:0 auto 20px}.loader-text a,.loader-text i{color:#74788d!important}\n"] }]
16
+ }], ctorParameters: () => [], propDecorators: { loading: [{
17
+ type: Input
18
+ }] } });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy1zb3VyY2Uvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBU3ZDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsT0FBTyxHQUFZLElBQUksQ0FBQztJQUNqQyxnQkFBZSxDQUFDO0lBRWhCLFFBQVEsS0FBVSxDQUFDO3dHQUpSLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHVHQ1g3Qiw0UEFNQSwwUERHYyxJQUFJLDRGQUFFLGVBQWU7OzRGQUV0QixnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0ksYUFBYSxjQUdYLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxlQUFlLENBQUM7d0RBR3pCLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtc3Bpbm5lcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwaW5uZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NwaW5uZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUcmFuc2xhdGVNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIFNwaW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBsb2FkZXItdGV4dFwiPlxuICA8YSAqbmdJZj1cImxvYWRpbmdcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIGNsYXNzPVwidGV4dC1wcmltYXJ5XCJcbiAgICA+PGkgY2xhc3M9XCJtZGkgbWRpLWxvYWRpbmcgbWRpLXNwaW4gZm9udC1zaXplLTIwIGFsaWduLW1pZGRsZSBtZS0yXCI+PC9pPlxuICAgIHt7ICdMb2FkaW5nJyB8IHRyYW5zbGF0ZSB9fSAuLi5cbiAgPC9hPlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,83 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { Component, EventEmitter, Input, Output, Inject, } from "@angular/core";
3
+ import { Subscription } from "rxjs";
4
+ import { TranslateModule } from "@ngx-translate/core";
5
+ import { DropiBadgeComponent } from "../dropi-badge/dropi-badge.component";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@ngx-translate/core";
9
+ export class TabsComponent {
10
+ router;
11
+ configuration = [];
12
+ showIcon = false;
13
+ onIndexChanged = new EventEmitter();
14
+ activeTab = 0;
15
+ stopAction = false;
16
+ subscriptions = new Subscription();
17
+ constructor(router) {
18
+ this.router = router;
19
+ }
20
+ ngOnInit() {
21
+ if (this.configuration.find((tab) => tab.route)) {
22
+ this.setActiveTabByRoute(this.router?.url || "");
23
+ this.validateUrlChange();
24
+ }
25
+ }
26
+ ngOnDestroy() {
27
+ this.subscriptions.unsubscribe();
28
+ }
29
+ validateUrlChange() {
30
+ if (!this.router?.events)
31
+ return;
32
+ this.subscriptions.add(this.router.events.subscribe((event) => {
33
+ if (event && event.constructor.name === "NavigationEnd") {
34
+ this.setActiveTabByRoute(event.url);
35
+ }
36
+ }));
37
+ }
38
+ setActiveTabByRoute(route) {
39
+ if (!route)
40
+ return;
41
+ const activeTabArr = this.configuration.find((tab) => tab.route && route.includes(tab.route));
42
+ this.activeTab = activeTabArr ? activeTabArr.id : 0;
43
+ }
44
+ onTabClick(tabClicked) {
45
+ if (tabClicked.disabled)
46
+ return;
47
+ this.onIndexChanged.emit(tabClicked);
48
+ if (!this.stopAction && this.router) {
49
+ if (tabClicked.route) {
50
+ let [path, query] = tabClicked.route.split("?");
51
+ const queryParams = new URLSearchParams(query);
52
+ const paramsObj = {};
53
+ queryParams.forEach((value, key) => {
54
+ paramsObj[key] = value;
55
+ });
56
+ path = decodeURIComponent(path);
57
+ this.router.navigate([path], { queryParams: paramsObj });
58
+ return;
59
+ }
60
+ this.activeTab = tabClicked.id;
61
+ }
62
+ }
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabsComponent, deps: [{ token: "Router" }], target: i0.ɵɵFactoryTarget.Component });
64
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TabsComponent, isStandalone: true, selector: "app-tabs", inputs: { configuration: "configuration", showIcon: "showIcon", activeTab: "activeTab", stopAction: "stopAction" }, outputs: { onIndexChanged: "onIndexChanged" }, ngImport: i0, template: "<div class=\"tabs-container\">\n <div\n class=\"custom-tab\"\n *ngFor=\"let tab of configuration\"\n [ngClass]=\"{\n 'active-tab': tab.id === activeTab && !tab.disabled,\n 'disabled-tab': tab.disabled\n }\"\n [class.disabled-tab]=\"tab.disabled\"\n (click)=\"!tab.disabled && onTabClick(tab)\"\n >\n <span>\n <p>{{ tab.label | translate }}</p>\n <dropi-badge\n *ngIf=\"tab?.counter || tab?.counter === 0\"\n type=\"counter\"\n [count]=\"tab.counter\"\n [variant]=\"tab.id === activeTab ? 'primary' : 'tertiary'\"\n />\n </span>\n\n <ng-container *ngIf=\"showIcon\">\n <dropi-badge type=\"state\" [state]=\"tab.completed ? 'check' : 'pending'\" />\n </ng-container>\n </div>\n</div>\n", styles: [".tabs-container{display:flex;flex-wrap:nowrap;overflow:scroll;width:100%;height:52px}.tabs-container .custom-tab{padding-inline:var(--Size-5);padding-block:var(--Size-4);background-color:var(--Neutral-White);border-bottom:2px solid var(--Gray-Gray-100);cursor:pointer;display:flex;gap:var(--Size-4);align-items:center}.tabs-container .custom-tab span{display:flex;align-items:center;gap:var(--Size-2, 8px)}.tabs-container .custom-tab p{margin:0;font-size:14px;color:var(--Gray-Gray-400);font-weight:var(--font-weight-bold);line-height:20px;text-align:left;white-space:nowrap}.tabs-container .custom-tab.active-tab{background-color:var(--Neutral-White);border-bottom:2px solid var(--Primary-Primary-500)}.tabs-container .custom-tab.active-tab p{color:var(--Gray-Gray-600);font-weight:var(--font-weight-bold)}.tabs-container .custom-tab.disabled-tab{background:#dfe4ed38!important;cursor:not-allowed!important;opacity:.7;pointer-events:none}.tabs-container .custom-tab.disabled-tab p{font-weight:200!important;color:var(--Gray-Gray-300)!important}::-webkit-scrollbar{width:0px;height:0px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: DropiBadgeComponent, selector: "dropi-badge", inputs: ["type", "state", "variant", "count"] }] });
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabsComponent, decorators: [{
67
+ type: Component,
68
+ args: [{ selector: "app-tabs", standalone: true, imports: [CommonModule, TranslateModule, DropiBadgeComponent], template: "<div class=\"tabs-container\">\n <div\n class=\"custom-tab\"\n *ngFor=\"let tab of configuration\"\n [ngClass]=\"{\n 'active-tab': tab.id === activeTab && !tab.disabled,\n 'disabled-tab': tab.disabled\n }\"\n [class.disabled-tab]=\"tab.disabled\"\n (click)=\"!tab.disabled && onTabClick(tab)\"\n >\n <span>\n <p>{{ tab.label | translate }}</p>\n <dropi-badge\n *ngIf=\"tab?.counter || tab?.counter === 0\"\n type=\"counter\"\n [count]=\"tab.counter\"\n [variant]=\"tab.id === activeTab ? 'primary' : 'tertiary'\"\n />\n </span>\n\n <ng-container *ngIf=\"showIcon\">\n <dropi-badge type=\"state\" [state]=\"tab.completed ? 'check' : 'pending'\" />\n </ng-container>\n </div>\n</div>\n", styles: [".tabs-container{display:flex;flex-wrap:nowrap;overflow:scroll;width:100%;height:52px}.tabs-container .custom-tab{padding-inline:var(--Size-5);padding-block:var(--Size-4);background-color:var(--Neutral-White);border-bottom:2px solid var(--Gray-Gray-100);cursor:pointer;display:flex;gap:var(--Size-4);align-items:center}.tabs-container .custom-tab span{display:flex;align-items:center;gap:var(--Size-2, 8px)}.tabs-container .custom-tab p{margin:0;font-size:14px;color:var(--Gray-Gray-400);font-weight:var(--font-weight-bold);line-height:20px;text-align:left;white-space:nowrap}.tabs-container .custom-tab.active-tab{background-color:var(--Neutral-White);border-bottom:2px solid var(--Primary-Primary-500)}.tabs-container .custom-tab.active-tab p{color:var(--Gray-Gray-600);font-weight:var(--font-weight-bold)}.tabs-container .custom-tab.disabled-tab{background:#dfe4ed38!important;cursor:not-allowed!important;opacity:.7;pointer-events:none}.tabs-container .custom-tab.disabled-tab p{font-weight:200!important;color:var(--Gray-Gray-300)!important}::-webkit-scrollbar{width:0px;height:0px}\n"] }]
69
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
70
+ type: Inject,
71
+ args: ["Router"]
72
+ }] }], propDecorators: { configuration: [{
73
+ type: Input
74
+ }], showIcon: [{
75
+ type: Input
76
+ }], onIndexChanged: [{
77
+ type: Output
78
+ }], activeTab: [{
79
+ type: Input
80
+ }], stopAction: [{
81
+ type: Input
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy1zb3VyY2UvdGFicy90YWJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS90YWJzL3RhYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7O0FBa0IzRSxNQUFNLE9BQU8sYUFBYTtJQVV1QjtJQVQvQixhQUFhLEdBQW9CLEVBQUUsQ0FBQztJQUNwQyxRQUFRLEdBQVksS0FBSyxDQUFDO0lBQ3pCLGNBQWMsR0FDN0IsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDcEIsU0FBUyxHQUFXLENBQUMsQ0FBQztJQUN0QixVQUFVLEdBQVksS0FBSyxDQUFDO0lBRTNCLGFBQWEsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVsRSxZQUErQyxNQUFXO1FBQVgsV0FBTSxHQUFOLE1BQU0sQ0FBSztJQUFHLENBQUM7SUFFOUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMs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b3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBJbmplY3QsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IERyb3BpQmFkZ2VDb21wb25lbnQgfSBmcm9tIFwiLi4vZHJvcGktYmFkZ2UvZHJvcGktYmFkZ2UuY29tcG9uZW50XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFiUHJvcGVydGllcyB7XG4gIGlkOiBudW1iZXI7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHJvdXRlOiBzdHJpbmc7XG4gIGNvbXBsZXRlZD86IGJvb2xlYW47XG4gIGNvdW50ZXI/OiBudW1iZXI7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFwcC10YWJzXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFicy5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdGFicy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBEcm9waUJhZGdlQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgVGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIGNvbmZpZ3VyYXRpb246IFRhYlByb3BlcnRpZXNbXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0ljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkluZGV4Q2hhbmdlZDogRXZlbnRFbWl0dGVyPFRhYlByb3BlcnRpZXM+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPFRhYlByb3BlcnRpZXM+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBhY3RpdmVUYWI6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdG9wQWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChcIlJvdXRlclwiKSBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogYW55KSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb24uZmluZCgodGFiKSA9PiB0YWIucm91dGUpKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYkJ5Um91dGUodGhpcy5yb3V0ZXI/LnVybCB8fCBcIlwiKTtcbiAgICAgIHRoaXMudmFsaWRhdGVVcmxDaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHZhbGlkYXRlVXJsQ2hhbmdlKCkge1xuICAgIGlmICghdGhpcy5yb3V0ZXI/LmV2ZW50cykgcmV0dXJuO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgIGlmIChldmVudCAmJiBldmVudC5jb25zdHJ1Y3Rvci5uYW1lID09PSBcIk5hdmlnYXRpb25FbmRcIikge1xuICAgICAgICAgIHRoaXMuc2V0QWN0aXZlVGFiQnlSb3V0ZShldmVudC51cmwpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgc2V0QWN0aXZlVGFiQnlSb3V0ZShyb3V0ZTogc3RyaW5nKSB7XG4gICAgaWYgKCFyb3V0ZSkgcmV0dXJuO1xuICAgIGNvbnN0IGFjdGl2ZVRhYkFyciA9ICh0aGlzLmNvbmZpZ3VyYXRpb24gYXMgYW55W10pLmZpbmQoXG4gICAgICAodGFiKSA9PiB0YWIucm91dGUgJiYgcm91dGUuaW5jbHVkZXModGFiLnJvdXRlKSxcbiAgICApO1xuICAgIHRoaXMuYWN0aXZlVGFiID0gYWN0aXZlVGFiQXJyID8gYWN0aXZlVGFiQXJyLmlkIDogMDtcbiAgfVxuXG4gIG9uVGFiQ2xpY2sodGFiQ2xpY2tlZDogVGFiUHJvcGVydGllcykge1xuICAgIGlmICh0YWJDbGlja2VkLmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy5vbkluZGV4Q2hhbmdlZC5lbWl0KHRhYkNsaWNrZWQpO1xuXG4gICAgaWYgKCF0aGlzLnN0b3BBY3Rpb24gJiYgdGhpcy5yb3V0ZXIpIHtcbiAgICAgIGlmICh0YWJDbGlja2VkLnJvdXRlKSB7XG4gICAgICAgIGxldCBbcGF0aCwgcXVlcnldID0gdGFiQ2xpY2tlZC5yb3V0ZS5zcGxpdChcIj9cIik7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhxdWVyeSk7XG5cbiAgICAgICAgY29uc3QgcGFyYW1zT2JqOiBhbnkgPSB7fTtcbiAgICAgICAgcXVlcnlQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgIHBhcmFtc09ialtrZXldID0gdmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHBhdGggPSBkZWNvZGVVUklDb21wb25lbnQocGF0aCk7XG5cbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3BhdGhdLCB7IHF1ZXJ5UGFyYW1zOiBwYXJhbXNPYmogfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hY3RpdmVUYWIgPSB0YWJDbGlja2VkLmlkO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhYnMtY29udGFpbmVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImN1c3RvbS10YWJcIlxuICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgY29uZmlndXJhdGlvblwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2FjdGl2ZS10YWInOiB0YWIuaWQgPT09IGFjdGl2ZVRhYiAmJiAhdGFiLmRpc2FibGVkLFxuICAgICAgJ2Rpc2FibGVkLXRhYic6IHRhYi5kaXNhYmxlZFxuICAgIH1cIlxuICAgIFtjbGFzcy5kaXNhYmxlZC10YWJdPVwidGFiLmRpc2FibGVkXCJcbiAgICAoY2xpY2spPVwiIXRhYi5kaXNhYmxlZCAmJiBvblRhYkNsaWNrKHRhYilcIlxuICA+XG4gICAgPHNwYW4+XG4gICAgICA8cD57eyB0YWIubGFiZWwgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICA8ZHJvcGktYmFkZ2VcbiAgICAgICAgKm5nSWY9XCJ0YWI/LmNvdW50ZXIgfHwgdGFiPy5jb3VudGVyID09PSAwXCJcbiAgICAgICAgdHlwZT1cImNvdW50ZXJcIlxuICAgICAgICBbY291bnRdPVwidGFiLmNvdW50ZXJcIlxuICAgICAgICBbdmFyaWFudF09XCJ0YWIuaWQgPT09IGFjdGl2ZVRhYiA/ICdwcmltYXJ5JyA6ICd0ZXJ0aWFyeSdcIlxuICAgICAgLz5cbiAgICA8L3NwYW4+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ljb25cIj5cbiAgICAgIDxkcm9waS1iYWRnZSB0eXBlPVwic3RhdGVcIiBbc3RhdGVdPVwidGFiLmNvbXBsZXRlZCA/ICdjaGVjaycgOiAncGVuZGluZydcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TagTypeProductComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TagTypeProductComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TagTypeProductComponent, isStandalone: true, selector: "tag-type-product", ngImport: i0, template: "<div class=\"type-variation\">VARIABLE</div>\n", styles: [".type-variation{border-radius:4px;background:#f1b44c;padding:2px 6px;font-size:12px;color:#fff;text-transform:capitalize;font-weight:400;width:fit-content}\n"] });
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TagTypeProductComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'tag-type-product', standalone: true, template: "<div class=\"type-variation\">VARIABLE</div>\n", styles: [".type-variation{border-radius:4px;background:#f1b44c;padding:2px 6px;font-size:12px;color:#fff;text-transform:capitalize;font-weight:400;width:fit-content}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLXR5cGUtcHJvZHVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy1zb3VyY2UvdGFnLXR5cGUtcHJvZHVjdC90YWctdHlwZS1wcm9kdWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzLXNvdXJjZS90YWctdHlwZS1wcm9kdWN0L3RhZy10eXBlLXByb2R1Y3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUMsTUFBTSxPQUFPLHVCQUF1Qjt3R0FBdkIsdUJBQXVCOzRGQUF2Qix1QkFBdUIsNEVDUnBDLGdEQUNBOzs0RkRPYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksa0JBQWtCLGNBR2hCLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0YWctdHlwZS1wcm9kdWN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGFnLXR5cGUtcHJvZHVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFnLXR5cGUtcHJvZHVjdC5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVGFnVHlwZVByb2R1Y3RDb21wb25lbnQge31cbiIsIjxkaXYgY2xhc3M9XCJ0eXBlLXZhcmlhdGlvblwiPlZBUklBQkxFPC9kaXY+XG4iXX0=