valtech-components 2.0.60 → 2.0.62

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 (331) hide show
  1. package/ng-package.json +10 -0
  2. package/package.json +15 -13
  3. package/release.sh +76 -0
  4. package/src/lib/components/atoms/avatar/avatar.component.scss +20 -0
  5. package/src/lib/components/atoms/avatar/avatar.component.ts +29 -0
  6. package/src/lib/components/atoms/avatar/types.ts +6 -0
  7. package/src/lib/components/atoms/box/box.component.scss +57 -0
  8. package/src/lib/components/atoms/box/box.component.ts +41 -0
  9. package/src/lib/components/atoms/box/types.ts +8 -0
  10. package/src/lib/components/atoms/button/button.component.scss +6 -0
  11. package/src/lib/components/atoms/button/button.component.ts +54 -0
  12. package/src/lib/components/atoms/button/factory.ts +444 -0
  13. package/src/lib/components/atoms/display/display.component.scss +17 -0
  14. package/src/lib/components/atoms/display/display.component.ts +25 -0
  15. package/src/lib/components/atoms/display/types.ts +7 -0
  16. package/src/lib/components/atoms/divider/divider.component.scss +62 -0
  17. package/src/lib/components/atoms/divider/divider.component.ts +18 -0
  18. package/src/lib/components/atoms/divider/types.ts +5 -0
  19. package/src/lib/components/atoms/href/href.component.scss +25 -0
  20. package/src/lib/components/atoms/href/href.component.ts +43 -0
  21. package/src/lib/components/atoms/href/types.ts +10 -0
  22. package/src/lib/components/atoms/icon/icon.component.scss +33 -0
  23. package/src/lib/components/atoms/icon/icon.component.ts +21 -0
  24. package/src/lib/components/atoms/icon/types.ts +7 -0
  25. package/src/lib/components/atoms/image/image.component.scss +70 -0
  26. package/src/lib/components/atoms/image/image.component.ts +40 -0
  27. package/src/lib/components/atoms/image/types.ts +11 -0
  28. package/src/lib/components/atoms/progress-bar/progress-bar.component.scss +22 -0
  29. package/src/lib/components/atoms/progress-bar/progress-bar.component.ts +29 -0
  30. package/src/lib/components/atoms/progress-bar/types.ts +10 -0
  31. package/src/lib/components/atoms/text/text.component.scss +33 -0
  32. package/src/lib/components/atoms/text/text.component.ts +23 -0
  33. package/src/lib/components/atoms/text/types.ts +8 -0
  34. package/src/lib/components/atoms/title/title.component.scss +17 -0
  35. package/src/lib/components/atoms/title/title.component.ts +27 -0
  36. package/src/lib/components/atoms/title/types.ts +8 -0
  37. package/src/lib/components/molecules/alert-box/alert-box.component.scss +10 -0
  38. package/src/lib/components/molecules/alert-box/alert-box.component.ts +28 -0
  39. package/{lib/components/molecules/alert-box/types.d.ts → src/lib/components/molecules/alert-box/types.ts} +4 -3
  40. package/src/lib/components/molecules/button-group/button-group.component.scss +31 -0
  41. package/src/lib/components/molecules/button-group/button-group.component.ts +44 -0
  42. package/src/lib/components/molecules/button-group/types.ts +7 -0
  43. package/src/lib/components/molecules/card/card.component.scss +46 -0
  44. package/src/lib/components/molecules/card/card.component.ts +218 -0
  45. package/src/lib/components/molecules/card/types.ts +36 -0
  46. package/src/lib/components/molecules/check-input/check-input.component.scss +0 -0
  47. package/src/lib/components/molecules/check-input/check-input.component.ts +16 -0
  48. package/src/lib/components/molecules/comment-input/comment-input.component.scss +0 -0
  49. package/src/lib/components/molecules/comment-input/comment-input.component.ts +22 -0
  50. package/src/lib/components/molecules/content-loader/content-loader.component.scss +42 -0
  51. package/src/lib/components/molecules/content-loader/content-loader.component.ts +27 -0
  52. package/src/lib/components/molecules/content-loader/types.ts +8 -0
  53. package/src/lib/components/molecules/date-input/date-input.component.scss +11 -0
  54. package/src/lib/components/molecules/date-input/date-input.component.ts +47 -0
  55. package/src/lib/components/molecules/email-input/email-input.component.scss +0 -0
  56. package/src/lib/components/molecules/email-input/email-input.component.ts +20 -0
  57. package/src/lib/components/molecules/expandable-text/expandable-text.component.ts +89 -0
  58. package/src/lib/components/molecules/expandable-text/types.ts +6 -0
  59. package/src/lib/components/molecules/file-input/file-input.component.scss +11 -0
  60. package/src/lib/components/molecules/file-input/file-input.component.ts +56 -0
  61. package/src/lib/components/molecules/hint/hint.component.scss +5 -0
  62. package/src/lib/components/molecules/hint/hint.component.ts +42 -0
  63. package/src/lib/components/molecules/hour-input/hour-input.component.scss +0 -0
  64. package/src/lib/components/molecules/hour-input/hour-input.component.ts +19 -0
  65. package/src/lib/components/molecules/link/link.component.scss +5 -0
  66. package/src/lib/components/molecules/link/link.component.ts +52 -0
  67. package/src/lib/components/molecules/link/types.ts +10 -0
  68. package/src/lib/components/molecules/links-cake/links-cake.component.scss +9 -0
  69. package/src/lib/components/molecules/links-cake/links-cake.component.ts +30 -0
  70. package/{lib/components/molecules/links-cake/types.d.ts → src/lib/components/molecules/links-cake/types.ts} +4 -3
  71. package/src/lib/components/molecules/notes-box/notes-box.component.scss +5 -0
  72. package/src/lib/components/molecules/notes-box/notes-box.component.ts +28 -0
  73. package/src/lib/components/molecules/notes-box/types.ts +9 -0
  74. package/src/lib/components/molecules/number-input/number-input.component.scss +0 -0
  75. package/src/lib/components/molecules/number-input/number-input.component.ts +19 -0
  76. package/src/lib/components/molecules/password-input/password-input.component.scss +7 -0
  77. package/src/lib/components/molecules/password-input/password-input.component.ts +33 -0
  78. package/src/lib/components/molecules/pin-input/pin-input.component.scss +13 -0
  79. package/src/lib/components/molecules/pin-input/pin-input.component.ts +42 -0
  80. package/src/lib/components/molecules/progress-status/progress-status.component.scss +41 -0
  81. package/src/lib/components/molecules/progress-status/progress-status.component.ts +70 -0
  82. package/src/lib/components/molecules/progress-status/types.ts +11 -0
  83. package/src/lib/components/molecules/prompter/prompter.component.scss +34 -0
  84. package/src/lib/components/molecules/prompter/prompter.component.ts +58 -0
  85. package/{lib/components/molecules/prompter/types.d.ts → src/lib/components/molecules/prompter/types.ts} +7 -6
  86. package/src/lib/components/molecules/radio-input/radio-input.component.scss +0 -0
  87. package/src/lib/components/molecules/radio-input/radio-input.component.ts +27 -0
  88. package/src/lib/components/molecules/searchbar/searchbar.component.scss +9 -0
  89. package/src/lib/components/molecules/searchbar/searchbar.component.ts +47 -0
  90. package/src/lib/components/molecules/text-input/text-input.component.scss +1 -0
  91. package/src/lib/components/molecules/text-input/text-input.component.ts +19 -0
  92. package/src/lib/components/molecules/title-block/title-block.component.scss +36 -0
  93. package/src/lib/components/molecules/title-block/title-block.component.ts +50 -0
  94. package/src/lib/components/molecules/title-block/types.ts +14 -0
  95. package/src/lib/components/organisms/banner/banner.component.scss +45 -0
  96. package/src/lib/components/organisms/banner/banner.component.ts +57 -0
  97. package/src/lib/components/organisms/banner/types.ts +13 -0
  98. package/src/lib/components/organisms/footer/footer.component.scss +3 -0
  99. package/src/lib/components/organisms/footer/footer.component.ts +40 -0
  100. package/{lib/components/organisms/footer/types.d.ts → src/lib/components/organisms/footer/types.ts} +4 -3
  101. package/src/lib/components/organisms/form/factory.ts +11 -0
  102. package/src/lib/components/organisms/form/form-footer/form-footer.component.scss +0 -0
  103. package/src/lib/components/organisms/form/form-footer/form-footer.component.ts +63 -0
  104. package/src/lib/components/organisms/form/form.component.scss +16 -0
  105. package/src/lib/components/organisms/form/form.component.ts +183 -0
  106. package/src/lib/components/organisms/header/header.component.scss +5 -0
  107. package/src/lib/components/organisms/header/header.component.ts +31 -0
  108. package/{lib/components/organisms/header/types.d.ts → src/lib/components/organisms/header/types.ts} +4 -3
  109. package/src/lib/components/organisms/item-list/item-list.component.scss +41 -0
  110. package/src/lib/components/organisms/item-list/item-list.component.ts +221 -0
  111. package/src/lib/components/organisms/item-list/types.ts +42 -0
  112. package/src/lib/components/organisms/no-content/no-content.component.scss +11 -0
  113. package/src/lib/components/organisms/no-content/no-content.component.ts +37 -0
  114. package/{lib/components/organisms/no-content/types.d.ts → src/lib/components/organisms/no-content/types.ts} +4 -3
  115. package/src/lib/components/organisms/toolbar/toolbar.component.scss +13 -0
  116. package/src/lib/components/organisms/toolbar/toolbar.component.ts +123 -0
  117. package/src/lib/components/organisms/toolbar/types.ts +12 -0
  118. package/src/lib/components/organisms/wizard/types.ts +24 -0
  119. package/src/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.scss +0 -0
  120. package/src/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.ts +90 -0
  121. package/src/lib/components/organisms/wizard/wizard.component.scss +15 -0
  122. package/src/lib/components/organisms/wizard/wizard.component.ts +99 -0
  123. package/src/lib/components/templates/layout/layout.component.scss +24 -0
  124. package/src/lib/components/templates/layout/layout.component.ts +14 -0
  125. package/src/lib/components/templates/simple/simple.component.ts +75 -0
  126. package/{lib/components/templates/simple/types.d.ts → src/lib/components/templates/simple/types.ts} +6 -5
  127. package/src/lib/components/types.ts +122 -0
  128. package/src/lib/services/download.service.ts +58 -0
  129. package/src/lib/services/icons.service.ts +40 -0
  130. package/src/lib/services/in-app-browser.service.ts +19 -0
  131. package/src/lib/services/lang-provider/components/lang-settings.ts +14 -0
  132. package/src/lib/services/lang-provider/components/theme-settings.ts +16 -0
  133. package/src/lib/services/lang-provider/content.ts +14 -0
  134. package/src/lib/services/lang-provider/lang-provider.service.ts +38 -0
  135. package/src/lib/services/lang-provider/types.ts +25 -0
  136. package/src/lib/services/local-storage.service.ts +18 -0
  137. package/src/lib/services/navigation.service.ts +39 -0
  138. package/src/lib/services/theme.service.ts +102 -0
  139. package/{lib/services/types.d.ts → src/lib/services/types.ts} +4 -2
  140. package/src/lib/shared/constants/storage.ts +2 -0
  141. package/src/lib/shared/utils/dom.ts +19 -0
  142. package/src/lib/shared/utils/styles.ts +27 -0
  143. package/{public-api.d.ts → src/public-api.ts} +13 -0
  144. package/tsconfig.lib.json +14 -0
  145. package/tsconfig.lib.prod.json +10 -0
  146. package/tsconfig.spec.json +14 -0
  147. package/esm2022/lib/components/atoms/avatar/avatar.component.mjs +0 -31
  148. package/esm2022/lib/components/atoms/avatar/types.mjs +0 -2
  149. package/esm2022/lib/components/atoms/box/box.component.mjs +0 -48
  150. package/esm2022/lib/components/atoms/box/types.mjs +0 -2
  151. package/esm2022/lib/components/atoms/button/button.component.mjs +0 -70
  152. package/esm2022/lib/components/atoms/button/factory.mjs +0 -217
  153. package/esm2022/lib/components/atoms/display/display.component.mjs +0 -28
  154. package/esm2022/lib/components/atoms/display/types.mjs +0 -2
  155. package/esm2022/lib/components/atoms/divider/divider.component.mjs +0 -17
  156. package/esm2022/lib/components/atoms/divider/types.mjs +0 -2
  157. package/esm2022/lib/components/atoms/href/href.component.mjs +0 -51
  158. package/esm2022/lib/components/atoms/href/types.mjs +0 -2
  159. package/esm2022/lib/components/atoms/icon/icon.component.mjs +0 -19
  160. package/esm2022/lib/components/atoms/icon/types.mjs +0 -2
  161. package/esm2022/lib/components/atoms/image/image.component.mjs +0 -50
  162. package/esm2022/lib/components/atoms/image/types.mjs +0 -2
  163. package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +0 -36
  164. package/esm2022/lib/components/atoms/progress-bar/types.mjs +0 -2
  165. package/esm2022/lib/components/atoms/text/text.component.mjs +0 -24
  166. package/esm2022/lib/components/atoms/text/types.mjs +0 -2
  167. package/esm2022/lib/components/atoms/title/title.component.mjs +0 -31
  168. package/esm2022/lib/components/atoms/title/types.mjs +0 -2
  169. package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +0 -32
  170. package/esm2022/lib/components/molecules/alert-box/types.mjs +0 -2
  171. package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +0 -49
  172. package/esm2022/lib/components/molecules/button-group/types.mjs +0 -2
  173. package/esm2022/lib/components/molecules/card/card.component.mjs +0 -365
  174. package/esm2022/lib/components/molecules/card/types.mjs +0 -16
  175. package/esm2022/lib/components/molecules/check-input/check-input.component.mjs +0 -15
  176. package/esm2022/lib/components/molecules/comment-input/comment-input.component.mjs +0 -23
  177. package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +0 -32
  178. package/esm2022/lib/components/molecules/content-loader/types.mjs +0 -2
  179. package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +0 -73
  180. package/esm2022/lib/components/molecules/email-input/email-input.component.mjs +0 -19
  181. package/esm2022/lib/components/molecules/expandable-text/expandable-text.component.mjs +0 -58
  182. package/esm2022/lib/components/molecules/expandable-text/types.mjs +0 -2
  183. package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +0 -69
  184. package/esm2022/lib/components/molecules/hint/hint.component.mjs +0 -52
  185. package/esm2022/lib/components/molecules/hour-input/hour-input.component.mjs +0 -18
  186. package/esm2022/lib/components/molecules/link/link.component.mjs +0 -53
  187. package/esm2022/lib/components/molecules/link/types.mjs +0 -2
  188. package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +0 -37
  189. package/esm2022/lib/components/molecules/links-cake/types.mjs +0 -2
  190. package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +0 -33
  191. package/esm2022/lib/components/molecules/notes-box/types.mjs +0 -2
  192. package/esm2022/lib/components/molecules/number-input/number-input.component.mjs +0 -18
  193. package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +0 -44
  194. package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +0 -45
  195. package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +0 -94
  196. package/esm2022/lib/components/molecules/progress-status/types.mjs +0 -2
  197. package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +0 -84
  198. package/esm2022/lib/components/molecules/prompter/types.mjs +0 -2
  199. package/esm2022/lib/components/molecules/radio-input/radio-input.component.mjs +0 -33
  200. package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +0 -61
  201. package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +0 -18
  202. package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +0 -77
  203. package/esm2022/lib/components/molecules/title-block/types.mjs +0 -2
  204. package/esm2022/lib/components/organisms/banner/banner.component.mjs +0 -75
  205. package/esm2022/lib/components/organisms/banner/types.mjs +0 -2
  206. package/esm2022/lib/components/organisms/footer/footer.component.mjs +0 -50
  207. package/esm2022/lib/components/organisms/footer/types.mjs +0 -2
  208. package/esm2022/lib/components/organisms/form/factory.mjs +0 -8
  209. package/esm2022/lib/components/organisms/form/form-footer/form-footer.component.mjs +0 -76
  210. package/esm2022/lib/components/organisms/form/form.component.mjs +0 -230
  211. package/esm2022/lib/components/organisms/header/header.component.mjs +0 -32
  212. package/esm2022/lib/components/organisms/header/types.mjs +0 -2
  213. package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +0 -358
  214. package/esm2022/lib/components/organisms/item-list/types.mjs +0 -2
  215. package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +0 -44
  216. package/esm2022/lib/components/organisms/no-content/types.mjs +0 -2
  217. package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +0 -171
  218. package/esm2022/lib/components/organisms/toolbar/types.mjs +0 -2
  219. package/esm2022/lib/components/organisms/wizard/types.mjs +0 -7
  220. package/esm2022/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.mjs +0 -107
  221. package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +0 -103
  222. package/esm2022/lib/components/templates/layout/layout.component.mjs +0 -19
  223. package/esm2022/lib/components/templates/simple/simple.component.mjs +0 -102
  224. package/esm2022/lib/components/templates/simple/types.mjs +0 -2
  225. package/esm2022/lib/components/types.mjs +0 -36
  226. package/esm2022/lib/services/download.service.mjs +0 -63
  227. package/esm2022/lib/services/icons.service.mjs +0 -32
  228. package/esm2022/lib/services/in-app-browser.service.mjs +0 -24
  229. package/esm2022/lib/services/lang-provider/components/lang-settings.mjs +0 -13
  230. package/esm2022/lib/services/lang-provider/components/theme-settings.mjs +0 -15
  231. package/esm2022/lib/services/lang-provider/content.mjs +0 -8
  232. package/esm2022/lib/services/lang-provider/lang-provider.service.mjs +0 -39
  233. package/esm2022/lib/services/lang-provider/types.mjs +0 -14
  234. package/esm2022/lib/services/local-storage.service.mjs +0 -16
  235. package/esm2022/lib/services/navigation.service.mjs +0 -39
  236. package/esm2022/lib/services/theme.service.mjs +0 -97
  237. package/esm2022/lib/services/types.mjs +0 -3
  238. package/esm2022/lib/shared/constants/storage.mjs +0 -3
  239. package/esm2022/lib/shared/utils/dom.mjs +0 -17
  240. package/esm2022/lib/shared/utils/styles.mjs +0 -25
  241. package/esm2022/public-api.mjs +0 -95
  242. package/esm2022/valtech-components.mjs +0 -5
  243. package/fesm2022/valtech-components.mjs +0 -3554
  244. package/fesm2022/valtech-components.mjs.map +0 -1
  245. package/index.d.ts +0 -5
  246. package/lib/components/atoms/avatar/avatar.component.d.ts +0 -12
  247. package/lib/components/atoms/avatar/types.d.ts +0 -6
  248. package/lib/components/atoms/box/box.component.d.ts +0 -13
  249. package/lib/components/atoms/box/types.d.ts +0 -7
  250. package/lib/components/atoms/button/button.component.d.ts +0 -21
  251. package/lib/components/atoms/button/factory.d.ts +0 -71
  252. package/lib/components/atoms/display/display.component.d.ts +0 -10
  253. package/lib/components/atoms/display/types.d.ts +0 -6
  254. package/lib/components/atoms/divider/divider.component.d.ts +0 -10
  255. package/lib/components/atoms/divider/types.d.ts +0 -5
  256. package/lib/components/atoms/href/href.component.d.ts +0 -15
  257. package/lib/components/atoms/href/types.d.ts +0 -9
  258. package/lib/components/atoms/icon/icon.component.d.ts +0 -11
  259. package/lib/components/atoms/icon/types.d.ts +0 -6
  260. package/lib/components/atoms/image/image.component.d.ts +0 -12
  261. package/lib/components/atoms/image/types.d.ts +0 -11
  262. package/lib/components/atoms/progress-bar/progress-bar.component.d.ts +0 -10
  263. package/lib/components/atoms/progress-bar/types.d.ts +0 -9
  264. package/lib/components/atoms/text/text.component.d.ts +0 -10
  265. package/lib/components/atoms/text/types.d.ts +0 -7
  266. package/lib/components/atoms/title/title.component.d.ts +0 -10
  267. package/lib/components/atoms/title/types.d.ts +0 -7
  268. package/lib/components/molecules/alert-box/alert-box.component.d.ts +0 -10
  269. package/lib/components/molecules/button-group/button-group.component.d.ts +0 -13
  270. package/lib/components/molecules/button-group/types.d.ts +0 -6
  271. package/lib/components/molecules/card/card.component.d.ts +0 -16
  272. package/lib/components/molecules/card/types.d.ts +0 -32
  273. package/lib/components/molecules/check-input/check-input.component.d.ts +0 -8
  274. package/lib/components/molecules/comment-input/comment-input.component.d.ts +0 -10
  275. package/lib/components/molecules/content-loader/content-loader.component.d.ts +0 -10
  276. package/lib/components/molecules/content-loader/types.d.ts +0 -7
  277. package/lib/components/molecules/date-input/date-input.component.d.ts +0 -10
  278. package/lib/components/molecules/email-input/email-input.component.d.ts +0 -10
  279. package/lib/components/molecules/expandable-text/expandable-text.component.d.ts +0 -13
  280. package/lib/components/molecules/expandable-text/types.d.ts +0 -6
  281. package/lib/components/molecules/file-input/file-input.component.d.ts +0 -15
  282. package/lib/components/molecules/hint/hint.component.d.ts +0 -11
  283. package/lib/components/molecules/hour-input/hour-input.component.d.ts +0 -10
  284. package/lib/components/molecules/link/link.component.d.ts +0 -14
  285. package/lib/components/molecules/link/types.d.ts +0 -9
  286. package/lib/components/molecules/links-cake/links-cake.component.d.ts +0 -10
  287. package/lib/components/molecules/notes-box/notes-box.component.d.ts +0 -10
  288. package/lib/components/molecules/notes-box/types.d.ts +0 -8
  289. package/lib/components/molecules/number-input/number-input.component.d.ts +0 -10
  290. package/lib/components/molecules/password-input/password-input.component.d.ts +0 -11
  291. package/lib/components/molecules/pin-input/pin-input.component.d.ts +0 -15
  292. package/lib/components/molecules/progress-status/progress-status.component.d.ts +0 -14
  293. package/lib/components/molecules/progress-status/types.d.ts +0 -10
  294. package/lib/components/molecules/prompter/prompter.component.d.ts +0 -12
  295. package/lib/components/molecules/radio-input/radio-input.component.d.ts +0 -10
  296. package/lib/components/molecules/searchbar/searchbar.component.d.ts +0 -14
  297. package/lib/components/molecules/text-input/text-input.component.d.ts +0 -10
  298. package/lib/components/molecules/title-block/title-block.component.d.ts +0 -10
  299. package/lib/components/molecules/title-block/types.d.ts +0 -12
  300. package/lib/components/organisms/banner/banner.component.d.ts +0 -14
  301. package/lib/components/organisms/banner/types.d.ts +0 -12
  302. package/lib/components/organisms/footer/footer.component.d.ts +0 -12
  303. package/lib/components/organisms/form/factory.d.ts +0 -5
  304. package/lib/components/organisms/form/form-footer/form-footer.component.d.ts +0 -15
  305. package/lib/components/organisms/form/form.component.d.ts +0 -23
  306. package/lib/components/organisms/header/header.component.d.ts +0 -12
  307. package/lib/components/organisms/item-list/item-list.component.d.ts +0 -23
  308. package/lib/components/organisms/item-list/types.d.ts +0 -38
  309. package/lib/components/organisms/no-content/no-content.component.d.ts +0 -12
  310. package/lib/components/organisms/toolbar/toolbar.component.d.ts +0 -21
  311. package/lib/components/organisms/toolbar/types.d.ts +0 -11
  312. package/lib/components/organisms/wizard/types.d.ts +0 -20
  313. package/lib/components/organisms/wizard/wizard-footer/wizard-footer.component.d.ts +0 -21
  314. package/lib/components/organisms/wizard/wizard.component.d.ts +0 -22
  315. package/lib/components/templates/layout/layout.component.d.ts +0 -5
  316. package/lib/components/templates/simple/simple.component.d.ts +0 -10
  317. package/lib/components/types.d.ts +0 -113
  318. package/lib/services/download.service.d.ts +0 -8
  319. package/lib/services/icons.service.d.ts +0 -6
  320. package/lib/services/in-app-browser.service.d.ts +0 -9
  321. package/lib/services/lang-provider/components/lang-settings.d.ts +0 -3
  322. package/lib/services/lang-provider/components/theme-settings.d.ts +0 -3
  323. package/lib/services/lang-provider/content.d.ts +0 -6
  324. package/lib/services/lang-provider/lang-provider.service.d.ts +0 -17
  325. package/lib/services/lang-provider/types.d.ts +0 -15
  326. package/lib/services/local-storage.service.d.ts +0 -6
  327. package/lib/services/navigation.service.d.ts +0 -15
  328. package/lib/services/theme.service.d.ts +0 -27
  329. package/lib/shared/constants/storage.d.ts +0 -2
  330. package/lib/shared/utils/dom.d.ts +0 -3
  331. package/lib/shared/utils/styles.d.ts +0 -1
