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