adp-web-components 0.3.20 → 0.4.0

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 (389) hide show
  1. package/dist/cjs/branch-date-dropdown_17.cjs.entry.js +40 -39
  2. package/dist/cjs/dead-stock-lookup_3.cjs.entry.js +9 -9
  3. package/dist/cjs/flexible-container.cjs.entry.js +5 -23
  4. package/dist/cjs/form-checkbox.cjs.entry.js +2 -2
  5. package/dist/cjs/form-date-picker.cjs.entry.js +5 -5
  6. package/dist/cjs/form-input_7.cjs.entry.js +17 -17
  7. package/dist/cjs/form-switch.cjs.entry.js +2 -2
  8. package/dist/cjs/form-time-picker.cjs.entry.js +6 -6
  9. package/dist/cjs/{functions-BAUJUMt-.js → functions-gb1i8Hkl.js} +1 -1
  10. package/dist/cjs/general-form.cjs.entry.js +4 -4
  11. package/dist/cjs/general-inquiry-form.cjs.entry.js +4 -4
  12. package/dist/cjs/{get-local-language-DI_UK6D5.js → get-local-language-CZeC0BN9.js} +4 -4
  13. package/dist/cjs/{get-mock-files-B1tNGb9m.js → get-mock-files-NMHm1Vgn.js} +1 -1
  14. package/dist/cjs/information-table.cjs.entry.js +24 -12
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/loading-spinner.cjs.entry.js +2 -2
  17. package/dist/cjs/manufacturer-part-lookup.cjs.entry.js +3 -3
  18. package/dist/cjs/parents-with-tag-CV2Y9Chq.js +26 -0
  19. package/dist/cjs/part-lookup.cjs.entry.js +2 -2
  20. package/dist/cjs/reveal-below-CyYolTYX.js +127 -0
  21. package/dist/cjs/service-booking-form.cjs.entry.js +4 -4
  22. package/dist/cjs/shift-accordion.cjs.entry.js +1 -1
  23. package/dist/cjs/shift-checkbox.cjs.entry.js +2 -2
  24. package/dist/cjs/shift-components.cjs.js +1 -1
  25. package/dist/cjs/shift-slider.cjs.entry.js +2 -2
  26. package/dist/cjs/shift-switch.cjs.entry.js +2 -2
  27. package/dist/cjs/shift-tab-content.cjs.entry.js +2 -2
  28. package/dist/cjs/shift-tabs_2.cjs.entry.js +10 -10
  29. package/dist/cjs/ssc-lookup-form.cjs.entry.js +4 -4
  30. package/dist/cjs/test-drive-form.cjs.entry.js +4 -4
  31. package/dist/cjs/{type-BHyLb1S8.js → type-CTsARyVi.js} +63 -18
  32. package/dist/cjs/vehicle-accessories_8.cjs.entry.js +819 -204
  33. package/dist/cjs/vehicle-lookup.cjs.entry.js +56 -40
  34. package/dist/cjs/vehicle-quotation-form.cjs.entry.js +4 -4
  35. package/dist/collection/collection-manifest.json +1 -1
  36. package/dist/collection/components/components/empty.css +1 -1
  37. package/dist/collection/components/components/flexible-container.css +1 -1
  38. package/dist/collection/components/components/flexible-container.js +2 -2
  39. package/dist/collection/components/components/information-table.css +1 -1
  40. package/dist/collection/components/components/information-table.js +21 -8
  41. package/dist/collection/components/components/loading-spinner.css +1 -1
  42. package/dist/collection/components/components/loading-spinner.js +1 -1
  43. package/dist/collection/components/components/shift-accordion.js +1 -1
  44. package/dist/collection/components/components/shift-checkbox.js +1 -1
  45. package/dist/collection/components/components/shift-portal.css +1 -1
  46. package/dist/collection/components/components/shift-select-dropdown.css +1 -1
  47. package/dist/collection/components/components/shift-select-dropdown.js +2 -2
  48. package/dist/collection/components/components/shift-select.css +1 -1
  49. package/dist/collection/components/components/shift-select.js +3 -3
  50. package/dist/collection/components/components/shift-slider.css +1 -1
  51. package/dist/collection/components/components/shift-slider.js +1 -1
  52. package/dist/collection/components/components/shift-switch.js +1 -1
  53. package/dist/collection/components/components/shift-tab-content.css +1 -1
  54. package/dist/collection/components/components/shift-tab-content.js +1 -1
  55. package/dist/collection/components/components/shift-tabs.css +1 -1
  56. package/dist/collection/components/components/shift-tabs.js +2 -2
  57. package/dist/collection/components/form-elements/branch-date-dropdown.js +2 -2
  58. package/dist/collection/components/form-elements/branch-date-picker.js +2 -2
  59. package/dist/collection/components/form-elements/branch-slot-dropdown.css +1 -1
  60. package/dist/collection/components/form-elements/branch-slot-dropdown.js +1 -1
  61. package/dist/collection/components/form-elements/branch-slot-picker.js +2 -2
  62. package/dist/collection/components/form-elements/form-checkbox.js +1 -1
  63. package/dist/collection/components/form-elements/form-date-picker-legacy.js +4 -4
  64. package/dist/collection/components/form-elements/form-dialog.css +1 -1
  65. package/dist/collection/components/form-elements/form-dialog.js +1 -1
  66. package/dist/collection/components/form-elements/form-file.js +2 -2
  67. package/dist/collection/components/form-elements/form-input.js +2 -2
  68. package/dist/collection/components/form-elements/form-inputs.css +1 -1
  69. package/dist/collection/components/form-elements/form-picker-input.js +2 -2
  70. package/dist/collection/components/form-elements/form-shadow-input.js +1 -1
  71. package/dist/collection/components/form-elements/form-stepper-control.js +2 -2
  72. package/dist/collection/components/form-elements/form-stepper-submit.js +2 -2
  73. package/dist/collection/components/form-elements/form-stepper.js +1 -1
  74. package/dist/collection/components/form-elements/form-structure-error.js +1 -1
  75. package/dist/collection/components/form-elements/form-structure.js +3 -2
  76. package/dist/collection/components/form-elements/form-submit.js +2 -2
  77. package/dist/collection/components/form-elements/form-switch.js +1 -1
  78. package/dist/collection/components/form-elements/form-text-area.js +2 -2
  79. package/dist/collection/components/form-elements/form-time-picker-legacy.js +5 -5
  80. package/dist/collection/components/form-elements/form-vin-input.js +2 -2
  81. package/dist/collection/components/forms/general-form.js +2 -2
  82. package/dist/collection/components/forms/general-inquiry.js +2 -2
  83. package/dist/collection/components/forms/service-booking.js +2 -2
  84. package/dist/collection/components/forms/ssc-lookup.js +2 -2
  85. package/dist/collection/components/forms/test-drive.js +2 -2
  86. package/dist/collection/components/forms/vehicle-quotation.js +2 -2
  87. package/dist/collection/components/part-lookup/dead-stock-lookup.css +1 -1
  88. package/dist/collection/components/part-lookup/dead-stock-lookup.js +2 -2
  89. package/dist/collection/components/part-lookup/distributor-lookup.css +1 -1
  90. package/dist/collection/components/part-lookup/distributor-lookup.js +2 -2
  91. package/dist/collection/components/part-lookup/manufacturer-lookup.css +1 -1
  92. package/dist/collection/components/part-lookup/manufacturer-part-lookup.css +1 -1
  93. package/dist/collection/components/part-lookup/manufacturer-part-lookup.js +1 -1
  94. package/dist/collection/components/part-lookup/part-lookup.css +1 -1
  95. package/dist/collection/components/vehicle-lookup/components/CoverageTimeline.js +5 -8
  96. package/dist/collection/components/vehicle-lookup/components/SscCampaigns.js +236 -0
  97. package/dist/collection/components/vehicle-lookup/components/glyphs.js +19 -0
  98. package/dist/collection/components/vehicle-lookup/vehicle-accessories.css +1 -1
  99. package/dist/collection/components/vehicle-lookup/vehicle-accessories.js +3 -3
  100. package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.css +1 -1
  101. package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.js +61 -9
  102. package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.css +1 -1
  103. package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.js +6 -6
  104. package/dist/collection/components/vehicle-lookup/vehicle-lookup.css +1 -1
  105. package/dist/collection/components/vehicle-lookup/vehicle-lookup.js +99 -59
  106. package/dist/collection/components/vehicle-lookup/vehicle-paint-thickness.css +1 -1
  107. package/dist/collection/components/vehicle-lookup/vehicle-paint-thickness.js +1 -1
  108. package/dist/collection/components/vehicle-lookup/vehicle-sale-information.css +1 -1
  109. package/dist/collection/components/vehicle-lookup/vehicle-sale-information.js +3 -3
  110. package/dist/collection/components/vehicle-lookup/vehicle-service-history.css +1 -1
  111. package/dist/collection/components/vehicle-lookup/vehicle-service-history.js +2 -2
  112. package/dist/collection/components/vehicle-lookup/vehicle-specification.css +1 -1
  113. package/dist/collection/components/vehicle-lookup/vehicle-specification.js +2 -2
  114. package/dist/collection/components/vehicle-lookup/vehicle-ssc.css +1 -0
  115. package/dist/collection/components/vehicle-lookup/{vehicle-warranty-details.js → vehicle-ssc.js} +583 -189
  116. package/dist/collection/components/vehicle-lookup/vehicle-warranty-timeline.css +1 -1
  117. package/dist/collection/components/vehicle-lookup/vehicle-warranty-timeline.js +5 -6
  118. package/dist/collection/components/vin-extractor/vin-extractor.js +1 -1
  119. package/dist/collection/features/vehicle-lookup-component/index.js +1 -0
  120. package/dist/collection/features/vehicle-lookup-component/request-headers.js +42 -0
  121. package/dist/collection/features/vehicle-lookup-component/vehicle-lookup-api-integration.js +9 -7
  122. package/dist/collection/global/lib/flexible-parents.js +46 -0
  123. package/dist/collection/global/lib/reveal-below.js +118 -0
  124. package/dist/collection/global/types/generated/vehicle-lookup/ssc-repair-trace-dto.js +1 -0
  125. package/dist/collection/global/types/generated/vehicle-lookup/ssc-repair-trace-labor-code-dto.js +1 -0
  126. package/dist/collection/global/types/generated/vehicle-lookup/ssc-repair-trace-labor-line-dto.js +1 -0
  127. package/dist/collection/global/types/generated/vehicle-lookup/ssc-repair-trace-warranty-claim-dto.js +1 -0
  128. package/dist/collection/locale-mapper.js +3 -3
  129. package/dist/collection/locales/vehicleLookup/ssc/type.js +70 -0
  130. package/dist/collection/locales/vehicleLookup/wrapper-type.js +2 -2
  131. package/dist/collection/templates/harness.js +3 -1
  132. package/dist/components/branch-date-dropdown.js +1 -1
  133. package/dist/components/branch-date-picker.js +1 -1
  134. package/dist/components/branch-slot-dropdown.js +1 -1
  135. package/dist/components/branch-slot-picker.js +1 -1
  136. package/dist/components/dead-stock-lookup.js +1 -1
  137. package/dist/components/distributor-lookup.js +1 -1
  138. package/dist/components/flexible-container.js +1 -1
  139. package/dist/components/form-checkbox.js +1 -1
  140. package/dist/components/form-date-picker.js +1 -1
  141. package/dist/components/form-dialog.js +1 -1
  142. package/dist/components/form-file.js +1 -1
  143. package/dist/components/form-input-preview.js +1 -1
  144. package/dist/components/form-input.js +1 -1
  145. package/dist/components/form-phone-number.js +1 -1
  146. package/dist/components/form-picker-input.js +1 -1
  147. package/dist/components/form-select.js +1 -1
  148. package/dist/components/form-shadow-input.js +1 -1
  149. package/dist/components/form-stepper-control.js +1 -1
  150. package/dist/components/form-stepper-submit.js +1 -1
  151. package/dist/components/form-stepper.js +1 -1
  152. package/dist/components/form-structure-error.js +1 -1
  153. package/dist/components/form-structure.js +1 -1
  154. package/dist/components/form-submit.js +1 -1
  155. package/dist/components/form-switch.js +1 -1
  156. package/dist/components/form-text-area.js +1 -1
  157. package/dist/components/form-time-picker.js +1 -1
  158. package/dist/components/form-vin-input.js +1 -1
  159. package/dist/components/general-form.js +1 -1
  160. package/dist/components/general-inquiry-form.js +1 -1
  161. package/dist/components/information-table.js +1 -1
  162. package/dist/components/loading-spinner.js +1 -1
  163. package/dist/components/manufacturer-lookup.js +1 -1
  164. package/dist/components/manufacturer-part-lookup.js +1 -1
  165. package/dist/components/{p-CsU_c7eX.js → p-AkWKeTFc.js} +1 -1
  166. package/dist/components/{p-CMAmzdM7.js → p-B2Rwfoy0.js} +1 -1
  167. package/dist/components/p-B4nj03om.js +5 -0
  168. package/dist/components/p-BAkLdLKZ.js +5 -0
  169. package/dist/components/p-BDCBfHZQ.js +5 -0
  170. package/dist/components/{p-DQ0uTCi2.js → p-BDOUh9fr.js} +1 -1
  171. package/dist/components/p-BGf2deKN.js +5 -0
  172. package/dist/components/{p-5OD_mwiD.js → p-BNmsN10T.js} +1 -1
  173. package/dist/components/p-BOaqSzZZ.js +5 -0
  174. package/dist/components/p-B_1NtFJh.js +5 -0
  175. package/dist/components/{p-Cpjvk1pk.js → p-BhekdMkM.js} +1 -1
  176. package/dist/components/p-BpZlI-gl.js +5 -0
  177. package/dist/components/p-BtipOZUG.js +5 -0
  178. package/dist/components/{p-KbiYvxzP.js → p-BvM3siIc.js} +1 -1
  179. package/dist/components/{p-rQ3Z9EnS.js → p-BwoBk7eI.js} +1 -1
  180. package/dist/components/{p-SIS25ChD.js → p-BxGye2qd.js} +1 -1
  181. package/dist/components/{p-D42YuMNZ.js → p-BySGDlQi.js} +1 -1
  182. package/dist/components/{p-BvLVCp-j.js → p-ByrX91PC.js} +1 -1
  183. package/dist/components/p-C9uBduBY.js +5 -0
  184. package/dist/components/{p-DnspXuVN.js → p-CETvww16.js} +1 -1
  185. package/dist/components/{p-CJtTHErI.js → p-CT-MbmyW.js} +1 -1
  186. package/dist/components/p-CUO3vXQr.js +5 -0
  187. package/dist/components/{p-BPXRokES.js → p-CbRoCi89.js} +1 -1
  188. package/dist/components/{p-ikaUQvOO.js → p-CebvOd8T.js} +1 -1
  189. package/dist/components/{p-68bjv9gT.js → p-Cy8khSKP.js} +1 -1
  190. package/dist/components/{p-BpB_86n0.js → p-D4VK-Fv7.js} +1 -1
  191. package/dist/components/p-D4aXUm2Y.js +5 -0
  192. package/dist/components/{p-Wgb4y0H3.js → p-D8w2fZLP.js} +1 -1
  193. package/dist/components/p-DCO6piZ9.js +5 -0
  194. package/dist/components/{p-B1xVBTqj.js → p-DConDqrK.js} +1 -1
  195. package/dist/components/{p-BsnGFZeT.js → p-DDTSLfBG.js} +1 -1
  196. package/dist/components/{p-C3KLOUbk.js → p-DJDhhX5A.js} +1 -1
  197. package/dist/components/p-DKWqzBVM.js +5 -0
  198. package/dist/components/{p-BI5NL1Rh.js → p-DOIpj5PH.js} +1 -1
  199. package/dist/components/{p-BWlX-Nz-.js → p-DVkAlTjC.js} +1 -1
  200. package/dist/components/p-D_uU2Pi-.js +5 -0
  201. package/dist/components/{p-BULuujHY.js → p-DfVskL_i.js} +1 -1
  202. package/dist/components/p-DkCqJ072.js +5 -0
  203. package/dist/components/p-DpuHkgw0.js +5 -0
  204. package/dist/components/{p-Ce2mazYo.js → p-DrF7UQxE.js} +1 -1
  205. package/dist/components/{p-DCpRGVqe.js → p-DxRQkoRz.js} +1 -1
  206. package/dist/components/{p-BcWJAP8j.js → p-Imck426q.js} +1 -1
  207. package/dist/components/{p-bCeQwUKM.js → p-UFwS4oV2.js} +1 -1
  208. package/dist/components/p-WIpbRULc.js +5 -0
  209. package/dist/components/p-XFwQkeZH.js +5 -0
  210. package/dist/components/p-Ype8FNjy.js +5 -0
  211. package/dist/components/{p-B0_5_VvS.js → p-a4ooD0o_.js} +1 -1
  212. package/dist/components/{p-DTmI_Yx0.js → p-bVbnoz7C.js} +1 -1
  213. package/dist/components/{p-OY4Ixaeq.js → p-d1WgLP9O.js} +1 -1
  214. package/dist/components/{p-Bc5HIbcj.js → p-vlA3PJQv.js} +1 -1
  215. package/dist/components/{p-BpHkd1L9.js → p-vuYBsCyI.js} +1 -1
  216. package/dist/components/part-lookup.js +1 -1
  217. package/dist/components/service-booking-form.js +1 -1
  218. package/dist/components/shift-accordion.js +1 -1
  219. package/dist/components/shift-checkbox.js +1 -1
  220. package/dist/components/shift-portal.js +1 -1
  221. package/dist/components/shift-select-dropdown.js +1 -1
  222. package/dist/components/shift-select.js +1 -1
  223. package/dist/components/shift-slider.js +1 -1
  224. package/dist/components/shift-switch.js +1 -1
  225. package/dist/components/shift-tab-content.js +1 -1
  226. package/dist/components/shift-tabs.js +1 -1
  227. package/dist/components/ssc-lookup-form.js +1 -1
  228. package/dist/components/test-drive-form.js +1 -1
  229. package/dist/components/vehicle-accessories.js +1 -1
  230. package/dist/components/vehicle-claimable-items.js +1 -1
  231. package/dist/components/vehicle-item-claim-form.js +1 -1
  232. package/dist/components/vehicle-lookup.js +1 -1
  233. package/dist/components/vehicle-paint-thickness.js +1 -1
  234. package/dist/components/vehicle-quotation-form.js +1 -1
  235. package/dist/components/vehicle-sale-information.js +1 -1
  236. package/dist/components/vehicle-service-history.js +1 -1
  237. package/dist/components/vehicle-specification.js +1 -1
  238. package/dist/components/vehicle-ssc.d.ts +11 -0
  239. package/dist/components/vehicle-ssc.js +5 -0
  240. package/dist/components/vehicle-warranty-timeline.js +1 -1
  241. package/dist/components/vin-extractor.js +1 -1
  242. package/dist/esm/branch-date-dropdown_17.entry.js +40 -39
  243. package/dist/esm/dead-stock-lookup_3.entry.js +9 -9
  244. package/dist/esm/flexible-container.entry.js +4 -22
  245. package/dist/esm/form-checkbox.entry.js +2 -2
  246. package/dist/esm/form-date-picker.entry.js +5 -5
  247. package/dist/esm/form-input_7.entry.js +17 -17
  248. package/dist/esm/form-switch.entry.js +2 -2
  249. package/dist/esm/form-time-picker.entry.js +6 -6
  250. package/dist/esm/{functions-DSwc1YVL.js → functions-SHZO3nZB.js} +1 -1
  251. package/dist/esm/general-form.entry.js +4 -4
  252. package/dist/esm/general-inquiry-form.entry.js +4 -4
  253. package/dist/esm/{get-local-language-DdSAPSCV.js → get-local-language-BLpgwBTx.js} +4 -4
  254. package/dist/esm/{get-mock-files-D4naDetb.js → get-mock-files-Dpb0udoz.js} +1 -1
  255. package/dist/esm/information-table.entry.js +22 -10
  256. package/dist/esm/loader.js +1 -1
  257. package/dist/esm/loading-spinner.entry.js +2 -2
  258. package/dist/esm/manufacturer-part-lookup.entry.js +3 -3
  259. package/dist/esm/parents-with-tag-WIpbRULc.js +24 -0
  260. package/dist/esm/part-lookup.entry.js +2 -2
  261. package/dist/esm/reveal-below-DWXRi5w3.js +124 -0
  262. package/dist/esm/service-booking-form.entry.js +4 -4
  263. package/dist/esm/shift-accordion.entry.js +1 -1
  264. package/dist/esm/shift-checkbox.entry.js +2 -2
  265. package/dist/esm/shift-components.js +1 -1
  266. package/dist/esm/shift-slider.entry.js +2 -2
  267. package/dist/esm/shift-switch.entry.js +2 -2
  268. package/dist/esm/shift-tab-content.entry.js +2 -2
  269. package/dist/esm/shift-tabs_2.entry.js +10 -10
  270. package/dist/esm/ssc-lookup-form.entry.js +4 -4
  271. package/dist/esm/test-drive-form.entry.js +4 -4
  272. package/dist/esm/{type-DEzFTlhs.js → type-CQsUzIOf.js} +63 -18
  273. package/dist/esm/vehicle-accessories_8.entry.js +819 -204
  274. package/dist/esm/vehicle-lookup.entry.js +56 -40
  275. package/dist/esm/vehicle-quotation-form.entry.js +4 -4
  276. package/dist/integration-manifest.json +38 -23
  277. package/dist/locales/vehicleLookup/ssc/ar.json +64 -0
  278. package/dist/locales/vehicleLookup/ssc/en.json +64 -0
  279. package/dist/locales/vehicleLookup/ssc/ku.json +64 -0
  280. package/dist/locales/vehicleLookup/ssc/ru.json +64 -0
  281. package/dist/locales/vehicleLookup/ssc/type.ts +68 -0
  282. package/dist/locales/vehicleLookup/wrapper-type.ts +2 -2
  283. package/dist/mocks/generated/broker-dealer/vehicle-lookup.json +40 -2
  284. package/dist/mocks/generated/standard-dealer/vehicle-lookup.json +61 -2
  285. package/dist/shift-components/{p-4b6f801a.entry.js → p-005d0a3a.entry.js} +1 -1
  286. package/dist/shift-components/p-0965eb41.entry.js +5 -0
  287. package/dist/shift-components/{p-ca0683e9.entry.js → p-164eeced.entry.js} +1 -1
  288. package/dist/shift-components/{p-295e445f.entry.js → p-219e589c.entry.js} +1 -1
  289. package/dist/shift-components/{p-b4544d10.entry.js → p-3324bdf6.entry.js} +1 -1
  290. package/dist/shift-components/{p-feb443ec.entry.js → p-3790e469.entry.js} +1 -1
  291. package/dist/shift-components/{p-df0c7ac1.entry.js → p-3895d8e5.entry.js} +1 -1
  292. package/dist/shift-components/p-391c55af.entry.js +5 -0
  293. package/dist/shift-components/{p-152057de.entry.js → p-3ba3f543.entry.js} +1 -1
  294. package/dist/shift-components/{p-D2Ofzg_i.js → p-48Fp2I0C.js} +1 -1
  295. package/dist/shift-components/p-5c28fb6d.entry.js +5 -0
  296. package/dist/shift-components/{p-85d43a41.entry.js → p-60232b66.entry.js} +1 -1
  297. package/dist/shift-components/{p-76b0ea8c.entry.js → p-82bb8960.entry.js} +1 -1
  298. package/dist/shift-components/{p-cbdc1c2e.entry.js → p-879faeec.entry.js} +1 -1
  299. package/dist/shift-components/p-90034cd8.entry.js +5 -0
  300. package/dist/shift-components/p-93ddc847.entry.js +5 -0
  301. package/dist/shift-components/p-C68bG4KE.js +5 -0
  302. package/dist/shift-components/{p-DDtDRGFL.js → p-DIe_G0iC.js} +1 -1
  303. package/dist/shift-components/p-Tjvj6pk4.js +5 -0
  304. package/dist/shift-components/p-WIpbRULc.js +5 -0
  305. package/dist/shift-components/{p-d3bbba07.entry.js → p-a4f1502c.entry.js} +1 -1
  306. package/dist/shift-components/{p-4cdeab63.entry.js → p-af71f000.entry.js} +1 -1
  307. package/dist/shift-components/p-bd8dbd1d.entry.js +5 -0
  308. package/dist/shift-components/{p-52530fba.entry.js → p-be19d7ff.entry.js} +1 -1
  309. package/dist/shift-components/{p-68e41217.entry.js → p-c40bda31.entry.js} +1 -1
  310. package/dist/shift-components/p-d47428d1.entry.js +5 -0
  311. package/dist/shift-components/p-d8844424.entry.js +5 -0
  312. package/dist/shift-components/p-e7986265.entry.js +5 -0
  313. package/dist/shift-components/p-f638970e.entry.js +5 -0
  314. package/dist/shift-components/{p-5e8e5ed7.entry.js → p-f93d79bc.entry.js} +1 -1
  315. package/dist/shift-components/{p-bfe0661c.entry.js → p-fa296247.entry.js} +1 -1
  316. package/dist/shift-components/p-pkYWYULB.js +5 -0
  317. package/dist/shift-components/shift-components.esm.js +1 -1
  318. package/dist/stencil-docs.json +260 -102
  319. package/dist/types/components/components/information-table.d.ts +3 -0
  320. package/dist/types/components/vehicle-lookup/components/SscCampaigns.d.ts +128 -0
  321. package/dist/types/components/vehicle-lookup/components/glyphs.d.ts +15 -0
  322. package/dist/types/components/vehicle-lookup/vehicle-claimable-items.d.ts +6 -1
  323. package/dist/types/components/vehicle-lookup/vehicle-lookup.d.ts +25 -6
  324. package/dist/types/components/vehicle-lookup/vehicle-ssc.d.ts +214 -0
  325. package/dist/types/components/vehicle-lookup/vehicle-warranty-timeline.d.ts +3 -4
  326. package/dist/types/components.d.ts +214 -43
  327. package/dist/types/features/vehicle-lookup-component/index.d.ts +1 -0
  328. package/dist/types/features/vehicle-lookup-component/interface.d.ts +8 -1
  329. package/dist/types/features/vehicle-lookup-component/request-headers.d.ts +40 -0
  330. package/dist/types/global/lib/flexible-parents.d.ts +16 -0
  331. package/dist/types/global/lib/reveal-below.d.ts +26 -0
  332. package/dist/types/global/types/generated/vehicle-lookup/ssc-dto.d.ts +3 -0
  333. package/dist/types/global/types/generated/vehicle-lookup/ssc-repair-trace-dto.d.ts +12 -0
  334. package/dist/types/global/types/generated/vehicle-lookup/ssc-repair-trace-labor-code-dto.d.ts +4 -0
  335. package/dist/types/global/types/generated/vehicle-lookup/ssc-repair-trace-labor-line-dto.d.ts +9 -0
  336. package/dist/types/global/types/generated/vehicle-lookup/ssc-repair-trace-warranty-claim-dto.d.ts +13 -0
  337. package/dist/types/locale-mapper.d.ts +2 -2
  338. package/dist/types/locales/vehicleLookup/serviceHistory/type.d.ts +2 -2
  339. package/dist/types/locales/vehicleLookup/ssc/type.d.ts +128 -0
  340. package/dist/types/locales/vehicleLookup/warrantyTimeline/type.d.ts +4 -4
  341. package/dist/types/locales/vehicleLookup/wrapper-type.d.ts +126 -36
  342. package/package.json +1 -1
  343. package/dist/cjs/arrow-icon-yMlETDbD.js +0 -11
  344. package/dist/collection/components/vehicle-lookup/components/CardsContainer.js +0 -12
  345. package/dist/collection/components/vehicle-lookup/components/StatusCard.js +0 -11
  346. package/dist/collection/components/vehicle-lookup/vehicle-warranty-details.css +0 -1
  347. package/dist/collection/locales/vehicleLookup/warranty/type.js +0 -25
  348. package/dist/components/p-38ox9qxm.js +0 -5
  349. package/dist/components/p-B2bD-55K.js +0 -5
  350. package/dist/components/p-CVpbr1tR.js +0 -5
  351. package/dist/components/p-CXbi5iPZ.js +0 -5
  352. package/dist/components/p-C_1_eN4N.js +0 -5
  353. package/dist/components/p-Cg6Prz81.js +0 -5
  354. package/dist/components/p-CqJiXtPb.js +0 -5
  355. package/dist/components/p-CrPyvAdX.js +0 -5
  356. package/dist/components/p-DCsMDWbS.js +0 -5
  357. package/dist/components/p-DqSdjh2n.js +0 -5
  358. package/dist/components/p-Dv2j7fhS.js +0 -5
  359. package/dist/components/p-K-OF4DG-.js +0 -5
  360. package/dist/components/p-X3AzJ0KD.js +0 -5
  361. package/dist/components/p-d3ZIPeEC.js +0 -5
  362. package/dist/components/p-mbVTvSJF.js +0 -5
  363. package/dist/components/p-rW_ExFCn.js +0 -5
  364. package/dist/components/p-uYkn8a0m.js +0 -5
  365. package/dist/components/vehicle-warranty-details.d.ts +0 -11
  366. package/dist/components/vehicle-warranty-details.js +0 -5
  367. package/dist/esm/arrow-icon-DziuNOTp.js +0 -9
  368. package/dist/locales/vehicleLookup/warranty/ar.json +0 -24
  369. package/dist/locales/vehicleLookup/warranty/en.json +0 -24
  370. package/dist/locales/vehicleLookup/warranty/ku.json +0 -24
  371. package/dist/locales/vehicleLookup/warranty/ru.json +0 -24
  372. package/dist/locales/vehicleLookup/warranty/type.ts +0 -23
  373. package/dist/shift-components/p-0b576888.entry.js +0 -5
  374. package/dist/shift-components/p-11ffa908.entry.js +0 -5
  375. package/dist/shift-components/p-198333fa.entry.js +0 -5
  376. package/dist/shift-components/p-247ac2db.entry.js +0 -5
  377. package/dist/shift-components/p-431522f2.entry.js +0 -5
  378. package/dist/shift-components/p-49dc6d73.entry.js +0 -5
  379. package/dist/shift-components/p-5ad4d072.entry.js +0 -5
  380. package/dist/shift-components/p-BggCINTA.js +0 -5
  381. package/dist/shift-components/p-D1ioFMhR.js +0 -5
  382. package/dist/shift-components/p-OfPuHUYc.js +0 -5
  383. package/dist/shift-components/p-b44b2c00.entry.js +0 -5
  384. package/dist/shift-components/p-c7fc8d5f.entry.js +0 -5
  385. package/dist/shift-components/p-f4679148.entry.js +0 -5
  386. package/dist/types/components/vehicle-lookup/components/CardsContainer.d.ts +0 -12
  387. package/dist/types/components/vehicle-lookup/components/StatusCard.d.ts +0 -14
  388. package/dist/types/components/vehicle-lookup/vehicle-warranty-details.d.ts +0 -77
  389. package/dist/types/locales/vehicleLookup/warranty/type.d.ts +0 -38
