adp-web-components 0.1.57 → 0.1.59
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/dead-stock-lookup_3.cjs.entry.js +7 -7
- package/dist/cjs/decode-time-offset-DqzP0mck.js +37 -0
- package/dist/cjs/flexible-container.cjs.entry.js +1 -1
- package/dist/cjs/form-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/form-date-picker.cjs.entry.js +221 -0
- package/dist/cjs/form-dialog_8.cjs.entry.js +809 -0
- package/dist/cjs/{form-input-prefix-BEKoXMuK.js → form-input-label-meHUwu3m.js} +0 -9
- package/dist/cjs/form-input-prefix-RFgXEC1Q.js +18 -0
- package/dist/cjs/form-input_4.cjs.entry.js +31 -14
- package/dist/cjs/form-switch.cjs.entry.js +2 -2
- package/dist/cjs/form-time-picker.cjs.entry.js +165 -0
- package/dist/cjs/general-inquiry-form.cjs.entry.js +11 -9
- package/dist/cjs/{get-local-language-CLEoE4A4.js → get-local-language-CMptyFxH.js} +1 -1
- package/dist/cjs/index-D5c513Xn.js +22147 -0
- package/dist/cjs/information-table.cjs.entry.js +1 -1
- package/dist/cjs/{loader-icon-8WtBJ-H1.js → loader-icon-qrSyqpQO.js} +49 -26
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/loading-spinner.cjs.entry.js +1 -1
- package/dist/cjs/manufacturer-part-lookup.cjs.entry.js +3 -3
- package/dist/cjs/part-lookup.cjs.entry.js +3 -3
- package/dist/cjs/service-booking-form.cjs.entry.js +21 -194
- package/dist/cjs/shift-components.cjs.js +1 -1
- package/dist/cjs/shift-tab-content.cjs.entry.js +1 -1
- package/dist/cjs/shift-tabs_2.cjs.entry.js +10 -10
- package/dist/cjs/ssc-lookup-form.cjs.entry.js +11 -9
- package/dist/cjs/state-object-B_0-oj8G.js +243 -0
- package/dist/cjs/test-drive-form.cjs.entry.js +11 -9
- package/dist/cjs/{type-DlWZZ9uC.js → type-B8LchmnL.js} +1 -1
- package/dist/cjs/{type-VgtSVhXd.js → type-BqNpIYcE.js} +1 -1
- package/dist/cjs/{type-CG7yWUpY.js → type-BrzZ5GMr.js} +1 -1
- package/dist/cjs/vehicle-accessories_7.cjs.entry.js +24 -24
- package/dist/cjs/vehicle-lookup.cjs.entry.js +3 -3
- package/dist/cjs/vehicle-quotation-form.cjs.entry.js +14 -11
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/components/flexible-container.css +1 -1
- package/dist/collection/components/components/information-table.css +1 -1
- package/dist/collection/components/components/loading-spinner.css +1 -1
- package/dist/collection/components/components/shift-tab-content.css +1 -1
- package/dist/collection/components/components/shift-tabs.css +1 -1
- package/dist/collection/components/form-elements/VehicleImageViewer.js +50 -0
- package/dist/collection/components/form-elements/form-date-picker-legacy.js +498 -0
- package/dist/collection/components/form-elements/form-dialog.js +3 -3
- package/dist/collection/components/form-elements/form-input.js +95 -5
- package/dist/collection/components/form-elements/form-inputs.css +1 -1
- package/dist/collection/components/form-elements/form-phone-number.js +2 -2
- package/dist/collection/components/form-elements/form-picker-input.js +478 -0
- package/dist/collection/components/form-elements/form-shadow-input.js +24 -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 +397 -0
- package/dist/collection/components/form-elements/form-vin-input.js +5 -4
- package/dist/collection/components/forms/defaults/mappers.js +72 -0
- package/dist/collection/components/forms/defaults/style.css +1 -1
- package/dist/collection/components/forms/defaults/validation.js +29 -1
- package/dist/collection/components/forms/general-inquiry.js +6 -6
- package/dist/collection/components/forms/service-booking.js +21 -21
- package/dist/collection/components/forms/ssc-lookup.js +6 -6
- package/dist/collection/components/forms/test-drive.js +6 -6
- package/dist/collection/components/forms/vehicle-quotation/VehicleImageViewer.js +1 -1
- package/dist/collection/components/forms/vehicle-quotation.js +11 -9
- 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/vehicle-accessories.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-accessories.js +2 -2
- package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-claimable-items.js +4 -4
- package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-item-claim-form.js +8 -8
- package/dist/collection/components/vehicle-lookup/vehicle-lookup.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-paint-thickness.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-paint-thickness.js +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-sale-information.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-sale-information.js +2 -2
- package/dist/collection/components/vehicle-lookup/vehicle-service-history.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-service-history.js +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-specification.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-specification.js +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-warranty-details.css +1 -1
- package/dist/collection/components/vehicle-lookup/vehicle-warranty-details.js +4 -4
- package/dist/collection/components/vin-extractor/vin-extractor.css +1 -1
- package/dist/collection/components/vin-extractor/vin-extractor.js +1 -1
- package/dist/collection/features/form-hook/functions.js +37 -13
- package/dist/collection/global/assets/calendar-days-icon.js +6 -0
- package/dist/collection/global/assets/clock-8-icon.js +6 -0
- package/dist/collection/global/lib/decode-time-offset.js +32 -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.d.ts +11 -0
- package/dist/components/form-date-picker.js +5 -0
- package/dist/components/form-dialog.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.d.ts +11 -0
- package/dist/components/form-picker-input.js +5 -0
- package/dist/components/form-select.js +1 -1
- package/dist/components/form-shadow-input.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.d.ts +11 -0
- package/dist/components/form-time-picker.js +5 -0
- package/dist/components/form-vin-input.js +1 -1
- package/dist/components/general-inquiry-form.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-Bi75CV6R.js → p-3WjYFbnU.js} +1 -1
- package/dist/components/p-64G0Y_tC.js +5 -0
- package/dist/components/p-7y7dFWS-.js +5 -0
- package/dist/components/p-BEClgvwe.js +5 -0
- package/dist/components/p-BILW0yP6.js +5 -0
- package/dist/components/p-BTqv9A1K.js +5 -0
- package/dist/components/p-B_QEyJOO.js +5 -0
- package/dist/components/{p-F0WWPE_O.js → p-Bd2-gh8M.js} +1 -1
- package/dist/components/p-BffBGA_K.js +5 -0
- package/dist/components/p-Bon4whdT.js +5 -0
- package/dist/components/{p-CCGW3XAg.js → p-BsFKuBtC.js} +1 -1
- package/dist/components/p-C-4CT4ZF.js +5 -0
- package/dist/components/p-C6WhIy7O.js +5 -0
- package/dist/components/{p-CixlAlH4.js → p-CBXAxKky.js} +1 -1
- package/dist/components/p-CEM5EBP0.js +5 -0
- package/dist/components/p-CHdx52dw.js +5 -0
- package/dist/components/p-CwQEFAEF.js +5 -0
- package/dist/components/p-Cxfsh87m.js +5 -0
- package/dist/components/p-D-tlRZMk.js +5 -0
- package/dist/components/p-D930Q75B.js +5 -0
- package/dist/components/p-DA0taq65.js +5 -0
- package/dist/components/p-DJKERvsE.js +5 -0
- package/dist/components/p-DNn44A0I.js +5 -0
- package/dist/components/{p-DEDxfC7_.js → p-Df56BNKV.js} +1 -1
- package/dist/components/p-DjDUhW2q.js +5 -0
- package/dist/components/{p-Cv4B-c-D.js → p-DkA_i--O.js} +1 -1
- package/dist/components/{p-C9NbnDFD.js → p-DqNmAqS_.js} +1 -1
- package/dist/components/p-DuNp8sSh.js +5 -0
- package/dist/components/p-NEl9bwNq.js +5 -0
- package/dist/components/p-RInF2GNQ.js +5 -0
- package/dist/components/{p-BtR-iDdk.js → p-_C-vBKCe.js} +1 -1
- package/dist/components/p-eTLWmtnI.js +5 -0
- package/dist/components/{p-C3JyRnEg.js → p-vEsQVFLN.js} +1 -1
- package/dist/components/{p-CFfmHNjt.js → p-zofQKKfh.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-slider.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/vin-extractor.js +1 -1
- package/dist/esm/dead-stock-lookup_3.entry.js +7 -7
- package/dist/esm/decode-time-offset-Cfi43WoV.js +35 -0
- package/dist/esm/flexible-container.entry.js +1 -1
- package/dist/esm/form-checkbox.entry.js +1 -1
- package/dist/esm/form-date-picker.entry.js +219 -0
- package/dist/esm/form-dialog_8.entry.js +800 -0
- package/dist/esm/{form-input-prefix-uiMTBAZe.js → form-input-label-BhD_T_C5.js} +1 -9
- package/dist/esm/form-input-prefix-C48SfAOK.js +16 -0
- package/dist/esm/form-input_4.entry.js +30 -13
- package/dist/esm/form-switch.entry.js +2 -2
- package/dist/esm/form-time-picker.entry.js +163 -0
- package/dist/esm/general-inquiry-form.entry.js +11 -9
- package/dist/esm/{get-local-language-B3oLMQ7x.js → get-local-language-CCj6E27L.js} +1 -1
- package/dist/esm/index-BILW0yP6.js +22145 -0
- package/dist/esm/information-table.entry.js +1 -1
- package/dist/esm/{loader-icon-BT-MqKj_.js → loader-icon-DhBPTC5g.js} +39 -15
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loading-spinner.entry.js +1 -1
- package/dist/esm/manufacturer-part-lookup.entry.js +3 -3
- package/dist/esm/part-lookup.entry.js +3 -3
- package/dist/esm/service-booking-form.entry.js +21 -194
- package/dist/esm/shift-components.js +1 -1
- package/dist/esm/shift-tab-content.entry.js +1 -1
- package/dist/esm/shift-tabs_2.entry.js +10 -10
- package/dist/esm/ssc-lookup-form.entry.js +11 -9
- package/dist/esm/state-object-Cwph5K2Q.js +238 -0
- package/dist/esm/test-drive-form.entry.js +11 -9
- package/dist/esm/{type-B96smKVB.js → type-BluG_k1P.js} +1 -1
- package/dist/esm/{type-CJFFdz9f.js → type-D_rpjbuj.js} +1 -1
- package/dist/esm/{type-BymH_Reb.js → type-zroDKO0U.js} +1 -1
- package/dist/esm/vehicle-accessories_7.entry.js +24 -24
- package/dist/esm/vehicle-lookup.entry.js +3 -3
- package/dist/esm/vehicle-quotation-form.entry.js +14 -11
- package/dist/locales/vehicleLookup/saleInformation/ar.json +1 -1
- package/dist/locales/vehicleLookup/saleInformation/en.json +1 -1
- package/dist/locales/vehicleLookup/saleInformation/ku.json +1 -1
- package/dist/locales/vehicleLookup/saleInformation/ru.json +1 -1
- package/dist/shift-components/p-0a728fec.entry.js +5 -0
- package/dist/shift-components/p-0e630c66.entry.js +5 -0
- package/dist/shift-components/p-0f83786b.entry.js +5 -0
- package/dist/shift-components/p-1c93d5e6.entry.js +5 -0
- package/dist/shift-components/p-26f3e6da.entry.js +5 -0
- package/dist/shift-components/p-3a7196d4.entry.js +5 -0
- package/dist/shift-components/{p-ce1bf4af.entry.js → p-45670df9.entry.js} +1 -1
- package/dist/shift-components/{p-d9234e52.entry.js → p-4aa6f707.entry.js} +1 -1
- package/dist/shift-components/p-50fd9d29.entry.js +5 -0
- package/dist/shift-components/p-63e1e80e.entry.js +5 -0
- package/dist/shift-components/{p-c250576d.entry.js → p-67476178.entry.js} +1 -1
- package/dist/shift-components/p-683f3ab3.entry.js +5 -0
- package/dist/shift-components/p-8700e868.entry.js +5 -0
- package/dist/shift-components/p-90a6803f.entry.js +5 -0
- package/dist/shift-components/{p-DPJOLEPo.js → p-B-8v_CQL.js} +1 -1
- package/dist/shift-components/p-BILW0yP6.js +5 -0
- package/dist/shift-components/{p-C2E0OQuQ.js → p-BK4ZcuiW.js} +1 -1
- package/dist/shift-components/p-BVMG8UaH.js +5 -0
- package/dist/shift-components/{p-BQaoN4EI.js → p-Bfkguwb-.js} +1 -1
- package/dist/shift-components/p-BnQp2Q8E.js +5 -0
- package/dist/shift-components/{p-DitnhRjp.js → p-C3YLTa2J.js} +1 -1
- package/dist/shift-components/p-DXZTo2xz.js +5 -0
- package/dist/shift-components/p-Dgh-j_S7.js +5 -0
- package/dist/shift-components/p-XyQhTm0V.js +5 -0
- package/dist/shift-components/p-b4231e50.entry.js +5 -0
- package/dist/shift-components/p-c7eaf245.entry.js +5 -0
- package/dist/shift-components/{p-6f59eb5f.entry.js → p-d7da1152.entry.js} +1 -1
- package/dist/shift-components/p-f7692371.entry.js +5 -0
- package/dist/shift-components/p-f8ac59ee.entry.js +5 -0
- package/dist/shift-components/p-fac0fdb9.entry.js +5 -0
- package/dist/shift-components/p-fe02d5ed.entry.js +5 -0
- package/dist/shift-components/shift-components.esm.js +1 -1
- package/dist/types/components/form-elements/VehicleImageViewer.d.ts +7 -0
- package/dist/types/components/form-elements/form-date-picker-legacy.d.ts +44 -0
- package/dist/types/components/form-elements/form-input.d.ts +5 -0
- package/dist/types/components/form-elements/form-picker-input.d.ts +36 -0
- package/dist/types/components/form-elements/form-shadow-input.d.ts +1 -0
- package/dist/types/components/form-elements/form-time-picker-legacy.d.ts +38 -0
- package/dist/types/components/form-elements/form-vin-input.d.ts +1 -1
- package/dist/types/components/forms/defaults/mappers.d.ts +20 -0
- package/dist/types/components/forms/defaults/validation.d.ts +5 -1
- package/dist/types/components/forms/service-booking.d.ts +5 -7
- package/dist/types/components.d.ts +187 -6
- package/dist/types/features/form-hook/functions.d.ts +6 -6
- package/dist/types/global/assets/calendar-days-icon.d.ts +8 -0
- package/dist/types/global/assets/clock-8-icon.d.ts +8 -0
- package/dist/types/global/lib/decode-time-offset.d.ts +6 -0
- package/dist/types/locales/vehicleLookup/serviceHistory/type.d.ts +2 -2
- package/dist/types/locales/vehicleLookup/wrapper-type.d.ts +2 -2
- package/package.json +2 -1
- package/dist/cjs/form-dialog_2.cjs.entry.js +0 -80
- package/dist/cjs/form-phone-number_5.cjs.entry.js +0 -638
- package/dist/cjs/state-object-BKYoOET2.js +0 -84
- package/dist/components/p-0RPSruUw.js +0 -5
- package/dist/components/p-AXXIpFHS.js +0 -5
- package/dist/components/p-B6oAdbSG.js +0 -5
- package/dist/components/p-B8ficu-2.js +0 -5
- package/dist/components/p-BccOXbO6.js +0 -5
- package/dist/components/p-BiWhrVwg.js +0 -5
- package/dist/components/p-CCnpN4O6.js +0 -5
- package/dist/components/p-CMIWLyy-.js +0 -5
- package/dist/components/p-CTvhIyUe.js +0 -5
- package/dist/components/p-CVPVwYky.js +0 -5
- package/dist/components/p-CY-XNpVl.js +0 -5
- package/dist/components/p-Cfv1Ad7h.js +0 -5
- package/dist/components/p-CmZX4oFn.js +0 -5
- package/dist/components/p-DDwq6NYq.js +0 -5
- package/dist/components/p-DGmPDcfO.js +0 -5
- package/dist/components/p-DnDLOq--.js +0 -5
- package/dist/components/p-Dot72Ksm.js +0 -5
- package/dist/components/p-DwlUO-mQ.js +0 -5
- package/dist/components/p-Dy_xcj4e.js +0 -5
- package/dist/components/p-HU3XmNIl.js +0 -5
- package/dist/components/p-qgWJBcxw.js +0 -5
- package/dist/components/p-uhXr4495.js +0 -5
- package/dist/esm/form-dialog_2.entry.js +0 -77
- package/dist/esm/form-phone-number_5.entry.js +0 -632
- package/dist/esm/state-object-DKRL_FzI.js +0 -79
- package/dist/shift-components/p-0e2d3d93.entry.js +0 -5
- package/dist/shift-components/p-10da80aa.entry.js +0 -5
- package/dist/shift-components/p-1ff500c4.entry.js +0 -5
- package/dist/shift-components/p-361e8b06.entry.js +0 -5
- package/dist/shift-components/p-38bb86f3.entry.js +0 -5
- package/dist/shift-components/p-39914eb3.entry.js +0 -5
- package/dist/shift-components/p-76f94eb5.entry.js +0 -5
- package/dist/shift-components/p-830b1bea.entry.js +0 -5
- package/dist/shift-components/p-835b1234.entry.js +0 -5
- package/dist/shift-components/p-92551553.entry.js +0 -5
- package/dist/shift-components/p-9c01c8ff.entry.js +0 -5
- package/dist/shift-components/p-CaFQm1Ia.js +0 -5
- package/dist/shift-components/p-Cf1rwCRV.js +0 -5
- package/dist/shift-components/p-DpDKQYgQ.js +0 -5
- package/dist/shift-components/p-a2419627.entry.js +0 -5
- package/dist/shift-components/p-a9a116b5.entry.js +0 -5
- package/dist/shift-components/p-bb5c2961.entry.js +0 -5
- package/dist/shift-components/p-bcb6b13e.entry.js +0 -5
- package/dist/shift-components/p-e06782ee.entry.js +0 -5
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by ShiftSoftware
|
|
3
|
+
* Copyright (c)
|
|
4
|
+
*/
|
|
5
|
+
import { Host, h } from "@stencil/core";
|
|
6
|
+
import cn from "../../global/lib/cn";
|
|
7
|
+
import { getNestedValue } from "../../global/lib/get-nested-value";
|
|
8
|
+
import { FormInputLabel } from "./components/form-input-label";
|
|
9
|
+
import { FormErrorMessage } from "./components/form-error-message";
|
|
10
|
+
export class FormTimePicker {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.minuteStep = 1;
|
|
13
|
+
this.isOpen = false;
|
|
14
|
+
this.selectedValue = '';
|
|
15
|
+
this.openUpwards = false;
|
|
16
|
+
this.handleOutsideClick = (event) => {
|
|
17
|
+
if (!this.el.contains(event.target))
|
|
18
|
+
this.isOpen = false;
|
|
19
|
+
};
|
|
20
|
+
this.handleKeyDown = (event) => {
|
|
21
|
+
if (event.key === 'Escape' && this.isOpen)
|
|
22
|
+
this.isOpen = false;
|
|
23
|
+
};
|
|
24
|
+
this.toggleDropdown = () => {
|
|
25
|
+
if (this.isOpen) {
|
|
26
|
+
this.isOpen = false;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.adjustDropdownPosition();
|
|
30
|
+
};
|
|
31
|
+
this.selectHour = (hour) => {
|
|
32
|
+
const currentMinute = this.getSelectedMinute();
|
|
33
|
+
const minute = currentMinute >= 0 ? currentMinute : 0;
|
|
34
|
+
this.selectedValue = this.formatTime(hour, minute);
|
|
35
|
+
};
|
|
36
|
+
this.selectMinute = (minute) => {
|
|
37
|
+
const currentHour = this.getSelectedHour();
|
|
38
|
+
const hour = currentHour >= 0 ? currentHour : 0;
|
|
39
|
+
this.selectedValue = this.formatTime(hour, minute);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async componentWillLoad() {
|
|
43
|
+
this.form.subscribe(this.name, this);
|
|
44
|
+
if (this.staticValue)
|
|
45
|
+
this.defaultValue = this.staticValue;
|
|
46
|
+
if (this.defaultValue)
|
|
47
|
+
this.selectedValue = this.defaultValue;
|
|
48
|
+
}
|
|
49
|
+
async onStaticValueChange(newStaticValue) {
|
|
50
|
+
if (newStaticValue)
|
|
51
|
+
this.selectedValue = newStaticValue;
|
|
52
|
+
}
|
|
53
|
+
async componentDidLoad() {
|
|
54
|
+
document.addEventListener('click', this.handleOutsideClick);
|
|
55
|
+
document.addEventListener('keydown', this.handleKeyDown);
|
|
56
|
+
}
|
|
57
|
+
async disconnectedCallback() {
|
|
58
|
+
this.form.unsubscribe(this.name);
|
|
59
|
+
document.removeEventListener('click', this.handleOutsideClick);
|
|
60
|
+
document.removeEventListener('keydown', this.handleKeyDown);
|
|
61
|
+
}
|
|
62
|
+
reset(newValue) {
|
|
63
|
+
this.selectedValue = newValue || this.defaultValue || '';
|
|
64
|
+
}
|
|
65
|
+
adjustDropdownPosition() {
|
|
66
|
+
requestAnimationFrame(() => {
|
|
67
|
+
const input = this.el.querySelector('.form-input-style');
|
|
68
|
+
if (!input)
|
|
69
|
+
return;
|
|
70
|
+
const rect = input.getBoundingClientRect();
|
|
71
|
+
const spaceBelow = window.innerHeight - rect.bottom - 20;
|
|
72
|
+
this.openUpwards = spaceBelow < 220;
|
|
73
|
+
setTimeout(() => {
|
|
74
|
+
this.isOpen = true;
|
|
75
|
+
this.scrollToSelected();
|
|
76
|
+
}, 10);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
scrollToSelected() {
|
|
80
|
+
requestAnimationFrame(() => {
|
|
81
|
+
const hourCol = this.el.querySelector('.form-time-picker-hours');
|
|
82
|
+
const minuteCol = this.el.querySelector('.form-time-picker-minutes');
|
|
83
|
+
const scrollTo = (container) => {
|
|
84
|
+
const selected = container === null || container === void 0 ? void 0 : container.querySelector('.selected');
|
|
85
|
+
if (selected)
|
|
86
|
+
selected.scrollIntoView({ block: 'center' });
|
|
87
|
+
};
|
|
88
|
+
scrollTo(hourCol);
|
|
89
|
+
scrollTo(minuteCol);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
toTimeMinutes(time) {
|
|
93
|
+
const [h, m] = time.split(':').map(Number);
|
|
94
|
+
return h * 60 + m;
|
|
95
|
+
}
|
|
96
|
+
isHourDisabled(hour) {
|
|
97
|
+
const step = this.minuteStep || 1;
|
|
98
|
+
for (let m = 0; m < 60; m += step) {
|
|
99
|
+
if (!this.isMinuteDisabled(hour, m))
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
isMinuteDisabled(hour, minute) {
|
|
105
|
+
const time = hour * 60 + minute;
|
|
106
|
+
if (this.minTime && time < this.toTimeMinutes(this.minTime))
|
|
107
|
+
return true;
|
|
108
|
+
if (this.maxTime && time > this.toTimeMinutes(this.maxTime))
|
|
109
|
+
return true;
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
getSelectedHour() {
|
|
113
|
+
if (!this.selectedValue)
|
|
114
|
+
return -1;
|
|
115
|
+
return parseInt(this.selectedValue.split(':')[0], 10);
|
|
116
|
+
}
|
|
117
|
+
getSelectedMinute() {
|
|
118
|
+
if (!this.selectedValue)
|
|
119
|
+
return -1;
|
|
120
|
+
return parseInt(this.selectedValue.split(':')[1], 10);
|
|
121
|
+
}
|
|
122
|
+
formatTime(hour, minute) {
|
|
123
|
+
return `${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}`;
|
|
124
|
+
}
|
|
125
|
+
render() {
|
|
126
|
+
const { disabled, isRequired, meta, isError, errorMessage } = this.form.getInputState(this.name);
|
|
127
|
+
const [locale] = this.form.getFormLocale();
|
|
128
|
+
const label = getNestedValue(locale, meta === null || meta === void 0 ? void 0 : meta.label) || (meta === null || meta === void 0 ? void 0 : meta.label);
|
|
129
|
+
const placeholder = getNestedValue(locale, meta === null || meta === void 0 ? void 0 : meta.placeholder);
|
|
130
|
+
const isDisabled = disabled || this.isLoading || !!this.staticValue || this.isDisabled;
|
|
131
|
+
const selectedHour = this.getSelectedHour();
|
|
132
|
+
const selectedMinute = this.getSelectedMinute();
|
|
133
|
+
const step = this.minuteStep || 1;
|
|
134
|
+
const hours = Array.from({ length: 24 }, (_, i) => i);
|
|
135
|
+
const minutes = Array.from({ length: Math.ceil(60 / step) }, (_, i) => i * step);
|
|
136
|
+
return (h(Host, { key: '06367a15a7bc5114aef726476a2c9925105be6c2' }, h("label", { key: '4831bc05601026313a7022a1d9a683822c517df0', part: this.name, id: this.wrapperId, class: cn('form-input-label-container', this.wrapperClass, { disabled: isDisabled }) }, h(FormInputLabel, { key: '29f80d8fb4cef8cbe799dc357483382a5f5f3b3b', isRequired: isRequired, label: label }), h("form-shadow-input", { key: 'bfd18e8bdd9bccf3c6237dbe15f27fa45c44dc90', name: this.name, form: this.form, value: this.selectedValue }), h("div", { key: '2868a3a0b7fc1a42441d3dffcabc49d349f3dcfa', part: `${this.name}-container form-input-container`, class: cn('form-input-container', { open: this.isOpen }) }, h("input", { key: 'bf700f9f83ecc7a9cacced5663a979d4fe188505', type: "text", readOnly: true, disabled: isDisabled, value: this.selectedValue, onClick: this.toggleDropdown, part: `${this.name}-input form-input`, placeholder: placeholder || (meta === null || meta === void 0 ? void 0 : meta.placeholder), class: cn('form-input-style form-input-select', {
|
|
137
|
+
'form-input-error-style': isError,
|
|
138
|
+
}) }), h("span", { key: '216b2b7ae03a76e752a36ab78fae8fa651858dc1', part: `${this.name}-icon form-time-picker-icon`, class: "form-input-icon form-input-icon-end" }, h("svg", { key: '4b9a63a2d8673f68f9d64f9c0d8bc4594216039a', "aria-hidden": "true", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", class: "size-full" }, h("circle", { key: '4f905ffed2dfeba05f52036dbcbf5530729e5e99', cx: "12", cy: "12", r: "10" }), h("polyline", { key: '7731a613dee128c1ff9806f35a11c603c2c732b7', points: "12 6 12 12 16 14" }))), h("div", { key: '997e967281589329298e4edc3b4c96880e84189c', part: `${this.name}-dropdown form-time-picker-dropdown`, class: cn('form-picker-dropdown', {
|
|
139
|
+
upwards: this.openUpwards,
|
|
140
|
+
downwards: !this.openUpwards,
|
|
141
|
+
}) }, h("div", { key: '34cba5f96c874c7c0ffb39ac66c61f81b5e41d2c', class: "form-time-picker-columns" }, h("div", { key: 'de9097078f5fdcfc97246d6ddc715a8244f76bf4', class: "form-time-picker-column form-time-picker-hours" }, h("div", { key: 'e3993e812e7c7f3120944a4cdc6d2f9554b8adfe', class: "form-time-picker-column-header" }, "HH"), hours.map(hour => {
|
|
142
|
+
const hourDisabled = this.isHourDisabled(hour);
|
|
143
|
+
return (h("button", { type: "button", disabled: hourDisabled, onClick: () => this.selectHour(hour), part: cn('form-time-picker-option', { 'form-time-picker-option-selected': hour === selectedHour }), class: cn('form-time-picker-option', {
|
|
144
|
+
selected: hour === selectedHour,
|
|
145
|
+
}) }, String(hour).padStart(2, '0')));
|
|
146
|
+
})), h("div", { key: 'c908de2fe8b822bd97fa0ae6c39681585439ac09', class: "form-time-picker-column form-time-picker-minutes" }, h("div", { key: 'addff49b80f47bc326d72467845aa21238d44359', class: "form-time-picker-column-header" }, "MM"), minutes.map(minute => {
|
|
147
|
+
const minuteDisabled = selectedHour >= 0 ? this.isMinuteDisabled(selectedHour, minute) : false;
|
|
148
|
+
return (h("button", { type: "button", disabled: minuteDisabled, onClick: () => this.selectMinute(minute), part: cn('form-time-picker-option', { 'form-time-picker-option-selected': minute === selectedMinute }), class: cn('form-time-picker-option', {
|
|
149
|
+
selected: minute === selectedMinute,
|
|
150
|
+
}) }, String(minute).padStart(2, '0')));
|
|
151
|
+
}))))), h(FormErrorMessage, { key: '237ebec1a3024d5944cf67c558005cd565365cc5', name: this.name, isError: isError, errorMessage: locale[errorMessage] || errorMessage }))));
|
|
152
|
+
}
|
|
153
|
+
static get is() { return "form-time-picker"; }
|
|
154
|
+
static get originalStyleUrls() {
|
|
155
|
+
return {
|
|
156
|
+
"$": ["form-inputs.css"]
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
static get styleUrls() {
|
|
160
|
+
return {
|
|
161
|
+
"$": ["form-inputs.css"]
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
static get properties() {
|
|
165
|
+
return {
|
|
166
|
+
"name": {
|
|
167
|
+
"type": "string",
|
|
168
|
+
"attribute": "name",
|
|
169
|
+
"mutable": false,
|
|
170
|
+
"complexType": {
|
|
171
|
+
"original": "string",
|
|
172
|
+
"resolved": "string",
|
|
173
|
+
"references": {}
|
|
174
|
+
},
|
|
175
|
+
"required": false,
|
|
176
|
+
"optional": false,
|
|
177
|
+
"docs": {
|
|
178
|
+
"tags": [],
|
|
179
|
+
"text": ""
|
|
180
|
+
},
|
|
181
|
+
"getter": false,
|
|
182
|
+
"setter": false,
|
|
183
|
+
"reflect": false
|
|
184
|
+
},
|
|
185
|
+
"wrapperId": {
|
|
186
|
+
"type": "string",
|
|
187
|
+
"attribute": "wrapper-id",
|
|
188
|
+
"mutable": false,
|
|
189
|
+
"complexType": {
|
|
190
|
+
"original": "string",
|
|
191
|
+
"resolved": "string",
|
|
192
|
+
"references": {}
|
|
193
|
+
},
|
|
194
|
+
"required": false,
|
|
195
|
+
"optional": false,
|
|
196
|
+
"docs": {
|
|
197
|
+
"tags": [],
|
|
198
|
+
"text": ""
|
|
199
|
+
},
|
|
200
|
+
"getter": false,
|
|
201
|
+
"setter": false,
|
|
202
|
+
"reflect": false
|
|
203
|
+
},
|
|
204
|
+
"isLoading": {
|
|
205
|
+
"type": "boolean",
|
|
206
|
+
"attribute": "is-loading",
|
|
207
|
+
"mutable": false,
|
|
208
|
+
"complexType": {
|
|
209
|
+
"original": "boolean",
|
|
210
|
+
"resolved": "boolean",
|
|
211
|
+
"references": {}
|
|
212
|
+
},
|
|
213
|
+
"required": false,
|
|
214
|
+
"optional": true,
|
|
215
|
+
"docs": {
|
|
216
|
+
"tags": [],
|
|
217
|
+
"text": ""
|
|
218
|
+
},
|
|
219
|
+
"getter": false,
|
|
220
|
+
"setter": false,
|
|
221
|
+
"reflect": false
|
|
222
|
+
},
|
|
223
|
+
"isDisabled": {
|
|
224
|
+
"type": "boolean",
|
|
225
|
+
"attribute": "is-disabled",
|
|
226
|
+
"mutable": false,
|
|
227
|
+
"complexType": {
|
|
228
|
+
"original": "boolean",
|
|
229
|
+
"resolved": "boolean",
|
|
230
|
+
"references": {}
|
|
231
|
+
},
|
|
232
|
+
"required": false,
|
|
233
|
+
"optional": true,
|
|
234
|
+
"docs": {
|
|
235
|
+
"tags": [],
|
|
236
|
+
"text": ""
|
|
237
|
+
},
|
|
238
|
+
"getter": false,
|
|
239
|
+
"setter": false,
|
|
240
|
+
"reflect": false
|
|
241
|
+
},
|
|
242
|
+
"form": {
|
|
243
|
+
"type": "unknown",
|
|
244
|
+
"attribute": "form",
|
|
245
|
+
"mutable": false,
|
|
246
|
+
"complexType": {
|
|
247
|
+
"original": "FormHook<any>",
|
|
248
|
+
"resolved": "FormHook<any>",
|
|
249
|
+
"references": {
|
|
250
|
+
"FormHook": {
|
|
251
|
+
"location": "import",
|
|
252
|
+
"path": "~features/form-hook/form-hook",
|
|
253
|
+
"id": "src/features/form-hook/form-hook.ts::FormHook"
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
},
|
|
257
|
+
"required": false,
|
|
258
|
+
"optional": false,
|
|
259
|
+
"docs": {
|
|
260
|
+
"tags": [],
|
|
261
|
+
"text": ""
|
|
262
|
+
},
|
|
263
|
+
"getter": false,
|
|
264
|
+
"setter": false
|
|
265
|
+
},
|
|
266
|
+
"wrapperClass": {
|
|
267
|
+
"type": "string",
|
|
268
|
+
"attribute": "wrapper-class",
|
|
269
|
+
"mutable": false,
|
|
270
|
+
"complexType": {
|
|
271
|
+
"original": "string",
|
|
272
|
+
"resolved": "string",
|
|
273
|
+
"references": {}
|
|
274
|
+
},
|
|
275
|
+
"required": false,
|
|
276
|
+
"optional": false,
|
|
277
|
+
"docs": {
|
|
278
|
+
"tags": [],
|
|
279
|
+
"text": ""
|
|
280
|
+
},
|
|
281
|
+
"getter": false,
|
|
282
|
+
"setter": false,
|
|
283
|
+
"reflect": false
|
|
284
|
+
},
|
|
285
|
+
"staticValue": {
|
|
286
|
+
"type": "string",
|
|
287
|
+
"attribute": "static-value",
|
|
288
|
+
"mutable": false,
|
|
289
|
+
"complexType": {
|
|
290
|
+
"original": "string",
|
|
291
|
+
"resolved": "string",
|
|
292
|
+
"references": {}
|
|
293
|
+
},
|
|
294
|
+
"required": false,
|
|
295
|
+
"optional": true,
|
|
296
|
+
"docs": {
|
|
297
|
+
"tags": [],
|
|
298
|
+
"text": ""
|
|
299
|
+
},
|
|
300
|
+
"getter": false,
|
|
301
|
+
"setter": false,
|
|
302
|
+
"reflect": false
|
|
303
|
+
},
|
|
304
|
+
"defaultValue": {
|
|
305
|
+
"type": "string",
|
|
306
|
+
"attribute": "default-value",
|
|
307
|
+
"mutable": true,
|
|
308
|
+
"complexType": {
|
|
309
|
+
"original": "string",
|
|
310
|
+
"resolved": "string",
|
|
311
|
+
"references": {}
|
|
312
|
+
},
|
|
313
|
+
"required": false,
|
|
314
|
+
"optional": true,
|
|
315
|
+
"docs": {
|
|
316
|
+
"tags": [],
|
|
317
|
+
"text": ""
|
|
318
|
+
},
|
|
319
|
+
"getter": false,
|
|
320
|
+
"setter": false,
|
|
321
|
+
"reflect": false
|
|
322
|
+
},
|
|
323
|
+
"minTime": {
|
|
324
|
+
"type": "string",
|
|
325
|
+
"attribute": "min-time",
|
|
326
|
+
"mutable": false,
|
|
327
|
+
"complexType": {
|
|
328
|
+
"original": "string",
|
|
329
|
+
"resolved": "string",
|
|
330
|
+
"references": {}
|
|
331
|
+
},
|
|
332
|
+
"required": false,
|
|
333
|
+
"optional": true,
|
|
334
|
+
"docs": {
|
|
335
|
+
"tags": [],
|
|
336
|
+
"text": ""
|
|
337
|
+
},
|
|
338
|
+
"getter": false,
|
|
339
|
+
"setter": false,
|
|
340
|
+
"reflect": false
|
|
341
|
+
},
|
|
342
|
+
"maxTime": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"attribute": "max-time",
|
|
345
|
+
"mutable": false,
|
|
346
|
+
"complexType": {
|
|
347
|
+
"original": "string",
|
|
348
|
+
"resolved": "string",
|
|
349
|
+
"references": {}
|
|
350
|
+
},
|
|
351
|
+
"required": false,
|
|
352
|
+
"optional": true,
|
|
353
|
+
"docs": {
|
|
354
|
+
"tags": [],
|
|
355
|
+
"text": ""
|
|
356
|
+
},
|
|
357
|
+
"getter": false,
|
|
358
|
+
"setter": false,
|
|
359
|
+
"reflect": false
|
|
360
|
+
},
|
|
361
|
+
"minuteStep": {
|
|
362
|
+
"type": "number",
|
|
363
|
+
"attribute": "minute-step",
|
|
364
|
+
"mutable": false,
|
|
365
|
+
"complexType": {
|
|
366
|
+
"original": "number",
|
|
367
|
+
"resolved": "number",
|
|
368
|
+
"references": {}
|
|
369
|
+
},
|
|
370
|
+
"required": false,
|
|
371
|
+
"optional": true,
|
|
372
|
+
"docs": {
|
|
373
|
+
"tags": [],
|
|
374
|
+
"text": ""
|
|
375
|
+
},
|
|
376
|
+
"getter": false,
|
|
377
|
+
"setter": false,
|
|
378
|
+
"reflect": false,
|
|
379
|
+
"defaultValue": "1"
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
static get states() {
|
|
384
|
+
return {
|
|
385
|
+
"isOpen": {},
|
|
386
|
+
"selectedValue": {},
|
|
387
|
+
"openUpwards": {}
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
static get elementRef() { return "el"; }
|
|
391
|
+
static get watchers() {
|
|
392
|
+
return [{
|
|
393
|
+
"propName": "staticValue",
|
|
394
|
+
"methodName": "onStaticValueChange"
|
|
395
|
+
}];
|
|
396
|
+
}
|
|
397
|
+
}
|
|
@@ -9,6 +9,7 @@ import { FormInputLabel } from "./components/form-input-label";
|
|
|
9
9
|
import { FormInputPrefix } from "./components/form-input-prefix";
|
|
10
10
|
import { FormErrorMessage } from "./components/form-error-message";
|
|
11
11
|
import { QrCodeScanIcon } from "../../global/assets/qr-code-scan";
|
|
12
|
+
import { CameraIcon } from "../../global/assets/add-icon copy";
|
|
12
13
|
const partKeyPrefix = 'form-vin-input-';
|
|
13
14
|
export class FormVinInput {
|
|
14
15
|
constructor() {
|
|
@@ -51,9 +52,9 @@ export class FormVinInput {
|
|
|
51
52
|
const placeholder = getNestedValue(locale, meta === null || meta === void 0 ? void 0 : meta.placeholder);
|
|
52
53
|
const isDisabled = disabled || this.isLoading || !!this.staticValue || this.isDisabled;
|
|
53
54
|
const extractorTitle = ((_g = (_e = (_d = (_c = (_b = (_a = this.form) === null || _a === void 0 ? void 0 : _a.context) === null || _b === void 0 ? void 0 : _b.structure) === null || _c === void 0 ? void 0 : _c.data) === null || _d === void 0 ? void 0 : _d.localization) === null || _e === void 0 ? void 0 : _e[(_f = this.form.context) === null || _f === void 0 ? void 0 : _f.language]) === null || _g === void 0 ? void 0 : _g['vin-scan']) || 'Scan Your VIN';
|
|
54
|
-
return (h(Host, { key: '
|
|
55
|
+
return (h(Host, { key: 'b876940aceec368ae8f5ed6fecd48fe3aaea8efa' }, h("label", { key: 'd7440e3179b870af03226b75791cf197899dedb5', part: this.name, id: this.wrapperId, class: cn('form-input-label-container', this.wrapperClass, { disabled: isDisabled }) }, h(FormInputLabel, { key: 'd042e050a25dc1911e2b7b60c74ab4141ab574f3', isRequired: isRequired, label: label }), h("div", { key: '7e72af99b8b0ec5c32cec52833b4d6ae5a453ace', part: `${this.name}-container form-input-container`, class: "form-input-container" }, h(FormInputPrefix, { key: 'd785c4c464e4a830261212f6b416bd293819af71', name: this.name, direction: (_h = locale === null || locale === void 0 ? void 0 : locale.sharedFormLocales) === null || _h === void 0 ? void 0 : _h.direction, prefix: this.inputPrefix }), h("input", Object.assign({ key: '094a5850c842304f9d5fa19ebe9a774390298adc' }, this.inputProps, { name: this.name, disabled: isDisabled, defaultValue: this.defaultValue, part: `${this.name}-input form-input`, placeholder: placeholder || (meta === null || meta === void 0 ? void 0 : meta.placeholder), style: Object.assign({}, (this.prefixWidth ? { [((_j = locale === null || locale === void 0 ? void 0 : locale.sharedFormLocales) === null || _j === void 0 ? void 0 : _j.direction) === 'rtl' ? 'paddingRight' : 'paddingLeft']: `${this.prefixWidth}px` } : {})), class: cn('form-input-style !uppercase', part, {
|
|
55
56
|
'form-input-error-style': isError,
|
|
56
|
-
}) })), !!this.scannerIcon && (this.useOcr || this.readSticker) && (h("button", { key: '
|
|
57
|
+
}) })), !!this.scannerIcon && (this.useOcr || this.readSticker) && (h("button", { key: '4ff9061dd99c7ebaa3df8450f4e6d30fe3bd0604', type: "button", disabled: isDisabled, part: cn('vin-validator', part + '-vin'), onClick: () => { var _a; return (_a = this === null || this === void 0 ? void 0 : this.el.getElementsByTagName('vin-extractor')[0]) === null || _a === void 0 ? void 0 : _a.open(); }, class: "absolute transition-all duration-500 disabled:!pointer-events-none disabled:!opacity-0 flex justify-center items-center end-3.5 !text-[#576675] enabled:hover:!text-black/85 aspect-square h-[70%] top-1/2 -translate-y-1/2" }, this.scannerIcon === 'qr-code' && h(QrCodeScanIcon, { key: 'c50d804383bb75ca685f6801439539fc61d162c0', class: "size-[90%] text-inherit" }), this.scannerIcon === 'camera' && h(CameraIcon, { key: 'e45ca83541f9b20a56d4c4b7aa31761a1ceca8c4', class: "size-[90%] text-inherit" })))), h(FormErrorMessage, { key: 'e1accc6ac980d369732cd1a393787d6f1598ffe7', name: this.name, isError: isError, errorMessage: locale[errorMessage] || errorMessage })), (this.useOcr || this.readSticker) && (h("div", { key: 'd595097112bedaf9d2ca2fa9a708c4eb0bdec8d4', class: "absolute" }, h("vin-extractor", { key: '21746d607b2868ecfcc4189d5052f6e5939dc113', verbose: true, manualCapture: true, useOcr: this.useOcr, title: extractorTitle, skipValidation: false, readSticker: this.readSticker, onExtract: newVin => {
|
|
57
58
|
var _a, _b;
|
|
58
59
|
this.inputRef.value = newVin;
|
|
59
60
|
(_a = this.form) === null || _a === void 0 ? void 0 : _a.validateInput(this === null || this === void 0 ? void 0 : this.name);
|
|
@@ -312,8 +313,8 @@ export class FormVinInput {
|
|
|
312
313
|
"attribute": "scanner-icon",
|
|
313
314
|
"mutable": false,
|
|
314
315
|
"complexType": {
|
|
315
|
-
"original": "'' | 'qr-code'",
|
|
316
|
-
"resolved": "\"\" | \"qr-code\"",
|
|
316
|
+
"original": "'' | 'qr-code' | 'camera'",
|
|
317
|
+
"resolved": "\"\" | \"camera\" | \"qr-code\"",
|
|
317
318
|
"references": {}
|
|
318
319
|
},
|
|
319
320
|
"required": false,
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { h } from "@stencil/core";
|
|
6
6
|
import { getPhoneValidator } from "../../../features/form-hook/index";
|
|
7
|
+
import { VehicleImageViewer } from "../../form-elements/VehicleImageViewer";
|
|
8
|
+
import { CalendarDaysIcon } from "../../../global/assets/calendar-days-icon";
|
|
9
|
+
import { format, isBefore, isEqual } from "date-fns";
|
|
10
|
+
import { decodeTimeOffset } from "../../../global/lib/decode-time-offset";
|
|
7
11
|
export const getDefaultMappers = (stateObject) => ({
|
|
8
12
|
submit: ({ props }) => h("form-submit", Object.assign({}, props)),
|
|
9
13
|
name: ({ props }) => h("form-input", Object.assign({}, props)),
|
|
@@ -11,10 +15,78 @@ export const getDefaultMappers = (stateObject) => ({
|
|
|
11
15
|
email: ({ props }) => h("form-input", Object.assign({ type: "email" }, props)),
|
|
12
16
|
message: ({ props }) => h("form-text-area", Object.assign({}, props)),
|
|
13
17
|
vin: ({ props }) => h("form-vin-input", Object.assign({}, props)),
|
|
18
|
+
vehicleImage: ({ form }) => h(VehicleImageViewer, { form: form }),
|
|
14
19
|
phone: ({ props, isLoading }) => {
|
|
15
20
|
if (!stateObject.phoneValidator) {
|
|
16
21
|
stateObject.phoneValidator = getPhoneValidator((props === null || props === void 0 ? void 0 : props.countryCode) || '');
|
|
17
22
|
}
|
|
18
23
|
return h("form-phone-number", Object.assign({ defaultValue: stateObject.phoneValidator.default }, props, { isLoading: isLoading, validator: stateObject.phoneValidator }));
|
|
19
24
|
},
|
|
25
|
+
vehicle: ({ form, language, props }) => {
|
|
26
|
+
var _a;
|
|
27
|
+
const fetcher = async ({ signal }) => {
|
|
28
|
+
var _a, _b, _c;
|
|
29
|
+
const vehicleEndpoint = (_a = form.context.structure) === null || _a === void 0 ? void 0 : _a.data.vehicleApi;
|
|
30
|
+
const response = await fetch(vehicleEndpoint, { signal, headers: { 'Accept-Language': language } });
|
|
31
|
+
if ((_c = (_b = form.context.structure) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.vehiclesApiStrapiFormat) {
|
|
32
|
+
const res = await response.json();
|
|
33
|
+
let options = res.data;
|
|
34
|
+
return options.map(vehicle => ({
|
|
35
|
+
label: vehicle.attributes.GradeName,
|
|
36
|
+
value: `${vehicle.id}`,
|
|
37
|
+
meta: Object.assign(Object.assign({}, vehicle), { image: vehicle.attributes.Cover.data.attributes.url }),
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const options = await response.json();
|
|
42
|
+
return options.map(vehicle => ({
|
|
43
|
+
label: vehicle.Title,
|
|
44
|
+
value: `${vehicle.ID}`,
|
|
45
|
+
meta: Object.assign(Object.assign({}, vehicle), { image: vehicle.Image }),
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
let defaultValue;
|
|
50
|
+
if (!props.defaultValue) {
|
|
51
|
+
const params = new URLSearchParams(window.location.search);
|
|
52
|
+
defaultValue = params.get((_a = form.context.structure.data) === null || _a === void 0 ? void 0 : _a.vehicleIdQueryParam);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
defaultValue = props.defaultValue;
|
|
56
|
+
}
|
|
57
|
+
return h("form-select", Object.assign({}, props, { defaultValue: defaultValue, searchable: true, fetcher: fetcher, language: language }));
|
|
58
|
+
},
|
|
59
|
+
companyBranchId: ({ form, language, props }) => {
|
|
60
|
+
const fetcher = async ({ signal }) => {
|
|
61
|
+
var _a;
|
|
62
|
+
const dealerEndpoint = (_a = form.context.structure) === null || _a === void 0 ? void 0 : _a.data.dealerApi;
|
|
63
|
+
const response = await fetch(dealerEndpoint, { signal, headers: { 'Accept-Language': language } });
|
|
64
|
+
const options = (await response.json()).map(dealer => ({
|
|
65
|
+
label: dealer.Name,
|
|
66
|
+
value: `${dealer.ID}`,
|
|
67
|
+
meta: Object.assign({}, dealer),
|
|
68
|
+
}));
|
|
69
|
+
return options;
|
|
70
|
+
};
|
|
71
|
+
return h("form-select", Object.assign({}, props, { clearable: true, searchable: true, fetcher: fetcher, language: language }));
|
|
72
|
+
},
|
|
73
|
+
date: ({ props }) => h("form-picker-input", Object.assign({ type: "date" }, props, { icon: h(CalendarDaysIcon, null) })),
|
|
74
|
+
time: ({ language, props }) => {
|
|
75
|
+
const fetcher = async () => {
|
|
76
|
+
const options = [];
|
|
77
|
+
if (Array.isArray(props.span) && Array.isArray(props.min) && Array.isArray(props.max) && props.format) {
|
|
78
|
+
let tempDate = decodeTimeOffset({ offsets: props.min });
|
|
79
|
+
let maxDate = decodeTimeOffset({ offsets: props.max });
|
|
80
|
+
while (isBefore(tempDate, maxDate) || isEqual(tempDate, maxDate)) {
|
|
81
|
+
options.push({
|
|
82
|
+
value: format(tempDate, props.format),
|
|
83
|
+
label: format(tempDate, props.format),
|
|
84
|
+
});
|
|
85
|
+
tempDate = decodeTimeOffset({ offsets: props.span, date: tempDate });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return options;
|
|
89
|
+
};
|
|
90
|
+
return h("form-select", Object.assign({}, props, { clearable: true, fetcher: fetcher, language: language }));
|
|
91
|
+
},
|
|
20
92
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:host{all:initial!important;display:block;font-family:inherit!important}@keyframes form-loading-spin{to{transform:rotate(1turn)}}.form-loader-container .img{animation:form-loading-spin 2s linear infinite;height:32px;width:32px}*{-webkit-user-select:none;-moz-user-select:none;user-select:none}.pointer-events-none{pointer-events:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.top-0{top:0}.flex{display:flex}.h-full{height:100%}.min-h-\[150px\]{min-height:150px}.w-full{width:100%}.items-center{align-items:center}.justify-center{justify-content:center}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}.\!h-auto{height:auto!important}.min-w-full{min-width:100%}.resize{resize:both}.overflow-hidden{overflow:hidden}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!transition-none{transition-property:none!important}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\!duration-0{transition-duration:0s!important}.\!duration-500{transition-duration:.5s!important}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.fixed{position:fixed}.bottom-4{bottom:1rem}.left-1\/2{left:50%}.z-10{z-index:10}.z-\[9999\]{z-index:9999}.hidden{display:none}.size-8{height:2rem;width:2rem}.size-\[32px\]{height:32px;width:32px}.size-full{height:100%;width:100%}.h-\[100dvh\]{height:100dvh}.h-\[60px\]{height:60px}.min-h-full{min-height:100%}.w-\[100dvw\]{width:100dvw}.w-\[100px\]{width:100px}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.justify-between{justify-content:space-between}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-cover{object-fit:cover}.object-center{object-position:center}.p-1{padding:.25rem}.p-\[16px\]{padding:16px}.py-\[10px\]{padding-bottom:10px;padding-top:10px}.text-center{text-align:center}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.hover\:border-slate-700:hover{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.hover\:bg-slate-300:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.hover\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.disabled\:bg-white\/75:disabled{background-color:hsla(0,0%,100%,.75)}@media (min-width:768px){.md\:relative{position:relative}.md\:aspect-auto{aspect-ratio:auto}.md\:h-auto{height:auto}.md\:w-\[600px\]{width:600px}.md\:\!translate-x-0{--tw-translate-x:0px!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.md\:overflow-hidden{overflow:hidden}.md\:rounded-lg{border-radius:.5rem}.md\:border-none{border-style:none}.md\:bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.md\:py-\[8px\]{padding-bottom:8px;padding-top:8px}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.md\:\!opacity-100{opacity:1!important}.md\:transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.md\:duration-300{transition-duration:.3s}.md\:hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}}
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: ;border:0 solid #e5e7eb;box-sizing:border-box}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.flex{display:flex}.grid{display:grid}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}:host{all:initial!important;display:block;font-family:inherit!important}@keyframes form-loading-spin{to{transform:rotate(1turn)}}.form-loader-container .img{animation:form-loading-spin 2s linear infinite;height:32px;width:32px}*{-webkit-user-select:none;-moz-user-select:none;user-select:none}#vehicle-wrapper{display:flex;flex-direction:column}@media (min-width:640px){#vehicle-wrapper{align-items:center;display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}}.pointer-events-none{pointer-events:none}.static{position:static}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.top-0{top:0}.h-full{height:100%}.min-h-\[150px\]{min-height:150px}.w-full{width:100%}.items-center{align-items:center}.justify-center{justify-content:center}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-500{transition-duration:.5s}.-mt-1{margin-top:-.25rem}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.\!h-auto{height:auto!important}.min-w-full{min-width:100%}.resize{resize:both}.overflow-hidden{overflow:hidden}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!transition-none{transition-property:none!important}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.\!duration-0{transition-duration:0s!important}.\!duration-500{transition-duration:.5s!important}.fixed{position:fixed}.bottom-4{bottom:1rem}.left-1\/2{left:50%}.z-10{z-index:10}.z-\[9999\]{z-index:9999}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.size-8{height:2rem;width:2rem}.size-\[32px\]{height:32px;width:32px}.size-full{height:100%;width:100%}.h-\[100dvh\]{height:100dvh}.h-\[60px\]{height:60px}.min-h-full{min-height:100%}.w-\[100dvw\]{width:100dvw}.w-\[100px\]{width:100px}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.justify-between{justify-content:space-between}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-slate-500{--tw-border-opacity:1;border-color:rgb(100 116 139/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/30{background-color:rgba(0,0,0,.3)}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.object-cover{object-fit:cover}.object-center{object-position:center}.p-1{padding:.25rem}.p-\[16px\]{padding:16px}.py-\[10px\]{padding-bottom:10px;padding-top:10px}.text-center{text-align:center}.text-\[18px\]{font-size:18px}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.hover\:border-slate-700:hover{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.hover\:bg-slate-300:hover{--tw-bg-opacity:1;background-color:rgb(203 213 225/var(--tw-bg-opacity,1))}.hover\:text-slate-700:hover{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.disabled\:bg-white\/75:disabled{background-color:hsla(0,0%,100%,.75)}@media (min-width:768px){.md\:relative{position:relative}.md\:h-auto{height:auto}.md\:w-\[600px\]{width:600px}.md\:\!translate-x-0{--tw-translate-x:0px!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.md\:overflow-hidden{overflow:hidden}.md\:rounded-lg{border-radius:.5rem}.md\:border-none{border-style:none}.md\:bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.md\:py-\[8px\]{padding-bottom:8px;padding-top:8px}.md\:text-\[24px\]{font-size:24px}.md\:text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.md\:\!opacity-100{opacity:1!important}.md\:transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.md\:duration-300{transition-duration:.3s}.md\:hover\:bg-slate-100:hover{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}}
|
|
@@ -10,7 +10,7 @@ export const require = (name) => `${name}-require`;
|
|
|
10
10
|
export const placeholder = (name) => `${name}-placeholder`;
|
|
11
11
|
export const condition = (name) => `$${name}Required`;
|
|
12
12
|
export const y = { label, format, require, condition, placeholder };
|
|
13
|
-
export const
|
|
13
|
+
export const getDefaultValidations = (stateObject) => ({
|
|
14
14
|
name: string()
|
|
15
15
|
.meta({ label: label('name'), placeholder: placeholder('name') })
|
|
16
16
|
.when(condition('name'), {
|
|
@@ -54,4 +54,32 @@ export const getDefaultValidaations = (stateObject) => ({
|
|
|
54
54
|
otherwise: schema => schema.optional(),
|
|
55
55
|
then: schema => schema.required(require('phone')).test(format('phone'), format('phone'), () => { var _a; return (_a = stateObject === null || stateObject === void 0 ? void 0 : stateObject.phoneValidator) === null || _a === void 0 ? void 0 : _a.geIsValidPhoneNumber(); }),
|
|
56
56
|
}),
|
|
57
|
+
vehicle: string()
|
|
58
|
+
.meta({ label: y.label('vehicle'), placeholder: y.placeholder('vehicle') })
|
|
59
|
+
.when(y.condition('vehicle'), {
|
|
60
|
+
is: true,
|
|
61
|
+
otherwise: schema => schema.optional(),
|
|
62
|
+
then: schema => schema.required(y.require('vehicle')),
|
|
63
|
+
}),
|
|
64
|
+
companyBranchId: string()
|
|
65
|
+
.meta({ label: y.label('companyBranchId'), placeholder: y.placeholder('companyBranchId') })
|
|
66
|
+
.when(y.condition('companyBranchId'), {
|
|
67
|
+
is: true,
|
|
68
|
+
otherwise: schema => schema.optional(),
|
|
69
|
+
then: schema => schema.required(y.require('companyBranchId')),
|
|
70
|
+
}),
|
|
71
|
+
date: string()
|
|
72
|
+
.meta({ label: label('date'), placeholder: placeholder('date') })
|
|
73
|
+
.when(condition('date'), {
|
|
74
|
+
is: true,
|
|
75
|
+
otherwise: schema => schema.optional(),
|
|
76
|
+
then: schema => schema.required(require('date')),
|
|
77
|
+
}),
|
|
78
|
+
time: string()
|
|
79
|
+
.meta({ label: label('time'), placeholder: placeholder('time') })
|
|
80
|
+
.when(condition('time'), {
|
|
81
|
+
is: true,
|
|
82
|
+
otherwise: schema => schema.optional(),
|
|
83
|
+
then: schema => schema.required(require('time')),
|
|
84
|
+
}),
|
|
57
85
|
});
|