@@ -1,3554 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, Injectable, ViewChild, inject, InjectionToken, Inject } from '@angular/core';
3
- import { IonAvatar, IonCard, IonIcon, IonButton, IonSpinner, IonText, IonProgressBar, IonCardContent, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCheckbox, IonButtons, IonTextarea, IonDatetime, IonDatetimeButton, IonModal, IonInput, IonRadioGroup, IonRadio, IonSearchbar, IonToolbar, IonTitle, IonFooter, IonHeader, IonList, IonListHeader, IonLabel, IonNote, IonItem, IonContent } from '@ionic/angular/standalone';
4
- import * as i1 from '@angular/common';
5
- import { CommonModule, NgIf, NgFor, NgClass, NgStyle } from '@angular/common';
6
- import { addIcons } from 'ionicons';
7
- import { addOutline, addCircleOutline, alertOutline, alertCircleOutline, arrowBackOutline, arrowForwardOutline, arrowDownOutline, checkmarkCircleOutline, ellipsisHorizontalOutline, notificationsOutline, openOutline, closeOutline, chevronForwardOutline, chevronBackOutline } from 'ionicons/icons';
8
- import * as i1$1 from '@angular/forms';
9
- import { ReactiveFormsModule, Validators } from '@angular/forms';
10
- import { Router, RouterLink } from '@angular/router';
11
- import { Browser } from '@capacitor/browser';
12
- import * as i1$2 from 'ng-otp-input';
13
- import { NgOtpInputComponent, NgOtpInputModule } from 'ng-otp-input';
14
- import * as i1$3 from '@ionic/angular';
15
- import { BehaviorSubject } from 'rxjs';
16
-
17
- class AvatarComponent {
18
- constructor() {
19
- this.onClick = new EventEmitter();
20
- }
21
- ngOnInit() { }
22
- onClickHandler() {
23
- this.onClick.emit();
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AvatarComponent, isStandalone: true, selector: "val-avatar", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
27
- <ion-avatar aria-hidden="true" [class]="props.size" [class.box]="props.box" (click)="onClickHandler()">
28
- <img alt="profile image" [src]="props.image || props.default" />
29
- </ion-avatar>
30
- `, isInline: true, styles: [".box{--border-radius: pxToRem(4)}.small{width:1.75rem;height:1.75rem}.medium{width:2.375rem;height:2.375rem}.large{width:3rem;height:3rem}\n"], dependencies: [{ kind: "component", type: IonAvatar, selector: "ion-avatar" }] }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AvatarComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: 'val-avatar', standalone: true, imports: [IonAvatar], template: `
35
- <ion-avatar aria-hidden="true" [class]="props.size" [class.box]="props.box" (click)="onClickHandler()">
36
- <img alt="profile image" [src]="props.image || props.default" />
37
- </ion-avatar>
38
- `, styles: [".box{--border-radius: pxToRem(4)}.small{width:1.75rem;height:1.75rem}.medium{width:2.375rem;height:2.375rem}.large{width:3rem;height:3rem}\n"] }]
39
- }], ctorParameters: () => [], propDecorators: { props: [{
40
- type: Input
41
- }], onClick: [{
42
- type: Output
43
- }] } });
44
-
45
- /* eslint-disable no-underscore-dangle */
46
- class IconService {
47
- constructor() {
48
- addIcons({
49
- addOutline,
50
- addCircleOutline,
51
- alertOutline,
52
- alertCircleOutline,
53
- arrowBackOutline,
54
- arrowForwardOutline,
55
- arrowDownOutline,
56
- checkmarkCircleOutline,
57
- ellipsisHorizontalOutline,
58
- notificationsOutline,
59
- openOutline,
60
- closeOutline,
61
- });
62
- }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
64
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconService, providedIn: 'root' }); }
65
- }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconService, decorators: [{
67
- type: Injectable,
68
- args: [{
69
- providedIn: 'root',
70
- }]
71
- }], ctorParameters: () => [] });
72
-
73
- class BoxComponent {
74
- constructor(icon) {
75
- this.onClick = new EventEmitter();
76
- }
77
- ngOnInit() { }
78
- clickHandler() {
79
- this.onClick.emit();
80
- }
81
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BoxComponent, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Component }); }
82
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BoxComponent, isStandalone: true, selector: "val-box", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
83
- <ion-card
84
- class="box"
85
- [color]="props.color"
86
- [class.bordered]="props.bordered"
87
- [class.transparent]="!props.color"
88
- [class.left-border]="props.leftBorder"
89
- >
90
- <ion-icon *ngIf="!!props.icon" class="icon" [name]="props.icon" (click)="clickHandler()"></ion-icon>
91
- <ng-content select="[body]"></ng-content>
92
- </ion-card>
93
- `, isInline: true, styles: [".bordered{border:.0625rem solid var(--ion-color-medium)}.box{width:100%;margin:0rem;border-radius:0rem;box-shadow:none;padding:.25rem}@media (min-width: 768px){.box{padding:.5rem}}.icon{cursor:pointer;margin:0rem;padding:0rem;position:absolute;right:.25rem;top:.25rem;font-size:1rem}@media (min-width: 768px){.icon{right:.5rem;top:.5rem;font-size:1.5rem}}.left-border{border-left:.1875rem solid #dde3ed}.left-border.small{border-width:.1875rem}.left-border.medium{border-width:.375rem}.left-border.large{border-width:.4375rem}.left-border.xlarge{border-width:.5rem}.transparent{--background: transparent}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
94
- }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BoxComponent, decorators: [{
96
- type: Component,
97
- args: [{ selector: 'val-box', standalone: true, imports: [CommonModule, IonCard, IonIcon], template: `
98
- <ion-card
99
- class="box"
100
- [color]="props.color"
101
- [class.bordered]="props.bordered"
102
- [class.transparent]="!props.color"
103
- [class.left-border]="props.leftBorder"
104
- >
105
- <ion-icon *ngIf="!!props.icon" class="icon" [name]="props.icon" (click)="clickHandler()"></ion-icon>
106
- <ng-content select="[body]"></ng-content>
107
- </ion-card>
108
- `, styles: [".bordered{border:.0625rem solid var(--ion-color-medium)}.box{width:100%;margin:0rem;border-radius:0rem;box-shadow:none;padding:.25rem}@media (min-width: 768px){.box{padding:.5rem}}.icon{cursor:pointer;margin:0rem;padding:0rem;position:absolute;right:.25rem;top:.25rem;font-size:1rem}@media (min-width: 768px){.icon{right:.5rem;top:.5rem;font-size:1.5rem}}.left-border{border-left:.1875rem solid #dde3ed}.left-border.small{border-width:.1875rem}.left-border.medium{border-width:.375rem}.left-border.large{border-width:.4375rem}.left-border.xlarge{border-width:.5rem}.transparent{--background: transparent}\n"] }]
109
- }], ctorParameters: () => [{ type: IconService }], propDecorators: { props: [{
110
- type: Input
111
- }], onClick: [{
112
- type: Output
113
- }] } });
114
-
115
- const ENABLED = 'ENABLED';
116
- const DISABLED = 'DISABLED';
117
- const WORKING = 'WORKING';
118
- const ERROR = 'ERROR';
119
- const ComponentStates = { ENABLED, DISABLED, WORKING, ERROR };
120
- var ActionType;
121
- (function (ActionType) {
122
- ActionType[ActionType["BROWSER_NEW_TAB"] = 0] = "BROWSER_NEW_TAB";
123
- ActionType[ActionType["BROWSER_DOWNLOAD"] = 1] = "BROWSER_DOWNLOAD";
124
- ActionType[ActionType["NATIVE_DOWNLOAD"] = 2] = "NATIVE_DOWNLOAD";
125
- ActionType[ActionType["APP_NAVIGATION"] = 3] = "APP_NAVIGATION";
126
- ActionType[ActionType["BROWSER_NAVIGATION"] = 4] = "BROWSER_NAVIGATION";
127
- })(ActionType || (ActionType = {}));
128
- var InputType;
129
- (function (InputType) {
130
- InputType[InputType["TEXT"] = 0] = "TEXT";
131
- InputType[InputType["EMAIL"] = 1] = "EMAIL";
132
- InputType[InputType["PASSWORD"] = 2] = "PASSWORD";
133
- InputType[InputType["COMMENT"] = 3] = "COMMENT";
134
- InputType[InputType["NUMBER"] = 4] = "NUMBER";
135
- InputType[InputType["PIN_CODE"] = 5] = "PIN_CODE";
136
- InputType[InputType["DATE"] = 6] = "DATE";
137
- InputType[InputType["HOUR"] = 7] = "HOUR";
138
- InputType[InputType["CHECK"] = 8] = "CHECK";
139
- InputType[InputType["RADIO"] = 9] = "RADIO";
140
- InputType[InputType["SELECT"] = 10] = "SELECT";
141
- InputType[InputType["FILE"] = 11] = "FILE";
142
- })(InputType || (InputType = {}));
143
- var ToolbarActionType;
144
- (function (ToolbarActionType) {
145
- ToolbarActionType["AVATAR"] = "AVATAR";
146
- ToolbarActionType["ICON"] = "ICON";
147
- ToolbarActionType["IMAGE"] = "IMAGE";
148
- ToolbarActionType["BUTTON"] = "BUTTON";
149
- })(ToolbarActionType || (ToolbarActionType = {}));
150
-
151
- class DownloadService {
152
- getFileNameFromUrl(url) {
153
- try {
154
- const pathSegments = url.split('/');
155
- const lastSegment = pathSegments[pathSegments.length - 1];
156
- const fileName = decodeURIComponent(lastSegment);
157
- return fileName;
158
- }
159
- catch (error) {
160
- console.error('Error al obtener nombre de archivo: ', JSON.stringify(error));
161
- return 'filename';
162
- }
163
- }
164
- openNewTab(url) {
165
- if (url) {
166
- const fileName = this.getFileNameFromUrl(url);
167
- const link = document.createElement('a');
168
- link.href = url;
169
- link.download = fileName;
170
- link.target = '_blank';
171
- document.body.appendChild(link);
172
- link.click();
173
- document.body.removeChild(link);
174
- }
175
- else {
176
- console.error('La URL no está definida');
177
- }
178
- }
179
- downloadLinkFromBrowser(url) {
180
- console.log('trying to download file from url');
181
- if (url) {
182
- fetch(url)
183
- .then(response => response.blob())
184
- .then(blob => {
185
- const url = window.URL.createObjectURL(blob);
186
- const link = document.createElement('a');
187
- link.href = url;
188
- const fileName = this.getFileNameFromUrl(url);
189
- link.download = `${+new Date()}-${fileName}`;
190
- link.target = '_self';
191
- link.click();
192
- window.URL.revokeObjectURL(url);
193
- })
194
- .catch(error => {
195
- console.error('Error al descargar el archivo:', JSON.stringify(error));
196
- });
197
- }
198
- else {
199
- console.error('La URL no está definida');
200
- }
201
- }
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DownloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
203
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DownloadService, providedIn: 'root' }); }
204
- }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DownloadService, decorators: [{
206
- type: Injectable,
207
- args: [{
208
- providedIn: 'root',
209
- }]
210
- }] });
211
-
212
- class ButtonComponent {
213
- constructor(download, icon) {
214
- this.download = download;
215
- this.states = ComponentStates;
216
- this.onClick = new EventEmitter();
217
- }
218
- ngOnInit() { }
219
- clickHandler() {
220
- if (this.props.download) {
221
- this.download.downloadLinkFromBrowser(this.props.download);
222
- }
223
- if (this.props.state === this.states.DISABLED) {
224
- return;
225
- }
226
- this.onClick.emit(this.props.token);
227
- }
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonComponent, deps: [{ token: DownloadService }, { token: IconService }], target: i0.ɵɵFactoryTarget.Component }); }
229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ButtonComponent, isStandalone: true, selector: "val-button", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
230
- <ion-button
231
- [type]="props.type"
232
- [color]="props.color"
233
- [expand]="props.expand"
234
- [fill]="props.fill"
235
- [size]="props.size"
236
- [href]="props.href"
237
- [target]="props.target"
238
- [shape]="props.shape"
239
- (click)="clickHandler()"
240
- [disabled]="props.state === states.DISABLED"
241
- >
242
- <ion-icon *ngIf="props.icon" [slot]="props.icon.slot" [name]="props.icon.name"></ion-icon>
243
- <ion-spinner *ngIf="props.state === states.WORKING" name="circular"></ion-spinner>
244
- <ion-text *ngIf="props.state !== states.WORKING">{{ props.text }}</ion-text>
245
- </ion-button>
246
- `, isInline: true, styles: ["ion-button{font-family:var(--ion-default-font),Arial,sans-serif;min-width:pxToRem(100)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
247
- }
248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonComponent, decorators: [{
249
- type: Component,
250
- args: [{ selector: 'val-button', standalone: true, imports: [CommonModule, IonButton, IonIcon, IonSpinner, IonText], template: `
251
- <ion-button
252
- [type]="props.type"
253
- [color]="props.color"
254
- [expand]="props.expand"
255
- [fill]="props.fill"
256
- [size]="props.size"
257
- [href]="props.href"
258
- [target]="props.target"
259
- [shape]="props.shape"
260
- (click)="clickHandler()"
261
- [disabled]="props.state === states.DISABLED"
262
- >
263
- <ion-icon *ngIf="props.icon" [slot]="props.icon.slot" [name]="props.icon.name"></ion-icon>
264
- <ion-spinner *ngIf="props.state === states.WORKING" name="circular"></ion-spinner>
265
- <ion-text *ngIf="props.state !== states.WORKING">{{ props.text }}</ion-text>
266
- </ion-button>
267
- `, styles: ["ion-button{font-family:var(--ion-default-font),Arial,sans-serif;min-width:pxToRem(100)}\n"] }]
268
- }], ctorParameters: () => [{ type: DownloadService }, { type: IconService }], propDecorators: { props: [{
269
- type: Input
270
- }], onClick: [{
271
- type: Output
272
- }] } });
273
-
274
- const Icon = (name, slot) => {
275
- return {
276
- name,
277
- slot,
278
- };
279
- };
280
- /* name convention: COLOR FILL SIZE [optionals: SHAPE EXPAND ICON HREF/DOWNLOAD] TYPE */
281
- const BaseDefault = (text, type) => {
282
- return {
283
- color: 'primary',
284
- state: 'ENABLED',
285
- text,
286
- size: 'default',
287
- type,
288
- };
289
- };
290
- const ClearDefault = (text, type) => {
291
- return { ...BaseDefault(text, type), fill: 'clear' };
292
- };
293
- const ClearDefaultRound = (text, type) => {
294
- return { ...ClearDefault(text, type), shape: 'round' };
295
- };
296
- const SolidDefault = (text, type) => {
297
- return { ...BaseDefault(text, type), fill: 'solid' };
298
- };
299
- const SolidDefaultRound = (text, type) => {
300
- return { ...SolidDefault(text, type), shape: 'round' };
301
- };
302
- const OutlineDefault = (text, type) => {
303
- return { ...BaseDefault(text, type), fill: 'outline' };
304
- };
305
- const OutlineDefaultRound = (text, type) => {
306
- return { ...OutlineDefault(text, type), shape: 'round' };
307
- };
308
- const ClearDefaultFull = (text, type) => {
309
- return { ...ClearDefault(text, type), expand: 'full' };
310
- };
311
- const ClearDefaultRoundFull = (text, type) => {
312
- return { ...ClearDefaultRound(text, type), expand: 'full' };
313
- };
314
- const ClearDefaultBlock = (text, type) => {
315
- return { ...ClearDefault(text, type), expand: 'block' };
316
- };
317
- const ClearDefaultRoundBlock = (text, type) => {
318
- return { ...ClearDefaultRound(text, type), expand: 'block' };
319
- };
320
- const SolidDefaultFull = (text, type) => {
321
- return { ...SolidDefault(text, type), expand: 'full' };
322
- };
323
- const SolidDefaultRoundFull = (text, type) => {
324
- return { ...SolidDefaultRound(text, type), expand: 'full' };
325
- };
326
- const SolidDefaultBlock = (text, type) => {
327
- return { ...SolidDefault(text, type), expand: 'block' };
328
- };
329
- const SolidDefaultRoundBlock = (text, type) => {
330
- return { ...SolidDefaultRound(text, type), expand: 'block' };
331
- };
332
- const OutlineDefaultFull = (text, type) => {
333
- return { ...OutlineDefault(text, type), expand: 'full' };
334
- };
335
- const OutlineDefaultRoundFull = (text, type) => {
336
- return { ...OutlineDefaultRound(text, type), expand: 'full' };
337
- };
338
- const OutlineDefaultBlock = (text, type) => {
339
- return { ...OutlineDefault(text, type), expand: 'block' };
340
- };
341
- const OutlineDefaultRoundBlock = (text, type) => {
342
- return { ...OutlineDefaultRound(text, type), expand: 'block' };
343
- };
344
- const SolidDefaultButton = (text) => {
345
- return SolidDefault(text, 'button');
346
- };
347
- const SolidSmallButton = (text) => {
348
- return { ...SolidDefault(text, 'button'), size: 'small' };
349
- };
350
- const SolidLargeButton = (text) => {
351
- return { ...SolidDefault(text, 'button'), size: 'large' };
352
- };
353
- const SolidDefaultRoundButton = (text) => {
354
- return SolidDefaultRound(text, 'button');
355
- };
356
- const SolidSmallRoundButton = (text) => {
357
- return { ...SolidDefaultRound(text, 'button'), size: 'small' };
358
- };
359
- const SolidLargeRoundButton = (text) => {
360
- return { ...SolidDefaultRound(text, 'button'), size: 'large' };
361
- };
362
- const SolidFullButton = (text) => {
363
- return SolidDefaultFull(text, 'button');
364
- };
365
- const SolidBlockButton = (text) => {
366
- return SolidDefaultBlock(text, 'button');
367
- };
368
- /** PRIMARY */
369
- const PrimarySolidDefaultRoundButton = (text) => {
370
- return { ...SolidDefaultRoundButton(text), color: 'primary' };
371
- };
372
- const PrimarySolidDefaultRoundIconButton = (text, icon) => {
373
- return { ...PrimarySolidDefaultRoundButton(text), icon };
374
- };
375
- const PrimarySolidDefaultRoundHrefButton = (text, href, target) => {
376
- return { ...PrimarySolidDefaultRoundButton(text), href, target };
377
- };
378
- const PrimarySolidDefaultRoundIconHrefButton = (text, icon, href, target) => {
379
- return { ...PrimarySolidDefaultRoundIconButton(text, icon), href, target };
380
- };
381
- const PrimarySolidSmallRoundButton = (text) => {
382
- return { ...SolidSmallRoundButton(text), color: 'primary' };
383
- };
384
- const PrimarySolidSmallRoundIconButton = (text, icon) => {
385
- return { ...PrimarySolidSmallRoundButton(text), icon };
386
- };
387
- const PrimarySolidSmallRoundHrefButton = (text, href, target) => {
388
- return { ...PrimarySolidSmallRoundButton(text), href, target };
389
- };
390
- const PrimarySolidSmallRoundIconHrefButton = (text, icon, href, target) => {
391
- return { ...PrimarySolidSmallRoundIconButton(text, icon), href, target };
392
- };
393
- const PrimarySolidLargeRoundButton = (text) => {
394
- return { ...SolidLargeRoundButton(text), color: 'primary' };
395
- };
396
- const PrimarySolidLargeRoundIconButton = (text, icon) => {
397
- return { ...PrimarySolidLargeRoundButton(text), icon };
398
- };
399
- const PrimarySolidLargeRoundHrefButton = (text, href, target) => {
400
- return { ...PrimarySolidLargeRoundButton(text), href, target };
401
- };
402
- const PrimarySolidLargeRoundIconHrefButton = (text, icon, href, target) => {
403
- return { ...PrimarySolidLargeRoundIconButton(text, icon), href, target };
404
- };
405
- const PrimarySolidBlockButton = (text) => {
406
- return { ...SolidBlockButton(text), color: 'primary' };
407
- };
408
- const PrimarySolidBlockIconButton = (text, icon) => {
409
- return { ...PrimarySolidBlockButton(text), icon };
410
- };
411
- const PrimarySolidBlockHrefButton = (text, href, target) => {
412
- return { ...PrimarySolidBlockButton(text), href, target };
413
- };
414
- const PrimarySolidBlockIconHrefButton = (text, icon, href, target) => {
415
- return { ...PrimarySolidBlockIconButton(text, icon), href, target };
416
- };
417
- const PrimarySolidFullButton = (text) => {
418
- return { ...SolidFullButton(text), color: 'primary' };
419
- };
420
- const PrimarySolidFullIconButton = (text, icon) => {
421
- return { ...PrimarySolidFullButton(text), icon };
422
- };
423
- const PrimarySolidFullHrefButton = (text, href, target) => {
424
- return { ...PrimarySolidFullButton(text), href, target };
425
- };
426
- const PrimarySolidFullIconHrefButton = (text, icon, href, target) => {
427
- return { ...PrimarySolidFullIconButton(text, icon), href, target };
428
- };
429
- /** SECONDARY */
430
- const SecondarySolidDefaultRoundButton = (text) => {
431
- return { ...SolidDefaultRoundButton(text), color: 'secondary' };
432
- };
433
- const SecondarySolidDefaultRoundIconButton = (text, icon) => {
434
- return { ...SecondarySolidDefaultRoundButton(text), icon };
435
- };
436
- const SecondarySolidDefaultRoundHrefButton = (text, href, target) => {
437
- return { ...SecondarySolidDefaultRoundButton(text), href, target };
438
- };
439
- const SecondarySolidDefaultRoundIconHrefButton = (text, icon, href, target) => {
440
- return { ...SecondarySolidDefaultRoundIconButton(text, icon), href, target };
441
- };
442
- const SecondarySolidSmallRoundButton = (text) => {
443
- return { ...SolidSmallRoundButton(text), color: 'secondary' };
444
- };
445
- const SecondarySolidSmallRoundIconButton = (text, icon) => {
446
- return { ...SecondarySolidSmallRoundButton(text), icon };
447
- };
448
- const SecondarySolidSmallRoundHrefButton = (text, href, target) => {
449
- return { ...SecondarySolidSmallRoundButton(text), href, target };
450
- };
451
- const SecondarySolidSmallRoundIconHrefButton = (text, icon, href, target) => {
452
- return { ...SecondarySolidSmallRoundIconButton(text, icon), href, target };
453
- };
454
- const SecondarySolidLargeRoundButton = (text) => {
455
- return { ...SolidLargeRoundButton(text), color: 'secondary' };
456
- };
457
- const SecondarySolidLargeRoundIconButton = (text, icon) => {
458
- return { ...SecondarySolidLargeRoundButton(text), icon };
459
- };
460
- const SecondarySolidLargeRoundHrefButton = (text, href, target) => {
461
- return { ...SecondarySolidLargeRoundButton(text), href, target };
462
- };
463
- const SecondarySolidLargeRoundIconHrefButton = (text, icon, href, target) => {
464
- return { ...SecondarySolidLargeRoundIconButton(text, icon), href, target };
465
- };
466
- const SecondarySolidFullButton = (text) => {
467
- return { ...SolidFullButton(text), color: 'secondary' };
468
- };
469
- const SecondarySolidFullIconButton = (text, icon) => {
470
- return { ...SecondarySolidFullButton(text), icon };
471
- };
472
- const SecondarySolidFullHrefButton = (text, href, target) => {
473
- return { ...SecondarySolidFullButton(text), href, target };
474
- };
475
- const SecondarySolidFullIconHrefButton = (text, icon, href, target) => {
476
- return { ...SecondarySolidFullIconButton(text, icon), href, target };
477
- };
478
- const SecondarySolidBlockButton = (text) => {
479
- return { ...SolidBlockButton(text), color: 'secondary' };
480
- };
481
- const SecondarySolidBlockIconButton = (text, icon) => {
482
- return { ...SecondarySolidBlockButton(text), icon };
483
- };
484
- const SecondarySolidBlockHrefButton = (text, href, target) => {
485
- return { ...SecondarySolidBlockButton(text), href, target };
486
- };
487
- const SecondarySolidBlockIconHrefButton = (text, icon, href, target) => {
488
- return { ...SecondarySolidBlockIconButton(text, icon), href, target };
489
- };
490
-
491
- class DisplayComponent {
492
- constructor() { }
493
- ngOnInit() { }
494
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
495
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DisplayComponent, isStandalone: true, selector: "val-display", inputs: { props: "props" }, ngImport: i0, template: `
496
- <ion-text [color]="props.color">
497
- <p [class]="props.size">
498
- {{ props.content }}
499
- </p>
500
- </ion-text>
501
- `, isInline: true, styles: [".small{font-size:1.5rem;line-height:2rem;font-weight:800}@media (min-width: 768px){.small{font-size:2rem;line-height:2.5rem}}.medium{font-size:2rem;line-height:2.5rem;font-weight:800}@media (min-width: 768px){.medium{font-size:2.5rem;line-height:3rem}}.large{font-size:2.5rem;line-height:3rem;font-weight:800}@media (min-width: 768px){.large{font-size:3rem;line-height:3.5rem}}.xlarge{font-size:3rem;line-height:3.5rem;font-weight:800}@media (min-width: 768px){.xlarge{font-size:3.5rem;line-height:4rem}}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
502
- }
503
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DisplayComponent, decorators: [{
504
- type: Component,
505
- args: [{ selector: 'val-display', standalone: true, imports: [IonText], template: `
506
- <ion-text [color]="props.color">
507
- <p [class]="props.size">
508
- {{ props.content }}
509
- </p>
510
- </ion-text>
511
- `, styles: [".small{font-size:1.5rem;line-height:2rem;font-weight:800}@media (min-width: 768px){.small{font-size:2rem;line-height:2.5rem}}.medium{font-size:2rem;line-height:2.5rem;font-weight:800}@media (min-width: 768px){.medium{font-size:2.5rem;line-height:3rem}}.large{font-size:2.5rem;line-height:3rem;font-weight:800}@media (min-width: 768px){.large{font-size:3rem;line-height:3.5rem}}.xlarge{font-size:3rem;line-height:3.5rem;font-weight:800}@media (min-width: 768px){.xlarge{font-size:3.5rem;line-height:4rem}}\n"] }]
512
- }], ctorParameters: () => [], propDecorators: { props: [{
513
- type: Input
514
- }] } });
515
-
516
- class DividerComponent {
517
- constructor() { }
518
- ngOnInit() { }
519
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
520
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DividerComponent, isStandalone: true, selector: "val-divider", inputs: { props: "props" }, ngImport: i0, template: ` <div [ngClass]="['divider', props.size, props.color, props.fill]"></div> `, isInline: true, styles: [".solid{border-top:.0625rem solid #878ca0}.gradient{height:.125rem}.gradient.primary{background:linear-gradient(to right,var(--ion-color-primary),var(--ion-color-light))}.gradient.secondary{background:linear-gradient(to right,var(--ion-color-secondary),var(--ion-color-light))}.gradient.dark{background:linear-gradient(to right,var(--ion-color-dark),var(--ion-color-light))}.gradient.light{background:linear-gradient(to right,var(--ion-color-light),#ffffff)}.gradient.medium{background:linear-gradient(to right,var(--ion-color-medium),#ffffff)}.small{margin:1rem}.medium{margin:1.5rem 1rem}.large{margin:2.25rem 1rem}.primary{border-color:var(--ion-color-primary)}.secondary{border-color:var(--ion-color-secondary)}.dark{border-color:var(--ion-color-dark)}.light{border-color:var(--ion-color-light)}.medium{border-color:var(--ion-color-medium)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
521
- }
522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DividerComponent, decorators: [{
523
- type: Component,
524
- args: [{ selector: 'val-divider', standalone: true, imports: [CommonModule], template: ` <div [ngClass]="['divider', props.size, props.color, props.fill]"></div> `, styles: [".solid{border-top:.0625rem solid #878ca0}.gradient{height:.125rem}.gradient.primary{background:linear-gradient(to right,var(--ion-color-primary),var(--ion-color-light))}.gradient.secondary{background:linear-gradient(to right,var(--ion-color-secondary),var(--ion-color-light))}.gradient.dark{background:linear-gradient(to right,var(--ion-color-dark),var(--ion-color-light))}.gradient.light{background:linear-gradient(to right,var(--ion-color-light),#ffffff)}.gradient.medium{background:linear-gradient(to right,var(--ion-color-medium),#ffffff)}.small{margin:1rem}.medium{margin:1.5rem 1rem}.large{margin:2.25rem 1rem}.primary{border-color:var(--ion-color-primary)}.secondary{border-color:var(--ion-color-secondary)}.dark{border-color:var(--ion-color-dark)}.light{border-color:var(--ion-color-light)}.medium{border-color:var(--ion-color-medium)}\n"] }]
525
- }], ctorParameters: () => [], propDecorators: { props: [{
526
- type: Input
527
- }] } });
528
-
529
- class HrefComponent {
530
- constructor(downloadService) {
531
- this.downloadService = downloadService;
532
- this.onClick = new EventEmitter();
533
- }
534
- ngOnInit() { }
535
- getFileName() {
536
- return this.downloadService.getFileNameFromUrl(this.props.url);
537
- }
538
- onClickHandler(event) {
539
- if (this.props.download && this.props.url) {
540
- event.preventDefault();
541
- this.downloadService.downloadLinkFromBrowser(this.props.url);
542
- }
543
- this.onClick.emit(this.props.token);
544
- }
545
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HrefComponent, deps: [{ token: DownloadService }], target: i0.ɵɵFactoryTarget.Component }); }
546
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HrefComponent, isStandalone: true, selector: "val-href", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
547
- <a
548
- [ngClass]="[props.color]"
549
- [class.hoverable]="props.hoverable"
550
- [href]="props.url"
551
- target="_blank"
552
- (click)="onClickHandler($event)"
553
- >{{ props.text }}</a
554
- >
555
- `, isInline: true, styles: [".primary{color:var(--ion-color-primary)}.secondary{color:var(--ion-color-secondary)}.dark{color:var(--ion-color-dark)}.medium{color:var(--ion-color-medium)}.hoverable{text-decoration:none}.hoverable:hover{text-decoration:underline}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
556
- }
557
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HrefComponent, decorators: [{
558
- type: Component,
559
- args: [{ selector: 'val-href', standalone: true, imports: [CommonModule], template: `
560
- <a
561
- [ngClass]="[props.color]"
562
- [class.hoverable]="props.hoverable"
563
- [href]="props.url"
564
- target="_blank"
565
- (click)="onClickHandler($event)"
566
- >{{ props.text }}</a
567
- >
568
- `, styles: [".primary{color:var(--ion-color-primary)}.secondary{color:var(--ion-color-secondary)}.dark{color:var(--ion-color-dark)}.medium{color:var(--ion-color-medium)}.hoverable{text-decoration:none}.hoverable:hover{text-decoration:underline}\n"] }]
569
- }], ctorParameters: () => [{ type: DownloadService }], propDecorators: { props: [{
570
- type: Input
571
- }], onClick: [{
572
- type: Output
573
- }] } });
574
-
575
- class IconComponent {
576
- constructor(service) { }
577
- ngOnInit() { }
578
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconComponent, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Component }); }
579
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: IconComponent, isStandalone: true, selector: "val-icon", inputs: { props: "props" }, ngImport: i0, template: ` <ion-icon aria-hidden="true" [ngClass]="[props.size]" [name]="props.name" [color]="props.color" /> `, isInline: true, styles: [".small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
580
- }
581
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: IconComponent, decorators: [{
582
- type: Component,
583
- args: [{ selector: 'val-icon', standalone: true, imports: [CommonModule, IonIcon], template: ` <ion-icon aria-hidden="true" [ngClass]="[props.size]" [name]="props.name" [color]="props.color" /> `, styles: [".small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}\n"] }]
584
- }], ctorParameters: () => [{ type: IconService }], propDecorators: { props: [{
585
- type: Input
586
- }] } });
587
-
588
- class ImageComponent {
589
- constructor() {
590
- this.available = true;
591
- }
592
- ngOnInit() { }
593
- changeToVisible() {
594
- setInterval(() => {
595
- this.available = true;
596
- }, 100);
597
- }
598
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
599
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImageComponent, isStandalone: true, selector: "val-image", inputs: { props: "props" }, ngImport: i0, template: `
600
- <img
601
- [ngClass]="['image', props.mode, props.size]"
602
- [class.bordered]="props.bordered"
603
- [class.shaded]="props.shaded"
604
- [class.limited]="props.limited"
605
- [class.visible]="available"
606
- [src]="props.src"
607
- [alt]="props.alt"
608
- [style.width.px]="props.width"
609
- [style.max-width.px]="props.width"
610
- [style.height.px]="props.height"
611
- />
612
- `, isInline: true, styles: [".small{width:30%}.small.limited{max-width:6.25rem}.medium{width:50%}.medium.limited{max-width:15rem}.large{width:70%}.large.limited{max-width:28.125rem}.xlarge{width:100%}.xlarge.limited{max-width:43.75rem}.image{opacity:0;height:0;display:block}.visible{animation:appereance ease-in 1s forwards}@keyframes appereance{0%{opacity:0;height:0}to{opacity:1;height:auto}}.rounded{border-radius:.5rem}.circular{border-radius:50%}.bordered{border:.0625rem solid var(--ion-color-medium)}.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
613
- }
614
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageComponent, decorators: [{
615
- type: Component,
616
- args: [{ selector: 'val-image', standalone: true, imports: [CommonModule], template: `
617
- <img
618
- [ngClass]="['image', props.mode, props.size]"
619
- [class.bordered]="props.bordered"
620
- [class.shaded]="props.shaded"
621
- [class.limited]="props.limited"
622
- [class.visible]="available"
623
- [src]="props.src"
624
- [alt]="props.alt"
625
- [style.width.px]="props.width"
626
- [style.max-width.px]="props.width"
627
- [style.height.px]="props.height"
628
- />
629
- `, styles: [".small{width:30%}.small.limited{max-width:6.25rem}.medium{width:50%}.medium.limited{max-width:15rem}.large{width:70%}.large.limited{max-width:28.125rem}.xlarge{width:100%}.xlarge.limited{max-width:43.75rem}.image{opacity:0;height:0;display:block}.visible{animation:appereance ease-in 1s forwards}@keyframes appereance{0%{opacity:0;height:0}to{opacity:1;height:auto}}.rounded{border-radius:.5rem}.circular{border-radius:50%}.bordered{border:.0625rem solid var(--ion-color-medium)}.shaded{box-shadow:.1875rem .625rem .5rem #1219541a}\n"] }]
630
- }], ctorParameters: () => [], propDecorators: { props: [{
631
- type: Input
632
- }] } });
633
-
634
- class ProgressBarComponent {
635
- constructor() { }
636
- ngOnInit() { }
637
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
638
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ProgressBarComponent, isStandalone: true, selector: "val-progress-bar", inputs: { props: "props" }, ngImport: i0, template: `
639
- <ion-progress-bar
640
- [ngClass]="[props.size]"
641
- [class.rounded]="props.rounded"
642
- [value]="props.progress"
643
- [color]="props.color"
644
- [buffer]="props.buffer"
645
- [type]="props.type"
646
- ></ion-progress-bar>
647
- `, isInline: true, styles: ["ion-progress-bar.rounded{border-radius:.5rem}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonProgressBar, selector: "ion-progress-bar", inputs: ["buffer", "color", "mode", "reversed", "type", "value"] }] }); }
648
- }
649
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProgressBarComponent, decorators: [{
650
- type: Component,
651
- args: [{ selector: 'val-progress-bar', standalone: true, imports: [CommonModule, IonProgressBar], template: `
652
- <ion-progress-bar
653
- [ngClass]="[props.size]"
654
- [class.rounded]="props.rounded"
655
- [value]="props.progress"
656
- [color]="props.color"
657
- [buffer]="props.buffer"
658
- [type]="props.type"
659
- ></ion-progress-bar>
660
- `, styles: ["ion-progress-bar.rounded{border-radius:.5rem}.medium{height:.25rem}.large{height:.375rem}.xlarge{height:.5rem}\n"] }]
661
- }], ctorParameters: () => [], propDecorators: { props: [{
662
- type: Input
663
- }] } });
664
-
665
- class TextComponent {
666
- constructor() { }
667
- ngOnInit() { }
668
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
669
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextComponent, isStandalone: true, selector: "val-text", inputs: { props: "props" }, ngImport: i0, template: `
670
- <ion-text [color]="props.color">
671
- <p [class]="props.size" [class.bold]="props.bold">{{ props.content }}</p>
672
- </ion-text>
673
- `, isInline: true, styles: [".small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
674
- }
675
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextComponent, decorators: [{
676
- type: Component,
677
- args: [{ selector: 'val-text', standalone: true, imports: [IonText], template: `
678
- <ion-text [color]="props.color">
679
- <p [class]="props.size" [class.bold]="props.bold">{{ props.content }}</p>
680
- </ion-text>
681
- `, styles: [".small{font-size:.75rem;line-height:1.25rem;font-weight:400}.small.bold{font-size:.75rem;line-height:1.25rem;font-weight:700}.medium{font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.medium{font-size:1rem;line-height:1.5rem}}.medium.bold{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium.bold{font-size:1rem;line-height:1.5rem}}.large{font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.large{font-size:1.125rem;line-height:1.5rem}}.large.bold{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large.bold{font-size:1.125rem;line-height:1.5rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}.xlarge.bold{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge.bold{font-size:1.5rem;line-height:2rem}}\n"] }]
682
- }], ctorParameters: () => [], propDecorators: { props: [{
683
- type: Input
684
- }] } });
685
-
686
- class TitleComponent {
687
- constructor() { }
688
- ngOnInit() { }
689
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
690
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TitleComponent, isStandalone: true, selector: "val-title", inputs: { props: "props" }, ngImport: i0, template: `
691
- <ion-text [color]="props.color">
692
- <p *ngIf="!props.bold" [class]="props.size">{{ props.content }}</p>
693
- <b *ngIf="props.bold">
694
- <p [class]="props.size">{{ props.content }}</p>
695
- </b>
696
- </ion-text>
697
- `, isInline: true, styles: [".small{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.small{font-size:1rem;line-height:1.5rem}}.medium{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium{font-size:1.125rem;line-height:1.5rem}}.large{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large{font-size:1.5rem;line-height:2rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
698
- }
699
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleComponent, decorators: [{
700
- type: Component,
701
- args: [{ selector: 'val-title', standalone: true, imports: [NgIf, IonText], template: `
702
- <ion-text [color]="props.color">
703
- <p *ngIf="!props.bold" [class]="props.size">{{ props.content }}</p>
704
- <b *ngIf="props.bold">
705
- <p [class]="props.size">{{ props.content }}</p>
706
- </b>
707
- </ion-text>
708
- `, styles: [".small{font-size:.875rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.small{font-size:1rem;line-height:1.5rem}}.medium{font-size:1rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.medium{font-size:1.125rem;line-height:1.5rem}}.large{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.large{font-size:1.5rem;line-height:2rem}}.xlarge{font-size:1.125rem;line-height:1.5rem;font-weight:700}@media (min-width: 768px){.xlarge{font-size:1.5rem;line-height:2rem}}\n"] }]
709
- }], ctorParameters: () => [], propDecorators: { props: [{
710
- type: Input
711
- }] } });
712
-
713
- class AlertBoxComponent {
714
- constructor() { }
715
- ngOnInit() { }
716
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AlertBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
717
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AlertBoxComponent, isStandalone: true, selector: "val-alert-box", inputs: { props: "props" }, ngImport: i0, template: `
718
- <val-box [props]="props.box">
719
- <div class="content-container" body>
720
- <val-icon [props]="props.icon"></val-icon>
721
- <val-text class="text" [props]="props.text"></val-text>
722
- </div>
723
- </val-box>
724
- `, isInline: true, styles: [".text{margin-left:.25rem}.content-container{display:flex;align-items:flex-start}\n"], dependencies: [{ kind: "component", type: BoxComponent, selector: "val-box", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: IconComponent, selector: "val-icon", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
725
- }
726
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AlertBoxComponent, decorators: [{
727
- type: Component,
728
- args: [{ selector: 'val-alert-box', standalone: true, imports: [BoxComponent, IconComponent, TextComponent], template: `
729
- <val-box [props]="props.box">
730
- <div class="content-container" body>
731
- <val-icon [props]="props.icon"></val-icon>
732
- <val-text class="text" [props]="props.text"></val-text>
733
- </div>
734
- </val-box>
735
- `, styles: [".text{margin-left:.25rem}.content-container{display:flex;align-items:flex-start}\n"] }]
736
- }], ctorParameters: () => [], propDecorators: { props: [{
737
- type: Input
738
- }] } });
739
-
740
- class ButtonGroupComponent {
741
- constructor() {
742
- this.onClick = new EventEmitter();
743
- }
744
- ngOnInit() { }
745
- clickHandler(token) {
746
- this.onClick.emit(token);
747
- }
748
- get Position() {
749
- if (this.props.buttons.length === 1 && this.props.position === 'spaced') {
750
- return 'right';
751
- }
752
- return this.props.position;
753
- }
754
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
755
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ButtonGroupComponent, isStandalone: true, selector: "val-button-group", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
756
- <div [ngClass]="['group-container', Position]" [class.column]="props.columned" style="width: 100%;">
757
- <val-button
758
- *ngFor="let b of props.buttons"
759
- [props]="b"
760
- (onClick)="clickHandler(b?.token)"
761
- [ngStyle]="{ width: props.buttons.length === 1 ? '100%' : 'auto' }"
762
- ></val-button>
763
- </div>
764
- `, isInline: true, styles: ["val-button{display:inline-block}.group-container{width:100%}.group-container.left{text-align:left}.group-container.center{text-align:center}.group-container.right{text-align:right}.group-container.column{display:flex;flex-direction:column-reverse}.group-container.spaced{display:flex;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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["props"], outputs: ["onClick"] }] }); }
765
- }
766
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonGroupComponent, decorators: [{
767
- type: Component,
768
- args: [{ selector: 'val-button-group', standalone: true, imports: [CommonModule, ButtonComponent], template: `
769
- <div [ngClass]="['group-container', Position]" [class.column]="props.columned" style="width: 100%;">
770
- <val-button
771
- *ngFor="let b of props.buttons"
772
- [props]="b"
773
- (onClick)="clickHandler(b?.token)"
774
- [ngStyle]="{ width: props.buttons.length === 1 ? '100%' : 'auto' }"
775
- ></val-button>
776
- </div>
777
- `, styles: ["val-button{display:inline-block}.group-container{width:100%}.group-container.left{text-align:left}.group-container.center{text-align:center}.group-container.right{text-align:right}.group-container.column{display:flex;flex-direction:column-reverse}.group-container.spaced{display:flex;justify-content:space-between}\n"] }]
778
- }], ctorParameters: () => [], propDecorators: { props: [{
779
- type: Input
780
- }], onClick: [{
781
- type: Output
782
- }] } });
783
-
784
- var CardType;
785
- (function (CardType) {
786
- CardType["native"] = "native";
787
- CardType["checker"] = "checker";
788
- CardType["tappable"] = "tappable";
789
- CardType["complex"] = "complex";
790
- })(CardType || (CardType = {}));
791
- var CardSection;
792
- (function (CardSection) {
793
- CardSection[CardSection["headerLeft"] = 0] = "headerLeft";
794
- CardSection[CardSection["headerRight"] = 1] = "headerRight";
795
- CardSection[CardSection["content"] = 2] = "content";
796
- CardSection[CardSection["footer"] = 3] = "footer";
797
- CardSection[CardSection["footerExtra"] = 4] = "footerExtra";
798
- })(CardSection || (CardSection = {}));
799
-
800
- class CardComponent {
801
- constructor() {
802
- this.onClick = new EventEmitter();
803
- this.types = CardType;
804
- this.actionTypes = ToolbarActionType;
805
- this.sections = CardSection;
806
- }
807
- ngOnInit() { }
808
- clickHandler(section, token) {
809
- this.onClick.emit({ section, token });
810
- }
811
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
812
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CardComponent, isStandalone: true, selector: "val-card", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
813
- <ion-card *ngIf="props.type === types.native">
814
- <img alt="image" [src]="props.image" />
815
- <ion-card-header *ngIf="props.title || props.overtitle">
816
- <ion-card-title *ngIf="props.title">{{ props.title }}</ion-card-title>
817
- <ion-card-subtitle *ngIf="props.overtitle">{{ props.overtitle }}</ion-card-subtitle>
818
- </ion-card-header>
819
-
820
- <ion-card-content *ngIf="props.content">{{ props.content }}</ion-card-content>
821
-
822
- <val-button
823
- *ngFor="let b of props.footerActions"
824
- [props]="b"
825
- (onClick)="clickHandler(sections.footer, b.token)"
826
- ></val-button>
827
- </ion-card>
828
-
829
- <ion-card
830
- *ngIf="props.type === types.tappable"
831
- (click)="clickHandler(sections.content, props.token)"
832
- class="tapable"
833
- >
834
- <img alt="image" [src]="props.image" />
835
- <ion-card-header *ngIf="props.title || props.overtitle">
836
- <ion-card-title *ngIf="props.title">{{ props.title }}</ion-card-title>
837
- <ion-card-subtitle *ngIf="props.overtitle">{{ props.overtitle }}</ion-card-subtitle>
838
- </ion-card-header>
839
-
840
- <ion-card-content *ngIf="props.content">{{ props.content }}</ion-card-content>
841
- </ion-card>
842
-
843
- <ion-card
844
- *ngIf="props.type === types.checker"
845
- (click)="clickHandler(sections.content, props.token)"
846
- class="tapable"
847
- >
848
- <ion-card-header *ngIf="props.title || props.overtitle" class="checker">
849
- <div>
850
- <ion-card-subtitle *ngIf="props.overtitle">{{ props.overtitle }}</ion-card-subtitle>
851
- <ion-card-title *ngIf="props.title">{{ props.title }}</ion-card-title>
852
- </div>
853
- <div>
854
- <ion-checkbox [checked]="props.selected"></ion-checkbox>
855
- </div>
856
- </ion-card-header>
857
-
858
- <ion-card-content *ngIf="props.content">{{ props.content }}</ion-card-content>
859
- </ion-card>
860
-
861
- <ion-card *ngIf="props.type === types.complex" class="complex">
862
- <ion-card-header class="complex-header">
863
- <ion-buttons style="display: flex; align-items: center" *ngIf="props.leftActions.length > 0">
864
- <ng-container *ngFor="let action of props.leftActions">
865
- <ion-button
866
- *ngIf="action.type === actionTypes.ICON"
867
- (click)="clickHandler(sections.headerLeft, action.token)"
868
- >
869
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
870
- </ion-button>
871
- <val-avatar
872
- style="margin-right: 4px; cursor: pointer"
873
- *ngIf="action.type === actionTypes.AVATAR"
874
- [props]="{ size: 'small', image: action.description, default: '' }"
875
- (onClick)="clickHandler(sections.headerLeft, action.token)"
876
- ></val-avatar>
877
- <val-image
878
- *ngIf="action.type === actionTypes.IMAGE"
879
- [props]="action.image"
880
- (click)="clickHandler(sections.headerLeft, action.token)"
881
- ></val-image>
882
- <ion-button
883
- *ngIf="action.type === actionTypes.BUTTON"
884
- (click)="clickHandler(sections.headerLeft, action.token)"
885
- >
886
- {{ action.description }}
887
- </ion-button>
888
- <div *ngIf="props.headerText">
889
- <val-text [props]="{ content: props.headerText, color: 'dark', bold: true, size: 'medium' }" />
890
- </div>
891
- </ng-container>
892
- </ion-buttons>
893
- <ion-buttons style="display: flex; align-items: center" *ngIf="props.rightActions.length > 0">
894
- <ng-container *ngFor="let action of props.rightActions">
895
- <ion-button
896
- *ngIf="action.type === actionTypes.ICON"
897
- (click)="clickHandler(sections.headerRight, action.token)"
898
- >
899
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
900
- </ion-button>
901
- <val-avatar
902
- style="margin-right: 4px; cursor: pointer"
903
- *ngIf="action.type === actionTypes.AVATAR"
904
- [props]="{ size: 'small', image: action.description, default: '' }"
905
- (onClick)="clickHandler(sections.headerRight, action.token)"
906
- ></val-avatar>
907
- <val-image
908
- *ngIf="action.type === actionTypes.IMAGE"
909
- [props]="action.image"
910
- (click)="clickHandler(sections.headerRight, action.token)"
911
- ></val-image>
912
- <ion-button
913
- *ngIf="action.type === actionTypes.BUTTON"
914
- (click)="clickHandler(sections.headerRight, action.token)"
915
- >
916
- {{ action.description }}
917
- </ion-button>
918
- </ng-container>
919
- </ion-buttons>
920
- </ion-card-header>
921
-
922
- <div class="tapable" (click)="clickHandler(sections.content, props.token)">
923
- <ion-card-header *ngIf="props.title || props.overtitle" class="complex-header">
924
- <div>
925
- <ion-card-subtitle *ngIf="props.overtitle">{{ props.overtitle }}</ion-card-subtitle>
926
- <ion-card-title *ngIf="props.title">{{ props.title }}</ion-card-title>
927
- </div>
928
- </ion-card-header>
929
-
930
- <img alt="image" [src]="props.image" />
931
- <ion-card-content *ngIf="props.content" class="complex-content">{{ props.content }}</ion-card-content>
932
- </div>
933
- <val-button
934
- *ngFor="let b of props.footerActions"
935
- [props]="b"
936
- (onClick)="clickHandler(sections.footer, b.token)"
937
- ></val-button>
938
- <ion-buttons
939
- style="display: flex; align-items: center; justify-content: flex-end; margin: 8px"
940
- *ngIf="props.footerComplexActions.length > 0"
941
- >
942
- <ng-container *ngFor="let action of props.footerComplexActions">
943
- <ion-button
944
- *ngIf="action.type === actionTypes.ICON"
945
- (click)="clickHandler(sections.footerExtra, action.token)"
946
- >
947
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
948
- </ion-button>
949
- <val-avatar
950
- style="margin-right: 4px; cursor: pointer"
951
- *ngIf="action.type === actionTypes.AVATAR"
952
- [props]="{ size: 'small', image: action.description, default: '' }"
953
- (onClick)="clickHandler(sections.footerExtra, action.token)"
954
- ></val-avatar>
955
- <val-image
956
- *ngIf="action.type === actionTypes.IMAGE"
957
- [props]="action.image"
958
- (click)="clickHandler(sections.footerExtra, action.token)"
959
- ></val-image>
960
- <ion-button
961
- *ngIf="action.type === actionTypes.BUTTON"
962
- (click)="clickHandler(sections.footerExtra, action.token)"
963
- color="dark"
964
- >
965
- {{ action.description }}
966
- </ion-button>
967
- </ng-container>
968
- </ion-buttons>
969
- </ion-card>
970
- `, isInline: true, styles: ["ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: ButtonComponent, selector: "val-button", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
971
- }
972
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardComponent, decorators: [{
973
- type: Component,
974
- args: [{ selector: 'val-card', standalone: true, imports: [
975
- CommonModule,
976
- ButtonComponent,
977
- AvatarComponent,
978
- ImageComponent,
979
- TextComponent,
980
- IonCard,
981
- IonCardContent,
982
- IonCardHeader,
983
- IonCardTitle,
984
- IonCardSubtitle,
985
- IonCheckbox,
986
- IonButtons,
987
- IonButton,
988
- IonIcon,
989
- ], template: `
990
- <ion-card *ngIf="props.type === types.native">
991
- <img alt="image" [src]="props.image" />
992
- <ion-card-header *ngIf="props.title || props.overtitle">
993
- <ion-card-title *ngIf="props.title">{{ props.title }}</ion-card-title>
994
- <ion-card-subtitle *ngIf="props.overtitle">{{ props.overtitle }}</ion-card-subtitle>
995
- </ion-card-header>
996
-
997
- <ion-card-content *ngIf="props.content">{{ props.content }}</ion-card-content>
998
-
999
- <val-button
1000
- *ngFor="let b of props.footerActions"
1001
- [props]="b"
1002
- (onClick)="clickHandler(sections.footer, b.token)"
1003
- ></val-button>
1004
- </ion-card>
1005
-
1006
- <ion-card
1007
- *ngIf="props.type === types.tappable"
1008
- (click)="clickHandler(sections.content, props.token)"
1009
- class="tapable"
1010
- >
1011
- <img alt="image" [src]="props.image" />
1012
- <ion-card-header *ngIf="props.title || props.overtitle">
1013
- <ion-card-title *ngIf="props.title">{{ props.title }}</ion-card-title>
1014
- <ion-card-subtitle *ngIf="props.overtitle">{{ props.overtitle }}</ion-card-subtitle>
1015
- </ion-card-header>
1016
-
1017
- <ion-card-content *ngIf="props.content">{{ props.content }}</ion-card-content>
1018
- </ion-card>
1019
-
1020
- <ion-card
1021
- *ngIf="props.type === types.checker"
1022
- (click)="clickHandler(sections.content, props.token)"
1023
- class="tapable"
1024
- >
1025
- <ion-card-header *ngIf="props.title || props.overtitle" class="checker">
1026
- <div>
1027
- <ion-card-subtitle *ngIf="props.overtitle">{{ props.overtitle }}</ion-card-subtitle>
1028
- <ion-card-title *ngIf="props.title">{{ props.title }}</ion-card-title>
1029
- </div>
1030
- <div>
1031
- <ion-checkbox [checked]="props.selected"></ion-checkbox>
1032
- </div>
1033
- </ion-card-header>
1034
-
1035
- <ion-card-content *ngIf="props.content">{{ props.content }}</ion-card-content>
1036
- </ion-card>
1037
-
1038
- <ion-card *ngIf="props.type === types.complex" class="complex">
1039
- <ion-card-header class="complex-header">
1040
- <ion-buttons style="display: flex; align-items: center" *ngIf="props.leftActions.length > 0">
1041
- <ng-container *ngFor="let action of props.leftActions">
1042
- <ion-button
1043
- *ngIf="action.type === actionTypes.ICON"
1044
- (click)="clickHandler(sections.headerLeft, action.token)"
1045
- >
1046
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
1047
- </ion-button>
1048
- <val-avatar
1049
- style="margin-right: 4px; cursor: pointer"
1050
- *ngIf="action.type === actionTypes.AVATAR"
1051
- [props]="{ size: 'small', image: action.description, default: '' }"
1052
- (onClick)="clickHandler(sections.headerLeft, action.token)"
1053
- ></val-avatar>
1054
- <val-image
1055
- *ngIf="action.type === actionTypes.IMAGE"
1056
- [props]="action.image"
1057
- (click)="clickHandler(sections.headerLeft, action.token)"
1058
- ></val-image>
1059
- <ion-button
1060
- *ngIf="action.type === actionTypes.BUTTON"
1061
- (click)="clickHandler(sections.headerLeft, action.token)"
1062
- >
1063
- {{ action.description }}
1064
- </ion-button>
1065
- <div *ngIf="props.headerText">
1066
- <val-text [props]="{ content: props.headerText, color: 'dark', bold: true, size: 'medium' }" />
1067
- </div>
1068
- </ng-container>
1069
- </ion-buttons>
1070
- <ion-buttons style="display: flex; align-items: center" *ngIf="props.rightActions.length > 0">
1071
- <ng-container *ngFor="let action of props.rightActions">
1072
- <ion-button
1073
- *ngIf="action.type === actionTypes.ICON"
1074
- (click)="clickHandler(sections.headerRight, action.token)"
1075
- >
1076
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
1077
- </ion-button>
1078
- <val-avatar
1079
- style="margin-right: 4px; cursor: pointer"
1080
- *ngIf="action.type === actionTypes.AVATAR"
1081
- [props]="{ size: 'small', image: action.description, default: '' }"
1082
- (onClick)="clickHandler(sections.headerRight, action.token)"
1083
- ></val-avatar>
1084
- <val-image
1085
- *ngIf="action.type === actionTypes.IMAGE"
1086
- [props]="action.image"
1087
- (click)="clickHandler(sections.headerRight, action.token)"
1088
- ></val-image>
1089
- <ion-button
1090
- *ngIf="action.type === actionTypes.BUTTON"
1091
- (click)="clickHandler(sections.headerRight, action.token)"
1092
- >
1093
- {{ action.description }}
1094
- </ion-button>
1095
- </ng-container>
1096
- </ion-buttons>
1097
- </ion-card-header>
1098
-
1099
- <div class="tapable" (click)="clickHandler(sections.content, props.token)">
1100
- <ion-card-header *ngIf="props.title || props.overtitle" class="complex-header">
1101
- <div>
1102
- <ion-card-subtitle *ngIf="props.overtitle">{{ props.overtitle }}</ion-card-subtitle>
1103
- <ion-card-title *ngIf="props.title">{{ props.title }}</ion-card-title>
1104
- </div>
1105
- </ion-card-header>
1106
-
1107
- <img alt="image" [src]="props.image" />
1108
- <ion-card-content *ngIf="props.content" class="complex-content">{{ props.content }}</ion-card-content>
1109
- </div>
1110
- <val-button
1111
- *ngFor="let b of props.footerActions"
1112
- [props]="b"
1113
- (onClick)="clickHandler(sections.footer, b.token)"
1114
- ></val-button>
1115
- <ion-buttons
1116
- style="display: flex; align-items: center; justify-content: flex-end; margin: 8px"
1117
- *ngIf="props.footerComplexActions.length > 0"
1118
- >
1119
- <ng-container *ngFor="let action of props.footerComplexActions">
1120
- <ion-button
1121
- *ngIf="action.type === actionTypes.ICON"
1122
- (click)="clickHandler(sections.footerExtra, action.token)"
1123
- >
1124
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
1125
- </ion-button>
1126
- <val-avatar
1127
- style="margin-right: 4px; cursor: pointer"
1128
- *ngIf="action.type === actionTypes.AVATAR"
1129
- [props]="{ size: 'small', image: action.description, default: '' }"
1130
- (onClick)="clickHandler(sections.footerExtra, action.token)"
1131
- ></val-avatar>
1132
- <val-image
1133
- *ngIf="action.type === actionTypes.IMAGE"
1134
- [props]="action.image"
1135
- (click)="clickHandler(sections.footerExtra, action.token)"
1136
- ></val-image>
1137
- <ion-button
1138
- *ngIf="action.type === actionTypes.BUTTON"
1139
- (click)="clickHandler(sections.footerExtra, action.token)"
1140
- color="dark"
1141
- >
1142
- {{ action.description }}
1143
- </ion-button>
1144
- </ng-container>
1145
- </ion-buttons>
1146
- </ion-card>
1147
- `, styles: ["ion-card.tapable{transition:transform .3s ease,box-shadow .3s ease}ion-card.tapable:hover{transform:scale(1.01);box-shadow:.1875rem .625rem .5rem #1219541a}.tapable{cursor:pointer}.checker{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-header{padding:10px;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.complex-content{padding-left:10px;padding-top:4px;padding-bottom:10px}.complex{border-radius:16px}\n"] }]
1148
- }], ctorParameters: () => [], propDecorators: { props: [{
1149
- type: Input
1150
- }], onClick: [{
1151
- type: Output
1152
- }] } });
1153
-
1154
- class CheckInputComponent {
1155
- constructor() { }
1156
- ngOnInit() { }
1157
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1158
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CheckInputComponent, isStandalone: true, selector: "val-check-input", ngImport: i0, template: ` <ion-checkbox>I agree to the terms and conditions</ion-checkbox> `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonCheckbox, selector: "ion-checkbox", inputs: ["checked", "color", "disabled", "indeterminate", "justify", "labelPlacement", "mode", "name", "value"] }] }); }
1159
- }
1160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckInputComponent, decorators: [{
1161
- type: Component,
1162
- args: [{ selector: 'val-check-input', standalone: true, imports: [CommonModule, IonCheckbox], template: ` <ion-checkbox>I agree to the terms and conditions</ion-checkbox> ` }]
1163
- }], ctorParameters: () => [] });
1164
-
1165
- class CommentInputComponent {
1166
- constructor() { }
1167
- ngOnInit() { }
1168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommentInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CommentInputComponent, isStandalone: true, selector: "val-comment-input", inputs: { props: "props" }, ngImport: i0, template: `
1170
- <ion-textarea [formControl]="props.control" [counter]="true" [maxlength]="props.range.max"></ion-textarea>
1171
- `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }] }); }
1172
- }
1173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommentInputComponent, decorators: [{
1174
- type: Component,
1175
- args: [{ selector: 'val-comment-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonCheckbox, IonTextarea], template: `
1176
- <ion-textarea [formControl]="props.control" [counter]="true" [maxlength]="props.range.max"></ion-textarea>
1177
- ` }]
1178
- }], ctorParameters: () => [], propDecorators: { props: [{
1179
- type: Input
1180
- }] } });
1181
-
1182
- class ContentLoaderComponent {
1183
- constructor() { }
1184
- ngOnInit() { }
1185
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ContentLoaderComponent, isStandalone: true, selector: "val-content-loader", inputs: { props: "props" }, ngImport: i0, template: `
1187
- <div [ngClass]="['spinner-wrapper', props.size]">
1188
- <ion-spinner [ngClass]="[props.size]" [name]="props.name" [color]="props.color"></ion-spinner>
1189
- <ion-text [color]="props.color">
1190
- <p>{{ props.text }}</p>
1191
- </ion-text>
1192
- </div>
1193
- `, isInline: true, styles: [".small{width:1.5rem;height:1.5rem}.medium{width:2.375rem;height:2.375rem}.large{width:3rem;height:3rem}.spinner-wrapper{width:100%;text-align:center}.spinner-wrapper.small{height:4.5rem;padding-top:1.5rem;font-size:.75rem;line-height:1.25rem;font-weight:400}.spinner-wrapper.medium{height:6.125rem;padding-top:2rem;font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.spinner-wrapper.medium{font-size:1rem;line-height:1.5rem}}.spinner-wrapper.large{height:6.75rem;padding-top:2.625rem;font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.spinner-wrapper.large{font-size:1.125rem;line-height:1.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
1194
- }
1195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ContentLoaderComponent, decorators: [{
1196
- type: Component,
1197
- args: [{ selector: 'val-content-loader', standalone: true, imports: [CommonModule, IonSpinner, IonText], template: `
1198
- <div [ngClass]="['spinner-wrapper', props.size]">
1199
- <ion-spinner [ngClass]="[props.size]" [name]="props.name" [color]="props.color"></ion-spinner>
1200
- <ion-text [color]="props.color">
1201
- <p>{{ props.text }}</p>
1202
- </ion-text>
1203
- </div>
1204
- `, styles: [".small{width:1.5rem;height:1.5rem}.medium{width:2.375rem;height:2.375rem}.large{width:3rem;height:3rem}.spinner-wrapper{width:100%;text-align:center}.spinner-wrapper.small{height:4.5rem;padding-top:1.5rem;font-size:.75rem;line-height:1.25rem;font-weight:400}.spinner-wrapper.medium{height:6.125rem;padding-top:2rem;font-size:.875rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.spinner-wrapper.medium{font-size:1rem;line-height:1.5rem}}.spinner-wrapper.large{height:6.75rem;padding-top:2.625rem;font-size:1rem;line-height:1.5rem;font-weight:400}@media (min-width: 768px){.spinner-wrapper.large{font-size:1.125rem;line-height:1.5rem}}\n"] }]
1205
- }], ctorParameters: () => [], propDecorators: { props: [{
1206
- type: Input
1207
- }] } });
1208
-
1209
- class DateInputComponent {
1210
- constructor() { }
1211
- ngOnInit() { }
1212
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1213
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DateInputComponent, isStandalone: true, selector: "val-date-input", inputs: { props: "props" }, ngImport: i0, template: `
1214
- <div class="button-container">
1215
- <ion-datetime-button class="action" datetime="datetime"></ion-datetime-button>
1216
- </div>
1217
- <ion-modal [keepContentsMounted]="true">
1218
- <ng-template>
1219
- <ion-datetime
1220
- [formControl]="props.control"
1221
- id="datetime"
1222
- presentation="date"
1223
- locale="es-ES"
1224
- [firstDayOfWeek]="1"
1225
- [showDefaultButtons]="true"
1226
- doneText="Aceptar"
1227
- cancelText="Cancelar"
1228
- formatOptions="{
1229
- date: { weekday: 'short', month: 'long', day: '2-digit' },
1230
- time: {
1231
- hour: '2-digit',
1232
- minute: '2-digit',
1233
- },
1234
- }"
1235
- >
1236
- <span slot="title">{{ props.hint }}</span>
1237
- </ion-datetime>
1238
- </ng-template>
1239
- </ion-modal>
1240
- `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "component", type: IonDatetimeButton, selector: "ion-datetime-button", inputs: ["color", "datetime", "disabled", "mode"] }, { kind: "component", type: IonModal, selector: "ion-modal" }] }); }
1241
- }
1242
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateInputComponent, decorators: [{
1243
- type: Component,
1244
- args: [{ selector: 'val-date-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonDatetime, IonDatetimeButton, IonModal], template: `
1245
- <div class="button-container">
1246
- <ion-datetime-button class="action" datetime="datetime"></ion-datetime-button>
1247
- </div>
1248
- <ion-modal [keepContentsMounted]="true">
1249
- <ng-template>
1250
- <ion-datetime
1251
- [formControl]="props.control"
1252
- id="datetime"
1253
- presentation="date"
1254
- locale="es-ES"
1255
- [firstDayOfWeek]="1"
1256
- [showDefaultButtons]="true"
1257
- doneText="Aceptar"
1258
- cancelText="Cancelar"
1259
- formatOptions="{
1260
- date: { weekday: 'short', month: 'long', day: '2-digit' },
1261
- time: {
1262
- hour: '2-digit',
1263
- minute: '2-digit',
1264
- },
1265
- }"
1266
- >
1267
- <span slot="title">{{ props.hint }}</span>
1268
- </ion-datetime>
1269
- </ng-template>
1270
- </ion-modal>
1271
- `, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.button-container{display:flex;flex-direction:column;align-items:flex-start}.action{margin-top:.25rem}\n"] }]
1272
- }], ctorParameters: () => [], propDecorators: { props: [{
1273
- type: Input
1274
- }] } });
1275
-
1276
- class EmailInputComponent {
1277
- constructor() { }
1278
- ngOnInit() { }
1279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmailInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1280
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EmailInputComponent, isStandalone: true, selector: "val-email-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="email" [placeholder]="props.placeholder"></ion-input> `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
1281
- }
1282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EmailInputComponent, decorators: [{
1283
- type: Component,
1284
- args: [{ selector: 'val-email-input', standalone: true, imports: [CommonModule, ReactiveFormsModule, IonInput], template: ` <ion-input [formControl]="props.control" type="email" [placeholder]="props.placeholder"></ion-input> ` }]
1285
- }], ctorParameters: () => [], propDecorators: { props: [{
1286
- type: Input
1287
- }] } });
1288
-
1289
- class FileInputComponent {
1290
- constructor() {
1291
- this.contrastButton = {
1292
- ...PrimarySolidDefaultRoundButton('Subir archivo'),
1293
- color: 'light',
1294
- };
1295
- }
1296
- ngOnInit() { }
1297
- onFileSelected(event) {
1298
- this.selectedFile = event.target.files[0];
1299
- this.props.control.setValue(this.selectedFile);
1300
- }
1301
- reset() {
1302
- this.selectedFile = null;
1303
- this.fileInput.nativeElement.value = '';
1304
- }
1305
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1306
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FileInputComponent, isStandalone: true, selector: "val-file-input", inputs: { props: "props" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: `
1307
- <div class="file-container">
1308
- <input style="display: none" type="file" (change)="onFileSelected($event)" #fileInput />
1309
- <div class="name-container">
1310
- <ion-icon [name]="selectedFile ? 'checkmark-circle-outline' : 'alert-circle-outline'"></ion-icon>
1311
- <val-text
1312
- style="margin-left: 4px;"
1313
- [props]="{
1314
- content: selectedFile ? selectedFile.name : 'No has seleccionado archivo',
1315
- color: 'dark',
1316
- bold: false,
1317
- size: 'medium',
1318
- }"
1319
- ></val-text>
1320
- </div>
1321
- <val-button [props]="contrastButton" (onClick)="fileInput.click()"></val-button>
1322
- </div>
1323
- `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.file-container{margin-top:.25rem}.name-container{display:flex;flex-direction:row;align-items:flex-start}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["props"], outputs: ["onClick"] }] }); }
1324
- }
1325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FileInputComponent, decorators: [{
1326
- type: Component,
1327
- args: [{ selector: 'val-file-input', standalone: true, imports: [IonIcon, TextComponent, ButtonComponent], template: `
1328
- <div class="file-container">
1329
- <input style="display: none" type="file" (change)="onFileSelected($event)" #fileInput />
1330
- <div class="name-container">
1331
- <ion-icon [name]="selectedFile ? 'checkmark-circle-outline' : 'alert-circle-outline'"></ion-icon>
1332
- <val-text
1333
- style="margin-left: 4px;"
1334
- [props]="{
1335
- content: selectedFile ? selectedFile.name : 'No has seleccionado archivo',
1336
- color: 'dark',
1337
- bold: false,
1338
- size: 'medium',
1339
- }"
1340
- ></val-text>
1341
- </div>
1342
- <val-button [props]="contrastButton" (onClick)="fileInput.click()"></val-button>
1343
- </div>
1344
- `, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.file-container{margin-top:.25rem}.name-container{display:flex;flex-direction:row;align-items:flex-start}\n"] }]
1345
- }], ctorParameters: () => [], propDecorators: { fileInput: [{
1346
- type: ViewChild,
1347
- args: ['fileInput']
1348
- }], props: [{
1349
- type: Input
1350
- }] } });
1351
-
1352
- class HintComponent {
1353
- constructor() { }
1354
- ngOnInit() { }
1355
- get Errors() {
1356
- const keys = Object.keys(this.props.errors);
1357
- const errors = [];
1358
- keys.map((e) => {
1359
- if (this.props.control.hasError(e)) {
1360
- errors.push(this.props.errors[e]);
1361
- }
1362
- });
1363
- return errors;
1364
- }
1365
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1366
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HintComponent, isStandalone: true, selector: "val-hint", inputs: { props: "props" }, ngImport: i0, template: `
1367
- <div class="hint-container" *ngIf="props.control.invalid && (props.control.touched || props.control.dirty)">
1368
- <val-text
1369
- *ngFor="let e of Errors"
1370
- [props]="{
1371
- content: e,
1372
- color: 'danger',
1373
- bold: false,
1374
- size: 'small',
1375
- }"
1376
- ></val-text>
1377
- </div>
1378
- `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.hint-container{margin-top:.25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
1379
- }
1380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HintComponent, decorators: [{
1381
- type: Component,
1382
- args: [{ selector: 'val-hint', standalone: true, imports: [CommonModule, TextComponent], template: `
1383
- <div class="hint-container" *ngIf="props.control.invalid && (props.control.touched || props.control.dirty)">
1384
- <val-text
1385
- *ngFor="let e of Errors"
1386
- [props]="{
1387
- content: e,
1388
- color: 'danger',
1389
- bold: false,
1390
- size: 'small',
1391
- }"
1392
- ></val-text>
1393
- </div>
1394
- `, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.hint-container{margin-top:.25rem}\n"] }]
1395
- }], ctorParameters: () => [], propDecorators: { props: [{
1396
- type: Input
1397
- }] } });
1398
-
1399
- class HourInputComponent {
1400
- constructor() { }
1401
- ngOnInit() { }
1402
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HourInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1403
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HourInputComponent, isStandalone: true, selector: "val-hour-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-datetime [formControl]="props.control" presentation="time"></ion-datetime>`, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }] }); }
1404
- }
1405
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HourInputComponent, decorators: [{
1406
- type: Component,
1407
- args: [{ selector: 'val-hour-input', standalone: true, imports: [ReactiveFormsModule, IonDatetime], template: ` <ion-datetime [formControl]="props.control" presentation="time"></ion-datetime>` }]
1408
- }], ctorParameters: () => [], propDecorators: { props: [{
1409
- type: Input
1410
- }] } });
1411
-
1412
- /* eslint-disable no-underscore-dangle */
1413
- class InAppBrowserService {
1414
- constructor() {
1415
- this.options = {
1416
- presentationStyle: 'popover',
1417
- url: '',
1418
- };
1419
- }
1420
- async openWithInAppBrowser(url) {
1421
- await Browser.open({ ...this.options, url });
1422
- }
1423
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InAppBrowserService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1424
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InAppBrowserService, providedIn: 'root' }); }
1425
- }
1426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InAppBrowserService, decorators: [{
1427
- type: Injectable,
1428
- args: [{
1429
- providedIn: 'root',
1430
- }]
1431
- }], ctorParameters: () => [] });
1432
-
1433
- class NavigationService {
1434
- constructor() {
1435
- this.router = inject(Router);
1436
- this.inAppBrowser = inject(InAppBrowserService);
1437
- }
1438
- navigateInApp(url) {
1439
- this.inAppBrowser.openWithInAppBrowser(url);
1440
- }
1441
- navigateWithData(route, dataTransfer) {
1442
- const navigationExtras = {
1443
- state: {
1444
- data: dataTransfer,
1445
- },
1446
- };
1447
- this.router.navigate([route], navigationExtras);
1448
- }
1449
- navigateByUrl(url) {
1450
- this.router
1451
- .navigateByUrl(url)
1452
- .then(response => { })
1453
- .catch(error => { });
1454
- }
1455
- openInNewTab(url) {
1456
- window.open(url, '_blank', 'noopener,noreferrer');
1457
- }
1458
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1459
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavigationService, providedIn: 'root' }); }
1460
- }
1461
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavigationService, decorators: [{
1462
- type: Injectable,
1463
- args: [{
1464
- providedIn: 'root',
1465
- }]
1466
- }], ctorParameters: () => [] });
1467
-
1468
- class LinkComponent {
1469
- constructor() {
1470
- this.onClick = new EventEmitter();
1471
- this.service = inject(NavigationService);
1472
- addIcons({ chevronForwardOutline });
1473
- }
1474
- ngOnInit() { }
1475
- onClickHandler() {
1476
- this.onClick.emit(this.props.token);
1477
- switch (this.props.type) {
1478
- case 'internal':
1479
- this.service.navigateByUrl(this.props.link);
1480
- break;
1481
- case 'browse':
1482
- this.service.navigateInApp(this.props.link);
1483
- break;
1484
- case 'tab':
1485
- this.service.openInNewTab(this.props.link);
1486
- break;
1487
- }
1488
- }
1489
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1490
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LinkComponent, isStandalone: true, selector: "val-link", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
1491
- <div>
1492
- <ion-button type="button" [color]="props.color" fill="clear" [size]="props.size" (click)="onClickHandler()">
1493
- <ion-icon slot="end" name="chevron-forward-outline"></ion-icon>
1494
- <ion-text>{{ props.text }}</ion-text>
1495
- </ion-button>
1496
- </div>
1497
- `, isInline: true, styles: ["ion-button{font-family:var(--ion-default-font),Arial,sans-serif}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
1498
- }
1499
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinkComponent, decorators: [{
1500
- type: Component,
1501
- args: [{ selector: 'val-link', standalone: true, imports: [IonButton, IonIcon, IonText], template: `
1502
- <div>
1503
- <ion-button type="button" [color]="props.color" fill="clear" [size]="props.size" (click)="onClickHandler()">
1504
- <ion-icon slot="end" name="chevron-forward-outline"></ion-icon>
1505
- <ion-text>{{ props.text }}</ion-text>
1506
- </ion-button>
1507
- </div>
1508
- `, styles: ["ion-button{font-family:var(--ion-default-font),Arial,sans-serif}\n"] }]
1509
- }], ctorParameters: () => [], propDecorators: { props: [{
1510
- type: Input
1511
- }], onClick: [{
1512
- type: Output
1513
- }] } });
1514
-
1515
- class LinksCakeComponent {
1516
- constructor() { }
1517
- ngOnInit() { }
1518
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinksCakeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1519
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LinksCakeComponent, isStandalone: true, selector: "val-links-cake", inputs: { props: "props" }, ngImport: i0, template: `
1520
- <div>
1521
- <div class="title">
1522
- <val-title [props]="{ content: props.title, color: 'dark', bold: false, size: props.size }"></val-title>
1523
- </div>
1524
- <div class="link" *ngFor="let l of props.links">
1525
- <val-href [props]="l"></val-href>
1526
- </div>
1527
- </div>
1528
- `, isInline: true, styles: [".title{margin:1rem 0}.link{margin-bottom:.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: HrefComponent, selector: "val-href", inputs: ["props"], outputs: ["onClick"] }] }); }
1529
- }
1530
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LinksCakeComponent, decorators: [{
1531
- type: Component,
1532
- args: [{ selector: 'val-links-cake', standalone: true, imports: [CommonModule, TitleComponent, HrefComponent], template: `
1533
- <div>
1534
- <div class="title">
1535
- <val-title [props]="{ content: props.title, color: 'dark', bold: false, size: props.size }"></val-title>
1536
- </div>
1537
- <div class="link" *ngFor="let l of props.links">
1538
- <val-href [props]="l"></val-href>
1539
- </div>
1540
- </div>
1541
- `, styles: [".title{margin:1rem 0}.link{margin-bottom:.5rem}\n"] }]
1542
- }], ctorParameters: () => [], propDecorators: { props: [{
1543
- type: Input
1544
- }] } });
1545
-
1546
- class NotesBoxComponent {
1547
- constructor() { }
1548
- ngOnInit() { }
1549
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotesBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1550
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NotesBoxComponent, isStandalone: true, selector: "val-notes-box", inputs: { props: "props" }, ngImport: i0, template: `
1551
- <val-box [props]="{ icon: '', bordered: false, color: props.color, leftBorder: true }">
1552
- <div [ngClass]="['content-container', props.size]" body>
1553
- <val-text [props]="{ content: props.prefix, color: props.textColor, bold: true, size: props.size }"></val-text>
1554
- <val-text [props]="{ content: props.text, color: props.textColor, bold: false, size: props.size }"></val-text>
1555
- </div>
1556
- </val-box>
1557
- `, isInline: true, styles: [".content-container{display:inline-grid}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BoxComponent, selector: "val-box", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
1558
- }
1559
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NotesBoxComponent, decorators: [{
1560
- type: Component,
1561
- args: [{ selector: 'val-notes-box', standalone: true, imports: [CommonModule, BoxComponent, TextComponent], template: `
1562
- <val-box [props]="{ icon: '', bordered: false, color: props.color, leftBorder: true }">
1563
- <div [ngClass]="['content-container', props.size]" body>
1564
- <val-text [props]="{ content: props.prefix, color: props.textColor, bold: true, size: props.size }"></val-text>
1565
- <val-text [props]="{ content: props.text, color: props.textColor, bold: false, size: props.size }"></val-text>
1566
- </div>
1567
- </val-box>
1568
- `, styles: [".content-container{display:inline-grid}\n"] }]
1569
- }], ctorParameters: () => [], propDecorators: { props: [{
1570
- type: Input
1571
- }] } });
1572
-
1573
- class NumberInputComponent {
1574
- constructor() { }
1575
- ngOnInit() { }
1576
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1577
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NumberInputComponent, isStandalone: true, selector: "val-number-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="number" [placeholder]="props.placeholder"></ion-input> `, isInline: true, styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
1578
- }
1579
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberInputComponent, decorators: [{
1580
- type: Component,
1581
- args: [{ selector: 'val-number-input', standalone: true, imports: [ReactiveFormsModule, IonInput], template: ` <ion-input [formControl]="props.control" type="number" [placeholder]="props.placeholder"></ion-input> ` }]
1582
- }], ctorParameters: () => [], propDecorators: { props: [{
1583
- type: Input
1584
- }] } });
1585
-
1586
- class PasswordInputComponent {
1587
- constructor() {
1588
- this.hidePassword = true;
1589
- }
1590
- ngOnInit() { }
1591
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PasswordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1592
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PasswordInputComponent, isStandalone: true, selector: "val-password-input", inputs: { props: "props" }, ngImport: i0, template: `
1593
- <div class="input-container">
1594
- <ion-input
1595
- class="sign-in__input-password"
1596
- [formControl]="props.control"
1597
- [type]="hidePassword ? 'password' : 'text'"
1598
- [placeholder]="props.placeholder"
1599
- ></ion-input>
1600
- <ion-button color="dark" fill="clear" (click)="hidePassword = !hidePassword" size="small">
1601
- <ion-icon slot="icon-only" [name]="hidePassword ? 'eye-off-outline' : 'eye-outline'"></ion-icon>
1602
- </ion-button>
1603
- </div>
1604
- `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.input-container{display:flex;align-items:center;flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
1605
- }
1606
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PasswordInputComponent, decorators: [{
1607
- type: Component,
1608
- args: [{ selector: 'val-password-input', standalone: true, imports: [ReactiveFormsModule, IonInput, IonButton, IonIcon], template: `
1609
- <div class="input-container">
1610
- <ion-input
1611
- class="sign-in__input-password"
1612
- [formControl]="props.control"
1613
- [type]="hidePassword ? 'password' : 'text'"
1614
- [placeholder]="props.placeholder"
1615
- ></ion-input>
1616
- <ion-button color="dark" fill="clear" (click)="hidePassword = !hidePassword" size="small">
1617
- <ion-icon slot="icon-only" [name]="hidePassword ? 'eye-off-outline' : 'eye-outline'"></ion-icon>
1618
- </ion-button>
1619
- </div>
1620
- `, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.input-container{display:flex;align-items:center;flex-direction:row}\n"] }]
1621
- }], ctorParameters: () => [], propDecorators: { props: [{
1622
- type: Input
1623
- }] } });
1624
-
1625
- class PinInputComponent {
1626
- constructor() {
1627
- this.codeLength = 5;
1628
- this.otpInputConfig = {
1629
- inputStyles: {
1630
- 'font-size': '36px',
1631
- width: '55px',
1632
- height: '55px',
1633
- },
1634
- inputClass: 'otp-input-box',
1635
- length: this.codeLength,
1636
- allowNumbersOnly: true,
1637
- };
1638
- }
1639
- ngOnInit() { }
1640
- reset() {
1641
- if (this.pinCode) {
1642
- this.pinCode.setValue('');
1643
- }
1644
- }
1645
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PinInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1646
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PinInputComponent, isStandalone: true, selector: "val-pin-input", inputs: { props: "props" }, viewQueries: [{ propertyName: "pinCode", first: true, predicate: NgOtpInputComponent, descendants: true }], ngImport: i0, template: `
1647
- <div class="otp">
1648
- <ng-otp-input [formCtrl]="props.control" [config]="otpInputConfig"></ng-otp-input>
1649
- </div>
1650
- `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.otp{text-align:center;margin-top:.25rem;font-family:var(--ion-default-font),Arial,sans-serif}.otp-input-box:focus{border-color:#0ff}\n"], dependencies: [{ kind: "ngmodule", type: NgOtpInputModule }, { kind: "component", type: i1$2.NgOtpInputComponent, selector: "ng-otp-input", inputs: ["config", "formCtrl"], outputs: ["onInputChange"] }] }); }
1651
- }
1652
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PinInputComponent, decorators: [{
1653
- type: Component,
1654
- args: [{ selector: 'val-pin-input', standalone: true, imports: [NgOtpInputModule], template: `
1655
- <div class="otp">
1656
- <ng-otp-input [formCtrl]="props.control" [config]="otpInputConfig"></ng-otp-input>
1657
- </div>
1658
- `, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}.otp{text-align:center;margin-top:.25rem;font-family:var(--ion-default-font),Arial,sans-serif}.otp-input-box:focus{border-color:#0ff}\n"] }]
1659
- }], ctorParameters: () => [], propDecorators: { pinCode: [{
1660
- type: ViewChild,
1661
- args: [NgOtpInputComponent, { static: false }]
1662
- }], props: [{
1663
- type: Input
1664
- }] } });
1665
-
1666
- class TitleBlockComponent {
1667
- constructor() { }
1668
- ngOnInit() { }
1669
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1670
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TitleBlockComponent, isStandalone: true, selector: "val-title-block", inputs: { props: "props" }, ngImport: i0, template: `
1671
- <div [ngClass]="['titles-container', props.position]">
1672
- <val-title
1673
- *ngIf="props.aboveTitle"
1674
- [props]="{
1675
- content: props.aboveTitle.text | uppercase,
1676
- color: props.aboveTitle.color,
1677
- bold: false,
1678
- size: props.aboveTitle.size,
1679
- }"
1680
- ></val-title>
1681
- <val-display
1682
- *ngIf="props.title"
1683
- [props]="{
1684
- content: props.title.text,
1685
- color: props.title.color,
1686
- size: props.title.size,
1687
- }"
1688
- ></val-display>
1689
- <val-title
1690
- *ngIf="props.bellowTitle"
1691
- [props]="{
1692
- content: props.bellowTitle.text,
1693
- color: props.bellowTitle.color,
1694
- bold: false,
1695
- size: props.bellowTitle.size,
1696
- }"
1697
- ></val-title>
1698
- </div>
1699
- `, isInline: true, styles: ["val-button,val-title,val-display{display:inline-block}.titles-container{width:100%;padding:.25rem;display:flex;flex-direction:column;flex-wrap:wrap}.titles-container.left{align-content:flex-start;align-items:start}.titles-container.center{align-content:center;align-items:center;text-align:center}.titles-container.right{align-content:flex-end;align-items:end;text-align:end}@media (min-width: 768px){.titles-container{padding:.5rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }] }); }
1700
- }
1701
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TitleBlockComponent, decorators: [{
1702
- type: Component,
1703
- args: [{ selector: 'val-title-block', standalone: true, imports: [CommonModule, TitleComponent, DisplayComponent], template: `
1704
- <div [ngClass]="['titles-container', props.position]">
1705
- <val-title
1706
- *ngIf="props.aboveTitle"
1707
- [props]="{
1708
- content: props.aboveTitle.text | uppercase,
1709
- color: props.aboveTitle.color,
1710
- bold: false,
1711
- size: props.aboveTitle.size,
1712
- }"
1713
- ></val-title>
1714
- <val-display
1715
- *ngIf="props.title"
1716
- [props]="{
1717
- content: props.title.text,
1718
- color: props.title.color,
1719
- size: props.title.size,
1720
- }"
1721
- ></val-display>
1722
- <val-title
1723
- *ngIf="props.bellowTitle"
1724
- [props]="{
1725
- content: props.bellowTitle.text,
1726
- color: props.bellowTitle.color,
1727
- bold: false,
1728
- size: props.bellowTitle.size,
1729
- }"
1730
- ></val-title>
1731
- </div>
1732
- `, styles: ["val-button,val-title,val-display{display:inline-block}.titles-container{width:100%;padding:.25rem;display:flex;flex-direction:column;flex-wrap:wrap}.titles-container.left{align-content:flex-start;align-items:start}.titles-container.center{align-content:center;align-items:center;text-align:center}.titles-container.right{align-content:flex-end;align-items:end;text-align:end}@media (min-width: 768px){.titles-container{padding:.5rem}}\n"] }]
1733
- }], ctorParameters: () => [], propDecorators: { props: [{
1734
- type: Input
1735
- }] } });
1736
-
1737
- class ProgressStatusComponent {
1738
- constructor() {
1739
- this.currentIndex = 0;
1740
- this.blinking = false;
1741
- }
1742
- ngOnInit() {
1743
- setInterval(() => {
1744
- this.blinking = !this.blinking;
1745
- }, 1000);
1746
- setInterval(() => {
1747
- this.getNextMessage();
1748
- }, 9000);
1749
- }
1750
- get Content() {
1751
- return this.props.messages[this.currentIndex];
1752
- }
1753
- getNextMessage() {
1754
- this.currentIndex = (this.currentIndex + 1) % this.props.messages.length;
1755
- }
1756
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProgressStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1757
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ProgressStatusComponent, isStandalone: true, selector: "val-progress-status", inputs: { props: "props" }, ngImport: i0, template: `
1758
- <div class="status-container">
1759
- <div class="title-container">
1760
- <val-title-block
1761
- [props]="{
1762
- position: 'center',
1763
- aboveTitle: props.titles.aboveTitle,
1764
- title: props.titles.title,
1765
- bellowTitle: props.titles.bellowTitle,
1766
- }"
1767
- ></val-title-block>
1768
- </div>
1769
- <div class="progress-bar-container">
1770
- <val-progress-bar
1771
- [props]="{
1772
- progress: props.progress,
1773
- size: 'xlarge',
1774
- color: props.color,
1775
- rounded: true,
1776
- type: 'determinate',
1777
- buffer: 1,
1778
- }"
1779
- ></val-progress-bar>
1780
- </div>
1781
- <div class="subtitle-container">
1782
- <div class="subtitle" [class.blink]="blinking">
1783
- <val-text [props]="{ content: Content, color: 'medium', bold: false, size: props.size }"></val-text>
1784
- </div>
1785
- </div>
1786
- </div>
1787
- `, isInline: true, styles: [".status-container{min-height:6.25rem;margin:1rem .5rem}.progress-bar-container{max-width:60%;margin:0 auto}.title-container{margin-bottom:.5rem}.subtitle-container{width:100%;display:flex}.subtitle{padding:1rem;margin:0 auto;height:1rem}.blink{animation:blink 1s infinite alternate ease-in}@keyframes blink{0%{opacity:0;margin-top:6px}to{opacity:1;margin-top:0}}\n"], dependencies: [{ kind: "component", type: TitleBlockComponent, selector: "val-title-block", inputs: ["props"] }, { kind: "component", type: ProgressBarComponent, selector: "val-progress-bar", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
1788
- }
1789
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProgressStatusComponent, decorators: [{
1790
- type: Component,
1791
- args: [{ selector: 'val-progress-status', standalone: true, imports: [TitleBlockComponent, ProgressBarComponent, TextComponent], template: `
1792
- <div class="status-container">
1793
- <div class="title-container">
1794
- <val-title-block
1795
- [props]="{
1796
- position: 'center',
1797
- aboveTitle: props.titles.aboveTitle,
1798
- title: props.titles.title,
1799
- bellowTitle: props.titles.bellowTitle,
1800
- }"
1801
- ></val-title-block>
1802
- </div>
1803
- <div class="progress-bar-container">
1804
- <val-progress-bar
1805
- [props]="{
1806
- progress: props.progress,
1807
- size: 'xlarge',
1808
- color: props.color,
1809
- rounded: true,
1810
- type: 'determinate',
1811
- buffer: 1,
1812
- }"
1813
- ></val-progress-bar>
1814
- </div>
1815
- <div class="subtitle-container">
1816
- <div class="subtitle" [class.blink]="blinking">
1817
- <val-text [props]="{ content: Content, color: 'medium', bold: false, size: props.size }"></val-text>
1818
- </div>
1819
- </div>
1820
- </div>
1821
- `, styles: [".status-container{min-height:6.25rem;margin:1rem .5rem}.progress-bar-container{max-width:60%;margin:0 auto}.title-container{margin-bottom:.5rem}.subtitle-container{width:100%;display:flex}.subtitle{padding:1rem;margin:0 auto;height:1rem}.blink{animation:blink 1s infinite alternate ease-in}@keyframes blink{0%{opacity:0;margin-top:6px}to{opacity:1;margin-top:0}}\n"] }]
1822
- }], ctorParameters: () => [], propDecorators: { props: [{
1823
- type: Input
1824
- }] } });
1825
-
1826
- class PrompterComponent {
1827
- constructor() {
1828
- this.onClick = new EventEmitter();
1829
- }
1830
- ngOnInit() { }
1831
- clickHandler(token) {
1832
- this.onClick.emit(token);
1833
- }
1834
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PrompterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1835
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PrompterComponent, isStandalone: true, selector: "val-prompter", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
1836
- <val-box
1837
- class="teleprompter-container"
1838
- [props]="{ icon: '', bordered: props.bordered, color: props.color, leftBorder: false }"
1839
- >
1840
- <div class="container" [class.teleprompter-content]="props.teleprompter" body>
1841
- <div>
1842
- <val-text
1843
- [props]="{
1844
- content: props.content,
1845
- color: '',
1846
- bold: true,
1847
- size: 'large',
1848
- }"
1849
- ></val-text>
1850
- </div>
1851
- <div *ngIf="props.buttons">
1852
- <val-button-group
1853
- class="buttons-container"
1854
- [props]="{ buttons: props.buttons, position: 'left', columned: false }"
1855
- (onClick)="clickHandler($event)"
1856
- ></val-button-group>
1857
- </div>
1858
- <div *ngIf="props.hrefs">
1859
- <val-href class="link" *ngFor="let l of props.hrefs" [props]="l" (onClick)="clickHandler($event)"></val-href>
1860
- </div>
1861
- </div>
1862
- </val-box>
1863
- `, isInline: true, styles: ["@charset \"UTF-8\";.container{display:flex;align-items:center;justify-content:center}.teleprompter-container{overflow:hidden;width:100%}.teleprompter-content{white-space:nowrap;animation:scroll-left 15s linear infinite}@keyframes scroll-left{0%{transform:translate(100%)}to{transform:translate(-100%)}}.link{margin:0 .25rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: BoxComponent, selector: "val-box", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: HrefComponent, selector: "val-href", inputs: ["props"], outputs: ["onClick"] }] }); }
1864
- }
1865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PrompterComponent, decorators: [{
1866
- type: Component,
1867
- args: [{ selector: 'val-prompter', standalone: true, imports: [CommonModule, BoxComponent, ButtonGroupComponent, TextComponent, HrefComponent], template: `
1868
- <val-box
1869
- class="teleprompter-container"
1870
- [props]="{ icon: '', bordered: props.bordered, color: props.color, leftBorder: false }"
1871
- >
1872
- <div class="container" [class.teleprompter-content]="props.teleprompter" body>
1873
- <div>
1874
- <val-text
1875
- [props]="{
1876
- content: props.content,
1877
- color: '',
1878
- bold: true,
1879
- size: 'large',
1880
- }"
1881
- ></val-text>
1882
- </div>
1883
- <div *ngIf="props.buttons">
1884
- <val-button-group
1885
- class="buttons-container"
1886
- [props]="{ buttons: props.buttons, position: 'left', columned: false }"
1887
- (onClick)="clickHandler($event)"
1888
- ></val-button-group>
1889
- </div>
1890
- <div *ngIf="props.hrefs">
1891
- <val-href class="link" *ngFor="let l of props.hrefs" [props]="l" (onClick)="clickHandler($event)"></val-href>
1892
- </div>
1893
- </div>
1894
- </val-box>
1895
- `, styles: ["@charset \"UTF-8\";.container{display:flex;align-items:center;justify-content:center}.teleprompter-container{overflow:hidden;width:100%}.teleprompter-content{white-space:nowrap;animation:scroll-left 15s linear infinite}@keyframes scroll-left{0%{transform:translate(100%)}to{transform:translate(-100%)}}.link{margin:0 .25rem}\n"] }]
1896
- }], ctorParameters: () => [], propDecorators: { props: [{
1897
- type: Input
1898
- }], onClick: [{
1899
- type: Output
1900
- }] } });
1901
-
1902
- class RadioInputComponent {
1903
- constructor() { }
1904
- ngOnInit() { }
1905
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1906
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RadioInputComponent, isStandalone: true, selector: "val-radio-input", inputs: { props: "props" }, ngImport: i0, template: `
1907
- <ion-radio-group [allowEmptySelection]="true" [formControl]="props.control">
1908
- <ng-container *ngFor="let o of props.options">
1909
- <ion-radio [value]="o.id">{{ o.name }}</ion-radio>
1910
- <br />
1911
- </ng-container>
1912
- </ion-radio-group>
1913
- `, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonRadioGroup, selector: "ion-radio-group", inputs: ["allowEmptySelection", "name", "value"] }, { kind: "component", type: IonRadio, selector: "ion-radio", inputs: ["alignment", "color", "disabled", "justify", "labelPlacement", "mode", "name", "value"] }] }); }
1914
- }
1915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RadioInputComponent, decorators: [{
1916
- type: Component,
1917
- args: [{ selector: 'val-radio-input', standalone: true, imports: [NgFor, ReactiveFormsModule, IonRadioGroup, IonRadio], template: `
1918
- <ion-radio-group [allowEmptySelection]="true" [formControl]="props.control">
1919
- <ng-container *ngFor="let o of props.options">
1920
- <ion-radio [value]="o.id">{{ o.name }}</ion-radio>
1921
- <br />
1922
- </ng-container>
1923
- </ion-radio-group>
1924
- ` }]
1925
- }], ctorParameters: () => [], propDecorators: { props: [{
1926
- type: Input
1927
- }] } });
1928
-
1929
- class SearchbarComponent {
1930
- constructor() {
1931
- this.focusEvent = new EventEmitter();
1932
- this.blurEvent = new EventEmitter();
1933
- this.filterEvent = new EventEmitter();
1934
- }
1935
- onSearch($event) {
1936
- const searchTerm = $event.detail.value;
1937
- this.filterEvent.emit(searchTerm);
1938
- }
1939
- onFocus() {
1940
- this.focusEvent.emit();
1941
- }
1942
- onBlur() {
1943
- this.blurEvent.emit();
1944
- }
1945
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1946
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SearchbarComponent, isStandalone: true, selector: "app-searchbar", inputs: { disabled: "disabled" }, outputs: { focusEvent: "focusEvent", blurEvent: "blurEvent", filterEvent: "filterEvent" }, ngImport: i0, template: `
1947
- <ion-searchbar
1948
- mode="ios"
1949
- debounce="500"
1950
- placeholder="Búsqueda"
1951
- [disabled]="disabled"
1952
- showCancelButton="focus"
1953
- cancelButtonText="Cancelar"
1954
- (ionInput)="onSearch($event)"
1955
- (ionBlur)="onBlur()"
1956
- (ionFocus)="onFocus()"
1957
- >
1958
- </ion-searchbar>
1959
- `, isInline: true, styles: ["ion-searchbar{--cancel-button-color: var(--ion-color-dark);--background: var(--ion-color-light);font-family:var(--ion-default-font),Arial,sans-serif}\n"], dependencies: [{ kind: "component", type: IonSearchbar, selector: "ion-searchbar", inputs: ["animated", "autocomplete", "autocorrect", "cancelButtonIcon", "cancelButtonText", "clearIcon", "color", "debounce", "disabled", "enterkeyhint", "inputmode", "mode", "name", "placeholder", "searchIcon", "showCancelButton", "showClearButton", "spellcheck", "type", "value"] }] }); }
1960
- }
1961
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SearchbarComponent, decorators: [{
1962
- type: Component,
1963
- args: [{ selector: 'app-searchbar', standalone: true, imports: [IonSearchbar], template: `
1964
- <ion-searchbar
1965
- mode="ios"
1966
- debounce="500"
1967
- placeholder="Búsqueda"
1968
- [disabled]="disabled"
1969
- showCancelButton="focus"
1970
- cancelButtonText="Cancelar"
1971
- (ionInput)="onSearch($event)"
1972
- (ionBlur)="onBlur()"
1973
- (ionFocus)="onFocus()"
1974
- >
1975
- </ion-searchbar>
1976
- `, styles: ["ion-searchbar{--cancel-button-color: var(--ion-color-dark);--background: var(--ion-color-light);font-family:var(--ion-default-font),Arial,sans-serif}\n"] }]
1977
- }], ctorParameters: () => [], propDecorators: { disabled: [{
1978
- type: Input
1979
- }], focusEvent: [{
1980
- type: Output
1981
- }], blurEvent: [{
1982
- type: Output
1983
- }], filterEvent: [{
1984
- type: Output
1985
- }] } });
1986
-
1987
- class TextInputComponent {
1988
- constructor() { }
1989
- ngOnInit() { }
1990
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1991
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextInputComponent, isStandalone: true, selector: "val-text-input", inputs: { props: "props" }, ngImport: i0, template: ` <ion-input [formControl]="props.control" type="text" [placeholder]="props.placeholder"></ion-input> `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
1992
- }
1993
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextInputComponent, decorators: [{
1994
- type: Component,
1995
- args: [{ selector: 'val-text-input', standalone: true, imports: [ReactiveFormsModule, IonInput], template: ` <ion-input [formControl]="props.control" type="text" [placeholder]="props.placeholder"></ion-input> `, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"] }]
1996
- }], ctorParameters: () => [], propDecorators: { props: [{
1997
- type: Input
1998
- }] } });
1999
-
2000
- function resolveColor(color) {
2001
- // Si el color empieza con "--", se asume que es una variable CSS válida
2002
- if (color.startsWith('--')) {
2003
- return `var(${color})`;
2004
- }
2005
- // Lista de colores predefinidos de Ionic
2006
- const ionicColors = [
2007
- 'primary',
2008
- 'secondary',
2009
- 'tertiary',
2010
- 'success',
2011
- 'warning',
2012
- 'danger',
2013
- 'light',
2014
- 'medium',
2015
- 'dark',
2016
- ];
2017
- // Verificar si el color es un color de Ionic
2018
- if (ionicColors.includes(color)) {
2019
- return `var(--ion-color-${color})`;
2020
- }
2021
- // Si no es una variable CSS ni un color de Ionic, devolver el color tal cual
2022
- return color;
2023
- }
2024
-
2025
- class ExpandableTextComponent {
2026
- constructor() {
2027
- this.expanded = false;
2028
- this.defaultColor = 'primary';
2029
- }
2030
- get truncatedText() {
2031
- const maxLength = this.props.limit || 100; // Longitud por defecto
2032
- return this.props.content?.length > maxLength ? this.props.content.slice(0, maxLength) + '...' : this.props.content;
2033
- }
2034
- get isTruncated() {
2035
- return this.props.content?.length > (this.props.limit || 100);
2036
- }
2037
- toggleExpand() {
2038
- this.expanded = !this.expanded;
2039
- }
2040
- color() {
2041
- return resolveColor(this.props.color || this.defaultColor);
2042
- }
2043
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExpandableTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2044
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ExpandableTextComponent, isStandalone: true, selector: "val-expandable-text", inputs: { props: "props" }, ngImport: i0, template: `
2045
- <div class="description-container" [class.expanded]="expanded" [class.has-gradient]="!expanded && isTruncated">
2046
- <ion-text>
2047
- <p class="description">
2048
- <span class="content">{{ expanded ? props.content : truncatedText }}</span>
2049
- @if (!expanded && isTruncated) {
2050
- <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
2051
- {{ props.expandText || 'ver más' }}
2052
- </span>
2053
- }
2054
- </p>
2055
- </ion-text>
2056
- </div>
2057
- `, isInline: true, styles: [".description-container{position:relative;overflow:hidden;max-height:10rem;transition:max-height .3s ease-in-out}.description-container.expanded{max-height:none}.description{position:relative;overflow:hidden;text-overflow:ellipsis}.description-container:not(.expanded) .description:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:3.5rem;background:linear-gradient(to top,var(--ion-background-color),rgba(255,255,255,0));pointer-events:none}.description-container:not(.has-gradient) .description:after{background:transparent}.see-more{position:relative;font-weight:700;cursor:pointer;z-index:1;margin-left:.3rem}\n"], dependencies: [{ kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
2058
- }
2059
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExpandableTextComponent, decorators: [{
2060
- type: Component,
2061
- args: [{ selector: 'val-expandable-text', standalone: true, imports: [IonText], template: `
2062
- <div class="description-container" [class.expanded]="expanded" [class.has-gradient]="!expanded && isTruncated">
2063
- <ion-text>
2064
- <p class="description">
2065
- <span class="content">{{ expanded ? props.content : truncatedText }}</span>
2066
- @if (!expanded && isTruncated) {
2067
- <span class="see-more" [style.color]="this.color()" (click)="toggleExpand()">
2068
- {{ props.expandText || 'ver más' }}
2069
- </span>
2070
- }
2071
- </p>
2072
- </ion-text>
2073
- </div>
2074
- `, styles: [".description-container{position:relative;overflow:hidden;max-height:10rem;transition:max-height .3s ease-in-out}.description-container.expanded{max-height:none}.description{position:relative;overflow:hidden;text-overflow:ellipsis}.description-container:not(.expanded) .description:after{content:\"\";position:absolute;bottom:0;left:0;right:0;height:3.5rem;background:linear-gradient(to top,var(--ion-background-color),rgba(255,255,255,0));pointer-events:none}.description-container:not(.has-gradient) .description:after{background:transparent}.see-more{position:relative;font-weight:700;cursor:pointer;z-index:1;margin-left:.3rem}\n"] }]
2075
- }], propDecorators: { props: [{
2076
- type: Input
2077
- }] } });
2078
-
2079
- class BannerComponent {
2080
- constructor() {
2081
- this.onClick = new EventEmitter();
2082
- this.onClose = new EventEmitter();
2083
- }
2084
- ngOnInit() { }
2085
- clickHandler(token) {
2086
- this.onClick.emit(token);
2087
- }
2088
- closeHandler() {
2089
- this.onClose.emit();
2090
- }
2091
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2092
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BannerComponent, isStandalone: true, selector: "val-banner", inputs: { props: "props" }, outputs: { onClick: "onClick", onClose: "onClose" }, ngImport: i0, template: `
2093
- <val-box
2094
- [props]="{ icon: props.closable ? 'close-outline' : '', bordered: props.bordered, color: '' }"
2095
- (onClick)="closeHandler()"
2096
- >
2097
- <div [ngClass]="['content-container', props.mode, props.alignment]" body>
2098
- <val-title-block
2099
- [props]="{
2100
- position: props.mode === 'center' ? 'center' : 'left',
2101
- aboveTitle: props.content.aboveTitle,
2102
- title: props.content.title,
2103
- bellowTitle: props.content.bellowTitle,
2104
- }"
2105
- ></val-title-block>
2106
- <val-button-group
2107
- class="buttons-container"
2108
- [props]="{ position: props.mode === 'center' ? 'center' : 'left', buttons: props.actions, columned: false }"
2109
- (onClick)="clickHandler($event)"
2110
- ></val-button-group>
2111
- </div>
2112
- </val-box>
2113
- `, isInline: true, styles: [".content-container{display:flex;justify-content:space-between}.content-container.center{flex-direction:column}.content-container.column{flex-direction:row}.content-container.row{flex-direction:column}.content-container.middle{align-items:center}.content-container.top{align-items:flex-start}.content-container.bottom{align-items:flex-end}.content-container.hybrid{flex-direction:column;align-items:flex-start}@media (min-width: 768px){.content-container.hybrid{flex-direction:row;align-items:center}}.buttons-container{align-items:center;display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BoxComponent, selector: "val-box", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: TitleBlockComponent, selector: "val-title-block", inputs: ["props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }] }); }
2114
- }
2115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BannerComponent, decorators: [{
2116
- type: Component,
2117
- args: [{ selector: 'val-banner', standalone: true, imports: [CommonModule, BoxComponent, TitleBlockComponent, ButtonGroupComponent], template: `
2118
- <val-box
2119
- [props]="{ icon: props.closable ? 'close-outline' : '', bordered: props.bordered, color: '' }"
2120
- (onClick)="closeHandler()"
2121
- >
2122
- <div [ngClass]="['content-container', props.mode, props.alignment]" body>
2123
- <val-title-block
2124
- [props]="{
2125
- position: props.mode === 'center' ? 'center' : 'left',
2126
- aboveTitle: props.content.aboveTitle,
2127
- title: props.content.title,
2128
- bellowTitle: props.content.bellowTitle,
2129
- }"
2130
- ></val-title-block>
2131
- <val-button-group
2132
- class="buttons-container"
2133
- [props]="{ position: props.mode === 'center' ? 'center' : 'left', buttons: props.actions, columned: false }"
2134
- (onClick)="clickHandler($event)"
2135
- ></val-button-group>
2136
- </div>
2137
- </val-box>
2138
- `, styles: [".content-container{display:flex;justify-content:space-between}.content-container.center{flex-direction:column}.content-container.column{flex-direction:row}.content-container.row{flex-direction:column}.content-container.middle{align-items:center}.content-container.top{align-items:flex-start}.content-container.bottom{align-items:flex-end}.content-container.hybrid{flex-direction:column;align-items:flex-start}@media (min-width: 768px){.content-container.hybrid{flex-direction:row;align-items:center}}.buttons-container{align-items:center;display:flex}\n"] }]
2139
- }], ctorParameters: () => [], propDecorators: { props: [{
2140
- type: Input
2141
- }], onClick: [{
2142
- type: Output
2143
- }], onClose: [{
2144
- type: Output
2145
- }] } });
2146
-
2147
- class ToolbarComponent {
2148
- constructor(navCtrl) {
2149
- this.navCtrl = navCtrl;
2150
- this.onClick = new EventEmitter();
2151
- this.actionTypes = ToolbarActionType;
2152
- addIcons({ chevronBackOutline });
2153
- }
2154
- ngOnInit() { }
2155
- goBack() {
2156
- this.navCtrl.back();
2157
- }
2158
- rightActions() {
2159
- return this.props.actions.filter(x => x.position === 'right');
2160
- }
2161
- leftActions() {
2162
- return this.props.actions.filter(x => x.position === 'left');
2163
- }
2164
- someInRight() {
2165
- return !!this.props.actions.find(x => x.position === 'right');
2166
- }
2167
- someInLeft() {
2168
- return !!this.props.actions.find(x => x.position === 'left');
2169
- }
2170
- clickHandler(token) {
2171
- this.onClick.emit(token);
2172
- }
2173
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarComponent, deps: [{ token: i1$3.NavController }], target: i0.ɵɵFactoryTarget.Component }); }
2174
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToolbarComponent, isStandalone: true, selector: "val-toolbar", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
2175
- <ion-toolbar [color]="props.color" [class.background]="props.color === 'background'">
2176
- <ng-container *ngIf="props.withBack">
2177
- <ion-buttons class="left-buttons" slot="start" *ngIf="props.withBack">
2178
- <ion-button fill="clear" (click)="goBack()" [color]="props.textColor">
2179
- <ion-icon name="chevron-back-outline" [slot]="props.backText ? 'start' : 'icon-only'"></ion-icon>
2180
- <ion-text *ngIf="props.backText">{{ props.backText }}</ion-text>
2181
- </ion-button>
2182
- </ion-buttons>
2183
- </ng-container>
2184
- <ng-container *ngIf="props.withActions">
2185
- <ion-buttons slot="end" *ngIf="someInRight()">
2186
- <ng-container *ngFor="let action of rightActions()">
2187
- <ion-button *ngIf="action.type === actionTypes.ICON" (click)="clickHandler(action.token)">
2188
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
2189
- </ion-button>
2190
- <val-avatar
2191
- *ngIf="action.type === actionTypes.AVATAR"
2192
- [props]="{ size: 'small', image: action.description, default: '' }"
2193
- (onClick)="clickHandler(action.token)"
2194
- ></val-avatar>
2195
- <val-image
2196
- *ngIf="action.type === actionTypes.IMAGE"
2197
- [props]="action.image"
2198
- (click)="clickHandler(action.token)"
2199
- ></val-image>
2200
- <ion-button *ngIf="action.type === actionTypes.BUTTON" (click)="clickHandler(action.token)">{{
2201
- action.description
2202
- }}</ion-button>
2203
- </ng-container>
2204
- </ion-buttons>
2205
- <ion-buttons slot="start" *ngIf="someInLeft()">
2206
- <ng-container *ngFor="let action of leftActions()">
2207
- <ion-button *ngIf="action.type === actionTypes.ICON" (click)="clickHandler(action.token)">
2208
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
2209
- </ion-button>
2210
- <val-avatar
2211
- *ngIf="action.type === actionTypes.AVATAR"
2212
- [props]="{ size: 'small', image: action.description, default: '' }"
2213
- (onClick)="clickHandler(action.token)"
2214
- ></val-avatar>
2215
- <val-image
2216
- *ngIf="action.type === actionTypes.IMAGE"
2217
- [props]="action.image"
2218
- (click)="clickHandler(action.token)"
2219
- ></val-image>
2220
- <ion-button *ngIf="action.type === actionTypes.BUTTON" (click)="clickHandler(action.token)">{{
2221
- action.description
2222
- }}</ion-button>
2223
- </ng-container>
2224
- </ion-buttons>
2225
- </ng-container>
2226
- <ion-title *ngIf="props.title" [color]="props.textColor">{{ props.title }}</ion-title>
2227
- <!-- experimental -->
2228
- <ng-content select="[toolbar-bottom]"></ng-content>
2229
- </ion-toolbar>
2230
- `, isInline: true, styles: ["ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.background{background:var(--ion-background-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }] }); }
2231
- }
2232
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToolbarComponent, decorators: [{
2233
- type: Component,
2234
- args: [{ selector: 'val-toolbar', standalone: true, imports: [
2235
- CommonModule,
2236
- IonToolbar,
2237
- IonButtons,
2238
- IonButton,
2239
- IonIcon,
2240
- IonText,
2241
- IonTitle,
2242
- AvatarComponent,
2243
- ImageComponent,
2244
- ], template: `
2245
- <ion-toolbar [color]="props.color" [class.background]="props.color === 'background'">
2246
- <ng-container *ngIf="props.withBack">
2247
- <ion-buttons class="left-buttons" slot="start" *ngIf="props.withBack">
2248
- <ion-button fill="clear" (click)="goBack()" [color]="props.textColor">
2249
- <ion-icon name="chevron-back-outline" [slot]="props.backText ? 'start' : 'icon-only'"></ion-icon>
2250
- <ion-text *ngIf="props.backText">{{ props.backText }}</ion-text>
2251
- </ion-button>
2252
- </ion-buttons>
2253
- </ng-container>
2254
- <ng-container *ngIf="props.withActions">
2255
- <ion-buttons slot="end" *ngIf="someInRight()">
2256
- <ng-container *ngFor="let action of rightActions()">
2257
- <ion-button *ngIf="action.type === actionTypes.ICON" (click)="clickHandler(action.token)">
2258
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
2259
- </ion-button>
2260
- <val-avatar
2261
- *ngIf="action.type === actionTypes.AVATAR"
2262
- [props]="{ size: 'small', image: action.description, default: '' }"
2263
- (onClick)="clickHandler(action.token)"
2264
- ></val-avatar>
2265
- <val-image
2266
- *ngIf="action.type === actionTypes.IMAGE"
2267
- [props]="action.image"
2268
- (click)="clickHandler(action.token)"
2269
- ></val-image>
2270
- <ion-button *ngIf="action.type === actionTypes.BUTTON" (click)="clickHandler(action.token)">{{
2271
- action.description
2272
- }}</ion-button>
2273
- </ng-container>
2274
- </ion-buttons>
2275
- <ion-buttons slot="start" *ngIf="someInLeft()">
2276
- <ng-container *ngFor="let action of leftActions()">
2277
- <ion-button *ngIf="action.type === actionTypes.ICON" (click)="clickHandler(action.token)">
2278
- <ion-icon slot="icon-only" [name]="action.description" color="dark"></ion-icon>
2279
- </ion-button>
2280
- <val-avatar
2281
- *ngIf="action.type === actionTypes.AVATAR"
2282
- [props]="{ size: 'small', image: action.description, default: '' }"
2283
- (onClick)="clickHandler(action.token)"
2284
- ></val-avatar>
2285
- <val-image
2286
- *ngIf="action.type === actionTypes.IMAGE"
2287
- [props]="action.image"
2288
- (click)="clickHandler(action.token)"
2289
- ></val-image>
2290
- <ion-button *ngIf="action.type === actionTypes.BUTTON" (click)="clickHandler(action.token)">{{
2291
- action.description
2292
- }}</ion-button>
2293
- </ng-container>
2294
- </ion-buttons>
2295
- </ng-container>
2296
- <ion-title *ngIf="props.title" [color]="props.textColor">{{ props.title }}</ion-title>
2297
- <!-- experimental -->
2298
- <ng-content select="[toolbar-bottom]"></ng-content>
2299
- </ion-toolbar>
2300
- `, styles: ["ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.left-buttons{margin-left:-1rem}.background{background:var(--ion-background-color)}\n"] }]
2301
- }], ctorParameters: () => [{ type: i1$3.NavController }], propDecorators: { props: [{
2302
- type: Input
2303
- }], onClick: [{
2304
- type: Output
2305
- }] } });
2306
-
2307
- class FooterComponent {
2308
- constructor() {
2309
- this.onClick = new EventEmitter();
2310
- }
2311
- ngOnInit() { }
2312
- clickHandler(token) {
2313
- this.onClick.emit(token);
2314
- }
2315
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2316
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FooterComponent, isStandalone: true, selector: "val-footer", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
2317
- <ion-footer
2318
- [class.ion-no-border]="!props.bordered"
2319
- [translucent]="props.translucent"
2320
- [class.background]="props.toolbar.color === 'background'"
2321
- >
2322
- <val-toolbar
2323
- *ngIf="props.toolbar.title || props.toolbar.withActions || props.toolbar.withBack"
2324
- [props]="props.toolbar"
2325
- (onClick)="clickHandler($event)"
2326
- ></val-toolbar>
2327
- <ng-content select="[extra]"></ng-content>
2328
- </ion-footer>
2329
- `, isInline: true, styles: [".background{background:var(--ion-background-color)}\n"], dependencies: [{ kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: ToolbarComponent, selector: "val-toolbar", inputs: ["props"], outputs: ["onClick"] }] }); }
2330
- }
2331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FooterComponent, decorators: [{
2332
- type: Component,
2333
- args: [{ selector: 'val-footer', standalone: true, imports: [IonFooter, ToolbarComponent], template: `
2334
- <ion-footer
2335
- [class.ion-no-border]="!props.bordered"
2336
- [translucent]="props.translucent"
2337
- [class.background]="props.toolbar.color === 'background'"
2338
- >
2339
- <val-toolbar
2340
- *ngIf="props.toolbar.title || props.toolbar.withActions || props.toolbar.withBack"
2341
- [props]="props.toolbar"
2342
- (onClick)="clickHandler($event)"
2343
- ></val-toolbar>
2344
- <ng-content select="[extra]"></ng-content>
2345
- </ion-footer>
2346
- `, styles: [".background{background:var(--ion-background-color)}\n"] }]
2347
- }], ctorParameters: () => [], propDecorators: { props: [{
2348
- type: Input
2349
- }], onClick: [{
2350
- type: Output
2351
- }] } });
2352
-
2353
- const maxLength = (field, max) => {
2354
- return {
2355
- validator: Validators.maxLength(max),
2356
- error: `El campo ${field} no debe superar los ${max} caracteres.`,
2357
- };
2358
- };
2359
-
2360
- class FormFooterComponent {
2361
- constructor() {
2362
- this.onSubmit = new EventEmitter();
2363
- }
2364
- ngOnInit() { }
2365
- async submitHandler(token) {
2366
- this.onSubmit.emit({ fields: this.form.value, token });
2367
- }
2368
- get actions() {
2369
- if (!this.form) {
2370
- return [];
2371
- }
2372
- if (this.form.valid) {
2373
- this.action.state = ComponentStates.ENABLED;
2374
- }
2375
- return [this.action];
2376
- }
2377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2378
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormFooterComponent, isStandalone: true, selector: "val-form-footer", inputs: { form: "form", action: "action" }, outputs: { onSubmit: "onSubmit" }, ngImport: i0, template: `
2379
- <val-footer
2380
- [props]="{
2381
- bordered: false,
2382
- translucent: false,
2383
- toolbar: {
2384
- title: '',
2385
- actions: [],
2386
- color: 'background',
2387
- withBack: false,
2388
- withActions: false,
2389
- },
2390
- }"
2391
- >
2392
- <val-button-group
2393
- extra
2394
- [props]="{ buttons: actions, position: 'center', columned: false }"
2395
- (onClick)="submitHandler($event)"
2396
- ></val-button-group>
2397
- </val-footer>
2398
- `, isInline: true, styles: [""], dependencies: [{ kind: "component", type: FooterComponent, selector: "val-footer", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }] }); }
2399
- }
2400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormFooterComponent, decorators: [{
2401
- type: Component,
2402
- args: [{ selector: 'val-form-footer', standalone: true, imports: [FooterComponent, ButtonGroupComponent], template: `
2403
- <val-footer
2404
- [props]="{
2405
- bordered: false,
2406
- translucent: false,
2407
- toolbar: {
2408
- title: '',
2409
- actions: [],
2410
- color: 'background',
2411
- withBack: false,
2412
- withActions: false,
2413
- },
2414
- }"
2415
- >
2416
- <val-button-group
2417
- extra
2418
- [props]="{ buttons: actions, position: 'center', columned: false }"
2419
- (onClick)="submitHandler($event)"
2420
- ></val-button-group>
2421
- </val-footer>
2422
- ` }]
2423
- }], ctorParameters: () => [], propDecorators: { form: [{
2424
- type: Input
2425
- }], action: [{
2426
- type: Input
2427
- }], onSubmit: [{
2428
- type: Output
2429
- }] } });
2430
-
2431
- const goToTop = (id) => {
2432
- const element = document.getElementById(id);
2433
- if (element) {
2434
- element.scrollIntoView({
2435
- block: 'start',
2436
- inline: 'nearest',
2437
- behavior: 'smooth',
2438
- });
2439
- }
2440
- };
2441
- const isAtEnd = (elementRef) => {
2442
- const formElement = elementRef.nativeElement;
2443
- const rect = formElement.getBoundingClientRect();
2444
- const windowHeight = window.innerHeight;
2445
- return rect.bottom <= windowHeight;
2446
- };
2447
-
2448
- class FormComponent {
2449
- constructor(fb, elementRef) {
2450
- this.fb = fb;
2451
- this.elementRef = elementRef;
2452
- this.onSubmit = new EventEmitter();
2453
- this.onInvalid = new EventEmitter();
2454
- this.types = InputType;
2455
- }
2456
- ngOnInit() {
2457
- const formControls = {};
2458
- this.props.sections.forEach(section => {
2459
- section.fields.forEach(field => {
2460
- formControls[field.name] = [undefined, field.validators || []];
2461
- });
2462
- });
2463
- this.form = this.fb.group(formControls);
2464
- }
2465
- async submitHandler(token) {
2466
- this.onSubmit.emit({ fields: this.form.value, token });
2467
- }
2468
- getControl(field) {
2469
- return this.Form.get(field);
2470
- }
2471
- getFieldProp(field) {
2472
- return {
2473
- ...field,
2474
- control: this.getControl(field.name),
2475
- };
2476
- }
2477
- get isAtEndOfForm() {
2478
- return isAtEnd(this.elementRef);
2479
- }
2480
- get Form() {
2481
- return this.form;
2482
- }
2483
- get actions() {
2484
- if (!this.form) {
2485
- return [];
2486
- }
2487
- if (this.form.valid) {
2488
- this.props.actions.state = ComponentStates.ENABLED;
2489
- }
2490
- if (this.props.state === ComponentStates.WORKING) {
2491
- this.props.actions.state = ComponentStates.WORKING;
2492
- }
2493
- if (this.props.state === ComponentStates.ENABLED) {
2494
- this.props.actions.state = ComponentStates.ENABLED;
2495
- }
2496
- if (this.props.state === ComponentStates.DISABLED) {
2497
- this.props.actions.state = ComponentStates.DISABLED;
2498
- }
2499
- return [this.props.actions];
2500
- }
2501
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormComponent, deps: [{ token: i1$1.FormBuilder }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
2502
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FormComponent, isStandalone: true, selector: "val-form", inputs: { props: "props" }, outputs: { onSubmit: "onSubmit", onInvalid: "onInvalid" }, ngImport: i0, template: `
2503
- <div class="container">
2504
- <form [formGroup]="form">
2505
- <val-display
2506
- [props]="{
2507
- content: props.name,
2508
- color: 'dark',
2509
- size: 'large',
2510
- }"
2511
- ></val-display>
2512
- <div class="section" *ngFor="let s of props.sections">
2513
- <val-title [props]="{ content: s.name, size: 'large', color: '', bold: false }"></val-title>
2514
- <div class="input" *ngFor="let f of s.fields">
2515
- <val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
2516
- <ng-container *ngIf="f.type === types.TEXT">
2517
- <val-text-input [props]="getFieldProp(f)"></val-text-input>
2518
- </ng-container>
2519
- <ng-container *ngIf="f.type === types.CHECK">
2520
- <val-check-input></val-check-input>
2521
- </ng-container>
2522
- <ng-container *ngIf="f.type === types.COMMENT">
2523
- <val-comment-input [props]="getFieldProp(f)"></val-comment-input>
2524
- </ng-container>
2525
- <ng-container *ngIf="f.type === types.DATE">
2526
- <val-date-input [props]="getFieldProp(f)"></val-date-input>
2527
- </ng-container>
2528
- <ng-container *ngIf="f.type === types.EMAIL">
2529
- <val-email-input [props]="getFieldProp(f)"></val-email-input>
2530
- </ng-container>
2531
- <ng-container *ngIf="f.type === types.FILE">
2532
- <val-file-input [props]="getFieldProp(f)"></val-file-input>
2533
- </ng-container>
2534
- <ng-container *ngIf="f.type === types.HOUR">
2535
- <val-hour-input [props]="getFieldProp(f)"></val-hour-input>
2536
- </ng-container>
2537
- <ng-container *ngIf="f.type === types.NUMBER">
2538
- <val-number-input [props]="getFieldProp(f)"></val-number-input>
2539
- </ng-container>
2540
- <ng-container *ngIf="f.type === types.PASSWORD">
2541
- <val-password-input [props]="getFieldProp(f)"></val-password-input>
2542
- </ng-container>
2543
- <ng-container *ngIf="f.type === types.PIN_CODE">
2544
- <val-pin-input [props]="getFieldProp(f)"></val-pin-input>
2545
- </ng-container>
2546
- <ng-container *ngIf="f.type === types.RADIO">
2547
- <val-radio-input [props]="getFieldProp(f)"></val-radio-input>
2548
- </ng-container>
2549
- <ng-container *ngIf="f.type === types.SELECT">
2550
- <!-- <val-select-input></val-select-input> -->
2551
- </ng-container>
2552
- <val-hint [props]="getFieldProp(f)"></val-hint>
2553
- </div>
2554
- <val-divider [props]="{ fill: 'solid', size: 'medium', color: 'medium' }"></val-divider>
2555
- </div>
2556
- <val-button-group
2557
- [props]="{ buttons: actions, position: 'center', columned: false }"
2558
- (onClick)="submitHandler($event)"
2559
- ></val-button-group>
2560
- </form>
2561
- </div>
2562
- `, isInline: true, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextInputComponent, selector: "val-text-input", inputs: ["props"] }, { kind: "component", type: CheckInputComponent, selector: "val-check-input" }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: HintComponent, selector: "val-hint", inputs: ["props"] }, { kind: "component", type: CommentInputComponent, selector: "val-comment-input", inputs: ["props"] }, { kind: "component", type: DateInputComponent, selector: "val-date-input", inputs: ["props"] }, { kind: "component", type: FileInputComponent, selector: "val-file-input", inputs: ["props"] }, { kind: "component", type: HourInputComponent, selector: "val-hour-input", inputs: ["props"] }, { kind: "component", type: EmailInputComponent, selector: "val-email-input", inputs: ["props"] }, { kind: "component", type: NumberInputComponent, selector: "val-number-input", inputs: ["props"] }, { kind: "component", type: RadioInputComponent, selector: "val-radio-input", inputs: ["props"] }, { kind: "component", type: PasswordInputComponent, selector: "val-password-input", inputs: ["props"] }, { kind: "component", type: PinInputComponent, selector: "val-pin-input", inputs: ["props"] }] }); }
2563
- }
2564
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FormComponent, decorators: [{
2565
- type: Component,
2566
- args: [{ selector: 'val-form', standalone: true, imports: [
2567
- CommonModule,
2568
- ReactiveFormsModule,
2569
- DisplayComponent,
2570
- TitleComponent,
2571
- TextInputComponent,
2572
- CheckInputComponent,
2573
- ButtonGroupComponent,
2574
- DividerComponent,
2575
- HintComponent,
2576
- CommentInputComponent,
2577
- DateInputComponent,
2578
- FileInputComponent,
2579
- HourInputComponent,
2580
- EmailInputComponent,
2581
- NumberInputComponent,
2582
- RadioInputComponent,
2583
- PasswordInputComponent,
2584
- PinInputComponent,
2585
- ], template: `
2586
- <div class="container">
2587
- <form [formGroup]="form">
2588
- <val-display
2589
- [props]="{
2590
- content: props.name,
2591
- color: 'dark',
2592
- size: 'large',
2593
- }"
2594
- ></val-display>
2595
- <div class="section" *ngFor="let s of props.sections">
2596
- <val-title [props]="{ content: s.name, size: 'large', color: '', bold: false }"></val-title>
2597
- <div class="input" *ngFor="let f of s.fields">
2598
- <val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
2599
- <ng-container *ngIf="f.type === types.TEXT">
2600
- <val-text-input [props]="getFieldProp(f)"></val-text-input>
2601
- </ng-container>
2602
- <ng-container *ngIf="f.type === types.CHECK">
2603
- <val-check-input></val-check-input>
2604
- </ng-container>
2605
- <ng-container *ngIf="f.type === types.COMMENT">
2606
- <val-comment-input [props]="getFieldProp(f)"></val-comment-input>
2607
- </ng-container>
2608
- <ng-container *ngIf="f.type === types.DATE">
2609
- <val-date-input [props]="getFieldProp(f)"></val-date-input>
2610
- </ng-container>
2611
- <ng-container *ngIf="f.type === types.EMAIL">
2612
- <val-email-input [props]="getFieldProp(f)"></val-email-input>
2613
- </ng-container>
2614
- <ng-container *ngIf="f.type === types.FILE">
2615
- <val-file-input [props]="getFieldProp(f)"></val-file-input>
2616
- </ng-container>
2617
- <ng-container *ngIf="f.type === types.HOUR">
2618
- <val-hour-input [props]="getFieldProp(f)"></val-hour-input>
2619
- </ng-container>
2620
- <ng-container *ngIf="f.type === types.NUMBER">
2621
- <val-number-input [props]="getFieldProp(f)"></val-number-input>
2622
- </ng-container>
2623
- <ng-container *ngIf="f.type === types.PASSWORD">
2624
- <val-password-input [props]="getFieldProp(f)"></val-password-input>
2625
- </ng-container>
2626
- <ng-container *ngIf="f.type === types.PIN_CODE">
2627
- <val-pin-input [props]="getFieldProp(f)"></val-pin-input>
2628
- </ng-container>
2629
- <ng-container *ngIf="f.type === types.RADIO">
2630
- <val-radio-input [props]="getFieldProp(f)"></val-radio-input>
2631
- </ng-container>
2632
- <ng-container *ngIf="f.type === types.SELECT">
2633
- <!-- <val-select-input></val-select-input> -->
2634
- </ng-container>
2635
- <val-hint [props]="getFieldProp(f)"></val-hint>
2636
- </div>
2637
- <val-divider [props]="{ fill: 'solid', size: 'medium', color: 'medium' }"></val-divider>
2638
- </div>
2639
- <val-button-group
2640
- [props]="{ buttons: actions, position: 'center', columned: false }"
2641
- (onClick)="submitHandler($event)"
2642
- ></val-button-group>
2643
- </form>
2644
- </div>
2645
- `, styles: [".section{margin-top:1rem}.input{margin:.5rem 0}@media (min-width: 768px){.input{margin:.75rem 0}}\n"] }]
2646
- }], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: i0.ElementRef }], propDecorators: { props: [{
2647
- type: Input
2648
- }], onSubmit: [{
2649
- type: Output
2650
- }], onInvalid: [{
2651
- type: Output
2652
- }] } });
2653
-
2654
- class HeaderComponent {
2655
- constructor() {
2656
- this.onClick = new EventEmitter();
2657
- }
2658
- ngOnInit() { }
2659
- clickHandler(token) {
2660
- this.onClick.emit(token);
2661
- }
2662
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2663
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: HeaderComponent, isStandalone: true, selector: "val-header", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
2664
- <ion-header [class.ion-no-border]="!props.bordered" [translucent]="props.translucent">
2665
- <val-toolbar [props]="props.toolbar" (onClick)="clickHandler($event)"></val-toolbar>
2666
- </ion-header>
2667
- `, isInline: true, styles: ["ion-toolbar{padding:0 1rem}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: ToolbarComponent, selector: "val-toolbar", inputs: ["props"], outputs: ["onClick"] }] }); }
2668
- }
2669
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderComponent, decorators: [{
2670
- type: Component,
2671
- args: [{ selector: 'val-header', standalone: true, imports: [IonHeader, ToolbarComponent], template: `
2672
- <ion-header [class.ion-no-border]="!props.bordered" [translucent]="props.translucent">
2673
- <val-toolbar [props]="props.toolbar" (onClick)="clickHandler($event)"></val-toolbar>
2674
- </ion-header>
2675
- `, styles: ["ion-toolbar{padding:0 1rem}\n"] }]
2676
- }], ctorParameters: () => [], propDecorators: { props: [{
2677
- type: Input
2678
- }], onClick: [{
2679
- type: Output
2680
- }] } });
2681
-
2682
- class NoContentComponent {
2683
- constructor() {
2684
- this.onClick = new EventEmitter();
2685
- }
2686
- ngOnInit() { }
2687
- onClickHandler(token) {
2688
- this.onClick.emit(token);
2689
- }
2690
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2691
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: NoContentComponent, isStandalone: true, selector: "val-no-content", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
2692
- @if (props.topContent) {
2693
- <div>
2694
- <val-banner [props]="props.topContent" (onClick)="onClickHandler($event)"></val-banner>
2695
- </div>
2696
- }
2697
- <val-image class="image-container" [props]="props.image"></val-image>
2698
- <div>
2699
- <val-banner [props]="props.bottomContent" (onClick)="onClickHandler($event)"></val-banner>
2700
- </div>
2701
- `, isInline: true, styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"], dependencies: [{ kind: "component", type: ImageComponent, selector: "val-image", inputs: ["props"] }, { kind: "component", type: BannerComponent, selector: "val-banner", inputs: ["props"], outputs: ["onClick", "onClose"] }] }); }
2702
- }
2703
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoContentComponent, decorators: [{
2704
- type: Component,
2705
- args: [{ selector: 'val-no-content', standalone: true, imports: [ImageComponent, BannerComponent], template: `
2706
- @if (props.topContent) {
2707
- <div>
2708
- <val-banner [props]="props.topContent" (onClick)="onClickHandler($event)"></val-banner>
2709
- </div>
2710
- }
2711
- <val-image class="image-container" [props]="props.image"></val-image>
2712
- <div>
2713
- <val-banner [props]="props.bottomContent" (onClick)="onClickHandler($event)"></val-banner>
2714
- </div>
2715
- `, styles: [".image-container{display:flex;justify-content:center;margin-bottom:1rem}val-image .image{margin:0 auto}\n"] }]
2716
- }], ctorParameters: () => [], propDecorators: { props: [{
2717
- type: Input
2718
- }], onClick: [{
2719
- type: Output
2720
- }] } });
2721
-
2722
- var MOTION;
2723
- (function (MOTION) {
2724
- MOTION[MOTION["BACKWARD"] = 0] = "BACKWARD";
2725
- MOTION[MOTION["FORWARD"] = 1] = "FORWARD";
2726
- MOTION[MOTION["RETRY"] = 2] = "RETRY";
2727
- })(MOTION || (MOTION = {}));
2728
-
2729
- class WizardFooterComponent {
2730
- constructor() {
2731
- this.onClick = new EventEmitter();
2732
- this.wrapperId = 'wizard-wrapper';
2733
- }
2734
- ngOnInit() { }
2735
- clickHandler(token) {
2736
- if (!token) {
2737
- return;
2738
- }
2739
- if (token.includes('right')) {
2740
- this.tryToStep(MOTION.FORWARD);
2741
- }
2742
- if (token.includes('left')) {
2743
- this.tryToStep(MOTION.BACKWARD);
2744
- }
2745
- }
2746
- get Current() {
2747
- return this.props.steps[this.props.current];
2748
- }
2749
- get Progress() {
2750
- if (this.props.steps && this.props.current) {
2751
- return this.props.current / Object.keys(this.props.steps).length;
2752
- }
2753
- return 0;
2754
- }
2755
- get actions() {
2756
- if (this.props.state === ComponentStates.ERROR && this.Current.buttons.length > 1) {
2757
- this.Current.buttons[1].state = ComponentStates.DISABLED;
2758
- }
2759
- if (this.props.current === 1 && this.Current.buttons.length > 1) {
2760
- return [this.Current.buttons[1]];
2761
- }
2762
- return this.Current.buttons;
2763
- }
2764
- tryToStep(motion) {
2765
- this.onClick.emit({ current: this.props.current, motion });
2766
- }
2767
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2768
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardFooterComponent, isStandalone: true, selector: "val-wizard-footer", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
2769
- <val-footer
2770
- [props]="{
2771
- bordered: false,
2772
- translucent: false,
2773
- toolbar: {
2774
- title: '',
2775
- actions: [],
2776
- color: 'background',
2777
- withBack: false,
2778
- withActions: false,
2779
- },
2780
- }"
2781
- >
2782
- <val-progress-bar
2783
- extra
2784
- [props]="{ progress: Progress, color: '', type: 'determinate', buffer: 1, size: 'small', rounded: false }"
2785
- ></val-progress-bar>
2786
- <val-button-group
2787
- extra
2788
- [props]="{ buttons: actions, position: 'left', columned: false }"
2789
- position="spaced"
2790
- (onClick)="clickHandler($event)"
2791
- ></val-button-group>
2792
- </val-footer>
2793
- `, isInline: true, styles: [""], dependencies: [{ kind: "component", type: FooterComponent, selector: "val-footer", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ProgressBarComponent, selector: "val-progress-bar", inputs: ["props"] }, { kind: "component", type: ButtonGroupComponent, selector: "val-button-group", inputs: ["props"], outputs: ["onClick"] }] }); }
2794
- }
2795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardFooterComponent, decorators: [{
2796
- type: Component,
2797
- args: [{ selector: 'val-wizard-footer', standalone: true, imports: [FooterComponent, ProgressBarComponent, ButtonGroupComponent], template: `
2798
- <val-footer
2799
- [props]="{
2800
- bordered: false,
2801
- translucent: false,
2802
- toolbar: {
2803
- title: '',
2804
- actions: [],
2805
- color: 'background',
2806
- withBack: false,
2807
- withActions: false,
2808
- },
2809
- }"
2810
- >
2811
- <val-progress-bar
2812
- extra
2813
- [props]="{ progress: Progress, color: '', type: 'determinate', buffer: 1, size: 'small', rounded: false }"
2814
- ></val-progress-bar>
2815
- <val-button-group
2816
- extra
2817
- [props]="{ buttons: actions, position: 'left', columned: false }"
2818
- position="spaced"
2819
- (onClick)="clickHandler($event)"
2820
- ></val-button-group>
2821
- </val-footer>
2822
- ` }]
2823
- }], ctorParameters: () => [], propDecorators: { props: [{
2824
- type: Input
2825
- }], onClick: [{
2826
- type: Output
2827
- }] } });
2828
-
2829
- class WizardComponent {
2830
- constructor() {
2831
- this.onClick = new EventEmitter();
2832
- this.wrapperId = 'wizard-wrapper';
2833
- }
2834
- ngOnInit() { }
2835
- working() {
2836
- this.props.state = ComponentStates.WORKING;
2837
- this.Current.buttons.map(x => {
2838
- x.state = ComponentStates.DISABLED;
2839
- });
2840
- }
2841
- done() {
2842
- if (this.props.state === ComponentStates.ENABLED) {
2843
- return;
2844
- }
2845
- this.props.state = ComponentStates.ENABLED;
2846
- this.Current.buttons.map(x => {
2847
- x.state = ComponentStates.ENABLED;
2848
- });
2849
- }
2850
- get Current() {
2851
- return this.props.steps[this.props.current];
2852
- }
2853
- setCurrent(newStep) {
2854
- if (newStep === this.props.current) {
2855
- return;
2856
- }
2857
- this.props.current = newStep;
2858
- goToTop(this.wrapperId);
2859
- }
2860
- setError(error) {
2861
- if (this.props.state === ComponentStates.ERROR) {
2862
- return;
2863
- }
2864
- this.props.error.titles.bottomContent.content.bellowTitle.text = error;
2865
- this.props.state = ComponentStates.ERROR;
2866
- goToTop(this.wrapperId);
2867
- }
2868
- reset() {
2869
- this.props.error.titles.bottomContent.content.bellowTitle.text = '';
2870
- this.done();
2871
- }
2872
- clickHandler(token) {
2873
- if (!token) {
2874
- return;
2875
- }
2876
- if (token.includes('retry')) {
2877
- this.reset();
2878
- }
2879
- this.onClick.emit({ current: this.props.current, motion: MOTION.RETRY });
2880
- }
2881
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2882
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WizardComponent, isStandalone: true, selector: "val-wizard", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
2883
- <div [id]="wrapperId" class="wrapper">
2884
- <ng-container *ngIf="props.state !== 'ERROR'">
2885
- <val-no-content [props]="Current.titles"></val-no-content>
2886
- <div class="step">
2887
- <div *ngIf="props.state === 'WORKING'">
2888
- <val-content-loader color="dark" size="large" text="Por favor espere..."></val-content-loader>
2889
- </div>
2890
- <ng-content select="[step]"></ng-content>
2891
- </div>
2892
- </ng-container>
2893
- <ng-container *ngIf="props.state === 'ERROR'">
2894
- <val-no-content [props]="props.error.titles" (onClick)="clickHandler($event)"></val-no-content>
2895
- </ng-container>
2896
- </div>
2897
- `, isInline: true, styles: [".wrapper{height:auto;display:flex;flex-direction:column;justify-content:space-between;position:relative}.step{min-height:9.375rem;margin:16px 0;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NoContentComponent, selector: "val-no-content", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ContentLoaderComponent, selector: "val-content-loader", inputs: ["props"] }] }); }
2898
- }
2899
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WizardComponent, decorators: [{
2900
- type: Component,
2901
- args: [{ selector: 'val-wizard', standalone: true, imports: [CommonModule, NoContentComponent, ContentLoaderComponent], template: `
2902
- <div [id]="wrapperId" class="wrapper">
2903
- <ng-container *ngIf="props.state !== 'ERROR'">
2904
- <val-no-content [props]="Current.titles"></val-no-content>
2905
- <div class="step">
2906
- <div *ngIf="props.state === 'WORKING'">
2907
- <val-content-loader color="dark" size="large" text="Por favor espere..."></val-content-loader>
2908
- </div>
2909
- <ng-content select="[step]"></ng-content>
2910
- </div>
2911
- </ng-container>
2912
- <ng-container *ngIf="props.state === 'ERROR'">
2913
- <val-no-content [props]="props.error.titles" (onClick)="clickHandler($event)"></val-no-content>
2914
- </ng-container>
2915
- </div>
2916
- `, styles: [".wrapper{height:auto;display:flex;flex-direction:column;justify-content:space-between;position:relative}.step{min-height:9.375rem;margin:16px 0;text-align:center}\n"] }]
2917
- }], ctorParameters: () => [], propDecorators: { props: [{
2918
- type: Input
2919
- }], onClick: [{
2920
- type: Output
2921
- }] } });
2922
-
2923
- class ItemListComponent {
2924
- constructor(icon) {
2925
- this.states = ComponentStates;
2926
- this.defaultColor = 'primary';
2927
- this.onClick = new EventEmitter();
2928
- this.onActionClick = new EventEmitter();
2929
- }
2930
- ngOnInit() { }
2931
- clickHandler(token) {
2932
- this.onClick.emit(token);
2933
- }
2934
- onActionClickHandler(token) {
2935
- this.onActionClick.emit(token);
2936
- }
2937
- color() {
2938
- return resolveColor(this.props.color || this.defaultColor);
2939
- }
2940
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ItemListComponent, deps: [{ token: IconService }], target: i0.ɵɵFactoryTarget.Component }); }
2941
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ItemListComponent, isStandalone: true, selector: "val-item-list", inputs: { props: "props" }, outputs: { onClick: "onClick", onActionClick: "onActionClick" }, ngImport: i0, template: `
2942
- <ion-list
2943
- [inset]="props.rounded"
2944
- [class.shadowed]="props.shadowed"
2945
- [class.bordered]="props.bordered"
2946
- [style.borderColor]="this.color()"
2947
- >
2948
- @if (props.title) {
2949
- <ion-list-header>
2950
- <ion-label>{{ props.title }}</ion-label>
2951
- </ion-list-header>
2952
- }
2953
- @for (item of props.items; track item.text) {
2954
- @if (item.mode == 'justext') {
2955
- <ion-item
2956
- [lines]="item.lines"
2957
- [button]="item.clickable"
2958
- [disabled]="item.disabled"
2959
- (click)="clickHandler(item.token)"
2960
- >
2961
- @if (item.unreadIndicator) {
2962
- <div class="unread-indicator-wrapper" slot="start">
2963
- <div class="unread-indicator"></div>
2964
- </div>
2965
- }
2966
-
2967
- <ion-label [ngClass]="{ 'ion-text-nowrap': item.ellipsis }">
2968
- <h2>{{ item.text }}</h2>
2969
-
2970
- @if (item.comments) {
2971
- <ion-note color="medium"> {{ item.comments }} </ion-note>
2972
- }
2973
- </ion-label>
2974
-
2975
- @if (item.endNote) {
2976
- <ion-note slot="end">{{ item.endNote }}</ion-note>
2977
- }
2978
- </ion-item>
2979
- }
2980
-
2981
- @if (item.mode == 'actionable') {
2982
- <ion-item [lines]="item.lines" [button]="item.clickable" [disabled]="item.disabled">
2983
- @if (item.unreadIndicator) {
2984
- <div class="unread-indicator-wrapper" slot="start">
2985
- <div class="unread-indicator"></div>
2986
- </div>
2987
- }
2988
-
2989
- <ion-label [ngClass]="{ 'ion-text-nowrap': item.ellipsis }">
2990
- <h2>{{ item.text }}</h2>
2991
-
2992
- @if (item.comments) {
2993
- <ion-note color="medium"> {{ item.comments }} </ion-note>
2994
- }
2995
- </ion-label>
2996
-
2997
- @if (item.actions) {
2998
- @for (action of item.actions; track action.token) {
2999
- <ion-button
3000
- fill="outline"
3001
- color="dark"
3002
- slot="end"
3003
- [disabled]="action.state === states.WORKING"
3004
- (click)="onActionClickHandler(action.token)"
3005
- >
3006
- @if (action.state !== states.WORKING) {
3007
- @if (action.icon) {
3008
- <ion-icon aria-hidden="true" [name]="action.icon" size="medium" slot="start"></ion-icon>
3009
- }
3010
-
3011
- {{ action.description }}
3012
- }
3013
-
3014
- @if (action.state === states.WORKING) {
3015
- <ion-spinner class="action-spinner" name="circular"></ion-spinner>
3016
- }
3017
- </ion-button>
3018
- }
3019
- }
3020
- </ion-item>
3021
- }
3022
-
3023
- @if (item.mode == 'route') {
3024
- <ion-item
3025
- [lines]="item.lines"
3026
- [button]="item.clickable"
3027
- [disabled]="item.disabled"
3028
- (click)="clickHandler(item.token)"
3029
- [routerLink]="item.routerLink"
3030
- >
3031
- @if (item.unreadIndicator) {
3032
- <div class="unread-indicator-wrapper" slot="start">
3033
- <div class="unread-indicator"></div>
3034
- </div>
3035
- }
3036
-
3037
- <ion-label [ngClass]="{ 'ion-text-nowrap': item.ellipsis }">
3038
- <h2>{{ item.text }}</h2>
3039
-
3040
- @if (item.comments) {
3041
- <ion-note color="medium"> {{ item.comments }} </ion-note>
3042
- }
3043
- </ion-label>
3044
- </ion-item>
3045
- }
3046
-
3047
- @if (item.mode == 'subtitule') {
3048
- <ion-item
3049
- [lines]="item.lines"
3050
- [button]="item.clickable"
3051
- [disabled]="item.disabled"
3052
- (click)="clickHandler(item.token)"
3053
- >
3054
- @if (item.unreadIndicator) {
3055
- <div class="unread-indicator-wrapper" slot="start">
3056
- <div class="unread-indicator"></div>
3057
- </div>
3058
- }
3059
-
3060
- <ion-label [ngClass]="{ 'ion-text-nowrap': item.ellipsis }">
3061
- <h1>{{ item.text }}</h1>
3062
- <p>{{ item.subtitle }}</p>
3063
- </ion-label>
3064
- </ion-item>
3065
- }
3066
-
3067
- @if (item.mode == 'avatar') {
3068
- <ion-item
3069
- [lines]="item.lines"
3070
- [button]="item.clickable"
3071
- [disabled]="item.disabled"
3072
- (click)="clickHandler(item.token)"
3073
- >
3074
- <ion-avatar aria-hidden="true" slot="start">
3075
- <img alt="" [src]="item.image" />
3076
- </ion-avatar>
3077
- <ion-label>{{ item.text }}</ion-label>
3078
- </ion-item>
3079
- }
3080
-
3081
- @if (item.mode == 'icon') {
3082
- <ion-item
3083
- [lines]="item.lines"
3084
- [button]="item.clickable"
3085
- [disabled]="item.disabled"
3086
- (click)="clickHandler(item.token)"
3087
- >
3088
- <ion-icon aria-hidden="true" [name]="item.icon" size="medium" slot="start"></ion-icon>
3089
- <ion-label>{{ item.text }}</ion-label>
3090
- </ion-item>
3091
- }
3092
- }
3093
- </ion-list>
3094
- `, isInline: true, styles: ["ion-label{font-family:var(--ion-default-font),Arial,sans-serif}ion-note{font-family:var(--ion-default-font),Arial,sans-serif;font-weight:400}ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.shadowed{box-shadow:.1875rem .625rem .5rem #1219541a}.bordered{border:1px solid}.unread-indicator{background:var(--ion-color-primary);width:.625rem;height:.625rem;border-radius:100%;position:absolute;inset-inline-start:.75rem;top:.75rem}.action-spinner{width:3.125rem;height:1rem}\n"], dependencies: [{ kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonNote, selector: "ion-note", inputs: ["color", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonAvatar, selector: "ion-avatar" }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
3095
- }
3096
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ItemListComponent, decorators: [{
3097
- type: Component,
3098
- args: [{ selector: 'val-item-list', standalone: true, imports: [
3099
- RouterLink,
3100
- NgStyle,
3101
- NgClass,
3102
- IonList,
3103
- IonListHeader,
3104
- IonLabel,
3105
- IonNote,
3106
- IonItem,
3107
- IonAvatar,
3108
- IonIcon,
3109
- IonButton,
3110
- IonSpinner,
3111
- ], template: `
3112
- <ion-list
3113
- [inset]="props.rounded"
3114
- [class.shadowed]="props.shadowed"
3115
- [class.bordered]="props.bordered"
3116
- [style.borderColor]="this.color()"
3117
- >
3118
- @if (props.title) {
3119
- <ion-list-header>
3120
- <ion-label>{{ props.title }}</ion-label>
3121
- </ion-list-header>
3122
- }
3123
- @for (item of props.items; track item.text) {
3124
- @if (item.mode == 'justext') {
3125
- <ion-item
3126
- [lines]="item.lines"
3127
- [button]="item.clickable"
3128
- [disabled]="item.disabled"
3129
- (click)="clickHandler(item.token)"
3130
- >
3131
- @if (item.unreadIndicator) {
3132
- <div class="unread-indicator-wrapper" slot="start">
3133
- <div class="unread-indicator"></div>
3134
- </div>
3135
- }
3136
-
3137
- <ion-label [ngClass]="{ 'ion-text-nowrap': item.ellipsis }">
3138
- <h2>{{ item.text }}</h2>
3139
-
3140
- @if (item.comments) {
3141
- <ion-note color="medium"> {{ item.comments }} </ion-note>
3142
- }
3143
- </ion-label>
3144
-
3145
- @if (item.endNote) {
3146
- <ion-note slot="end">{{ item.endNote }}</ion-note>
3147
- }
3148
- </ion-item>
3149
- }
3150
-
3151
- @if (item.mode == 'actionable') {
3152
- <ion-item [lines]="item.lines" [button]="item.clickable" [disabled]="item.disabled">
3153
- @if (item.unreadIndicator) {
3154
- <div class="unread-indicator-wrapper" slot="start">
3155
- <div class="unread-indicator"></div>
3156
- </div>
3157
- }
3158
-
3159
- <ion-label [ngClass]="{ 'ion-text-nowrap': item.ellipsis }">
3160
- <h2>{{ item.text }}</h2>
3161
-
3162
- @if (item.comments) {
3163
- <ion-note color="medium"> {{ item.comments }} </ion-note>
3164
- }
3165
- </ion-label>
3166
-
3167
- @if (item.actions) {
3168
- @for (action of item.actions; track action.token) {
3169
- <ion-button
3170
- fill="outline"
3171
- color="dark"
3172
- slot="end"
3173
- [disabled]="action.state === states.WORKING"
3174
- (click)="onActionClickHandler(action.token)"
3175
- >
3176
- @if (action.state !== states.WORKING) {
3177
- @if (action.icon) {
3178
- <ion-icon aria-hidden="true" [name]="action.icon" size="medium" slot="start"></ion-icon>
3179
- }
3180
-
3181
- {{ action.description }}
3182
- }
3183
-
3184
- @if (action.state === states.WORKING) {
3185
- <ion-spinner class="action-spinner" name="circular"></ion-spinner>
3186
- }
3187
- </ion-button>
3188
- }
3189
- }
3190
- </ion-item>
3191
- }
3192
-
3193
- @if (item.mode == 'route') {
3194
- <ion-item
3195
- [lines]="item.lines"
3196
- [button]="item.clickable"
3197
- [disabled]="item.disabled"
3198
- (click)="clickHandler(item.token)"
3199
- [routerLink]="item.routerLink"
3200
- >
3201
- @if (item.unreadIndicator) {
3202
- <div class="unread-indicator-wrapper" slot="start">
3203
- <div class="unread-indicator"></div>
3204
- </div>
3205
- }
3206
-
3207
- <ion-label [ngClass]="{ 'ion-text-nowrap': item.ellipsis }">
3208
- <h2>{{ item.text }}</h2>
3209
-
3210
- @if (item.comments) {
3211
- <ion-note color="medium"> {{ item.comments }} </ion-note>
3212
- }
3213
- </ion-label>
3214
- </ion-item>
3215
- }
3216
-
3217
- @if (item.mode == 'subtitule') {
3218
- <ion-item
3219
- [lines]="item.lines"
3220
- [button]="item.clickable"
3221
- [disabled]="item.disabled"
3222
- (click)="clickHandler(item.token)"
3223
- >
3224
- @if (item.unreadIndicator) {
3225
- <div class="unread-indicator-wrapper" slot="start">
3226
- <div class="unread-indicator"></div>
3227
- </div>
3228
- }
3229
-
3230
- <ion-label [ngClass]="{ 'ion-text-nowrap': item.ellipsis }">
3231
- <h1>{{ item.text }}</h1>
3232
- <p>{{ item.subtitle }}</p>
3233
- </ion-label>
3234
- </ion-item>
3235
- }
3236
-
3237
- @if (item.mode == 'avatar') {
3238
- <ion-item
3239
- [lines]="item.lines"
3240
- [button]="item.clickable"
3241
- [disabled]="item.disabled"
3242
- (click)="clickHandler(item.token)"
3243
- >
3244
- <ion-avatar aria-hidden="true" slot="start">
3245
- <img alt="" [src]="item.image" />
3246
- </ion-avatar>
3247
- <ion-label>{{ item.text }}</ion-label>
3248
- </ion-item>
3249
- }
3250
-
3251
- @if (item.mode == 'icon') {
3252
- <ion-item
3253
- [lines]="item.lines"
3254
- [button]="item.clickable"
3255
- [disabled]="item.disabled"
3256
- (click)="clickHandler(item.token)"
3257
- >
3258
- <ion-icon aria-hidden="true" [name]="item.icon" size="medium" slot="start"></ion-icon>
3259
- <ion-label>{{ item.text }}</ion-label>
3260
- </ion-item>
3261
- }
3262
- }
3263
- </ion-list>
3264
- `, styles: ["ion-label{font-family:var(--ion-default-font),Arial,sans-serif}ion-note{font-family:var(--ion-default-font),Arial,sans-serif;font-weight:400}ion-button{font-family:var(--ion-default-font),Arial,sans-serif}.shadowed{box-shadow:.1875rem .625rem .5rem #1219541a}.bordered{border:1px solid}.unread-indicator{background:var(--ion-color-primary);width:.625rem;height:.625rem;border-radius:100%;position:absolute;inset-inline-start:.75rem;top:.75rem}.action-spinner{width:3.125rem;height:1rem}\n"] }]
3265
- }], ctorParameters: () => [{ type: IconService }], propDecorators: { props: [{
3266
- type: Input
3267
- }], onClick: [{
3268
- type: Output
3269
- }], onActionClick: [{
3270
- type: Output
3271
- }] } });
3272
-
3273
- class LayoutComponent {
3274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3275
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LayoutComponent, isStandalone: true, selector: "val-layout", ngImport: i0, template: `
3276
- <div class="layout-container">
3277
- <ng-content></ng-content>
3278
- </div>
3279
- `, isInline: true, styles: [".layout-container{margin:0 auto;padding:0;width:100%;box-sizing:border-box;margin-bottom:1rem}@media (max-width: 768px){.layout-container{max-width:100%}}@media (min-width: 768px){.layout-container{margin:0 auto;max-width:55rem;margin-bottom:1.5rem}}@media (min-width: 1200px){.layout-container{margin:0 auto;max-width:68.75rem}}\n"] }); }
3280
- }
3281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutComponent, decorators: [{
3282
- type: Component,
3283
- args: [{ selector: 'val-layout', standalone: true, imports: [], template: `
3284
- <div class="layout-container">
3285
- <ng-content></ng-content>
3286
- </div>
3287
- `, styles: [".layout-container{margin:0 auto;padding:0;width:100%;box-sizing:border-box;margin-bottom:1rem}@media (max-width: 768px){.layout-container{max-width:100%}}@media (min-width: 768px){.layout-container{margin:0 auto;max-width:55rem;margin-bottom:1.5rem}}@media (min-width: 1200px){.layout-container{margin:0 auto;max-width:68.75rem}}\n"] }]
3288
- }] });
3289
-
3290
- class SimpleComponent {
3291
- constructor() {
3292
- this.onClick = new EventEmitter();
3293
- }
3294
- onClickHandler(token) {
3295
- this.onClick.emit(token);
3296
- }
3297
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SimpleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3298
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SimpleComponent, isStandalone: true, selector: "val-simple", inputs: { props: "props" }, outputs: { onClick: "onClick" }, ngImport: i0, template: `
3299
- <val-header [props]="props.header" />
3300
-
3301
- <ion-content [fullscreen]="true">
3302
- <ion-header collapse="condense">
3303
- <ion-toolbar>
3304
- <ion-title style="padding: 0;" size="large">{{ props.pageTitle }}</ion-title>
3305
- </ion-toolbar>
3306
- </ion-header>
3307
- @if (props.pageDescription) {
3308
- <div class="description-container">
3309
- <val-expandable-text
3310
- [props]="{
3311
- limit: 180,
3312
- content: props.pageDescription,
3313
- color: 'primary',
3314
- expandText: 'más',
3315
- }"
3316
- />
3317
- </div>
3318
- }
3319
- @if (props.link) {
3320
- <val-link [props]="props.link" (onClick)="onClickHandler($event)"></val-link>
3321
- }
3322
- @if (props.withDivider) {
3323
- <val-divider [props]="{ fill: 'solid', size: 'medium', color: 'dark' }" />
3324
- }
3325
- <val-layout>
3326
- <ng-content></ng-content>
3327
- </val-layout>
3328
- </ion-content>
3329
- `, isInline: true, styles: [".description-container{padding:0 16px}\n"], dependencies: [{ kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: HeaderComponent, selector: "val-header", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: LayoutComponent, selector: "val-layout" }, { kind: "component", type: DividerComponent, selector: "val-divider", inputs: ["props"] }, { kind: "component", type: LinkComponent, selector: "val-link", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ExpandableTextComponent, selector: "val-expandable-text", inputs: ["props"] }] }); }
3330
- }
3331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SimpleComponent, decorators: [{
3332
- type: Component,
3333
- args: [{ selector: 'val-simple', standalone: true, imports: [
3334
- NgIf,
3335
- IonHeader,
3336
- IonToolbar,
3337
- IonTitle,
3338
- IonText,
3339
- IonContent,
3340
- HeaderComponent,
3341
- LayoutComponent,
3342
- DividerComponent,
3343
- LinkComponent,
3344
- ExpandableTextComponent,
3345
- ], template: `
3346
- <val-header [props]="props.header" />
3347
-
3348
- <ion-content [fullscreen]="true">
3349
- <ion-header collapse="condense">
3350
- <ion-toolbar>
3351
- <ion-title style="padding: 0;" size="large">{{ props.pageTitle }}</ion-title>
3352
- </ion-toolbar>
3353
- </ion-header>
3354
- @if (props.pageDescription) {
3355
- <div class="description-container">
3356
- <val-expandable-text
3357
- [props]="{
3358
- limit: 180,
3359
- content: props.pageDescription,
3360
- color: 'primary',
3361
- expandText: 'más',
3362
- }"
3363
- />
3364
- </div>
3365
- }
3366
- @if (props.link) {
3367
- <val-link [props]="props.link" (onClick)="onClickHandler($event)"></val-link>
3368
- }
3369
- @if (props.withDivider) {
3370
- <val-divider [props]="{ fill: 'solid', size: 'medium', color: 'dark' }" />
3371
- }
3372
- <val-layout>
3373
- <ng-content></ng-content>
3374
- </val-layout>
3375
- </ion-content>
3376
- `, styles: [".description-container{padding:0 16px}\n"] }]
3377
- }], propDecorators: { props: [{
3378
- type: Input
3379
- }], onClick: [{
3380
- type: Output
3381
- }] } });
3382
-
3383
- class TextContent {
3384
- constructor(text) {
3385
- this.text = text;
3386
- }
3387
- get Content() {
3388
- return this.text;
3389
- }
3390
- }
3391
- var LangOption;
3392
- (function (LangOption) {
3393
- LangOption["ES"] = "es";
3394
- LangOption["EN"] = "en";
3395
- })(LangOption || (LangOption = {}));
3396
-
3397
- class LocalStorageService {
3398
- static set(reference, value) {
3399
- localStorage.setItem(reference, JSON.stringify(value));
3400
- }
3401
- static get(reference) {
3402
- const value = localStorage.getItem(reference);
3403
- return JSON.parse(value);
3404
- }
3405
- static remove(reference) {
3406
- localStorage.removeItem(reference);
3407
- }
3408
- static clear() {
3409
- localStorage.clear();
3410
- }
3411
- }
3412
-
3413
- const LANG = 'LANG';
3414
- const THEME = 'THEME';
3415
-
3416
- const ValtechConfigService = new InjectionToken('ValtechConfig');
3417
-
3418
- class LangService {
3419
- constructor(config) {
3420
- this.default = LangOption.ES;
3421
- console.log('injected config: ', config);
3422
- this.content = config.content;
3423
- this.config = config;
3424
- const current = LocalStorageService.get(LANG);
3425
- this.selectedLang = new BehaviorSubject(current || this.default);
3426
- }
3427
- Text(className) {
3428
- return this.content[className].Content[this.selectedLang.value];
3429
- }
3430
- get Lang() {
3431
- return this.selectedLang.value;
3432
- }
3433
- set Lang(lang) {
3434
- this.selectedLang.next(lang);
3435
- LocalStorageService.set(LANG, lang);
3436
- }
3437
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LangService, deps: [{ token: ValtechConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3438
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LangService, providedIn: 'root' }); }
3439
- }
3440
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LangService, decorators: [{
3441
- type: Injectable,
3442
- args: [{
3443
- providedIn: 'root',
3444
- }]
3445
- }], ctorParameters: () => [{ type: undefined, decorators: [{
3446
- type: Inject,
3447
- args: [ValtechConfigService]
3448
- }] }] });
3449
-
3450
- var ThemeOption;
3451
- (function (ThemeOption) {
3452
- ThemeOption["LIGHT"] = "light";
3453
- ThemeOption["DARK"] = "dark";
3454
- ThemeOption["AUTO"] = "auto";
3455
- })(ThemeOption || (ThemeOption = {}));
3456
- class ThemeService {
3457
- constructor() {
3458
- this.lightToggle = false;
3459
- this.darkToggle = false;
3460
- this.autoToggle = false;
3461
- this.currentOption = ThemeOption.AUTO;
3462
- this.themeOptions = ThemeOption;
3463
- this.prefersDark = false;
3464
- this.default = ThemeOption.AUTO;
3465
- const current = LocalStorageService.get(THEME);
3466
- console.log('💡 ThemeConfig current::: ', current);
3467
- this.theme = new BehaviorSubject(current || this.default);
3468
- this.currentOption = this.Theme;
3469
- console.log('💡 ThemeConfig this.currentOption::: ', this.currentOption);
3470
- this.toggleUserPreference(this.currentOption);
3471
- const prefersDarkQuery = window.matchMedia('(prefers-color-scheme: dark)');
3472
- this.prefersDark = prefersDarkQuery.matches;
3473
- this.handleAutoConfiguration();
3474
- prefersDarkQuery.addEventListener('change', mediaQuery => {
3475
- console.log('💡 ThemeConfig addEventListener change::: ', mediaQuery);
3476
- this.prefersDark = mediaQuery.matches;
3477
- this.handleAutoConfiguration();
3478
- });
3479
- }
3480
- handleAutoConfiguration() {
3481
- if (this.prefersDark && this.currentOption === ThemeOption.AUTO) {
3482
- console.log('💡 ThemeConfig prefersDark::: ', this.prefersDark);
3483
- this.toggleUserPreference(ThemeOption.AUTO);
3484
- }
3485
- if (!this.prefersDark && this.currentOption === ThemeOption.AUTO) {
3486
- console.log('💡 ThemeConfig prefersDark::: ', this.prefersDark);
3487
- this.toggleUserPreference(ThemeOption.AUTO);
3488
- }
3489
- }
3490
- handleDarkPreference() {
3491
- this.toggleTheme(ThemeOption.DARK, true);
3492
- this.toggleTheme(ThemeOption.LIGHT, false);
3493
- }
3494
- handleLightPreference() {
3495
- this.toggleTheme(ThemeOption.LIGHT, true);
3496
- this.toggleTheme(ThemeOption.DARK, false);
3497
- }
3498
- get Theme() {
3499
- return this.theme.value;
3500
- }
3501
- set Theme(theme) {
3502
- this.theme.next(theme);
3503
- LocalStorageService.set(THEME, theme);
3504
- }
3505
- toggleTheme(name, shouldAdd) {
3506
- console.log('toggleTheme::: ', name, shouldAdd);
3507
- document.body.classList.toggle(name, shouldAdd);
3508
- }
3509
- toggleUserPreference(option) {
3510
- this.currentOption = option;
3511
- this.Theme = option;
3512
- this.lightToggle = option === ThemeOption.LIGHT;
3513
- this.darkToggle = option === ThemeOption.DARK;
3514
- this.autoToggle = option === ThemeOption.AUTO;
3515
- switch (option) {
3516
- case ThemeOption.LIGHT:
3517
- this.handleLightPreference();
3518
- break;
3519
- case ThemeOption.DARK:
3520
- this.handleDarkPreference();
3521
- break;
3522
- case ThemeOption.AUTO:
3523
- if (this.prefersDark) {
3524
- this.handleDarkPreference();
3525
- }
3526
- else {
3527
- this.handleLightPreference();
3528
- }
3529
- break;
3530
- }
3531
- }
3532
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3533
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
3534
- }
3535
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThemeService, decorators: [{
3536
- type: Injectable,
3537
- args: [{
3538
- providedIn: 'root',
3539
- }]
3540
- }], ctorParameters: () => [] });
3541
-
3542
- /*
3543
- * Public API Surface of valtech-components
3544
- */
3545
- /*
3546
- * Public API Surface of valtech-components
3547
- */
3548
-
3549
- /**
3550
- * Generated bundle index. Do not edit.
3551
- */
3552
-
3553
- export { ActionType, AlertBoxComponent, AvatarComponent, BannerComponent, BaseDefault, BoxComponent, ButtonComponent, ButtonGroupComponent, CardComponent, CardSection, CardType, CheckInputComponent, ClearDefault, ClearDefaultBlock, ClearDefaultFull, ClearDefaultRound, ClearDefaultRoundBlock, ClearDefaultRoundFull, CommentInputComponent, ComponentStates, ContentLoaderComponent, DateInputComponent, DisplayComponent, DividerComponent, DownloadService, EmailInputComponent, ExpandableTextComponent, FileInputComponent, FooterComponent, FormComponent, FormFooterComponent, HeaderComponent, HintComponent, HourInputComponent, HrefComponent, Icon, IconComponent, IconService, ImageComponent, InAppBrowserService, InputType, ItemListComponent, LangOption, LangService, LayoutComponent, LinkComponent, LinksCakeComponent, LocalStorageService, MOTION, NavigationService, NoContentComponent, NotesBoxComponent, NumberInputComponent, OutlineDefault, OutlineDefaultBlock, OutlineDefaultFull, OutlineDefaultRound, OutlineDefaultRoundBlock, OutlineDefaultRoundFull, PasswordInputComponent, PinInputComponent, PrimarySolidBlockButton, PrimarySolidBlockHrefButton, PrimarySolidBlockIconButton, PrimarySolidBlockIconHrefButton, PrimarySolidDefaultRoundButton, PrimarySolidDefaultRoundHrefButton, PrimarySolidDefaultRoundIconButton, PrimarySolidDefaultRoundIconHrefButton, PrimarySolidFullButton, PrimarySolidFullHrefButton, PrimarySolidFullIconButton, PrimarySolidFullIconHrefButton, PrimarySolidLargeRoundButton, PrimarySolidLargeRoundHrefButton, PrimarySolidLargeRoundIconButton, PrimarySolidLargeRoundIconHrefButton, PrimarySolidSmallRoundButton, PrimarySolidSmallRoundHrefButton, PrimarySolidSmallRoundIconButton, PrimarySolidSmallRoundIconHrefButton, ProgressBarComponent, ProgressStatusComponent, PrompterComponent, RadioInputComponent, SearchbarComponent, SecondarySolidBlockButton, SecondarySolidBlockHrefButton, SecondarySolidBlockIconButton, SecondarySolidBlockIconHrefButton, SecondarySolidDefaultRoundButton, SecondarySolidDefaultRoundHrefButton, SecondarySolidDefaultRoundIconButton, SecondarySolidDefaultRoundIconHrefButton, SecondarySolidFullButton, SecondarySolidFullHrefButton, SecondarySolidFullIconButton, SecondarySolidFullIconHrefButton, SecondarySolidLargeRoundButton, SecondarySolidLargeRoundHrefButton, SecondarySolidLargeRoundIconButton, SecondarySolidLargeRoundIconHrefButton, SecondarySolidSmallRoundButton, SecondarySolidSmallRoundHrefButton, SecondarySolidSmallRoundIconButton, SecondarySolidSmallRoundIconHrefButton, SimpleComponent, SolidBlockButton, SolidDefault, SolidDefaultBlock, SolidDefaultButton, SolidDefaultFull, SolidDefaultRound, SolidDefaultRoundBlock, SolidDefaultRoundButton, SolidDefaultRoundFull, SolidFullButton, SolidLargeButton, SolidLargeRoundButton, SolidSmallButton, SolidSmallRoundButton, TextComponent, TextContent, TextInputComponent, ThemeOption, ThemeService, TitleBlockComponent, TitleComponent, ToolbarActionType, ToolbarComponent, ValtechConfigService, WizardComponent, WizardFooterComponent, goToTop, isAtEnd, maxLength };
3554
- //# sourceMappingURL=valtech-components.mjs.map