@@ -3,15 +3,15 @@
3
3
  * Copyright (c)
4
4
  */
5
5
  import { r as registerInstance, h, H as Host, g as getElement } from './index-CteZTPhq.js';
6
- import { g as getMockFile } from './get-mock-files-D4naDetb.js';
6
+ import { g as getMockFile } from './get-mock-files-Dpb0udoz.js';
7
7
  import { c as create$3, d as sharedLocalesSchema } from './types-BDhR4pDq.js';
8
- import { S as ServiceHistorySchema, p as paintThicknessSchema, c as claimableItemsSchema, s as specificationSchema, a as accessoriesSchema, w as warrantySchema } from './type-DEzFTlhs.js';
8
+ import { S as ServiceHistorySchema, p as paintThicknessSchema, c as claimableItemsSchema, s as specificationSchema, a as accessoriesSchema, b as sscSchema } from './type-CQsUzIOf.js';
9
9
  import { V as VehicleInfoLayout } from './vehicle-info-layout-Dmx94GLp.js';
10
- import { a as getLocaleLanguage, g as getSharedLocal } from './get-local-language-DdSAPSCV.js';
10
+ import { a as getLocaleLanguage, g as getSharedLocal } from './get-local-language-BLpgwBTx.js';
11
11
  import './cn-BK16Cn81.js';
