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
@@ -0,0 +1,45 @@
1
+ @import '../../styles/mixins.scss';
2
+
3
+ .content-container {
4
+ display: flex;
5
+ justify-content: space-between;
6
+
7
+ &.center {
8
+ flex-direction: column;
9
+ }
10
+
11
+ &.column {
12
+ flex-direction: row;
13
+ }
14
+
15
+ &.row {
16
+ flex-direction: column;
17
+ }
18
+
19
+ &.middle {
20
+ align-items: center;
21
+ }
22
+
23
+ &.top {
24
+ align-items: flex-start;
25
+ }
26
+
27
+ &.bottom {
28
+ align-items: flex-end;
29
+ }
30
+
31
+ &.hybrid {
32
+ flex-direction: column;
33
+ align-items: flex-start;
34
+
35
+ @include media-medium {
36
+ flex-direction: row;
37
+ align-items: center;
38
+ }
39
+ }
40
+ }
41
+
42
+ .buttons-container {
43
+ align-items: center;
44
+ display: flex;
45
+ }
@@ -0,0 +1,57 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
3
+ import { BoxComponent } from '../../atoms/box/box.component';
4
+ import { ButtonGroupComponent } from '../../molecules/button-group/button-group.component';
5
+ import { TitleBlockComponent } from '../../molecules/title-block/title-block.component';
6
+ import { BannerMetadata } from './types';
7
+
8
+ @Component({
9
+ selector: 'val-banner',
10
+ standalone: true,
11
+ imports: [CommonModule, BoxComponent, TitleBlockComponent, ButtonGroupComponent],
12
+ template: `
13
+ <val-box
14
+ [props]="{ icon: props.closable ? 'close-outline' : '', bordered: props.bordered, color: '' }"
15
+ (onClick)="closeHandler()"
16
+ >
17
+ <div [ngClass]="['content-container', props.mode, props.alignment]" body>
18
+ <val-title-block
19
+ [props]="{
20
+ position: props.mode === 'center' ? 'center' : 'left',
21
+ aboveTitle: props.content.aboveTitle,
22
+ title: props.content.title,
23
+ bellowTitle: props.content.bellowTitle,
24
+ }"
25
+ ></val-title-block>
26
+ <val-button-group
27
+ class="buttons-container"
28
+ [props]="{ position: props.mode === 'center' ? 'center' : 'left', buttons: props.actions, columned: false }"
29
+ (onClick)="clickHandler($event)"
30
+ ></val-button-group>
31
+ </div>
32
+ </val-box>
33
+ `,
34
+ styleUrls: ['./banner.component.scss'],
35
+ })
36
+ export class BannerComponent implements OnInit {
37
+ @Input()
38
+ props: BannerMetadata;
39
+
40
+ @Output()
41
+ onClick = new EventEmitter<string>();
42
+
43
+ @Output()
44
+ onClose = new EventEmitter();
45
+
46
+ constructor() {}
47
+
48
+ ngOnInit() {}
49
+
50
+ clickHandler(token?: string) {
51
+ this.onClick.emit(token);
52
+ }
53
+
54
+ closeHandler() {
55
+ this.onClose.emit();
56
+ }
57
+ }
@@ -0,0 +1,13 @@
1
+ import { Color } from '@ionic/core';
2
+ import { TitleBlockMetada } from '../../molecules/title-block/types';
3
+ import { ButtonMetadata } from '../../types';
4
+
5
+ export type BannerMetadata = {
6
+ color: Color;
7
+ bordered: boolean;
8
+ closable: boolean;
9
+ mode: 'row' | 'column' | 'hybrid' | 'center';
10
+ alignment: 'center' | 'middle' | 'bottom';
11
+ actions: ButtonMetadata[];
12
+ content: TitleBlockMetada;
13
+ };
@@ -0,0 +1,3 @@
1
+ .background {
2
+ background: var(--ion-background-color);
3
+ }
@@ -0,0 +1,40 @@
1
+ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
2
+ import { FooterMetadata } from './types';
3
+ import { IonFooter } from '@ionic/angular/standalone';
4
+ import { ToolbarComponent } from '../toolbar/toolbar.component';
5
+
6
+ @Component({
7
+ selector: 'val-footer',
8
+ standalone: true,
9
+ imports: [IonFooter, ToolbarComponent],
10
+ template: `
11
+ <ion-footer
12
+ [class.ion-no-border]="!props.bordered"
13
+ [translucent]="props.translucent"
14
+ [class.background]="props.toolbar.color === 'background'"
15
+ >
16
+ <val-toolbar
17
+ *ngIf="props.toolbar.title || props.toolbar.withActions || props.toolbar.withBack"
18
+ [props]="props.toolbar"
19
+ (onClick)="clickHandler($event)"
20
+ ></val-toolbar>
21
+ <ng-content select="[extra]"></ng-content>
22
+ </ion-footer>
23
+ `,
24
+ styleUrls: ['./footer.component.scss'],
25
+ })
26
+ export class FooterComponent implements OnInit {
27
+ @Input()
28
+ props: FooterMetadata;
29
+
30
+ @Output()
31
+ onClick = new EventEmitter<string>();
32
+
33
+ constructor() {}
34
+
35
+ ngOnInit() {}
36
+
37
+ clickHandler(token?: string) {
38
+ this.onClick.emit(token);
39
+ }
40
+ }
@@ -1,6 +1,7 @@
1
1
  import { ToolbarMetadata } from '../toolbar/types';
