valtech-components 2.0.27 → 2.0.28

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