12
12
 
13
13
  const vehicleLookupWrapperSchema = create$3({
14
- warranty: warrantySchema,
14
+ ssc: sscSchema,
15
15
  accessories: accessoriesSchema,
16
16
  specification: specificationSchema,
17
17
  claimableItems: claimableItemsSchema,
@@ -19,7 +19,7 @@ const vehicleLookupWrapperSchema = create$3({
19
19
  serviceHistory: ServiceHistorySchema,
20
20
  });
21
21
 
22
- const vehicleLookupCss = () => `*,: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-scroll-snap-strictness:proximity;--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;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-scroll-snap-strictness:proximity;--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;}: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}.\\!pointer-events-none{pointer-events:none!important}.absolute{position:absolute}.\\!relative{position:relative!important}.relative{position:relative}.left-0{left:0}.top-0{top:0}.z-10{z-index:10}.block{display:block}.flex{display:flex}.hidden{display:none}.size-\\[32px\\]{height:32px;width:32px}.origin-left{transform-origin:left}.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))}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-center{justify-content:center}.\\!overflow-hidden{overflow:hidden!important}.rounded-\\[4px\\]{border-radius:4px}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-\\[\\#e0c97a\\]{--tw-border-opacity:1;border-color:rgb(224 201 122/var(--tw-border-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.text-\\[\\#c08a0e\\]{--tw-text-opacity:1;color:rgb(192 138 14/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.shift-skeleton{border-radius:4px;position:relative!important}.loading .shift-skeleton,.loading.shift-skeleton{border-style:none!important;overflow:hidden!important;pointer-events:none!important;position:relative!important}.shift-skeleton:after{background:linear-gradient(-45deg,#d4d8de,#e2e5e9,#d4d8de);background-size:300% 300%;border-radius:inherit!important;content:"";height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:0;transform-origin:left;transition-duration:.5s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%;z-index:10}.loading .shift-skeleton:after,.loading.shift-skeleton:after{--tw-scale-x:1;animation:shimmer 2s ease-in-out infinite;opacity:1;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))}@keyframes shimmer{0%{background-position:100% 0}50%{background-position:0 100%}to{background-position:100% 0}}.vehicle-info-container{background-color:#fdfdfd;border:1px solid #dcdcdc;border-radius:5px;box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 hsla(0,0%,100%,.1);overflow:hidden;padding:0;position:relative;transition-duration:.5s;transition-property:all}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#f6f6f6;border-radius:5px;border-top:1px solid #dcdcdc;border-top-left-radius:0;border-top-right-radius:0}::-webkit-scrollbar-thumb{background:#c5c5c5;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.hide-scroll ::-webkit-scrollbar-thumb,.hide-scroll::-webkit-scrollbar-thumb,.loading ::-webkit-scrollbar-thumb{background:transparent}.vehicle-info-body{display:flex;flex-direction:column;overflow:hidden;position:relative;transition-duration:.5s;transition-property:all;transition-timing-function:ease-in-out}.vehicle-info-content{transition-duration:.5s;transition-property:all;width:100%}.vehicle-info-header{align-items:center;background-color:#f6f6f6;border:1px solid #ededed;display:flex;height:54px;justify-content:center;position:relative;text-align:center}.vehicle-info-header-action{align-items:center;display:flex;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.vehicle-info-header-vin{display:inline-block;font-size:16px;transition-duration:.5s;transition-property:all}.vehicle-info-header-vin span{color:#ef4444}.loading .vehicle-info-header-vin{opacity:0;transform:scale(1.5);visibility:hidden}:host{all:initial!important;display:block;font-family:inherit!important;font-family:Noto Kufi Arabic,Nunito,Roboto,Arial,sans-serif!important}.part-lookup,.part-lookup *{font-family:Noto Kufi Arabic,Nunito,Roboto,Arial,sans-serif!important}.trace-trigger-button{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:rgb(224 201 122/var(--tw-border-opacity,1));border-radius:9999px;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(192 138 14/var(--tw-text-opacity,1));cursor:pointer;display:flex;height:32px;justify-content:center;transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:32px}.trace-trigger-button:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(252 248 227/var(--tw-bg-opacity,1));border-color:rgb(192 138 14/var(--tw-border-opacity,1));color:rgb(138 109 59/var(--tw-text-opacity,1))}.trace-trigger-button svg{height:18px;width:18px}.hover\\:border-\\[\\#c08a0e\\]:hover{--tw-border-opacity:1;border-color:rgb(192 138 14/var(--tw-border-opacity,1))}.hover\\:bg-\\[\\#fcf8e3\\]:hover{--tw-bg-opacity:1;background-color:rgb(252 248 227/var(--tw-bg-opacity,1))}.hover\\:text-\\[\\#8a6d3b\\]:hover{--tw-text-opacity:1;color:rgb(138 109 59/var(--tw-text-opacity,1))}.static{position:static}.h-\\[200px\\]{height:200px}.w-full{width:100%}.text-\\[26px\\]{font-size:26px}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.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)}.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)}.pointer-events-none{pointer-events:none}.end-0{inset-inline-end:0}.top-full{top:100%}.mx-auto{margin-left:auto;margin-right:auto}.my-auto{margin-bottom:auto;margin-top:auto}.me-\\[16px\\]{margin-inline-end:16px}.mt-\\[4px\\]{margin-top:4px}.size-\\[16px\\]{height:16px;width:16px}.size-\\[18px\\]{height:18px;width:18px}.size-full{height:100%;width:100%}.h-\\[150px\\]{height:150px}.w-\\[84px\\]{width:84px}.w-fit{width:fit-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate:180deg;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))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-\\[16px\\]{gap:16px}.gap-\\[4px\\]{gap:4px}.gap-\\[6px\\]{gap:6px}.gap-\\[8px\\]{gap:8px}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.rounded-lg{border-radius:.5rem}.border-b{border-bottom-width:1px}.border-amber-500{--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black\\/40{background-color:rgba(0,0,0,.4)}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.p-\\[12px\\]{padding:12px}.p-\\[6px\\]{padding:6px}.px-\\[16px\\]{padding-left:16px;padding-right:16px}.px-\\[24px\\]{padding-left:24px;padding-right:24px}.py-\\[10px\\]{padding-bottom:10px;padding-top:10px}.py-\\[15px\\]{padding-bottom:15px;padding-top:15px}.py-\\[16px\\]{padding-bottom:16px;padding-top:16px}.py-\\[6px\\]{padding-bottom:6px;padding-top:6px}.py-\\[8px\\]{padding-bottom:8px;padding-top:8px}.text-center{text-align:center}.text-\\[16px\\]{font-size:16px}.text-\\[17px\\]{font-size:17px}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.no-underline{text-decoration-line:none}.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-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 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}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.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)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.last\\:border-b-0:last-child{border-bottom-width:0}.hover\\:border-amber-600:hover{--tw-border-opacity:1;border-color:rgb(217 119 6/var(--tw-border-opacity,1))}.hover\\:bg-amber-50:hover{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.hover\\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.hover\\:bg-sky-100\\/50:hover{background-color:rgba(224,242,254,.5)}.hover\\:opacity-100:hover{opacity:1}.\\[\\&_div\\]\\:hover\\:\\!opacity-100:hover div{opacity:1!important}.\\[\\&_img\\]\\:hover\\:shadow-lg:hover img{--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);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.my-2{margin-bottom:.5rem;margin-top:.5rem}.grow{flex-grow:1}.items-stretch{align-items:stretch}.overflow-auto{overflow:auto}.p-\\[16px\\]{padding:16px}@media (min-width:768px){.md\\:justify-between{justify-content:space-between}}.\\[\\&\\>div\\]\\:grow>div{flex-grow:1}.max-w-\\[460px\\]{max-width:460px}.max-w-\\[520px\\]{max-width:520px}.translate-y-\\[-4px\\]{--tw-translate-y:-4px;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))}.select-none{user-select:none}.items-start{align-items:flex-start}.justify-start{justify-content:flex-start}.gap-\\[12px\\]{gap:12px}.gap-\\[2px\\]{gap:2px}.\\!rounded-\\[12px\\]{border-radius:12px!important}.rounded-\\[14px\\]{border-radius:14px}.px-\\[12px\\]{padding-left:12px;padding-right:12px}.px-\\[14px\\]{padding-left:14px;padding-right:14px}.py-\\[12px\\]{padding-bottom:12px;padding-top:12px}.\\!pb-0{padding-bottom:0!important}.text-\\[13\\.5px\\]{font-size:13.5px}.leading-\\[1\\.35\\]{line-height:1.35}.text-amber-900\\/90{color:rgba(120,53,15,.9)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fixed{position:fixed}.mt-\\[32px\\]{margin-top:32px}.h-\\[25px\\]{height:25px}.h-\\[50px\\]{height:50px}.h-\\[8px\\]{height:8px}.bg-\\[\\#f6f6f6\\]{--tw-bg-opacity:1;background-color:rgb(246 246 246/var(--tw-bg-opacity,1))}.pt-\\[16px\\]{padding-top:16px}.pt-\\[40px\\]{padding-top:40px}.text-\\[18px\\]{font-size:18px}.font-bold{font-weight:700}.success-card{background-color:#d0e7de;border-color:#a2d0bb;color:#0b3521}.reject-card{background-color:#f7d7d8;border-color:#f2aeb5;color:#58151c}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-auto{pointer-events:auto}.z-\\[999\\]{z-index:999}.h-\\[100dvh\\]{height:100dvh}.w-\\[100dvw\\]{width:100dvw}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-\\[110\\%\\]{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))}.scale-\\[110\\%\\]{--tw-scale-x:110%;--tw-scale-y:110%}.resize{resize:both}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.stroke-\\[1\\.5px\\]{stroke-width:1.5px}.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}}`;
22
+ const vehicleLookupCss = () => `*,: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-scroll-snap-strictness:proximity;--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;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-scroll-snap-strictness:proximity;--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;}: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}.\\!pointer-events-none{pointer-events:none!important}.absolute{position:absolute}.\\!relative{position:relative!important}.relative{position:relative}.left-0{left:0}.top-0{top:0}.z-10{z-index:10}.block{display:block}.flex{display:flex}.hidden{display:none}.size-\\[32px\\]{height:32px;width:32px}.origin-left{transform-origin:left}.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))}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-center{justify-content:center}.\\!overflow-hidden{overflow:hidden!important}.rounded-\\[4px\\]{border-radius:4px}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-\\[\\#e0c97a\\]{--tw-border-opacity:1;border-color:rgb(224 201 122/var(--tw-border-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.text-\\[\\#c08a0e\\]{--tw-text-opacity:1;color:rgb(192 138 14/var(--tw-text-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.shift-skeleton{border-radius:4px;position:relative!important}.loading .shift-skeleton,.loading.shift-skeleton{border-style:none!important;overflow:hidden!important;pointer-events:none!important;position:relative!important}.shift-skeleton:after{background:linear-gradient(-45deg,#d4d8de,#e2e5e9,#d4d8de);background-size:300% 300%;border-radius:inherit!important;content:"";height:100%;left:0;opacity:0;pointer-events:none;position:absolute;top:0;transform-origin:left;transition-duration:.5s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);width:100%;z-index:10}.loading .shift-skeleton:after,.loading.shift-skeleton:after{--tw-scale-x:1;animation:shimmer 2s ease-in-out infinite;opacity:1;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))}@keyframes shimmer{0%{background-position:100% 0}50%{background-position:0 100%}to{background-position:100% 0}}.vehicle-info-container{background-color:#fdfdfd;border:1px solid #dcdcdc;border-radius:5px;box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 hsla(0,0%,100%,.1);overflow:hidden;padding:0;position:relative;transition-duration:.5s;transition-property:all}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#f6f6f6;border-radius:5px;border-top:1px solid #dcdcdc;border-top-left-radius:0;border-top-right-radius:0}::-webkit-scrollbar-thumb{background:#c5c5c5;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.hide-scroll ::-webkit-scrollbar-thumb,.hide-scroll::-webkit-scrollbar-thumb,.loading ::-webkit-scrollbar-thumb{background:transparent}.vehicle-info-body{display:flex;flex-direction:column;overflow:hidden;position:relative;transition-duration:.5s;transition-property:all;transition-timing-function:ease-in-out}.vehicle-info-content{transition-duration:.5s;transition-property:all;width:100%}.vehicle-info-header{align-items:center;background-color:#f6f6f6;border:1px solid #ededed;display:flex;height:54px;justify-content:center;position:relative;text-align:center}.vehicle-info-header-action{align-items:center;display:flex;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.vehicle-info-header-vin{display:inline-block;font-size:16px;transition-duration:.5s;transition-property:all}.vehicle-info-header-vin span{color:#ef4444}.loading .vehicle-info-header-vin{opacity:0;transform:scale(1.5);visibility:hidden}:host{all:initial!important;display:block;font-family:inherit!important;font-family:Noto Kufi Arabic,Nunito,Roboto,Arial,sans-serif!important}.part-lookup,.part-lookup *{font-family:Noto Kufi Arabic,Nunito,Roboto,Arial,sans-serif!important}.trace-trigger-button{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);align-items:center;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));border-color:rgb(224 201 122/var(--tw-border-opacity,1));border-radius:9999px;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:rgb(192 138 14/var(--tw-text-opacity,1));cursor:pointer;display:flex;height:32px;justify-content:center;transition-duration:.2s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);width:32px}.trace-trigger-button:hover{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(252 248 227/var(--tw-bg-opacity,1));border-color:rgb(192 138 14/var(--tw-border-opacity,1));color:rgb(138 109 59/var(--tw-text-opacity,1))}.trace-trigger-button svg{height:18px;width:18px}.hover\\:border-\\[\\#c08a0e\\]:hover{--tw-border-opacity:1;border-color:rgb(192 138 14/var(--tw-border-opacity,1))}.hover\\:bg-\\[\\#fcf8e3\\]:hover{--tw-bg-opacity:1;background-color:rgb(252 248 227/var(--tw-bg-opacity,1))}.hover\\:text-\\[\\#8a6d3b\\]:hover{--tw-text-opacity:1;color:rgb(138 109 59/var(--tw-text-opacity,1))}.static{position:static}.h-\\[200px\\]{height:200px}.w-full{width:100%}.text-\\[26px\\]{font-size:26px}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.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)}.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)}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.z-\\[999\\]{z-index:999}.h-\\[100dvh\\]{height:100dvh}.w-\\[100dvw\\]{width:100dvw}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-\\[110\\%\\]{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))}.scale-\\[110\\%\\]{--tw-scale-x:110%;--tw-scale-y:110%}.resize{resize:both}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.stroke-\\[1\\.5px\\]{stroke-width:1.5px}.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}}`;
23
23
 
24
24
  const componentTags = {
25
25
  vehicleAccessories: 'vehicle-accessories',
@@ -28,10 +28,10 @@ const componentTags = {
28
28
  vehicleServiceHistory: 'vehicle-service-history',
29
29
  vehicleClaimableItems: 'vehicle-claimable-items',
30
30
  vehicleSaleInformation: 'vehicle-sale-information',
31
- vehicleWarrantyDetails: 'vehicle-warranty-details',
32
31
  vehicleWarrantyTimeline: 'vehicle-warranty-timeline',
33
32
  vehicleSsc: 'vehicle-ssc',
34
33
  };
34
+ const hasEntries = (value) => !!value && typeof value === 'object' && Object.keys(value).length > 0;
35
35
  const VehicleLookup = class {
36
36
  constructor(hostRef) {
37
37
  registerInstance(this, hostRef);
@@ -47,9 +47,16 @@ const VehicleLookup = class {
47
47
  this.mockRecaptcha = false;
48
48
  this.disableVinValidation = false;
49
49
  this.queryString = '';
50
+ /**
51
+ * Appended to the SSC tab's own lookup request only — e.g. a logging flag — so that only a search
52
+ * made from the SSC tab counts as a campaign check. A search from any other tab leaves the SSC tab
53
+ * in its "check required" state, which names the VIN and offers to run the check itself. Never
54
+ * joins the panel's trace request: a trace re-reads a lookup that was already logged.
55
+ */
50
56
  this.sscQueryString = '';
51
- this.separateSsc = false;
52
57
  this.hiddenTabs = '';
58
+ /** Name of a [JSInvokable] method on the Blazor reference that answers with the current request headers. */
59
+ this.blazorRequestHeadersProvider = '';
53
60
  this.blazorErrorStateListener = '';
54
61
  this.blazorOnLoadingStateChange = '';
55
62
  this.blazorDynamicClaimActivate = '';
@@ -66,6 +73,18 @@ const VehicleLookup = class {
66
73
  element.setErrorMessage(newErrorMessage);
67
74
  });
68
75
  };
76
+ /**
77
+ * The current headers for a request made on the host's behalf. The host's own provider wins —
78
+ * it can refresh a token before answering — and the headers it passed with the last search are
79
+ * the fallback for hosts that only ever push headers at search time.
80
+ */
81
+ this.resolveRequestHeaders = async () => {
82
+ if (this.requestHeadersProvider)
83
+ return await this.requestHeadersProvider();
84
+ if (this.blazorRef && this.blazorRequestHeadersProvider)
85
+ return await this.blazorRef.invokeMethodAsync(this.blazorRequestHeadersProvider);
86
+ return this.lastRequestHeaders;
87
+ };
69
88
  this.loadingStateChangingMiddleware = (newState) => {
70
89
  this.isLoading = newState;
71
90
  if (this.loadingStateChanged)
@@ -85,31 +104,31 @@ const VehicleLookup = class {
85
104
  const vehicleAccessories = this.el.shadowRoot.getElementById('vehicle-accessories');
86
105
  const vehicleClaim = this.el.shadowRoot.getElementById('vehicle-claimable-items');
87
106
  const vehicleHistory = this.el.shadowRoot.getElementById('vehicle-service-history');
88
- const vehicleDetails = this.el.shadowRoot.getElementById('vehicle-warranty-details');
89
107
  const vehicleTimeline = this.el.shadowRoot.getElementById('vehicle-warranty-timeline');
90
108
  const vehicleThickness = this.el.shadowRoot.getElementById('vehicle-paint-thickness');
91
109
  const vehicleSpecification = this.el.shadowRoot.getElementById('vehicle-specification');
92
110
  const vehicleSaleInformation = this.el.shadowRoot.getElementById('vehicle-sale-information');
93
- const vehicleSsc = this.separateSsc ? this.el.shadowRoot.getElementById('vehicle-ssc') : null;
111
+ const vehicleSsc = this.el.shadowRoot.getElementById('vehicle-ssc');
94
112
  this.componentsList = {
95
113
  [componentTags.vehicleClaimableItems]: vehicleClaim,
96
114
  [componentTags.vehicleServiceHistory]: vehicleHistory,
97
- [componentTags.vehicleWarrantyDetails]: vehicleDetails,
98
115
  [componentTags.vehicleWarrantyTimeline]: vehicleTimeline,
99
116
  [componentTags.vehicleAccessories]: vehicleAccessories,
100
117
  [componentTags.vehiclePaintThickness]: vehicleThickness,
101
118
  [componentTags.vehicleSpecification]: vehicleSpecification,
102
119
  [componentTags.vehicleSaleInformation]: vehicleSaleInformation,
120
+ [componentTags.vehicleSsc]: vehicleSsc,
103
121
  };
104
- if (vehicleSsc) {
105
- this.componentsList[componentTags.vehicleSsc] = vehicleSsc;
106
- }
107
122
  Object.values(this.componentsList).forEach(element => {
108
123
  if (!element)
109
124
  return;
110
125
  element.errorCallback = this.syncErrorAcrossComponents;
111
126
  element.loadingStateChange = this.loadingStateChangingMiddleware;
112
127
  element.loadedResponse = newResponse => this.handleLoadData(newResponse, element);
128
+ // Every child asks the wrapper, and the wrapper asks the host, so a token refreshed for one
129
+ // request is refreshed for all of them. Only the children that make follow-up requests of
130
+ // their own declare the prop; on the others this is an inert expando.
131
+ element.requestHeadersProvider = this.resolveRequestHeaders;
113
132
  });
114
133
  if (vehicleClaim && this.dynamicClaimActivate) {
115
134
  vehicleClaim.activate = this.dynamicClaimActivate;
@@ -137,11 +156,6 @@ const VehicleLookup = class {
137
156
  element.setMockData(mockData);
138
157
  });
139
158
  }
140
- getSscElement() {
141
- if (this.separateSsc)
142
- return this.componentsList[componentTags.vehicleSsc] || null;
143
- return this.componentsList[componentTags.vehicleWarrantyDetails] || null;
144
- }
145
159
  async handleLoadData(newResponse, activeElement) {
146
160
  const generation = this.searchGeneration;
147
161
  this.isError = false;
@@ -150,24 +164,18 @@ const VehicleLookup = class {
150
164
  // Skip distributing to non-active components if a new search has started
151
165
  if (generation !== this.searchGeneration)
152
166
  return;
153
- const sscElement = this.sscQueryString ? this.getSscElement() : null;
154
- // Only clear SSC when we know the search came from a specific non-SSC tab.
167
+ const sscElement = this.sscQueryString ? this.componentsList[componentTags.vehicleSsc] || null : null;
168
+ // Only skip SSC when we know the search came from a specific non-SSC tab.
155
169
  // When activeElement is null (programmatic data injection), distribute to all components.
156
- const shouldClearSsc = sscElement && activeElement !== null && activeElement !== sscElement;
170
+ const shouldSkipSsc = sscElement && activeElement !== null && activeElement !== sscElement;
157
171
  Object.values(this.componentsList).forEach(element => {
158
172
  if (element === null || element === activeElement || !newResponse)
159
173
  return;
160
- // When sscQueryString is set, clear SSC data on the SSC-showing component
161
- // if the search was triggered from a non-SSC tab (prevents viewing SSC without logging)
162
- if (shouldClearSsc && element === sscElement) {
163
- if (this.separateSsc) {
164
- // SSC-only component: reset to empty state
165
- element.clearData();
166
- }
167
- else {
168
- // Combined warranty+SSC: distribute data with SSC stripped
169
- element.fetchVin(Object.assign(Object.assign({}, newResponse), { ssc: [], sscLogId: null }));
170
- }
174
+ // When sscQueryString is set, the SSC tab's own request is the logged one. A search from any
175
+ // other tab must not show campaigns that were never logged as looked up — but a blank SSC tab
176
+ // would read as "no campaigns", so the tab is told the check was skipped and offers to run it.
177
+ if (shouldSkipSsc && element === sscElement) {
178
+ void element.skipLookup(newResponse.vin || '');
171
179
  return;
172
180
  }
173
181
  element.fetchVin(newResponse);
@@ -184,11 +192,15 @@ const VehicleLookup = class {
184
192
  }
185
193
  async fetchVin(vin, headers = {}) {
186
194
  const activeElement = this.componentsList[this.activeElement] || null;
187
- this.componentsList[componentTags.vehicleClaimableItems].headers = headers;
195
+ // A host that supplies a provider may search without passing headers at all; the child still
196
+ // receives explicit headers, so every panel behaves the same whichever way the host works.
197
+ const resolvedHeaders = hasEntries(headers) ? headers : await this.resolveRequestHeaders();
198
+ if (hasEntries(resolvedHeaders))
199
+ this.lastRequestHeaders = resolvedHeaders;
188
200
  if (!activeElement)
189
201
  return;
190
202
  this.searchGeneration++;
191
- activeElement.fetchVin(vin, headers);
203
+ activeElement.fetchVin(vin, resolvedHeaders || {});
192
204
  }
193
205
  // #endregion
194
206
  render() {
@@ -199,7 +211,6 @@ const VehicleLookup = class {
199
211
  [componentTags.vehicleClaimableItems]: {},
200
212
  [componentTags.vehiclePaintThickness]: {},
201
213
  [componentTags.vehicleServiceHistory]: {},
202
- [componentTags.vehicleWarrantyDetails]: {},
203
214
  [componentTags.vehicleWarrantyTimeline]: {},
204
215
  [componentTags.vehicleSaleInformation]: {},
205
216
  [componentTags.vehicleSsc]: {},
@@ -226,11 +237,16 @@ const VehicleLookup = class {
226
237
  .filter(Boolean));
227
238
  if (!Object.values(componentTags).includes(this.activeElement) || hiddenSet.has(this.activeElement))
228
239
  return h("div", { class: "w-full h-[200px] text-[26px] text-red-600 flex items-center justify-center" }, "Invalid tag");
229
- const allComponents = Object.assign(Object.assign({ 'vehicle-specification': (h("vehicle-specification", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleSpecification }, props[componentTags.vehicleSpecification]))), 'vehicle-accessories': (h("vehicle-accessories", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleAccessories }, props[componentTags.vehicleAccessories]))), 'vehicle-sale-information': (h("vehicle-sale-information", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleSaleInformation }, props[componentTags.vehicleSaleInformation]))), 'vehicle-warranty-details': (h("vehicle-warranty-details", Object.assign({ coreOnly: true, "show-ssc": !this.separateSsc, isDev: this.isDev, mockRecaptcha: this.mockRecaptcha, disableVinValidation: this.disableVinValidation, "show-warranty": "true", "base-url": this.baseUrl, language: this.language, "query-string": !this.separateSsc && this.sscQueryString ? [this.queryString, this.sscQueryString].filter(Boolean).join('&') : this.queryString, id: componentTags.vehicleWarrantyDetails }, props[componentTags.vehicleWarrantyDetails]))), 'vehicle-warranty-timeline': (h("vehicle-warranty-timeline", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleWarrantyTimeline }, props[componentTags.vehicleWarrantyTimeline]))) }, (this.separateSsc
230
- ? {
231
- 'vehicle-ssc': (h("vehicle-warranty-details", Object.assign({ coreOnly: true, "show-ssc": "true", isDev: this.isDev, mockRecaptcha: this.mockRecaptcha, disableVinValidation: this.disableVinValidation, "show-warranty": "false", "base-url": this.baseUrl, language: this.language, "query-string": [this.queryString, this.sscQueryString].filter(Boolean).join('&'), id: componentTags.vehicleSsc }, props[componentTags.vehicleSsc]))),
232
- }
233
- : {})), { 'vehicle-service-history': (h("vehicle-service-history", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleServiceHistory }, props[componentTags.vehicleServiceHistory]))), 'vehicle-paint-thickness': (h("vehicle-paint-thickness", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehiclePaintThickness }, props[componentTags.vehiclePaintThickness]))), 'vehicle-claimable-items': (h("vehicle-claimable-items", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleClaimableItems }, props[componentTags.vehicleClaimableItems]))) });
240
+ const allComponents = {
241
+ 'vehicle-specification': (h("vehicle-specification", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleSpecification }, props[componentTags.vehicleSpecification]))),
242
+ 'vehicle-accessories': (h("vehicle-accessories", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleAccessories }, props[componentTags.vehicleAccessories]))),
243
+ 'vehicle-sale-information': (h("vehicle-sale-information", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleSaleInformation }, props[componentTags.vehicleSaleInformation]))),
244
+ 'vehicle-warranty-timeline': (h("vehicle-warranty-timeline", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleWarrantyTimeline }, props[componentTags.vehicleWarrantyTimeline]))),
245
+ 'vehicle-ssc': (h("vehicle-ssc", Object.assign({ coreOnly: true, isDev: this.isDev, mockRecaptcha: this.mockRecaptcha, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, "lookup-query-string": this.sscQueryString, id: componentTags.vehicleSsc }, props[componentTags.vehicleSsc]))),
246
+ 'vehicle-service-history': (h("vehicle-service-history", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleServiceHistory }, props[componentTags.vehicleServiceHistory]))),
247
+ 'vehicle-paint-thickness': (h("vehicle-paint-thickness", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehiclePaintThickness }, props[componentTags.vehiclePaintThickness]))),
248
+ 'vehicle-claimable-items': (h("vehicle-claimable-items", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleClaimableItems }, props[componentTags.vehicleClaimableItems]))),
249
+ };
234
250
  const componentList = Object.fromEntries(Object.entries(allComponents).filter(([key]) => !hiddenSet.has(key)));
