{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/bikes/bikes.component.ts","./src/app/bikes/bikes.component.html","./src/app/classes/bookings.ts","./src/app/classes/countries.ts","./src/app/collections/collections.component.ts","./src/app/collections/collections.component.html","./src/app/fittings/fittings.component.ts","./src/app/fittings/fittings.component.html","./src/app/gift-cards/gift-cards.component.ts","./src/app/gift-cards/gift-cards.component.html","./src/app/pages/additional-information/additional-information.component.ts","./src/app/pages/additional-information/additional-information.component.html","./src/app/pages/bike-collections/bike-collections.component.ts","./src/app/pages/bike-collections/bike-collections.component.html","./src/app/pages/bike-details/bike-details.component.ts","./src/app/pages/bike-details/bike-details.component.html","./src/app/pages/bike-shop-search/bike-shop-search.component.ts","./src/app/pages/bike-shop-search/bike-shop-search.component.html","./src/app/pages/collections-address/collections-address.component.ts","./src/app/pages/collections-address/collections-address.component.html","./src/app/pages/customer-details/customer-details.component.ts","./src/app/pages/customer-details/customer-details.component.html","./src/app/pages/fitting-additional-info/fitting-additional-info.component.ts","./src/app/pages/fitting-additional-info/fitting-additional-info.component.html","./src/app/pages/fitting-dates/fitting-dates.component.ts","./src/app/pages/fitting-dates/fitting-dates.component.html","./src/app/pages/loader-section/loader-section.component.ts","./src/app/pages/loader-section/loader-section.component.html","./src/app/pages/marketing-consent/marketing-consent.component.ts","./src/app/pages/marketing-consent/marketing-consent.component.html","./src/app/pages/payments/payments.component.ts","./src/app/pages/payments/payments.component.html","./src/app/pages/select-fittings/select-fittings.component.ts","./src/app/pages/select-fittings/select-fittings.component.html","./src/app/pages/select-services/select-services.component.ts","./src/app/pages/select-services/select-services.component.html","./src/app/pages/service-confirmation/service-confirmation.component.ts","./src/app/pages/service-confirmation/service-confirmation.component.html","./src/app/pages/service-dates/service-dates.component.ts","./src/app/pages/service-dates/service-dates.component.html","./src/app/pages/service-notes/service-notes.component.ts","./src/app/pages/service-notes/service-notes.component.html","./src/app/pages/service-summary/service-summary.component.ts","./src/app/pages/service-summary/service-summary.component.html","./src/app/pages/stripe-payment/stripe-payment.component.ts","./src/app/pages/stripe-payment/stripe-payment.component.html","./src/app/pages/total-section/total-section.component.ts","./src/app/pages/total-section/total-section.component.html","./src/app/paths/confirmations/confirmations.component.ts","./src/app/paths/confirmations/confirmations.component.html","./src/app/paths/services/services.component.ts","./src/app/paths/services/services.component.html","./src/app/pipes/safe-html.pipe.ts","./src/app/reschedule/models.ts","./src/app/reschedule/reschedule-booking/reschedule-booking.component.ts","./src/app/reschedule/reschedule-booking/reschedule-booking.component.html","./src/app/reschedule/reschedule-cancellation/reschedule-cancellation.component.ts","./src/app/reschedule/reschedule-cancellation/reschedule-cancellation.component.html","./src/app/reschedule/reschedule-collection-address/reschedule-collection-address.component.ts","./src/app/reschedule/reschedule-collection-address/reschedule-collection-address.component.html","./src/app/reschedule/reschedule-collection-booking/reschedule-collection-booking.component.ts","./src/app/reschedule/reschedule-collection-booking/reschedule-collection-booking.component.html","./src/app/reschedule/reschedule-confirmation/reschedule-confirmation.component.ts","./src/app/reschedule/reschedule-confirmation/reschedule-confirmation.component.html","./src/app/reschedule/reschedule-fitting/reschedule-fitting.component.ts","./src/app/reschedule/reschedule-fitting/reschedule-fitting.component.html","./src/app/reschedule/reschedule-landing/reschedule-landing.component.ts","./src/app/reschedule/reschedule-landing/reschedule-landing.component.html","./src/app/reschedule/reschedule-upsell/reschedule-upsell.component.ts","./src/app/reschedule/reschedule-upsell/reschedule-upsell.component.html","./src/app/reschedule/reschedule.component.ts","./src/app/reschedule/reschedule.component.html","./src/app/sections/search-customer/search-customer.component.ts","./src/app/sections/search-customer/search-customer.component.html","./src/app/sections/select-bikes/select-bikes.component.ts","./src/app/sections/select-bikes/select-bikes.component.html","./src/app/sections/select-fitting-date/select-fitting-date.component.ts","./src/app/sections/select-fitting-date/select-fitting-date.component.html","./src/app/sections/select-service-date/select-service-date.component.ts","./src/app/sections/select-service-date/select-service-date.component.html","./src/app/sections/select-service-types/select-service-types.component.ts","./src/app/sections/select-service-types/select-service-types.component.html","./src/app/sections/select-shop/select-shop.component.ts","./src/app/sections/select-shop/select-shop.component.html","./src/app/sections/view-loader/view-loader.component.ts","./src/app/sections/view-loader/view-loader.component.html","./src/app/sections/view-summary/view-summary.component.ts","./src/app/sections/view-summary/view-summary.component.html","./src/app/sections/view-totals/view-totals.component.ts","./src/app/sections/view-totals/view-totals.component.html","./src/app/services/bike.service.ts","./src/app/services/coupons.service.ts","./src/app/services/giftcard.service.ts","./src/app/services/google.service.ts","./src/app/services/partner.service.ts","./src/app/services/payment.service.ts","./src/app/services/service.service.ts","./src/app/services/user.service.ts","./src/app/shared/GoogleTagManager.ts","./src/app/shared/common.ts","./src/app/shared/variables.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"main.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { BikesComponent } from './bikes/bikes.component';\r\nimport { ServiceConfirmationComponent } from './pages/service-confirmation/service-confirmation.component';\r\nimport { FittingsComponent } from './fittings/fittings.component';\r\nimport { CollectionsComponent } from './collections/collections.component';\r\nimport { ServicesComponent } from './paths/services/services.component';\r\nimport { RescheduleComponent } from './reschedule/reschedule.component';\r\nimport { GiftCardsComponent } from './gift-cards/gift-cards.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: \"\",\r\n component: BikesComponent,\r\n children: [\r\n { path: \"\", component: BikesComponent },\r\n ],\r\n },\r\n {\r\n path: \"bikes\",\r\n component: BikesComponent,\r\n children: [\r\n { path: \"\", component: BikesComponent },\r\n ],\r\n },\r\n {\r\n path: \"fittings\",\r\n component: FittingsComponent,\r\n children: [\r\n { path: \"\", component: FittingsComponent },\r\n ],\r\n },\r\n {\r\n path: \"collections\",\r\n component: CollectionsComponent,\r\n children: [\r\n { path: \"\", component: CollectionsComponent },\r\n ],\r\n },\r\n {\r\n path: \"confirmation\",\r\n component: ServiceConfirmationComponent,\r\n children: [\r\n { path: \"\", component: ServiceConfirmationComponent },\r\n ],\r\n },\r\n {\r\n path: \"reschedule\",\r\n component: RescheduleComponent,\r\n children: [\r\n { path: \"\", component: RescheduleComponent },\r\n ],\r\n },\r\n {\r\n path: \"gift-cards\",\r\n component: GiftCardsComponent,\r\n children: [\r\n { path: \"\", component: GiftCardsComponent },\r\n ],\r\n },\r\n {\r\n path: \"bikes_v2\",\r\n component: ServicesComponent,\r\n children: [\r\n { path: \"\", component: ServicesComponent },\r\n ],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Variables } from './shared/variables';\r\nimport { PartnerService } from './services/partner.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n\r\n\r\n\r\n constructor(private translate: TranslateService, private route: ActivatedRoute, private variables: Variables, private partnerService: PartnerService) {\r\n\r\n \r\n\r\n translate.setDefaultLang('en');\r\n var lan = this.route.snapshot.queryParamMap.get(\"l\");\r\n if (lan !== null)\r\n translate.setDefaultLang(this.getLanguageType + lan);\r\n \r\n //translate.get('es').subscribe(res => {\r\n // console.log(res);\r\n //});\r\n\r\n //this.translate.\r\n }\r\n\r\n getLanguageType() {\r\n //return this.appConfig.getPartnerType() === 'bicycle' ? lang.value.toLowerCase() : (this.appConfig.getPartnerType() + '/' + lang.value.toLowerCase());\r\n return \"\"\r\n }\r\n\r\n title = 'bookingwidget';\r\n}\r\n","\r\n\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n//import { HttpModule, Http } from \"@angular/http\";\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\n\r\nimport { AccordionModule } from 'primeng/accordion'; \r\nimport { MenuItem } from 'primeng/api'; \r\nimport { StepsModule } from 'primeng/steps';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CardModule } from 'primeng/card';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { RadioButtonModule, RadioButton } from 'primeng/radiobutton';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\n\r\nimport { BikesComponent } from './bikes/bikes.component';\r\nimport { BikeShopSearchComponent } from './pages/bike-shop-search/bike-shop-search.component';\r\nimport { CustomerDetailsComponent } from './pages/customer-details/customer-details.component';\r\nimport { BikeDetailsComponent } from './pages/bike-details/bike-details.component';\r\nimport { SelectServicesComponent } from './pages/select-services/select-services.component';\r\nimport { ServiceNotesComponent } from './pages/service-notes/service-notes.component';\r\nimport { BikeCollectionsComponent } from './pages/bike-collections/bike-collections.component';\r\nimport { ServiceDatesComponent } from './pages/service-dates/service-dates.component';\r\nimport { ServiceSummaryComponent } from './pages/service-summary/service-summary.component';\r\nimport { ServiceConfirmationComponent } from './pages/service-confirmation/service-confirmation.component';\r\nimport { LoaderSectionComponent } from './pages/loader-section/loader-section.component';\r\nimport { TotalSectionComponent } from './pages/total-section/total-section.component';\r\nimport { FittingsComponent } from './fittings/fittings.component';\r\nimport { SelectFittingsComponent } from './pages/select-fittings/select-fittings.component';\r\nimport { FittingDatesComponent } from './pages/fitting-dates/fitting-dates.component';\r\nimport { CollectionsComponent } from './collections/collections.component';\r\nimport { CollectionsAddressComponent } from './pages/collections-address/collections-address.component';\r\n\r\nimport { SelectShopComponent } from './sections/select-shop/select-shop.component';\r\nimport { ServicesComponent } from './paths/services/services.component';\r\nimport { SelectBikesComponent } from './sections/select-bikes/select-bikes.component';\r\nimport { ViewSummaryComponent } from './sections/view-summary/view-summary.component';\r\nimport { SearchCustomerComponent } from './sections/search-customer/search-customer.component';\r\nimport { SelectServiceTypesComponent } from './sections/select-service-types/select-service-types.component';\r\nimport { SelectServiceDateComponent } from './sections/select-service-date/select-service-date.component';\r\nimport { ViewTotalsComponent } from './sections/view-totals/view-totals.component';\r\nimport { ViewLoaderComponent } from './sections/view-loader/view-loader.component';\r\nimport { SelectFittingDateComponent } from './sections/select-fitting-date/select-fitting-date.component';\r\nimport { ConfirmationsComponent } from './paths/confirmations/confirmations.component';\r\nimport { RescheduleComponent } from './reschedule/reschedule.component';\r\nimport { RescheduleConfirmationComponent } from './reschedule/reschedule-confirmation/reschedule-confirmation.component';\r\nimport { RescheduleLandingComponent } from './reschedule/reschedule-landing/reschedule-landing.component';\r\nimport { RescheduleCancellationComponent } from './reschedule/reschedule-cancellation/reschedule-cancellation.component';\r\nimport { RescheduleBookingComponent } from './reschedule/reschedule-booking/reschedule-booking.component';\r\nimport { RescheduleCollectionAddressComponent } from './reschedule/reschedule-collection-address/reschedule-collection-address.component';\r\nimport { RescheduleCollectionBookingComponent } from './reschedule/reschedule-collection-booking/reschedule-collection-booking.component';\r\nimport { RescheduleUpsellComponent } from './reschedule/reschedule-upsell/reschedule-upsell.component';\r\nimport { RescheduleFittingComponent } from './reschedule/reschedule-fitting/reschedule-fitting.component';\r\nimport { GiftCardsComponent } from './gift-cards/gift-cards.component';\r\nimport { PaymentsComponent } from './pages/payments/payments.component';\r\nimport { FittingAdditionalInfoComponent } from './pages/fitting-additional-info/fitting-additional-info.component';\r\nimport { StripePaymentComponent } from './pages/stripe-payment/stripe-payment.component';\r\n\r\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\r\n\r\nimport { Variables } from './shared/variables';\r\nimport { AdditionalInformationComponent } from './pages/additional-information/additional-information.component';\r\nimport { MarketingConsentComponent } from './pages/marketing-consent/marketing-consent.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n BikesComponent,\r\n BikeShopSearchComponent,\r\n CustomerDetailsComponent,\r\n BikeDetailsComponent,\r\n SelectServicesComponent,\r\n ServiceNotesComponent,\r\n BikeCollectionsComponent,\r\n ServiceDatesComponent,\r\n ServiceSummaryComponent,\r\n ServiceConfirmationComponent,\r\n LoaderSectionComponent,\r\n TotalSectionComponent,\r\n FittingsComponent,\r\n SelectFittingsComponent,\r\n FittingDatesComponent,\r\n CollectionsComponent,\r\n CollectionsAddressComponent,\r\n SelectShopComponent,\r\n ServicesComponent,\r\n SelectBikesComponent,\r\n ViewSummaryComponent,\r\n SearchCustomerComponent,\r\n SelectServiceTypesComponent,\r\n SelectServiceDateComponent,\r\n ViewTotalsComponent,\r\n ViewLoaderComponent,\r\n SelectFittingDateComponent,\r\n ConfirmationsComponent,\r\n RescheduleComponent,\r\n RescheduleConfirmationComponent,\r\n RescheduleLandingComponent,\r\n RescheduleCancellationComponent,\r\n RescheduleBookingComponent,\r\n RescheduleCollectionAddressComponent,\r\n RescheduleCollectionBookingComponent,\r\n RescheduleUpsellComponent,\r\n RescheduleFittingComponent,\r\n GiftCardsComponent,\r\n PaymentsComponent,\r\n FittingAdditionalInfoComponent,\r\n StripePaymentComponent,\r\n AdditionalInformationComponent,\r\n SafeHtmlPipe,\r\n MarketingConsentComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n FontAwesomeModule,\r\n BrowserAnimationsModule,\r\n AppRoutingModule,\r\n FormsModule,\r\n HttpClientModule,\r\n // HttpModule,\r\n\r\n AccordionModule,\r\n StepsModule,\r\n ToastModule,\r\n ButtonModule,\r\n InputTextModule,\r\n CardModule,\r\n DropdownModule,\r\n AutoCompleteModule,\r\n RadioButtonModule,\r\n ToggleButtonModule,\r\n CheckboxModule,\r\n MultiSelectModule,\r\n InputTextareaModule,\r\n CalendarModule,\r\n InputMaskModule,\r\n InputSwitchModule,\r\n ProgressBarModule,\r\n\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n })\r\n ],\r\n providers: [\r\n Variables,\r\n { provide: 'googleTagManagerId', useValue: \"YOUR_GTM_ID\" },\r\n //{ provide: Http }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n\r\n//export function HttpLoaderFactory(http: HttpClient) {\r\n// return new TranslateHttpLoader(http);\r\n//}\r\n\r\n\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n //return new TranslateHttpLoader(http);\r\n const Random = new Date().getTime();\r\n return new TranslateHttpLoader(\r\n http,\r\n \"./assets/i18n/\",\r\n \".json?rand=\" + Random\r\n );\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, OnChanges, SimpleChanges, Inject, Renderer2, ViewChild } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { MessageService } from 'primeng/api';\r\nimport { Button } from 'primeng/button';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { Bookings, Bike, Legal, DropOff, PickUp, Service } from '../classes/bookings';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BrowserModule, DomSanitizer, SafeHtml } from '@angular/platform-browser'\r\nimport { BikeShopSearchComponent } from '../pages/bike-shop-search/bike-shop-search.component';\r\nimport { ServiceService } from '../services/service.service';\r\nimport { Location, DOCUMENT } from '@angular/common';\r\nimport { Variables } from '../shared/variables';\r\nimport { PartnerService } from '../services/partner.service';\r\n\r\nimport { sendToGTM } from '../shared/GoogleTagManager';\r\nimport { GoogleService } from '../services/google.service';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { StripePaymentComponent } from '../pages/stripe-payment/stripe-payment.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-bikes',\r\n templateUrl: './bikes.component.html',\r\n providers: [MessageService],\r\n styleUrls: ['./bikes.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class BikesComponent implements OnInit {\r\n\r\n constructor(\r\n private messageService: MessageService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private translate: TranslateService,\r\n private sanitizer: DomSanitizer,\r\n private serviceService: ServiceService,\r\n private location: Location,\r\n private partnerService: PartnerService,\r\n private googleService: GoogleService,\r\n private gtmService: GoogleTagManagerService,\r\n private variables: Variables\r\n ) { } \r\n loading: boolean = false;\r\n booking: Bookings = new Bookings;\r\n customCSSUrl = null;\r\n franchise: string = \"\";\r\n bikeshop: string = \"\";\r\n pay: string = \"\";\r\n confirmaionURL: string = \"\";\r\n\r\n steps: MenuItem[];\r\n activeIndex: number = -1;\r\n activeStep: string = \"\";\r\n nextStepText: string = \"NEXT\";\r\n\r\n currentStep: string = \"\";\r\n serviceTypeID: string[] = [];\r\n serviceGroups: string[] = [];\r\n disabledFeatures: string[] = [];\r\n showVanMoofError = false;\r\n\r\n\r\n skippedServicesStep: boolean = false;\r\n\r\n saveBooking: boolean = false;\r\n progress: number = 0; \r\n language: string = \"\";\r\n\r\n\r\n ngOnInit() {\r\n\r\n localStorage.removeItem(\"serviceGroups\");\r\n localStorage.removeItem(\"showTypes\");\r\n localStorage.removeItem(\"disabledFeatures\");\r\n\r\n localStorage.setItem(\"serviceGroups\", JSON.stringify(this.serviceGroups));\r\n this.language = this.route.snapshot.queryParamMap.get(\"lang\");\r\n var sID = this.route.snapshot.queryParamMap.get(\"service\");\r\n if (sID !== null) {\r\n this.serviceTypeID = sID.split(\",\");\r\n for (var i = 0; i < this.serviceTypeID.length; i++) {\r\n this.booking.services.push(this.serviceTypeID[i]);\r\n }\r\n\r\n var collection = this.route.snapshot.queryParamMap.get(\"collection\");\r\n if (collection === \"true\") {\r\n this.booking.pickup.pickup = true;\r\n }\r\n }\r\n\r\n var groups = this.route.snapshot.queryParamMap.get(\"groups\");\r\n if (groups !== null) {\r\n this.serviceGroups = groups.split(\"|\");\r\n localStorage.setItem(\"serviceGroups\", JSON.stringify(this.serviceGroups));\r\n }\r\n else {\r\n localStorage.setItem(\"serviceGroups\", JSON.stringify(this.serviceGroups));\r\n }\r\n\r\n\r\n this.translate.get(\"button.next\").subscribe(next => {\r\n this.nextStepText = next;\r\n });\r\n\r\n var disabled = this.route.snapshot.queryParamMap.get(\"disabled\");\r\n if (disabled !== null) {\r\n this.disabledFeatures = disabled.split(\",\");\r\n localStorage.setItem(\"disabledFeatures\", JSON.stringify(this.disabledFeatures));\r\n }\r\n else {\r\n localStorage.setItem(\"disabledFeatures\", JSON.stringify(this.disabledFeatures));\r\n }\r\n\r\n\r\n //Lets check the config now and build the menu\r\n this.franchise = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n this.bikeshop = this.route.snapshot.queryParamMap.get(\"shop\");\r\n this.confirmaionURL = this.route.snapshot.queryParamMap.get(\"confirmation\");\r\n //this.pay = this.route.snapshot.queryParamMap.get(\"payment\");\r\n\r\n if (this.bikeshop !== null) {\r\n this.customCSSUrl = this.transform(this.bikeshop);\r\n this.monitor(this.bikeshop);\r\n }\r\n if (this.franchise !== null) {\r\n this.customCSSUrl = this.transform(this.franchise);\r\n this.monitor(this.franchise);\r\n }\r\n\r\n if (this.bikeshop !== null) {\r\n this.partnerService.getBikeshopsByExternalID(this.bikeshop).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n this.booking.shop.partnerID = obj.Partners[i].ID;\r\n this.booking.shop.name = obj.Partners[i].Name;\r\n this.booking.shop.showGDPRMarketingConsent = obj.Partners[i].ShowGDPRMarketingConsent;\r\n this.booking.shop.showGDPRMarketingConsentCustomText = obj.Partners[i].ShowGDPRMarketingConsentCustomText;\r\n this.booking.shop.address = obj.Partners[i].PhysicalAddress;\r\n this.booking.shop.currencySymbol = obj.Partners[i].CurrencySymbol;\r\n this.booking.shop.country = obj.Partners[i].Country;\r\n this.booking.shop.doesCollections = obj.Partners[i].OffersCollections;\r\n this.booking.shop.doesDropOff = obj.Partners[i].OffersDropOffs;\r\n this.booking.shop.lat = obj.Partners[i].Latitude;\r\n this.booking.shop.lng = obj.Partners[i].Longitude;\r\n this.booking.shop.payments = obj.Partners[i].WidgetAllowPayments;\r\n this.booking.shop.showTechnicianImages = obj.Partners[i].FittingsShowTechnicianImage;\r\n this.booking.shop.depositConfiguration = obj.Partners[i].DepositConfiguration;\r\n this.booking.shop.type = obj.Partners[i].PartnerType;\r\n }\r\n this.setLanguage();\r\n this.partnerService.getShopWidgetSettings(this.bikeshop).subscribe(reply => {\r\n console.log(reply);\r\n var obj = JSON.parse(JSON.stringify(reply));\r\n console.log(obj.settings);\r\n for (var i = 0; i < obj.settings.length; i++) {\r\n this.booking.shop.AllowCoupons = obj.settings[i].AllowCoupons;\r\n this.booking.shop.ShowHearAboutQuestion = obj.settings[i].ShowHearAboutQuestion;\r\n this.booking.shop.ShowPreApprovedAmount = obj.settings[i].ShowPreApprovedAmount;\r\n this.booking.shop.ShowPrices = obj.settings[i].ShowPrices;\r\n this.booking.shop.AdditionalInformation = obj.settings[i].AdditionalInformation;\r\n }\r\n \r\n this.booking.shop.collections = false;\r\n this.setSteps();\r\n\r\n setInterval(() => {\r\n if (this.steps[this.activeIndex] !== undefined)\r\n if (this.steps[this.activeIndex].id == 'select_shop' && this.booking.shop.partnerID !== \"\") {\r\n this.nextStep();\r\n }\r\n }, 100);\r\n\r\n\r\n \r\n this.loading = false;\r\n \r\n\r\n });\r\n\r\n \r\n });\r\n }\r\n\r\n if (this.franchise !== null) {\r\n this.booking.shop.parentID = this.franchise;\r\n \r\n\r\n setInterval(() => {\r\n\r\n if (this.steps[this.activeIndex] !== undefined)\r\n if (this.steps[this.activeIndex].id == 'select_shop' && this.booking.shop.partnerID !== \"\") {\r\n this.nextStep();\r\n }\r\n }, 100);\r\n\r\n this.setLanguage();\r\n this.setSteps();\r\n }\r\n\r\n\r\n\r\n //setInterval(() => {\r\n // //console.log(this.booking.services.length, !this.skippedServicesStep, this.franchise, this.booking.bikes.length);\r\n\r\n // if (this.booking.services.length > 0 && !this.skippedServicesStep && this.franchise == null)\r\n // if (this.booking.bikes.length > 0)\r\n // if (this.booking.bikes[0].ID == -1000)\r\n // if (this.booking.services.length >= 1)\r\n // if (this.booking.bikes[0].services.services.findIndex(x => x.selected == true) > -1) {\r\n // this.nextStep();\r\n // this.skippedServicesStep = true\r\n // }\r\n\r\n // if (this.booking.services.length > 0 && !this.skippedServicesStep && this.franchise !== null)\r\n // if (this.booking.bikes.length > 0)\r\n // if (this.booking.bikes[0].ID == -1000)\r\n // if (this.booking.services.length >= 1)\r\n // if (this.booking.bikes[0].services.services.findIndex(x => x.selected == true) > -1) {\r\n // this.nextStep();\r\n // this.skippedServicesStep = true\r\n // }\r\n //}, 100);\r\n\r\n setInterval(() => {\r\n if (this.booking.otherStoreSelected) {\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'button_click_selected_other_availability', 'selected_other_availability');\r\n this.nextStep();\r\n this.booking.otherStoreSelected = false;\r\n }\r\n }, 100);\r\n\r\n }\r\n\r\n setLanguage() {\r\n localStorage.setItem(\"showTypes\", 'true');\r\n var lan = this.language;\r\n if (lan !== null) {\r\n this.translate.setDefaultLang(lan);\r\n \r\n }\r\n else {\r\n lan = \"en\";\r\n }\r\n\r\n localStorage.setItem(\"CalLocale\", lan);\r\n switch (this.booking.shop.type) {\r\n case undefined: { lan = lan + \"\"; this.translate.setDefaultLang(lan); console.log(lan); break; }\r\n case 0: { lan = lan + \"\"; this.translate.setDefaultLang(lan); console.log(lan); break; }\r\n case 1: { lan = lan + \"\"; this.translate.setDefaultLang(lan); console.log(lan); break; }\r\n default:\r\n { lan = lan + \"-verticals\"; this.translate.setDefaultLang(lan); console.log(lan); break; }\r\n }\r\n console.log(\"I am in \" + lan);\r\n\r\n if (lan == \"en-scooters\")\r\n localStorage.setItem(\"showTypes\", 'false');\r\n if (lan == \"en-verticals\")\r\n localStorage.setItem(\"showTypes\", 'false');\r\n\r\n }\r\n\r\n checkIfStoreSelected() {\r\n\r\n }\r\n\r\n setSteps() {\r\n\r\n //if (this.pay == null)\r\n // this.booking.shop.payments = false;\r\n //else\r\n // this.booking.shop.payments = true;\r\n\r\n //Set the booking type\r\n this.booking.type = \"service\";\r\n\r\n console.log(this.franchise, this.bikeshop, this.pay);\r\n\r\n this.steps = [];\r\n this.translate.get(\"steps.select-shop\").subscribe(shop => {\r\n this.translate.get(\"steps.your-details\").subscribe(details => {\r\n this.translate.get(\"steps.bike-details\").subscribe(bikes => {\r\n this.translate.get(\"steps.services\").subscribe(services => {\r\n this.translate.get(\"steps.notes\").subscribe(notes => {\r\n this.translate.get(\"steps.pick-up-drop-off\").subscribe(collections => {\r\n this.translate.get(\"steps.service-date\").subscribe(servicedate => {\r\n this.translate.get(\"steps.summary\").subscribe(summary => {\r\n //Set the steps for the wizard\r\n\r\n if (this.booking.shop.parentID !== null && this.booking.shop.parentID !== \"\") {\r\n this.steps.push({\r\n label: shop,\r\n id: \"select_shop\"\r\n });\r\n }\r\n\r\n this.steps.push({\r\n label: services,\r\n id: \"services\"\r\n });\r\n\r\n //if (this.booking.shop.doesCollections == true) {\r\n this.steps.push({\r\n label: collections,\r\n id: \"pick_up_drop_off\"\r\n });\r\n //}\r\n\r\n\r\n this.steps.push(\r\n {\r\n label: servicedate,\r\n id: \"service_date\"\r\n });\r\n this.steps.push({\r\n label: details,\r\n id: \"your_details\"\r\n });\r\n this.steps.push({\r\n label: bikes,\r\n id: \"bike_details\"\r\n });\r\n this.steps.push({\r\n label: services,\r\n id: \"services\"\r\n });\r\n this.steps.push({\r\n label: summary,\r\n id: \"summary\"\r\n });\r\n\r\n\r\n this.activeIndex = 0;\r\n\r\n if (!(this.variables.isDev())) {\r\n if (this.franchise !== null) {\r\n this.location.replaceState('/bikes' + '/' + this.franchise.replace(/ /g, \"\") + '/' + this.steps[this.activeIndex].id);\r\n }\r\n else {\r\n this.setLanguage();\r\n this.location.replaceState('/bikes' + '/' + this.booking.shop.name.replace(/ /g, \"\") + '/' + this.steps[this.activeIndex].id);\r\n }\r\n }\r\n\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n\r\n }\r\n\r\n ngOnChanges(changes) {\r\n \r\n }\r\n\r\n nextStep(paymentInfo: any = null) {\r\n this.setLanguage();\r\n console.log(this.booking);\r\n\r\n //if(this.isVanMoofBike()) return;\r\n\r\n if (!this.booking.shop.doesCollections)\r\n if (this.steps.findIndex(x => x.id == \"pick_up_drop_off\") > -1)\r\n this.steps.splice(this.steps.findIndex(x => x.id == \"pick_up_drop_off\"), 1);\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n console.log(this.steps);\r\n\r\n //lets do some validation baby!!!!\r\n if (!this.validateBooking())\r\n return;\r\n\r\n if (this.activeStep == 'services' && !this.booking.pickup.pickup && this.activeIndex < this.steps.length - 2)\r\n if (this.steps.findIndex(x => x.id == \"pick_up_drop_off\") > -1)\r\n this.activeIndex += 1;\r\n\r\n if (this.activeStep == 'pick_up_drop_off' && this.booking.pickup.pickup)\r\n this.activeIndex += 1;\r\n\r\n\r\n //if (this.activeStep == 'services' && this.activeIndex < 3 && this.activeIndex != 0) {\r\n // if (!this.booking.shop.collections && this.booking.shop.doesCollections)\r\n // this.activeIndex += 1;\r\n // else if (!this.booking.shop.collections && !this.booking.shop.doesCollections && this.activeIndex == 1) {\r\n // this.activeIndex += 0;\r\n // if (this.booking.shop.parentID == \"3AF5A857-F83C-4BA1-93F8-275F6F92D7BB\") {\r\n // this.activeIndex += 1;\r\n // }\r\n // }\r\n // else if (!this.booking.shop.collections && !this.booking.shop.doesCollections)\r\n // this.activeIndex += 1;\r\n //}\r\n //else if (this.activeStep == 'services') {\r\n // if (!this.booking.shop.collections && this.booking.shop.doesCollections && this.activeIndex == 1)\r\n // this.activeIndex += 0;\r\n // else (!this.booking.shop.collections && this.booking.shop.doesCollections && this.activeIndex != 1)\r\n // this.activeIndex += 0;\r\n //}\r\n\r\n //if (this.activeStep == 'summary' && this.booking.bikes.length === 1)\r\n // this.booking.bikes[0].services.notes = this.booking.notes;\r\n\r\n\r\n this.activeIndex += 1;\r\n if (this.activeIndex >= this.steps.length) {\r\n //SAVE BOOKING\r\n this.loading = true;\r\n }\r\n\r\n if (this.activeStep == 'bike_details' && this.booking.bikes.findIndex(x => x.ID == -1000) > -1 && this.booking.bikes.length == 2) { \r\n if (this.booking.bikes[0].ID == -1000)\r\n this.activeIndex += 1;\r\n }\r\n\r\n if (this.activeStep == 'bike_details' && this.booking.bikes.length == 1) { \r\n this.activeIndex += 1;\r\n }\r\n \r\n\r\n //if (this.activeStep == 'bike_details' && this.booking.bikes.findIndex(x => x.ID == -1000) == -1 && this.booking.bikes.length >= 1) {\r\n // this.activeIndex += 1;\r\n //}\r\n\r\n if (this.activeIndex <= this.steps.length - 1)\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n\r\n if (this.activeIndex <= this.steps.length - 1)\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n\r\n\r\n if (this.activeIndex === this.steps.length - 1)\r\n if (this.booking.shop.payments)\r\n this.nextStepText = this.translate.instant(\"steps.pay\");\r\n else\r\n this.nextStepText = this.translate.instant(\"steps.book\");\r\n else if (this.activeIndex > this.steps.length - 1) {\r\n //SAVE BOOKING\r\n this.loading = true;\r\n this.saveBooking = true;\r\n\r\n //Clearing up unnessecary services\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n while (this.booking.bikes[i].services.services.findIndex(x => x.selected == false) > -1) {\r\n this.booking.bikes[i].services.services.splice(this.booking.bikes[i].services.services.findIndex(x => x.selected == false), 1);\r\n }\r\n }\r\n\r\n //Fixing the date with their time zones added so that the DB stores them in the selected Date\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n this.booking.bikes[i].services.date = new Date(this.booking.bikes[i].services.date.setTime(this.booking.bikes[i].services.date.getTime() - (this.booking.bikes[i].services.date.getTimezoneOffset() * 60000)));\r\n }\r\n\r\n this.booking.pickup.date = new Date(this.booking.pickup.date.setTime(this.booking.pickup.date.getTime() - (this.booking.pickup.date.getTimezoneOffset() * 60000)));\r\n this.booking.date = new Date(this.booking.date.setTime(this.booking.date.getTime() - (this.booking.date.getTimezoneOffset() * 60000)));\r\n\r\n if (this.booking.legal.cookies)\r\n this.booking.legal.cookiesdate = new Date(this.booking.legal.cookiesdate.setTime(this.booking.legal.cookiesdate.getTime() - (this.booking.legal.cookiesdate.getTimezoneOffset() * 60000)));\r\n if (this.booking.legal.termsconditions)\r\n this.booking.legal.termsconditionsdate = new Date(this.booking.legal.termsconditionsdate.setTime(this.booking.legal.termsconditionsdate.getTime() - (this.booking.legal.termsconditionsdate.getTimezoneOffset() * 60000)));\r\n if (this.booking.legal.marketing)\r\n this.booking.legal.marketingdate = new Date(this.booking.legal.marketingdate.setTime(this.booking.legal.marketingdate.getTime() - (this.booking.legal.marketingdate.getTimezoneOffset() * 60000)));\r\n\r\n //Save the booking\r\n this.serviceService.saveService(this.booking.shop.partnerID, JSON.stringify({...this.booking, payment : (paymentInfo && paymentInfo.paymentIntent ? paymentInfo.paymentIntent : null)})).subscribe(response => {\r\n this.loading = false;\r\n this.saveBooking = false;\r\n var obj = JSON.parse(JSON.stringify(response));\r\n var services = \"\";\r\n\r\n if (obj !== null) {\r\n console.log(\"1.\")\r\n for (var a = 0; a < obj.Services.length; a++) {\r\n services += \",\" + obj.Services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n console.log(\"2.\")\r\n if (this.confirmaionURL == \"\" || this.confirmaionURL == null) {\r\n console.log(\"3.\")\r\n this.router.navigateByUrl('/confirmation?shop=' + this.booking.shop.partnerID + '&services=' + services);\r\n }\r\n else {\r\n //window.location.href = this.confirmaionURL;\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'page_view_bike_confirmation', 'bike_confirmation');\r\n window.top.location.href = this.confirmaionURL;\r\n }\r\n //this.router.navigateByUrl(this.confirmaionURL);\r\n }\r\n else {\r\n\r\n }\r\n });\r\n }\r\n //else\r\n //this.nextStepText = this.steps[this.activeIndex + 1].label;\r\n\r\n if (!(this.variables.isDev()))\r\n {\r\n if(this.steps[this.activeIndex] != null)\r\n {\r\n this.location.replaceState('/bikes' + '/' + this.booking.shop.name.replace(/ /g, \"\") + '/' + this.steps[this.activeIndex].id);\r\n }\r\n }\r\n\r\n let scrollToTop = window.setInterval(() => {\r\n let pos = window.pageYOffset;\r\n if (pos > 0) {\r\n window.scrollTo(0, pos - 20);\r\n } else {\r\n window.clearInterval(scrollToTop);\r\n }\r\n }, 16);\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n }\r\n\r\n isVanMoofBike(){\r\n console.log(this.booking);\r\n if (this.activeStep == 'bike_details' && this.booking && this.booking.shop && this.booking.shop.name.toLocaleLowerCase().indexOf('fettle')>-1){\r\n var isVanMoof = false;\r\n var keywords = ['van moof','vamoof','vanmoof','vanmood'];\r\n if(this.booking && this.booking.bikes){\r\n this.booking.bikes.forEach(bike=>{\r\n keywords.forEach(keyword=>{\r\n if(\r\n (bike.manufacturer && bike.manufacturer.toLowerCase().indexOf(keyword)>-1) ||\r\n (bike.model && bike.model.toLowerCase().indexOf(keyword)>-1) ||\r\n (bike.refno && bike.refno.toLowerCase().indexOf(keyword)>-1)){\r\n isVanMoof = true;\r\n }\r\n }); \r\n });\r\n }\r\n \r\n this.showVanMoofError = isVanMoof\r\n return isVanMoof;\r\n }else{\r\n return false;\r\n }\r\n }\r\n\r\n previousStep() {\r\n this.booking.errors = \"\";\r\n\r\n this.translate.get(\"button.next\").subscribe(next => {\r\n this.nextStepText = next;\r\n });\r\n\r\n //if (this.activeStep == 'summary' && this.booking.pickup.pickup)\r\n // this.activeIndex -= 1;\r\n\r\n if (this.activeStep == 'service_date' && !this.booking.pickup.pickup)\r\n this.activeIndex -= 1;\r\n\r\n\r\n if (this.activeStep == 'your_details' && this.booking.pickup.pickup)\r\n this.activeIndex -= 1;\r\n\r\n\r\n if (this.activeStep == 'summary' && this.booking.bikes.length == 1)\r\n this.activeIndex -= 1;\r\n\r\n\r\n //if (this.activeStep == 'service_date' && this.activeIndex < 4)\r\n // if (this.booking.shop.collections)\r\n // this.activeIndex -= 1;\r\n\r\n this.activeIndex -= 1;\r\n\r\n this.activeIndex = this.activeIndex < 0 ? 0 : this.activeIndex;\r\n\r\n if (this.activeIndex == 0)\r\n this.skippedServicesStep = false;\r\n\r\n if (this.steps[this.activeIndex] != null) {\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n //this.nextStepText = this.steps[this.activeIndex + 1].label;\r\n }\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n\r\n if (this.activeStep == 'select_shop') {\r\n this.booking.shop.partnerID = \"\";\r\n this.setSteps();\r\n this.booking.bikes = [];\r\n this.booking.services = [];\r\n this.booking.total = 0.0;\r\n this.booking.discount = 0.0;\r\n this.booking.notes = \"\";\r\n this.booking.pickup = new PickUp();\r\n this.booking.dropoff = new DropOff();\r\n this.booking.date = new Date();\r\n this.booking.dateSelected = false;\r\n this.booking.legal = new Legal();\r\n this.booking.errors = \"\";\r\n this.booking.shop.collections = false;\r\n this.booking.shop.payments = false;\r\n }\r\n\r\n\r\n let scrollToTop = window.setInterval(() => {\r\n let pos = window.pageYOffset;\r\n if (pos > 0) {\r\n window.scrollTo(0, pos - 20);\r\n } else {\r\n window.clearInterval(scrollToTop);\r\n }\r\n }, 16);\r\n }\r\n\r\n\r\n validateBooking() {\r\n //Reset errors\r\n this.booking.errors = \"\";\r\n\r\n //Errors will work in a bottom up fashion\r\n //The last error will be the first error on the page\r\n\r\n //customer details\r\n if (this.activeStep == 'select_shop') {\r\n if (this.booking.shop.partnerID.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.shop-missing\");\r\n }\r\n\r\n //customer details\r\n if (this.activeStep == 'your_details') {\r\n\r\n if (this.booking.client.surname == undefined)\r\n this.booking.client.surname = \"\";\r\n if (this.booking.client.name == undefined)\r\n this.booking.client.name = \"\";\r\n\r\n if (this.booking.hearAbout.name == \"\" && this.booking.shop.partnerID == \"HUB.67C5F96C27424EE9AF9286756062EEE36F013B12574247A297A839A7FC1818DE.TIGER\") {\r\n this.booking.errors = \"Please tell us how you heard about us\";//this.translate.instant(\"error.surname-missing\");\r\n }\r\n\r\n if (this.booking.client.surname.trim().length == 0)\r\n this.booking.errors = this.translate.instant(\"error.surname-missing\");\r\n if (this.booking.client.name.trim().length == 0)\r\n this.booking.errors = this.translate.instant(\"error.name-missing\");\r\n if (this.booking.client.mobile.trim().length == 0)\r\n this.booking.errors = this.translate.instant(\"error.mobile-number-missing\");\r\n //if (this.booking.client.email.length > 0 && this.booking.client.email.indexOf(\"*\") == -1)\r\n //if (!(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(this.booking.client.email)))\r\n //this.booking.errors = this.translate.instant(\"error.incorrect-email\");\r\n }\r\n\r\n //lets see if they have selected a bike\r\n if (this.activeStep == 'bike_details') {\r\n if (this.booking.bikes.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.bikes-missing\");\r\n }\r\n\r\n //lets see if they have selected a bike\r\n if (this.activeStep == 'bike_details') {\r\n if (this.booking.bikes.length == 1 && this.booking.bikes.findIndex(x => x.ID == -1000) > -1)\r\n this.booking.errors = this.translate.instant(\"error.bikes-missing\");\r\n }\r\n\r\n //lets make sure that they have selected services for all their selected bikes\r\n if (this.activeStep == 'services') {\r\n var hasServices = 0;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n var a = this.booking.bikes[i].services.services.filter(x => x.selected == true);\r\n if (a.length > 0)\r\n hasServices += 1;\r\n }\r\n\r\n if (hasServices !== this.booking.bikes.length)\r\n this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n\r\n if\r\n (this.booking.shop.partnerID == \"HUB.EFE43158FA2A48DBBD18C78EEDECBD03837C4A920A3440D2B0FEC855CA4B11E0.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.6E9D9D808FF64381A6E6EBD71157DDCF66B6F5A354D946DAAD672A628916DB4A.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.92BBD95B2E9D4DAC9B2A84B2F21B5644C5DA4C613A51461587131F10FA2698FC.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.5B72E0E476E246FCADFCC71265DECBDB1BA1ABDA44154DAFA87B8F0F2FA31A65.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.C630C885EC5C410692F08F34AEDF6D8C595C1D521BAA466D9B01404971738D94.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.C10929B9796646FA99C4BD2495EF61FE3C4CEE7146D54FD8A4591CDBF2690AE8.TIGER\"\r\n ) {\r\n if (this.booking.shop.collections)\r\n if (this.booking.total - this.booking.pickup.cost <= 100) {\r\n this.booking.errors = \"Sorry, collections are only available on services of more than $100.\";\r\n }\r\n }\r\n\r\n //if\r\n // (this.booking.shop.partnerID == \"HUB.ADCF0665B8EB429DAA575D453D447C0BD2BDE97F90454EF7803B5AD16306A685.TIGER\" ||\r\n // this.booking.shop.partnerID == \"HUB.40B77279AE32469FBCE3AD012768F86A33EBF82E5DD345D1AE9D94171D8C8C9E.TIGER\" ||\r\n // this.booking.shop.partnerID == \"HUB.EB4021B533DD413A9AA46136AC371F9DAD15AECECC2342B2A2CE4FCDB0E905EF.TIGER\" ||\r\n // this.booking.shop.partnerID == \"HUB.72389980F50C478BA3975A36ABDD34E9F8ED175A1590424CB6DB9653EF5C401A.TIGER\" ||\r\n // this.booking.shop.partnerID == \"HUB.AEA6CCA37AEB4F8A8345B4FB91CB730B6D42568B931C4C56B5B9B57CC45063D1.TIGER\"\r\n //) {\r\n // if (this.booking.shop.collections)\r\n // if (this.booking.total - this.booking.pickup.cost < 40) {\r\n // this.booking.errors = \"Sorry, collections are only available on services of more than £40.\";\r\n // }\r\n //}\r\n\r\n //if (this.booking.services.length == 0)\r\n // this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n //for (var i = 0; i < this.booking.services.length; i++) {\r\n // if (this.booking.services[i].services.length == 0)\r\n // this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n //}\r\n }\r\n\r\n //lets make sure that they have all the need for a collection\r\n if (this.activeStep == 'pick_up_drop_off') {\r\n if (this.booking.shop.doesCollections) {\r\n this.booking.pickup.pickup = true;\r\n if (this.booking.pickup.pickup) {\r\n if (this.booking.pickup.timeID == 0 || this.booking.pickup.timeSlot === null)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-time\");\r\n if (!this.booking.dateSelected)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-date\");\r\n if (this.booking.pickup.address.length == 0 || !this.booking.pickup.areaID)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-address\");\r\n }\r\n //else {\r\n // if (!(this.booking.pickup.pickup || this.booking.dropoff.dropoff))\r\n // this.booking.errors = this.translate.instant(\"error.no-selection\");\r\n //}\r\n }\r\n }\r\n\r\n //lets make sure that they have selected a service date\r\n if (this.activeStep == 'service_date') {\r\n if (this.booking.dateSelected == false)\r\n this.booking.errors = this.translate.instant(\"error.no-service-date\");\r\n }\r\n\r\n //Make sure t&c's are selected\r\n if (this.activeStep == 'summary') {\r\n if (this.booking.legal.termsconditions == false)\r\n this.booking.errors = this.translate.instant(\"error.agree-terms\");\r\n }\r\n if (this.booking.errors.length > 0)\r\n return false;\r\n\r\n this.booking.dropoff.dropoff = this.booking.pickup.pickup;\r\n\r\n return true;\r\n }\r\n\r\n transform(shop) {\r\n\r\n setTimeout(() => {\r\n\r\n }, 1);\r\n this.variables.getURL()\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.variables.getURL() + \"2021-01/partner/styles/widget/\" + shop);\r\n\r\n //let node = document.createElement('style'); // creates the script tag\r\n //node.src = this.variables.getURL() + \"2021-01/partner/styles/widget/\" + shop; // sets the source (insert url in between quotes)\r\n //node.type = 'text/javascript'; // set the script type\r\n //node.async = true; // makes script run asynchronously\r\n //node.charset = 'utf-8';\r\n ////node.text = 'alert(\\'Hi\\')';\r\n //// append to head of document\r\n //document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n }\r\n\r\n monitor(shop) {\r\n let node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/tracking/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/body/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('body')[0].appendChild(node);\r\n }\r\n\r\n\r\n @ViewChild(StripePaymentComponent, { static: false }) stripePaymentComponent!: StripePaymentComponent;\r\n public cardFormCompleted: boolean = false;\r\n public busyPaying: boolean = false;\r\n public paymentNeeded : boolean = false;\r\n\r\n setPaymentNeeded(event){\r\n if(event && event.paymentNeeded){\r\n this.paymentNeeded = true;\r\n }else{\r\n this.paymentNeeded = false;\r\n }\r\n }\r\n\r\n updatePaymentStatus(event: any) {\r\n this.busyPaying = event.busyPaying;\r\n }\r\n\r\n cardFormEvent(event: any) {\r\n this.cardFormCompleted = event.cardFormCompleted;\r\n }\r\n\r\n initiatePayment() {\r\n this.stripePaymentComponent.submitPayment();\r\n }\r\n\r\n paymentComplete(paymentInfo: any) {\r\n this.nextStep(paymentInfo);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{currentStep}}

\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
0\" style=\"padding:0px\">\r\n

{{booking.errors}}

\r\n
\r\n
\r\n
You must book via VanMoof's web platform and then the job can be assigned to us.
\r\n
\r\n\r\n \r\n
\r\n
\r\n 0\" [additionalInfo]=\"booking.shop.AdditionalInformation | safeHtml\">\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n \r\n 0\" icon=\"pi pi-angle-left\" iconPos=\"left\" label=\"{{'button.previous' | translate}}\" class=\"button button-footer align-left\" (click)=\"previousStep()\" styleClass=\"button-secondary\">\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n

{{ 'label.saving-booking' | translate }}

\r\n
\r\n\r\n \r\n\r\n\r\n \r\n
\r\n
\r\n

\r\n {{ 'label.poweredby' | translate }}:\r\n \"Short\r\n
\r\n 0\">\r\n {{ 'label.for' | translate }} {{booking.shop.name}}\r\n \r\n

\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","export class Bookings {\r\n constructor() {\r\n this.bikes = [];\r\n }\r\n public type: string = \"\";\r\n public shop: Shop = new Shop();\r\n public client: Client = new Client();\r\n public bikes: Bike[] = [];\r\n public services: any[] = [];\r\n public fitting: Service = new Service();\r\n public fittingInfo : FittingInfo = new FittingInfo();\r\n public total: number = 0.0;\r\n public discount: number = 0.0;\r\n public notes: string = \"\";\r\n public pickup: PickUp = new PickUp();\r\n public dropoff: DropOff = new DropOff();\r\n public date: Date = new Date();\r\n public dateSelected: boolean = false;\r\n public hasValidDateAndTime: boolean = false;\r\n public legal: Legal = new Legal();\r\n public errors: string = \"\";\r\n public discountCode: string = \"\";\r\n public hearAbout: any = { name: \"\", code: \"\" };\r\n public busy: boolean = false;\r\n public otherStoreSelected: boolean = false;\r\n public preApprovedAmount: number = 0.0; \r\n public couponFixedAmount: number = 0;\r\n public couponPercentAmount: number = 0;\r\n public couponRestricted : boolean = false;\r\n \r\n}\r\n\r\nexport class DepositConfiguration{\r\n public AllowStripePayment : boolean = false;\r\n public PaymentOnCheckout : boolean = false;\r\n public FullPaymentOrDeposit : string = \"\";\r\n public DepositPercentOrFixed : string = \"\"; \r\n public DepositValue : number = 0.00;\r\n public MinimumValue : number = 0.00; \r\n}\r\n\r\nexport class Shop {\r\n constructor() { }\r\n public parentID: string = \"\";\r\n public partnerID: string = \"\";\r\n public country: string = \"\";\r\n public currencySymbol: string = \"\"; \r\n public name: string = \"\";\r\n public showGDPRMarketingConsent: boolean = false;\r\n public showGDPRMarketingConsentCustomText: string = \"\";\r\n public address: string = \"\";\r\n public payment: boolean = true;\r\n public lat: number = 0.0;\r\n public lng: number = 0.0;\r\n public collections: boolean = false;\r\n public payments: boolean = false;\r\n public doesDropOff: boolean;\r\n public doesCollections: boolean;\r\n public showTechnicians: false;\r\n public showTechnicianImages: boolean = true;\r\n public AvailableDate: Date;\r\n\r\n public ShowPrices: boolean = true;\r\n public ShowHearAboutQuestion: boolean = true;\r\n public AllowCoupons: boolean = true;\r\n public ShowPreApprovedAmount: boolean = true;\r\n public AdditionalInformation: string = \"\";\r\n\r\n public depositConfiguration = new DepositConfiguration();\r\n public type: number = 0;\r\n}\r\n\r\n\r\nexport class Client {\r\n constructor() { }\r\n public ID: number = 0;\r\n public country: string = \"\";\r\n public dialCode: string = \"\";\r\n public mobile: string = \"\";\r\n public name: string = \"\";\r\n public surname: string = \"\";\r\n public email: string = \"\";\r\n}\r\n\r\nexport class Bike {\r\n constructor() { this.services = new Service(); }\r\n public ID: number = 0;\r\n public refno: string = \"\";\r\n public serialNo: string = \"\";\r\n public manufacturer: string = \"\";\r\n public model: string = \"\";\r\n public colour: string = \"\";\r\n public typeID: string = \"\";\r\n public selected: boolean = false;\r\n public services: Service = new Service();\r\n}\r\n\r\nexport class Service {\r\n constructor() { this.services = []; }\r\n public bikeID: number = 0;\r\n public services: any[] = [];\r\n public copiedServices: boolean = false;\r\n public notes: string = \"\";\r\n public name: string = \"\";\r\n public technicianID: any;\r\n public date: Date = new Date();\r\n public couponCode: string = \"\";\r\n public externalVoucherCode: string = \"\";\r\n}\r\n\r\nexport class PickUp {\r\n constructor() { }\r\n public pickup: boolean = false;\r\n public flatno: string = \"\";\r\n public address: string = \"\";\r\n public addressDetails : any = {};\r\n public date: Date = new Date();\r\n public time: string = \"\";\r\n public timeID: number = 0;\r\n public timeSlot : any = {};\r\n public instructions: string = \"\";\r\n public country: string = \"\";\r\n public dialCode: string = \"\";\r\n public mobile: string = \"\";\r\n public cost: number = 0.0;\r\n public addressSelected: boolean = false;\r\n public areaID: number = 0;\r\n public pickupProductID: number = 0;\r\n}\r\n\r\nexport class DropOff {\r\n constructor() { }\r\n public dropoff: boolean = false;\r\n public cost: number = 0.0;\r\n public dropoffProductID: number = 0;\r\n}\r\n\r\nexport class Legal {\r\n constructor() { }\r\n public termsconditions: boolean = false;\r\n public termsconditionsdate: Date = null;\r\n public marketing: boolean = false;\r\n public marketingdate: Date = null;\r\n public cookies: boolean = false;\r\n public cookiesdate: Date = null;\r\n public ipaddress: string = \"\";\r\n public marketingconsent: boolean = false;\r\n}\r\n\r\nexport class FittingInfo {\r\n constructor() { }\r\n public ID: number = 0;\r\n public userID: number = 0;\r\n public yearsRiding: string = \"\";\r\n public ridingGoals: string = \"\";\r\n public injuryHistory: string = \"\";\r\n public areasOfDiscomfort: string = \"\";\r\n public goalsOfFitSession: string = \"\";\r\n}\r\n\r\n","export class Countries {\r\n constructor() { }\r\n \r\n public Countries: any[];\r\n\r\n public getCountries() {\r\n\r\n this.Countries = [\r\n {\r\n \"name\":\"Afghanistan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/afghanistan/flag-800.png\",\r\n \"code\":\"AF\",\r\n \"dial_code\":\"+93\"\r\n },\r\n {\r\n \"name\":\"Åland Islands\",\r\n \"flag\":\"https://upload.wikimedia.org/wikipedia/commons/5/52/Flag_of_%C3%85land.svg\",\r\n \"code\":\"AX\",\r\n \"dial_code\":\"+358\"\r\n },\r\n {\r\n \"name\":\"Albania\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/albania/flag-800.png\",\r\n \"code\":\"AL\",\r\n \"dial_code\":\"+355\"\r\n },\r\n {\r\n \"name\":\"Algeria\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/algeria/flag-800.png\",\r\n \"code\":\"DZ\",\r\n \"dial_code\":\"+213\"\r\n },\r\n {\r\n \"name\":\"American Samoa\",\r\n \"flag\":\"https://cdn.britannica.com/53/69553-050-D8C6DA5E/Flag-of-American-Samoa.jpg\",\r\n \"code\":\"AS\",\r\n \"dial_code\":\"+1684\"\r\n },\r\n {\r\n \"name\":\"Andorra\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/andorra/flag-800.png\",\r\n \"code\":\"AD\",\r\n \"dial_code\":\"+376\"\r\n },\r\n {\r\n \"name\":\"Angola\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/angola/flag-800.png\",\r\n \"code\":\"AO\",\r\n \"dial_code\":\"+244\"\r\n },\r\n // {\r\n // \"name\":\"Anguilla\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/anguilla/flag-800.png\",\r\n // \"code\":\"AI\",\r\n // \"dial_code\":\"+1264\"\r\n // },\r\n // {\r\n // \"name\":\"Antarctica\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/antartica/flag-800.png\",\r\n // \"code\":\"AQ\",\r\n // \"dial_code\":\"+672\"\r\n // },\r\n {\r\n \"name\":\"Antigua and Barbuda\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/antigua-and-barbuda/flag-800.png\",\r\n \"code\":\"AG\",\r\n \"dial_code\":\"+1268\"\r\n },\r\n {\r\n \"name\":\"Argentina\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/argentina/flag-800.png\",\r\n \"code\":\"AR\",\r\n \"dial_code\":\"+54\"\r\n },\r\n {\r\n \"name\":\"Armenia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/armenia/flag-800.png\",\r\n \"code\":\"AM\",\r\n \"dial_code\":\"+374\"\r\n },\r\n {\r\n \"name\":\"Aruba\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/aruba/flag-800.png\",\r\n \"code\":\"AW\",\r\n \"dial_code\":\"+297\"\r\n },\r\n {\r\n \"name\":\"Australia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/australia/flag-800.png\",\r\n \"code\":\"AU\",\r\n \"dial_code\":\"+61\"\r\n },\r\n {\r\n \"name\":\"Austria\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/austria/flag-800.png\",\r\n \"code\":\"AT\",\r\n \"dial_code\":\"+43\"\r\n },\r\n {\r\n \"name\":\"Azerbaijan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/azerbaijan/flag-800.png\",\r\n \"code\":\"AZ\",\r\n \"dial_code\":\"+994\"\r\n },\r\n {\r\n \"name\":\"Bahamas\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/bahamas/flag-800.png\",\r\n \"code\":\"BS\",\r\n \"dial_code\":\"+1242\"\r\n },\r\n {\r\n \"name\":\"Bahrain\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/bahrain/flag-800.png\",\r\n \"code\":\"BH\",\r\n \"dial_code\":\"+973\"\r\n },\r\n {\r\n \"name\":\"Bangladesh\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/bangladesh/flag-800.png\",\r\n \"code\":\"BD\",\r\n \"dial_code\":\"+880\"\r\n },\r\n {\r\n \"name\":\"Barbados\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/barbados/flag-800.png\",\r\n \"code\":\"BB\",\r\n \"dial_code\":\"+1246\"\r\n },\r\n {\r\n \"name\":\"Belarus\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/belarus/flag-800.png\",\r\n \"code\":\"BY\",\r\n \"dial_code\":\"+375\"\r\n },\r\n {\r\n \"name\":\"Belgium\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/belgium/flag-800.png\",\r\n \"code\":\"BE\",\r\n \"dial_code\":\"+32\"\r\n },\r\n {\r\n \"name\":\"Belize\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/belize/flag-800.png\",\r\n \"code\":\"BZ\",\r\n \"dial_code\":\"+501\"\r\n },\r\n {\r\n \"name\":\"Benin\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/benin/flag-800.png\",\r\n \"code\":\"BJ\",\r\n \"dial_code\":\"+229\"\r\n },\r\n // {\r\n // \"name\":\"Bermuda\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/bermuda/flag-800.png\",\r\n // \"code\":\"BM\",\r\n // \"dial_code\":\"+1441\"\r\n // },\r\n {\r\n \"name\":\"Bhutan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/bhutan/flag-800.png\",\r\n \"code\":\"BT\",\r\n \"dial_code\":\"+975\"\r\n },\r\n {\r\n \"name\":\"Bolivia, Plurinational State of bolivia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/bolivia/flag-800.png\",\r\n \"code\":\"BO\",\r\n \"dial_code\":\"+591\"\r\n },\r\n {\r\n \"name\":\"Bosnia and Herzegovina\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/bosnia-and-herzegovina/flag-800.png\",\r\n \"code\":\"BA\",\r\n \"dial_code\":\"+387\"\r\n },\r\n {\r\n \"name\":\"Botswana\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/botswana/flag-800.png\",\r\n \"code\":\"BW\",\r\n \"dial_code\":\"+267\"\r\n },\r\n // {\r\n // \"name\":\"Bouvet Island\",\r\n // \"flag\":\"🇧🇻\",\r\n // \"code\":\"BV\",\r\n // \"dial_code\":\"+47\"\r\n // },\r\n {\r\n \"name\":\"Brazil\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/brazil/flag-800.png\",\r\n \"code\":\"BR\",\r\n \"dial_code\":\"+55\"\r\n },\r\n // {\r\n // \"name\":\"British Indian Ocean Territory\",\r\n // \"flag\":\"🇮🇴\",\r\n // \"code\":\"IO\",\r\n // \"dial_code\":\"+246\"\r\n // },\r\n {\r\n \"name\":\"Brunei Darussalam\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/brunei/flag-800.png\",\r\n \"code\":\"BN\",\r\n \"dial_code\":\"+673\"\r\n },\r\n {\r\n \"name\":\"Bulgaria\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/bulgaria/flag-800.png\",\r\n \"code\":\"BG\",\r\n \"dial_code\":\"+359\"\r\n },\r\n {\r\n \"name\":\"Burkina Faso\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/burkina-faso/flag-800.png\",\r\n \"code\":\"BF\",\r\n \"dial_code\":\"+226\"\r\n },\r\n {\r\n \"name\":\"Burundi\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/burundi/flag-800.png\",\r\n \"code\":\"BI\",\r\n \"dial_code\":\"+257\"\r\n },\r\n {\r\n \"name\":\"Cambodia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/cambodia/flag-800.png\",\r\n \"code\":\"KH\",\r\n \"dial_code\":\"+855\"\r\n },\r\n {\r\n \"name\":\"Cameroon\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/cameroon/flag-800.png\",\r\n \"code\":\"CM\",\r\n \"dial_code\":\"+237\"\r\n },\r\n {\r\n \"name\":\"Canada\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/canada/flag-800.png\",\r\n \"code\":\"CA\",\r\n \"dial_code\":\"+1\"\r\n },\r\n {\r\n \"name\":\"Cape Verde\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/cape-verde/flag-800.png\",\r\n \"code\":\"CV\",\r\n \"dial_code\":\"+238\"\r\n },\r\n {\r\n \"name\":\"Cayman Islands\",\r\n \"flag\":\"https://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/Flag_of_the_Cayman_Islands.svg/1200px-Flag_of_the_Cayman_Islands.svg.png\",\r\n \"code\":\"KY\",\r\n \"dial_code\":\"+345\"\r\n },\r\n {\r\n \"name\":\"Central African Republic\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/central-african-republic/flag-800.png\",\r\n \"code\":\"CF\",\r\n \"dial_code\":\"+236\"\r\n },\r\n {\r\n \"name\":\"Chad\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/chad/flag-800.png\",\r\n \"code\":\"TD\",\r\n \"dial_code\":\"+235\"\r\n },\r\n {\r\n \"name\":\"Chile\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/chile/flag-800.png\",\r\n \"code\":\"CL\",\r\n \"dial_code\":\"+56\"\r\n },\r\n {\r\n \"name\":\"China\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/china/flag-800.png\",\r\n \"code\":\"CN\",\r\n \"dial_code\":\"+86\"\r\n },\r\n {\r\n \"name\":\"Christmas Island\",\r\n \"flag\":\"https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Flag_of_Christmas_Island.svg/1200px-Flag_of_Christmas_Island.svg.png\",\r\n \"code\":\"CX\",\r\n \"dial_code\":\"+61\"\r\n },\r\n {\r\n \"name\":\"Cocos (Keeling) Islands\",\r\n \"flag\":\"https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Flag_of_the_Cocos_%28Keeling%29_Islands.svg/1200px-Flag_of_the_Cocos_%28Keeling%29_Islands.svg.png\",\r\n \"code\":\"CC\",\r\n \"dial_code\":\"+61\"\r\n },\r\n {\r\n \"name\":\"Colombia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/colombia/flag-800.png\",\r\n \"code\":\"CO\",\r\n \"dial_code\":\"+57\"\r\n },\r\n {\r\n \"name\":\"Comoros\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/comoros/flag-800.png\",\r\n \"code\":\"KM\",\r\n \"dial_code\":\"+269\"\r\n },\r\n {\r\n \"name\":\"Congo\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/congo-democratic-republic-of-the/flag-800.png\",\r\n \"code\":\"CG\",\r\n \"dial_code\":\"+242\"\r\n },\r\n {\r\n \"name\":\"Congo, The Democratic Republic of the Congo\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/congo-democratic-republic-of-the/flag-800.png\",\r\n \"code\":\"CD\",\r\n \"dial_code\":\"+243\"\r\n },\r\n // {\r\n // \"name\":\"Cook Islands\",\r\n // \"flag\":\"🇨🇰\",\r\n // \"code\":\"CK\",\r\n // \"dial_code\":\"+682\"\r\n // },\r\n {\r\n \"name\":\"Costa Rica\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/costa-rica/flag-800.png\",\r\n \"code\":\"CR\",\r\n \"dial_code\":\"+506\"\r\n },\r\n {\r\n \"name\":\"Cote d'Ivoire\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/cote-d-ivoire/flag-800.png\",\r\n \"code\":\"CI\",\r\n \"dial_code\":\"+225\"\r\n },\r\n {\r\n \"name\":\"Croatia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/croatia/flag-800.png\",\r\n \"code\":\"HR\",\r\n \"dial_code\":\"+385\"\r\n },\r\n {\r\n \"name\":\"Cuba\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/cuba/flag-800.png\",\r\n \"code\":\"CU\",\r\n \"dial_code\":\"+53\"\r\n },\r\n {\r\n \"name\":\"Cyprus\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/cyprus/flag-800.png\",\r\n \"code\":\"CY\",\r\n \"dial_code\":\"+357\"\r\n },\r\n {\r\n \"name\":\"Czech Republic\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/czech-republic/flag-800.png\",\r\n \"code\":\"CZ\",\r\n \"dial_code\":\"+420\"\r\n },\r\n {\r\n \"name\":\"Denmark\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/denmark/flag-800.png\",\r\n \"code\":\"DK\",\r\n \"dial_code\":\"+45\"\r\n },\r\n {\r\n \"name\":\"Djibouti\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/djibouti/flag-800.png\",\r\n \"code\":\"DJ\",\r\n \"dial_code\":\"+253\"\r\n },\r\n {\r\n \"name\":\"Dominica\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/dominica/flag-800.png\",\r\n \"code\":\"DM\",\r\n \"dial_code\":\"+1767\"\r\n },\r\n {\r\n \"name\":\"Dominican Republic\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/dominican-republic/flag-800.png\",\r\n \"code\":\"DO\",\r\n \"dial_code\":\"+1849\"\r\n },\r\n {\r\n \"name\":\"Ecuador\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/ecuador/flag-800.png\",\r\n \"code\":\"EC\",\r\n \"dial_code\":\"+593\"\r\n },\r\n {\r\n \"name\":\"Egypt\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/egypt/flag-800.png\",\r\n \"code\":\"EG\",\r\n \"dial_code\":\"+20\"\r\n },\r\n {\r\n \"name\":\"El Salvador\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/el-salvador/flag-800.png\",\r\n \"code\":\"SV\",\r\n \"dial_code\":\"+503\"\r\n },\r\n {\r\n \"name\":\"Equatorial Guinea\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/equatorial-guinea/flag-800.png\",\r\n \"code\":\"GQ\",\r\n \"dial_code\":\"+240\"\r\n },\r\n {\r\n \"name\":\"Eritrea\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/eritrea/flag-800.png\",\r\n \"code\":\"ER\",\r\n \"dial_code\":\"+291\"\r\n },\r\n {\r\n \"name\":\"Estonia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/estonia/flag-800.png\",\r\n \"code\":\"EE\",\r\n \"dial_code\":\"+372\"\r\n },\r\n {\r\n \"name\":\"Ethiopia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/ethiopia/flag-800.png\",\r\n \"code\":\"ET\",\r\n \"dial_code\":\"+251\"\r\n },\r\n {\r\n \"name\":\"Falkland Islands (Malvinas)\",\r\n \"flag\":\"https://upload.wikimedia.org/wikipedia/commons/8/83/Flag_of_the_Falkland_Islands.svg\",\r\n \"code\":\"FK\",\r\n \"dial_code\":\"+500\"\r\n },\r\n {\r\n \"name\":\"Faroe Islands\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/faroe-islands/flag-800.png\",\r\n \"code\":\"FO\",\r\n \"dial_code\":\"+298\"\r\n },\r\n {\r\n \"name\":\"Fiji\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/fiji/flag-800.png\",\r\n \"code\":\"FJ\",\r\n \"dial_code\":\"+679\"\r\n },\r\n {\r\n \"name\":\"Finland\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/finland/flag-800.png\",\r\n \"code\":\"FI\",\r\n \"dial_code\":\"+358\"\r\n },\r\n {\r\n \"name\":\"France\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/france/flag-800.png\",\r\n \"code\":\"FR\",\r\n \"dial_code\":\"+33\"\r\n },\r\n // {\r\n // \"name\":\"French Guiana\",\r\n // \"flag\":\"🇬🇫\",\r\n // \"code\":\"GF\",\r\n // \"dial_code\":\"+594\"\r\n // },\r\n // {\r\n // \"name\":\"French Polynesia\",\r\n // \"flag\":\"🇵🇫\",\r\n // \"code\":\"PF\",\r\n // \"dial_code\":\"+689\"\r\n // },\r\n // {\r\n // \"name\":\"French Southern Territories\",\r\n // \"flag\":\"🇹🇫\",\r\n // \"code\":\"TF\",\r\n // \"dial_code\":\"+262\"\r\n // },\r\n {\r\n \"name\":\"Gabon\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/gabon/flag-800.png\",\r\n \"code\":\"GA\",\r\n \"dial_code\":\"+241\"\r\n },\r\n {\r\n \"name\":\"Gambia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/gambia/flag-800.png\",\r\n \"code\":\"GM\",\r\n \"dial_code\":\"+220\"\r\n },\r\n {\r\n \"name\":\"Georgia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/georgia/flag-800.png\",\r\n \"code\":\"GE\",\r\n \"dial_code\":\"+995\"\r\n },\r\n {\r\n \"name\":\"Germany\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/germany/flag-800.png\",\r\n \"code\":\"DE\",\r\n \"dial_code\":\"+49\"\r\n },\r\n {\r\n \"name\":\"Ghana\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/ghana/flag-800.png\",\r\n \"code\":\"GH\",\r\n \"dial_code\":\"+233\"\r\n },\r\n // {\r\n // \"name\":\"Gibraltar\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/gibraltar/flag-800.png\",\r\n // \"code\":\"GI\",\r\n // \"dial_code\":\"+350\"\r\n // },\r\n {\r\n \"name\":\"Greece\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/greece/flag-800.png\",\r\n \"code\":\"GR\",\r\n \"dial_code\":\"+30\"\r\n },\r\n {\r\n \"name\":\"Greenland\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/greenland/flag-800.png\",\r\n \"code\":\"GL\",\r\n \"dial_code\":\"+299\"\r\n },\r\n {\r\n \"name\":\"Grenada\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/grenada/flag-800.png\",\r\n \"code\":\"GD\",\r\n \"dial_code\":\"+1473\"\r\n },\r\n {\r\n \"name\":\"Guadeloupe\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/guadeloupe/flag-800.png\",\r\n \"code\":\"GP\",\r\n \"dial_code\":\"+590\"\r\n },\r\n {\r\n \"name\":\"Guam\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/guam/flag-800.png\",\r\n \"code\":\"GU\",\r\n \"dial_code\":\"+1671\"\r\n },\r\n {\r\n \"name\":\"Guatemala\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/guatemala/flag-800.png\",\r\n \"code\":\"GT\",\r\n \"dial_code\":\"+502\"\r\n },\r\n // {\r\n // \"name\":\"Guernsey\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/guernsey/flag-800.png\",\r\n // \"code\":\"GG\",\r\n // \"dial_code\":\"+44\"\r\n // },\r\n {\r\n \"name\":\"Guinea\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/guinea/flag-800.png\",\r\n \"code\":\"GN\",\r\n \"dial_code\":\"+224\"\r\n },\r\n {\r\n \"name\":\"Guinea-Bissau\",\r\n \"flag\":\"https://cdn.webshopapp.com/shops/94414/files/52383786/flag-of-guinea-bissau.jpg\",\r\n \"code\":\"GW\",\r\n \"dial_code\":\"+245\"\r\n },\r\n {\r\n \"name\":\"Guyana\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/guyana/flag-800.png\",\r\n \"code\":\"GY\",\r\n \"dial_code\":\"+592\"\r\n },\r\n {\r\n \"name\":\"Haiti\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/haiti/flag-800.png\",\r\n \"code\":\"HT\",\r\n \"dial_code\":\"+509\"\r\n },\r\n // {\r\n // \"name\":\"Heard Island and Mcdonald Islands\",\r\n // \"flag\":\"🇭🇲\",\r\n // \"code\":\"HM\",\r\n // \"dial_code\":\"+672\"\r\n // },\r\n {\r\n \"name\":\"Holy See (Vatican City State)\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/vatican-city/flag-800.png\",\r\n \"code\":\"VA\",\r\n \"dial_code\":\"+379\"\r\n },\r\n {\r\n \"name\":\"Honduras\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/honduras/flag-800.png\",\r\n \"code\":\"HN\",\r\n \"dial_code\":\"+504\"\r\n },\r\n {\r\n \"name\":\"Hong Kong\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/hongkong/flag-800.png\",\r\n \"code\":\"HK\",\r\n \"dial_code\":\"+852\"\r\n },\r\n {\r\n \"name\":\"Hungary\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/hungary/flag-800.png\",\r\n \"code\":\"HU\",\r\n \"dial_code\":\"+36\"\r\n },\r\n {\r\n \"name\":\"Iceland\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/iceland/flag-800.png\",\r\n \"code\":\"IS\",\r\n \"dial_code\":\"+354\"\r\n },\r\n {\r\n \"name\":\"India\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/india/flag-800.png\",\r\n \"code\":\"IN\",\r\n \"dial_code\":\"+91\"\r\n },\r\n {\r\n \"name\":\"Indonesia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/indonesia/flag-800.png\",\r\n \"code\":\"ID\",\r\n \"dial_code\":\"+62\"\r\n },\r\n {\r\n \"name\":\"Iran, Islamic Republic of Persian Gulf\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/iran/flag-800.png\",\r\n \"code\":\"IR\",\r\n \"dial_code\":\"+98\"\r\n },\r\n {\r\n \"name\":\"Iraq\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/iraq/flag-800.png\",\r\n \"code\":\"IQ\",\r\n \"dial_code\":\"+964\"\r\n },\r\n {\r\n \"name\":\"Ireland\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/ireland/flag-800.png\",\r\n \"code\":\"IE\",\r\n \"dial_code\":\"+353\"\r\n },\r\n // {\r\n // \"name\":\"Isle of Man\",\r\n // \"flag\":\"🇮🇲\",\r\n // \"code\":\"IM\",\r\n // \"dial_code\":\"+44\"\r\n // },\r\n {\r\n \"name\":\"Israel\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/israel/flag-800.png\",\r\n \"code\":\"IL\",\r\n \"dial_code\":\"+972\"\r\n },\r\n {\r\n \"name\":\"Italy\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/italy/flag-800.png\",\r\n \"code\":\"IT\",\r\n \"dial_code\":\"+39\"\r\n },\r\n {\r\n \"name\":\"Jamaica\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/jamaica/flag-800.png\",\r\n \"code\":\"JM\",\r\n \"dial_code\":\"+1876\"\r\n },\r\n {\r\n \"name\":\"Japan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/japan/flag-800.png\",\r\n \"code\":\"JP\",\r\n \"dial_code\":\"+81\"\r\n },\r\n // {\r\n // \"name\":\"Jersey\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/jersey/flag-800.png\",\r\n // \"code\":\"JE\",\r\n // \"dial_code\":\"+44\"\r\n // },\r\n {\r\n \"name\":\"Jordan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/jordan/flag-800.png\",\r\n \"code\":\"JO\",\r\n \"dial_code\":\"+962\"\r\n },\r\n {\r\n \"name\":\"Kazakhstan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/kazakhstan/flag-800.png\",\r\n \"code\":\"KZ\",\r\n \"dial_code\":\"+7\"\r\n },\r\n {\r\n \"name\":\"Kenya\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/kenya/flag-800.png\",\r\n \"code\":\"KE\",\r\n \"dial_code\":\"+254\"\r\n },\r\n {\r\n \"name\":\"Kiribati\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/kiribati/flag-800.png\",\r\n \"code\":\"KI\",\r\n \"dial_code\":\"+686\"\r\n },\r\n {\r\n \"name\":\"Korea, Democratic People's Republic of Korea\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/north-korea/flag-800.png\",\r\n \"code\":\"KP\",\r\n \"dial_code\":\"+850\"\r\n },\r\n {\r\n \"name\":\"Korea, Republic of South Korea\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/south-korea/flag-800.png\",\r\n \"code\":\"KR\",\r\n \"dial_code\":\"+82\"\r\n },\r\n {\r\n \"name\":\"Kosovo\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/kosovo/flag-800.png\",\r\n \"code\":\"XK\",\r\n \"dial_code\":\"+383\"\r\n },\r\n {\r\n \"name\":\"Kuwait\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/kuwait/flag-800.png\",\r\n \"code\":\"KW\",\r\n \"dial_code\":\"+965\"\r\n },\r\n {\r\n \"name\":\"Kyrgyzstan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/kyrgyzstan/flag-800.png\",\r\n \"code\":\"KG\",\r\n \"dial_code\":\"+996\"\r\n },\r\n {\r\n \"name\":\"Laos\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/laos/flag-800.png\",\r\n \"code\":\"LA\",\r\n \"dial_code\":\"+856\"\r\n },\r\n {\r\n \"name\":\"Latvia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/latvia/flag-800.png\",\r\n \"code\":\"LV\",\r\n \"dial_code\":\"+371\"\r\n },\r\n {\r\n \"name\":\"Lebanon\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/lebanon/flag-800.png\",\r\n \"code\":\"LB\",\r\n \"dial_code\":\"+961\"\r\n },\r\n {\r\n \"name\":\"Lesotho\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/lesotho/flag-800.png\",\r\n \"code\":\"LS\",\r\n \"dial_code\":\"+266\"\r\n },\r\n {\r\n \"name\":\"Liberia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/liberia/flag-800.png\",\r\n \"code\":\"LR\",\r\n \"dial_code\":\"+231\"\r\n },\r\n {\r\n \"name\":\"Libyan Arab Jamahiriya\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/libya/flag-800.png\",\r\n \"code\":\"LY\",\r\n \"dial_code\":\"+218\"\r\n },\r\n {\r\n \"name\":\"Liechtenstein\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/liechtenstein/flag-800.png\",\r\n \"code\":\"LI\",\r\n \"dial_code\":\"+423\"\r\n },\r\n {\r\n \"name\":\"Lithuania\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/lithuania/flag-800.png\",\r\n \"code\":\"LT\",\r\n \"dial_code\":\"+370\"\r\n },\r\n {\r\n \"name\":\"Luxembourg\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/luxembourg/flag-800.png\",\r\n \"code\":\"LU\",\r\n \"dial_code\":\"+352\"\r\n },\r\n {\r\n \"name\":\"Macao\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/macau/flag-800.png\",\r\n \"code\":\"MO\",\r\n \"dial_code\":\"+853\"\r\n },\r\n {\r\n \"name\":\"Macedonia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/macedonia/flag-800.png\",\r\n \"code\":\"MK\",\r\n \"dial_code\":\"+389\"\r\n },\r\n {\r\n \"name\":\"Madagascar\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/madagascar/flag-800.png\",\r\n \"code\":\"MG\",\r\n \"dial_code\":\"+261\"\r\n },\r\n {\r\n \"name\":\"Malawi\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/malawi/flag-800.png\",\r\n \"code\":\"MW\",\r\n \"dial_code\":\"+265\"\r\n },\r\n {\r\n \"name\":\"Malaysia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/malaysia/flag-800.png\",\r\n \"code\":\"MY\",\r\n \"dial_code\":\"+60\"\r\n },\r\n {\r\n \"name\":\"Maldives\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/maldives/flag-800.png\",\r\n \"code\":\"MV\",\r\n \"dial_code\":\"+960\"\r\n },\r\n {\r\n \"name\":\"Mali\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/mali/flag-800.png\",\r\n \"code\":\"ML\",\r\n \"dial_code\":\"+223\"\r\n },\r\n {\r\n \"name\":\"Malta\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/malta/flag-800.png\",\r\n \"code\":\"MT\",\r\n \"dial_code\":\"+356\"\r\n },\r\n {\r\n \"name\":\"Marshall Islands\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/marshall-islands/flag-800.png\",\r\n \"code\":\"MH\",\r\n \"dial_code\":\"+692\"\r\n },\r\n // {\r\n // \"name\":\"Martinique\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/martinique/flag-800.png\",\r\n // \"code\":\"MQ\",\r\n // \"dial_code\":\"+596\"\r\n // },\r\n {\r\n \"name\":\"Mauritania\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/mauritania/flag-800.png\",\r\n \"code\":\"MR\",\r\n \"dial_code\":\"+222\"\r\n },\r\n {\r\n \"name\":\"Mauritius\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/mauritius/flag-800.png\",\r\n \"code\":\"MU\",\r\n \"dial_code\":\"+230\"\r\n },\r\n // {\r\n // \"name\":\"Mayotte\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/mayotte/flag-800.png\",\r\n // \"code\":\"YT\",\r\n // \"dial_code\":\"+262\"\r\n // },\r\n {\r\n \"name\":\"Mexico\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/mexico/flag-800.png\",\r\n \"code\":\"MX\",\r\n \"dial_code\":\"+52\"\r\n },\r\n {\r\n \"name\":\"Micronesia, Federated States of Micronesia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/micronesia/flag-800.png\",\r\n \"code\":\"FM\",\r\n \"dial_code\":\"+691\"\r\n },\r\n {\r\n \"name\":\"Moldova\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/moldova/flag-800.png\",\r\n \"code\":\"MD\",\r\n \"dial_code\":\"+373\"\r\n },\r\n {\r\n \"name\":\"Monaco\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/monaco/flag-800.png\",\r\n \"code\":\"MC\",\r\n \"dial_code\":\"+377\"\r\n },\r\n {\r\n \"name\":\"Mongolia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/mongolia/flag-800.png\",\r\n \"code\":\"MN\",\r\n \"dial_code\":\"+976\"\r\n },\r\n {\r\n \"name\":\"Montenegro\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/montenegro/flag-800.png\",\r\n \"code\":\"ME\",\r\n \"dial_code\":\"+382\"\r\n },\r\n // {\r\n // \"name\":\"Montserrat\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/montserrat/flag-800.png\",\r\n // \"code\":\"MS\",\r\n // \"dial_code\":\"+1664\"\r\n // },\r\n {\r\n \"name\":\"Morocco\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/morocco/flag-800.png\",\r\n \"code\":\"MA\",\r\n \"dial_code\":\"+212\"\r\n },\r\n {\r\n \"name\":\"Mozambique\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/mozambique/flag-800.png\",\r\n \"code\":\"MZ\",\r\n \"dial_code\":\"+258\"\r\n },\r\n {\r\n \"name\":\"Myanmar\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/myanmar/flag-800.png\",\r\n \"code\":\"MM\",\r\n \"dial_code\":\"+95\"\r\n },\r\n {\r\n \"name\":\"Namibia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/namibia/flag-800.png\",\r\n \"code\":\"NA\",\r\n \"dial_code\":\"+264\"\r\n },\r\n {\r\n \"name\":\"Nauru\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/nauru/flag-800.png\",\r\n \"code\":\"NR\",\r\n \"dial_code\":\"+674\"\r\n },\r\n {\r\n \"name\":\"Nepal\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/nepal/flag-800.png\",\r\n \"code\":\"NP\",\r\n \"dial_code\":\"+977\"\r\n },\r\n {\r\n \"name\":\"Netherlands\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/netherlands/flag-800.png\",\r\n \"code\":\"NL\",\r\n \"dial_code\":\"+31\"\r\n },\r\n // {\r\n // \"name\":\"Netherlands Antilles\",\r\n // \"flag\":\"\",\r\n // \"code\":\"AN\",\r\n // \"dial_code\":\"+599\"\r\n // },\r\n {\r\n \"name\":\"New Caledonia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/new-caledonia/flag-800.png\",\r\n \"code\":\"NC\",\r\n \"dial_code\":\"+687\"\r\n },\r\n {\r\n \"name\":\"New Zealand\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/new-zealand/flag-800.png\",\r\n \"code\":\"NZ\",\r\n \"dial_code\":\"+64\"\r\n },\r\n {\r\n \"name\":\"Nicaragua\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/nicaragua/flag-800.png\",\r\n \"code\":\"NI\",\r\n \"dial_code\":\"+505\"\r\n },\r\n {\r\n \"name\":\"Niger\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/niger/flag-800.png\",\r\n \"code\":\"NE\",\r\n \"dial_code\":\"+227\"\r\n },\r\n {\r\n \"name\":\"Nigeria\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/nigeria/flag-800.png\",\r\n \"code\":\"NG\",\r\n \"dial_code\":\"+234\"\r\n },\r\n {\r\n \"name\":\"Niue\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/niue/flag-800.png\",\r\n \"code\":\"NU\",\r\n \"dial_code\":\"+683\"\r\n },\r\n // {\r\n // \"name\":\"Norfolk Island\",\r\n // \"flag\":\"🇳🇫\",\r\n // \"code\":\"NF\",\r\n // \"dial_code\":\"+672\"\r\n // },\r\n {\r\n \"name\":\"Northern Mariana Islands\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/northern-mariana-islands/flag-800.png\",\r\n \"code\":\"MP\",\r\n \"dial_code\":\"+1670\"\r\n },\r\n {\r\n \"name\":\"Norway\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/norway/flag-800.png\",\r\n \"code\":\"NO\",\r\n \"dial_code\":\"+47\"\r\n },\r\n {\r\n \"name\":\"Oman\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/oman/flag-800.png\",\r\n \"code\":\"OM\",\r\n \"dial_code\":\"+968\"\r\n },\r\n {\r\n \"name\":\"Pakistan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/pakistan/flag-800.png\",\r\n \"code\":\"PK\",\r\n \"dial_code\":\"+92\"\r\n },\r\n {\r\n \"name\":\"Palau\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/palau/flag-800.png\",\r\n \"code\":\"PW\",\r\n \"dial_code\":\"+680\"\r\n },\r\n {\r\n \"name\":\"Palestinian Territory, Occupied\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/palestina/flag-800.png\",\r\n \"code\":\"PS\",\r\n \"dial_code\":\"+970\"\r\n },\r\n {\r\n \"name\":\"Panama\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/panama/flag-800.png\",\r\n \"code\":\"PA\",\r\n \"dial_code\":\"+507\"\r\n },\r\n {\r\n \"name\":\"Papua New Guinea\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/papua-new-guinea/flag-800.png\",\r\n \"code\":\"PG\",\r\n \"dial_code\":\"+675\"\r\n },\r\n {\r\n \"name\":\"Paraguay\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/paraguay/flag-800.png\",\r\n \"code\":\"PY\",\r\n \"dial_code\":\"+595\"\r\n },\r\n {\r\n \"name\":\"Peru\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/peru/flag-800.png\",\r\n \"code\":\"PE\",\r\n \"dial_code\":\"+51\"\r\n },\r\n {\r\n \"name\":\"Philippines\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/philippines/flag-800.png\",\r\n \"code\":\"PH\",\r\n \"dial_code\":\"+63\"\r\n },\r\n // {\r\n // \"name\":\"Pitcairn\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/pitcairn/flag-800.png\",\r\n // \"code\":\"PN\",\r\n // \"dial_code\":\"+64\"\r\n // },\r\n {\r\n \"name\":\"Poland\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/poland/flag-800.png\",\r\n \"code\":\"PL\",\r\n \"dial_code\":\"+48\"\r\n },\r\n {\r\n \"name\":\"Portugal\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/portugal/flag-800.png\",\r\n \"code\":\"PT\",\r\n \"dial_code\":\"+351\"\r\n },\r\n {\r\n \"name\":\"Puerto Rico\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/puerto-rico/flag-800.png\",\r\n \"code\":\"PR\",\r\n \"dial_code\":\"+1939\"\r\n },\r\n {\r\n \"name\":\"Qatar\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/qatar/flag-800.png\",\r\n \"code\":\"QA\",\r\n \"dial_code\":\"+974\"\r\n },\r\n {\r\n \"name\":\"Romania\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/romania/flag-800.png\",\r\n \"code\":\"RO\",\r\n \"dial_code\":\"+40\"\r\n },\r\n {\r\n \"name\":\"Russia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/russia/flag-800.png\",\r\n \"code\":\"RU\",\r\n \"dial_code\":\"+7\"\r\n },\r\n {\r\n \"name\":\"Rwanda\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/rwanda/flag-800.png\",\r\n \"code\":\"RW\",\r\n \"dial_code\":\"+250\"\r\n },\r\n // {\r\n // \"name\":\"Reunion\",\r\n // \"flag\":\"https://cdn.countryflags.com/thumbs/reunion/flag-800.png\",\r\n // \"code\":\"RE\",\r\n // \"dial_code\":\"+262\"\r\n // },\r\n // {\r\n // \"name\":\"Saint Barthelemy\",\r\n // \"flag\":\"🇧🇱\",\r\n // \"code\":\"BL\",\r\n // \"dial_code\":\"+590\"\r\n // },\r\n // {\r\n // \"name\":\"Saint Helena, Ascension and Tristan Da Cunha\",\r\n // \"flag\":\"🇸🇭\",\r\n // \"code\":\"SH\",\r\n // \"dial_code\":\"+290\"\r\n // },\r\n {\r\n \"name\":\"Saint Kitts and Nevis\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/saint-kitts-and-nevis/flag-800.png\",\r\n \"code\":\"KN\",\r\n \"dial_code\":\"+1869\"\r\n },\r\n {\r\n \"name\":\"Saint Lucia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/saint-lucia/flag-800.png\",\r\n \"code\":\"LC\",\r\n \"dial_code\":\"+1758\"\r\n },\r\n // {\r\n // \"name\":\"Saint Martin\",\r\n // \"flag\":\"🇲🇫\",\r\n // \"code\":\"MF\",\r\n // \"dial_code\":\"+590\"\r\n // },\r\n // {\r\n // \"name\":\"Saint Pierre and Miquelon\",\r\n // \"flag\":\"🇵🇲\",\r\n // \"code\":\"PM\",\r\n // \"dial_code\":\"+508\"\r\n // },\r\n {\r\n \"name\":\"Saint Vincent and the Grenadines\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/saint-vincent-and-the-grenadines/flag-800.png\",\r\n \"code\":\"VC\",\r\n \"dial_code\":\"+1784\"\r\n },\r\n {\r\n \"name\":\"Samoa\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/samoa/flag-800.png\",\r\n \"code\":\"WS\",\r\n \"dial_code\":\"+685\"\r\n },\r\n {\r\n \"name\":\"San Marino\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/san-marino/flag-800.png\",\r\n \"code\":\"SM\",\r\n \"dial_code\":\"+378\"\r\n },\r\n {\r\n \"name\":\"Sao Tome and Principe\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/sao-tome-and-principe/flag-800.png\",\r\n \"code\":\"ST\",\r\n \"dial_code\":\"+239\"\r\n },\r\n {\r\n \"name\":\"Saudi Arabia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/saudi-arabia/flag-800.png\",\r\n \"code\":\"SA\",\r\n \"dial_code\":\"+966\"\r\n },\r\n {\r\n \"name\":\"Senegal\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/senegal/flag-800.png\",\r\n \"code\":\"SN\",\r\n \"dial_code\":\"+221\"\r\n },\r\n {\r\n \"name\":\"Serbia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/serbia/flag-800.png\",\r\n \"code\":\"RS\",\r\n \"dial_code\":\"+381\"\r\n },\r\n {\r\n \"name\":\"Seychelles\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/seychelles/flag-800.png\",\r\n \"code\":\"SC\",\r\n \"dial_code\":\"+248\"\r\n },\r\n {\r\n \"name\":\"Sierra Leone\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/sierra-leone/flag-800.png\",\r\n \"code\":\"SL\",\r\n \"dial_code\":\"+232\"\r\n },\r\n {\r\n \"name\":\"Singapore\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/singapore/flag-800.png\",\r\n \"code\":\"SG\",\r\n \"dial_code\":\"+65\"\r\n },\r\n {\r\n \"name\":\"Slovakia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/slovakia/flag-800.png\",\r\n \"code\":\"SK\",\r\n \"dial_code\":\"+421\"\r\n },\r\n {\r\n \"name\":\"Slovenia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/slovenia/flag-800.png\",\r\n \"code\":\"SI\",\r\n \"dial_code\":\"+386\"\r\n },\r\n {\r\n \"name\":\"Solomon Islands\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/solomon-islands/flag-800.png\",\r\n \"code\":\"SB\",\r\n \"dial_code\":\"+677\"\r\n },\r\n {\r\n \"name\":\"Somalia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/somalia/flag-800.png\",\r\n \"code\":\"SO\",\r\n \"dial_code\":\"+252\"\r\n },\r\n {\r\n \"name\":\"South Africa\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/south-africa/flag-800.png\",\r\n \"code\":\"ZA\",\r\n \"dial_code\":\"+27\"\r\n },\r\n {\r\n \"name\":\"South Sudan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/south-sudan/flag-800.png\",\r\n \"code\":\"SS\",\r\n \"dial_code\":\"+211\"\r\n },\r\n // {\r\n // \"name\":\"South Georgia and the South Sandwich Islands\",\r\n // \"flag\":\"🇬🇸\",\r\n // \"code\":\"GS\",\r\n // \"dial_code\":\"+500\"\r\n // },\r\n {\r\n \"name\":\"Spain\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/spain/flag-800.png\",\r\n \"code\":\"ES\",\r\n \"dial_code\":\"+34\"\r\n },\r\n {\r\n \"name\":\"Sri Lanka\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/sri-lanka/flag-800.png\",\r\n \"code\":\"LK\",\r\n \"dial_code\":\"+94\"\r\n },\r\n {\r\n \"name\":\"Sudan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/sudan/flag-800.png\",\r\n \"code\":\"SD\",\r\n \"dial_code\":\"+249\"\r\n },\r\n {\r\n \"name\":\"Suriname\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/suriname/flag-800.png\",\r\n \"code\":\"SR\",\r\n \"dial_code\":\"+597\"\r\n },\r\n // {\r\n // \"name\":\"Svalbard and Jan Mayen\",\r\n // \"flag\":\"🇸🇯\",\r\n // \"code\":\"SJ\",\r\n // \"dial_code\":\"+47\"\r\n // },\r\n {\r\n \"name\":\"Swaziland\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/swaziland/flag-800.png\",\r\n \"code\":\"SZ\",\r\n \"dial_code\":\"+268\"\r\n },\r\n {\r\n \"name\":\"Sweden\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/sweden/flag-800.png\",\r\n \"code\":\"SE\",\r\n \"dial_code\":\"+46\"\r\n },\r\n {\r\n \"name\":\"Switzerland\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/switzerland/flag-800.png\",\r\n \"code\":\"CH\",\r\n \"dial_code\":\"+41\"\r\n },\r\n {\r\n \"name\":\"Syrian Arab Republic\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/syria/flag-800.png\",\r\n \"code\":\"SY\",\r\n \"dial_code\":\"+963\"\r\n },\r\n {\r\n \"name\":\"Taiwan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/taiwan/flag-800.png\",\r\n \"code\":\"TW\",\r\n \"dial_code\":\"+886\"\r\n },\r\n {\r\n \"name\":\"Tajikistan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/tajikistan/flag-800.png\",\r\n \"code\":\"TJ\",\r\n \"dial_code\":\"+992\"\r\n },\r\n {\r\n \"name\":\"Tanzania, United Republic of Tanzania\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/tanzania/flag-800.png\",\r\n \"code\":\"TZ\",\r\n \"dial_code\":\"+255\"\r\n },\r\n {\r\n \"name\":\"Thailand\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/thailand/flag-800.png\",\r\n \"code\":\"TH\",\r\n \"dial_code\":\"+66\"\r\n },\r\n {\r\n \"name\":\"Timor-Leste\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/timor-leste/flag-800.png\",\r\n \"code\":\"TL\",\r\n \"dial_code\":\"+670\"\r\n },\r\n {\r\n \"name\":\"Togo\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/togo/flag-800.png\",\r\n \"code\":\"TG\",\r\n \"dial_code\":\"+228\"\r\n },\r\n {\r\n \"name\":\"Tokelau\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/tokelau/flag-800.png\",\r\n \"code\":\"TK\",\r\n \"dial_code\":\"+690\"\r\n },\r\n {\r\n \"name\":\"Tonga\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/tonga/flag-800.png\",\r\n \"code\":\"TO\",\r\n \"dial_code\":\"+676\"\r\n },\r\n {\r\n \"name\":\"Trinidad and Tobago\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/trinidad-and-tobago/flag-800.png\",\r\n \"code\":\"TT\",\r\n \"dial_code\":\"+1868\"\r\n },\r\n {\r\n \"name\":\"Tunisia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/tunisia/flag-800.png\",\r\n \"code\":\"TN\",\r\n \"dial_code\":\"+216\"\r\n },\r\n {\r\n \"name\":\"Turkey\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/turkey/flag-800.png\",\r\n \"code\":\"TR\",\r\n \"dial_code\":\"+90\"\r\n },\r\n {\r\n \"name\":\"Turkmenistan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/turkmenistan/flag-800.png\",\r\n \"code\":\"TM\",\r\n \"dial_code\":\"+993\"\r\n },\r\n // {\r\n // \"name\":\"Turks and Caicos Islands\",\r\n // \"flag\":\"🇹🇨\",\r\n // \"code\":\"TC\",\r\n // \"dial_code\":\"+1649\"\r\n // },\r\n {\r\n \"name\":\"Tuvalu\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/tuvalu/flag-800.png\",\r\n \"code\":\"TV\",\r\n \"dial_code\":\"+688\"\r\n },\r\n {\r\n \"name\":\"Uganda\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/uganda/flag-800.png\",\r\n \"code\":\"UG\",\r\n \"dial_code\":\"+256\"\r\n },\r\n {\r\n \"name\":\"Ukraine\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/ukraine/flag-800.png\",\r\n \"code\":\"UA\",\r\n \"dial_code\":\"+380\"\r\n },\r\n {\r\n \"name\":\"United Arab Emirates\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/united-arab-emirates/flag-800.png\",\r\n \"code\":\"AE\",\r\n \"dial_code\":\"+971\"\r\n },\r\n {\r\n \"name\":\"United Kingdom\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/united-kingdom/flag-800.png\",\r\n \"code\":\"GB\",\r\n \"dial_code\":\"+44\"\r\n },\r\n {\r\n \"name\":\"United States\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/united-states-of-america/flag-800.png\",\r\n \"code\":\"US\",\r\n \"dial_code\":\"+1\"\r\n },\r\n {\r\n \"name\":\"Uruguay\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/uruguay/flag-800.png\",\r\n \"code\":\"UY\",\r\n \"dial_code\":\"+598\"\r\n },\r\n {\r\n \"name\":\"Uzbekistan\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/uzbekistan/flag-800.png\",\r\n \"code\":\"UZ\",\r\n \"dial_code\":\"+998\"\r\n },\r\n {\r\n \"name\":\"Vanuatu\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/vanuatu/flag-800.png\",\r\n \"code\":\"VU\",\r\n \"dial_code\":\"+678\"\r\n },\r\n {\r\n \"name\":\"Venezuela, Bolivarian Republic of Venezuela\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/venezuela/flag-800.png\",\r\n \"code\":\"VE\",\r\n \"dial_code\":\"+58\"\r\n },\r\n {\r\n \"name\":\"Vietnam\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/vietnam/flag-800.png\",\r\n \"code\":\"VN\",\r\n \"dial_code\":\"+84\"\r\n },\r\n // {\r\n // \"name\":\"Virgin Islands, British\",\r\n // \"flag\":\"🇻🇬\",\r\n // \"code\":\"VG\",\r\n // \"dial_code\":\"+1284\"\r\n // },\r\n // {\r\n // \"name\":\"Virgin Islands, U.S.\",\r\n // \"flag\":\"🇻🇮\",\r\n // \"code\":\"VI\",\r\n // \"dial_code\":\"+1340\"\r\n // },\r\n // {\r\n // \"name\":\"Wallis and Futuna\",\r\n // \"flag\":\"🇼🇫\",\r\n // \"code\":\"WF\",\r\n // \"dial_code\":\"+681\"\r\n // },\r\n {\r\n \"name\":\"Yemen\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/yemen/flag-800.png\",\r\n \"code\":\"YE\",\r\n \"dial_code\":\"+967\"\r\n },\r\n {\r\n \"name\":\"Zambia\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/zambia/flag-800.png\",\r\n \"code\":\"ZM\",\r\n \"dial_code\":\"+260\"\r\n },\r\n {\r\n \"name\":\"Zimbabwe\",\r\n \"flag\":\"https://cdn.countryflags.com/thumbs/zimbabwe/flag-800.png\",\r\n \"code\":\"ZW\",\r\n \"dial_code\":\"+263\"\r\n }\r\n ];\r\n \r\n return this.Countries;\r\n }\r\n}\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, OnChanges, SimpleChanges, Inject, Renderer2, ViewChild } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { MessageService } from 'primeng/api';\r\nimport { Button } from 'primeng/button';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { Bookings, Bike, Legal, DropOff, PickUp } from '../classes/bookings';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser'\r\nimport { BikeShopSearchComponent } from '../pages/bike-shop-search/bike-shop-search.component';\r\nimport { ServiceService } from '../services/service.service';\r\nimport { Location, DOCUMENT } from '@angular/common';\r\nimport { Variables } from '../shared/variables';\r\nimport { PartnerService } from '../services/partner.service';\r\nimport { sendToGTM } from '../shared/GoogleTagManager';\r\nimport { GoogleService } from '../services/google.service';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { StripePaymentComponent } from '../pages/stripe-payment/stripe-payment.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-collections',\r\n templateUrl: './collections.component.html',\r\n providers: [MessageService],\r\n styleUrls: ['./collections.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class CollectionsComponent implements OnInit {\r\n\r\n\r\n constructor(\r\n private messageService: MessageService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private translate: TranslateService,\r\n private sanitizer: DomSanitizer,\r\n private serviceService: ServiceService,\r\n private location: Location,\r\n private partnerService: PartnerService,\r\n private gtmService: GoogleTagManagerService,\r\n private variables: Variables\r\n ) { }\r\n\r\n loading: boolean = false;\r\n booking: Bookings = new Bookings;\r\n customCSSUrl = null;\r\n franchise: string = \"\";\r\n bikeshop: string = \"\";\r\n pay: string = \"\";\r\n confirmaionURL: string = \"\";\r\n\r\n steps: MenuItem[];\r\n activeIndex: number = -1;\r\n activeStep: string = \"\";\r\n nextStepText: string = \"NEXT\";\r\n\r\n currentStep: string = \"\";\r\n\r\n saveBooking: boolean = false;\r\n progress: number = 0;\r\n\r\n skippedServicesStep: boolean = false;\r\n serviceTypeID: string[] = [];\r\n serviceGroups: string[] = [];\r\n disabledFeatures: string[] = [];\r\n showVanMoofError = false;\r\n language: string = \"\";\r\n ngOnInit() {\r\n localStorage.removeItem(\"serviceGroups\");\r\n localStorage.removeItem(\"showTypes\");\r\n localStorage.removeItem(\"disabledFeatures\");\r\n\r\n var disabled = this.route.snapshot.queryParamMap.get(\"disabled\");\r\n if (disabled !== null) {\r\n this.disabledFeatures = disabled.split(\",\");\r\n localStorage.setItem(\"disabledFeatures\", JSON.stringify(this.disabledFeatures));\r\n }\r\n else {\r\n this.disabledFeatures = [];\r\n localStorage.setItem(\"disabledFeatures\", JSON.stringify(this.disabledFeatures));\r\n }\r\n\r\n localStorage.setItem(\"serviceGroups\", JSON.stringify(this.serviceGroups));\r\n\r\n this.language = this.route.snapshot.queryParamMap.get(\"lang\");\r\n var lan = this.language;\r\n if (lan !== null) {\r\n this.translate.setDefaultLang(lan);\r\n if (lan == \"en-scooters\")\r\n localStorage.setItem(\"showTypes\", 'false');\r\n }\r\n\r\n this.translate.get(\"button.next\").subscribe(next => {\r\n this.nextStepText = next;\r\n });\r\n\r\n var sID = this.route.snapshot.queryParamMap.get(\"service\");\r\n if (sID !== null) {\r\n this.serviceTypeID = sID.split(\",\");\r\n for (var i = 0; i < this.serviceTypeID.length; i++) {\r\n this.booking.services.push(this.serviceTypeID[i]);\r\n }\r\n\r\n var collection = this.route.snapshot.queryParamMap.get(\"collection\");\r\n if (collection === \"true\") {\r\n this.booking.pickup.pickup = true;\r\n }\r\n }\r\n\r\n var groups = this.route.snapshot.queryParamMap.get(\"groups\");\r\n if (groups !== null) {\r\n this.serviceGroups = groups.split(\"|\");\r\n\r\n localStorage.setItem(\"serviceGroups\", JSON.stringify(this.serviceGroups));\r\n }\r\n else {\r\n localStorage.setItem(\"serviceGroups\", JSON.stringify(this.serviceGroups));\r\n }\r\n\r\n var showPrices = this.route.snapshot.queryParamMap.get(\"showPrices\");\r\n if (showPrices !== null) {\r\n localStorage.setItem(\"showPrices\", showPrices);\r\n }\r\n else {\r\n localStorage.setItem(\"showPrices\", \"yes\");\r\n }\r\n\r\n\r\n this.booking.pickup.pickup = true;\r\n this.booking.dropoff.dropoff = true;\r\n\r\n //Lets check the config now and build the menu\r\n this.franchise = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n this.bikeshop = this.route.snapshot.queryParamMap.get(\"shop\");\r\n this.confirmaionURL = this.route.snapshot.queryParamMap.get(\"confirmation\");\r\n //this.pay = this.route.snapshot.queryParamMap.get(\"payment\");\r\n\r\n if (this.bikeshop !== null) {\r\n this.customCSSUrl = this.transform(this.bikeshop);\r\n this.monitor(this.bikeshop);\r\n }\r\n if (this.franchise !== null) {\r\n this.customCSSUrl = this.transform(this.franchise);\r\n this.monitor(this.franchise);\r\n }\r\n\r\n if (this.bikeshop !== null) {\r\n this.partnerService.getBikeshopsByExternalID(this.bikeshop).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n\r\n this.booking.shop.partnerID = obj.Partners[i].ID;\r\n this.booking.shop.name = obj.Partners[i].Name;\r\n this.booking.shop.showGDPRMarketingConsent = obj.Partners[i].ShowGDPRMarketingConsent;\r\n this.booking.shop.showGDPRMarketingConsentCustomText = obj.Partners[i].ShowGDPRMarketingConsentCustomText;\r\n this.booking.shop.address = obj.Partners[i].Address;\r\n this.booking.shop.currencySymbol = obj.Partners[i].CurrencySymbol;\r\n this.booking.shop.country = obj.Partners[i].Country;\r\n this.booking.shop.doesCollections = obj.Partners[i].DoesCollections;\r\n this.booking.shop.doesDropOff = obj.Partners[i].DoesDropOff;\r\n this.booking.shop.lat = obj.Partners[i].Latitude;\r\n this.booking.shop.lng = obj.Partners[i].Longitude;\r\n this.booking.shop.payments = obj.Partners[i].WidgetAllowPayments;\r\n this.booking.shop.showTechnicianImages = obj.Partners[i].FittingsShowTechnicianImage;\r\n this.booking.shop.depositConfiguration = obj.Partners[i].DepositConfiguration;\r\n }\r\n this.setLanguage();\r\n this.partnerService.getShopWidgetSettings(this.bikeshop).subscribe(reply => {\r\n console.log(reply);\r\n var obj = JSON.parse(JSON.stringify(reply));\r\n console.log(obj.settings);\r\n for (var i = 0; i < obj.settings.length; i++) {\r\n this.booking.shop.AllowCoupons = obj.settings[i].AllowCoupons;\r\n this.booking.shop.ShowHearAboutQuestion = obj.settings[i].ShowHearAboutQuestion;\r\n this.booking.shop.ShowPreApprovedAmount = obj.settings[i].ShowPreApprovedAmount;\r\n this.booking.shop.ShowPrices = obj.settings[i].ShowPrices;\r\n this.booking.shop.AdditionalInformation = obj.settings[i].AdditionalInformation;\r\n }\r\n this.setSteps();\r\n this.loading = false;\r\n });\r\n\r\n });\r\n }\r\n\r\n if (this.franchise !== null) {\r\n this.setSteps();\r\n this.setLanguage();\r\n }\r\n\r\n setInterval(() => {\r\n\r\n \r\n\r\n if (this.steps[this.activeIndex] !== undefined)\r\n if (this.steps[this.activeIndex].id == 'check_address' && this.booking.shop.partnerID !== \"\") {\r\n //this.monitor(this.booking.shop.partnerID);\r\n \r\n this.nextStep();\r\n }\r\n }, 100);\r\n\r\n setInterval(() => {\r\n if (this.booking.otherStoreSelected) {\r\n this.nextStep();\r\n this.booking.otherStoreSelected = false;\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'button_click_selected_other_availability', 'selected_other_availability');\r\n }\r\n }, 100);\r\n\r\n setInterval(() => {\r\n if (this.booking.services.length > 0 && !this.skippedServicesStep && this.franchise == null)\r\n if (this.booking.bikes.length > 0)\r\n if (this.booking.bikes[0].ID == -1000)\r\n if (this.booking.services.length >= 1)\r\n if (this.booking.bikes[0].services.services.findIndex(x => x.selected == true) > -1) {\r\n this.nextStep();\r\n this.skippedServicesStep = true\r\n }\r\n\r\n if (this.booking.services.length > 0 && !this.skippedServicesStep && this.franchise !== null)\r\n if (this.booking.bikes.length > 0)\r\n if (this.booking.bikes[0].ID == -1000)\r\n if (this.booking.services.length >= 1)\r\n if (this.booking.bikes[0].services.services.findIndex(x => x.selected == true) > -1) {\r\n this.nextStep();\r\n this.skippedServicesStep = true\r\n } \r\n }, 100);\r\n }\r\n\r\n checkIfStoreSelected() {\r\n\r\n }\r\n\r\n setLanguage() {\r\n localStorage.setItem(\"showTypes\", 'true');\r\n var lan = this.language;\r\n if (lan !== null) {\r\n this.translate.setDefaultLang(lan);\r\n\r\n }\r\n else {\r\n lan = \"en\";\r\n }\r\n\r\n localStorage.setItem(\"CalLocale\", lan);\r\n\r\n console.log(this.booking.shop.type);\r\n switch (this.booking.shop.type) {\r\n case 1: { lan = lan + \"\"; this.translate.setDefaultLang(lan); console.log(lan); break; }\r\n default:\r\n { lan = lan + \"-verticals\"; this.translate.setDefaultLang(lan); console.log(lan); break; }\r\n }\r\n console.log(\"I am in \" + lan);\r\n\r\n if (lan == \"en-scooters\")\r\n localStorage.setItem(\"showTypes\", 'false');\r\n if (lan == \"en-verticals\")\r\n localStorage.setItem(\"showTypes\", 'false');\r\n\r\n }\r\n\r\n setSteps() {\r\n //Set the booking type\r\n this.booking.type = \"collection\";\r\n\r\n this.steps = [];\r\n this.translate.get(\"steps.select-shop\").subscribe(shop => {\r\n this.translate.get(\"steps.your-details\").subscribe(details => {\r\n this.translate.get(\"steps.bike-details\").subscribe(bikes => {\r\n this.translate.get(\"steps.services\").subscribe(services => {\r\n this.translate.get(\"steps.notes\").subscribe(notes => {\r\n this.translate.get(\"steps.pick-up-drop-off\").subscribe(collections => {\r\n this.translate.get(\"steps.service-date\").subscribe(servicedate => {\r\n this.translate.get(\"steps.summary\").subscribe(summary => {\r\n this.translate.get(\"steps.address\").subscribe(address => {\r\n //Set the steps for the wizard\r\n\r\n this.steps = [\r\n {\r\n label: address,\r\n id: \"check_address\"\r\n },\r\n {\r\n label: services,\r\n id: \"services\"\r\n },\r\n {\r\n label: collections,\r\n id: \"pick_up_drop_off\"\r\n },\r\n {\r\n label: details,\r\n id: \"your_details\"\r\n },\r\n {\r\n label: bikes,\r\n id: \"bike_details\"\r\n },\r\n {\r\n label: services,\r\n id: \"services\"\r\n },\r\n {\r\n label: summary,\r\n id: \"summary\"\r\n }\r\n ];\r\n\r\n this.activeIndex = 0;\r\n\r\n if (this.franchise === null) {\r\n this.steps.splice(0, 1);\r\n }\r\n\r\n if (!(this.variables.isDev())) {\r\n if (this.franchise !== null) {\r\n this.location.replaceState('/collections' + '/' + this.franchise.replace(/ /g, \"\") + '/' + this.steps[this.activeIndex].id);\r\n }\r\n else {\r\n this.location.replaceState('/collections' + '/' + this.booking.shop.name.replace(/ /g, \"\") + '/' + this.steps[this.activeIndex].id);\r\n }\r\n }\r\n\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n\r\n this.partnerService.getShopWidgetSettings(this.bikeshop).subscribe(reply => {\r\n console.log(reply);\r\n var obj = JSON.parse(JSON.stringify(reply));\r\n console.log(obj.settings);\r\n for (var i = 0; i < obj.settings.length; i++) {\r\n this.booking.shop.AllowCoupons = obj.settings[i].AllowCoupons;\r\n this.booking.shop.ShowHearAboutQuestion = obj.settings[i].ShowHearAboutQuestion;\r\n this.booking.shop.ShowPreApprovedAmount = obj.settings[i].ShowPreApprovedAmount;\r\n this.booking.shop.ShowPrices = obj.settings[i].ShowPrices;\r\n this.booking.shop.AdditionalInformation = obj.settings[i].AdditionalInformation;\r\n }\r\n //this.setSteps();\r\n this.loading = false;\r\n });\r\n\r\n }\r\n\r\n ngOnChanges(changes) {\r\n\r\n }\r\n\r\n nextStep(paymentInfo: any = null) {\r\n\r\n console.log(this.booking);\r\n //if(this.isVanMoofBike()) return;\r\n\r\n //lets do some validation baby!!!!\r\n if (!this.validateBooking())\r\n return;\r\n\r\n //if (!this.booking.shop.doesDropOff && !this.booking.shop.doesCollections)\r\n // if (this.steps.findIndex(x => x.id == \"pick_up_drop_off\") > -1)\r\n // this.steps.splice(this.steps.findIndex(x => x.id == \"pick_up_drop_off\"), 1);\r\n\r\n\r\n //if (this.activeStep == 'pick_up_drop_off' && this.booking.pickup.pickup)\r\n // this.activeIndex += 1;\r\n\r\n if (this.activeStep == 'bike_details' && this.booking.pickup.pickup)\r\n this.booking.pickup.date = this.booking.date;\r\n\r\n if (this.activeStep == 'bike_details' && this.booking.bikes.findIndex(x => x.ID == -1000) > -1 && this.booking.bikes.length == 2) {\r\n if (this.booking.bikes[0].ID == -1000)\r\n this.activeIndex += 1;\r\n }\r\n\r\n if (this.activeStep == 'bike_details' && this.booking.bikes.findIndex(x => x.ID == -1000) == -1 && this.booking.bikes.length == 1) {\r\n this.activeIndex += 1;\r\n }\r\n\r\n this.activeIndex += 1;\r\n if (this.activeIndex >= this.steps.length) {\r\n //SAVE BOOKING\r\n this.loading = true;\r\n }\r\n\r\n //if (this.activeStep == 'bike_details' && this.booking.bikes.findIndex(x => x.ID == -1000) > -1 && this.booking.bikes.length == 2) {\r\n // if (this.booking.bikes[0].ID == -1000)\r\n // this.activeIndex += 1;\r\n //}\r\n\r\n if (this.activeIndex <= this.steps.length - 1)\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n\r\n if (this.activeIndex <= this.steps.length - 1)\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n\r\n\r\n if (this.activeIndex === this.steps.length - 1)\r\n if (this.booking.shop.payments)\r\n this.nextStepText = this.translate.instant(\"steps.pay\");\r\n else\r\n this.nextStepText = this.translate.instant(\"steps.book\");\r\n else if (this.activeIndex > this.steps.length - 1) {\r\n //SAVE BOOKING\r\n this.loading = true;\r\n this.saveBooking = true;\r\n\r\n //Clearing up unnessecary services\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n while (this.booking.bikes[i].services.services.findIndex(x => x.selected == false) > -1) {\r\n this.booking.bikes[i].services.services.splice(this.booking.bikes[i].services.services.findIndex(x => x.selected == false), 1);\r\n }\r\n }\r\n\r\n //Fixing the date with their time zones added so that the DB stores them in the selected Date\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n this.booking.bikes[i].services.date = new Date(this.booking.bikes[i].services.date.setTime(this.booking.bikes[i].services.date.getTime() - (this.booking.bikes[i].services.date.getTimezoneOffset() * 60000)));\r\n }\r\n\r\n this.booking.pickup.date = new Date(this.booking.pickup.date.setTime(this.booking.pickup.date.getTime() - (this.booking.pickup.date.getTimezoneOffset() * 60000)));\r\n this.booking.date = new Date(this.booking.date.setTime(this.booking.date.getTime() - (this.booking.date.getTimezoneOffset() * 60000)));\r\n\r\n if (this.booking.legal.cookies)\r\n this.booking.legal.cookiesdate = new Date(this.booking.legal.cookiesdate.setTime(this.booking.legal.cookiesdate.getTime() - (this.booking.legal.cookiesdate.getTimezoneOffset() * 60000)));\r\n if (this.booking.legal.termsconditions)\r\n this.booking.legal.termsconditionsdate = new Date(this.booking.legal.termsconditionsdate.setTime(this.booking.legal.termsconditionsdate.getTime() - (this.booking.legal.termsconditionsdate.getTimezoneOffset() * 60000)));\r\n if (this.booking.legal.marketing)\r\n this.booking.legal.marketingdate = new Date(this.booking.legal.marketingdate.setTime(this.booking.legal.marketingdate.getTime() - (this.booking.legal.marketingdate.getTimezoneOffset() * 60000)));\r\n\r\n if (this.activeStep == 'summary' && this.booking.bikes.length === 1)\r\n if (this.booking.notes.length > 0)\r\n this.booking.bikes[0].services.notes = this.booking.notes;\r\n\r\n //Save the booking\r\n this.serviceService.saveService(this.booking.shop.partnerID, JSON.stringify({...this.booking, payment : (paymentInfo && paymentInfo.paymentIntent ? paymentInfo.paymentIntent : null)})).subscribe(response => {\r\n this.loading = false;\r\n this.saveBooking = false;\r\n var obj = JSON.parse(JSON.stringify(response));\r\n var services = \"\";\r\n if (obj !== null) {\r\n for (var a = 0; a < obj.Services.length; a++) {\r\n services += \",\" + obj.Services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n if (this.confirmaionURL == \"\" || this.confirmaionURL == null)\r\n this.router.navigateByUrl('/confirmation?shop=' + this.booking.shop.partnerID + '&services=' + services);\r\n else {\r\n //window.location.href = this.confirmaionURL;\r\n window.top.location.href = this.confirmaionURL;\r\n }\r\n //this.router.navigateByUrl(this.confirmaionURL);\r\n }\r\n else {\r\n\r\n }\r\n });\r\n }\r\n //else\r\n //this.nextStepText = this.steps[this.activeIndex + 1].label;\r\n\r\n if (!(this.variables.isDev()))\r\n this.location.replaceState('/collections' + '/' + this.booking.shop.name.replace(/ /g, \"\") + '/' + this.steps[this.activeIndex].id);\r\n\r\n let scrollToTop = window.setInterval(() => {\r\n let pos = window.pageYOffset;\r\n if (pos > 0) {\r\n window.scrollTo(0, pos - 20);\r\n } else {\r\n window.clearInterval(scrollToTop);\r\n }\r\n }, 16);\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n }\r\n\r\n isVanMoofBike(){\r\n console.log(this.booking);\r\n if (this.activeStep == 'bike_details' && this.booking && this.booking.shop && this.booking.shop.name.toLocaleLowerCase().indexOf('fettle')>-1){\r\n var isVanMoof = false;\r\n var keywords = ['van moof','vamoof','vanmoof','vanmood'];\r\n if(this.booking && this.booking.bikes){\r\n this.booking.bikes.forEach(bike=>{\r\n keywords.forEach(keyword=>{\r\n if(\r\n (bike.manufacturer && bike.manufacturer.toLowerCase().indexOf(keyword)>-1) ||\r\n (bike.model && bike.model.toLowerCase().indexOf(keyword)>-1) ||\r\n (bike.refno && bike.refno.toLowerCase().indexOf(keyword)>-1)){\r\n isVanMoof = true;\r\n }\r\n }); \r\n });\r\n }\r\n \r\n this.showVanMoofError = isVanMoof\r\n return isVanMoof;\r\n }else{\r\n return false;\r\n }\r\n }\r\n\r\n previousStep() {\r\n this.booking.errors = \"\";\r\n\r\n this.translate.get(\"button.next\").subscribe(next => {\r\n this.nextStepText = next;\r\n });\r\n\r\n if (this.activeStep == 'summary' && this.activeIndex > 1 && this.booking.bikes.length == 1)\r\n this.activeIndex -= 1;\r\n\r\n //if (this.activeStep == 'summary' && this.booking.pickup.pickup)\r\n // this.activeIndex -= 1;\r\n\r\n //if (this.activeStep == 'summary' && this.booking.bikes.length >= 1)\r\n // this.activeIndex -= 1;\r\n\r\n this.activeIndex -= 1;\r\n this.activeIndex = this.activeIndex < 0 ? 0 : this.activeIndex;\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n //this.nextStepText = this.steps[this.activeIndex + 1].label;\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n\r\n if (this.activeStep == 'check_address') {\r\n\r\n this.booking.shop.partnerID = \"\";\r\n this.setSteps();\r\n this.booking.bikes = [];\r\n this.booking.services = [];\r\n this.booking.total = 0.0;\r\n this.booking.discount = 0.0;\r\n this.booking.notes = \"\";\r\n this.booking.pickup = new PickUp();\r\n this.booking.dropoff = new DropOff();\r\n this.booking.date = new Date();\r\n this.booking.dateSelected = false;\r\n this.booking.legal = new Legal();\r\n this.booking.errors = \"\";\r\n this.booking.shop.collections = false;\r\n this.booking.shop.payments = false;\r\n }\r\n\r\n let scrollToTop = window.setInterval(() => {\r\n let pos = window.pageYOffset;\r\n if (pos > 0) {\r\n window.scrollTo(0, pos - 20);\r\n } else {\r\n window.clearInterval(scrollToTop);\r\n }\r\n }, 16);\r\n }\r\n\r\n\r\n validateBooking() {\r\n //Reset errors\r\n this.booking.errors = \"\";\r\n\r\n //Errors will work in a bottom up fashion\r\n //The last error will be the first error on the page\r\n\r\n //customer details\r\n if (this.activeStep == 'select_shop') {\r\n if (this.booking.shop.partnerID.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.shop-missing\");\r\n }\r\n\r\n if (this.activeStep == 'check_address') {\r\n if (this.booking.shop.partnerID.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.no-address\");\r\n //if (!this.booking.pickup.addressSelected)\r\n // this.booking.errors = this.translate.instant(\"error.no-address-selected\");\r\n }\r\n\r\n //customer details\r\n if (this.activeStep == 'your_details') {\r\n if (this.booking.client.surname.trim().length == 0)\r\n this.booking.errors = this.translate.instant(\"error.surname-missing\");\r\n if (this.booking.client.name.trim().length == 0)\r\n this.booking.errors = this.translate.instant(\"error.name-missing\");\r\n if (this.booking.client.mobile.trim().length == 0)\r\n this.booking.errors = this.translate.instant(\"error.mobile-number-missing\");\r\n //if (this.booking.client.email.length > 0)\r\n // if (!(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(this.booking.client.email)))\r\n // this.booking.errors = this.translate.instant(\"error.incorrect-email\");\r\n }\r\n\r\n //lets see if they have selected a bike\r\n if (this.activeStep == 'bike_details') {\r\n if (this.booking.bikes.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.bikes-missing\");\r\n }\r\n\r\n if (this.activeStep == 'bike_details') {\r\n if (this.booking.bikes.length == 1)\r\n if (this.booking.bikes.findIndex(x => x.ID == -1000) > -1)\r\n this.booking.errors = this.translate.instant(\"error.bikes-missing\");\r\n }\r\n\r\n //lets make sure that they have selected services for all their selected bikes\r\n if (this.activeStep == 'services') {\r\n var hasServices = 0;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n var a = this.booking.bikes[i].services.services.filter(x => x.selected == true);\r\n if (a.length > 0)\r\n hasServices += 1;\r\n }\r\n\r\n if (hasServices !== this.booking.bikes.length)\r\n this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n\r\n\r\n if\r\n (this.booking.shop.partnerID == \"HUB.EFE43158FA2A48DBBD18C78EEDECBD03837C4A920A3440D2B0FEC855CA4B11E0.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.6E9D9D808FF64381A6E6EBD71157DDCF66B6F5A354D946DAAD672A628916DB4A.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.92BBD95B2E9D4DAC9B2A84B2F21B5644C5DA4C613A51461587131F10FA2698FC.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.5B72E0E476E246FCADFCC71265DECBDB1BA1ABDA44154DAFA87B8F0F2FA31A65.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.C630C885EC5C410692F08F34AEDF6D8C595C1D521BAA466D9B01404971738D94.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.C10929B9796646FA99C4BD2495EF61FE3C4CEE7146D54FD8A4591CDBF2690AE8.TIGER\"\r\n ) {\r\n if (this.booking.total - this.booking.pickup.cost <= 100) {\r\n this.booking.errors = \"Sorry, collections are only available on services of more than $100.\";\r\n }\r\n }\r\n\r\n\r\n //if\r\n // (this.booking.shop.partnerID == \"HUB.ADCF0665B8EB429DAA575D453D447C0BD2BDE97F90454EF7803B5AD16306A685.TIGER\" ||\r\n // this.booking.shop.partnerID == \"HUB.40B77279AE32469FBCE3AD012768F86A33EBF82E5DD345D1AE9D94171D8C8C9E.TIGER\" ||\r\n // this.booking.shop.partnerID == \"HUB.EB4021B533DD413A9AA46136AC371F9DAD15AECECC2342B2A2CE4FCDB0E905EF.TIGER\" ||\r\n // this.booking.shop.partnerID == \"HUB.72389980F50C478BA3975A36ABDD34E9F8ED175A1590424CB6DB9653EF5C401A.TIGER\" ||\r\n // this.booking.shop.partnerID == \"HUB.AEA6CCA37AEB4F8A8345B4FB91CB730B6D42568B931C4C56B5B9B57CC45063D1.TIGER\"\r\n //) {\r\n // if (this.booking.total - this.booking.pickup.cost < 30) {\r\n // this.booking.errors = \"Sorry, collections are only available on services of more than £30.\";\r\n // }\r\n //}\r\n\r\n //if (this.booking.services.length == 0)\r\n // this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n //for (var i = 0; i < this.booking.services.length; i++) {\r\n // if (this.booking.services[i].services.length == 0)\r\n // this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n //}\r\n }\r\n\r\n //lets make sure that they have all the need for a collection\r\n if (this.activeStep == 'pick_up_drop_off') {\r\n //if (this.booking.shop.collections) {\r\n if (this.booking.pickup.pickup) {\r\n if (this.booking.pickup.timeID == 0 || this.booking.pickup.timeSlot === null)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-time\");\r\n if (!this.booking.dateSelected)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-date\");\r\n if (this.booking.pickup.address.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-address\");\r\n //}\r\n //else {\r\n // if (!(this.booking.pickup.pickup || this.booking.dropoff.dropoff))\r\n // this.booking.errors = this.translate.instant(\"error.no-selection\");\r\n //}\r\n }\r\n }\r\n\r\n //lets make sure that they have selected a service date\r\n if (this.activeStep == 'service_date') {\r\n if (this.booking.dateSelected == false)\r\n this.booking.errors = this.translate.instant(\"error.no-service-date\");\r\n }\r\n if (this.activeStep == 'service_date') {\r\n if (this.booking.pickup.pickup) {\r\n if (this.booking.pickup.timeID == 0)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-time\");\r\n if (!this.booking.dateSelected)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-date\");\r\n if (this.booking.pickup.address.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-address\");\r\n }\r\n //else {\r\n // if (!(this.booking.pickup.pickup || this.booking.dropoff.dropoff))\r\n // this.booking.errors = this.translate.instant(\"error.no-selection\");\r\n //}\r\n\r\n }\r\n\r\n //Make sure t&c's are selected\r\n if (this.activeStep == 'summary') {\r\n if (this.booking.legal.termsconditions == false)\r\n this.booking.errors = this.translate.instant(\"error.agree-terms\");\r\n if (this.booking.pickup.timeID == 0)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-time\");\r\n }\r\n if (this.booking.errors.length > 0)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n transform(shop) {\r\n\r\n setTimeout(() => {\r\n\r\n }, 1);\r\n this.variables.getURL()\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.variables.getURL() + \"2021-01/partner/styles/widget/\" + shop);\r\n\r\n //let node = document.createElement('style'); // creates the script tag\r\n //node.src = this.variables.getURL() + \"2021-01/partner/styles/widget/\" + shop; // sets the source (insert url in between quotes)\r\n //node.type = 'text/javascript'; // set the script type\r\n //node.async = true; // makes script run asynchronously\r\n //node.charset = 'utf-8';\r\n ////node.text = 'alert(\\'Hi\\')';\r\n //// append to head of document\r\n //document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n }\r\n\r\n monitor(shop) {\r\n let node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/tracking/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n\r\n node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/body/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('body')[0].appendChild(node);\r\n }\r\n\r\n @ViewChild(StripePaymentComponent, { static: false }) stripePaymentComponent!: StripePaymentComponent;\r\n public cardFormCompleted: boolean = false;\r\n public busyPaying: boolean = false;\r\n public paymentNeeded : boolean = false;\r\n\r\n setPaymentNeeded(event){\r\n if(event && event.paymentNeeded){\r\n this.paymentNeeded = true;\r\n }else{\r\n this.paymentNeeded = false;\r\n }\r\n }\r\n\r\n updatePaymentStatus(event: any) {\r\n this.busyPaying = event.busyPaying;\r\n }\r\n\r\n cardFormEvent(event: any) {\r\n this.cardFormCompleted = event.cardFormCompleted;\r\n }\r\n\r\n initiatePayment() {\r\n this.stripePaymentComponent.submitPayment();\r\n }\r\n\r\n paymentComplete(paymentInfo: any) {\r\n this.nextStep(paymentInfo);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{currentStep}}

\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
0\" style=\"padding:0px\">\r\n

{{booking.errors}}

\r\n
\r\n
\r\n
You must book via VanMoof's web platform and then the job can be assigned to us.
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n \r\n 0\" icon=\"pi pi-angle-left\" iconPos=\"left\" label=\"{{'button.previous' | translate}}\" class=\"button button-footer align-left\" (click)=\"previousStep()\" styleClass=\"button-secondary\">\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n

{{ 'label.saving-booking' | translate }}

\r\n
\r\n\r\n 0\" [additionalInfo]=\"booking.shop.AdditionalInformation | safeHtml\">\r\n\r\n
\r\n
\r\n

\r\n {{ 'label.poweredby' | translate }}:\r\n \"Short\r\n
\r\n 0\">\r\n {{ 'label.for' | translate }} {{booking.shop.name}}\r\n \r\n

\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, OnChanges, SimpleChanges, Inject, Renderer2, ViewChild } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { MessageService } from 'primeng/api';\r\nimport { Button } from 'primeng/button';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { Bookings, Bike, Legal, DropOff, PickUp } from '../classes/bookings';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser'\r\nimport { BikeShopSearchComponent } from '../pages/bike-shop-search/bike-shop-search.component';\r\nimport { ServiceService } from '../services/service.service';\r\nimport { Location, DOCUMENT } from '@angular/common';\r\nimport { Variables } from '../shared/variables';\r\nimport { PartnerService } from '../services/partner.service';\r\nimport { StripePaymentComponent } from '../pages/stripe-payment/stripe-payment.component';\r\n\r\n@Component({\r\n selector: 'app-fittings',\r\n providers: [MessageService],\r\n templateUrl: './fittings.component.html',\r\n styleUrls: ['./fittings.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FittingsComponent implements OnInit {\r\n \r\n constructor(\r\n private messageService: MessageService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private translate: TranslateService,\r\n private sanitizer: DomSanitizer,\r\n private serviceService: ServiceService,\r\n private location: Location,\r\n private partnerService: PartnerService,\r\n private variables: Variables\r\n ) { }\r\n\r\n loading: boolean = false;\r\n booking: Bookings = new Bookings;\r\n customCSSUrl = null;\r\n franchise: string = \"\";\r\n bikeshop: string = \"\";\r\n pay: string = \"\";\r\n\r\n confirmaionURL: string = \"\";\r\n steps: MenuItem[];\r\n activeIndex: number = -1;\r\n activeStep: string = \"\";\r\n nextStepText: string = \"Next\";\r\n\r\n currentStep: string = \"\";\r\n\r\n saveBooking: boolean = false;\r\n progress: number = 0;\r\n\r\n\r\n serviceTypeID: string[] = [];\r\n serviceGroups: string[] = [];\r\n disabledFeatures: string[] = [];\r\n language: string = \"\";\r\n ngOnInit() {\r\n\r\n localStorage.removeItem(\"serviceGroups\");\r\n localStorage.removeItem(\"showTypes\");\r\n localStorage.removeItem(\"disabledFeatures\");\r\n\r\n var disabled = this.route.snapshot.queryParamMap.get(\"disabled\");\r\n if (disabled !== null) {\r\n this.disabledFeatures = disabled.split(\",\");\r\n localStorage.setItem(\"disabledFeatures\", JSON.stringify(this.disabledFeatures));\r\n }\r\n else {\r\n this.disabledFeatures = [];\r\n localStorage.setItem(\"disabledFeatures\", JSON.stringify(this.disabledFeatures));\r\n }\r\n\r\n var groups = this.route.snapshot.queryParamMap.get(\"groups\");\r\n if (groups !== null) {\r\n this.serviceGroups = groups.split(\"|\");\r\n\r\n localStorage.setItem(\"serviceGroups\", JSON.stringify(this.serviceGroups));\r\n }\r\n else {\r\n this.serviceGroups = [];\r\n localStorage.setItem(\"serviceGroups\", JSON.stringify(this.serviceGroups));\r\n }\r\n this.language = this.route.snapshot.queryParamMap.get(\"lang\");\r\n var lan = this.language;\r\n if (lan !== null) {\r\n this.translate.setDefaultLang(lan);\r\n if (lan == \"en-scooters\")\r\n localStorage.setItem(\"showTypes\", 'false');\r\n }\r\n\r\n //var showPrices = this.route.snapshot.queryParamMap.get(\"showPrices\");\r\n //if (showPrices !== null) {\r\n // localStorage.setItem(\"showPrices\", showPrices);\r\n //}\r\n //else {\r\n // localStorage.setItem(\"showPrices\", \"yes\");\r\n //}\r\n\r\n this.translate.get(\"button.next\").subscribe(next => {\r\n this.nextStepText = next;\r\n });\r\n\r\n //Lets check the config now and build the menu\r\n this.franchise = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n this.bikeshop = this.route.snapshot.queryParamMap.get(\"shop\");\r\n this.pay = this.route.snapshot.queryParamMap.get(\"payment\");\r\n this.confirmaionURL = this.route.snapshot.queryParamMap.get(\"confirmation\");\r\n\r\n if (this.bikeshop !== null) {\r\n this.customCSSUrl = this.transform(this.bikeshop);\r\n this.monitor(this.bikeshop);\r\n }\r\n if (this.franchise !== null) {\r\n this.customCSSUrl = this.transform(this.franchise);\r\n this.monitor(this.franchise);\r\n }\r\n\r\n if (this.bikeshop !== null) {\r\n this.partnerService.getBikeshopsByExternalID(this.bikeshop).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n\r\n this.booking.shop.partnerID = obj.Partners[i].ID;\r\n this.booking.shop.name = obj.Partners[i].Name;\r\n this.booking.shop.showGDPRMarketingConsent = obj.Partners[i].ShowGDPRMarketingConsent;\r\n this.booking.shop.showGDPRMarketingConsentCustomText = obj.Partners[i].ShowGDPRMarketingConsentCustomText;\r\n this.booking.shop.address = obj.Partners[i].PhysicalAddress;\r\n this.booking.shop.currencySymbol = obj.Partners[i].CurrencySymbol;\r\n this.booking.shop.country = obj.Partners[i].Country;\r\n this.booking.shop.doesCollections = obj.Partners[i].OffersCollections;\r\n this.booking.shop.doesDropOff = obj.Partners[i].OffersDropOffs;\r\n this.booking.shop.lat = obj.Partners[i].Latitude;\r\n this.booking.shop.lng = obj.Partners[i].Longitude;\r\n this.booking.shop.payment = false;\r\n this.booking.shop.depositConfiguration = obj.Partners[i].DepositConfiguration;\r\n }\r\n this.partnerService.getShopWidgetSettings(this.bikeshop).subscribe(reply => {\r\n console.log(reply);\r\n var obj = JSON.parse(JSON.stringify(reply));\r\n console.log(obj.settings);\r\n for (var i = 0; i < obj.settings.length; i++) {\r\n this.booking.shop.AllowCoupons = obj.settings[i].AllowCoupons;\r\n this.booking.shop.ShowHearAboutQuestion = obj.settings[i].ShowHearAboutQuestion;\r\n this.booking.shop.ShowPreApprovedAmount = obj.settings[i].ShowPreApprovedAmount;\r\n this.booking.shop.ShowPrices = obj.settings[i].ShowPrices;\r\n this.booking.shop.AdditionalInformation = obj.settings[i].AdditionalInformation;\r\n }\r\n this.setLanguage();\r\n this.setSteps();\r\n this.loading = false;\r\n });\r\n //this.setSteps();\r\n //this.loading = false;\r\n\r\n });\r\n }\r\n\r\n if (this.franchise !== null) {\r\n this.setLanguage();\r\n this.setSteps();\r\n }\r\n\r\n setInterval(() => {\r\n if (this.steps[this.activeIndex] !== undefined)\r\n if (this.steps[this.activeIndex].id == 'select_shop' && this.booking.shop.partnerID !== \"\") {\r\n //this.monitor(this.booking.shop.partnerID);\r\n this.nextStep();\r\n }\r\n }, 100);\r\n }\r\n\r\n setSteps() {\r\n\r\n if (this.pay == null)\r\n this.booking.shop.payments = false;\r\n else\r\n this.booking.shop.payments = true;\r\n\r\n //Set the booking type\r\n this.booking.type = \"fitting\";\r\n\r\n console.log(this.franchise, this.bikeshop, this.pay);\r\n\r\n this.steps = [];\r\n this.translate.get(\"steps.select-shop\").subscribe(shop => {\r\n this.translate.get(\"steps.your-details\").subscribe(details => {\r\n this.translate.get(\"steps.bike-details\").subscribe(bikes => {\r\n this.translate.get(\"steps.fittings\").subscribe(services => {\r\n //this.translate.get(\"steps.notes\").subscribe(notes => {\r\n //this.translate.get(\"steps.pick-up-drop-off\").subscribe(collections => {\r\n this.translate.get(\"steps.fitting-date\").subscribe(servicedate => {\r\n this.translate.get(\"steps.summary\").subscribe(summary => {\r\n //Set the steps for the wizard\r\n this.steps = [{\r\n label: shop,\r\n id: \"select_shop\"\r\n },\r\n {\r\n label: services,\r\n id: \"services\"\r\n },\r\n {\r\n label: servicedate,\r\n id: \"service_date\"\r\n },\r\n {\r\n label: details,\r\n id: \"your_details\"\r\n },\r\n {\r\n label: bikes,\r\n id: \"bike_details\"\r\n },\r\n {\r\n label: this.translate.instant(\"steps.fitting-info\"),\r\n id: \"fitting_info\"\r\n },\r\n //{\r\n // label: notes,\r\n // id: \"notes\"\r\n //},\r\n \r\n {\r\n label: summary,\r\n id: \"summary\"\r\n }\r\n ];\r\n\r\n if (this.franchise === null) {\r\n this.steps.splice(0, 1);\r\n if (!this.booking.shop.doesDropOff && !this.booking.shop.doesCollections)\r\n this.steps.splice(4, 1);\r\n\r\n if (!(this.variables.isDev()))\r\n this.location.replaceState('/fittings/your_details');\r\n }\r\n else\r\n if (!(this.variables.isDev()))\r\n this.location.replaceState('/fittings/select_shop');\r\n\r\n this.activeIndex = 0;\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n this.nextStepText = this.steps[1].label;\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n console.log(this.steps);\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n });\r\n });\r\n //});\r\n //});\r\n });\r\n });\r\n });\r\n });\r\n\r\n }\r\n\r\n ngOnChanges(changes) {\r\n console.log(changes);\r\n }\r\n\r\n setLanguage() {\r\n localStorage.setItem(\"showTypes\", 'true');\r\n var lan = this.language;\r\n if (lan !== null) {\r\n this.translate.setDefaultLang(lan);\r\n\r\n }\r\n else {\r\n lan = \"en\";\r\n }\r\n\r\n localStorage.setItem(\"CalLocale\", lan);\r\n\r\n console.log(this.booking.shop.type);\r\n switch (this.booking.shop.type) {\r\n case 1: { lan = lan + \"\"; this.translate.setDefaultLang(lan); console.log(lan); break; }\r\n default:\r\n { lan = lan + \"-verticals\"; this.translate.setDefaultLang(lan); console.log(lan); break; }\r\n }\r\n console.log(\"I am in \" + lan);\r\n\r\n if (lan == \"en-scooters\")\r\n localStorage.setItem(\"showTypes\", 'false');\r\n if (lan == \"en-verticals\")\r\n localStorage.setItem(\"showTypes\", 'false');\r\n\r\n }\r\n\r\n nextStep(paymentInfo : any = null) {\r\n console.log(this.booking);\r\n //lets do some validation baby!!!!\r\n if (!this.validateBooking())\r\n return;\r\n\r\n if (this.activeStep == 'pick_up_drop_off' && this.booking.pickup.pickup)\r\n this.activeIndex += 1;\r\n\r\n this.activeIndex += 1;\r\n if (this.activeIndex >= this.steps.length) {\r\n //SAVE BOOKING\r\n this.loading = true;\r\n }\r\n\r\n if (this.activeIndex <= this.steps.length - 1)\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n\r\n if (this.activeIndex <= this.steps.length - 1)\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n\r\n if (this.activeIndex === this.steps.length - 1)\r\n if (this.booking.shop.payments)\r\n this.nextStepText = this.translate.instant(\"steps.pay\");\r\n else\r\n this.nextStepText = this.translate.instant(\"steps.book\");\r\n else if (this.activeIndex > this.steps.length - 1) {\r\n //SAVE BOOKING\r\n this.loading = true;\r\n this.saveBooking = true;\r\n\r\n //Validate if date has valid date and time\r\n if(this.booking.hasValidDateAndTime == false)\r\n {\r\n console.error('Selected time not found');\r\n alert('Selected time not found');\r\n return;\r\n }\r\n\r\n //Clearing up unnessecary services\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n while (this.booking.bikes[i].services.services.findIndex(x => x.selected == false) > -1) {\r\n this.booking.bikes[i].services.services.splice(this.booking.bikes[i].services.services.findIndex(x => x.selected == false), 1);\r\n }\r\n }\r\n\r\n //Fixing the date with their time zones added so that the DB stores them in the selected Date\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n this.booking.bikes[i].services.date = new Date(this.booking.bikes[i].services.date.setTime(this.booking.bikes[i].services.date.getTime() - (this.booking.bikes[i].services.date.getTimezoneOffset() * 60000)));\r\n }\r\n\r\n this.booking.pickup.date = new Date(this.booking.pickup.date.setTime(this.booking.pickup.date.getTime() - (this.booking.pickup.date.getTimezoneOffset() * 60000)));\r\n this.booking.date = new Date(this.booking.date.setTime(this.booking.date.getTime() - (this.booking.date.getTimezoneOffset() * 60000)));\r\n\r\n if (this.booking.legal.cookies)\r\n this.booking.legal.cookiesdate = new Date(this.booking.legal.cookiesdate.setTime(this.booking.legal.cookiesdate.getTime() - (this.booking.legal.cookiesdate.getTimezoneOffset() * 60000)));\r\n if (this.booking.legal.termsconditions)\r\n this.booking.legal.termsconditionsdate = new Date(this.booking.legal.termsconditionsdate.setTime(this.booking.legal.termsconditionsdate.getTime() - (this.booking.legal.termsconditionsdate.getTimezoneOffset() * 60000)));\r\n if (this.booking.legal.marketing)\r\n this.booking.legal.marketingdate = new Date(this.booking.legal.marketingdate.setTime(this.booking.legal.marketingdate.getTime() - (this.booking.legal.marketingdate.getTimezoneOffset() * 60000)));\r\n\r\n //Save the booking\r\n this.serviceService.saveFitting(this.booking.shop.partnerID, JSON.stringify({...this.booking, payment : (paymentInfo && paymentInfo.paymentIntent ? paymentInfo.paymentIntent : null)})).subscribe(response => {\r\n this.loading = false;\r\n this.saveBooking = false;\r\n var obj = JSON.parse(JSON.stringify(response));\r\n var services = \"\";\r\n if (obj !== null) {\r\n for (var a = 0; a < obj.Services.length; a++) {\r\n services += \",\" + obj.Services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n //this.router.navigateByUrl('/confirmation?shop=' + this.booking.shop.partnerID + '&services=' + services);\r\n if (this.confirmaionURL == \"\" || this.confirmaionURL == null)\r\n this.router.navigateByUrl('/confirmation?shop=' + this.booking.shop.partnerID + '&services=' + services);\r\n else {\r\n //window.location.href = this.confirmaionURL;\r\n window.top.location.href = this.confirmaionURL;\r\n }\r\n }\r\n else {\r\n\r\n }\r\n });\r\n }\r\n else\r\n this.nextStepText = this.steps[this.activeIndex + 1].label;\r\n\r\n if (!(this.variables.isDev()))\r\n this.location.replaceState('/fittings/' + this.steps[this.activeIndex].id);\r\n\r\n let scrollToTop = window.setInterval(() => {\r\n let pos = window.pageYOffset;\r\n if (pos > 0) {\r\n window.scrollTo(0, pos - 20);\r\n } else {\r\n window.clearInterval(scrollToTop);\r\n }\r\n }, 16);\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n }\r\n\r\n previousStep() {\r\n this.booking.errors = \"\";\r\n\r\n\r\n\r\n if (this.activeStep == 'summary' && this.booking.pickup.pickup)\r\n this.activeIndex -= 1;\r\n\r\n this.activeIndex -= 1;\r\n this.activeIndex = this.activeIndex < 0 ? 0 : this.activeIndex;\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n this.nextStepText = this.steps[this.activeIndex + 1].label;\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n\r\n if (this.activeStep == 'select_shop') {\r\n this.setSteps();\r\n this.booking.bikes = [];\r\n this.booking.services = [];\r\n this.booking.total = 0.0;\r\n this.booking.discount = 0.0;\r\n this.booking.notes = \"\";\r\n this.booking.pickup = new PickUp();\r\n this.booking.dropoff = new DropOff();\r\n this.booking.date = new Date();\r\n this.booking.dateSelected = false;\r\n this.booking.hasValidDateAndTime = false;\r\n this.booking.legal = new Legal();\r\n this.booking.errors = \"\";\r\n this.booking.shop.collections = false;\r\n this.booking.shop.payments = false;\r\n }\r\n\r\n let scrollToTop = window.setInterval(() => {\r\n let pos = window.pageYOffset;\r\n if (pos > 0) {\r\n window.scrollTo(0, pos - 20);\r\n } else {\r\n window.clearInterval(scrollToTop);\r\n }\r\n }, 16);\r\n }\r\n\r\n\r\n validateBooking() {\r\n //Reset errors\r\n this.booking.errors = \"\";\r\n\r\n //Errors will work in a bottom up fashion\r\n //The last error will be the first error on the page\r\n\r\n //customer details\r\n if (this.activeStep == 'select_shop') {\r\n if (this.booking.shop.partnerID.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.shop-missing\");\r\n\r\n // if (!this.booking.shop.doesDropOff && !this.booking.shop.doesCollections)\r\n // this.steps.splice(5, 1);\r\n }\r\n\r\n //customer details\r\n if (this.activeStep == 'your_details') {\r\n if (this.booking.client.surname.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.surname-missing\");\r\n if (this.booking.client.name.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.name-missing\");\r\n if (this.booking.client.mobile.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.mobile-number-missing\");\r\n //if (this.booking.client.email.length > 0)\r\n // if (!(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(this.booking.client.email)))\r\n // this.booking.errors = this.translate.instant(\"error.incorrect-email\");\r\n\r\n }\r\n\r\n //lets see if they have selected a bike\r\n if (this.activeStep == 'bike_details') {\r\n if (this.booking.bikes.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.bikes-missing\");\r\n }\r\n\r\n //lets make sure that they have selected services for all their selected bikes\r\n if (this.activeStep == 'services') {\r\n var hasServices = 0;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n var a = this.booking.bikes[i].services.services.filter(x => x.selected == true);\r\n if (a.length > 0)\r\n hasServices += 1;\r\n }\r\n\r\n if (hasServices !== this.booking.bikes.length)\r\n this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n\r\n //if (this.booking.services.length == 0)\r\n // this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n //for (var i = 0; i < this.booking.services.length; i++) {\r\n // if (this.booking.services[i].services.length == 0)\r\n // this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n //}\r\n }\r\n\r\n //lets make sure that they have all the need for a collection\r\n //if (this.activeStep == 'pick_up_drop_off') {\r\n // if (this.booking.collections) {\r\n // if (this.booking.pickup.pickup) {\r\n // if (this.booking.pickup.timeID == 0)\r\n // this.booking.errors = this.translate.instant(\"error.no-collection-time\");\r\n // if (!this.booking.dateSelected)\r\n // this.booking.errors = this.translate.instant(\"error.no-collection-date\");\r\n // if (this.booking.pickup.address.length == 0)\r\n // this.booking.errors = this.translate.instant(\"error.no-collection-address\");\r\n // }\r\n // else {\r\n // if (!(this.booking.pickup.pickup || this.booking.dropoff.dropoff))\r\n // this.booking.errors = this.translate.instant(\"error.no-selection\");\r\n // }\r\n // }\r\n //}\r\n\r\n //lets make sure that they have selected a service date\r\n if (this.activeStep == 'service_date') {\r\n console.log('awe1');\r\n if (this.booking.dateSelected == false)\r\n {\r\n console.log('awe2');\r\n this.booking.errors = this.translate.instant(\"error.no-fitting-date\");\r\n }\r\n \r\n if(this.booking.hasValidDateAndTime == false)\r\n {\r\n console.log('awe4');\r\n this.booking.errors = this.translate.instant(\"error.no-fitting-time\");\r\n }\r\n\r\n if (this.booking.fitting.technicianID == 0 || this.booking.fitting.technicianID == undefined)\r\n {\r\n console.log('awe3');\r\n this.booking.errors = this.translate.instant(\"error.no-fitting-time\");\r\n } \r\n }\r\n\r\n //Make sure t&c's are selected\r\n if (this.activeStep == 'summary') {\r\n if (this.booking.legal.termsconditions == false)\r\n this.booking.errors = this.translate.instant(\"error.agree-terms\");\r\n }\r\n if (this.booking.errors.length > 0)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n transform(shop) {\r\n\r\n setTimeout(() => {\r\n\r\n }, 1);\r\n this.variables.getURL()\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.variables.getURL() + \"2021-01/partner/styles/widget/\" + shop);\r\n\r\n //let node = document.createElement('style'); // creates the script tag\r\n //node.src = this.variables.getURL() + \"2021-01/partner/styles/widget/\" + shop; // sets the source (insert url in between quotes)\r\n //node.type = 'text/javascript'; // set the script type\r\n //node.async = true; // makes script run asynchronously\r\n //node.charset = 'utf-8';\r\n ////node.text = 'alert(\\'Hi\\')';\r\n //// append to head of document\r\n //document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n }\r\n\r\n monitor(shop) {\r\n let node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/tracking/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n\r\n node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/body/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('body')[0].appendChild(node);\r\n }\r\n\r\n @ViewChild(StripePaymentComponent, { static: false }) stripePaymentComponent!: StripePaymentComponent;\r\n public cardFormCompleted: boolean = false;\r\n public busyPaying: boolean = false;\r\n public paymentNeeded : boolean = false;\r\n\r\n setPaymentNeeded(event){\r\n if(event && event.paymentNeeded){\r\n this.paymentNeeded = true;\r\n }else{\r\n this.paymentNeeded = false;\r\n }\r\n }\r\n\r\n updatePaymentStatus(event: any) {\r\n this.busyPaying = event.busyPaying;\r\n }\r\n\r\n cardFormEvent(event: any) {\r\n this.cardFormCompleted = event.cardFormCompleted;\r\n }\r\n\r\n initiatePayment() {\r\n this.stripePaymentComponent.submitPayment();\r\n }\r\n\r\n paymentComplete(paymentInfo: any) {\r\n this.nextStep(paymentInfo);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{currentStep}}

\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
0\" style=\"padding:0px\">\r\n

{{booking.errors}}

\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n

{{ 'label.saving-booking' | translate }}

\r\n
\r\n \r\n
\r\n
\r\n 0\" [additionalInfo]=\"booking.shop.AdditionalInformation | safeHtml\">\r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n {{ 'label.poweredby' | translate }}:\r\n \"Short\r\n
\r\n 0\">\r\n {{ 'label.for' | translate }} {{booking.shop.name}}\r\n \r\n

\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, OnChanges, SimpleChanges, Inject, Renderer2 } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { MessageService } from 'primeng/api';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { Bookings, Bike, Legal, DropOff, PickUp } from '../classes/bookings';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser'\r\nimport { BikeShopSearchComponent } from '../pages/bike-shop-search/bike-shop-search.component';\r\nimport { ServiceService } from '../services/service.service';\r\nimport { Location, DOCUMENT } from '@angular/common';\r\nimport { Variables } from '../shared/variables';\r\nimport { PartnerService } from '../services/partner.service';\r\nimport { PaymentService } from '../services/payment.service';\r\nimport { GiftcardService } from '../services/giftcard.service';\r\n\r\nimport { parse } from '@fortawesome/fontawesome-svg-core';\r\ndeclare var Stripe: any;\r\n\r\n@Component({\r\n selector: 'app-gift-cards',\r\n templateUrl: './gift-cards.component.html',\r\n styleUrls: ['./gift-cards.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class GiftCardsComponent implements OnInit {\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private translate: TranslateService,\r\n private sanitizer: DomSanitizer,\r\n private partnerService: PartnerService,\r\n private paymentService: PaymentService,\r\n private giftcardService: GiftcardService,\r\n private location: Location,\r\n private variables: Variables\r\n ) { }\r\n\r\n progress: number = 34;\r\n activeIndex: number = 1;\r\n\r\n loading: boolean = false;\r\n booking: Bookings = new Bookings;\r\n customCSSUrl = null;\r\n saveBooking: boolean = false;\r\n\r\n franchise: string = \"\";\r\n bikeshop: string = \"\";\r\n confirmaionURL: string = \"\";\r\n amount: number = 0.0;\r\n\r\n public stripe: any;\r\n public card: any;\r\n public busy: boolean = false;\r\n\r\n error: string = \"\";\r\n payerName: string = \"\";\r\n payerEmail: string = \"\";\r\n payerPhone: string = \"\";\r\n recipientName: string = \"\";\r\n recipientEmail: string = \"\";\r\n recipientPhone: string = \"\";\r\n recipientMessage: string = \"\";\r\n\r\n //payerName: string = \"Jonathan Jardim\";\r\n //payerEmail: string = \"jonathan@hubtiger.com\";\r\n //payerPhone: string = \"+27732378179\";\r\n //recipientName: string = \"Jonathan Jardim \";\r\n //recipientEmail: string = \"jonathan@hubtiger.com\";\r\n //recipientPhone: string = \"+27732378179\";\r\n //recipientMessage: string = \"Some Message\";\r\n\r\n buyingForMe: boolean = false;\r\n\r\n //showConfirmation: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.stripe = Stripe(this.variables.getStripeKey());\r\n\r\n var lan = this.route.snapshot.queryParamMap.get(\"lang\");\r\n if (lan !== null)\r\n this.translate.setDefaultLang(lan);\r\n\r\n this.franchise = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n this.bikeshop = this.route.snapshot.queryParamMap.get(\"shop\");\r\n this.confirmaionURL = this.route.snapshot.queryParamMap.get(\"confirmation\");\r\n this.amount = parseFloat(this.route.snapshot.queryParamMap.get(\"amount\"));\r\n\r\n if (this.bikeshop !== null) {\r\n this.customCSSUrl = this.transform(this.bikeshop);\r\n this.monitor(this.bikeshop);\r\n }\r\n if (this.franchise !== null) {\r\n this.customCSSUrl = this.transform(this.franchise);\r\n this.monitor(this.franchise);\r\n }\r\n\r\n\r\n\r\n if (this.bikeshop !== null) {\r\n this.partnerService.getBikeshopsByExternalID(this.bikeshop).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n\r\n this.booking.shop.partnerID = obj.Partners[i].ID;\r\n this.booking.shop.name = obj.Partners[i].Name;\r\n this.booking.shop.address = obj.Partners[i].PhysicalAddress;\r\n this.booking.shop.currencySymbol = obj.Partners[i].CurrencySymbol;\r\n this.booking.shop.country = obj.Partners[i].Country;\r\n this.booking.shop.doesCollections = obj.Partners[i].OffersCollections;\r\n this.booking.shop.doesDropOff = obj.Partners[i].OffersDropOffs;\r\n this.booking.shop.lat = obj.Partners[i].Latitude;\r\n this.booking.shop.lng = obj.Partners[i].Longitude;\r\n this.booking.shop.payments = obj.Partners[i].WidgetAllowPayments;\r\n this.booking.shop.showTechnicianImages = obj.Partners[i].FittingsShowTechnicianImage;\r\n this.booking.shop.depositConfiguration = obj.Partners[i].DepositConfiguration;\r\n }\r\n this.booking.shop.collections = false;\r\n this.loading = false;\r\n this.pathHandler();\r\n });\r\n }\r\n\r\n }\r\n\r\n transform(shop) {\r\n setTimeout(() => {\r\n\r\n }, 1);\r\n this.variables.getURL()\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.variables.getURL() + \"2021-01/partner/styles/widget/\" + shop);\r\n }\r\n\r\n monitor(shop) {\r\n let node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/tracking/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/body/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n document.getElementsByTagName('body')[0].appendChild(node);\r\n }\r\n\r\n createStripeCard() {\r\n var elements = this.stripe.elements();\r\n this.card = elements.create('card', {\r\n iconStyle: 'solid',\r\n style: {\r\n height: '40px',\r\n base: {\r\n iconColor: '#181818',\r\n color: '#181818',\r\n fontWeight: 500,\r\n fontFamily: '\"Nunito Sans\", \"Arial\", sans-serif',\r\n fontSize: '16px',\r\n fontSmoothing: 'antialiased',\r\n\r\n ':-webkit-autofill': {\r\n color: '#181818'\r\n },\r\n '::placeholder': {\r\n color: '#777'\r\n }\r\n },\r\n invalid: {\r\n iconColor: '#d90028',\r\n color: '#d90028'\r\n }\r\n }\r\n });\r\n this.card.mount('#card-input');\r\n }\r\n\r\n submitPayment() {\r\n this.busy = true;\r\n this.stripe.createToken(this.card).then(card => {\r\n if (card.error) {\r\n this.busy = false;\r\n console.log(\"0\", card.error)\r\n } else {\r\n this.giftcardService.createGiftCard(this.booking.shop.partnerID, {\r\n Amount: this.amount,\r\n PurchaserEmail: this.payerEmail,\r\n PurchaserPhone: this.payerPhone,\r\n PurchaserName: this.payerName,\r\n RecipientName: this.recipientName,\r\n RecipientPhone: this.recipientPhone,\r\n RecipientEmail: this.recipientEmail,\r\n RecipientMessage: this.recipientMessage,\r\n })\r\n .subscribe(giftcard => {\r\n\r\n this.paymentService.initiateGiftCardPayment(this.booking.shop.partnerID, giftcard)\r\n .subscribe(paymentIntent => {\r\n var pi: any;\r\n pi = paymentIntent;\r\n var clientSecret = pi && pi.clientSecret ? pi.clientSecret : \"\";\r\n if (clientSecret === \"\") {\r\n this.busy = false;\r\n\r\n //Snackbar.show({ duration: Snackbar.LENGTH_SHORT, title: strings('jobcard.payment_initiation_error') });\r\n }\r\n else {\r\n this.stripe.confirmCardPayment(clientSecret, {\r\n payment_method: {\r\n card: this.card\r\n },\r\n receipt_email: this.payerEmail\r\n }).then(pi_result => {\r\n if (pi_result && pi_result.paymentIntent && pi_result.paymentIntent.status === 'succeeded') {\r\n this.giftcardService.topUpGiftCard(this.booking.shop.partnerID, giftcard)\r\n .subscribe(paymentResult => {\r\n this.activeIndex = 4;\r\n this.pathHandler();\r\n })\r\n }\r\n else if (pi_result && pi_result.error) {\r\n this.error = pi_result.error.message;\r\n this.busy = false;\r\n if (this.confirmaionURL != \"\" || this.confirmaionURL != null)\r\n window.top.location.href = this.confirmaionURL;\r\n else\r\n this.activeIndex = 4;\r\n this.pathHandler();\r\n }\r\n else {\r\n if (this.confirmaionURL != \"\" || this.confirmaionURL != null)\r\n window.top.location.href = this.confirmaionURL;\r\n else\r\n this.activeIndex = 4;\r\n this.pathHandler();\r\n }\r\n }, error => {\r\n console.log(error);\r\n //Alert.alert(\"\", error && error.userInfo && error.userInfo.NSLocalizedDescription ? error.userInfo.NSLocalizedDescription : strings('jobcard.payment_initiation_error'));\r\n this.busy = false;\r\n if (this.confirmaionURL != \"\" || this.confirmaionURL != null)\r\n window.top.location.href = this.confirmaionURL;\r\n else\r\n this.activeIndex = 4;\r\n this.pathHandler();\r\n });\r\n }\r\n }, error => {\r\n this.busy = false;\r\n if (this.confirmaionURL != \"\" || this.confirmaionURL != null)\r\n window.top.location.href = this.confirmaionURL;\r\n else\r\n this.activeIndex = 4;\r\n this.pathHandler();\r\n //Snackbar.show({ duration: Snackbar.LENGTH_SHORT, title: strings('jobcard.payment_initiation_error') });\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n nextStep() {\r\n this.activeIndex += 1;\r\n if (this.buyingForMe) {\r\n this.activeIndex += 1;\r\n this.payerName = this.recipientName;\r\n this.payerEmail = this.recipientEmail;\r\n this.payerPhone = this.recipientPhone;\r\n }\r\n this.progress = 34 * this.activeIndex;\r\n if (this.activeIndex == 3) {\r\n setTimeout(() => {\r\n this.createStripeCard();\r\n }, 500);\r\n\r\n }\r\n this.pathHandler();\r\n }\r\n\r\n previousStep() {\r\n this.activeIndex -= 1;\r\n if (this.buyingForMe) {\r\n this.activeIndex -= 1;\r\n this.payerName = this.recipientName;\r\n this.payerEmail = this.recipientEmail;\r\n this.payerPhone = this.recipientPhone;\r\n }\r\n this.progress = 34 * this.activeIndex;\r\n this.pathHandler();\r\n }\r\n\r\n validate() {\r\n if (this.activeIndex == 1) {\r\n if (this.recipientName.trim() == \"\")\r\n return true;\r\n if (this.recipientEmail.trim() == \"\")\r\n return true;\r\n if (!this.validateEmail(this.recipientEmail.trim()))\r\n return true;\r\n }\r\n if (this.activeIndex == 2) {\r\n if (this.payerName.trim() == \"\")\r\n return true;\r\n if (this.payerEmail.trim() == \"\")\r\n return true;\r\n }\r\n\r\n }\r\n\r\n validateEmail(email) {\r\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(email);\r\n }\r\n\r\n pathHandler() {\r\n console.log(this.activeIndex);\r\n console.log(this.booking.shop.name);\r\n if (!(this.variables.isDev())) {\r\n console.log(this.booking.shop.name);\r\n this.location.replaceState('/gift-cards' + '/' + this.booking.shop.name.replace(/ /g, \"\") + '/' +\r\n (\r\n this.activeIndex == 1 ? \"recipient\" :\r\n this.activeIndex == 2 ? \"payer\" :\r\n this.activeIndex == 3 ? \"pay\" :\r\n \"confirmation\"\r\n )\r\n );\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n

Who's it for?

\r\n

Don't want to ruin the surprise?! If you're purchasing for someone else, fill in your details as the recipient, select the option below, then forward the email on the day.

\r\n \r\n

I'm buying this for myself

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n

Who's it from?

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
GIFT CARD FROM:
\r\n
{{payerName}}
\r\n
{{payerEmail}}
\r\n
{{payerPhone}}
\r\n
\r\n\r\n
GIFT CARD FOR:
\r\n
{{recipientName}}
\r\n
{{recipientEmail}}
\r\n
{{recipientPhone}}
\r\n
{{recipientMessage}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

THANK YOU!

\r\n \r\n

Your gift voucher is on it's way to your email.

\r\n \r\n

We can't wait to see you and your ride

\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
0\" style=\"padding:0px\">\r\n

{{booking.errors}}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ 'label.poweredby' | translate }}:\r\n \"Short\r\n
\r\n 0\">\r\n {{ 'label.for' | translate }} {{booking.shop.name}}\r\n \r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { Bookings } from '../../classes/bookings';\r\n\r\n@Component({\r\n selector: 'app-additional-information',\r\n templateUrl: './additional-information.component.html',\r\n styleUrls: ['./additional-information.component.scss']\r\n})\r\nexport class AdditionalInformationComponent {\r\n\r\n @Input() additionalInfo: string;\r\n}\r\n","
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { GoogleService } from '../../services/google.service';\r\nimport { Countries } from '../../classes/countries';\r\nimport { Bookings } from '../../classes/bookings';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { PartnerService } from '../../services/partner.service';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\nimport * as moment from 'moment';\r\nimport { TotalSectionComponent } from '../total-section/total-section.component';\r\nimport { CollectionsAddressComponent } from '../collections-address/collections-address.component';\r\nimport { getAddressParts } from '../../shared/common';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-bike-collections',\r\n templateUrl: './bike-collections.component.html',\r\n styleUrls: ['./bike-collections.component.scss']\r\n})\r\nexport class BikeCollectionsComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n constructor(private googleService: GoogleService, private route: ActivatedRoute,\r\n private serviceService: ServiceService, private gtmService: GoogleTagManagerService,\r\n private partnerService: PartnerService) { }\r\n\r\n\r\n loading: boolean = true;\r\n minDate: Date = new Date();\r\n invalidDays: number[] = [];\r\n invalidDates: Date[] = [];\r\n availableDates : any = [];\r\n\r\n collections: any[] = [];\r\n noSpace: boolean = false;\r\n amount: number = 0;\r\n totalCost: number = 0;\r\n\r\n radiusCosts: any[] = [];\r\n radiusDeliveryCosts: any[] = [];\r\n\r\n countries: any[];\r\n collectionTimes: any[];\r\n times: any[];\r\n time: any = null;\r\n gettingTimes: boolean = false;\r\n services: any[] = [];\r\n\r\n selectedCountry: string = \"\";\r\n lobjCountries: Countries;\r\n\r\n citySearch: string = \"\";\r\n citySearched: string = \"\";\r\n results: string[] = [];\r\n placeList: any[] = [];\r\n\r\n lng: number = 0.0;\r\n lat: number = 0.0;\r\n\r\n showPickUpsDropOffs: boolean = true;\r\n showPickUps: boolean = false;\r\n showDropOffs: boolean = false;\r\n tooFar: boolean = false;\r\n\r\n bikeshops: any[] = [];\r\n\r\n bikeshopCountry: string = \"\";\r\n\r\n ngOnInit(): void {\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'page_view_bike_collections', 'bike_collections');\r\n this.getBikeshops();\r\n this.loading = true;\r\n\r\n //this.booking.dateSelected = false; //This causes issues when you go back as you have to select a date again\r\n //this.booking.pickup.timeID = 0; //This causes issues when you go back as you have to select a date again\r\n if (this.booking.pickup.address !== \"\")\r\n this.citySearch = this.booking.pickup.address;\r\n\r\n this.showPickUpsDropOffs = this.booking.shop.collections;\r\n this.showPickUps = this.booking.pickup.pickup;\r\n this.showDropOffs = this.booking.dropoff.dropoff;\r\n\r\n this.minDate = new Date();\r\n \r\n var startDate = new Date(moment(this.minDate).add('year', -1).format(\"YYYY-MM-DD\"));\r\n var endDate = new Date(moment(this.minDate).add('year', 2).format(\"YYYY-MM-DD\"));\r\n while (startDate <= endDate) {\r\n var d = new Date(startDate);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d);\r\n startDate = new Date(startDate.setDate(startDate.getDate() + 1));\r\n }\r\n\r\n\r\n //Countries list sits in the classes folder as not to clutter, so we load from there\r\n this.lobjCountries = new Countries();\r\n this.countries = this.lobjCountries.getCountries();\r\n\r\n //Set the selected country based on the bike shops country\r\n this.selectedCountry = this.countries.find(x => x.code === this.booking.client.country);\r\n\r\n var fromDate = moment(this.booking.date || this.minDate).startOf('month').format(\"YYYY-MM-DD\");\r\n this.getAvailability(fromDate, false);\r\n \r\n\r\n this.serviceService.getServiceTypesByPartnerID(this.booking.shop.partnerID, 1).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n\r\n for (var i = 0; i < obj.Services.length; i++) {\r\n if (obj.Services[i].Radius > 0) {\r\n this.services.push(\r\n {\r\n ID: obj.Services[i].ID,\r\n GroupName: obj.Services[i].GroupName,\r\n ServiceTypeDescription: obj.Services[i].ServiceTypeDescription,\r\n Cost: obj.Services[i].Cost,\r\n Hours: obj.Services[i].Hours,\r\n AdditionalInformation: obj.Services[i].AdditionalInformation,\r\n IsFitting: obj.Services[i].IsFitting,\r\n Radius: obj.Services[i].Radius,\r\n Selected: false,\r\n IsPickUp: obj.Services[i].IsPickUp,\r\n IsDropOff: obj.Services[i].IsDropOff\r\n }\r\n );\r\n }\r\n this.services.sort((a, b) => a.Radius > b.Radius ? 1 : ((b.Radius > a.Radius) ? -1 : 0));\r\n }\r\n });\r\n //this.booking.dateSelected = false; //This causes issues when you go back as you have to select a date again\r\n }\r\n\r\n monthChanged(date){ \r\n this.times = [];\r\n var fromDate = moment(new Date(date.year, date.month-1, 1)).startOf('month').format(\"YYYY-MM-DD\");\r\n this.getAvailability(fromDate);\r\n }\r\n\r\n getAvailability(fromDate:string, reset = true){\r\n if(this.booking.pickup.areaID){\r\n const data = {\r\n \"PartnerIdentifier\": this.booking.shop.partnerID,\r\n \"FromDate\": moment(fromDate).add('days', -7).format(\"YYYY-MM-DD\"),\r\n \"ToDate\": moment(fromDate).add('month', 2).endOf('month').format(\"YYYY-MM-DD\"),\r\n \"CurrentLocalTime\": moment().format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n \"IsCollection\": true,\r\n \"AreaID\": this.booking.pickup.areaID,\r\n \"ServiceTypes\": this.booking.bikes.length > 0 ? this.booking.bikes[0].services.services.filter(x=>{return x.selected}).map(x=>{return x.ID.toString()}).join(',') : null\r\n }\r\n var invalidDates = JSON.parse(JSON.stringify(this.invalidDates));\r\n invalidDates = invalidDates.map(x=>{return new Date(x)});\r\n this.serviceService.getPickUpTimesByPartnerIDV2(data).subscribe((response : any)=>{\r\n if(response.availableDates && response.availableDates.length>0){\r\n this.availableDates = response.availableDates;\r\n response.availableDates.forEach((availableDate : any)=>{\r\n var index = invalidDates.map(x=>{return moment(x).format(\"YYYY-MM-DD\")}).indexOf(moment(availableDate.availableDate).format(\"YYYY-MM-DD\"));\r\n if(index > -1){\r\n invalidDates.splice(index, 1);\r\n }\r\n }); \r\n this.invalidDates = invalidDates;\r\n if(!reset){\r\n this.setBookingDate(reset);\r\n }\r\n }\r\n this.loading = false;\r\n },err=>{\r\n this.loading = false;\r\n });\r\n }else{\r\n this.loading = false;\r\n }\r\n }\r\n\r\n getCityPredictions() {\r\n if (this.citySearch.length > 3) {\r\n this.googleService.lookupCities(this.citySearch, this.booking.shop.country).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.results = [];\r\n this.placeList = [];\r\n for (var i = 0; i < obj.predictions.length; i++) {\r\n this.results.push(obj.predictions[i].description);\r\n this.placeList.push(obj.predictions[i]);\r\n }\r\n this.citySearched = this.citySearch;\r\n });\r\n }\r\n }\r\n\r\n geocodeCity() {\r\n if (this.citySearch.length > 0) {\r\n this.citySearch = this.citySearch + \", \" + this.bikeshopCountry;\r\n this.googleService.geocodeCities(this.citySearch).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.lat = obj.results[0].geometry.location.lat;\r\n this.lng = obj.results[0].geometry.location.lng;\r\n \r\n var addressDetails = getAddressParts(obj.results[0]);\r\n this.booking.pickup.addressDetails = addressDetails;\r\n this.booking.pickup.addressDetails.lat = this.lat;\r\n this.booking.pickup.addressDetails.lng = this.lng;\r\n \r\n\r\n this.invalidDates = [];\r\n var date = new Date();\r\n var endDate = new Date(moment(date).add('year', 2).format(\"YYYY-MM-DD\"));\r\n while (date <= endDate) {\r\n var d = new Date(date);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d);\r\n date = new Date(date.setDate(date.getDate() + 1));\r\n }\r\n\r\n this.partnerService.getBikeShopsByLocationV2(null, this.booking.shop.partnerID, this.lat, this.lng, this.booking.bikes.length > 0 ? this.booking.bikes[0].services.services.filter(x=>{return x.selected}).map(x=>{return x.ID.toString()}).join(',') : \"\", this.citySearch ).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n\r\n if (obj == null) {\r\n this.loading = false;\r\n this.tooFar = true;\r\n this.booking.pickup.areaID = 0;\r\n return;\r\n }\r\n \r\n if (obj.length == 0) {\r\n this.loading = false;\r\n this.tooFar = true;\r\n this.booking.pickup.areaID = 0;\r\n return;\r\n }\r\n \r\n this.booking.pickup.pickup = true;\r\n this.booking.dropoff.dropoff = true;\r\n this.booking.pickup.address = this.citySearch;\r\n\r\n this.tooFar = false;\r\n \r\n this.booking.pickup.pickupProductID = 0;\r\n this.booking.dropoff.dropoffProductID = 0;\r\n if(obj[0].collectionFee && obj[0].collectionFee.length > 0){\r\n this.booking.pickup.cost = obj[0].vatInclusive ? obj[0].collectionFee[0].unitPrice_IncludingTax : obj[0].collectionFee[0].unitPrice;\r\n this.booking.pickup.pickupProductID = obj[0].collectionFee[0].productID\r\n }\r\n if(obj[0].deliveryFee && obj[0].deliveryFee.length > 0){\r\n this.booking.dropoff.cost = obj[0].vatInclusive ? obj[0].deliveryFee[0].unitPrice_IncludingTax : obj[0].deliveryFee[0].unitPrice;\r\n this.booking.dropoff.dropoffProductID = obj[0].deliveryFee[0].productID\r\n }\r\n\r\n var totalsSection = new TotalSectionComponent();\r\n totalsSection.booking = this.booking;\r\n totalsSection.calculateTotals();\r\n \r\n //Set the area ID for the address we just searched, we need this later to find the dates against this areaID\r\n this.booking.pickup.areaID = obj[0].areaID;\r\n\r\n var fromDate = moment(this.minDate).startOf('month').format(\"YYYY-MM-DD\");\r\n this.getAvailability(fromDate);\r\n },err=>{\r\n this.loading = false;\r\n this.tooFar = true;\r\n this.booking.pickup.areaID = 0;\r\n });\r\n\r\n });\r\n }\r\n }\r\n\r\n setCountry(event) {\r\n this.booking.pickup.dialCode = event.value.dial_code;\r\n }\r\n\r\n displayPickUpCollections() {\r\n this.showPickUpsDropOffs = !this.showPickUpsDropOffs;\r\n this.booking.pickup.pickup = this.showPickUpsDropOffs;\r\n\r\n if (!this.showPickUpsDropOffs) { \r\n this.booking.pickup.pickup = false;\r\n this.booking.dropoff.dropoff = false;\r\n this.booking.total -= this.amount;\r\n this.totalCost -= this.amount;\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n //this.booking.shop.collections = this.showPickUpsDropOffs;\r\n }\r\n\r\n displayPickUps() {\r\n this.showPickUps = !this.showPickUps;\r\n this.booking.pickup.pickup = this.showPickUps;\r\n if (!this.showPickUps) {\r\n this.booking.total -= this.amount;\r\n this.totalCost -= this.amount;\r\n }\r\n else\r\n if (this.amount > 0) {\r\n this.booking.total += this.amount;\r\n this.totalCost += this.amount;\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n displayDropOffs() {\r\n this.showDropOffs = !this.showDropOffs;\r\n this.booking.dropoff.dropoff = this.showDropOffs;\r\n if (this.showDropOffs) {\r\n this.booking.total += this.booking.dropoff.cost;\r\n this.totalCost += this.booking.dropoff.cost;\r\n }\r\n else {\r\n this.booking.total -= this.booking.dropoff.cost;\r\n this.totalCost -= this.booking.dropoff.cost;\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n setBookingDate(reset = true) {\r\n this.booking.date = this.booking.pickup.date;\r\n this.booking.dateSelected = true;\r\n this.gettingTimes = true;\r\n this.times = [];\r\n if(reset){\r\n this.time = null;\r\n this.booking.pickup.time = null;\r\n this.booking.pickup.timeID = 0;\r\n this.booking.pickup.timeSlot = null; \r\n }\r\n\r\n var selectedDate = this.availableDates.filter(x=>{return moment(x.availableDate).format(\"YYYY-MM-DD\")===moment(this.booking.pickup.date).format(\"YYYY-MM-DD\") });\r\n if(selectedDate && selectedDate.length>0){\r\n this.times = selectedDate[0].slots.map((x, index)=>{return {...x, code: index+1, name : x.label, value: x.label}});\r\n if (this.times.length == 1 && reset) { \r\n this.time = this.times[0];\r\n this.booking.pickup.time = this.times[0].name;\r\n this.booking.pickup.timeID = this.times[0].code;\r\n this.booking.pickup.timeSlot = this.times[0]; \r\n }\r\n }\r\n this.gettingTimes = false;\r\n }\r\n\r\n checkNextDay() {\r\n this.noSpace = false;\r\n this.booking.date = this.booking.pickup.date;\r\n //this.booking.dateSelected = true;\r\n this.times = [];\r\n\r\n if (this.booking.shop.partnerID == \"HUB.EB4021B533DD413A9AA46136AC371F9DAD15AECECC2342B2A2CE4FCDB0E905EF.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.72389980F50C478BA3975A36ABDD34E9F8ED175A1590424CB6DB9653EF5C401A.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.ADCF0665B8EB429DAA575D453D447C0BD2BDE97F90454EF7803B5AD16306A685.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.AEA6CCA37AEB4F8A8345B4FB91CB730B6D42568B931C4C56B5B9B57CC45063D1.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.DA2031B8E71C4B398DBD69CB9AC4C7D3D64CF00974574B7BBBEC8FCD79881A65.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.C38114BD392945F98DB046D6D13DD48BD238C412EDDD409AB49DEFEE58A5161D.TIGER\" ||\r\n this.booking.shop.partnerID == \"HUB.43312831C71D4572B98C44B79A2C5587351B8934BD5E40D9AE5ABE6753E3F61A.TIGER\")\r\n {\r\n var today = new Date();\r\n var cutOff = new Date();\r\n cutOff.setHours(16, 30, 0, 0);\r\n var tomorrow = new Date();\r\n tomorrow.setDate(today.getDate() + 1);\r\n tomorrow.setHours(0, 0, 0, 0);\r\n var addDate = true;\r\n if (today < cutOff) {\r\n addDate = false;\r\n for (var i = 0; i < this.collectionTimes.length; i++) {\r\n if (this.collectionTimes[i].Day == tomorrow.getDay()) {\r\n //if (this.booking.pickup.date.getDate() == tomorrow.getDate()) {\r\n //tomorrow.setHours(this.collectionTimes[i].TimeSlot.substring(0, 2), this.collectionTimes[i].TimeSlot.substring(3, 5), 0);\r\n //if (today.getHours() <= this.collectionTimes[i].TimeSlot.substring(0, 2)) {\r\n //if (today.getHours() == this.collectionTimes[i].TimeSlot.substring(0, 2) && today.getMinutes() < this.collectionTimes[i].TimeSlot.substring(3, 5))\r\n this.times.push({\r\n name: this.collectionTimes[i].SlotName == \"\" ? this.collectionTimes[i].TimeSlot : (this.collectionTimes[i].SlotName + \": \") + this.collectionTimes[i].TimeSlot,\r\n code: this.collectionTimes[i].ID\r\n });\r\n //else if (today.getHours() <= this.collectionTimes[i].TimeSlot.substring(0, 2))\r\n // this.times.push({\r\n // name: this.collectionTimes[i].TimeSlot,\r\n // code: this.collectionTimes[i].ID\r\n // });\r\n\r\n }\r\n }\r\n }\r\n //}\r\n if (addDate)\r\n this.invalidDates.push(tomorrow);\r\n this.invalidDates.push(today);\r\n }\r\n else {\r\n\r\n var today = new Date();\r\n var tomorrow = new Date();\r\n tomorrow.setDate(today.getDate() + 1);\r\n tomorrow.setHours(0, 0, 0, 0);\r\n for (var i = 0; i < this.collectionTimes.length; i++) {\r\n if (this.collectionTimes[i].Day == tomorrow.getDay()) {\r\n //if (this.booking.pickup.date.getDate() == tomorrow.getDate()) {\r\n tomorrow.setHours(this.collectionTimes[i].TimeSlot.substring(0, 2), this.collectionTimes[i].TimeSlot.substring(3, 5), 0);\r\n if (today.getHours() <= this.collectionTimes[i].TimeSlot.substring(0, 2)) {\r\n if (today.getHours() == this.collectionTimes[i].TimeSlot.substring(0, 2) && today.getMinutes() < this.collectionTimes[i].TimeSlot.substring(3, 5))\r\n this.times.push({\r\n name: this.collectionTimes[i].SlotName == \"\" ? this.collectionTimes[i].TimeSlot : (this.collectionTimes[i].SlotName + \": \") + this.collectionTimes[i].TimeSlot,\r\n code: this.collectionTimes[i].ID\r\n });\r\n else if (today.getHours() <= this.collectionTimes[i].TimeSlot.substring(0, 2))\r\n this.times.push({\r\n name: this.collectionTimes[i].SlotName == \"\" ? this.collectionTimes[i].TimeSlot : (this.collectionTimes[i].SlotName + \": \") + this.collectionTimes[i].TimeSlot,\r\n code: this.collectionTimes[i].ID\r\n });\r\n\r\n }\r\n }\r\n }\r\n var addDate = true;\r\n if (this.times.length == 0) {\r\n for (var i = 0; i < this.invalidDates.length; i++) {\r\n if (this.invalidDates[i].setHours(0, 0, 0, 0) == tomorrow.setHours(0, 0, 0, 0))\r\n addDate = false;\r\n }\r\n }\r\n else {\r\n addDate = false;\r\n for (var i = 0; i < this.invalidDates.length; i++) {\r\n if (this.invalidDates[i].setHours(0, 0, 0, 0) == tomorrow.setHours(0, 0, 0, 0))\r\n this.invalidDates.splice(i, 1);\r\n }\r\n }\r\n if (addDate)\r\n this.invalidDates.push(tomorrow);\r\n this.invalidDates.push(today);\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n setCollectionTime(event) {\r\n this.booking.pickup.time = event.value.name;\r\n this.booking.pickup.timeID = event.value.code;\r\n this.booking.pickup.timeSlot = event.value;\r\n }\r\n\r\n\r\n getBikeshops() {\r\n this.loading = true;\r\n var parent = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n this.booking.shop.parentID = parent;\r\n if (parent !== null) {\r\n this.partnerService.getBikeshopsByParent(parent, this.lat, this.lng, this.booking.type).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.bikeshops = [];\r\n console.log(obj);\r\n if (obj.Partners == null) {\r\n for (var i = 0; i < obj.partners.length; i++) {\r\n //if (obj.Partners[i].Country !== \"GB\")\r\n this.bikeshopCountry = obj.Partners[i].Country;\r\n this.booking.shop.country = this.bikeshopCountry;\r\n this.bikeshops.push(\r\n {\r\n ID: obj.partners[i].ID,\r\n Name: obj.partners[i].Name,\r\n Email: obj.partners[i].Email,\r\n WebAddress: obj.partners[i].WebAddress,\r\n PhysicalAddress: obj.partners[i].PhysicalAddress,\r\n PhoneNumber1: obj.partners[i].PhoneNumber1,\r\n PartnerImage: obj.partners[i].PartnerImage,\r\n CurrencySymbol: obj.partners[i].CurrencySymbol,\r\n Country: obj.partners[i].Country,\r\n DistanceKm: obj.partners[i].DistanceKm,\r\n DistanceMiles: obj.partners[i].DistanceMiles,\r\n Latitude: obj.partners[i].Latitude,\r\n Longitude: obj.partners[i].Longitude,\r\n Selected: false,\r\n OffersCollections: obj.partners[i].OffersCollections,\r\n OffersDropOffs: obj.partners[i].OffersDropOffs,\r\n AvailableDate: obj.partners[i].AvailableDate\r\n });\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n //if (obj.Partners[i].Country !== \"GB\")\r\n this.bikeshopCountry = obj.Partners[i].Country;\r\n this.booking.shop.country = this.bikeshopCountry;\r\n this.bikeshops.push(\r\n {\r\n ID: obj.Partners[i].ID,\r\n Name: obj.Partners[i].Name,\r\n Email: obj.Partners[i].Email,\r\n WebAddress: obj.Partners[i].WebAddress,\r\n PhysicalAddress: obj.Partners[i].PhysicalAddress,\r\n PhoneNumber1: obj.Partners[i].PhoneNumber1,\r\n PartnerImage: obj.Partners[i].PartnerImage,\r\n CurrencySymbol: obj.Partners[i].CurrencySymbol,\r\n Country: obj.Partners[i].Country,\r\n DistanceKm: obj.Partners[i].DistanceKm,\r\n DistanceMiles: obj.Partners[i].DistanceMiles,\r\n Latitude: obj.Partners[i].Latitude,\r\n Longitude: obj.Partners[i].Longitude,\r\n Selected: false,\r\n OffersCollections: obj.Partners[i].OffersCollections,\r\n OffersDropOffs: obj.Partners[i].OffersDropOffs,\r\n AvailableDate: obj.Partners[i].AvailableDate\r\n });\r\n }\r\n }\r\n\r\n if (this.lat == 0.0 && this.lng == 0.0)\r\n this.bikeshops.sort((a, b) => (a.Name > b.Name) ? 1 : ((b.Name > a.Name) ? -1 : 0));\r\n\r\n this.loading = false;\r\n\r\n //if (this.booking.shop.partnerID.length > 0) {\r\n // this.setPartner(\r\n // this.booking.shop.partnerID,\r\n // this.booking.shop.country,\r\n // this.booking.shop.currencySymbol,\r\n // this.booking.shop.name,\r\n // this.booking.shop.address,\r\n // this.booking.shop.lat,\r\n // this.booking.shop.lng,\r\n // this.booking.shop.doesCollections,\r\n // this.booking.shop.doesDropOff\r\n // )\r\n //}\r\n\r\n });\r\n }\r\n else {\r\n this.bikeshopCountry = this.booking.shop.country;\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n

{{ 'label.arrange-collection' | translate }}

\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n

{{ 'error.outside-radius' | translate }}

\r\n
\r\n\r\n\r\n
{{ 'label.pick-up-date' | translate }}*
\r\n \r\n \r\n \r\n\r\n \r\n
1 && !loading\" class=\"subheading-text\">{{ 'label.pick-up-time' | translate }}*
\r\n
{{ 'label.pick-up-time' | translate }} : {{times[0].name}}
\r\n 1\" styleClass=\"full-width\" placeholder=\"{{ 'label.select-time' | translate }}\" optionLabel=\"name\" [options]=\"times\" (onChange)=\"setCollectionTime($event)\" [ngModel]=\"this.booking.pickup.timeSlot\">\r\n
\r\n \r\n \r\n\r\n

{{ 'error.no-more-collection-spaces' | translate }}

\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n

{{ 'label.drop-off-message' | translate }}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
0\">\r\n

{{ 'label.collection-cost-message' | translate }} {{booking.shop.currencySymbol}}{{totalCost}}

\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { Bookings, Bike, Service } from '../../classes/bookings';\r\nimport { BikeService } from './../../services/bike.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\n\r\n@Component({\r\n selector: 'app-bike-details',\r\n templateUrl: './bike-details.component.html',\r\n styleUrls: ['./bike-details.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class BikeDetailsComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n loading: boolean = false;\r\n addAnotherBike: boolean = false;\r\n\r\n public bikes: any[] = [];\r\n public makes: string[] = [];\r\n public searchMakes: string[] = [];\r\n\r\n public bikeTypes: any[] = [];\r\n\r\n newBikeName: string = \"\";\r\n newBikeManufacturer: string = \"\";\r\n newBikeModel: string = \"\";\r\n newBikeColour: string = \"\";\r\n newBikeType: any;\r\n newBikeID: number = -1;\r\n selectingBike: boolean = false;\r\n showTypes: string = 'true';\r\n\r\n constructor(\r\n private bikeService: BikeService,\r\n private translate: TranslateService,\r\n private gtmService: GoogleTagManagerService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.showTypes = localStorage.getItem(\"showTypes\");\r\n if (this.showTypes == null)\r\n this.showTypes = 'true'\r\n console.log(this.showTypes);\r\n\r\n this.getBikeTypes();\r\n\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'page_view_bike_details', 'bike_details');\r\n\r\n this.bikeService.getBikeMakes().subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n console.log(obj);\r\n for (var i = 0; i < obj.length; i++) {\r\n this.makes.push(obj[i]);\r\n }\r\n //console.log(this.makes);\r\n });\r\n\r\n this.loading = true;\r\n this.bikeService.getBikeByUserAndPartner(this.booking.shop.partnerID, this.booking.client.ID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.bikes = obj;\r\n //console.log(response);\r\n //console.log(this.bikes);\r\n for (var i = 0; i < this.bikes.length; i++) {\r\n this.bikes[i].selected = false;\r\n } \r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID < 0 && this.booking.bikes[i].ID !== -1000) {\r\n this.bikes.push({\r\n SerialNo: this.booking.bikes[i].serialNo,\r\n Colour: this.booking.bikes[i].colour,\r\n Manufacturer: this.booking.bikes[i].manufacturer,\r\n Model: this.booking.bikes[i].model,\r\n RefNo: this.booking.bikes[i].refno,\r\n selected: this.booking.bikes[i].selected,\r\n ID: this.booking.bikes[i].ID\r\n });\r\n if (this.newBikeID > this.booking.bikes[i].ID)\r\n this.newBikeID = this.booking.bikes[i].ID;\r\n }\r\n }\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID !== -1000)\r\n this.bikes.find(x => x.ID === this.booking.bikes[i].ID).selected = true;\r\n }\r\n\r\n this.loading = false;\r\n if (this.bikes.length == 0)\r\n this.showAddBike();\r\n });\r\n }\r\n\r\n setBikes(ID) {\r\n this.selectingBike = true;\r\n if (this.bikes.find(x => x.ID === ID).selected === true)\r\n this.bikes.find(x => x.ID === ID).selected = false;\r\n else\r\n this.bikes.find(x => x.ID === ID).selected = true;\r\n\r\n if (this.booking.bikes.find(x => x.ID === ID)) {\r\n var key = this.booking.bikes.find(x => x.ID === ID);\r\n var index = this.booking.bikes.indexOf(key, 0);\r\n if (index > -1) {\r\n this.booking.bikes.splice(index, 1);\r\n\r\n }\r\n }\r\n else {\r\n var selectedBike = this.bikes.find(x => x.ID === ID);\r\n var bike = {} as Bike;\r\n bike.ID = selectedBike.ID;\r\n bike.colour = selectedBike.Colour;\r\n bike.manufacturer = selectedBike.Manufacturer;\r\n bike.model = selectedBike.Model;\r\n bike.refno = selectedBike.RefNo;\r\n bike.serialNo = selectedBike.SerialNo;\r\n bike.selected = true;\r\n bike.services = new Service();\r\n this.booking.bikes.push(bike);\r\n }\r\n this.selectingBike = false;\r\n console.log(this.bikes);\r\n }\r\n\r\n showAddBike() {\r\n this.addAnotherBike = !this.addAnotherBike;\r\n this.newBikeColour = \"\";\r\n this.newBikeManufacturer = \"\";\r\n this.newBikeModel = \"\";\r\n this.newBikeName = \"\";\r\n this.newBikeType = undefined;\r\n }\r\n\r\n addBike() {\r\n this.booking.errors = \"\";;\r\n if (this.newBikeManufacturer.length == 0) {\r\n this.translate.get(\"error.no-bike-name\").subscribe(response => {\r\n this.booking.errors = response;\r\n });\r\n \r\n return;\r\n }\r\n if (this.showTypes == 'true' && (this.newBikeType === undefined || this.newBikeType === null || this.newBikeType.length == 0)) {\r\n this.translate.get(\"error.no-bike-type\").subscribe(response => {\r\n this.booking.errors = response;\r\n });\r\n \r\n return;\r\n }\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID < 0) {\r\n if (this.newBikeID >= this.booking.bikes[i].ID)\r\n this.newBikeID = this.booking.bikes[i].ID - 1;\r\n }\r\n }\r\n\r\n var bike = {} as Bike;\r\n bike.ID = this.newBikeID;\r\n bike.colour = this.newBikeColour;\r\n bike.manufacturer = this.newBikeManufacturer;\r\n bike.model = this.newBikeModel;\r\n bike.refno = this.newBikeName == \"\" ? this.newBikeManufacturer : this.newBikeName;\r\n bike.serialNo = \"\";\r\n bike.selected = true;\r\n bike.services = new Service();\r\n bike.typeID = this.newBikeType == undefined ? 0 : this.newBikeType.code;\r\n\r\n this.booking.bikes.push(bike);\r\n this.bikes.push({\r\n ID: this.newBikeID,\r\n SerialNo: \"\",\r\n Colour: this.newBikeColour,\r\n Manufacturer: this.newBikeManufacturer,\r\n Model: this.newBikeModel, \r\n TypeID: this.newBikeType == undefined ? 99 : this.newBikeType.code,\r\n RefNo: (this.newBikeManufacturer + ' ' + this.newBikeModel).trim(),\r\n selected: true\r\n });\r\n\r\n //console.log(this.bikes);\r\n //console.log(this.booking.bikes);\r\n\r\n this.newBikeID -= 1;\r\n this.showAddBike();\r\n } \r\n\r\n search(event) {\r\n this.searchMakes = [];\r\n for (var i = 0; i < this.makes.length; i++) {\r\n if (this.makes[i].toLowerCase().includes(event.query.toLowerCase()))\r\n this.searchMakes.push(this.makes[i]);\r\n }\r\n }\r\n\r\n getBikeTypes() {\r\n this.bikeService.getBikeTypes().subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n console.log(obj);\r\n for (var i = 0; i < obj.length; i++) {\r\n //console.log({ name: obj[i].description, code: obj[i].id });\r\n if (obj[i].label == \"Hybrid\") {\r\n this.translate.get(\"biketypes.bike.hybrid\").subscribe(x => {\r\n this.bikeTypes.push({ name: x, code: obj[i].id });\r\n });\r\n }\r\n else if (obj[i].label == \"Kids Bike\") {\r\n this.translate.get(\"biketypes.bike.kids_bike\").subscribe(x => {\r\n this.bikeTypes.push({ name: x, code: obj[i].id });\r\n });\r\n }\r\n else if (obj[i].label == \"Wheel Only\") {\r\n this.translate.get(\"biketypes.bike.wheel_only\").subscribe(x => {\r\n this.bikeTypes.push({ name: x, code: obj[i].id });\r\n });\r\n }\r\n else {\r\n this.translate.get(obj[i].label).subscribe(x => {\r\n this.bikeTypes.push({ name: x, code: obj[i].id });\r\n });\r\n }\r\n }\r\n //console.log(this.bikeTypes);\r\n });\r\n }\r\n\r\n isVanMoofBike(){\r\n if (this.booking && this.booking.shop && this.booking.shop.name.toLocaleLowerCase().indexOf('fettle')>-1){\r\n var isVanMoof = false;\r\n var keywords = ['van moof','vamoof','vanmoof','vanmood'];\r\n if(this.booking && this.booking.bikes){\r\n this.booking.bikes.forEach(bike=>{\r\n keywords.forEach(keyword=>{\r\n if(\r\n (bike.manufacturer && bike.manufacturer.toLowerCase().indexOf(keyword)>-1) ||\r\n (bike.model && bike.model.toLowerCase().indexOf(keyword)>-1) ||\r\n (bike.refno && bike.refno.toLowerCase().indexOf(keyword)>-1)){\r\n isVanMoof = true;\r\n }\r\n }); \r\n });\r\n }\r\n \r\n return isVanMoof;\r\n }else{\r\n return false;\r\n }\r\n }\r\n}\r\n","
\r\n

{{ 'label.your-bike-details' | translate }}

\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n
    \r\n
  • \r\n \r\n
    \r\n

    {{bike.RefNo}}

    \r\n {{bike.Manufacturer}} {{bike.Model}}\r\n
    \r\n \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
Due to the financial difficulties surrounding VanMoof we are currently only performing basic repairs on these bikes. We unfortunately cannot fix any brand specific issues or warranties you may have, or that may occur whilst we carry out the repair, nor can we be responsible for them. You may be left with an electronic error that we no longer have the facilities to fix. Thank you for your understanding at this time, If you have any questions or concerns, please don't hesitate to reach out to our customer support team at 0203 488 1130 or support@fettle.cc
\r\n\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Countries } from './../../classes/countries';\r\nimport { Variables } from './../../shared/variables';\r\nimport { GoogleService } from './../../services/google.service';\r\nimport { PartnerService } from './../../services/partner.service';\r\nimport { Bookings } from './../../classes/bookings';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\n\r\n\r\n@Component({\r\n selector: 'app-bike-shop-search',\r\n templateUrl: './bike-shop-search.component.html',\r\n styleUrls: ['./bike-shop-search.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class BikeShopSearchComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n @Input() steps: any;\r\n\r\n constructor(\r\n private googleService: GoogleService,\r\n private route: ActivatedRoute,\r\n private partnerService: PartnerService,\r\n private gtmService: GoogleTagManagerService\r\n ) { }\r\n\r\n loading: boolean = false;\r\n locationAllowed: boolean = true;\r\n countries: any[]; \r\n selectedCountry: string = \"\";\r\n lobjCountries: Countries;\r\n\r\n citySearch: string = \"\";\r\n citySearched: string = \"\";\r\n results: string[] = [];\r\n placeList: any[] = [];\r\n\r\n bikeshops: any[] = [];\r\n \r\n bikeshopCountry: string = \"\";\r\n\r\n lng: number = 0.0;\r\n lat: number = 0.0;\r\n\r\n km: number = 30;\r\n\r\n ngOnInit(): void {\r\n \r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'page_view_bike_shop_search', 'bike_shop_search');\r\n\r\n //Countries list sits in the classes folder as not to clutter, so we load from there\r\n this.lobjCountries = new Countries();\r\n this.countries = this.lobjCountries.getCountries();\r\n\r\n this.useMyLocation();\r\n this.getBikeshops();\r\n //this.getLocation();\r\n ////Set the selected country based on the bike shops country\r\n //this.selectedCountry = this.countries.find(x => x.code === \"ZA\");\r\n\r\n }\r\n\r\n useMyLocation() {\r\n //try {\r\n // navigator.geolocation.getCurrentPosition(location => {\r\n // this.lng = location.coords.longitude;\r\n // this.lat = location.coords.latitude;\r\n // this.getBikeshops();\r\n // }, error => {\r\n // switch (error.message) {\r\n // case \"PERMISSION_DENIED\":\r\n // this.locationAllowed = false;\r\n // console.log(\"User denied the request for Geolocation.\")\r\n // break;\r\n // case \"POSITION_UNAVAILABLE\":\r\n // this.locationAllowed = false;\r\n // console.log(\"Location information is unavailable.\")\r\n // break;\r\n // case \"TIMEOUT\":\r\n // this.locationAllowed = false;\r\n // console.log(\"The request to get user location timed out.\")\r\n // break;\r\n // case \"UNKNOWN_ERROR\":\r\n // this.locationAllowed = false;\r\n // console.log(\"An unknown error occurred.\")\r\n // break;\r\n // }\r\n // });\r\n //} catch (e) {\r\n // console.log(e);\r\n //}\r\n this.getLocation();\r\n }\r\n\r\n\r\n getLocation() {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(location => {\r\n this.lng = location.coords.longitude;\r\n this.lat = location.coords.latitude;\r\n this.getBikeshops();\r\n }, error => {\r\n switch (error.code) {\r\n case error.PERMISSION_DENIED:\r\n this.locationAllowed = false;\r\n console.log(\"User denied the request for Geolocation.\")\r\n break;\r\n case error.POSITION_UNAVAILABLE:\r\n this.locationAllowed = false;\r\n console.log(\"Location information is unavailable.\")\r\n break;\r\n case error.TIMEOUT:\r\n this.locationAllowed = false;\r\n console.log(\"The request to get user location timed out.\")\r\n break;\r\n default:\r\n this.locationAllowed = false;\r\n console.log(\"An unknown error occurred.\")\r\n break;\r\n }\r\n });\r\n } else {\r\n console.log(\"Geolocation is not supported by this browser.\");\r\n }\r\n}\r\n\r\n showPosition(position) {\r\n console.log(\"Latitude: \" + position.coords.latitude + \"
Longitude: \" + position.coords.longitude);\r\n}\r\n\r\n showError(error) {\r\n\r\n switch (error.code) {\r\n case error.PERMISSION_DENIED:\r\n this.locationAllowed = false;\r\n console.log(\"User denied the request for Geolocation.\")\r\n break;\r\n case error.POSITION_UNAVAILABLE:\r\n this.locationAllowed = false;\r\n console.log(\"Location information is unavailable.\")\r\n break;\r\n case error.TIMEOUT:\r\n this.locationAllowed = false;\r\n console.log(\"The request to get user location timed out.\")\r\n break;\r\n case error.UNKNOWN_ERROR:\r\n this.locationAllowed = false;\r\n console.log(\"An unknown error occurred.\")\r\n break;\r\n }\r\n}\r\n\r\n\r\n getCityPredictions() {\r\n console.log(1, this.booking, this.bikeshops);\r\n if (this.citySearch.length > 3) {\r\n this.googleService.lookupCities(this.citySearch,this.bikeshopCountry.trim()).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.results = [];\r\n this.placeList = [];\r\n for (var i = 0; i < obj.predictions.length; i++) {\r\n this.results.push(obj.predictions[i].description);\r\n this.placeList.push(obj.predictions[i]);\r\n }\r\n this.citySearched = this.citySearch;\r\n });\r\n }\r\n }\r\n\r\n geocodeCity() {\r\n if (this.citySearch.length > 0) {\r\n this.citySearch = this.citySearch + \", \" + this.citySearched.toUpperCase() + \", \" + this.bikeshopCountry;\r\n this.googleService.geocodeCities(this.citySearch).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.lat = obj.results[0].geometry.location.lat;\r\n this.lng = obj.results[0].geometry.location.lng;\r\n\r\n this.getBikeshops();\r\n });\r\n }\r\n }\r\n\r\n getBikeshops() {\r\n this.loading = true;\r\n var parent = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n this.booking.shop.parentID = parent;\r\n\r\n this.partnerService.getBikeshopsByParent(parent, this.lat, this.lng, this.booking.type).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.bikeshops = [];\r\n console.log(obj);\r\n if (obj.Partners == null) {\r\n for (var i = 0; i < obj.partners.length; i++) {\r\n //if (obj.Partners[i].Country !== \"GB\")\r\n this.bikeshopCountry = obj.Partners[i].Country;\r\n\r\n this.bikeshops.push(\r\n {\r\n ID: obj.partners[i].ID,\r\n Name: obj.partners[i].Name,\r\n Email: obj.partners[i].Email,\r\n WebAddress: obj.partners[i].WebAddress,\r\n PhysicalAddress: obj.partners[i].PhysicalAddress,\r\n PhoneNumber1: obj.partners[i].PhoneNumber1,\r\n PartnerImage: obj.partners[i].PartnerImage,\r\n CurrencySymbol: obj.partners[i].CurrencySymbol,\r\n Country: obj.partners[i].Country,\r\n DistanceKm: obj.partners[i].DistanceKm,\r\n DistanceMiles: obj.partners[i].DistanceMiles,\r\n Latitude: obj.partners[i].Latitude,\r\n Longitude: obj.partners[i].Longitude,\r\n Selected: false,\r\n OffersCollections: obj.partners[i].OffersCollections,\r\n OffersDropOffs: obj.partners[i].OffersDropOffs,\r\n AvailableDate: obj.partners[i].AvailableDate,\r\n DepositConfiguration: obj.partners[i].DepositConfiguration,\r\n Type: obj.partners[i].PartnerType\r\n });\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n //if (obj.Partners[i].Country !== \"GB\")\r\n this.bikeshopCountry = obj.Partners[i].Country;\r\n\r\n this.bikeshops.push(\r\n {\r\n ID: obj.Partners[i].ID,\r\n Name: obj.Partners[i].Name,\r\n Email: obj.Partners[i].Email,\r\n WebAddress: obj.Partners[i].WebAddress,\r\n PhysicalAddress: obj.Partners[i].PhysicalAddress,\r\n PhoneNumber1: obj.Partners[i].PhoneNumber1,\r\n PartnerImage: obj.Partners[i].PartnerImage,\r\n CurrencySymbol: obj.Partners[i].CurrencySymbol,\r\n Country: obj.Partners[i].Country,\r\n DistanceKm: obj.Partners[i].DistanceKm,\r\n DistanceMiles: obj.Partners[i].DistanceMiles,\r\n Latitude: obj.Partners[i].Latitude,\r\n Longitude: obj.Partners[i].Longitude,\r\n Selected: false,\r\n OffersCollections: obj.Partners[i].OffersCollections,\r\n OffersDropOffs: obj.Partners[i].OffersDropOffs,\r\n AvailableDate: obj.Partners[i].AvailableDate,\r\n DepositConfiguration: obj.Partners[i].DepositConfiguration,\r\n Type: obj.Partners[i].PartnerType\r\n });\r\n }\r\n }\r\n\r\n if (this.lat == 0.0 && this.lng == 0.0)\r\n this.bikeshops.sort((a, b) => (a.Name > b.Name) ? 1 : ((b.Name > a.Name) ? -1 : 0));\r\n\r\n this.loading = false;\r\n\r\n if (this.booking.shop.partnerID.length > 0) {\r\n this.setPartner(\r\n this.booking.shop.partnerID,\r\n this.booking.shop.country,\r\n this.booking.shop.currencySymbol,\r\n this.booking.shop.name,\r\n this.booking.shop.address,\r\n this.booking.shop.lat,\r\n this.booking.shop.lng,\r\n this.booking.shop.doesCollections,\r\n this.booking.shop.doesDropOff,\r\n this.booking.shop.depositConfiguration,\r\n this.booking.shop.type\r\n )\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n setPartner(partnerID, country, currencySymbol, name, address, lat, lng, doesCols, doesDrops, depositConfiguration, type) {\r\n\r\n\r\n this.partnerService.getShopWidgetSettings(partnerID).subscribe(reply => {\r\n console.log(reply);\r\n var obj = JSON.parse(JSON.stringify(reply));\r\n console.log(obj.settings);\r\n for (var x = 0; x < obj.settings.length; x++) {\r\n\r\n this.booking.shop.type = type;\r\n this.booking.shop.country = country;\r\n this.booking.shop.currencySymbol = currencySymbol;\r\n this.booking.shop.address = address;\r\n this.booking.shop.name = name;\r\n this.booking.shop.lat = lat;\r\n this.booking.shop.lng = lng;\r\n this.booking.shop.doesCollections = doesCols;\r\n this.booking.shop.doesDropOff = doesDrops;\r\n this.booking.shop.depositConfiguration = depositConfiguration;\r\n for (var i = 0; i < this.bikeshops.length; i++) {\r\n if (this.bikeshops[i].ID == partnerID)\r\n this.bikeshops[i].Selected = true;\r\n else\r\n this.bikeshops[i].Selected = false;\r\n }\r\n\r\n this.booking.shop.AllowCoupons = obj.settings[x].AllowCoupons;\r\n this.booking.shop.ShowHearAboutQuestion = obj.settings[x].ShowHearAboutQuestion;\r\n this.booking.shop.ShowPreApprovedAmount = obj.settings[x].ShowPreApprovedAmount;\r\n this.booking.shop.ShowPrices = obj.settings[x].ShowPrices;\r\n\r\n this.booking.shop.partnerID = partnerID;\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","\r\n\r\n
\r\n

{{ 'label.shop-search-header' | translate }}

\r\n
\r\n\r\n
\r\n

{{ 'label.shop-search-description' | translate }}

\r\n
\r\n
\r\n\r\n\r\n
\r\n

{{ 'label.shop-fitting-search-header' | translate }}

\r\n
\r\n\r\n
\r\n

{{ 'label.shop-fitting-search-description' | translate }}

\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{ 'label.or' | translate }}

\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n

{{ 'label.bike-stores-near-you' | translate }}

\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n

{{ 'label.no-bike-stores-near-you' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n No availability for the next month*\r\n {{shop.AvailableDate | date:'EEEE, d MMMM y'}}*\r\n {{shop.DistanceKm}} km\r\n {{shop.DistanceMiles}} mi\r\n
\r\n
\r\n
\r\n

*Next possible service date, dependant on service type.

\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Countries } from './../../classes/countries';\r\nimport { Variables } from './../../shared/variables';\r\nimport { GoogleService } from './../../services/google.service';\r\nimport { PartnerService } from './../../services/partner.service';\r\nimport { Bookings } from './../../classes/bookings';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { getAddressParts } from '../../shared/common';\r\n\r\n\r\n@Component({\r\n selector: 'app-collections-address',\r\n templateUrl: './collections-address.component.html',\r\n styleUrls: ['./collections-address.component.scss']\r\n})\r\nexport class CollectionsAddressComponent implements OnInit {\r\n\r\n\r\n @Input() booking: Bookings;\r\n @Input() steps: any;\r\n\r\n constructor(\r\n private googleService: GoogleService,\r\n private route: ActivatedRoute,\r\n private partnerService: PartnerService,\r\n private serviceService: ServiceService,\r\n private gtmService: GoogleTagManagerService,\r\n ) { }\r\n\r\n loading: boolean = false;\r\n checked: boolean = false;\r\n\r\n countries: any[];\r\n selectedCountry: string = \"\";\r\n lobjCountries: Countries;\r\n\r\n citySearch: string = \"\";\r\n citySearched: string = \"\";\r\n results: string[] = [];\r\n placeList: any[] = [];\r\n\r\n bikeshops: any[] = [];\r\n\r\n lng: number = 0.0;\r\n lat: number = 0.0;\r\n\r\n km: number = 30;\r\n\r\n\r\n collections: any[] = [];\r\n noSpace: boolean = false;\r\n amount: number = 0;\r\n totalCost: number = 0;\r\n\r\n radiusCosts: any[] = [];\r\n radiusDeliveryCosts: any[] = [];\r\n\r\n collectionTimes: any[];\r\n times: any[];\r\n services: any[] = [];\r\n\r\n\r\n showPickUpsDropOffs: boolean = false;\r\n showPickUps: boolean = false;\r\n showDropOffs: boolean = false;\r\n tooFar: boolean = false;\r\n\r\n bikeshopCountry: string = \"\";\r\n\r\n ngOnInit(): void {\r\n\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'page_view_bike_collections_address', 'bike_collections_address');\r\n this.loadBikeshops();\r\n this.booking.busy = true;\r\n //Countries list sits in the classes folder as not to clutter, so we load from there\r\n this.lobjCountries = new Countries();\r\n this.countries = this.lobjCountries.getCountries();\r\n this.bikeshopCountry = this.booking.shop.country;\r\n //this.useMyLocation();\r\n //this.getBikeshops();\r\n ////Set the selected country based on the bike shops country\r\n //this.selectedCountry = this.countries.find(x => x.code === \"ZA\");\r\n\r\n }\r\n\r\n useMyLocation() {\r\n this.booking.errors = \"\";\r\n try {\r\n navigator.geolocation.getCurrentPosition(location => {\r\n this.lng = location.coords.longitude;\r\n this.lat = location.coords.latitude;\r\n this.getBikeshops();\r\n });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n\r\n getCityPredictions() {\r\n this.booking.busy = true;\r\n if (this.citySearch.length > 3) {\r\n this.googleService.lookupCities(this.citySearch, this.booking.shop.country).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.results = [];\r\n this.placeList = [];\r\n for (var i = 0; i < obj.predictions.length; i++) {\r\n this.results.push(obj.predictions[i].description);\r\n this.placeList.push(obj.predictions[i]);\r\n this.citySearched = this.citySearch;\r\n }\r\n this.booking.busy = false;\r\n });\r\n }\r\n }\r\n\r\n geocodeCity() {\r\n if (this.citySearch.length > 0) {\r\n //hard coded for now for handlebars to get 'UK' in the address so that it doesnt think we in Scotland\r\n //if (this.route.snapshot.queryParamMap.get(\"franchise\") == \"3AF5A857-F83C-4BA1-93F8-275F6F92D7BB\")\r\n if (this.bikeshopCountry == \"GB\")\r\n this.citySearch = this.citySearch + \", \" + this.citySearched.toUpperCase() + \", UK\";\r\n\r\n\r\n\r\n this.googleService.geocodeCities(this.citySearch).subscribe(response => {\r\n this.booking.pickup.addressSelected = true;\r\n this.booking.pickup.address = this.citySearch;\r\n\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.lat = obj.results[0].geometry.location.lat;\r\n this.lng = obj.results[0].geometry.location.lng;\r\n\r\n var addressDetails = getAddressParts(obj.results[0]);\r\n this.booking.pickup.addressDetails = addressDetails;\r\n this.booking.pickup.addressDetails.lat = this.lat;\r\n this.booking.pickup.addressDetails.lng = this.lng;\r\n this.getBikeshops();\r\n\r\n });\r\n }\r\n }\r\n\r\n getBikeshops() {\r\n this.checked = true;\r\n this.loading = true;\r\n this.booking.busy = true;\r\n var parent = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n this.booking.shop.parentID = parent;\r\n if (parent !== null) {\r\n this.partnerService.getBikeShopsByLocationV2(parent, null, this.lat, this.lng, \"\", this.citySearch).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.bikeshops = [];\r\n console.log(obj);\r\n\r\n if (obj == null) {\r\n this.loading = false;\r\n this.booking.busy = false;\r\n return;\r\n }\r\n\r\n if (obj.length == 0) {\r\n this.loading = false;\r\n this.booking.busy = false;\r\n return;\r\n }\r\n\r\n this.booking.pickup.pickup = true;\r\n this.booking.dropoff.dropoff = true;\r\n\r\n this.booking.pickup.pickupProductID = 0;\r\n this.booking.dropoff.dropoffProductID = 0;\r\n if (obj[0].collectionFee && obj[0].collectionFee.length > 0) {\r\n this.booking.pickup.cost = obj[0].vatInclusive ? obj[0].collectionFee[0].unitPrice_IncludingTax : obj[0].collectionFee[0].unitPrice;\r\n this.booking.pickup.pickupProductID = obj[0].collectionFee[0].productID\r\n }\r\n if (obj[0].deliveryFee && obj[0].deliveryFee.length > 0) {\r\n this.booking.dropoff.cost = obj[0].vatInclusive ? obj[0].deliveryFee[0].unitPrice_IncludingTax : obj[0].deliveryFee[0].unitPrice;\r\n this.booking.dropoff.dropoffProductID = obj[0].deliveryFee[0].productID\r\n }\r\n\r\n\r\n this.setPartner(\r\n obj[0].partnerIdentifier,\r\n obj[0].country,\r\n obj[0].currencySymbol,\r\n obj[0].partnerName,\r\n obj[0].physicalAddress,\r\n obj[0].latitude,\r\n obj[0].longitude,\r\n obj[0].offersCollections,\r\n obj[0].offersDropOffs,\r\n obj[0].depositConfiguration\r\n );\r\n\r\n //Set the area ID for the address we just searched, we need this later to find the dates against this areaID\r\n this.booking.pickup.areaID = obj[0].areaID;\r\n this.setServices();\r\n });\r\n }\r\n }\r\n\r\n setPartner(partnerID, country, currencySymbol, name, address, lat, lng, doesCols, doesDrops, depositConfiguration) {\r\n this.booking.shop.partnerID = partnerID;\r\n this.booking.shop.country = country;\r\n this.booking.shop.currencySymbol = currencySymbol;\r\n this.booking.shop.address = address;\r\n this.booking.shop.name = name;\r\n this.booking.shop.lat = lat;\r\n this.booking.shop.lng = lng;\r\n this.booking.shop.doesCollections = doesCols;\r\n this.booking.shop.doesDropOff = doesDrops;\r\n this.booking.shop.doesDropOff = doesDrops;\r\n this.booking.shop.depositConfiguration = depositConfiguration;\r\n\r\n for (var i = 0; i < this.bikeshops.length; i++) {\r\n if (this.bikeshops[i].ID == partnerID)\r\n this.bikeshops[i].Selected = true;\r\n else\r\n this.bikeshops[i].Selected = false;\r\n }\r\n\r\n this.booking.pickup.country = country;\r\n }\r\n\r\n\r\n setServices() {\r\n this.serviceService.getServiceTypesByPartnerID(this.booking.shop.partnerID, 1).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n\r\n for (var i = 0; i < obj.Services.length; i++) {\r\n if (obj.Services[i].Radius > 0) {\r\n this.services.push(\r\n {\r\n ID: obj.Services[i].ID,\r\n GroupName: obj.Services[i].GroupName,\r\n ServiceTypeDescription: obj.Services[i].ServiceTypeDescription,\r\n Cost: obj.Services[i].Cost,\r\n Hours: obj.Services[i].Hours,\r\n AdditionalInformation: obj.Services[i].AdditionalInformation,\r\n IsFitting: obj.Services[i].IsFitting,\r\n Radius: obj.Services[i].Radius,\r\n Selected: false,\r\n IsPickUp: obj.Services[i].IsPickUp,\r\n IsDropOff: obj.Services[i].IsDropOff\r\n }\r\n );\r\n }\r\n }\r\n //this.addDeliveryCost();\r\n });\r\n }\r\n\r\n loadBikeshops() {\r\n \r\n this.loading = true;\r\n var parent = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n console.log(parent);\r\n if (parent !== null) {\r\n this.booking.shop.parentID = parent;\r\n this.partnerService.getBikeshopsByParent(parent, this.lat, this.lng, this.booking.type).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.bikeshops = [];\r\n console.log(obj);\r\n if (obj.Partners == null) {\r\n for (var i = 0; i < obj.partners.length; i++) {\r\n //if (obj.Partners[i].Country !== \"GB\")\r\n this.bikeshopCountry = obj.Partners[i].Country;\r\n this.booking.shop.country = this.bikeshopCountry;\r\n this.bikeshops.push(\r\n {\r\n ID: obj.partners[i].ID,\r\n Name: obj.partners[i].Name,\r\n Email: obj.partners[i].Email,\r\n WebAddress: obj.partners[i].WebAddress,\r\n PhysicalAddress: obj.partners[i].PhysicalAddress,\r\n PhoneNumber1: obj.partners[i].PhoneNumber1,\r\n PartnerImage: obj.partners[i].PartnerImage,\r\n CurrencySymbol: obj.partners[i].CurrencySymbol,\r\n Country: obj.partners[i].Country,\r\n DistanceKm: obj.partners[i].DistanceKm,\r\n DistanceMiles: obj.partners[i].DistanceMiles,\r\n Latitude: obj.partners[i].Latitude,\r\n Longitude: obj.partners[i].Longitude,\r\n Selected: false,\r\n OffersCollections: obj.partners[i].OffersCollections,\r\n OffersDropOffs: obj.partners[i].OffersDropOffs,\r\n AvailableDate: obj.partners[i].AvailableDate\r\n });\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n //if (obj.Partners[i].Country !== \"GB\")\r\n this.bikeshopCountry = obj.Partners[i].Country;\r\n this.booking.shop.country = this.bikeshopCountry;\r\n\r\n this.bikeshops.push(\r\n {\r\n ID: obj.Partners[i].ID,\r\n Name: obj.Partners[i].Name,\r\n Email: obj.Partners[i].Email,\r\n WebAddress: obj.Partners[i].WebAddress,\r\n PhysicalAddress: obj.Partners[i].PhysicalAddress,\r\n PhoneNumber1: obj.Partners[i].PhoneNumber1,\r\n PartnerImage: obj.Partners[i].PartnerImage,\r\n CurrencySymbol: obj.Partners[i].CurrencySymbol,\r\n Country: obj.Partners[i].Country,\r\n DistanceKm: obj.Partners[i].DistanceKm,\r\n DistanceMiles: obj.Partners[i].DistanceMiles,\r\n Latitude: obj.Partners[i].Latitude,\r\n Longitude: obj.Partners[i].Longitude,\r\n Selected: false,\r\n OffersCollections: obj.Partners[i].OffersCollections,\r\n OffersDropOffs: obj.Partners[i].OffersDropOffs,\r\n AvailableDate: obj.Partners[i].AvailableDate\r\n });\r\n }\r\n }\r\n\r\n if (this.lat == 0.0 && this.lng == 0.0)\r\n this.bikeshops.sort((a, b) => (a.Name > b.Name) ? 1 : ((b.Name > a.Name) ? -1 : 0));\r\n\r\n this.loading = false;\r\n\r\n //if (this.booking.shop.partnerID.length > 0) {\r\n // this.setPartner(\r\n // this.booking.shop.partnerID,\r\n // this.booking.shop.country,\r\n // this.booking.shop.currencySymbol,\r\n // this.booking.shop.name,\r\n // this.booking.shop.address,\r\n // this.booking.shop.lat,\r\n // this.booking.shop.lng,\r\n // this.booking.shop.doesCollections,\r\n // this.booking.shop.doesDropOff\r\n // )\r\n //}\r\n\r\n });\r\n }\r\n else {\r\n this.bikeshopCountry = this.booking.shop.country;\r\n }\r\n }\r\n}\r\n","\r\n\r\n
\r\n

{{ 'label.collections-header' | translate }}

\r\n
\r\n\r\n
\r\n

{{ 'label.collections-description' | translate }}

\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n

{{ 'label.no-bike-stores-near-you' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { Countries } from './../../classes/countries';\r\nimport { Bookings } from '../../classes/bookings';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserService } from './../../services/user.service';\r\nimport { PartnerService } from '../../services/partner.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\n\r\n@Component({\r\n selector: 'app-customer-details',\r\n templateUrl: './customer-details.component.html',\r\n styleUrls: ['./customer-details.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CustomerDetailsComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private userService: UserService,\r\n private partnerService: PartnerService,\r\n private translate: TranslateService,\r\n private gtmService: GoogleTagManagerService\r\n ) { }\r\n\r\n loading: boolean = false;\r\n loadingShop: boolean = false;\r\n\r\n countries: any[];\r\n selectedCountry: any;\r\n lobjCountries: Countries;\r\n\r\n public hearAboutOptions: any[] = [];\r\n public disabledFeatures = [];\r\n public hideHearAbout = false;\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n this.hideHearAbout = !this.booking.shop.ShowHearAboutQuestion;\r\n\r\n this.disabledFeatures = JSON.parse(localStorage.getItem(\"disabledFeatures\"));\r\n if (this.disabledFeatures.indexOf('hearabout') > -1)\r\n this.hideHearAbout = true;\r\n\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'page_view_bike_customer_details', 'bike_customer_details');\r\n\r\n //Countries list sits in the classes folder as not to clutter, so we load from there\r\n this.lobjCountries = new Countries();\r\n this.countries = this.lobjCountries.getCountries();\r\n console.log(this.countries);\r\n //If not a franchise get the shop id\r\n var shop = this.route.snapshot.queryParamMap.get(\"shop\");\r\n if (shop !== null && shop !== undefined) {\r\n this.loadingShop = true;\r\n this.loading = true;\r\n this.booking.shop.partnerID = shop;\r\n this.partnerService.getBikeshopsByExternalID(shop).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.booking.shop.country = obj.Partners[0].Country;\r\n this.booking.shop.currencySymbol = obj.Partners[0].CurrencySymbol;\r\n this.booking.shop.address = obj.Partners[0].PhysicalAddress;\r\n this.booking.shop.name = obj.Partners[0].Name;\r\n this.booking.shop.lat = obj.Partners[0].Latitude;\r\n this.booking.shop.lng = obj.Partners[0].Longitude;\r\n this.booking.shop.doesCollections = obj.Partners[0].OffersCollections;\r\n this.booking.shop.doesDropOff = obj.Partners[0].OffersDropOffs;\r\n this.booking.shop.payment = obj.Partners[0].WidgetAllowPayments;\r\n this.booking.shop.showTechnicianImages = obj.Partners[0].FittingsShowTechnicianImage;\r\n this.booking.shop.depositConfiguration = obj.Partners[0].DepositConfiguration;\r\n\r\n //Set the selected country based on the bike shops country\r\n this.selectedCountry = this.countries.find(x => x.code === this.booking.shop.country);\r\n\r\n this.booking.client.dialCode = this.selectedCountry.dial_code;\r\n this.booking.client.country = this.selectedCountry.code;\r\n this.loadingShop = false;\r\n this.loading = false;\r\n });\r\n }\r\n else {\r\n //Set the selected country based on the bike shops country\r\n this.selectedCountry = this.countries.find(x => x.code === this.booking.shop.country);\r\n\r\n this.booking.client.dialCode = this.selectedCountry.dial_code;\r\n this.booking.client.country = this.selectedCountry.code;\r\n }\r\n\r\n\r\n this.setHearAbout();\r\n }\r\n\r\n setHearAbout() {\r\n //this.hearAboutOptions.push({ name: \"\", code: \"\"});\r\n this.translate.get(\"hear-about.street\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.word\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.google\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.facebook\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n //this.translate.get(\"hear-about.instagram\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.paper\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.work\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n //this.translate.get(\"hear-about.flyer\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.customer\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.other\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n }\r\n\r\n setCountry(event) {\r\n this.booking.client.country = event.value.code;\r\n this.booking.client.dialCode = event.value.dial_code;\r\n }\r\n\r\n searchByPhone() {\r\n this.booking.errors = \"\";\r\n\r\n if (this.booking.client.mobile.length == 0)\r\n return;\r\n\r\n this.loading = true;\r\n var user = this.userService.getUserByPhone(this.booking.client.mobile, this.booking.client.country, this.booking.client.dialCode).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n\r\n if (obj.Users.length == 0) {\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n this.booking.client.name = obj.Users[0].Name;\r\n this.booking.client.surname = obj.Users[0].Surname;\r\n this.booking.client.email = obj.Users[0].Email;\r\n this.booking.client.ID = obj.Users[0].ID;\r\n this.booking.pickup.mobile = this.booking.client.mobile.length == 0 ? obj.Users[0].PhoneNumber : this.booking.client.mobile;\r\n this.booking.pickup.dialCode = this.booking.client.dialCode;\r\n this.booking.pickup.country = this.booking.client.country;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n searchByEmail() {\r\n\r\n if (this.booking.client.email.length == 0)\r\n return;\r\n\r\n\r\n this.loading = true;\r\n var user = this.userService.getUserByEmail(this.booking.client.email).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n\r\n if (obj.Users.length == 0) {\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n this.booking.client.name = obj.Users[0].Name;\r\n this.booking.client.surname = obj.Users[0].Surname;\r\n this.booking.client.email = obj.Users[0].Email;\r\n this.booking.client.ID = obj.Users[0].ID;\r\n this.booking.pickup.mobile = this.booking.client.mobile;\r\n this.booking.pickup.dialCode = this.booking.client.dialCode;\r\n this.booking.pickup.country = this.booking.client.country;\r\n this.booking.client.mobile = obj.Users[0].PhoneNumber;\r\n this.loading = false;\r\n });\r\n }\r\n}\r\n","
\r\n

{{ 'label.your-details' | translate }}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
{{selectedCountry.dial_code}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
{{country.dial_code}} ({{country.name}})
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { Bookings, Bike, Service } from '../../classes/bookings';\r\nimport { ServiceService } from './../../services/service.service';\r\n\r\n@Component({\r\n selector: 'app-fitting-additional-info',\r\n templateUrl: './fitting-additional-info.component.html',\r\n styleUrls: ['./fitting-additional-info.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FittingAdditionalInfoComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n public loading: boolean = false;\r\n public selectedServices: any[] = [];\r\n public groups: any[] = [];\r\n\r\n\r\n constructor(\r\n private serviceService : ServiceService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getFittingInfo();\r\n }\r\n\r\n getFittingInfo(){\r\n if(this.booking.client.ID > 0 && this.booking.fittingInfo.ID === 0 && this.booking.fittingInfo.userID === 0){\r\n this.serviceService.getUserFittingInfo(this.booking.client.ID).subscribe(resp=>{\r\n var fittingInfo = JSON.parse(JSON.stringify(resp));\r\n if(fittingInfo.id > 0){\r\n this.booking.fittingInfo.ID = fittingInfo.id;\r\n this.booking.fittingInfo.userID = fittingInfo.userID;\r\n this.booking.fittingInfo.yearsRiding = fittingInfo.yearsRiding;\r\n this.booking.fittingInfo.ridingGoals = fittingInfo.ridingGoals;\r\n this.booking.fittingInfo.areasOfDiscomfort = fittingInfo.areasOfDiscomfort;\r\n this.booking.fittingInfo.injuryHistory = fittingInfo.injuryHistory;\r\n\r\n }else{\r\n this.booking.fittingInfo.userID = fittingInfo.userID;\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n","
\r\n

{{ 'label.fitting_information' | translate }}

\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ 'label.goals_of_fit_session' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{ 'label.years_riding' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{ 'label.areas_of_discomfort' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{ 'label.injury_history' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{ 'label.riding_goals' | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Bookings } from '../../classes/bookings';\r\nimport { faUserNurse } from '@fortawesome/free-solid-svg-icons';\r\nimport { getLocaleDateFormat } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'app-fitting-dates',\r\n templateUrl: './fitting-dates.component.html',\r\n styleUrls: ['./fitting-dates.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FittingDatesComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n constructor(private serviceService: ServiceService,\r\n private translate: TranslateService) { }\r\n minDate: Date = new Date();\r\n startDate = new Date();\r\n endDate = new Date();\r\n invalidDates: any[] = [];\r\n validOnes: Date[] = [];\r\n loading: boolean = true;\r\n\r\n technicians: any[] = [];\r\n availability: any[] = [];\r\n times: any[] = [];\r\n selectFitter: boolean = false;\r\n\r\n selectedTechnician: string = \"\";\r\n\r\n ngOnInit(): void {\r\n this.booking.dateSelected = false;\r\n this.minDate = new Date();\r\n\r\n if (this.booking.shop.partnerID === \"HUB.FDE1DCB5A1AA4B2598EC94BF414755D53F74CC0C7CA244BEBFCF1D8843A40E38.TIGER\") {\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate()));\r\n }\r\n else {\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + 1));\r\n }\r\n\r\n\r\n //this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.startDate = new Date();\r\n //this.setDates();\r\n\r\n console.log(this.booking);\r\n\r\n this.getAvailability();\r\n\r\n }\r\n\r\n getAvailability() {\r\n this.times = [];\r\n this.loading = true;\r\n var services = \"\";\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n services += \",\" + this.booking.bikes[i].services.services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n }\r\n\r\n var date = this.minDate.getFullYear() + '-' + (\"0\" + (this.minDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + this.minDate.getDate()).slice(-2)\r\n this.serviceService.getAvailabilityTimesByPartnerIDAndServiceID(this.booking.shop.partnerID, date, services, 0).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.availability = obj.Availability;\r\n\r\n this.invalidDates = [];\r\n this.validOnes = [];\r\n\r\n while (this.startDate <= this.endDate) {\r\n var d = new Date(this.startDate);\r\n\r\n\r\n //if (d.getTimezoneOffset() >= 0)\r\n // d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n //else\r\n // d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n\r\n\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d.toISOString().substring(0, 10));\r\n\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n }\r\n\r\n for (var i = 0; i < obj.Availability.length; i++) {\r\n if (this.validOnes.find(x => x == obj.Availability[i].AvailableDate) === undefined) {\r\n this.validOnes.push(obj.Availability[i].AvailableDate);\r\n }\r\n }\r\n\r\n for (var i = 0; i < obj.Availability.length; i++) {\r\n if (this.technicians.find(x => x.code == obj.Availability[i].TechnicianID) === undefined)\r\n this.technicians.push(\r\n {\r\n code: obj.Availability[i].TechnicianID,\r\n name: obj.Availability[i].Technician,\r\n img: obj.Availability[i].TechnicianImage\r\n });\r\n }\r\n\r\n\r\n var values = this.validOnes.map(function (date) { return date; });\r\n var unique = this.invalidDates.filter(function (date) { return values.indexOf(date) == -1 });\r\n for (var i = 0; i < unique.length; i++) {\r\n var d = new Date();\r\n //d.setFullYear(unique[i].substring(0, 4));\r\n //d.setMonth(unique[i].substring(5, 7) - 1);\r\n //d.setDate(unique[i].substring(8, 10));\r\n d.setFullYear(unique[i].substring(0, 4), unique[i].substring(5, 7) - 1, unique[i].substring(8, 10));\r\n d.setHours(0, 0, 0, 0);\r\n unique[i] = d;\r\n //unique[i] = new Date(unique[i]);\r\n }\r\n this.invalidDates = unique;\r\n this.loading = false;\r\n\r\n });\r\n }\r\n\r\n chooseFitter(event) {\r\n this.loading = true;\r\n this.invalidDates = [];\r\n this.validOnes = [];\r\n\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.startDate = new Date();\r\n while (this.startDate <= this.endDate) {\r\n var d = new Date(this.startDate);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d);\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n }\r\n\r\n for (var i = 0; i < this.availability.length; i++) {\r\n if (this.availability[i].TechnicianID == event.value.code) {\r\n if (this.validOnes.find(x => x == this.availability[i].AvailableDate) === undefined) {\r\n var d = new Date();\r\n //d.setFullYear(this.availability[i].AvailableDate.substring(0, 4));\r\n //d.setMonth(this.availability[i].AvailableDate.substring(5, 7) - 1);\r\n //d.setDate(this.availability[i].AvailableDate.substring(8, 10));\r\n\r\n d.setFullYear(this.availability[i].AvailableDate.substring(0, 4), this.availability[i].AvailableDate.substring(5, 7) - 1, this.availability[i].AvailableDate.substring(8, 10));\r\n d.setHours(0, 0, 0, 0);\r\n\r\n this.validOnes.push(d);\r\n }\r\n }\r\n }\r\n\r\n\r\n var values = this.validOnes.map(function (date) { return date; });\r\n var unique = this.invalidDates.filter(function (date) { return values.indexOf(date) == -1 });\r\n\r\n for (var i = 0; i < unique.length; i++) {\r\n for (var j = 0; j < values.length; j++) {\r\n var d = new Date();\r\n d.setFullYear(unique[i].getFullYear(), unique[i].getMonth(), unique[i].getDate());\r\n d.setHours(0, 0, 0, 0);\r\n var dd = new Date();\r\n dd.setFullYear(values[j].getFullYear(), values[j].getMonth(), values[j].getDate());\r\n dd.setHours(0, 0, 0, 0);\r\n if (d.toDateString() == dd.toDateString())\r\n unique.splice(i, 1);\r\n }\r\n }\r\n\r\n //for (var i = 0; i < unique.length; i++) {\r\n // unique[i] = new Date(unique[i]);\r\n //}\r\n this.invalidDates = unique;\r\n this.booking.fitting.technicianID = event.value.code;\r\n this.loading = false;\r\n }\r\n\r\n\r\n monthChanged(event) {\r\n //console.log(event, this.startDate, this.endDate);\r\n this.startDate.setFullYear(event.year, event.month - 1, 0);\r\n this.endDate.setFullYear(event.year, event.month, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.minDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n\r\n if (this.minDate < new Date())\r\n this.minDate = new Date();\r\n\r\n this.booking.date = this.minDate;\r\n console.log(this.startDate);\r\n console.log(this.endDate);\r\n console.log(this.minDate);\r\n console.log(this.booking.date);\r\n //this.booking.date.setHours(this.booking.date.getHours() - (this.booking.date.getHours() - (this.booking.date.getTimezoneOffset() / 60)))\r\n this.getAvailability();\r\n //this.setDates(this.minDate);\r\n //console.log(event, this.startDate, this.endDate);\r\n\r\n }\r\n\r\n dateSelected(event) {\r\n\r\n for (var i = 0; i < this.times.length; i++)\r\n this.times[i].Selected = false;\r\n this.booking.fitting.technicianID = undefined;\r\n\r\n for (var i = 0; i < this.invalidDates.length; i++) {\r\n if (this.invalidDates[i] == event) {\r\n this.translate.get(\"error.date-no-availability\").subscribe(response => {\r\n this.booking.errors = response;\r\n this.booking.dateSelected = false;\r\n });\r\n }\r\n else {\r\n this.booking.date = event;\r\n this.booking.dateSelected = true;\r\n this.times = [];\r\n\r\n if (this.booking.fitting.technicianID != undefined) {\r\n for (var q = 0; q < this.availability.length; q++) {\r\n if (this.availability[q].TechnicianID == parseInt(this.booking.fitting.technicianID)) {\r\n //var d = new Date();\r\n //d.setFullYear(this.availability[q].AvailableDate.substring(0, 4));\r\n //d.setMonth(this.availability[q].AvailableDate.substring(5, 7) - 1);\r\n //d.setDate(this.availability[q].AvailableDate.substring(8, 10));\r\n //d.setHours(0, 0, 0, 0);\r\n\r\n var d = new Date(this.availability[q].AvailableDate.substring(0, 4), this.availability[q].AvailableDate.substring(5, 7) - 1, this.availability[q].AvailableDate.substring(8, 10), 0, 0, 0, 0)\r\n\r\n if (d.toDateString() == event.toDateString()) {\r\n if (this.times.find(x => x.AvailableTime == this.availability[q].AvailableTime) === undefined)\r\n this.times.push(this.availability[q]);\r\n }\r\n }\r\n }\r\n\r\n for (var a = 0; a < this.times.length; a++) {\r\n this.times[a].Selected = false;\r\n this.times[a].ID = a;\r\n this.times[a].TechnicianID = this.booking.fitting.technicianID;\r\n }\r\n }\r\n else {\r\n for (var q = 0; q < this.availability.length; q++) {\r\n //var d = new Date();\r\n //d.setFullYear(this.availability[q].AvailableDate.substring(0, 4));\r\n //d.setMonth(this.availability[q].AvailableDate.substring(5, 7) - 1);\r\n //d.setDate(this.availability[q].AvailableDate.substring(8, 10));\r\n //d.setHours(0, 0, 0, 0);\r\n\r\n var d = new Date(this.availability[q].AvailableDate.substring(0, 4), this.availability[q].AvailableDate.substring(5, 7) - 1, this.availability[q].AvailableDate.substring(8, 10), 0, 0, 0, 0)\r\n\r\n if (d.toDateString() == event.toDateString()) {\r\n if (this.times.find(x => x.AvailableTime == this.availability[q].AvailableTime) === undefined) {\r\n this.times.push(this.availability[q]);\r\n this.times[this.times.length - 1].Selected = false;\r\n this.times[this.times.length - 1].ID = q;\r\n this.times[this.times.length - 1].TechnicianID = this.availability[q].TechnicianID;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.times.length > 0)\r\n this.times.sort((a, b) => (a.AvailableTime > b.AvailableTime) ? 1 : ((b.AvailableTime > a.AvailableTime) ? -1 : 0));\r\n\r\n }\r\n\r\n //getTimes(event) {\r\n // for (var i = 0; i < this.booking.bikes.length; i++) {\r\n // var services = \"\";\r\n // for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n // if (this.booking.bikes[i].services.services[a].selected == true)\r\n // services += \",\" + this.booking.bikes[i].services.services[a].ID;\r\n // if (services.startsWith(\",\", 0))\r\n // services = services.substring(1);\r\n // }\r\n\r\n // //First time we run this and there are no times selected yet\r\n // if (this.availability.length == 0) {\r\n // this.serviceService.getAvailabilityTimesByPartnerIDAndServiceID(this.booking.shop.partnerID, this.booking.date.toISOString().substring(0, 10), services, event.value.code).subscribe(response => {\r\n // var obj = JSON.parse(JSON.stringify(response));\r\n // //console.log(obj);\r\n // if (obj !== null) {\r\n // this.availability = obj.Availability;\r\n // this.times = this.availability.filter(x => x.AvailableDate == this.booking.date.toISOString().substring(0, 10));\r\n // for (var i = 0; i < this.times.length; i++)\r\n // this.times[i].Selected = false;\r\n\r\n // console.log(this.times);\r\n // this.booking.fitting.technicianID = event.value.code;\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // //This is if they select a new technician\r\n // if (this.availability[0].TechnicianID !== event.value.code) {\r\n // this.serviceService.getAvailabilityTimesByPartnerIDAndServiceID(this.booking.shop.partnerID, this.booking.date.toISOString().substring(0, 10), services, event.value.code).subscribe(response => {\r\n // var obj = JSON.parse(JSON.stringify(response));\r\n // //console.log(obj);\r\n // if (obj !== null) {\r\n // this.availability = obj.Availability;\r\n // this.times = this.availability.filter(x => x.AvailableDate == this.booking.date.toISOString().substring(0, 10));\r\n // for (var i = 0; i < this.times.length; i++)\r\n // this.times[i].Selected = false;\r\n // console.log(this.times);\r\n // this.booking.fitting.technicianID = event.value.code;\r\n // }\r\n // });\r\n // }\r\n // else {\r\n\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n\r\n //}\r\n\r\n setTime(event, ID) {\r\n console.log(event);\r\n console.log(ID);\r\n\r\n this.booking.hasValidDateAndTime = false;//Reset flag\r\n\r\n for (var i = 0; i < this.times.length; i++)\r\n this.times[i].Selected = false;\r\n\r\n const selectedTime = this.times.find(x => x.ID == ID);\r\n if (selectedTime) {\r\n selectedTime.Selected = true;\r\n const availableTime = selectedTime.AvailableTime;\r\n\r\n // Validate the format of the AvailableTime\r\n const timeRegex = /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/;\r\n if (timeRegex.test(availableTime)) {\r\n // Set the time if it's a valid format\r\n this.booking.date.setHours(Number(availableTime.substring(0, 2)));\r\n this.booking.date.setMinutes(Number(availableTime.substring(3, 5)));\r\n this.booking.date.setSeconds(0);\r\n this.booking.date.setMilliseconds(0);\r\n this.booking.fitting.technicianID = selectedTime.TechnicianID;\r\n\r\n this.booking.hasValidDateAndTime = true;//Set validation flag\r\n } else {\r\n // Handle invalid time format\r\n console.error('Invalid time format:', availableTime);\r\n //alert('Invalid time format: ' + availableTime);\r\n return;\r\n }\r\n } else {\r\n // Handle case when selectedTime is not found\r\n console.error('Selected time not found');\r\n //alert('Selected time not found');\r\n return;\r\n }\r\n \r\n // Check if the time value is '00:00'\r\n if (this.booking.date.getHours() === 0 && this.booking.date.getMinutes() === 0) {\r\n // Time value is '00:00'\r\n console.log('Time value is 00:00, try re-selecting the time option');\r\n //alert('Time value is 00:00, try re-selecting the time option');\r\n return;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n

{{ 'label.select-fitting-date' | translate }}

\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n
\r\n \r\n
{{selectedTechnician.name}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
{{country.name}}
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n

{{booking.date.getFullYear()}}

\r\n

{{booking.date.toLocaleString('default', { weekday: 'short' })}}, {{booking.date.toLocaleString('default', { month: 'short' })}} {{booking.date.getDate()}}

\r\n
\r\n \r\n
\r\n
\r\n\r\n
0)\">\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader-section',\r\n templateUrl: './loader-section.component.html',\r\n styleUrls: ['./loader-section.component.scss']\r\n})\r\nexport class LoaderSectionComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Bookings } from '../../classes/bookings';\r\nimport { ServiceService } from './../../services/service.service';\r\n\r\n@Component({\r\n selector: 'app-marketing-consent',\r\n templateUrl: './marketing-consent.component.html',\r\n styleUrls: ['./marketing-consent.component.scss']\r\n})\r\nexport class MarketingConsentComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n public consentForMarketing: boolean = false;\r\n public showGDPRMarketingConsent: boolean = false; \r\n public showGDPRMarketingConsentText: string = \"\"; \r\n public userGaveGDPRMarketingConsent: boolean = false; \r\n\r\n constructor(private serviceService: ServiceService) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.showGDPRMarketingConsent = this.booking.shop.showGDPRMarketingConsent;\r\n this.showGDPRMarketingConsentText = this.booking.shop.showGDPRMarketingConsentCustomText;\r\n\r\n this.getUserMarketingConsent(); \r\n }\r\n\r\n getUserMarketingConsent(){\r\n this.serviceService.getUserMarketingConsentStatus(this.booking.shop.partnerID, this.booking.client.ID).subscribe(response => {\r\n console.log('getUserMarketingConsent'); \r\n var obj = JSON.parse(JSON.stringify(response));\r\n console.log(obj);\r\n this.userGaveGDPRMarketingConsent = obj.userGaveMarketingConsentDate == null ? false : true;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\ndeclare var Stripe: any;\r\n\r\n@Component({\r\n selector: 'app-payments',\r\n templateUrl: './payments.component.html',\r\n styleUrls: ['./payments.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PaymentsComponent implements OnInit {\r\n\r\n @Input() amount: number;\r\n @Input() currency: string;\r\n\r\n public stripe: any;\r\n public card: any;\r\n public busy: boolean = false;\r\n public loading: boolean = false;\r\n\r\n constructor(private translate: TranslateService,) { }\r\n\r\n ngOnInit(): void {\r\n this.amount = parseFloat(this.amount.toFixed(2));\r\n this.stripe = Stripe(\"pk_test_pT6K67ngrmRgD3ycPe0zpspA00gIBtEMTw\");\r\n this.createStripeCard();\r\n }\r\n\r\n createStripeCard() {\r\n var elements = this.stripe.elements();\r\n this.card = elements.create('card', {\r\n iconStyle: 'solid',\r\n style: {\r\n height: '40px',\r\n base: {\r\n iconColor: '#181818',\r\n color: '#181818',\r\n fontWeight: 500,\r\n fontFamily: '\"Nunito Sans\", \"Arial\", sans-serif',\r\n fontSize: '16px',\r\n fontSmoothing: 'antialiased',\r\n\r\n ':-webkit-autofill': {\r\n color: '#181818'\r\n },\r\n '::placeholder': {\r\n color: '#777'\r\n }\r\n },\r\n invalid: {\r\n iconColor: '#d90028',\r\n color: '#d90028'\r\n }\r\n }\r\n });\r\n this.card.mount('#card-input');\r\n }\r\n\r\n submitPayment() {\r\n this.busy = true;\r\n this.stripe.createToken(this.card).then(card => {\r\n if (card.error) {\r\n this.busy = false;\r\n console.log(card.error);\r\n } else {\r\n console.log(card);\r\n console.log(this.card);\r\n //this.paymentService.initiateStripeConnectPayments(this.serviceID).subscribe(paymentIntent => {\r\n // console.log(paymentIntent);\r\n // var clientSecret = paymentIntent && paymentIntent.clientSecret ? paymentIntent.clientSecret : \"\";\r\n // console.log(clientSecret);\r\n // if (clientSecret === \"\") {\r\n // this.busy = false;\r\n // //Snackbar.show({ duration: Snackbar.LENGTH_SHORT, title: strings('jobcard.payment_initiation_error') });\r\n // } else {\r\n // this.stripe.confirmCardPayment(clientSecret, {\r\n // payment_method: {\r\n // card: this.card\r\n // },\r\n // receipt_email: this.email\r\n // }).then(pi_result => {\r\n // console.log(pi_result);\r\n // if (pi_result && pi_result.paymentIntent && pi_result.paymentIntent.status === 'succeeded') {\r\n // //this.paymentService.updateInvoiceWithStripePaymentIntents(this.serviceID, pi_result.paymentIntent.id).subscribe(paymentResult => {\r\n // // this.fetchJobcard();\r\n // // Swal.fire(\r\n // // 'Invoice Paid',\r\n // // 'Thank you for paying your invoice through Hubtiger.',\r\n // // 'success'\r\n // // ).then(result => {\r\n\r\n // // })\r\n // //})\r\n // } else if (pi_result && pi_result.error) {\r\n // this.error = pi_result.error.message;\r\n // this.busy = false;\r\n // } else {\r\n // this.busy = false;\r\n // }\r\n // }, error => {\r\n // console.log(error);\r\n // //Alert.alert(\"\", error && error.userInfo && error.userInfo.NSLocalizedDescription ? error.userInfo.NSLocalizedDescription : strings('jobcard.payment_initiation_error'));\r\n // this.busy = false;\r\n // });\r\n // }\r\n //}, error => {\r\n // this.busy = false;\r\n // //Snackbar.show({ duration: Snackbar.LENGTH_SHORT, title: strings('jobcard.payment_initiation_error') });\r\n //});\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { Bookings, Bike, Service } from '../../classes/bookings';\r\nimport { ServiceService } from './../../services/service.service';\r\n\r\n@Component({\r\n selector: 'app-select-fittings',\r\n templateUrl: './select-fittings.component.html',\r\n styleUrls: ['./select-fittings.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SelectFittingsComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n public services: any[] = [];\r\n public selectedServices: any[] = [];\r\n public groups: any[] = [];\r\n public loading: boolean = false;\r\n\r\n public showOnlyAvailable = true;\r\n public groupNames = [];\r\n public disabledFeatures = [];\r\n public hidePrices = false;\r\n\r\n constructor(\r\n private serviceService: ServiceService\r\n ) { }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n\r\n this.groupNames = JSON.parse(localStorage.getItem(\"serviceGroups\"));\r\n if (this.groupNames == null)\r\n this.groupNames = [];\r\n if (this.groupNames.length > 0)\r\n this.showOnlyAvailable = false;\r\n\r\n this.hidePrices = this.booking.shop.ShowPrices;\r\n\r\n this.disabledFeatures = JSON.parse(localStorage.getItem(\"disabledFeatures\"));\r\n if (this.disabledFeatures == null)\r\n this.disabledFeatures = [];\r\n if (this.disabledFeatures.indexOf('prices') > -1)\r\n this.hidePrices = true;\r\n\r\n this.loading = true;\r\n this.serviceService.getServiceTypesByPartnerID(this.booking.shop.partnerID, 0).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n\r\n for (var i = 0; i < obj.Services.length; i++) {\r\n if (obj.Services[i].IsFitting === true) {\r\n if (this.groups.indexOf(obj.Services[i].GroupName) < 0) {\r\n this.groups.push(obj.Services[i].GroupName);\r\n }\r\n }\r\n\r\n if (this.booking.bikes.length == 0) {\r\n this.booking.bikes.push(\r\n {\r\n colour: \"\",\r\n ID: -1000,\r\n manufacturer: \"\",\r\n model: \"\",\r\n refno: \"\",\r\n selected: false,\r\n serialNo: \"\",\r\n typeID: \"\",\r\n services: new Service()\r\n }\r\n )\r\n }\r\n\r\n if (obj.Services[i].IsFitting === true) {\r\n for (var x = 0; x < this.booking.bikes.length; x++) {\r\n if (this.booking.bikes[x].services.services.findIndex(a => a.ID == obj.Services[i].ID) < 0) {\r\n this.booking.bikes[x].services.bikeID = this.booking.bikes[x].ID;\r\n this.booking.bikes[x].services.services.push({\r\n ID: obj.Services[i].ID,\r\n groupName: obj.Services[i].GroupName,\r\n serviceTypeDescription: obj.Services[i].ServiceTypeDescription,\r\n cost: obj.Services[i].Cost,\r\n hours: obj.Services[i].Hours,\r\n additionalInformation: obj.Services[i].AdditionalInformation,\r\n isFitting: obj.Services[i].IsFitting,\r\n radius: obj.Services[i].Radius,\r\n selected: false\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.groupNames.length > 0)\r\n this.groups = this.groupNames.filter(item => this.groups.includes(item));\r\n\r\n this.loading = false;\r\n });\r\n\r\n }\r\n\r\n updateService(amount, serviceID, bikeID, name, selected) {\r\n if (selected.checked) {\r\n this.booking.total += amount;\r\n }\r\n else {\r\n this.booking.total -= amount;\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n selectService(amount, serviceID, bikeID, name, selected) {\r\n var s = this.booking.bikes.find(x => x.ID === bikeID).services.services.find(y => y.ID === serviceID).selected;\r\n this.booking.bikes.find(x => x.ID === bikeID).services.services.find(y => y.ID === serviceID).selected = !s;\r\n if (!s) {\r\n this.booking.total += amount;\r\n }\r\n else {\r\n this.booking.total -= amount;\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n setSameService(bikeID, event) {\r\n if (event.checked) {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n this.booking.bikes[i].services.services[a].selected = this.booking.bikes[0].services.services.find(x => x.ID == this.booking.bikes[i].services.services[a].ID).selected;\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total += this.booking.bikes[i].services.services[a].cost;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total -= this.booking.bikes[i].services.services[a].cost;\r\n this.booking.bikes[i].services.services[a].selected = false;\r\n }\r\n }\r\n }\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n}\r\n\r\n","
\r\n

{{ 'label.which-fittings-to-book' | translate }}

\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n

No services available

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
1}\" class=\"p-col-12 p-md-12 p-lg-6 p-xl-6\" *ngFor=\"let bike of booking.bikes, , let i = index\">\r\n \r\n \r\n \r\n\r\n \r\n\r\n
= 1\">\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{selected.serviceTypeDescription}}
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{group}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
    \r\n\r\n\r\n\r\n\r\n
  • \r\n \r\n
    \r\n

    {{service.serviceTypeDescription}}

    \r\n {{booking.shop.currencySymbol}} {{service.cost}}
    \r\n \r\n

    \r\n
    \r\n
    \r\n \r\n
  • \r\n\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { Bookings, Bike, Service } from '../../classes/bookings';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\nimport { ServiceService } from './../../services/service.service';\r\nimport { PartnerService } from './../../services/partner.service';\r\n\r\n@Component({\r\n selector: 'app-select-services',\r\n templateUrl: './select-services.component.html',\r\n styleUrls: ['./select-services.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SelectServicesComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n public services: any[] = [];\r\n public selectedServices: any[] = [];\r\n public groups: any[] = [];\r\n public loading: boolean = false;\r\n public maxCollectionDeliveryFee: string;\r\n public minCollectionDeliveryFee: string;\r\n\r\n public showOnlyAvailable = true;\r\n public groupNames = [];\r\n public disabledFeatures = [];\r\n\r\n public hidePrices = false;\r\n\r\n franchise: string = null \r\n skippedServicesStep: boolean = false;\r\n\r\n constructor(\r\n private serviceService: ServiceService,\r\n private gtmService: GoogleTagManagerService,\r\n private partnerService: PartnerService\r\n ) { }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n\r\n this.groupNames = JSON.parse(localStorage.getItem(\"serviceGroups\"));\r\n if (this.groupNames.length > 0)\r\n this.showOnlyAvailable = false;\r\n\r\n this.disabledFeatures = JSON.parse(localStorage.getItem(\"disabledFeatures\"));\r\n if (this.disabledFeatures == null)\r\n this.disabledFeatures = [];\r\n\r\n this.hidePrices = !this.booking.shop.ShowPrices;\r\n\r\n if (this.disabledFeatures.indexOf('prices') > -1)\r\n this.hidePrices = true;\r\n\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'page_view_bike_select_services', 'bike_select_services');\r\n\r\n this.booking.shop.collections = false;\r\n this.booking.total = 0;\r\n if (this.booking.pickup && this.booking.pickup.pickup) {\r\n this.booking.total = + this.booking.pickup.cost;\r\n }\r\n if (this.booking.dropoff && this.booking.dropoff.dropoff) {\r\n this.booking.total = + this.booking.dropoff.cost;\r\n }\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total += this.booking.bikes[i].services.services[a].cost;\r\n }\r\n }\r\n\r\n this.loading = true;\r\n this.serviceService.getServiceTypesByPartnerID(this.booking.shop.partnerID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n console.log(obj);\r\n for (var i = 0; i < obj.Services.length; i++) {\r\n\r\n if (this.groups.indexOf(obj.Services[i].GroupName) < 0) {\r\n this.groups.push(obj.Services[i].GroupName);\r\n }\r\n\r\n if (this.booking.bikes.length == 0) {\r\n this.booking.bikes.push(\r\n {\r\n colour: \"\",\r\n ID: -1000,\r\n manufacturer: \"\",\r\n model: \"\",\r\n refno: \"\",\r\n selected: false,\r\n serialNo: \"\",\r\n typeID: \"\",\r\n services: new Service()\r\n }\r\n )\r\n }\r\n\r\n for (var x = 0; x < this.booking.bikes.length; x++) {\r\n if (this.booking.bikes[x].services.services.findIndex(a => a.ID == obj.Services[i].ID) < 0) {\r\n this.booking.bikes[x].services.bikeID = this.booking.bikes[x].ID;\r\n if (obj.Services[i].Show === true || (this.showOnlyAvailable ? obj.Services[i].Show === true : obj.Services[i].Show == false) || (this.booking.services.length > 0 ? (this.showOnlyAvailable ? obj.Services[i].Show === false : obj.Services[i].Show == true) : false)) {\r\n this.booking.bikes[x].services.services.push({\r\n ID: obj.Services[i].ID,\r\n groupName: obj.Services[i].GroupName,\r\n serviceTypeDescription: obj.Services[i].ServiceTypeDescription,\r\n cost: parseFloat(obj.Services[i].Cost.toFixed(2)),\r\n hours: parseFloat(obj.Services[i].Hours.toFixed(2)),\r\n additionalInformation: obj.Services[i].AdditionalInformation,\r\n isFitting: obj.Services[i].IsFitting,\r\n radius: obj.Services[i].Radius,\r\n selected: this.booking.services.findIndex(x => x == obj.Services[i].ID) > -1 ? true : false,\r\n notes: \"\"\r\n });\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n\r\n if (this.groupNames.length > 0)\r\n this.groups = this.groupNames.filter(item => this.groups.includes(item));\r\n\r\n console.log(this.groups, obj.Services);\r\n\r\n for (var i = 0; i < this.groups.length; i++) {\r\n var found = false;\r\n for (var x = 0; x < obj.Services.length; x++) {\r\n\r\n if (obj.Services[x].GroupName == this.groups[i] && !obj.Services[x].IsPickUp && !obj.Services[x].IsDropOff && obj.Services[x].Show) {\r\n found = true;\r\n x = obj.Services.length;\r\n }\r\n\r\n //if (obj.Services[x])\r\n // console.log(obj.Services[x].GroupName, this.groups[i], !obj.Services[x].IsPickUp, !obj.Services[x].IsDropOff);\r\n\r\n if (obj.Services[x])\r\n if (this.groupNames.length > 0)\r\n if (obj.Services[x].GroupName == this.groups[i] && !obj.Services[x].IsPickUp && !obj.Services[x].IsDropOff)\r\n found = true;\r\n\r\n }\r\n if (!found) {\r\n this.groups.splice(i, 1);\r\n i = -1;\r\n }\r\n }\r\n\r\n\r\n if (this.booking.services.length > 0 && !this.skippedServicesStep && this.franchise == null)\r\n if (this.booking.bikes.length > 0)\r\n if (this.booking.bikes[0].ID == -1000)\r\n if (this.booking.services.length >= 1)\r\n if (this.booking.bikes[0].services.services.findIndex(x => x.selected == true) > -1) {\r\n this.skippedServicesStep = true\r\n }\r\n\r\n if (this.booking.services.length > 0 && !this.skippedServicesStep && this.franchise !== null)\r\n if (this.booking.bikes.length > 0)\r\n if (this.booking.bikes[0].ID == -1000)\r\n if (this.booking.services.length >= 1)\r\n if (this.booking.bikes[0].services.services.findIndex(x => x.selected == true) > -1) {\r\n this.skippedServicesStep = true\r\n }\r\n\r\n console.log(\"testing\", this.skippedServicesStep);\r\n\r\n\r\n //Clean up bike place holder\r\n if (this.booking.bikes.findIndex(x => x.ID == -1000) > -1) {\r\n for (var x = 0; x < this.booking.bikes.length; x++) {\r\n if (this.booking.bikes[x].ID !== -1000) {\r\n this.setSameService(this.booking.bikes[x].ID, { checked: true });\r\n }\r\n }\r\n if (this.booking.bikes.findIndex(x => x.ID == -1000) > -1 && this.booking.bikes.length > 1) {\r\n this.deleteBike(-1000);\r\n }\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n this.loading = false;\r\n\r\n\r\n });\r\n\r\n if (this.booking.shop.doesCollections == true && this.booking.bikes.length <= 1 && this.booking.type === 'service') {\r\n this.getCollectionFeeRange();\r\n }\r\n\r\n\r\n console.log('qweqwe');\r\n }\r\n\r\n getCollectionFeeRange() {\r\n this.maxCollectionDeliveryFee = \"\";\r\n this.minCollectionDeliveryFee = \"\";\r\n this.partnerService.getCollectionFeeRangeByPartner(this.booking.shop.partnerID).subscribe((result: any) => {\r\n if (result && (result.maxCollectionDeliveryFee || result.minCollectionDeliveryFee)) {\r\n this.maxCollectionDeliveryFee = parseFloat(result.maxCollectionDeliveryFee).toFixed(2);\r\n this.minCollectionDeliveryFee = parseFloat(result.minCollectionDeliveryFee).toFixed(2);\r\n }\r\n });\r\n }\r\n\r\n updateCollectionFlag() {\r\n this.booking.shop.collections = this.booking.shop.collections;\r\n }\r\n\r\n updateService(amount, serviceID, bikeID, name, selected) {\r\n if (selected.checked) {\r\n this.booking.total += amount;\r\n }\r\n else {\r\n this.booking.total -= amount;\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n selectService(amount, serviceID, bikeID, name, selected) {\r\n var s = this.booking.bikes.find(x => x.ID === bikeID).services.services.find(y => y.ID === serviceID).selected;\r\n this.booking.bikes.find(x => x.ID === bikeID).services.services.find(y => y.ID === serviceID).selected = !s;\r\n if (!s) {\r\n this.booking.total += amount;\r\n }\r\n else {\r\n this.booking.total -= amount;\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n setSameService(bikeID, event) {\r\n if (event.checked) {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n this.booking.bikes[i].services.services[a].selected = this.booking.bikes[0].services.services.find(x => x.ID == this.booking.bikes[i].services.services[a].ID).selected;\r\n this.booking.bikes[i].services.notes = this.booking.bikes[0].services.notes;\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total += this.booking.bikes[i].services.services[a].cost;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total -= this.booking.bikes[i].services.services[a].cost;\r\n this.booking.bikes[i].services.services[a].selected = false;\r\n }\r\n }\r\n }\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n deleteBike(bikeID) {\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total -= this.booking.bikes[i].services.services[a].cost;\r\n this.booking.bikes[i].services.services[a].selected = false;\r\n }\r\n }\r\n }\r\n this.booking.bikes.splice(this.booking.bikes.findIndex(x => x.ID == bikeID), 1);\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n}\r\n","
\r\n

{{ 'label.which-services-to-book' | translate }}

\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n

No services available

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
1}\" class=\"p-col-12 p-md-12 p-lg-6 p-xl-6\" *ngFor=\"let bike of booking.bikes, , let i = index\" style=\"width: 100%; padding: 0px;\">\r\n\r\n \r\n \r\n\r\n \r\n\r\n 1\">\r\n
\r\n
\r\n
\r\n \r\n
1\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
= 1\">\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{selected.serviceTypeDescription}} \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{group}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
    \r\n\r\n\r\n\r\n\r\n
  • \r\n \r\n
    \r\n

    {{service.serviceTypeDescription}}

    \r\n {{booking.shop.currencySymbol}} {{service.cost}}
    \r\n \r\n
    \r\n \r\n
  • \r\n\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n {{ 'label.any-additional-comments' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n

{{ 'label.yes-schedule-below' | translate }} 0 && minCollectionDeliveryFee > 0 && maxCollectionDeliveryFee != minCollectionDeliveryFee\">{{'label.collection_price_range' | translate : {minCost: booking.shop.currencySymbol+minCollectionDeliveryFee, maxCost: booking.shop.currencySymbol+maxCollectionDeliveryFee} }} 0 && maxCollectionDeliveryFee === minCollectionDeliveryFee\">{{'label.collection_fixed_price_range' | translate : {maxCost: booking.shop.currencySymbol+maxCollectionDeliveryFee} }}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Variables } from '../../shared/variables';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\n\r\n@Component({\r\n selector: 'app-service-confirmation',\r\n templateUrl: './service-confirmation.component.html',\r\n styleUrls: ['./service-confirmation.component.scss']\r\n})\r\nexport class ServiceConfirmationComponent implements OnInit {\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private serviceService: ServiceService,\r\n private gtmService: GoogleTagManagerService,\r\n private variables: Variables\r\n ) { }\r\n\r\n public bikeshop = \"\";\r\n public loading: boolean = true;\r\n public serviceList: any[] = [];\r\n\r\n ngOnInit(): void {\r\n\r\n \r\n\r\n this.loading = true;\r\n\r\n var partner = this.route.snapshot.queryParamMap.get(\"shop\");\r\n var services = this.route.snapshot.queryParamMap.get(\"services\");\r\n this.bikeshop = this.route.snapshot.queryParamMap.get(\"shop\");\r\n\r\n if (this.bikeshop !== null) {\r\n //this.customCSSUrl = this.transform(this.bikeshop);\r\n this.monitor(this.bikeshop);\r\n }\r\n\r\n sendToGTM(this.gtmService, this.bikeshop, 'GTM-NBCS83S', 'page_view_bike_confirmation', 'bike_confirmation');\r\n\r\n var lst = services.split(\",\");\r\n var chk = lst.length;\r\n for (var i = 0; i < lst.length; i++) {\r\n this.serviceService.getServiceByPartnerIDAndServiceID(partner, lst[i]).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n for (var i = 0; i < obj.Services.length; i++) {\r\n obj.Services[i].CollectionDate = new Date(obj.Services[i].CollectionDate + \"T00:00:00\"); //We need the T00:00:00 to avoid the date adjusting to the local PC's timezone\r\n this.serviceList.push(obj.Services[i]);\r\n }\r\n \r\n chk -= 1;\r\n if (chk == 0) {\r\n this.loading = false;\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n\r\n monitor(shop) {\r\n let node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/tracking/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/body/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('body')[0].appendChild(node);\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \"Short\r\n
\r\n
\r\n\r\n
\r\n

{{ 'label.booking-confirmed' | translate }}

\r\n
\r\n\r\n
\r\n

\r\n {{ 'label.booking-confirmed-description' | translate }}\r\n

\r\n
\r\n
\r\n \r\n

{{ 'label.service-reference-number-header' | translate }}

\r\n\r\n \r\n

\r\n {{ 'label.for-your' | translate }} {{s.BikeName}} - HT:{{s.JobCardID}}\r\n

\r\n
\r\n\r\n \r\n

{{ 'label.bike-pick-up-header' | translate }}

\r\n

\r\n {{serviceList[0].CollectionDate.getDate()}} {{serviceList[0].CollectionDate.toLocaleString('default', { month: 'long' })}} {{serviceList[0].CollectionDate.getFullYear()}} {{serviceList[0].CollectionTime}}\r\n

\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n

\r\n Powered by:\r\n \"Short\r\n

\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { Bookings, Service } from '../../classes/bookings';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { invalid } from '@angular/compiler/src/render3/view/util';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { PrimeNGConfig } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-service-dates',\r\n templateUrl: './service-dates.component.html',\r\n styleUrls: ['./service-dates.component.scss']\r\n})\r\nexport class ServiceDatesComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n constructor(private serviceService: ServiceService,\r\n private translate: TranslateService,\r\n private gtmService: GoogleTagManagerService,\r\n private primeConfig: PrimeNGConfig,\r\n ) { }\r\n minDate: Date = new Date();\r\n startDate = new Date();\r\n endDate = new Date();\r\n invalidDates: Date[] = [];\r\n validOnes: Date[] = [];\r\n loading: boolean = true;\r\n loadingOtherStores: boolean = true;\r\n availability: any[] = [];\r\n\r\n collections: any[] = [];\r\n noSpace: boolean = false;\r\n collectionTimes: any[];\r\n times: any[] = [];\r\n\r\n calendarLanguage: any;\r\n lang: any;\r\n\r\n OtherStoresAvalilability: any = [];\r\n showOtherStores: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.lang = localStorage.getItem(\"CalLocale\");//this.translate.defaultLang;\r\n console.log(this.lang, this.translate);\r\n this.setCalendarLanguage();\r\n\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'page_view_bike_service_dates', 'bike_service_dates');\r\n\r\n if (this.booking.type == \"collection\") {\r\n //Get the pick up times\r\n this.serviceService.getPickUpTimesByPartnerID(this.booking.shop.partnerID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.collectionTimes = [];\r\n this.collectionTimes = obj.PickupTimes;\r\n this.booking.pickup.date = new Date();\r\n //this.setBookingDate();\r\n\r\n //setting invalid days where no pickups are available\r\n //for (var i = 0; i < 7; i++) {\r\n // if (this.collectionTimes.findIndex(x => x.Day == i) == -1)\r\n // this.invalidDates.push(i);\r\n //}\r\n\r\n\r\n this.serviceService.getPickUpAvailabilityByPartnerID(this.booking.shop.partnerID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.collections = obj.Availability;\r\n if (this.collections.length > 0)\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + obj.Availability[0].CollectionsDayBuffer));\r\n\r\n this.loading = false;\r\n\r\n\r\n this.booking.dateSelected = false;\r\n this.minDate = new Date();\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 1, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.startDate = new Date();\r\n this.setDates();\r\n console.log(this.booking.date);\r\n\r\n });\r\n\r\n });\r\n }\r\n else {\r\n this.booking.dateSelected = false;\r\n this.minDate = new Date();\r\n if (\r\n this.booking.shop.partnerID === \"HUB.C5A92434D1184D8BA54A54BD1546F11655C5906652D2411BB4AD62682636596D.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.6942ED776E304E40B0783953FEA7039FE467276E29C94879A9AE86A1421774C4.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.8D71E79B31DD468D9AD67047B41921C398BFF86822E9441DB29AA224FE14CEF9.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.EA502B8875174F6F80FF8F03195998D941DE4C97699A491FA802603EFFC5196C.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.3A9C0A5218E244549AEDD3B401E7B575C1254CA08E6C4330AB74D065A6B11DFA.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.8CC16C3E96954A339B8B2D3F07C23D6599C669757CDF4D85BAA5FD667058EE36.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.270B326A5AB94EDEB76A3995CD27C18CED94E39A941A40198E7D6F1ADD9CFE49.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.F7D3E77EE35541BCAE40DE004069E957A97B650C4A9447C397EACDB7236B1F1B.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.AEA6CCA37AEB4F8A8345B4FB91CB730B6D42568B931C4C56B5B9B57CC45063D1.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.ADCF0665B8EB429DAA575D453D447C0BD2BDE97F90454EF7803B5AD16306A685.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.40B77279AE32469FBCE3AD012768F86A33EBF82E5DD345D1AE9D94171D8C8C9E.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.EB4021B533DD413A9AA46136AC371F9DAD15AECECC2342B2A2CE4FCDB0E905EF.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.DA2031B8E71C4B398DBD69CB9AC4C7D3D64CF00974574B7BBBEC8FCD79881A65.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.72389980F50C478BA3975A36ABDD34E9F8ED175A1590424CB6DB9653EF5C401A.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.FDE1DCB5A1AA4B2598EC94BF414755D53F74CC0C7CA244BEBFCF1D8843A40E38.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.CA603736C45C4F5EBAE5CEE8C8EAEC0C4067C603EA2C453399F0CC7D5D37C2AA.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.D6C7E88E6B69406DB3D9DBE1838769A97B137367BCB54E0CAF540BC400DA8CDE.TIGER\" ||\r\n this.booking.shop.partnerID === \"HUB.54C7A80B1BDA4B9F8D747B45BCEC1AFE4E713CE857F040F7A68E8F7ABF1A6FA4.TIGER\"\r\n ) {\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate()));\r\n }\r\n else {\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + 1));\r\n }\r\n\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.startDate = new Date();\r\n this.setDates();\r\n console.log(this.booking.date);\r\n }\r\n }\r\n\r\n setDates(date = new Date(), buildCalendar = true) {\r\n\r\n this.startDate = new Date(date);\r\n if (buildCalendar) {\r\n this.loading = true;\r\n this.invalidDates = [];\r\n this.validOnes = [];\r\n }\r\n var serviceCount = 0;\r\n var time = this.endDate.getTime() - this.startDate.getTime();\r\n var dayCount = time / (1000 * 3600 * 24);\r\n dayCount = parseInt(dayCount.toFixed(0));\r\n dayCount = dayCount * this.booking.bikes.length;\r\n\r\n var services = \"\";\r\n\r\n //Set all dates as invalid\r\n if (buildCalendar) {\r\n while (this.startDate <= this.endDate) {\r\n var d = new Date(this.startDate);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d);\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n }\r\n }\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n this.booking.bikes[i].services.technicianID = 0;\r\n this.booking.bikes[i].services.date = null;\r\n }\r\n\r\n this.startDate = new Date(date);\r\n //while (this.startDate <= this.endDate)\r\n {\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].services.technicianID == 0) {\r\n services = \"\";\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n services += \",\" + this.booking.bikes[i].services.services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n\r\n this.serviceService.getAvailabilityByPartnerIDAndServiceID(this.booking.shop.partnerID, this.startDate.toISOString().substring(0, 10), services, this.booking.bikes[i].ID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n //console.log(obj.Availability);\r\n this.availability = obj.Availability;\r\n for (var b = 0; b < obj.Availability.length; b++) {\r\n if (obj.Availability[b].CanDoWork && buildCalendar) {\r\n //var d = new Date(obj.Availability[b].Date);\r\n\r\n //if (d.getTimezoneOffset() <= 0)\r\n // d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n //else\r\n // d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n\r\n //d.setHours(0);\r\n //d.setMinutes(0);\r\n //d.setSeconds(0);\r\n //d.setMilliseconds(0);\r\n\r\n var d = new Date();\r\n //d.setFullYear(obj.Availability[b].Date.substring(0, 4));\r\n //d.setMonth(obj.Availability[b].Date.substring(5, 7) - 1);\r\n //d.setDate(obj.Availability[b].Date.substring(8, 10));\r\n d.setFullYear(obj.Availability[b].Date.substring(0, 4), (obj.Availability[b].Date.substring(5, 7) - 1), obj.Availability[b].Date.substring(8, 10));\r\n d.setHours(0, 0, 0, 0);\r\n\r\n this.validOnes.push(d);\r\n }\r\n if (obj.Availability[b].CanDoWork) {\r\n var d = new Date(obj.Availability[b].Date);\r\n\r\n\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n try {\r\n if (buildCalendar) {\r\n if (this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date == null ||\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date.getTime() > d.getTime()) {\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.technicianID = obj.Availability[b].ID;\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date = d;\r\n }\r\n }\r\n else {\r\n if (this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date == null ||\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date.getTime() > d.getTime()) {\r\n if (d.getTime() <= date.getTime()) {\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.technicianID = obj.Availability[b].ID;\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date = d;\r\n }\r\n }\r\n }\r\n } catch (exception) { }\r\n }\r\n }\r\n\r\n //dayCount -= 1;\r\n\r\n\r\n //if (dayCount == 0 && buildCalendar)\r\n {\r\n var newInvalids = [];\r\n //this.invalidDates.push(new Date(2000, 0, 0))\r\n //console.log(this.validOnes);\r\n\r\n if (this.booking.type == \"collection\") {\r\n\r\n for (var i = 0; i < this.validOnes.length; i++) {\r\n if (this.collectionTimes.findIndex(x => x.Day == this.validOnes[i].getDay()) == -1) {\r\n this.validOnes.splice(this.validOnes.findIndex(x => x == this.validOnes[i]), 1);\r\n i = 0;\r\n }\r\n }\r\n\r\n //console.log(this.validOnes);\r\n //console.log(this.collectionTimes);\r\n\r\n }\r\n\r\n var values = this.validOnes.map(function (date) { return date.getTime(); });\r\n var unique = this.invalidDates.filter(function (date) { return values.indexOf(date.getTime()) == -1 });\r\n this.invalidDates = unique;\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].services.date == null)\r\n this.booking.bikes[i].services.date = date;\r\n if (this.booking.bikes[i].services.date.getTime() <= date.getTime())\r\n this.booking.date = date;\r\n }\r\n this.booking.date = date;\r\n this.loading = false;\r\n }\r\n });\r\n\r\n this.showOtherStores = false;\r\n if (this.booking.shop.parentID)\r\n if (this.booking.shop.parentID.toUpperCase() == \"3AF5A857-F83C-4BA1-93F8-275F6F92D7BB\")\r\n this.showOtherStores = true;\r\n\r\n\r\n if (this.showOtherStores) {\r\n this.serviceService.getAvailabilityByPartnerIDAndServiceIDMultistore(this.booking.shop.partnerID, this.startDate.toISOString().substring(0, 10), services, this.booking.bikes[i].ID)\r\n .subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.OtherStoresAvalilability = obj;\r\n console.log(obj);\r\n for (var i = 0; i < this.OtherStoresAvalilability.Availability.length; i++) {\r\n this.OtherStoresAvalilability.Availability[i].Days = [];\r\n for (var x = 0; x < this.OtherStoresAvalilability.Availability.length; x++) {\r\n if (this.OtherStoresAvalilability.Availability[i].PartnerID == this.OtherStoresAvalilability.Availability[x].PartnerID) {\r\n if (this.OtherStoresAvalilability.Availability[i].Days.indexOf(this.OtherStoresAvalilability.Availability[x].Date) == -1)\r\n if (new Date(this.OtherStoresAvalilability.Availability[x].Date) > new Date())\r\n this.OtherStoresAvalilability.Availability[i].Days.push(this.OtherStoresAvalilability.Availability[x].Date)\r\n }\r\n }\r\n }\r\n\r\n var key = 'PartnerID';\r\n var arrayUniqueByKey = [...new Map(this.OtherStoresAvalilability.Availability.map(item =>\r\n [item[key], item])).values()];\r\n this.OtherStoresAvalilability.Availability = arrayUniqueByKey;\r\n\r\n this.OtherStoresAvalilability.Availability = (this.OtherStoresAvalilability.Availability.filter(function (el) { return el.Days.length != 0; }));\r\n this.loadingOtherStores = false;\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n\r\n }\r\n\r\n }\r\n\r\n monthChanged(event) {\r\n //console.log(event, this.startDate, this.endDate);\r\n this.startDate.setFullYear(event.year, event.month - 1, 0);\r\n this.endDate.setFullYear(event.year, event.month, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.minDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n if (this.minDate < new Date()) {\r\n this.minDate = new Date(new Date().setDate(new Date().getDate() + 1));\r\n }\r\n this.setDates(this.minDate);\r\n this.booking.dateSelected = false;\r\n //console.log(event, this.startDate, this.endDate);\r\n\r\n }\r\n\r\n dateSelected(event) {\r\n console.log(event);\r\n //console.log(this.availability);\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n var services = \"\";\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n services += \",\" + this.booking.bikes[i].services.services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n\r\n var avail = this.availability.find(x => x.Date == (event.getFullYear() + \"-\" + (\"0\" + (event.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + event.getDate()).slice(-2)));\r\n\r\n var d = new Date(avail.Date);\r\n\r\n var offset = 0;\r\n if (d.getTimezoneOffset() > 0)\r\n offset = d.getTimezoneOffset() * -1;\r\n d.setTime(d.getTime() - (offset * 60000));\r\n\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n\r\n this.booking.date = d;\r\n this.booking.bikes.find(x => x.ID == avail.BikeID).services.technicianID = avail.ID;\r\n this.booking.bikes.find(x => x.ID == avail.BikeID).services.date = d;\r\n this.booking.dateSelected = true;\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n setCollectionTime(event) {\r\n //check if there are spaces available\r\n //this.serviceService.getPickUpTimesByPartnerID().subscribe(response => {\r\n // var obj = JSON.parse(JSON.stringify(response));\r\n //})\r\n this.noSpace = false;\r\n\r\n if (this.collections.findIndex(x => new Date(x.CollectionDate).toDateString() == this.booking.pickup.date.toDateString() && x.TimeSlot == event.value.name) > -1)\r\n if (this.collections.find(x => new Date(x.CollectionDate).toDateString() == this.booking.pickup.date.toDateString() && x.TimeSlot == event.value.name).AvailableSlots >= this.booking.bikes.length) {\r\n this.booking.pickup.time = event.value.name;\r\n this.booking.pickup.timeID = event.value.code;\r\n //this.booking.dateSelected = true;\r\n }\r\n else {\r\n this.noSpace = true;\r\n }\r\n else {\r\n if (this.collections.findIndex(x => new Date(x.CollectionDate).toDateString() == this.booking.pickup.date.toDateString() && x.TimeSlot == event.value.name) == -1) {\r\n this.booking.pickup.time = event.value.name;\r\n this.booking.pickup.timeID = event.value.code;\r\n }\r\n else {\r\n if (this.collections.length == 0) {\r\n this.booking.pickup.time = event.value.name;\r\n this.booking.pickup.timeID = event.value.code;\r\n }\r\n }\r\n }\r\n console.log(this.collections);\r\n\r\n\r\n }\r\n\r\n setCalendarLanguage() {\r\n this.translate.get('calendar.today').subscribe(today => {\r\n this.translate.get('calendar.sunday').subscribe(sunday => {\r\n this.translate.get('calendar.monday').subscribe(monday => {\r\n this.translate.get('calendar.tuesday').subscribe(tuesday => {\r\n this.translate.get('calendar.wednesday').subscribe(wednesday => {\r\n this.translate.get('calendar.thursday').subscribe(thursday => {\r\n this.translate.get('calendar.friday').subscribe(friday => {\r\n this.translate.get('calendar.saturday').subscribe(saturday => {\r\n this.translate.get('calendar.sun').subscribe(sun => {\r\n this.translate.get('calendar.mon').subscribe(mon => {\r\n this.translate.get('calendar.tue').subscribe(tue => {\r\n this.translate.get('calendar.wed').subscribe(wed => {\r\n this.translate.get('calendar.thu').subscribe(thu => {\r\n this.translate.get('calendar.fri').subscribe(fri => {\r\n this.translate.get('calendar.sat').subscribe(sat => {\r\n this.translate.get('calendar.su').subscribe(su => {\r\n this.translate.get('calendar.mo').subscribe(mo => {\r\n this.translate.get('calendar.tu').subscribe(tu => {\r\n this.translate.get('calendar.we').subscribe(we => {\r\n this.translate.get('calendar.th').subscribe(th => {\r\n this.translate.get('calendar.fr').subscribe(fr => {\r\n this.translate.get('calendar.sa').subscribe(sa => {\r\n this.translate.get('calendar.january').subscribe(january => {\r\n this.translate.get('calendar.february').subscribe(february => {\r\n this.translate.get('calendar.march').subscribe(march => {\r\n this.translate.get('calendar.april').subscribe(april => {\r\n this.translate.get('calendar.may').subscribe(may => {\r\n this.translate.get('calendar.june').subscribe(june => {\r\n this.translate.get('calendar.july').subscribe(july => {\r\n this.translate.get('calendar.august').subscribe(august => {\r\n this.translate.get('calendar.september').subscribe(september => {\r\n this.translate.get('calendar.october').subscribe(october => {\r\n this.translate.get('calendar.november').subscribe(november => {\r\n this.translate.get('calendar.december').subscribe(december => {\r\n this.translate.get('calendar.jan').subscribe(jan => {\r\n this.translate.get('calendar.feb').subscribe(feb => {\r\n this.translate.get('calendar.mar').subscribe(mar => {\r\n this.translate.get('calendar.apr').subscribe(apr => {\r\n this.translate.get('calendar.may').subscribe(may => {\r\n this.translate.get('calendar.jun').subscribe(jun => {\r\n this.translate.get('calendar.jul').subscribe(jul => {\r\n this.translate.get('calendar.aug').subscribe(aug => {\r\n this.translate.get('calendar.sep').subscribe(sep => {\r\n this.translate.get('calendar.oct').subscribe(oct => {\r\n this.translate.get('calendar.nov').subscribe(nov => {\r\n this.translate.get('calendar.dec').subscribe(dec => {\r\n this.calendarLanguage = {\r\n firstDayOfWeek: 0,\r\n dayNames: [sunday, monday, tuesday, wednesday, thursday, friday, saturday],\r\n dayNamesShort: [sun, mon, tue, wed, thu, fri, sat],\r\n dayNamesMin: [su, mo, tu, we, th, fr, sa],\r\n monthNames: [january, february, march, april, may, june, july, august, september, october, november, december],\r\n monthNamesShort: [jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec],\r\n today: today,\r\n weekHeader: 'Wk'\r\n };\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n this.primeConfig.setTranslation(this.calendarLanguage);\r\n }\r\n\r\n\r\n changeStore(store) {\r\n console.log(store);\r\n var serviceIDs = store.ServiceIDs;\r\n this.booking.shop.address = store.PartnerAddress;\r\n this.booking.shop.partnerID = store.PartnerID;\r\n this.booking.shop.name = store.Partner;\r\n this.booking.bikes[0].services.services.forEach(x => {\r\n if (x.selected == true) {\r\n x.ID = parseInt(serviceIDs[0]);\r\n serviceIDs.pop()\r\n }\r\n });\r\n this.booking.bikes[0].services.technicianID = 0;\r\n this.booking.dateSelected = true;\r\n this.booking.date = new Date(store.Date);\r\n this.booking.otherStoreSelected = true;\r\n }\r\n}\r\n\r\n","\r\n
\r\n

{{ 'label.select-service-date' | translate }}

\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n

{{booking.date.getFullYear()}}

\r\n

{{booking.date.toLocaleString(lang, { weekday: 'short' })}}, {{booking.date.toLocaleString(lang, { month: 'short' })}} {{booking.date.getDate()}}

\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
{{ 'label.pick-up-time' | translate }}*
\r\n \r\n\r\n

{{ 'error.no-more-collection-spaces' | translate }}

\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \"Image\"\r\n
\r\n

\r\n {{store.Partner}}\r\n

\r\n

{{store.PartnerAddress}}

\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{dates | date: 'dd LLL'}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n
\r\n
\r\n \"Image\"\r\n
\r\n
\r\n

{{store.Partner}}

\r\n

{{store.PartnerAddress}}

\r\n
\r\n \r\n \r\n

{{dates | date: 'dd LLL'}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Bookings } from '../../classes/bookings';\r\n\r\n@Component({\r\n selector: 'app-service-notes',\r\n templateUrl: './service-notes.component.html',\r\n styleUrls: ['./service-notes.component.scss']\r\n})\r\nexport class ServiceNotesComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n selectedNotes: string[] = [];\r\n noteOptions: any[];\r\n\r\n addNotes: boolean = true;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.noteOptions = [];\r\n }\r\n\r\n showNotes() {\r\n this.addNotes = !this.addNotes;\r\n if (this.addNotes == false)\r\n this.booking.notes = \"\";\r\n }\r\n}\r\n","\r\n
\r\n

{{ 'label.any-additional-notes' | translate }}

\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
0\">{{ 'label.choose-popular-requests' | translate }}
\r\n 0\">\r\n
0\">
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Input, Renderer2, Inject, Output, EventEmitter } from '@angular/core';\r\nimport { Bookings } from '../../classes/bookings';\r\nimport { UserService } from '../../services/user.service';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { CouponsService } from '../../services/coupons.service';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\ndeclare var Stripe: any;\r\n\r\n@Component({\r\n selector: 'app-service-summary',\r\n templateUrl: './service-summary.component.html',\r\n styleUrls: ['./service-summary.component.scss']\r\n})\r\nexport class ServiceSummaryComponent implements OnInit {\r\n @Input() booking: Bookings;\r\n @Output() book = new EventEmitter();\r\n\r\n public stripe: any;\r\n public card: any;\r\n public error: any = null;\r\n public busy: boolean = false;\r\n\r\n public services: any[] = [];\r\n public selectedServices: any[] = [];\r\n public groups: any[] = [];\r\n public loading: boolean = false;\r\n\r\n public couponCodeValid = false;\r\n public couponError = \"\";\r\n public couponResult : any;\r\n public editingCouponCode: boolean = false;\r\n\r\n public showBalance: boolean = false;\r\n private modelChanged: Subject = new Subject();\r\n private subscription: Subscription;\r\n debounceTime = 500;\r\n\r\n public disabledFeatures = [];\r\n public hidePrices = false;\r\n public hideCoupon = false;\r\n public hidePreApprovedAmount = false;\r\n\r\n constructor(\r\n private userService: UserService,\r\n private serviceService: ServiceService,\r\n private route: ActivatedRoute,\r\n private renderer2: Renderer2,\r\n private couponsService: CouponsService,\r\n private gtmService: GoogleTagManagerService,\r\n @Inject(DOCUMENT) private _document: Document\r\n ) { }\r\n\r\n inputChanged() {\r\n\r\n this.modelChanged.next();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.hidePrices = !this.booking.shop.ShowPrices;\r\n this.hideCoupon = !this.booking.shop.AllowCoupons;\r\n this.hidePreApprovedAmount = !this.booking.shop.ShowPreApprovedAmount;\r\n\r\n this.disabledFeatures = JSON.parse(localStorage.getItem(\"disabledFeatures\"));\r\n if (this.disabledFeatures.indexOf('prices') > -1)\r\n this.hidePrices = true;\r\n if (this.disabledFeatures.indexOf('coupons') > -1)\r\n this.hideCoupon = true;\r\n\r\n sendToGTM(this.gtmService, this.booking.shop.partnerID, 'GTM-NBCS83S', 'page_view_bike_service_summary', 'bike_service_summary');\r\n\r\n var services = this.route.snapshot.queryParamMap.get(\"services\");\r\n\r\n //const s = this.renderer2.createElement('script');\r\n //s.type = 'text/javascript';\r\n //s.src = 'https://js.stripe.com/v3/';\r\n //this.renderer2.appendChild(this._document.body, s);\r\n //const s1 = this.renderer2.createElement('script');\r\n //s1.type = 'text/javascript';\r\n //s1.text = \"var stripe=Stripe(\\\"pk_test_TYooMQauvdEDq54NiTphI7jx\\\"),elements=stripe.elements(),style={base:{color:\\\"#32325d\\\",fontFamily:'\\\"Helvetica Neue\\\", Helvetica, sans-serif',fontSmoothing:\\\"antialiased\\\",fontSize:\\\"16px\\\",\\\":: placeholder\\\":{color:\\\"#aab7c4\\\"}},invalid:{color:\\\"#fa755a\\\",iconColor:\\\"#fa755a\\\"}},card=elements.create(\\\"card\\\",{style:style});card.mount(\\\"#card - element\\\"),card.on(\\\"change\\\",function(e){var t=document.getElementById(\\\"card - errors\\\");e.error?t.textContent=e.error.message:t.textContent=\\\"\\\"});var form=document.getElementById(\\\"payment - form\\\");function stripeTokenHandler(e){var t=document.getElementById(\\\"payment - form\\\"),r=document.createElement(\\\"input\\\");r.setAttribute(\\\"type\\\",\\\"hidden\\\"),r.setAttribute(\\\"name\\\",\\\"stripeToken\\\"),r.setAttribute(\\\"value\\\",e.id),t.appendChild(r),t.submit()}form.addEventListener(\\\"submit\\\",function(e){e.preventDefault(),stripe.createToken(card).then(function(e){e.error?document.getElementById(\\\"card - errors\\\").textContent=e.error.message:stripeTokenHandler(e.token)})});\";\r\n //this.renderer2.appendChild(this._document.body, s1);\r\n\r\n this.getIP();\r\n\r\n if (this.booking.shop.country !== 'NZ') {\r\n this.booking.legal.termsconditions = true;\r\n this.booking.legal.termsconditionsdate = new Date();\r\n this.booking.legal.cookiesdate = new Date();\r\n this.booking.legal.marketingdate = new Date();\r\n }\r\n\r\n this.loading = true;\r\n this.serviceService.getServiceTypesByPartnerID(this.booking.shop.partnerID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n for (var i = 0; i < obj.Services.length; i++) {\r\n if (this.groups.indexOf(obj.Services[i].GroupName) < 0) {\r\n this.groups.push(obj.Services[i].GroupName);\r\n }\r\n this.services.push(\r\n {\r\n ID: obj.Services[i].ID,\r\n GroupName: obj.Services[i].GroupName,\r\n ServiceTypeDescription: obj.Services[i].ServiceTypeDescription,\r\n Cost: obj.Services[i].Cost,\r\n Hours: obj.Services[i].Hours,\r\n AdditionalInformation: obj.Services[i].AdditionalInformation,\r\n IsFitting: obj.Services[i].IsFitting,\r\n Radius: obj.Services[i].Radius,\r\n Selected: false,\r\n }\r\n );\r\n }\r\n this.loading = false;\r\n });\r\n\r\n\r\n if (this.booking.bikes.findIndex(x => x.ID == -1000) > -1) {\r\n for (var x = 0; x < this.booking.bikes.length; x++) {\r\n if (this.booking.bikes[x].ID !== -1000) {\r\n this.setSameService(this.booking.bikes[x].ID, { checked: true });\r\n }\r\n }\r\n if (this.booking.bikes.findIndex(x => x.ID == -1000) > -1 && this.booking.bikes.length > 1) {\r\n this.deleteBike(-1000);\r\n }\r\n }\r\n\r\n this.booking.total = 0;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n for (var x = 0; x < this.booking.bikes[i].services.services.length; x++) {\r\n if (this.booking.bikes[i].services.services[x].selected) {\r\n this.booking.total += this.booking.bikes[i].services.services[x].cost;\r\n }\r\n }\r\n }\r\n if (this.booking.pickup.pickup)\r\n this.booking.total += this.booking.pickup.cost * (this.booking.bikes.length);\r\n if (this.booking.dropoff.dropoff)\r\n this.booking.total += this.booking.dropoff.cost * (this.booking.bikes.length);\r\n\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n\r\n //console.log(this.booking);\r\n //this.stripe = Stripe('pk_test_TYooMQauvdEDq54NiTphI7jx');\r\n\r\n //var elements = this.stripe.elements();\r\n\r\n //this.card = elements.create('card', {\r\n // iconStyle: 'solid',\r\n // style: {\r\n // base: {\r\n // iconColor: '#181818',\r\n // color: '#181818',\r\n // fontWeight: 500,\r\n // fontFamily: 'Roboto, Open Sans, Segoe UI, sans-serif',\r\n // fontSize: '16px',\r\n // fontSmoothing: 'antialiased',\r\n\r\n // ':-webkit-autofill': {\r\n // color: '#181818'\r\n // },\r\n // '::placeholder': {\r\n // color: '#777'\r\n // }\r\n // },\r\n // invalid: {\r\n // iconColor: '#d90028',\r\n // color: '#181818'\r\n // }\r\n // }\r\n //});\r\n //this.card.mount('#card-input');\r\n this.subscription = this.modelChanged\r\n .pipe(\r\n debounceTime(this.debounceTime),\r\n )\r\n .subscribe(() => {\r\n this.checkCouponCode();\r\n });\r\n if(this.booking.discountCode && this.booking.discountCode.length > 0){\r\n this.checkCouponCode()\r\n }\r\n }\r\n\r\n submitPayment() {\r\n this.error = null;\r\n this.busy = true;\r\n this.stripe.createToken(this.card).then(tokenResult => {\r\n if (tokenResult.error) {\r\n this.error = tokenResult.error;\r\n this.busy = false;\r\n } else {\r\n //var paymentInfo = {\r\n // PartnerID: this.partner.ID,\r\n // PaymentProvider: 2, //Stripe\r\n // TypeID: this.bundle.typeID,\r\n // BundleID: this.bundle.id,\r\n // Reference: this.partner.Name,\r\n // Identifier: tokenResult.token.id + tokenResult.token.created\r\n //};\r\n //this.paymentService.initializeHubtigerPayment(paymentInfo).subscribe(success => {\r\n // var paymentData = {\r\n // PartnerID: this.partner.ID,\r\n // CardToken: tokenResult.token.id,\r\n // Identifier: tokenResult.token.id + tokenResult.token.created,\r\n // BundleID: this.bundle.id\r\n // }\r\n // this.paymentService.stripeBundlePaymentComplete(paymentData).subscribe(paymentResult => {\r\n // this.busy = false;\r\n // }, err => {\r\n // this.busy = false;\r\n // console.log(err);\r\n \r\n // });\r\n //});\r\n }\r\n });\r\n }\r\n\r\n\r\n getIP() {\r\n this.userService.getIPAddress().subscribe((res: any) => {\r\n this.booking.legal.ipaddress = res.ip;\r\n });\r\n }\r\n\r\n setTermsConditionsDate(event) {\r\n this.booking.legal.termsconditionsdate = new Date();\r\n }\r\n\r\n setMarketingDate(event) {\r\n this.booking.legal.marketingdate = new Date();\r\n }\r\n\r\n setCookiesDate(event) {\r\n\r\n console.log(this.booking);\r\n this.booking.legal.cookiesdate = new Date();\r\n }\r\n\r\n\r\n setSameService(bikeID, event) {\r\n if (event.checked) {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n if (this.booking.bikes[i].services.services.length == 0) {\r\n for (var x = 0; x < this.booking.bikes.length; x++) {\r\n if (this.booking.bikes[x].services.services.length > 0) {\r\n for (var ii = 0; ii < this.booking.bikes[x].services.services.length; ii++) {\r\n this.booking.bikes[i].services.services.push(this.booking.bikes[x].services.services[ii]);\r\n this.booking.bikes[i].services.technicianID = this.booking.bikes[x].services.technicianID;\r\n this.booking.bikes[i].services.notes = this.booking.bikes[x].services.notes;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n this.booking.bikes[i].services.services[a].selected = this.booking.bikes[0].services.services.find(x => x.ID == this.booking.bikes[i].services.services[a].ID).selected;\r\n this.booking.bikes[i].services.notes = this.booking.bikes[0].services.notes;\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total += this.booking.bikes[i].services.services[a].cost;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total -= this.booking.bikes[i].services.services[a].cost;\r\n this.booking.bikes[i].services.services[a].selected = false;\r\n }\r\n }\r\n }\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n console.log(this.booking);\r\n }\r\n\r\n deleteBike(bikeID) {\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total -= this.booking.bikes[i].services.services[a].cost;\r\n //this.booking.bikes[i].services.services[a].selected = false;\r\n }\r\n }\r\n }\r\n this.booking.bikes.splice(this.booking.bikes.findIndex(x => x.ID == bikeID), 1);\r\n console.log(this.booking);\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n checkCouponCode(){\r\n if (this.booking.discountCode && this.booking.discountCode.length > 0) {\r\n this.booking.bikes.forEach(bike=>{\r\n bike.services.externalVoucherCode = \"\";\r\n bike.services.couponCode = \"\";\r\n });\r\n\r\n this.couponError = null;\r\n this.couponResult = null;\r\n this.couponCodeValid = false;\r\n this.showBalance = false;\r\n var data = {\r\n Partner: this.booking.shop.partnerID,\r\n CouponCode: this.booking.discountCode,\r\n UserID: this.booking.client.ID,\r\n Bikes: this.booking.bikes.map(bike=>{return {ID: bike.ID, BikeName: bike.refno, SelectedServiceTypes: bike.services.services.filter(service=>{return service.selected === true}).map(service=>{return service.ID})}})\r\n };\r\n this.couponsService.validateCouponCode(data).subscribe((res) => { \r\n this.couponError = null;\r\n this.couponResult = res;\r\n this.couponCodeValid = true;\r\n if (this.couponResult.balance > 0) {\r\n this.showBalance = true;\r\n this.couponCodeValid = false;\r\n }\r\n this.booking.bikes.forEach(bike=>{\r\n if(this.couponResult.bikes.filter(validationBike=>{return validationBike.allowCoupon && validationBike.id === bike.ID}).length > 0){\r\n bike.services.couponCode = this.booking.discountCode;\r\n }\r\n });\r\n this.booking.couponFixedAmount = this.couponResult.fixedValue;\r\n this.booking.couponPercentAmount = this.couponResult.percentValue;\r\n this.booking.couponRestricted = this.couponResult.restricted; \r\n }, err => {\r\n if(err.status===404){ \r\n this.couponError = null;\r\n this.couponResult = null; \r\n this.couponCodeValid = false;\r\n this.booking.bikes.forEach(bike=>{\r\n bike.services.externalVoucherCode = this.booking.discountCode;\r\n });\r\n this.booking.couponFixedAmount = 0;\r\n this.booking.couponPercentAmount = 0;\r\n this.booking.couponRestricted = false;\r\n }else{ \r\n this.couponError = err.error.message;\r\n this.couponResult = null;\r\n this.couponCodeValid = false;\r\n this.booking.couponFixedAmount = 0;\r\n this.booking.couponPercentAmount = 0;\r\n this.booking.couponRestricted = false;\r\n } \r\n });\r\n }else{\r\n this.couponError = \"\";\r\n this.couponResult = null;\r\n this.couponCodeValid = false;\r\n this.booking.couponFixedAmount = 0;\r\n this.booking.couponPercentAmount = 0;\r\n this.booking.couponRestricted = false;\r\n }\r\n }\r\n\r\n bookNow() {\r\n this.book.emit();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n \r\n\r\n\r\n \r\n\r\n
{{ 'label.bike-service-details-header' | translate }}
\r\n
{{ 'label.bike-fitting-details-header' | translate }}
\r\n
\r\n
\r\n {{booking.date.getDate()}} {{booking.date.toLocaleString('default', { month: 'long' })}} {{booking.date.getFullYear()}}\r\n
\r\n
\r\n {{booking.date.toTimeString().substring(0,8)}}\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n {{booking.pickup.date.getDate()}} {{booking.pickup.date.toLocaleString('default', { month: 'long' })}} {{booking.pickup.date.getFullYear()}}, {{booking.pickup.time}}\r\n
\r\n \r\n \r\n \r\n
\r\n {{booking.pickup.flatno}}{{booking.pickup.address}}\r\n
\r\n \r\n 0\">\r\n
\r\n {{booking.pickup.instructions}}\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n

{{ 'error.outside-radius' | translate }}

\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{bike.refno}}
{{service.serviceTypeDescription}}{{booking.shop.currencySymbol}}{{service.cost.toFixed(2)}}
{{ 'label.collection-fee' | translate }}{{booking.shop.currencySymbol}}{{booking.pickup.cost.toFixed(2)}}
{{ 'label.dropoff-fee' | translate }}{{booking.shop.currencySymbol}}{{booking.dropoff.cost.toFixed(2)}}
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n

\r\n
\r\n
0\" class=\"p-grid\">\r\n
{{ 'label.discount' | translate }}
\r\n
{{booking.shop.currencySymbol}} {{booking.discount.toFixed(2)}}
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
{{ 'label.total' | translate }}
\r\n
{{booking.shop.currencySymbol}} {{(booking.total - booking.discount).toFixed(2)}}
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
Gift card balance {{booking.shop.currencySymbol}}{{couponResult.balance}} - to be applied at point of payment
\r\n
{{ (couponResult.couponValidAllBikes ? 'error.coupons.coupon_code_valid' : 'error.coupons.coupon_code_valid_conditions') | translate }}
\r\n
\r\n
    \r\n
  • \r\n {{bike.bikeName}}: {{ bike.message | translate }}\r\n
  • \r\n
\r\n
\r\n
{{ couponError | translate }}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n {{booking.shop.currencySymbol}}\r\n \r\n
\r\n\r\n
\r\n
{{ 'label.pre-approved-description' | translate }}
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n

{{ 'label.payment-details' | translate }}

\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{error.message}}\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n","import { Component, EventEmitter, Input, KeyValueChanges, KeyValueDiffer, KeyValueDiffers, OnInit, Output } from '@angular/core';\r\nimport { PaymentService } from '../../services/payment.service';\r\nimport { loadStripe } from '@stripe/stripe-js';\r\nimport { Variables } from '../../shared/variables';\r\n\r\n@Component({\r\n selector: 'app-stripe-payment',\r\n templateUrl: './stripe-payment.component.html',\r\n styleUrls: ['./stripe-payment.component.scss']\r\n})\r\nexport class StripePaymentComponent implements OnInit {\r\n\r\n @Input() booking;\r\n @Output() cardFormEvent = new EventEmitter();\r\n @Output() paymentComplete = new EventEmitter();\r\n @Output() updatePaymentStatus = new EventEmitter();\r\n @Output() paymentNeeded = new EventEmitter();\r\n \r\n public totals : any = {total : 0.00};\r\n public generatingStripePaymentIntent : boolean = true;\r\n public stripeIntent : any = null;\r\n public stripe : any = null;\r\n public elements : any = null;\r\n public busyPaying : boolean = false;\r\n public paymentCompleted : boolean = false;\r\n //public cardFormCompleted : boolean = false;\r\n public paymentError : any = null;\r\n public allowDeductSecurityDeposit : boolean = false;\r\n public securityDepositAmount : number = 0.00;\r\n public allowPayment : boolean = false;\r\n private bookingsDiffer: KeyValueDiffer;\r\n \r\n constructor(\r\n private paymentService : PaymentService,\r\n private differs: KeyValueDiffers,\r\n private variables: Variables\r\n ) { }\r\n\r\n ngOnInit(): void { \r\n this.bookingsDiffer = this.differs.find(this.booking).create();\r\n this.setupChecks()\r\n }\r\n\r\n ngDoCheck(): void { \r\n const changes = this.bookingsDiffer.diff(this.booking); \r\n if (changes) {\r\n this.bookingChanged(changes);\r\n }\r\n }\r\n\r\n bookingChanged(changes: KeyValueChanges) {\r\n var couponChanged = false;\r\n changes.forEachChangedItem((record) => {\r\n if(record.key==='couponFixedAmount' || record.key==='couponPercentAmount'){\r\n couponChanged = true;\r\n }\r\n });\r\n if(couponChanged) {\r\n this.setupChecks();\r\n }\r\n \r\n }\r\n\r\n setupChecks(){\r\n this.calculateTotals();\r\n var depositApplicableToServiceType = this.booking.shop.depositConfiguration.AllServiceTypes;\r\n if(!depositApplicableToServiceType){\r\n var selectedServiceTypes = [];\r\n this.booking.bikes.map((bike)=>{\r\n bike.services.services.filter((x)=>{return x.selected === true}).forEach((x)=>{\r\n selectedServiceTypes.push(x.ID);\r\n })});\r\n var allowedServiceTypes = this.booking.shop.depositConfiguration.LinkedServices.map((x=>{return x.ServiceTypeID}));\r\n if(allowedServiceTypes.some(item => selectedServiceTypes.includes(item))){\r\n depositApplicableToServiceType = true;\r\n }\r\n }\r\n \r\n if(parseFloat(this.totals.total) > 0.00 && depositApplicableToServiceType){\r\n this.allowPayment = true;\r\n this.paymentNeeded.emit({paymentNeeded : true});\r\n this.generateStripePaymentIntent();\r\n }else if(this.totals.total <= 0){\r\n this.allowPayment = false;\r\n this.paymentNeeded.emit({paymentNeeded : false});\r\n }\r\n }\r\n\r\n generateStripePaymentIntent(){\r\n var data = {\r\n PartnerIdentifier: this.booking.shop.partnerID,\r\n InvoiceTotal: (Math.round(this.totals.total * 100) / 100).toFixed(2),\r\n UserID: this.booking.client.ID,\r\n Email: this.booking.client.email\r\n };\r\n\r\n this.generatingStripePaymentIntent = true;\r\n this.paymentService.generatePaymentIntent(data).subscribe(async (res: any)=>{\r\n this.stripeIntent = res;\r\n this.generatingStripePaymentIntent = false;\r\n\r\n setTimeout(async ()=>{\r\n const options = {\r\n clientSecret: this.stripeIntent.clientSecret,\r\n appearance: {\r\n \r\n }\r\n };\r\n \r\n this.stripe = await loadStripe(this.variables.getStripeKey(), {\"stripeAccount\": this.stripeIntent.stripeAccountID});\r\n this.elements = this.stripe.elements(options);\r\n \r\n // Create and mount the Payment Element\r\n const paymentElement = this.elements.create('payment');\r\n paymentElement.mount('#payment-element');\r\n\r\n\r\n paymentElement.addEventListener('change',(event: any)=>{\r\n console.log(event);\r\n //this.cardFormCompleted = event.complete;\r\n this.cardFormEvent.emit({cardFormCompleted : event.complete});\r\n });\r\n\r\n }, 500)\r\n\r\n\r\n },err=>{\r\n this.generatingStripePaymentIntent = false;\r\n });\r\n }\r\n\r\n calculateTotals(){\r\n this.booking.discount = 0;\r\n if(this.booking.couponFixedAmount === 0 && this.booking.couponFixedPercent === 0 ){\r\n this.totals.total = this.booking.total - this.booking.discount;\r\n }else if(this.booking.couponFixedAmount > 0){\r\n var individualDiscount = 0;\r\n this.booking.bikes.forEach(bike => {\r\n if(bike.services.couponCode && bike.services.couponCode.length > 0){\r\n individualDiscount += this.booking.couponFixedAmount;\r\n }\r\n });\r\n this.booking.discount = individualDiscount;\r\n this.totals.total = this.booking.total - this.booking.discount;\r\n }else if(this.booking.couponPercentAmount > 0){\r\n var individualDiscount = 0;\r\n this.booking.bikes.forEach(bike => {\r\n if(bike.services.couponCode && bike.services.couponCode.length > 0){\r\n individualDiscount += bike.services.services.filter((x)=>{return x.selected}).map(x=>{return x.cost}).reduce((x,y)=>{return x + y}) * (this.booking.couponPercentAmount/100.0);\r\n if(!this.booking.couponRestricted && this.booking.pickup.pickup==true && this.booking.pickup.pickupProductID && this.booking.pickup.cost){\r\n individualDiscount += this.booking.pickup.cost * (this.booking.couponPercentAmount/100.0);\r\n }\r\n if(!this.booking.couponRestricted && this.booking.dropoff.dropoff==true && this.booking.dropoff.dropoffProductID && this.booking.dropoff.cost){\r\n individualDiscount += this.booking.dropoff.cost * (this.booking.couponPercentAmount/100.0);\r\n }\r\n }\r\n });\r\n this.booking.discount = individualDiscount;\r\n this.totals.total = this.booking.total - this.booking.discount;\r\n }else{\r\n this.totals.total = this.booking.total - this.booking.discount;\r\n }\r\n console.log(this.totals);\r\n }\r\n\r\n completePayment(pi_result : any){\r\n console.log(pi_result);\r\n if(pi_result.paymentIntent && pi_result.paymentIntent.status === 'succeeded')\r\n {\r\n this.paymentCompleted = true;\r\n this.paymentComplete.emit(pi_result);\r\n }else if(pi_result && pi_result.error){\r\n this.paymentCompleted = false;\r\n this.paymentError = pi_result.error;\r\n }\r\n }\r\n\r\n submitPayment() {\r\n this.busyPaying = true;\r\n this.updatePaymentStatus.emit({busyPaying : this.busyPaying});\r\n this.stripe.confirmPayment({\r\n elements: this.elements,\r\n confirmParams: {\r\n return_url: window.location.href\r\n },\r\n redirect: 'if_required'\r\n }).then((pi_result : any)=>{\r\n this.busyPaying = false;\r\n this.updatePaymentStatus.emit({busyPaying : this.busyPaying});\r\n this.completePayment(pi_result);\r\n },(err : any)=>{\r\n console.log(err);\r\n this.busyPaying = false;\r\n this.updatePaymentStatus.emit({busyPaying : this.busyPaying});\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n {{ 'label.make_payment' | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{ 'label.payment_amount' | translate }}:
\r\n
{{ booking.shop.currencySymbol}}{{stripeIntent.amountToPay.toFixed(2)}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{paymentError.message}}\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
10\">\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Bookings } from '../../classes/bookings';\r\n\r\n@Component({\r\n selector: 'app-total-section',\r\n templateUrl: './total-section.component.html',\r\n styleUrls: ['./total-section.component.scss']\r\n})\r\nexport class TotalSectionComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n public disabledFeatures = [];\r\n public hidePrices = false;\r\n\r\n ngOnInit(): void {\r\n\r\n this.hidePrices = !this.booking.shop.ShowPrices;\r\n\r\n this.disabledFeatures = JSON.parse(localStorage.getItem(\"disabledFeatures\"));\r\n if (this.disabledFeatures !== null) {\r\n if (this.disabledFeatures.indexOf('prices') > -1)\r\n this.hidePrices = true;\r\n }\r\n //this.showPrices = localStorage.getItem(\"showPrices\");\r\n this.calculateTotals();\r\n }\r\n\r\n\r\n public calculateTotals(){\r\n this.booking.total = 0;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n for (var x = 0; x < this.booking.bikes[i].services.services.length; x++) {\r\n if (this.booking.bikes[i].services.services[x].selected) {\r\n this.booking.total += this.booking.bikes[i].services.services[x].cost;\r\n }\r\n }\r\n }\r\n\r\n //MK - This \"* this.booking.bikes.length\" is a problem because no bikes may have been selected yet so then it makes the delivery cost 0...\r\n if (this.booking.pickup.pickup)\r\n this.booking.total += this.booking.pickup.cost * (this.booking.bikes.length || 1);\r\n if (this.booking.dropoff && this.booking.dropoff.dropoff)\r\n this.booking.total += this.booking.dropoff.cost * (this.booking.bikes.length || 1);\r\n\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
{{ 'label.total' | translate }}
\r\n
{{ 'label.total-collections' | translate }}
\r\n
{{booking.shop.currencySymbol}} {{booking.total}}
\r\n
\r\n {{ 'label.total-disclaimer' | translate }}\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-confirmations',\r\n templateUrl: './confirmations.component.html',\r\n styleUrls: ['./confirmations.component.scss']\r\n})\r\nexport class ConfirmationsComponent implements OnInit {\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private serviceService: ServiceService\r\n ) { }\r\n\r\n public loading: boolean = true;\r\n public serviceList: any[] = [];\r\n\r\n ngOnInit(): void {\r\n this.loading = true;\r\n\r\n var partner = this.route.snapshot.queryParamMap.get(\"shop\");\r\n var services = this.route.snapshot.queryParamMap.get(\"services\");\r\n var lst = services.split(\",\");\r\n var chk = lst.length;\r\n for (var i = 0; i < lst.length; i++) {\r\n this.serviceService.getServiceByPartnerIDAndServiceID(partner, lst[i]).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n for (var i = 0; i < obj.Services.length; i++) {\r\n obj.Services[i].CollectionDate = new Date(obj.Services[i].CollectionDate);\r\n this.serviceList.push(obj.Services[i]);\r\n }\r\n\r\n chk -= 1;\r\n if (chk == 0) {\r\n this.loading = false;\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n
\r\n \"Short\r\n
\r\n
\r\n\r\n
\r\n

{{ 'label.booking-confirmed' | translate }}

\r\n
\r\n\r\n
\r\n

\r\n {{ 'label.booking-confirmed-description' | translate }}\r\n

\r\n
\r\n
\r\n \r\n

{{ 'label.service-reference-number-header' | translate }}

\r\n\r\n \r\n

\r\n {{ 'label.for-your' | translate }} {{s.BikeName}} - HT:{{s.JobCardID}}\r\n

\r\n
\r\n\r\n \r\n

{{ 'label.bike-pick-up-header' | translate }}

\r\n

\r\n {{serviceList[0].CollectionDate.getDate()}} {{serviceList[0].CollectionDate.toLocaleString('default', { month: 'long' })}} {{serviceList[0].CollectionDate.getFullYear()}} {{serviceList[0].CollectionTime}}\r\n

\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n

\r\n Powered by:\r\n \"Short\r\n

\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewEncapsulation, OnChanges, SimpleChanges, Inject, Renderer2 } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { MessageService } from 'primeng/api';\r\nimport { Button } from 'primeng/button';\r\nimport { Router, ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { Bookings, Bike, Legal, DropOff, PickUp } from '../../classes/bookings';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BrowserModule, DomSanitizer } from '@angular/platform-browser'\r\nimport { BikeShopSearchComponent } from '../../pages/bike-shop-search/bike-shop-search.component';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { Location, DOCUMENT } from '@angular/common';\r\nimport { Variables } from '../../shared/variables';\r\nimport { PartnerService } from '../../services/partner.service';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-services',\r\n templateUrl: './services.component.html',\r\n styleUrls: ['./services.component.scss'],\r\n providers: [MessageService],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ServicesComponent implements OnInit {\r\n\r\n constructor(\r\n private messageService: MessageService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private translate: TranslateService,\r\n private sanitizer: DomSanitizer,\r\n private serviceService: ServiceService,\r\n private location: Location,\r\n private partnerService: PartnerService,\r\n private variables: Variables\r\n ) { }\r\n\r\n loading: boolean = false;\r\n booking: Bookings = new Bookings;\r\n customCSSUrl = null;\r\n franchise: string = \"\";\r\n bikeshop: string = \"\";\r\n pay: string = \"\";\r\n confirmaionURL: string = \"\";\r\n\r\n steps: MenuItem[];\r\n activeIndex: number = -1;\r\n activeStep: string = \"\";\r\n nextStepText: string = \"NEXT\";\r\n\r\n currentStep: string = \"\";\r\n\r\n saveBooking: boolean = false;\r\n progress: number = 0;\r\n\r\n ngOnInit() {\r\n\r\n var lan = this.route.snapshot.queryParamMap.get(\"lang\");\r\n if (lan !== null)\r\n this.translate.setDefaultLang(lan);\r\n\r\n this.translate.get(\"button.next\").subscribe(next => {\r\n this.nextStepText = next;\r\n });\r\n\r\n this.franchise = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n this.bikeshop = this.route.snapshot.queryParamMap.get(\"shop\");\r\n this.confirmaionURL = this.route.snapshot.queryParamMap.get(\"confirmation\");\r\n\r\n if (this.bikeshop !== null) {\r\n this.customCSSUrl = this.transform(this.bikeshop);\r\n this.monitor(this.bikeshop);\r\n }\r\n if (this.franchise !== null) {\r\n this.customCSSUrl = this.transform(this.franchise);\r\n this.monitor(this.franchise);\r\n }\r\n\r\n if (this.bikeshop !== null) {\r\n this.partnerService.getBikeshopsByExternalID(this.bikeshop).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n\r\n this.booking.shop.partnerID = obj.Partners[i].ID;\r\n this.booking.shop.name = obj.Partners[i].Name;\r\n this.booking.shop.address = obj.Partners[i].PhysicalAddress;\r\n this.booking.shop.currencySymbol = obj.Partners[i].CurrencySymbol;\r\n this.booking.shop.country = obj.Partners[i].Country;\r\n this.booking.shop.doesCollections = obj.Partners[i].OffersCollections;\r\n this.booking.shop.doesDropOff = obj.Partners[i].OffersDropOffs;\r\n this.booking.shop.lat = obj.Partners[i].Latitude;\r\n this.booking.shop.lng = obj.Partners[i].Longitude;\r\n this.booking.shop.payments = obj.Partners[i].WidgetAllowPayments;\r\n this.booking.shop.showTechnicianImages = obj.Partners[i].FittingsShowTechnicianImage;\r\n this.booking.shop.depositConfiguration = obj.Partners[i].DepositConfiguration;\r\n }\r\n this.booking.shop.collections = false;\r\n this.setSteps();\r\n\r\n setInterval(() => {\r\n if (this.steps[this.activeIndex] !== undefined)\r\n if (this.steps[this.activeIndex].id == 'select_shop' && this.booking.shop.partnerID !== \"\") {\r\n this.nextStep();\r\n }\r\n }, 100);\r\n\r\n this.loading = false;\r\n\r\n });\r\n }\r\n\r\n if (this.franchise !== null) {\r\n this.setSteps();\r\n\r\n setInterval(() => {\r\n if (this.steps[this.activeIndex] !== undefined)\r\n if (this.steps[this.activeIndex].id == 'select_shop' && this.booking.shop.partnerID !== \"\") {\r\n this.nextStep();\r\n }\r\n }, 100);\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n checkIfStoreSelected() {\r\n\r\n }\r\n\r\n setSteps() {\r\n\r\n //Set the booking type\r\n this.booking.type = \"service\";\r\n\r\n console.log(this.franchise, this.bikeshop, this.pay);\r\n\r\n this.steps = [];\r\n this.translate.get(\"steps.select-shop\").subscribe(shop => {\r\n this.translate.get(\"steps.your-details\").subscribe(details => {\r\n this.translate.get(\"steps.bike-details\").subscribe(bikes => {\r\n this.translate.get(\"steps.services\").subscribe(services => {\r\n this.translate.get(\"steps.notes\").subscribe(notes => {\r\n this.translate.get(\"steps.pick-up-drop-off\").subscribe(collections => {\r\n this.translate.get(\"steps.service-date\").subscribe(servicedate => {\r\n this.translate.get(\"steps.summary\").subscribe(summary => {\r\n //Set the steps for the wizard\r\n\r\n this.steps = [{\r\n label: shop,\r\n id: \"select_shop\"\r\n },\r\n {\r\n label: services,\r\n id: \"services\"\r\n },\r\n {\r\n label: collections,\r\n id: \"pick_up_drop_off\"\r\n },\r\n {\r\n label: servicedate,\r\n id: \"service_date\"\r\n },\r\n {\r\n label: details,\r\n id: \"your_details\"\r\n },\r\n {\r\n label: bikes,\r\n id: \"bike_details\"\r\n },\r\n {\r\n label: services,\r\n id: \"services\"\r\n },\r\n {\r\n label: summary,\r\n id: \"summary\"\r\n }\r\n ];\r\n\r\n this.activeIndex = 0;\r\n\r\n if (this.franchise === null) {\r\n this.steps.splice(0, 1);\r\n }\r\n\r\n if (!(this.variables.isDev())) {\r\n if (this.franchise !== null) {\r\n this.location.replaceState('/bikes' + '/' + this.franchise.replace(/ /g, \"\") + '/' + this.steps[this.activeIndex].id);\r\n }\r\n else {\r\n this.location.replaceState('/bikes' + '/' + this.booking.shop.name.replace(/ /g, \"\") + '/' + this.steps[this.activeIndex].id);\r\n }\r\n }\r\n\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n });\r\n\r\n }\r\n\r\n\r\n nextStep() {\r\n\r\n if (!this.booking.shop.doesDropOff && !this.booking.shop.doesCollections)\r\n if (this.steps.findIndex(x => x.id == \"pick_up_drop_off\") > -1)\r\n this.steps.splice(this.steps.findIndex(x => x.id == \"pick_up_drop_off\"), 1);\r\n\r\n //lets do some validation baby!!!!\r\n if (!this.validateBooking())\r\n return;\r\n\r\n\r\n\r\n if (this.activeStep == 'pick_up_drop_off' && this.booking.pickup.pickup)\r\n this.activeIndex += 1;\r\n\r\n if (this.activeStep == 'services' && this.activeIndex < 3)\r\n if (!this.booking.shop.collections && this.booking.shop.doesCollections)\r\n this.activeIndex += 1;\r\n\r\n if (this.activeStep == 'summary' && this.booking.bikes.length === 1)\r\n this.booking.bikes[0].services.notes = this.booking.notes;\r\n\r\n\r\n\r\n this.activeIndex += 1;\r\n if (this.activeIndex >= this.steps.length) {\r\n //SAVE BOOKING\r\n this.loading = true;\r\n }\r\n\r\n if (this.activeStep == 'bike_details' && this.booking.bikes.findIndex(x => x.ID == -1000) > -1 && this.booking.bikes.length == 2) {\r\n if (this.booking.bikes[0].ID == -1000)\r\n this.activeIndex += 1;\r\n }\r\n\r\n if (this.activeIndex <= this.steps.length - 1)\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n\r\n if (this.activeIndex <= this.steps.length - 1)\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n\r\n if (this.activeIndex > this.steps.length - 1)\r\n {\r\n //SAVE BOOKING\r\n this.loading = true;\r\n this.saveBooking = true;\r\n\r\n //Clearing up unnessecary services\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n while (this.booking.bikes[i].services.services.findIndex(x => x.selected == false) > -1) {\r\n this.booking.bikes[i].services.services.splice(this.booking.bikes[i].services.services.findIndex(x => x.selected == false), 1);\r\n }\r\n }\r\n\r\n //Fixing the date with their time zones added so that the DB stores them in the selected Date\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n this.booking.bikes[i].services.date = new Date(this.booking.bikes[i].services.date.setTime(this.booking.bikes[i].services.date.getTime() - (this.booking.bikes[i].services.date.getTimezoneOffset() * 60000)));\r\n }\r\n\r\n this.booking.pickup.date = new Date(this.booking.pickup.date.setTime(this.booking.pickup.date.getTime() - (this.booking.pickup.date.getTimezoneOffset() * 60000)));\r\n this.booking.date = new Date(this.booking.date.setTime(this.booking.date.getTime() - (this.booking.date.getTimezoneOffset() * 60000)));\r\n\r\n if (this.booking.legal.cookies)\r\n this.booking.legal.cookiesdate = new Date(this.booking.legal.cookiesdate.setTime(this.booking.legal.cookiesdate.getTime() - (this.booking.legal.cookiesdate.getTimezoneOffset() * 60000)));\r\n if (this.booking.legal.termsconditions)\r\n this.booking.legal.termsconditionsdate = new Date(this.booking.legal.termsconditionsdate.setTime(this.booking.legal.termsconditionsdate.getTime() - (this.booking.legal.termsconditionsdate.getTimezoneOffset() * 60000)));\r\n if (this.booking.legal.marketing)\r\n this.booking.legal.marketingdate = new Date(this.booking.legal.marketingdate.setTime(this.booking.legal.marketingdate.getTime() - (this.booking.legal.marketingdate.getTimezoneOffset() * 60000)));\r\n\r\n //Save the booking\r\n this.serviceService.saveService(this.booking.shop.partnerID, JSON.stringify(this.booking)).subscribe(response => {\r\n this.loading = false;\r\n this.saveBooking = false;\r\n var obj = JSON.parse(JSON.stringify(response));\r\n var services = \"\";\r\n if (obj !== null) {\r\n for (var a = 0; a < obj.Services.length; a++) {\r\n services += \",\" + obj.Services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n if (this.confirmaionURL == \"\" || this.confirmaionURL == null)\r\n this.router.navigateByUrl('/confirmation?shop=' + this.booking.shop.partnerID + '&services=' + services);\r\n else {\r\n window.top.location.href = this.confirmaionURL;\r\n }\r\n }\r\n else {\r\n\r\n }\r\n });\r\n }\r\n\r\n if (!(this.variables.isDev()))\r\n this.location.replaceState('/bikes' + '/' + this.booking.shop.name.replace(/ /g, \"\") + '/' + this.steps[this.activeIndex].id);\r\n\r\n let scrollToTop = window.setInterval(() => {\r\n let pos = window.pageYOffset;\r\n if (pos > 0) {\r\n window.scrollTo(0, pos - 20);\r\n } else {\r\n window.clearInterval(scrollToTop);\r\n }\r\n }, 16);\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n }\r\n\r\n previousStep() {\r\n this.booking.errors = \"\";\r\n\r\n this.nextStepText = \"NEXT\";\r\n\r\n if (this.activeStep == 'summary' && this.booking.pickup.pickup)\r\n this.activeIndex -= 1;\r\n\r\n if (this.activeStep == 'summary' && this.booking.bikes.length == 1)\r\n this.activeIndex -= 1;\r\n\r\n\r\n if (this.activeStep == 'service_date' && this.activeIndex < 4)\r\n if (this.booking.shop.collections)\r\n this.activeIndex -= 1;\r\n\r\n this.activeIndex -= 1;\r\n this.activeStep = this.steps[this.activeIndex].id;\r\n\r\n this.currentStep = this.steps[this.activeIndex].label;\r\n\r\n this.progress = ((this.activeIndex + 1) / this.steps.length) * 100;\r\n\r\n if (this.activeStep == 'select_shop') {\r\n this.booking.shop.partnerID = \"\";\r\n this.setSteps();\r\n this.booking.bikes = [];\r\n this.booking.services = [];\r\n this.booking.total = 0.0;\r\n this.booking.discount = 0.0;\r\n this.booking.notes = \"\";\r\n this.booking.pickup = new PickUp();\r\n this.booking.dropoff = new DropOff();\r\n this.booking.date = new Date();\r\n this.booking.dateSelected = false;\r\n this.booking.legal = new Legal();\r\n this.booking.errors = \"\";\r\n this.booking.shop.collections = false;\r\n this.booking.shop.payments = false;\r\n }\r\n\r\n\r\n let scrollToTop = window.setInterval(() => {\r\n let pos = window.pageYOffset;\r\n if (pos > 0) {\r\n window.scrollTo(0, pos - 20);\r\n } else {\r\n window.clearInterval(scrollToTop);\r\n }\r\n }, 16);\r\n }\r\n\r\n\r\n validateBooking() {\r\n //Reset errors\r\n this.booking.errors = \"\";\r\n\r\n //customer details\r\n if (this.activeStep == 'select_shop') {\r\n if (this.booking.shop.partnerID.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.shop-missing\");\r\n }\r\n\r\n //customer details\r\n if (this.activeStep == 'your_details') {\r\n if (this.booking.client.surname.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.surname-missing\");\r\n if (this.booking.client.name.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.name-missing\");\r\n if (this.booking.client.mobile.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.mobile-number-missing\");\r\n }\r\n\r\n //lets see if they have selected a bike\r\n if (this.activeStep == 'bike_details') {\r\n if (this.booking.bikes.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.bikes-missing\");\r\n }\r\n\r\n //lets see if they have selected a bike\r\n if (this.activeStep == 'bike_details') {\r\n if (this.booking.bikes.length == 1 && this.booking.bikes.findIndex(x => x.ID == -1000) > -1)\r\n this.booking.errors = this.translate.instant(\"error.bikes-missing\");\r\n }\r\n\r\n //lets make sure that they have selected services for all their selected bikes\r\n if (this.activeStep == 'services') {\r\n var hasServices = 0;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n var a = this.booking.bikes[i].services.services.filter(x => x.selected == true);\r\n if (a.length > 0)\r\n hasServices += 1;\r\n }\r\n\r\n if (hasServices !== this.booking.bikes.length)\r\n this.booking.errors = this.translate.instant(\"error.services-missing\");\r\n\r\n\r\n\r\n if (this.booking.shop.parentID == \"3AF5A857-F83C-4BA1-93F8-275F6F92D7BB\" ) {\r\n if (this.booking.shop.collections)\r\n if (this.booking.total - this.booking.pickup.cost < 40) {\r\n this.booking.errors = \"Sorry, collections are only available on services of more than £40.\";\r\n }\r\n }\r\n }\r\n\r\n //lets make sure that they have all the need for a collection\r\n if (this.activeStep == 'pick_up_drop_off') {\r\n if (this.booking.shop.collections) {\r\n if (this.booking.pickup.pickup) {\r\n if (this.booking.pickup.timeID == 0)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-time\");\r\n if (!this.booking.dateSelected)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-date\");\r\n if (this.booking.pickup.address.length == 0)\r\n this.booking.errors = this.translate.instant(\"error.no-collection-address\");\r\n }\r\n else {\r\n if (!(this.booking.pickup.pickup || this.booking.dropoff.dropoff))\r\n this.booking.errors = this.translate.instant(\"error.no-selection\");\r\n }\r\n }\r\n }\r\n\r\n //lets make sure that they have selected a service date\r\n if (this.activeStep == 'service_date') {\r\n if (this.booking.dateSelected == false)\r\n this.booking.errors = this.translate.instant(\"error.no-service-date\");\r\n }\r\n\r\n //Make sure t&c's are selected\r\n if (this.activeStep == 'summary') {\r\n if (this.booking.legal.termsconditions == false)\r\n this.booking.errors = this.translate.instant(\"error.agree-terms\");\r\n }\r\n if (this.booking.errors.length > 0)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n transform(shop) {\r\n setTimeout(() => {}, 1);\r\n this.variables.getURL()\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.variables.getURL() + \"2021-01/partner/styles/widget/\" + shop);\r\n }\r\n\r\n monitor(shop) {\r\n let node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/tracking/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/body/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n document.getElementsByTagName('body')[0].appendChild(node);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{currentStep}}

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
0\" style=\"padding:0px\">\r\n

{{booking.errors}}

\r\n
\r\n\r\n
\r\n\r\n \r\n 0\" icon=\"pi pi-angle-left\" iconPos=\"left\" label=\"{{'button.previous' | translate}}\" class=\"button button-footer align-left\" (click)=\"previousStep()\">\r\n \r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n

{{ 'label.saving-booking' | translate }}

\r\n
\r\n\r\n
\r\n
\r\n

\r\n {{ 'label.poweredby' | translate }}:\r\n \"Short\r\n
\r\n 0\">\r\n {{ 'label.for' | translate }} {{booking.shop.name}}\r\n \r\n
\r\n v2\r\n

\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(html: string): SafeHtml {\r\n console.log('awe, ' + html);\r\n return this.sanitizer.bypassSecurityTrustHtml(html);\r\n }\r\n}","\r\nexport class Services {\r\n constructor() {\r\n \r\n }\r\n public Shop: string = \"\";\r\n public Path: string = \"\";\r\n public ServiceID: string = \"\";\r\n public IsCollectionShop: boolean = false;\r\n\r\n public JobCard: string = \"\";\r\n public BikeName: string = \"\";\r\n public ServiceDate: string = \"\";\r\n public Status: string = \"\";\r\n public StatusID: number = 0;\r\n public ServiceTypes: string = \"\";\r\n public TechnicianID: number = 0;\r\n\r\n public IsCollection: boolean = false;\r\n public IsService: boolean = false;\r\n public IsDropOff: boolean = false;\r\n public AreaID : number = 0;\r\n\r\n public Address: string = \"\";\r\n public FlatNo: string = \"\";\r\n public AddressDetails: any = {};\r\n public CollectionDate: string = \"\";\r\n public CollectionTime: string = \"\";\r\n public CollectionTimeID: number = 0 ;\r\n public CollectionSlot: any = null;\r\n public CollectionNotes: string = \"\";\r\n public pickupProductID: number = 0;\r\n public dropoffProductID: number = 0;\r\n\r\n public Customer: string = \"\";\r\n\r\n public CancellationReason: string = \"\";\r\n public CancellationID: number = 0;\r\n\r\n}\r\n\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Data } from '@angular/router';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { sendToGTM } from 'src/app/shared/GoogleTagManager';\r\nimport { ServiceService } from '../../services/service.service';\r\n\r\n@Component({\r\n selector: 'app-reschedule-booking',\r\n templateUrl: './reschedule-booking.component.html',\r\n styleUrls: ['./reschedule-booking.component.scss']\r\n})\r\nexport class RescheduleBookingComponent implements OnInit {\r\n\r\n @Input() service;\r\n\r\n @Output() back = new EventEmitter();\r\n @Output() forward = new EventEmitter();\r\n @Output() confirm = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n\r\n minDate: Date;\r\n startDate: Date = new Date();\r\n endDate: Date = new Date();\r\n invalidDates: Date[] = [];\r\n\r\n serviceDate: Date;\r\n\r\n constructor(\r\n private serviceService: ServiceService,\r\n private gtmService: GoogleTagManagerService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_booking', 'reschedule_booking');\r\n\r\n this.service.ServiceDate = new Date(this.service.ServiceDate)\r\n this.setInvalidDates();\r\n this.setAvailableDates();\r\n }\r\n\r\n goBack() {\r\n this.back.emit();\r\n }\r\n\r\n goNext() {\r\n this.forward.emit();\r\n }\r\n\r\n setInvalidDates() {\r\n\r\n //this.minDate = new Date(this.service.ServiceDate);\r\n\r\n this.minDate = new Date();\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.startDate = new Date();\r\n\r\n this.service.ServiceDate = this.minDate;\r\n\r\n while (this.startDate <= this.endDate) {\r\n var d = new Date(this.startDate);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d);\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n }\r\n }\r\n\r\n setAvailableDates() {\r\n this.loading = true;\r\n this.serviceService.getAvailabilityByServiceID(this.service.Shop, this.service.ServiceID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n var minSet = false;\r\n for (var i = 0; i < obj.Availability.length; i++) {\r\n if (obj.Availability[i].CanDoWork == 1) {\r\n var d = new Date(obj.Availability[i].Date);\r\n\r\n //if (d.getTimezoneOffset() >= 0)\r\n // d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n //else\r\n // d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n\r\n //d.setHours(0);\r\n //d.setMinutes(0);\r\n //d.setSeconds(0);\r\n //d.setMilliseconds(0);\r\n\r\n var d = new Date();\r\n //d.setFullYear(obj.Availability[i].Date.substring(0, 4));\r\n //d.setMonth(obj.Availability[i].Date.substring(5, 7) - 1);\r\n //d.setDate(obj.Availability[i].Date.substring(8, 10));\r\n d.setFullYear(obj.Availability[i].Date.substring(0, 4), obj.Availability[i].Date.substring(5, 7) - 1, obj.Availability[i].Date.substring(8, 10));\r\n d.setHours(0, 0, 0, 0);\r\n\r\n if (!minSet && d.getDate() > (new Date().getDate())) {\r\n this.minDate = d;\r\n this.service.ServiceDate = this.minDate;\r\n minSet = true;\r\n }\r\n for (var x = 0; x < this.invalidDates.length; x++) {\r\n if (this.invalidDates[x].getTime() == d.getTime()) {\r\n this.invalidDates.splice(x, 1);\r\n x = this.invalidDates.length;\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n

Please select a new service date

\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

\r\n New service date: {{service.ServiceDate | date:'fullDate'}}\r\n

\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { sendToGTM } from 'src/app/shared/GoogleTagManager';\r\nimport { ServiceService } from '../../services/service.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-reschedule-cancellation',\r\n templateUrl: './reschedule-cancellation.component.html',\r\n styleUrls: ['./reschedule-cancellation.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RescheduleCancellationComponent implements OnInit {\r\n\r\n @Input() service;\r\n @Output() back = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n cancelReasons: any[]\r\n selectedReason: any;\r\n additionalReason: string = \"\";\r\n showAdditionalReason: boolean = false;\r\n\r\n cancelled: boolean = false;\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private serviceService: ServiceService,\r\n private gtmService: GoogleTagManagerService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_cancellation', 'reschedule_cancellation');\r\n\r\n this.service.CancellationID = 0;\r\n this.service.CancellationReason = \"\";\r\n this.cancelReasons = [\r\n {\r\n code: CancellationReasons.REASON1,\r\n name: this.translate.instant(\r\n \"bikeshop.cancellation_reason.reason_1\"\r\n ),\r\n },\r\n {\r\n code: CancellationReasons.REASON2,\r\n name: this.translate.instant(\r\n \"bikeshop.cancellation_reason.reason_2\"\r\n ),\r\n },\r\n {\r\n code: CancellationReasons.REASON3,\r\n name: this.translate.instant(\r\n \"bikeshop.cancellation_reason.reason_3\"\r\n ),\r\n },\r\n {\r\n code: CancellationReasons.REASON4,\r\n name: this.translate.instant(\r\n \"bikeshop.cancellation_reason.reason_4\"\r\n ),\r\n },\r\n {\r\n code: CancellationReasons.REASON5,\r\n name: this.translate.instant(\r\n \"bikeshop.cancellation_reason.reason_5\"\r\n ),\r\n },\r\n {\r\n code: CancellationReasons.OTHER,\r\n name: this.translate.instant(\"bikeshop.cancellation_reason.other\"),\r\n },\r\n ];\r\n\r\n }\r\n\r\n goBack() {\r\n this.back.emit();\r\n }\r\n\r\n confirm() {\r\n this.loading = true;\r\n if (this.selectedReason.code == 0) {\r\n this.service.CancellationOtherReason = this.additionalReason;\r\n }else{\r\n this.service.CancellationOtherReason = null;\r\n }\r\n this.serviceService.saveRescheduleService(this.service.Shop, JSON.stringify(this.service)).subscribe(res => {\r\n this.cancelled = true;\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_cancelled', 'reschedule_cancelled');\r\n this.loading = false;\r\n });\r\n }\r\n\r\n setReason() {\r\n this.service.CancellationReason = this.selectedReason.name;\r\n this.service.CancellationID = this.selectedReason.code;\r\n\r\n if (this.selectedReason.code === 0)\r\n this.showAdditionalReason = true;\r\n else\r\n this.showAdditionalReason = false;\r\n }\r\n\r\n validate() {\r\n\r\n if (this.service.CancellationID == 0 && this.additionalReason.length == 0)\r\n return !false;\r\n\r\n return !true;\r\n }\r\n}\r\n\r\nexport enum CancellationReasons {\r\n OTHER,\r\n REASON1,\r\n REASON2,\r\n REASON3,\r\n REASON4,\r\n REASON5\r\n}\r\n\r\n","\r\n\r\n
\r\n \r\n \r\n We are sad to see you go\r\n \r\n

\r\n Please let us know why you are cancelling your service.\r\n

\r\n \r\n\r\n \r\n\r\n \r\n
\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n Your service has been cancelled\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { sendToGTM } from 'src/app/shared/GoogleTagManager';\r\nimport { GoogleService } from '../../services/google.service';\r\nimport { PartnerService } from '../../services/partner.service';\r\nimport { getAddressParts } from '../../shared/common';\r\n\r\n@Component({\r\n selector: 'app-reschedule-collection-address',\r\n templateUrl: './reschedule-collection-address.component.html',\r\n styleUrls: ['./reschedule-collection-address.component.scss']\r\n})\r\nexport class RescheduleCollectionAddressComponent implements OnInit {\r\n\r\n @Input() service;\r\n @Output() back = new EventEmitter();\r\n @Output() forward = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n\r\n results: string[] = [];\r\n placeList: any[] = [];\r\n\r\n lng: number = 0.0;\r\n lat: number = 0.0;\r\n tooFar: boolean = false;\r\n\r\n addressSelected: boolean = false;\r\n constructor(private googleService: GoogleService,\r\n private partnerService: PartnerService,\r\n private gtmService: GoogleTagManagerService,\r\n ) { }\r\n \r\n ngOnInit(): void {\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_collection_address', 'reschedule_collection_address');\r\n\r\n if (this.service.Address.length > 0)\r\n this.geocodeCity(); \r\n }\r\n\r\n goBack() {\r\n this.back.emit();\r\n }\r\n goToReschedule() {\r\n this.forward.emit();\r\n }\r\n\r\n goNext() {\r\n this.forward.emit();\r\n }\r\n\r\n getCityPredictions() {\r\n this.addressSelected = false;\r\n if (this.service.Address.length > 3) {\r\n this.googleService.lookupCities(this.service.Address, this.service.Shop.Country).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.results = [];\r\n this.placeList = [];\r\n for (var i = 0; i < obj.predictions.length; i++) {\r\n this.results.push(obj.predictions[i].description);\r\n this.placeList.push(obj.predictions[i]);\r\n }\r\n });\r\n }\r\n }\r\n\r\n geocodeCity() {\r\n if (this.service.Address.length > 0) {\r\n this.googleService.geocodeCities(this.service.Address).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.lat = obj.results[0].geometry.location.lat;\r\n this.lng = obj.results[0].geometry.location.lng;\r\n this.service.AddressDetails = getAddressParts(obj.results[0]);\r\n this.service.AddressDetails.lat = this.lat;\r\n this.service.AddressDetails.lng = this.lng;\r\n\r\n this.service.pickupProductID = 0;\r\n this.service.dropoffProductID = 0;\r\n this.partnerService.getBikeShopsByLocationV2(null, this.service.Shop, this.lat, this.lng).subscribe((response: any) => {\r\n if(response && response.length > 0 && response[0].partnerIdentifier === this.service.Shop){\r\n this.tooFar = false;\r\n this.service.AreaID = response[0].areaID;\r\n if(response[0].collectionFee && response[0].collectionFee.length > 0){\r\n this.service.pickupProductID = response[0].collectionFee[0].productID\r\n }\r\n if(response[0].deliveryFee && response[0].deliveryFee.length > 0){ \r\n this.service.dropoffProductID = response[0].deliveryFee[0].productID\r\n }\r\n this.addressSelected = true; \r\n }else{\r\n this.tooFar = true;\r\n this.service.AreaID = 0;\r\n } \r\n },err=>{\r\n this.tooFar = true;\r\n this.service.AreaID = 0;\r\n });\r\n \r\n }); \r\n }\r\n }\r\n\r\n\r\n validate() {\r\n if (this.service.Address.length == 0)\r\n this.addressSelected = false;\r\n\r\n if (this.service.Address.length > 0 && this.tooFar)\r\n return true;\r\n\r\n if (this.service.Address.length > 0 && !this.tooFar)\r\n return false;\r\n\r\n if (this.service.Address.length > 0 && this.addressSelected)\r\n return false;\r\n else\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n Confirm your address\r\n \r\n\r\n
\r\n\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n {{ 'error.outside-radius' | translate }}\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { nullSafeIsEquivalent } from '@angular/compiler/src/output/output_ast';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { sendToGTM } from 'src/app/shared/GoogleTagManager';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-reschedule-collection-booking',\r\n templateUrl: './reschedule-collection-booking.component.html',\r\n styleUrls: ['./reschedule-collection-booking.component.scss']\r\n})\r\nexport class RescheduleCollectionBookingComponent implements OnInit {\r\n\r\n @Input() service;\r\n @Output() back = new EventEmitter();\r\n @Output() forward = new EventEmitter();\r\n\r\n minDate: Date;\r\n startDate: Date = new Date();\r\n endDate: Date = new Date();\r\n invalidDates: Date[] = [];\r\n availableDates : any = [];\r\n\r\n serviceDate: Date;\r\n\r\n loading: boolean = false;\r\n\r\n collections: any[] = [];\r\n collectionTimes: any[];\r\n times: any[];\r\n noSpace: boolean = false;\r\n\r\n timePlaceHolder: string = \"Select Collection Time\";\r\n\r\n constructor(\r\n private serviceService: ServiceService,\r\n private gtmService: GoogleTagManagerService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_collection_booking', 'reschedule_collection_booking');\r\n this.loading = true;\r\n this.setInvalidDates();\r\n if(this.getCollectionDateYear() < 1970)\r\n {\r\n this.service.CollectionDate = null;\r\n }else{\r\n this.service.CollectionDate = new Date(this.service.CollectionDate);\r\n }\r\n \r\n var fromDate = moment(this.service.CollectionDate && this.getCollectionDateYear() > 1970 ? this.service.CollectionDate : this.minDate).startOf('month').format(\"YYYY-MM-DD\");\r\n this.getAvailability(fromDate, false);\r\n console.log(this.service)\r\n }\r\n\r\n getCollectionDateYear(){\r\n return moment(this.service.CollectionDate).get('year');\r\n }\r\n\r\n goBack() {\r\n this.back.emit();\r\n }\r\n\r\n goNext() {\r\n this.forward.emit();\r\n }\r\n\r\n setInvalidDates() {\r\n\r\n this.minDate = new Date();\r\n \r\n var startDate = new Date(moment(this.minDate).add('year', -1).format(\"YYYY-MM-DD\"));\r\n var endDate = new Date(moment(this.minDate).add('year', 2).format(\"YYYY-MM-DD\"));\r\n while (startDate <= endDate) {\r\n var d = new Date(startDate);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d);\r\n startDate = new Date(startDate.setDate(startDate.getDate() + 1));\r\n }\r\n }\r\n\r\n \r\n setBookingDate(reset = false) {\r\n \r\n\r\n this.times = [];\r\n if(this.getCollectionDateYear() > 1970){ \r\n if(reset){\r\n this.service.CollectionTime = null;\r\n this.service.CollectionTimeID = 0;\r\n this.service.CollectionSlot = null;\r\n }\r\n\r\n var selectedDate = this.availableDates.filter(x=>{return moment(x.availableDate).format(\"YYYY-MM-DD\")===moment(this.service.CollectionDate).format(\"YYYY-MM-DD\") });\r\n if(selectedDate && selectedDate.length>0){\r\n this.times = selectedDate[0].slots.map((x, index)=>{return {...x, code: index+1, name : x.label, value: x.label}});\r\n if (this.times.length == 1 && reset) { \r\n this.service.CollectionTime = this.times[0].name;\r\n this.service.CollectionTimeID = this.times[0].code;\r\n this.service.CollectionSlot = this.times[0]; \r\n }\r\n }\r\n }\r\n \r\n }\r\n\r\n setCollectionTime(event) {\r\n \r\n this.service.CollectionTime = event.value.name;\r\n this.service.CollectionTimeID = event.value.code;\r\n this.service.CollectionSlot = event.value;\r\n \r\n console.log(this.service);\r\n }\r\n\r\n validate() {\r\n if (this.service.CollectionTimeID == 0)\r\n return true;\r\n if (this.service.CollectionTimeID == null)\r\n return true;\r\n\r\n }\r\n\r\n monthChanged(date){ \r\n this.times = [];\r\n var fromDate = moment(new Date(date.year, date.month-1, 1)).startOf('month').format(\"YYYY-MM-DD\");\r\n this.getAvailability(fromDate);\r\n }\r\n\r\n getAvailability(fromDate:string, reset = true){\r\n if(this.service.AreaID){\r\n const data = {\r\n \"PartnerIdentifier\": this.service.Shop,\r\n \"FromDate\": moment(fromDate).add('days', -7).format(\"YYYY-MM-DD\"),\r\n \"ToDate\": moment(fromDate).add('month', 2).endOf('month').format(\"YYYY-MM-DD\"),\r\n \"CurrentLocalTime\": moment().format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n \"IsCollection\": true,\r\n \"AreaID\": this.service.AreaID,\r\n \"ServiceTypes\": this.service.ServiceTypes\r\n }\r\n var invalidDates = JSON.parse(JSON.stringify(this.invalidDates));\r\n invalidDates = invalidDates.map(x=>{return new Date(x)});\r\n this.serviceService.getPickUpTimesByPartnerIDV2(data).subscribe((response : any)=>{\r\n if(response.availableDates && response.availableDates.length>0){\r\n this.availableDates = response.availableDates;\r\n response.availableDates.forEach((availableDate : any)=>{\r\n var index = invalidDates.map(x=>{return moment(x).format(\"YYYY-MM-DD\")}).indexOf(moment(availableDate.availableDate).format(\"YYYY-MM-DD\"));\r\n if(index > -1){\r\n invalidDates.splice(index, 1);\r\n }\r\n }); \r\n this.invalidDates = invalidDates;\r\n if(!reset){\r\n this.setBookingDate(reset);\r\n }\r\n }\r\n if(response.unavailableDates && response.unavailableDates.length>0){\r\n response.unavailableDates.map(x=>{\r\n var d = new Date(x.unavailableDate);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n var index = this.invalidDates.findIndex(x=>{return x.valueOf() === d.valueOf()});\r\n if(index === -1){\r\n this.invalidDates.push(d); \r\n }\r\n });\r\n }\r\n this.loading = false;\r\n },err=>{\r\n this.loading = false;\r\n });\r\n }else{\r\n this.loading = false;\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n

Select a new collection date

\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
1970\">\r\n

\r\n New collection date: {{service.CollectionDate | date:'fullDate'}} at\r\n

\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { sendToGTM } from 'src/app/shared/GoogleTagManager';\r\nimport { ServiceService } from '../../services/service.service';\r\n\r\n@Component({\r\n selector: 'app-reschedule-confirmation',\r\n templateUrl: './reschedule-confirmation.component.html',\r\n styleUrls: ['./reschedule-confirmation.component.scss']\r\n})\r\nexport class RescheduleConfirmationComponent implements OnInit {\r\n\r\n @Input() service;\r\n @Output() backToRescheduleBooking = new EventEmitter();\r\n @Output() backToRescheduleCollection = new EventEmitter();\r\n //@Output() confirm = new EventEmitter();\r\n\r\n @Output() back = new EventEmitter();\r\n @Output() forward = new EventEmitter();\r\n\r\n\r\n loading: boolean = false;\r\n confirmed: boolean = false;\r\n\r\n constructor(\r\n private serviceService: ServiceService,\r\n private gtmService: GoogleTagManagerService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_confirmation', 'reschedule_confirmation');\r\n }\r\n\r\n goBackToRescheduleBooking() {\r\n this.backToRescheduleBooking.emit();\r\n }\r\n\r\n goBackToRescheduleCollection() {\r\n this.backToRescheduleCollection.emit();\r\n }\r\n\r\n goBack() {\r\n this.back.emit();\r\n }\r\n\r\n confirm() {\r\n this.loading = true;\r\n\r\n var d = new Date(this.service.ServiceDate);\r\n if (d.getTimezoneOffset() >= 0)\r\n d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n else\r\n d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n this.service.ServiceDate = d;\r\n\r\n if (this.service.Path == \"collection\") {\r\n var d = new Date(this.service.CollectionDate);\r\n if (d.getTimezoneOffset() >= 0)\r\n d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n else\r\n d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n this.service.CollectionDate = d;\r\n }\r\n\r\n this.serviceService.saveRescheduleService(this.service.Shop, JSON.stringify(this.service)).subscribe(res => {\r\n this.confirmed = true;\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_confirmed', 'Reschedule_Confirmed');\r\n this.loading = false;\r\n });\r\n }\r\n}\r\n ","\r\n\r\n\r\n
\r\n \r\n \r\n Confirm your changes\r\n \r\n

\r\n Jobcard: HT:{{service.JobCard}}\r\n

\r\n

\r\n Bike: {{service.BikeName}}
\r\n

\r\n

\r\n New Service Date: {{service.ServiceDate | date:'fullDate'}}
\r\n

\r\n

\r\n New Fitting Date: {{service.ServiceDate | date:'EEEE, MMMM d y'}} at {{service.ServiceDate | date:'hh:mm'}}
\r\n

\r\n

\r\n New Collection Date: {{service.CollectionDate | date:'fullDate'}} at {{service.CollectionTime}}
\r\n

\r\n

\r\n Collection Notes: {{service.CollectionNotes}}
\r\n

\r\n

\r\n If you're able to drop it to us in the morning that would be brilliant, but we quite understand if you need to pop down later.
\r\n

\r\n \r\n\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n Your service has been updated\r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { sendToGTM } from '../../shared/GoogleTagManager';\r\n\r\n@Component({\r\n selector: 'app-reschedule-fitting',\r\n templateUrl: './reschedule-fitting.component.html',\r\n styleUrls: ['./reschedule-fitting.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RescheduleFittingComponent implements OnInit {\r\n\r\n @Input() service;\r\n\r\n @Output() back = new EventEmitter();\r\n @Output() forward = new EventEmitter();\r\n @Output() confirm = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n\r\n minDate: Date;\r\n startDate: Date = new Date();\r\n endDate: Date = new Date();\r\n invalidDates: any[] = [];\r\n\r\n serviceDate: Date;\r\n validOnes: Date[] = [];\r\n\r\n technicians: any[] = [];\r\n availability: any[] = [];\r\n times: any[] = [];\r\n selectFitter: boolean = false;\r\n\r\n selectedTechnician: string = \"\";\r\n dateIsSelected: boolean = false;\r\n timeIsSelected: boolean = false;\r\n\r\n constructor(\r\n private serviceService: ServiceService,\r\n private gtmService: GoogleTagManagerService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_fitting', 'reschedule_fitting');\r\n\r\n this.service.ServiceDate = new Date(this.service.ServiceDate)\r\n this.setInvalidDates();\r\n this.getAvailability();\r\n }\r\n\r\n goBack() {\r\n this.back.emit();\r\n }\r\n\r\n goNext() {\r\n this.forward.emit();\r\n }\r\n\r\n setInvalidDates() {\r\n\r\n this.minDate = new Date();\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.startDate = new Date();\r\n\r\n this.service.ServiceDate = this.minDate;\r\n\r\n //while (this.startDate <= this.endDate) {\r\n // var d = new Date(this.startDate);\r\n // d.setHours(0);\r\n // d.setMinutes(0);\r\n // d.setSeconds(0);\r\n // d.setMilliseconds(0);\r\n // this.invalidDates.push(d);\r\n // this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n //}\r\n\r\n while (this.startDate <= this.endDate) {\r\n var d = new Date(this.startDate);\r\n\r\n\r\n //if (d.getTimezoneOffset() >= 0)\r\n // d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n //else\r\n // d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n\r\n\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d.toISOString().substring(0, 10));\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n }\r\n }\r\n\r\n getAvailability() {\r\n this.timeIsSelected = false;\r\n this.dateIsSelected = false;\r\n\r\n //console.log(this.service);\r\n this.times = [];\r\n this.loading = true;\r\n var services = \"\";\r\n\r\n services = this.service.ServiceTypes;\r\n\r\n var date = this.service.ServiceDate.getFullYear() + '-' + (\"0\" + (this.service.ServiceDate.getMonth() + 1)).slice(-2) + '-' + (\"0\" + this.service.ServiceDate.getDate()).slice(-2)\r\n this.serviceService.getAvailabilityTimesByPartnerIDAndServiceID(this.service.Shop, date, services, 0).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.availability = obj.Availability;\r\n //console.log(this.availability);\r\n //this.invalidDates = [];\r\n this.validOnes = [];\r\n\r\n //while (this.startDate <= this.endDate) {\r\n // var d = new Date(this.startDate);\r\n\r\n\r\n // if (d.getTimezoneOffset() >= 0)\r\n // d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n // else\r\n // d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n\r\n\r\n // d.setHours(0);\r\n // d.setMinutes(0);\r\n // d.setSeconds(0);\r\n // d.setMilliseconds(0);\r\n // this.invalidDates.push(d);\r\n // this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n //}\r\n\r\n for (var i = 0; i < obj.Availability.length; i++) {\r\n if (this.validOnes.find(x => x == obj.Availability[i].AvailableDate) === undefined)\r\n this.validOnes.push(obj.Availability[i].AvailableDate);\r\n }\r\n\r\n for (var i = 0; i < obj.Availability.length; i++) {\r\n if (this.technicians.find(x => x.code == obj.Availability[i].TechnicianID) === undefined)\r\n this.technicians.push(\r\n {\r\n code: obj.Availability[i].TechnicianID,\r\n name: obj.Availability[i].Technician,\r\n img: obj.Availability[i].TechnicianImage\r\n });\r\n }\r\n\r\n var values = this.validOnes.map(function (date) { return date; });\r\n var unique = this.invalidDates.filter(function (date) { return values.indexOf(date) == -1 });\r\n for (var i = 0; i < unique.length; i++) {\r\n unique[i] = new Date(unique[i]);\r\n }\r\n\r\n //this.service.ServiceDate = values[0];\r\n //console.log(unique);\r\n\r\n this.invalidDates = unique;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n chooseFitter(event) {\r\n this.loading = true;\r\n //this.invalidDates = [];\r\n this.validOnes = [];\r\n\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.startDate = new Date();\r\n\r\n //while (this.startDate <= this.endDate) {\r\n // var d = new Date(this.startDate);\r\n // d.setHours(0);\r\n // d.setMinutes(0);\r\n // d.setSeconds(0);\r\n // d.setMilliseconds(0);\r\n // this.invalidDates.push(d);\r\n // this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n //}\r\n\r\n for (var i = 0; i < this.availability.length; i++) {\r\n if (this.availability[i].TechnicianID == event.value.code) {\r\n if (this.validOnes.find(x => x == this.availability[i].AvailableDate) === undefined)\r\n this.validOnes.push(this.availability[i].AvailableDate);\r\n }\r\n }\r\n\r\n var values = this.validOnes.map(function (date) { return date; });\r\n var unique = this.invalidDates.filter(function (date) { return values.indexOf(date) == -1 });\r\n for (var i = 0; i < unique.length; i++) {\r\n unique[i] = new Date(unique[i]);\r\n }\r\n this.invalidDates = unique;\r\n\r\n this.loading = false;\r\n }\r\n\r\n\r\n monthChanged(event) {\r\n this.timeIsSelected = false;\r\n this.dateIsSelected = false;\r\n \r\n //console.log(event, this.startDate, this.endDate);\r\n this.startDate.setFullYear(event.year, event.month - 1, 0);\r\n this.endDate.setFullYear(event.year, event.month, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.minDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n\r\n this.service.ServiceDate = this.startDate;\r\n\r\n if (this.minDate < new Date())\r\n this.minDate = new Date();\r\n\r\n this.service.ServiceDate = this.minDate;\r\n this.invalidDates = [];\r\n while (this.startDate <= this.endDate) {\r\n var d = new Date(this.startDate);\r\n\r\n if (d.getTimezoneOffset() >= 0)\r\n d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n else\r\n d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d.toISOString().substring(0, 10));\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n }\r\n\r\n //console.log(this.startDate);\r\n //console.log(this.endDate);\r\n //console.log(this.minDate);\r\n //console.log(this.booking.date);\r\n //this.booking.date.setHours(this.booking.date.getHours() - (this.booking.date.getHours() - (this.booking.date.getTimezoneOffset() / 60)))\r\n this.getAvailability();\r\n //this.setDates(this.minDate);\r\n //console.log(event, this.startDate, this.endDate);\r\n\r\n }\r\n\r\n dateSelected(event) {\r\n\r\n this.timeIsSelected = false;\r\n this.dateIsSelected = true;\r\n\r\n for (var i = 0; i < this.invalidDates.length; i++) {\r\n if (this.invalidDates[i] == event) {\r\n //this.translate.get(\"error.date-no-availability\").subscribe(response => {\r\n // this.booking.errors = response;\r\n // this.booking.dateSelected = false;\r\n //});\r\n }\r\n else {\r\n this.service.ServiceDate = event;\r\n this.times = [];\r\n\r\n //if (this.booking.fitting.technicianID != undefined) {\r\n // for (var q = 0; q < this.availability.length; q++) {\r\n // if (this.availability[q].TechnicianID == parseInt(this.booking.fitting.technicianID.code)) {\r\n // if (new Date(this.availability[q].AvailableDate).toDateString() == event.toDateString()) {\r\n // if (this.times.find(x => x.AvailableTime == this.availability[q].AvailableTime) === undefined)\r\n // this.times.push(this.availability[q]);\r\n // }\r\n // }\r\n // }\r\n\r\n // for (var a = 0; a < this.times.length; a++) {\r\n // this.times[a].Selected = false;\r\n // this.times[a].ID = a;\r\n // this.times[a].TechnicianID = this.booking.fitting.technicianID.code;\r\n // }\r\n //}\r\n //else\r\n {\r\n for (var q = 0; q < this.availability.length; q++) {\r\n if (new Date(this.availability[q].AvailableDate).toDateString() == event.toDateString()) {\r\n if (this.times.find(x => x.AvailableTime == this.availability[q].AvailableTime) === undefined) {\r\n this.times.push(this.availability[q]);\r\n this.times[this.times.length - 1].Selected = false;\r\n this.times[this.times.length - 1].ID = q;\r\n this.times[this.times.length - 1].TechnicianID = this.availability[q].TechnicianID;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.times.length > 0)\r\n this.times.sort((a, b) => (a.AvailableTime > b.AvailableTime) ? 1 : ((b.AvailableTime > a.AvailableTime) ? -1 : 0));\r\n\r\n }\r\n\r\n setTime(event, ID) {\r\n\r\n this.timeIsSelected = true;\r\n\r\n for (var i = 0; i < this.times.length; i++)\r\n this.times[i].Selected = false;\r\n\r\n this.times.find(x => x.ID == ID).Selected = true;\r\n this.service.ServiceDate.setHours(this.times.find(x => x.ID == ID).AvailableTime.substring(0, 2));\r\n this.service.ServiceDate.setMinutes(this.times.find(x => x.ID == ID).AvailableTime.substring(3, 5));\r\n this.service.ServiceDate.setSeconds(0);\r\n this.service.ServiceDate.setMilliseconds(0);\r\n this.service.TechnicianID = this.times.find(x => x.ID == ID).TechnicianID;\r\n console.log(this.service);\r\n }\r\n\r\n validate() {\r\n if (this.timeIsSelected && this.dateIsSelected)\r\n return false;\r\n\r\n return true;\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n\r\n\r\n \r\n \r\n
\r\n \r\n
{{selectedTechnician.name}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
{{country.name}}
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n

{{service.ServiceDate.getFullYear()}}

\r\n

{{service.ServiceDate.toLocaleString('default', { weekday: 'short' })}}, {{service.ServiceDate.toLocaleString('default', { month: 'short' })}} {{service.ServiceDate.getDate()}}

\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
0)\">\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { Services } from './../models';\r\nimport { sendToGTM } from './../../shared/GoogleTagManager';\r\n\r\n@Component({\r\n selector: 'app-reschedule-landing',\r\n templateUrl: './reschedule-landing.component.html',\r\n styleUrls: ['./reschedule-landing.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RescheduleLandingComponent implements OnInit {\r\n\r\n @Input() service: Services;\r\n @Output() cancel = new EventEmitter();\r\n @Output() rescheduleBooking = new EventEmitter();\r\n @Output() rescheduleCollection = new EventEmitter();\r\n @Output() rescheduleFitting = new EventEmitter();\r\n @Output() loadService = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n dataLayer: any;\r\n constructor(private gtmService: GoogleTagManagerService,) { }\r\n\r\n ngOnInit(): void {\r\n this.loadService.emit();\r\n this.service.CancellationID = 0;\r\n this.service.CancellationReason = \"\";\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_landing', 'Reschedule_Landing');\r\n }\r\n\r\n goToCancel() {\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'button_click_reschedule_cancel', 'Reschedule_Cancel');\r\n this.cancel.emit();\r\n }\r\n\r\n setRescheduleBooking() {\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'button_click_reschedule_booking', 'Reschedule_Booking');\r\n this.rescheduleBooking.emit();\r\n }\r\n\r\n setRescheduleAddress() {\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'button_click_reschedule_address', 'Reschedule_Address');\r\n this.rescheduleCollection.emit();\r\n }\r\n\r\n setRescheduleFitting() {\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'button_click_reschedule_fitting', 'Reschedule_Fitting');\r\n this.rescheduleFitting.emit();\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n \r\n

\r\n Hi {{service.Customer}}\r\n

\r\n \r\n

\r\n Your {{service.BikeName}}\r\n\r\n \r\n is booked in for a service on: {{service.ServiceDate | date:'EEEE d MMMM y'}}
\r\n
\r\n \r\n Is booked in for collection on: {{service.CollectionDate | date:'EEEE d MMMM y'}} at {{service.CollectionTime}}
\r\n
\r\n

\r\n \r\n \r\n

\r\n Not going to be in? You can change your booking below:
\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n Hi {{service.Customer}}\r\n \r\n

\r\n Your fitting is booked for {{service.ServiceDate | date:'EEEE d MMMM y'}} on your {{service.BikeName}}
\r\n

\r\n \r\n

\r\n Not going to be in? You can change your booking below:
\r\n

\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { GoogleTagManagerService } from 'angular-google-tag-manager';\r\nimport { sendToGTM } from 'src/app/shared/GoogleTagManager';\r\n\r\n@Component({\r\n selector: 'app-reschedule-upsell',\r\n templateUrl: './reschedule-upsell.component.html',\r\n styleUrls: ['./reschedule-upsell.component.scss']\r\n})\r\nexport class RescheduleUpsellComponent implements OnInit {\r\n\r\n @Input() service;\r\n @Output() goToUpsell = new EventEmitter();\r\n @Output() back = new EventEmitter();\r\n @Output() forward = new EventEmitter();\r\n loading: boolean = false;\r\n constructor( \r\n private gtmService: GoogleTagManagerService,\r\n ) { }\r\n \r\n ngOnInit(): void {\r\n sendToGTM(this.gtmService, this.service.Shop, 'GTM-NBCS83S', 'page_view_reschedule_upsell', 'reschedule_upsell');\r\n }\r\n\r\n goUpsell() {\r\n this.goToUpsell.emit();\r\n }\r\n\r\n goBack() {\r\n this.back.emit();\r\n }\r\n\r\n goNext() {\r\n this.forward.emit();\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n \r\n If it's easier, we can collect the bike with our van & return it to you fixed?\r\n \r\n

\r\n Instead of cancelling, we can take the hassle of drop-off out of your hands by picking up and delivering. Just let us know your address & what date we can pick up.\r\n

\r\n\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { trigger, style, animate, transition } from '@angular/animations';\r\n\r\nimport { Variables } from '../shared/variables';\r\nimport { Services } from '../reschedule/models';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { ServiceService } from '../services/service.service';\r\nimport { PartnerService } from '../services/partner.service';\r\n\r\n@Component({\r\n selector: 'app-reschedule',\r\n templateUrl: './reschedule.component.html',\r\n styleUrls: ['./reschedule.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n \r\n})\r\nexport class RescheduleComponent implements OnInit {\r\n\r\n customCSSUrl = null;\r\n\r\n bikeshop: string = \"\";\r\n bikeshopName: string = \"\";\r\n serviceID: string = \"\";\r\n service: Services = new Services();\r\n\r\n loading: boolean = false;\r\n progress: number = 25;\r\n currentStep: string = \"\";\r\n steps: MenuItem[];\r\n\r\n showLanding: boolean = true;\r\n showUpsell: boolean = false;\r\n showCancel: boolean = false;\r\n showConfirmBooking: boolean = false;\r\n showConfirmCollection: boolean = false;\r\n showRescheduleBooking: boolean = false;\r\n showRescheduleAddress: boolean = false;\r\n showRescheduleCollection: boolean = false;\r\n showRescheduleFitting: boolean = false;\r\n\r\n public currentPath: string = \"\";\r\n public currentStepPosition: number = -1;\r\n public rescheduleBookingsPath: any[] = ['reschedule_booking', 'reschedule_confirmation'];\r\n public rescheduleCollectionsPath: any[] = ['reschedule_collection_address', 'reschedule_collection_date', 'reschedule_confirmation'];\r\n public rescheduleCancellationsPath: any[] = ['reschedule_upsell', 'reschedule_cancellation'];\r\n public rescheduleFittingsPath: any[] = ['reschedule_fitting', 'reschedule_confirmation'];\r\n\r\n\r\n constructor(\r\n private translate: TranslateService,\r\n private sanitizer: DomSanitizer,\r\n private route: ActivatedRoute,\r\n private serviceService: ServiceService,\r\n private partnerService: PartnerService,\r\n private variables: Variables\r\n ) { }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n //this.bikeshop = this.route.snapshot.queryParamMap.get(\"shop\");\r\n this.serviceID = this.route.snapshot.queryParamMap.get(\"service\");\r\n this.service.ServiceID = this.serviceID;\r\n \r\n this.loadService();\r\n }\r\n\r\n loadService() {\r\n \r\n if (this.serviceID !== null) {\r\n this.service.ServiceID = this.serviceID;\r\n this.service.Shop = this.bikeshop;\r\n\r\n this.serviceService.getServiceByPartnerIDAndExternalServiceID(this.serviceID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n obj = obj.Services[0];\r\n this.bikeshop = obj.BikeShop;\r\n this.service.Shop = obj.BikeShop;\r\n this.service.BikeName = obj.BikeName;\r\n this.service.Address = obj.Address;\r\n this.service.FlatNo = obj.FlatNo;\r\n this.service.CollectionDate = obj.CollectionDate;\r\n this.service.Customer = obj.Customer.trim();\r\n this.service.ServiceDate = obj.ServiceDate;\r\n this.service.IsCollection = obj.Collection;\r\n this.service.IsService = !obj.Collection;\r\n this.service.ServiceTypes = obj.ServiceTypeID;\r\n\r\n this.service.CollectionNotes = obj.CollectionNotes;\r\n this.service.CollectionTime = obj.CollectionTime;\r\n this.service.IsDropOff = obj.DropOff;\r\n this.service.JobCard = obj.JobCard;\r\n this.service.Status = obj.Status;\r\n this.service.StatusID = obj.StatusID;\r\n \r\n this.loading = false;\r\n\r\n if (this.bikeshop !== null) {\r\n this.partnerService.getBikeshopsByExternalID(this.bikeshop).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n //console.log(obj);\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n this.bikeshopName = obj.Partners[i].Name;\r\n this.service.IsCollectionShop = obj.Partners[i].OffersCollections;\r\n if (!this.service.IsCollectionShop || this.service.StatusID == 16)\r\n if (this.rescheduleCancellationsPath.length > 1)\r\n this.rescheduleCancellationsPath = this.rescheduleCancellationsPath.slice(1);\r\n }\r\n });\r\n }\r\n\r\n //console.log(this.service);\r\n this.monitor(this.bikeshop);\r\n this.customCSSUrl = this.transform(this.bikeshop);\r\n \r\n });\r\n }\r\n }\r\n\r\n setAllToFalse() {\r\n this.showLanding = false;\r\n this.showCancel = false;\r\n this.showConfirmBooking = false;\r\n this.showConfirmCollection = false;\r\n this.showRescheduleBooking = false;\r\n this.showRescheduleAddress = false;\r\n this.showRescheduleCollection = false;\r\n this.showRescheduleFitting = false;\r\n this.showUpsell = false;\r\n\r\n if (this.currentStepPosition <= -1) {\r\n this.showLanding = true;\r\n this.currentStepPosition = -1;\r\n this.progress = 25;\r\n return;\r\n }\r\n\r\n }\r\n\r\n goToRescheduleBooking() {\r\n this.currentStepPosition = -1;\r\n this.currentPath = \"booking\";\r\n this.service.Path = \"booking\";\r\n this.goToNext();\r\n }\r\n goToRescheduleFitting() {\r\n this.currentStepPosition = -1;\r\n this.currentPath = \"fitting\";\r\n this.service.Path = \"fitting\";\r\n this.goToNext();\r\n }\r\n goToRescheduleCollection() {\r\n this.currentStepPosition = -1;\r\n this.currentPath = \"collection\";\r\n this.service.Path = \"collection\";\r\n this.goToNext();\r\n }\r\n goToRescheduleCancellation() {\r\n this.currentStepPosition = -1;\r\n this.currentPath = \"cancellation\";\r\n this.service.Path = \"cancellation\";\r\n this.goToNext();\r\n }\r\n\r\n goToNext() {\r\n this.currentStepPosition += 1;\r\n if (this.currentPath === \"booking\")\r\n this.moveRescheduleBookingPath();\r\n if (this.currentPath === \"collection\")\r\n this.moveRescheduleCollectionPath();\r\n if (this.currentPath === \"cancellation\")\r\n this.moveRescheduleCancellationPath();\r\n if (this.currentPath === \"fitting\")\r\n this.moveRescheduleFittingPath();\r\n }\r\n\r\n goToPrevious() {\r\n this.currentStepPosition -= 1;\r\n if (this.currentPath === \"booking\")\r\n this.moveRescheduleBookingPath();\r\n if (this.currentPath === \"collection\")\r\n this.moveRescheduleCollectionPath();\r\n if (this.currentPath === \"cancellation\")\r\n this.moveRescheduleCancellationPath();\r\n if (this.currentPath === \"fitting\")\r\n this.moveRescheduleFittingPath();\r\n }\r\n\r\n moveRescheduleBookingPath() {\r\n this.setAllToFalse();\r\n\r\n if (this.rescheduleBookingsPath[this.currentStepPosition] == \"reschedule_booking\") {\r\n this.showRescheduleBooking = true;\r\n this.progress = 66;\r\n }\r\n if (this.rescheduleBookingsPath[this.currentStepPosition] == \"reschedule_confirmation\") {\r\n this.showConfirmBooking = true;\r\n this.progress = 100;\r\n }\r\n }\r\n\r\n moveRescheduleCollectionPath() {\r\n this.setAllToFalse();\r\n\r\n if (this.rescheduleCollectionsPath[this.currentStepPosition] == \"reschedule_collection_address\") {\r\n this.showRescheduleAddress = true;\r\n this.progress = 50;\r\n }\r\n if (this.rescheduleCollectionsPath[this.currentStepPosition] == \"reschedule_collection_date\") {\r\n this.showRescheduleCollection = true;\r\n this.progress = 75;\r\n }\r\n if (this.rescheduleCollectionsPath[this.currentStepPosition] == \"reschedule_confirmation\") {\r\n this.showConfirmCollection = true;\r\n this.progress = 100;\r\n }\r\n }\r\n\r\n moveRescheduleCancellationPath() {\r\n this.setAllToFalse();\r\n\r\n if (this.rescheduleCancellationsPath[this.currentStepPosition] == \"reschedule_upsell\") {\r\n this.showUpsell = true;\r\n this.progress = 66;\r\n }\r\n\r\n if (this.rescheduleCancellationsPath[this.currentStepPosition] == \"reschedule_cancellation\") {\r\n this.showCancel = true;\r\n this.progress = 100;\r\n }\r\n\r\n }\r\n\r\n moveRescheduleFittingPath() {\r\n this.setAllToFalse();\r\n\r\n if (this.rescheduleFittingsPath[this.currentStepPosition] == \"reschedule_fitting\") {\r\n this.showRescheduleFitting = true;\r\n this.progress = 66;\r\n }\r\n\r\n if (this.rescheduleFittingsPath[this.currentStepPosition] == \"reschedule_confirmation\") {\r\n this.showConfirmBooking = true;\r\n this.progress = 100;\r\n }\r\n\r\n }\r\n\r\n transform(shop) {\r\n\r\n setTimeout(() => {\r\n\r\n }, 1);\r\n this.variables.getURL()\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(this.variables.getURL() + \"2021-01/partner/styles/widget/\" + shop);\r\n\r\n }\r\n\r\n monitor(shop) {\r\n let node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/tracking/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n\r\n node = document.createElement('script'); // creates the script tag\r\n node.src = this.variables.getURL() + \"2021-01/partner/body/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n //node.text = 'alert(\\'Hi\\')';\r\n // append to head of document\r\n document.getElementsByTagName('body')[0].appendChild(node);\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{{currentStep}}

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n

\r\n\r\n {{ 'label.poweredby' | translate }}:\r\n \"Short\r\n
\r\n 0\">\r\n {{ 'label.for' | translate }} {{bikeshopName}}\r\n \r\n

\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { Countries } from './../../classes/countries';\r\nimport { Bookings } from '../../classes/bookings';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserService } from './../../services/user.service';\r\nimport { PartnerService } from '../../services/partner.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-search-customer',\r\n templateUrl: './search-customer.component.html',\r\n styleUrls: ['./search-customer.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class SearchCustomerComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private userService: UserService,\r\n private partnerService: PartnerService,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n loading: boolean = false;\r\n loadingShop: boolean = false;\r\n\r\n countries: any[];\r\n selectedCountry: any;\r\n lobjCountries: Countries;\r\n\r\n public hearAboutOptions: any[] = [];\r\n\r\n ngOnInit(): void {\r\n\r\n //Countries list sits in the classes folder as not to clutter, so we load from there\r\n this.lobjCountries = new Countries();\r\n this.countries = this.lobjCountries.getCountries();\r\n\r\n //If not a franchise get the shop id\r\n var shop = this.route.snapshot.queryParamMap.get(\"shop\");\r\n if (shop !== null && shop !== undefined) {\r\n this.loadingShop = true;\r\n this.loading = true;\r\n this.booking.shop.partnerID = shop;\r\n this.partnerService.getBikeshopsByExternalID(shop).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.booking.shop.country = obj.Partners[0].Country;\r\n this.booking.shop.currencySymbol = obj.Partners[0].CurrencySymbol;\r\n this.booking.shop.address = obj.Partners[0].PhysicalAddress;\r\n this.booking.shop.name = obj.Partners[0].Name;\r\n this.booking.shop.lat = obj.Partners[0].Latitude;\r\n this.booking.shop.lng = obj.Partners[0].Longitude;\r\n this.booking.shop.doesCollections = obj.Partners[0].OffersCollections;\r\n this.booking.shop.doesDropOff = obj.Partners[0].OffersDropOffs;\r\n this.booking.shop.payment = obj.Partners[0].WidgetAllowPayments;\r\n this.booking.shop.showTechnicianImages = obj.Partners[0].FittingsShowTechnicianImage;\r\n this.booking.shop.depositConfiguration = obj.Partners[0].DepositConfiguration;\r\n\r\n //Set the selected country based on the bike shops country\r\n this.selectedCountry = this.countries.find(x => x.code === this.booking.shop.country);\r\n\r\n this.booking.client.dialCode = this.selectedCountry.dial_code;\r\n this.booking.client.country = this.selectedCountry.code;\r\n this.loadingShop = false;\r\n this.loading = false;\r\n });\r\n }\r\n else {\r\n //Set the selected country based on the bike shops country\r\n this.selectedCountry = this.countries.find(x => x.code === this.booking.shop.country);\r\n\r\n this.booking.client.dialCode = this.selectedCountry.dial_code;\r\n this.booking.client.country = this.selectedCountry.code;\r\n }\r\n\r\n\r\n this.setHearAbout();\r\n }\r\n\r\n setHearAbout() {\r\n //this.hearAboutOptions.push({ name: \"\", code: \"\"});\r\n this.translate.get(\"hear-about.street\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.word\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.google\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.facebook\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.instagram\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.paper\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.work\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.flyer\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.customer\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n this.translate.get(\"hear-about.other\").subscribe(response => { this.hearAboutOptions.push({ name: response, code: response }); });\r\n }\r\n\r\n setCountry(event) {\r\n this.booking.client.country = event.value.code;\r\n this.booking.client.dialCode = event.value.dial_code;\r\n }\r\n\r\n searchByPhone() {\r\n this.booking.errors = \"\";\r\n\r\n if (this.booking.client.mobile.length == 0)\r\n return;\r\n\r\n this.loading = true;\r\n var user = this.userService.getUserByPhone(this.booking.client.mobile, this.booking.client.country, this.booking.client.dialCode).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n\r\n if (obj.Users.length == 0) {\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n this.booking.client.name = obj.Users[0].Name;\r\n this.booking.client.surname = obj.Users[0].Surname;\r\n this.booking.client.email = obj.Users[0].Email;\r\n this.booking.client.ID = obj.Users[0].ID;\r\n this.booking.pickup.mobile = this.booking.client.mobile.length == 0 ? obj.Users[0].PhoneNumber : this.booking.client.mobile;\r\n this.booking.pickup.dialCode = this.booking.client.dialCode;\r\n this.booking.pickup.country = this.booking.client.country;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n searchByEmail() {\r\n\r\n if (this.booking.client.email.length == 0)\r\n return;\r\n\r\n\r\n this.loading = true;\r\n var user = this.userService.getUserByEmail(this.booking.client.email).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n\r\n if (obj.Users.length == 0) {\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n this.booking.client.name = obj.Users[0].Name;\r\n this.booking.client.surname = obj.Users[0].Surname;\r\n this.booking.client.email = obj.Users[0].Email;\r\n this.booking.client.ID = obj.Users[0].ID;\r\n this.booking.pickup.mobile = this.booking.client.mobile;\r\n this.booking.pickup.dialCode = this.booking.client.dialCode;\r\n this.booking.pickup.country = this.booking.client.country;\r\n this.booking.client.mobile = obj.Users[0].PhoneNumber;\r\n this.loading = false;\r\n });\r\n }\r\n}\r\n","
\r\n

{{ 'label.your-details' | translate }}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
{{selectedCountry.dial_code}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
{{country.dial_code}} ({{country.name}})
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { Bookings, Bike, Service } from '../../classes/bookings';\r\nimport { BikeService } from './../../services/bike.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-select-bikes',\r\n templateUrl: './select-bikes.component.html',\r\n styleUrls: ['./select-bikes.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class SelectBikesComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n loading: boolean = false;\r\n addAnotherBike: boolean = false;\r\n\r\n public bikes: any[] = [];\r\n\r\n newBikeName: string = \"\";\r\n newBikeManufacturer: string = \"\";\r\n newBikeModel: string = \"\";\r\n newBikeColour: string = \"\";\r\n newBikeID: number = -1;\r\n constructor(\r\n private bikeService: BikeService,\r\n private translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.loading = true;\r\n this.bikeService.getBikeByUser(this.booking.client.ID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.bikes = obj.Bikes;\r\n\r\n for (var i = 0; i < this.bikes.length; i++) {\r\n this.bikes[i].selected = false;\r\n }\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID < 0 && this.booking.bikes[i].ID !== -1000) {\r\n this.bikes.push({\r\n SerialNo: this.booking.bikes[i].serialNo,\r\n Colour: this.booking.bikes[i].colour,\r\n Manufacturer: this.booking.bikes[i].manufacturer,\r\n Model: this.booking.bikes[i].model,\r\n RefNo: this.booking.bikes[i].refno,\r\n Selected: this.booking.bikes[i].selected,\r\n ID: this.booking.bikes[i].ID\r\n });\r\n if (this.newBikeID > this.booking.bikes[i].ID)\r\n this.newBikeID = this.booking.bikes[i].ID;\r\n }\r\n }\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID !== -1000)\r\n this.bikes.find(x => x.ID === this.booking.bikes[i].ID).Selected = true;\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n setBikes(ID) {\r\n\r\n if (this.bikes.find(x => x.ID === ID).selected === true)\r\n this.bikes.find(x => x.ID === ID).selected = false;\r\n else\r\n this.bikes.find(x => x.ID === ID).selected = true;\r\n\r\n if (this.booking.bikes.find(x => x.ID === ID)) {\r\n var key = this.booking.bikes.find(x => x.ID === ID);\r\n var index = this.booking.bikes.indexOf(key, 0);\r\n if (index > -1) {\r\n this.booking.bikes.splice(index, 1);\r\n\r\n }\r\n }\r\n else {\r\n var selectedBike = this.bikes.find(x => x.ID === ID);\r\n var bike = {} as Bike;\r\n bike.ID = selectedBike.ID;\r\n bike.colour = selectedBike.Colour;\r\n bike.manufacturer = selectedBike.Manufacturer;\r\n bike.model = selectedBike.Model;\r\n bike.refno = selectedBike.RefNo;\r\n bike.serialNo = selectedBike.SerialNo;\r\n bike.selected = true;\r\n bike.services = new Service();\r\n this.booking.bikes.push(bike);\r\n }\r\n }\r\n\r\n showAddBike() {\r\n this.addAnotherBike = !this.addAnotherBike;\r\n this.newBikeColour = \"\";\r\n this.newBikeManufacturer = \"\";\r\n this.newBikeModel = \"\";\r\n this.newBikeName = \"\";\r\n }\r\n\r\n addBike() {\r\n this.booking.errors = \"\";;\r\n if (this.newBikeManufacturer.length == 0) {\r\n this.translate.get(\"error.no-bike-name\").subscribe(response => {\r\n this.booking.errors = response;\r\n });\r\n\r\n return;\r\n }\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID < 0) {\r\n if (this.newBikeID >= this.booking.bikes[i].ID)\r\n this.newBikeID = this.booking.bikes[i].ID - 1;\r\n }\r\n }\r\n\r\n var bike = {} as Bike;\r\n bike.ID = this.newBikeID;\r\n bike.colour = this.newBikeColour;\r\n bike.manufacturer = this.newBikeManufacturer;\r\n bike.model = this.newBikeModel;\r\n bike.refno = this.newBikeName;\r\n bike.serialNo = \"\";\r\n bike.selected = true;\r\n bike.services = new Service();\r\n\r\n this.booking.bikes.push(bike);\r\n this.bikes.push({\r\n ID: this.newBikeID,\r\n SerialNo: \"\",\r\n Colour: this.newBikeColour,\r\n Manufacturer: this.newBikeManufacturer,\r\n Model: this.newBikeModel,\r\n RefNo: this.newBikeName,\r\n Selected: true\r\n });\r\n this.newBikeID -= 1;\r\n this.showAddBike();\r\n }\r\n}\r\n","
\r\n

{{ 'label.your-bike-details' | translate }}

\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n

{{ 'label.no-bikes-found' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \"Short\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \"Short\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { Bookings, Bike, Service } from '../../classes/bookings';\r\nimport { ServiceService } from './../../services/service.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-select-fitting-date',\r\n templateUrl: './select-fitting-date.component.html',\r\n styleUrls: ['./select-fitting-date.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SelectFittingDateComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n constructor(private serviceService: ServiceService,\r\n private translate: TranslateService) { }\r\n minDate: Date = new Date();\r\n startDate = new Date();\r\n endDate = new Date();\r\n invalidDates: any[] = [];\r\n validOnes: Date[] = [];\r\n loading: boolean = true;\r\n\r\n technicians: any[] = [];\r\n availability: any[] = [];\r\n times: any[] = [];\r\n selectFitter: boolean = false;\r\n\r\n selectedTechnician: string = \"\";\r\n\r\n ngOnInit(): void {\r\n this.booking.dateSelected = false;\r\n this.minDate = new Date();\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.startDate = new Date();\r\n //this.setDates();\r\n\r\n console.log(this.booking);\r\n\r\n this.getAvailability();\r\n\r\n }\r\n\r\n getAvailability() {\r\n this.times = [];\r\n this.loading = true;\r\n var services = \"\";\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n services += \",\" + this.booking.bikes[i].services.services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n }\r\n\r\n var date = this.booking.date.getFullYear() + '-' + (\"0\" + (this.booking.date.getMonth() + 1)).slice(-2) + '-' + (\"0\" + this.booking.date.getDate()).slice(-2)\r\n this.serviceService.getAvailabilityTimesByPartnerIDAndServiceID(this.booking.shop.partnerID, date, services, 0).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.availability = obj.Availability;\r\n\r\n this.invalidDates = [];\r\n this.validOnes = [];\r\n\r\n while (this.startDate <= this.endDate) {\r\n var d = new Date(this.startDate);\r\n\r\n\r\n if (d.getTimezoneOffset() >= 0)\r\n d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n else\r\n d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n\r\n\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d.toISOString().substring(0, 10));\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n }\r\n\r\n for (var i = 0; i < obj.Availability.length; i++) {\r\n if (this.validOnes.find(x => x == obj.Availability[i].AvailableDate) === undefined)\r\n this.validOnes.push(obj.Availability[i].AvailableDate);\r\n }\r\n\r\n for (var i = 0; i < obj.Availability.length; i++) {\r\n if (this.technicians.find(x => x.code == obj.Availability[i].TechnicianID) === undefined)\r\n this.technicians.push(\r\n {\r\n code: obj.Availability[i].TechnicianID,\r\n name: obj.Availability[i].Technician,\r\n img: obj.Availability[i].TechnicianImage\r\n });\r\n }\r\n\r\n console.log(this.technicians);\r\n\r\n var values = this.validOnes.map(function (date) { return date; });\r\n var unique = this.invalidDates.filter(function (date) { return values.indexOf(date) == -1 });\r\n for (var i = 0; i < unique.length; i++) {\r\n unique[i] = new Date(unique[i]);\r\n }\r\n this.invalidDates = unique;\r\n this.loading = false;\r\n\r\n });\r\n }\r\n\r\n chooseFitter(event) {\r\n this.loading = true;\r\n this.invalidDates = [];\r\n this.validOnes = [];\r\n\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.startDate = new Date();\r\n while (this.startDate <= this.endDate) {\r\n var d = new Date(this.startDate);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d.toISOString().substring(0, 10));\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n }\r\n\r\n for (var i = 0; i < this.availability.length; i++) {\r\n if (this.availability[i].TechnicianID == event.value.code) {\r\n if (this.validOnes.find(x => x == this.availability[i].AvailableDate) === undefined)\r\n this.validOnes.push(this.availability[i].AvailableDate);\r\n }\r\n }\r\n\r\n var values = this.validOnes.map(function (date) { return date; });\r\n var unique = this.invalidDates.filter(function (date) { return values.indexOf(date) == -1 });\r\n for (var i = 0; i < unique.length; i++) {\r\n unique[i] = new Date(unique[i]);\r\n }\r\n this.invalidDates = unique;\r\n\r\n this.loading = false;\r\n }\r\n\r\n\r\n monthChanged(event) {\r\n //console.log(event, this.startDate, this.endDate);\r\n this.startDate.setFullYear(event.year, event.month - 1, 0);\r\n this.endDate.setFullYear(event.year, event.month, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.minDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n\r\n if (this.minDate < new Date())\r\n this.minDate = new Date();\r\n\r\n this.booking.date = this.minDate;\r\n console.log(this.startDate);\r\n console.log(this.endDate);\r\n console.log(this.minDate);\r\n console.log(this.booking.date);\r\n //this.booking.date.setHours(this.booking.date.getHours() - (this.booking.date.getHours() - (this.booking.date.getTimezoneOffset() / 60)))\r\n this.getAvailability();\r\n //this.setDates(this.minDate);\r\n //console.log(event, this.startDate, this.endDate);\r\n\r\n }\r\n\r\n dateSelected(event) {\r\n\r\n for (var i = 0; i < this.invalidDates.length; i++) {\r\n if (this.invalidDates[i] == event) {\r\n this.translate.get(\"error.date-no-availability\").subscribe(response => {\r\n this.booking.errors = response;\r\n this.booking.dateSelected = false;\r\n });\r\n }\r\n else {\r\n this.booking.date = event;\r\n this.booking.dateSelected = true;\r\n this.times = [];\r\n\r\n if (this.booking.fitting.technicianID != undefined) {\r\n for (var q = 0; q < this.availability.length; q++) {\r\n if (this.availability[q].TechnicianID == parseInt(this.booking.fitting.technicianID.code)) {\r\n if (new Date(this.availability[q].AvailableDate).toDateString() == event.toDateString()) {\r\n if (this.times.find(x => x.AvailableTime == this.availability[q].AvailableTime) === undefined)\r\n this.times.push(this.availability[q]);\r\n }\r\n }\r\n }\r\n\r\n for (var a = 0; a < this.times.length; a++) {\r\n this.times[a].Selected = false;\r\n this.times[a].ID = a;\r\n this.times[a].TechnicianID = this.booking.fitting.technicianID.code;\r\n }\r\n }\r\n else {\r\n for (var q = 0; q < this.availability.length; q++) {\r\n if (new Date(this.availability[q].AvailableDate).toDateString() == event.toDateString()) {\r\n if (this.times.find(x => x.AvailableTime == this.availability[q].AvailableTime) === undefined) {\r\n this.times.push(this.availability[q]);\r\n this.times[this.times.length - 1].Selected = false;\r\n this.times[this.times.length - 1].ID = q;\r\n this.times[this.times.length - 1].TechnicianID = this.availability[q].TechnicianID;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.times.length > 0)\r\n this.times.sort((a, b) => (a.AvailableTime > b.AvailableTime) ? 1 : ((b.AvailableTime > a.AvailableTime) ? -1 : 0));\r\n\r\n }\r\n\r\n //getTimes(event) {\r\n // for (var i = 0; i < this.booking.bikes.length; i++) {\r\n // var services = \"\";\r\n // for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n // if (this.booking.bikes[i].services.services[a].selected == true)\r\n // services += \",\" + this.booking.bikes[i].services.services[a].ID;\r\n // if (services.startsWith(\",\", 0))\r\n // services = services.substring(1);\r\n // }\r\n\r\n // //First time we run this and there are no times selected yet\r\n // if (this.availability.length == 0) {\r\n // this.serviceService.getAvailabilityTimesByPartnerIDAndServiceID(this.booking.shop.partnerID, this.booking.date.toISOString().substring(0, 10), services, event.value.code).subscribe(response => {\r\n // var obj = JSON.parse(JSON.stringify(response));\r\n // //console.log(obj);\r\n // if (obj !== null) {\r\n // this.availability = obj.Availability;\r\n // this.times = this.availability.filter(x => x.AvailableDate == this.booking.date.toISOString().substring(0, 10));\r\n // for (var i = 0; i < this.times.length; i++)\r\n // this.times[i].Selected = false;\r\n\r\n // console.log(this.times);\r\n // this.booking.fitting.technicianID = event.value.code;\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // //This is if they select a new technician\r\n // if (this.availability[0].TechnicianID !== event.value.code) {\r\n // this.serviceService.getAvailabilityTimesByPartnerIDAndServiceID(this.booking.shop.partnerID, this.booking.date.toISOString().substring(0, 10), services, event.value.code).subscribe(response => {\r\n // var obj = JSON.parse(JSON.stringify(response));\r\n // //console.log(obj);\r\n // if (obj !== null) {\r\n // this.availability = obj.Availability;\r\n // this.times = this.availability.filter(x => x.AvailableDate == this.booking.date.toISOString().substring(0, 10));\r\n // for (var i = 0; i < this.times.length; i++)\r\n // this.times[i].Selected = false;\r\n // console.log(this.times);\r\n // this.booking.fitting.technicianID = event.value.code;\r\n // }\r\n // });\r\n // }\r\n // else {\r\n\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n\r\n //}\r\n\r\n setTime(event, ID) {\r\n console.log(event);\r\n console.log(ID);\r\n\r\n for (var i = 0; i < this.times.length; i++)\r\n this.times[i].Selected = false;\r\n\r\n this.times.find(x => x.ID == ID).Selected = true;\r\n this.booking.date.setHours(this.times.find(x => x.ID == ID).AvailableTime.substring(0, 2));\r\n this.booking.date.setMinutes(this.times.find(x => x.ID == ID).AvailableTime.substring(3, 5));\r\n this.booking.date.setSeconds(0);\r\n this.booking.date.setMilliseconds(0);\r\n this.booking.fitting.technicianID = this.times.find(x => x.ID == ID).TechnicianID;\r\n\r\n }\r\n}\r\n","\r\n
\r\n

{{ 'label.select-fitting-date' | translate }}

\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n
\r\n \r\n
{{selectedTechnician.name}}
\r\n
\r\n
\r\n \r\n
\r\n \r\n
{{country.name}}
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n

{{booking.date.getFullYear()}}

\r\n

{{booking.date.toLocaleString('default', { weekday: 'short' })}}, {{booking.date.toLocaleString('default', { month: 'short' })}} {{booking.date.getDate()}}

\r\n
\r\n \r\n
\r\n
\r\n\r\n
0)\">\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\r\nimport { Bookings, Service } from '../../classes/bookings';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { invalid } from '@angular/compiler/src/render3/view/util';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-select-service-date',\r\n templateUrl: './select-service-date.component.html',\r\n styleUrls: ['./select-service-date.component.scss']\r\n})\r\nexport class SelectServiceDateComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n\r\n constructor(private serviceService: ServiceService,\r\n private translate: TranslateService) { }\r\n minDate: Date = new Date();\r\n startDate = new Date();\r\n endDate = new Date();\r\n invalidDates: Date[] = [];\r\n validOnes: Date[] = [];\r\n loading: boolean = true;\r\n availability: any[] = [];\r\n\r\n collections: any[] = [];\r\n noSpace: boolean = false;\r\n collectionTimes: any[];\r\n times: any[] = [];\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n\r\n if (this.booking.type == \"collection\") {\r\n //Get the pick up times\r\n this.serviceService.getPickUpTimesByPartnerID(this.booking.shop.partnerID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.collectionTimes = [];\r\n this.collectionTimes = obj.PickupTimes;\r\n this.booking.pickup.date = new Date();\r\n\r\n this.serviceService.getPickUpAvailabilityByPartnerID(this.booking.shop.partnerID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.collections = obj.Availability;\r\n if (this.collections.length > 0)\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + obj.Availability[0].CollectionsDayBuffer));\r\n\r\n this.loading = false;\r\n\r\n\r\n this.booking.dateSelected = false;\r\n this.minDate = new Date();\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 1, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.startDate = new Date();\r\n this.setDates();\r\n console.log(this.booking.date);\r\n\r\n });\r\n\r\n });\r\n }\r\n else {\r\n this.booking.dateSelected = false;\r\n this.minDate = new Date();\r\n this.minDate = new Date(this.minDate.setDate(this.minDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.startDate = new Date();\r\n this.setDates();\r\n console.log(this.booking.date);\r\n }\r\n }\r\n\r\n setDates(date = new Date(), buildCalendar = true) {\r\n\r\n this.startDate = new Date(date);\r\n if (buildCalendar) {\r\n this.loading = true;\r\n this.invalidDates = [];\r\n this.validOnes = [];\r\n }\r\n var serviceCount = 0;\r\n var time = this.endDate.getTime() - this.startDate.getTime();\r\n var dayCount = time / (1000 * 3600 * 24);\r\n dayCount = parseInt(dayCount.toFixed(0));\r\n dayCount = dayCount * this.booking.bikes.length;\r\n\r\n var services = \"\";\r\n\r\n //Set all dates as invalid\r\n if (buildCalendar) {\r\n while (this.startDate <= this.endDate) {\r\n var d = new Date(this.startDate);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.invalidDates.push(d);\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n }\r\n }\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n this.booking.bikes[i].services.technicianID = 0;\r\n this.booking.bikes[i].services.date = null;\r\n }\r\n\r\n this.startDate = new Date(date);\r\n //while (this.startDate <= this.endDate)\r\n {\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].services.technicianID == 0) {\r\n services = \"\";\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n services += \",\" + this.booking.bikes[i].services.services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n\r\n this.serviceService.getAvailabilityByPartnerIDAndServiceID(this.booking.shop.partnerID, this.startDate.toISOString().substring(0, 10), services, this.booking.bikes[i].ID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n console.log(obj.Availability);\r\n this.availability = obj.Availability;\r\n for (var b = 0; b < obj.Availability.length; b++) {\r\n if (obj.Availability[b].CanDoWork && buildCalendar) {\r\n var d = new Date(obj.Availability[b].Date);\r\n\r\n if (d.getTimezoneOffset() >= 0)\r\n d = new Date(d.setTime(d.getTime() + (d.getTimezoneOffset() * 60000)));\r\n else\r\n d = new Date(d.setTime(d.getTime() - (d.getTimezoneOffset() * 60000)));\r\n\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n this.validOnes.push(d);\r\n }\r\n if (obj.Availability[b].CanDoWork) {\r\n var d = new Date(obj.Availability[b].Date);\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n try {\r\n if (buildCalendar) {\r\n if (this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date == null ||\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date.getTime() > d.getTime()) {\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.technicianID = obj.Availability[b].ID;\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date = d;\r\n }\r\n }\r\n else {\r\n if (this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date == null ||\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date.getTime() > d.getTime()) {\r\n if (d.getTime() <= date.getTime()) {\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.technicianID = obj.Availability[b].ID;\r\n this.booking.bikes.find(x => x.ID == obj.Availability[b].BikeID).services.date = d;\r\n }\r\n }\r\n }\r\n } catch (exception) { }\r\n }\r\n }\r\n\r\n var newInvalids = [];\r\n\r\n if (this.booking.type == \"collection\") {\r\n\r\n for (var i = 0; i < this.validOnes.length; i++) {\r\n if (this.collectionTimes.findIndex(x => x.Day == this.validOnes[i].getDay()) == -1) {\r\n this.validOnes.splice(this.validOnes.findIndex(x => x == this.validOnes[i]), 1);\r\n i = 0;\r\n }\r\n }\r\n\r\n console.log(this.validOnes);\r\n console.log(this.collectionTimes);\r\n\r\n }\r\n\r\n var values = this.validOnes.map(function (date) { return date.getTime(); });\r\n var unique = this.invalidDates.filter(function (date) { return values.indexOf(date.getTime()) == -1 });\r\n this.invalidDates = unique;\r\n\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].services.date == null)\r\n this.booking.bikes[i].services.date = date;\r\n if (this.booking.bikes[i].services.date.getTime() <= date.getTime())\r\n this.booking.date = date;\r\n }\r\n this.booking.date = date;\r\n this.loading = false;\r\n \r\n\r\n });\r\n\r\n }\r\n }\r\n\r\n this.startDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n\r\n }\r\n\r\n }\r\n\r\n monthChanged(event) {\r\n this.startDate.setFullYear(event.year, event.month - 1, 0);\r\n this.endDate.setFullYear(event.year, event.month, 0);\r\n this.endDate = new Date(this.endDate.setDate(this.endDate.getDate() + 1));\r\n this.endDate.setFullYear(this.endDate.getFullYear(), this.endDate.getMonth() + 12, 0);\r\n this.minDate = new Date(this.startDate.setDate(this.startDate.getDate() + 1));\r\n if (this.minDate < new Date()) {\r\n this.minDate = new Date(new Date().setDate(new Date().getDate() + 1));\r\n }\r\n this.setDates(this.minDate);\r\n\r\n }\r\n\r\n dateSelected(event) {\r\n console.log(event);\r\n console.log(this.availability);\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n var services = \"\";\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n services += \",\" + this.booking.bikes[i].services.services[a].ID;\r\n if (services.startsWith(\",\", 0))\r\n services = services.substring(1);\r\n }\r\n\r\n var avail = this.availability.find(x => x.Date == (event.getFullYear() + \"-\" + (\"0\" + (event.getMonth() + 1)).slice(-2) + \"-\" + (\"0\" + event.getDate()).slice(-2)));\r\n\r\n var d = new Date(avail.Date);\r\n\r\n var offset = 0;\r\n if (d.getTimezoneOffset() > 0)\r\n offset = d.getTimezoneOffset() * -1;\r\n d.setTime(d.getTime() - (offset * 60000));\r\n\r\n d.setHours(0);\r\n d.setMinutes(0);\r\n d.setSeconds(0);\r\n d.setMilliseconds(0);\r\n\r\n this.booking.date = d;\r\n this.booking.bikes.find(x => x.ID == avail.BikeID).services.technicianID = avail.ID;\r\n this.booking.bikes.find(x => x.ID == avail.BikeID).services.date = d;\r\n this.booking.dateSelected = true;\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n setCollectionTime(event) {\r\n\r\n this.noSpace = false;\r\n\r\n if (this.collections.findIndex(x => new Date(x.CollectionDate).toDateString() == this.booking.pickup.date.toDateString() && x.TimeSlot == event.value.name) > -1)\r\n if (this.collections.find(x => new Date(x.CollectionDate).toDateString() == this.booking.pickup.date.toDateString() && x.TimeSlot == event.value.name).AvailableSlots >= this.booking.bikes.length) {\r\n this.booking.pickup.time = event.value.name;\r\n this.booking.pickup.timeID = event.value.code;\r\n }\r\n else {\r\n this.noSpace = true;\r\n }\r\n else {\r\n if (this.collections.findIndex(x => new Date(x.CollectionDate).toDateString() == this.booking.pickup.date.toDateString() && x.TimeSlot == event.value.name) == -1) {\r\n this.booking.pickup.time = event.value.name;\r\n this.booking.pickup.timeID = event.value.code;\r\n }\r\n else {\r\n if (this.collections.length == 0) {\r\n this.booking.pickup.time = event.value.name;\r\n this.booking.pickup.timeID = event.value.code;\r\n }\r\n }\r\n }\r\n console.log(this.collections);\r\n\r\n }\r\n\r\n}\r\n\r\n","\r\n
\r\n

{{ 'label.select-service-date' | translate }}

\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n

{{booking.date.getFullYear()}}

\r\n

{{booking.date.toLocaleString('default', { weekday: 'short' })}}, {{booking.date.toLocaleString('default', { month: 'short' })}} {{booking.date.getDate()}}

\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
{{ 'label.pick-up-time' | translate }}*
\r\n \r\n\r\n

{{ 'error.no-more-collection-spaces' | translate }}

\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { Bookings, Bike, Service } from '../../classes/bookings';\r\nimport { ServiceService } from './../../services/service.service';\r\n\r\n@Component({\r\n selector: 'app-select-service-types',\r\n templateUrl: './select-service-types.component.html',\r\n styleUrls: ['./select-service-types.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SelectServiceTypesComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n public services: any[] = [];\r\n public selectedServices: any[] = [];\r\n public groups: any[] = [];\r\n public loading: boolean = false;\r\n\r\n constructor(\r\n private serviceService: ServiceService\r\n ) { }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this.booking.shop.collections = false;\r\n this.booking.total = 0;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total += this.booking.bikes[i].services.services[a].cost;\r\n }\r\n }\r\n\r\n this.loading = true;\r\n this.serviceService.getServiceTypesByPartnerID(this.booking.shop.partnerID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n\r\n for (var i = 0; i < obj.Services.length; i++) {\r\n if (this.groups.indexOf(obj.Services[i].GroupName) < 0) {\r\n this.groups.push(obj.Services[i].GroupName);\r\n }\r\n\r\n if (this.booking.bikes.length == 0) {\r\n this.booking.bikes.push(\r\n {\r\n colour: \"\",\r\n ID: -1000,\r\n manufacturer: \"\",\r\n model: \"\",\r\n refno: \"\",\r\n selected: false,\r\n serialNo: \"\",\r\n typeID: \"\",\r\n services: new Service()\r\n }\r\n )\r\n }\r\n\r\n for (var x = 0; x < this.booking.bikes.length; x++) {\r\n if (this.booking.bikes[x].services.services.findIndex(a => a.ID == obj.Services[i].ID) < 0) {\r\n this.booking.bikes[x].services.bikeID = this.booking.bikes[x].ID;\r\n this.booking.bikes[x].services.services.push({\r\n ID: obj.Services[i].ID,\r\n groupName: obj.Services[i].GroupName,\r\n serviceTypeDescription: obj.Services[i].ServiceTypeDescription,\r\n cost: obj.Services[i].Cost,\r\n hours: obj.Services[i].Hours,\r\n additionalInformation: obj.Services[i].AdditionalInformation,\r\n isFitting: obj.Services[i].IsFitting,\r\n radius: obj.Services[i].Radius,\r\n selected: false,\r\n notes: \"\"\r\n });\r\n }\r\n }\r\n }\r\n\r\n //Clean up bike place holder\r\n if (this.booking.bikes.findIndex(x => x.ID == -1000) > -1) {\r\n for (var x = 0; x < this.booking.bikes.length; x++) {\r\n if (this.booking.bikes[x].ID !== -1000) {\r\n this.setSameService(this.booking.bikes[x].ID, { checked: true });\r\n }\r\n }\r\n if (this.booking.bikes.findIndex(x => x.ID == -1000) > -1 && this.booking.bikes.length > 1) {\r\n this.deleteBike(-1000);\r\n }\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n this.loading = false;\r\n });\r\n\r\n }\r\n\r\n updateCollectionFlag() {\r\n this.booking.shop.collections = this.booking.shop.collections;\r\n }\r\n\r\n updateService(amount, serviceID, bikeID, name, selected) {\r\n if (selected.checked) {\r\n this.booking.total += amount;\r\n }\r\n else {\r\n this.booking.total -= amount;\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n selectService(amount, serviceID, bikeID, name, selected) {\r\n var s = this.booking.bikes.find(x => x.ID === bikeID).services.services.find(y => y.ID === serviceID).selected;\r\n this.booking.bikes.find(x => x.ID === bikeID).services.services.find(y => y.ID === serviceID).selected = !s;\r\n if (!s) {\r\n this.booking.total += amount;\r\n }\r\n else {\r\n this.booking.total -= amount;\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n setSameService(bikeID, event) {\r\n if (event.checked) {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n this.booking.bikes[i].services.services[a].selected = this.booking.bikes[0].services.services.find(x => x.ID == this.booking.bikes[i].services.services[a].ID).selected;\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total += this.booking.bikes[i].services.services[a].cost;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total -= this.booking.bikes[i].services.services[a].cost;\r\n this.booking.bikes[i].services.services[a].selected = false;\r\n }\r\n }\r\n }\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n deleteBike(bikeID) {\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total -= this.booking.bikes[i].services.services[a].cost;\r\n this.booking.bikes[i].services.services[a].selected = false;\r\n }\r\n }\r\n }\r\n this.booking.bikes.splice(this.booking.bikes.findIndex(x => x.ID == bikeID), 1);\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n}\r\n","
\r\n

{{ 'label.which-services-to-book' | translate }}

\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n

No services available

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
1}\" class=\"p-col-12 p-md-12 p-lg-6 p-xl-6\" *ngFor=\"let bike of booking.bikes, , let i = index\" style=\"width: 100%;\">\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \"Short\r\n
\r\n
1\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
= 1\">\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{selected.serviceTypeDescription}}
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{group}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n \r\n
\r\n \r\n {{ 'label.any-additional-comments' | translate }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{ 'label.yes-schedule-below' | translate }}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n","\r\nimport { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { Countries } from './../../classes/countries';\r\nimport { Variables } from './../../shared/variables';\r\nimport { GoogleService } from './../../services/google.service';\r\nimport { PartnerService } from './../../services/partner.service';\r\nimport { Bookings } from './../../classes/bookings';\r\n\r\n\r\n@Component({\r\n selector: 'app-select-shop',\r\n templateUrl: './select-shop.component.html',\r\n styleUrls: ['./select-shop.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SelectShopComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n @Input() steps: any;\r\n\r\n constructor(\r\n private googleService: GoogleService,\r\n private route: ActivatedRoute,\r\n private partnerService: PartnerService\r\n ) { }\r\n\r\n loading: boolean = false;\r\n\r\n countries: any[];\r\n selectedCountry: string = \"\";\r\n lobjCountries: Countries;\r\n\r\n citySearch: string = \"\";\r\n results: string[] = [];\r\n placeList: any[] = [];\r\n\r\n bikeshops: any[] = [];\r\n\r\n lng: number = 0.0;\r\n lat: number = 0.0;\r\n\r\n ngOnInit(): void {\r\n this.lobjCountries = new Countries();\r\n this.countries = this.lobjCountries.getCountries();\r\n this.useMyLocation();\r\n this.getBikeshops();\r\n }\r\n\r\n useMyLocation() {\r\n try {\r\n navigator.geolocation.getCurrentPosition(location => {\r\n this.lng = location.coords.longitude;\r\n this.lat = location.coords.latitude;\r\n this.getBikeshops();\r\n });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n\r\n getCityPredictions() {\r\n if (this.citySearch.length > 3) {\r\n console.log(this.bikeshops)\r\n this.googleService.lookupCities(this.citySearch, this.bikeshops[0].Country).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.results = [];\r\n this.placeList = [];\r\n for (var i = 0; i < obj.predictions.length; i++) {\r\n this.results.push(obj.predictions[i].description);\r\n this.placeList.push(obj.predictions[i]);\r\n }\r\n });\r\n }\r\n }\r\n\r\n geocodeCity() {\r\n if (this.citySearch.length > 0) {\r\n this.googleService.geocodeCities(this.citySearch).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n this.lat = obj.results[0].geometry.location.lat;\r\n this.lng = obj.results[0].geometry.location.lng;\r\n\r\n this.getBikeshops();\r\n });\r\n }\r\n }\r\n\r\n getBikeshops() {\r\n this.loading = true;\r\n var parent = this.route.snapshot.queryParamMap.get(\"franchise\");\r\n this.booking.shop.parentID = parent;\r\n\r\n this.partnerService.getBikeshopsByParent(parent, this.lat, this.lng, this.booking.type).subscribe(response => {\r\n var obj = JSON.parse((response).text.toString());\r\n this.bikeshops = [];\r\n console.log(obj);\r\n if (obj.Partners == null) {\r\n for (var i = 0; i < obj.partners.length; i++) {\r\n this.bikeshops.push(\r\n {\r\n ID: obj.partners[i].ID,\r\n Name: obj.partners[i].Name,\r\n Email: obj.partners[i].Email,\r\n WebAddress: obj.partners[i].WebAddress,\r\n PhysicalAddress: obj.partners[i].PhysicalAddress,\r\n PhoneNumber1: obj.partners[i].PhoneNumber1,\r\n PartnerImage: obj.partners[i].PartnerImage,\r\n CurrencySymbol: obj.partners[i].CurrencySymbol,\r\n Country: obj.partners[i].Country,\r\n DistanceKm: obj.partners[i].DistanceKm,\r\n DistanceMiles: obj.partners[i].DistanceMiles,\r\n Latitude: obj.partners[i].Latitude,\r\n Longitude: obj.partners[i].Longitude,\r\n Selected: false,\r\n OffersCollections: obj.partners[i].OffersCollections,\r\n OffersDropOffs: obj.partners[i].OffersDropOffs\r\n });\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < obj.Partners.length; i++) {\r\n this.bikeshops.push(\r\n {\r\n ID: obj.Partners[i].ID,\r\n Name: obj.Partners[i].Name,\r\n Email: obj.Partners[i].Email,\r\n WebAddress: obj.Partners[i].WebAddress,\r\n PhysicalAddress: obj.Partners[i].PhysicalAddress,\r\n PhoneNumber1: obj.Partners[i].PhoneNumber1,\r\n PartnerImage: obj.Partners[i].PartnerImage,\r\n CurrencySymbol: obj.Partners[i].CurrencySymbol,\r\n Country: obj.Partners[i].Country,\r\n DistanceKm: obj.Partners[i].DistanceKm,\r\n DistanceMiles: obj.Partners[i].DistanceMiles,\r\n Latitude: obj.Partners[i].Latitude,\r\n Longitude: obj.Partners[i].Longitude,\r\n Selected: false,\r\n OffersCollections: obj.Partners[i].OffersCollections,\r\n OffersDropOffs: obj.Partners[i].OffersDropOffs\r\n });\r\n }\r\n }\r\n\r\n if (this.lat == 0.0 && this.lng == 0.0)\r\n this.bikeshops.sort((a, b) => (a.Name > b.Name) ? 1 : ((b.Name > a.Name) ? -1 : 0));\r\n\r\n this.loading = false;\r\n\r\n if (this.booking.shop.partnerID.length > 0) {\r\n this.setPartner(\r\n this.booking.shop.partnerID,\r\n this.booking.shop.country,\r\n this.booking.shop.currencySymbol,\r\n this.booking.shop.name,\r\n this.booking.shop.address,\r\n this.booking.shop.lat,\r\n this.booking.shop.lng,\r\n this.booking.shop.doesCollections,\r\n this.booking.shop.doesDropOff\r\n )\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n setPartner(partnerID, country, currencySymbol, name, address, lat, lng, doesCols, doesDrops) {\r\n this.booking.shop.partnerID = partnerID;\r\n this.booking.shop.country = country;\r\n this.booking.shop.currencySymbol = currencySymbol;\r\n this.booking.shop.address = address;\r\n this.booking.shop.name = name;\r\n this.booking.shop.lat = lat;\r\n this.booking.shop.lng = lng;\r\n this.booking.shop.doesCollections = doesCols;\r\n this.booking.shop.doesDropOff = doesDrops;\r\n\r\n for (var i = 0; i < this.bikeshops.length; i++) {\r\n if (this.bikeshops[i].ID == partnerID)\r\n this.bikeshops[i].Selected = true;\r\n else\r\n this.bikeshops[i].Selected = false;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","\r\n\r\n
\r\n

{{ 'label.shop-search-header' | translate }}

\r\n
\r\n\r\n
\r\n

{{ 'label.shop-search-description' | translate }}

\r\n
\r\n
\r\n\r\n\r\n
\r\n

{{ 'label.shop-fitting-search-header' | translate }}

\r\n
\r\n\r\n
\r\n

{{ 'label.shop-fitting-search-description' | translate }}

\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n

{{ 'label.or' | translate }}

\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n

{{ 'label.bike-stores-near-you' | translate }}

\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n \r\n

{{ 'label.no-bike-stores-near-you' | translate }}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n {{shop.DistanceKm}} km\r\n \"Card\"\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-view-loader',\r\n templateUrl: './view-loader.component.html',\r\n styleUrls: ['./view-loader.component.scss']\r\n})\r\nexport class ViewLoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, Renderer2, Inject } from '@angular/core';\r\nimport { Bookings } from '../../classes/bookings';\r\nimport { UserService } from '../../services/user.service';\r\nimport { ServiceService } from '../../services/service.service';\r\nimport { CouponsService } from '../../services/coupons.service';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\ndeclare var Stripe: any;\r\n\r\n@Component({\r\n selector: 'app-view-summary',\r\n templateUrl: './view-summary.component.html',\r\n styleUrls: ['./view-summary.component.scss']\r\n})\r\nexport class ViewSummaryComponent implements OnInit {\r\n\r\n @Input() booking: Bookings;\r\n\r\n public stripe: any;\r\n public card: any;\r\n public error: any = null;\r\n public busy: boolean = false;\r\n\r\n public services: any[] = [];\r\n public selectedServices: any[] = [];\r\n public groups: any[] = [];\r\n public loading: boolean = false;\r\n\r\n public couponCodeValid = false;\r\n public couponError = \"\";\r\n public couponResult: any;\r\n public editingCouponCode: boolean = false;\r\n\r\n private modelChanged: Subject = new Subject();\r\n private subscription: Subscription;\r\n debounceTime = 500;\r\n\r\n constructor(\r\n private userService: UserService,\r\n private serviceService: ServiceService,\r\n private route: ActivatedRoute,\r\n private renderer2: Renderer2,\r\n private couponsService: CouponsService,\r\n @Inject(DOCUMENT) private _document: Document\r\n ) { }\r\n\r\n inputChanged() {\r\n this.modelChanged.next();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n var services = this.route.snapshot.queryParamMap.get(\"services\");\r\n\r\n //const s = this.renderer2.createElement('script');\r\n //s.type = 'text/javascript';\r\n //s.src = 'https://js.stripe.com/v3/';\r\n //this.renderer2.appendChild(this._document.body, s);\r\n //const s1 = this.renderer2.createElement('script');\r\n //s1.type = 'text/javascript';\r\n //s1.text = \"var stripe=Stripe(\\\"pk_test_TYooMQauvdEDq54NiTphI7jx\\\"),elements=stripe.elements(),style={base:{color:\\\"#32325d\\\",fontFamily:'\\\"Helvetica Neue\\\", Helvetica, sans-serif',fontSmoothing:\\\"antialiased\\\",fontSize:\\\"16px\\\",\\\":: placeholder\\\":{color:\\\"#aab7c4\\\"}},invalid:{color:\\\"#fa755a\\\",iconColor:\\\"#fa755a\\\"}},card=elements.create(\\\"card\\\",{style:style});card.mount(\\\"#card - element\\\"),card.on(\\\"change\\\",function(e){var t=document.getElementById(\\\"card - errors\\\");e.error?t.textContent=e.error.message:t.textContent=\\\"\\\"});var form=document.getElementById(\\\"payment - form\\\");function stripeTokenHandler(e){var t=document.getElementById(\\\"payment - form\\\"),r=document.createElement(\\\"input\\\");r.setAttribute(\\\"type\\\",\\\"hidden\\\"),r.setAttribute(\\\"name\\\",\\\"stripeToken\\\"),r.setAttribute(\\\"value\\\",e.id),t.appendChild(r),t.submit()}form.addEventListener(\\\"submit\\\",function(e){e.preventDefault(),stripe.createToken(card).then(function(e){e.error?document.getElementById(\\\"card - errors\\\").textContent=e.error.message:stripeTokenHandler(e.token)})});\";\r\n //this.renderer2.appendChild(this._document.body, s1);\r\n\r\n this.getIP();\r\n\r\n if (this.booking.shop.country !== 'NZ') {\r\n this.booking.legal.termsconditions = true;\r\n this.booking.legal.termsconditionsdate = new Date();\r\n this.booking.legal.cookiesdate = new Date();\r\n this.booking.legal.marketingdate = new Date();\r\n }\r\n\r\n this.loading = true;\r\n this.serviceService.getServiceTypesByPartnerID(this.booking.shop.partnerID).subscribe(response => {\r\n var obj = JSON.parse(JSON.stringify(response));\r\n for (var i = 0; i < obj.Services.length; i++) {\r\n if (this.groups.indexOf(obj.Services[i].GroupName) < 0) {\r\n this.groups.push(obj.Services[i].GroupName);\r\n }\r\n this.services.push(\r\n {\r\n ID: obj.Services[i].ID,\r\n GroupName: obj.Services[i].GroupName,\r\n ServiceTypeDescription: obj.Services[i].ServiceTypeDescription,\r\n Cost: obj.Services[i].Cost,\r\n Hours: obj.Services[i].Hours,\r\n AdditionalInformation: obj.Services[i].AdditionalInformation,\r\n IsFitting: obj.Services[i].IsFitting,\r\n Radius: obj.Services[i].Radius,\r\n Selected: false,\r\n }\r\n );\r\n }\r\n this.loading = false;\r\n });\r\n\r\n\r\n if (this.booking.bikes.findIndex(x => x.ID == -1000) > -1) {\r\n for (var x = 0; x < this.booking.bikes.length; x++) {\r\n if (this.booking.bikes[x].ID !== -1000) {\r\n this.setSameService(this.booking.bikes[x].ID, { checked: true });\r\n }\r\n }\r\n if (this.booking.bikes.findIndex(x => x.ID == -1000) > -1 && this.booking.bikes.length > 1) {\r\n this.deleteBike(-1000);\r\n }\r\n }\r\n\r\n this.booking.total = 0;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n for (var x = 0; x < this.booking.bikes[i].services.services.length; x++) {\r\n if (this.booking.bikes[i].services.services[x].selected) {\r\n this.booking.total += this.booking.bikes[i].services.services[x].cost;\r\n }\r\n }\r\n }\r\n if (this.booking.pickup.pickup)\r\n this.booking.total += this.booking.pickup.cost * (this.booking.bikes.length);\r\n\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n\r\n //console.log(this.booking);\r\n //this.stripe = Stripe('pk_test_TYooMQauvdEDq54NiTphI7jx');\r\n\r\n //var elements = this.stripe.elements();\r\n\r\n //this.card = elements.create('card', {\r\n // iconStyle: 'solid',\r\n // style: {\r\n // base: {\r\n // iconColor: '#181818',\r\n // color: '#181818',\r\n // fontWeight: 500,\r\n // fontFamily: 'Roboto, Open Sans, Segoe UI, sans-serif',\r\n // fontSize: '16px',\r\n // fontSmoothing: 'antialiased',\r\n\r\n // ':-webkit-autofill': {\r\n // color: '#181818'\r\n // },\r\n // '::placeholder': {\r\n // color: '#777'\r\n // }\r\n // },\r\n // invalid: {\r\n // iconColor: '#d90028',\r\n // color: '#181818'\r\n // }\r\n // }\r\n //});\r\n //this.card.mount('#card-input');\r\n this.subscription = this.modelChanged\r\n .pipe(\r\n debounceTime(this.debounceTime),\r\n )\r\n .subscribe(() => {\r\n this.checkCouponCode();\r\n });\r\n if (this.booking.discountCode && this.booking.discountCode.length > 0) {\r\n this.checkCouponCode()\r\n }\r\n }\r\n\r\n submitPayment() {\r\n this.error = null;\r\n this.busy = true;\r\n this.stripe.createToken(this.card).then(tokenResult => {\r\n if (tokenResult.error) {\r\n this.error = tokenResult.error;\r\n this.busy = false;\r\n } else {\r\n //var paymentInfo = {\r\n // PartnerID: this.partner.ID,\r\n // PaymentProvider: 2, //Stripe\r\n // TypeID: this.bundle.typeID,\r\n // BundleID: this.bundle.id,\r\n // Reference: this.partner.Name,\r\n // Identifier: tokenResult.token.id + tokenResult.token.created\r\n //};\r\n //this.paymentService.initializeHubtigerPayment(paymentInfo).subscribe(success => {\r\n // var paymentData = {\r\n // PartnerID: this.partner.ID,\r\n // CardToken: tokenResult.token.id,\r\n // Identifier: tokenResult.token.id + tokenResult.token.created,\r\n // BundleID: this.bundle.id\r\n // }\r\n // this.paymentService.stripeBundlePaymentComplete(paymentData).subscribe(paymentResult => {\r\n // this.busy = false;\r\n // }, err => {\r\n // this.busy = false;\r\n // console.log(err);\r\n\r\n // });\r\n //});\r\n }\r\n });\r\n }\r\n\r\n\r\n getIP() {\r\n this.userService.getIPAddress().subscribe((res: any) => {\r\n this.booking.legal.ipaddress = res.ip;\r\n });\r\n }\r\n\r\n setTermsConditionsDate(event) {\r\n this.booking.legal.termsconditionsdate = new Date();\r\n }\r\n\r\n setMarketingDate(event) {\r\n this.booking.legal.marketingdate = new Date();\r\n }\r\n\r\n setCookiesDate(event) {\r\n\r\n console.log(this.booking);\r\n this.booking.legal.cookiesdate = new Date();\r\n }\r\n\r\n\r\n setSameService(bikeID, event) {\r\n if (event.checked) {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n if (this.booking.bikes[i].services.services.length == 0) {\r\n for (var x = 0; x < this.booking.bikes.length; x++) {\r\n if (this.booking.bikes[x].services.services.length > 0) {\r\n for (var ii = 0; ii < this.booking.bikes[x].services.services.length; ii++) {\r\n this.booking.bikes[i].services.services.push(this.booking.bikes[x].services.services[ii]);\r\n this.booking.bikes[i].services.technicianID = this.booking.bikes[x].services.technicianID;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n this.booking.bikes[i].services.services[a].selected = this.booking.bikes[0].services.services.find(x => x.ID == this.booking.bikes[i].services.services[a].ID).selected;\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total += this.booking.bikes[i].services.services[a].cost;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.booking.bikes.find(x => x.ID == bikeID).services.copiedServices = true;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total -= this.booking.bikes[i].services.services[a].cost;\r\n this.booking.bikes[i].services.services[a].selected = false;\r\n }\r\n }\r\n }\r\n }\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n console.log(this.booking);\r\n }\r\n\r\n deleteBike(bikeID) {\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n if (this.booking.bikes[i].ID == bikeID) {\r\n for (var a = 0; a < this.booking.bikes[i].services.services.length; a++) {\r\n if (this.booking.bikes[i].services.services[a].selected == true)\r\n this.booking.total -= this.booking.bikes[i].services.services[a].cost;\r\n //this.booking.bikes[i].services.services[a].selected = false;\r\n }\r\n }\r\n }\r\n this.booking.bikes.splice(this.booking.bikes.findIndex(x => x.ID == bikeID), 1);\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n console.log(this.booking);\r\n }\r\n\r\n checkCouponCode() {\r\n if (this.booking.discountCode && this.booking.discountCode.length > 0) {\r\n this.booking.bikes.forEach(bike => {\r\n bike.services.externalVoucherCode = \"\";\r\n bike.services.couponCode = \"\";\r\n });\r\n\r\n this.couponError = null;\r\n this.couponResult = null;\r\n this.couponCodeValid = false;\r\n\r\n var data = {\r\n Partner: this.booking.shop.partnerID,\r\n CouponCode: this.booking.discountCode,\r\n UserID: this.booking.client.ID,\r\n Bikes: this.booking.bikes.map(bike => { return { ID: bike.ID, BikeName: bike.refno, SelectedServiceTypes: bike.services.services.filter(service => { return service.selected === true }).map(service => { return service.ID }) } })\r\n };\r\n this.couponsService.validateCouponCode(data).subscribe((res) => {\r\n this.couponError = null;\r\n this.couponResult = res;\r\n this.couponCodeValid = true;\r\n this.booking.bikes.forEach(bike => {\r\n if (this.couponResult.bikes.filter(validationBike => { return validationBike.allowCoupon && validationBike.id === bike.ID }).length > 0) {\r\n bike.services.couponCode = this.booking.discountCode;\r\n }\r\n });\r\n }, err => {\r\n if (err.status === 404) {\r\n this.couponError = null;\r\n this.couponResult = null;\r\n this.couponCodeValid = false;\r\n this.booking.bikes.forEach(bike => {\r\n bike.services.externalVoucherCode = this.booking.discountCode;\r\n });\r\n } else {\r\n this.couponError = err.error.message;\r\n this.couponResult = null;\r\n this.couponCodeValid = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n
{{ 'label.bike-pick-up-header' | translate }}
\r\n
\r\n
{{booking.pickup.date.getDate()}} {{booking.pickup.date.toLocaleString('default', { month: 'long' })}} {{booking.pickup.date.getFullYear()}}
\r\n
{{booking.pickup.time}}
\r\n\r\n
{{ 'label.pick-up-address' | translate }}
\r\n
{{booking.pickup.address}}
\r\n\r\n
{{ 'label.pick-up-instructions' | translate }}
\r\n
{{booking.pickup.instructions}}
\r\n\r\n
{{ 'label.pick-up-number-header' | translate }}
\r\n
{{booking.pickup.mobile}}
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
{{ 'label.bike-service-details-header' | translate }}
\r\n
{{ 'label.bike-fitting-details-header' | translate }}
\r\n\r\n
\r\n {{booking.date.getDate()}} {{booking.date.toLocaleString('default', { month: 'long' })}} {{booking.date.getFullYear()}}\r\n
\r\n
\r\n {{booking.date.toTimeString().substring(0,8)}}\r\n
\r\n\r\n
\r\n
{{bike.refno}}
\r\n
\r\n
\r\n
{{service.serviceTypeDescription}}
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
{{ 'label.your-details-header' | translate }}
\r\n
{{booking.client.name}} {{booking.client.surname}}
\r\n
{{booking.client.mobile}}
\r\n\r\n
\r\n
{{booking.shop.name}}
\r\n
{{booking.shop.address}}
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{bike.refno}}
{{service.serviceTypeDescription}}{{booking.shop.currencySymbol}} {{service.cost}}
{{ 'label.additional-items' | translate }}
{{ 'label.collection-fee' | translate }}{{booking.shop.currencySymbol}} {{booking.pickup.cost}}
{{ 'label.dropoff-fee' | translate }}{{booking.shop.currencySymbol}} {{booking.dropoff.cost}}
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n

\r\n
{{ 'label.total' | translate }}
\r\n
{{booking.shop.currencySymbol}} {{booking.total - booking.discount}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
{{ (couponResult.couponValidAllBikes ? 'error.coupons.coupon_code_valid' : 'error.coupons.coupon_code_valid_conditions') | translate }}
\r\n
\r\n
    \r\n
  • \r\n {{bike.bikeName}}: {{ bike.message | translate }}\r\n
  • \r\n
\r\n
\r\n
{{ couponError | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n

{{ 'label.payment-details' | translate }}

\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{error.message}}\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Bookings } from '../../classes/bookings';\r\n\r\n@Component({\r\n selector: 'app-view-totals',\r\n templateUrl: './view-totals.component.html',\r\n styleUrls: ['./view-totals.component.scss']\r\n})\r\nexport class ViewTotalsComponent implements OnInit {\r\n @Input() booking: Bookings;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.booking.total = 0;\r\n for (var i = 0; i < this.booking.bikes.length; i++) {\r\n for (var x = 0; x < this.booking.bikes[i].services.services.length; x++) {\r\n if (this.booking.bikes[i].services.services[x].selected) {\r\n this.booking.total += this.booking.bikes[i].services.services[x].cost;\r\n }\r\n }\r\n }\r\n if (this.booking.pickup.pickup)\r\n this.booking.total += this.booking.pickup.cost * (this.booking.bikes.length);\r\n\r\n this.booking.total = parseFloat(this.booking.total.toFixed(2));\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
{{ 'label.total' | translate }}
\r\n
{{ 'label.total-collections' | translate }}
\r\n
{{booking.shop.currencySymbol}} {{booking.total}}
\r\n
\r\n {{ 'label.total-disclaimer' | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { filter, map, catchError } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Variables } from './../shared/variables';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BikeService {\r\n\r\n\r\n constructor(public http: HttpClient, public Variables: Variables) {\r\n \r\n }\r\n\r\n getBikeByUser(ID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/users/\" + ID + \"/bikes?code=\" + this.Variables.getToken() + \"\")\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getBikeByUserAndPartner(partnerID, ID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partner/\"+ partnerID +\"/users/\" + ID + \"/bikes?code=\" + this.Variables.getToken() + \"\")\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getBikeMakes() {\r\n return this.http\r\n .get(this.Variables.getURL() + \"Bikes/Makes?code=\" + this.Variables.getToken() + \"\")\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getBikeTypes() {\r\n return this.http\r\n .get(this.Variables.getURL() + \"Bike/Types?code=\" + this.Variables.getToken() + \"\")\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { filter, map, catchError } from 'rxjs/operators';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Variables } from './../shared/variables';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CouponsService {\r\n\r\n constructor(public http: HttpClient, public Variables: Variables) {\r\n \r\n }\r\n\r\n validateCouponCode(data: any) {\r\n const headers= new HttpHeaders()\r\n .set('content-type', 'application/json')\r\n .set('Access-Control-Allow-Origin', '*');\r\n\r\n return this.http.post(this.Variables.getURL() + `Coupon/Validation/Widget?code=${this.Variables.getToken()}`, data, {headers: headers}).pipe(\r\n map((res : Response) => res),\r\n catchError((res) => {\r\n return throwError(res);\r\n })\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\n//import { Http, Headers, Response, RequestOptions } from '@angular/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { Variables } from '../shared/variables';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GiftcardService {\r\n\r\n constructor(public http: HttpClient, public Variables: Variables) {\r\n \r\n }\r\n\r\n createGiftCard(partnerID, data) {\r\n return this.http\r\n .post(this.Variables.getURL() + partnerID + \"/GiftCards?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res);\r\n })\r\n );\r\n }\r\n\r\n completeGiftCard(partnerID, data) {\r\n return this.http\r\n .post(this.Variables.getURL() + partnerID + \"/GiftCards/Complete?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res);\r\n })\r\n );\r\n }\r\n\r\n topUpGiftCard(partnerID, data) {\r\n return this.http\r\n .post(this.Variables.getURL() + partnerID + \"/GiftCards/TopUp?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res);\r\n })\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { filter, map, catchError } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Variables } from './../shared/variables';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GoogleService {\r\n\r\n\r\n constructor(public http: HttpClient, public lobjVariables: Variables) {\r\n \r\n }\r\n\r\n lookupCities(city, country) {\r\n\r\n if (country == \"\") {\r\n console.error(\"Danger Danger\");\r\n return this.http\r\n .get(this.lobjVariables.getURL() + \"2021-01/maps/lookup/\" + city + \"?code=\" + this.lobjVariables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n return this.http\r\n .get(this.lobjVariables.getURL() + \"2021-01/maps/lookups/\" + country + \"/\" + city + \"?code=\" + this.lobjVariables.getToken())\r\n .pipe(\r\n map((res: Response) => {\r\n var dto = [];\r\n console.log(res);\r\n var obj = JSON.parse(JSON.stringify(res));\r\n if (obj.predictions.length > 0) {\r\n if (obj.predictions[0].types !== undefined) {\r\n for (var i = 0; i < obj.predictions.length; i++) {\r\n if (obj.predictions[i]?.types[0] == \"postal_code\") {\r\n dto.push(obj.predictions[i]);\r\n }\r\n }\r\n for (var i = 0; i < obj.predictions.length; i++) {\r\n if (obj.predictions[i]?.types[0] == \"street_address\") {\r\n dto.push(obj.predictions[i]);\r\n }\r\n }\r\n for (var i = 0; i < obj.predictions.length; i++) {\r\n if (obj.predictions[i]?.types[0] !== \"postal_code\" && obj.predictions[i].types[0] !== \"street_address\") {\r\n dto.push(obj.predictions[i]);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < obj.predictions.length; i++) {\r\n dto.push(obj.predictions[i]);\r\n }\r\n }\r\n obj.predictions = dto;\r\n console.log(obj);\r\n console.log(res);\r\n if (obj.predictions.length > 0)\r\n return obj;\r\n else\r\n return res;\r\n }),\r\n catchError((res: Response) => {\r\n console.log(res);\r\n return throwError(res);\r\n })\r\n );\r\n }\r\n\r\n geocodeCities(city) {\r\n return this.http\r\n .get(this.lobjVariables.getURL() + \"2021-01/maps/geocode/\" + city + \"?code=\" + this.lobjVariables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { filter, map, catchError } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Variables } from './../shared/variables';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PartnerService {\r\n\r\n constructor(public http: HttpClient, public Variables: Variables) {\r\n \r\n }\r\n\r\n getBikeshopsByParent(parent, lat, lng, type) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/parent/\" + parent + \"/partners?code=\" + this.Variables.getToken() + \"&lat=\" + lat + \"&lng=\" + lng + \"&type=\" + type)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getBikeshopsByLocation(parent, lat, lng) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/parent/\" + parent + \"/collections/availability?code=\" + this.Variables.getToken() + \"&lat=\" + lat + \"&lng=\" + lng)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getBikeShopsByLocationV2(parent = null, partner = null, lat, lng, serviceTypes = \"\", address = \"\") {\r\n const data = {\r\n \"ParentIdentifier\": parent,\r\n \"PartnerIdentifier\": partner,\r\n \"IsCollection\": true,\r\n \"Latitude\": lat,\r\n \"Longitude\": lng,\r\n \"CurrentLocalTime\": moment().format(\"YYYY-MM-DDTHH:mm:ss\"),\r\n \"ServiceTypes\" : serviceTypes,\r\n \"Address\": address,\r\n }\r\n return this.http\r\n .post(this.Variables.getURL() + \"Bikeshop/Collections/Widget/CheckAddress?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getBikeshopsByExternalID(externalid) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partner/externalid/\" + externalid + \"?code=\" + this.Variables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getCollectionFeeRangeByPartner(partnerIdentifier){ \r\n return this.http\r\n .get(this.Variables.getURL() + \"Bikeshop/Collections/Widget/PriceRange/\" + partnerIdentifier + \"?code=\" + this.Variables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getShopWidgetSettings(partnerIdentifier) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partner/widget/settings/\" + partnerIdentifier + \"?code=\" + this.Variables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n}\r\n\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\n//import { Http, Headers, Response, RequestOptions } from '@angular/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { Variables } from '../shared/variables';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaymentService {\r\n\r\n constructor(public http: HttpClient, public Variables: Variables) {\r\n \r\n }\r\n\r\n initiateGiftCardPayment(partnerID, data) {\r\n return this.http\r\n .post(this.Variables.getURL() + partnerID + \"/GiftCards/Payment/Initialize?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res);\r\n })\r\n );\r\n }\r\n\r\n\r\n generatePaymentIntent(data : any){\r\n return this.http\r\n .post(this.Variables.getURL() + \"Widget/Services/StripePaymentIntent?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res);\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { filter, map, catchError } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Variables } from './../shared/variables';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServiceService {\r\n\r\n constructor(public http: HttpClient, public Variables: Variables) {\r\n \r\n }\r\n\r\n getServiceTypesByPartnerID(ID, bookable = 1) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/servicetypes?code=\" + this.Variables.getToken() + \"&bookable=\" + bookable)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getPickUpTimesByPartnerID(ID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/collections/times?code=\" + this.Variables.getToken() + \"\")\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getPickUpTimesByPartnerIDV2(data) {\r\n return this.http\r\n .post(this.Variables.getURL() + \"Bikeshop/Collections/Widget/AvailableCollectionDates?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getPickUpAvailabilityByPartnerID(ID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/collections/availability?code=\" + this.Variables.getToken() + \"\")\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getAvailabilityByPartnerIDAndServiceID(ID, date, servicetypeIDs, bikeID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/services/availability_v2?code=\" + this.Variables.getToken() + \"&date=\" + date + \"&servicetype=\" + servicetypeIDs + \"&bikeID=\" + bikeID)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getAvailabilityByPartnerIDAndServiceIDMultistore(ID, date, servicetypeIDs, bikeID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/services/availability/multistore?code=\" + this.Variables.getToken() + \"&date=\" + date + \"&servicetype=\" + servicetypeIDs + \"&bikeID=\" + bikeID)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getAvailabilityTimesByPartnerIDAndServiceID(ID, date, servicetypeIDs, technicianID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/services/availability/times?code=\" + this.Variables.getToken() + \"&date=\" + date + \"&servicetype=\" + servicetypeIDs + \"&technicianid=\" + technicianID)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getUserMarketingConsentStatus(ID, userID) {\r\n console.log(this.Variables.getURL());\r\n return this.http\r\n .get(this.Variables.getURL() + \"Services/\" + ID + \"/GetUserMarketingConsentStatus/\" + userID + \"?code=\" + this.Variables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getServiceByPartnerIDAndServiceID(ID, serviceID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/v2/service/\" + serviceID + \"?code=\" + this.Variables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getAvailabilityByServiceID(ID, serviceID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/services/\" + serviceID + \"/reschedule/availability?code=\" + this.Variables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getServiceByPartnerIDAndExternalServiceID(serviceID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/partners/v2/services/\" + serviceID + \"?code=\" + this.Variables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n console.log(res);\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n saveService(ID, data: any) {\r\n return this.http.post(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/v3/services?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json())\r\n })\r\n );\r\n }\r\n\r\n saveFitting(ID, data: any) {\r\n return this.http.post(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/fittings?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json())\r\n })\r\n );\r\n }\r\n\r\n saveRescheduleService(ID, data: any) {\r\n return this.http.post(this.Variables.getURL() + \"2021-01/partners/\" + ID + \"/v2/services/reschedule?code=\" + this.Variables.getToken(), data)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => { \r\n return throwError(res.json())\r\n })\r\n );\r\n }\r\n\r\n getUserFittingInfo(userID) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/user/\"+userID+\"/fittinginfo?code=\" + this.Variables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n console.log(res);\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { filter, map, catchError } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Variables } from './../shared/variables';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n constructor(public http: HttpClient, public Variables: Variables) {\r\n \r\n }\r\n\r\n getUserByPhone(criteria, country, code) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/users/search/\" + criteria + \"?code=\" + this.Variables.getToken() + \"&country=\" + country + \"&dialcode=\" + code)\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n getUserByEmail(criteria) {\r\n return this.http\r\n .get(this.Variables.getURL() + \"2021-01/users/search/\" + criteria + \"?code=\" + this.Variables.getToken())\r\n .pipe(\r\n map((res: Response) => res),\r\n catchError((res: Response) => {\r\n return throwError(res.json());\r\n })\r\n );\r\n }\r\n\r\n public getIPAddress() {\r\n return this.http.get(\"https://api.ipify.org/?format=json\");\r\n }\r\n\r\n}\r\n","export function sendToGTM(gtmService: any, shopID: any, code: any, event: any, data: any) {\r\n gtmService.config.id = 'GTM-NBCS83S';\r\n gtmService.googleTagManagerId = 'GTM-NBCS83S';\r\n\r\n var gtmTag = {\r\n event: event,\r\n data: data,\r\n };\r\n //gtmService.pushTag(gtmTag);\r\n\r\n\r\n if (\r\n shopID == \"HUB.ADCF0665B8EB429DAA575D453D447C0BD2BDE97F90454EF7803B5AD16306A685.TIGER\" ||\r\n shopID == \"HUB.40B77279AE32469FBCE3AD012768F86A33EBF82E5DD345D1AE9D94171D8C8C9E.TIGER\" ||\r\n shopID == \"HUB.EB4021B533DD413A9AA46136AC371F9DAD15AECECC2342B2A2CE4FCDB0E905EF.TIGER\" ||\r\n shopID == \"HUB.72389980F50C478BA3975A36ABDD34E9F8ED175A1590424CB6DB9653EF5C401A.TIGER\" ||\r\n shopID == \"HUB.AEA6CCA37AEB4F8A8345B4FB91CB730B6D42568B931C4C56B5B9B57CC45063D1.TIGER\"\r\n ) {\r\n gtmService.config.id = 'GTM-NH2FJX3';\r\n gtmService.googleTagManagerId = 'GTM-NH2FJX3';\r\n }\r\n var gtmTag = {\r\n event: event,\r\n data: data,\r\n };\r\n gtmService.pushTag(gtmTag);\r\n}\r\n","export function getAddressParts(GooglePlace: any){\r\n var addressDetails = {\r\n street_no : null,\r\n street_address : null,\r\n city : null,\r\n country : null,\r\n postal_code : null\r\n }\r\n if (GooglePlace && GooglePlace.address_components) {\r\n var street_no = GooglePlace.address_components.filter(x => { return x.types.indexOf('street_number') > -1 }).pop();\r\n if (street_no) {\r\n addressDetails.street_no = street_no.long_name;\r\n }\r\n var street_address = GooglePlace.address_components.filter(x => { return x.types.indexOf('route') > -1 }).pop();\r\n if (street_address) {\r\n addressDetails.street_address = street_address.long_name;\r\n }\r\n var city = GooglePlace.address_components.filter(x => { return x.types.indexOf('postal_town') > -1 }).pop();\r\n if (city) {\r\n addressDetails.city = city.long_name;\r\n }\r\n if (!city) {\r\n var city = GooglePlace.address_components.filter(x => { return x.types.indexOf('locality') > -1 }).pop();\r\n if (city) {\r\n addressDetails.city = city.long_name;\r\n }\r\n }\r\n\r\n var country = GooglePlace.address_components.filter(x => { return x.types.indexOf('country') > -1 }).pop();\r\n if (country) {\r\n addressDetails.country = country.long_name;\r\n }\r\n var postal_code = GooglePlace.address_components.filter(x => { return x.types.indexOf('postal_code') > -1 }).pop();\r\n if (postal_code) {\r\n addressDetails.postal_code = postal_code.long_name;\r\n } \r\n }\r\n return addressDetails;\r\n }","import { Injectable, isDevMode } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { PartnerService } from '../services/partner.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class Variables {\r\n\r\n //private devURL: string = \"http://localhost:7071/api/\";\r\n //private devURL: string = \"https://hubtiger-api.azurewebsites.net/api/\";\r\n private devURL: string = \"https://hubtiger-api-dev.azurewebsites.net/api/\";\r\n private prodURL: string = \"https://hubtiger-api.azurewebsites.net/api/\";\r\n\r\n //private devToken: string = \"MkmJEaL936E9ueFBgITENx4qZlmFdUWj6i8bDGCduNUaSxRvJ6nTzQ==\";\r\n private devToken: string = \"hwV2xlJRxcPmO5ypzVKiRtTmVhPfzD7W4eGaVV94v2kex2VVd2ZweQ==\";\r\n private prodToken: string = \"MkmJEaL936E9ueFBgITENx4qZlmFdUWj6i8bDGCduNUaSxRvJ6nTzQ==\";\r\n\r\n constructor( \r\n private ActivatedRoute : ActivatedRoute\r\n ) { \r\n }\r\n\r\n public getURL() {\r\n if (this.isDev()) { \r\n return this.devURL;\r\n }\r\n return this.prodURL;\r\n }\r\n\r\n public getToken() {\r\n if (this.isDev()) { \r\n return this.devToken;\r\n }\r\n return this.prodToken;\r\n }\r\n \r\n public isDev() {\r\n\r\n return (this.ActivatedRoute.snapshot.queryParams && this.ActivatedRoute.snapshot.queryParams['dev']) || window.location.href.indexOf(\"localhost\") > -1; \r\n //return isDevMode();\r\n }\r\n\r\n public getStripeKey() {\r\n if (this.isDev())\r\n return \"pk_test_pT6K67ngrmRgD3ycPe0zpspA00gIBtEMTw\";\r\n else\r\n return \"pk_live_gB2qnqJjEow8raxnS53Yjxmb00Caxfq56Z\";\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n\r\nif (!environment.production) {\r\n let node = document.createElement('script'); // creates the script tag\r\n //node.src = this.variables.getURL() + \"2021-01/partner/tracking/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n node.text = '(function(c,l,a,r,i,t,y){ c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) }; t = l.createElement(r); t.async = 1; t.src = \"https://www.clarity.ms/tag/\" + i; y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); }) (window, document, \"clarity\", \"script\", \"5mq6fq5iex\");';\r\n // append to head of document\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n}\r\n\r\nif (environment.production) {\r\n let node = document.createElement('script'); // creates the script tag\r\n //node.src = this.variables.getURL() + \"2021-01/partner/tracking/widget/\" + shop; // sets the source (insert url in between quotes)\r\n node.type = 'text/javascript'; // set the script type\r\n node.async = true; // makes script run asynchronously\r\n node.charset = 'utf-8';\r\n node.text = '(function(c,l,a,r,i,t,y){ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; t=l.createElement(r);t.async=1;t.src=\"https://www.clarity.ms/tag/\"+i; y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); })(window, document, \"clarity\", \"script\", \"5mpsmaxb7d\");';\r\n // append to head of document\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n}\r\n\r\n"],"sourceRoot":"webpack:///"}