adp-web-components 0.3.13 → 0.3.15
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.
- package/dist/cjs/{add-icon-BaoMAIgg.js → add-icon-BklgM02f.js} +1 -1
- package/dist/cjs/{app-globals-DBRBLgev.js → app-globals-XGpRBTr6.js} +1 -1
- package/dist/cjs/{arrow-icon-CJX1aUJ8.js → arrow-icon-yMlETDbD.js} +1 -1
- package/dist/cjs/{arrow-up-icon-B3Z5Myqt.js → arrow-up-icon-BLo1aQC2.js} +1 -1
- package/dist/cjs/{form-dialog_13.cjs.entry.js → branch-slot-dropdown_15.cjs.entry.js} +578 -41
- package/dist/cjs/{calendar-days-icon-CsHz2cgV.js → calendar-days-icon-Cf14ROXV.js} +1 -1
- package/dist/cjs/{check-icon-CqTKjw2o.js → check-icon-DaQxP2EY.js} +1 -1
- package/dist/cjs/dead-stock-lookup_3.cjs.entry.js +11 -11
- package/dist/cjs/{decode-time-offset-DOSaziv5.js → decode-time-offset-DOUImlif.js} +1 -1
- package/dist/cjs/flexible-container.cjs.entry.js +4 -4
- package/dist/cjs/form-checkbox.cjs.entry.js +6 -6
- package/dist/cjs/form-date-picker.cjs.entry.js +8 -8
- package/dist/cjs/{form-error-message-K-KI154V.js → form-error-message-BtLdHgxO.js} +1 -1
- package/dist/cjs/{form-input-PYkIVe7J.js → form-input-BBY_3Qk7.js} +8 -6
- package/dist/cjs/{form-input-label-uhneFYXO.js → form-input-label-B4lkF89K.js} +1 -1
- package/dist/cjs/form-input_7.cjs.entry.js +26 -26
- package/dist/cjs/form-switch.cjs.entry.js +6 -6
- package/dist/cjs/form-time-picker.cjs.entry.js +9 -9
- package/dist/cjs/{functions-Bu1AQDD2.js → functions-BHYWCotp.js} +5 -11
- package/dist/cjs/general-form.cjs.entry.js +11 -11
- package/dist/cjs/general-inquiry-form.cjs.entry.js +11 -11
- package/dist/cjs/{get-language-from-url-p2OXldYh.js → get-language-from-url-DwOt9DVH.js} +5 -1
- package/dist/cjs/{get-local-language-BR0p0bBg.js → get-local-language-BSOLV9z2.js} +7 -3
- package/dist/cjs/{get-mock-files-Dljv5P4k.js → get-mock-files-Dv8XsTW8.js} +2 -2
- package/dist/cjs/{index-Bi6W8dMN.js → index-BdHAYIvO.js} +16 -0
- package/dist/cjs/information-table.cjs.entry.js +2 -2
- package/dist/cjs/{loader-icon-By94sKO7.js → loader-icon-aY56OHXW.js} +1 -1
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/loading-spinner.cjs.entry.js +2 -2
- package/dist/cjs/manufacturer-part-lookup.cjs.entry.js +4 -4
- package/dist/cjs/{mappers-DF2WCWpn.js → mappers-BlH-TAo7.js} +27 -5
- package/dist/cjs/{material-card-BqsZgRVE.js → material-card-D1UQcy6U.js} +1 -1
- package/dist/cjs/part-lookup.cjs.entry.js +3 -3
- package/dist/cjs/{qr-code-scan-B-8WHa22.js → qr-code-scan-CtKK6wLL.js} +1 -1
- package/dist/cjs/service-booking-form.cjs.entry.js +11 -11
- package/dist/cjs/shift-accordion.cjs.entry.js +2 -2
- package/dist/cjs/shift-checkbox.cjs.entry.js +4 -4
- package/dist/cjs/shift-components.cjs.js +3 -3
- package/dist/cjs/shift-slider.cjs.entry.js +2 -2
- package/dist/cjs/shift-switch.cjs.entry.js +3 -3
- package/dist/cjs/shift-tab-content.cjs.entry.js +2 -2
- package/dist/cjs/shift-tabs_2.cjs.entry.js +13 -13
- package/dist/cjs/ssc-lookup-form.cjs.entry.js +11 -11
- package/dist/cjs/test-drive-form.cjs.entry.js +11 -11
- package/dist/cjs/{triangle-alert-CN15U99s.js → triangle-alert-BjQBwsRv.js} +1 -1
- package/dist/cjs/{validation-jJwLyk27.js → validation-5ZUxalyW.js} +3 -1
- package/dist/cjs/{vehicle-accessories_7.cjs.entry.js → vehicle-accessories_8.cjs.entry.js} +418 -19
- package/dist/cjs/{vehicle-info-layout-sV6altzn.js → vehicle-info-layout-CRpL8UMY.js} +1 -1
- package/dist/cjs/vehicle-lookup.cjs.entry.js +9 -5
- package/dist/cjs/vehicle-quotation-form.cjs.entry.js +7 -7
- package/dist/cjs/{get-custom-classes-for-portal-NNOxAU3P.js → white-loader-CveXuRsH.js} +15 -15
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/components/empty.css +1 -1
- package/dist/collection/components/components/flexible-container.css +1 -1
- package/dist/collection/components/components/flexible-container.js +2 -2
- package/dist/collection/components/components/loading-spinner.js +1 -1
- package/dist/collection/components/components/shift-accordion.js +1 -1
- package/dist/collection/components/components/shift-checkbox.js +1 -1
- package/dist/collection/components/components/shift-portal.css +1 -1
- package/dist/collection/components/components/shift-select-dropdown.css +1 -1
- package/dist/collection/components/components/shift-select-dropdown.js +2 -2
- package/dist/collection/components/components/shift-select.css +1 -1
- package/dist/collection/components/components/shift-select.js +3 -3
- package/dist/collection/components/components/shift-slider.js +1 -1
- package/dist/collection/components/components/shift-switch.js +1 -1
- package/dist/collection/components/components/shift-tab-content.js +1 -1
- package/dist/collection/components/components/shift-tabs.js +2 -2
- package/dist/collection/components/form-elements/branch-slot-dropdown.css +1 -0
- package/dist/collection/components/form-elements/branch-slot-dropdown.js +405 -0
- package/dist/collection/components/form-elements/branch-slot-picker.css +1 -0
- package/dist/collection/components/form-elements/branch-slot-picker.js +921 -0
- package/dist/collection/components/form-elements/form-checkbox.js +1 -1
- package/dist/collection/components/form-elements/form-date-picker-legacy.js +4 -4
- package/dist/collection/components/form-elements/form-dialog.js +1 -1
- package/dist/collection/components/form-elements/form-file.js +22 -4
- package/dist/collection/components/form-elements/form-input.js +2 -2
- package/dist/collection/components/form-elements/form-inputs.css +1 -1
- package/dist/collection/components/form-elements/form-picker-input.js +2 -2
- package/dist/collection/components/form-elements/form-shadow-input.js +1 -1
- package/dist/collection/components/form-elements/form-stepper-control.js +2 -2
- package/dist/collection/components/form-elements/form-stepper-submit.js +2 -2
- package/dist/collection/components/form-elements/form-stepper.js +1 -1
- package/dist/collection/components/form-elements/form-structure-error.js +1 -1
- package/dist/collection/components/form-elements/form-submit.js +2 -2
- package/dist/collection/components/form-elements/form-switch.js +1 -1
- package/dist/collection/components/form-elements/form-text-area.js +2 -2
- package/dist/collection/components/form-elements/form-time-picker-legacy.js +5 -5
- package/dist/collection/components/form-elements/form-vin-input.js +2 -2
- package/dist/collection/components/forms/defaults/mappers.js +23 -1
- package/dist/collection/components/forms/defaults/validation.js +2 -1
- package/dist/collection/components/forms/general-form.js +2 -2
- package/dist/collection/components/forms/general-inquiry.js +2 -2
- package/dist/collection/components/forms/service-booking.js +2 -2
- package/dist/collection/components/forms/ssc-lookup.js +2 -2
- package/dist/collection/components/forms/test-drive.js +2 -2
- package/dist/collection/components/forms/vehicle-quotation.js +2 -2
- package/dist/collection/components/part-lookup/dead-stock-lookup.css +1 -1
- package/dist/collection/components/part-lookup/dead-stock-lookup.js +2 -2
- package/dist/collection/components/part-lookup/distributor-lookup.js +2 -2
- package/dist/collection/components/part-lookup/manufacturer-part-lookup.js +1 -1
- package/dist/collection/components/vehicle-lookup/components/CoverageTimeline.js +317 -0
- package/dist/collection/components/vehicle-lookup/vehicle-accessories.js +2 -2
- package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.js +5 -5
- package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.js +7 -7
- package/dist/collection/components/vehicle-lookup/vehicle-lookup.js +6 -2
- package/dist/collection/components/vehicle-lookup/vehicle-sale-information.js +2 -2
- package/dist/collection/components/vehicle-lookup/vehicle-service-history.js +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-specification.js +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-warranty-timeline.css +1 -0
- package/dist/collection/components/vehicle-lookup/vehicle-warranty-timeline.js +467 -0
- package/dist/collection/components/vin-extractor/vin-extractor.js +1 -1
- package/dist/collection/features/form-hook/form-hook.js +4 -0
- package/dist/collection/features/form-hook/functions.js +2 -8
- package/dist/collection/features/form-hook/inputs/form-input.js +7 -5
- package/dist/collection/global/types/generated/vehicle-lookup/vehicle-extended-warranty-dto.js +1 -0
- package/dist/collection/locale-mapper.js +5 -1
- package/dist/collection/locales/vehicleLookup/warrantyTimeline/type.js +31 -0
- package/dist/collection/templates/vehicle-lookup/prototype-assets/extended-warranty/adp-logo.svg +11 -0
- package/dist/collection/templates/vehicle-lookup/warranty-mock-data.js +96 -1
- package/dist/components/branch-slot-dropdown.d.ts +11 -0
- package/dist/components/branch-slot-dropdown.js +5 -0
- package/dist/components/branch-slot-picker.d.ts +11 -0
- package/dist/components/branch-slot-picker.js +5 -0
- package/dist/components/dead-stock-lookup.js +1 -1
- package/dist/components/distributor-lookup.js +1 -1
- package/dist/components/flexible-container.js +1 -1
- package/dist/components/form-checkbox.js +1 -1
- package/dist/components/form-date-picker.js +1 -1
- package/dist/components/form-dialog.js +1 -1
- package/dist/components/form-file.js +1 -1
- package/dist/components/form-input-preview.js +1 -1
- package/dist/components/form-input.js +1 -1
- package/dist/components/form-phone-number.js +1 -1
- package/dist/components/form-picker-input.js +1 -1
- package/dist/components/form-select.js +1 -1
- package/dist/components/form-shadow-input.js +1 -1
- package/dist/components/form-stepper-control.js +1 -1
- package/dist/components/form-stepper-submit.js +1 -1
- package/dist/components/form-stepper.js +1 -1
- package/dist/components/form-structure-error.js +1 -1
- package/dist/components/form-structure.js +1 -1
- package/dist/components/form-submit.js +1 -1
- package/dist/components/form-switch.js +1 -1
- package/dist/components/form-text-area.js +1 -1
- package/dist/components/form-time-picker.js +1 -1
- package/dist/components/form-vin-input.js +1 -1
- package/dist/components/general-form.js +1 -1
- package/dist/components/general-inquiry-form.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/information-table.js +1 -1
- package/dist/components/loading-spinner.js +1 -1
- package/dist/components/manufacturer-lookup.js +1 -1
- package/dist/components/manufacturer-part-lookup.js +1 -1
- package/dist/components/{p-CKrwCtec.js → p--qz4ecXR.js} +1 -1
- package/dist/components/{p-BMxw31OW.js → p-3xgnJUhD.js} +1 -1
- package/dist/components/{p-DJ0awYVE.js → p-87NLGlyb.js} +1 -1
- package/dist/components/{p-dRP9cgZF.js → p-B2FtamaW.js} +1 -1
- package/dist/components/{p-Cl-rntc3.js → p-B47kSZHb.js} +1 -1
- package/dist/components/p-B7gfOpxv.js +5 -0
- package/dist/components/{p-CjByjVT0.js → p-B83lw3YO.js} +1 -1
- package/dist/components/p-B9ClwHPb.js +5 -0
- package/dist/components/p-B9_-Tb0H.js +5 -0
- package/dist/components/{p-CtyIp56a.js → p-BAtXT_Mt.js} +1 -1
- package/dist/components/p-BGX0qdUG.js +5 -0
- package/dist/components/{p-Hlqj6HsH.js → p-BPnD6Cqq.js} +1 -1
- package/dist/components/{p-BNs9PHd8.js → p-BQC1g-wS.js} +1 -1
- package/dist/components/p-B__72-PA.js +5 -0
- package/dist/components/{p-Wv20cFTm.js → p-BaKmifzr.js} +1 -1
- package/dist/components/{p-CRJSM0nN.js → p-BcDVkdxZ.js} +1 -1
- package/dist/components/{p-D-0CfzDk.js → p-ByA_B82T.js} +1 -1
- package/dist/components/p-C0JoH_yH.js +5 -0
- package/dist/components/{p-BjLQXN9e.js → p-C2RnTSH-.js} +1 -1
- package/dist/components/{p-B3Vlmu9F.js → p-C4ud82ie.js} +1 -1
- package/dist/components/p-CCuYl9VQ.js +5 -0
- package/dist/components/{p-BIeJEFM6.js → p-CDQ5F3Oe.js} +1 -1
- package/dist/components/{p-ubqjXh5U.js → p-CGJ8ndBw.js} +1 -1
- package/dist/components/p-CNcA_RyS.js +5 -0
- package/dist/components/{p-BcRom3sV.js → p-C_ZtLgwx.js} +1 -1
- package/dist/components/{p-BHYsBcpG.js → p-Cq13CFua.js} +1 -1
- package/dist/components/p-CzVOOo8C.js +5 -0
- package/dist/components/{p-B42vuL_p.js → p-D-6PSzhd.js} +1 -1
- package/dist/components/{p-DBErZTaY.js → p-D2H3RzIC.js} +1 -1
- package/dist/components/{p-CMgPnaDZ.js → p-DHaTQ9vT.js} +1 -1
- package/dist/components/{p-8EOK_QhL.js → p-DQGcS-zL.js} +1 -1
- package/dist/components/p-DQopO8HS.js +5 -0
- package/dist/components/p-DTk3bhGl.js +5 -0
- package/dist/components/p-Dal_X4-W.js +5 -0
- package/dist/components/{p-CoAe_PpX.js → p-DdB_zKQz.js} +1 -1
- package/dist/components/{p-BP6R1nYk.js → p-Dhi7g1w3.js} +1 -1
- package/dist/components/p-Dr_ggnvT.js +5 -0
- package/dist/components/{p-C55Gk63d.js → p-Dx0NcxCM.js} +1 -1
- package/dist/components/{p-50EIzP4j.js → p-HT-TmIJD.js} +1 -1
- package/dist/components/{p-BFAzCUQY.js → p-ZTI11kto.js} +1 -1
- package/dist/components/{p-DbAAihIH.js → p-a5fTeexp.js} +1 -1
- package/dist/components/{p-BDlZ35Dv.js → p-bOkg1-34.js} +1 -1
- package/dist/components/{p-DWGSY0dp.js → p-gzdpekMI.js} +1 -1
- package/dist/components/{p-DNZ31iYw.js → p-pIanEonc.js} +1 -1
- package/dist/components/{p-BDHTK4yJ.js → p-qGX3WTkQ.js} +1 -1
- package/dist/components/{p-CnZZ3ASF.js → p-qs0MTheD.js} +1 -1
- package/dist/components/{p-CD1XArUc.js → p-txgHrQYx.js} +1 -1
- package/dist/components/{p-BsgLxjfx.js → p-v_TjAHaO.js} +1 -1
- package/dist/components/part-lookup.js +1 -1
- package/dist/components/service-booking-form.js +1 -1
- package/dist/components/shift-accordion.js +1 -1
- package/dist/components/shift-checkbox.js +1 -1
- package/dist/components/shift-portal.js +1 -1
- package/dist/components/shift-select-dropdown.js +1 -1
- package/dist/components/shift-select.js +1 -1
- package/dist/components/shift-slider.js +1 -1
- package/dist/components/shift-switch.js +1 -1
- package/dist/components/shift-tab-content.js +1 -1
- package/dist/components/shift-tabs.js +1 -1
- package/dist/components/ssc-lookup-form.js +1 -1
- package/dist/components/test-drive-form.js +1 -1
- package/dist/components/vehicle-accessories.js +1 -1
- package/dist/components/vehicle-claimable-items.js +1 -1
- package/dist/components/vehicle-item-claim-form.js +1 -1
- package/dist/components/vehicle-lookup.js +1 -1
- package/dist/components/vehicle-paint-thickness.js +1 -1
- package/dist/components/vehicle-quotation-form.js +1 -1
- package/dist/components/vehicle-sale-information.js +1 -1
- package/dist/components/vehicle-service-history.js +1 -1
- package/dist/components/vehicle-specification.js +1 -1
- package/dist/components/vehicle-warranty-details.js +1 -1
- package/dist/components/vehicle-warranty-timeline.d.ts +11 -0
- package/dist/components/vehicle-warranty-timeline.js +5 -0
- package/dist/components/vin-extractor.js +1 -1
- package/dist/esm/{add-icon-DxQVyX6U.js → add-icon-DHh6DJXR.js} +1 -1
- package/dist/esm/{app-globals-ci3rJxmu.js → app-globals-CusTGK9D.js} +1 -1
- package/dist/esm/{arrow-icon-DRTeN2D5.js → arrow-icon-DziuNOTp.js} +1 -1
- package/dist/esm/{arrow-up-icon-FAYFxG6c.js → arrow-up-icon-Dw_d-rG9.js} +1 -1
- package/dist/esm/{form-dialog_13.entry.js → branch-slot-dropdown_15.entry.js} +575 -40
- package/dist/esm/{calendar-days-icon-BOy0a_W-.js → calendar-days-icon-CnASOv7M.js} +1 -1
- package/dist/esm/{check-icon-BYK1ESZG.js → check-icon-BZQF4tzH.js} +1 -1
- package/dist/esm/dead-stock-lookup_3.entry.js +11 -11
- package/dist/esm/{decode-time-offset-ChO_PV6l.js → decode-time-offset-Cib1aJfV.js} +1 -1
- package/dist/esm/flexible-container.entry.js +4 -4
- package/dist/esm/form-checkbox.entry.js +6 -6
- package/dist/esm/form-date-picker.entry.js +8 -8
- package/dist/esm/{form-error-message-YvMHko71.js → form-error-message-DWl6p6Dz.js} +1 -1
- package/dist/esm/{form-input-DAgayhNz.js → form-input-B8SwfkAd.js} +8 -6
- package/dist/esm/{form-input-label-cuvgzRcH.js → form-input-label-6blOw1BN.js} +1 -1
- package/dist/esm/form-input_7.entry.js +25 -25
- package/dist/esm/form-switch.entry.js +6 -6
- package/dist/esm/form-time-picker.entry.js +9 -9
- package/dist/esm/{functions-DHzedl_R.js → functions-BObezuTv.js} +5 -11
- package/dist/esm/general-form.entry.js +11 -11
- package/dist/esm/general-inquiry-form.entry.js +11 -11
- package/dist/esm/{get-language-from-url-U4hZ4dwn.js → get-language-from-url-fV-K15uy.js} +5 -1
- package/dist/esm/{get-local-language-TRD6vPH7.js → get-local-language-DcxL5hdi.js} +7 -3
- package/dist/esm/{get-mock-files-K2mWecRb.js → get-mock-files-IEjS5G9N.js} +2 -2
- package/dist/esm/{index-Cg4V9l26.js → index-CteZTPhq.js} +16 -1
- package/dist/esm/information-table.entry.js +2 -2
- package/dist/esm/{loader-icon-B2ls1yXl.js → loader-icon-BvAmA41s.js} +1 -1
- package/dist/esm/loader.js +4 -4
- package/dist/esm/loading-spinner.entry.js +2 -2
- package/dist/esm/manufacturer-part-lookup.entry.js +4 -4
- package/dist/esm/{mappers-CeTQZn37.js → mappers-9IKbvPiR.js} +27 -5
- package/dist/esm/{material-card-BMtefyp-.js → material-card-jbQd-0as.js} +1 -1
- package/dist/esm/part-lookup.entry.js +3 -3
- package/dist/esm/{qr-code-scan-CktgNBSD.js → qr-code-scan-B1nViqZl.js} +1 -1
- package/dist/esm/service-booking-form.entry.js +11 -11
- package/dist/esm/shift-accordion.entry.js +2 -2
- package/dist/esm/shift-checkbox.entry.js +4 -4
- package/dist/esm/shift-components.js +4 -4
- package/dist/esm/shift-slider.entry.js +2 -2
- package/dist/esm/shift-switch.entry.js +3 -3
- package/dist/esm/shift-tab-content.entry.js +2 -2
- package/dist/esm/shift-tabs_2.entry.js +13 -13
- package/dist/esm/ssc-lookup-form.entry.js +11 -11
- package/dist/esm/test-drive-form.entry.js +11 -11
- package/dist/esm/{triangle-alert-D4H9aWiT.js → triangle-alert-Brtqhx2d.js} +1 -1
- package/dist/esm/{validation-oieVWBn1.js → validation-lB1iHxfZ.js} +3 -2
- package/dist/esm/{vehicle-accessories_7.entry.js → vehicle-accessories_8.entry.js} +418 -20
- package/dist/esm/{vehicle-info-layout-DQ12Civq.js → vehicle-info-layout-Dmx94GLp.js} +1 -1
- package/dist/esm/vehicle-lookup.entry.js +9 -5
- package/dist/esm/vehicle-quotation-form.entry.js +7 -7
- package/dist/esm/{get-custom-classes-for-portal-C4LvwyrX.js → white-loader-B3tJFuNO.js} +15 -15
- package/dist/integration-manifest.json +66 -2
- package/dist/locales/vehicleLookup/warrantyTimeline/ar.json +25 -0
- package/dist/locales/vehicleLookup/warrantyTimeline/en.json +25 -0
- package/dist/locales/vehicleLookup/warrantyTimeline/ku.json +25 -0
- package/dist/locales/vehicleLookup/warrantyTimeline/ru.json +25 -0
- package/dist/locales/vehicleLookup/warrantyTimeline/type.ts +29 -0
- package/dist/mocks/generated/broker-dealer/vehicle-lookup.json +19 -1
- package/dist/mocks/generated/edge-cases/vehicle-lookup.json +57 -0
- package/dist/mocks/generated/standard-dealer/vehicle-lookup.json +27 -2
- package/dist/shift-components/{p-960fedbb.entry.js → p-088c8e4c.entry.js} +1 -1
- package/dist/shift-components/{p-3fcb1657.entry.js → p-12f36d97.entry.js} +1 -1
- package/dist/shift-components/p-17862b0b.entry.js +5 -0
- package/dist/shift-components/p-187cbdf5.entry.js +5 -0
- package/dist/shift-components/{p-fa39d151.entry.js → p-1c7c9c13.entry.js} +1 -1
- package/dist/shift-components/{p-7a41a739.entry.js → p-28e29ce7.entry.js} +1 -1
- package/dist/shift-components/p-383342be.entry.js +5 -0
- package/dist/shift-components/{p-fe7ece41.entry.js → p-3dcba301.entry.js} +1 -1
- package/dist/shift-components/{p-6b82a9b3.entry.js → p-5ba85e5c.entry.js} +1 -1
- package/dist/shift-components/{p-031f2ae6.entry.js → p-65beafcc.entry.js} +1 -1
- package/dist/shift-components/{p-22648595.entry.js → p-7cc6806c.entry.js} +1 -1
- package/dist/shift-components/{p-332ebda4.entry.js → p-7f44f655.entry.js} +1 -1
- package/dist/shift-components/{p-61ecc144.entry.js → p-868d554f.entry.js} +1 -1
- package/dist/shift-components/{p-a4086c90.entry.js → p-880c103a.entry.js} +1 -1
- package/dist/shift-components/{p-0dd7911f.entry.js → p-902a40c4.entry.js} +1 -1
- package/dist/shift-components/{p-10511716.entry.js → p-99886c58.entry.js} +1 -1
- package/dist/shift-components/{p-B8RCucpl.js → p-B9kqtQjS.js} +1 -1
- package/dist/shift-components/p-BTNA9XsD.js +5 -0
- package/dist/shift-components/{p-CiA8HlYO.js → p-C4NpWwNE.js} +1 -1
- package/dist/shift-components/p-C582V9TT.js +5 -0
- package/dist/shift-components/{p-BaC5C1YJ.js → p-C8PvXL-3.js} +1 -1
- package/dist/shift-components/{p-BLdwm9KB.js → p-CMMsmKvs.js} +1 -1
- package/dist/shift-components/p-C_QDvFTV.js +5 -0
- package/dist/shift-components/{p-BpCf2ue6.js → p-Ccwtsrgg.js} +1 -1
- package/dist/shift-components/p-CteZTPhq.js +6 -0
- package/dist/shift-components/{p-BG5y01yj.js → p-D1ioFMhR.js} +1 -1
- package/dist/shift-components/{p-FFH7sR1n.js → p-D7cqTTll.js} +1 -1
- package/dist/shift-components/p-D9Xf90VX.js +5 -0
- package/dist/shift-components/p-DWoutohJ.js +5 -0
- package/dist/shift-components/{p-BtLpOQVM.js → p-DtD7FZCG.js} +1 -1
- package/dist/shift-components/{p-CC1CaPP4.js → p-Dyo77aS3.js} +1 -1
- package/dist/shift-components/p-DzV_ls5o.js +5 -0
- package/dist/shift-components/p-HI9vdFQP.js +5 -0
- package/dist/shift-components/{p-08Pl1Pmo.js → p-MzYTUgsB.js} +1 -1
- package/dist/shift-components/{p-DwFWMVcD.js → p-OlAbjfKx.js} +1 -1
- package/dist/shift-components/{p-981d1f44.entry.js → p-b675fb6b.entry.js} +1 -1
- package/dist/shift-components/p-b8084ca2.entry.js +5 -0
- package/dist/shift-components/p-bad65a42.entry.js +5 -0
- package/dist/shift-components/{p-2f904561.entry.js → p-bb13232d.entry.js} +1 -1
- package/dist/shift-components/{p-CtUQMviL.js → p-bfwabdVa.js} +1 -1
- package/dist/shift-components/p-c4cf0a18.entry.js +5 -0
- package/dist/shift-components/{p-46e5146f.entry.js → p-e2868220.entry.js} +1 -1
- package/dist/shift-components/p-e7a99998.entry.js +5 -0
- package/dist/shift-components/{p-e979caa9.entry.js → p-ec3e0cce.entry.js} +1 -1
- package/dist/shift-components/{p-23df4ed2.entry.js → p-ee623097.entry.js} +1 -1
- package/dist/shift-components/{p-d33c83ac.entry.js → p-f9b8d43c.entry.js} +1 -1
- package/dist/shift-components/p-hABirfUj.js +5 -0
- package/dist/shift-components/{p-CRd5RAng.js → p-oFzLYYzz.js} +1 -1
- package/dist/shift-components/{p-Dvl1mJ6N.js → p-oQAUbfw7.js} +1 -1
- package/dist/shift-components/shift-components.esm.js +1 -1
- package/dist/stencil-docs.json +8462 -6793
- package/dist/types/components/form-elements/branch-slot-dropdown.d.ts +48 -0
- package/dist/types/components/form-elements/branch-slot-picker.d.ts +128 -0
- package/dist/types/components/form-elements/form-file.d.ts +1 -0
- package/dist/types/components/forms/defaults/mappers.d.ts +16 -0
- package/dist/types/components/forms/defaults/validation.d.ts +2 -0
- package/dist/types/components/vehicle-lookup/components/CoverageTimeline.d.ts +13 -0
- package/dist/types/components/vehicle-lookup/vehicle-lookup.d.ts +3 -0
- package/dist/types/components/vehicle-lookup/vehicle-warranty-timeline.d.ts +46 -0
- package/dist/types/components.d.ts +452 -4
- package/dist/types/features/multi-lingual/types.d.ts +4 -4
- package/dist/types/global/types/generated/vehicle-lookup/vehicle-extended-warranty-dto.d.ts +9 -0
- package/dist/types/global/types/generated/vehicle-lookup/vehicle-warranty-dto.d.ts +4 -0
- package/dist/types/locale-mapper.d.ts +2 -1
- package/dist/types/locales/type.d.ts +2 -2
- package/dist/types/locales/vehicleLookup/paintThickness/type.d.ts +6 -6
- package/dist/types/locales/vehicleLookup/warranty/type.d.ts +4 -4
- package/dist/types/locales/vehicleLookup/warrantyTimeline/type.d.ts +50 -0
- package/dist/types/locales/vehicleLookup/wrapper-type.d.ts +10 -10
- package/package.json +1 -1
- package/dist/components/p-B8g3fLoh.js +0 -5
- package/dist/components/p-BshR1DsJ.js +0 -5
- package/dist/components/p-C24AOawm.js +0 -5
- package/dist/components/p-CK6WFXQF.js +0 -5
- package/dist/components/p-CLkGfAsm.js +0 -5
- package/dist/components/p-ClDpIRF9.js +0 -5
- package/dist/components/p-CvcaE6Ss.js +0 -5
- package/dist/components/p-DlG98nFs.js +0 -5
- package/dist/components/p-Dv_BQG7D.js +0 -5
- package/dist/components/p-G9UmKW9m.js +0 -5
- package/dist/shift-components/p-0578b913.entry.js +0 -5
- package/dist/shift-components/p-1500556f.entry.js +0 -5
- package/dist/shift-components/p-214259ae.entry.js +0 -5
- package/dist/shift-components/p-9c950549.entry.js +0 -5
- package/dist/shift-components/p-BBmr0kTe.js +0 -5
- package/dist/shift-components/p-BVDXHvth.js +0 -5
- package/dist/shift-components/p-BY1wHcOT.js +0 -5
- package/dist/shift-components/p-BuurMgGN.js +0 -5
- package/dist/shift-components/p-Cg4V9l26.js +0 -6
- package/dist/shift-components/p-D2XgNV12.js +0 -5
- package/dist/shift-components/p-DlBduQTw.js +0 -5
- package/dist/shift-components/p-a55ceb19.entry.js +0 -5
- package/dist/shift-components/p-b611f72e.entry.js +0 -5
- package/dist/shift-components/p-bc966aa0.entry.js +0 -5
- package/dist/shift-components/p-rsylYLbj.js +0 -5
- package/dist/shift-components/p-yhCrSkom.js +0 -5
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
*/
|
|
5
5
|
'use strict';
|
|
6
6
|
|
|
7
|
-
var index = require('./index-
|
|
8
|
-
var triangleAlert = require('./triangle-alert-
|
|
7
|
+
var index = require('./index-BdHAYIvO.js');
|
|
8
|
+
var triangleAlert = require('./triangle-alert-BjQBwsRv.js');
|
|
9
9
|
var type = require('./type-BHyLb1S8.js');
|
|
10
|
-
var vehicleInfoLayout = require('./vehicle-info-layout-
|
|
10
|
+
var vehicleInfoLayout = require('./vehicle-info-layout-CRpL8UMY.js');
|
|
11
11
|
var smartInvokable = require('./smart-invokable-BdyCLX9_.js');
|
|
12
12
|
var validateVin = require('./validate-vin-CJDIXpJO.js');
|
|
13
13
|
var types = require('./types-DV_cOCRi.js');
|
|
14
|
-
var getLocalLanguage = require('./get-local-language-
|
|
14
|
+
var getLocalLanguage = require('./get-local-language-BSOLV9z2.js');
|
|
15
15
|
var cn = require('./cn-BHnqYtun.js');
|
|
16
|
-
var loaderIcon = require('./loader-icon-
|
|
17
|
-
var materialCard = require('./material-card-
|
|
18
|
-
var arrowIcon = require('./arrow-icon-
|
|
19
|
-
var calendarDaysIcon = require('./calendar-days-icon-
|
|
16
|
+
var loaderIcon = require('./loader-icon-aY56OHXW.js');
|
|
17
|
+
var materialCard = require('./material-card-D1UQcy6U.js');
|
|
18
|
+
var arrowIcon = require('./arrow-icon-yMlETDbD.js');
|
|
19
|
+
var calendarDaysIcon = require('./calendar-days-icon-Cf14ROXV.js');
|
|
20
20
|
|
|
21
21
|
const vehicleRequestHeaders = {
|
|
22
22
|
cityId: 'City-Id',
|
|
@@ -190,9 +190,9 @@ const VehicleAccessories = class {
|
|
|
190
190
|
image: () => (index.h("div", { class: "size-[100px] flex mx-auto items-center justify-center" }, index.h("button", { onClick: ({ target }) => triangleAlert.openImageViewer.bind(this)(target, accessory === null || accessory === void 0 ? void 0 : accessory.image), class: "shrink-0 relative ring-0 outline-none w-fit mx-auto [&_img]:hover:shadow-lg [&_div]:hover:!opacity-100 cursor-pointer" }, index.h("div", { class: "absolute flex-col justify-center gap-[4px] size-full flex items-center pointer-events-none hover:opacity-100 rounded-lg opacity-0 bg-black/40 transition-all duration-300" }, index.h("img", { src: triangleAlert.eyeSvg }), index.h("span", { class: "text-white" }, texts.expand)), index.h("img", { class: "w-auto h-auto max-w-[100px] max-h-[100px] cursor-pointer shadow-sm rounded-lg transition-all duration-300", src: accessory === null || accessory === void 0 ? void 0 : accessory.image })))),
|
|
191
191
|
}));
|
|
192
192
|
const templateRow = {
|
|
193
|
-
image: () => index.h("div", { key: '
|
|
193
|
+
image: () => index.h("div", { key: 'e9d29ca002cbdff7ba6861a76b667292d8776764', class: "size-[100px] flex mx-auto items-center justify-center" }, "\u00A0"),
|
|
194
194
|
};
|
|
195
|
-
return (index.h(index.Host, { key: '
|
|
195
|
+
return (index.h(index.Host, { key: '5754d83d9a87285824e896a8bb7531a2b68a5f01', translate: "no" }, index.h(triangleAlert.ImageViewer, { key: 'a7102dba9d94d368c84f62bd40892105596014da', closeImageViewer: () => triangleAlert.closeImageViewer.bind(this)(), expandedImage: this.expandedImage }), index.h(vehicleInfoLayout.VehicleInfoLayout, { key: '370101d7d7223328381e5b48f3b9cd5b33f3b4cc', isError: this.isError, isLoading: this.isLoading, coreOnly: this.coreOnly, header: (_c = this.vehicleLookup) === null || _c === void 0 ? void 0 : _c.vin, direction: this.locale.sharedLocales.direction, errorMessage: this.locale.sharedLocales.errors[this.errorMessage] || this.locale.sharedLocales.errors.wildCard }, index.h("div", { key: '416ef484b9c8f892512d8b72cbab3bcd22c022ea', class: "overflow-x-auto" }, index.h("information-table", { key: 'ba80b210fdf468ceea7661237ae4d548c4fd8205', templateRow: templateRow, rows: rows, headers: tableHeaders, isLoading: this.isLoading })))));
|
|
196
196
|
}
|
|
197
197
|
get el() { return index.getElement(this); }
|
|
198
198
|
static get watchers() { return {
|
|
@@ -805,19 +805,19 @@ const VehicleClaimableItems = class {
|
|
|
805
805
|
const showActivationBox = showActivationRequired || showActivationBlocked || this.showPrintBox;
|
|
806
806
|
const isBlockedBox = showActivationBlocked && !this.showPrintBox;
|
|
807
807
|
const showActionButton = this.showPrintBox || showActivationRequired;
|
|
808
|
-
return (index.h(index.Host, { key: '
|
|
808
|
+
return (index.h(index.Host, { key: '68bae301ffc05d11cf272f7dec997c72c26aba6e', translate: "no" }, index.h("vehicle-item-claim-form", { key: '04f23d58066e76923378ff71a81c3573b5d131ce', class: "vehicle-item-claim-form", maximumDocumentFileSizeInMb: this.maximumDocumentFileSizeInMb, uploadMultipleDocuments: this.uploadMultipleDocumentsAtTheForm, locale: Object.assign({ sharedLocales: this.locale.sharedLocales }, this.locale.claimForm) }), index.h(ClaimableItemPopover, { key: '1d9d5dd185f8aeac647535fe60b25c4457e9ad63', locale: this.locale, claim: this.claim.bind(this), item: this.selectedClaimItem, showPopover: this.showClaimableItemPopover, target: this.popoverTarget, popoverHeight: this.popoverHeight, fadingOut: this.popoverFadingOut, contentFading: this.popoverContentFading, bodyContentHeight: this.popoverBodyContentHeight, onMouseEnter: this.onPopoverMouseEnter, onMouseLeave: this.onPopoverMouseLeave }), index.h(ClaimableTraceModal, { key: 'afd799719789eef78f606383d9961fc68f8ac918', isOpen: this.showTraceModal, fadingOut: this.traceModalFadingOut, isLoading: this.isLoadingTrace, errorMessage: this.traceError, vin: (_d = this.vehicleLookup) === null || _d === void 0 ? void 0 : _d.vin, traceHtml: this.traceHtml, locale: this.locale, onClose: this.closeTraceModal }), index.h(vehicleInfoLayout.VehicleInfoLayout, { key: '25882202afee3c7da4dd80475784d4cdb53de406', isError: this.isError, coreOnly: this.coreOnly, header: (_e = this.vehicleLookup) === null || _e === void 0 ? void 0 : _e.vin, direction: this.locale.sharedLocales.direction, isLoading: this.isLoading || this.tabAnimationLoading, errorMessage: this.locale.sharedLocales.errors[this.errorMessage] || this.locale.sharedLocales.errors.wildCard, headerRight: this.showTrace && this.vehicleLookup && !this.isLoading && !this.tabAnimationLoading && !this.isError ? (index.h("button", { type: "button", class: "trace-trigger-button", title: this.locale.viewTrace, "aria-label": this.locale.viewTrace, onClick: this.openTraceModal }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("circle", { cx: "6", cy: "19", r: "3" }), index.h("path", { d: "M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15" }), index.h("circle", { cx: "18", cy: "5", r: "3" })))) : null }, index.h("div", { key: 'e6db5f9381c858f90942a0ebe69950fa72ab2dbb', dir: "ltr", class: cn.cn('relative flex items-center h-[320px] transition-all duration-300', { loading: this.isLoading || this.tabAnimationLoading }) }, index.h("div", { key: '364b107f12160895213a1c12c2ecda8a3d4fcc9c', dir: this.locale.sharedLocales.direction, class: "absolute top-0 z-10 w-full pt-[16px]" }, index.h("div", { key: '3bfe16b7177cd4601d3cb512736afbdface2baee', class: cn.cn('duration-300', { 'translate-y-[-50%] opacity-0': hideTabs }) }, index.h("shift-tabs", { key: '2bcda9871bb627060a31996397ef9f34167d9245', activeTabLabel: this.activeTab, changeActiveTab: this.onActiveTabChange, tabs: tabs }))), index.h("div", { key: 'd8b7439570750e8ab05f7cf367c6f662d005d291', class: cn.cn('absolute w-[calc(100%-60px)] left-[30px] progress-container-style opacity-0', { 'opacity-100': this.isLoading || this.tabAnimationLoading }) }, index.h("div", { key: '1e52fc280b2387c1325edfe5039359c71d9f20dc', class: "w-full h-full rounded-[4px] overflow-x-hidden absolute left-0 top-0" }, index.h("div", { key: 'b8ceab588402eaa72cb3e8da8d3ebafb69a2c392', class: "absolute opacity-0 bg-[#1a1a1a] w-[150%] h-full" }), index.h("div", { key: 'bdc2ddcc9de7c9a7fae5641b845934bda31a31c6', class: "absolute h-full bg-[linear-gradient(to_bottom,_#428bca_0%,_#3071a9_100%)] lane-inc" }), index.h("div", { key: '7244762ba3628f89fcc155e1ff0f5ab8ae9f4b8d', class: "absolute h-full bg-[linear-gradient(to_bottom,_#428bca_0%,_#3071a9_100%)] lane-dec" }))), index.h("div", { key: 'f9d7efabd0f7ebaedc9ff62ac918f7c693693d7d', dir: this.locale.sharedLocales.direction, class: cn.cn('absolute w-[90%] z-10 pointer-events-none border opacity-0 translate-y-[-5px] scale-[70%] p-[25px] text-[16px] rounded-[6px] flex items-center justify-between left-1/2 -translate-x-1/2 h-10 bottom-[40px] transition duration-500', {
|
|
809
809
|
'text-[#8a6d3b] bg-[#fcf8e3] border-[#faebcc]': !isBlockedBox,
|
|
810
810
|
'text-[#58151c] bg-[#f7d7d8] border-[#f2aeb5]': isBlockedBox,
|
|
811
811
|
'opacity-100 pointer-events-auto translate-y-0 scale-100': !this.isLoading && this.vehicleLookup && !this.tabAnimationLoading && showActivationBox,
|
|
812
|
-
}) }, index.h("span", { key: '
|
|
812
|
+
}) }, index.h("span", { key: '99bcca2ae1af8cf8011b09b8f9095471d849f1c0', class: "font-semibold" }, this.showPrintBox
|
|
813
813
|
? this.locale.successFulClaimMessage
|
|
814
814
|
: showActivationBlocked
|
|
815
815
|
? this.locale.activationBlockedNotAllocated
|
|
816
|
-
: this.locale.warrantyAndServicesNotActivated), showActionButton && (index.h("button", { key: '
|
|
816
|
+
: this.locale.warrantyAndServicesNotActivated), showActionButton && (index.h("button", { key: '11e5a0ba57ea6a87314d1805a339464e27db5340', class: "claim-button", onClick: this.showPrintBox ? this.printLastClaimResponse : this.activateClaimItem }, this.showPrintBox ? index.h(PrintIcon, { class: "size-[30px] duration-200" }) : index.h(ActivationIcon, { class: "size-[30px] duration-200" }), index.h("span", { key: '8c6d367d50296dcfabe5c0fde4baa4517fc47d6a' }, this.showPrintBox ? this.locale.print : this.locale.activateNow)))), index.h("div", { key: 'c0e7808bac5ce9c07ca8be88d0e03b1c0766bbf6', class: "claimable-items-box px-[30px] min-w-full relative overflow-x-scroll h-full overflow-y-hidden" }, index.h("div", { key: '82cbe7ef5d767f5ba9d2962e112921a8d4b8895b', class: "flex relative w-fit min-w-full items-center h-full [&_*]:shrink-0 gap-[250px] justify-between" }, index.h("div", { key: '8042a3f857f7034c33db5b81f6b5339386a5dd61', class: cn.cn('progress-container-style progress-lane absolute overflow-hidden w-[calc(100%-0px)] translate-y-0 opacity-100', {
|
|
817
817
|
'opacity-0': this.isLoading || this.tabAnimationLoading || isNoServicesAvailable || !this.vehicleLookup,
|
|
818
|
-
}) }, index.h("div", { key: '
|
|
818
|
+
}) }, index.h("div", { key: 'c622a8a612849f8ab57b2c09bcd45cf1087dc07d', part: "progress-bar", class: "progress-bar transition-all w-1/2 h-full bg-[linear-gradient(to_bottom,_#428bca_0%,_#3071a9_100%)]" })), index.h("div", { key: '60ee69cc976626263ea85a413e0b0cae59f20c2f', class: "ml-[-125px]" }), serviceItems.map((item, idx) => (index.h(ClaimableItem, { item: item, locale: this.locale, setClaimableItemPopover: this.setClaimableItemPopover, addStatusClass: item.status !== 'pending' || serviceItems.findIndex(i => i.status === 'pending') === idx }))), index.h("div", { key: '8712c4482963e722fda2bae3fcd6d705c8c88967', class: "ml-[-125px]" })), index.h("div", { key: '4625d3e324199a0341e99c9d86d9d84ecf753eb6', dir: this.locale.sharedLocales.direction, class: cn.cn('absolute top-0 left-0 pointer-events-none size-full box-content flex flex-col justify-center opacity-0 transition duration-500 items-center text-slate-700', {
|
|
819
819
|
'opacity-100 scale-100': isNoServicesAvailable,
|
|
820
|
-
}) }, index.h(materialCard.EmptyTableIcon, { key: '
|
|
820
|
+
}) }, index.h(materialCard.EmptyTableIcon, { key: 'a27ff22d00a9eaa4838d81eb9b89c6f49301736f', class: "size-[90px]" }), index.h("div", { key: '5c64b22e1433391a015dccab10c0ec37d2f92004', class: "text-[22px]" }, this.locale.sharedLocales.errors.noServiceAvailable)))))));
|
|
821
821
|
}
|
|
822
822
|
get el() { return index.getElement(this); }
|
|
823
823
|
static get watchers() { return {
|
|
@@ -1149,11 +1149,11 @@ const VehicleSaleInformation = class {
|
|
|
1149
1149
|
];
|
|
1150
1150
|
const filteredFields = FIELDS.filter(field => !hiddenFields.includes(field.fieldName));
|
|
1151
1151
|
const filteredEndCustomerFields = END_CUSTOMER_FIELDS.filter(field => !hiddenFields.includes(field.fieldName));
|
|
1152
|
-
return (index.h(index.Host, { key: '
|
|
1152
|
+
return (index.h(index.Host, { key: '83d8b7666eb93b40fbc0fbb963603cc74d2acde8', translate: "no" }, index.h(vehicleInfoLayout.VehicleInfoLayout, { key: '7247ffd68231ff88d931346551e74203ad05f857', isError: this.isError, coreOnly: this.coreOnly, isLoading: this.isLoading, header: (_q = this.vehicleLookup) === null || _q === void 0 ? void 0 : _q.vin, direction: this.locale.sharedLocales.direction, errorMessage: this.locale.sharedLocales.errors[this.errorMessage] || this.locale.sharedLocales.errors.wildCard }, index.h("flexible-container", { key: '8a8da84882eb2c9a522a5e2c0ef64b6f923e79fc' }, index.h("flexible-container", { key: 'fdc5d3ed4d057a6d5f1e3fcbe82b498936323cb4', classes: cn.cn({ loading: this.isLoading || this.isError || !this.vehicleLookup }), isOpened: !!this.vehicleLookup && !this.isError }, index.h("div", { key: '7e49581a4b83c9c075fa250b487f07e8daf4ee10', class: "p-[16px] mx-auto !pb-0 max-w-[520px]" }, index.h("div", { key: '7dd4ae69f32fdbf15bbe9fdddab5c1c460c00f1d', class: cn.cn('relative shift-skeleton !rounded-[12px] shift-card', { 'shift-card-warning': !hasEndCustomer }) }, index.h("div", { key: '3fbb61d18adac8b428f49477bfd8ccb4e80d571e', class: cn.cn('absolute flex size-full left-0 top-0 px-[12px] items-center justify-center p-[12px] transition-opacity', !hasEndCustomer ? 'opacity-100' : 'opacity-0 pointer-events-none select-none') }, index.h("div", { key: '5b6a10a401655c098ea2d3a761f7dc47c82182b3', class: "w-full max-w-[460px] rounded-[14px] px-[14px] py-[12px]" }, index.h("div", { key: '0778642e8703e64b297b5671e9c87704ef4fe113', class: "size-full flex flex-col justify-start gap-[12px] items-center" }, index.h("span", { key: '124a1e092988e291f9461ba2cf0361a3961ed99b', class: "shift-card-icon", "aria-hidden": "true" }, index.h(triangleAlert.TriangleAlertIcon, { key: '4eaafd886053f7f9089d64664418baa150a63919' })), index.h("p", { key: '67b701a8af6d48422f46a373e23d316c023b5941', class: "mt-[4px] text-[13.5px] text-center text-amber-900/90 leading-[1.35]" }, texts['Vehicle has no end customer.'] || '')))), index.h("div", { key: 'f34bfb5518ae68dd8c003e38349525039cabf7ad', class: cn.cn('transition-opacity', !hasEndCustomer ? 'opacity-0 pointer-events-none select-none' : 'opacity-100') }, index.h("h2", { key: 'e879d3e6575d7534c6891ad67ac75866a094d31b', class: "shift-card-header" }, texts.customerInformation), index.h("div", { key: '880bc54b1a2334190e5fbc4f0d3aea004dd0c091', class: "flex flex-col gap-[2px]" }, filteredEndCustomerFields.map(field => {
|
|
1153
1153
|
const value = field.value || '';
|
|
1154
1154
|
const Icon = field.Icon;
|
|
1155
1155
|
return (index.h("div", { class: "flex gap-[12px] items-start" }, index.h("span", { class: "shift-card-icon", "aria-hidden": "true" }, index.h(Icon, null)), index.h("div", { class: "flex flex-col translate-y-[-4px]" }, index.h("div", { class: "shift-card-seconary-text" }, field.title, ":"), index.h("div", { class: cn.cn('shift-card-primary-text translate-y-[-4px]', { 'shift-card-empty-text': !value }) }, value || '—'))));
|
|
1156
|
-
})))))), index.h("div", { key: '
|
|
1156
|
+
})))))), index.h("div", { key: '61c5b56c2a7cebbf21f7159102c75e3bc3048176', class: "flex p-[16px] [&>div]:grow overflow-auto gap-[16px] items-stretch justify-center md:justify-between flex-wrap" }, filteredFields.map(field => (index.h(materialCard.MaterialCard, { title: field.title, desc: field.value, minWidth: "250px" }))), !hiddenFields.includes('intermediaries') &&
|
|
1157
1157
|
((sale === null || sale === void 0 ? void 0 : sale.intermediaries) || []).map(intermediary => index.h(materialCard.MaterialCard, { title: texts.intermediaryName, desc: getText(intermediary === null || intermediary === void 0 ? void 0 : intermediary.companyName), minWidth: "250px" })))))));
|
|
1158
1158
|
}
|
|
1159
1159
|
get el() { return index.getElement(this); }
|
|
@@ -1236,7 +1236,7 @@ const VehicleServiceHistory = class {
|
|
|
1236
1236
|
{ key: 'serviceType', label: this.locale.serviceType, maxWidth: 420 },
|
|
1237
1237
|
{ key: 'mileage', label: this.locale.odometer, nowrap: true },
|
|
1238
1238
|
];
|
|
1239
|
-
return (index.h(index.Host, { key: '
|
|
1239
|
+
return (index.h(index.Host, { key: '214ea7f9322f4ded5dfe88ed30ec4b5e6e596205', translate: "no" }, index.h(vehicleInfoLayout.VehicleInfoLayout, { key: '2ab295e79de66098a037002316eaf9d25eb86ca6', isError: this.isError, coreOnly: this.coreOnly, isLoading: this.isLoading, header: (_a = this.vehicleLookup) === null || _a === void 0 ? void 0 : _a.vin, direction: this.locale.sharedLocales.direction, errorMessage: this.locale.sharedLocales.errors[this.errorMessage] || this.locale.sharedLocales.errors.wildCard }, index.h("div", { key: 'ceebe28112ce490245ebb6f4d37638138f74163a', class: "overflow-x-auto" }, index.h("information-table", { key: '38bfb22243c4c209794a3d1297be43cf5bd43f20', size: "small", allowAutoWidth: true, scrollExpandedIntoView: true, expandUsingEntireRow: true, headers: tableHeaders, isLoading: this.isLoading, rows: ((_b = this.vehicleLookup) === null || _b === void 0 ? void 0 : _b.serviceHistory) || [], subRowRenderer: (row) => index.h(ServiceHistorySubRow, { row: row, locale: this.locale }) })))));
|
|
1240
1240
|
}
|
|
1241
1241
|
get el() { return index.getElement(this); }
|
|
1242
1242
|
static get watchers() { return {
|
|
@@ -1306,7 +1306,7 @@ const VehicleSpecification = class {
|
|
|
1306
1306
|
catch (error) {
|
|
1307
1307
|
productionDate = null;
|
|
1308
1308
|
}
|
|
1309
|
-
return (index.h(index.Host, { key: '
|
|
1309
|
+
return (index.h(index.Host, { key: 'c7d7bae4704f9c1bfdc13eeb414ed22d99a04cdf', translate: "no" }, index.h(vehicleInfoLayout.VehicleInfoLayout, { key: '9ff22d904b28b77128c3db2229b4c15dc6e21c89', isError: this.isError, coreOnly: this.coreOnly, isLoading: this.isLoading, header: (_e = this.vehicleLookup) === null || _e === void 0 ? void 0 : _e.vin, direction: this.locale.sharedLocales.direction, errorMessage: this.locale.sharedLocales.errors[this.errorMessage] || this.locale.sharedLocales.errors.wildCard }, index.h("flexible-container", { key: 'ba632131f398ab9c7e864cd4344e327ec2ea4f31' }, index.h("div", { key: '8ca79e77610982b8e6aa00ea8b0acc6ccce1cafb', class: "flex p-[16px] [&>div]:grow overflow-auto gap-[16px] items-stretch justify-center md:justify-between flex-wrap" }, index.h(materialCard.MaterialCard, { key: 'b863b731893372b4cd193c0972172dae87d07a1a', class: "grow", title: texts === null || texts === void 0 ? void 0 : texts.model, minWidth: "300px" }, index.h(materialCard.MaterialCardChildren, { key: 'f6758abc6b10a2c3ad606de475ea13db520eb917', class: "text-center", hidden: !((_h = (_g = (_f = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _f === void 0 ? void 0 : _f.vehicleVariantInfo) === null || _g === void 0 ? void 0 : _g.modelCode) === null || _h === void 0 ? void 0 : _h.trim()) && !((_l = (_k = (_j = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _j === void 0 ? void 0 : _j.vehicleSpecification) === null || _k === void 0 ? void 0 : _k.modelDescription) === null || _l === void 0 ? void 0 : _l.trim()) }, ((_p = (_o = (_m = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _m === void 0 ? void 0 : _m.vehicleVariantInfo) === null || _o === void 0 ? void 0 : _o.modelCode) === null || _p === void 0 ? void 0 : _p.trim()) || '', " ", index.h("br", { key: '9265670a0c1584b0cca657152ca024fa6a5e3e01', class: "my-2" }), ((_s = (_r = (_q = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _q === void 0 ? void 0 : _q.vehicleSpecification) === null || _r === void 0 ? void 0 : _r.modelDescription) === null || _s === void 0 ? void 0 : _s.trim()) || '')), index.h(materialCard.MaterialCard, { key: '4a62dbe07fa9b77d803466df5f99ef3a7a14cfb9', class: "grow", title: texts === null || texts === void 0 ? void 0 : texts.variant, minWidth: "300px" }, index.h(materialCard.MaterialCardChildren, { key: '19dcf5e0e36c02fee2814c2904f19cb4e82deb80', class: "text-center", hidden: !((_v = (_u = (_t = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _t === void 0 ? void 0 : _t.identifiers) === null || _u === void 0 ? void 0 : _u.variant) === null || _v === void 0 ? void 0 : _v.trim()) && !((_y = (_x = (_w = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _w === void 0 ? void 0 : _w.vehicleSpecification) === null || _x === void 0 ? void 0 : _x.variantDescription) === null || _y === void 0 ? void 0 : _y.trim()) }, ((_1 = (_0 = (_z = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _z === void 0 ? void 0 : _z.identifiers) === null || _0 === void 0 ? void 0 : _0.variant) === null || _1 === void 0 ? void 0 : _1.trim()) || '', " ", index.h("br", { key: '6b8ea41c2414acaf2c108a8fdb83e734ae6477f2' }), ((_4 = (_3 = (_2 = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _2 === void 0 ? void 0 : _2.vehicleSpecification) === null || _3 === void 0 ? void 0 : _3.variantDescription) === null || _4 === void 0 ? void 0 : _4.trim()) || '')), index.h(materialCard.MaterialCard, { key: '1159bec426e817e4df6796ef6ca1f4e9e973e448', desc: ((_7 = (_6 = (_5 = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _5 === void 0 ? void 0 : _5.identifiers) === null || _6 === void 0 ? void 0 : _6.katashiki) === null || _7 === void 0 ? void 0 : _7.trim()) || '', title: texts === null || texts === void 0 ? void 0 : texts.katashiki, minWidth: "250px" }), index.h(materialCard.MaterialCard, { key: '2f41e1423b3bc4deaa2f632a7a6e404990e5e0e2', desc: ((_11 = (_10 = (_9 = (_8 = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _8 === void 0 ? void 0 : _8.vehicleVariantInfo) === null || _9 === void 0 ? void 0 : _9.modelYear) === null || _10 === void 0 ? void 0 : _10.toString()) === null || _11 === void 0 ? void 0 : _11.trim()) || '', title: texts === null || texts === void 0 ? void 0 : texts.modelYear, minWidth: "250px" }), index.h(materialCard.MaterialCard, { key: '6287100e29542ae8c7f06182067af75033abe37a', desc: productionDate ? productionDate : '', title: texts === null || texts === void 0 ? void 0 : texts.productionDate, minWidth: "250px" }), index.h(materialCard.MaterialCard, { key: '18f923cad3f4937afc3e6133aeece236b9912f6a', desc: ((_14 = (_13 = (_12 = this === null || this === void 0 ? void 0 : this.vehicleLookup) === null || _12 === void 0 ? void 0 : _12.vehicleVariantInfo) === null || _13 === void 0 ? void 0 : _13.sfx) === null || _14 === void 0 ? void 0 : _14.trim()) || '', title: texts === null || texts === void 0 ? void 0 : texts.sfx, minWidth: "250px" }))))));
|
|
1310
1310
|
}
|
|
1311
1311
|
get el() { return index.getElement(this); }
|
|
1312
1312
|
static get watchers() { return {
|
|
@@ -1616,6 +1616,404 @@ const VehicleWarrantyDetails = class {
|
|
|
1616
1616
|
};
|
|
1617
1617
|
VehicleWarrantyDetails.style = vehicleWarrantyDetailsCss();
|
|
1618
1618
|
|
|
1619
|
+
const warrantyTimelineSchema = types.yupTypeMapper([
|
|
1620
|
+
'dealer',
|
|
1621
|
+
'activatedBy',
|
|
1622
|
+
'broker',
|
|
1623
|
+
'authorized',
|
|
1624
|
+
'unauthorized',
|
|
1625
|
+
'activeWarranty',
|
|
1626
|
+
'notActiveWarranty',
|
|
1627
|
+
'warrantyCoverage',
|
|
1628
|
+
'totalPlannedProtection',
|
|
1629
|
+
'standardWarranty',
|
|
1630
|
+
'standardWarrantyMark',
|
|
1631
|
+
'extendedWarranty',
|
|
1632
|
+
'standard',
|
|
1633
|
+
'extended',
|
|
1634
|
+
'today',
|
|
1635
|
+
'year',
|
|
1636
|
+
'years',
|
|
1637
|
+
'month',
|
|
1638
|
+
'months',
|
|
1639
|
+
'warrantyNotStarted',
|
|
1640
|
+
'awaitingBrokerInvoice',
|
|
1641
|
+
'awaitingEndCustomerSale',
|
|
1642
|
+
'awaitingActivation',
|
|
1643
|
+
]);
|
|
1644
|
+
|
|
1645
|
+
const TONE_STANDARD = {
|
|
1646
|
+
base: 'var(--green)',
|
|
1647
|
+
dark: 'var(--green-dark)',
|
|
1648
|
+
tint: 'rgba(232, 244, 237, 0.9)',
|
|
1649
|
+
border: 'rgba(44, 138, 88, 0.55)',
|
|
1650
|
+
};
|
|
1651
|
+
// Extended coverages cycle through these. The prototype hard-coded one class per
|
|
1652
|
+
// provider; a vehicle can hold more than two, so the tone repeats and the segment's
|
|
1653
|
+
// alternating border style keeps neighbouring bands apart.
|
|
1654
|
+
const TONES_EXTENDED = [
|
|
1655
|
+
{ base: 'var(--blue)', dark: 'var(--blue-dark)', tint: 'rgba(232, 241, 248, 0.88)', border: 'rgba(48, 113, 169, 0.64)' },
|
|
1656
|
+
{ base: 'var(--violet)', dark: 'var(--violet-dark)', tint: 'rgba(240, 236, 247, 0.9)', border: 'rgba(117, 90, 165, 0.65)' },
|
|
1657
|
+
];
|
|
1658
|
+
const toTimestamp = (isoDate) => Date.parse(`${isoDate}T00:00:00Z`);
|
|
1659
|
+
/** DTO dates are serialized as yyyy-MM-dd, but tolerate a full timestamp. */
|
|
1660
|
+
const asDate = (value) => (value || '').slice(0, 10);
|
|
1661
|
+
const todayInUtc = () => new Date().toISOString().slice(0, 10);
|
|
1662
|
+
const clampPercentage = (value) => Math.min(100, Math.max(0, value));
|
|
1663
|
+
const asPercentage = (value) => `${value.toFixed(6)}%`;
|
|
1664
|
+
const monthsBetween = (start, end) => {
|
|
1665
|
+
const [startYear, startMonth, startDay] = start.split('-').map(Number);
|
|
1666
|
+
const [endYear, endMonth, endDay] = end.split('-').map(Number);
|
|
1667
|
+
const months = (endYear - startYear) * 12 + (endMonth - startMonth) - (endDay < startDay ? 1 : 0);
|
|
1668
|
+
return Math.max(0, months);
|
|
1669
|
+
};
|
|
1670
|
+
const formatDuration = (months, locale) => {
|
|
1671
|
+
const years = Math.floor(months / 12);
|
|
1672
|
+
const remainingMonths = months % 12;
|
|
1673
|
+
const parts = [];
|
|
1674
|
+
if (years)
|
|
1675
|
+
parts.push(`${years} ${years === 1 ? locale.year : locale.years}`);
|
|
1676
|
+
if (remainingMonths || !years)
|
|
1677
|
+
parts.push(`${remainingMonths} ${remainingMonths === 1 ? locale.month : locale.months}`);
|
|
1678
|
+
return parts.join(' ');
|
|
1679
|
+
};
|
|
1680
|
+
const buildCoverages = (vehicleInformation, locale) => {
|
|
1681
|
+
const warranty = vehicleInformation === null || vehicleInformation === void 0 ? void 0 : vehicleInformation.warranty;
|
|
1682
|
+
const coverages = [];
|
|
1683
|
+
const standardStart = asDate(warranty === null || warranty === void 0 ? void 0 : warranty.warrantyStartDate);
|
|
1684
|
+
const standardEnd = asDate(warranty === null || warranty === void 0 ? void 0 : warranty.warrantyEndDate);
|
|
1685
|
+
if (standardStart && standardEnd && toTimestamp(standardEnd) > toTimestamp(standardStart))
|
|
1686
|
+
coverages.push({
|
|
1687
|
+
id: 'standard',
|
|
1688
|
+
kind: 'standard',
|
|
1689
|
+
label: locale.standardWarranty,
|
|
1690
|
+
start: standardStart,
|
|
1691
|
+
end: standardEnd,
|
|
1692
|
+
tone: TONE_STANDARD,
|
|
1693
|
+
alt: false,
|
|
1694
|
+
});
|
|
1695
|
+
((warranty === null || warranty === void 0 ? void 0 : warranty.extendedWarranties) || [])
|
|
1696
|
+
.map(coverage => ({
|
|
1697
|
+
id: (coverage === null || coverage === void 0 ? void 0 : coverage.id) || '',
|
|
1698
|
+
name: (coverage === null || coverage === void 0 ? void 0 : coverage.name) || '',
|
|
1699
|
+
providerName: (coverage === null || coverage === void 0 ? void 0 : coverage.providerCompanyName) || '',
|
|
1700
|
+
logo: (coverage === null || coverage === void 0 ? void 0 : coverage.providerCompanyLogo) || '',
|
|
1701
|
+
start: asDate(coverage === null || coverage === void 0 ? void 0 : coverage.startDate),
|
|
1702
|
+
end: asDate(coverage === null || coverage === void 0 ? void 0 : coverage.endDate),
|
|
1703
|
+
}))
|
|
1704
|
+
.filter(coverage => coverage.start && coverage.end && toTimestamp(coverage.end) > toTimestamp(coverage.start))
|
|
1705
|
+
.sort((a, b) => toTimestamp(a.start) - toTimestamp(b.start))
|
|
1706
|
+
.forEach((coverage, index) => {
|
|
1707
|
+
coverages.push({
|
|
1708
|
+
id: coverage.id || `extended-${index}`,
|
|
1709
|
+
kind: 'extended',
|
|
1710
|
+
// The identifier is not a display string. A configured definition supplies a name;
|
|
1711
|
+
// a persisted entry has none, so those fall back to the generic label.
|
|
1712
|
+
label: coverage.name || locale.extendedWarranty,
|
|
1713
|
+
start: coverage.start,
|
|
1714
|
+
end: coverage.end,
|
|
1715
|
+
tone: TONES_EXTENDED[index % TONES_EXTENDED.length],
|
|
1716
|
+
alt: index % 2 === 1,
|
|
1717
|
+
logo: coverage.logo || undefined,
|
|
1718
|
+
providerName: coverage.providerName || undefined,
|
|
1719
|
+
});
|
|
1720
|
+
});
|
|
1721
|
+
return coverages;
|
|
1722
|
+
};
|
|
1723
|
+
/** Coverage name, qualified by the provider when one resolved. Used for the accessible text only. */
|
|
1724
|
+
const describe = (coverage) => (coverage.providerName ? `${coverage.label} · ${coverage.providerName}` : coverage.label);
|
|
1725
|
+
const coverageStatus = (coverage, today) => {
|
|
1726
|
+
const snapshot = toTimestamp(today);
|
|
1727
|
+
if (snapshot < toTimestamp(coverage.start))
|
|
1728
|
+
return 'upcoming';
|
|
1729
|
+
if (snapshot >= toTimestamp(coverage.end))
|
|
1730
|
+
return 'expired';
|
|
1731
|
+
return 'active';
|
|
1732
|
+
};
|
|
1733
|
+
/** Track drawn past the snapshot so the marker sits in the rail rather than on its edge. */
|
|
1734
|
+
const RAIL_HEADROOM = 0.04;
|
|
1735
|
+
/**
|
|
1736
|
+
* The span the rail draws. Coverage fixes one end; today is always inside it.
|
|
1737
|
+
*
|
|
1738
|
+
* A rail that stopped at the last expiry date would put "today" hard against its edge and lose the
|
|
1739
|
+
* one thing a lapsed warranty most needs to show — how long ago cover ran out. Drawing through to
|
|
1740
|
+
* today instead turns that into what it is: empty track, as wide as the time that has passed.
|
|
1741
|
+
*/
|
|
1742
|
+
const railRange = (coverages, today) => {
|
|
1743
|
+
const first = toTimestamp(coverages[0].start);
|
|
1744
|
+
const last = coverages.reduce((latest, coverage) => Math.max(latest, toTimestamp(coverage.end)), toTimestamp(coverages[0].end));
|
|
1745
|
+
const snapshot = toTimestamp(today);
|
|
1746
|
+
const headroom = Math.round((Math.max(last, snapshot) - Math.min(first, snapshot)) * RAIL_HEADROOM);
|
|
1747
|
+
return {
|
|
1748
|
+
from: first <= snapshot ? first : snapshot - headroom,
|
|
1749
|
+
to: last >= snapshot ? last : snapshot + headroom,
|
|
1750
|
+
};
|
|
1751
|
+
};
|
|
1752
|
+
const toneVariables = (tone) => ({
|
|
1753
|
+
'--tone': tone.base,
|
|
1754
|
+
'--tone-dark': tone.dark,
|
|
1755
|
+
'--tone-tint': tone.tint,
|
|
1756
|
+
'--tone-border': tone.border,
|
|
1757
|
+
});
|
|
1758
|
+
/** Clearance between two axis dates before they read as one smudge. */
|
|
1759
|
+
const AXIS_GAP = 10;
|
|
1760
|
+
/**
|
|
1761
|
+
* Hides the axis dates that would collide, always keeping the closing one.
|
|
1762
|
+
*
|
|
1763
|
+
* Crowding is not only a narrow-screen problem: consecutive coverages routinely hand over within a
|
|
1764
|
+
* week of each other on a rail spanning years, and those two labels overlap at any width. The
|
|
1765
|
+
* decision needs the measured width of rendered text, which the render pass cannot know, so it is
|
|
1766
|
+
* applied to the DOM afterwards and re-applied whenever the rail is resized.
|
|
1767
|
+
*/
|
|
1768
|
+
const thinAxis = (axis) => {
|
|
1769
|
+
if (!axis)
|
|
1770
|
+
return;
|
|
1771
|
+
const apply = () => {
|
|
1772
|
+
const dates = Array.from(axis.children);
|
|
1773
|
+
const railWidth = axis.clientWidth;
|
|
1774
|
+
// jsdom reports no layout, so specs leave every date alone rather than hiding all of them.
|
|
1775
|
+
if (dates.length < 2 || !railWidth)
|
|
1776
|
+
return;
|
|
1777
|
+
dates.forEach(date => date.classList.remove('is-crowded'));
|
|
1778
|
+
const last = dates.length - 1;
|
|
1779
|
+
const boxOf = (date) => {
|
|
1780
|
+
const at = (parseFloat(date.style.getPropertyValue('--at')) / 100) * railWidth;
|
|
1781
|
+
const width = date.offsetWidth;
|
|
1782
|
+
// Mirrors the stylesheet: a date at the rail's start runs rightwards from its tick, one at
|
|
1783
|
+
// its end leftwards from its own, and everything between is centred on its tick.
|
|
1784
|
+
if (date.dataset.align === 'start')
|
|
1785
|
+
return [at, at + width];
|
|
1786
|
+
if (date.dataset.align === 'end')
|
|
1787
|
+
return [at - width, at];
|
|
1788
|
+
return [at - width / 2, at + width / 2];
|
|
1789
|
+
};
|
|
1790
|
+
const boxes = dates.map(boxOf);
|
|
1791
|
+
const survives = new Set([0, last]);
|
|
1792
|
+
let occupiedTo = boxes[0][1];
|
|
1793
|
+
for (let index = 1; index < last; index++) {
|
|
1794
|
+
const [left, right] = boxes[index];
|
|
1795
|
+
if (left < occupiedTo + AXIS_GAP)
|
|
1796
|
+
continue;
|
|
1797
|
+
if (right + AXIS_GAP > boxes[last][0])
|
|
1798
|
+
continue;
|
|
1799
|
+
survives.add(index);
|
|
1800
|
+
occupiedTo = right;
|
|
1801
|
+
}
|
|
1802
|
+
// A rail too narrow to hold even the two bounds keeps the closing date: when the cover runs out
|
|
1803
|
+
// is the question the panel is answering.
|
|
1804
|
+
if (boxes[0][1] + AXIS_GAP > boxes[last][0])
|
|
1805
|
+
survives.delete(0);
|
|
1806
|
+
dates.forEach((date, index) => date.classList.toggle('is-crowded', !survives.has(index)));
|
|
1807
|
+
};
|
|
1808
|
+
const schedule = () => (typeof requestAnimationFrame === 'function' ? requestAnimationFrame(apply) : apply());
|
|
1809
|
+
schedule();
|
|
1810
|
+
// Both triggers are needed and neither is enough on its own: the rail resizes without the dates
|
|
1811
|
+
// changing, and switching vehicle replaces the dates without the rail resizing.
|
|
1812
|
+
if (axis.__axisWatched)
|
|
1813
|
+
return;
|
|
1814
|
+
axis.__axisWatched = true;
|
|
1815
|
+
if (typeof ResizeObserver !== 'undefined')
|
|
1816
|
+
new ResizeObserver(schedule).observe(axis);
|
|
1817
|
+
if (typeof MutationObserver !== 'undefined')
|
|
1818
|
+
new MutationObserver(schedule).observe(axis, { childList: true });
|
|
1819
|
+
};
|
|
1820
|
+
/** Pulls the snapshot pill back onto the rail when centring it would overhang either edge. */
|
|
1821
|
+
const positionTodayPill = (head, todayPosition) => {
|
|
1822
|
+
if (!head)
|
|
1823
|
+
return;
|
|
1824
|
+
const apply = () => {
|
|
1825
|
+
const pill = head.firstElementChild;
|
|
1826
|
+
if (!pill || !head.clientWidth)
|
|
1827
|
+
return;
|
|
1828
|
+
const pillCentre = (head.clientWidth * clampPercentage(todayPosition)) / 100;
|
|
1829
|
+
head.classList.toggle('is-near-end', pillCentre + pill.offsetWidth / 2 > head.clientWidth);
|
|
1830
|
+
head.classList.toggle('is-near-start', pillCentre - pill.offsetWidth / 2 < 0);
|
|
1831
|
+
};
|
|
1832
|
+
if (typeof requestAnimationFrame === 'function')
|
|
1833
|
+
requestAnimationFrame(apply);
|
|
1834
|
+
else
|
|
1835
|
+
apply();
|
|
1836
|
+
};
|
|
1837
|
+
// Inline rather than an ~assets import: the glyph takes its colour from the badge
|
|
1838
|
+
// state via currentColor, which an <img src> cannot do.
|
|
1839
|
+
const BADGE_GLYPHS = {
|
|
1840
|
+
positive: 'M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z',
|
|
1841
|
+
negative: 'M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z',
|
|
1842
|
+
};
|
|
1843
|
+
/**
|
|
1844
|
+
* Why the warranty has not started. Possession is not a sale: while the distributor, an intermediary
|
|
1845
|
+
* or an un-invoiced broker still holds the vehicle, coverage deliberately has not begun and the
|
|
1846
|
+
* holder's invoice date is not used — the customer would lose that period off the front. The panel
|
|
1847
|
+
* says so rather than showing an unexplained empty rail.
|
|
1848
|
+
*
|
|
1849
|
+
* Only the broker case is derivable from the response; the supply-chain cases depend on the host's
|
|
1850
|
+
* own company classification, so the reason is read from the DTO. An older API that does not send
|
|
1851
|
+
* `startState` reads as started and shows nothing, exactly as before.
|
|
1852
|
+
*/
|
|
1853
|
+
const notStartedMessage = (vehicleInformation, locale) => {
|
|
1854
|
+
var _a, _b, _c;
|
|
1855
|
+
const startState = (_a = vehicleInformation === null || vehicleInformation === void 0 ? void 0 : vehicleInformation.warranty) === null || _a === void 0 ? void 0 : _a.startState;
|
|
1856
|
+
if (!vehicleInformation || !startState || startState === 'Started')
|
|
1857
|
+
return '';
|
|
1858
|
+
if (startState === 'AwaitingBrokerInvoice')
|
|
1859
|
+
return locale.awaitingBrokerInvoice + (((_c = (_b = vehicleInformation === null || vehicleInformation === void 0 ? void 0 : vehicleInformation.saleInformation) === null || _b === void 0 ? void 0 : _b.broker) === null || _c === void 0 ? void 0 : _c.brokerName) || '');
|
|
1860
|
+
if (startState === 'AwaitingEndCustomerSale')
|
|
1861
|
+
return locale.awaitingEndCustomerSale;
|
|
1862
|
+
return locale.awaitingActivation;
|
|
1863
|
+
};
|
|
1864
|
+
/**
|
|
1865
|
+
* The one row the card is allowed to gain and lose. The grid track animates the height rather than
|
|
1866
|
+
* the content, so the row still slides shut on the frame its message is cleared. Everything else
|
|
1867
|
+
* keeps its place and fades, which is what holds the card to a single height across vehicles.
|
|
1868
|
+
*/
|
|
1869
|
+
const Collapsible = ({ open }, children) => (index.h("div", { class: "collapsible", "data-open": open ? 'true' : 'false', "aria-hidden": open ? null : 'true' }, index.h("div", { class: "collapsible-body" }, children)));
|
|
1870
|
+
const NoticeStrip = ({ text }) => (index.h("div", { class: "warranty-notice", role: "status" }, index.h("svg", { class: "notice-icon", viewBox: "0 0 512 512", "aria-hidden": "true", focusable: "false" }, index.h("path", { fill: "currentColor", d: BADGE_GLYPHS.negative })), index.h("span", null, text)));
|
|
1871
|
+
/**
|
|
1872
|
+
* A verdict, or the absence of one. Before a lookup there is no vehicle to judge, and an absent
|
|
1873
|
+
* `isAuthorized` reading as `false` opened the panel accusing every vehicle of being unauthorized
|
|
1874
|
+
* and out of cover. The idle chip keeps its box and its split cap so nothing shifts when the
|
|
1875
|
+
* verdict lands, and asserts nothing until it does — the treatment the older warranty panel
|
|
1876
|
+
* already gives its own cards.
|
|
1877
|
+
*/
|
|
1878
|
+
const StatusBadge = ({ state, text }) => {
|
|
1879
|
+
const idle = state === 'idle';
|
|
1880
|
+
return (index.h("span", { class: `status-badge is-${state}`, "aria-label": idle ? null : text, "aria-hidden": idle ? 'true' : null }, index.h("svg", { class: "badge-icon", viewBox: "0 0 512 512", "aria-hidden": "true", focusable: "false" }, !idle && index.h("path", { fill: "currentColor", d: state === 'positive' ? BADGE_GLYPHS.positive : BADGE_GLYPHS.negative })), index.h("span", null, idle ? '' : text)));
|
|
1881
|
+
};
|
|
1882
|
+
function CoverageTimeline({ vehicleInformation, locale, isAuthorized, today }) {
|
|
1883
|
+
var _a, _b;
|
|
1884
|
+
const snapshot = today || todayInUtc();
|
|
1885
|
+
const coverages = buildCoverages(vehicleInformation, locale);
|
|
1886
|
+
const hasCoverage = coverages.length > 0;
|
|
1887
|
+
const dealerName = ((_a = vehicleInformation === null || vehicleInformation === void 0 ? void 0 : vehicleInformation.saleInformation) === null || _a === void 0 ? void 0 : _a.companyName) || '';
|
|
1888
|
+
const notice = notStartedMessage(vehicleInformation, locale);
|
|
1889
|
+
// The broker that actually anchored the warranty — a warranty fact, not a sale fact, so it is read
|
|
1890
|
+
// from the warranty DTO rather than inferred from the presence of a broker on the sale.
|
|
1891
|
+
const activatingBroker = ((_b = vehicleInformation === null || vehicleInformation === void 0 ? void 0 : vehicleInformation.warranty) === null || _b === void 0 ? void 0 : _b.activatedByBrokerName) || '';
|
|
1892
|
+
// "Activated by" is only truthful once something started the coverage. Before that the company is
|
|
1893
|
+
// just the dealer holding it, and when a broker started it both parties matter.
|
|
1894
|
+
const dealerLabel = activatingBroker || notice ? locale.dealer : locale.activatedBy;
|
|
1895
|
+
const hasActiveWarranty = coverages.some(coverage => coverageStatus(coverage, snapshot) === 'active');
|
|
1896
|
+
// Both chips are verdicts about a vehicle, so neither can be given before there is one to judge.
|
|
1897
|
+
const verdict = (isPositive) => (!vehicleInformation ? 'idle' : isPositive ? 'positive' : 'negative');
|
|
1898
|
+
const range = hasCoverage ? railRange(coverages, snapshot) : { from: 0, to: 1 };
|
|
1899
|
+
const positionInRange = (isoDate) => ((toTimestamp(isoDate) - range.from) / (range.to - range.from)) * 100;
|
|
1900
|
+
// The stripe is proportioned across the cover itself, not the rail. The rail stretches to reach
|
|
1901
|
+
// today, so sharing its scale would leave the stripe part-drawn, with the last band's colour
|
|
1902
|
+
// running out to the edge on any vehicle whose warranty has lapsed.
|
|
1903
|
+
const planFrom = hasCoverage ? toTimestamp(coverages[0].start) : 0;
|
|
1904
|
+
const planTo = hasCoverage ? coverages.reduce((latest, coverage) => Math.max(latest, toTimestamp(coverage.end)), planFrom + 1) : 1;
|
|
1905
|
+
const positionInPlan = (isoDate) => ((toTimestamp(isoDate) - planFrom) / (planTo - planFrom)) * 100;
|
|
1906
|
+
const ticks = hasCoverage ? Array.from(new Set(coverages.flatMap(coverage => [coverage.start, coverage.end]))).sort((a, b) => toTimestamp(a) - toTimestamp(b)) : [];
|
|
1907
|
+
// Inside the rail by construction; clamped anyway so malformed dates can never put an element at
|
|
1908
|
+
// `left: 190%`, which widens the rail to match and makes the card scroll sideways to reach it.
|
|
1909
|
+
const todayPosition = hasCoverage ? clampPercentage(positionInRange(snapshot)) : 0;
|
|
1910
|
+
const cardAccent = !hasCoverage
|
|
1911
|
+
? // No bands means no coverage to describe, so the accent must not fall through to a
|
|
1912
|
+
// green/blue/violet gradient — that reads as a three-stage plan on a vehicle that has none.
|
|
1913
|
+
// Red when we are saying why coverage has not started, otherwise inert.
|
|
1914
|
+
notice
|
|
1915
|
+
? 'var(--red)'
|
|
1916
|
+
: 'var(--line)'
|
|
1917
|
+
: coverages.length === 1
|
|
1918
|
+
? TONE_STANDARD.base
|
|
1919
|
+
: `linear-gradient(90deg, ${coverages
|
|
1920
|
+
.map(coverage => `${coverage.tone.base} ${asPercentage(positionInPlan(coverage.start))} ${asPercentage(positionInPlan(coverage.end))}`)
|
|
1921
|
+
.join(', ')})`;
|
|
1922
|
+
const summary = coverages.map(coverage => `${describe(coverage)}: ${coverage.start} — ${coverage.end} (${coverageStatus(coverage, snapshot)})`).join('. ');
|
|
1923
|
+
// One structure for every vehicle. Blocks a vehicle has nothing to put in fade out in place
|
|
1924
|
+
// instead of being dropped, so moving between vehicles does not resize the card under the reader.
|
|
1925
|
+
return (index.h("article", { class: "coverage-timeline warranty-card", "data-empty": hasCoverage ? 'false' : 'true', style: { '--card-accent': cardAccent } }, index.h("header", { class: "activation-header" }, index.h("div", { class: "activation-main" }, index.h("p", { class: "activation-title" }, index.h("span", null, dealerLabel, ":"), " ", index.h("strong", null, dealerName || '—')), index.h("div", { class: "broker-slot", "data-empty": activatingBroker ? 'false' : 'true', "aria-hidden": activatingBroker ? null : 'true' }, index.h("p", { class: "activation-broker" }, index.h("span", null, locale.broker, ":"), " ", index.h("strong", null, activatingBroker)))), index.h("div", { class: "total-slot", "data-empty": hasCoverage ? 'false' : 'true', "aria-hidden": hasCoverage ? null : 'true' }, index.h(TotalCoverage, { coverages: coverages, locale: locale }))), index.h(Collapsible, { open: !!notice }, index.h(NoticeStrip, { text: notice })), index.h("section", { class: "journey", "aria-label": locale.warrantyCoverage }, index.h("div", { class: "journey-head" }, index.h(StatusBadge, { state: verdict(isAuthorized), text: isAuthorized ? locale.authorized : locale.unauthorized }), index.h(StatusBadge, { state: verdict(hasActiveWarranty), text: hasActiveWarranty ? locale.activeWarranty : locale.notActiveWarranty })), index.h("div", { class: "timeline-shell", "data-empty": hasCoverage ? 'false' : 'true', "aria-hidden": hasCoverage ? null : 'true' }, index.h("div", { class: "timeline shift-skeleton", role: "group", "aria-label": locale.warrantyCoverage }, index.h("div", { class: "today-head", "aria-hidden": "true", style: { '--at': asPercentage(todayPosition) }, ref: element => positionTodayPill(element, todayPosition) }, hasCoverage && index.h("span", { class: "today-pill" }, `${locale.today} · ${snapshot}`)), index.h("div", { class: "axis", "aria-hidden": "true", ref: thinAxis }, ticks.map(tick => {
|
|
1926
|
+
const at = positionInRange(tick);
|
|
1927
|
+
// Ticks no longer necessarily reach the rail's ends — a lapsed warranty's dates all
|
|
1928
|
+
// sit left of today — so which way a date is set follows its position rather than
|
|
1929
|
+
// its place in the list.
|
|
1930
|
+
return (index.h("span", { class: "axis-date", key: tick, "data-align": at <= 0.5 ? 'start' : at >= 99.5 ? 'end' : 'mid', style: { '--at': asPercentage(at) } }, tick));
|
|
1931
|
+
})), index.h("div", { class: "lane" }, hasCoverage && index.h("span", { class: "today-tail", "aria-hidden": "true", style: { '--at': asPercentage(todayPosition) } }), index.h("div", { class: "coverage-list", role: "list" }, coverages.map(coverage => {
|
|
1932
|
+
const status = coverageStatus(coverage, snapshot);
|
|
1933
|
+
const start = positionInRange(coverage.start);
|
|
1934
|
+
const span = positionInRange(coverage.end) - start;
|
|
1935
|
+
return (index.h("div", { key: coverage.id, role: "listitem", class: "coverage-entry", "data-kind": coverage.kind, "data-status": status, "aria-label": `${describe(coverage)}, ${coverage.start} — ${coverage.end}`, style: Object.assign({ '--start': asPercentage(start), '--span': asPercentage(span) }, toneVariables(coverage.tone)) }, index.h("div", { class: `segment ${coverage.kind === 'standard' ? 'is-standard' : 'is-extended'}${coverage.alt ? ' tone-alt' : ''}` }, coverage.kind === 'standard' ? (index.h("strong", null, locale.standardWarrantyMark)) : coverage.logo ? (
|
|
1936
|
+
// Decorative: the provider is already named in the entry's aria-label,
|
|
1937
|
+
// so alt text here would announce it twice.
|
|
1938
|
+
index.h("img", { class: "provider-logo", src: coverage.logo, alt: "", loading: "lazy" })) : null), index.h("span", { class: "coverage-label" }, coverage.label)));
|
|
1939
|
+
})), hasCoverage && index.h("span", { class: "past-wash", "aria-hidden": "true", style: { '--to': asPercentage(todayPosition) } }), index.h("div", { class: "boundary-layer", "aria-hidden": "true" }, coverages.slice(1).map(coverage => (index.h("span", { key: coverage.id, class: "boundary", style: Object.assign({ '--at': asPercentage(positionInRange(coverage.start)) }, toneVariables(coverage.tone)) })))), hasCoverage && index.h("span", { class: "today-marker", "aria-hidden": "true", style: { '--at': asPercentage(todayPosition) } })), hasCoverage && index.h("p", { class: "sr-only" }, summary))))));
|
|
1940
|
+
}
|
|
1941
|
+
function TotalCoverage({ coverages, locale }) {
|
|
1942
|
+
const monthsFor = (kind) => coverages.filter(coverage => coverage.kind === kind).reduce((total, coverage) => total + monthsBetween(coverage.start, coverage.end), 0);
|
|
1943
|
+
const standardMonths = monthsFor('standard');
|
|
1944
|
+
const extendedMonths = monthsFor('extended');
|
|
1945
|
+
const mix = [
|
|
1946
|
+
standardMonths ? `${formatDuration(standardMonths, locale)} ${locale.standard}` : '',
|
|
1947
|
+
extendedMonths ? `${formatDuration(extendedMonths, locale)} ${locale.extended}` : '',
|
|
1948
|
+
]
|
|
1949
|
+
.filter(Boolean)
|
|
1950
|
+
.join(' + ');
|
|
1951
|
+
// The block keeps its box on a vehicle with no coverage so the header does not resize, but it
|
|
1952
|
+
// reports no total rather than a total of zero — and a dash is narrow enough that it does not
|
|
1953
|
+
// reflow the label beside it, which is what made the invisible block taller than a real one.
|
|
1954
|
+
const total = mix ? formatDuration(standardMonths + extendedMonths, locale) : '—';
|
|
1955
|
+
return (index.h("aside", { class: "total-coverage", "aria-label": `${locale.totalPlannedProtection}: ${mix || total}` }, index.h("span", null, locale.totalPlannedProtection), index.h("strong", null, total), index.h("span", { class: "coverage-mix" }, mix)));
|
|
1956
|
+
}
|
|
1957
|
+
|
|
1958
|
+
const vehicleWarrantyTimelineCss = () => `*,: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}.sr-only{clip:rect(0,0,0,0);border: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!important}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.absolute{position:absolute}.\\!relative{position:relative!important}.relative{position:relative}.left-0{left:0}.top-0{top:0}.isolate{isolation:isolate}.z-10{z-index:10}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.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))}.flex-wrap{flex-wrap:wrap}.\\!overflow-hidden{overflow:hidden!important}.rounded{border-radius:.25rem}.rounded-\\[4px\\]{border-radius:4px}.border{border-width:1px}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-100{opacity:1}.outline{outline-style:solid}.ring{--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(3px + 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)}.grayscale{--tw-grayscale:grayscale(100%)}.filter,.grayscale{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)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.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-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-color:#dde1e6;background-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.85) 50%,hsla(0,0%,100%,0));background-repeat:no-repeat;background-size:300% 300%;background-size:45% 100%;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{--paper:#fff;--ink:#1a2530;--muted:#5f6c78;--line:#d5dce2;--line-soft:#e8ecef;--blue:#3071a9;--blue-dark:#275e8f;--green:#2c8a58;--green-dark:#216b44;--red:#b42318;--red-dark:#9b2c2c;--red-tint:#fff1f0;--green-tint:#e8f4ed;--violet:#755aa5;--violet-dark:#5f4887;--paper-soft:#f7f9fa;--blue-tint:#e8f1f8;--shadow:0 18px 45px rgba(27,45,61,.1),0 2px 7px rgba(27,45,61,.06);--settle:320ms;--leave-scale:1.25;--rail-leave-scale:1.06;container-name:warranty-panel;container-type:inline-size;display:block}.coverage-timeline,.coverage-timeline *,.coverage-timeline :after,.coverage-timeline :before{box-sizing:border-box}.coverage-timeline{color:var(--ink);font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif}.warranty-card{background:var(--paper);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);overflow:hidden;position:relative;width:100%}.warranty-card:before{background:var(--card-accent,var(--line));content:"";height:4px;inset:0 0 auto;position:absolute;transition:opacity var(--settle) ease;z-index:3}.collapsible{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows var(--settle) ease,opacity calc(var(--settle) - 60ms) ease}.collapsible[data-open=true]{grid-template-rows:1fr;opacity:1}.collapsible-body{overflow:hidden}.activation-broker,.activation-title,.status-badge>span,.total-coverage,.warranty-notice>span{transition:opacity var(--settle) ease,transform var(--settle) ease}.activation-broker,.activation-title,.warranty-notice>span{transform-origin:left center}.total-coverage{background:transparent;border:0;border-inline-start:2px solid var(--green);border-radius:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;padding:2px 0 2px 14px}.total-coverage,[dir=rtl] .activation-broker,[dir=rtl] .activation-title,[dir=rtl] .warranty-notice>span{transform-origin:right center}[dir=rtl] .total-coverage{transform-origin:left center}.loading .activation-broker,.loading .activation-title,.loading .status-badge>span,.loading .total-coverage,.loading .warranty-notice>span{opacity:0;transform:scale(var(--leave-scale))}.notice-icon{flex:0 0 auto;height:16px;transition:opacity var(--settle) ease;width:16px}.loading .badge-icon,.loading .notice-icon{opacity:0}.axis,.lane,.today-head{transition:opacity var(--settle) ease,transform var(--settle) ease}.loading .axis,.loading .lane,.loading .today-head{opacity:0;transform:scale(var(--rail-leave-scale))}.loading .shift-skeleton:after{animation:warranty-sheen 1.3s linear infinite}@keyframes warranty-sheen{0%{background-position:-100% 0}to{background-position:200% 0}}.loading .warranty-card:before{opacity:0}.broker-slot,.timeline-shell,.total-slot{transition:opacity var(--settle) ease}.broker-slot[data-empty=true],.broker-slot[data-empty=true] .activation-broker,.collapsible[data-open=false] .notice-icon,.collapsible[data-open=false] .warranty-notice>span,.total-slot[data-empty=true],.total-slot[data-empty=true] .total-coverage{opacity:0}.timeline-shell[data-empty=true]{opacity:.45}.activation-header{align-items:center;display:grid;gap:14px;grid-template-columns:minmax(130px,1fr) auto;padding:14px 20px 12px}.activation-main{min-width:0}.status-badge{align-items:center;border-radius:999px;display:inline-flex;flex:1 1 0;font-size:13px;font-weight:700;gap:0;letter-spacing:-.005em;line-height:1.15;min-height:30px;min-width:0;overflow:hidden;padding:0;transition:color var(--settle) ease,background var(--settle) ease,box-shadow var(--settle) ease}.status-badge.is-positive{background:var(--green-tint);box-shadow:inset 0 0 0 1px rgba(44,138,88,.32);color:var(--green-dark)}.status-badge.is-negative{background:var(--red-tint);box-shadow:inset 0 0 0 1px rgba(180,35,24,.28);color:var(--red-dark)}.status-badge.is-idle{background:var(--line-soft);box-shadow:inset 0 0 0 1px rgba(95,108,120,.22);color:var(--muted)}.status-badge.is-idle .badge-icon{background:var(--line)}.status-badge>span{flex:1 1 auto;padding:6px 13px 6px 11px;text-align:center}.badge-icon{align-self:stretch;box-sizing:border-box;color:#fff;display:block;flex:0 0 auto;height:auto;padding:6px 9px;transition:opacity var(--settle) ease,background var(--settle) ease;width:34px}.status-badge.is-positive .badge-icon{background:var(--green)}.status-badge.is-negative .badge-icon{background:var(--red)}.loading .status-badge{animation:warranty-sheen 1.3s linear infinite;background-color:#dcdfe4;background-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.85) 50%,hsla(0,0%,100%,0));background-repeat:no-repeat;background-size:45% 100%;box-shadow:inset 0 0 0 1px rgba(95,108,120,.42)}.loading .status-badge .badge-icon{background:#dcdfe4}.loading .warranty-notice{animation:warranty-sheen 1.3s linear infinite;background-color:#dcdfe4;background-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.85) 50%,hsla(0,0%,100%,0));background-repeat:no-repeat;background-size:45% 100%;box-shadow:inset 0 1px 0 rgba(95,108,120,.42),inset 0 -1px 0 rgba(95,108,120,.42)}.activation-title{font-size:clamp(16px,3.2cqw,20px);font-weight:500;letter-spacing:-.025em;line-height:1.15;margin:0;overflow-wrap:anywhere}.activation-title span{color:var(--muted)}.activation-title strong{color:var(--ink);font-weight:760}.activation-broker{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;font-size:13px;font-weight:500;line-height:1.2;margin:3px 0 0;overflow:hidden;overflow-wrap:anywhere}.activation-broker span{color:var(--muted)}.activation-broker strong{color:var(--ink);font-weight:700}.warranty-notice{align-items:center;background:var(--red-tint);border-radius:0;box-shadow:inset 0 1px 0 rgba(180,35,24,.18),inset 0 -1px 0 rgba(180,35,24,.18);color:var(--red-dark);display:flex;font-size:13px;font-weight:650;gap:8px;line-height:1.3;margin-bottom:10px;padding:9px 20px}.total-slot{min-width:250px}.total-coverage span{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.total-coverage strong{align-self:center;color:var(--green-dark);font-size:20px;grid-column:2;grid-row:1/span 2;line-height:1.1;margin:0 0 0 10px}.total-coverage .coverage-mix{color:var(--muted);font-size:9px;font-weight:600;letter-spacing:0;line-height:1.3;margin-top:2px;min-height:1.3em;text-transform:none}.journey{border-top:1px dashed var(--line);padding:10px 20px 12px}.journey-head{align-items:stretch;display:flex;flex-wrap:wrap;gap:7px 12px;justify-content:space-between;margin-bottom:8px}.timeline-shell{background:var(--paper-soft);border:1px solid var(--line);border-radius:10px;overflow:hidden;position:relative}.timeline{--axis-height:18px;padding:12px 14px 7px}.axis{border-bottom:1px solid #bdc7cf;height:var(--axis-height);margin:0 8px;position:relative;z-index:2}.axis-date{background:var(--paper-soft);color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:800;inset:0 auto auto var(--at);line-height:1;padding:0 3px;position:absolute;transform:translateX(-50%);white-space:nowrap}.axis-date.is-crowded{display:none}.axis-date[data-align=start]{transform:none}.axis-date[data-align=end]{transform:translateX(-100%)}.axis-date:after{background:#aeb9c2;content:"";height:12px;left:50%;position:absolute;top:var(--axis-height);width:1px}.axis-date[data-align=start]:after{left:0}.axis-date[data-align=end]:after{left:100%}.lane{--track-top:16px;--track-height:54px;--label-band:41px;height:calc(var(--track-top) + var(--track-height) + var(--label-band));isolation:isolate;margin:0 8px;position:relative}.lane:before{background:repeating-linear-gradient(-45deg,rgba(95,108,120,.035) 0 5px,transparent 5px 10px),#edf1f3;border:1px solid var(--line-soft);border-radius:8px;content:"";height:var(--track-height);inset:var(--track-top) 0 auto;position:absolute}.today-head{height:50px;margin:0 8px;position:relative}.today-pill{background:var(--blue-tint);border:1px solid rgba(48,113,169,.32);border-radius:999px;color:var(--blue-dark);font-size:9px;font-weight:800;left:var(--at);letter-spacing:.04em;padding:3px 6px;position:absolute;top:0;transform:translateX(-50%);white-space:nowrap}.today-head.is-near-end .today-pill{transform:translateX(calc(-100% + 8px))}.today-head.is-near-start .today-pill{transform:translateX(-8px)}.today-marker{bottom:var(--label-band);left:var(--at);pointer-events:none;position:absolute;top:calc(var(--axis-height)*-1 - 21px);width:0;z-index:5}.today-marker:before{background:var(--blue);bottom:0;box-shadow:0 0 0 1px hsla(0,0%,100%,.72);content:"";left:-1px;position:absolute;top:0;width:2px}.today-tail{bottom:0;left:var(--at);pointer-events:none;position:absolute;top:calc(100% - var(--label-band));width:0;z-index:0}.today-tail:before{background:var(--blue);box-shadow:0 0 0 1px hsla(0,0%,100%,.72);content:"";inset:0 auto 0 -1px;position:absolute;width:2px}.today-marker:after{background:var(--paper);border:2px solid var(--blue);border-radius:50%;content:"";height:8px;left:0;position:absolute;top:0;transform:translateX(-50%);width:8px}.coverage-entry{left:var(--start);min-width:0;position:absolute;top:var(--track-top);transition:opacity .16s ease,filter .16s ease;width:var(--span);z-index:var(--layer,1)}.coverage-list{inset:0;position:absolute;z-index:1}.segment{align-items:center;border:1px solid;border-radius:8px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.56);display:flex;height:var(--track-height);justify-content:center;min-width:0;overflow:hidden;position:relative;width:100%}.segment.is-standard{background:var(--tone-tint);border-color:var(--tone-border);border-inline-start:4px solid var(--tone);color:var(--tone-dark);justify-content:flex-start;padding:0 16px}.segment.is-standard strong{font-size:12px;font-weight:800;letter-spacing:.015em}.segment.is-extended{background:var(--tone-tint);border-color:var(--tone-border);border-style:dashed}.segment.is-extended.tone-alt{border-style:dotted;border-width:2px}.provider-logo{display:block;flex:0 0 auto;height:46px;max-width:calc(100% - 12px);-o-object-fit:contain;object-fit:contain;width:auto}.coverage-label{-webkit-box-orient:vertical;-webkit-line-clamp:3;color:var(--ink);display:-webkit-box;font-size:10px;font-weight:800;line-height:1.2;margin-top:5px;min-height:24px;overflow:hidden;overflow-wrap:anywhere;padding:0 4px;text-align:center;width:100%}.boundary{background:var(--tone,var(--blue));border:2px solid var(--paper);border-radius:50%;box-shadow:0 0 0 1px var(--tone-border,rgba(48,113,169,.46));height:10px;left:var(--at);top:calc(var(--track-top) + var(--track-height)/2);transform:translate(-50%,-50%);width:10px;z-index:6}.boundary,.past-wash{pointer-events:none;position:absolute}.past-wash{backdrop-filter:grayscale(.92);-webkit-backdrop-filter:grayscale(.92);background:linear-gradient(90deg,rgba(228,233,236,.62),rgba(228,233,236,.46));border-radius:8px 0 0 8px;height:var(--track-height);left:0;top:var(--track-top);width:var(--to,0);z-index:4}.boundary-layer{inset:0;pointer-events:none;position:absolute;z-index:6}@container warranty-panel (max-width: 820px){.activation-header{gap:6px 10px;grid-template-columns:minmax(0,1fr) auto;padding:10px 12px 9px}.activation-title{font-size:16px}.total-slot{justify-self:end;min-width:0;width:clamp(170px,50cqw,190px)}.total-coverage{padding-inline-start:10px}.total-coverage .coverage-mix{min-height:2.6em}}@container warranty-panel (max-width: 700px){.warranty-notice{font-size:12px;margin-bottom:8px;padding:8px 12px}.journey{padding:8px 8px 10px}.journey-head{gap:6px;margin-bottom:6px;padding-inline:4px}.status-badge{font-size:12px;min-height:28px}.status-badge>span{padding:5px 10px 5px 9px}.badge-icon{padding:5px 8px;width:30px}.timeline{--axis-height:30px;padding:10px 10px 5px}.today-head.is-near-end .today-pill{transform:translateX(calc(-100% - 46px))}.today-head.is-near-end .today-pill:after{border-top:1px solid rgba(48,113,169,.42);content:"";left:100%;position:absolute;top:50%;width:46px}.axis-date[data-align=end]{top:13px}.axis-date[data-align=end]:after{top:calc(var(--axis-height) - 13px)}}@container warranty-panel (max-width: 430px){.journey-head{align-items:stretch;flex-direction:column}.status-badge{justify-content:center}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.h-\\[200px\\]{height:200px}.w-full{width:100%}.items-center{align-items:center}.justify-center{justify-content:center}.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}.mx-auto{margin-left:auto;margin-right:auto}.size-\\[100px\\]{height:100px;width:100px}.size-full{height:100%;width:100%}.h-auto{height:auto}.max-h-\\[100px\\]{max-height:100px}.w-auto{width:auto}.w-fit{width:fit-content}.max-w-\\[100px\\]{max-width:100px}.shrink-0{flex-shrink:0}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.gap-\\[4px\\]{gap:4px}.overflow-x-auto{overflow-x:auto}.rounded-lg{border-radius:.5rem}.bg-black\\/40{background-color:rgba(0,0,0,.4)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.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)}.duration-300{transition-duration:.3s}.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)}.pointer-events-auto{pointer-events:auto}.bottom-\\[40px\\]{bottom:40px}.left-1\\/2{left:50%}.left-\\[30px\\]{left:30px}.ml-\\[-125px\\]{margin-left:-125px}.box-content{box-sizing:content-box}.size-\\[30px\\]{height:30px;width:30px}.size-\\[90px\\]{height:90px;width:90px}.h-10{height:2.5rem}.h-\\[320px\\]{height:320px}.h-full{height:100%}.w-1\\/2{width:50%}.w-\\[150\\%\\]{width:150%}.w-\\[90\\%\\]{width:90%}.w-\\[calc\\(100\\%-0px\\)\\]{width:100%}.w-\\[calc\\(100\\%-60px\\)\\]{width:calc(100% - 60px)}.min-w-full{min-width:100%}.-translate-x-1\\/2{--tw-translate-x:-50%}.-translate-x-1\\/2,.translate-y-0{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))}.translate-y-0{--tw-translate-y:0px}.translate-y-\\[-50\\%\\]{--tw-translate-y:-50%}.translate-y-\\[-50\\%\\],.translate-y-\\[-5px\\]{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))}.translate-y-\\[-5px\\]{--tw-translate-y:-5px}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-\\[70\\%\\]{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-\\[70\\%\\]{--tw-scale-x:70%;--tw-scale-y:70%}.resize{resize:both}.justify-between{justify-content:space-between}.gap-\\[250px\\]{gap:250px}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-scroll{overflow-x:scroll}.rounded-\\[6px\\]{border-radius:6px}.border-\\[\\#f2aeb5\\]{--tw-border-opacity:1;border-color:rgb(242 174 181/var(--tw-border-opacity,1))}.border-\\[\\#faebcc\\]{--tw-border-opacity:1;border-color:rgb(250 235 204/var(--tw-border-opacity,1))}.bg-\\[\\#1a1a1a\\]{--tw-bg-opacity:1;background-color:rgb(26 26 26/var(--tw-bg-opacity,1))}.bg-\\[\\#f7d7d8\\]{--tw-bg-opacity:1;background-color:rgb(247 215 216/var(--tw-bg-opacity,1))}.bg-\\[\\#fcf8e3\\]{--tw-bg-opacity:1;background-color:rgb(252 248 227/var(--tw-bg-opacity,1))}.bg-\\[linear-gradient\\(to_bottom\\2c _\\#428bca_0\\%\\2c _\\#3071a9_100\\%\\)\\]{background-image:linear-gradient(180deg,#428bca,#3071a9)}.p-\\[25px\\]{padding:25px}.px-\\[30px\\]{padding-left:30px;padding-right:30px}.pt-\\[16px\\]{padding-top:16px}.text-\\[16px\\]{font-size:16px}.text-\\[22px\\]{font-size:22px}.font-semibold{font-weight:600}.text-\\[\\#58151c\\]{--tw-text-opacity:1;color:rgb(88 21 28/var(--tw-text-opacity,1))}.text-\\[\\#8a6d3b\\]{--tw-text-opacity:1;color:rgb(138 109 59/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.duration-200{transition-duration:.2s}.\\[\\&_\\*\\]\\:shrink-0 *{flex-shrink:0}.end-0{inset-inline-end:0}.top-full{top:100%}.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}.h-\\[150px\\]{height:150px}.w-\\[84px\\]{width:84px}.min-w-0{min-width:0}.max-w-full{max-width:100%}.flex-1{flex:1 1 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))}.gap-\\[16px\\]{gap:16px}.gap-\\[6px\\]{gap:6px}.gap-\\[8px\\]{gap:8px}.whitespace-nowrap{white-space:nowrap}.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-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))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/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-\\[17px\\]{font-size:17px}.font-medium{font-weight:500}.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)}.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}.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)}.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}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.gap-\\[12px\\]{gap:12px}.gap-\\[2px\\]{gap:2px}.overflow-auto{overflow:auto}.\\!rounded-\\[12px\\]{border-radius:12px!important}.rounded-\\[14px\\]{border-radius:14px}.p-\\[16px\\]{padding:16px}.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)}@media (min-width:768px){.md\\:justify-between{justify-content:space-between}}.\\[\\&\\>div\\]\\:grow>div{flex-grow:1}.my-2{margin-bottom:.5rem;margin-top:.5rem}.grow{flex-grow: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-\\[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}.z-\\[999\\]{z-index:999}.h-\\[100dvh\\]{height:100dvh}.w-\\[100dvw\\]{width:100dvw}.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%}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.stroke-\\[1\\.5px\\]{stroke-width:1.5px}`;
|
|
1959
|
+
|
|
1960
|
+
const VehicleWarrantyTimeline = class {
|
|
1961
|
+
constructor(hostRef) {
|
|
1962
|
+
index.registerInstance(this, hostRef);
|
|
1963
|
+
// #region Localization
|
|
1964
|
+
this.language = 'en';
|
|
1965
|
+
this.locale = Object.assign({ sharedLocales: types.sharedLocalesSchema.getDefault() }, warrantyTimelineSchema.getDefault());
|
|
1966
|
+
// #endregion
|
|
1967
|
+
// #region Vehicle info layout prop
|
|
1968
|
+
this.coreOnly = false;
|
|
1969
|
+
this.disableVinValidation = false;
|
|
1970
|
+
this.headers = {};
|
|
1971
|
+
this.queryString = '';
|
|
1972
|
+
this.isError = false;
|
|
1973
|
+
this.isLoading = false;
|
|
1974
|
+
}
|
|
1975
|
+
async componentWillLoad() {
|
|
1976
|
+
await this.changeLanguage(this.language);
|
|
1977
|
+
}
|
|
1978
|
+
async changeLanguage(newLanguage) {
|
|
1979
|
+
const [sharedLocales, locale] = await Promise.all([getLocalLanguage.getSharedLocal(newLanguage), getLocalLanguage.getLocaleLanguage(newLanguage, 'vehicleLookup.warrantyTimeline', warrantyTimelineSchema)]);
|
|
1980
|
+
this.locale = Object.assign({ sharedLocales }, locale);
|
|
1981
|
+
}
|
|
1982
|
+
async setBlazorRef(newBlazorRef) {
|
|
1983
|
+
this.blazorRef = newBlazorRef;
|
|
1984
|
+
}
|
|
1985
|
+
async setMockData(newMockData) {
|
|
1986
|
+
this.mockData = newMockData;
|
|
1987
|
+
}
|
|
1988
|
+
async fetchVin(newData, headers = {}) {
|
|
1989
|
+
await setVehicleLookupData(this, newData, headers);
|
|
1990
|
+
}
|
|
1991
|
+
async setErrorMessage(message) {
|
|
1992
|
+
setVehicleLookupErrorState(this, message);
|
|
1993
|
+
}
|
|
1994
|
+
async clearData() {
|
|
1995
|
+
this.vehicleLookup = undefined;
|
|
1996
|
+
}
|
|
1997
|
+
onLoadingChange(newValue) {
|
|
1998
|
+
smartInvokable.smartInvokable.bind(this)(this.loadingStateChange, newValue);
|
|
1999
|
+
}
|
|
2000
|
+
// #endregion
|
|
2001
|
+
render() {
|
|
2002
|
+
var _a, _b;
|
|
2003
|
+
return (index.h(index.Host, { key: '8d89add2d61e4dcee130eede83bea9a02733cec1', translate: "no" }, index.h(vehicleInfoLayout.VehicleInfoLayout, { key: '280006f828f2ded8ecd148a8cc8a7db939e1af29', isError: this.isError, coreOnly: this.coreOnly, isLoading: this.isLoading, header: (_a = this.vehicleLookup) === null || _a === void 0 ? void 0 : _a.vin, direction: this.locale.sharedLocales.direction, errorMessage: this.locale.sharedLocales.errors[this.errorMessage] || this.locale.sharedLocales.errors.wildCard }, index.h("div", { key: '81ecffef7b0c7fcb80d657ca0cc34c0afff11a88', class: "p-[16px]" }, index.h(CoverageTimeline, { key: '2532220db169ace764e9da2fd23c027a5023d12a', vehicleInformation: this.vehicleLookup, locale: this.locale, isAuthorized: (_b = this.vehicleLookup) === null || _b === void 0 ? void 0 : _b.isAuthorized })))));
|
|
2004
|
+
}
|
|
2005
|
+
get el() { return index.getElement(this); }
|
|
2006
|
+
static get watchers() { return {
|
|
2007
|
+
"language": [{
|
|
2008
|
+
"changeLanguage": 0
|
|
2009
|
+
}],
|
|
2010
|
+
"isLoading": [{
|
|
2011
|
+
"onLoadingChange": 0
|
|
2012
|
+
}]
|
|
2013
|
+
}; }
|
|
2014
|
+
};
|
|
2015
|
+
VehicleWarrantyTimeline.style = vehicleWarrantyTimelineCss();
|
|
2016
|
+
|
|
1619
2017
|
exports.vehicle_accessories = VehicleAccessories;
|
|
1620
2018
|
exports.vehicle_claimable_items = VehicleClaimableItems;
|
|
1621
2019
|
exports.vehicle_paint_thickness = VehiclePaintThickness;
|
|
@@ -1623,3 +2021,4 @@ exports.vehicle_sale_information = VehicleSaleInformation;
|
|
|
1623
2021
|
exports.vehicle_service_history = VehicleServiceHistory;
|
|
1624
2022
|
exports.vehicle_specification = VehicleSpecification;
|
|
1625
2023
|
exports.vehicle_warranty_details = VehicleWarrantyDetails;
|
|
2024
|
+
exports.vehicle_warranty_timeline = VehicleWarrantyTimeline;
|