2
+
2
3
  export type FooterMetadata = {
3
- translucent?: boolean;
4
- bordered?: boolean;
5
- toolbar: ToolbarMetadata;
4
+ translucent?: boolean;
5
+ bordered?: boolean;
6
+ toolbar: ToolbarMetadata;
6
7
  };
@@ -0,0 +1,11 @@
1
+ import { ValidatorFn, Validators } from '@angular/forms';
2
+
3
+ export const maxLength = (
4
+ field: string,
5
+ max: number
6
+ ): { validator: ValidatorFn; error: string } => {
7
+ return {
8
+ validator: Validators.maxLength(max),
9
+ error: `El campo ${field} no debe superar los ${max} caracteres.`,
10
+ };
11
+ };
@@ -0,0 +1,63 @@
1
+ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { ButtonGroupComponent } from '../../../molecules/button-group/button-group.component';
4
+ import { ButtonMetadata, ComponentStates, FormSubmit } from '../../../types';
5
+ import { FooterComponent } from '../../footer/footer.component';
6
+
7
+ @Component({
8
+ selector: 'val-form-footer',
9
+ standalone: true,
10
+ imports: [FooterComponent, ButtonGroupComponent],
11
+ template: `
12
+ <val-footer
13
+ [props]="{
14
+ bordered: false,
15
+ translucent: false,
16
+ toolbar: {
17
+ title: '',
18
+ actions: [],
19
+ color: 'background',
20
+ withBack: false,
21
+ withActions: false,
22
+ },
23
+ }"
24
+ >
25
+ <val-button-group
26
+ extra
27
+ [props]="{ buttons: actions, position: 'center', columned: false }"
28
+ (onClick)="submitHandler($event)"
29
+ ></val-button-group>
30
+ </val-footer>
31
+ `,
32
+ styleUrls: ['./form-footer.component.scss'],
33
+ })
34
+ export class FormFooterComponent implements OnInit {
35
+ @Input()
36
+ form: FormGroup;
37
+
38
+ @Input()
39
+ action: ButtonMetadata;
40
+
41
+ @Output()
42
+ onSubmit = new EventEmitter<FormSubmit>();
43
+
44
+ constructor() {}
45
+
46
+ ngOnInit() {}
47
+
48
+ async submitHandler(token?: string) {
49
+ this.onSubmit.emit({ fields: this.form.value, token });
50
+ }
51
+
52
+ get actions(): ButtonMetadata[] {
53
+ if (!this.form) {
54
+ return [];
55
+ }
56
+
57
+ if (this.form.valid) {
58
+ this.action.state = ComponentStates.ENABLED;
59
+ }
60
+
61
+ return [this.action];
62
+ }
63
+ }
@@ -0,0 +1,16 @@
1
+ @import '../../styles/mixins.scss';
2
+
3
+ .container {
4
+ }
5
+
6
+ .section {
7
+ margin-top: pxToRem(16);
8
+ }
9
+
10
+ .input {
11
+ margin: pxToRem(8) 0;
12
+
13
+ @include media-medium {
14
+ margin: pxToRem(12) 0;
15
+ }
16
+ }
@@ -0,0 +1,183 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';
3
+ import { FormBuilder, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
4
+ import { isAtEnd } from '../../../shared/utils/dom';
5
+ import { DisplayComponent } from '../../atoms/display/display.component';
6
+ import { DividerComponent } from '../../atoms/divider/divider.component';
7
+ import { TitleComponent } from '../../atoms/title/title.component';
8
+ import { ButtonGroupComponent } from '../../molecules/button-group/button-group.component';
9
+ import { CheckInputComponent } from '../../molecules/check-input/check-input.component';
10
+ import { CommentInputComponent } from '../../molecules/comment-input/comment-input.component';
11
+ import { DateInputComponent } from '../../molecules/date-input/date-input.component';
12
+ import { EmailInputComponent } from '../../molecules/email-input/email-input.component';
13
+ import { FileInputComponent } from '../../molecules/file-input/file-input.component';
14
+ import { HintComponent } from '../../molecules/hint/hint.component';
15
+ import { HourInputComponent } from '../../molecules/hour-input/hour-input.component';
16
+ import { NumberInputComponent } from '../../molecules/number-input/number-input.component';
17
+ import { PasswordInputComponent } from '../../molecules/password-input/password-input.component';
18
+ import { PinInputComponent } from '../../molecules/pin-input/pin-input.component';
19
+ import { RadioInputComponent } from '../../molecules/radio-input/radio-input.component';
20
+ import { TextInputComponent } from '../../molecules/text-input/text-input.component';
21
+ import { ButtonMetadata, ComponentStates, FormMetadata, FormSubmit, InputMetadata, InputType } from '../../types';
22
+
23
+ @Component({
24
+ selector: 'val-form',
25
+ standalone: true,
26
+ imports: [
27
+ CommonModule,
28
+ ReactiveFormsModule,
29
+ DisplayComponent,
30
+ TitleComponent,
31
+ TextInputComponent,
32
+ CheckInputComponent,
33
+ ButtonGroupComponent,
34
+ DividerComponent,
35
+ HintComponent,
36
+ CommentInputComponent,
37
+ DateInputComponent,
38
+ FileInputComponent,
39
+ HourInputComponent,
40
+ EmailInputComponent,
41
+ NumberInputComponent,
42
+ RadioInputComponent,
43
+ PasswordInputComponent,
44
+ PinInputComponent,
45
+ ],
46
+ template: `
47
+ <div class="container">
48
+ <form [formGroup]="form">
49
+ <val-display
50
+ [props]="{
51
+ content: props.name,
52
+ color: 'dark',
53
+ size: 'large',
54
+ }"
55
+ ></val-display>
56
+ <div class="section" *ngFor="let s of props.sections">
57
+ <val-title [props]="{ content: s.name, size: 'large', color: '', bold: false }"></val-title>
58
+ <div class="input" *ngFor="let f of s.fields">
59
+ <val-title [props]="{ content: f.label, size: 'small', color: 'dark', bold: false }"></val-title>
60
+ <ng-container *ngIf="f.type === types.TEXT">
61
+ <val-text-input [props]="getFieldProp(f)"></val-text-input>
62
+ </ng-container>
63
+ <ng-container *ngIf="f.type === types.CHECK">
64
+ <val-check-input></val-check-input>
65
+ </ng-container>
66
+ <ng-container *ngIf="f.type === types.COMMENT">
67
+ <val-comment-input [props]="getFieldProp(f)"></val-comment-input>
68
+ </ng-container>
69
+ <ng-container *ngIf="f.type === types.DATE">
70
+ <val-date-input [props]="getFieldProp(f)"></val-date-input>
71
+ </ng-container>
72
+ <ng-container *ngIf="f.type === types.EMAIL">
73
+ <val-email-input [props]="getFieldProp(f)"></val-email-input>
74
+ </ng-container>
75
+ <ng-container *ngIf="f.type === types.FILE">
76
+ <val-file-input [props]="getFieldProp(f)"></val-file-input>
77
+ </ng-container>
78
+ <ng-container *ngIf="f.type === types.HOUR">
79
+ <val-hour-input [props]="getFieldProp(f)"></val-hour-input>
80
+ </ng-container>
81
+ <ng-container *ngIf="f.type === types.NUMBER">
82
+ <val-number-input [props]="getFieldProp(f)"></val-number-input>
83
+ </ng-container>
84
+ <ng-container *ngIf="f.type === types.PASSWORD">
85
+ <val-password-input [props]="getFieldProp(f)"></val-password-input>
86
+ </ng-container>
87
+ <ng-container *ngIf="f.type === types.PIN_CODE">
88
+ <val-pin-input [props]="getFieldProp(f)"></val-pin-input>
89
+ </ng-container>
90
+ <ng-container *ngIf="f.type === types.RADIO">
91
+ <val-radio-input [props]="getFieldProp(f)"></val-radio-input>
92
+ </ng-container>
93
+ <ng-container *ngIf="f.type === types.SELECT">
94
+ <!-- <val-select-input></val-select-input> -->
95
+ </ng-container>
96
+ <val-hint [props]="getFieldProp(f)"></val-hint>
97
+ </div>
98
+ <val-divider [props]="{ fill: 'solid', size: 'medium', color: 'medium' }"></val-divider>
99
+ </div>
100
+ <val-button-group
101
+ [props]="{ buttons: actions, position: 'center', columned: false }"
102
+ (onClick)="submitHandler($event)"
103
+ ></val-button-group>
104
+ </form>
105
+ </div>
106
+ `,
107
+ styleUrls: ['./form.component.scss'],
108
+ })
109
+ export class FormComponent implements OnInit {
110
+ @Input()
111
+ props: FormMetadata;
112
+
113
+ @Output()
114
+ onSubmit = new EventEmitter<FormSubmit>();
115
+
116
+ @Output()
117
+ onInvalid = new EventEmitter();
118
+
119
+ form: FormGroup;
120
+ types = InputType;
121
+
122
+ constructor(
123
+ private fb: FormBuilder,
124
+ private elementRef: ElementRef
125
+ ) {}
126
+
127
+ ngOnInit() {
128
+ const formControls = {};
129
+ this.props.sections.forEach(section => {
130
+ section.fields.forEach(field => {
131
+ formControls[field.name] = [undefined, field.validators || []];
132
+ });
133
+ });
134
+ this.form = this.fb.group(formControls);
135
+ }
136
+
137
+ async submitHandler(token?: string) {
138
+ this.onSubmit.emit({ fields: this.form.value, token });
139
+ }
140
+
141
+ getControl(field: string): FormControl {
142
+ return this.Form.get(field) as FormControl;
143
+ }
144
+
145
+ getFieldProp(field: InputMetadata): InputMetadata {
146
+ return {
147
+ ...field,
148
+ control: this.getControl(field.name),
149
+ };
150
+ }
151
+
152
+ get isAtEndOfForm(): boolean {
153
+ return isAtEnd(this.elementRef);
154
+ }
155
+
156
+ get Form(): FormGroup {
157
+ return this.form;
158
+ }
159
+
160
+ get actions(): ButtonMetadata[] {
161
+ if (!this.form) {
162
+ return [];
163
+ }
164
+
165
+ if (this.form.valid) {
166
+ this.props.actions.state = ComponentStates.ENABLED;
167
+ }
168
+
169
+ if (this.props.state === ComponentStates.WORKING) {
170
+ this.props.actions.state = ComponentStates.WORKING;
171
+ }
172
+
173
+ if (this.props.state === ComponentStates.ENABLED) {
174
+ this.props.actions.state = ComponentStates.ENABLED;
175
+ }
176
+
177
+ if (this.props.state === ComponentStates.DISABLED) {
178
+ this.props.actions.state = ComponentStates.DISABLED;
179
+ }
180
+
181
+ return [this.props.actions];
182
+ }
183
+ }
@@ -0,0 +1,32 @@
1
+ import { NgClass } from '@angular/common';
2
+ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
3
+ import { IonHeader } from '@ionic/angular/standalone';
4
+ import { ToolbarComponent } from '../toolbar/toolbar.component';
5
+ import { HeaderMetadata } from './types';
6
+
7
+ @Component({
8
+ selector: 'val-header',
9
+ standalone: true,
10
+ imports: [NgClass, IonHeader, ToolbarComponent],
11
+ template: `
12
+ <ion-header [class.ion-no-border]="!props.bordered" [translucent]="props.translucent">
13
+ <val-toolbar [props]="props.toolbar" (onClick)="clickHandler($event)"></val-toolbar>
14
+ </ion-header>
15
+ `,
16
+ styleUrls: ['./header.component.scss'],
17
+ })
18
+ export class HeaderComponent implements OnInit {
19
+ @Input()
20
+ props: HeaderMetadata;
21
+
22
+ @Output()
23
+ onClick = new EventEmitter<string>();
24
+
25
+ constructor() {}
26
+
27
+ ngOnInit() {}
28
+
29
+ clickHandler(token?: string) {
30
+ this.onClick.emit(token);
31
+ }
32
+ }
@@ -1,6 +1,7 @@
1
1
  import { ToolbarMetadata } from '../toolbar/types';
2
+
2
3
  export type HeaderMetadata = {
3
- translucent?: boolean;
4
- bordered?: boolean;
5
- toolbar: ToolbarMetadata;
4
+ translucent?: boolean;
5
+ bordered?: boolean;
6
+ toolbar: ToolbarMetadata;
6
7
  };
@@ -0,0 +1,11 @@
1
+ @import '../../styles/mixins.scss';
2
+
3
+ .image-container {
4
+ display: flex;
5
+ justify-content: center;
6
+ margin-bottom: pxToRem(16);
7
+ }
8
+
9
+ val-image .image {
10
+ margin: 0 auto;
11
+ }
@@ -0,0 +1,32 @@
1
+ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
2
+ import { ImageComponent } from '../../atoms/image/image.component';
3
+ import { BannerComponent } from '../banner/banner.component';
4
+ import { NoContentMetadata } from './types';
5
+
6
+ @Component({
7
+ selector: 'val-no-content',
8
+ standalone: true,
9
+ imports: [ImageComponent, BannerComponent],
10
+ template: `
11
+ <val-image class="image-container" [props]="props.image"></val-image>
12
+ <div>
13
+ <val-banner [props]="props.content" (onClick)="onClickHandler($event)"></val-banner>
14
+ </div>
15
+ `,
16
+ styleUrls: ['./no-content.component.scss'],
17
+ })
18
+ export class NoContentComponent implements OnInit {
19
+ @Input()
20
+ props: NoContentMetadata;
21
+
22
+ @Output()
23
+ onClick = new EventEmitter<string>();
24
+
25
+ constructor() {}
26
+
27
+ ngOnInit() {}
28
+
29
+ onClickHandler(token: string) {
30
+ this.onClick.emit(token);
31
+ }
32
+ }
@@ -1,6 +1,7 @@
1
1
  import { ImageMetadata } from '../../atoms/image/types';
2
2
  import { BannerMetadata } from '../../organisms/banner/types';
3
+
3
4
  export type NoContentMetadata = {
4
- image: ImageMetadata;
5
- content: BannerMetadata;
5
+ image: ImageMetadata;
6
+ content: BannerMetadata;
6
7
  };
@@ -0,0 +1,13 @@
1
+ @import '../../styles/mixins.scss';
2
+
3
+ ion-button {
4
+ font-family: var(--ion-default-font), Arial, sans-serif;
5
+ }
6
+
7
+ .left-buttons {
8
+ margin-left: pxToRem(-16);
9
+ }
10
+
11
+ .background {
12
+ background: var(--ion-background-color);
13
+ }