adp-web-components 0.1.59 → 0.1.60

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 (295) hide show
  1. package/dist/cjs/dead-stock-lookup_3.cjs.entry.js +7 -6
  2. package/dist/cjs/flexible-container.cjs.entry.js +1 -1
  3. package/dist/cjs/form-checkbox.cjs.entry.js +9 -5
  4. package/dist/cjs/form-date-picker.cjs.entry.js +2 -2
  5. package/dist/cjs/form-dialog_8.cjs.entry.js +40 -36
  6. package/dist/cjs/{form-error-message-CrGiKsoO.js → form-error-message-B2s83XoL.js} +1 -1
  7. package/dist/cjs/form-input-BZp9_abd.js +24 -0
  8. package/dist/cjs/form-input_4.cjs.entry.js +24 -18
  9. package/dist/cjs/form-switch.cjs.entry.js +9 -5
  10. package/dist/cjs/form-time-picker.cjs.entry.js +2 -2
  11. package/dist/cjs/general-inquiry-form.cjs.entry.js +24 -22
  12. package/dist/cjs/get-local-language-DV1oVchQ.js +194 -0
  13. package/dist/cjs/information-table.cjs.entry.js +1 -1
  14. package/dist/cjs/{loader-icon-qrSyqpQO.js → loader-icon-OTnFBvzm.js} +1150 -263
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/loading-spinner.cjs.entry.js +1 -1
  17. package/dist/cjs/manufacturer-part-lookup.cjs.entry.js +8 -7
  18. package/dist/cjs/part-lookup.cjs.entry.js +6 -5
  19. package/dist/cjs/service-booking-form.cjs.entry.js +11 -9
  20. package/dist/cjs/shift-checkbox.cjs.entry.js +1 -1
  21. package/dist/cjs/shift-components.cjs.js +1 -1
  22. package/dist/cjs/shift-switch.cjs.entry.js +1 -1
  23. package/dist/cjs/shift-tab-content.cjs.entry.js +1 -1
  24. package/dist/cjs/shift-tabs_2.cjs.entry.js +2 -2
  25. package/dist/cjs/ssc-lookup-form.cjs.entry.js +11 -9
  26. package/dist/cjs/state-object-DFBHdqbr.js +172 -0
  27. package/dist/cjs/test-drive-form.cjs.entry.js +11 -9
  28. package/dist/cjs/{type-BqNpIYcE.js → type-BSH0OxyO.js} +3 -3
  29. package/dist/cjs/{type-B8LchmnL.js → type-BvWomz0N.js} +2 -2
  30. package/dist/cjs/{type-BrzZ5GMr.js → type-NRLY9OsL.js} +9 -9
  31. package/dist/cjs/{get-local-language-CMptyFxH.js → types-B3WMBBhs.js} +4 -187
  32. package/dist/cjs/validation-BxmICJwK.js +89 -0
  33. package/dist/cjs/vehicle-accessories_7.cjs.entry.js +18 -17
  34. package/dist/cjs/vehicle-lookup.cjs.entry.js +6 -5
  35. package/dist/cjs/vehicle-quotation-form.cjs.entry.js +15 -14
  36. package/dist/collection/collection-manifest.json +1 -1
  37. package/dist/collection/components/components/empty.css +1 -1
  38. package/dist/collection/components/components/flexible-container.css +1 -1
  39. package/dist/collection/components/components/information-table.css +1 -1
  40. package/dist/collection/components/components/loading-spinner.css +1 -1
  41. package/dist/collection/components/components/shift-tab-content.css +1 -1
  42. package/dist/collection/components/components/shift-tabs.css +1 -1
  43. package/dist/collection/components/form-elements/components/form-error-message.js +1 -1
  44. package/dist/collection/components/form-elements/form-checkbox.js +29 -4
  45. package/dist/collection/components/form-elements/form-input.js +30 -5
  46. package/dist/collection/components/form-elements/form-inputs.css +1 -1
  47. package/dist/collection/components/form-elements/form-phone-number.js +30 -5
  48. package/dist/collection/components/form-elements/form-picker-input.js +30 -5
  49. package/dist/collection/components/form-elements/form-select.js +30 -4
  50. package/dist/collection/components/form-elements/form-submit.js +31 -4
  51. package/dist/collection/components/form-elements/form-switch.js +29 -4
  52. package/dist/collection/components/form-elements/form-text-area.js +32 -6
  53. package/dist/collection/components/form-elements/form-vin-input.js +53 -9
  54. package/dist/collection/components/forms/defaults/mappers.js +58 -46
  55. package/dist/collection/components/forms/defaults/style.css +1 -1
  56. package/dist/collection/components/forms/defaults/validation.js +73 -75
  57. package/dist/collection/components/forms/general-inquiry.js +20 -20
  58. package/dist/collection/components/forms/service-booking.js +6 -7
  59. package/dist/collection/components/forms/ssc-lookup.js +6 -7
  60. package/dist/collection/components/forms/test-drive.js +6 -7
  61. package/dist/collection/components/vehicle-lookup/vehicle-accessories.css +1 -1
  62. package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.css +1 -1
  63. package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.css +1 -1
  64. package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.js +1 -1
  65. package/dist/collection/components/vehicle-lookup/vehicle-lookup.css +1 -1
  66. package/dist/collection/components/vehicle-lookup/vehicle-paint-thickness.css +1 -1
  67. package/dist/collection/components/vehicle-lookup/vehicle-sale-information.css +1 -1
  68. package/dist/collection/components/vehicle-lookup/vehicle-service-history.css +1 -1
  69. package/dist/collection/components/vehicle-lookup/vehicle-specification.css +1 -1
  70. package/dist/collection/components/vehicle-lookup/vehicle-warranty-details.css +1 -1
  71. package/dist/collection/components/vin-extractor/vin-extractor.css +1 -1
  72. package/dist/collection/features/form-hook/functions.js +14 -10
  73. package/dist/collection/features/form-hook/inputs/form-input.js +19 -1
  74. package/dist/collection/features/form-hook/render-structure.js +1 -1
  75. package/dist/components/dead-stock-lookup.js +1 -1
  76. package/dist/components/distributor-lookup.js +1 -1
  77. package/dist/components/flexible-container.js +1 -1
  78. package/dist/components/form-checkbox.js +1 -1
  79. package/dist/components/form-date-picker.js +1 -1
  80. package/dist/components/form-dialog.js +1 -1
  81. package/dist/components/form-input.js +1 -1
  82. package/dist/components/form-phone-number.js +1 -1
  83. package/dist/components/form-picker-input.js +1 -1
  84. package/dist/components/form-select.js +1 -1
  85. package/dist/components/form-shadow-input.js +1 -1
  86. package/dist/components/form-structure-error.js +1 -1
  87. package/dist/components/form-structure.js +1 -1
  88. package/dist/components/form-submit.js +1 -1
  89. package/dist/components/form-switch.js +1 -1
  90. package/dist/components/form-text-area.js +1 -1
  91. package/dist/components/form-time-picker.js +1 -1
  92. package/dist/components/form-vin-input.js +1 -1
  93. package/dist/components/general-inquiry-form.js +1 -1
  94. package/dist/components/information-table.js +1 -1
  95. package/dist/components/loading-spinner.js +1 -1
  96. package/dist/components/manufacturer-lookup.js +1 -1
  97. package/dist/components/manufacturer-part-lookup.js +1 -1
  98. package/dist/components/p--ZWu5kfe.js +5 -0
  99. package/dist/components/p-3o70TTPM.js +5 -0
  100. package/dist/components/p-9Jshpnf4.js +5 -0
  101. package/dist/components/{p-CwQEFAEF.js → p-B6mLLQ5Z.js} +1 -1
  102. package/dist/components/p-B6yxFkGn.js +5 -0
  103. package/dist/components/{p-CHdx52dw.js → p-BFvKdyvP.js} +1 -1
  104. package/dist/components/p-BMqwfA7R.js +5 -0
  105. package/dist/components/p-BNfiYxny.js +5 -0
  106. package/dist/components/{p-BsFKuBtC.js → p-BPtyEnCf.js} +1 -1
  107. package/dist/components/p-BW74FG6u.js +5 -0
  108. package/dist/components/p-Bau2XePf.js +5 -0
  109. package/dist/components/p-BnRsfejo.js +5 -0
  110. package/dist/components/p-BrEz2vz_.js +5 -0
  111. package/dist/components/p-C9lmL_jC.js +5 -0
  112. package/dist/components/p-CD_2-fK9.js +5 -0
  113. package/dist/components/{p-CRhdQvF0.js → p-CGKHe5aV.js} +1 -1
  114. package/dist/components/p-CL_w2QQD.js +5 -0
  115. package/dist/components/p-CTnFqaoj.js +5 -0
  116. package/dist/components/{p-D930Q75B.js → p-ChgSU1Ua.js} +1 -1
  117. package/dist/components/{p-DqNmAqS_.js → p-CiwfnrB-.js} +1 -1
  118. package/dist/components/p-Crd-9v2B.js +5 -0
  119. package/dist/components/{p-CBXAxKky.js → p-Cu6cHcY1.js} +1 -1
  120. package/dist/components/p-CzffKzcR.js +5 -0
  121. package/dist/components/{p-7y7dFWS-.js → p-D39ljWpy.js} +1 -1
  122. package/dist/components/p-DLBJDU-Z.js +5 -0
  123. package/dist/components/p-DVOFEN__.js +5 -0
  124. package/dist/components/p-DW9tnza0.js +5 -0
  125. package/dist/components/p-DXV8vbHa.js +5 -0
  126. package/dist/components/{p-B_QEyJOO.js → p-DYUVoVJU.js} +1 -1
  127. package/dist/components/p-Dbq3Z3a7.js +5 -0
  128. package/dist/components/p-DodX8HCB.js +5 -0
  129. package/dist/components/p-Dq5EPmKC.js +5 -0
  130. package/dist/components/{p-DJaWpqrV.js → p-DvwR_CeT.js} +1 -1
  131. package/dist/components/p-GjSy7W7d.js +5 -0
  132. package/dist/components/p-KrwBOds5.js +5 -0
  133. package/dist/components/p-VJzNTmbc.js +5 -0
  134. package/dist/components/p-to4xqGcM.js +5 -0
  135. package/dist/components/p-vJNV_Y5G.js +5 -0
  136. package/dist/components/part-lookup.js +1 -1
  137. package/dist/components/service-booking-form.js +1 -1
  138. package/dist/components/shift-accordion.js +1 -1
  139. package/dist/components/shift-checkbox.js +1 -1
  140. package/dist/components/shift-slider.js +1 -1
  141. package/dist/components/shift-switch.js +1 -1
  142. package/dist/components/shift-tab-content.js +1 -1
  143. package/dist/components/shift-tabs.js +1 -1
  144. package/dist/components/ssc-lookup-form.js +1 -1
  145. package/dist/components/test-drive-form.js +1 -1
  146. package/dist/components/vehicle-accessories.js +1 -1
  147. package/dist/components/vehicle-claimable-items.js +1 -1
  148. package/dist/components/vehicle-item-claim-form.js +1 -1
  149. package/dist/components/vehicle-lookup.js +1 -1
  150. package/dist/components/vehicle-paint-thickness.js +1 -1
  151. package/dist/components/vehicle-quotation-form.js +1 -1
  152. package/dist/components/vehicle-sale-information.js +1 -1
  153. package/dist/components/vehicle-service-history.js +1 -1
  154. package/dist/components/vehicle-specification.js +1 -1
  155. package/dist/components/vehicle-warranty-details.js +1 -1
  156. package/dist/components/vin-extractor.js +1 -1
  157. package/dist/esm/dead-stock-lookup_3.entry.js +4 -3
  158. package/dist/esm/flexible-container.entry.js +1 -1
  159. package/dist/esm/form-checkbox.entry.js +9 -5
  160. package/dist/esm/form-date-picker.entry.js +2 -2
  161. package/dist/esm/form-dialog_8.entry.js +37 -33
  162. package/dist/esm/{form-error-message-BRYZJjPy.js → form-error-message-C4gzgw8C.js} +1 -1
  163. package/dist/esm/form-input-DRd-doY1.js +22 -0
  164. package/dist/esm/form-input_4.entry.js +24 -18
  165. package/dist/esm/form-switch.entry.js +9 -5
  166. package/dist/esm/form-time-picker.entry.js +2 -2
  167. package/dist/esm/general-inquiry-form.entry.js +24 -22
  168. package/dist/esm/get-local-language-DJl5eWCY.js +189 -0
  169. package/dist/esm/information-table.entry.js +1 -1
  170. package/dist/esm/{loader-icon-DhBPTC5g.js → loader-icon-DUMSCofl.js} +1150 -263
  171. package/dist/esm/loader.js +1 -1
  172. package/dist/esm/loading-spinner.entry.js +1 -1
  173. package/dist/esm/manufacturer-part-lookup.entry.js +3 -2
  174. package/dist/esm/part-lookup.entry.js +4 -3
  175. package/dist/esm/service-booking-form.entry.js +11 -9
  176. package/dist/esm/shift-checkbox.entry.js +1 -1
  177. package/dist/esm/shift-components.js +1 -1
  178. package/dist/esm/shift-switch.entry.js +1 -1
  179. package/dist/esm/shift-tab-content.entry.js +1 -1
  180. package/dist/esm/shift-tabs_2.entry.js +2 -2
  181. package/dist/esm/ssc-lookup-form.entry.js +10 -8
  182. package/dist/esm/state-object-D7JLK2vI.js +169 -0
  183. package/dist/esm/test-drive-form.entry.js +10 -8
  184. package/dist/esm/{type-BluG_k1P.js → type-BJF9x4jt.js} +1 -1
  185. package/dist/esm/{type-D_rpjbuj.js → type-TpJOuSTQ.js} +1 -1
  186. package/dist/esm/{type-zroDKO0U.js → type-r4cI4JJY.js} +1 -1
  187. package/dist/esm/{get-local-language-CCj6E27L.js → types-Cn7YOi83.js} +1 -184
  188. package/dist/esm/validation-BsxDkThF.js +86 -0
  189. package/dist/esm/vehicle-accessories_7.entry.js +10 -9
  190. package/dist/esm/vehicle-lookup.entry.js +4 -3
  191. package/dist/esm/vehicle-quotation-form.entry.js +3 -2
  192. package/dist/shift-components/{p-d7da1152.entry.js → p-16e95508.entry.js} +1 -1
  193. package/dist/shift-components/{p-2fe3538e.entry.js → p-2c9950cc.entry.js} +1 -1
  194. package/dist/shift-components/p-380144df.entry.js +5 -0
  195. package/dist/shift-components/p-3853ea20.entry.js +5 -0
  196. package/dist/shift-components/{p-0e630c66.entry.js → p-3a91a272.entry.js} +1 -1
  197. package/dist/shift-components/{p-b4231e50.entry.js → p-5b587a6a.entry.js} +1 -1
  198. package/dist/shift-components/p-694d921f.entry.js +5 -0
  199. package/dist/shift-components/p-8a97341b.entry.js +5 -0
  200. package/dist/shift-components/p-8e6d183e.entry.js +5 -0
  201. package/dist/shift-components/p-98b10e49.entry.js +5 -0
  202. package/dist/shift-components/p-B-Ttz-dC.js +5 -0
  203. package/dist/shift-components/p-BUbNT08a.js +5 -0
  204. package/dist/shift-components/p-B_8bnsuC.js +5 -0
  205. package/dist/shift-components/{p-Bfkguwb-.js → p-B_HWC4v3.js} +1 -1
  206. package/dist/shift-components/p-Cn7YOi83.js +5 -0
  207. package/dist/shift-components/{p-B-8v_CQL.js → p-CpygzMlx.js} +1 -1
  208. package/dist/shift-components/p-DDiSIFiM.js +5 -0
  209. package/dist/shift-components/p-a9ee64a7.entry.js +5 -0
  210. package/dist/shift-components/p-aa72cb3d.entry.js +5 -0
  211. package/dist/shift-components/p-aae6a6e7.entry.js +5 -0
  212. package/dist/shift-components/p-bea5d49e.entry.js +5 -0
  213. package/dist/shift-components/p-c61723de.entry.js +5 -0
  214. package/dist/shift-components/p-cb348218.entry.js +5 -0
  215. package/dist/shift-components/{p-0a728fec.entry.js → p-d09cd43d.entry.js} +1 -1
  216. package/dist/shift-components/p-d1543879.entry.js +5 -0
  217. package/dist/shift-components/{p-f4914abc.entry.js → p-d7bb6f3a.entry.js} +1 -1
  218. package/dist/shift-components/{p-BW6seqLB.js → p-det1AUh4.js} +1 -1
  219. package/dist/shift-components/p-e4b69987.entry.js +5 -0
  220. package/dist/shift-components/p-eed5e111.entry.js +5 -0
  221. package/dist/shift-components/p-fd48f8b4.entry.js +5 -0
  222. package/dist/shift-components/p-fd626a4f.entry.js +5 -0
  223. package/dist/shift-components/{p-BK4ZcuiW.js → p-gokv-pzN.js} +1 -1
  224. package/dist/shift-components/p-nfwRLPgJ.js +5 -0
  225. package/dist/shift-components/shift-components.esm.js +1 -1
  226. package/dist/types/components/form-elements/form-checkbox.d.ts +2 -1
  227. package/dist/types/components/form-elements/form-input.d.ts +2 -0
  228. package/dist/types/components/form-elements/form-phone-number.d.ts +2 -1
  229. package/dist/types/components/form-elements/form-picker-input.d.ts +2 -0
  230. package/dist/types/components/form-elements/form-select.d.ts +2 -1
  231. package/dist/types/components/form-elements/form-submit.d.ts +2 -1
  232. package/dist/types/components/form-elements/form-switch.d.ts +2 -1
  233. package/dist/types/components/form-elements/form-text-area.d.ts +2 -1
  234. package/dist/types/components/form-elements/form-vin-input.d.ts +5 -0
  235. package/dist/types/components/forms/defaults/mappers.d.ts +7 -5
  236. package/dist/types/components/forms/defaults/validation.d.ts +29 -12
  237. package/dist/types/components.d.ts +76 -2
  238. package/dist/types/features/form-hook/inputs/form-input.d.ts +13 -0
  239. package/dist/types/features/form-hook/inputs/form-select.d.ts +2 -0
  240. package/dist/types/locales/vehicleLookup/claimableItems/type.d.ts +4 -4
  241. package/dist/types/locales/vehicleLookup/serviceHistory/type.d.ts +2 -2
  242. package/dist/types/locales/vehicleLookup/wrapper-type.d.ts +4 -4
  243. package/package.json +1 -1
  244. package/dist/cjs/state-object-B_0-oj8G.js +0 -243
  245. package/dist/collection/components/forms/service-booking/element-mapper.js +0 -134
  246. package/dist/collection/components/forms/service-booking/validations.js +0 -56
  247. package/dist/components/p-3WjYFbnU.js +0 -5
  248. package/dist/components/p-64G0Y_tC.js +0 -5
  249. package/dist/components/p-BEClgvwe.js +0 -5
  250. package/dist/components/p-BTqv9A1K.js +0 -5
  251. package/dist/components/p-Bd2-gh8M.js +0 -5
  252. package/dist/components/p-BffBGA_K.js +0 -5
  253. package/dist/components/p-Bon4whdT.js +0 -5
  254. package/dist/components/p-C-4CT4ZF.js +0 -5
  255. package/dist/components/p-C6WhIy7O.js +0 -5
  256. package/dist/components/p-CEM5EBP0.js +0 -5
  257. package/dist/components/p-Cxfsh87m.js +0 -5
  258. package/dist/components/p-D-tlRZMk.js +0 -5
  259. package/dist/components/p-DA0taq65.js +0 -5
  260. package/dist/components/p-DJKERvsE.js +0 -5
  261. package/dist/components/p-DNn44A0I.js +0 -5
  262. package/dist/components/p-DdWYx3mw.js +0 -5
  263. package/dist/components/p-Df56BNKV.js +0 -5
  264. package/dist/components/p-DjDUhW2q.js +0 -5
  265. package/dist/components/p-DkA_i--O.js +0 -5
  266. package/dist/components/p-DuNp8sSh.js +0 -5
  267. package/dist/components/p-NEl9bwNq.js +0 -5
  268. package/dist/components/p-RInF2GNQ.js +0 -5
  269. package/dist/components/p-_C-vBKCe.js +0 -5
  270. package/dist/components/p-eTLWmtnI.js +0 -5
  271. package/dist/components/p-vEsQVFLN.js +0 -5
  272. package/dist/components/p-zofQKKfh.js +0 -5
  273. package/dist/esm/state-object-Cwph5K2Q.js +0 -238
  274. package/dist/shift-components/p-0f83786b.entry.js +0 -5
  275. package/dist/shift-components/p-1c93d5e6.entry.js +0 -5
  276. package/dist/shift-components/p-26f3e6da.entry.js +0 -5
  277. package/dist/shift-components/p-3a7196d4.entry.js +0 -5
  278. package/dist/shift-components/p-45670df9.entry.js +0 -5
  279. package/dist/shift-components/p-4aa6f707.entry.js +0 -5
  280. package/dist/shift-components/p-50fd9d29.entry.js +0 -5
  281. package/dist/shift-components/p-63e1e80e.entry.js +0 -5
  282. package/dist/shift-components/p-67476178.entry.js +0 -5
  283. package/dist/shift-components/p-683f3ab3.entry.js +0 -5
  284. package/dist/shift-components/p-8700e868.entry.js +0 -5
  285. package/dist/shift-components/p-90a6803f.entry.js +0 -5
  286. package/dist/shift-components/p-BVMG8UaH.js +0 -5
  287. package/dist/shift-components/p-BnQp2Q8E.js +0 -5
  288. package/dist/shift-components/p-C3YLTa2J.js +0 -5
  289. package/dist/shift-components/p-c7eaf245.entry.js +0 -5
  290. package/dist/shift-components/p-f7692371.entry.js +0 -5
  291. package/dist/shift-components/p-f8ac59ee.entry.js +0 -5
  292. package/dist/shift-components/p-fac0fdb9.entry.js +0 -5
  293. package/dist/shift-components/p-fe02d5ed.entry.js +0 -5
  294. package/dist/types/components/forms/service-booking/element-mapper.d.ts +0 -7
  295. package/dist/types/components/forms/service-booking/validations.d.ts +0 -25