235
251
  const claimableProps = props[componentTags.vehicleClaimableItems];
236
252
  const showClaimableTrace = this.activeElement === componentTags.vehicleClaimableItems &&
@@ -6,9 +6,9 @@ import { h, r as registerInstance, H as Host, g as getElement } from './index-Ct
6
6
  import { L as LoaderIcon } from './loader-icon-BvAmA41s.js';
7
7
  import { c as cn } from './cn-BK16Cn81.js';
8
8
  import { c as create$3, b as create$6, s as sharedFormLocalesSchema } from './types-BDhR4pDq.js';
9
- import { a as formLanguageChange, b as formLoadingHandler, c as formErrorHandler, d as formSuccessHandler, g as getMarketingValues, e as formDidLoadHandler, h as formGetFormHandler, i as handleFormSubmit, j as formStructureRenderedHandler, r as resolveIsMobileForm } from './functions-DSwc1YVL.js';
9
+ import { a as formLanguageChange, b as formLoadingHandler, c as formErrorHandler, d as formSuccessHandler, g as getMarketingValues, e as formDidLoadHandler, h as formGetFormHandler, i as handleFormSubmit, j as formStructureRenderedHandler, r as resolveIsMobileForm } from './functions-SHZO3nZB.js';
10
10
  import { g as getLanguageFromUrl } from './get-language-from-url-fV-K15uy.js';
