1/******/ (function() { // webpackBootstrap 2/******/ "use strict"; 3/******/ var __webpack_modules__ = ({ 4 5/***/ 877: 6/***/ (function(__unused_webpack_module, exports) { 7 8 9var __rest = (this && this.__rest) || function (s, e) { 10 var t = {}; 11 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) 12 t[p] = s[p]; 13 if (s != null && typeof Object.getOwnPropertySymbols === "function") 14 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { 15 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) 16 t[p[i]] = s[p[i]]; 17 } 18 return t; 19}; 20Object.defineProperty(exports, "__esModule", ({ value: true })); 21var ShiftDigitalAnalyticsApi = /** @class */ (function () { 22 function ShiftDigitalAnalyticsApi(sd) { 23 this.sd = sd; 24 } 25 ShiftDigitalAnalyticsApi.prototype.sendData = function (data) { 26 this.sd('dataLayer', data); 27 this.sd('send'); 28 }; 29 ShiftDigitalAnalyticsApi.prototype.sendPageView = function () { 30 this.sd('send', 'pageview'); 31 }; 32 ShiftDigitalAnalyticsApi.prototype.sendDataWithCallBack = function (eventName, data) { 33 var _this = this; 34 return new Promise(function (resolve) { 35 _this.setProp(data); 36 _this.sd('send', 'event', eventName, { 37 hitCallback: function () { 38 resolve(); 39 } 40 }); 41 }); 42 }; 43 ShiftDigitalAnalyticsApi.prototype.setProp = function (data, prefix) { 44 var _this = this; 45 if (prefix === void 0) { prefix = null; } 46 var keys = Object.keys(data); 47 keys.forEach(function (key) { 48 var propertyValue = data[key]; 49 if (typeof propertyValue === "object" && propertyValue != null) { 50 var newPrefix = "".concat(prefix !== null && prefix !== void 0 ? prefix : '').concat(key, "."); 51 _this.setProp(propertyValue, newPrefix); 52 } 53 else if (propertyValue) { 54 var propertyName = "".concat(prefix !== null && prefix !== void 0 ? prefix : '').concat(key); 55 _this.sd('setProp', propertyName, propertyValue); 56 } 57 }); 58 }; 59 ShiftDigitalAnalyticsApi.prototype.sendDataLayerEvent = function (event) { 60 this.sd('dataLayer', event); 61 this.sd('send'); 62 }; 63 ShiftDigitalAnalyticsApi.prototype.sendDataLayerEventAsync = function (event) { 64 var events = event.events; 65 var payload = this.convertToPayload(event); 66 return this.sendDataWithCallBack(events, payload); 67 }; 68 ShiftDigitalAnalyticsApi.prototype.convertToPayload = function (event) { 69 // eslint-disable-next-line @typescript-eslint/no-unused-vars 70 var events = event.events, payload = __rest(event, ["events"]); 71 return payload; 72 }; 73 return ShiftDigitalAnalyticsApi; 74}()); 75exports["default"] = ShiftDigitalAnalyticsApi; 76 77 78/***/ }), 79 80/***/ 526: 81/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 82 83 84var __extends = (this && this.__extends) || (function () { 85 var extendStatics = function (d, b) { 86 extendStatics = Object.setPrototypeOf || 87 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 88 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 89 return extendStatics(d, b); 90 }; 91 return function (d, b) { 92 if (typeof b !== "function" && b !== null) 93 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 94 extendStatics(d, b); 95 function __() { this.constructor = d; } 96 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 97 }; 98})(); 99var __importDefault = (this && this.__importDefault) || function (mod) { 100 return (mod && mod.__esModule) ? mod : { "default": mod }; 101}; 102Object.defineProperty(exports, "__esModule", ({ value: true })); 103var ShiftDigitalAnalyticsBase_1 = __importDefault(__webpack_require__(987)); 104var bwmFormTypes = [ 105 "Get a Quote", 106 "Test Drive",
107 "Request More Info", 108 "Email a Friend", 109 "General Contact", 110 "Service", 111 "Parts", 112 "Schedule Service", 113 "Employment", 114 "Trade In", 115 "Finance", 116 "Payment Estimator", 117 "Specials", 118 "Vehicle Finder", 119 "Dealer Custom", 120 "Make an Offer", 121 "Send to Mobile", 122]; 123var bmwOtherFormType = 'Other'; 124var BmwShiftDigitalAnalytics = /** @class */ (function (_super) { 125 __extends(BmwShiftDigitalAnalytics, _super); 126 function BmwShiftDigitalAnalytics() { 127 var _this = _super.call(this, window.sdb) || this; 128 _this.bmwSelectors = { 129 brochureLink: '[data-print-brochure]', 130 }; 131 _this.eventNamespace = 'bwm'; 132 _this.vehiclePropertyName = 'bwm'; 133 return _this; 134 } 135 BmwShiftDigitalAnalytics.prototype.sendBrochureDownloadEvent = function (brochureName) { 136 var payload = { 137 brochureName: brochureName, 138 }; 139 _super.prototype.fireBrochureDownloadEvent.call(this, payload); 140 }; 141 BmwShiftDigitalAnalytics.prototype.initBrochureDownloadEventHandler = function () { 142 var _this = this; 143 var rootSelector = 'body'; 144 var selector = this.bmwSelectors.brochureLink; 145 var eventName = "click.".concat(this.eventNamespace); 146 $(rootSelector).on(eventName, selector, function (e) { 147 var $link = $(e.currentTarget); 148 var brochureName = $link.data("print-brochure"); 149 _this.sendBrochureDownloadEvent(brochureName); 150 }); 151 }; 152 BmwShiftDigitalAnalytics.prototype.getFormType = function (formName) { 153 var bmwFormType = bwmFormTypes.filter(function (x) { return formName.indexOf(x) > -1; }).pop(); 154 return bmwFormType ? bmwFormType : bmwOtherFormType; 155 }; 156 BmwShiftDigitalAnalytics.prototype.sendFormShownEventImpl = function ($form, formEventData) { 157 var formType = this.getFormType(formEventData.formName); 158 if (!formType) { 159 return; 160 } 161 var displayType = null; 162 var formVehicle = this.getFormVehicle(formEventData); 163 _super.prototype.sendFormShownEventData.call(this, formType, displayType, formVehicle); 164 }; 165 BmwShiftDigitalAnalytics.prototype.initFormInitiationEventHandlerImpl = function ($form, formEventData) { 166 var formType = this.getFormType(formEventData.formName); 167 if (!formType) { 168 return; 169 } 170 var displayType = null; 171 var formVehicle = this.getFormVehicle(formEventData); 172 _super.prototype.doInitFormInitiationEventHandlers.call(this, $form, formType, displayType, formVehicle); 173 }; 174 BmwShiftDigitalAnalytics.prototype.initEventHandlers = function () { 175 var _a; 176 _super.prototype.initPromotionClickEventHandler.call(this); 177 _super.prototype.initClickToCallEventHandler.call(this); 178 var shiftDigitalAnalyticsData = (_a = window === null || window === void 0 ? void 0 : window.dx1ShiftDigitalAnalytics) === null || _a === void 0 ? void 0 : _a.bmw; 179 if (shiftDigitalAnalyticsData) { 180 if (shiftDigitalAnalyticsData.isHoursAndDirectionPageType) { 181 _super.prototype.sendGetDirectionsEvent.call(this); 182 } 183 this.initBrochureDownloadEventHandler(); 184 } 185 }; 186 BmwShiftDigitalAnalytics.prototype.sendFormSubmissionEvent = function ($form, formEventData) { 187 var _a, _b, _c; 188 var formType = this.getFormType(formEventData.formName); 189 var formVehicle = (_b = (_a = formEventData === null || formEventData === void 0 ? void 0 : formEventData.shiftDigitalAnalyticsVehicleData) === null || _a === void 0 ? void 0 : _a.overrideData) !== null && _b !== void 0 ? _b : (_c = formEventData === null || formEventData === void 0 ? void 0 : formEventData.shiftDigitalAnalyticsVehicleData) === null || _c === void 0 ? void 0 : _c.bmw; 190 var prefContact = 'email'; 191 if (formType) { 192 return _super.prototype.doSendFormSubmissionEvent.call(this, $form, formEventData, formType, formVehicle, prefContact); 193 } 194 return Promise.resolve(); 195 }; 196 return BmwShiftDigitalAnalytics; 197}(ShiftDigitalAnalyticsBase_1.default)); 198exports["default"] = BmwShiftDigitalAnalytics; 199 200 201/***/ }), 202 203/***/ 626: 204/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 205 206 207var __extends = (this && this.__extends) || (function () { 208 var extendStatics = function (d, b) { 209 extendStatics = Object.setPrototypeOf || 210 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 211 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 212 return extendStatics(d, b); 213 }; 214 return function (d, b) { 215 if (typeof b !== "function" && b !== null) 216 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 217 extendStatics(d, b); 218 function __() { this.constructor = d; } 219 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 220 }; 221})(); 222var __importDefault = (this && this.__importDefault) || function (mod) { 223 return (mod && mod.__esModule) ? mod : { "default": mod }; 224}; 225Object.defineProperty(exports, "__esModule", ({ value: true })); 226var ShiftDigitalAnalyticsBase_1 = __importDefault(__webpack_require__(987)); 227var HdShiftDigitalAnalytics = /** @class */ (function (_super) { 228 __extends(HdShiftDigitalAnalytics, _super); 229 function HdShiftDigitalAnalytics() {
230 var _this = _super.call(this, window.sd) || this; 231 _this.eventNamespace = 'hd'; 232 _this.vehiclePropertyName = 'hd'; 233 return _this; 234 } 235 HdShiftDigitalAnalytics.prototype.getFormType = function (formTypes, formName) { 236 var filterdFormTypes = formTypes.filter(function (x) { return formName.indexOf(x) > -1; }); 237 return filterdFormTypes.length ? filterdFormTypes[0] : null; 238 }; 239 HdShiftDigitalAnalytics.prototype.getBasicFormType = function (formName) { 240 var formTypes = ['Get a Quote', 'Test Drive', 'Request More Info', 'Trade-In', 'HD National Event', 'Harley-Davidson Contact Us']; 241 return this.getFormType(formTypes, formName); 242 }; 243 HdShiftDigitalAnalytics.prototype.getFormSubmissionErrorFormType = function (formName) { 244 var formTypes = ['HD National Event', 'Harley-Davidson Contact Us', 'Test Drive']; 245 return this.getFormType(formTypes, formName); 246 }; 247 HdShiftDigitalAnalytics.prototype.sendFormShownEventImpl = function ($form, formEventData) { 248 var formType = this.getBasicFormType(formEventData.formName); 249 if (!formType) { 250 return; 251 } 252 var displayType = null; 253 var formVehicle = this.getFormVehicle(formEventData); 254 _super.prototype.sendFormShownEventData.call(this, formType, displayType, formVehicle); 255 }; 256 HdShiftDigitalAnalytics.prototype.initFormInitiationEventHandlerImpl = function ($form, formEventData) { 257 var formType = this.getBasicFormType(formEventData.formName); 258 if (!formType) { 259 return; 260 } 261 var displayType = null; 262 var formVehicle = this.getFormVehicle(formEventData); 263 _super.prototype.doInitFormInitiationEventHandlers.call(this, $form, formType, displayType, formVehicle); 264 }; 265 HdShiftDigitalAnalytics.prototype.initEventHandlers = function () { 266 _super.prototype.initClickToCallEventHandler.call(this); 267 _super.prototype.initPromotionClickEventHandler.call(this); 268 if (window.dx1ShiftDigitalAnalytics 269 && window.dx1ShiftDigitalAnalytics.hd 270 && window.dx1ShiftDigitalAnalytics.hd.isHoursAndDirectionPageType) { 271 _super.prototype.sendGetDirectionsEvent.call(this); 272 } 273 }; 274 HdShiftDigitalAnalytics.prototype.sendFormSubmissionEvent = function ($form, formEventData) { 275 var formType = this.getBasicFormType(formEventData.formName); 276 if (formType) { 277 var formVehicle = this.getFormVehicle(formEventData); 278 var prefContact = 'email'; 279 return _super.prototype.doSendFormSubmissionEvent.call(this, $form, formEventData, formType, formVehicle, prefContact); 280 } 281 return Promise.resolve(); 282 }; 283 HdShiftDigitalAnalytics.prototype.sendFormSubmissionErrorEvent = function ($form, formSubmissionErrorEventData) { 284 var formType = this.getFormSubmissionErrorFormType(formSubmissionErrorEventData.formName); 285 if (formType) { 286 var formVehicle = this.getFormVehicle(formSubmissionErrorEventData); 287 return _super.prototype.doSendFormSubmissionErrorEvent.call(this, $form, formSubmissionErrorEventData, formType, formVehicle); 288 } 289 return Promise.resolve(); 290 }; 291 return HdShiftDigitalAnalytics; 292}(ShiftDigitalAnalyticsBase_1.default)); 293exports["default"] = HdShiftDigitalAnalytics; 294 295 296/***/ }), 297 298/***/ 16: 299/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 300 301 302var __extends = (this && this.__extends) || (function () { 303 var extendStatics = function (d, b) { 304 extendStatics = Object.setPrototypeOf || 305 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 306 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 307 return extendStatics(d, b); 308 }; 309 return function (d, b) { 310 if (typeof b !== "function" && b !== null) 311 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 312 extendStatics(d, b); 313 function __() { this.constructor = d; } 314 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 315 }; 316})(); 317var __importDefault = (this && this.__importDefault) || function (mod) { 318 return (mod && mod.__esModule) ? mod : { "default": mod }; 319}; 320Object.defineProperty(exports, "__esModule", ({ value: true })); 321var ShiftDigitalAnalyticsBase_1 = __importDefault(__webpack_require__(987)); 322var formTypes = [ 323 'Get a Quote', 324 'Test Drive', 325 'Request More Info', 326 'Email a Friend', 327 'General Contact', 328 'Service', 329 'Parts', 330 'Schedule Service', 331 'Employment', 332 'Trade In', 333 'Finance', 334 'Payment Estimator', 335 'Specials', 336 'Vehicle Finder', 337 'Dealer Custom', 338 'Make an Offer', 339 'Send to Mobile', 340 'Brochure Request', 341 'Newsletter', 342 'Registration' 343]; 344var PolarisShiftDigitalAnalytics = /** @class */ (function (_super) { 345 __extends(PolarisShiftDigitalAnalytics, _super); 346 function PolarisShiftDigitalAnalytics() {
347 var _this = _super.call(this, window.sd) || this; 348 _this.eventNamespace = 'polaris'; 349 _this.vehiclePropertyName = 'polaris'; 350 _this.isSendFormFieldInteractionEvent = true; 351 _this.isSendCarouselClickEventWithOfferClick = false; 352 return _this; 353 } 354 PolarisShiftDigitalAnalytics.prototype.getFormType = function (formName) { 355 var nameMap = { 356 'Contact Us': 'General Contact', 357 'Model Wanted': 'Request More Info', 358 'Free Trade-In Evaluation': 'Trade In', 359 }; 360 var normalizedFormName = nameMap[formName] || formName; 361 var matchedType = formTypes.find(function (x) { return normalizedFormName.includes(x); }); 362 return matchedType || 'Other'; 363 }; 364 PolarisShiftDigitalAnalytics.prototype.initScheduleServiceClickEventHandler = function () { 365 var _this = this; 366 $("#dnn_rideReadyServiceLink").on("click", function () { 367 _this.fireScheduleServiceClickEvent({}); 368 }); 369 }; 370 PolarisShiftDigitalAnalytics.prototype.initPolarisFeaturedModelModuleCarouselClickEvent = function () { 371 var _this = this; 372 var $polarisFeatured = $(".dx1-polarisfeatured"); 373 if (!$polarisFeatured.length) { 374 return; 375 } 376 $polarisFeatured.on("click", ".swiper-slide-active a.btn", function (e) { 377 var $slideItem = $(e.currentTarget).closest(".swiper-slide-active"); 378 var assetPosition = $slideItem.data("swiper-slide-index"); 379 var assetName = $slideItem.find(".family-name").text(); 380 var payload = { 381 carouselClick: { 382 assetPosition: assetPosition + 1, 383 assetName: assetName 384 } 385 }; 386 _this.fireCarouselClickEvent(payload); 387 }); 388 }; 389 PolarisShiftDigitalAnalytics.prototype.sendFormShownEventImpl = function ($form, formEventData) { 390 var formType = this.getFormType(formEventData.formName); 391 var formVehicle = this.getFormVehicle(formEventData); 392 var displayType = this.getDisplayType($form); 393 _super.prototype.sendFormShownEventData.call(this, formType, displayType, formVehicle); 394 }; 395 PolarisShiftDigitalAnalytics.prototype.initFormInitiationEventHandlerImpl = function ($form, formEventData) { 396 var formType = this.getFormType(formEventData.formName); 397 var displayType = this.getDisplayType($form); 398 var formVehicle = this.getFormVehicle(formEventData); 399 _super.prototype.doInitFormInitiationEventHandlers.call(this, $form, formType, displayType, formVehicle); 400 }; 401 PolarisShiftDigitalAnalytics.prototype.initFormFieldInteractionEventHandlerImpl = function ($form, formEventData) { 402 var formType = this.getFormType(formEventData.formName); 403 var displayType = this.getDisplayType($form); 404 var formVehicle = this.getFormVehicle(formEventData); 405 _super.prototype.doInitFormFieldInteractionEventHandlers.call(this, $form, formType, displayType, formVehicle); 406 }; 407 PolarisShiftDigitalAnalytics.prototype.initEventHandlers = function () { 408 this.initScheduleServiceClickEventHandler(); 409 _super.prototype.initPromotionClickEventHandler.call(this); 410 this.initPolarisFeaturedModelModuleCarouselClickEvent(); 411 _super.prototype.initClickToCallEventHandler.call(this); 412 if (window.dx1ShiftDigitalAnalytics 413 && window.dx1ShiftDigitalAnalytics.polaris 414 && window.dx1ShiftDigitalAnalytics.polaris.isHoursAndDirectionPageType) { 415 _super.prototype.sendGetDirectionsEvent.call(this); 416 } 417 }; 418 PolarisShiftDigitalAnalytics.prototype.sendFormSubmissionEvent = function ($form, formSubmissionEventData) { 419 var formType = this.getFormType(formSubmissionEventData.formName); 420 var formVehicle = this.getFormVehicle(formSubmissionEventData); 421 var prefContact = this.getPrefContact($form); 422 var formOptIn = 'in-implicit'; 423 return _super.prototype.doSendFormSubmissionEvent.call(this, $form, formSubmissionEventData, formType, formVehicle, prefContact, formOptIn); 424 }; 425 PolarisShiftDigitalAnalytics.prototype.sendFormSubmissionErrorEvent = function ($form, formSubmissionErrorEventData) { 426 var formType = this.getFormType(formSubmissionErrorEventData.formName); 427 var formVehicle = this.getFormVehicle(formSubmissionErrorEventData); 428 return _super.prototype.doSendFormSubmissionErrorEvent.call(this, $form, formSubmissionErrorEventData, formType, formVehicle); 429 }; 430 return PolarisShiftDigitalAnalytics; 431}(ShiftDigitalAnalyticsBase_1.default)); 432exports["default"] = PolarisShiftDigitalAnalytics; 433 434 435/***/ }), 436 437/***/ 987: 438/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 439 440 441var __assign = (this && this.__assign) || function () { 442 __assign = Object.assign || function(t) { 443 for (var s, i = 1, n = arguments.length; i < n; i++) { 444 s = arguments[i]; 445 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) 446 t[p] = s[p]; 447 } 448 return t; 449 }; 450 return __assign.apply(this, arguments); 451}; 452var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 453 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 454 return new (P || (P = Promise))(function (resolve, reject) { 455 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 456 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 457 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 458 step((generator = generator.apply(thisArg, _arguments || [])).next()); 459 });
460}; 461var __generator = (this && this.__generator) || function (thisArg, body) { 462 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 463 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 464 function verb(n) { return function (v) { return step([n, v]); }; } 465 function step(op) { 466 if (f) throw new TypeError("Generator is already executing."); 467 while (g && (g = 0, op[0] && (_ = 0)), _) try { 468 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 469 if (y = 0, t) op = [op[0] & 2, t.value]; 470 switch (op[0]) { 471 case 0: case 1: t = op; break; 472 case 4: _.label++; return { value: op[1], done: false }; 473 case 5: _.label++; y = op[1]; op = [0]; continue; 474 case 7: op = _.ops.pop(); _.trys.pop(); continue; 475 default: 476 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 477 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 478 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 479 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 480 if (t[2]) _.ops.pop(); 481 _.trys.pop(); continue; 482 } 483 op = body.call(thisArg, _); 484 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 485 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 486 } 487}; 488var __importDefault = (this && this.__importDefault) || function (mod) { 489 return (mod && mod.__esModule) ? mod : { "default": mod }; 490}; 491Object.defineProperty(exports, "__esModule", ({ value: true })); 492/* eslint-disable @typescript-eslint/no-empty-function */ 493var ShiftDigitalAnalyticsApi_1 = __importDefault(__webpack_require__(877)); 494var selectors = { 495 form: { 496 content: '.formControl:first', 497 input: ':input:not(button.close)', 498 mainButton: ':button.btn-primary,:submit', 499 }, 500 promotion: 'a.promo-link[data-promotion=1]', 501 clickToCall: 'a[href^="tel:"]', 502}; 503var formFieldNameMapping = { 504 'FirstName': 'firstname', 505 'LastName': 'lastname', 506 'MiddleName': 'middlename', 507 'Phone': 'phonenumber', 508 'Email': 'emailaddress', 509 'Address1': 'address', 510 'City': 'city', 511 'StateProvince': 'state', 512 'ZipCode': 'zipcode', 513 'Comment': 'comments', 514}; 515var ShiftDigitalAnalyticsBase = /** @class */ (function () { 516 function ShiftDigitalAnalyticsBase(sd) { 517 this.isSendFormFieldInteractionEvent = false; 518 this.isSendCarouselClickEventWithOfferClick = true; 519 this.carouselClickEventContainers = []; 520 this.formFieldInteractionEventSent = []; 521 this.shiftDigitalAnalyticsApi = new ShiftDigitalAnalyticsApi_1.default(sd); 522 } 523 ShiftDigitalAnalyticsBase.prototype.addCarouselClickEventPromise = function (promises, $promotion) { 524 var _this = this; 525 this.carouselClickEventContainers.forEach(function (container) { 526 if ($promotion.closest(container).length) { 527 promises.push(_this.sendCarouselClickEvent($promotion)); 528 } 529 }); 530 }; 531 ShiftDigitalAnalyticsBase.prototype.handlePromotionClickEvent = function (e) { 532 var url = e.currentTarget.href; 533 var $promotion = $(e.currentTarget); 534 var offerId = $promotion.data('promotion-id'); 535 var offerName = $promotion.data('promotion-name'); 536 var payload = { 537 offerClick: { 538 offerId: offerId, 539 offerName: offerName, 540 }, 541 }; 542 e.preventDefault(); 543 var sendDataPromise = this.fireOfferClickEvent(payload); 544 var promises = [sendDataPromise]; 545 if (this.hasCarouselClickEventHandler && this.isSendCarouselClickEventWithOfferClick) {
546 this.addCarouselClickEventPromise(promises, $promotion); 547 } 548 Promise.all(promises).then(function () { 549 window.location.assign(url); 550 }); 551 }; 552 ShiftDigitalAnalyticsBase.prototype.addCarouselClickEventHandler = function ($root) { 553 var _this = this; 554 var selector = selectors.promotion; 555 var eventNamespace = this.getEventNamespace(); 556 var eventName = "click.".concat(eventNamespace); 557 $root.find(selector).on(eventName, function (e) { 558 var $element = $(e.currentTarget); 559 _this.sendCarouselClickEvent($element); 560 }); 561 }; 562 ShiftDigitalAnalyticsBase.prototype.sendCarouselClickEvent = function ($element) { 563 var assetPosition = parseInt($element.data('item-index')); 564 var assetName = $element.data('promotion-name'); 565 var payload = { 566 carouselClick: { 567 assetPosition: assetPosition, 568 assetName: assetName, 569 }, 570 }; 571 return this.fireCarouselClickEvent(payload); 572 }; 573 ShiftDigitalAnalyticsBase.prototype.getEventNamespace = function () { 574 return "shiftdigitalanalytics-".concat(this.eventNamespace); 575 }; 576 ShiftDigitalAnalyticsBase.prototype.getFormVehicle = function (formEventData) { 577 var _a; 578 var shiftDigitalAnalyticsVehicleData = formEventData === null || formEventData === void 0 ? void 0 : formEventData.shiftDigitalAnalyticsVehicleData; 579 var formVehicle = (_a = shiftDigitalAnalyticsVehicleData === null || shiftDigitalAnalyticsVehicleData === void 0 ? void 0 : shiftDigitalAnalyticsVehicleData.overrideData) !== null && _a !== void 0 ? _a : shiftDigitalAnalyticsVehicleData === null || shiftDigitalAnalyticsVehicleData === void 0 ? void 0 : shiftDigitalAnalyticsVehicleData[this.vehiclePropertyName]; 580 return formVehicle; 581 }; 582 ShiftDigitalAnalyticsBase.prototype.sendDataWithCallBack = function (eventName, data) { 583 return this.shiftDigitalAnalyticsApi.sendDataWithCallBack(eventName, data); 584 }; 585 ShiftDigitalAnalyticsBase.prototype.sendData = function (data) { 586 this.shiftDigitalAnalyticsApi.sendData(data); 587 }; 588 ShiftDigitalAnalyticsBase.prototype.initClickToCallEventHandler = function () { 589 var _this = this; 590 var rootSelector = 'body'; 591 var selector = selectors.clickToCall; 592 var eventNamespace = this.getEventNamespace(); 593 var eventName = "click.".concat(eventNamespace); 594 $(rootSelector).on(eventName, selector, function () { 595 var payload = { 596 clickToCallDepartment: 'Sales', 597 }; 598 _this.fireClickToCallEvent(payload); 599 }); 600 }; 601 ShiftDigitalAnalyticsBase.prototype.initLinkClickEventHandler = function (selector, linkType) { 602 var _this = this; 603 var rootSelector = 'body'; 604 var eventName = "click.".concat(this.getEventNamespace()); 605 $(rootSelector).on(eventName, selector, function () { 606 _this.fireLinkClickEvent({ 607 linkType: linkType, 608 }); 609 }); 610 }; 611 ShiftDigitalAnalyticsBase.prototype.initPromotionClickEventHandler = function () { 612 var _this = this; 613 this.hasPromotionClickEventHandler = true; 614 var rootSelector = 'body'; 615 var selector = selectors.promotion; 616 var eventNamespace = this.getEventNamespace(); 617 var eventName = "click.".concat(eventNamespace); 618 $(rootSelector).on(eventName, selector, function (e) { 619 _this.handlePromotionClickEvent(e); 620 }); 621 }; 622 ShiftDigitalAnalyticsBase.prototype.sendFormShownEventData = function (formType, displayType, formVehicle) { 623 if (displayType === void 0) { displayType = null; } 624 if (formVehicle === void 0) { formVehicle = null; } 625 var payload = __assign(__assign(__assign({ formType: formType }, (this.getFormLinkType() ? { linkType: this.getFormLinkType() } : {})), (displayType ? { displayType: displayType } : {})), (formVehicle ? { formVehicle: formVehicle } : {})); 626 this.fireFormShownEvent(payload); 627 }; 628 ShiftDigitalAnalyticsBase.prototype.handleFormInitiationEvent = function ($form, formType, displayType, formVehicle, e) { 629 e.stopImmediatePropagation(); 630 e.preventDefault(); 631 var payload = __assign(__assign(__assign({ formType: formType }, (this.getFormLinkType() ? { linkType: this.getFormLinkType() } : {})), (displayType ? { displayType: displayType } : {})), (formVehicle ? { formVehicle: formVehicle } : {})); 632 this.fireFormInitiationEvent(payload); 633 var eventNamespace = this.getEventNamespace(); 634 $form.find(selectors.form.content) 635 .off("focusin.".concat(eventNamespace)); 636 $form.find(selectors.form.content).find(selectors.form.input) 637 .off("keypress.".concat(eventNamespace)) 638 .off("focusin.".concat(eventNamespace)); 639 if (this.isSendFormFieldInteractionEvent) { 640 this.doInitFormFieldInteractionEventHandlers($form, formType, displayType, formVehicle); 641 } 642 }; 643 ShiftDigitalAnalyticsBase.prototype.doInitFormInitiationEventHandlers = function ($form, formType, displayType, formVehicle) { 644 var _this = this; 645 if (formVehicle === void 0) { formVehicle = null; } 646 var eventNamespace = this.getEventNamespace(); 647 $form.find(selectors.form.content) 648 .one("focusin.".concat(eventNamespace), function (e) { 649 _this.handleFormInitiationEvent($form, formType, displayType, formVehicle, e); 650 }); 651 }; 652 ShiftDigitalAnalyticsBase.prototype.getFormFieldName = function (dx1FieldName) { 653 var _a; 654 return (_a = formFieldNameMapping[dx1FieldName]) !== null && _a !== void 0 ? _a : 'other'; 655 }; 656 ShiftDigitalAnalyticsBase.prototype.handleFormFieldInteractionEvent = function (formType, displayType, formVehicle, e) { 657 var $currentTarget = $(e.currentTarget); 658 var eventNamespace = this.getEventNamespace(); 659 $currentTarget.off("change.".concat(eventNamespace)) 660 .off("keypress.".concat(eventNamespace)); 661 var dx1FieldName = $currentTarget.closest('[data-question-mapped-key-name]').data('question-mapped-key-name'); 662 var formFieldName = this.getFormFieldName(dx1FieldName); 663 if (this.formFieldInteractionEventSent.includes(formFieldName)) { 664 return; 665 } 666 this.formFieldInteractionEventSent.push(formFieldName); 667 var payload = { 668 formType: formType, 669 displayType: displayType, 670 formVehicle: formVehicle, 671 formFieldName: formFieldName 672 }; 673 this.fireFormFieldInteractionEvent(payload); 674 }; 675 ShiftDigitalAnalyticsBase.prototype.doInitFormFieldInteractionEventHandlers = function ($form, formType, displayType, formVehicle) { 676 var _this = this; 677 this.formFieldInteractionEventSent = []; 678 var eventNamespace = this.getEventNamespace(); 679 $form.find(selectors.form.content).find(selectors.form.input) 680 .one("keypress.".concat(eventNamespace), function (e) { 681 _this.handleFormFieldInteractionEvent(formType, displayType, formVehicle, e); 682 }) 683 .one("focusin.".concat(eventNamespace), function (e) { 684 _this.handleFormFieldInteractionEvent(formType, displayType, formVehicle, e); 685 }); 686 }; 687 ShiftDigitalAnalyticsBase.prototype.getPrefContact = function ($form) { 688 var _a; 689 var defaultPrefContact = 'email'; 690 var prefContact = (_a = $form.find('[data-question-mapped-key-name=PreferredContact]').find(":radio:checked").val()) === null || _a === void 0 ? void 0 : _a.toLowerCase(); 691 return prefContact !== null && prefContact !== void 0 ? prefContact : defaultPrefContact; 692 }; 693 ShiftDigitalAnalyticsBase.prototype.getFormLinkType = function () { 694 return null; 695 }; 696 ShiftDigitalAnalyticsBase.prototype.getDisplayType = function ($form) { 697 return $form.hasClass('modal') ? 'modal' : 'in-page'; 698 }; 699 ShiftDigitalAnalyticsBase.prototype.doSendFormSubmissionEvent = function ($form, formEventData, formType, formVehicle, prefContact, formOptIn, includeDisplayType) { 700 if (formOptIn === void 0) { formOptIn = null; } 701 if (includeDisplayType === void 0) { includeDisplayType = true; } 702 if (!formType) { 703 return Promise.resolve(); 704 } 705 var leadType = 'lead'; 706 var displayType = this.getDisplayType($form); 707 var payload = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, (formEventData.leadTransactionId ? { leadId: formEventData.leadTransactionId } : {})), { formType: formType }), (this.getFormLinkType() ? { linkType: this.getFormLinkType() } : {})), { leadType: leadType }), (formOptIn ? { formOptIn: formOptIn } : {})), (prefContact ? { prefContact: prefContact } : {})), (includeDisplayType && displayType ? { displayType: displayType } : {})), (formVehicle ? { formVehicle: formVehicle } : {})); 708 return this.fireFormSubmissionEventAsync(payload); 709 }; 710 ShiftDigitalAnalyticsBase.prototype.doSendFormSubmissionErrorEvent = function ($form, formSubmissionErrorEventData, formType, formVehicle) { 711 if (!formType) { 712 return Promise.resolve(); 713 } 714 var displayType = this.getDisplayType($form); 715 var payload = { 716 formType: formType, 717 displayType: displayType, 718 formError: formSubmissionErrorEventData.errorMessage, 719 formVehicle: formVehicle 720 }; 721 return this.fireFormSubmissionErrorEventAsync(payload); 722 }; 723 ShiftDigitalAnalyticsBase.prototype.doInitCarouselClickEventHandler = function ($root) { 724 if (this.hasPromotionClickEventHandler) { 725 this.carouselClickEventContainers.push($root); 726 this.hasCarouselClickEventHandler = true; 727 } 728 else {
729 this.addCarouselClickEventHandler($root); 730 } 731 }; 732 ShiftDigitalAnalyticsBase.prototype.sendGetDirectionsEvent = function () { 733 this.fireGetDirectionsEvent({}); 734 }; 735 ShiftDigitalAnalyticsBase.prototype.doSendPageViewEvent = function () { 736 this.shiftDigitalAnalyticsApi.sendPageView(); 737 }; 738 ShiftDigitalAnalyticsBase.prototype.doSendEmptyFilterSearchEvent = function () { 739 var filterSearchEventData = { 740 events: 'filterSearch', 741 filterSearch: { 742 status: 'Mixed', 743 }, 744 }; 745 this.shiftDigitalAnalyticsApi.sendData(filterSearchEventData); 746 }; 747 // eslint-disable-next-line @typescript-eslint/no-unused-vars 748 ShiftDigitalAnalyticsBase.prototype.sendFormShownEventImpl = function ($form, formEventData) { 749 }; 750 ShiftDigitalAnalyticsBase.prototype.initFormInitiationEventHandlerImpl = function ( 751 // eslint-disable-next-line @typescript-eslint/no-unused-vars 752 $form, 753 // eslint-disable-next-line @typescript-eslint/no-unused-vars 754 formEventData) { 755 }; 756 ShiftDigitalAnalyticsBase.prototype.initFormFieldInteractionEventHandlerImpl = function ( 757 // eslint-disable-next-line @typescript-eslint/no-unused-vars 758 $form, 759 // eslint-disable-next-line @typescript-eslint/no-unused-vars 760 formEventData) { 761 }; 762 ShiftDigitalAnalyticsBase.prototype.sendFormShownEvent = function ($form, formEventData) { 763 this.sendFormShownEventImpl($form, formEventData); 764 }; 765 ShiftDigitalAnalyticsBase.prototype.initFormInitiationEventHandler = function ($form, formEventData) { 766 this.initFormInitiationEventHandlerImpl($form, formEventData); 767 }; 768 ShiftDigitalAnalyticsBase.prototype.initFormFieldInteractionEventHandler = function ($form, formEventData) { 769 this.initFormFieldInteractionEventHandlerImpl($form, formEventData); 770 }; 771 // eslint-disable-next-line @typescript-eslint/no-unused-vars 772 ShiftDigitalAnalyticsBase.prototype.sendFormSubmissionErrorEvent = function ($form, formSubmissionErrorEventData) { 773 return Promise.resolve(); 774 }; 775 ShiftDigitalAnalyticsBase.prototype.sendFilterSearchEvent = function (filterSearch, countSearchResults) { 776 var payload = { 777 countSearchResults: countSearchResults.toString(), 778 filterSearch: filterSearch, 779 }; 780 this.fireFilterSearchEvent(payload); 781 }; 782 ShiftDigitalAnalyticsBase.prototype.sendPageBrandEvent = function (keyword) { 783 var pageBrandEventData = { 784 pagebrand: keyword 785 }; 786 this.shiftDigitalAnalyticsApi.sendData(pageBrandEventData); 787 }; 788 ShiftDigitalAnalyticsBase.prototype.sendTypedSearchEvent = function (keyword) { 789 this.fireTypedSearchEvent({ typedSearchContent: keyword }); 790 }; 791 ShiftDigitalAnalyticsBase.prototype.initCarouselClickEventHandler = function ($root) { 792 this.doInitCarouselClickEventHandler($root); 793 }; 794 ShiftDigitalAnalyticsBase.prototype.sendPageViewEvent = function () { 795 this.shiftDigitalAnalyticsApi.sendPageView(); 796 }; 797 ShiftDigitalAnalyticsBase.prototype.sendEmptyFilterSearchEvent = function () { 798 var payload = { 799 countSearchResults: '0', 800 filterSearch: { 801 status: 'Mixed', 802 }, 803 }; 804 this.fireFilterSearchEvent(payload); 805 }; 806 ShiftDigitalAnalyticsBase.prototype.fireFilterSearchEvent = function (payload) { 807 var event = __assign(__assign({}, payload), { events: 'filterSearch' }); 808 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 809 }; 810 ShiftDigitalAnalyticsBase.prototype.fireTypedSearchEvent = function (payload) { 811 var event = __assign(__assign({}, payload), { events: 'typedSearch' }); 812 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 813 }; 814 ShiftDigitalAnalyticsBase.prototype.fireVehicleQuickViewEvent = function (payload) { 815 var event = __assign(__assign({}, payload), { events: 'vehicleQuickView' }); 816 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 817 }; 818 ShiftDigitalAnalyticsBase.prototype.fireFormShownEvent = function (payload) { 819 var event = __assign(__assign({}, payload), { events: 'formShown' });
820 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 821 }; 822 ShiftDigitalAnalyticsBase.prototype.fireFormInitiationEvent = function (payload) { 823 var event = __assign(__assign({}, payload), { events: 'formInitiation' }); 824 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 825 }; 826 ShiftDigitalAnalyticsBase.prototype.fireFormFieldInteractionEvent = function (payload) { 827 var event = __assign(__assign({}, payload), { events: 'formFieldInteraction' }); 828 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 829 }; 830 ShiftDigitalAnalyticsBase.prototype.fireFormSubmissionEventAsync = function (payload) { 831 return __awaiter(this, void 0, void 0, function () { 832 var event; 833 return __generator(this, function (_a) { 834 switch (_a.label) { 835 case 0: 836 event = __assign(__assign({}, payload), { events: 'formSubmission' }); 837 return [4 /*yield*/, this.shiftDigitalAnalyticsApi.sendDataLayerEventAsync(event)]; 838 case 1: 839 _a.sent(); 840 return [2 /*return*/]; 841 } 842 }); 843 }); 844 }; 845 ShiftDigitalAnalyticsBase.prototype.fireFormSubmissionErrorEventAsync = function (payload) { 846 return __awaiter(this, void 0, void 0, function () { 847 var event; 848 return __generator(this, function (_a) { 849 switch (_a.label) { 850 case 0: 851 event = __assign(__assign({}, payload), { events: 'formSubmissionError' }); 852 return [4 /*yield*/, this.shiftDigitalAnalyticsApi.sendDataLayerEventAsync(event)]; 853 case 1: 854 _a.sent(); 855 return [2 /*return*/]; 856 } 857 }); 858 }); 859 }; 860 ShiftDigitalAnalyticsBase.prototype.fireOfferClickEvent = function (payload) { 861 return __awaiter(this, void 0, void 0, function () { 862 var event; 863 return __generator(this, function (_a) { 864 event = __assign(__assign({}, payload), { events: 'offerClick' }); 865 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 866 return [2 /*return*/]; 867 }); 868 }); 869 }; 870 ShiftDigitalAnalyticsBase.prototype.fireServiceOfferClickEvent = function (payload) { 871 var event = __assign(__assign({}, payload), { events: 'serviceOfferClick' }); 872 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 873 }; 874 ShiftDigitalAnalyticsBase.prototype.fireClickToCallEvent = function (payload) { 875 var event = __assign(__assign({}, payload), { events: 'clickToCall' }); 876 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 877 }; 878 ShiftDigitalAnalyticsBase.prototype.fireClickToTextEvent = function (payload) { 879 var event = __assign(__assign({}, payload), { events: 'clickToText' }); 880 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 881 }; 882 ShiftDigitalAnalyticsBase.prototype.fireLinkClickEvent = function (payload) { 883 var event = __assign(__assign({}, payload), { events: 'linkClick' }); 884 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 885 }; 886 ShiftDigitalAnalyticsBase.prototype.fireLinkClickEventAsync = function (payload) { 887 return __awaiter(this, void 0, void 0, function () { 888 var event; 889 return __generator(this, function (_a) { 890 switch (_a.label) { 891 case 0: 892 event = __assign(__assign({}, payload), { events: 'linkClick' }); 893 return [4 /*yield*/, this.shiftDigitalAnalyticsApi.sendDataLayerEventAsync(event)]; 894 case 1: 895 _a.sent(); 896 return [2 /*return*/]; 897 } 898 }); 899 }); 900 }; 901 ShiftDigitalAnalyticsBase.prototype.fireCarouselClickEvent = function (payload) { 902 return __awaiter(this, void 0, void 0, function () { 903 var event; 904 return __generator(this, function (_a) { 905 event = __assign(__assign({}, payload), { events: 'carouselClick' }); 906 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 907 return [2 /*return*/]; 908 }); 909 }); 910 }; 911 ShiftDigitalAnalyticsBase.prototype.fireGetDirectionsEvent = function (payload) { 912 var event = __assign(__assign({}, payload), { events: 'getDirections' });
913 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 914 }; 915 ShiftDigitalAnalyticsBase.prototype.fireBrochureDownloadEvent = function (payload) { 916 var event = __assign(__assign({}, payload), { events: 'brochureDownload' }); 917 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 918 }; 919 ShiftDigitalAnalyticsBase.prototype.fireScheduleServiceClickEvent = function (payload) { 920 var event = __assign(__assign({}, payload), { events: 'scheduleServiceClick' }); 921 this.shiftDigitalAnalyticsApi.sendDataLayerEvent(event); 922 }; 923 return ShiftDigitalAnalyticsBase; 924}()); 925exports["default"] = ShiftDigitalAnalyticsBase; 926 927 928/***/ }), 929 930/***/ 559: 931/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 932 933 934var __importDefault = (this && this.__importDefault) || function (mod) { 935 return (mod && mod.__esModule) ? mod : { "default": mod }; 936}; 937Object.defineProperty(exports, "__esModule", ({ value: true })); 938exports.ShiftDigitalAnalyticsManager = void 0; 939var PolarisShiftDigitalAnalytics_1 = __importDefault(__webpack_require__(16)); 940var HdShiftDigitalAnalytics_1 = __importDefault(__webpack_require__(626)); 941var BmwShiftDigitalAnalytics_1 = __importDefault(__webpack_require__(526)); 942var YamahaShiftDigitalAnalytics_1 = __importDefault(__webpack_require__(647)); 943var ShiftDigitalAnalyticsManager = /** @class */ (function () { 944 function ShiftDigitalAnalyticsManager() { 945 this.sds = []; 946 this.initShiftDigitalAnalytics(); 947 } 948 ShiftDigitalAnalyticsManager.prototype.initShiftDigitalAnalytics = function () { 949 var _a, _b, _c, _d; 950 if ((_a = window.dx1ShiftDigitalAnalytics) === null || _a === void 0 ? void 0 : _a.polaris) { 951 this.sds.push(new PolarisShiftDigitalAnalytics_1.default()); 952 } 953 if ((_b = window.dx1ShiftDigitalAnalytics) === null || _b === void 0 ? void 0 : _b.hd) { 954 this.sds.push(new HdShiftDigitalAnalytics_1.default()); 955 } 956 if ((_c = window.dx1ShiftDigitalAnalytics) === null || _c === void 0 ? void 0 : _c.bmw) { 957 this.sds.push(new BmwShiftDigitalAnalytics_1.default()); 958 } 959 if ((_d = window.dx1ShiftDigitalAnalytics) === null || _d === void 0 ? void 0 : _d.yamaha) { 960 this.sds.push(new YamahaShiftDigitalAnalytics_1.default()); 961 } 962 }; 963 ShiftDigitalAnalyticsManager.instance = function () { 964 if (!ShiftDigitalAnalyticsManager._instance) { 965 ShiftDigitalAnalyticsManager._instance = new ShiftDigitalAnalyticsManager(); 966 } 967 return ShiftDigitalAnalyticsManager._instance; 968 }; 969 ShiftDigitalAnalyticsManager.isActivated = function () { 970 return !!(ShiftDigitalAnalyticsManager === null || ShiftDigitalAnalyticsManager === void 0 ? void 0 : ShiftDigitalAnalyticsManager.instance().hasShiftDigitalAnalytics()); 971 }; 972 ShiftDigitalAnalyticsManager.prototype.hasShiftDigitalAnalytics = function () { 973 return this.sds.length > 0; 974 }; 975 ShiftDigitalAnalyticsManager.prototype.initEventHandlers = function () { 976 this.sds.forEach(function (sd) { return sd.initEventHandlers(); }); 977 }; 978 ShiftDigitalAnalyticsManager.prototype.sendFormShownEvent = function ($form, formEventData) { 979 this.sds.forEach(function (sd) { return sd.sendFormShownEvent($form, formEventData); }); 980 }; 981 ShiftDigitalAnalyticsManager.prototype.initFormInitiationEventHandler = function ($form, formEventData) { 982 this.sds.forEach(function (sd) { return sd.initFormInitiationEventHandler($form, formEventData); }); 983 }; 984 ShiftDigitalAnalyticsManager.prototype.initFormFieldInteractionEventHandler = function ($form, formEventData) { 985 this.sds.forEach(function (sd) { return sd.initFormFieldInteractionEventHandler($form, formEventData); }); 986 }; 987 ShiftDigitalAnalyticsManager.prototype.sendFormSubmissionEvent = function ($form, formSubmissionEventData) { 988 var promises = this.sds.map(function (sd) { return sd.sendFormSubmissionEvent($form, formSubmissionEventData); }); 989 return new Promise(function (resolve) { 990 Promise.all(promises).then(function () { 991 resolve(); 992 }); 993 }); 994 }; 995 ShiftDigitalAnalyticsManager.prototype.sendFormSubmissionErrorEvent = function ($form, formSUbmissionErrorEventData) { 996 var promises = this.sds.map(function (sd) { return sd.sendFormSubmissionErrorEvent($form, formSUbmissionErrorEventData); }); 997 return new Promise(function (resolve) { 998 Promise.all(promises).then(function () { 999 resolve(); 1000 }); 1001 }); 1002 }; 1003 ShiftDigitalAnalyticsManager.prototype.sendFilterSearchEvent = function (filterSearch, countSearchResults) { 1004 this.sds.forEach(function (sd) { return sd.sendFilterSearchEvent(filterSearch, countSearchResults); }); 1005 }; 1006 ShiftDigitalAnalyticsManager.prototype.sendPageBrandEvent = function (keyword) { 1007 this.sds.forEach(function (sd) { return sd.sendPageBrandEvent(keyword); }); 1008 }; 1009 ShiftDigitalAnalyticsManager.prototype.sendTypedSearchEvent = function (keyword) { 1010 this.sds.forEach(function (sd) { return sd.sendTypedSearchEvent(keyword); }); 1011 }; 1012 ShiftDigitalAnalyticsManager.prototype.initCarouselClickEventHandler = function ($root) { 1013 this.sds.forEach(function (sd) { return sd.initCarouselClickEventHandler($root); }); 1014 }; 1015 ShiftDigitalAnalyticsManager.prototype.sendEmptyFilterSearchEvent = function () { 1016 this.sds.forEach(function (sd) { return sd.sendEmptyFilterSearchEvent(); }); 1017 }; 1018 ShiftDigitalAnalyticsManager.prototype.sendPageViewEvent = function () { 1019 this.sds.forEach(function (sd) { return sd.sendPageViewEvent(); }); 1020 }; 1021 return ShiftDigitalAnalyticsManager; 1022}()); 1023exports.ShiftDigitalAnalyticsManager = ShiftDigitalAnalyticsManager; 1024exports["default"] = ShiftDigitalAnalyticsManager; 1025 1026 1027/***/ }), 1028 1029/***/ 647: 1030/***/ (function(__unused_webpack_module, exports, __webpack_require__) { 1031 1032 1033var __extends = (this && this.__extends) || (function () { 1034 var extendStatics = function (d, b) { 1035 extendStatics = Object.setPrototypeOf || 1036 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || 1037 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; 1038 return extendStatics(d, b); 1039 }; 1040 return function (d, b) { 1041 if (typeof b !== "function" && b !== null) 1042 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 1043 extendStatics(d, b); 1044 function __() { this.constructor = d; } 1045 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 1046 }; 1047})(); 1048var __assign = (this && this.__assign) || function () { 1049 __assign = Object.assign || function(t) { 1050 for (var s, i = 1, n = arguments.length; i < n; i++) { 1051 s = arguments[i]; 1052 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) 1053 t[p] = s[p]; 1054 } 1055 return t; 1056 }; 1057 return __assign.apply(this, arguments); 1058}; 1059var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 1060 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 1061 return new (P || (P = Promise))(function (resolve, reject) { 1062 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 1063 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 1064 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 1065 step((generator = generator.apply(thisArg, _arguments || [])).next()); 1066 });
1067}; 1068var __generator = (this && this.__generator) || function (thisArg, body) { 1069 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; 1070 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; 1071 function verb(n) { return function (v) { return step([n, v]); }; } 1072 function step(op) { 1073 if (f) throw new TypeError("Generator is already executing."); 1074 while (g && (g = 0, op[0] && (_ = 0)), _) try { 1075 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 1076 if (y = 0, t) op = [op[0] & 2, t.value]; 1077 switch (op[0]) { 1078 case 0: case 1: t = op; break; 1079 case 4: _.label++; return { value: op[1], done: false }; 1080 case 5: _.label++; y = op[1]; op = [0]; continue; 1081 case 7: op = _.ops.pop(); _.trys.pop(); continue; 1082 default: 1083 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } 1084 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } 1085 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } 1086 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } 1087 if (t[2]) _.ops.pop(); 1088 _.trys.pop(); continue; 1089 } 1090 op = body.call(thisArg, _); 1091 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } 1092 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; 1093 } 1094}; 1095var __importDefault = (this && this.__importDefault) || function (mod) { 1096 return (mod && mod.__esModule) ? mod : { "default": mod }; 1097}; 1098Object.defineProperty(exports, "__esModule", ({ value: true })); 1099var ShiftDigitalAnalyticsBase_1 = __importDefault(__webpack_require__(987)); 1100var yamahaFormTypes = [ 1101 'Get a Quote', 1102 'Test Drive', 1103 'Request More Info', 1104 'Email a Friend', 1105 'General Contact', 1106 'Service', 1107 'Parts', 1108 'Schedule Service', 1109 'Employment', 1110 'Trade In', 1111 'Finance', 1112 'Payment Estimator', 1113 'Specials', 1114 'Vehicle Finder', 1115 'Dealer Custom', 1116 'Make an Offer', 1117 'Send to Mobile', 1118]; 1119var YamahaShiftDigitalAnalytics = /** @class */ (function (_super) { 1120 __extends(YamahaShiftDigitalAnalytics, _super); 1121 function YamahaShiftDigitalAnalytics() { 1122 var _this = _super.call(this, window.sdy) || this; 1123 _this.eventNamespace = 'yamaha'; 1124 _this.vehiclePropertyName = 'yamaha'; 1125 _this.isInitialFilterSearch = true; 1126 _this.inventorySearch = { 1127 status: 'Mixed', 1128 }; 1129 _this.inventorySearchResultCount = '0'; 1130 _this.inventoryLinkClickFilter = null; 1131 _this.yamahaSelectors = { 1132 vdpLink: '.showroom-result--hits .showroom-item a[href$="Y"]', 1133 inventoryLink: '#MainNavigation .yamaha-inventory-link', 1134 }; 1135 return _this; 1136 } 1137 YamahaShiftDigitalAnalytics.prototype.getFormType = function (formName) { 1138 var nameMap = { 1139 'Contact Us': 'General Contact', 1140 'Model Wanted': 'Request More Info', 1141 'Free Trade-In Evaluation': 'Trade In', 1142 'Payment Estimator': 'Payment Estimator', 1143 }; 1144 var normalizedFormName = nameMap[formName] || formName; 1145 return yamahaFormTypes.find(function (x) { return normalizedFormName === null || normalizedFormName === void 0 ? void 0 : normalizedFormName.includes(x); }) || 'Other'; 1146 }; 1147 YamahaShiftDigitalAnalytics.prototype.getFormLinkType = function () { 1148 return 'Lead Form'; 1149 }; 1150 YamahaShiftDigitalAnalytics.prototype.sendFormShownEventImpl = function (_form, formEventData) { 1151 var formType = this.getFormType(formEventData.formName); 1152 var formVehicle = this.getFormVehicle(formEventData); 1153 _super.prototype.sendFormShownEventData.call(this, formType, null, formVehicle); 1154 }; 1155 YamahaShiftDigitalAnalytics.prototype.initFormInitiationEventHandlerImpl = function ($form, formEventData) { 1156 var formType = this.getFormType(formEventData.formName); 1157 var formVehicle = this.getFormVehicle(formEventData); 1158 _super.prototype.doInitFormInitiationEventHandlers.call(this, $form, formType, null, formVehicle); 1159 }; 1160 YamahaShiftDigitalAnalytics.prototype.initEventHandlers = function () { 1161 _super.prototype.initLinkClickEventHandler.call(this, this.yamahaSelectors.vdpLink, 'VDP'); 1162 this.initInventoryLinkClickEventHandler(); 1163 _super.prototype.initPromotionClickEventHandler.call(this); 1164 _super.prototype.initClickToCallEventHandler.call(this); 1165 }; 1166 YamahaShiftDigitalAnalytics.prototype.initInventoryLinkClickEventHandler = function () { 1167 var _this = this; 1168 var eventName = "click.".concat(this.getEventNamespace()); 1169 var selector = this.yamahaSelectors.inventoryLink; 1170 $('body') 1171 .off(eventName, selector) 1172 .on(eventName, selector, function () { 1173 _this.inventoryLinkClickFilter = JSON.stringify(_this.inventorySearch); 1174 _this.fireLinkClickEvent({ 1175 linkType: 'Inventory Search', 1176 }); 1177 }); 1178 }; 1179 YamahaShiftDigitalAnalytics.prototype.fireLinkClickEvent = function (payload) { 1180 if (payload.linkType === 'Inventory Search') { 1181 _super.prototype.fireLinkClickEvent.call(this, __assign(__assign({}, payload), { countSearchResults: this.inventorySearchResultCount, 'Inventory Search': this.inventorySearch })); 1182 return; 1183 } 1184 _super.prototype.fireLinkClickEvent.call(this, payload); 1185 }; 1186 // eslint-disable-next-line @typescript-eslint/no-unused-vars 1187 YamahaShiftDigitalAnalytics.prototype.fireOfferClickEvent = function (_payload) { 1188 return __awaiter(this, void 0, void 0, function () { 1189 return __generator(this, function (_a) { 1190 switch (_a.label) { 1191 case 0: return [4 /*yield*/, _super.prototype.fireLinkClickEventAsync.call(this, { 1192 linkType: 'Offers', 1193 })]; 1194 case 1: 1195 _a.sent(); 1196 return [2 /*return*/]; 1197 } 1198 }); 1199 }); 1200 }; 1201 YamahaShiftDigitalAnalytics.prototype.sendFilterSearchEvent = function (filterSearch, countSearchResults) { 1202 this.inventorySearch = filterSearch; 1203 this.inventorySearchResultCount = countSearchResults.toString(); 1204 var filter = JSON.stringify(this.inventorySearch); 1205 if (this.isInitialFilterSearch) { 1206 this.isInitialFilterSearch = false; 1207 this.inventoryLinkClickFilter = null; 1208 return; 1209 } 1210 if (filter === this.inventoryLinkClickFilter) { 1211 this.inventoryLinkClickFilter = null; 1212 return; 1213 } 1214 this.inventoryLinkClickFilter = null; 1215 this.fireLinkClickEvent({ 1216 linkType: 'Inventory Search', 1217 countSearchResults: this.inventorySearchResultCount, 1218 'Inventory Search': this.inventorySearch, 1219 }); 1220 }; 1221 YamahaShiftDigitalAnalytics.prototype.sendEmptyFilterSearchEvent = function () { 1222 this.inventorySearch = { 1223 status: 'Mixed', 1224 }; 1225 this.inventorySearchResultCount = '0'; 1226 _super.prototype.sendData.call(this, { 1227 linkType: 'Inventory Search', 1228 countSearchResults: this.inventorySearchResultCount, 1229 'Inventory Search': this.inventorySearch, 1230 }); 1231 }; 1232 YamahaShiftDigitalAnalytics.prototype.sendFormSubmissionEvent = function ($form, formSubmissionEventData) { 1233 var formType = this.getFormType(formSubmissionEventData.formName); 1234 var formVehicle = this.getFormVehicle(formSubmissionEventData); 1235 var prefContact = this.getPrefContact($form); 1236 return _super.prototype.doSendFormSubmissionEvent.call(this, $form, formSubmissionEventData, formType, formVehicle, prefContact, null, false); 1237 }; 1238 return YamahaShiftDigitalAnalytics; 1239}(ShiftDigitalAnalyticsBase_1.default)); 1240exports["default"] = YamahaShiftDigitalAnalytics; 1241 1242 1243/***/ }) 1244 1245/******/ }); 1246/************************************************************************/ 1247/******/ // The module cache 1248/******/ var __webpack_module_cache__ = {}; 1249/******/ 1250/******/ // The require function 1251/******/ function __webpack_require__(moduleId) { 1252/******/ // Check if module is in cache 1253/******/ var cachedModule = __webpack_module_cache__[moduleId]; 1254/******/ if (cachedModule !== undefined) { 1255/******/ return cachedModule.exports; 1256/******/ } 1257/******/ // Create a new module (and put it into the cache) 1258/******/ var module = __webpack_module_cache__[moduleId] = { 1259/******/ // no module.id needed 1260/******/ // no module.loaded needed 1261/******/ exports: {} 1262/******/ }; 1263/******/ 1264/******/ // Execute the module function 1265/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); 1266/******/ 1267/******/ // Return the exports of the module 1268/******/ return module.exports; 1269/******/ } 1270/******/ 1271/************************************************************************/ 1272/******/ 1273/******/ // startup 1274/******/ // Load entry module and return exports 1275/******/ // This entry module is referenced by other modules so it can't be inlined 1276/******/ var __webpack_exports__ = __webpack_require__(559); 1277/******/ var __webpack_export_target__ = window; 1278/******/ for(var i in __webpack_exports__) __webpack_export_target__[i] = __webpack_exports__[i];
1279/******/ if(__webpack_exports__.__esModule) Object.defineProperty(__webpack_export_target__, "__esModule", { value: true }); 1280/******/ 1281/******/ })() 1282;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.