@@ -4,7 +4,7 @@
4
4
  */
5
5
  import { Host, h } from "@stencil/core";
6
6
  import cn from "../../global/lib/cn";
7
- import { getNestedValue } from "../../global/lib/get-nested-value";
7
+ import { getInputLocalization } from "../../features/form-hook/index";
8
8
  import { FormInputLabel } from "./components/form-input-label";
9
9
  import { FormInputPrefix } from "./components/form-input-prefix";
10
10
  import { FormErrorMessage } from "./components/form-error-message";
@@ -14,6 +14,7 @@ const partKeyPrefix = 'form-vin-input-';
14
14
  export class FormVinInput {
15
15
  constructor() {
16
16
  this.inputProps = {};
17
+ this.localization = {};
17
18
  this.scannerIcon = '';
18
19
  this.prefixWidth = 0;
19
20
  }
@@ -44,22 +45,21 @@ export class FormVinInput {
44
45
  this.inputRef.value = value;
45
46
  }
46
47
  render() {
47
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
48
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
48
49
  const { disabled, isRequired, meta, isError, errorMessage } = this.form.getInputState(this.name);
49
- const [locale] = this.form.getFormLocale();
50
+ const [locale, language] = this.form.getFormLocale();
50
51
  const part = partKeyPrefix + this.name;
51
- const label = getNestedValue(locale, meta === null || meta === void 0 ? void 0 : meta.label) || (meta === null || meta === void 0 ? void 0 : meta.label);
52
- const placeholder = getNestedValue(locale, meta === null || meta === void 0 ? void 0 : meta.placeholder);
52
+ const { label, placeholder, errorTextMessage } = getInputLocalization(this, meta, errorMessage);
53
53
  const isDisabled = disabled || this.isLoading || !!this.staticValue || this.isDisabled;
54
- const extractorTitle = ((_g = (_e = (_d = (_c = (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.context) === null || _b === void 0 ? void 0 : _b.structure) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.localization) === null || _e === void 0 ? void 0 : _e[(_f = this.form.context) === null || _f === void 0 ? void 0 : _f.language]) === null || _g === void 0 ? void 0 : _g['vin-scan']) || 'Scan Your VIN';
55
- return (h(Host, { key: 'b876940aceec368ae8f5ed6fecd48fe3aaea8efa' }, h("label", { key: 'd7440e3179b870af03226b75791cf197899dedb5', part: this.name, id: this.wrapperId, class: cn('form-input-label-container', this.wrapperClass, { disabled: isDisabled }) }, h(FormInputLabel, { key: 'd042e050a25dc1911e2b7b60c74ab4141ab574f3', isRequired: isRequired, label: label }), h("div", { key: '7e72af99b8b0ec5c32cec52833b4d6ae5a453ace', part: `${this.name}-container form-input-container`, class: "form-input-container" }, h(FormInputPrefix, { key: 'd785c4c464e4a830261212f6b416bd293819af71', name: this.name, direction: (_h = locale === null || locale === void 0 ? void 0 : locale.sharedFormLocales) === null || _h === void 0 ? void 0 : _h.direction, prefix: this.inputPrefix }), h("input", Object.assign({ key: '094a5850c842304f9d5fa19ebe9a774390298adc' }, this.inputProps, { name: this.name, disabled: isDisabled, defaultValue: this.defaultValue, part: `${this.name}-input form-input`, placeholder: placeholder || (meta === null || meta === void 0 ? void 0 : meta.placeholder), style: Object.assign({}, (this.prefixWidth ? { [((_j = locale === null || locale === void 0 ? void 0 : locale.sharedFormLocales) === null || _j === void 0 ? void 0 : _j.direction) === 'rtl' ? 'paddingRight' : 'paddingLeft']: `${this.prefixWidth}px` } : {})), class: cn('form-input-style !uppercase', part, {
54
+ const extractorTitle = ((_b = (_a = this.localization) === null || _a === void 0 ? void 0 : _a[language]) === null || _b === void 0 ? void 0 : _b.scan) || ((_j = (_g = (_f = (_e = (_d = (_c = this.form) === null || _c === void 0 ? void 0 : _c.context) === null || _d === void 0 ? void 0 : _d.structure) === null || _e === void 0 ? void 0 : _e.data) === null || _f === void 0 ? void 0 : _f.localization) === null || _g === void 0 ? void 0 : _g[(_h = this.form.context) === null || _h === void 0 ? void 0 : _h.language]) === null || _j === void 0 ? void 0 : _j['vin-scan']) || 'Scan Your VIN';
55
+ return (h(Host, { key: '24aef7fb6d4f96434fd9dc6ab8a23d9d4e8de1ee' }, h("label", { key: 'b89bb2652c01f43edf3ea7fb9636bcc8fdafbe9b', part: this.name, id: this.wrapperId, class: cn('form-input-label-container', this.wrapperClass, { disabled: isDisabled }) }, h(FormInputLabel, { key: '958d93f12f9b86f104ec0ba91aa7be40efcd76a8', isRequired: isRequired, label: label }), h("div", { key: '861dda13e0cc65dfa2a5d1ec09644548fac5d538', part: `${this.name}-container form-input-container`, class: "form-input-container" }, h(FormInputPrefix, { key: '317b9fdc5154b734f67461e6e88448a08b8637bd', name: this.name, direction: (_k = locale === null || locale === void 0 ? void 0 : locale.sharedFormLocales) === null || _k === void 0 ? void 0 : _k.direction, prefix: this.inputPrefix }), h("input", Object.assign({ key: 'f694f98a3ae8e13811bee5a7215160b4a4791e76' }, this.inputProps, { name: this.name, disabled: isDisabled, defaultValue: this.defaultValue, part: `${this.name}-input form-input`, placeholder: placeholder || (meta === null || meta === void 0 ? void 0 : meta.placeholder), style: Object.assign({}, (this.prefixWidth ? { [((_l = locale === null || locale === void 0 ? void 0 : locale.sharedFormLocales) === null || _l === void 0 ? void 0 : _l.direction) === 'rtl' ? 'paddingRight' : 'paddingLeft']: `${this.prefixWidth}px` } : {})), class: cn('form-input-style !uppercase', part, {
56
56
  'form-input-error-style': isError,
57
- }) })), !!this.scannerIcon && (this.useOcr || this.readSticker) && (h("button", { key: '4ff9061dd99c7ebaa3df8450f4e6d30fe3bd0604', type: "button", disabled: isDisabled, part: cn('vin-validator', part + '-vin'), onClick: () => { var _a; return (_a = this === null || this === void 0 ? void 0 : this.el.getElementsByTagName('vin-extractor')[0]) === null || _a === void 0 ? void 0 : _a.open(); }, class: "absolute transition-all duration-500 disabled:!pointer-events-none disabled:!opacity-0 flex justify-center items-center end-3.5 !text-[#576675] enabled:hover:!text-black/85 aspect-square h-[70%] top-1/2 -translate-y-1/2" }, this.scannerIcon === 'qr-code' && h(QrCodeScanIcon, { key: 'c50d804383bb75ca685f6801439539fc61d162c0', class: "size-[90%] text-inherit" }), this.scannerIcon === 'camera' && h(CameraIcon, { key: 'e45ca83541f9b20a56d4c4b7aa31761a1ceca8c4', class: "size-[90%] text-inherit" })))), h(FormErrorMessage, { key: 'e1accc6ac980d369732cd1a393787d6f1598ffe7', name: this.name, isError: isError, errorMessage: locale[errorMessage] || errorMessage })), (this.useOcr || this.readSticker) && (h("div", { key: 'd595097112bedaf9d2ca2fa9a708c4eb0bdec8d4', class: "absolute" }, h("vin-extractor", { key: '21746d607b2868ecfcc4189d5052f6e5939dc113', verbose: true, manualCapture: true, useOcr: this.useOcr, title: extractorTitle, skipValidation: false, readSticker: this.readSticker, onExtract: newVin => {
57
+ }) })), !!this.scannerIcon && (this.useOcr || this.readSticker) && (h("button", { key: '8db0266e57e6e8e39dd08c124512c4cb0c9c078b', type: "button", disabled: isDisabled, part: cn('vin-validator', part + '-vin'), onClick: () => { var _a; return (_a = this === null || this === void 0 ? void 0 : this.el.getElementsByTagName('vin-extractor')[0]) === null || _a === void 0 ? void 0 : _a.open(); }, class: "absolute transition-all duration-500 disabled:!pointer-events-none disabled:!opacity-0 flex justify-center items-center end-3.5 !text-[#576675] enabled:hover:!text-black/85 aspect-square h-[70%] top-1/2 -translate-y-1/2" }, this.scannerIcon === 'qr-code' && h(QrCodeScanIcon, { key: '8b977fb5f399a7a09de05295b8839d6480c21e51', class: "size-[90%] text-inherit" }), this.scannerIcon === 'camera' && h(CameraIcon, { key: 'dd9b3ce45e8a0246884cd6a95d8e399c87e65dd1', class: "size-[90%] text-inherit" })))), h(FormErrorMessage, { key: '21ab2bfea29796f668138f21b4e0cc02a6cae921', name: this.name, isError: isError, errorMessage: errorTextMessage })), (this.useOcr || this.readSticker) && (h("div", { key: 'a264030a9abfc7538f946383884f205e64ece7e8', class: "absolute" }, h("vin-extractor", { key: 'ebb1e237f23028c2e561bbc31189000d923f973a', verbose: true, manualCapture: true, useOcr: this.useOcr, title: extractorTitle, skipValidation: false, readSticker: this.readSticker, ocrEndpoint: this.ocrEndpoint, onExtract: newVin => {
58
58
  var _a, _b;
59
59
  this.inputRef.value = newVin;
60
60
  (_a = this.form) === null || _a === void 0 ? void 0 : _a.validateInput(this === null || this === void 0 ? void 0 : this.name);
61
61
  (_b = this === null || this === void 0 ? void 0 : this.el.getElementsByTagName('vin-extractor')[0]) === null || _b === void 0 ? void 0 : _b.close();
62
- }, ocrEndpoint: (_o = (_m = (_l = (_k = this.form) === null || _k === void 0 ? void 0 : _k.context) === null || _l === void 0 ? void 0 : _l.structure) === null || _m === void 0 ? void 0 : _m.data) === null || _o === void 0 ? void 0 : _o.ocrEndpoint })))));
62
+ } })))));
63
63
  }
64
64
  static get is() { return "form-vin-input"; }
65
65
  static get originalStyleUrls() {
@@ -251,6 +251,25 @@ export class FormVinInput {
251
251
  "reflect": false,
252
252
  "defaultValue": "{}"
253
253
  },
254
+ "ocrEndpoint": {
255
+ "type": "string",
256
+ "attribute": "ocr-endpoint",
257
+ "mutable": false,
258
+ "complexType": {
259
+ "original": "string",
260
+ "resolved": "string",
261
+ "references": {}
262
+ },
263
+ "required": false,
264
+ "optional": true,
265
+ "docs": {
266
+ "tags": [],
267
+ "text": ""
268
+ },
269
+ "getter": false,
270
+ "setter": false,
271
+ "reflect": false
272
+ },
254
273
  "defaultValue": {
255
274
  "type": "string",
256
275
  "attribute": "default-value",
@@ -270,6 +289,31 @@ export class FormVinInput {
270
289
  "setter": false,
271
290
  "reflect": false
272
291
  },
292
+ "localization": {
293
+ "type": "unknown",
294
+ "attribute": "localization",
295
+ "mutable": false,
296
+ "complexType": {
297
+ "original": "FormInputLocalization<{ scan: string }>",
298
+ "resolved": "{ [lang: string]: { label?: string; placeholder?: string; require?: string; format?: string; } & { scan: string; }; }",
299
+ "references": {
300
+ "FormInputLocalization": {
301
+ "location": "import",
302
+ "path": "~features/form-hook",
303
+ "id": "src/features/form-hook/index.ts::FormInputLocalization"
304
+ }
305
+ }
306
+ },
307
+ "required": false,
308
+ "optional": true,
309
+ "docs": {
310
+ "tags": [],
311
+ "text": ""
312
+ },
313
+ "getter": false,
314
+ "setter": false,
315
+ "defaultValue": "{}"
316
+ },
273
317
  "useOcr": {
274
318
  "type": "boolean",
275
319
  "attribute": "use-ocr",
@@ -8,58 +8,73 @@ import { VehicleImageViewer } from "../../form-elements/VehicleImageViewer";
8
8
  import { CalendarDaysIcon } from "../../../global/assets/calendar-days-icon";
9
9
  import { format, isBefore, isEqual } from "date-fns";
10
10
  import { decodeTimeOffset } from "../../../global/lib/decode-time-offset";
11
- export const getDefaultMappers = (stateObject) => ({
12
- submit: ({ props }) => h("form-submit", Object.assign({}, props)),
13
- name: ({ props }) => h("form-input", Object.assign({}, props)),
14
- lastName: ({ props }) => h("form-input", Object.assign({}, props)),
15
- email: ({ props }) => h("form-input", Object.assign({ type: "email" }, props)),
16
- message: ({ props }) => h("form-text-area", Object.assign({}, props)),
17
- vin: ({ props }) => h("form-vin-input", Object.assign({}, props)),
18
- vehicleImage: ({ form }) => h(VehicleImageViewer, { form: form }),
19
- phone: ({ props, isLoading }) => {
11
+ export const getFormMappers = (stateObject, extraMappers = {}) => (Object.assign({ submit: ({ props }) => h("form-submit", Object.assign({}, props)), name: ({ props }) => h("form-input", Object.assign({}, props)), lastName: ({ props }) => h("form-input", Object.assign({}, props)), email: ({ props }) => h("form-input", Object.assign({ type: "email" }, props)), message: ({ props }) => h("form-text-area", Object.assign({}, props)), vin: ({ props }) => h("form-vin-input", Object.assign({}, props)), vehicleImage: ({ form }) => h(VehicleImageViewer, { form: form }), phone: ({ props, isLoading }) => {
20
12
  if (!stateObject.phoneValidator) {
21
13
  stateObject.phoneValidator = getPhoneValidator((props === null || props === void 0 ? void 0 : props.countryCode) || '');
22
14
  }
23
15
  return h("form-phone-number", Object.assign({ defaultValue: stateObject.phoneValidator.default }, props, { isLoading: isLoading, validator: stateObject.phoneValidator }));
24
- },
25
- vehicle: ({ form, language, props }) => {
26
- var _a;
27
- const fetcher = async ({ signal }) => {
28
- var _a, _b, _c;
29
- const vehicleEndpoint = (_a = form.context.structure) === null || _a === void 0 ? void 0 : _a.data.vehicleApi;
16
+ }, vehicle: ({ language, props }) => {
17
+ const fetcher = async ({ signal, context }) => {
18
+ var _a, _b;
19
+ const params = new URLSearchParams(window.location.search);
20
+ let paramValue = (_a = (params.get(props === null || props === void 0 ? void 0 : props.vehicleIdQueryParam) || '')) === null || _a === void 0 ? void 0 : _a.toLowerCase();
21
+ const vehicleEndpoint = props.vehicleApi;
30
22
  const response = await fetch(vehicleEndpoint, { signal, headers: { 'Accept-Language': language } });
31
- if ((_c = (_b = form.context.structure) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.vehiclesApiStrapiFormat) {
23
+ let options;
24
+ let defaultIndex = -1;
25
+ if (props === null || props === void 0 ? void 0 : props.vehiclesApiStrapiFormat) {
32
26
  const res = await response.json();
33
- let options = res.data;
34
- return options.map(vehicle => ({
35
- label: vehicle.attributes.GradeName,
36
- value: `${vehicle.id}`,
37
- meta: Object.assign(Object.assign({}, vehicle), { image: vehicle.attributes.Cover.data.attributes.url }),
38
- }));
27
+ options = res.data;
28
+ options = options.map((vehicle, idx) => {
29
+ var _a, _b, _c;
30
+ if (!props.defaultValue && paramValue && (((_a = vehicle === null || vehicle === void 0 ? void 0 : vehicle.GradeName) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === paramValue || ((_b = `${vehicle.id}`) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === paramValue))
31
+ defaultIndex = idx;
32
+ return {
33
+ label: vehicle.attributes.GradeName,
34
+ value: (props === null || props === void 0 ? void 0 : props.useNamedValue) ? `${(_c = vehicle === null || vehicle === void 0 ? void 0 : vehicle.attributes) === null || _c === void 0 ? void 0 : _c.GradeName}` : `${vehicle.id}`,
35
+ meta: Object.assign(Object.assign({}, vehicle), { image: vehicle.attributes.Cover.data.attributes.url }),
36
+ };
37
+ });
39
38
  }
40
39
  else {
41
- const options = await response.json();
42
- return options.map(vehicle => ({
43
- label: vehicle.Title,
44
- value: `${vehicle.ID}`,
45
- meta: Object.assign(Object.assign({}, vehicle), { image: vehicle.Image }),
46
- }));
40
+ options = await response.json();
41
+ options = options.map((vehicle, idx) => {
42
+ var _a, _b;
43
+ if (!props.defaultValue && paramValue && (((_a = vehicle === null || vehicle === void 0 ? void 0 : vehicle.Title) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === paramValue || ((_b = `${vehicle.ID}`) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === paramValue))
44
+ defaultIndex = idx;
45
+ return {
46
+ label: vehicle.Title,
47
+ value: (props === null || props === void 0 ? void 0 : props.useNamedValue) ? `${vehicle.Title}` : `${vehicle.ID}`,
48
+ meta: Object.assign(Object.assign({}, vehicle), { image: vehicle.Image }),
49
+ };
50
+ });
51
+ }
52
+ if (!(props === null || props === void 0 ? void 0 : props.defaultValue)) {
53
+ if (defaultIndex > -1)
54
+ context.defaultValue = (_b = options[defaultIndex]) === null || _b === void 0 ? void 0 : _b.value;
55
+ else
56
+ context.defaultValue = '';
47
57
  }
58
+ else
59
+ context.defaultValue = props === null || props === void 0 ? void 0 : props.defaultValue;
60
+ return options;
48
61
  };
49
- let defaultValue;
50
- if (!props.defaultValue) {
51
- const params = new URLSearchParams(window.location.search);
52
- defaultValue = params.get((_a = form.context.structure.data) === null || _a === void 0 ? void 0 : _a.vehicleIdQueryParam);
53
- }
54
- else {
55
- defaultValue = props.defaultValue;
56
- }
57
- return h("form-select", Object.assign({}, props, { defaultValue: defaultValue, searchable: true, fetcher: fetcher, language: language }));
58
- },
59
- companyBranchId: ({ form, language, props }) => {
62
+ return h("form-select", Object.assign({}, props, { searchable: true, fetcher: fetcher, language: language }));
63
+ }, companyBranchId: ({ language, props }) => {
64
+ const fetcher = async ({ signal }) => {
65
+ const dealerEndpoint = props === null || props === void 0 ? void 0 : props.branchApi;
66
+ const response = await fetch(dealerEndpoint, { signal, headers: { 'Accept-Language': language } });
67
+ const options = (await response.json()).map(dealer => ({
68
+ label: dealer.Name,
69
+ value: `${dealer.ID}`,
70
+ meta: Object.assign({}, dealer),
71
+ }));
72
+ return options;
73
+ };
74
+ return h("form-select", Object.assign({}, props, { clearable: true, searchable: true, fetcher: fetcher, language: language }));
75
+ }, cityId: ({ language, props }) => {
60
76
  const fetcher = async ({ signal }) => {
61
- var _a;
62
- const dealerEndpoint = (_a = form.context.structure) === null || _a === void 0 ? void 0 : _a.data.dealerApi;
77
+ const dealerEndpoint = props === null || props === void 0 ? void 0 : props.cityApi;
63
78
  const response = await fetch(dealerEndpoint, { signal, headers: { 'Accept-Language': language } });
64
79
  const options = (await response.json()).map(dealer => ({
65
80
  label: dealer.Name,
@@ -69,9 +84,7 @@ export const getDefaultMappers = (stateObject) => ({
69
84
  return options;
70
85
  };
71
86
  return h("form-select", Object.assign({}, props, { clearable: true, searchable: true, fetcher: fetcher, language: language }));
72
- },
73
- date: ({ props }) => h("form-picker-input", Object.assign({ type: "date" }, props, { icon: h(CalendarDaysIcon, null) })),
74
- time: ({ language, props }) => {
87
+ }, date: ({ props }) => h("form-picker-input", Object.assign({ type: "date" }, props, { icon: h(CalendarDaysIcon, null) })), time: ({ language, props }) => {
75
88
  const fetcher = async () => {
76
89
  const options = [];
77
90
  if (Array.isArray(props.span) && Array.isArray(props.min) && Array.isArray(props.max) && props.format) {
@@ -88,5 +101,4 @@ export const getDefaultMappers = (stateObject) => ({
88
101
  return options;
89
102
  };
90
103
  return h("form-select", Object.assign({}, props, { clearable: true, fetcher: fetcher, language: language }));
91
- },
92
- });
104
+ } }, extraMappers));
@@ -1 +1 @@
1
- *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.flex{display:flex}.grid{display:grid}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:host{all:initial!important;display:block;font-family:inherit!important}@keyframes form-loading-spin{to{transform:rotate(1turn)}}.form-loader-container .img{animation:form-loading-spin 2s linear infinite;height:32px;width:32px}*{-webkit-user-select:none;-moz-user-select:none;user-select:none}#vehicle-wrapper{display:flex;flex-direction:column}@media (min-width:640px){#vehicle-wrapper{align-items:center;display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}}.pointer-events-none{pointer-events:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.top-0{top:0}.h-full{height:100%}.min-h-\[150px\]{min-height:150px}.w-full{width:100%}.items-center{align-items:center}.justify-center{justify-content:center}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}.-mt-1{margin-top:-.25rem}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.\!h-auto{height:auto!important}.min-w-full{min-width:100%}.resize{resize:both}.overflow-hidden{overflow:hidden}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!transition-none{transition-property:none!important}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\!duration-0{transition-duration:0s!important}.\!duration-500{transition-duration:.5s!important}.fixed{position:fixed}.bottom-4{bottom:1rem}.left-1\/2{left:50%}.z-10{z-index:10}.z-\[9999\]{z-index:9999}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.size-8{height:2rem;width:2rem}.size-\[32px\]{height:32px;width:32px}.size-full{height:100%;width:100%}.h-\[100dvh\]{height:100dvh}.h-\[60px\]{height:60px}.min-h-full{min-height:100%}.w-\[100dvw\]{width:100dvw}.w-\[100px\]{width:100px}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.justify-between{justify-content:space-between}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-cover{object-fit:cover}.object-center{object-position:center}.p-1{padding:.25rem}.p-\[16px\]{padding:16px}.py-\[10px\]{padding-bottom:10px;padding-top:10px}.text-center{text-align:center}.text-\[18px\]{font-size:18px}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.hover\:border-slate-700:hover{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.hover\:bg-slate-300:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.hover\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.disabled\:bg-white\/75:disabled{background-color:hsla(0,0%,100%,.75)}@media (min-width:768px){.md\:relative{position:relative}.md\:h-auto{height:auto}.md\:w-\[600px\]{width:600px}.md\:\!translate-x-0{--tw-translate-x:0px!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.md\:overflow-hidden{overflow:hidden}.md\:rounded-lg{border-radius:.5rem}.md\:border-none{border-style:none}.md\:bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.md\:py-\[8px\]{padding-bottom:8px;padding-top:8px}.md\:text-\[24px\]{font-size:24px}.md\:text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.md\:\!opacity-100{opacity:1!important}.md\:transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.md\:duration-300{transition-duration:.3s}.md\:hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}}
1
+ *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.flex{display:flex}.grid{display:grid}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:host{all:initial!important;display:block;font-family:inherit!important}@keyframes form-loading-spin{to{transform:rotate(1turn)}}.form-loader-container .img{animation:form-loading-spin 2s linear infinite;height:32px;width:32px}*{-webkit-user-select:none;-moz-user-select:none;user-select:none}#vehicle-wrapper{display:flex;flex-direction:column}@media (min-width:640px){#vehicle-wrapper{align-items:center;display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}}.pointer-events-none{pointer-events:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.top-0{top:0}.h-full{height:100%}.min-h-\[150px\]{min-height:150px}.w-full{width:100%}.items-center{align-items:center}.justify-center{justify-content:center}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}.\!h-auto{height:auto!important}.min-w-full{min-width:100%}.resize{resize:both}.overflow-hidden{overflow:hidden}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!transition-none{transition-property:none!important}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\!duration-0{transition-duration:0s!important}.\!duration-500{transition-duration:.5s!important}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.fixed{position:fixed}.bottom-4{bottom:1rem}.left-1\/2{left:50%}.z-10{z-index:10}.z-\[9999\]{z-index:9999}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.size-8{height:2rem;width:2rem}.size-\[32px\]{height:32px;width:32px}.size-full{height:100%;width:100%}.h-\[100dvh\]{height:100dvh}.h-\[60px\]{height:60px}.min-h-full{min-height:100%}.w-\[100dvw\]{width:100dvw}.w-\[100px\]{width:100px}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.justify-between{justify-content:space-between}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-cover{object-fit:cover}.object-center{object-position:center}.p-1{padding:.25rem}.p-\[16px\]{padding:16px}.py-\[10px\]{padding-bottom:10px;padding-top:10px}.text-center{text-align:center}.text-\[18px\]{font-size:18px}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.hover\:border-slate-700:hover{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.hover\:bg-slate-300:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.hover\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.disabled\:bg-white\/75:disabled{background-color:hsla(0,0%,100%,.75)}@media (min-width:768px){.md\:relative{position:relative}.md\:h-auto{height:auto}.md\:w-\[600px\]{width:600px}.md\:\!translate-x-0{--tw-translate-x:0px!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.md\:overflow-hidden{overflow:hidden}.md\:rounded-lg{border-radius:.5rem}.md\:border-none{border-style:none}.md\:bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.md\:py-\[8px\]{padding-bottom:8px;padding-top:8px}.md\:text-\[24px\]{font-size:24px}.md\:text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.md\:\!opacity-100{opacity:1!important}.md\:transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.md\:duration-300{transition-duration:.3s}.md\:hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}}
@@ -2,84 +2,82 @@
2
2
  * Built by ShiftSoftware
3
3
  * Copyright (c)
4
4
  */
5
- import { string } from "yup";
5
+ import { object, string } from "yup";
6
6
  import validateVin from "../../../global/lib/validate-vin";
7
7
  export const label = (name) => `${name}-label`;
8
8
  export const format = (name) => `${name}-format`;
9
9
  export const require = (name) => `${name}-require`;
10
10
  export const placeholder = (name) => `${name}-placeholder`;
11
+ export const meta = (name) => ({ label: label(name), placeholder: placeholder(name) });
11
12
  export const condition = (name) => `$${name}Required`;
12
- export const y = { label, format, require, condition, placeholder };
13
- export const getDefaultValidations = (stateObject) => ({
14
- name: string()
15
- .meta({ label: label('name'), placeholder: placeholder('name') })
16
- .when(condition('name'), {
17
- is: true,
18
- otherwise: schema => schema.optional(),
19
- then: schema => schema.required(require('name')).min(3, format('name')),
20
- }),
21
- lastName: string()
22
- .meta({ label: label('lastName'), placeholder: placeholder('lastName') })
23
- .when(condition('lastName'), {
24
- is: true,
25
- otherwise: schema => schema.optional(),
26
- then: schema => schema.required(require('lastName')).min(3, format('lastName')),
27
- }),
28
- message: string()
29
- .meta({ label: label('message'), placeholder: placeholder('message') })
30
- .when(condition('message'), {
31
- is: true,
32
- otherwise: schema => schema.optional(),
33
- then: schema => schema.required(require('message')).min(10, format('message')),
34
- }),
35
- email: string()
36
- .meta({ label: label('email'), placeholder: placeholder('email') })
37
- .when(condition('email'), {
38
- is: true,
39
- otherwise: schema => schema.optional(),
40
- then: schema => schema.required(require('email')),
41
- })
42
- .email(format('email')),
43
- vin: string()
44
- .meta({ label: label('vin'), placeholder: placeholder('vin') })
45
- .when(condition('vin'), {
46
- is: true,
47
- otherwise: schema => schema.optional(),
48
- then: schema => schema.required(require('vin')).test(format('vin'), format('vin'), a => validateVin(a === null || a === void 0 ? void 0 : a.toUpperCase())),
49
- }),
50
- phone: string()
51
- .meta({ label: label('phone'), placeholder: placeholder('phone') })
52
- .when(condition('phone'), {
53
- is: true,
54
- otherwise: schema => schema.optional(),
55
- then: schema => schema.required(require('phone')).test(format('phone'), format('phone'), () => { var _a; return (_a = stateObject === null || stateObject === void 0 ? void 0 : stateObject.phoneValidator) === null || _a === void 0 ? void 0 : _a.geIsValidPhoneNumber(); }),
56
- }),
57
- vehicle: string()
58
- .meta({ label: y.label('vehicle'), placeholder: y.placeholder('vehicle') })
59
- .when(y.condition('vehicle'), {
60
- is: true,
61
- otherwise: schema => schema.optional(),
62
- then: schema => schema.required(y.require('vehicle')),
63
- }),
64
- companyBranchId: string()
65
- .meta({ label: y.label('companyBranchId'), placeholder: y.placeholder('companyBranchId') })
66
- .when(y.condition('companyBranchId'), {
67
- is: true,
68
- otherwise: schema => schema.optional(),
69
- then: schema => schema.required(y.require('companyBranchId')),
70
- }),
71
- date: string()
72
- .meta({ label: label('date'), placeholder: placeholder('date') })
73
- .when(condition('date'), {
74
- is: true,
75
- otherwise: schema => schema.optional(),
76
- then: schema => schema.required(require('date')),
77
- }),
78
- time: string()
79
- .meta({ label: label('time'), placeholder: placeholder('time') })
80
- .when(condition('time'), {
81
- is: true,
82
- otherwise: schema => schema.optional(),
83
- then: schema => schema.required(require('time')),
84
- }),
85
- });
13
+ export const y = { label, format, require, condition, placeholder, meta };
14
+ export const getFormValidations = (stateObject, extraFields = {}) => {
15
+ return object(Object.assign({ name: string()
16
+ .meta(meta('name'))
17
+ .when(condition('name'), {
18
+ is: true,
19
+ otherwise: schema => schema.optional(),
20
+ then: schema => schema.required(require('name')).min(3, format('name')),
21
+ }), lastName: string()
22
+ .meta(meta('lastName'))
23
+ .when(condition('lastName'), {
24
+ is: true,
25
+ otherwise: schema => schema.optional(),
26
+ then: schema => schema.required(require('lastName')).min(3, format('lastName')),
27
+ }), message: string()
28
+ .meta(meta('message'))
29
+ .when(condition('message'), {
30
+ is: true,
31
+ otherwise: schema => schema.optional(),
32
+ then: schema => schema.required(require('message')).min(10, format('message')),
33
+ }), email: string()
34
+ .meta(meta('email'))
35
+ .when(condition('email'), {
36
+ is: true,
37
+ otherwise: schema => schema.optional(),
38
+ then: schema => schema.required(require('email')),
39
+ })
40
+ .email(format('email')), vin: string()
41
+ .meta(meta('vin'))
42
+ .when(condition('vin'), {
43
+ is: true,
44
+ otherwise: schema => schema.optional(),
45
+ then: schema => schema.required(require('vin')).test(format('vin'), format('vin'), a => validateVin(a === null || a === void 0 ? void 0 : a.toUpperCase())),
46
+ }), phone: string()
47
+ .meta(meta('phone'))
48
+ .when(condition('phone'), {
49
+ is: true,
50
+ otherwise: schema => schema.optional(),
51
+ then: schema => schema.required(require('phone')).test(format('phone'), format('phone'), () => { var _a; return (_a = stateObject === null || stateObject === void 0 ? void 0 : stateObject.phoneValidator) === null || _a === void 0 ? void 0 : _a.geIsValidPhoneNumber(); }),
52
+ }), vehicle: string()
53
+ .meta(meta('vehicle'))
54
+ .when(y.condition('vehicle'), {
55
+ is: true,
56
+ otherwise: schema => schema.optional(),
57
+ then: schema => schema.required(y.require('vehicle')),
58
+ }), companyBranchId: string()
59
+ .meta(meta('companyBranchId'))
60
+ .when(y.condition('companyBranchId'), {
61
+ is: true,
62
+ otherwise: schema => schema.optional(),
63
+ then: schema => schema.required(y.require('companyBranchId')),
64
+ }), cityId: string()
65
+ .meta(meta('cityId'))
66
+ .when(y.condition('cityId'), {
67
+ is: true,
68
+ otherwise: schema => schema.optional(),
69
+ then: schema => schema.required(y.require('cityId')),
70
+ }), date: string()
71
+ .meta(meta('date'))
72
+ .when(condition('date'), {
73
+ is: true,
74
+ otherwise: schema => schema.optional(),
75
+ then: schema => schema.required(require('date')),
76
+ }), time: string()
77
+ .meta(meta('time'))
78
+ .when(condition('time'), {
79
+ is: true,
80
+ otherwise: schema => schema.optional(),
81
+ then: schema => schema.required(require('time')),
82
+ }) }, extraFields));
83
+ };
@@ -8,29 +8,29 @@ import { sharedFormLocalesSchema } from "../../features/multi-lingual/index";
8
8
  import getLanguageFromUrl from "../../global/lib/get-language-from-url";
9
9
  import cn from "../../global/lib/cn";
10
10
  import { LoaderIcon } from "../../global/assets/loader-icon";
11
- import { object, string } from "yup";
12
- import { getDefaultValidations, y } from "./defaults/validation";
13
- import { getDefaultMappers } from "./defaults/mappers";
11
+ import { string } from "yup";
12
+ import { getFormValidations, y } from "./defaults/validation";
13
+ import { getFormMappers } from "./defaults/mappers";
14
14
  import { getDefaultStateObject } from "./defaults/state-object";
15
15
  let stateObject = getDefaultStateObject();
16
- const validation = object(Object.assign(Object.assign({}, getDefaultValidations(stateObject)), { companyBranchId: string()
17
- .meta({ label: y.label('companyBranchId'), placeholder: y.placeholder('companyBranchId') })
18
- .when(y.condition('companyBranchId'), {
16
+ const validation = getFormValidations(stateObject, {
17
+ generalTicketType: string()
18
+ .meta(y.meta('generalTicketType'))
19
+ .when(y.condition('generalTicketType'), {
19
20
  is: true,
20
21
  otherwise: schema => schema.optional(),
21
- then: schema => schema.required(y.require('companyBranchId')),
22
- }) }));
23
- const elementMapper = Object.assign(Object.assign({}, getDefaultMappers(stateObject)), { companyBranchId: ({ form, language, props }) => {
24
- const fetcher = async ({ signal }) => {
25
- var _a;
26
- const branchEndpoint = (_a = form.context.structure) === null || _a === void 0 ? void 0 : _a.data.branchApi;
27
- const response = await fetch(branchEndpoint, { signal, headers: { 'Accept-Language': language } });
28
- const branches = (await response.json());
29
- const parsedOptions = branches.map(branch => ({ label: branch === null || branch === void 0 ? void 0 : branch.Name, value: branch === null || branch === void 0 ? void 0 : branch.ID }));
30
- return parsedOptions;
22
+ then: schema => schema.required(y.require('generalTicketType')),
23
+ }),
24
+ });
25
+ const elementMapper = getFormMappers(stateObject, {
26
+ generalTicketType: ({ language, props }) => {
27
+ const fetcher = async ({}) => {
28
+ const options = Array.isArray(props === null || props === void 0 ? void 0 : props.options) ? props === null || props === void 0 ? void 0 : props.options : [];
29
+ return options.map(option => ({ value: (option === null || option === void 0 ? void 0 : option.value) || '', label: (option === null || option === void 0 ? void 0 : option[language]) || '' }));
31
30
  };
32
- return h("form-select", Object.assign({}, props, { searchable: true, fetcher: fetcher, language: language }));
33
- } });
31
+ return h("form-select", Object.assign({}, props, { clearable: true, fetcher: fetcher, language: language }));
32
+ },
33
+ });
34
34
  export class GeneralInquiryForm {
35
35
  constructor() {
36
36
  this.locale = { sharedFormLocales: sharedFormLocalesSchema.getDefault() };
@@ -75,9 +75,9 @@ export class GeneralInquiryForm {
75
75
  // #endregion
76
76
  render() {
77
77
  var _a, _b;
78
- return (h(Host, { key: 'e260418b046bb7cd849d7479c14f93638e2c6794' }, h("div", { key: '84322c6e727e5b09cce5eebf2f4bacdb7f851060', part: cn('shift-form', (_b = (_a = this.structure) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.theme, this.theme) }, h("div", { key: '0142ce2fc4aa5ab66449170a0acb4f2c7be51f84', part: "form-container", class: "relative min-h-[150px]" }, h("div", { key: 'c160ed3cfe2a1e928ac69806056ac49af21872d7', part: "form-loader-container", class: cn('form-loader-container absolute top-0 left-0 w-full h-full pointer-events-none flex justify-center items-center transition-opacity duration-500', {
78
+ return (h(Host, { key: 'ec357e8aa8f91ec83ee38d1be31ceb0d1e95d038' }, h("div", { key: 'af34b398c8e376efff3c2767e1ed01d098ab50e5', part: cn('shift-form', (_b = (_a = this.structure) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.theme, this.theme) }, h("div", { key: '92c049c4010744b5fbc6c5edf80c6b406f210d8c', part: "form-container", class: "relative min-h-[150px]" }, h("div", { key: '48905cb88b6054b6bdb73b9aed310d4601ae0b81', part: "form-loader-container", class: cn('form-loader-container absolute top-0 left-0 w-full h-full pointer-events-none flex justify-center items-center transition-opacity duration-500', {
79
79
  'opacity-0': this.structureRendered,
80
- }) }, h(LoaderIcon, { key: 'c91118bf475a9aa69282eb41594c81b21551295d', part: "form-loader-icon", class: "img" })), h("flexible-container", { key: '240cdecfa8a01f326c5a11b901f5cac6c7579bcc', onlyForMounting: true, isOpened: this.structureRendered }, !!this.form && (h("form-structure", { key: '162354ae01ab8a16a95cca09e2c06020829e0b06', form: this.form, fields: this.fields, formId: this.formId, formLocale: this.locale, structure: this.structure, isLoading: this.isLoading, language: this.localeLanguage, errorMessage: this.errorMessage, formElementMapper: elementMapper, successMessage: this.locale['Form submitted successfully.'] || 'Form submitted successfully.' }, h("slot", { key: 'a866161af607da831e217c27f76f4ef10cf83cb6' }))))))));
80
+ }) }, h(LoaderIcon, { key: 'ed5996aab6afb3b9edd27e17c394004062791e49', part: "form-loader-icon", class: "img" })), h("flexible-container", { key: '28343dde46ffef9d729c5d9b81d9eed1a77b9258', onlyForMounting: true, isOpened: this.structureRendered }, !!this.form && (h("form-structure", { key: '3ac4c001d5d0bd36cf388691a571b94d15ee6aa0', form: this.form, fields: this.fields, formId: this.formId, formLocale: this.locale, structure: this.structure, isLoading: this.isLoading, language: this.localeLanguage, errorMessage: this.errorMessage, formElementMapper: elementMapper, successMessage: this.locale['Form submitted successfully.'] || 'Form submitted successfully.' }, h("slot", { key: '3b2bc0c3aac4200cab0f31f0d3ea159b599fc217' }))))))));
81
81
  }
82
82
  static get is() { return "general-inquiry-form"; }
83
83
  static get encapsulation() { return "shadow"; }
@@ -8,13 +8,12 @@ import { sharedFormLocalesSchema } from "../../features/multi-lingual/index";
8
8
  import getLanguageFromUrl from "../../global/lib/get-language-from-url";
9
9
  import cn from "../../global/lib/cn";
10
10
  import { LoaderIcon } from "../../global/assets/loader-icon";
11
- import { object } from "yup";
12
- import { getDefaultValidations } from "./defaults/validation";
13
- import { getDefaultMappers } from "./defaults/mappers";
11
+ import { getFormValidations } from "./defaults/validation";
12
+ import { getFormMappers } from "./defaults/mappers";
14
13
  import { getDefaultStateObject } from "./defaults/state-object";
15
14
  let stateObject = getDefaultStateObject();
16
- const validation = object(Object.assign({}, getDefaultValidations(stateObject)));
17
- const elementMapper = Object.assign(Object.assign({}, getDefaultMappers(stateObject)), { 'choose': ({ locale }) => h("h1", { part: "section-title" }, locale.choose), 'contact information': ({ locale }) => h("h1", { part: "section-title" }, locale['contact information']) });
15
+ const validation = getFormValidations(stateObject);
16
+ const elementMapper = getFormMappers(stateObject);
18
17
  export class ServiceBookingForm {
19
18
  constructor() {
20
19
  this.locale = { sharedFormLocales: sharedFormLocalesSchema.getDefault() };
@@ -59,9 +58,9 @@ export class ServiceBookingForm {
59
58
  // #endregion
60
59
  render() {
61
60
  var _a, _b;
62
- return (h(Host, { key: 'cafab2835c5baf84e0d4bcf06512cb967f56c447' }, h("div", { key: '37e63a7b0d95954fac2f3f1e6900c42a40bfdc8b', part: cn('shift-form', (_b = (_a = this.structure) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.theme, this.theme) }, h("div", { key: 'd4aa01f2c642e5c9ce7510ca6ee528eb38845191', part: "form-container", class: "relative min-h-[150px]" }, h("div", { key: '8626f94bac1aa27958e76e86af84da372557563b', part: "form-loader-container", class: cn('form-loader-container absolute top-0 left-0 w-full h-full pointer-events-none flex justify-center items-center transition-opacity duration-500', {
61
+ return (h(Host, { key: '22f0de899c9531d1c9f13ec8d77f91f64561a64f' }, h("div", { key: 'af3726aea3e91be0acd62002ef1d039878d4c732', part: cn('shift-form', (_b = (_a = this.structure) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.theme, this.theme) }, h("div", { key: '21a7b0274b08b6f5f4c1e1cbbd204dfdff7c3723', part: "form-container", class: "relative min-h-[150px]" }, h("div", { key: '1fdb369874c9aea5a81aff7a45b46a2e22034b5c', part: "form-loader-container", class: cn('form-loader-container absolute top-0 left-0 w-full h-full pointer-events-none flex justify-center items-center transition-opacity duration-500', {
63
62
  'opacity-0': this.structureRendered,
64
- }) }, h(LoaderIcon, { key: '32f595c6fcf48c7f2a86d2aa29c9a3b89f8762e3', part: "form-loader-icon", class: "img" })), h("flexible-container", { key: '2643bcc86284950ebbc4a0cb7584818becacd968', onlyForMounting: true, isOpened: this.structureRendered }, !!this.form && (h("form-structure", { key: '38806f84dc6b5abf86ee7451b40b23becc446174', form: this.form, fields: this.fields, formId: this.formId, formLocale: this.locale, structure: this.structure, isLoading: this.isLoading, language: this.localeLanguage, errorMessage: this.errorMessage, formElementMapper: elementMapper, successMessage: this.locale['Form submitted successfully.'] || 'Form submitted successfully.' }, h("slot", { key: '9a3bcf859ffd90d836d95666c6643d7704f1d0b3' }))))))));
63
+ }) }, h(LoaderIcon, { key: '4dc617177adfb48354bda986948d69f6662b1774', part: "form-loader-icon", class: "img" })), h("flexible-container", { key: '438f1f30d52bd6fbcd02497d4a5954e0cafc20ae', onlyForMounting: true, isOpened: this.structureRendered }, !!this.form && (h("form-structure", { key: '13bc1284b54fbbd92e738f3ac28fcb7416ac53e9', form: this.form, fields: this.fields, formId: this.formId, formLocale: this.locale, structure: this.structure, isLoading: this.isLoading, language: this.localeLanguage, errorMessage: this.errorMessage, formElementMapper: elementMapper, successMessage: this.locale['Form submitted successfully.'] || 'Form submitted successfully.' }, h("slot", { key: '392b3dbc5819fadade56a11a5bed885710a74f84' }))))))));
65
64
  }
66
65
  static get is() { return "service-booking-form"; }
67
66
  static get encapsulation() { return "shadow"; }
@@ -8,13 +8,12 @@ import { sharedFormLocalesSchema } from "../../features/multi-lingual/index";
8
8
  import getLanguageFromUrl from "../../global/lib/get-language-from-url";
9
9
  import cn from "../../global/lib/cn";
10
10
  import { LoaderIcon } from "../../global/assets/loader-icon";
11
- import { object } from "yup";
12
- import { getDefaultValidations } from "./defaults/validation";
13
- import { getDefaultMappers } from "./defaults/mappers";
11
+ import { getFormValidations } from "./defaults/validation";
12
+ import { getFormMappers } from "./defaults/mappers";
14
13
  import { getDefaultStateObject } from "./defaults/state-object";
15
14
  let stateObject = getDefaultStateObject();
16
- const validation = object(Object.assign({}, getDefaultValidations(stateObject)));
17
- const elementMapper = Object.assign({}, getDefaultMappers(stateObject));
15
+ const validation = getFormValidations(stateObject);
16
+ const elementMapper = getFormMappers(stateObject);
18
17
  export class SSCLookupForm {
19
18
  constructor() {
20
19
  this.locale = { sharedFormLocales: sharedFormLocalesSchema.getDefault() };
@@ -70,9 +69,9 @@ export class SSCLookupForm {
70
69
  // #endregion
71
70
  render() {
72
71
  var _a, _b;
73
- return (h(Host, { key: 'fc59da682ab64d4abc77d922dfb1747574498e2a' }, h("div", { key: 'bf806216b58c9c5ab6c7b88d200bbe56a772d9d9', part: cn('shift-form', (_b = (_a = this.structure) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.theme, this.theme) }, h("div", { key: '5d0cd5af7b412c3eac4e7f39b1475bb9f64c00e9', part: "form-container", class: "relative min-h-[150px]" }, h("div", { key: '0a36d00062397ba875bda14344484739fb6213d9', part: "form-loader-container", class: cn('form-loader-container absolute top-0 left-0 w-full h-full pointer-events-none flex justify-center items-center transition-opacity duration-500', {
72
+ return (h(Host, { key: '1388662270764e5c55e513f415c827980abaec1f' }, h("div", { key: '66ffa8f118d0749cd949b6c95a1080a88403b222', part: cn('shift-form', (_b = (_a = this.structure) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.theme, this.theme) }, h("div", { key: '8c475b8f84fbcaf470bfe33a73fb173ee67d44dc', part: "form-container", class: "relative min-h-[150px]" }, h("div", { key: '1a789d6edf4667be5a7e8ba0563d3416e030890a', part: "form-loader-container", class: cn('form-loader-container absolute top-0 left-0 w-full h-full pointer-events-none flex justify-center items-center transition-opacity duration-500', {
74
73
  'opacity-0': this.structureRendered,
75
- }) }, h(LoaderIcon, { key: 'd53bedd6c4faff10d63eea3f3a7ddce525fac72a', part: "form-loader-icon", class: "img" })), h("flexible-container", { key: '64ce678d61fdfa7b29372048cad3e276a4f6cb89', onlyForMounting: true, isOpened: this.structureRendered }, !!this.form && (h("form-structure", { key: 'f7c8fdff2f84404b843d924b5dd0bafedfc3e7c8', form: this.form, fields: this.fields, formId: this.formId, formLocale: this.locale, structure: this.structure, isLoading: this.isLoading, language: this.localeLanguage, errorMessage: this.errorMessage, formElementMapper: elementMapper, successMessage: this.locale['Form submitted successfully.'] || 'Form submitted successfully.' }, h("slot", { key: 'f8162a8562790232384f75d2e5532636527af984' }))))))));
74
+ }) }, h(LoaderIcon, { key: '4ab24cf4b89e72690ab160070928edb6b44fbfb5', part: "form-loader-icon", class: "img" })), h("flexible-container", { key: '2b1c3b059306c660f8d721768f930fa52cf165b5', onlyForMounting: true, isOpened: this.structureRendered }, !!this.form && (h("form-structure", { key: '7ceec1a05f6dfa6a1ee22b2eeace80ac16114ee4', form: this.form, fields: this.fields, formId: this.formId, formLocale: this.locale, structure: this.structure, isLoading: this.isLoading, language: this.localeLanguage, errorMessage: this.errorMessage, formElementMapper: elementMapper, successMessage: this.locale['Form submitted successfully.'] || 'Form submitted successfully.' }, h("slot", { key: '40264199c30d3a2b6279017c682964788ee8d746' }))))))));
76
75
  }
77
76
  static get is() { return "ssc-lookup-form"; }
78
77
  static get encapsulation() { return "shadow"; }