11
- import './get-local-language-DdSAPSCV.js';
11
+ import './get-local-language-BLpgwBTx.js';
12
12
 
13
13
  const cachedImages = {};
14
14
  const cacheImage = (form, imSrc, id) => {
@@ -415,9 +415,9 @@ const VehicleQuotationForm = class {
415
415
  // #endregion
416
416
  render() {
417
417
  var _a, _b;
418
- return (h(Host, { key: 'c9a754e3789ee2ce1c541e86fc255b65d2d40498', translate: "no" }, h("div", { key: 'e023af71807bf106d79c6cc4c09bbc5945eaea5f', part: `shift-form vehicle-quotation-${(_b = (_a = this.structure) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.theme}` }, h("div", { key: '22682976fbe1c28a310a4bd24787af5a11f8d087', part: "form-container", class: "relative min-h-[150px]" }, h("div", { key: 'c1cfd2496535d21e77a04f8c23db446fe8787938', 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', {
418
+ return (h(Host, { key: '76c6d2fba843f5acbf06e9810d9cddb4df30adbc', translate: "no" }, h("div", { key: 'f716f9baa4d6aa35d6c22d0df278de2e597dd44d', part: `shift-form vehicle-quotation-${(_b = (_a = this.structure) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.theme}` }, h("div", { key: '740565700b27cddeedb5f4247fe3284b5c192727', part: "form-container", class: "relative min-h-[150px]" }, h("div", { key: '52d5ac47878650a3113fa06ccb68ef549afea15d', 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', {
419
419
  'opacity-0': this.structureRendered,
420
- }) }, h(LoaderIcon, { key: '3ee1070f6dba8c8dd7b698dd10ab0431d5a727b4', part: "form-loader-icon", class: "img" })), h("flexible-container", { key: 'c44879c8093d163aace591e463b1d59ec85e1c1b', onlyForMounting: true, isOpened: this.structureRendered }, !!this.form && (h("form-structure", { key: 'd90b33502d009016e34520b3e5ef83cba9d44fe6', 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: vehicleQuotationElements, successMessage: this.locale['Form submitted successfully.'] }, h("slot", { key: '11f33853ca17f03e164e5c14db9746b96472b8b8' }))))))));
420
+ }) }, h(LoaderIcon, { key: '8999a13e6be3a38f6a0389408d964849c15a23f9', part: "form-loader-icon", class: "img" })), h("flexible-container", { key: '3ca4477df9b07efccf671cb5be2d641a32f878e2', onlyForMounting: true, isOpened: this.structureRendered }, !!this.form && (h("form-structure", { key: '5a694ea916830b0fb4f58cd0fdba3bbe94280e76', 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: vehicleQuotationElements, successMessage: this.locale['Form submitted successfully.'] }, h("slot", { key: 'bdd5f5afa84aac180b79f0da015fed54ddddd27f' }))))))));
421
421
  }
422
422
  get el() { return getElement(this); }
423
423
  static get watchers() { return {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "package": "adp-web-components",
4
- "packageVersion": "0.3.20",
4
+ "packageVersion": "0.4.0",
5
5
  "outputFamily": "per-component",
6
6
  "components": [
7
7
  {
@@ -10,7 +10,7 @@
10
10
  "wireContract": "adp.vehicle-lookup.v1",
11
11
  "supportedLocales": ["en", "ar", "ku", "ru"],
12
12
  "host": {
13
- "properties": ["activeElement", "baseUrl", "childrenProps", "disableVinValidation", "hiddenTabs", "language", "queryString", "separateSsc"],
13
+ "properties": ["activeElement", "baseUrl", "childrenProps", "disableVinValidation", "hiddenTabs", "language", "queryString", "sscQueryString"],
14
14
  "methods": ["fetchVin"],
15
15
  "sequence": ["load module", "wait for custom element definition", "set properties", "call a documented method"],
16
16
  "owns": ["vehicle lookup request", "response distribution to child components", "active child rendering"]
@@ -20,7 +20,7 @@
20
20
  {
21
21
  "name": "activeElement",
22
22
  "attribute": "active-element",
23
- "type": "\"\" | \"vehicle-accessories\" | \"vehicle-claimable-items\" | \"vehicle-paint-thickness\" | \"vehicle-sale-information\" | \"vehicle-service-history\" | \"vehicle-specification\" | \"vehicle-ssc\" | \"vehicle-warranty-details\" | \"vehicle-warranty-timeline\"",
23
+ "type": "\"\" | \"vehicle-accessories\" | \"vehicle-claimable-items\" | \"vehicle-paint-thickness\" | \"vehicle-sale-information\" | \"vehicle-service-history\" | \"vehicle-specification\" | \"vehicle-ssc\" | \"vehicle-warranty-timeline\"",
24
24
  "default": null,
25
25
  "mutable": false,
26
26
  "required": false
@@ -29,6 +29,7 @@
29
29
  { "name": "blazorDynamicClaimActivate", "attribute": "blazor-dynamic-claim-activate", "type": "string", "default": null, "mutable": false, "required": false },
30
30
  { "name": "blazorErrorStateListener", "attribute": "blazor-error-state-listener", "type": "string", "default": null, "mutable": false, "required": false },
31
31
  { "name": "blazorOnLoadingStateChange", "attribute": "blazor-on-loading-state-change", "type": "string", "default": null, "mutable": false, "required": false },
32
+ { "name": "blazorRequestHeadersProvider", "attribute": "blazor-request-headers-provider", "type": "string", "default": null, "mutable": false, "required": false },
32
33
  { "name": "childrenProps", "attribute": "children-props", "type": "object | string", "default": null, "mutable": false, "required": false },
33
34
  { "name": "disableVinValidation", "attribute": "disable-vin-validation", "type": "boolean", "default": null, "mutable": false, "required": false },
34
35
  { "name": "dynamicClaimActivate", "type": "(vehicleInformation: VehicleLookupDTO) => void", "default": null, "mutable": false, "required": false },
@@ -40,7 +41,7 @@
40
41
  { "name": "mockRecaptcha", "attribute": "mock-recaptcha", "type": "boolean", "default": null, "mutable": false, "required": false },
41
42
  { "name": "mockUrl", "attribute": "mock-url", "type": "string", "default": null, "mutable": false, "required": false },
42
43
  { "name": "queryString", "attribute": "query-string", "type": "string", "default": null, "mutable": false, "required": false },
43
- { "name": "separateSsc", "attribute": "separate-ssc", "type": "boolean", "default": null, "mutable": false, "required": false },
44
+ { "name": "requestHeadersProvider", "type": "() => object | Promise<object>", "default": null, "mutable": false, "required": false },
44
45
  { "name": "sscQueryString", "attribute": "ssc-query-string", "type": "string", "default": null, "mutable": false, "required": false }
45
46
  ],
46
47
  "methods": [
@@ -53,15 +54,21 @@
53
54
  "vehicle-specification",
54
55
  "vehicle-accessories",
55
56
  "vehicle-sale-information",
56
- "vehicle-warranty-details",
57
57
  "vehicle-warranty-timeline",
58
+ "vehicle-ssc",
58
59
  "vehicle-service-history",
59
60
  "vehicle-paint-thickness",
60
61
  "vehicle-claimable-items",
61
62
  "shift-tab-content"
62
63
  ]
63
64
  },
64
- "runtimeAssets": { "locales": "dist/locales", "notes": ["The host owns tab navigation and selects the activeElement."] }
65
+ "runtimeAssets": {
66
+ "locales": "dist/locales",
67
+ "notes": [
68
+ "The host owns tab navigation and selects the activeElement.",
69
+ "With sscQueryString set, only a search made from the SSC tab counts as a campaign check; a search from another tab leaves the SSC tab saying the check was not run, with a control to run it. It reaches vehicle-ssc as lookupQueryString, so it never joins a trace request."
70
+ ]
71
+ }
65
72
  },
66
73
  {
67
74
  "tag": "vehicle-specification",
@@ -346,19 +353,20 @@
346
353
  "runtimeAssets": { "locales": "dist/locales", "notes": [] }
347
354
  },
348
355
  {
349
- "tag": "vehicle-warranty-details",
350
- "modulePath": "dist/components/vehicle-warranty-details.js",
351
- "wireContract": "adp.vehicle-warranty-details.v1",
356
+ "tag": "vehicle-ssc",
357
+ "modulePath": "dist/components/vehicle-ssc.js",
358
+ "wireContract": "adp.vehicle-ssc.v1",
352
359
  "supportedLocales": ["en", "ar", "ku", "ru"],
353
360
  "host": {
354
- "properties": ["baseUrl", "language", "coreOnly", "disableVinValidation", "queryString", "showSsc", "showWarranty"],
361
+ "properties": ["baseUrl", "language", "coreOnly", "disableVinValidation", "queryString", "lookupQueryString", "showTrace"],
355
362
  "methods": ["fetchVin"],
356
363
  "sequence": ["load module", "wait for custom element definition", "set properties", "call a documented method"],
357
- "owns": ["lookup request", "response handling", "loading and error state", "warranty and campaign rendering"]
364
+ "owns": ["lookup request", "response handling", "loading and error state", "campaign rendering", "repair-status trace fetch"]
358
365
  },
359
366
  "api": {
360
367
  "props": [
361
368
  { "name": "baseUrl", "attribute": "base-url", "type": "string", "default": null, "mutable": false, "required": false },
369
+ { "name": "blazorRequestHeadersProvider", "attribute": "blazor-request-headers-provider", "type": "string", "default": null, "mutable": false, "required": false },
362
370
  { "name": "brandIntegrationId", "attribute": "brand-integration-id", "type": "string", "default": null, "mutable": false, "required": false },
363
371
  { "name": "cityId", "attribute": "city-id", "type": "string", "default": null, "mutable": false, "required": false },
364
372
  { "name": "cityIntegrationId", "attribute": "city-integration-id", "type": "string", "default": null, "mutable": false, "required": false },
@@ -398,11 +406,12 @@
398
406
  "mutable": false,
399
407
  "required": false
400
408
  },
409
+ { "name": "lookupQueryString", "attribute": "lookup-query-string", "type": "string", "default": null, "mutable": false, "required": false },
401
410
  { "name": "mockRecaptcha", "attribute": "mock-recaptcha", "type": "boolean", "default": null, "mutable": false, "required": false },
402
411
  { "name": "queryString", "attribute": "query-string", "type": "string", "default": null, "mutable": false, "required": false },
403
412
  { "name": "recaptchaKey", "attribute": "recaptcha-key", "type": "string", "default": null, "mutable": false, "required": false },
404
- { "name": "showSsc", "attribute": "show-ssc", "type": "boolean", "default": null, "mutable": false, "required": false },
405
- { "name": "showWarranty", "attribute": "show-warranty", "type": "boolean", "default": null, "mutable": false, "required": false },
413
+ { "name": "requestHeadersProvider", "type": "() => object | Promise<object>", "default": null, "mutable": false, "required": false },
414
+ { "name": "showTrace", "attribute": "show-trace", "type": "boolean", "default": null, "mutable": false, "required": false },
406
415
  { "name": "unauthorizedSscLookupBaseUrl", "attribute": "unauthorized-ssc-lookup-base-url", "type": "string", "default": null, "mutable": false, "required": false },
407
416
  {
408
417
  "name": "unauthorizedSscLookupQueryString",
@@ -427,12 +436,22 @@
427
436
  { "name": "fetchVin", "parameters": "(newData: VehicleLookupDTO | string, headers?: any) => Promise<void>", "returns": "Promise<void>" },
428
437
  { "name": "setBlazorRef", "parameters": "(newBlazorRef: DotNetObjectReference) => Promise<void>", "returns": "Promise<void>" },
429
438
  { "name": "setErrorMessage", "parameters": "(message: ErrorKeys) => Promise<void>", "returns": "Promise<void>" },
430
- { "name": "setMockData", "parameters": "(newMockData: VehicleLookupMock) => Promise<void>", "returns": "Promise<void>" }
439
+ { "name": "setMockData", "parameters": "(newMockData: VehicleLookupMock) => Promise<void>", "returns": "Promise<void>" },
440
+ { "name": "skipLookup", "parameters": "(vin: string) => Promise<void>", "returns": "Promise<void>" }
431
441
  ],
432
442
  "events": [],
433
- "dependencies": ["flexible-container", "loading-spinner", "information-table"]
443
+ "dependencies": []
434
444
  },
435
- "runtimeAssets": { "locales": "dist/locales", "notes": ["Unauthorized campaign lookup and reCAPTCHA configuration are host policy and remain optional raw API properties."] }
445
+ "runtimeAssets": {
446
+ "locales": "dist/locales",
447
+ "notes": [
448
+ "Replaces the campaign half of the retired vehicle-warranty-details; warranty coverage is vehicle-warranty-timeline.",
449
+ "Unauthorized campaign lookup and reCAPTCHA configuration are host policy and remain optional raw API properties.",
450
+ "showTrace exposes claim and invoice details per campaign; the host gates it on its own permission check and its endpoint must honour ?trace=ssc.",
451
+ "A lookup-logging flag belongs in lookupQueryString, which joins the lookup request only: the trace request re-reads a lookup already logged and never carries it. The host endpoint must refuse to log traced requests as well (the ADP lookup service does).",
452
+ "Opening a campaign's evidence brings its row to the top of the page and follows the page while the drawer opens; a host whose fixed header covers the top of the page sets scroll-padding-top on its scroll container."
453
+ ]
454
+ }
436
455
  },
437
456
  {
438
457
  "tag": "vehicle-warranty-timeline",
@@ -489,13 +508,7 @@
489
508
  "events": [],
490
509
  "dependencies": []
491
510
  },
492
- "runtimeAssets": {
493
- "locales": "dist/locales",
494
- "notes": [
495
- "Warranty coverage only. Campaign rendering, reCAPTCHA and unauthorized campaign lookup are not part of this component; hosts that need them keep vehicle-warranty-details.",
496
- "Adopted by pointing a host tab at this tag instead of vehicle-warranty-details. The two can coexist in one deployment."
497
- ]
498
- }
511
+ "runtimeAssets": { "locales": "dist/locales", "notes": ["Warranty coverage only. Campaign rendering, reCAPTCHA and unauthorized campaign lookup belong to vehicle-ssc."] }
499
512
  },
500
513
  {
501
514
  "tag": "vehicle-claimable-items",
@@ -512,6 +525,7 @@
512
525
  "props": [
513
526
  { "name": "activate", "type": "(vehicleInformation: VehicleLookupDTO) => void", "default": null, "mutable": false, "required": false },
514
527
  { "name": "baseUrl", "attribute": "base-url", "type": "string", "default": null, "mutable": false, "required": false },
528
+ { "name": "blazorRequestHeadersProvider", "attribute": "blazor-request-headers-provider", "type": "string", "default": null, "mutable": false, "required": false },
515
529
  { "name": "claimEndPoint", "attribute": "claim-end-point", "type": "string", "default": null, "mutable": false, "required": false },
516
530
  { "name": "coreOnly", "attribute": "core-only", "type": "boolean", "default": null, "mutable": false, "required": false },
517
531
  { "name": "disableVinValidation", "attribute": "disable-vin-validation", "type": "boolean", "default": null, "mutable": false, "required": false },
@@ -545,6 +559,7 @@
545
559
  { "name": "maximumDocumentFileSizeInMb", "attribute": "maximum-document-file-size-in-mb", "type": "number", "default": null, "mutable": false, "required": false },
546
560
  { "name": "print", "type": "(claimResponse: any) => void", "default": null, "mutable": false, "required": false },
547
561
  { "name": "queryString", "attribute": "query-string", "type": "string", "default": null, "mutable": false, "required": false },
562
+ { "name": "requestHeadersProvider", "type": "() => object | Promise<object>", "default": null, "mutable": false, "required": false },
548
563
  { "name": "showTrace", "attribute": "show-trace", "type": "boolean", "default": null, "mutable": false, "required": false },
549
564
  {
550
565
  "name": "uploadMultipleDocumentsAtTheForm",
@@ -0,0 +1,64 @@
1
+ {
2
+ "title": "حملات الخدمة الخاصة",
3
+ "open": "مفتوحة",
4
+ "repaired": "تم الإصلاح",
5
+ "noCampaigns": "لا توجد حملة خدمة خاصة تشمل هذه المركبة.",
6
+ "code": "الحملة",
7
+ "description": "الوصف",
8
+ "status": "حالة الإصلاح",
9
+ "laborCodes": "أكواد العمل",
10
+ "parts": "القطع",
11
+ "sourceSSCRecord": "بحسب سجل الحملة",
12
+ "sourceWarrantyClaim": "بحسب مطالبة الضمان",
13
+ "sourceServiceHistory": "بحسب سجل الخدمة",
14
+ "partAvailable": "متوفر في المخزون",
15
+ "partUnavailable": "غير متوفر في المخزون",
16
+ "partNotChecked": "لم يتم التحقق من التوفر",
17
+ "unauthorizedCheck": "هذه المركبة غير موجودة في سجلات الموزع. أكمل التحقق أدناه للاستعلام من الشركة المصنعة.",
18
+ "checkingTMC": "جارٍ التحقق لدى الشركة المصنعة…",
19
+ "recallExists": "هذه المركبة لديها حملة معلقة.",
20
+ "noRecall": "لا توجد حملة معلقة.",
21
+ "noApplicableVehicleFound": "لم يتم العثور على المركبة.",
22
+ "pendingCampaign": "حملة معلقة",
23
+ "noPendingCampaign": "لا توجد حملة معلقة",
24
+ "notInRecords": "غير موجودة في سجلات الموزع",
25
+ "vehicleNotFound": "المركبة غير موجودة",
26
+ "unauthorizedNoCheck": "هذه المركبة غير موجودة في سجلات الموزع، لذا لا يمكن عرض حملاتها هنا.",
27
+ "campaignList": "الحملات",
28
+ "skipped": "الفحص مطلوب",
29
+ "skippedNotice": "لم يتم فحص حملات السلامة لهذه المركبة. قم بإجراء الفحص قبل المتابعة.",
30
+ "runCheck": "افحص الحملات الآن",
31
+ "viewTrace": "لماذا هذه الحالة؟",
32
+ "hideTrace": "إخفاء الأدلة",
33
+ "traceTitle": "كيف تم تحديد هذه الحالة",
34
+ "traceLoading": "جارٍ تحميل الأدلة…",
35
+ "traceFailed": "تعذر تحميل الأدلة.",
36
+ "traceUnavailable": "لا يتوفر تتبع للأدلة لهذه الحملة.",
37
+ "traceOrder": "يتم فحص ثلاثة مصادر بالترتيب. أول مصدر يتحقق يحدد الحالة وتاريخ الإصلاح.",
38
+ "traceRecord": "سجل الحملة",
39
+ "traceRecordDate": "تاريخ الإصلاح في السجل",
40
+ "traceRecordNone": "لا يحمل السجل تاريخ إصلاح.",
41
+ "traceCodes": "أكواد العمل المقبولة",
42
+ "traceCampaignCode": "كود الحملة",
43
+ "traceInterchangeableWith": "قابل للتبادل مع",
44
+ "traceClaims": "مطالبات الضمان",
45
+ "traceClaimsNone": "لا توجد مطالبات ضمان لهذه المركبة.",
46
+ "traceClaim": "المطالبة",
47
+ "traceCompleted": "اكتملت",
48
+ "traceStatusQualifies": "تُحتسب دليلاً",
49
+ "traceStatusNotQualifies": "لا تُحتسب دليلاً",
50
+ "traceCampaignInComment": "تم العثور على كود الحملة في تعليق الموزع",
51
+ "traceMatchedCode": "كود العمل",
52
+ "traceNoReference": "لا يشير إلى هذه الحملة",
53
+ "traceDecided": "حدد الحالة",
54
+ "traceHistory": "سجل الخدمة",
55
+ "traceLinesExamined": "بند عمل تم فحصها",
56
+ "traceLinesMatched": "تحمل كود عمل للحملة",
57
+ "traceHistoryNone": "لا يحمل أي بند عمل في سجل الخدمة كود عمل للحملة.",
58
+ "traceInvoice": "الفاتورة",
59
+ "traceInvoiceStatus": "حالة الفاتورة",
60
+ "traceVerdictOpen": "لم يتم العثور على دليل مؤهل، لذا لا تزال الحملة مفتوحة.",
61
+ "traceVerdictSSCRecord": "تم الإصلاح بحسب سجل الحملة.",
62
+ "traceVerdictWarrantyClaim": "تم الإصلاح بحسب مطالبة ضمان.",
63
+ "traceVerdictServiceHistory": "تم الإصلاح بحسب سجل الخدمة."
64
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "title": "Special Service Campaigns",
3
+ "open": "Open",
4
+ "repaired": "Repaired",
5
+ "noCampaigns": "No special service campaign affects this vehicle.",
6
+ "code": "Campaign",
7
+ "description": "Description",
8
+ "status": "Repair status",
9
+ "laborCodes": "Labor codes",
10
+ "parts": "Parts",
11
+ "sourceSSCRecord": "per campaign record",
12
+ "sourceWarrantyClaim": "per warranty claim",
13
+ "sourceServiceHistory": "per service history",
14
+ "partAvailable": "In stock",
15
+ "partUnavailable": "Not in stock",
16
+ "partNotChecked": "Availability not checked",
17
+ "unauthorizedCheck": "This vehicle is not in the distributor's records. Complete the check below to query the manufacturer.",
18
+ "checkingTMC": "Checking with the manufacturer…",
19
+ "recallExists": "This vehicle has a pending campaign.",
20
+ "noRecall": "No pending campaign.",
21
+ "noApplicableVehicleFound": "Vehicle not found.",
22
+ "pendingCampaign": "Pending campaign",
23
+ "noPendingCampaign": "No pending campaign",
24
+ "notInRecords": "Not in distributor records",
25
+ "vehicleNotFound": "Vehicle not found",
26
+ "unauthorizedNoCheck": "This vehicle is not in the distributor's records, so its campaigns cannot be listed here.",
27
+ "campaignList": "Campaigns",
28
+ "skipped": "Check required",
29
+ "skippedNotice": "This vehicle’s safety campaigns have not been checked. Run the check before going any further.",
30
+ "runCheck": "Check campaigns now",
31
+ "viewTrace": "Why this status?",
32
+ "hideTrace": "Hide the evidence",
33
+ "traceTitle": "How this status was decided",
34
+ "traceLoading": "Loading the evidence…",
35
+ "traceFailed": "The evidence could not be loaded.",
36
+ "traceUnavailable": "No evidence trace is available for this campaign.",
37
+ "traceOrder": "Three sources are checked in order. The first one that holds decides the status and the repair date.",
38
+ "traceRecord": "Campaign record",
39
+ "traceRecordDate": "Repair date on the record",
40
+ "traceRecordNone": "The record carries no repair date.",
41
+ "traceCodes": "Accepted labor codes",
42
+ "traceCampaignCode": "campaign code",
43
+ "traceInterchangeableWith": "interchangeable with",
44
+ "traceClaims": "Warranty claims",
45
+ "traceClaimsNone": "No warranty claims on this vehicle.",
46
+ "traceClaim": "Claim",
47
+ "traceCompleted": "Completed",
48
+ "traceStatusQualifies": "counts as evidence",
49
+ "traceStatusNotQualifies": "does not count as evidence",
50
+ "traceCampaignInComment": "Campaign code found in the distributor comment",
51
+ "traceMatchedCode": "Labor code",
52
+ "traceNoReference": "Does not reference this campaign",
53
+ "traceDecided": "Decided the status",
54
+ "traceHistory": "Service history",
55
+ "traceLinesExamined": "labor lines examined",
56
+ "traceLinesMatched": "carry a campaign labor code",
57
+ "traceHistoryNone": "No service-history labor line carries a campaign labor code.",
58
+ "traceInvoice": "Invoice",
59
+ "traceInvoiceStatus": "Invoice status",
60
+ "traceVerdictOpen": "No qualifying evidence was found, so the campaign is still open.",
61
+ "traceVerdictSSCRecord": "Repaired according to the campaign record.",
62
+ "traceVerdictWarrantyClaim": "Repaired according to a warranty claim.",
63
+ "traceVerdictServiceHistory": "Repaired according to the service history."
64
+ }