PageSourceSearch

https://www.burkemotorgroup.com/resources/vhcliaa/components/vehic….9.24a26a87f4c3be850232f857cc149210db453171

js burkemotorgroup.com collected 2026-10-04 13:28:56 UTC 1,421,527 bytes, 28,575 lines download raw bytes

1/******/ (() => { // webpackBootstrap
2/******/ 	var __webpack_modules__ = ({
3
4/***/ 9:
5/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
7"use strict";
8
9// EXPORTS
10__webpack_require__.d(__webpack_exports__, {
11  L: () => (/* binding */ TranslationService)
12});
13
14// NAMESPACE OBJECT: ./src/services/translations/iTranslationFetcher.ts
15var iTranslationFetcher_namespaceObject = {};
16__webpack_require__.r(iTranslationFetcher_namespaceObject);
17
18// EXTERNAL MODULE: ./node_modules/inversify/lib/inversify.js
19var inversify = __webpack_require__(260);
20;// ./src/services/translations/translations.ts
21class Translations {
22    constructor() {
23        this.Labels = new Array();
24        this.Comments = new Array();
25        this.Buttons = new Array();
26        this.Titles = new Array();
27    }
28}
29
30;// ./src/services/translations/translationType.ts
31var TranslationType;
32(function (TranslationType) {
33    TranslationType["Labels"] = "labels";
34    TranslationType["Comments"] = "comments";
35    TranslationType["Buttons"] = "buttons";
36    TranslationType["Titles"] = "titles";
37})(TranslationType || (TranslationType = {}));
38
39;// ./src/services/translations/translationStorage.ts
40var TranslationStorage;
41(function (TranslationStorage) {
42    TranslationStorage["Labels"] = "do.translations.labels";
43    TranslationStorage["Comments"] = "do.translations.comments";
44    TranslationStorage["Buttons"] = "do.translations.buttons";
45    TranslationStorage["Titles"] = "do.translations.titles";
46})(TranslationStorage || (TranslationStorage = {}));
47
48;// ./src/services/translations/iTranslationFetcher.ts
49
50
51// EXTERNAL MODULE: ./src/types/types.ts
52var types = __webpack_require__(5644);
53;// ./src/services/translations/translationService.ts
54var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
55    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
56    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
57    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
58    return c > 3 && r && Object.defineProperty(target, key, r), r;
59};
60var __metadata = (undefined && undefined.__metadata) || function (k, v) {
61    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
62};
63var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
64    return function (target, key) { decorator(target, key, paramIndex); }
65};
66var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
67    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
68    return new (P || (P = Promise))(function (resolve, reject) {
69        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
70        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
71        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
72        step((generator = generator.apply(thisArg, _arguments || [])).next());
73    });
74};
75var _a;
76
77
78
79
80
81
82let TranslationService = class TranslationService {
83    constructor(dataFetcher) {
84        this._dealerId = window.DlronGlobal_DealerId;
85        this.dataFetcher = dataFetcher;
86    }
87    initialize(useLabels = true, useComments = false, useButtons = false, useTitles = false) {
88        return __awaiter(this, void 0, void 0, function* () {
89            this.translations = new Translations();
90            const translationPromises = [];
91            if (useLabels) {
92                translationPromises.push(this.loadTranslations(TranslationType.Labels));
93            }
94            if (useComments) {
95                translationPromises.push(this.loadTranslations(TranslationType.Comments));
96            }
97            if (useButtons) {
98                translationPromises.push(this.loadTranslations(TranslationType.Buttons));
99            }
100            if (useTitles) {
101                translationPromises.push(this.loadTranslations(TranslationType.Titles));
102            }
103            try {
104                yield Promise.all(translationPromises);
105            }
106            catch (error) {
107                console.error("Error loading translations:", error);
108            }
109        });
110    }
111    loadTranslations(translationType) {
112        return __awaiter(this, void 0, void 0, function* () {
113            let storageLocation;
114            switch (translationType) {
115                case TranslationType.Labels:
116                    storageLocation = TranslationStorage.Labels;
117                    break;
118                case TranslationType.Comments:
119                    storageLocation = TranslationStorage.Comments;
120                    break;
121                case TranslationType.Buttons:
122                    storageLocation = TranslationStorage.Buttons;
123                    break;
124                case TranslationType.Titles:
125                    storageLocation = TranslationStorage.Titles;
126                    break;
127            }
128            const translationsFromStorage = sessionStorage.getItem(storageLocation);
129            if (translationsFromStorage) {
130                const translations = JSON.parse(translationsFromStorage);
131                switch (translationType) {
132                    case TranslationType.Labels:
133                        this.translations.Labels = translations;
134                        break;
135                    case TranslationType.Comments:
136                        this.translations.Comments = translations;
137                        break;
138                    case TranslationType.Buttons:
139                        this.translations.Buttons = translations;
140                        break;
141                    case TranslationType.Titles:
142                        this.translations.Titles = translations;
143                        break;
144                }
145            }
146            else {
147                const translations = yield this.dataFetcher.fetch(translationType);
148                if (!translations) {
149                    this.setSessionStorage(storageLocation, null);
150                }
151                else {
152                    this.processTranslations(translations, translationType, storageLocation);
153                }
154            }
155        });
156    }
157    processTranslations(translations, translationType, storageLocation) {
158        try {
159            if (translations) {
160                try {
161                    switch (translationType) {
162                        case TranslationType.Labels:
163                            this.translations.Labels = translations["Items"];
164                            break;
165                        case TranslationType.Comments:
166                            this.translations.Comments = translations["Items"];
167                            break;
168                        case TranslationType.Buttons:
169                            this.translations.Buttons = translations["Items"];
170                            break;
171                        case TranslationType.Titles:
172                            this.translations.Titles = translations["Items"];
173                            break;
174                    }
175                    //Store the translations
176                    const translationsForStorage = JSON.stringify(translations["Items"]);
177                    this.setSessionStorage(storageLocation, translationsForStorage);
178                }
179                catch (ex) {
180                    console.error(`Translations for dealer ID ${this._dealerId} could not be parsed.`);
181                }
182            }
183            else {
184                console.error(`Translations for dealer ID ${this._dealerId} not found.`);
185            }
186        }
187        catch (ex) {
188            this.setSessionStorage(storageLocation, null);
189            console.error(`Error parsing translations for dealer ID ${this._dealerId}`);
190        }
191    }
192    setSessionStorage(storageName, value) {
193        if (value) {
194            sessionStorage.setItem(storageName, value);
195        }
196        else {
197            sessionStorage.removeItem(storageName);
198        }
199    }
200    getLabel(key) {
201        var _a, _b, _c;
202        return (_c = (_b = (_a = this.translations) === null || _a === void 0 ? void 0 : _a.Labels) === null || _b === void 0 ? void 0 : _b[key]) !== null && _c !== void 0 ? _c : key;
203    }
204    getComment(key) {
205        var _a, _b, _c;
206        return (_c = (_b = (_a = this.translations) === null || _a === void 0 ? void 0 : _a.Comments) === null || _b === void 0 ? void 0 : _b[key]) !== null && _c !== void 0 ? _c : key;
207    }
208    getButton(key) {
209        var _a, _b, _c;
210        return (_c = (_b = (_a = this.translations) === null || _a === void 0 ? void 0 : _a.Buttons) === null || _b === void 0 ? void 0 : _b[key]) !== null && _c !== void 0 ? _c : key;
211    }
212    getTitle(key) {
213        var _a, _b, _c;
214        return (_c = (_b = (_a = this.translations) === null || _a === void 0 ? void 0 : _a.Titles) === null || _b === void 0 ? void 0 : _b[key]) !== null && _c !== void 0 ? _c : key;
215    }
216};
217TranslationService = __decorate([
218    (0,inversify/* injectable */._G)(),
219    __param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.ITranslationFetcher)),
220    __metadata("design:paramtypes", [typeof (_a = typeof iTranslationFetcher_namespaceObject.ITranslationFetcher !== "undefined" && iTranslationFetcher_namespaceObject.ITranslationFetcher) === "function" ? _a : Object])
221], TranslationService);
222
223
224
225/***/ }),
226
227/***/ 40:
228/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
229
230"use strict";
231
232
233Object.defineProperty(exports, "__esModule", ({
234  value: true
235}));
236exports.tagProperty = exports.tagParameter = exports.decorate = void 0;
237var ERROR_MSGS = __webpack_require__(7718);
238var METADATA_KEY = __webpack_require__(4725);
239function tagParameter(annotationTarget, propertyName, parameterIndex, metadata) {
240  var metadataKey = METADATA_KEY.TAGGED;
241  _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex);
242}
243exports.tagParameter = tagParameter;
244function tagProperty(annotationTarget, propertyName, metadata) {
245  var metadataKey = METADATA_KEY.TAGGED_PROP;
246  _tagParameterOrProperty(metadataKey, annotationTarget.constructor, propertyName, metadata);
247}
248exports.tagProperty = tagProperty;
249function _tagParameterOrProperty(metadataKey, annotationTarget, propertyName, metadata, parameterIndex) {
250  var paramsOrPropertiesMetadata = {};
251  var isParameterDecorator = typeof parameterIndex === "number";
252  var key = parameterIndex !== undefined && isParameterDecorator ? parameterIndex.toString() : propertyName;
253  if (isParameterDecorator && propertyName !== undefined) {
254    throw new Error(ERROR_MSGS.INVALID_DECORATOR_OPERATION);
255  }
256  if (Reflect.hasOwnMetadata(metadataKey, annotationTarget)) {
257    paramsOrPropertiesMetadata = Reflect.getMetadata(metadataKey, annotationTarget);
258  }
259  var paramOrPropertyMetadata = paramsOrPropertiesMetadata[key];
260  if (!Array.isArray(paramOrPropertyMetadata)) {
261    paramOrPropertyMetadata = [];
262  } else {
263    for (var _i = 0, paramOrPropertyMetadata_1 = paramOrPropertyMetadata; _i < paramOrPropertyMetadata_1.length; _i++) {
264      var m = paramOrPropertyMetadata_1[_i];
265      if (m.key === metadata.key) {
266        throw new Error(ERROR_MSGS.DUPLICATED_METADATA + " " + m.key.toString());
267      }
268    }
269  }
270  paramOrPropertyMetadata.push(metadata);
271  paramsOrPropertiesMetadata[key] = paramOrPropertyMetadata;
272  Reflect.defineMetadata(metadataKey, paramsOrPropertiesMetadata, annotationTarget);
273}
274function _decorate(decorators, target) {
275  Reflect.decorate(decorators, target);
276}
277function _param(paramIndex, decorator) {
278  return function (target, key) {
279    decorator(target, key, paramIndex);
280  };
281}
282function decorate(decorator, target, parameterIndex) {
283  if (typeof parameterIndex === "number") {
284    _decorate([_param(parameterIndex, decorator)], target);
285  } else if (typeof parameterIndex === "string") {
286    Reflect.decorate([decorator], target, parameterIndex);
287  } else {
288    _decorate([decorator], target);
289  }
290}
291exports.decorate = decorate;
292
293/***/ }),
294
295/***/ 154:
296/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
297
298"use strict";
299
300
301Object.defineProperty(exports, "__esModule", ({
302  value: true
303}));
304exports.Target = void 0;
305var METADATA_KEY = __webpack_require__(4725);
306var id_1 = __webpack_require__(8418);
307var metadata_1 = __webpack_require__(8390);
308var queryable_string_1 = __webpack_require__(4131);
309var Target = function () {
310  function Target(type, name, serviceIdentifier, namedOrTagged) {
311    this.id = id_1.id();
312    this.type = type;
313    this.serviceIdentifier = serviceIdentifier;
314    this.name = new queryable_string_1.QueryableString(name || "");
315    this.metadata = new Array();
316    var metadataItem = null;
317    if (typeof namedOrTagged === "string") {
318      metadataItem = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, namedOrTagged);
319    } else if (namedOrTagged instanceof metadata_1.Metadata) {
320      metadataItem = namedOrTagged;
321    }
322    if (metadataItem !== null) {
323      this.metadata.push(metadataItem);
324    }
325  }
326  Target.prototype.hasTag = function (key) {
327    for (var _i = 0, _a = this.metadata; _i < _a.length; _i++) {
328      var m = _a[_i];
329      if (m.key === key) {
330        return true;
331      }
332    }
333    return false;
334  };
335  Target.prototype.isArray = function () {
336    return this.hasTag(METADATA_KEY.MULTI_INJECT_TAG);
337  };
338  Target.prototype.matchesArray = function (name) {
339    return this.matchesTag(METADATA_KEY.MULTI_INJECT_TAG)(name);
340  };
341  Target.prototype.isNamed = function () {
342    return this.hasTag(METADATA_KEY.NAMED_TAG);
343  };
344  Target.prototype.isTagged = function () {
345    return this.metadata.some(function (m) {
346      return m.key !== METADATA_KEY.INJECT_TAG && m.key !== METADATA_KEY.MULTI_INJECT_TAG && m.key !== METADATA_KEY.NAME_TAG && m.key !== METADATA_KEY.UNMANAGED_TAG && m.key !== METADATA_KEY.NAMED_TAG;
347    });
348  };
349  Target.prototype.isOptional = function () {
350    return this.matchesTag(METADATA_KEY.OPTIONAL_TAG)(true);
351  };
352  Target.prototype.getNamedTag = function () {
353    if (this.isNamed()) {
354      return this.metadata.filter(function (m) {
355        return m.key === METADATA_KEY.NAMED_TAG;
356      })[0];
357    }
358    return null;
359  };
360  Target.prototype.getCustomTags = function () {
361    if (this.isTagged()) {
362      return this.metadata.filter(function (m) {
363        return m.key !== METADATA_KEY.INJECT_TAG && m.key !== METADATA_KEY.MULTI_INJECT_TAG && m.key !== METADATA_KEY.NAME_TAG && m.key !== METADATA_KEY.UNMANAGED_TAG && m.key !== METADATA_KEY.NAMED_TAG;
364      });
365    }
366    return null;
367  };
368  Target.prototype.matchesNamedTag = function (name) {
369    return this.matchesTag(METADATA_KEY.NAMED_TAG)(name);
370  };
371  Target.prototype.matchesTag = function (key) {
372    var _this = this;
373    return function (value) {
374      for (var _i = 0, _a = _this.metadata; _i < _a.length; _i++) {
375        var m = _a[_i];
376        if (m.key === key && m.value === value) {
377          return true;
378        }
379      }
380      return false;
381    };
382  };
383  return Target;
384}();
385exports.Target = Target;
386
387/***/ }),
388
389/***/ 208:
390/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
391
392"use strict";
393
394// EXPORTS
395__webpack_require__.d(__webpack_exports__, {
396  $q: () => (/* binding */ setupDevtoolsPlugin)
397});
398
399// UNUSED EXPORTS: isPerformanceSupported, now
400
401;// ./node_modules/@vue/devtools-api/lib/esm/env.js
402function getDevtoolsGlobalHook() {
403  return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;
404}
405function getTarget() {
406  // @ts-expect-error navigator and windows are not available in all environments
407  return typeof navigator !== 'undefined' && typeof window !== 'undefined' ? window : typeof globalThis !== 'undefined' ? globalThis : {};
408}
409const isProxyAvailable = typeof Proxy === 'function';
410;// ./node_modules/@vue/devtools-api/lib/esm/const.js
411const HOOK_SETUP = 'devtools-plugin:setup';
412const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';
413;// ./node_modules/@vue/devtools-api/lib/esm/time.js
414let supported;
415let perf;
416function isPerformanceSupported() {
417  var _a;
418  if (supported !== undefined) {
419    return supported;
420  }
421  if (typeof window !== 'undefined' && window.performance) {
422    supported = true;
423    perf = window.performance;
424  } else if (typeof globalThis !== 'undefined' && ((_a = globalThis.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {
425    supported = true;
426    perf = globalThis.perf_hooks.performance;
427  } else {
428    supported = false;
429  }
430  return supported;
431}
432function now() {
433  return isPerformanceSupported() ? perf.now() : Date.now();
434}
435;// ./node_modules/@vue/devtools-api/lib/esm/proxy.js
436
437
438class ApiProxy {
439  constructor(plugin, hook) {
440    this.target = null;
441    this.targetQueue = [];
442    this.onQueue = [];
443    this.plugin = plugin;
444    this.hook = hook;
445    const defaultSettings = {};
446    if (plugin.settings) {
447      for (const id in plugin.settings) {
448        const item = plugin.settings[id];
449        defaultSettings[id] = item.defaultValue;
450      }
451    }
452    const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;
453    let currentSettings = Object.assign({}, defaultSettings);
454    try {
455      const raw = localStorage.getItem(localSettingsSaveId);
456      const data = JSON.parse(raw);
457      Object.assign(currentSettings, data);
458    } catch (e) {
459      // noop
460    }
461    this.fallbacks = {
462      getSettings() {
463        return currentSettings;
464      },
465      setSettings(value) {
466        try {
467          localStorage.setItem(localSettingsSaveId, JSON.stringify(value));
468        } catch (e) {
469          // noop
470        }
471        currentSettings = value;
472      },
473      now() {
474        return now();
475      }
476    };
477    if (hook) {
478      hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {
479        if (pluginId === this.plugin.id) {
480          this.fallbacks.setSettings(value);
481        }
482      });
483    }
484    this.proxiedOn = new Proxy({}, {
485      get: (_target, prop) => {
486        if (this.target) {
487          return this.target.on[prop];
488        } else {
489          return (...args) => {
490            this.onQueue.push({
491              method: prop,
492              args
493            });
494          };
495        }
496      }
497    });
498    this.proxiedTarget = new Proxy({}, {
499      get: (_target, prop) => {
500        if (this.target) {
501          return this.target[prop];
502        } else if (prop === 'on') {
503          return this.proxiedOn;
504        } else if (Object.keys(this.fallbacks).includes(prop)) {
505          return (...args) => {
506            this.targetQueue.push({
507              method: prop,
508              args,
509              resolve: () => {}
510            });
511            return this.fallbacks[prop](...args);
512          };
513        } else {
514          return (...args) => {
515            return new Promise(resolve => {
516              this.targetQueue.push({
517                method: prop,
518                args,
519                resolve
520              });
521            });
522          };
523        }
524      }
525    });
526  }
527  async setRealTarget(target) {
528    this.target = target;
529    for (const item of this.onQueue) {
530      this.target.on[item.method](...item.args);
531    }
532    for (const item of this.targetQueue) {
533      item.resolve(await this.target[item.method](...item.args));
534    }
535  }
536}
537;// ./node_modules/@vue/devtools-api/lib/esm/index.js
538
539
540
541
542
543
544function setupDevtoolsPlugin(pluginDescriptor, setupFn) {
545  const descriptor = pluginDescriptor;
546  const target = getTarget();
547  const hook = getDevtoolsGlobalHook();
548  const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;
549  if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {
550    hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);
551  } else {
552    const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;
553    const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];
554    list.push({
555      pluginDescriptor: descriptor,
556      setupFn,
557      proxy
558    });
559    if (proxy) {
560      setupFn(proxy.proxiedTarget);
561    }
562  }
563}
564
565/***/ }),
566
567/***/ 260:
568/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
569
570"use strict";
571var __webpack_unused_export__;
572
573
574__webpack_unused_export__ = ({
575  value: true
576});
577__webpack_unused_export__ = void 0;
578var keys = __webpack_require__(4725);
579__webpack_unused_export__ = keys;
580var container_1 = __webpack_require__(9638);
581Object.defineProperty(exports, "mc", ({
582  enumerable: true,
583  get: function () {
584    return container_1.Container;
585  }
586}));
587var literal_types_1 = __webpack_require__(7802);
588__webpack_unused_export__ = ({
589  enumerable: true,
590  get: function () {
591    return literal_types_1.BindingScopeEnum;
592  }
593});
594__webpack_unused_export__ = ({
595  enumerable: true,
596  get: function () {
597    return literal_types_1.BindingTypeEnum;
598  }
599});
600__webpack_unused_export__ = ({
601  enumerable: true,
602  get: function () {
603    return literal_types_1.TargetTypeEnum;
604  }
605});
606var container_module_1 = __webpack_require__(5517);
607__webpack_unused_export__ = ({
608  enumerable: true,
609  get: function () {
610    return container_module_1.AsyncContainerModule;
611  }
612});
613__webpack_unused_export__ = ({
614  enumerable: true,
615  get: function () {
616    return container_module_1.ContainerModule;
617  }
618});
619var injectable_1 = __webpack_require__(8370);
620Object.defineProperty(exports, "_G", ({
621  enumerable: true,
622  get: function () {
623    return injectable_1.injectable;
624  }
625}));
626var tagged_1 = __webpack_require__(9523);
627__webpack_unused_export__ = ({
628  enumerable: true,
629  get: function () {
630    return tagged_1.tagged;
631  }
632});
633var named_1 = __webpack_require__(7590);
634__webpack_unused_export__ = ({
635  enumerable: true,
636  get: function () {
637    return named_1.named;
638  }
639});
640var inject_1 = __webpack_require__(7442);
641Object.defineProperty(exports, "WQ", ({
642  enumerable: true,
643  get: function () {
644    return inject_1.inject;
645  }
646}));
647__webpack_unused_export__ = ({
648  enumerable: true,
649  get: function () {
650    return inject_1.LazyServiceIdentifer;
651  }
652});
653var optional_1 = __webpack_require__(3091);
654__webpack_unused_export__ = ({
655  enumerable: true,
656  get: function () {
657    return optional_1.optional;
658  }
659});
660var unmanaged_1 = __webpack_require__(3415);
661__webpack_unused_export__ = ({
662  enumerable: true,
663  get: function () {
664    return unmanaged_1.unmanaged;
665  }
666});
667var multi_inject_1 = __webpack_require__(6088);
668__webpack_unused_export__ = ({
669  enumerable: true,
670  get: function () {
671    return multi_inject_1.multiInject;
672  }
673});
674var target_name_1 = __webpack_require__(8690);
675__webpack_unused_export__ = ({
676  enumerable: true,
677  get: function () {
678    return target_name_1.targetName;
679  }
680});
681var post_construct_1 = __webpack_require__(2719);
682__webpack_unused_export__ = ({
683  enumerable: true,
684  get: function () {
685    return post_construct_1.postConstruct;
686  }
687});
688var metadata_reader_1 = __webpack_require__(5426);
689__webpack_unused_export__ = ({
690  enumerable: true,
691  get: function () {
692    return metadata_reader_1.MetadataReader;
693  }
694});
695var id_1 = __webpack_require__(8418);
696__webpack_unused_export__ = ({
697  enumerable: true,
698  get: function () {
699    return id_1.id;
700  }
701});
702var decorator_utils_1 = __webpack_require__(40);
703__webpack_unused_export__ = ({
704  enumerable: true,
705  get: function () {
706    return decorator_utils_1.decorate;
707  }
708});
709var constraint_helpers_1 = __webpack_require__(3884);
710__webpack_unused_export__ = ({
711  enumerable: true,
712  get: function () {
713    return constraint_helpers_1.traverseAncerstors;
714  }
715});
716__webpack_unused_export__ = ({
717  enumerable: true,
718  get: function () {
719    return constraint_helpers_1.taggedConstraint;
720  }
721});
722__webpack_unused_export__ = ({
723  enumerable: true,
724  get: function () {
725    return constraint_helpers_1.namedConstraint;
726  }
727});
728__webpack_unused_export__ = ({
729  enumerable: true,
730  get: function () {
731    return constraint_helpers_1.typeConstraint;
732  }
733});
734var serialization_1 = __webpack_require__(7911);
735__webpack_unused_export__ = ({
736  enumerable: true,
737  get: function () {
738    return serialization_1.getServiceIdentifierAsString;
739  }
740});
741var binding_utils_1 = __webpack_require__(4984);
742__webpack_unused_export__ = ({
743  enumerable: true,
744  get: function () {
745    return binding_utils_1.multiBindToService;
746  }
747});
748
749/***/ }),
750
751/***/ 721:
752/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
753
754"use strict";
755
756// EXPORTS
757__webpack_require__.d(__webpack_exports__, {
758  d: () => (/* binding */ SrpWasabiGeneral)
759});
760
761// EXTERNAL MODULE: ./node_modules/inversify/lib/inversify.js
762var inversify = __webpack_require__(260);
763// EXTERNAL MODULE: ./src/types/types.ts
764var types = __webpack_require__(5644);
765;// ./src/components/searchFilter/srpWasab_PageNav.ts
766class SrpWasabiPageNav {
767    srpFiltersMore() {
768        $('.srp-filters-more .toggle').click(function () {
769            if ($('.srp-filters-more').hasClass('active')) {
770                $('.srp-filters-more').removeClass('active');
771            }
772            else {
773                $('.srp-filters-more').addClass('active');
774            }
775        });
776        $(document).on('click', function (event) {
777            if (!$(event.target).closest('.srp-filters-more').length && !$(event.target).closest('.filter-item-minimized button').length) {
778                if ($('.srp-filters-more').hasClass('active')) {
779                    $('.srp-filters-more').removeClass('active');
780                }
781            }
782        });
783    }
784}
785
786// EXTERNAL MODULE: ./src/services/toggles/iToggleService.ts
787var iToggleService = __webpack_require__(4478);
788// EXTERNAL MODULE: ./src/utilities/jQueryHelper/jQueryHelper.ts
789var jQueryHelper = __webpack_require__(2781);
790;
790// ./src/components/searchFilter/srpWasabi_General.ts
791var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
792    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
793    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
794    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
795    return c > 3 && r && Object.defineProperty(target, key, r), r;
796};
797var __metadata = (undefined && undefined.__metadata) || function (k, v) {
798    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
799};
800var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
801    return function (target, key) { decorator(target, key, paramIndex); }
802};
803var _a;
804
805
806
807
808
809let SrpWasabiGeneral = class SrpWasabiGeneral {
810    constructor(toggleService) {
811        this.SrpWasabiFilterMobileElem = null;
812        this.SrpWasabiTotalFilterNum = null;
813        this.SrpWasabiMaxWidth991 = null;
814        this.rangeArray = [];
815        this.toggleService = toggleService;
816    }
817    initialize() {
818        //Only used for ILP
819        if (window.location.pathname.toLowerCase().indexOf("inventorylineup.aspx") > -1) {
820            this.addCheckboxClickEvents();
821            //instantiate the filter numbers
822            this.initializeCheckFilterNum();
823        }
824        this._srpWasabiPageNav = new SrpWasabiPageNav();
825        window.addEventListener("resize", () => {
826            this.Update();
827        }, { passive: true });
828        window.addEventListener("scroll", () => {
829            this.Update();
830        }, { passive: true });
831        this.refreshVariables();
832        this._srpWasabiPageNav.srpFiltersMore();
833        this.refineSilderMobile();
834        this.disableFilterPanels();
835        this.initializeFilterScrollIntoViewUponExpansion();
836    }
837    Update() {
838        this.refreshVariables();
839    }
840    CalculateFunction() {
841        var _a, _b;
842        var checkboxNum = (_b = (_a = this.srpFilterElem) === null || _a === void 0 ? void 0 : _a.querySelectorAll('input[type=checkbox]:checked')) === null || _b === void 0 ? void 0 : _b.length;
843        const ranges = document.querySelectorAll(".range");
844        ranges.forEach((elem) => {
845            if (elem.value !== "") {
846                this.rangeArray.push(this);
847            }
848        });
849        this.SrpWasabiTotalFilterNum = checkboxNum + this.rangeArray.length;
850    }
851    initializeCheckFilterNum() {
852        var _a, _b;
853        this.srpFilterElem = document.getElementById("srp_filter");
854        const customCheckboxes = (_a = this.srpFilterElem) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.display_child, .custom-checkbox');
855        customCheckboxes === null || customCheckboxes === void 0 ? void 0 : customCheckboxes.forEach((checkbox) => {
856            checkbox.addEventListener("click", () => {
857                setTimeout(() => {
858                    this.CalculateFunction();
859                }, 100);
860            });
861        });
862        const filterInputs = (_b = this.srpFilterElem) === null || _b === void 0 ? void 0 : _b.querySelectorAll('input');
863        filterInputs === null || filterInputs === void 0 ? void 0 : filterInputs.forEach((input) => {
864            input.addEventListener("blur", () => {
865                this.CalculateFunction();
866            });
867        });
868    }
869    // refine slider selected
870    addCheckboxClickEvents() {
871        $(document).on('click', '#srp_filter .collapse-options .tile_display .tile_display_child, #srp_filter .collapse-options .list_display .list_display_child', function () {
872            var targetedID = $(this).attr('data-target');
873            if ($(this).find('input').is(':checked')) {
874                $(this).addClass('tile_selected');
875            }
876            else {
877                $(this).removeClass('tile_selected');
878                if (targetedID) {
879                    $(this).parents('.list_display').find('' + targetedID + ' .collapse-options-sub .display_child.list_display_child').removeClass('tile_selected');
880                    $(this).parents('.list_display').find('' + targetedID + ' .collapse-options-sub .display_child.list_display_child input').removeAttr('checked');
881                }
882            }
883        });
884    }
885    refreshVariables() {
886        this.SrpWasabiFilterMobileElem = $('body');
887        this.SrpWasabiMaxWidth991 = window.matchMedia('(max-width: 991px)');
888    }
889    // disable filter panels default
890    disableFilterPanels() {
891        jQueryHelper/* JQueryHelper */.$.SafeApplyCollapse($('#srp_filter .collapse'), {
892            'toggle': false
893        });
894    }
895    /**
896     * Initialize event listeners to scroll an expanded filter into view. Due to
897     * how the bootstrap collapse component works, we must use jQuery to hook
898     * into the events fired by that component.
899     * @see {@link https://getbootstrap.com/docs/4.0/components/collapse/ }
900     */
901    initializeFilterScrollIntoViewUponExpansion() {
902        $("#srp_filter .panel .collapse-options")
903            .on("shown.bs.collapse", function () {
904            var parent = this.closest(".panel");
905            try {
906                parent.scrollIntoView({
907                    behavior: "smooth",
908                    block: "nearest"
909                });
910            }
911            catch (_a) {
912                // Fallback for browsers without support for scrollIntoViewOptions
913                parent.scrollIntoView(false);
914            }
915        });
916    }
917    // refine silder mobile
918    refineSilderMobile() {
919        $('button.filter-modal-toggle').on('click', (e) => {
920            e.stopImmediatePropagation();
921            this.addFilterMobileBodyClasses();
922            this.addFilterMobileBodySpecClasses();
923        });
924        $('.shade, .close_sticky, .close_sticky_mod, .search_btn.search_sticky').on('click', () => {
925            this.removeBodyClasses();
926            this.removeBodySpecClasses();
927        });
928    }
929    //refine slider on mobile
930    addFilterMobileBodyClasses() {
931        this.SrpWasabiFilterMobileElem.addClass('filterMobile');
932        const filterPanel = document.getElementById("filterPanel");
933        if (filterPanel) {
934            filterPanel.classList.remove("hidden");
935        }
936        // If Mobile filterPanel ever gets opened, the Desktop filterPanel will remain open if transitioning to it.
937        // Remove the 'wasabi_srp--no-grid' (which should be present when Desktop filterPanel is closed) class
938        // when the following transition occurs:
939        // Deskptop filterPanel closed -> Mobile filterPanel opened -> Desktop filterPanel opened
940        const wasabiSrp = document.querySelector(".wasabi_srp");
941        if (filterPanel && wasabiSrp) {
942            wasabiSrp.classList.remove("wasabi_srp--no-grid");
943        }
944    }
945    addFilterMobileBodySpecClasses() {
946        this.SrpWasabiFilterMobileElem.addClass('filterMobileBodySpec');
947    }
948    removeBodyClasses() {
949        this.SrpWasabiFilterMobileElem.removeClass('filterMobile');
950    }
951    removeBodySpecClasses() {
952        window.setTimeout(() => {
953            this.SrpWasabiFilterMobileElem.removeClass('filterMobileBodySpec');
954        }, 350);
955    }
956};
957SrpWasabiGeneral = __decorate([
958    (0,inversify/* injectable */._G)(),
959    __param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IToggleService)),
960    __metadata("design:paramtypes", [typeof (_a = typeof iToggleService/* IToggleService */.F !== "undefined" && iToggleService/* IToggleService */.F) === "function" ? _a : Object])
961], SrpWasabiGeneral);
962
963
964
965/***/ }),
966
967/***/ 730:
968/***/ ((module, __unused_webpack_exports, __webpack_require__) =>
vendor: 8,038 bytes, lines 968-1208
968 {
969
970/**
971 * lodash (Custom Build) <https://lodash.com/>
972 * Build: `lodash modularize exports="npm" -o ./`
973 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
974 * Released under MIT license <https://lodash.com/license>
975 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
976 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
977 */
978
979/** Used as the `TypeError` message for "Functions" methods. */
980var FUNC_ERROR_TEXT = 'Expected a function';
981
982/** Used as references for various `Number` constants. */
983var NAN = 0 / 0;
984
985/** `Object#toString` result references. */
986var symbolTag = '[object Symbol]';
987
988/** Used to match leading and trailing whitespace. */
989var reTrim = /^\s+|\s+$/g;
990
991/** Used to detect bad signed hexadecimal string values. */
992var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
993
994/** Used to detect binary string values. */
995var reIsBinary = /^0b[01]+$/i;
996
997/** Used to detect octal string values. */
998var reIsOctal = /^0o[0-7]+$/i;
999
1000/** Built-in method references without a dependency on `root`. */
1001var freeParseInt = parseInt;
1002
1003/** Detect free variable `global` from Node.js. */
1004var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
1005
1006/** Detect free variable `self`. */
1007var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
1008
1009/** Used as a reference to the global object. */
1010var root = freeGlobal || freeSelf || Function('return this')();
1011
1012/** Used for built-in method references. */
1013var objectProto = Object.prototype;
1014
1015/**
1016 * Used to resolve the
1017 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
1018 * of values.
1019 */
1020var objectToString = objectProto.toString;
1021
1022/* Built-in method references for those with the same name as other `lodash` methods. */
1023var nativeMax = Math.max,
1024  nativeMin = Math.min;
1025
1026/**
1027 * Gets the timestamp of the number of milliseconds that have elapsed since
1028 * the Unix epoch (1 January 1970 00:00:00 UTC).
1029 *
1030 * @static
1031 * @memberOf _
1032 * @since 2.4.0
1033 * @category Date
1034 * @returns {number} Returns the timestamp.
1035 * @example
1036 *
1037 * _.defer(function(stamp) {
1038 *   console.log(_.now() - stamp);
1039 * }, _.now());
1040 * // => Logs the number of milliseconds it took for the deferred invocation.
1041 */
1042var now = function () {
1043  return root.Date.now();
1044};
1045
1046/**
1047 * Creates a debounced function that delays invoking `func` until after `wait`
1048 * milliseconds have elapsed since the last time the debounced function was
1049 * invoked. The debounced function comes with a `cancel` method to cancel
1050 * delayed `func` invocations and a `flush` method to immediately invoke them.
1051 * Provide `options` to indicate whether `func` should be invoked on the
1052 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
1053 * with the last arguments provided to the debounced function. Subsequent
1054 * calls to the debounced function return the result of the last `func`
1055 * invocation.
1056 *
1057 * **Note:** If `leading` and `trailing` options are `true`, `func` is
1058 * invoked on the trailing edge of the timeout only if the debounced function
1059 * is invoked more than once during the `wait` timeout.
1060 *
1061 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
1062 * until to the next tick, similar to `setTimeout` with a timeout of `0`.
1063 *
1064 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
1065 * for details over the differences between `_.debounce` and `_.throttle`.
1066 *
1067 * @static
1068 * @memberOf _
1069 * @since 0.1.0
1070 * @category Function
1071 * @param {Function} func The function to debounce.
1072 * @param {number} [wait=0] The number of milliseconds to delay.
1073 * @param {Object} [options={}] The options object.
1074 * @param {boolean} [options.leading=false]
1075 *  Specify invoking on the leading edge of the timeout.
1076 * @param {number} [options.maxWait]
1077 *  The maximum time `func` is allowed to be delayed before it's invoked.
1078 * @param {boolean} [options.trailing=true]
1079 *  Specify invoking on the trailing edge of the timeout.
1080 * @returns {Function} Returns the new debounced function.
1081 * @example
1082 *
1083 * // Avoid costly calculations while the window size is in flux.
1084 * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
1085 *
1086 * // Invoke `sendMail` when clicked, debouncing subsequent calls.
1087 * jQuery(element).on('click', _.debounce(sendMail, 300, {
1088 *   'leading': true,
1089 *   'trailing': false
1090 * }));
1091 *
1092 * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
1093 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
1094 * var source = new EventSource('/stream');
1095 * jQuery(source).on('message', debounced);
1096 *
1097 * // Cancel the trailing debounced invocation.
1098 * jQuery(window).on('popstate', debounced.cancel);
1099 */
1100function debounce(func, wait, options) {
1101  var lastArgs,
1102    lastThis,
1103    maxWait,
1104    result,
1105    timerId,
1106    lastCallTime,
1107    lastInvokeTime = 0,
1108    leading = false,
1109    maxing = false,
1110    trailing = true;
1111  if (typeof func != 'function') {
1112    throw new TypeError(FUNC_ERROR_TEXT);
1113  }
1114  wait = toNumber(wait) || 0;
1115  if (isObject(options)) {
1116    leading = !!options.leading;
1117    maxing = 'maxWait' in options;
1118    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
1119    trailing = 'trailing' in options ? !!options.trailing : trailing;
1120  }
1121  function invokeFunc(time) {
1122    var args = lastArgs,
1123      thisArg = lastThis;
1124    lastArgs = lastThis = undefined;
1125    lastInvokeTime = time;
1126    result = func.apply(thisArg, args);
1127    return result;
1128  }
1129  function leadingEdge(time) {
1130    // Reset any `maxWait` timer.
1131    lastInvokeTime = time;
1132    // Start the timer for the trailing edge.
1133    timerId = setTimeout(timerExpired, wait);
1134    // Invoke the leading edge.
1135    return leading ? invokeFunc(time) : result;
1136  }
1137  function remainingWait(time) {
1138    var timeSinceLastCall = time - lastCallTime,
1139      timeSinceLastInvoke = time - lastInvokeTime,
1140      result = wait - timeSinceLastCall;
1141    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
1142  }
1143  function shouldInvoke(time) {
1144    var timeSinceLastCall = time - lastCallTime,
1145      timeSinceLastInvoke = time - lastInvokeTime;
1146
1147    // Either this is the first call, activity has stopped and we're at the
1148    // trailing edge, the system time has gone backwards and we're treating
1149    // it as the trailing edge, or we've hit the `maxWait` limit.
1150    return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
1151  }
1152  function timerExpired() {
1153    var time = now();
1154    if (shouldInvoke(time)) {
1155      return trailingEdge(time);
1156    }
1157    // Restart the timer.
1158    timerId = setTimeout(timerExpired, remainingWait(time));
1159  }
1160  function trailingEdge(time) {
1161    timerId = undefined;
1162
1163    // Only invoke if we have `lastArgs` which means `func` has been
1164    // debounced at least once.
1165    if (trailing && lastArgs) {
1166      return invokeFunc(time);
1167    }
1168    lastArgs = lastThis = undefined;
1169    return result;
1170  }
1171  function cancel() {
1172    if (timerId !== undefined) {
1173      clearTimeout(timerId);
1174    }
1175    lastInvokeTime = 0;
1176    lastArgs = lastCallTime = lastThis = timerId = undefined;
1177  }
1178  function flush() {
1179    return timerId === undefined ? result : trailingEdge(now());
1180  }
1181  function debounced() {
1182    var time = now(),
1183      isInvoking = shouldInvoke(time);
1184    lastArgs = arguments;
1185    lastThis = this;
1186    lastCallTime = time;
1187    if (isInvoking) {
1188      if (timerId === undefined) {
1189        return leadingEdge(lastCallTime);
1190      }
1191      if (maxing) {
1192        // Handle invocations in a tight loop.
1193        timerId = setTimeout(timerExpired, wait);
1194        return invokeFunc(lastCallTime);
1195      }
1196    }
1197    if (timerId === undefined) {
1198      timerId = setTimeout(timerExpired, wait);
1199    }
1200    return result;
1201  }
1202  debounced.cancel = cancel;
1203  debounced.flush = flush;
1204  return debounced;
1205}
1206
1207/**
1208 * C
1208hecks if `value` is the
1209 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
1210 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
1211 *
1212 * @static
1213 * @memberOf _
1214 * @since 0.1.0
1215 * @category Lang
1216 * @param {*} value The value to check.
1217 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
1218 * @example
1219 *
1220 * _.isObject({});
1221 * // => true
1222 *
1223 * _.isObject([1, 2, 3]);
1224 * // => true
1225 *
1226 * _.isObject(_.noop);
1227 * // => true
1228 *
1229 * _.isObject(null);
1230 * // => false
1231 */
1232function isObject(value) {
1233  var type = typeof value;
1234  return !!value && (type == 'object' || type == 'function');
1235}
1236
1237/**
1238 * Checks if `value` is object-like. A value is object-like if it's not `null`
1239 * and has a `typeof` result of "object".
1240 *
1241 * @static
1242 * @memberOf _
1243 * @since 4.0.0
1244 * @category Lang
1245 * @param {*} value The value to check.
1246 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
1247 * @example
1248 *
1249 * _.isObjectLike({});
1250 * // => true
1251 *
1252 * _.isObjectLike([1, 2, 3]);
1253 * // => true
1254 *
1255 * _.isObjectLike(_.noop);
1256 * // => false
1257 *
1258 * _.isObjectLike(null);
1259 * // => false
1260 */
1261function isObjectLike(value) {
1262  return !!value && typeof value == 'object';
1263}
1264
1265/**
1266 * Checks if `value` is classified as a `Symbol` primitive or object.
1267 *
1268 * @static
1269 * @memberOf _
1270 * @since 4.0.0
1271 * @category Lang
1272 * @param {*} value The value to check.
1273 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
1274 * @example
1275 *
1276 * _.isSymbol(Symbol.iterator);
1277 * // => true
1278 *
1279 * _.isSymbol('abc');
1280 * // => false
1281 */
1282function isSymbol(value) {
1283  return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;
1284}
1285
1286/**
1287 * Converts `value` to a number.
1288 *
1289 * @static
1290 * @memberOf _
1291 * @since 4.0.0
1292 * @category Lang
1293 * @param {*} value The value to process.
1294 * @returns {number} Returns the number.
1295 * @example
1296 *
1297 * _.toNumber(3.2);
1298 * // => 3.2
1299 *
1300 * _.toNumber(Number.MIN_VALUE);
1301 * // => 5e-324
1302 *
1303 * _.toNumber(Infinity);
1304 * // => Infinity
1305 *
1306 * _.toNumber('3.2');
1307 * // => 3.2
1308 */
1309function toNumber(value) {
1310  if (typeof value == 'number') {
1311    return value;
1312  }
1313  if (isSymbol(value)) {
1314    return NAN;
1315  }
1316  if (isObject(value)) {
1317    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
1318    value = isObject(other) ? other + '' : other;
1319  }
1320  if (typeof value != 'string') {
1321    return value === 0 ? value : +value;
1322  }
1323  value = value.replace(reTrim, '');
1324  var isBinary = reIsBinary.test(value);
1325  return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
1326}
1327module.exports = debounce;
1328
1329/***/ }),
1330
1331/***/ 761:
1332/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1333
1334// style-loader: Adds some css to the DOM by adding a <style> tag
1335
1336// load the styles
1337var content = __webpack_require__(9536);
1338if(content.__esModule) content = content.default;
1339if(typeof content === 'string') content = [[module.id, content, '']];
1340if(content.locals) module.exports = content.locals;
1341// add the styles to the DOM
1342var add = (__webpack_require__(8449)/* ["default"] */ .A)
1343var update = add("443e9b7d", content, false, {});
1344// Hot Module Replacement
1345if(false) {}
1346
1347/***/ }),
1348
1349/***/ 926:
1350/***/ (() => {
1351
1352"use strict";
1353
1354
1355
1356/***/ }),
1357
1358/***/ 1324:
1359/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1360
1361// style-loader: Adds some css to the DOM by adding a <style> tag
1362
1363// load the styles
1364var content = __webpack_require__(2749);
1365if(content.__esModule) content = content.default;
1366if(typeof content === 'string') content = [[module.id, content, '']];
1367if(content.locals) module.exports = content.locals;
1368// add the styles to the DOM
1369var add = (__webpack_require__(8449)/* ["default"] */ .A)
1370var update = add("0a2c1ffb", content, false, {});
1371// Hot Module Replacement
1372if(false) {}
1373
1374/***/ }),
1375
1376/***/ 1373:
1377/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1378
1379"use strict";
1380/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1381/* harmony export */   L: () => (/* binding */ PricingTypeCookie)
1382/* harmony export */ });
1383var PricingType;
1384(function (PricingType) {
1385    PricingType["buy"] = "buy";
1386    PricingType["finance"] = "finance";
1387    PricingType["lease"] = "lease";
1388})(PricingType || (PricingType = {}));
1389class PricingTypeCookie {
1390    static get currentCookieValue() {
1391        return window.DealeronCookie.getItem(this.PricingCookieName);
1392    }
1393    static setPricingTypeCookieBySort(selectedOption) {
1394        if (selectedOption) {
1395            const selectedSortType = selectedOption.dataset.sortType || '';
1396            const pricingType = PricingType[selectedSortType.toLowerCase()];
1397            if (pricingType) {
1398                window.DealeronCookie.setItem(this.PricingCookieName, pricingType);
1399            }
1400        }
1401        else {
1402            console.error('The selected option was null or undefined when attempting to set the pricing type cookie; expected a document node');
1403        }
1404    }
1405    static setPricingTypeCookie(tabName) {
1406        const pricingType = PricingType[tabName.toLowerCase()];
1407        if (pricingType) {
1408            window.DealeronCookie.setItem(this.PricingCookieName, pricingType);
1409        }
1410    }
1411}
1412PricingTypeCookie.PricingCookieName = "DLRON_SELECTED_PRICING_TYPE";
1413
1414
1415/***/ }),
1416
1417/***/ 1404:
1418/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1419
1420// style-loader: Adds some css to the DOM by adding a <style> tag
1421
1422// load the styles
1423var content = __webpack_require__(6387);
1424if(content.__esModule) content = content.default;
1425if(typeof content === 'string') content = [[module.id, content, '']];
1426if(content.locals) module.exports = content.locals;
1427// add the styles to the DOM
1428var add = (__webpack_require__(8449)/* ["default"] */ .A)
1429var update = add("8eca6572", content, false, {});
1430// Hot Module Replacement
1431if(false) {}
1432
1433/***/ }),
1434
1435/***/ 1535:
1436/***/ ((__unused_webpack_module, exports) => {
1437
1438"use strict";
1439var __webpack_unused_export__;
1440
1441
1442__webpack_unused_export__ = ({
1443  value: true
1444});
1445// runtime helper for setting properties on components
1446// in a tree-shakable way
1447exports.A = (sfc, props) => {
1448  const target = sfc.__vccOpts || sfc;
1449  for (const [key, val] of props) {
1450    target[key] = val;
1451  }
1452  return target;
1453};
1454
1455/***/ }),
1456
1457/***/ 1560:
1458/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1459
1460"use strict";
1461/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1462/* harmony export */   v: () => (/* binding */ SrpScrollType)
1463/* harmony export */ });
1464var SrpScrollType;
1465(function (SrpScrollType) {
1466    SrpScrollType[SrpScrollType["Pagination"] = 0] = "Pagination";
1467    SrpScrollType[SrpScrollType["InfiniteScroll"] = 1] = "InfiniteScroll";
1468})(SrpScrollType || (SrpScrollType = {}));
1469
1470
1471/***/ }),
1472
1473/***/ 1719:
1474/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1475
1476"use strict";
1477/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1478/* harmony export */   p: () => (/* binding */ PaginationQueryParams)
1479/* harmony export */ });
1480/* unused harmony export PagingModel */
1481
1482class PagingModel {
1483    constructor() {
1484        this.NumberOfVehiclesToShowModel = {};
1485        this.PaginationDataModel = new PaginationDataModel();
1486    }
1487}
1488var PaginationQueryParams;
1489(function (PaginationQueryParams) {
1490    PaginationQueryParams["PageSize"] = "pn";
1491    PaginationQueryParams["PageNumber"] = "pt";
1492})(PaginationQueryParams || (PaginationQueryParams = {}));
1493
1494
1495/***/ }),
1496
1497/***/ 1774:
1498/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
1499
1500"use strict";
1501
1502// EXPORTS
1503__webpack_require__.d(__webpack_exports__, {
1504  Ey: () => (/* binding */ createPinia),
1505  nY: () => (/* binding */ defineStore),
1506  oO: () => (/* binding */ setActivePinia)
1507});
1508
1509// UNUSED EXPORTS: MutationType, PiniaVuePlugin, acceptHMRUpdate, disposePinia, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setMapStoreSuffix, shouldHydrate, skipHydrate, storeToRefs
1510
1511// EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm-browser.prod.js
1512var vue_runtime_esm_browser_prod = __webpack_require__(3568);
1513;// ./node_modules/vue-demi/lib/index.mjs
1514
1515
1516var lib_isVue2 = false
1517var isVue3 = true
1518var Vue2 = (/* unused pure expression or super */ null && (undefined))
1519
1520function install() {}
1521
1522function lib_set(target, key, val) {
1523  if (Array.isArray(target)) {
1524    target.length = Math.max(target.length, key)
1525    target.splice(key, 1, val)
1526    return val
1527  }
1528  target[key] = val
1529  return val
1530}
1531
1532function del(target, key) {
1533  if (Array.isArray(target)) {
1534    target.splice(key, 1)
1535    return
1536  }
1537  delete target[key]
1538}
1539
1540
1541
1542
1543// EXTERNAL MODULE: ./node_modules/@vue/devtools-api/lib/esm/index.js + 4 modules
1544var esm = __webpack_require__(208);
1545;// ./node_modules/pinia/dist/pinia.mjs
1546/*!
1547 * pinia v2.3.1
1548 * (c) 2025 Eduardo San Martin Morote
1549 * @license MIT
1550 */
1551
1552
1553
1554/**
1555 * setActivePinia must be called to handle SSR at the top of functions like
1556 * `fetch`, `setup`, `serverPrefetch` and others
1557 */
1558let activePinia;
1559/**
1560 * Sets or unsets the active pinia. Used in SSR and internally when calling
1561 * actions and getters
1562 *
1563 * @param pinia - Pinia instance
1564 */
1565// @ts-expect-error: cannot constrain the type of the return
1566const setActivePinia = (pinia) => (activePinia = pinia);
1567/**
1568 * Get the currently active pinia if there is any.
1569 */
1570const getActivePinia = () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;
1571const piniaSymbol = (( false) ? 0 : /* istanbul ignore next */ Symbol());
1572
1573function isPlainObject(
1574// eslint-disable-next-line @typescript-eslint/no-explicit-any
1575o) {
1576    return (o &&
1577        typeof o === 'object' &&
1578        Object.prototype.toString.call(o) === '[object Object]' &&
1579        typeof o.toJSON !== 'function');
1580}
1581// type DeepReadonly<T> = { readonly [P in keyof T]: DeepReadonly<T[P]> }
1582// TODO: can we change these to numbers?
1583/**
1584 * Possible types for SubscriptionCallback
1585 */
1586var MutationType;
1587(function (MutationType) {
1588    /**
1589     * Direct mutation of the state:
1590     *
1591     * - `store.name = 'new name'`
1592     * - `store.$state.name = 'new name'`
1593     * - `store.list.push('new item')`
1594     */
1595    MutationType["direct"] = "direct";
1596    /**
1597     * Mutated the state with `$patch` and an object
1598     *
1599     * - `store.$patch({ name: 'newName' })`
1600     */
1601    MutationType["patchObject"] = "patch object";
1602    /**
1603     * Mutated the state with `$patch` and a function
1604     *
1605     * - `store.$patch(state => state.name = 'newName')`
1606     */
1607    MutationType["patchFunction"] = "patch function";
1608    // maybe reset? for $state = {} and $reset
1609})(MutationType || (MutationType = {}));
1610
1611const IS_CLIENT = typeof window !== 'undefined';
1612
1613/*
1614 * FileSaver.js A saveAs() FileSaver implementation.
1615 *
1616 * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin
1617 * Morote.
1618 *
1619 * License : MIT
1620 */
1621// The one and only way of getting global scope in all environments
1622// https://stackoverflow.com/q/3277182/1008999
1623const _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window
1624    ? window
1625    : typeof self === 'object' && self.self === self
1626        ? self
1627        : typeof global === 'object' && global.global === global
1628            ? global
1629            : typeof globalThis === 'object'
1630                ? globalThis
1631                : { HTMLElement: null })();
1632function bom(blob, { autoBom = false } = {}) {
1633    // prepend BOM for UTF-8 XML and text/* types (including HTML)
1634    // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
1635    if (autoBom &&
1636        /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
1637        return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });
1638    }
1639    return blob;
1640}
1641function download(url, name, opts) {
1642    const xhr = new XMLHttpRequest();
1643    xhr.open('GET', url);
1644    xhr.responseType = 'blob';
1645    xhr.onload = function () {
1646        saveAs(xhr.response, name, opts);
1647    };
1648    xhr.onerror = function () {
1649        console.error('could not download file');
1650    };
1651    xhr.send();
1652}
1653function corsEnabled(url) {
1654    const xhr = new XMLHttpRequest();
1655    // use sync to avoid popup blocker
1656    xhr.open('HEAD', url, false);
1657    try {
1658        xhr.send();
1659    }
1660    catch (e) { }
1661    return xhr.status >= 200 && xhr.status <= 299;
1662}
1663// `a.click()` doesn't work for all browsers (#465)
1664function click(node) {
1665    try {
1666        node.dispatchEvent(new MouseEvent('click'));
1667    }
1668    catch (e) {
1669        const evt = document.createEvent('MouseEvents');
1670        evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);
1671        node.dispatchEvent(evt);
1672    }
1673}
1674const _navigator = typeof navigator === 'object' ? navigator : { userAgent: '' };
1675// Detect WebView inside a native macOS app by ruling out all browsers
1676// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too
1677// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos
1678const isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&
1679    /AppleWebKit/.test(_navigator.userAgent) &&
1680    !/Safari/.test(_navigator.userAgent))();
1681const saveAs = !IS_CLIENT
1682    ? () => { } // noop
1683    : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program
1684        typeof HTMLAnchorElement !== 'undefined' &&
1685            'download' in HTMLAnchorElement.prototype &&
1686            !isMacOSWebView
1687            ? downloadSaveAs
1688            : // Use msSaveOrOpenBlob as a second approach
1689                'msSaveOrOpenBlob' in _navigator
1690                    ? msSaveAs
1691                    : // Fallback to using FileReader and a popup
1692                        fileSaverSaveAs;
1693function downloadSaveAs(blob, name = 'download', opts) {
1694    const a = document.createElement('a');
1695    a.download = name;
1696    a.rel = 'noopener'; // tabnabbing
1697    // TODO: detect chrome extensions & packaged apps
1698    // a.target = '_blank'
1699    if (typeof blob === 'string') {
1700        // Support regular links
1701        a.href = blob;
1702        if (a.origin !== location.origin) {
1703            if (corsEnabled(a.href)) {
1704                download(blob, name, opts);
1705            }
1706            else {
1707                a.target = '_blank';
1708                click(a);
1709            }
1710        }
1711        else {
1712            click(a);
1713        }
1714    }
1715    else {
1716        // Support blobs
1717        a.href = URL.createObjectURL(blob);
1718        setTimeout(function () {
1719            URL.revokeObjectURL(a.href);
1720        }, 4e4); // 40s
1721        setTimeout(function () {
1722            click(a);
1723        }, 0);
1724    }
1725}
1726function msSaveAs(blob, name = 'download', opts) {
1727    if (typeof blob === 'string') {
1728        if (corsEnabled(blob)) {
1729            download(blob, name, opts);
1730        }
1731        else {
1732            const a = document.createElement('a');
1733            a.href = blob;
1734            a.target = '_blank';
1735            setTimeout(function () {
1736                click(a);
1737            });
1738        }
1739    }
1740    else {
1741        // @ts-ignore: works on windows
1742        navigator.msSaveOrOpenBlob(bom(blob, opts), name);
1743    }
1744}
1745function fileSaverSaveAs(blob, name, opts, popup) {
1746    // Open a popup immediately do go around popup blocker
1747    // Mostly only available on user interaction and the fileReader is async so...
1748    popup = popup || open('', '_blank');
1749    if (popup) {
1750        popup.document.title = popup.document.body.innerText = 'downloading...';
1751    }
1752    if (typeof blob === 'string')
1753        return download(blob, name, opts);
1754    const force = blob.type === 'application/octet-stream';
1755    const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;
1756    const isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent);
1757    if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&
1758        typeof FileReader !== 'undefined') {
1759        // Safari doesn't allow downloading of blob URLs
1760        const reader = new FileReader();
1761        reader.onloadend = function () {
1762            let url = reader.result;
1763            if (typeof url !== 'string') {
1764                popup = null;
1765                throw new Error('Wrong reader.result type');
1766            }
1767            url = isChromeIOS
1768                ? url
1769                : url.replace(/^data:[^;]*;/, 'data:attachment/file;');
1770            if (popup) {
1771                popup.location.href = url;
1772            }
1773            else {
1774                location.assign(url);
1775            }
1776            popup = null; // reverse-tabnabbing #460
1777        };
1778        reader.readAsDataURL(blob);
1779    }
1780    else {
1781        const url = URL.createObjectURL(blob);
1782        if (popup)
1783            popup.location.assign(url);
1784        else
1785            location.href = url;
1786        popup = null; // reverse-tabnabbing #460
1787        setTimeout(function () {
1788            URL.revokeObjectURL(url);
1789        }, 4e4); // 40s
1790    }
1791}
1792
1793/**
1794 * Shows a toast or console.log
1795 *
1796 * @param message - message to log
1797 * @param type - different color of the tooltip
1798 */
1799function toastMessage(message, type) {
1800    const piniaMessage = '🍍 ' + message;
1801    if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {
1802        // No longer available :(
1803        __VUE_DEVTOOLS_TOAST__(piniaMessage, type);
1804    }
1805    else if (type === 'error') {
1806        console.error(piniaMessage);
1807    }
1808    else if (type === 'warn') {
1809        console.warn(piniaMessage);
1810    }
1811    else {
1812        console.log(piniaMessage);
1813    }
1814}
1815function isPinia(o) {
1816    return '_a' in o && 'install' in o;
1817}
1818
1819/**
1820 * This file contain devtools actions, they are not Pinia actions.
1821 */
1822// ---
1823function checkClipboardAccess() {
1824    if (!('clipboard' in navigator)) {
1825        toastMessage(`Your browser doesn't support the Clipboard API`, 'error');
1826        return true;
1827    }
1828}
1829function checkNotFocusedError(error) {
1830    if (error instanceof Error &&
1831        error.message.toLowerCase().includes('document is not focused')) {
1832        toastMessage('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.', 'warn');
1833        return true;
1834    }
1835    return false;
1836}
1837async function actionGlobalCopyState(pinia) {
1838    if (checkClipboardAccess())
1839        return;
1840    try {
1841        await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));
1842        toastMessage('Global state copied to clipboard.');
1843    }
1844    catch (error) {
1845        if (checkNotFocusedError(error))
1846            return;
1847        toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');
1848        console.error(error);
1849    }
1850}
1851async function actionGlobalPasteState(pinia) {
1852    if (checkClipboardAccess())
1853        return;
1854    try {
1855        loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));
1856        toastMessage('Global state pasted from clipboard.');
1857    }
1858    catch (error) {
1859        if (checkNotFocusedError(error))
1860            return;
1861        toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');
1862        console.error(error);
1863    }
1864}
1865async function actionGlobalSaveState(pinia) {
1866    try {
1867        saveAs(new Blob([JSON.stringify(pinia.state.value)], {
1868            type: 'text/plain;charset=utf-8',
1869        }), 'pinia-state.json');
1870    }
1871    catch (error) {
1872        toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');
1873        console.error(error);
1874    }
1875}
1876let fileInput;
1877function getFileOpener() {
1878    if (!fileInput) {
1879        fileInput = document.createElement('input');
1880        fileInput.type = 'file';
1881        fileInput.accept = '.json';
1882    }
1883    function openFile() {
1884        return new Promise((resolve, reject) => {
1885            fileInput.onchange = async () => {
1886                const files = fileInput.files;
1887                if (!files)
1888                    return resolve(null);
1889                const file = files.item(0);
1890                if (!file)
1891                    return resolve(null);
1892                return resolve({ text: await file.text(), file });
1893            };
1894            // @ts-ignore: TODO: changed from 4.3 to 4.4
1895            fileInput.oncancel = () => resolve(null);
1896            fileInput.onerror = reject;
1897            fileInput.click();
1898        });
1899    }
1900    return openFile;
1901}
1902async function actionGlobalOpenStateFile(pinia) {
1903    try {
1904        const open = getFileOpener();
1905        const result = await open();
1906        if (!result)
1907            return;
1908        const { text, file } = result;
1909        loadStoresState(pinia, JSON.parse(text));
1910        toastMessage(`Global state imported from "${file.name}".`);
1911    }
1912    catch (error) {
1913        toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');
1914        console.error(error);
1915    }
1916}
1917function loadStoresState(pinia, state) {
1918    for (const key in state) {
1919        const storeState = pinia.state.value[key];
1920        // store is already instantiated, patch it
1921        if (storeState) {
1922            Object.assign(storeState, state[key]);
1923        }
1924        else {
1925            // store is not instantiated, set the initial state
1926            pinia.state.value[key] = state[key];
1927        }
1928    }
1929}
1930
1931function formatDisplay(display) {
1932    return {
1933        _custom: {
1934            display,
1935        },
1936    };
1937}
1938const PINIA_ROOT_LABEL = '🍍 Pinia (root)';
1939const PINIA_ROOT_ID = '_root';
1940function formatStoreForInspectorTree(store) {
1941    return isPinia(store)
1942        ? {
1943            id: PINIA_ROOT_ID,
1944            label: PINIA_ROOT_LABEL,
1945        }
1946        : {
1947            id: store.$id,
1948            label: store.$id,
1949        };
1950}
1951function formatStoreForInspectorState(store) {
1952    if (isPinia(store)) {
1953        const storeNames = Array.from(store._s.keys());
1954        const storeMap = store._s;
1955        const state = {
1956            state: storeNames.map((storeId) => ({
1957                editable: true,
1958                key: storeId,
1959                value: store.state.value[storeId],
1960            })),
1961            getters: storeNames
1962                .filter((id) => storeMap.get(id)._getters)
1963                .map((id) => {
1964                const store = storeMap.get(id);
1965                return {
1966                    editable: false,
1967                    key: id,
1968                    value: store._getters.reduce((getters, key) => {
1969                        getters[key] = store[key];
1970                        return getters;
1971                    }, {}),
1972                };
1973            }),
1974        };
1975        return state;
1976    }
1977    const state = {
1978        state: Object.keys(store.$state).map((key) => ({
1979            editable: true,
1980            key,
1981            value: store.$state[key],
1982        })),
1983    };
1984    // avoid adding empty getters
1985    if (store._getters && store._getters.length) {
1986        state.getters = store._getters.map((getterName) => ({
1987            editable: false,
1988            key: getterName,
1989            value: store[getterName],
1990        }));
1991    }
1992    if (store._customProperties.size) {
1993        state.customProperties = Array.from(store._customProperties).map((key) => ({
1994            editable: true,
1995            key,
1996            value: store[key],
1997        }));
1998    }
1999    return state;
2000}
2001function formatEventData(events) {
2002    if (!events)
2003        return {};
2004    if (Array.isArray(events)) {
2005        // TODO: handle add and delete for arrays and objects
2006        return events.reduce((data, event) => {
2007            data.keys.push(event.key);
2008            data.operations.push(event.type);
2009            data.oldValue[event.key] = event.oldValue;
2010            data.newValue[event.key] = event.newValue;
2011            return data;
2012        }, {
2013            oldValue: {},
2014            keys: [],
2015            operations: [],
2016            newValue: {},
2017        });
2018    }
2019    else {
2020        return {
2021            operation: formatDisplay(events.type),
2022            key: formatDisplay(events.key),
2023            oldValue: events.oldValue,
2024            newValue: events.newValue,
2025        };
2026    }
2027}
2028function formatMutationType(type) {
2029    switch (type) {
2030        case MutationType.direct:
2031            return 'mutation';
2032        case MutationType.patchFunction:
2033            return '$patch';
2034        case MutationType.patchObject:
2035            return '$patch';
2036        default:
2037            return 'unknown';
2038    }
2039}
2040
2041// timeline can be paused when directly changing the state
2042let isTimelineActive = true;
2043const componentStateTypes = [];
2044const MUTATIONS_LAYER_ID = 'pinia:mutations';
2045const INSPECTOR_ID = 'pinia';
2046const { assign: assign$1 } = Object;
2047/**
2048 * Gets the displayed name of a store in devtools
2049 *
2050 * @param id - id of the store
2051 * @returns a formatted string
2052 */
2053const getStoreType = (id) => '🍍 ' + id;
2054/**
2055 * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab
2056 * as soon as it is added to the application.
2057 *
2058 * @param app - Vue application
2059 * @param pinia - pinia instance
2060 */
2061function registerPiniaDevtools(app, pinia) {
2062    (0,esm/* setupDevtoolsPlugin */.$q)({
2063        id: 'dev.esm.pinia',
2064        label: 'Pinia 🍍',
2065        logo: 'https://pinia.vuejs.org/logo.svg',
2066        packageName: 'pinia',
2067        homepage: 'https://pinia.vuejs.org',
2068        componentStateTypes,
2069        app,
2070    }, (api) => {
2071        if (typeof api.now !== 'function') {
2072            toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');
2073        }
2074        api.addTimelineLayer({
2075            id: MUTATIONS_LAYER_ID,
2076            label: `Pinia 🍍`,
2077            color: 0xe5df88,
2078        });
2079        api.addInspector({
2080            id: INSPECTOR_ID,
2081            label: 'Pinia 🍍',
2082            icon: 'storage',
2083            treeFilterPlaceholder: 'Search stores',
2084            actions: [
2085                {
2086                    icon: 'content_copy',
2087                    action: () => {
2088                        actionGlobalCopyState(pinia);
2089                    },
2090                    tooltip: 'Serialize and copy the state',
2091                },
2092                {
2093                    icon: 'content_paste',
2094                    action: async () => {
2095                        await actionGlobalPasteState(pinia);
2096                        api.sendInspectorTree(INSPECTOR_ID);
2097                        api.sendInspectorState(INSPECTOR_ID);
2098                    },
2099                    tooltip: 'Replace the state with the content of your clipboard',
2100                },
2101                {
2102                    icon: 'save',
2103                    action: () => {
2104                        actionGlobalSaveState(pinia);
2105                    },
2106                    tooltip: 'Save the state as a JSON file',
2107                },
2108                {
2109                    icon: 'folder_open',
2110                    action: async () => {
2111                        await actionGlobalOpenStateFile(pinia);
2112                        api.sendInspectorTree(INSPECTOR_ID);
2113                        api.sendInspectorState(INSPECTOR_ID);
2114                    },
2115                    tooltip: 'Import the state from a JSON file',
2116                },
2117            ],
2118            nodeActions: [
2119                {
2120                    icon: 'restore',
2121                    tooltip: 'Reset the state (with "$reset")',
2122                    action: (nodeId) => {
2123                        const store = pinia._s.get(nodeId);
2124                        if (!store) {
2125                            toastMessage(`Cannot reset "${nodeId}" store because it wasn't found.`, 'warn');
2126                        }
2127                        else if (typeof store.$reset !== 'function') {
2128                            toastMessage(`Cannot reset "${nodeId}" store because it doesn't have a "$reset" method implemented.`, 'warn');
2129                        }
2130                        else {
2131                            store.$reset();
2132                            toastMessage(`Store "${nodeId}" reset.`);
2133                        }
2134                    },
2135                },
2136            ],
2137        });
2138        api.on.inspectComponent((payload, ctx) => {
2139            const proxy = (payload.componentInstance &&
2140                payload.componentInstance.proxy);
2141            if (proxy && proxy._pStores) {
2142                const piniaStores = payload.componentInstance.proxy._pStores;
2143                Object.values(piniaStores).forEach((store) => {
2144                    payload.instanceData.state.push({
2145                        type: getStoreType(store.$id),
2146                        key: 'state',
2147                        editable: true,
2148                        value: store._isOptionsAPI
2149                            ? {
2150                                _custom: {
2151                                    value: (0,vue_runtime_esm_browser_prod/* toRaw */.ux)(store.$state),
2152                                    actions: [
2153                                        {
2154                                            icon: 'restore',
2155                                            tooltip: 'Reset the state of this store',
2156                                            action: () => store.$reset(),
2157                                        },
2158                                    ],
2159                                },
2160                            }
2161                            : // NOTE: workaround to unwrap transferred refs
2162                                Object.keys(store.$state).reduce((state, key) => {
2163                                    state[key] = store.$state[key];
2164                                    return state;
2165                                }, {}),
2166                    });
2167                    if (store._getters && store._getters.length) {
2168                        payload.instanceData.state.push({
2169                            type: getStoreType(store.$id),
2170                            key: 'getters',
2171                            editable: false,
2172                            value: store._getters.reduce((getters, key) => {
2173                                try {
2174                                    getters[key] = store[key];
2175                                }
2176                                catch (error) {
2177                                    // @ts-expect-error: we just want to show it in devtools
2178                                    getters[key] = error;
2179                                }
2180                                return getters;
2181                            }, {}),
2182                        });
2183                    }
2184                });
2185            }
2186        });
2187        api.on.getInspectorTree((payload) => {
2188            if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
2189                let stores = [pinia];
2190                stores = stores.concat(Array.from(pinia._s.values()));
2191                payload.rootNodes = (payload.filter
2192                    ? stores.filter((store) => '$id' in store
2193                        ? store.$id
2194                            .toLowerCase()
2195                            .includes(payload.filter.toLowerCase())
2196                        : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))
2197                    : stores).map(formatStoreForInspectorTree);
2198            }
2199        });
2200        // Expose pinia instance as $pinia to window
2201        globalThis.$pinia = pinia;
2202        api.on.getInspectorState((payload) => {
2203            if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
2204                const inspectedStore = payload.nodeId === PINIA_ROOT_ID
2205                    ? pinia
2206                    : pinia._s.get(payload.nodeId);
2207                if (!inspectedStore) {
2208                    // this could be the selected store restored for a different project
2209                    // so it's better not to say anything here
2210                    return;
2211                }
2212                if (inspectedStore) {
2213                    // Expose selected store as $store to window
2214                    if (payload.nodeId !== PINIA_ROOT_ID)
2215                        globalThis.$store = (0,vue_runtime_esm_browser_prod/* toRaw */.ux)(inspectedStore);
2216                    payload.state = formatStoreForInspectorState(inspectedStore);
2217                }
2218            }
2219        });
2220        api.on.editInspectorState((payload, ctx) => {
2221            if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {
2222                const inspectedStore = payload.nodeId === PINIA_ROOT_ID
2223                    ? pinia
2224                    : pinia._s.get(payload.nodeId);
2225                if (!inspectedStore) {
2226                    return toastMessage(`store "${payload.nodeId}" not found`, 'error');
2227                }
2228                const { path } = payload;
2229                if (!isPinia(inspectedStore)) {
2230                    // access only the state
2231                    if (path.length !== 1 ||
2232                        !inspectedStore._customProperties.has(path[0]) ||
2233                        path[0] in inspectedStore.$state) {
2234                        path.unshift('$state');
2235                    }
2236                }
2237                else {
2238                    // Root access, we can omit the `.value` because the devtools API does it for us
2239                    path.unshift('state');
2240                }
2241                isTimelineActive = false;
2242                payload.set(inspectedStore, path, payload.state.value);
2243                isTimelineActive = true;
2244            }
2245        });
2246        api.on.editComponentState((payload) => {
2247            if (payload.type.startsWith('🍍')) {
2248                const storeId = payload.type.replace(/^🍍\s*/, '');
2249                const store = pinia._s.get(storeId);
2250                if (!store) {
2251                    return toastMessage(`store "${storeId}" not found`, 'error');
2252                }
2253                const { path } = payload;
2254                if (path[0] !== 'state') {
2255                    return toastMessage(`Invalid path for store "${storeId}":\n${path}\nOnly state can be modified.`);
2256                }
2257                // rewrite the first entry to be able to directly set the state as
2258                // well as any other path
2259                path[0] = '$state';
2260                isTimelineActive = false;
2261                payload.set(store, path, payload.state.value);
2262                isTimelineActive = true;
2263            }
2264        });
2265    });
2266}
2267function addStoreToDevtools(app, store) {
2268    if (!componentStateTypes.includes(getStoreType(store.$id))) {
2269        componentStateTypes.push(getStoreType(store.$id));
2270    }
2271    (0,esm/* setupDevtoolsPlugin */.$q)({
2272        id: 'dev.esm.pinia',
2273        label: 'Pinia 🍍',
2274        logo: 'https://pinia.vuejs.org/logo.svg',
2275        packageName: 'pinia',
2276        homepage: 'https://pinia.vuejs.org',
2277        componentStateTypes,
2278        app,
2279        settings: {
2280            logStoreChanges: {
2281                label: 'Notify about new/deleted stores',
2282                type: 'boolean',
2283                defaultValue: true,
2284            },
2285            // useEmojis: {
2286            //   label: 'Use emojis in messages ⚡️',
2287            //   type: 'boolean',
2288            //   defaultValue: true,
2289            // },
2290        },
2291    }, (api) => {
2292        // gracefully handle errors
2293        const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;
2294        store.$onAction(({ after, onError, name, args }) => {
2295            const groupId = runningActionId++;
2296            api.addTimelineEvent({
2297                layerId: MUTATIONS_LAYER_ID,
2298                event: {
2299                    time: now(),
2300                    title: '🛫 ' + name,
2301                    subtitle: 'start',
2302                    data: {
2303                        store: formatDisplay(store.$id),
2304                        action: formatDisplay(name),
2305                        args,
2306                    },
2307                    groupId,
2308                },
2309            });
2310            after((result) => {
2311                activeAction = undefined;
2312                api.addTimelineEvent({
2313                    layerId: MUTATIONS_LAYER_ID,
2314                    event: {
2315                        time: now(),
2316                        title: '🛬 ' + name,
2317                        subtitle: 'end',
2318                        data: {
2319                            store: formatDisplay(store.$id),
2320                            action: formatDisplay(name),
2321                            args,
2322                            result,
2323                        },
2324                        groupId,
2325                    },
2326                });
2327            });
2328            onError((error) => {
2329                activeAction = undefined;
2330                api.addTimelineEvent({
2331                    layerId: MUTATIONS_LAYER_ID,
2332                    event: {
2333                        time: now(),
2334                        logType: 'error',
2335                        title: '💥 ' + name,
2336                        subtitle: 'end',
2337                        data: {
2338                            store: formatDisplay(store.$id),
2339                            action: formatDisplay(name),
2340                            args,
2341                            error,
2342                        },
2343                        groupId,
2344                    },
2345                });
2346            });
2347        }, true);
2348        store._customProperties.forEach((name) => {
2349            (0,vue_runtime_esm_browser_prod/* watch */.wB)(() => (0,vue_runtime_esm_browser_prod/* unref */.R1)(store[name]), (newValue, oldValue) => {
2350                api.notifyComponentUpdate();
2351                api.sendInspectorState(INSPECTOR_ID);
2352                if (isTimelineActive) {
2353                    api.addTimelineEvent({
2354                        layerId: MUTATIONS_LAYER_ID,
2355                        event: {
2356                            time: now(),
2357                            title: 'Change',
2358                            subtitle: name,
2359                            data: {
2360                                newValue,
2361                                oldValue,
2362                            },
2363                            groupId: activeAction,
2364                        },
2365                    });
2366                }
2367            }, { deep: true });
2368        });
2369        store.$subscribe(({ events, type }, state) => {
2370            api.notifyComponentUpdate();
2371            api.sendInspectorState(INSPECTOR_ID);
2372            if (!isTimelineActive)
2373                return;
2374            // rootStore.state[store.id] = state
2375            const eventData = {
2376                time: now(),
2377                title: formatMutationType(type),
2378                data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),
2379                groupId: activeAction,
2380            };
2381            if (type === MutationType.patchFunction) {
2382                eventData.subtitle = '⤵️';
2383            }
2384            else if (type === MutationType.patchObject) {
2385                eventData.subtitle = '🧩';
2386            }
2387            else if (events && !Array.isArray(events)) {
2388                eventData.subtitle = events.type;
2389            }
2390            if (events) {
2391                eventData.data['rawEvent(s)'] = {
2392                    _custom: {
2393                        display: 'DebuggerEvent',
2394                        type: 'object',
2395                        tooltip: 'raw DebuggerEvent[]',
2396                        value: events,
2397                    },
2398                };
2399            }
2400            api.addTimelineEvent({
2401                layerId: MUTATIONS_LAYER_ID,
2402                event: eventData,
2403            });
2404        }, { detached: true, flush: 'sync' });
2405        const hotUpdate = store._hotUpdate;
2406        store._hotUpdate = (0,vue_runtime_esm_browser_prod/* markRaw */.IG)((newStore) => {
2407            hotUpdate(newStore);
2408            api.addTimelineEvent({
2409                layerId: MUTATIONS_LAYER_ID,
2410                event: {
2411                    time: now(),
2412                    title: '🔥 ' + store.$id,
2413                    subtitle: 'HMR update',
2414                    data: {
2415                        store: formatDisplay(store.$id),
2416                        info: formatDisplay(`HMR update`),
2417                    },
2418                },
2419            });
2420            // update the devtools too
2421            api.notifyComponentUpdate();
2422            api.sendInspectorTree(INSPECTOR_ID);
2423            api.sendInspectorState(INSPECTOR_ID);
2424        });
2425        const { $dispose } = store;
2426        store.$dispose = () => {
2427            $dispose();
2428            api.notifyComponentUpdate();
2429            api.sendInspectorTree(INSPECTOR_ID);
2430            api.sendInspectorState(INSPECTOR_ID);
2431            api.getSettings().logStoreChanges &&
2432                toastMessage(`Disposed "${store.$id}" store 🗑`);
2433        };
2434        // trigger an update so it can display new registered stores
2435        api.notifyComponentUpdate();
2436        api.sendInspectorTree(INSPECTOR_ID);
2437        api.sendInspectorState(INSPECTOR_ID);
2438        api.getSettings().logStoreChanges &&
2439            toastMessage(`"${store.$id}" store installed 🆕`);
2440    });
2441}
2442let runningActionId = 0;
2443let activeAction;
2444/**
2445 * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the
2446 * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state
2447 * mutation to the action.
2448 *
2449 * @param store - store to patch
2450 * @param actionNames - list of actionst to patch
2451 */
2452function patchActionForGrouping(store, actionNames, wrapWithProxy) {
2453    // original actions of the store as they are given by pinia. We are going to override them
2454    const actions = actionNames.reduce((storeActions, actionName) => {
2455        // use toRaw to avoid tracking #541
2456        storeActions[actionName] = (0,vue_runtime_esm_browser_prod/* toRaw */.ux)(store)[actionName];
2457        return storeActions;
2458    }, {});
2459    for (const actionName in actions) {
2460        store[actionName] = function () {
2461            // the running action id is incremented in a before action hook
2462            const _actionId = runningActionId;
2463            const trackedStore = wrapWithProxy
2464                ? new Proxy(store, {
2465                    get(...args) {
2466                        activeAction = _actionId;
2467                        return Reflect.get(...args);
2468                    },
2469                    set(...args) {
2470                        activeAction = _actionId;
2471                        return Reflect.set(...args);
2472                    },
2473                })
2474                : store;
2475            // For Setup Stores we need https://github.com/tc39/proposal-async-context
2476            activeAction = _actionId;
2477            const retValue = actions[actionName].apply(trackedStore, arguments);
2478            // this is safer as async actions in Setup Stores would associate mutations done outside of the action
2479            activeAction = undefined;
2480            return retValue;
2481        };
2482    }
2483}
2484/**
2485 * pinia.use(devtoolsPlugin)
2486 */
2487function devtoolsPlugin({ app, store, options }) {
2488    // HMR module
2489    if (store.$id.startsWith('__hot:')) {
2490        return;
2491    }
2492    // detect option api vs setup api
2493    store._isOptionsAPI = !!options.state;
2494    // Do not overwrite actions mocked by @pinia/testing (#2298)
2495    if (!store._p._testing) {
2496        patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);
2497        // Upgrade the HMR to also update the new actions
2498        const originalHotUpdate = store._hotUpdate;
2499        (0,vue_runtime_esm_browser_prod/* toRaw */.ux)(store)._hotUpdate = function (newStore) {
2500            originalHotUpdate.apply(this, arguments);
2501            patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);
2502        };
2503    }
2504    addStoreToDevtools(app, 
2505    // FIXME: is there a way to allow the assignment from Store<Id, S, G, A> to StoreGeneric?
2506    store);
2507}
2508
2509/**
2510 * Creates a Pinia instance to be used by the application
2511 */
2512function createPinia() {
2513    const scope = (0,vue_runtime_esm_browser_prod/* effectScope */.uY)(true);
2514    // NOTE: here we could check the window object for a state and directly set it
2515    // if there is anything like it with Vue 3 SSR
2516    const state = scope.run(() => (0,vue_runtime_esm_browser_prod/* ref */.KR)({}));
2517    let _p = [];
2518    // plugins added before calling app.use(pinia)
2519    let toBeInstalled = [];
2520    const pinia = (0,vue_runtime_esm_browser_prod/* markRaw */.IG)({
2521        install(app) {
2522            // this allows calling useStore() outside of a component setup after
2523            // installing pinia's plugin
2524            setActivePinia(pinia);
2525            if (!lib_isVue2) {
2526                pinia._a = app;
2527                app.provide(piniaSymbol, pinia);
2528                app.config.globalProperties.$pinia = pinia;
2529                /* istanbul ignore else */
2530                if (((( false) || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !("production" === 'test')) && IS_CLIENT) {
2531                    registerPiniaDevtools(app, pinia);
2532                }
2533                toBeInstalled.forEach((plugin) => _p.push(plugin));
2534                toBeInstalled = [];
2535            }
2536        },
2537        use(plugin) {
2538            if (!this._a && !lib_isVue2) {
2539                toBeInstalled.push(plugin);
2540            }
2541            else {
2542                _p.push(plugin);
2543            }
2544            return this;
2545        },
2546        _p,
2547        // it's actually undefined here
2548        // @ts-expect-error
2549        _a: null,
2550        _e: scope,
2551        _s: new Map(),
2552        state,
2553    });
2554    // pinia devtools rely on dev only features so they cannot be forced unless
2555    // the dev build of Vue is used. Avoid old browsers like IE11.
2556    if (((( false) || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !("production" === 'test')) && IS_CLIENT && typeof Proxy !== 'undefined') {
2557        pinia.use(devtoolsPlugin);
2558    }
2559    return pinia;
2560}
2561/**
2562 * Dispose a Pinia instance by stopping its effectScope and removing the state, plugins and stores. This is mostly
2563 * useful in tests, with both a testing pinia or a regular pinia and in applications that use multiple pinia instances.
2564 * Once disposed, the pinia instance cannot be used anymore.
2565 *
2566 * @param pinia - pinia instance
2567 */
2568function disposePinia(pinia) {
2569    pinia._e.stop();
2570    pinia._s.clear();
2571    pinia._p.splice(0);
2572    pinia.state.value = {};
2573    // @ts-expect-error: non valid
2574    pinia._a = null;
2575}
2576
2577/**
2578 * Checks if a function is a `StoreDefinition`.
2579 *
2580 * @param fn - object to test
2581 * @returns true if `fn` is a StoreDefinition
2582 */
2583const isUseStore = (fn) => {
2584    return typeof fn === 'function' && typeof fn.$id === 'string';
2585};
2586/**
2587 * Mutates in place `newState` with `oldState` to _hot update_ it. It will
2588 * remove any key not existing in `newState` and recursively merge plain
2589 * objects.
2590 *
2591 * @param newState - new state object to be patched
2592 * @param oldState - old state that should be used to patch newState
2593 * @returns - newState
2594 */
2595function patchObject(newState, oldState) {
2596    // no need to go through symbols because they cannot be serialized anyway
2597    for (const key in oldState) {
2598        const subPatch = oldState[key];
2599        // skip the whole sub tree
2600        if (!(key in newState)) {
2601            continue;
2602        }
2603        const targetValue = newState[key];
2604        if (isPlainObject(targetValue) &&
2605            isPlainObject(subPatch) &&
2606            !isRef(subPatch) &&
2607            !isReactive(subPatch)) {
2608            newState[key] = patchObject(targetValue, subPatch);
2609        }
2610        else {
2611            // objects are either a bit more complex (e.g. refs) or primitives, so we
2612            // just set the whole thing
2613            if (isVue2) {
2614                set(newState, key, subPatch);
2615            }
2616            else {
2617                newState[key] = subPatch;
2618            }
2619        }
2620    }
2621    return newState;
2622}
2623/**
2624 * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.
2625 *
2626 * @example
2627 * ```js
2628 * const useUser = defineStore(...)
2629 * if (import.meta.hot) {
2630 *   import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))
2631 * }
2632 * ```
2633 *
2634 * @param initialUseStore - return of the defineStore to hot update
2635 * @param hot - `import.meta.hot`
2636 */
2637function acceptHMRUpdate(initialUseStore, hot) {
2638    // strip as much as possible from iife.prod
2639    if (true) {
2640        return () => { };
2641    }
2642    return (newModule) => {
2643        const pinia = hot.data.pinia || initialUseStore._pinia;
2644        if (!pinia) {
2645            // this store is still not used
2646            return;
2647        }
2648        // preserve the pinia instance across loads
2649        hot.data.pinia = pinia;
2650        // console.log('got data', newStore)
2651        for (const exportName in newModule) {
2652            const useStore = newModule[exportName];
2653            // console.log('checking for', exportName)
2654            if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {
2655                // console.log('Accepting update for', useStore.$id)
2656                const id = useStore.$id;
2657                if (id !== initialUseStore.$id) {
2658                    console.warn(`The id of the store changed from "${initialUseStore.$id}" to "${id}". Reloading.`);
2659                    // return import.meta.hot.invalidate()
2660                    return hot.invalidate();
2661                }
2662                const existingStore = pinia._s.get(id);
2663                if (!existingStore) {
2664                    console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);
2665                    return;
2666                }
2667                useStore(pinia, existingStore);
2668            }
2669        }
2670    };
2671}
2672
2673const noop = () => { };
2674function addSubscription(subscriptions, callback, detached, onCleanup = noop) {
2675    subscriptions.push(callback);
2676    const removeSubscription = () => {
2677        const idx = subscriptions.indexOf(callback);
2678        if (idx > -1) {
2679            subscriptions.splice(idx, 1);
2680            onCleanup();
2681        }
2682    };
2683    if (!detached && (0,vue_runtime_esm_browser_prod/* getCurrentScope */.o5)()) {
2684        (0,vue_runtime_esm_browser_prod/* onScopeDispose */.jr)(removeSubscription);
2685    }
2686    return removeSubscription;
2687}
2688function triggerSubscriptions(subscriptions, ...args) {
2689    subscriptions.slice().forEach((callback) => {
2690        callback(...args);
2691    });
2692}
2693
2694const fallbackRunWithContext = (fn) => fn();
2695/**
2696 * Marks a function as an action for `$onAction`
2697 * @internal
2698 */
2699const ACTION_MARKER = Symbol();
2700/**
2701 * Action name symbol. Allows to add a name to an action after defining it
2702 * @internal
2703 */
2704const ACTION_NAME = Symbol();
2705function mergeReactiveObjects(target, patchToApply) {
2706    // Handle Map instances
2707    if (target instanceof Map && patchToApply instanceof Map) {
2708        patchToApply.forEach((value, key) => target.set(key, value));
2709    }
2710    else if (target instanceof Set && patchToApply instanceof Set) {
2711        // Handle Set instances
2712        patchToApply.forEach(target.add, target);
2713    }
2714    // no need to go through symbols because they cannot be serialized anyway
2715    for (const key in patchToApply) {
2716        if (!patchToApply.hasOwnProperty(key))
2717            continue;
2718        const subPatch = patchToApply[key];
2719        const targetValue = target[key];
2720        if (isPlainObject(targetValue) &&
2721            isPlainObject(subPatch) &&
2722            target.hasOwnProperty(key) &&
2723            !(0,vue_runtime_esm_browser_prod/* isRef */.i9)(subPatch) &&
2724            !(0,vue_runtime_esm_browser_prod/* isReactive */.g8)(subPatch)) {
2725            // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might
2726            // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that
2727            // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.
2728            target[key] = mergeReactiveObjects(targetValue, subPatch);
2729        }
2730        else {
2731            // @ts-expect-error: subPatch is a valid value
2732            target[key] = subPatch;
2733        }
2734    }
2735    return target;
2736}
2737const skipHydrateSymbol = ( false)
2738    ? 0
2739    : /* istanbul ignore next */ Symbol();
2740/**
2741 * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a
2742 * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.
2743 *
2744 * @param obj - target object
2745 * @returns obj
2746 */
2747function skipHydrate(obj) {
2748    return Object.defineProperty(obj, skipHydrateSymbol, {});
2749}
2750/**
2751 * Returns whether a value should be hydrated
2752 *
2753 * @param obj - target variable
2754 * @returns true if `obj` should be hydrated
2755 */
2756function shouldHydrate(obj) {
2757    return !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);
2758}
2759const { assign: pinia_assign } = Object;
2760function isComputed(o) {
2761    return !!((0,vue_runtime_esm_browser_prod/* isRef */.i9)(o) && o.effect);
2762}
2763function createOptionsStore(id, options, pinia, hot) {
2764    const { state, actions, getters } = options;
2765    const initialState = pinia.state.value[id];
2766    let store;
2767    function setup() {
2768        if (!initialState && ( true || 0)) {
2769            /* istanbul ignore if */
2770            if (lib_isVue2) {
2771                lib_set(pinia.state.value, id, state ? state() : {});
2772            }
2773            else {
2774                pinia.state.value[id] = state ? state() : {};
2775            }
2776        }
2777        // avoid creating a state in pinia.state.value
2778        const localState =  false
2779            ? // use ref() to unwrap refs inside state TODO: check if this is still necessary
2780                0
2781            : (0,vue_runtime_esm_browser_prod/* toRefs */.QW)(pinia.state.value[id]);
2782        return pinia_assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {
2783            if (false) {}
2784            computedGetters[name] = (0,vue_runtime_esm_browser_prod/* markRaw */.IG)((0,vue_runtime_esm_browser_prod/* computed */.EW)(() => {
2785                setActivePinia(pinia);
2786                // it was created just before
2787                const store = pinia._s.get(id);
2788                // allow cross using stores
2789                /* istanbul ignore if */
2790                if (lib_isVue2 && !store._r)
2791                    return;
2792                // @ts-expect-error
2793                // return getters![name].call(context, context)
2794                // TODO: avoid reading the getter while assigning with a global variable
2795                return getters[name].call(store, store);
2796            }));
2797            return computedGetters;
2798        }, {}));
2799    }
2800    store = createSetupStore(id, setup, options, pinia, hot, true);
2801    return store;
2802}
2803function createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {
2804    let scope;
2805    const optionsForPlugin = pinia_assign({ actions: {} }, options);
2806    /* istanbul ignore if */
2807    if (false) {}
2808    // watcher options for $subscribe
2809    const $subscribeOptions = { deep: true };
2810    /* istanbul ignore else */
2811    if (false) {}
2812    // internal state
2813    let isListening; // set to true at the end
2814    let isSyncListening; // set to true at the end
2815    let subscriptions = [];
2816    let actionSubscriptions = [];
2817    let debuggerEvents;
2818    const initialState = pinia.state.value[$id];
2819    // avoid setting the state for option stores if it is set
2820    // by the setup
2821    if (!isOptionsStore && !initialState && ( true || 0)) {
2822        /* istanbul ignore if */
2823        if (lib_isVue2) {
2824            lib_set(pinia.state.value, $id, {});
2825        }
2826        else {
2827            pinia.state.value[$id] = {};
2828        }
2829    }
2830    const hotState = (0,vue_runtime_esm_browser_prod/* ref */.KR)({});
2831    // avoid triggering too many listeners
2832    // https://github.com/vuejs/pinia/issues/1129
2833    let activeListener;
2834    function $patch(partialStateOrMutator) {
2835        let subscriptionMutation;
2836        isListening = isSyncListening = false;
2837        // reset the debugger events since patches are sync
2838        /* istanbul ignore else */
2839        if ((false)) {}
2840        if (typeof partialStateOrMutator === 'function') {
2841            partialStateOrMutator(pinia.state.value[$id]);
2842            subscriptionMutation = {
2843                type: MutationType.patchFunction,
2844                storeId: $id,
2845                events: debuggerEvents,
2846            };
2847        }
2848        else {
2849            mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);
2850            subscriptionMutation = {
2851                type: MutationType.patchObject,
2852                payload: partialStateOrMutator,
2853                storeId: $id,
2854                events: debuggerEvents,
2855            };
2856        }
2857        const myListenerId = (activeListener = Symbol());
2858        (0,vue_runtime_esm_browser_prod/* nextTick */.dY)().then(() => {
2859            if (activeListener === myListenerId) {
2860                isListening = true;
2861            }
2862        });
2863        isSyncListening = true;
2864        // because we paused the watcher, we need to manually call the subscriptions
2865        triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);
2866    }
2867    const $reset = isOptionsStore
2868        ? function $reset() {
2869            const { state } = options;
2870            const newState = state ? state() : {};
2871            // we use a patch to group all changes into one single subscription
2872            this.$patch(($state) => {
2873                // @ts-expect-error: FIXME: shouldn't error?
2874                pinia_assign($state, newState);
2875            });
2876        }
2877        : /* istanbul ignore next */
2878            ( false)
2879                ? 0
2880                : noop;
2881    function $dispose() {
2882        scope.stop();
2883        subscriptions = [];
2884        actionSubscriptions = [];
2885        pinia._s.delete($id);
2886    }
2887    /**
2888     * Helper that wraps function so it can be tracked with $onAction
2889     * @param fn - action to wrap
2890     * @param name - name of the action
2891     */
2892    const action = (fn, name = '') => {
2893        if (ACTION_MARKER in fn) {
2894            fn[ACTION_NAME] = name;
2895            return fn;
2896        }
2897        const wrappedAction = function () {
2898            setActivePinia(pinia);
2899            const args = Array.from(arguments);
2900            const afterCallbackList = [];
2901            const onErrorCallbackList = [];
2902            function after(callback) {
2903                afterCallbackList.push(callback);
2904            }
2905            function onError(callback) {
2906                onErrorCallbackList.push(callback);
2907            }
2908            // @ts-expect-error
2909            triggerSubscriptions(actionSubscriptions, {
2910                args,
2911                name: wrappedAction[ACTION_NAME],
2912                store,
2913                after,
2914                onError,
2915            });
2916            let ret;
2917            try {
2918                ret = fn.apply(this && this.$id === $id ? this : store, args);
2919                // handle sync errors
2920            }
2921            catch (error) {
2922                triggerSubscriptions(onErrorCallbackList, error);
2923                throw error;
2924            }
2925            if (ret instanceof Promise) {
2926                return ret
2927                    .then((value) => {
2928                    triggerSubscriptions(afterCallbackList, value);
2929                    return value;
2930                })
2931                    .catch((error) => {
2932                    triggerSubscriptions(onErrorCallbackList, error);
2933                    return Promise.reject(error);
2934                });
2935            }
2936            // trigger after callbacks
2937            triggerSubscriptions(afterCallbackList, ret);
2938            return ret;
2939        };
2940        wrappedAction[ACTION_MARKER] = true;
2941        wrappedAction[ACTION_NAME] = name; // will be set later
2942        // @ts-expect-error: we are intentionally limiting the returned type to just Fn
2943        // because all the added properties are internals that are exposed through `$onAction()` only
2944        return wrappedAction;
2945    };
2946    const _hmrPayload = /*#__PURE__*/ (0,vue_runtime_esm_browser_prod/* markRaw */.IG)({
2947        actions: {},
2948        getters: {},
2949        state: [],
2950        hotState,
2951    });
2952    const partialStore = {
2953        _p: pinia,
2954        // _s: scope,
2955        $id,
2956        $onAction: addSubscription.bind(null, actionSubscriptions),
2957        $patch,
2958        $reset,
2959        $subscribe(callback, options = {}) {
2960            const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());
2961            const stopWatcher = scope.run(() => (0,vue_runtime_esm_browser_prod/* watch */.wB)(() => pinia.state.value[$id], (state) => {
2962                if (options.flush === 'sync' ? isSyncListening : isListening) {
2963                    callback({
2964                        storeId: $id,
2965                        type: MutationType.direct,
2966                        events: debuggerEvents,
2967                    }, state);
2968                }
2969            }, pinia_assign({}, $subscribeOptions, options)));
2970            return removeSubscription;
2971        },
2972        $dispose,
2973    };
2974    /* istanbul ignore if */
2975    if (lib_isVue2) {
2976        // start as non ready
2977        partialStore._r = false;
2978    }
2979    const store = (0,vue_runtime_esm_browser_prod/* reactive */.Kh)(( false) || (((( false) || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !("production" === 'test')) && IS_CLIENT)
2980        ? pinia_assign({
2981            _hmrPayload,
2982            _customProperties: (0,vue_runtime_esm_browser_prod/* markRaw */.IG)(new Set()), // devtools custom properties
2983        }, partialStore
2984        // must be added later
2985        // setupStore
2986        )
2987        : partialStore);
2988    // store the partial store now so the setup of stores can instantiate each other before they are finished without
2989    // creating infinite loops.
2990    pinia._s.set($id, store);
2991    const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;
2992    // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped
2993    const setupStore = runWithContext(() => pinia._e.run(() => (scope = (0,vue_runtime_esm_browser_prod/* effectScope */.uY)()).run(() => setup({ action }))));
2994    // overwrite existing actions to support $onAction
2995    for (const key in setupStore) {
2996        const prop = setupStore[key];
2997        if (((0,vue_runtime_esm_browser_prod/* isRef */.i9)(prop) && !isComputed(prop)) || (0,vue_runtime_esm_browser_prod/* isReactive */.g8)(prop)) {
2998            // mark it as a piece of state to be serialized
2999            if (false) {}
3000            else if (!isOptionsStore) {
3001                // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created
3002                if (initialState && shouldHydrate(prop)) {
3003                    if ((0,vue_runtime_esm_browser_prod/* isRef */.i9)(prop)) {
3004                        prop.value = initialState[key];
3005                    }
3006                    else {
3007                        // probably a reactive object, lets recursively assign
3008                        // @ts-expect-error: prop is unknown
3009                        mergeReactiveObjects(prop, initialState[key]);
3010                    }
3011                }
3012                // transfer the ref to the pinia state to keep everything in sync
3013                /* istanbul ignore if */
3014                if (lib_isVue2) {
3015                    lib_set(pinia.state.value[$id], key, prop);
3016                }
3017                else {
3018                    pinia.state.value[$id][key] = prop;
3019                }
3020            }
3021            /* istanbul ignore else */
3022            if ((false)) {}
3023            // action
3024        }
3025        else if (typeof prop === 'function') {
3026            const actionValue =  false ? 0 : action(prop, key);
3027            // this a hot module replacement store because the hotUpdate method needs
3028            // to do it with the right context
3029            /* istanbul ignore if */
3030            if (lib_isVue2) {
3031                lib_set(setupStore, key, actionValue);
3032            }
3033            else {
3034                // @ts-expect-error
3035                setupStore[key] = actionValue;
3036            }
3037            /* istanbul ignore else */
3038            if ((false)) {}
3039            // list actions so they can be used in plugins
3040            // @ts-expect-error
3041            optionsForPlugin.actions[key] = prop;
3042        }
3043        else if ((false)) {}
3044    }
3045    // add the state, getters, and action properties
3046    /* istanbul ignore if */
3047    if (lib_isVue2) {
3048        Object.keys(setupStore).forEach((key) => {
3049            lib_set(store, key, setupStore[key]);
3050        });
3051    }
3052    else {
3053        pinia_assign(store, setupStore);
3054        // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.
3055        // Make `storeToRefs()` work with `reactive()` #799
3056        pinia_assign((0,vue_runtime_esm_browser_prod/* toRaw */.ux)(store), setupStore);
3057    }
3058    // use this instead of a computed with setter to be able to create it anywhere
3059    // without linking the computed lifespan to wherever the store is first
3060    // created.
3061    Object.defineProperty(store, '$state', {
3062        get: () => ( false ? 0 : pinia.state.value[$id]),
3063        set: (state) => {
3064            /* istanbul ignore if */
3065            if (false) {}
3066            $patch(($state) => {
3067                // @ts-expect-error: FIXME: shouldn't error?
3068                pinia_assign($state, state);
3069            });
3070        },
3071    });
3072    // add the hotUpdate before plugins to allow them to override it
3073    /* istanbul ignore else */
3074    if ((false)) {}
3075    if (((( false) || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !("production" === 'test')) && IS_CLIENT) {
3076        const nonEnumerable = {
3077            writable: true,
3078            configurable: true,
3079            // avoid warning on devtools trying to display this property
3080            enumerable: false,
3081        };
3082        ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {
3083            Object.defineProperty(store, p, pinia_assign({ value: store[p] }, nonEnumerable));
3084        });
3085    }
3086    /* istanbul ignore if */
3087    if (lib_isVue2) {
3088        // mark the store as ready before plugins
3089        store._r = true;
3090    }
3091    // apply all plugins
3092    pinia._p.forEach((extender) => {
3093        /* istanbul ignore else */
3094        if (((( false) || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !("production" === 'test')) && IS_CLIENT) {
3095            const extensions = scope.run(() => extender({
3096                store: store,
3097                app: pinia._a,
3098                pinia,
3099                options: optionsForPlugin,
3100            }));
3101            Object.keys(extensions || {}
3101).forEach((key) => store._customProperties.add(key));
3102            pinia_assign(store, extensions);
3103        }
3104        else {
3105            pinia_assign(store, scope.run(() => extender({
3106                store: store,
3107                app: pinia._a,
3108                pinia,
3109                options: optionsForPlugin,
3110            })));
3111        }
3112    });
3113    if (false) {}
3114    // only apply hydrate to option stores with an initial state in pinia
3115    if (initialState &&
3116        isOptionsStore &&
3117        options.hydrate) {
3118        options.hydrate(store.$state, initialState);
3119    }
3120    isListening = true;
3121    isSyncListening = true;
3122    return store;
3123}
3124// allows unused stores to be tree shaken
3125/*! #__NO_SIDE_EFFECTS__ */
3126function defineStore(
3127// TODO: add proper types from above
3128idOrOptions, setup, setupOptions) {
3129    let id;
3130    let options;
3131    const isSetupStore = typeof setup === 'function';
3132    if (typeof idOrOptions === 'string') {
3133        id = idOrOptions;
3134        // the option store setup will contain the actual options in this case
3135        options = isSetupStore ? setupOptions : setup;
3136    }
3137    else {
3138        options = idOrOptions;
3139        id = idOrOptions.id;
3140        if (false) {}
3141    }
3142    function useStore(pinia, hot) {
3143        const hasContext = (0,vue_runtime_esm_browser_prod/* hasInjectionContext */.PS)();
3144        pinia =
3145            // in test mode, ignore the argument provided as we can always retrieve a
3146            // pinia instance with getActivePinia()
3147            ( false ? 0 : pinia) ||
3148                (hasContext ? (0,vue_runtime_esm_browser_prod/* inject */.WQ)(piniaSymbol, null) : null);
3149        if (pinia)
3150            setActivePinia(pinia);
3151        if (false) {}
3152        pinia = activePinia;
3153        if (!pinia._s.has(id)) {
3154            // creating the store registers it in `pinia._s`
3155            if (isSetupStore) {
3156                createSetupStore(id, setup, options, pinia);
3157            }
3158            else {
3159                createOptionsStore(id, options, pinia);
3160            }
3161            /* istanbul ignore else */
3162            if ((false)) {}
3163        }
3164        const store = pinia._s.get(id);
3165        if (false) {}
3166        if (false) {}
3167        // StoreGeneric cannot be casted towards Store
3168        return store;
3169    }
3170    useStore.$id = id;
3171    return useStore;
3172}
3173
3174let mapStoreSuffix = 'Store';
3175/**
3176 * Changes the suffix added by `mapStores()`. Can be set to an empty string.
3177 * Defaults to `"Store"`. Make sure to extend the MapStoresCustomization
3178 * interface if you are using TypeScript.
3179 *
3180 * @param suffix - new suffix
3181 */
3182function setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS
3183) {
3184    mapStoreSuffix = suffix;
3185}
3186/**
3187 * Allows using stores without the composition API (`setup()`) by generating an
3188 * object to be spread in the `computed` field of a component. It accepts a list
3189 * of store definitions.
3190 *
3191 * @example
3192 * ```js
3193 * export default {
3194 *   computed: {
3195 *     // other computed properties
3196 *     ...mapStores(useUserStore, useCartStore)
3197 *   },
3198 *
3199 *   created() {
3200 *     this.userStore // store with id "user"
3201 *     this.cartStore // store with id "cart"
3202 *   }
3203 * }
3204 * ```
3205 *
3206 * @param stores - list of stores to map to an object
3207 */
3208function mapStores(...stores) {
3209    if (false) {}
3210    return stores.reduce((reduced, useStore) => {
3211        // @ts-expect-error: $id is added by defineStore
3212        reduced[useStore.$id + mapStoreSuffix] = function () {
3213            return useStore(this.$pinia);
3214        };
3215        return reduced;
3216    }, {});
3217}
3218/**
3219 * Allows using state and getters from one store without using the composition
3220 * API (`setup()`) by generating an object to be spread in the `computed` field
3221 * of a component.
3222 *
3223 * @param useStore - store to map from
3224 * @param keysOrMapper - array or object
3225 */
3226function mapState(useStore, keysOrMapper) {
3227    return Array.isArray(keysOrMapper)
3228        ? keysOrMapper.reduce((reduced, key) => {
3229            reduced[key] = function () {
3230                // @ts-expect-error: FIXME: should work?
3231                return useStore(this.$pinia)[key];
3232            };
3233            return reduced;
3234        }, {})
3235        : Object.keys(keysOrMapper).reduce((reduced, key) => {
3236            // @ts-expect-error
3237            reduced[key] = function () {
3238                const store = useStore(this.$pinia);
3239                const storeKey = keysOrMapper[key];
3240                // for some reason TS is unable to infer the type of storeKey to be a
3241                // function
3242                return typeof storeKey === 'function'
3243                    ? storeKey.call(this, store)
3244                    : // @ts-expect-error: FIXME: should work?
3245                        store[storeKey];
3246            };
3247            return reduced;
3248        }, {});
3249}
3250/**
3251 * Alias for `mapState()`. You should use `mapState()` instead.
3252 * @deprecated use `mapState()` instead.
3253 */
3254const mapGetters = (/* unused pure expression or super */ null && (mapState));
3255/**
3256 * Allows directly using actions from your store without using the composition
3257 * API (`setup()`) by generating an object to be spread in the `methods` field
3258 * of a component.
3259 *
3260 * @param useStore - store to map from
3261 * @param keysOrMapper - array or object
3262 */
3263function mapActions(useStore, keysOrMapper) {
3264    return Array.isArray(keysOrMapper)
3265        ? keysOrMapper.reduce((reduced, key) => {
3266            // @ts-expect-error
3267            reduced[key] = function (...args) {
3268                // @ts-expect-error: FIXME: should work?
3269                return useStore(this.$pinia)[key](...args);
3270            };
3271            return reduced;
3272        }, {})
3273        : Object.keys(keysOrMapper).reduce((reduced, key) => {
3274            // @ts-expect-error
3275            reduced[key] = function (...args) {
3276                // @ts-expect-error: FIXME: should work?
3277                return useStore(this.$pinia)[keysOrMapper[key]](...args);
3278            };
3279            return reduced;
3280        }, {});
3281}
3282/**
3283 * Allows using state and getters from one store without using the composition
3284 * API (`setup()`) by generating an object to be spread in the `computed` field
3285 * of a component.
3286 *
3287 * @param useStore - store to map from
3288 * @param keysOrMapper - array or object
3289 */
3290function mapWritableState(useStore, keysOrMapper) {
3291    return Array.isArray(keysOrMapper)
3292        ? keysOrMapper.reduce((reduced, key) => {
3293            reduced[key] = {
3294                get() {
3295                    return useStore(this.$pinia)[key];
3296                },
3297                set(value) {
3298                    return (useStore(this.$pinia)[key] = value);
3299                },
3300            };
3301            return reduced;
3302        }, {})
3303        : Object.keys(keysOrMapper).reduce((reduced, key) => {
3304            reduced[key] = {
3305                get() {
3306                    return useStore(this.$pinia)[keysOrMapper[key]];
3307                },
3308                set(value) {
3309                    return (useStore(this.$pinia)[keysOrMapper[key]] = value);
3310                },
3311            };
3312            return reduced;
3313        }, {});
3314}
3315
3316/**
3317 * Creates an object of references with all the state, getters, and plugin-added
3318 * state properties of the store. Similar to `toRefs()` but specifically
3319 * designed for Pinia stores so methods and non reactive properties are
3320 * completely ignored.
3321 *
3322 * @param store - store to extract the refs from
3323 */
3324function storeToRefs(store) {
3325    // See https://github.com/vuejs/pinia/issues/852
3326    // It's easier to just use toRefs() even if it includes more stuff
3327    if (isVue2) {
3328        // @ts-expect-error: toRefs include methods and others
3329        return toRefs(store);
3330    }
3331    else {
3332        const rawStore = toRaw(store);
3333        const refs = {};
3334        for (const key in rawStore) {
3335            const value = rawStore[key];
3336            // There is no native method to check for a computed
3337            // https://github.com/vuejs/core/pull/4165
3338            if (value.effect) {
3339                // @ts-expect-error: too hard to type correctly
3340                refs[key] =
3341                    // ...
3342                    computed({
3343                        get: () => store[key],
3344                        set(value) {
3345                            store[key] = value;
3346                        },
3347                    });
3348            }
3349            else if (isRef(value) || isReactive(value)) {
3350                // @ts-expect-error: the key is state or getter
3351                refs[key] =
3352                    // ---
3353                    toRef(store, key);
3354            }
3355        }
3356        return refs;
3357    }
3358}
3359
3360/**
3361 * Vue 2 Plugin that must be installed for pinia to work. Note **you don't need
3362 * this plugin if you are using Nuxt.js**. Use the `buildModule` instead:
3363 * https://pinia.vuejs.org/ssr/nuxt.html.
3364 *
3365 * @example
3366 * ```js
3367 * import Vue from 'vue'
3368 * import { PiniaVuePlugin, createPinia } from 'pinia'
3369 *
3370 * Vue.use(PiniaVuePlugin)
3371 * const pinia = createPinia()
3372 *
3373 * new Vue({
3374 *   el: '#app',
3375 *   // ...
3376 *   pinia,
3377 * })
3378 * ```
3379 *
3380 * @param _Vue - `Vue` imported from 'vue'.
3381 */
3382const PiniaVuePlugin = function (_Vue) {
3383    // Equivalent of
3384    // app.config.globalProperties.$pinia = pinia
3385    _Vue.mixin({
3386        beforeCreate() {
3387            const options = this.$options;
3388            if (options.pinia) {
3389                const pinia = options.pinia;
3390                // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/main/src/apis/inject.ts#L31
3391                /* istanbul ignore else */
3392                if (!this._provided) {
3393                    const provideCache = {};
3394                    Object.defineProperty(this, '_provided', {
3395                        get: () => provideCache,
3396                        set: (v) => Object.assign(provideCache, v),
3397                    });
3398                }
3399                this._provided[piniaSymbol] = pinia;
3400                // propagate the pinia instance in an SSR friendly way
3401                // avoid adding it to nuxt twice
3402                /* istanbul ignore else */
3403                if (!this.$pinia) {
3404                    this.$pinia = pinia;
3405                }
3406                pinia._a = this;
3407                if (IS_CLIENT) {
3408                    // this allows calling useStore() outside of a component setup after
3409                    // installing pinia's plugin
3410                    setActivePinia(pinia);
3411                }
3412                if (((( false) || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !("production" === 'test')) && IS_CLIENT) {
3413                    registerPiniaDevtools(pinia._a, pinia);
3414                }
3415            }
3416            else if (!this.$pinia && options.parent && options.parent.$pinia) {
3417                this.$pinia = options.parent.$pinia;
3418            }
3419        },
3420        destroyed() {
3421            delete this._pStores;
3422        },
3423    });
3424};
3425
3426
3427
3428
3429/***/ }),
3430
3431/***/ 2064:
3432/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3433
3434"use strict";
3435
3436
3437Object.defineProperty(exports, "__esModule", ({
3438  value: true
3439}));
3440exports.BindingInSyntax = void 0;
3441var literal_types_1 = __webpack_require__(7802);
3442var binding_when_on_syntax_1 = __webpack_require__(3341);
3443var BindingInSyntax = function () {
3444  function BindingInSyntax(binding) {
3445    this._binding = binding;
3446  }
3447  BindingInSyntax.prototype.inRequestScope = function () {
3448    this._binding.scope = literal_types_1.BindingScopeEnum.Request;
3449    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
3450  };
3451  BindingInSyntax.prototype.inSingletonScope = function () {
3452    this._binding.scope = literal_types_1.BindingScopeEnum.Singleton;
3453    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
3454  };
3455  BindingInSyntax.prototype.inTransientScope = function () {
3456    this._binding.scope = literal_types_1.BindingScopeEnum.Transient;
3457    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
3458  };
3459  return BindingInSyntax;
3460}();
3461exports.BindingInSyntax = BindingInSyntax;
3462
3463/***/ }),
3464
3465/***/ 2173:
3466/***/ ((module, __webpack_exports__, __webpack_require__) => {
3467
3468"use strict";
3469__webpack_require__.r(__webpack_exports__);
3470/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3471/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3472/* harmony export */ });
3473/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
3474/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3475/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
3476/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3477// Imports
3478
3479
3480var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3481// Module
3482___CSS_LOADER_EXPORT___.push([module.id, `.vehicle-title__condition{margin-right:3px}.save-heart__srp-card-heart-wrapper{margin-top:.5rem}.vehicle-special-tags{display:flex;flex-wrap:wrap;color:#707070;line-height:1;padding-bottom:8px}.vehicle-special-tags__label,.vehicle-special-tags__icon{font-size:12px;font-weight:400;line-height:1}.vehicle-special-tags__special-offer,.vehicle-special-tags__price-drop{display:flex;align-items:center}.vehicle-special-tags__label{margin-right:1rem}.vehicle-special-tags__icon{margin-right:.5rem}`, ""]);
3483// Exports
3484/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_
3484LOADER_EXPORT___);
3485
3486
3487/***/ }),
3488
3489/***/ 2283:
3490/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3491
3492"use strict";
3493/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3494/* harmony export */   K: () => (/* binding */ VehicleService)
3495/* harmony export */ });
3496/* harmony import */ var inversify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(260);
3497/* harmony import */ var _serviceHelpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7090);
3498/* harmony import */ var _personalizationService_iPersonalizationService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(926);
3499/* harmony import */ var _types_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5644);
3500var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3501    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3502    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3503    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3504    return c > 3 && r && Object.defineProperty(target, key, r), r;
3505};
3506var __metadata = (undefined && undefined.__metadata) || function (k, v) {
3507    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
3508};
3509var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
3510    return function (target, key) { decorator(target, key, paramIndex); }
3511};
3512var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
3513    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3514    return new (P || (P = Promise))(function (resolve, reject) {
3515        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
3516        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
3517        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
3518        step((generator = generator.apply(thisArg, _arguments || [])).next());
3519    });
3520};
3521var _a;
3522
3523
3524
3525
3526let VehicleService = class VehicleService {
3527    constructor(personalizationService) {
3528        this.rootApiUrl = "/api/vhcliaa";
3529        this.vehicleCache = {};
3530        this.getVehicles = (dealerId, pageId, pagination, baseFilter, dynamicCountsSearch) => __awaiter(this, void 0, void 0, function* () {
3531            var _a, _b;
3532            let url = this.getVehicleApiUrl(dealerId, pageId, pagination, baseFilter, dynamicCountsSearch);
3533            //Personalization (aka Signals)
3534            //NOTE: We add this here so we don't have to see it visually show up on the URL every time
3535            url = (_b = (_a = this.personalizationService) === null || _a === void 0 ? void 0 : _a.addPersonalizationParameters(url)) !== null && _b !== void 0 ? _b : url;
3536            if (this.vehicleCache[url]) {
3537                return this.vehicleCache[url];
3538            }
3539            const promise = _serviceHelpers__WEBPACK_IMPORTED_MODULE_1__/* .ServiceHelpers */ .d.sendApiRequest(url);
3540            this.vehicleCache[url] = promise;
3541            return promise;
3542        });
3543        this.getCompareVehicle = (dealerId, vin) => __awaiter(this, void 0, void 0, function* () {
3544            const url = this.getCompareVehicleApiUrl(dealerId, vin);
3545            return _serviceHelpers__WEBPACK_IMPORTED_MODULE_1__/* .ServiceHelpers */ .d.sendApiRequest(url);
3546        });
3547        this.getVehicleCardDeck = (dealerId, vins) => __awaiter(this, void 0, void 0, function* () {
3548            const url = this.getVehicleCardDeckApiUrl(dealerId, vins);
3549            return _serviceHelpers__WEBPACK_IMPORTED_MODULE_1__/* .ServiceHelpers */ .d.sendApiRequest(url);
3550        });
3551        // HELPER METHODS
3552        this.getVehicleApiUrl = (dealerId, pageId, paginationData = null, baseFilter = null, dynamicCountsSearch = null) => {
3553            const searchParams = _serviceHelpers__WEBPACK_IMPORTED_MODULE_1__/* .ServiceHelpers */ .d.getBaseApiQueryString(paginationData, dynamicCountsSearch);
3554            if (baseFilter) {
3555                //NOTE: Fastly attempts to prevent malicious querystring parameters which can be triggered
3556                //      by baseFilter parameters. We need to base64 encode the baseFilter to prevent this.
3557                //      the backend will unencode it before using it.
3558                _serviceHelpers__WEBPACK_IMPORTED_MODULE_1__/* .ServiceHelpers */ .d.setSearchParam("baseFilter", btoa(baseFilter).replace(/\+/g, "%2B"), searchParams);
3559            }
3560            _serviceHelpers__WEBPACK_IMPORTED_MODULE_1__/* .ServiceHelpers */ .d.setSearchParam("displayCardsShown", this.getDisplayCardsShown(paginationData.PageNumber, paginationData.PageSize), searchParams);
3561            //HACK: don't encode spaces as +, it won't return the results correctly
3562            const url = `${this.rootApiUrl}/vehicle-pages/cosmos/srp/vehicles/${dealerId}/${pageId}?${_serviceHelpers__WEBPACK_IMPORTED_MODULE_1__/* .ServiceHelpers */ .d.mapArrayToQueryString(searchParams)}`;
3563            return url;
3564        };
3565        this.getCompareVehicleApiUrl = (dealerId, vin) => {
3566            const url = `${this.rootApiUrl}/inventory/${dealerId}/vehicle-compare?vin=${vin}`;
3567            return url;
3568        };
3569        this.getVehicleCardDeckApiUrl = (dealerId, vins) => {
3570            const searchParams = _serviceHelpers__WEBPACK_IMPORTED_MODULE_1__/* .ServiceHelpers */ .d.getBaseApiQueryString(null, null);
3571            const url = `${this.rootApiUrl}/vehicle-card-deck/${dealerId}?vins=${vins}&${_serviceHelpers__WEBPACK_IMPORTED_MODULE_1__/* .ServiceHelpers */ .d.mapArrayToQueryString(searchParams)}&host=${window.location.origin}`;
3572            return url;
3573        };
3574        this.getDisplayCardsShown = (pageNumber, pageSize) => {
3575            if (pageNumber < 1)
3576                return 0;
3577            return (pageNumber - 1) * pageSize;
3578        };
3579        this.personalizationService = personalizationService;
3580        this.vehicleCache = {};
3581    }
3582};
3583VehicleService = __decorate([
3584    (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .injectable */ ._G)(),
3585    __param(0, (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .inject */ .WQ)(_types_types__WEBPACK_IMPORTED_MODULE_2__/* .TYPES */ .Q.IPersonalizationService)),
3586    __metadata("design:paramtypes", [typeof (_a = typeof _personalizationService_iPersonalizationService__WEBPACK_IMPORTED_MODULE_3__/* .IPersonalizationService */ .R !== "undefined" && _personalizationService_iPersonalizationService__WEBPACK_IMPORTED_MODULE_3__/* .IPersonalizationService */ .R) === "function" ? _a : Object])
3587], VehicleService);
3588
3589
3590
3591/***/ }),
3592
3593/***/ 2437:
3594/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3595
3596"use strict";
3597
3598
3599Object.defineProperty(exports, "__esModule", ({
3600  value: true
3601}));
3602exports.BindingInWhenOnSyntax = void 0;
3603var binding_in_syntax_1 = __webpack_require__(2064);
3604var binding_on_syntax_1 = __webpack_require__(5078);
3605var binding_when_syntax_1 = __webpack_require__(4533);
3606var BindingInWhenOnSyntax = function () {
3607  function BindingInWhenOnSyntax(binding) {
3608    this._binding = binding;
3609    this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);
3610    this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);
3611    this._bindingInSyntax = new binding_in_syntax_1.BindingInSyntax(binding);
3612  }
3613  BindingInWhenOnSyntax.prototype.inRequestScope = function () {
3614    return this._bindingInSyntax.inRequestScope();
3615  };
3616  BindingInWhenOnSyntax.prototype.inSingletonScope = function () {
3617    return this._bindingInSyntax.inSingletonScope();
3618  };
3619  BindingInWhenOnSyntax.prototype.inTransientScope = function () {
3620    return this._bindingInSyntax.inTransientScope();
3621  };
3622  BindingInWhenOnSyntax.prototype.when = function (constraint) {
3623    return this._bindingWhenSyntax.when(constraint);
3624  };
3625  BindingInWhenOnSyntax.prototype.whenTargetNamed = function (name) {
3626    return this._bindingWhenSyntax.whenTargetNamed(name);
3627  };
3628  BindingInWhenOnSyntax.prototype.whenTargetIsDefault = function () {
3629    return this._bindingWhenSyntax.whenTargetIsDefault();
3630  };
3631  BindingInWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {
3632    return this._bindingWhenSyntax.whenTargetTagged(tag, value);
3633  };
3634  BindingInWhenOnSyntax.prototype.whenInjectedInto = function (parent) {
3635    return this._bindingWhenSyntax.whenInjectedInto(parent);
3636  };
3637  BindingInWhenOnSyntax.prototype.whenParentNamed = function (name) {
3638    return this._bindingWhenSyntax.whenParentNamed(name);
3639  };
3640  BindingInWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {
3641    return this._bindingWhenSyntax.whenParentTagged(tag, value);
3642  };
3643  BindingInWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
3644    return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);
3645  };
3646  BindingInWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {
3647    return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);
3648  };
3649  BindingInWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {
3650    return this._bindingWhenSyntax.whenAnyAncestorNamed(name);
3651  };
3652  BindingInWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
3653    return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);
3654  };
3655  BindingInWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {
3656    return this._bindingWhenSyntax.whenNoAncestorNamed(name);
3657  };
3658  BindingInWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
3659    return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);
3660  };
3661  BindingInWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
3662    return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);
3663  };
3664  BindingInWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {
3665    return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);
3666  };
3667  BindingInWhenOnSyntax.prototype.onActivation = function (handler) {
3668    return this._bindingOnSyntax.onActivation(handler);
3669  };
3670  return BindingInWhenOnSyntax;
3671}();
3672exports.BindingInWhenOnSyntax = BindingInWhenOnSyntax;
3673
3674/***/ }),
3675
3676/***/ 2486:
3677/***/ ((module, __webpack_exports__, __webpack_require__) => {
3678
3679"use strict";
3680__webpack_require__.r(__webpack_exports__);
3681/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3682/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3683/* harmony export */ });
3684/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
3685/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3686/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
3687/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3688// Imports
3689
3690
3691var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3692// Module
3693___CSS_LOADER_EXPORT___.push([module.id, `.pricestak-post.less-whitespace[data-v-520844d0]:empty{padding-top:0}`, ""]);
3694// Exports
3695/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3696
3697
3698/***/ }),
3699
3700/***/ 2491:
3701/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3702
3703"use strict";
3704/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3705/* harmony export */   _: () => (/* binding */ SrpLayoutType)
3706/* harmony export */ });
3707var SrpLayoutType;
3708(function (SrpLayoutType) {
3709    SrpLayoutType[SrpLayoutType["List"] = 0] = "List";
3710    SrpLayoutType[SrpLayoutType["Grid"] = 1] = "Grid";
3711})(SrpLayoutType || (SrpLayoutType = {}));
3712
3713
3714/***/ }),
3715
3716/***/ 2564:
3717/***/ ((module, __webpack_exports__, __webpack_require__) => {
3718
3719"use strict";
3720__webpack_require__.r(__webpack_exports__);
3721/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3722/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3723/* harmony export */ });
3724/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
3725/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3726/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
3727/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3728// Imports
3729
3730
3731var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3732// Module
3733___CSS_LOADER_EXPORT___.push([module.id, `.card-skeleton-image[data-v-72f833e6]{display:block;width:100%;height:auto;grid-area:1/1/-1/-1}`, ""]);
3734// Exports
3735/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3736
3737
3738/***/ }),
3739
3740/***/ 2620:
3741/***/ ((module, __webpack_exports__, __webpack_require__) => {
3742
3743"use strict";
3744__webpack_require__.r(__webpack_exports__);
3745/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3746/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3747/* harmony export */ });
3748/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
3749/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3750/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
3751/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3752// Imports
3753
3754
3755var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3756// Module
3757___CSS_LOADER_EXPORT___.push([module.id, `.rv-features[data-v-5de90bdd]{padding:0 20px}.rv-specs[data-v-5de90bdd]{display:flex;justify-content:space-between;gap:1rem 2rem;border-top:1px solid #dcdce2}.rv-specs--status[data-v-5de90bdd]{align-items:center;padding:1rem 0}@media(min-width: 1533px){.list-view .rv-specs--status[data-v-5de90bdd]{padding:20px 0 1rem;border-top:none}}.rv-specs--status[data-v-5de90bdd] .vehicle-status{font-size:1.2rem !important;line-height:1.2;padding:.2rem .5rem;min-height:2rem}.rv-specs--details[data-v-5de90bdd]{flex-direction:column;row-gap:1rem;padding:1rem 0 20px}@media(min-width: 992px){.list-view .rv-specs--details[data-v-5de90bdd]{row-gap:1.5rem}}@media(min-width: 1533px){.list-view .rv-specs--details[data-v-5de90bdd]{row-gap:2.4rem}}.rv-location[data-v-5de90bdd]{display:flex;align-items:center;justify-content:space-between;column-gap:.4rem;font-size:1.2rem;font-weight:700;line-height:1.2;min-height:2rem;background-color:#333;color:#fff;padding:.2rem .7rem .2rem .4rem}.rv-location--rounded[data-v-5de90bdd]{border-radius:.4rem}.rv-location-icon[data-v-5de90bdd]{display:grid;grid-template-areas:"icon";grid-template-columns:1fr;grid-template-rows:1fr;mask-image:var(--svg-url);mask-size:contain;mask-repeat:no-repeat}.rv-location-icon__image[data-v-5de90bdd]{grid-area:icon}.rv-location-icon[data-v-5de90bdd]::after{content:"";display:block;background-color:#fff;mix-blend-mode:screen;grid-area:icon;width:100%;height:100%}.rv-location-icon__image[data-v-5de90bdd]{width:1.2rem;height:1.2rem}.rv-details[data-v-5de90bdd]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem}.rv-floorplan[data-v-5de90bdd]{display:flex;flex-direction:column;row-gap:.5rem}.rv-floorplan__image[data-v-5de90bdd]{width:100%;height:auto;max-width:100%}.rv-floorplan__link[data-v-5de90bdd]{font-size:1.2rem;line-height:1.2}`, ""]);
3758// Exports
3759/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3760
3761
3762/***/ }),
3763
3764/***/ 2719:
3765/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3766
3767"use strict";
3768
3769
3770Object.defineProperty(exports, "__esModule", ({
3771  value: true
3772}));
3773exports.postConstruct = void 0;
3774var ERRORS_MSGS = __webpack_require__(7718);
3775var METADATA_KEY = __webpack_require__(4725);
3776var metadata_1 = __webpack_require__(8390);
3777function postConstruct() {
3778  return function (target, propertyKey, descriptor) {
3779    var metadata = new metadata_1.Metadata(METADATA_KEY.POST_CONSTRUCT, propertyKey);
3780    if (Reflect.hasOwnMetadata(METADATA_KEY.POST_CONSTRUCT, target.constructor)) {
3781      throw new Error(ERRORS_MSGS.MULTIPLE_POST_CONSTRUCT_METHODS);
3782    }
3783    Reflect.defineMetadata(METADATA_KEY.POST_CONSTRUCT, metadata, target.constructor);
3784  };
3785}
3786exports.postConstruct = postConstruct;
3787
3788/***/ }),
3789
3790/***/ 2749:
3791/***/ ((module, __webpack_exports__, __webpack_require__) => {
3792
3793"use strict";
3794__webpack_require__.r(__webpack_exports__);
3795/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3796/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3797/* harmony export */ });
3798/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
3799/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3800/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
3801/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3802// Imports
3803
3804
3805var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3806// Module
3807___CSS_LOADER_EXPORT___.push([module.id, `.dropdown-button--copy[data-v-12e549a4]::after{mask-image:var(--copy-icon-url);-webkit-mask-image:var(--copy-icon-url)}.dropdown-button--share[data-v-12e549a4]::after{mask-image:var(--share-icon-url);-webkit-mask-image:var(--share-icon-url)}.dropdown-button--print[data-v-12e549a4]::after{mask-image:var(--print-icon-url);-webkit-mask-image:var(--print-icon-url)}.vehicle-dropdown__action--details[data-v-12e549a4]::after{mask-image:var(--details-icon-url);-webkit-mask-image:var(--details-icon-url)}`, ""]);
3808// Exports
3809/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3810
3811
3812/***/ }),
3813
3814/***/ 2770:
3815/***/ (() => {
3816
3817"use strict";
3818
3819
3820
3821/***/ }),
3822
3823/***/ 2781:
3824/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
3825
3826"use strict";
3827/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3828/* harmony export */   $: () => (/* binding */ JQueryHelper)
3829/* harmony export */ });
3830/*
3831*Any changes to this file will need to be made to the legacy file as well.
3832*/
3833class JQueryHelper {
3834    static SafeApplyPopover(element, options) {
3835        // Ensure jQuery and popover is loaded before running popover
3836        if (typeof jQuery != "undefined" && typeof jQuery.fn['popover'] === "function") {
3837            return jQuery(element).popover(options);
3838        }
3839        else {
3840            console.warn("jQuery popover is not defined. This may be a third party script issue");
3841            return jQuery();
3842        }
3843    }
3844    static SafeApplyTooltip(element) {
3845        // Ensure jQuery and tooltip is loaded before running tooltip
3846        if (typeof jQuery != "undefined" && typeof jQuery.fn['tooltip'] === "function") {
3847            const $element = jQuery(element);
3848            $element.tooltip();
3849            return;
3850        }
3851        else {
3852            console.warn("jQuery tooltip is not defined. This may be a third party script issue");
3853            return;
3854        }
3855    }
3856    static SafeApplyCollapse(element, options) {
3857        // Ensure jQuery and collapse is loaded before running collapse
3858        if (typeof jQuery != "undefined" && typeof jQuery.fn['collapse'] === "function") {
3859            const $element = jQuery(element);
3860            $element.collapse(options);
3861            return;
3862        }
3863        else {
3864            console.warn("jQuery collapse is not defined. This may be a third party script issue");
3865            return;
3866        }
3867    }
3868}
3869
3870
3871/***/ }),
3872
3873/***/ 2908:
3874/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3875
3876// style-loader: Adds some css to the DOM by adding a <style> tag
3877
3878// load the styles
3879var content = __webpack_require__(9673);
3880if(content.__esModule) content = content.default;
3881if(typeof content === 'string') content = [[module.id, content, '']];
3882if(content.locals) module.exports = content.locals;
3883// add the styles to the DOM
3884var add = (__webpack_require__(8449)/* ["default"] */ .A)
3885var update = add("d34465d4", content, false, {});
3886// Hot Module Replacement
3887if(false) {}
3888
3889/***/ }),
3890
3891/***/ 2966:
3892/***/ ((module, __webpack_exports__, __webpack_require__) => {
3893
3894"use strict";
3895__webpack_require__.r(__webpack_exports__);
3896/* harmony export */ __webpack_require__.d(__webpack_exports__, {
3897/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
3898/* harmony export */ });
3899/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
3900/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
3901/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
3902/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
3903// Imports
3904
3905
3906var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
3907// Module
3908___CSS_LOADER_EXPORT___.push([module.id, `.window-sticker-button[data-v-7ddcc9ee]{border-radius:5px}`, ""]);
3909// Exports
3910/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
3911
3912
3913/***/ }),
3914
3915/***/ 3042:
3916/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3917
3918// style-loader: Adds some css to the DOM by adding a <style> tag
3919
3920// load the styles
3921var content = __webpack_require__(6737);
3922if(content.__esModule) content = content.default;
3923if(typeof content === 'string') content = [[module.id, content, '']];
3924if(content.locals) module.exports = content.locals;
3925// add the styles to the DOM
3926var add = (__webpack_require__(8449)/* ["default"] */ .A)
3927var update = add("062c3015", content, false, {});
3928// Hot Module Replacement
3929if(false) {}
3930
3931/***/ }),
3932
3933/***/ 3091:
3934/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3935
3936"use strict";
3937
3938
3939Object.defineProperty(exports, "__esModule", ({
3940  value: true
3941}));
3942exports.optional = void 0;
3943var METADATA_KEY = __webpack_require__(4725);
3944var metadata_1 = __webpack_require__(8390);
3945var decorator_utils_1 = __webpack_require__(40);
3946function optional() {
3947  return function (target, targetKey, index) {
3948    var metadata = new metadata_1.Metadata(METADATA_KEY.OPTIONAL_TAG, true);
3949    if (typeof index === "number") {
3950      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
3951    } else {
3952      decorator_utils_1.tagProperty(target, targetKey, metadata);
3953    }
3954  };
3955}
3956exports.optional = optional;
3957
3958/***/ }),
3959
3960/***/ 3104:
3961/***/ ((__unused_webpack_module, exports) => {
3962
3963"use strict";
3964
3965
3966Object.defineProperty(exports, "__esModule", ({
3967  value: true
3968}));
3969exports.Plan = void 0;
3970var Plan = function () {
3971  function Plan(parentContext, rootRequest) {
3972    this.parentContext = parentContext;
3973    this.rootRequest = rootRequest;
3974  }
3975  return Plan;
3976}();
3977exports.Plan = Plan;
3978
3979/***/ }),
3980
3981/***/ 3108:
3982/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3983
3984// style-loader: Adds some css to the DOM by adding a <style> tag
3985
3986// load the styles
3987var content = __webpack_require__(2173);
3988if(content.__esModule) content = content.default;
3989if(typeof content === 'string') content = [[module.id, content, '']];
3990if(content.locals) module.exports = content.locals;
3991// add the styles to the DOM
3992var add = (__webpack_require__(8449)/* ["default"] */ .A)
3993var update = add("795d0418", content, false, {});
3994// Hot Module Replacement
3995if(false) {}
3996
3997/***/ }),
3998
3999/***/ 3188:
4000/***/ (() => {
4001
4002"use strict";
4003
4004
4005
4006/***/ }),
4007
4008/***/ 3239:
4009/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
4010
4011"use strict";
4012
4013// EXPORTS
4014__webpack_require__.d(__webpack_exports__, {
4015  E: () => (/* binding */ doIocContainer)
4016});
4017
4018// NAMESPACE OBJECT: ./src/components/inventorysearch/iInventoryWasabi.ts
4019var iInventoryWasabi_namespaceObject = {};
4020__webpack_require__.r(iInventoryWasabi_namespaceObject);
4021
4022// NAMESPACE OBJECT: ./src/components/inventorysearch/iWasabiFilterState.ts
4023var iWasabiFilterState_namespaceObject = {};
4024__webpack_require__.r(iWasabiFilterState_namespaceObject);
4025
4026// EXTERNAL MODULE: ./node_modules/inversify/lib/inversify.js
4027var inversify = __webpack_require__(260);
4028// EXTERNAL MODULE: ./src/types/types.ts
4029var types = __webpack_require__(5644);
4030// EXTERNAL MODULE: ./src/services/toggles/toggleService.ts + 1 modules
4031var toggleService = __webpack_require__(7363);
4032// EXTERNAL MODULE: ./src/services/translations/translationService.ts + 4 modules
4033var translationService = __webpack_require__(9);
4034// EXTERNAL MODULE: ./src/components/hideableScrollbar/hideableScrollbar.ts
4035var hideableScrollbar = __webpack_require__(6839);
4036;// ./src/components/searchFilter/searchFilterButton.ts
4037class SearchFilterButton {
4038    constructor() {
4039        this.filterStateStorageKey = "CosmosFilterPanelState";
4040        this.expandFilterPanelByDefault = false;
4041        this.initialize();
4042        //hide desktop filter panel by default, but only do this
4043        // when the mod is enabled or it'll break the old version
4044        // remove the querySelector check once the MOD is permanent
4045        if (document.querySelector(".srp-filter--mod")) {
4046            this.initializeFilterPanelDesktop();
4047        }
4048    }
4049    initialize() {
4050        var _a, _b, _c, _d, _e, _f;
4051        this.filterPanel = document.getElementById("filterPanel");
4052        // searchFilterButton does not exist in MRPs
4053        this.filterPanelButton = document.getElementById("searchFilterButton");
4054        this.wasabiSrp = document.querySelector(".wasabi_srp");
4055        this.srpResults = document.querySelector(".srp-results");
4056        this.expandFilterPanelByDefault = ((_c = (_b = (_a = this.filterPanel) === null || _a === void 0 ? void 0 : _a.dataset) === null || _b === void 0 ? void 0 : _b.expandFilterPanelByDefault) === null || _c === void 0 ? void 0 : _c.toLowerCase()) === 'true';
4057        this.currentPageName = window.location.href.split('?')[0];
4058        this.setupFilterPanelState();
4059        if (this.filterPanelButton && !((_d = this.filterPanelButton.dataset) === null || _d === void 0 ? void 0 : _d.doInitialized)) {
4060            (_e = this.filterPanelButton) === null || _e === void 0 ? void 0 : _e.addEventListener("click", () => {
4061                this.toggleFilterPanelDesktop();
4062            });
4063            this.filterPanelButton.dataset.doInitialized = "true";
4064        }
4065        ;
4066        const filterButtonClose = document.getElementById("filterButtonClose");
4067        if (filterButtonClose && !((_f = filterButtonClose.dataset) === null || _f === void 0 ? void 0 : _f.doInitialized)) {
4068            filterButtonClose.addEventListener("click", () => {
4069                this.toggleFilterPanelDesktop();
4070            });
4071            filterButtonClose.dataset.doInitialized = "true";
4072        }
4073        ;
4074    }
4075    setupFilterPanelState() {
4076        const currentState = localStorage.getItem(this.filterStateStorageKey);
4077        if (currentState) {
4078            this.filterPanelState = new Set(JSON.parse(currentState));
4079        }
4080        else {
4081            this.filterPanelState = new Set();
4082            localStorage.setItem(this.filterStateStorageKey, JSON.stringify(Array.from(this.filterPanelState)));
4083        }
4084    }
4085    initializeFilterPanelDesktop() {
4086        if (this.canToggleFilterPanelDesktop()) {
4087            if (this.expandFilterPanelByDefault || this.filterPanelState.has(this.currentPageName)) {
4088                this.showFilterPanel();
4089            }
4090            else {
4091                this.hideFilterPanel();
4092            }
4093        }
4094    }
4095    toggleFilterPanelDesktop() {
4096        var _a;
4097        if (this.canToggleFilterPanelDesktop()) {
4098            if ((_a = this.filterPanel) === null || _a === void 0 ? void 0 : _a.classList.contains("hidden")) {
4099                this.showFilterPanel();
4100            }
4101            else {
4102                this.hideFilterPanel();
4103            }
4104            this.toggleFilterState();
4105        }
4106    }
4107    canToggleFilterPanelDesktop() {
4108        //if the mobile panel is open then let the mobile mtheods handle open/close
4109        return !this.isMobileFilterPanel() && this.filterPanel !== null;
4110    }
4111    isMobileFilterPanel() {
4112        const mobileFilterToggleButton = document.querySelector(".filter-modal-toggle");
4113        if (mobileFilterToggleButton) {
4114            return window.getComputedStyle(mobileFilterToggleButton).display !== "none";
4115        }
4116        return false;
4117    }
4118    showFilterPanel() {
4119        var _a, _b, _c, _d;
4120        (_a = this.filterPanel) === null || _a === void 0 ? void 0 : _a.classList.remove("hidden");
4121        (_b = this.filterPanelButton) === null || _b === void 0 ? void 0 : _b.classList.add("hidden");
4122        if (this.wasabiSrp) {
4123            (_c = this.wasabiSrp) === null || _c === void 0 ? void 0 : _c.classList.remove("wasabi_srp--no-grid");
4124            (_d = this.srpResults) === null || _d === void 0 ? void 0 : _d.classList.remove("srp-results--no-grid");
4125        }
4126    }
4127    hideFilterPanel() {
4128        var _a, _b, _c, _d;
4129        (_a = this.filterPanel) === null || _a === void 0 ? void 0 : _a.classList.add("hidden");
4130        (_b = this.filterPanelButton) === null || _b === void 0 ? void 0 : _b.classList.remove("hidden");
4131        if (this.wasabiSrp) {
4132            (_c = this.wasabiSrp) === null || _c === void 0 ? void 0 : _c.classList.add("wasabi_srp--no-grid");
4133            (_d = this.srpResults) === null || _d === void 0 ? void 0 : _d.classList.add("srp-results--no-grid");
4134        }
4135    }
4136    toggleFilterState() {
4137        if (!this.filterPanelState.delete(this.currentPageName)) {
4138            this.filterPanelState.add(this.currentPageName);
4139        }
4140        localStorage.setItem(this.filterStateStorageKey, JSON.stringify(Array.from(this.filterPanelState)));
4141    }
4142}
4143
4144;// ./src/components/searchFilter/filterPanelHeader.ts
4145class FilterPanelHeader {
4146    constructor() {
4147        // Use a closure to prevent polluting global scope with this script
4148        this.CLEAR_ALL_ELEMENT_ID = "filter-panel-header-clear-all";
4149        this.FILTER_STATE_CHANGE_EVENT = "filter-number-change";
4150        this.FILTER_STATE_INIT_EVENT = "filter-number-init";
4151        this.initialize();
4152    }
4153    initialize() {
4154        var clearAllElement = this.getClearAllElement();
4155        var filterPillListContainer = document.querySelector('.srp-selected-filters--pill-list');
4156        this.addFilterStateListeners(clearAllElement, filterPillListContainer);
4157        this.setInitialVisibility(clearAllElement);
4158        this.setHrefToCurrentPathname(clearAllElement);
4159        this.addHoverTextToTruncatedFilterPills(filterPillListContainer);
4160    }
4161    getClearAllElement() {
4162        return document.getElementById(this.CLEAR_ALL_ELEMENT_ID);
4163    }
4164    // Set the href on an element the path without the query string (e.g. /searchne
4164w.aspx)
4165    setHrefToCurrentPathname(clearAllElement) {
4166        if (clearAllElement) {
4167            clearAllElement.href = window.location.pathname;
4168        }
4169    }
4170    addHoverTextToTruncatedFilterPills(filterPillListContainer) {
4171        if (!filterPillListContainer) {
4172            return;
4173        }
4174        var filterPillElements = filterPillListContainer.querySelectorAll(".pill-list__item-text");
4175        Array.from(filterPillElements).forEach((filterPillElement) => {
4176            if (filterPillElement.offsetWidth < filterPillElement.scrollWidth) {
4177                filterPillElement.setAttribute('title', filterPillElement.textContent);
4178            }
4179        });
4180    }
4181    addFilterStateListeners(clearAllElement, filterPillListContainer) {
4182        document.addEventListener(this.FILTER_STATE_INIT_EVENT, (event) => {
4183            this.setClearAllBtnStyling(event, clearAllElement, filterPillListContainer);
4184        });
4185        document.addEventListener(this.FILTER_STATE_CHANGE_EVENT, (event) => {
4186            this.setClearAllBtnStyling(event, clearAllElement, filterPillListContainer);
4187        });
4188    }
4189    setClearAllBtnStyling(event, clearAllElement, filterPillListContainer) {
4190        var filterPillsExist = filterPillListContainer && filterPillListContainer.children.length > 0;
4191        var selectedFiltersExist = event.detail > 0;
4192        if (filterPillsExist || selectedFiltersExist) {
4193            clearAllElement === null || clearAllElement === void 0 ? void 0 : clearAllElement.classList.remove("hidden");
4194        }
4195        else {
4196            clearAllElement === null || clearAllElement === void 0 ? void 0 : clearAllElement.classList.add("hidden");
4197        }
4198    }
4199    // Make the clear all button active by default if there's a query string
4200    setInitialVisibility(clearAllElement) {
4201        const noFiltersEl = document.querySelector("#no-filters-text");
4202        if (noFiltersEl) {
4203            clearAllElement === null || clearAllElement === void 0 ? void 0 : clearAllElement.classList.add("hidden");
4204        }
4205    }
4206}
4207
4208;// ./src/components/searchResultsPage/searchFilters/filterPanel/panelToggle.ts
4209class FilterPanelToggle {
4210    static Toggle(element) {
4211        var _a;
4212        const panelContentSlideinClass = "panel__content--slide-in";
4213        const panelExpandedClass = "panel--expanded";
4214        const panelExpandedParentClass = "filter-expanded";
4215        const displayNoneClass = "no-display";
4216        const activeButton = element;
4217        const activePanel = activeButton.closest(".panel");
4218        const panelParent = activeButton.closest("#filter-panels");
4219        const filterPanelContentButton = activePanel.querySelector(".panel__content-btn");
4220        const filterPanelToggleButton = activePanel.querySelector(".panel-toggle__label-btn");
4221        const activePanelContent = activePanel.querySelector(".panel__content");
4222        activePanel.classList.toggle(panelExpandedClass);
4223        (_a = panelParent === null || panelParent === void 0 ? void 0 : panelParent.classList) === null || _a === void 0 ? void 0 : _a.toggle(panelExpandedParentClass);
4224        activePanelContent.classList.toggle(panelContentSlideinClass);
4225        // There are two panel buttons - hide the one that is not visible
4226        filterPanelToggleButton.classList.toggle(displayNoneClass);
4227        filterPanelContentButton.classList.toggle(displayNoneClass);
4228        activePanel.parentElement.scrollTo({ top: 0, behavior: "smooth" });
4229    }
4230}
4231
4232;// ./src/components/searchResultsPage/searchFilters/filterPanel/makeFilter.ts
4233
4234class MakeFilterPanel {
4235    constructor() {
4236        this._makes = [];
4237        this.makeModelNavElement = document.querySelector("#collapse-options-make-expanded #model-btn");
4238        this.addMakeFilteringEventHandler("click");
4239        this.setupMakeModelNavigation();
4240    }
4241    addMakeFilteringEventHandler(clickEvent) {
4242        const searchParameters = new URLSearchParams(window.location.search);
4243        //handle case sensitivity issues in the param name
4244        const caseInsensitiveParams = new URLSearchParams();
4245        for (const [name, value] of searchParameters) {
4246            caseInsensitiveParams.append(name.toLowerCase(), value);
4247        }
4248        if (caseInsensitiveParams.has("make")) {
4249            const rawMakeValue = caseInsensitiveParams.get("make");
4250            if (rawMakeValue.indexOf(",")) {
4251                const splitMakes = rawMakeValue.split(",");
4252                splitMakes.forEach((x) => this._makes.push(x));
4253            }
4254            else {
4255                this._makes.push(rawMakeValue);
4256            }
4257            this.toggleMakeModelNavElement();
4258            this.hideElementsOnMakeFilterSelectionChange();
4259            this.showElementsOnMakeFilterSelectionChange();
4260        }
4261        const makeCheckboxes = Array.from(document.querySelectorAll('[data-make][type="checkbox"]'));
4262        const makeFilterPills = Array.from(document.querySelectorAll('button[data-key="Make"]'));
4263        const inputsWithMakeData = makeCheckboxes.concat(makeFilterPills);
4264        inputsWithMakeData.forEach((checkbox) => {
4265            checkbox.addEventListener(clickEvent, (event) => {
4266                this.updateMakesArray(event);
4267                if (this._makes.length === 0) {
4268                    return this.resetOnEmptyMakesFilterSelection();
4269                }
4270                this.uncheckMakeFilterInputsOnMakeDeselect();
4271                this.collapseTrimPanelsOnMakeDeselect();
4272                this.hideElementsOnMakeFilterSelectionChange();
4273                this.showElementsOnMakeFilterSelectionChange();
4274            });
4275        });
4276    }
4277    showElementsOnMakeFilterSelectionChange() {
4278        const targetsToShow = Array.from(document.querySelectorAll(`[data-make-filter]`)).filter((x) => this._makes.some((make) => x.dataset.makeFilter === make));
4279        targetsToShow.forEach((targetElement) => {
4280            targetElement.classList.remove("hidden_filter");
4281        });
4282    }
4283    hideElementsOnMakeFilterSelectionChange() {
4284        const targetsToHide = Array.from(document.querySelectorAll(`[data-make-filter]`)).filter((x) => !this._makes.some((make) => x.dataset.makeFilter === make));
4285        targetsToHide.forEach((targetElement) => {
4286            targetElement.classList.add("hidden_filter");
4287        });
4288    }
4289    updateMakesArray(event) {
4290        const checkbox = event.target;
4291        const checkboxMake = checkbox.dataset.make;
4292        const optionChecked = checkbox.checked;
4293        if (optionChecked) {
4294            this._makes.push(checkboxMake);
4295        }
4296        else {
4297            this._makes.splice(this._makes.indexOf(checkboxMake), 1);
4298        }
4299        this.toggleMakeModelNavElement();
4300    }
4301    resetOnEmptyMakesFilterSelection() {
4302        Array.from(document.querySelectorAll(`[data-make-filter]`)).forEach((targetElement) => {
4303            targetElement.classList.remove("hidden_filter");
4304        });
4305        this.uncheckMakeFilterInputsOnMakeDeselect();
4306        this.collapseTrimPanelsOnMakeDeselect();
4307        return;
4308    }
4309    collapseTrimPanelsOnMakeDeselect() {
4310        const targetsToCollapse = Array.from(document.querySelectorAll("[data-make-filter-collapse]")).filter((x) => !this._makes.some((make) => x.dataset.makeFilterCollapse === make));
4311        targetsToCollapse.forEach((x) => {
4312            x.classList.remove("in");
4313        });
4314    }
4315    uncheckMakeFilterInputsOnMakeDeselect() {
4316        const targetsToUncheck = Array.from(document.querySelectorAll(`[data-make-filter-input]:checked`)).filter((x) => !this._makes.some((make) => x.dataset.makeFilterInput === make));
4317        targetsToUncheck.forEach((targetElement) => {
4318            targetElement.checked = false;
4319            targetElement.dispatchEvent(new Event("change"));
4320            document.dispatchEvent(new Event("filter-number-change"));
4321        });
4322    }
4323    setupMakeModelNavigation() {
4324        if (!this.makeModelNavElement) {
4325            return;
4326        }
4327        const makeCollapse = document.getElementById("collapse-options-make");
4328        const modelCollapse = document.getElementById("collapse-options-model");
4329        if (!makeCollapse) {
4330            return;
4331        }
4332        if (!modelCollapse) {
4333            this.makeModelNavElement.hidden = true;
4334            this.makeModelNavElement.classList.add("hidden");
4335            return;
4336        }
4337        this.makeModelNavElement.addEventListener("click", () => {
4338            FilterPanelToggle.Toggle(makeCollapse);
4339            FilterPanelToggle.Toggle(modelCollapse);
4340        });
4341    }
4342    toggleMakeModelNavElement() {
4343        if (!this.makeModelNavElement) {
4344            return;
4345        }
4346        if (this._makes.length > 0) {
4347            this.makeModelNavElement.removeAttribute("disabled");
4348        }
4349        else {
4350            this.makeModelNavElement.setAttribute("disabled", "true");
4351        }
4352    }
4353}
4354
4355;// ./src/components/searchResultsPage/searchFilters/filterPanel/modelTrimFilterPanel.ts
4356class ModelTrimFilterPanel {
4357    constructor() {
4358        this.initialize();
4359    }
4360    initialize() {
4361        this.addModelTrimFilterEventListeners();
4362    }
4363    showAllTrims(collapseModelId) {
4364        var _a;
4365        const trimsList = document.getElementById(collapseModelId);
4366        Array.from((_a = trimsList === null || trimsList === void 0 ? void 0 : trimsList.firstElementChild) === null || _a === void 0 ? void 0 : _a.children).forEach(trim => {
4367            trim.removeAttribute("hidden");
4368        });
4369    }
4370    addModelTrimFilterEventListeners() {
4371        const filterPanel = document.getElementById("filterPanel");
4372        const allTrimsCheckboxes = filterPanel.querySelectorAll("[id^=filter][id$=AllTrims]");
4373        const trimCheckboxes = filterPanel.querySelectorAll("[data-filter-type=trim]");
4374        const modelCheckboxes = filterPanel.querySelectorAll("[data-filter-type=model]");
4375        modelCheckboxes.forEach((modelCheckbox) => {
4376            modelCheckbox.addEventListener("change", (event) => {
4377                const target = event.target;
4378                this.toggleAllTrimsCheckboxOnModelCheck(target, filterPanel);
4379            });
4380        });
4381        trimCheckboxes.forEach((trimCheckbox) => {
4382            trimCheckbox.addEventListener("change", (event) => {
4383                const target = event.target;
4384                this.toggleOffAllTrimsCheckbox(target);
4385                if (!target.checked) {
4386                    this.getTrimCheckStatus(target);
4387                }
4388            });
4389        });
4390        allTrimsCheckboxes.forEach((checkbox) => {
4391            checkbox.addEventListener("change", (event) => {
4392                const target = event.target;
4393                if (target.checked) {
4394                    checkbox.classList.remove("dash");
4395                    target.disabled = true;
4396                    this.toggleOffAllModelTrims(target);
4397                }
4398            });
4399        });
4400    }
4401    toggleAllTrimsCheckboxOnModelCheck(element, location) {
4402        const allTrimsCheckbox = element.parentElement.nextElementSibling.querySelector("[id$=AllTrims]");
4403        if (allTrimsCheckbox) {
4404            allTrimsCheckbox.checked = element.checked;
4405            allTrimsCheckbox.dispatchEvent(new Event("change"));
4406            if (element.checked) {
4407                allTrimsCheckbox.classList.remove("dash");
4408            }
4409            if (allTrimsCheckbox.checked) {
4410                allTrimsCheckbox.disabled = true;
4411            }
4412            location.dispatchEvent(new Event("filter-number-change"));
4413            return;
4414        }
4415    }
4416    toggleOffAllTrimsCheckbox(element) {
4417        const trimCheckboxesContainer = element.closest(".collapse-options-sub");
4418        if (trimCheckboxesContainer) {
4419            const allTrimsCheckbox = trimCheckboxesContainer.querySelector("[id$=AllTrims]");
4420            if (allTrimsCheckbox && element.checked) {
4421                allTrimsCheckbox.disabled = false;
4422                allTrimsCheckbox.checked = false;
4423                allTrimsCheckbox.classList.add("dash");
4424                allTrimsCheckbox.dispatchEvent(new Event("change"));
4425            }
4426        }
4427    }
4428    // If the user unchecks all the trims re-check the "All Trims" checkbox
4429    getTrimCheckStatus(element) {
4430        const trimsContainer = element.closest(".collapse-options-sub");
4431        const allTrimCheckboxes = Array.from(trimsContainer.querySelectorAll("[data-filter-type=trim]"));
4432        const allTrimsCheckbox = trimsContainer.querySelector("[id$=AllTrims]");
4433        let anyCheckBoxesChecked = allTrimCheckboxes.some((checkbox) => {
4434            return checkbox.checked === true;
4435        });
4436        if (anyCheckBoxesChecked) {
4437            return;
4438        }
4439        if (allTrimsCheckbox) {
4440            allTrimsCheckbox.checked = true;
4441            allTrimsCheckbox.classList.remove("dash");
4442            allTrimsCheckbox.disabled = true;
4443        }
4444        trimsContainer.dispatchEvent(new Event("filter-number-change"));
4445    }
4446    toggleOffAllModelTrims(element) {
4447        const trimCheckboxesContainer = element.closest(".collapse-options-sub");
4448        if (trimCheckboxesContainer) {
4449            const checkedModelTrims = trimCheckboxesContainer.querySelectorAll("input:checked:not([id$=AllTrims])");
4450            checkedModelTrims.forEach((checkbox) => {
4451                checkbox.checked = false;
4452                trimCheckboxesContainer.dispatchEvent(new Event("filter-number-change"));
4453            });
4454        }
4455    }
4456}
4457
4458;// ./src/components/searchResultsPage/searchFilters/selectedFilters/selectedFilters.ts
4459class SelectedFilters {
4460    constructor() {
4461        SelectedFilters._maxHeight = 120;
4462        this._pillListElem = document.querySelector('[data-pill-list]');
4463        if (this._pillListElem) {
4464            const isMobile = this.filterPillsInit();
4465            if (isMobile) {
4466                this.moreFiltersMobile();
4467            }
4468            else {
4469                this.moreFiltersSetup();
4470            }
4471            this.addViewportResizeListener();
4472        }
4473    }
4474    moreFiltersSetup() {
4475        const pillListElem = document.querySelector('[data-pill-list]');
4476        const computedStyle = getComputedStyle(pillListElem);
4477        const pillListHeight = (pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.clientHeight) - (parseFloat(computedStyle.paddingTop) + parseFloat(computedStyle.paddingBottom));
4478        if (pillListHeight === SelectedFilters._currentPillsListHeight && SelectedFilters._areFiltersHidden) {
4479            return;
4480        }
4481        var hiddenFilterPills = this.moreFiltersHide(pillListElem, pillListHeight);
4482        this.updateHiddenFiltersCount(hiddenFilterPills[1]);
4483        let viewMoreElem = document.querySelector("[data-pill-hidden]");
4484        if (viewMoreElem && SelectedFilters._areFiltersHidden) {
4485            viewMoreElem.classList.remove("hidden");
4486            viewMoreElem.dataset.pillHidden = '0';
4487        }
4488        else if (viewMoreElem) {
4489            viewMoreElem.dataset.pillHidden = '1';
4490        }
4491        this.moreFiltersOnClick(viewMoreElem.querySelector("button"), hiddenFilterPills[0], pillListElem);
4492    }
4493    moreFiltersHide(pillListElem, pillListHeight) {
4494        let indexToHide = -1;
4495        if (pillListHeight > SelectedFilters._maxHeight) {
4496            for (let i = 0; i < (pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.childElementCount); i++) {
4497                const elem = pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.children.item(i);
4498                // Note that the "view more" pill is included in this list of children. We don't want to count that pill in our calculations.
4499                if (elem.offsetTop >= SelectedFilters._maxHeight && i !== (pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.childElementCount) - 1) {
4500                    indexToHide = i - 1;
4501                    break;
4502                }
4503            }
4504        }
4505        SelectedFilters._currentPillsListHeight = pillListHeight;
4506        SelectedFilters._areFiltersHidden = !(indexToHide === -1);
4507        let hiddenFiltersCount = 0;
4508        let hiddenFilterPills = [];
4509        if (SelectedFilters._areFiltersHidden) {
4510            for (let i = indexToHide; i < (pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.childElementCount); i++) {
4511                (pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.children.item(i)).classList.add("hidden");
4512                hiddenFiltersCount++;
4513                hiddenFilterPills.push(pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.children.item(i));
4514            }
4515        }
4516        pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.classList.add("collapsed");
4517        var hiddenFilterPillsTuple = [hiddenFilterPills, hiddenFiltersCount - 1];
4518        return hiddenFilterPillsTuple;
4519    }
4520    updateHiddenFiltersCount(count) {
4521        const countSpan = document.querySelector("[data-minimized-filters-count='0']");
4522        countSpan.innerHTML = count.toString();
4523    }
4524    moreFiltersOnClick(viewMoreBtn, hiddenFilterPills, pillListElem) {
4525        const clickEvent = 'click';
4526        viewMoreBtn.addEventListener(clickEvent, event => {
4527            pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.classList.replace("collapsed", "expanded");
4528            hiddenFilterPills.forEach(pill => {
4529                pill.classList.remove("hidden");
4530            });
4531            const viewMoreElem = viewMoreBtn.closest("li");
4532            viewMoreElem.classList.add("hidden");
4533            this.addHoverTextToTruncatedFilterPills();
4534        });
4535    }
4536    addHoverTextToTruncatedFilterPills() {
4537        var filterPillElements = document.querySelectorAll(".srp-selected-filters--pill-list .pill-list__item-text");
4538        filterPillElements.forEach((filterPillElement) => {
4539            if (filterPillElement.offsetWidth < filterPillElement.scrollWidth) {
4540                filterPillElement.setAttribute('title', filterPillElement.textContent);
4541            }
4542        });
4543    }
4544    moreFiltersMobile() {
4545        const pillListElem = document.querySelector('[data-pill-list]');
4546        var hiddenPills = pillListElem.querySelectorAll(".hidden");
4547        hiddenPills.forEach(elem => {
4548            elem.classList.remove("hidden");
4549        });
4550        let viewMoreElem = document.querySelector("[data-pill-hidden]");
4551        viewMoreElem.dataset.pillHidden = "1";
4552        SelectedFilters._areFiltersHidden = false;
4553    }
4554    addViewportResizeListener() {
4555        // Change pill list styling when screen changes between mobile and desktop
4556        window.addEventListener('resize', () => {
4557            const isMobile = SelectedFilters.prototype.filterPillsInit();
4558            if (isMobile) {
4559                SelectedFilters.prototype.moreFiltersMobile();
4560            }
4561            else if (!SelectedFilters._areFiltersHidden) {
4562                SelectedFilters.prototype.moreFiltersSetup();
4563            }
4564        });
4565    }
4566    filterPillsInit() {
4567        const pillListElem = document.querySelector('[data-pill-list]');
4568        if (window.innerWidth > 991) {
4569            pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.classList.remove("mobile");
4570            return false;
4571        }
4572        else {
4573            pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.classList.remove("collapsed");
4574            pillListElem === null || pillListElem === void 0 ? void 0 : pillListElem.classList.add("mobile");
4575            return true;
4576        }
4577    }
4578}
4579
4580;// ./src/components/inventorysearch/iInventoryWasabi.ts
4581
4582
4583// EXTERNAL MODULE: ./src/services/toggles/iToggleService.ts
4584var iToggleService = __webpack_require__(4478);
4585;// ./src/components/searchResultsPage/searchFilters/filterPanel/filterPanel.ts
4586var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4587    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4588    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4589    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4590    return c > 3 && r && Object.defineProperty(target, key, r), r;
4591};
4592var __metadata = (undefined && undefined.__metadata) || function (k, v) {
4593    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
4594};
4595var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
4596    return function (target, key) { decorator(target, key, paramIndex); }
4597};
4598var _a, _b;
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610let FilterPanel = class FilterPanel {
4611    constructor(InventoryWasabi, toggleService) {
4612        this._makes = [];
4613        this.isIlp = () => {
4614            const isIlp = window.location.pathname.toLowerCase().indexOf("inventorylineup.aspx") > -1;
4615            return isIlp;
4616        };
4617        this.inventoryWasabi = InventoryWasabi;
4618        this._toggleService = toggleService;
4619    }
4620    initialize() {
4621        let filterPanelContainer;
4622        filterPanelContainer = !this.isIlp() ? document.querySelector("#sephora_filter") : document.querySelector("#srp_filter");
4623        //NOTE: Order is important because of custom event listeners and dom structure.
4624        //    The Dependency chain is a train wreck and needs to be cleaned up
4625        // - InventoryWasabi
4626        // - FilterPanelHeader
4627        // - FilterState
4628        //This is leftover from conversion to wasabi-mod. This class has a mix of filter and non-filter stuff.
4629        //  The filter items should be split out and merged into this class
4630        this.inventoryWasabi.initialize();
4631        // We might not have a filter panel at all since it can be hidden. If we don't have a panel
4632        // then don't run the remainder of these items to save some cycles.
4633        if (!filterPanelContainer) {
4634            return;
4635        }
4636        if (this.isIlp()) {
4637            new FilterPanelHeader();
4638        }
4639        new SearchFilterButton();
4640        const filtersElem = document.querySelector("#filter-panels");
4641        if (filtersElem) {
4642            this._hideableScrollbarFilterV2_Panels = new hideableScrollbar/* HideableScrollbar */.t(filtersElem);
4643        }
4644        if (this.isIlp()) {
4645            const filterHeaderElem = document.querySelector(".filter-header--scroll");
4646            if (filterHeaderElem) {
4647                this._hideableScrollbarFilterV2_Header = new hideableScrollbar/* HideableScrollbar */.t(filterHeaderElem);
4648            }
4649            this._hideableScrollbarFilterV2_PanelContents = [];
4650            const panelContentElems = filtersElem === null || filtersElem === void 0 ? void 0 : filtersElem.querySelectorAll('.panel__content');
4651            panelContentElems === null || panelContentElems === void 0 ? void 0 : panelContentElems.forEac
4651h(panelContentElem => {
4652                var _a;
4653                (_a = this._hideableScrollbarFilterV2_PanelContents) === null || _a === void 0 ? void 0 : _a.push(new hideableScrollbar/* HideableScrollbar */.t(panelContentElem));
4654            });
4655            this._selectedFilters = new SelectedFilters();
4656        }
4657        else {
4658            this.addFilterPanelResizeObserver(filtersElem);
4659        }
4660        this.addEventHandlers(filterPanelContainer);
4661    }
4662    addEventHandlers(filterPanelContainer) {
4663        if (this.isIlp()) {
4664            new MakeFilterPanel();
4665        }
4666        const modelTrimFilterPanel = new ModelTrimFilterPanel();
4667        const clickEvent = "click";
4668        if (this.isIlp()) {
4669            const filterPanelsList = filterPanelContainer.querySelectorAll(".panel-toggle__label-btn, .panel__content-btn");
4670            const filterPanels = Array.from(filterPanelsList);
4671            filterPanels === null || filterPanels === void 0 ? void 0 : filterPanels.forEach((panel) => {
4672                panel.addEventListener(clickEvent, (event) => {
4673                    const element = event.currentTarget;
4674                    FilterPanelToggle.Toggle(element);
4675                });
4676            });
4677        }
4678        const vehicleStageFilters = Array.from(document.querySelectorAll(`[data-vehicle-stage-filter="true"]`));
4679        vehicleStageFilters === null || vehicleStageFilters === void 0 ? void 0 : vehicleStageFilters.forEach((filter) => {
4680            if (!filter.dataset.filterPanelEventAttached) {
4681                filter.addEventListener("change", (event) => {
4682                    const elem = event.currentTarget;
4683                    this.limitVehicleStageCheckboxes(elem, vehicleStageFilters);
4684                });
4685                filter.dataset.filterPanelEventAttached = "true";
4686            }
4687        });
4688        if (this.isIlp()) {
4689            const allTrimsBtns = Array.from(document.querySelectorAll("[data-collapse-model-id]"));
4690            allTrimsBtns === null || allTrimsBtns === void 0 ? void 0 : allTrimsBtns.forEach((btn) => {
4691                btn.addEventListener(clickEvent, (event) => {
4692                    var _a;
4693                    (_a = btn.firstElementChild) === null || _a === void 0 ? void 0 : _a.addEventListener("click", () => {
4694                        modelTrimFilterPanel.showAllTrims(btn.dataset.collapseModelId);
4695                        btn.setAttribute("hidden", "");
4696                    });
4697                });
4698                btn.dataset.filterPanelEventAttached = "true";
4699            });
4700        }
4701        const filterPanel = document.querySelector("#filter-panels");
4702        if (filterPanel && !filterPanel.dataset.filterPanelEventAttached) {
4703            filterPanel.addEventListener("scroll", () => {
4704                if (document.querySelectorAll(".panel__content--slide-in").length > 0) {
4705                    filterPanel.scrollTo(0, 0);
4706                }
4707            });
4708            filterPanel.dataset.filterPanelEventAttached = "true";
4709        }
4710        const filterCheckboxes = document.querySelectorAll('.panel__content input[type="checkbox"]');
4711        if (filterPanel && !filterPanel.dataset.filterPanelEventAttached) {
4712            filterCheckboxes === null || filterCheckboxes === void 0 ? void 0 : filterCheckboxes.forEach((checkbox) => {
4713                checkbox.addEventListener("click", () => {
4714                    filterPanel.scrollTo(0, 0);
4715                });
4716                checkbox.dataset.filterPanelEventAttached = "true";
4717            });
4718        }
4719    }
4720    //vehicle staging checkboxes only supports one of the checkboxes being checked
4721    //or we'll get no results because the filters are AND filters
4722    limitVehicleStageCheckboxes(currentFilter, vehicleStageFilters) {
4723        const currentFilterIsChecked = currentFilter.checked;
4724        vehicleStageFilters
4725            .forEach((filter) => {
4726            filter.checked = false;
4727        });
4728        currentFilter.checked = currentFilterIsChecked;
4729    }
4730    addFilterPanelResizeObserver(filterPanelContainer) {
4731        const observer = new ResizeObserver((entries) => {
4732            entries.forEach((entry) => {
4733                const panelWidth = entry.borderBoxSize[0].inlineSize;
4734                filterPanelContainer.style.setProperty('--filter-panel-width', `${panelWidth}px`);
4735            });
4736        });
4737        if (filterPanelContainer) {
4738            observer.observe(filterPanelContainer);
4739        }
4740    }
4741};
4742FilterPanel = __decorate([
4743    (0,inversify/* injectable */._G)(),
4744    __param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IInventoryWasabi)),
4745    __param(1, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IToggleService)),
4746    __metadata("design:paramtypes", [typeof (_a = typeof iInventoryWasabi_namespaceObject.IInventoryWasabi !== "undefined" && iInventoryWasabi_namespaceObject.IInventoryWasabi) === "function" ? _a : Object, typeof (_b = typeof iToggleService/* IToggleService */.F !== "undefined" && iToggleService/* IToggleService */.F) === "function" ? _b : Object])
4747], FilterPanel);
4748
4749
4750;// ./src/components/inventorysearch/iWasabiFilterState.ts
4751
4752
4753// EXTERNAL MODULE: ./src/utilities/jQueryHelper/jQueryHelper.ts
4754var jQueryHelper = __webpack_require__(2781);
4755// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/customEvents.ts
4756var customEvents = __webpack_require__(9600);
4757;// ./src/components/inventorysearch/inventory-wasabi-mod.ts
4758var inventory_wasabi_mod_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4759    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4760    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4761    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4762    return c > 3 && r && Object.defineProperty(target, key, r), r;
4763};
4764var inventory_wasabi_mod_metadata = (undefined && undefined.__metadata) || function (k, v) {
4765    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
4766};
4767var inventory_wasabi_mod_param = (undefined && undefined.__param) || function (paramIndex, decorator) {
4768    return function (target, key) { decorator(target, key, paramIndex); }
4769};
4770var inventory_wasabi_mod_a, inventory_wasabi_mod_b;
4771
4772
4773
4774
4775
4776
4777class PopoverOpts {
4778    constructor(html, trigger, container, animation, placement) {
4779        this.html = html;
4780        this.trigger = trigger;
4781        this.container = container;
4782        this.animation = animation;
4783        this.placement = placement;
4784    }
4785}
4786let InventoryWasabi = class InventoryWasabi {
4787    constructor(wasabiFilterState, toggleService) {
4788        this.isIlp = () => {
4789            const isIlp = window.location.pathname.toLowerCase().indexOf("inventorylineup.aspx") > -1;
4790            return isIlp;
4791        };
4792        this.toggleService = toggleService;
4793        this.wasabiFilterState = wasabiFilterState;
4794    }
4795    initialize() {
4796        if (this.isIlp()) {
4797            this.wasabiFilterState.initialize();
4798        }
4799        // If on the lineup page, these variables will not have been defined
4800        window.usingUwmTpi = window.usingUwmTpi || false;
4801        window.vehicleType = window.vehicleType || "new";
4802        if (!String.prototype.includes) {
4803            String.prototype.includes = function () {
4804                'use strict';
4805                return String.prototype.indexOf.apply(this, arguments) !== -1;
4806            };
4807        }
4808        jQuery('[data-toggle=offcanvas]').click(function () {
4809            jQuery('.row-offcanvas').toggleClass('active');
4810            jQuery("#srpRefineSearch_Filters input:first").focus();
4811            if (jQuery('.row-offcanvas').hasClass('active'))
4812                jQuery('.contentWrapper .container').css('overflow-x', 'hidden');
4813        });
4814        if (!window.usingUwmTpi) {
4815            if (!this.isIlp()) {
4816                document.addEventListener(customEvents/* CosmosSrpCustomEvents */.A.VehicleLoadEnd, () => {
4817                    this.activateVideos();
4818                });
4819            }
4820            else {
4821                this.activateVideos();
4822            }
4823        }
4824        jQuery('body').on('show.bs.modal', function (e) {
4825            //@ts-ignore
4826            var relatedTarget = e.relatedTarget;
4827            if (relatedTarget) {
4828                jQuery('iframe#rebateIframe').removeAttr('src');
4829                jQuery('iframe#rebateIframe').attr("src", relatedTarget.getAttribute('data-iframe-src'));
4830            }
4831        });
4832        jQuery('body').on('hidden.bs.modal', '.page-modal', function () {
4833            jQuery(this).find('iframe').removeAttr('src');
4834            jQuery(this).removeData('bs.modal');
4835        });
4836        if (this.isIlp()) {
4837            var openSearchButton = document.getElementById("opensearch-submit");
4838            if (openSearchButton) {
4839                openSearchButton.addEventListener("click", () => {
4840                    this.refineSearch(true);
4841                });
4842            }
4843            const filterSearchButtons = document.querySelectorAll('[data-filter-search-btn]');
4844            filterSearchButtons === null || filterSearchButtons === void 0 ? void 0 : filterSearchButtons.forEach(button => {
4845                const buttonElement = button;
4846                buttonElement === null || buttonElement === void 0 ? void 0 : buttonElement.addEventListener('click', () => {
4847                    this.refineSearch(false);
4848                });
4849            });
4850        }
4851        jQuery('.modal-link').click(function (e) {
4852            e.preventDefault();
4853            var modal = jQuery('#rebateModal');
4854            modal
4855                .on('show.bs.modal', function () {
4856                jQuery('iframe#rebateIframe').removeAttr('src');
4857                const currentTarget = e.currentTarget;
4858                jQuery('iframe#rebateIframe').attr("src", currentTarget.href);
4859            })
4860                .modal();
4861        });
4862        // DEV-4627
4863        jQuery(".commentsExpand").click(function (e) {
4864            jQuery(this).prev().toggleClass("vehicleCommentsCollapsed");
4865            if (jQuery(this).find("i").hasClass("fa-plus")) {
4866                jQuery(this).find("i").removeClass("fa-plus").addClass("fa-minus");
4867            }
4868            else {
4869                jQuery(this).find("i").removeClass("fa-minus").addClass("fa-plus");
4870            }
4871        });
4872        //var openDetailsNew is defined in UCSearchResultsBlock.cs
4873        $('div[rel]').each(function () {
4874            $(this).click(function () {
4875                if (window.openDetailsNew)
4876                    window.open(jQuery(this).attr('rel'));
4877                else
4878                    location.href = jQuery(this).attr('rel');
4879            });
4880        });
4881        $('div ul[rel]').each(function () {
4882            $(this).click(function () {
4883                if (window.openDetailsNew)
4884                    window.open(jQuery(this).attr('rel'));
4885                else
4886                    location.href = jQuery(this).attr('rel');
4887            });
4888        });
4889        $('span[data-toggle="popover"],a:not([role="button"])[data-toggle="popover"]').each(function () {
4890            var vin = $(this).closest('.vehicleCard, .vehicle-card').attr('data-vin');
4891            var containerSelector = '[data-vin="' + vin + '"]';
4892            if (window.matchMedia("(max-width: 767px)").matches) {
4893                const opts = new PopoverOpts(true, "click", "body", false, this.dataset.placement || 'bottom');
4894                jQueryHelper/* JQueryHelper */.$.SafeApplyPopover(this, opts);
4895            }
4896            else {
4897                var _this = this;
4898                const opts = new PopoverOpts(true, "manual", "body", false, this.dataset.placement || 'auto left');
4899                jQueryHelper/* JQueryHelper */.$.SafeApplyPopover(this, opts)
4900                    .on("mouseenter", function () {
4901                    jQueryHelper/* JQueryHelper */.$.SafeApplyPopover(_this, "show");
4902                    $(containerSelector + ' .popover').on("mouseleave", function () {
4903                        jQueryHelper/* JQueryHelper */.$.SafeApplyPopover(_this, 'hide');
4904                    });
4905                    const popoverElems = document.getElementsByClassName("popover");
4906                    Array.from(popoverElems).forEach(elem => {
4907                        elem.addEventListener('mouseleave', (event) => {
4908                            jQueryHelper/* JQueryHelper */.$.SafeApplyPopover(_this, 'hide');
4909                        });
4910                    });
4911                }).on("mouseleave", function () {
4912                    setTimeout(function () {
4913                        if (!$(".popover:hover").length) {
4914                            jQueryHelper/* JQueryHelper */.$.SafeApplyPopover(_this, "hide");
4915                        }
4916                    }, 5);
4917                });
4918            }
4919        });
4920        $('body').on("shown.bs.popover", function () {
4921            $('.modal-link').click(function (e) {
4922                e.preventDefault();
4923                var modal = jQuery('#rebateModal');
4924                modal
4925                    .on('show.bs.modal', function () {
4926                    jQueryHelper/* JQueryHelper */.$.SafeApplyPopover('[aria-describedby]', 'hide');
4927                    $('iframe#rebateIframe').removeAttr('src');
4928                    const currentTarget = e.currentTarget;
4929                    $('iframe#rebateIframe').attr("src", currentTarget.href);
4930                })
4931                    .modal();
4932            });
4933        });
4934        jQuery("#closeSRP_refine").on('click touch', this.closeRefineSearch);
4935        jQuery(document).keyup((e) => {
4936            if (e.key === "Escape") {
4937                this.closeRefineSearch();
4938            }
4939        });
4940        var firstFocusableElement = jQuery("#closeSRP_refine");
4941        var lastFocusableElement = jQuery("#btnFilter");
4942        lastFocusableElement.keydown(function (e) {
4943            if (e.key === "Tab" && !e.shiftKey) {
4944                e.preventDefault();
4945                firstFocusableElement.focus();
4946            }
4947        });
4948        firstFocusableElement.keydown(function (e) {
4949            if (e.key === "Tab" && e.shiftKey) {
4950                e.preventDefault();
4951                lastFocusableElement.focus();
4952            }
4953        });
4954        $('a[data-toggle="offcanvas"].stat-search-toggle').on('click', function () {
4955            $('#srpRefineSearch_Filters input').attr('readonly', 'readonly');
4956            setTimeout(function () {
4957                $('#srpRefineSearch_Filters input').removeAttr('readonly');
4958                $('#srpRefineSearch_Filters input').blur();
4959            }, 100);
4960        });
4961    }
4962    activateVideos() {
4963        var _a;
4964        (_a = document.querySelectorAll("[id^='videoBtn']")) === null || _a === void 0 ? void 0 : _a.forEach((elem) => {
4965            const src = elem.getAttribute("show").replace(/["']/g, "");
4966            this.ActivateMagnific(jQuery(elem), 'video', src);
4967        });
4968    }
4969    /*********************/
4970    /* BEGIN ILP Methods */
4971    refineSearch(newSearch) {
4972        //Fetch all the key/value pairs that encapsulate the querystring parameters for a search
4973        var appliedFilters = () => {
4974            const filters = this.wasabiFilterState.getAppliedFilters();
4975            this.wasabiFilterState.triggerDealerOnTrackEvents(filters);
4976            return filters;
4977        };
4978        var removedFilters = () => {
4979            const filters = this.wasabiFilterState.getRemovedFilters();
4980            return filters;
4981        };
4982        // DEV-14659 - Changing location.href will not reload the window if there is a fragment
4983        // If there is a # then remove that portion of the URL starting at the # (just need to take care of fragments)
4984        var currentUrl = location.href;
4985        if (currentUrl.includes("#")) {
4986            currentUrl = currentUrl.substring(0, currentUrl.indexOf("#"));
4987        }
4988        var updatedUrl = this.updateQueryStringParameters(currentUrl, appliedFilters(), removedFilters(), newSearch);
4989        location.href = updatedUrl;
4990    }
4991    updateQueryStringParameters(uri, addValues, removeValues, newSearch) {
4992        //order of operations is important, remove values first
4993        jQuery.each(removeValues, (key, value) => {
4994            const keyLowerCase = key.toString().toLowerCase();
4995            if (keyLowerCase.startsWith("model") || keyLowerCase == "trim") {
4996                uri = this.removeQueryStringParameter(uri, key);
4997                key = "ModelAndTrim";
4998            }
4999            uri = this.removeQueryStringParameter(uri, key);
5000        });
5001        //CONPLAT-1833
5002        //always clear open search explicitly, or it won't get removed
5003        uri = this.removeQueryStringParameter(uri, "q");
5004        uri = this.removeQueryStringParameter(uri, "vehiclelocation");
5005        //END CONPLAT-1833
5006        if (newSearch) {
5007            var newSearchQuery = addValues["q"];
5008            if (newSearchQuery) {
5009                uri = this.updateQueryStringParameter(uri, "q", newSearchQuery);
5010            }
5011        }
5012        else {
5013            jQuery.each(addValues, (key, value) => {
5014                uri = this.updateQueryStringParameter(uri, key, value);
5015            });
5016        }
5017        return (uri);
5018    }
5019    updateQueryStringParameter(uri, key, value) {
5020        var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
5021        var separator = uri.indexOf('?') !== -1 ? "&" : "?";
5022        if (uri.match(re)) {
5023            return uri.replace(re, '$1' + key + "=" + value + '$2');
5024        }
5025        else {
5026            return (uri + separator + key + "=" + value).replace(/pt=\d+&?/i, "");
5027        }
5028    }
5029    removeQueryStringParameter(uri, key) {
5030        var re = new RegExp("([?&])" + key + "\\d{0,3}=.*?(&|$)", 'i');
5031        var match;
5032        while ((match = re.exec(uri)) !== null) {
5033            uri = uri.replace(match[0], !match[2] ? "" : match[1]);
5034        }
5035        return uri;
5036    }
5037    /* END ILP Methods   */
5038    /*********************/
5039    ActivateMagnific(that, type, src) {
5040        if (window.magnificPopupLoaded) {
5041            this.ActivateMagnificInner(that, type, src);
5042        }
5043        else {
5044            document.addEventListener("MagnificPopupLoaded", () => {
5045                this.ActivateMagnificInner(that, type, src);
5046            });
5047        }
5048    }
5049    ActivateMagnificInner(that, type, src) {
5050        if (src === '') {
5051            return;
5052        }
5053        switch (type) {
5054            case 'iframe':
5055                jQuery(that).magnificPopup({
5056                    type: 'iframe',
5057                    midClick: true,
5058                    items: {
5059                        src: src
5060                    }
5061                });
5062                break;
5063            case 'special':
5064                jQuery(that).magnificPopup({
5065                    items: {
5066                        type: 'iframe',
5067                        src: src
5068                    },
5069                    iframe: {
5070                        markup: '<div class="mfp-iframe-scaler specialMagnific">' +
5071                            '<div class="mfp-close"></div>' +
5072                            '<iframe class="mfp-iframe" frameborder="0" allowfullscreen>            </iframe>' +
5073                            '</div>'
5074                    },
5075                    callbacks: {
5076                        open: () => {
5077                            this.ResetTracker();
5078                            //var specialLinkTrackerEvent is defined in C# as a global that is expected to exist
5079                            window.trackerHook(window.specialLinkTrackerEvent, 'click');
5080                        }
5081                    }
5082                });
5083                break;
5084            case 'video':
5085                jQuery(that).magnificPopup({
5086                    items: {
5087                        type: 'iframe',
5088                        midClick: true,
5089                        src: src
5090                    },
5091                    iframe: {
5092                        markup: '<div class="mfp-iframe-scaler vehicleVidMagnific">' +
5093                            '<div class="mfp-close"></div>' +
5094                            '<iframe class="mfp-iframe" frameborder="0" allowfullscreen scrolling="no">            </iframe>' +
5095                            '</div>'
5096                    },
5097                    mainClass: "vehicleVidMagnificContainer"
5098                });
5099        }
5100    }
5101    openWindowSticker(url) {
5102        const screen_width = window.screen.availWidth / 2;
5103        const left_point = window.parseInt(screen_width) - (500);
5104        const brochureWindow = window.open(url, "", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=1,resizable=yes,copyhistory=yes,width=1050,height=1500");
5105        brochureWindow.moveTo(left_point, 0);
5106    }
5107    openFordWindowSticker(url) {
5108        var t3websiteCookie = (window.DealeronCookie.getItem('t3website') || '');
5109        var guid = '';
5110        if (t3websiteCookie != '') {
5111            var elements = t3websiteCookie.match(/<cookieguid>([^<]*)<\/cookieguid>/);
5112            if (elements.length > 1) {
5113                var cookieguid = elements[1];
5114                if (cookieguid != null) {
5115                    guid = cookieguid;
5116                }
5117            }
5118        }
5119        if (guid == '') {
5120            this.openWindowSticker(url);
5121        }
5122        else {
5123            this.openWindowSticker(url + "&cguid=" + guid);
5124        }
5125    }
5126    closeRefineSearch() {
5127        jQuery('.row-offcanvas-left').removeClass('active');
5128        jQuery('.contentWrapper .container').css('overflow-x', 'visible');
5129        jQuery("a[data-toggle='offcanvas']").focus();
5130    }
5131    ResetTracker() {
5132        window.eventFired = 0;
5133    }
5134};
5135InventoryWasabi = inventory_wasabi_mod_decorate([
5136    (0,inversify/* injectable */._G)(),
5137    inventory_wasabi_mod_param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IWasabiFilterState)),
5138    inventory_wasabi_mod_param(1, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IToggleService)),
5139    inventory_wasabi_mod_metadata("design:paramtypes", [typeof (inventory_wasabi_mod_a = typeof iWasabiFilterState_namespaceObject.IWasabiFilterState !== "undefined" && iWasabiFilterState_namespaceObject.IWasabiFilterState) === "function" ? inventory_wasabi_mod_a : Object, typeof (inventory_wasabi_mod_b = typeof iToggleService/* IToggleService */.F !== "undefined" && iToggleService/* IToggleService */.F) === "function" ? inventory_wasabi_mod_b : Object])
5140], InventoryWasabi);
5141
5142
5143// EXTERNAL MODULE: ./src/services/translations/iTranslationService.ts
5144var iTranslationService = __webpack_require__(3188);
5145;// ./src/components/inventorysearch/wasabiFilterState.ts
5146var wasabiFilterState_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5147    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5148    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5149    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5150    return c > 3 && r && Object.defineProperty(target, key, r), r;
5151};
5152var wasabiFilterState_metadata = (undefined && undefined.__metadata) || function (k, v) {
5153    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
5154};
5155var wasabiFilterState_param = (undefined && undefined.__param) || function (paramIndex, decorator) {
5156    return function (target, key) { decorator(target, key, paramIndex); }
5157};
5158var wasabiFilterState_a;
5159//NOTE: Only used for InventoryLineup.aspx (ILP)
5160
5161
5162
5163
5164let WasabiFilterState = class WasabiFilterState {
5165    constructor(translationService) {
5166        this.handleUndo = () => {
5167            const savedQueryString = this.getSavedFilterState() || "";
5168            localStorage.setItem("isFilterStateUndo", "true");
5169            window.location.search = savedQueryString;
5170        };
5171        this.isIlp = () => {
5172            const isIlp = window.location.pathname.toLowerCase().indexOf("inventorylineup.aspx") > -1;
5173            return isIlp;
5174        };
5175        this.translationService = translationService;
5176    }
5177    getAppliedFilters() {
5178        //This is only used by ILP
5179        if (!this.isIlp()) {
5180            return;
5181        }
5182        const keyValues = {};
5183        const modelTrims = {};
5184        //Vehicle Properties Selector
5185        document.querySelectorAll("input[type=checkbox][id^=filter]:checked").forEach((element) => {
5186            if (element.name === "Model") {
5187                const model = element.value;
5188                const escapedModel = model.replace(/!/g, "%5C!")
5189                    .replace(/:/g, "%5C:")
5190                    .replace(/\+/g, "%2B")
5191                    .replace(/\&/g, "%26");
5192                if (!(model in modelTrims)) {
5193                    modelTrims[escapedModel] = [];
5194                }
5195            }
5196            else if (element.name === "Trim") {
5197                const model = element.value.split(',')[0];
5198                const escapedModel = model.replace(/!/g, "%5C!")
5199                    .replace(/:/g, "%5C:")
5200                    .replace(/\+/g, "%2B")
5201                    .replace(/\&/g, "%26");
5202                const trim = element.value.split(',')[1];
5203                const escapedTrim = trim.replace(/!/g, "%5C!")
5204                    .replace(/:/g, "%5C:")
5205                    .replace(/\+/g, "%2B")
5206                    .replace(/\&/g, "%26");
5207                if (model in modelTrims) {
5208                    modelTrims[escapedModel].push(escapedTrim);
5209                }
5210                else {
5211                    modelTrims[escapedModel] = [escapedTrim];
5212                }
5213            }
5214            else if (element.name !== "All-Trims") {
5215                const key = element.name;
5216                const value = encodeURIComponent(element.value);
5217                if (key in keyValues) {
5218                    keyValues[key].push(value);
5219                }
5220                else {
5221                    keyValues[key] = [value];
5222                }
5223            }
5224        });
5225        if (Object.keys(modelTrims).length) {
5226            const encodedModelTrims = [];
5227            for (const key in modelTrims) {
5228                if (modelTrims[key].length > 0) {
5229                    encodedModelTrims.push(key + ":" + modelTrims[key].join(','));
5230                }
5231                else {
5232                    encodedModelTrims.push(key);
5233                }
5234            }
5235            keyValues["ModelAndTrim"] = encodedModelTrims.join('!');
5236        }
5237        if ("cpotier" in keyValues) {
5238            delete keyValues["cpo"];
5239        }
5240        this.handleRangeInputKeyValues(keyValues);
5241        const searchValet = document.querySelector("input[id^='opensearch-']");
5242        if (searchValet && searchValet.value.trim() !== "") {
5243            keyValues["q"] = searchValet.value;
5244        }
5245        const zipCodeField = document.getElementById("search_valet_zip");
5246        const distanceSelect = document.getElementsByClassName("distance-select")[0];
5247        if (distanceSelect) {
5248            const distanceField = distanceSelect.querySelector(".custom-option.selected");
5249            if (distanceField && (zipCodeField && zipCodeField.value !== "")) {
5250                const distance = distanceField.dataset.value.trim();
5251                if (distance === "") {
5252                    alert("Please select a distance.");
5253                    distanceField.focus();
5254                }
5255                //first 5 digits only
5256                const zipCode = zipCodeField.value.trim().split("-")[0];
5257                keyValues["vehiclelocation"] = zipCode + "-" + distance;
5258            }
5259        }
5260        const makeModelNavElement = document.querySelector("#collapse-options-make-expanded #model-btn");
5261        if (keyValues["make"]) {
5262            makeModelNavElement === null || makeModelNavElement === void 0 ? void 0 : makeModelNavElement.removeAttribute("disabled");
5263        }
5264        else {
5265            makeModelNavElement === null || makeModelNavElement === void 0 ? void 0 : makeModelNavElement.setAttribute("disabled", "true");
5266        }
5267        return keyValues;
5268    }
5269    //remove all checkboxes from the query string
5270    getRemovedFilters() {
5271        if (!this.isIlp()) {
5272            return;
5273        }
5274        var keyValues = {};
5275        jQuery("input:checkbox[id^='filter']").each(function (i, e) {
5276            const checkbox = this;
5277            var key = checkbox.name;
5278            if (key.toLowerCase() == "model" || key.toLowerCase() == "trim") {
5279                key = "ModelAndTrim";
5280            }
5281            var value = encodeURIComponent(checkbox.value);
5282            if (key in keyValues) {
5283                keyValues[key].push(value);
5284            }
5285            else {
5286                keyValues[key] = [value];
5287            }
5288        });
5289        this.handleRangeInputKeyValues(keyValues);
5290        return keyValues;
5291    }
5292    removeFilter(filterName, filterValue) {
5293        if (!this.isIlp()) {
5294            return;
5295        }
5296        if (filterValue.includes(" - ")) {
5297            if (filterName === "Mileage") {
5298                this.removeCheckboxFilter("Mileagerange", filterValue.replace(/\s/g, ""));
5299            }
5300            else {
5301                const filterRangeMin = document.querySelector(`input[name="${filterName.toLowerCase()}range"][data-min]`);
5302                const filterRangeMax = document.querySelector(`input[name="${filterName.toLowerCase()}range"][data-max]`);
5303                filterRangeMin.value = filterRangeMin.dataset.minValue;
5304                filterRangeMax.value = filterRangeMax.dataset.maxValue;
5305            }
5306        }
5307        else {
5308            this.removeCheckboxFilter(filterName, filterValue);
5309        }
5310    }
5311    removeCheckboxFilter(filterName, filterValue) {
5312        var _a;
5313        if (!this.isIlp()) {
5314            return;
5315        }
5316        const filterCheckbox = document.querySelector(`input[name="${filterName}"][value="${filterValue}"]`);
5317        if (filterCheckbox) {
5318            filterCheckbox.checked = false;
5319            filterCheckbox.parentElement.classList.remove("tile_selected");
5320        }
5321        if (filterName === "Model") {
5322            const allTrimsCheckbox = filterCheckbox.parentElement.nextElementSibling.querySelector("[id$=AllTrims]");
5323            if (allTrimsCheckbox) {
5324                allTrimsCheckbox.checked = false;
5325                allTrimsCheckbox.disabled = true;
5326                allTrimsCheckbox.dispatchEvent(new Event("change"));
5327                (_a = document.getElementById("filterPanel")) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new Event("filter-number-change"));
5328            }
5329            jQueryHelper/* JQueryHelper */.$.SafeApplyCollapse(`[id^=collapse-options-model-${filterValue}-]`, 'hide');
5330        }
5331        else if (filterName === "ModelAndTrim") {
5332            const modelTrimSplit = filterValue.split(": ");
5333            const trimCheckboxFilter = document.querySelector(`[id='filter${modelTrimSplit[0]}${modelTrimSplit[1]}']`); // "4Runner: Limited"
5334            trimCheckboxFilter.checked = false;
5335            const trimsListParent = document.querySelector(`[id^='collapse-options-model-${modelTrimSplit[0]}']`);
5336            const trimsCheckboxes = Array.from(trimsListParent.querySelectorAll("[type='checkbox']:not([id$=AllTrims])"));
5337            const allTrimsCheckbox = trimsListParent.querySelector("[id$=AllTrims]");
5338            if (!trimsCheckboxes.some(checkbox => checkbox.checked)) {
5339                if (allTrimsCheckbox) {
5340                    allTrimsCheckbox.classList.remove("dash");
5341                    allTrimsCheckbox.checked = false;
5342                    allTrimsCheckbox.disabled = true;
5343                }
5344                const modelCheckbox = document.querySelector(`[name='Model'][value='${modelTrimSplit[0]}']`);
5345                if (modelCheckbox) {
5346                    modelCheckbox.checked = false;
5347                }
5348                jQueryHelper/* JQueryHelper */.$.SafeApplyCollapse(`[id^=collapse-options-model-${modelTrimSplit[0]}-]`, 'hide');
5349            }
5350        }
5351    }
5352    handleRangeInputKeyValues(keyValues, isRemove = false) {
5353        const rangeFilters = document.querySelectorAll("input[class^=range]");
5354        rangeFilters.forEach((elem) => {
5355            const key = elem.name;
5356            const preEncodeValue = this.removeWhiteSpace(elem.value);
5357            const value = encodeURIComponent(preEncodeValue);
5358            if (value > '') {
5359                if (key in keyValues) {
5360                    const preEncodeMax = elem.getAttribute("data-max-value");
5361                    const maxValue = encodeURIComponent(preEncodeMax);
5362                    const preEncodeMin = this.removeWhiteSpace(elem.getAttribute("data-min-value"));
5363                    const minValue = encodeURIComponent(preEncodeMin);
5364                    if (isRemove) {
5365                        if (keyValues[key] === minValue && value === maxValue) {
5366                            keyValues[key] = keyValues[key] + '-' + value;
5367                        }
5368                        else {
5369                            delete keyValues[key];
5370                        }
5371                    }
5372                    else {
5373                        if (keyValues[key] === minValue && value === maxValue) {
5374                            delete keyValues[key];
5375                        }
5376                        else {
5377                            keyValues[key] = keyValues[key] + '-' + value;
5378                        }
5379                    }
5380                }
5381                else {
5382                    keyValues[key] = value;
5383                }
5384            }
5385        });
5386    }
5387    triggerDealerOnTrackEvents(filters) {
5388        // Don't track search valet or zipcode/distance
5389        const keyValues = Object.assign({}, filters);
5390        delete keyValues.q;
5391        delete keyValues.vehiclelocation;
5392        const dealerOnTrackEvents = [];
5393        document.querySelectorAll("input[type=checkbox][id^=filter]:checked").forEach((element) => {
5394            if (element.name === "Model" || element.name === "Trim") {
5395                return;
5396            }
5397            let currentLabel = "";
5398            switch (element.value) {
5399                case "1":
5400                    currentLabel = "on";
5401                    break;
5402                default:
5403                    currentLabel = element.value;
5404            }
5405            const trackingCategory = "SRP - Filter - " + element.name;
5406            const eventGroup = dealerOnTrackEvents.find(event => event.category === trackingCategory);
5407            if (eventGroup) {
5408                eventGroup.label += ", " + currentLabel;
5409            }
5410            else {
5411                dealerOnTrackEvents.push({ category: trackingCategory, action: vehicleType, label: currentLabel });
5412            }
5413        });
5414        if (Array.isArray(keyValues.ModelAndTrim)) {
5415            dealerOnTrackEvents.push({ category: "SRP - Filter - Model_Trim", action: vehicleType, label: ke
5415yValues.ModelAndTrim.join(',') });
5416        }
5417        this.setupRangeInputTrackerData(dealerOnTrackEvents);
5418    }
5419    setupRangeInputTrackerData(dealerOnTrackEvents) {
5420        const rangeFilters = document.querySelectorAll("input[class^=range]");
5421        const rangeInputTrackerData = [];
5422        rangeFilters.forEach((elem) => {
5423            const key = elem.name;
5424            const trackerValue = this.removeWhiteSpace(encodeURIComponent((elem.value ? elem.value : elem.placeholder)));
5425            let currentTrackerData = rangeInputTrackerData.find(t => t.key === key);
5426            if (!currentTrackerData) {
5427                currentTrackerData = { key: key, min: elem.dataset.minValue, max: elem.dataset.maxValue };
5428                rangeInputTrackerData.push(currentTrackerData);
5429            }
5430            if (elem.id.indexOf("_min") > -1) {
5431                currentTrackerData.minValue = trackerValue;
5432            }
5433            else {
5434                currentTrackerData.maxValue = trackerValue;
5435            }
5436        });
5437        rangeInputTrackerData.forEach(function (entry) {
5438            //if the user modified any of the range values then send a track event
5439            if (entry.min !== entry.minValue || entry.max !== entry.maxValue) {
5440                let category = "SRP - Filter - ";
5441                //handle special cases with category names
5442                switch (entry.key) {
5443                    case "pricerange":
5444                        category = `${category}Buy`;
5445                        break;
5446                    case "financepricerange":
5447                        category = `${category}Finance`;
5448                        break;
5449                    case "leasepricerange":
5450                        category = `${category}Lease`;
5451                        break;
5452                    default:
5453                        category = `${category}${entry.key}`;
5454                }
5455                dealerOnTrackEvents.push({ category: category, action: vehicleType, label: "Min = " + entry.minValue + ", Max = " + entry.maxValue });
5456            }
5457        });
5458    }
5459    removeWhiteSpace(str) {
5460        return str.replace(/[^\w\s]|_/g, "").replace(/\s+/g, " ");
5461    }
5462    initialize() {
5463        if (this.isIlp()) {
5464            const requestQueryString = window.location.search;
5465            const storedQueryString = this.getSavedFilterState();
5466            const isUndo = localStorage.getItem("isUndoFilterState");
5467            if (requestQueryString && !isUndo) {
5468                this.saveFilterState();
5469            }
5470            else if (isUndo) {
5471                localStorage.removeItem("isFilterStateUndo");
5472            }
5473            else if (storedQueryString && !requestQueryString) {
5474                this.showUndoButton(storedQueryString);
5475                const FILTER_STATE_CHANGE_EVENT = "filter-number-change";
5476                document.addEventListener(FILTER_STATE_CHANGE_EVENT, (event) => {
5477                    this.hideUndoButton();
5478                    this.clearSavedFilterState();
5479                }, { once: true });
5480            }
5481        }
5482    }
5483    saveFilterState() {
5484        localStorage.setItem("filterState", window.location.search);
5485    }
5486    getSavedFilterState() {
5487        const filterState = localStorage.getItem("filterState");
5488        return filterState || null;
5489    }
5490    clearSavedFilterState() {
5491        localStorage.removeItem("filterState");
5492    }
5493    showUndoButton(queryString) {
5494        var _a;
5495        const container = document.querySelector("[data-undo-btn-container]");
5496        const btn = document.querySelector("[data-undo-btn]");
5497        const filterCount = this.getClearedFilterCount(queryString);
5498        const filterCountSpan = document.getElementById("cleared-filters-count-text");
5499        btn === null || btn === void 0 ? void 0 : btn.addEventListener("click", this.handleUndo, { once: true });
5500        if (filterCountSpan) {
5501            if (filterCount == 1) {
5502                filterCountSpan.textContent = this.translate("FILTERS_CLEARED_SINGULAR");
5503            }
5504            else {
5505                filterCountSpan.textContent = (_a = this.translate("FILTERS_CLEARED_PLURAL")) === null || _a === void 0 ? void 0 : _a.replace('{0}', filterCount.toString());
5506            }
5507        }
5508        container === null || container === void 0 ? void 0 : container.removeAttribute("hidden");
5509    }
5510    getClearedFilterCount(queryString) {
5511        const filters = queryString.split(/[&,!]/g);
5512        return filters.length;
5513    }
5514    hideUndoButton() {
5515        const container = document.querySelector(".srp-selected-filters--cleared");
5516        const btn = document.querySelector("[data-undo-btn]");
5517        btn === null || btn === void 0 ? void 0 : btn.removeEventListener("click", this.handleUndo);
5518        container === null || container === void 0 ? void 0 : container.setAttribute("hidden", "true");
5519    }
5520    translate(item) {
5521        return this.translationService.getLabel(item);
5522    }
5523};
5524WasabiFilterState = wasabiFilterState_decorate([
5525    (0,inversify/* injectable */._G)(),
5526    wasabiFilterState_param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.ITranslationService)),
5527    wasabiFilterState_metadata("design:paramtypes", [typeof (wasabiFilterState_a = typeof iTranslationService/* ITranslationService */.o !== "undefined" && iTranslationService/* ITranslationService */.o) === "function" ? wasabiFilterState_a : Object])
5528], WasabiFilterState);
5529
5530
5531;// ./src/components/searchFilter/filterState.ts
5532var filterState_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5533    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5534    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5535    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c >
5535 3 ? d(target, key, r) : d(target, key)) || r;
5536    return c > 3 && r && Object.defineProperty(target, key, r), r;
5537};
5538var filterState_metadata = (undefined && undefined.__metadata) || function (k, v) {
5539    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
5540};
5541var filterState_param = (undefined && undefined.__param) || function (paramIndex, decorator) {
5542    return function (target, key) { decorator(target, key, paramIndex); }
5543};
5544var filterState_a;
5545
5546
5547
5548let FilterState = class FilterState {
5549    constructor(translationService) {
5550        this.filterList = {};
5551        this.FILTER = "Filter";
5552        this.FILTERS = "Filters";
5553        this.APPLY = "Apply";
5554        this.APPLIED = "Applied";
5555        this.FILTER_STATE_APPLIED = "applied-filters";
5556        this.FILTER_STATE_APPLY = "apply-filters";
5557        this.FILTER_STATE_NONE = "no-filters";
5558        this.LABEL_APPLY_FILTERS = 'APPLY_FILTERS';
5559        this.LABEL_APPLY_FILTERS_SINGULAR = 'APPLY_FILTERS_SINGULAR';
5560        this.LABEL_APPLY_FILTERS_PLURAL = 'APPLY_FILTERS_PLURAL';
5561        this.LABEL_FILTERS_APPLIED_SINGULAR = 'FILTERS_APPLIED_SINGULAR';
5562        this.LABEL_FILTERS_APPLIED_PLURAL = 'FILTERS_APPLIED_PLURAL';
5563        this.LABEL_NO_FILTERS_TO_APPLY = 'NO_FILTERS_TO_APPLY';
5564        this.translationService = translationService;
5565    }
5566    initialize(filterStateJson = null) {
5567        //TODO: this entire filter state should be migrated to the pinia store once
5568        //  vue is fully implemented. For now we need to support loading filter state 
5569        //  from the server when the toggle is off
5570        if (!filterStateJson) {
5571            let filterStateJson = document.getElementById("filter-state");
5572            if (filterStateJson) {
5573                this.filterList = JSON.parse(filterStateJson.textContent);
5574                this.attachEvents();
5575            }
5576            else {
5577                console.error('#filter-state does not exist. Failed to initialize filter state');
5578            }
5579        }
5580        else {
5581            this.filterList = filterStateJson;
5582            this.attachEvents();
5583        }
5584    }
5585    attachEvents() {
5586        var vehicleSelectors = document.querySelectorAll("input[type='checkbox'][id^='filter']");
5587        vehicleSelectors.forEach((el) => {
5588            el.addEventListener('change', (element) => {
5589                var filterUpdated = element.target;
5590                var filterName = filterUpdated.name.toLowerCase();
5591                var filterValue = filterUpdated.value;
5592                var filterKey = this.getFilterKey(filterName, filterValue);
5593                if (filterUpdated.checked) {
5594                    this.updateApplyFilterBtnCount(filterKey, filterValue);
5595                    switch (filterName.toLowerCase()) {
5596                        case "cpo":
5597                            this.cpoCheckChanged(filterUpdated, filterUpdated.checked);
5598                            break;
5599                        case "model":
5600                            this.modelCheckChanged(filterUpdated, filterUpdated.checked);
5601                            break;
5602                        case "trim":
5603                            this.trimChecked(filterName, filterValue);
5604                            break;
5605                        case "cpotier":
5606                            this.cpoTierChecked(filterName, filterValue);
5607                            break;
5608                        case "intransit":
5609                            this.inTransitChecked(filterName);
5610                            break;
5611                        case "inproduction":
5612                            this.inProductionChecked(filterName);
5613                            break;
5614                        case "instock":
5615                            this.inStockChecked(filterName);
5616                            break;
5617                        default:
5618                        // do nothing
5619                    }
5620                }
5621                else {
5622                    switch (filterName.toLowerCase()) {
5623                        case "model":
5624                        case "trim":
5625                            this.modelOrTrimUnchecked(filterName, filterValue);
5626                            break;
5627                        case "cpo":
5628                        case "cpotier":
5629                            this.cpoOrCpoTierUnChecked(filterName, filterValue);
5630                            break;
5631                        default:
5632                        // do nothing
5633                    }
5634                    this.updateApplyFilterBtnCount(filterKey);
5635                }
5636                this.notifyFilterNumberChange();
5637                this.setFilterCountPillsOnLoad();
5638            });
5639            this.initInStockCheckbox();
5640        });
5641        var specialOnlyCheckbox = document.getElementsByClassName("special-only")[0];
5642        if (specialOnlyCheckbox) {
5643            specialOnlyCheckbox.addEventListener('click', (e) => {
5644                var checkbox = document.getElementById("filter-searchspecialsonly");
5645                if (checkbox) {
5646                    var key = checkbox.name.toLowerCase() + "-" + checkbox.value;
5647                    checkbox.checked = !checkbox.checked;
5648                    if (checkbox.checked) {
5649                        this.updateApplyFilterBtnCount(key, checkbox.value);
5650                    }
5651                    else {
5652                        this.updateApplyFilterBtnCount(key);
5653                    }
5654                    this.notifyFilterNumberChange();
5655                }
5656            });
5657        }
5658        var collapsableFilterBtns = document.querySelectorAll('.panel__content-btn');
5659        collapsableFilterBtns.forEach((btn) => {
5660            var panelOptionTitleId = btn.getAttribute('data-target');
5661            var filterPill = document.querySelector(`${panelOptionTitleId} .filter-count`);
5662            document.addEventListener('filter-number-change', () => {
5663                this.getFilterCount(filterPill);
5664            });
5665            btn.addEventListener('click', () => {
5666                this.handleCollapsibleFilterClick(filterPill);
5667            });
5668            btn.addEventListener('keyup', (keyPressed) => {
5669                if (keyPressed.code == 'Space' || keyPressed.code == 'Enter') {
5670                    this.handleCollapsibleFilterClick(filterPill);
5671                }
5672            });
5673        });
5674        document.addEventListener('range-value-change', (e) => {
5675            if (e.detail.min === e.detail.rangeMin && e.detail.max === e.detail.rangeMax) {
5676                this.updateApplyFilterBtnCount(e.detail.name.toLowerCase());
5677            }
5678            else {
5679                var key = e.detail.name.toLowerCase();
5680                var value = { min: e.detail.min, max: e.detail.max };
5681                this.updateApplyFilterBtnCount(key, value);
5682            }
5683            this.notifyFilterNumberChange();
5684        });
5685        document.addEventListener('filter-number-change', (e) => {
5686            this.updateSearchBtnText(e.detail);
5687        });
5688        document.addEventListener('filter-number-init', (e) => {
5689            this.initSearchBtnText(e.detail);
5690            this.setFilterCountPillsOnLoad();
5691        });
5692        const filterPanelContainer = document.querySelector("#srp_filter");
5693        if (filterPanelContainer) {
5694            filterPanelContainer.classList.remove("srp-filter--uninitialized");
5695            const loadingSpinners = filterPanelContainer.querySelectorAll(".filter-header-loading");
5696            if (loadingSpinners.length > 0) {
5697                loadingSpinners.forEach(elem => {
5698                    elem.classList.add("filter-header-loading--hidden");
5699                });
5700            }
5701        }
5702        this.notifyFilterNumberChange(true);
5703    }
5704    initSearchBtnText(count) {
5705        var searchButtonsV2 = document.querySelectorAll('[data-filter-search-btn]');
5706        if (searchButtonsV2 !== null && searchButtonsV2 !== undefined) {
5707            if (count > 0) {
5708                searchButtonsV2.forEach((btn) => {
5709                    var _a;
5710                    if (count == 1) {
5711                        btn.innerText = this.translate(this.LABEL_FILTERS_APPLIED_SINGULAR);
5712                    }
5713                    else {
5714                        btn.innerText = (_a = this.translate(this.LABEL_FILTERS_APPLIED_PLURAL)) === null || _a === void 0 ? void 0 : _a.replace('{0}', count);
5715                    }
5716                    btn.dataset.filterState = this.FILTER_STATE_APPLIED;
5717                });
5718            }
5719            else {
5720                searchButtonsV2.forEach((btn) => {
5721                    btn.innerText = this.translate(this.LABEL_NO_FILTERS_TO_APPLY);
5722                    btn.dataset.filterState = this.FILTER_STATE_NONE;
5723                });
5724                this.hideShowNoFiltersApplied();
5725            }
5726        }
5727    }
5728    updateSearchBtnText(count) {
5729        var searchButtonsV2 = document.querySelectorAll('[data-filter-search-btn]');
5730        if (searchButtonsV2 !== null && searchButtonsV2 !== undefined) {
5731            var filterPills = document.querySelector('.srp-selected-filters--pill-list');
5732            var filterPillsExist = filterPills && filterPills.children && filterPills.children.length > 0;
5733            if (count > 0) {
5734                searchButtonsV2.forEach((btn) => {
5735                    var _a;
5736                    if (count == 1) {
5737                        btn.innerText = this.translate(this.LABEL_APPLY_FILTERS_SINGULAR);
5738                    }
5739                    else {
5740                        btn.innerText = (_a = this.translate(this.LABEL_APPLY_FILTERS_PLURAL)) === null || _a === void 0 ? void 0 : _a.replace('{0}', count);
5741                    }
5742                    btn.dataset.f
5742ilterState = this.FILTER_STATE_APPLY;
5743                    btn.classList.replace("btn-inactive", "btn-cta");
5744                });
5745            }
5746            else {
5747                searchButtonsV2.forEach((btn) => {
5748                    var _a;
5749                    if (filterPillsExist) {
5750                        btn.innerText = (_a = this.translate(this.LABEL_APPLY_FILTERS_PLURAL)) === null || _a === void 0 ? void 0 : _a.replace('{0}', count);
5751                        btn.dataset.filterState = this.FILTER_STATE_APPLY;
5752                        btn.classList.replace("btn-inactive", "btn-cta");
5753                    }
5754                    else {
5755                        btn.innerText = this.translate(this.LABEL_NO_FILTERS_TO_APPLY);
5756                        btn.dataset.filterState = this.FILTER_STATE_NONE;
5757                        btn.classList.replace("btn-cta", "btn-inactive");
5758                    }
5759                });
5760                this.hideShowNoFiltersApplied();
5761            }
5762        }
5763    }
5764    translate(item) {
5765        return this.translationService.getLabel(item);
5766    }
5767    hideShowNoFiltersApplied() {
5768        var noFiltersElement = document.querySelector(".srp-selected-filters #no-filters-text");
5769        if (!noFiltersElement) {
5770            return;
5771        }
5772        var filterPillsElement = document.querySelector('.srp-selected-filters--pill-list');
5773        var filtersClearedElement = document.querySelector(".srp-selected-filters--cleared");
5774        var undoBtnDisplayed = filtersClearedElement && !filtersClearedElement.hidden;
5775        if (!filterPillsElement && !undoBtnDisplayed) {
5776            noFiltersElement.removeAttribute("hidden");
5777        }
5778        else {
5779            noFiltersElement.setAttribute("hidden", "true");
5780        }
5781    }
5782    getFilterKey(inputElementName, inputElementValue) {
5783        return inputElementName.toLowerCase() + '-' + inputElementValue;
5784    }
5785    updateApplyFilterBtnCount(filterKey, filterValue = undefined) {
5786        if (filterValue) {
5787            this.filterList[filterKey] = filterValue;
5788        }
5789        else {
5790            delete this.filterList[filterKey];
5791        }
5792    }
5793    cpoCheckChanged(filter, shouldAddChildren) {
5794        var targetedID = $(filter.parentElement).attr('data-target');
5795        var elems = $(filter).parents('.list_display').find('' + targetedID + ' .collapse-options-sub .display_child.list_display_child input:checked');
5796        //account for not having any tiered items
5797        if (elems.length == 0 && $(filter).is(':checked')) {
5798            elems = filter;
5799        }
5800        this.updateChildrenInBtnFilterCount(elems, shouldAddChildren);
5801    }
5802    updateChildrenInBtnFilterCount(children, shouldAddChildren) {
5803        if (shouldAddChildren) {
5804            Array.from(children).forEach((child) => {
5805                var childFilterKey = this.getFilterKey(child.name, child.value);
5806                this.updateApplyFilterBtnCount(childFilterKey, child.value);
5807            });
5808            var parentFilterKey = this.getFilterKey(parent.name, undefined);
5809            //REFACTOR - parent.value was always undefined in the legacy js version of this.
5810            //var parentFilterKey = this.getFilterKey(parent.name, parent.value);
5811            this.updateApplyFilterBtnCount(parentFilterKey);
5812        }
5813        else {
5814            Array.from(children).forEach((child) => {
5815                var childFilterKey = this.getFilterKey(child.name, child.value);
5816                this.updateApplyFilterBtnCount(childFilterKey);
5817            });
5818        }
5819    }
5820    modelCheckChanged(filter, shouldAddChildren) {
5821        var targetedID = $(filter.parentElement).attr('data-target');
5822        var elems = $(filter).parents('.list_display').find('' + targetedID + ' .collapse-options-sub .display_child.list_display_child input:checked');
5823        this.updateChildrenInBtnFilterCount(elems, shouldAddChildren);
5824    }
5825    trimChecked(filterType, filterValue) {
5826        if (filterType == "trim") {
5827            var model = filterValue.split(',')[0];
5828            var modelKey = "model" + "-" + model;
5829            if (this.filterList[modelKey]) {
5830                this.updateApplyFilterBtnCount(modelKey);
5831            }
5832        }
5833    }
5834    cpoTierChecked(filterType, filterValue) {
5835        var cpoFilterType = "cpotier";
5836        if (filterType.toLowerCase() === cpoFilterType) {
5837            var cpoTierParentKey = filterValue.split(',')[0];
5838            if (this.filterList[cpoTierParentKey]) {
5839                this.updateApplyFilterBtnCount(cpoTierParentKey);
5840            }
5841        }
5842    }
5843    inTransitChecked(filterType) {
5844        if (filterType == "intransit") {
5845            this.RemoveInStockFilterFromCount();
5846            this.RemoveInProductionFilterFromCount();
5847        }
5848    }
5849    inProductionChecked(filterType) {
5850        if (filterType == "inproduction") {
5851            this.RemoveInStockFilterFromCount();
5852            this.RemoveInTransitFilterFromCount();
5853        }
5854    }
5855    inStockChecked(filterType) {
5856        if (filterType == "instock") {
5857            this.RemoveInTransitFilterFromCount();
5858            this.RemoveInProductionFilterFromCount();
5859        }
5860    }
5861    RemoveInStockFilterFromCount() {
5862        const inStockCheckbox = document.querySelector("[id^='filter-instock']");
5863        if (inStockCheckbox) {
5864            this.updateApplyFilterBtnCount("instock-1");
5865        }
5866    }
5867    RemoveInTransitFilterFromCount() {
5868        const inTransitCheckbox = document.querySelector("[id^='filter-intransit']");
5869        if (inTransitCheckbox) {
5870            this.updateApplyFilterBtnCount("intransit-1");
5871        }
5872    }
5873    RemoveInProductionFilterFromCount() {
5874        const inProductionCheckbox = document.querySelector("[id^='filter-inproduction']");
5875        if (inProductionCheckbox) {
5876            this.updateApplyFilterBtnCount("inproduction-1");
5877        }
5878    }
5879    modelOrTrimUnchecked(filterType, filterValue) {
5880        if (filterType == "model") {
5881            var model = filterValue;
5882            var trimKeyPrefix = "trim" + "-" + model;
5883            Object.keys(this.filterList).forEach((dictKey) => {
5884                if (dictKey.match(trimKeyPrefix)) {
5885                    this.updateApplyFilterBtnCount(dictKey);
5886                }
5887            });
5888        }
5889        else if (filterType == "trim") {
5890            var model = filterValue.split(',')[0];
5891            var modelKey = "model" + "-" + model;
5892            var trimKeyPrefix = "trim" + "-" + model;
5893            var count = 0;
5894            Object.keys(this.filterList).forEach((dictKey) => {
5895                if (dictKey.match(trimKeyPrefix)) {
5896                    count++;
5897                }
5898            });
5899            // When last trim for model is unchecked add model back to filter count
5900            if (count == 1) {
5901                this.updateApplyFilterBtnCount(modelKey, modelKey);
5902            }
5903        }
5904    }
5905    cpoOrCpoTierUnChecked(filterType, filterValue) {
5906        var cpoFilterType = "cpo";
5907        var cpotierFilterType = "cpotier";
5908        if (filterType == cpoFilterType) {
5909            Object.keys(this.filterList).forEach((dictKey) => {
5910                if (dictKey.startsWith(cpoFilterType)) {
5911                    this.updateApplyFilterBtnCount(dictKey);
5912                }
5913            });
5914        }
5915        else if (filterType == cpotierFilterType) {
5916            var count = 0;
5917            Object.keys(this.filterList).forEach((dictKey) => {
5918                if (dictKey.startsWith(cpotierFilterType)) {
5919                    count++;
5920                }
5921            });
5922            // When last cpotier for cpo is unchecked add cpo back to filter count
5923            if (count == 1) {
5924                var value = cpoFilterType + "-" + filterValue;
5925                this.updateApplyFilterBtnCount(cpoFilterType, value);
5926            }
5927        }
5928    }
5929    notifyFilterNumberChange(isInitCall = false) {
5930        var filterCount = Object.keys(this.filterList).length;
5931        if (Object.keys(this.filterList).includes("inproduction-1") && Object.keys(this.filterList).includes("intransit-1")) {
5932            filterCount -= 2;
5933        }
5934        if (isInitCall) {
5935            document.dispatchEvent(new CustomEvent('filter-number-init', { detail: filterCount }));
5936        }
5937        else {
5938            document.dispatchEvent(new CustomEvent('filter-number-change', { detail: filterCount }));
5939        }
5940    }
5941    setFilterCountPillsOnLoad() {
5942        var filterCountPills = document.querySelectorAll('#filter-panels .panel .filter-count');
5943        filterCountPills.forEach((filterCountPill) => {
5944            this.handleCollapsibleFilterClick(filterCountPill);
5945        });
5946    }
5947    handleCollapsibleFilterClick(filterCountPill) {
5948        if (filterCountPill) {
5949            var filterCount = this.getFilterCount(filterCountPill);
5950            this.showHideFilterCountPill(filterCountPill, filterCount);
5951        }
5952    }
5953    getFilterCount(filterCountPill) {
5954        if (!filterCountPill) {
5955            return;
5956        }
5957        var filterName = filterCountPill.id.replace("-count", "");
5958        if (filterName === "ModelAndTrim") {
5959            return this.getFilterCountForModelAndTrim();
5960        }
5961        else if (filterName.includes('range')) {
5962            var rangeFilterName = filterName.replace("-range", "").toLowerCase();
5963            if (rangeFilterName === "price") {
5964                return this.getFilterCountForPriceFilter();
5965            }
5966            else if (rangeFilterName === "mpg") {
5967                return this.getFilterCountForMpgFilter();
5968            }
5969            else if (typeof (this.filterList[rangeFilterName]) !== "undefined") {
5970                /* For Range Filters with Only One Range */
5971                return 1;
5972            }
5973        }
5974        else if (filterName === "vehicle-condition") {
5975            return this.getFilterCountForVehicleCondition();
5976        }
5977        else {
5978            // mileage is a special type of ranged checkbox that doesn't work like other
5979            // ranges, so we want to account for it here like other checkeboxes
5980            if (filterName.toLowerCase() == "mileage") {
5981                filterName += "range";
5982            }
5983            var elems = document.querySelectorAll("[name='" + filterName + "']:checked");
5984            return elems ? elems.length : 0;
5985        }
5986    }
5987    showHideFilterCountPill(filterCountPill, filterCount) {
5988        if (filterCount > 0) {
5989            filterCountPill.innerText = filterCount;
5990            filterCountPill.removeAttribute('hidden');
5991        }
5992        else {
5993            filterCountPill.innerText = "";
5994            filterCountPill.setAttribute('hidden', '');
5995        }
5996    }
5997    getFilterCountForModelAndTrim() {
5998        var modelFilters = document.querySelectorAll("[name='Model']:checked");
5999        var filterCount = modelFilters ? modelFilters.length : 0;
6000        modelFilters.forEach((model) => {
6001            var modelName = model.value.replace(/\s+/g, "-");
6002            var collapsableModelDiv = document.getElementById("collapse-options-model-" + modelName);
6003            if (collapsableModelDiv) {
6004                var trimFilterCountElem = collapsableModelDiv.querySelectorAll("[name='Trim']:checked");
6005                if (trimFilterCountElem) {
6006                    var trimFilterCount = trimFilterCountElem.length;
6007                    if (trimFilterCount > 1) {
6008                        filterCount += (trimFilterCount - 1);
6009                    }
6010                }
6011            }
6012        });
6013        return filterCount;
6014    }
6015    getFilterCountForPriceFilter() {
6016        var filterCount = 0;
6017        if (typeof (this.filterList["price"]) !== "undefined") {
6018            filterCount++;
6019        }
6020        if (typeof (this.filterList["leaseprice"]) !== "undefined") {
6021            filterCount++;
6022        }
6023        if (typeof (this.filterList["financeprice"]) !== "undefined") {
6024            filterCount++;
6025        }
6026        var checkboxSearchSpecialsOnly = document.getElementById("filter-searchspecialsonly");
6027        if (checkboxSearchSpecialsOnly && checkboxSearchSpecialsOnly.checked) {
6028            filterCount++;
6029        }
6030        return filterCount;
6031    }
6032    getFilterCountForMpgFilter() {
6033        var filterCount = 0;
6034        if (typeof (this.filterList["citympg"]) !== "undefined") {
6035            filterCount++;
6036        }
6037        if (typeof (this.filterList["hwympg"]) !== "undefined") {
6038            filterCount++;
6039        }
6040        return filterCount;
6041    }
6042    getFilterCountForVehicleCondition() {
6043        var vehicleConditionFilterCount = 1;
6044        var vehicleConditionFiltersDiv = document.querySelector('#Vehicle-Condition-Filters');
6045        var vehicleConditionFilters = (vehicleConditionFiltersDiv && vehicleConditionFiltersDiv.children) ? vehicleConditionFiltersDiv.children : undefined;
6046        if (vehicleConditionFilters) {
6047            Array.from(vehicleConditionFilters).forEach((vehicleConditionFilter) => {
6048                var checkedFilter = vehicleConditionFilter.querySelector('input[id^="filter"]:checked');
6049                if (checkedFilter) {
6050                    // Filters with nested filters - there is only one at this point (Certified Pre-Owned).
6051                    if (checkedFilter.name.toLowerCase().includes("cpo")) {
6052                        return;
6053                    }
6054                    else {
6055                        vehicleConditionFilterCount++;
6056                    }
6057                }
6058            });
6059        }
6060        //Get CpoTier Counts
6061        vehicleConditionFilterCount += this.getCpoTierCount();
6062        return vehicleConditionFilterCount;
6063    }
6064    getCpoTierCount() {
6065        var cpoFilters = document.querySelectorAll("[name='cpo']:checked");
6066        var filterCount = cpoFilters ? cpoFilters.length : 0;
6067        cpoFilters.forEach(() => {
6068            var collapsableDiv = document.getElementById("collapse-options-cpotier");
6069            if (collapsableDiv) {
6070                var tierFilterCountElem = collapsableDiv.querySelectorAll("[name='cpotier']:checked");
6071                if (tierFilterCountElem) {
6072                    var tierFilterCount = tierFilterCountElem.length;
6073                    if (tierFilterCount > 1) {
6074                        filterCount += (tierFilterCount - 1);
6075                    }
6076                }
6077            }
6078        });
6079        return filterCount;
6080    }
6081    initInStockCheckbox() {
6082        var inStockCheckbox = document.querySelector("#filter-instock");
6083        if (inStockCheckbox && inStockCheckbox.checked) {
6084            var key = inStockCheckbox.name.toLowerCase() + "-" + inStockCheckbox.value;
6085            this.updateApplyFilterBtnCount(key, inStockCheckbox.value);
6086        }
6087    }
6088};
6089FilterState = filterState_decorate([
6090    (0,inversify/* injectable */._G)(),
6091    filterState_param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.ITranslationService)),
6092    filterState_metadata("design:paramtypes", [typeof (filterState_a = typeof iTranslationService/* ITranslationService */.o !== "undefined" && iTranslationService/* ITranslationService */.o) === "function" ? filterState_a : Object])
6093], FilterState);
6094
6095
6096// EXTERNAL MODULE: ./src/services/toggles/toggleFetcher.ts
6097var toggleFetcher = __webpack_require__(5141);
6098// EXTERNAL MODULE: ./src/services/translations/defaultTranslationFetcher.ts
6099var defaultTranslationFetcher = __webpack_require__(8102);
6100// EXTERNAL MODULE: ./src/components/searchFilter/srpWasabi_General.ts + 1 modules
6101var srpWasabi_General = __webpack_require__(721);
6102// EXTERNAL MODULE: ./src/components/vehicle/vehicleCard/vehicleCardWasabi.ts + 1 modules
6103var vehicleCardWasabi = __webpack_require__(8066);
6104;// ./src/components/searchFilter/rangeFilterCosmos.ts
6105var rangeFilterCosmos_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6106    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6107    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6108    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6109    return c > 3 && r && Object.defineProperty(target, key, r), r;
6110};
6111var rangeFilterCosmos_metadata = (undefined && undefined.__metadata) || function (k, v) {
6112    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
6113};
6114
6115let RangeFilterCosmos = class RangeFilterCosmos {
6116    constructor() {
6117    }
6118    initialize() {
6119        let ranges = document.querySelectorAll("[data-range-filter-config]");
6120        for (let i = 0; i < ranges.length; i++) {
6121            const elem = ranges[i];
6122            if (elem) {
6123                const rangeConfig = { rangeId: elem.dataset.rangeFilterConfig };
6124                this.setupRange(rangeConfig);
6125            }
6126        }
6127        //TODO: Get rid of this when VUE conversion for FilterPanels is complete
6128        // if we didn't find any ranges above, then we are not rending vue components
6129        // so make sure the old way works.
6130        if (ranges.length === 0) {
6131            const scriptId = "range-filter-config";
6132            let ranges = document.querySelectorAll("[id^=" + scriptId + "]");
6133            // IE doesn't support forEach on NodeList
6134            Array.prototype.forEach.call(ranges, (range) => {
6135                const jsonData = JSON.parse(range.text);
6136                this.setupRange(jsonData);
6137            });
6138        }
6139    }
6140    setupRange(rangeConfig) {
6141        // Initialize min/max elements and listeners
6142        const rangeName = rangeConfig.rangeId;
6143        let minElement = document.getElementById(rangeName + '_min');
6144        let maxElement = document.getElementById(rangeName + '_max');
6145        switch (rangeName) {
6146            case "range-filter-config-finance":
6147                minElement = document.getElementById('financeprice_min');
6148                maxElement = document.getElementById('financeprice_max');
6149                break;
6150            case "range-filter-config-lease":
6151                minElement = document.getElementById('leaseprice_min');
6152                maxElement = document.getElementById('leaseprice_max');
6153                break;
6154        }
6155        this.setupSliderEventListeners(minElement, maxElement);
6156        this.setupSeparatorEventListeners(minElement, maxElement);
6157    }
6158    updateSlider(elem, position) {
6159        if (!elem.id) {
6160            return;
6161        }
6162        const elemValue = elem.value.replace(/,/g, '');
6163        let inputValue = parseFloat(elemValue);
6164        const baseElemId = elem.id.split("_")[0];
6165        const minElemId = baseElemId + "_min";
6166        const maxElemId = baseElemId + "_max";
6167        //enforce step
6168        const sliderStep = parseFloat(elem.dataset.stepSize);
6169        inputValue = Math.ceil(inputValue / sliderStep) * sliderStep;
6170        elem.value = inputValue;
6171        //min value
6172        const defaultMinValue = parseFloat(elem.dataset.minValue);
6173        const minElem = document.getElementById(minElemId);
6174        let selectedMinValue = 0;
6175        if (minElem) {
6176            let minValue = minElem.value.replace(/,/g, '');
6177            selectedMinValue = parseFloat(minValue);
6178            if (isNaN(selectedMinValue)) {
6179                selectedMinValue = defaultMinValue;
6180            }
6181        }
6182        //max value
6183        const defaultMaxValue = parseFloat(elem.dataset.maxValue);
6184        const maxElem = document.getElementById(maxElemId);
6185        let selectedMaxValue = 0;
6186        if (maxElem) {
6187            let maxValue = maxElem.value.replace(/,/g, '');
6188            selectedMaxValue = parseFloat(maxValue);
6189            if (isNaN(selectedMaxValue)) {
6190                selectedMaxValue = defaultMaxValue;
6191            }
6192        }
6193        //trigger validation message
6194        let validator = elem.parentElement.parentElement.parentElement.getElementsByClassName("invalid-feedback");
6195        if (validator) {
6196            validator = validator[0];
6197            if (selectedMinValue > selectedMaxValue) {
6198                validator.classList.remove("hidden");
6199            }
6200            else {
6201                validator.classList.add("hidden");
6202            }
6203        }
6204        //enforce min/max values and don't let the min/max values pass each other
6205        if (isNaN(inputValue) || selectedMinValue > selectedMaxValue) {
6206            if (position == 0) {
6207                inputValue = defaultMinValue;
6208                elem.value = defaultMinValue;
6209                selectedMinValue = defaultMinValue;
6210            }
6211            else {
6212                inputValue = defaultMaxValue;
6213                elem.value = defaultMaxValue;
6214                selectedMaxValue = defaultMaxValue;
6215            }
6216        }
6217        const sliderEvent = new CustomEvent('range-value-change', {
6218            detail: {
6219                name: baseElemId,
6220                min: selectedMinValue,
6221                max: selectedMaxValue,
6222                rangeMin: defaultMinValue,
6223                rangeMax: defaultMaxValue
6224            }
6225        });
6226        document.dispatchEvent(sliderEvent);
6227    }
6228    setupSliderEventListeners(minElement, maxElement) {
6229        if (minElement) {
6230            minElement.addEventListener("change", (e) => {
6231                this.updateSlider(e.target, 0);
6232            });
6233        }
6234        if (maxElement) {
6235            maxElement.addEventListener("change", (e) => {
6236                this.updateSlider(e.target, 1);
6237            });
6238        }
6239    }
6240    separatorUpdater(minObj, maxObj) {
6241        let inputMin = minObj.value === "" ? minObj.getAttribute('placeholder') : minObj.value;
6242        let inputMax = maxObj.value === "" ? maxObj.getAttribute('placeholder') : maxObj.value;
6243        // Don't add a separator for year values
6244        if (!minObj.parentElement.classList.contains("input-year")) {
6245            inputMin = this.formatValueWithSeparator(inputMin);
6246        }
6247        if (!maxObj.parentElement.classList.contains("input-year")) {
6248            inputMax = this.formatValueWithSeparator(inputMax);
6249        }
6250        minObj.value = inputMin;
6251        maxObj.value = inputMax;
6252    }
6253    formatValueWithSeparator(value) {
6254        const cleanValue = value.replace(/,/g, "");
6255        return new Intl.NumberFormat("en-US", { style: "decimal" }).format(cleanValue);
6256    }
6257    setupSeparatorEventListeners(minElement, maxElement) {
6258        if (minElement && maxElement) {
6259            minElement.addEventListener('change', () => {
6260                this.separatorUpdater(minElement, maxElement);
6261            });
6262            maxElement.addEventListener('change', () => {
6263                this.separatorUpdater(minElement, maxElement);
6264            });
6265        }
6266    }
6267};
6268RangeFilterCosmos = rangeFilterCosmos_decorate([
6269    (0,inversify/* injectable */._G)(),
6270    rangeFilterCosmos_metadata("design:paramtypes", [])
6271], RangeFilterCosmos);
6272
6273
6274// EXTERNAL MODULE: ./src/services/vehicleService/vehicleService.ts
6275var vehicleService = __webpack_require__(2283);
6276// EXTERNAL MODULE: ./src/components/spaCosmos/commonModels/srpPageSettingsModel.ts
6277var srpPageSettingsModel = __webpack_require__(6611);
6278// EXTERNAL MODULE: ./src/services/serviceHelpers.ts
6279var serviceHelpers = __webpack_require__(7090);
6280// EXTERNAL MODULE: ./src/services/personalizationService/iPersonalizationService.ts
6281var iPersonalizationService = __webpack_require__(926);
6282;// ./src/services/filterService/filterService.ts
6283var filterService_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6284    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6285    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6286    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6287    return c > 3 && r && Object.defineProperty(target, key, r), r;
6288};
6289var filterService_metadata = (undefined && undefined.__metadata) || function (k, v) {
6290    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
6291};
6292var filterService_param = (undefined && undefined.__param) || function (paramIndex, decorator) {
6293    return function (target, key) { decorator(target, key, paramIndex); }
6294};
6295var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
6296    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6297    return new (P || (P = Promise))(function (resolve, reject) {
6298        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6299        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6300        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
6301        step((generator = generator.apply(thisArg, _arguments || [])).next());
6302    });
6303};
6304var filterService_a, filterService_b;
6305
6306
6307
6308
6309
6310
6311
6312let FilterService = class FilterService {
6313    constructor(personalizationService, toggleService) {
6314        this.rootSrpFiltersUrl = "/api/vhcliaa/vehicle-pages/cosmos/srp/filters/";
6315        this.filterCache = {};
6316        this.getFilterApiUrl = (dealerId, pageId, dynamicCountsSearchParams) => {
6317            let searchParams = serviceHelpers/* ServiceHelpers */.d.getBaseApiQueryString(undefined, dynamicCountsSearchParams);
6318            //HACK: don't decode the queryString params because we allow dealers to add unsafe data and this will break the search
6319            let apiUrl = `${this.rootSrpFiltersUrl}${dealerId}/${pageId}?${serviceHelpers/* ServiceHelpers */.d.mapArrayToQueryString(searchParams)}`;
6320            return apiUrl;
6321        };
6322        this.getFilters = (dealerId, pageId, dynamicCountsSearchParams) => __awaiter(this, void 0, void 0, function* () {
6323            var _a, _b;
6324            let url = this.getFilterApiUrl(dealerId, pageId, dynamicCountsSearchParams);
6325            //Personalization (aka Signals)
6326            //NOTE: We add this here so we don't have to see it visually show up on the URL every time 
6327            url = (_b = (_a = this.personalizationService) === null || _a === void 0 ? void 0 : _a.addPersonalizationParameters(url)) !== null && _b !== void 0 ? _b : url;
6328            if (this.filterCache[url]) {
6329                return this.filterCache[url];
6330            }
6331            const response = serviceHelpers/* ServiceHelpers */.d.sendApiRequest(url);
6332            this.filterCache[url] = response;
6333            return response;
6334        });
6335        //Helpers
6336        //we put these here so we can inject toggleService more better than in the pinia stores
6337        //which don't have a way to take a constructor
6338        this.isDynamicFilteringEnabled = (filterType, uiLocation) => {
6339            return filterType === srpPageSettingsModel/* SrpFilterType */.K.Dynamic;
6340        };
6341        this.personalizationService = personalizationService;
6342        this.toggleService = toggleService;
6343        this.filterCache = {};
6344    }
6345    hideZeroCountFilters() {
6346        return this.toggleService.getToggleStatus(toggleService/* Toggle */.lM.HideZeroCountFilters);
6347    }
6348};
6349FilterService = filterService_decorate([
6350    (0,inversify/* injectable */._G)(),
6351    filterService_param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IPersonalizationService)),
6352    filterService_param(1, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IToggleService)),
6353    filterService_metadata("design:paramtypes", [typeof (filterService_a = typeof iPersonalizationService/* IPersonalizationService */.R !== "undefined" && iPersonalizationService/* IPersonalizationService */.R) === "function" ? filterService_a : Object, typeof (filterService_b = typeof iToggleService/* IToggleService */.F !== "undefined" && iToggleService/* IToggleService */.F) === "function" ? filterService_b : Object])
6354], FilterService);
6355
6356
6357;// ./src/components/priceStak/priceStakSyncDataModel.ts
6358class PriceStakSyncDataModel {
6359    constructor() {
6360        this.previousElementScrollY = 0;
6361    }
6362}
6363
6364// EXTERNAL MODULE: ./src/components/pricing/pricingTypeCookie.ts
6365var pricingTypeCookie = __webpack_require__(1373);
6366// EXTERNAL MODULE: ./src/components/spaCosmos/pagination/srpScrollType.ts
6367var srpScrollType = __webpack_require__(1560);
6368// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/vehicleLoadCause.ts
6369var vehicleLoadCause = __webpack_require__(3249);
6370;// ./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/priceStakDataModel.ts
6371class PriceStakDataModel {
6372    constructor(selectedTab) {
6373        this.selectedTab = selectedTab;
6374    }
6375}
6376
6377// EXTERNAL MODULE: ./src/utilities/performanceHelpers.ts
6378var performanceHelpers = __webpack_require__(9185);
6379// EXTERNAL MODULE: ./src/services/stores/iStoreProvider.ts
6380var iStoreProvider = __webpack_require__(2770);
6381;// ./src/components/priceStak/priceStakSynchronizer.ts
6382var priceStakSynchronizer_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6383    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6384    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6385    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6386    return c > 3 && r && Object.defineProperty(target, key, r), r;
6387};
6388var priceStakSynchronizer_metadata = (undefined && undefined.__metadata) || function (k, v) {
6389    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
6390};
6391var priceStakSynchronizer_param = (undefined && undefined.__param) || function (paramIndex, decorator) {
6392    return function (target, key) { decorator(target, key, paramIndex); }
6393};
6394var priceStakSynchronizer_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
6395    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6396    return new (P || (P = Promise))(function (resolve, reject) {
6397        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6398        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6399        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
6400        step((generator = generator.apply(thisArg, _arguments || [])).next());
6401    });
6402};
6403var priceStakSynchronizer_a;
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414var DropdownEvent;
6415(function (DropdownEvent) {
6416    DropdownEvent["SHOW"] = "show";
6417    DropdownEvent["HIDE"] = "hide";
6418})(DropdownEvent || (DropdownEvent = {}));
6419var DropdownButtonText;
6420(function (DropdownButtonText) {
6421    DropdownButtonText["MORE"] = "More";
6422    DropdownButtonText["LESS"] = "Less";
6423})(DropdownButtonText || (DropdownButtonText = {}));
6424var DoTaggingResult;
6425(function (DoTaggingResult) {
6426    DoTaggingResult["INCREASE"] = "increase";
6427    DoTaggingResult["DECREASE"] = "decrease";
6428})(DoTaggingResult || (DoTaggingResult = {}));
6429let PriceStakSynchronizer = class PriceStakSynchronizer {
6430    constructor(storeProvider) {
6431        this.priceStakSyncDataModel = new PriceStakSyncDataModel();
6432        this.storeProvider = storeProvider;
6433    }
6434    initialize(scrollType, causeOfVehicleLoad = vehicleLoadCause/* VehicleLoadCause */.q.Unknown) {
6435        this.globalStore = this.storeProvider.getGlobalStore();
6436        if (scrollType === srpScrollType/* SrpScrollType */.v.InfiniteScroll) {
6437            // Set all pricestak dropdowns to open/close when the dropdown is clicked
6438            if (!this.priceStakSyncDataModel.dropdowns) {
6439                this.getElements();
6440                this.addPriceStakDropdownListeners();
6441            }
6442            else {
6443                let newDropdownStartIndex = this.priceStakSyncDataModel.dropdowns.length > 0 ? this.priceStakSyncDataModel.dropdowns.length - 1 : 0;
6444                if (causeOfVehicleLoad != vehicleLoadCause/* VehicleLoadCause */.q.InfiniteScroll) {
6445                    //start from 0 if we filtered vehicles (infinite scroll)
6446                    newDropdownStartIndex = 0;
6447                }
6448                this.getElements();
6449                // Add listeners only for new pricestak dropdowns (infinite scroll)
6450                this.addPriceStakDropdownListeners(newDropdownStartIndex);
6451                // Sync dropdowns
6452                let firstDropdown = this.priceStakSyncDataModel.dropdownButtons[0];
6453                if (firstDropdown) {
6454                    const ariaExpanded = firstDropdown.getAttribute('aria-expanded');
6455                    const eventType = ariaExpanded === 'true' ? DropdownEvent.SHOW : DropdownEvent.HIDE;
6456                    this.toggleDropdowns(eventType, newDropdownStartIndex);
6457                }
6458            }
6459            this.addPriceStakDropdownResizeObserver();
6460            // Set all pricestak tabs to switch when a tab is clicked
6461            if (!this.priceStakSyncDataModel.priceStackTabs) {
6462                this.setPriceStakTabDataModel();
6463                this.setPriceStakTabListeners();
6464                this.checkForQuerystringOverrides();
6465                this.switchAllTabs();
6466            }
6467            else {
6468                this.setPriceStakTabListeners();
6469                this.switchAllTabs();
6470            }
6471        }
6472        else {
6473            //set pricestak dropdowns for pagination
6474            this.getElements();
6475            this.addPriceStakDropdownListeners();
6476            // Sync Dropdowns
6477            let firstDropdown = this.priceStakSyncDataModel.dropdownButtons[0];
6478            if (firstDropdown) {
6479                const ariaExpanded = firstDropdown.getAttribute('aria-expanded');
6480                const eventType = ariaExpanded === 'true' ? DropdownEvent.SHOW : DropdownEvent.HIDE;
6481                this.toggleDropdowns(eventType);
6482            }
6483            this.addPriceStakDropdownResizeObserver();
6484            //set pricestak tabs for pagination
6485            this.setPriceStakTabDataModel();
6486            this.setPriceStakTabListeners();
6487            this.checkForQuerystringOverrides();
6488            this.switchAllTabs();
6489        }
6490    }
6491    ;
6492    scrollAnchorAfter(target, buttonBeforeY) {
6493        return priceStakSynchronizer_awaiter(this, void 0, void 0, function* () {
6494            let buttonAfterY = yield this.getTargetScrollTop(target);
6495            window.scrollTo(0, window.scrollY - (buttonBeforeY - buttonAfterY));
6496            setTimeout(() => this.globalStore.updateProgramaticScroll(false), 500);
6497        });
6498    }
6499    getTargetScrollTop(target) {
6500        return priceStakSynchronizer_awaiter(this, void 0, void 0, function* () {
6501            let boundingRect;
6502            yield (0,performanceHelpers/* doBeforeNextRepaint */.L)(() => {
6503                boundingRect = target.getBoundingClientRect();
6504            });
6505            return boundingRect.top;
6506        });
6507    }
6508    setPriceStakTabDataModel() {
6509        var widgetDataElement = document.getElementById('priceStakDataModel');
6510        if (widgetDataElement && widgetDataElement.textContent) {
6511            this.priceStakSyncDataModel.priceStakDataModel = JSON.parse(widgetDataElement.textContent);
6512        }
6513        else {
6514            this.priceStakSyncDataModel.priceStakDataModel = new PriceStakDataModel('buy');
6515        }
6516    }
6517    checkForQuerystringOverrides() {
6518        var queryString = window.location.search.toLocaleLowerCase();
6519        if (queryString.includes('?pricerange') || queryString.includes('&pricerange')) {
6520            this.priceStakSyncDataModel.priceStakDataModel.selectedTab = 'buy';
6521        }
6522        else if (queryString.includes('financepricerange')) {
6523            this.priceStakSyncDataModel.priceStakDataModel.selectedTab = 'finance';
6524        }
6525        else if (queryString.includes('leasepricerange')) {
6526            this.priceStakSyncDataModel.priceStakDataModel.selectedTab = 'lease';
6527        }
6528    }
6529    setPriceStakTabListeners() {
6530        // The query below already excludes every button that has a listener, so the whole list is new and all
6531        // of it gets wired up. Starting from a saved index would skip buttons that were never wired up and
6532        // leave them to Bootstrap, which flips .active behind Vue's back and blanks the card.
6533        this.priceStakSyncDataModel.priceStackTabs = document.querySelectorAll('[data-pricestak-tab]:not([data-pricestack-tabs-init="true"])');
6534        this.addPriceStakTabListeners();
6535    }
6536    addPriceStakTabListeners() {
6537        for (let i = 0; i < this.priceStakSyncDataModel.priceStackTabs.length; i++) {
6538            const button = this.priceStakSyncDataModel.priceStackTabs[i];
6539            if (button) {
6540                button.addEventListener('click', (event) => priceStakSynchronizer_awaiter(this, void 0, void 0, function* () {
6541                    let target = event.currentTarget;
6542                    let buttonBeforeY = yield this.getTargetScrollTop(target);
6543                    this.priceStakSyncDataModel.priceStakDataModel.selectedTab = (target).getAttribute('data-pricestak-tab');
6544                    pricingTypeCookie/* PricingTypeCookie */.L.setPricingTypeCookie(this.priceStakSyncDataModel.priceStakDataModel.selectedTab);
6545                    this.globalStore.updateProgramaticScroll(true);
6546                    this.switchAllTabs();
6547                    yield this.scrollAnchorAfter(target, buttonBeforeY);
6548                }));
6549                button.setAttribute('data-pricestack-tabs-init', 'true');
6550            }
6551        }
6552    }
6553    switchAllTabs() {
6554        var _a;
6555        var allTabContainers = document.querySelectorAll('[data-pricestak-main]');
6556        let selectedTab = (_a = pricingTypeCookie/* PricingTypeCookie */.L.currentCookieValue) !== null && _a !== void 0 ? _a : this.priceStakSyncDataModel.priceStakDataModel.selectedTab;
6557        // send event to Vue priceStakTabs to set the tabs correctly on refresh
6558        document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.SwitchPricingTab, { detail: selectedTab }));
6559        allTabContainers.forEach((tabContainer) => {
6560            // Vue-rendered pricestaks drive their own .active classes off the SwitchPricingTab event dispatched
6561            // above. Touching them here is what lets the DOM and Vue's v-show state disagree.
6562            if (tabContainer.dataset.pricestakVueManaged === 'true') {
6563                return;
6564            }
6565            //check for tab, if it does not exist in this tab container, try buy
6566            //CONPLAT-2374: Use the PricingTypeCookie value to determine the selected tab
6567            var tabSelector = `[data-pricestak-tab='${selectedTab}']`;
6568            var selectedTabElement = tabContainer.querySelector(tabSelector);
6569            if (selectedTabElement) {
6570                this.switchTab(tabContainer, selectedTab);
6571            }
6572            else {
6573                //if there is no "buy" tab, nothing to do
6574                var defaultTabSelector = `[data-pricestak-tab='buy']`;
6575                var defaultTabElement = tabContainer.querySelector(defaultTabSelector);
6576                if (defaultTabElement) {
6577                    this.switchTab(tabContainer, 'buy');
6578                }
6579            }
6580        });
6581    }
6582    switchTab(tabContainer, newTabName) {
6583        var _a, _b, _c, _d;
6584        if (tabContainer) {
6585            const currentTabWrapper = tabContainer.querySelector('[data-pricestak-tab-wrapper].active');
6586            const currentTabButton = currentTabWrapper === null || currentTabWrapper === void 0 ? void 0 : currentTabWrapper.querySelector('[data-pricestak-tab]');
6587            const currentTabPane = tabContainer.querySelector('[data-pricestak-tab-pane].active');
6588            const newTabWrapper = tabContainer.querySelector(`[data-
6588pricestak-tab-wrapper="${newTabName}"]`);
6589            const newTabButton = tabContainer.querySelector(`[data-pricestak-tab="${newTabName}"]`);
6590            const newTabPane = tabContainer.querySelector(`[data-pricestak-tab-pane="${newTabName}"]`);
6591            (_a = currentTabWrapper === null || currentTabWrapper === void 0 ? void 0 : currentTabWrapper.classList) === null || _a === void 0 ? void 0 : _a.remove('active');
6592            currentTabButton === null || currentTabButton === void 0 ? void 0 : currentTabButton.setAttribute('aria-expanded', 'false');
6593            (_b = currentTabPane === null || currentTabPane === void 0 ? void 0 : currentTabPane.classList) === null || _b === void 0 ? void 0 : _b.remove('active');
6594            (_c = newTabWrapper === null || newTabWrapper === void 0 ? void 0 : newTabWrapper.classList) === null || _c === void 0 ? void 0 : _c.add('active');
6595            newTabButton === null || newTabButton === void 0 ? void 0 : newTabButton.setAttribute('aria-expanded', 'true');
6596            (_d = newTabPane === null || newTabPane === void 0 ? void 0 : newTabPane.classList) === null || _d === void 0 ? void 0 : _d.add('active');
6597        }
6598    }
6599    getElements() {
6600        this.priceStakSyncDataModel.dropdowns = document.querySelectorAll('[data-pricestak-element="collapse"]');
6601        this.priceStakSyncDataModel.dropdownButtons = document.querySelectorAll('[data-pricestak-element="collapse-button"]');
6602        this.priceStakSyncDataModel.dropdownButtonLabels = document.querySelectorAll('[data-pricestak-element="collapse-button-label"]');
6603    }
6604    addPriceStakDropdownListeners(startIndex = 0) {
6605        if (this.priceStakSyncDataModel.dropdowns && this.priceStakSyncDataModel.dropdownButtonLabels) {
6606            for (let i = startIndex; i < this.priceStakSyncDataModel.dropdowns.length; i++) {
6607                const button = this.priceStakSyncDataModel.dropdownButtons[i];
6608                // we want to add a dropdown-listener attribute to avoid duplicate listeners that will cause incorrect
6609                // dropdown labels
6610                if (button && button.getAttribute('dropdown-listener') !== 'enabled') {
6611                    button.addEventListener('click', (event) => {
6612                        this.dropdownButtonCallback(event);
6613                    });
6614                    button.setAttribute('dropdown-listener', 'enabled');
6615                }
6616            }
6617            window.jQuery(this.priceStakSyncDataModel.dropdowns).on('hidden.bs.collapse', (event) => {
6618                this.toggleDropdownResizeObservation(false);
6619            });
6620            window.jQuery(this.priceStakSyncDataModel.dropdowns).on('shown.bs.collapse', (event) => {
6621                this.toggleDropdownResizeObservation(false);
6622            });
6623        }
6624    }
6625    dropdownButtonCallback(event) {
6626        var _a;
6627        event.preventDefault();
6628        const clickedElement = event.target;
6629        const clickedButton = clickedElement.closest('[data-pricestak-element="collapse-button"]');
6630        const target_DropdownSelector = (_a = clickedButton === null || clickedButton === void 0 ? void 0 : clickedButton.dataset) === null || _a === void 0 ? void 0 : _a.target;
6631        const currentDropdown = document.querySelector(target_DropdownSelector);
6632        // only allow opening/closing the dropdown if its not already in the process of opening/closing
6633        if (!currentDropdown.classList.contains("collapsing")) {
6634            const scrollbarPositionBeforeToggle = document.documentElement.scrollTop;
6635            const scrollHeightBeforeToggle = document.documentElement.scrollHeight;
6636            this.priceStakSyncDataModel.currentScrollbarRatio = scrollbarPositionBeforeToggle / scrollHeightBeforeToggle;
6637            const ariaExpanded = clickedButton.getAttribute('aria-expanded');
6638            this.toggleDropdownResizeObservation(true, currentDropdown);
6639            if (ariaExpanded != null) {
6640                const eventType = ariaExpanded === 'true' ? DropdownEvent.HIDE : DropdownEvent.SHOW;
6641                this.toggleDropdowns(eventType);
6642            }
6643        }
6644    }
6645    addPriceStakDropdownResizeObserver() {
6646        if (!this.priceStakSyncDataModel.resizeObserver) {
6647            this.priceStakSyncDataModel.resizeObserver = new ResizeObserver(() => {
6648                const scrollHeightAfterToggle = document.documentElement.scrollHeight;
6649                const scrollbarPositionAfterToggle = scrollHeightAfterToggle * this.priceStakSyncDataModel.currentScrollbarRatio;
6650                document.documentElement.scrollTo({ top: scrollbarPositionAfterToggle });
6651            });
6652        }
6653    }
6654    toggleDropdownResizeObservation(shouldObserve, currentDropdown = null) {
6655        if (currentDropdown) {
6656            if (shouldObserve) {
6657                this.priceStakSyncDataModel.resizeObserver.observe(currentDropdown);
6658            }
6659            else {
6660                this.priceStakSyncDataModel.resizeObserver.unobserve(currentDropdown);
6661            }
6662        }
6663    }
6664    toggleDropdowns(eventType, startIndex = 0) {
6665        const newButtonLabel = eventType === DropdownEvent.SHOW ? DropdownButtonText.LESS : DropdownButtonText.MORE;
6666        const newButtonDoTaggingResult = eventType === DropdownEvent.SHOW ? DoTaggingResult.DECREASE : DoTaggingResult.INCREASE;
6667        for (let i = startIndex; i < this.priceStakSyncDataModel.dropdownButtons.length; i++) {
6668            const label = this.priceStakSyncDataModel.dropdownButtonLabels[i];
6669            const dropdown = this.priceStakSyncDataModel.dropdowns[i];
6670            const doTaggedButton = this.priceStakSyncDataModel.dropdownButtons[i];
6671            doTaggedButton.setAttribute('data-dotagging-event-action-result', newButtonDoTaggingResult);
6672            label.innerText = newButtonLabel;
6673            $(dropdown).collapse(eventType);
6674        }
6675    }
6676};
6677PriceStakSynchronizer = priceStakSynchronizer_decorate([
6678    (0,inversify/* injectable */._G)(),
6679    priceStakSynchronizer_param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IStoreProvider)),
6680    priceStakSynchronizer_metadata("design:paramtypes", [typeof (priceStakSynchronizer_a = typeof iStoreProvider/* IStoreProvider */.y !== "undefined" && iStoreProvider/* IStoreProvider */.y) === "function" ? priceStakSynchronizer_a : Object])
6681], PriceStakSynchronizer);
6682
6683
6684// EXTERNAL MODULE: ./src/components/shareVehicleModal/shareVehicleModal.ts + 1 modules
6685var shareVehicleModal = __webpack_require__(4999);
6686// EXTERNAL MODULE: ./src/components/oem/ford/evnVideoPlayer.ts
6687var evnVideoPlayer = __webpack_require__(3925);
6688;// ./src/services/oem/oemVehicleStatusService/oemVehicleStatusService.ts
6689var oemVehicleStatusService_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6690    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6691    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6692    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6693    return c > 3 && r && Object.defineProperty(target, key, r), r;
6694};
6695var oemVehicleStatusService_metadata = (undefined && undefined.__metadata) || function (k, v) {
6696    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
6697};
6698var oemVehicleStatusService_param = (undefined && undefined.__param) || function (paramIndex, decorator) {
6699    return function (target, key) { decorator(target, key, paramIndex); }
6700};
6701var oemVehicleStatusService_a;
6702
6703
6704
6705let OemVehicleStatusService = class OemVehicleStatusService {
6706    constructor(translationService) {
6707        this.translationService = translationService;
6708    }
6709    getVehicleStatusLabel(stage) {
6710        const compareText = decodeURIComponent(stage).toLowerCase();
6711        let label = stage;
6712        // TODO: We need to bring down the actual OemProgram to the front end so that we can check specifically if the Dealer is that Oem type (e.g. Dealer == Ford, etc)
6713        switch (compareText) {
6714            // Ford/Lincoln
6715            case "stockinventory":
6716                label = this.translationService.getLabel("IN_STOCK");
6717                break;
6718            case "stockintransit":
6719                label = this.translationService.getLabel("IN_TRANSIT");
6720                break;
6721            case "stockinplant":
6722                label = this.translationService.getLabel("DEALER_ORDERED");
6723                break;
6724            case "extendedinventory":
6725                label = this.translationService.getLabel("EXTENDED_INVENTORY");
6726                break;
6727            case "fctp_readyforsale":
6728                label = this.translationService.getLabel("FCTP_READY_FOR_SALE");
6729                break;
6730            case "fctp_inservice":
6731                label = this.translationService.getLabel("FCTP_INSERVICE_SHORT");
6732                break;
6733            case "available":
6734                label = this.translationService.getLabel("SRP_REFINEMENT_AVAILABLE");
6735                break;
6736            // GM
6737            case "in-transit retail stock":
6738                label = this.translationService.getLabel("IN_TRANSIT");
6739                break;
6740            case "courtesy car retail stock":
6741                label = this.translationService.getLabel("FCTP_READY_FOR_SALE");
6742                break;
6743            case "dealer retail grounded stock":
6744                label = this.translationService.getLabel("IN_STOCK");
6745                break;
6746            case "dealer demo retail stock":
6747                label = this.translationService.getLabel("DEMO_VEHICLE");
6748                break;
6749            case "driver ed retail stock":
6750                label = this.translationService.getLabel("DRIVER_ED_VEHICLE");
6751                break;
6752            default:
6753                label = stage;
6754                break;
6755        }
6756        return label;
6757    }
6758};
6759OemVehicleStatusService = oemVehicleStatusService_decorate([
6760    (0,inversify/* injectable */._G)(),
6761    oemVehicleStatusService_param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.ITranslationService)),
6762    oemVehicleStatusService_metadata("design:paramtypes", [typeof (oem
6762VehicleStatusService_a = typeof iTranslationService/* ITranslationService */.o !== "undefined" && iTranslationService/* ITranslationService */.o) === "function" ? oemVehicleStatusService_a : Object])
6763], OemVehicleStatusService);
6764
6765
6766;// ./src/core/enums/localStorageContainer.ts
6767var LocalStorageContainer;
6768(function (LocalStorageContainer) {
6769    LocalStorageContainer["SignalsForYouDql"] = "do_signals_personalized_vehicles_query";
6770})(LocalStorageContainer || (LocalStorageContainer = {}));
6771
6772;// ./src/services/personalizationService/personalizationService.ts
6773var personalizationService_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6774    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6775    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6776    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6777    return c > 3 && r && Object.defineProperty(target, key, r), r;
6778};
6779var personalizationService_metadata = (undefined && undefined.__metadata) || function (k, v) {
6780    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
6781};
6782var personalizationService_param = (undefined && undefined.__param) || function (paramIndex, decorator) {
6783    return function (target, key) { decorator(target, key, paramIndex); }
6784};
6785var PersonalizationService_1;
6786var personalizationService_a;
6787
6788
6789
6790
6791let PersonalizationService = PersonalizationService_1 = class PersonalizationService {
6792    constructor(toggleService) {
6793        this.toggleService = toggleService;
6794    }
6795    isForYouFilterEnabled() {
6796        return this.getSignalsForYouDql() != null;
6797    }
6798    getSignalsForYouDql(url = "") {
6799        var getSignalsForYouDql = localStorage.getItem(LocalStorageContainer.SignalsForYouDql);
6800        // Check the query to see if the we want to override the signalsForYou dql
6801        if (url.includes("overrideForYouDql=")) {
6802            getSignalsForYouDql = this.overrideForYouDql(url);
6803        }
6804        if (!getSignalsForYouDql) {
6805            return null;
6806        }
6807        //NOTE: always base64 encode Dql
6808        let encoded = `${btoa(getSignalsForYouDql).replace(/\+/g, "%2B")}`;
6809        if (encoded.length < PersonalizationService_1.QS_MAX_LENGTH) {
6810            return encoded;
6811        }
6812        else {
6813            return null;
6814        }
6815    }
6816    addPersonalizationParameters(url) {
6817        const signalsDql = this.getSignalsForYouDql(url);
6818        if (signalsDql === null) {
6819            return url;
6820        }
6821        const separator = url.indexOf("?") > -1 ? "&" : "?";
6822        return `${url}${separator}signalsforyoudql=${signalsDql}`;
6823    }
6824    overrideForYouDql(url) {
6825        const queryString = url.split('?')[1] || '';
6826        const params = new URLSearchParams(queryString);
6827        return params.get("overrideForYouDql");
6828    }
6829};
6830PersonalizationService.QS_MAX_LENGTH = 2000;
6831PersonalizationService = PersonalizationService_1 = personalizationService_decorate([
6832    (0,inversify/* injectable */._G)(),
6833    personalizationService_param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IToggleService)),
6834    personalizationService_metadata("design:paramtypes", [typeof (personalizationService_a = typeof iToggleService/* IToggleService */.F !== "undefined" && iToggleService/* IToggleService */.F) === "function" ? personalizationService_a : Object])
6835], PersonalizationService);
6836
6837
6838// EXTERNAL MODULE: ./src/infrastructure/vue/types/appLocation.ts
6839var appLocation = __webpack_require__(8602);
6840// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/globalStore.ts + 11 modules
6841var globalStore = __webpack_require__(3551);
6842// EXTERNAL MODULE: ./src/infrastructure/vue/vehicleCardDeck/globalStore.ts + 1 modules
6843var vehicleCardDeck_globalStore = __webpack_require__(5467);
6844;// ./src/services/stores/storeProvider.ts
6845var storeProvider_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6846    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6847    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6848    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c >
6848 3 ? d(target, key, r) : d(target, key)) || r;
6849    return c > 3 && r && Object.defineProperty(target, key, r), r;
6850};
6851
6852
6853
6854
6855let StoreProvider = class StoreProvider {
6856    initialize(appLocation) {
6857        this.appLocation = appLocation;
6858    }
6859    /**
6860     * Get the global store that a component should pull from based on its app's location
6861     */
6862    getGlobalStore() {
6863        switch (this.appLocation) {
6864            case appLocation/* AppLocation */.V.CosmosSrp:
6865                return (0,globalStore/* useGlobalStore */.o)();
6866            case appLocation/* AppLocation */.V.VehicleCardDeck:
6867                return (0,vehicleCardDeck_globalStore/* useGlobalStore */.o)();
6868            default:
6869                return (0,globalStore/* useGlobalStore */.o)();
6870        }
6871    }
6872};
6873StoreProvider = storeProvider_decorate([
6874    (0,inversify/* injectable */._G)()
6875], StoreProvider);
6876
6877
6878// EXTERNAL MODULE: ./src/components/vehicleDisclaimerModal/vehiclePricestakDisclaimerModal.ts
6879var vehiclePricestakDisclaimerModal = __webpack_require__(6579);
6880// EXTERNAL MODULE: ./src/components/digitalGarage/tdgConfirmAndContactButtons.ts
6881var tdgConfirmAndContactButtons = __webpack_require__(7067);
6882;// ./src/utilities/stringHelpers.ts
6883class StringHelpers {
6884    static isNullOrWhitespace(input) {
6885        if (input === undefined || input == null) {
6886            return true;
6887        }
6888        return input.replace(/\s/g, '').length < 1;
6889    }
6890}
6891
6892;// ./src/services/locationSortModalService/locationSortModalService.ts
6893var locationSortModalService_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
6894    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6895    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
6896    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6897    return c > 3 && r && Object.defineProperty(target, key, r), r;
6898};
6899
6900
6901let LocationSortModalService = class LocationSortModalService {
6902    constructor() {
6903        // These are the three types of interactions we track for the modal.
6904        // Coordinate is associated with the user sharing their GeoLocation,
6905        // zip is associated with the user entering a zip code,
6906        // closed is associated with the user closing the modal in any way without taking action.
6907        this.MODAL_INTERACTION_COORDINATE = 'coordinate';
6908        this.MODAL_INTERACTION_ZIP = 'zip';
6909        this.MODAL_INTERACTION_CLOSED = 'closed';
6910        // Cookie storage keys
6911        this.MODAL_INTERACTION_COOKIE = 'DLRON_LOCATION_MODAL_USED';
6912        this.COORDINATE_COOKIE = 'DLRON_coordinate';
6913        this.ZIP_COOKIE = 'DLRON_ZIP';
6914        this.COORDINATE_PARTIAL = 'DLRON_coordinate_';
6915    }
6916    initialize(defaultSortOrder, enableDistanceModal) {
6917        this.setupModalEventListeners();
6918        //NOTE: EnableDistanceModal only controls whether or not we show the modal on page load.
6919        if (enableDistanceModal && this.shouldShowGeoModalOnLoad(defaultSortOrder)) {
6920            // @ts-ignore
6921            jQuery('#geoFilterModal').modal('show');
6922            this.findCookieAndShowButton();
6923        }
6924    }
6925    askLocation() {
6926        if (!globalThis.DealeronCookie.hasItem(this.COORDINATE_COOKIE)) {
6927            if (navigator.geolocation) {
6928                navigator.geolocation.getCurrentPosition(this.createCoordinateCookie.bind(this), (error) => alert('Error: ' + error.message));
6929            }
6930            else {
6931                alert('Geolocation is not supported by this browser.');
6932            }
6933        }
6934    }
6935    acceptLocation() {
6936        if (this.isLocalStorageAvailable()) {
6937            sessionStorage.setItem(this.COORDINATE_PARTIAL + globalThis.location.href.split('?')[0], "1");
6938        }
6939        else {
6940            alert('Error: Location sharing not enabled in private browsing');
6941        }
6942    }
6943    sortLocationDynamic(selection) {
6944        let selectionValue = "";
6945        if (selection.nodeName.toLowerCase() === "option") {
6946            // @ts-ignore
6947            selectionValue = selection.value;
6948        }
6949        else {
6950            selectionValue = selection.dataset.value;
6951        }
6952        if (!this.isLocationProvided()) {
6953            // @ts-ignore
6954            jQuery('#geoFilterModal').modal('show');
6955            this.findCookieAndShowButton();
6956            const qs = selectionValue.match(/st=([^&]*)/g);
6957            if (qs) {
6958                this.swapOrInsertDistanceSort('hasLocation', qs[0]);
6959                this.swapOrInsertDistanceSort('getLocation', qs[0]);
6960                this.swapOrInsertDistanceSort('zipSearchModalBtn', qs[0]);
6961            }
6962        }
6963    }
6964    zipcodeSearchDynamic(event) {
6965        event.preventDefault();
6966        const zip = jQuery('#zipCodeModalTxt').val();
6967        if (StringHelpers.isNullOrWhitespace(zip) || this.isInvalidUSZip(zip)) {
6968            document.getElementById('zipCodeModalTxt').style.borderColor = 'red';
6969        }
6970        else {
6971            globalThis.DealeronCookie.setItem(this.ZIP_COOKIE, zip);
6972            this.setModalInteraction(this.MODAL_INTERACTION_ZIP);
6973            // i hate this
6974            const button = document.getElementById('dynamicZip');
6975            button.innerHTML = zip;
6976            button.click();
6977            // @ts-ignore
6978            jQuery('#geoFilterModal').modal('hide');
6979        }
6980    }
6981    // --------------  Private helper methods --------------
6982    // create cookie and querystring with location
6983    createCoordinateCookie(position) {
6984        const querystring = position.coords.latitude.toFixed(3) + '|' + position.coords.longitude.toFixed(3);
6985        if (this.isLocalStorageAvailable()) {
6986            // Use a normalized path ('/') to ensure subsequent retrieval works across environments
6987            globalThis.DealeronCookie.setItem(this.COORDINATE_COOKIE, querystring, null, '/');
6988            this.setModalInteraction(this.MODAL_INTERACTION_COORDINATE);
6989            this.loadWithCoordinate(querystring);
6990        }
6991        else {
6992            alert('Error: Location sharing not enabled in private browsing');
6993        }
6994    }
6995    // show correct button, append query string values setup to button values
6996    findCookieAndShowButton() {
6997        const url = globalThis.location.href;
6998        if (!url.includes('ZipCode')) {
6999            if (url.includes('?')) {
7000                jQuery('#zipSearchModalBtn').val(url + '&ZipCode=');
7001            }
7002            else {
7003                jQuery('#zipSearchModalBtn').val(url + '?ZipCode=');
7004            }
7005        }
7006        if (url.includes('?')) {
7007            jQuery('#getLocation').val(url + '&currentlocation=');
7008        }
7009        else {
7010            jQuery('#getLocation').val(url + '?currentlocation=');
7011        }
7012    }
7013    isLocalStorageAvailable() {
7014        try {
7015            sessionStorage.setItem('testKey', '1');
7016            sessionStorage.removeItem('testKey');
7017            return true;
7018        }
7019        catch (error) {
7020            alert('Error: session storage not available');
7021            return false;
7022        }
7023    }
7024    isInvalidUSZip(zip) {
7025        return !/(^\d{5}$)|(^\d{5}-\d{4}$)/.test(zip);
7026    }
7027    isLocationProvided() {
7028        const coord = globalThis.DealeronCookie.getItem(this.COORDINATE_COOKIE);
7029        const zip = globalThis.DealeronCookie.getItem(this.ZIP_COOKIE);
7030        return !!coord || !!zip;
7031    }
7032    loadWithCoordinate(querystring) {
7033        sessionStorage.setItem(this.COORDINATE_PARTIAL + globalThis.location.href.split('?')[0], "1");
7034        globalThis.location.href = jQuery('#getLocation').val().replace('currentlocation=', 'currentlocation=' + this.trimLatLongCoordinate(querystring));
7035    }
7036    setModalInteraction(type) {
7037        // Persist interaction for all recognized modal interaction states:
7038        //  - coordinate: user shared geolocation
7039        //  - zip: user provided a zip code
7040        //  - closed: user explicitly dismissed without providing location
7041        // Storing 'closed' lets us suppress automatic re-opening while still
7042        // allowing an explicit distance sort selection to re-trigger the modal.
7043        if ([
7044            this.MODAL_INTERACTION_COORDINATE,
7045            this.MODAL_INTERACTION_ZIP,
7046            this.MODAL_INTERACTION_CLOSED
7047        ].includes(type)) {
7048            globalThis.DealeronCookie.setItem(this.MODAL_INTERACTION_COOKIE, type, null, '/');
7049        }
7050    }
7051    setupModalEventListeners() {
7052        $('#geoFilterModal').on('hidden.bs.modal', (e) => {
7053            const used = globalThis.DealeronCookie.getItem(this.MODAL_INTERACTION_COOKIE);
7054            if ((used != this.MODAL_INTERACTION_COORDINATE) && (used != this.MODAL_INTERACTION_ZIP)) {
7055                this.setModalInteraction(this.MODAL_INTERACTION_CLOSED);
7056            }
7057        });
7058    }
7059    shouldShowGeoModalOnLoad(defaultSortOrder) {
7060        var _a, _b, _c;
7061        const url = globalThis.location.href;
7062        const normalizedDefault = (_a = defaultSortOrder === null || defaultSortOrder === void 0 ? void 0 : defaultSortOrder.toLowerCase()) !== null && _a !== void 0 ? _a : '';
7063        let params;
7064        try {
7065            params = new URL(url).searchParams;
7066        }
7067        catch (_d) {
7068            // Fallback: create params from substring after '?'
7069            const query = (_b = url.split('?')[1]) !== null && _b !== void 0 ? _b : '';
7070            params = new URLSearchParams(query);
7071        }
7072        const st = (_c = params.get('st')) === null || _c === void 0 ? void 0 : _c.toLowerCase();
7073        const isSortByDistance = st ? st.startsWith('distance') : normalizedDefault.includes('distance');
7074        // Presence of location indicators in query string
7075        const hasCoordInUrl = params.has('currentlocation');
7076        // Accept both ZipCode and zipcode variants
7077        const hasZipInUrl = params.has('ZipCode') || params.has('zipcode');
7078        const hasLocationInUrl = hasCoordInUrl || hasZipInUrl;
7079        // Stored location (cookie) only reflects actual coordinate or zip
7080        const hasStoredLocation = this.isLocationProvided();
7081        // If user previously closed the modal without supplying location, suppress auto-display.
7082        const interaction = globalThis.DealeronCookie.getItem(this.MODAL_INTERACTION_COOKIE);
7083        const userPreviouslyClosed = interaction === this.MODAL_INTERACTION_CLOSED;
7084        if (userPreviouslyClosed) {
7085            return false;
7086        }
7087        // Show modal only if sorting by distance and neither URL nor stored location present
7088        return isSortByDistance && !hasLocationInUrl && !hasStoredLocation;
7089    }
7090    swapOrInsertDistanceSort(id, distanceFilter) {
7091        var _a;
7092        let previous = (_a = jQuery('#' + id).val()) !== null && _a !== void 0 ? _a : '';
7093        if (/([?&])st=([^&]*)/i.test(previous)) {
7094            previous = previous
7095                .replace(/&st=([^&]*)/gi, `&${distanceFilter}`)
7096                .replace(/\?st=([^&]*)/gi, `?${distanceFilter}`);
7097        }
7098        else {
7099            // Append with correct delimiter logic
7100            const delimiter = previous.includes('?') ? '&' : (previous.length > 0 ? (previous.endsWith('&') ? '' : '&') : '');
7101            previous = previous + delimiter + distanceFilter;
7102        }
7103        jQuery('#' + id).val(previous);
7104    }
7105    trimLatLongCoordinate(location) {
7106        const latLong = location.split('|');
7107        return Number.parseFloat(latLong[0]).toFixed(3) + '|' + Number.parseFloat(latLong[1]).toFixed(3);
7108    }
7109};
7110LocationSortModalService = locationSortModalService_decorate([
7111    (0,inversify/* injectable */._G)()
7112], LocationSortModalService);
7113
7114
7115;// ./src/services/navbarSearch/navbarSearchService.ts
7116var navbarSearchService_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7117    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7118    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7119    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
7120    return c > 3 && r && Object.defineProperty(target, key, r), r;
7121};
7122var navbarSearchService_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
7123    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7124    return new (P || (P = Promise))(function (resolve, reject) {
7125        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7126        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7127        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7128        step((generator = generator.apply(thisArg, _arguments || [])).next());
7129    });
7130};
7131
7132
7133let NavbarSearchService = class NavbarSearchService {
7134    constructor() {
7135        this.rootApiUrl = "/api/vhcliaa";
7136        this.getNavigationBarSearchApiUrl = (dealerId) => {
7137            var _a, _b;
7138            const searchParams = serviceHelpers/* ServiceHelpers */.d.getBaseApiQueryString(null, null);
7139            const origin = (_b = (_a = globalThis.location) === null || _a === void 0 ? void 0 : _a.origin) !== null && _b !== void 0 ? _b : "";
7140            return `${this.rootApiUrl}/navbar-search/${dealerId}?${serviceHelpers/* ServiceHelpers */.d.mapArrayToQueryString(searchParams)}&host=${origin}`;
7141        };
7142    }
7143    getNavbarSearchSuggestions(dealerId) {
7144        return navbarSearchService_awaiter(this, void 0, void 0, function* () {
7145            const response = yield fetch(this.getNavigationBarSearchApiUrl(dealerId));
7146            if (!response.ok) {
7147                const text = yield response.text();
7148                throw new Error(`Failed to fetch navbar search data: ${response.status} ${text}`);
7149            }
7150            const data = yield response.json();
7151            if (!Array.isArray(data) || !data.every((x) => typeof x === "string")) {
7152                throw new Error("Invalid navbar search suggestions format");
7153            }
7154            return data;
7155        });
7156    }
7157    redirectToSearchPage(searchRoute, query) {
7158        if (!(query === null || query === void 0 ? void 0 : query.trim()) || !searchRoute) {
7159            return;
7160        }
7161        globalThis.location.href = this.parseRedirectUrl(searchRoute, query);
7162    }
7163    getRedirectUrl(searchRoute, query) {
7164        return `${globalThis.location.origin}${this.parseRedirectUrl(searchRoute, query)}`;
7165    }
7166    parseRedirectUrl(searchRoute, query) {
7167        if (!(query === null || query === void 0 ? void 0 : query.trim()) || !searchRoute) {
7168            return '';
7169        }
7170        // Ensure searchRoute starts with / to make it site-root relative
7171        const rootRelativeRoute = searchRoute.startsWith('/') ? searchRoute : `/${searchRoute}`;
7172        const encodedQuery = encodeURIComponent(query).replace(/%20/g, " ");
7173        return `${rootRelativeRoute}?q=${encodedQuery}`;
7174    }
7175};
7176NavbarSearchService = navbarSearchService_decorate([
7177    (0,inversify/* injectable */._G)()
7178], NavbarSearchService);
7179
7180
7181;// ./src/inversify.config.ts
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207const doIocContainer = new inversify/* Container */.mc();
7208doIocContainer.bind(types/* TYPES */.Q.IToggleFetcher).to(toggleFetcher/* ToggleFetcher */.I).inSingletonScope();
7209doIocContainer.bind(types/* TYPES */.Q.ITranslationFetcher).to(defaultTranslationFetcher/* TranslationFetcher */.$).inSingletonScope();
7210doIocContainer.bind(types/* TYPES */.Q.IFilterPanel).to(FilterPanel).inSingletonScope();
7211doIocContainer.bind(types/* TYPES */.Q.IInventoryWasabi).to(InventoryWasabi);
7212doIocContainer.bind(types/* TYPES */.Q.IWasabiFilterState).to(WasabiFilterState).inSingletonScope();
7213doIocContainer.bind(types/* TYPES */.Q.IFilterState).to(FilterState).inSingletonScope();
7214doIocContainer.bind(types/* TYPES */.Q.SrpWasabiGeneral).to(srpWasabi_General/* SrpWasabiGeneral */.d).inSingletonScope();
7215doIocContainer.bind(types/* TYPES */.Q.VehicleCardWasabi).to(vehicleCardWasabi/* VehicleCardWasabi */.a).inSingletonScope();
7216doIocContainer.bind(types/* TYPES */.Q.RangeFilterCosmos).to(RangeFilterCosmos).inSingletonScope();
7217doIocContainer.bind(types/* TYPES */.Q.IVehicleService).to(vehicleService/* VehicleService */.K).inSingletonScope();
7218doIocContainer.bind(types/* TYPES */.Q.IFilterService).to(FilterService).inSingletonScope();
7219doIocContainer.bind(types/* TYPES */.Q.IPriceStakSynchronizer).to(PriceStakSynchronizer).inSingletonScope();
7220doIocContainer.bind(types/* TYPES */.Q.ShareVehicleModel).to(shareVehicleModal/* ShareVehicleModal */.H).inSingletonScope();
7221doIocContainer.bind(types/* TYPES */.Q.EvnVideoPlayer).to(evnVideoPlayer/* EvnVideoPlayer */.U).inSingletonScope();
7222doIocContainer.bind(types/* TYPES */.Q.IToggleService).to(toggleService/* ToggleService */.gH).inSingletonScope();
7223doIocContainer.bind(types/* TYPES */.Q.ITranslationService).to(translationService/* TranslationService */.L).inSingletonScope();
7224doIocContainer.bind(types/* TYPES */.Q.IOemVehicleStatusService).to(OemVehicleStatusService).inSingletonScope();
7225doIocContainer.bind(types/* TYPES */.Q.IPersonalizationService).to(PersonalizationService).inSingletonScope();
7226doIocContainer.bind(types/* TYPES */.Q.IStoreProvider).to(StoreProvider).inSingletonScope();
7227doIocContainer.bind(types/* TYPES */.Q.VehiclePricestakDisclaimerModal).to(vehiclePricestakDisclaimerModal/* VehiclePricestakDisclaimerModal */.F).inSingletonScope();
7228doIocContainer.bind(types/* TYPES */.Q.TdgConfirmAndContactButtons).to(tdgConfirmAndContactButtons/* TdgConfirmAndContactButtons */.Y).inSingletonScope();
7229doIocContainer.bind(types/* TYPES */.Q.ILocationSortModalService).to(LocationSortModalService).inSingletonScope();
7230doIocContainer.bind(types/* TYPES */.Q.INavbarSearchService).to(NavbarSearchService).inSingletonScope();
7231
7232
7233
7234/***/ }),
7235
7236/***/ 3249:
7237/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7238
7239"use strict";
7240/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7241/* harmony export */   q: () => (/* binding */ VehicleLoadCause)
7242/* harmony export */ });
7243var VehicleLoadCause;
7244(function (VehicleLoadCause) {
7245    VehicleLoadCause[VehicleLoadCause["Unknown"] = 0] = "Unknown";
7246    VehicleLoadCause[VehicleLoadCause["InfiniteScroll"] = 1] = "InfiniteScroll";
7247    VehicleLoadCause[VehicleLoadCause["SetPageSize"] = 2] = "SetPageSize";
7248    VehicleLoadCause[VehicleLoadCause["SetPageNumber"] = 3] = "SetPageNumber";
7249})(VehicleLoadCause || (VehicleLoadCause = {}));
7250
7251
7252/***/ }),
7253
7254/***/ 3277:
7255/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7256
7257"use strict";
7258/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7259/* harmony export */   I: () => (/* binding */ UiLocationVersion)
7260/* harmony export */ });
7261//NOTE: This MUST lineup with the EnumUiLocationVersion.cs in the backend. We compare backend int to the int here!
7262var UiLocationVersion;
7263(function (UiLocationVersion) {
7264    UiLocationVersion[UiLocationVersion["SrpWasabi"] = 1] = "SrpWasabi";
7265    UiLocationVersion[UiLocationVersion["VdpHoisin"] = 3] = "VdpHoisin";
7266    UiLocationVersion[UiLocationVersion["VehicleCardDeck"] = 8] = "VehicleCardDeck";
7267})(UiLocationVersion || (UiLocationVersion = {}));
7268
7269
7270/***/ }),
7271
7272/***/ 3318:
7273/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
7274
7275// style-loader: Adds some css to the DOM by adding a <style> tag
7276
7277// load the styles
7278var content = __webpack_require__(3907);
7279if(content.__esModule) content = content.default;
7280if(typeof content === 'string') content = [[module.id, content, '']];
7281if(content.locals) module.exports = content.locals;
7282// add the styles to the DOM
7283var add = (__webpack_require__(8449)/* ["default"] */ .A)
7284var update = add("c1044942", content, false, {});
7285// Hot Module Replacement
7286if(false) {}
7287
7288/***/ }),
7289
7290/***/ 3341:
7291/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7292
7293"use strict";
7294
7295
7296Object.defineProperty(exports, "__esModule", ({
7297  value: true
7298}));
7299exports.BindingWhenOnSyntax = void 0;
7300var binding_on_syntax_1 = __webpack_require__(5078);
7301var binding_when_syntax_1 = __webpack_require__(4533);
7302var BindingWhenOnSyntax = function () {
7303  function BindingWhenOnSyntax(binding) {
7304    this._binding = binding;
7305    this._bindingWhenSyntax = new binding_when_syntax_1.BindingWhenSyntax(this._binding);
7306    this._bindingOnSyntax = new binding_on_syntax_1.BindingOnSyntax(this._binding);
7307  }
7308  BindingWhenOnSyntax.prototype.when = function (constraint) {
7309    return this._bindingWhenSyntax.when(constraint);
7310  };
7311  BindingWhenOnSyntax.prototype.whenTargetNamed = function (name) {
7312    return this._bindingWhenSyntax.whenTargetNamed(name);
7313  };
7314  BindingWhenOnSyntax.prototype.whenTargetIsDefault = function () {
7315    return this._bindingWhenSyntax.whenTargetIsDefault();
7316  };
7317  BindingWhenOnSyntax.prototype.whenTargetTagged = function (tag, value) {
7318    return this._bindingWhenSyntax.whenTargetTagged(tag, value);
7319  };
7320  BindingWhenOnSyntax.prototype.whenInjectedInto = function (parent) {
7321    return this._bindingWhenSyntax.whenInjectedInto(parent);
7322  };
7323  BindingWhenOnSyntax.prototype.whenParentNamed = function (name) {
7324    return this._bindingWhenSyntax.whenParentNamed(name);
7325  };
7326  BindingWhenOnSyntax.prototype.whenParentTagged = function (tag, value) {
7327    return this._bindingWhenSyntax.whenParentTagged(tag, value);
7328  };
7329  BindingWhenOnSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
7330    return this._bindingWhenSyntax.whenAnyAncestorIs(ancestor);
7331  };
7332  BindingWhenOnSyntax.prototype.whenNoAncestorIs = function (ancestor) {
7333    return this._bindingWhenSyntax.whenNoAncestorIs(ancestor);
7334  };
7335  BindingWhenOnSyntax.prototype.whenAnyAncestorNamed = function (name) {
7336    return this._bindingWhenSyntax.whenAnyAncestorNamed(name);
7337  };
7338  BindingWhenOnSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
7339    return this._bindingWhenSyntax.whenAnyAncestorTagged(tag, value);
7340  };
7341  BindingWhenOnSyntax.prototype.whenNoAncestorNamed = function (name) {
7342    return this._bindingWhenSyntax.whenNoAncestorNamed(name);
7343  };
7344  BindingWhenOnSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
7345    return this._bindingWhenSyntax.whenNoAncestorTagged(tag, value);
7346  };
7347  BindingWhenOnSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
7348    return this._bindingWhenSyntax.whenAnyAncestorMatches(constraint);
7349  };
7350  BindingWhenOnSyntax.prototype.whenNoAncestorMatches = function (constraint) {
7351    return this._bindingWhenSyntax.whenNoAncestorMatches(constraint);
7352  };
7353  BindingWhenOnSyntax.prototype.onActivation = function (handler) {
7354    return this._bindingOnSyntax.onActivation(handler);
7355  };
7356  return BindingWhenOnSyntax;
7357}();
7358exports.BindingWhenOnSyntax = BindingWhenOnSyntax;
7359
7360/***/ }),
7361
7362/***/ 3402:
7363/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7364
7365"use strict";
7366/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7367/* harmony export */   h: () => (/* binding */ SpaBreakpoints)
7368/* harmony export */ });
7369class SpaBreakpoints {
7370}
7371SpaBreakpoints.breakpoint539 = 539;
7372SpaBreakpoints.breakpoint640 = 640;
7373SpaBreakpoints.breakpoint991 = 991;
7374SpaBreakpoints.breakpoint1200 = 1200;
7375SpaBreakpoints.breakpoint1533 = 1533;
7376SpaBreakpoints.breakpoint1920 = 1920;
7377
7378
7379/***/ }),
7380
7381/***/ 3415:
7382/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7383
7384"use strict";
7385
7386
7387Object.defineProperty(exports, "__esModule", ({
7388  value: true
7389}));
7390exports.unmanaged = void 0;
7391var METADATA_KEY = __webpack_require__(4725);
7392var metadata_1 = __webpack_require__(8390);
7393var decorator_utils_1 = __webpack_require__(40);
7394function unmanaged() {
7395  return function (target, targetKey, index) {
7396    var metadata = new metadata_1.Metadata(METADATA_KEY.UNMANAGED_TAG, true);
7397    decorator_utils_1.tagParameter(target, targetKey, index, metadata);
7398  };
7399}
7400exports.unmanaged = unmanaged;
7401
7402/***/ }),
7403
7404/***/ 3551:
7405/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
7406
7407"use strict";
7408
7409// EXPORTS
7410__webpack_require__.d(__webpack_exports__, {
7411  o: () => (/* binding */ useGlobalStore)
7412});
7413
7414// EXTERNAL MODULE: ./node_modules/pinia/dist/pinia.mjs + 1 modules
7415var pinia = __webpack_require__(1774);
7416// EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm-browser.prod.js
7417var vue_runtime_esm_browser_prod = __webpack_require__(3568);
7418// EXTERNAL MODULE: ./src/core/enums/srpLayoutType.ts
7419var srpLayoutType = __webpack_require__(2491);
7420;// ./src/components/spaCosmos/head/searchResultsList/searchResultsListModel.ts
7421class SearchResultsListModel {
7422    constructor() {
7423        this.IsRefineSearchHidden = false;
7424    }
7425}
7426
7427;// ./src/components/spaCosmos/head/searchValet/searchValetModel.ts
7428class SearchValetModel {
7429}
7430
7431;// ./src/components/spaCosmos/pagination/searchPaginationModel.ts
7432class SearchPaginationModel {
7433}
7434
7435;// ./src/components/spaCosmos/searchFilters/filterPanel/filterListModel.ts
7436class FilterListModel {
7437    constructor() {
7438        this.Refinements = new Array();
7439    }
7440}
7441
7442;// ./src/components/spaCosmos/searchFilters/filterPanel/filterStateModel.ts
7443
7444class FilterStateModel {
7445    constructor() {
7446        this.FilterList = new FilterListModel();
7447    }
7448}
7449
7450;// ./src/components/spaCosmos/searchFilters/filterPanel/filterPanelModel.ts
7451
7452
7453class FilterPanelModel {
7454    constructor() {
7455        this.FilterList = new FilterListModel();
7456        this.FilterStateModel = new FilterStateModel();
7457        this.HideZeroMatchFilters = false;
7458    }
7459}
7460
7461;// ./src/components/spaCosmos/commonModels/dealerModel.ts
7462class DealerModel {
7463}
7464
7465// EXTERNAL MODULE: ./src/components/spaCosmos/commonModels/srpPageSettingsModel.ts
7466var srpPageSettingsModel = __webpack_require__(6611);
7467;// ./src/components/spaCosmos/commonModels/srpModel.ts
7468
7469
7470
7471
7472
7473
7474
7475class SrpModel {
7476    constructor() {
7477        this.FilterPanelModel = new FilterPanelModel();
7478        this.SearchResultsListModel = new SearchResultsListModel();
7479        this.SearchValetModel = new SearchValetModel();
7480        this.SrpPageSettingsModel = new srpPageSettingsModel/* SrpPageSettingsModel */.J();
7481        this.DealerModel = new DealerModel();
7482        this.SearchPaginationModel = new SearchPaginationModel();
7483        this.TpiSpace = 0;
7484        this.DefaultLayoutType = srpLayoutType/* SrpLayoutType */._.Grid;
7485    }
7486}
7487
7488// EXTERNAL MODULE: ./src/components/spaCosmos/customDropdown/customDropdownModel.ts
7489var customDropdownModel = __webpack_require__(3743);
7490// EXTERNAL MODULE: ./src/components/spaCosmos/utilities/spaBreakpoints.ts
7491var spaBreakpoints = __webpack_require__(3402);
7492// EXTERNAL MODULE: ./src/inversify.config.ts + 24 modules
7493var inversify_config = __webpack_require__(3239);
7494// EXTERNAL MODULE: ./src/services/toggles/toggleService.ts + 1 modules
7495var toggles_toggleService = __webpack_require__(7363);
7496// EXTERNAL MODULE: ./src/types/types.ts
7497var types = __webpack_require__(5644);
7498// EXTERNAL MODULE: ./src/utilities/urlHelpers.ts
7499var urlHelpers = __webpack_require__(7324);
7500// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/customEvents.ts
7501var customEvents = __webpack_require__(9600);
7502// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/filterStore.ts + 1 modules
7503var cosmosSrp_filterStore = __webpack_require__(6055);
7504;// ./src/services/tracker/oemTrackerService.ts
7505function callOemTracker(filters, count) {
7506    if (!window.TrackFilteredSearch) {
7507        return;
7508    }
7509    window.TrackFilteredSearch({ filters, count });
7510}
7511
7512// EXTERNAL MODULE: ./node_modules/lodash.debounce/index.js
7513var lodash_debounce = __webpack_require__(730);
7514var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
7515// EXTERNAL MODULE: ./src/components/spaCosmos/pagination/pagingModel.ts
7516var pagingModel = __webpack_require__(1719);
7517;// ./src/components/spaCosmos/pagination/paginationDataModel.ts
7518class PaginationDataModel {
7519    constructor() {
7520        this.PageEnd = 1;
7521        this.PageNumber = 1;
7522        this.PageStart = 1;
7523        this.TotalPages = 1;
7524        this.TotalCount = 0;
7525    }
7526}
7527
7528// EXTERNAL MODULE: ./src/components/spaCosmos/pagination/srpScrollType.ts
7529var srpScrollType = __webpack_require__(1560);
7530// EXTERNAL MODULE: ./src/components/spaCosmos/utilities/SpaHelpers.ts
7531var SpaHelpers = __webpack_require__(4423);
7532// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/vehicleLoadCause.ts
7533var vehicleLoadCause = __webpack_require__(3249);
7534;// ./src/infrastructure/vue/cosmosSrp/vehicleStore.ts
7535var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
7536    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7537    return new (P || (P = Promise))(function (resolve, reject) {
7538        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7539        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7540        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7541        step((generator = generator.apply(thisArg, _arguments || [])).next());
7542    });
7543};
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557function emitSidekickNoResultsEvent(response) {
7558    var _a, _b, _c, _d;
7559    const totalCount = (_c = (_b = (_a = response === null || response === void 0 ? void 0 : response.Paging) === null || _a === void 0 ? void 0 : _a.PaginationDataModel) === null || _b === void 0 ? void 0 : _b.TotalCount) !== null && _c !== void 0 ? _c : 0;
7560    if (totalCount !== 0 || !(response === null || response === void 0 ? void 0 : response.SidekickTriggerOnSrp)) {
7561        return;
7562    }
7563    globalThis.dispatchEvent(new CustomEvent("open-do-chat", {
7564        detail: {
7565            noResults: (_d = response === null || response === void 0 ? void 0 : response.NoResultsSearchValue) !== null && _d !== void 0 ? _d : ""
7566        }
7567    }));
7568}
7569function srpScrollTop() {
7570    // very hacky, if not impossible to calculate scroll using only DOM elements VHCLIAA controls
7571    const cBlock2Elem = document.querySelector("#cBlock2");
7572    const desktopHeaderElem = document.querySelector(".headerWrapper.full");
7573    const scrollTop = (cBlock2Elem === null || cBlock2Elem === void 0 ? void 0 : cBlock2Elem.offsetTop) - (desktopHeaderElem === null || desktopHeaderElem === void 0 ? void 0 : desktopHeaderElem.offsetHeight);
7574    if (globalThis.scrollY > scrollTop) {
7575        globalThis.scroll({
7576            top: scrollTop,
7577            behavior: 'smooth'
7578        });
7579    }
7580}
7581const useVehicleStore = (0,pinia/* defineStore */.nY)('vehicle', () => {
7582    const globalStore = useGlobalStore();
7583    const vehicleService = inversify_config/* doIocContainer */.E.get(types/* TYPES */.Q.IVehicleService);
7584    const loadingVehicles = (0,vue_runtime_esm_browser_prod/* ref */.KR)(true);
7585    const isInfiniteScrollLoading = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
7586    const loadedScripts = (0,vue_runtime_esm_browser_prod/* ref */.KR)(new Set());
7587    const isConsumerReportsScriptLoaded = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
7588    const isLoadingVehicles = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => loadingVehicles.value);
7589    const causeOfLastVehicleLoad = (0,vue_runtime_esm_browser_prod/* ref */.KR)(vehicleLoadCause/* VehicleLoadCause */.q.Unknown);
7590    // Note: Paging data only loads after the first call to vehicleStore.getCosmosSrpVehicles(). It is
7591    //        not initialized before that call so we need to account for this anywhere we try to access
7592    //        paging data before the first call to get vehicles
7593    const getTpiScripts = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => loadedScripts.value);
7594    const isPagingInitialized = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return ((_b = (_a = globalStore.getSrpModel) === null || _a === void 0 ? void 0 : _a.SearchPaginationModel) === null || _b === void 0 ? void 0 : _b.Paging) !== undefined; });
7595    const getPaginationDataModel = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return (_b = (_a = globalStore.getSrpModel.SearchPaginationModel) === null || _a === void 0 ? void 0 : _a.Paging) === null || _b === void 0 ? void 0 : _b.PaginationDataModel; });
7596    const infiniteScrollMaxReached = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => {
7597        var _a, _b, _c, _d, _e, _f, _g, _h;
7598        return ((_d = (_c = (_b = (_a = globalStore.getSrpModel.SearchPaginationModel) === null || _a === void 0 ? void 0 : _a.Paging) === null || _b === void 0 ? void 0 : _b.PaginationDataModel) === null || _c === void 0 ? void 0 : _c.PageNumber) !== null && _d !== void 0 ? _d : 1) >=
7599            ((_h = (_g = (_f = (_e = globalStore.getSrpModel.SearchPaginationModel) === null || _e === void 0 ? void 0 : _e.Paging) === null || _f === void 0 ? void 0 : _f.PaginationDataModel) === null || _g === void 0 ? void 0 : _g.TotalPages) !== null && _h !== void 0 ? _h : 1);
7600    });
7601    const getVehicleCount = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b, _c; return (_c = (_b = (_a = globalStore.getSrpModel.SearchPaginationModel) === null || _a === void 0 ? void 0 : _a.Paging) === null || _b === void 0 ? void 0 : _b.PaginationDataModel.TotalCount) !== null && _c !== void 0 ? _c : 0; });
7602    const getVehicleScrollType = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return (_b = (_a = globalStore.getSrpModel.SearchPaginationModel) === null || _a === void 0 ? void 0 : _a.SrpScrollType) !== null && _b !== void 0 ? _b : srpScrollType/* SrpScrollType */.v.InfiniteScroll; });
7603    const getTdgHeartVehicles = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return (_b = (_a = globalStore.getSrpModel.SearchPaginationModel) === null || _a === void 0 ? void 0 : _a.TdgSaveHeartVehicles) !== null && _b !== void 0 ? _b : {}; });
7604    const getCauseOfLastVehicleLoad = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => causeOfLastVehicleLoad.value);
7605    function getVehiclesFromVehicleService() {
7606        var _a;
7607        return __awaiter(this, void 0, void 0, function* () {
7608            const response = yield vehicleService.getVehicles(globalStore.getSrpModel.DealerModel.DealerId, globalStore.getSrpModel.PageId, (_a = getPaginationDataModel.value) !== null && _a !== void 0 ? _a : new PaginationDataModel(), globalStore.getSrpModel.BaseFilter, globalStore.getDynamicCountsSearch);
7609            return response;
7610        });
7611    }
7612    //Vehicles
7613    function getCosmosSrpVehicles() {
7614        return __awaiter(this, void 0, void 0, function* () {
7615            try {
7616                loadingVehicles.value = true;
7617                document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.VehicleLoadStart));
7618                const response = yield getVehiclesFromVehicleService();
7619                updateVehiclePagingModel(response);
7620                emitSidekickNoResultsEvent(response);
7621                if (!globalStore.isInitialLoad) {
7622                    //fire OEM specific tagging events
7623                    callOemTracker(location.search, response.Paging.PaginationDataModel.TotalCount);
7624                }
7625                globalStore.setInitialLoad(false);
7626                loadingVehicles.value = false;
7627                document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.VehicleSearchEnd));
7628                //NOTE: CosmosSrpCustomEvents.VehicleLoadEnd is dispatched in other locations to account for
7629                //      infinte scrolling and dynamicVehicleCards. VehicleSearchEnd only fires once so the
7630                //      label containing the vehicle count updates
7631            }
7632            catch (error) {
7633                loadingVehicles.value = false;
7634                document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.VehicleSearchEnd));
7635                console.error(`Error fetching data: ${error}`);
7636            }
7637        });
7638    }
7639    function updateVehiclePagingModel(response) {
7640        globalStore.setConditionalBlock(response.ConditionalBlockHtml);
7641        //update the search pagination information
7642        Object.assign(globalStore.getSrpModel.SearchPaginationModel, response);
7643        //update the search results list information
7644        if (globalStore.getSrpModel.SearchResultsListModel != null && (response === null || response === void 0 ? void 0 : response.SuggestionRedirectModel) != null) {
7645            globalStore.getSrpModel.SearchResultsListModel.HasRedirect = response.SuggestionRedirectModel.HasRedirect;
7646            globalStore.getSrpModel.SearchResultsListModel.HasSuggestion = response.SuggestionRedirectModel.HasSuggestion;
7647            globalStore.getSrpModel.SearchResultsListModel.SearchInsteadUrl = response.SuggestionRedirectModel.SearchInsteadUrl;
7648            globalStore.getSrpModel.SearchResultsListModel.SearchInsteadText = response.SuggestionRedirectModel.SearchInsteadText;
7649            globalStore.getSrpModel.SearchResultsListModel.ShowingResultsForUrl = response.SuggestionRedirectModel.ShowingResultsForUrl;
7650            globalStore.getSrpModel.SearchResultsListModel.ShowingResultsForText = response.SuggestionRedirectModel.ShowingResultsForText;
7651        }
7652    }
7653    function addMoreVehicleCardsOnScroll() {
7654        return __awaiter(this, void 0, void 0, function* () {
7655            try {
7656                isInfiniteScrollLoading.value = true;
7657                causeOfLastVehicleLoad.value = vehicleLoadCause/* VehicleLoadCause */.q.InfiniteScroll;
7658                globalStore.getSrpModel.SearchPaginationModel.Paging.PaginationDataModel.PageNumber++;
7659                document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.VehicleLoadStart));
7660                let baseFilter = globalStore.getSrpModel.BaseFilter;
7661                const response = yield vehicleService.getVehicles(globalStore.getSrpModel.DealerModel.DealerId, globalStore.getSrpModel.PageId, getPaginationDataModel.value, baseFilter, globalStore.getDynamicCountsSearch);
7662                //append the new vehicles to the existing list
7663                globalStore.getSrpModel.SearchPaginationModel.DisplayCards.push(...response.DisplayCards);
7664                //BEGIN OEM WORK
7665                //fire OEM specific tagging events
7666                callOemTracker(location.search, response.Paging.PaginationDataModel.TotalCount);
7667                //update tdg heart vehicles
7668                setTdgSaveHeartVehicles(response.TdgSaveHeartVehicles);
7669                //END OEM WORK
7670                isInfiniteScrollLoading.value = false;
7671                (0,vue_runtime_esm_browser_prod/* nextTick */.dY)(() => {
7672                    document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.VehicleLoadEnd));
7673                });
7674            }
7675            catch (error) {
7676                isInfiniteScrollLoading.value = false;
7677                console.error(`Error fetching data: ${error}`);
7678            }
7679        });
7680    }
7681    const getVehiclesWithDebounce = lodash_debounce_default()(() => __awaiter(void 0, void 0, void 0, function* () {
7682        yield getCosmosSrpVehicles();
7683    }), 500);
7684    // Immediate version for initial page load - bypasses 500ms debounce
7685    const getVehiclesImmediate = () => __awaiter(void 0, void 0, void 0, function* () {
7686        yield getCosmosSrpVehicles();
7687    });
7688    //NOTE: Call this after applying filters and reset the initial page to 1
7689    function getFilteredVehicles() {
7690        globalStore.filterStore.setWaitingToFilterVehicles(false);
7691        this.setPageNumber(1);
7692    }
7693    // Immediate version for initial page load
7694    function getFilteredVehiclesImmediate() {
7695        globalStore.filterStore.setWaitingToFilterVehicles(false);
7696        this.setPageNumber(1, true);
7697    }
7698    //Pagination
7699    function setPageNumber(pageNumber, useImmediate = false) {
7700        var _a;
7701        return __awaiter(this, void 0, void 0, function* () {
7702            if (isPagingInitialized.value) {
7703                // Scroll as early as possible to help UX shift
7704                srpScrollTop();
7705                yield (0,vue_runtime_esm_browser_prod/* nextTick */.dY)();
7706                globalStore.getSrpModel.SearchPaginationModel.Paging.PaginationDataModel.PageNumber = pageNumber;
7707                const removeParm = pageNumber === 1;
7708                globalStore.updateQueryParameter(pagingModel/* PaginationQueryParams */.p.PageNumber, pageNumber, removeParm);
7709                // Update pt=# in dynamicSearchCounts
7710                const dynamicCountsSearch = ((_a = globalStore.getDynamicCountsSearch) !== null && _a !== void 0 ? _a : "").replace(/pt=\d+/, `pt=${pageNumber}`);
7711                globalStore.setDynamicCountsSearch(dynamicCountsSearch);
7712            }
7713            causeOfLastVehicleLoad.value = vehicleLoadCause/* VehicleLoadCause */.q.SetPageNumber;
7714            if (useImmediate) {
7715                yield getVehiclesImmediate();
7716            }
7717            else {
7718                yield getVehiclesWithDebounce();
7719            }
7720        });
7721    }
7722    function setPageSize(pageSize) {
7723        return __awaiter(this, void 0, void 0, function* () {
7724            globalStore.getSrpModel.SearchPaginationModel.Paging.PaginationDataModel.PageSize = pageSize;
7725            globalStore.updateQueryParameter(pagingModel/* PaginationQueryParams */.p.PageSize, pageSize, false);
7726            setPageNumber(1);
7727            causeOfLastVehicleLoad.value = vehicleLoadCause/* VehicleLoadCause */.q.SetPageSize;
7728            yield getVehiclesWithDebounce();
7729        });
7730    }
7731    function isScriptLoaded(scriptSrc) {
7732        if (loadedScripts.value.has(scriptSrc)) {
7733            return true;
7734        }
7735        return false;
7736    }
7737    function addLoadedScript(scriptSrc) {
7738        loadedScripts.value.add(scriptSrc);
7739    }
7740    // Event handler function for TDG heart event
7741    function processTdgVehicleHearts() {
7742        var _a;
7743        if (globalThis.DGDataHub && getTdgHeartVehicles.value && Object.keys(getTdgHeartVehicles.value).length > 0) {
7744            globalThis.DGDataHub.srpSaveItems = getTdgHeartVehicles.value;
7745        }
7746        // dependency components/digitalGarage/main.js
7747        (_a = globalThis.toyotaDigitalGarageScript) === null || _a === void 0 ? void 0 : _a.srpSaveItemsRender();
7748    }
7749    function addConsumerReportsScript() {
7750        if (!isConsumerReportsScriptLoaded.value) {
7751            const url = "/resources/vhcliaa/components/consumerReports/consumerReports.js";
7752            SpaHelpers/* SpaHelpers */.A.loadScript(`${url}?v=${globalThis.DlronGlobal_PlatformVersion}`);
7753            isConsumerReportsScriptLoaded.value = true;
7754        }
7755    }
7756    function setTdgSaveHeartVehicles(tdgVehicles) {
7757        if (tdgVehicles) {
7758            Object.assign(globalStore.getSrpModel.SearchPaginationModel.TdgSaveHeartVehicles, tdgVehicles);
7759        }
7760    }
7761    return {
7762        getCosmosSrpVehicles,
7763        isLoadingVehicles,
7764        addMoreVehicleCardsOnScroll,
7765        isInfiniteScrollLoading,
7766        infiniteScrollMaxReached,
7767        setPageNumber,
7768        setPageSize,
7769        isScriptLoaded,
7770        addLoadedScript,
7771        getFilteredVehicles,
7772        getFilteredVehiclesImmediate,
7773        getVehicleCount,
7774        getVehicleScrollType,
7775        isPagingInitialized,
7776        addConsumerReportsScript,
7777        processTdgVehicleHearts,
7778        getTpiScripts,
7779        getCauseOfLastVehicleLoad,
7780        srpScrollTop,
7781        getVehiclesFromVehicleService,
7782    };
7783});
7784
7785// EXTERNAL MODULE: ./src/components/spaCosmos/head/searchSort/searchSortModel.ts
7786var searchSortModel = __webpack_require__(9092);
7787;// ./src/infrastructure/vue/cosmosSrp/globalStore.ts
7788var globalStore_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
7789    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7790    return new (P || (P = Promise))(function (resolve, reject) {
7791        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7792        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7793        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7794        step((generator = generator.apply(thisArg, _arguments || [])).next());
7795    });
7796};
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810const useGlobalStore = (0,pinia/* defineStore */.nY)('global', () => {
7811    const filterStore = (0,cosmosSrp_filterStore/* useFilterStore */.P)();
7812    const vehicleStore = useVehicleStore();
7813    const activeVehicleDropdown = (0,vue_runtime_esm_browser_prod/* ref */.KR)(null);
7814    const toggleService = inversify_config/* doIocContainer */.E.get(types/* TYPES */.Q.IToggleService);
7815    const currentUrl = (0,vue_runtime_esm_browser_prod/* ref */.KR)("");
7816    //Don't access this directly from outside the globalStore. Instead, use getSrpModel
7817    const srpModel = (0,vue_runtime_esm_browser_prod/* reactive */.Kh)(new SrpModel());
7818    const dropdownStates = (0,vue_runtime_esm_browser_prod/* reactive */.Kh)(new Array());
7819    const initializedDataComplete = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
7820    const initializationError = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
7821    const initialLoad = (0,vue_runtime_esm_browser_prod/* ref */.KR)(true);
7822    const isMobile = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
7823    const currentLayout = (0,vue_runtime_esm_browser_prod/* ref */.KR)(srpModel.DefaultLayoutType);
7824    const dynamicCountsSearch = (0,vue_runtime_esm_browser_prod/* ref */.KR)("");
7825    const getDynamicCountsSearch = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => dynamicCountsSearch.value);
7826    const isProgrammaticScroll = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
7827    function setDynamicCountsSearch(value) {
7828        dynamicCountsSearch.value = value;
7829    }
7830    ;
7831    const getSrpModel = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => srpModel);
7832    const getActiveOem = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => {
7833        try {
7834            const raw = window.DlronGlobal_ActiveOemProgram;
7835            if (!raw)
7836                return null;
7837            if (typeof raw === 'string')
7838                return raw.toLowerCase();
7839            return String(raw).toLowerCase();
7840        }
7841        catch (_a) {
7842            return null;
7843        }
7844    });
7845    const getSearchPageType = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => {
7846        var _a;
7847        return ((_a = srpModel.PageVehicleType) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || 'new';
7848    });
7849    const getInventorySettingsSrp = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => {
7850        var _a, _b;
7851        try {
7852            return (_b = (_a = srpModel === null || srpModel === void 0 ? void 0 : srpModel.FilterPanelModel) === null || _a === void 0 ? void 0 : _a.InventorySettingsSrp) !== null && _b !== void 0 ? _b : null;
7853        }
7854        catch (_c) {
7855            return null;
7856        }
7857    });
7858    const isInitialized = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => initializedDataComplete.value);
7859    const isInitialLoad = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => initialLoad.value);
7860    const getPrimaryMake = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => srpModel.DealerModel.PrimaryMake);
7861    const getIndustry = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => srpModel.DealerModel.Industry);
7862    const getCurrencyCode = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => srpModel.DealerModel.CurrencyCode);
7863    const getActiveVehicleDropdown = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => activeVehicleDropdown.value);
7864    const getDropdownStates = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => dropdownStates);
7865    const getCurrentUrl = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => currentUrl.value);
7866    const getIsTdgDealer = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => srpModel.DealerModel.IsTdgDealer);
7867    function setup() {
7868        return globalStore_awaiter(this, void 0, void 0, function* () {
7869            yield initializeData();
7870            prefetchCalls();
7871            initDropdownDictionary();
7872            initOems();
7873            initBrowserNavigation();
7874        });
7875    }
7876    function initializeData() {
7877        return globalStore_awaiter(this, void 0, void 0, function* () {
7878            yield new Promise((resolve, reject) => {
7879                var _a;
7880                if (!initializedDataComplete.value) {
7881                    try {
7882                        const componentElem = document.querySelector("#dlron-srp-model");
7883                        let json = null;
7884                        if (componentElem) {
7885                            json = JSON.parse((_a = componentElem.textContent) !== null && _a !== void 0 ? _a : "");
7886                            componentElem.remove();
7887                        }
7888                        if (json) {
7889                            Object.assign(srpModel, json);
7890                        }
7891                    }
7892                    catch (e) {
7893                        initializationError.value = true;
7894                        reject(new Error(`Error parsing JSON data from model: ${e}`));
7895                    }
7896                }
7897                initializedDataComplete.value = true;
7898                resolve(true);
7899            });
7900        });
7901    }
7902    function initDropdownDictionary() {
7903        // keys in dropdownStates[] are the numeric values of each enum
7904        // ex. Pagination = 0
7905        for (const dropdownType in Object.keys(customDropdownModel/* DropdownType */.m).filter(key => !Number.isNaN(Number(key)))) {
7906            dropdownStates[Number.parseInt(dropdownType)] = 0;
7907        }
7908    }
7909    function initOems() {
7910        document.addEventListener(customEvents/* CosmosSrpCustomEvents */.A.VehicleLoadEnd, vehicleStore.processTdgVehicleHearts);
7911    }
7912    //Update the conditional blocks.
7913    //This is a special case where we need to remove/update the existing conditional block
7914    //because the conditional block is located outside of the Vue app
7915    function setConditionalBlock(data) {
7916        let parsedData = null;
7917        if ((toggleService === null || toggleService === void 0 ? void 0 : toggleService.getToggleStatus(toggles_toggleService/* Toggle */.lM.DO37371)) === true) {
7918            try {
7919                const json = JSON.parse(data);
7920                if ((json === null || json === void 0 ? void 0 : json.Id) && (json === null || json === void 0 ? void 0 : json.Children) && (json === null || json === void 0 ? void 0 : json.TargetAreaId)) {
7921                    data = `<do-banner target-area="${json.TargetAreaId}" carousel-id="${json.Id}" banner-id="${json.Children}"></do-banner>`;
7922                    parsedData = json;
7923                }
7924                else {
7925                    data = null;
7926                }
7927            }
7928            catch (error) {
7929                console.error("Error parsing conditional block JSON:", error);
7930                data = null;
7931            }
7932        }
7933        const mainContent = document.getElementById("content-main");
7934        let conditionalBlocksParent;
7935        let bannerBlocksParent;
7936        let replaceConditionalBlock = true;
7937        if (mainContent) {
7938            if ((toggleService === null || toggleService === void 0 ? void 0 : toggleService.getToggleStatus(toggles_toggleService/* Toggle */.lM.DO37371)) === true) {
7939                const doBanner = mainContent.querySelector("do-banner");
7940                replaceConditionalBlock = !isBannerDataSame(doBanner, parsedData);
7941                if (replaceConditionalBlock && doBanner) {
7942                    bannerBlocksParent = doBanner.parentElement;
7943                    doBanner.remove();
7944                }
7945            }
7946            // TODO: Remove this when we are ready to remove the old conditional blocks
7947            const conditionalBlocks = mainContent.querySelector(".conditionalBlocks");
7948            if (conditionalBlocks) {
7949                conditionalBlocksParent = conditionalBlocks.parentElement;
7950                conditionalBlocks.remove();
7951            }
7952        }
7953        if ((toggleService === null || toggleService === void 0 ? void 0 : toggleService.getToggleStatus(toggles_toggleService/* Toggle */.lM.DO37371)) === true) {
7954            if (replaceConditionalBlock) {
7955                if (data && bannerBlocksParent) {
7956                    bannerBlocksParent.insertAdjacentHTML("afterbegin", data);
7957                }
7958                else if (data) {
7959                    mainContent.insertAdjacentHTML("afterbegin", data);
7960                }
7961            }
7962        }
7963        else {
7964            //TODO: Remove this when we are ready to remove the old conditional blocks
7965            if (data && conditionalBlocksParent) {
7966                conditionalBlocksParent.insertAdjacentHTML("afterbegin", data);
7967            }
7968            else if (data) {
7969                mainContent.insertAdjacentHTML("afterbegin", data);
7970            }
7971        }
7972    }
7973    function updateQueryParameter(key, value, remove) {
7974        const currentURL = new URL(window.location.href);
7975        const searchParams = urlHelpers/* UrlHelpers */.b.queryStringToArray(currentURL.search);
7976        if (remove) {
7977            const index = searchParams.findIndex(param => param.key === key);
7978            // If the object is found, remove it from the array
7979            if (index > -1) {
7980                searchParams.splice(index, 1);
7981            }
7982        }
7983        else {
7984            // Update or add the query parameter
7985            urlHelpers/* UrlHelpers */.b.setQueryParam(key, value, searchParams);
7986        }
7987        currentURL.search = urlHelpers/* UrlHelpers */.b.mapArrayToQueryString(searchParams);
7988        updateUrlState(currentURL.toString());
7989    }
7990    function updateUrlState(url) {
7991        // We do not push a history state if it is the initial page load
7992        // This allows us to reload the page when using browser navigation
7993        if (!isInitialLoad.value && (url != getCurrentUrl.value)) {
7994            currentUrl.value = url;
7995            history.pushState({}, '', url);
7996        }
7997    }
7998    function initBrowserNavigation() {
7999        window.addEventListener('popstate', () => {
8000            location.reload();
8001        });
8002    }
8003    function setInitialLoad(value) {
8004        initialLoad.value = value;
8005    }
8006    function setActiveVehicleDropdown(value) {
8007        activeVehicleDropdown.value = value;
8008    }
8009    function setDropdownState(type, selectedIndex) {
8010        dropdownStates[type] = selectedIndex;
8011    }
8012    function updateProgramaticScroll(value) {
8013        isProgrammaticScroll.value = value;
8014    }
8015    function setUrlWithDynamicCountFilters() {
8016        // If we have a Dynamic Counts Search (can't add those to url because it will apply on refresh) then we add it to url now
8017        // because we have applied those filters
8018        if (dynamicCountsSearch.value) {
8019            const url = new URL(location.href);
8020            url.search = dynamicCountsSearch.value;
8021            const formattedUrl = url.toString();
8022            updateUrlState(formattedUrl);
8023        }
8024    }
8025    function prefetchCalls() {
8026        // Set mobile state before prefetching using the centralized breakpoint
8027        isMobile.value = window.innerWidth <= spaBreakpoints/* SpaBreakpoints */.h.breakpoint991;
8028        if (isMobile.value && !filterStore.isDynamicFiltering) {
8029            vehicleStore.getVehiclesFromVehicleService();
8030        }
8031        else {
8032            filterStore.getFiltersFromFilterService();
8033            vehicleStore.getVehiclesFromVehicleService();
8034        }
8035    }
8036    function injectBestMatchSortOption(hasActiveSearch) {
8037        var _a, _b;
8038        const sortModels = [
8039            (_a = srpModel.SearchResultsListModel) === null || _a === void 0 ? void 0 : _a.SearchSortModel,
8040            (_b = srpModel.SearchValetModel) === null || _b === void 0 ? void 0 : _b.SearchSortModel
8041        ].filter(model => { var _a; return (_a = model === null || model === void 0 ? void 0 : model.SortOptions) === null || _a === void 0 ? void 0 : _a.length; });
8042        if (sortModels.length === 0) {
8043            return;
8044        }
8045        for (const sortModel of sortModels) {
8046            if (hasActiveSearch) {
8047                let relevanceIndex = sortModel.SortOptions.findIndex(opt => opt.DisplayableSortDataPair.Field === searchSortModel/* SortType */.r3.Relevance && opt.DisplayableSortDataPair.Desce
8047nding);
8048                if (relevanceIndex === -1) {
8049                    const bestMatchOption = new searchSortModel/* SortData */.F2([new searchSortModel/* SortDataPair */.pC(searchSortModel/* SortType */.r3.Relevance, true)], false, 'Relevance desc');
8050                    sortModel.SortOptions.unshift(bestMatchOption);
8051                    relevanceIndex = 0;
8052                }
8053                else if (relevanceIndex > 0) {
8054                    const existingBestMatch = sortModel.SortOptions.splice(relevanceIndex, 1)[0];
8055                    if (!existingBestMatch.RequestWithQueryString) {
8056                        existingBestMatch.RequestWithQueryString = 'Relevance desc';
8057                    }
8058                    sortModel.SortOptions.unshift(existingBestMatch);
8059                    relevanceIndex = 0;
8060                }
8061                else if (!sortModel.SortOptions[0].RequestWithQueryString) {
8062                    sortModel.SortOptions[0].RequestWithQueryString = 'Relevance desc';
8063                }
8064                sortModel.SortSelected = new searchSortModel/* SortDataPair */.pC(searchSortModel/* SortType */.r3.Relevance, true);
8065                setDropdownState(customDropdownModel/* DropdownType */.m.SearchSort, relevanceIndex);
8066                continue;
8067            }
8068            for (let i = sortModel.SortOptions.length - 1; i >= 0; i--) {
8069                if (sortModel.SortOptions[i].DisplayableSortDataPair.Field === searchSortModel/* SortType */.r3.Relevance) {
8070                    sortModel.SortOptions.splice(i, 1);
8071                }
8072            }
8073        }
8074    }
8075    /// NOTE: Double-check if any props added here are also needed for the VehicleCardDeck (ex. /mysavedvehicles page)
8076    /// Props needed for VehicleCardDeck need to be copied over to infrastructure/vue/vehicleCardDeck/globalStore.ts
8077    return {
8078        setup,
8079        getSrpModel,
8080        getActiveOem,
8081        getInventorySettingsSrp,
8082        isInitialized,
8083        isInitialLoad,
8084        setInitialLoad,
8085        updateUrlState,
8086        setConditionalBlock,
8087        updateQueryParameter,
8088        filterStore,
8089        vehicleStore,
8090        getPrimaryMake,
8091        setActiveVehicleDropdown,
8092        getActiveVehicleDropdown,
8093        setDropdownState,
8094        getDropdownStates,
8095        setDynamicCountsSearch,
8096        getDynamicCountsSearch,
8097        isMobile,
8098        currentLayout,
8099        setUrlWithDynamicCountFilters,
8100        getIndustry,
8101        isProgrammaticScroll,
8102        updateProgramaticScroll,
8103        getCurrencyCode,
8104        getSearchPageType,
8105        getIsTdgDealer,
8106        injectBestMatchSortOption
8107    };
8108});
8109function isBannerDataSame(doBanner, data) {
8110    var _a, _b, _c, _d, _e;
8111    if (!doBanner || !data)
8112        return false;
8113    try {
8114        const targetAreaAttr = ((_a = doBanner.getAttribute('target-area')) !== null && _a !== void 0 ? _a : '').trim();
8115        const carouselIdAttr = ((_b = doBanner.getAttribute('carousel-id')) !== null && _b !== void 0 ? _b : '').trim();
8116        const bannerIdAttr = ((_c = doBanner.getAttribute('banner-id')) !== null && _c !== void 0 ? _c : '').trim();
8117        const bannerIds = bannerIdAttr.length ? bannerIdAttr.split(',').map(s => s.trim()).filter(Boolean) : [];
8118        const jsonTarget = String((_d = data.TargetAreaId) !== null && _d !== void 0 ? _d : '').trim();
8119        const jsonId = String((_e = data.Id) !== null && _e !== void 0 ? _e : '').trim();
8120        let jsonChildrenArray = [];
8121        if (typeof data.Children === 'string') {
8122            jsonChildrenArray = data.Children.split(',').map((c) => c.trim()).filter(Boolean);
8123        }
8124        if (jsonTarget !== targetAreaAttr)
8125            return false;
8126        if (jsonId !== carouselIdAttr)
8127            return false;
8128        if (jsonChildrenArray.length !== bannerIds.length)
8129            return false;
8130        return data.Children === bannerIdAttr;
8131    }
8132    catch (e) {
8133        console.error('Error matching do-banner attributes to json:', e);
8134        return false;
8135    }
8136}
8137
8138
8139/***/ }),
8140
8141/***/ 3553:
8142/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
8143
8144"use strict";
8145
8146
8147var __spreadArrays = this && this.__spreadArrays || function () {
8148  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
8149  for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];
8150  return r;
8151};
8152Object.defineProperty(exports, "__esModule", ({
8153  value: true
8154}));
8155exports.resolveInstance = void 0;
8156var error_msgs_1 = __webpack_require__(7718);
8157var literal_types_1 = __webpack_require__(7802);
8158var METADATA_KEY = __webpack_require__(4725);
8159function _injectProperties(instance, childRequests, resolveRequest) {
8160  var propertyInjectionsRequests = childRequests.filter(function (childRequest) {
8161    return childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ClassProperty;
8162  });
8163  var propertyInjections = propertyInjectionsRequests.map(resolveRequest);
8164  propertyInjectionsRequests.forEach(function (r, index) {
8165    var propertyName = "";
8166    propertyName = r.target.name.value();
8167    var injection = propertyInjections[index];
8168    instance[propertyName] = injection;
8169  });
8170  return instance;
8171}
8172function _createInstance(Func, injections) {
8173  return new (Func.bind.apply(Func, __spreadArrays([void 0], injections)))();
8174}
8175function _postConstruct(constr, result) {
8176  if (Reflect.hasMetadata(METADATA_KEY.POST_CONSTRUCT, constr)) {
8177    var data = Reflect.getMetadata(METADATA_KEY.POST_CONSTRUCT, constr);
8178    try {
8179      result[data.value]();
8180    } catch (e) {
8181      throw new Error(error_msgs_1.POST_CONSTRUCT_ERROR(constr.name, e.message));
8182    }
8183  }
8184}
8185function resolveInstance(constr, childRequests, resolveRequest) {
8186  var result = null;
8187  if (childRequests.length > 0) {
8188    var constructorInjectionsRequests = childRequests.filter(function (childRequest) {
8189      return childRequest.target !== null && childRequest.target.type === literal_types_1.TargetTypeEnum.ConstructorArgument;
8190    });
8191    var constructorInjections = constructorInjectionsRequests.map(resolveRequest);
8192    result = _createInstance(constr, constructorInjections);
8193    result = _injectProperties(result, childRequests, resolveRequest);
8194  } else {
8195    result = new constr();
8196  }
8197  _postConstruct(constr, result);
8198  return result;
8199}
8200exports.resolveInstance = resolveInstance;
8201
8202/***/ }),
8203
8204/***/ 3568:
8205/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8206
8207"use strict";
8208/* harmony export */ __webpack_require__.d(__webpack_exports__, {
8209/* harmony export */   $u: () => (/* binding */ ld),
8210/* harmony export */   $y: () => (/* binding */ lx),
8211/* harmony export */   C4: () => (/* binding */ es),
8212/* harmony export */   CE: () => (/* binding */ it),
8213/* harmony export */   D$: () => (/* binding */ ol),
8214/* harmony export */   EW: () => (/* binding */ ij),
8215/* harmony export */   Ef: () => (/* binding */ of),
8216/* harmony export */   FK: () => (/* binding */ r0),
8217/* harmony export */   Fv: () => (/* binding */ ig),
8218/* harmony export */   IG: () => (/* binding */ tC),
8219/* harmony export */   KC: () => (/* binding */ lc),
8220/* harmony export */   KR: () => (/* binding */ tk),
8221/* harmony export */   Kh: () => (/* binding */ tp),
8222/* harmony export */   Lk: () => (/* binding */ iu),
8223/* harmony export */   PS: () => (/* binding */ rl),
8224/* harmony export */   Q3: () => (/* binding */ iv),
8225/* harmony export */   QW: () => (/* binding */ tF),
8226/* harmony export */   R1: () => (/* binding */ tO),
8227/* harmony export */   Tr: () => (/* binding */ en),
8228/* harmony export */   WQ: () => (/* binding */ rn),
8229/* harmony export */   Wv: () => (/* binding */ il),
8230/* harmony export */   aG: () => (/* binding */ sh),
8231/* harmony export */   bF: () => (/* binding */ ic),
8232/* harmony export */   bo: () => (/* binding */ np),
8233/* harmony export */   dY: () => (/* binding */ t9),
8234/* harmony export */   eB: () => (/* binding */ i7),
8235/* harmony export */   eW: () => (/* binding */ ih),
8236/* harmony export */   g2: () => (/* binding */ lS),
8237/* harmony export */   g8: () => (/* binding */ tm),
8238/* harmony export */   hi: () => (/* binding */ lg),
8239/* harmony export */   i9: () => (/* binding */ tw),
8240/* harmony export */   jR: () => (/* binding */ oi),
8241/* harmony export */   jr: () => (/* binding */ e_),
8242/* harmony export */   k6: () => (/* binding */ nf),
8243/* harmony export */   o5: () => (/* binding */ em),
8244/* harmony export */   pI: () => (/* binding */ lT),
8245/* harmony export */   pM: () => (/* binding */ nj),
8246/* harmony export */   sV: () => (/* binding */ lf),
8247/* harmony export */   uX: () => (/* binding */ r3),
8248/* harmony export */   uY: () => (/* binding */ ev),
8249/* harmony export */   ux: () => (/* binding */ tS),
8250/* harmony export */   v6: () => (/* binding */ ib),
8251/* harmony export */   v_: () => (/* binding */ ep),
8252/* harmony export */   wB: () => (/* binding */ rM),
8253/* harmony export */   xo: () => (/* binding */ lh)
8254/* harmony export */ });
8255/* unused harmony exports BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, compile, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, customRef, defineAsyncComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, getCurrentInstance, getCurrentWatcher, getTransitionRawChildren, guardReactiveProps, h, handleError, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, isMemoSame, isProxy, isReadonly, isRuntimeOnly, isShallow, isVNode, mergeDefaults, mergeModels, normalizeProps, onActivated, onBeforeUpdate, onDeactivated, onErrorCaptured, onRenderTracked, onRenderTriggered, onServerPrefetch, onWatcherCleanup, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, readonly, registerRuntimeCompiler, render, renderSlot, resolveDirective, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toHandlerKey, toHandlers, toRef, toValue, transformVNodeArgs, triggerRef, useAttrs, useCssModule, useCssVars, useHost, useId, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, version, warn, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withDefaults, withMemo, withScopeId */
8256/**
8257* vue v3.5.13
8258* (c) 2018-present Yuxi (Evan) You and Vue contributors
8259* @license MIT
8260**/var e, t;
8261let n, l, r, i, s, o, a, u, c, f, p, d;
8262function h(e) {
8263  let t = Object.create(null);
8264  for (let n of e.split(",")) t[n] = 1;
8265  return e => e in t;
8266}
8267let g = {},
8268  m = [],
8269  _ = () => {},
8270  y = () => !1,
8271  b = e => 111 === e.charCodeAt(0) && 110 === e.charCodeAt(1) && (e.charCodeAt(2) > 122 || 97 > e.charCodeAt(2)),
8272  S = e => e.startsWith("onUpdate:"),
8273  C = Object.assign,
8274  x = (e, t) => {
8275    let n = e.indexOf(t);
8276    n > -1 && e.splice(n, 1);
8277  },
8278  E = Object.prototype.hasOwnProperty,
8279  w = (e, t) => E.call(e, t),
8280  k = Array.isArray,
8281  T = e => "[object Map]" === F(e),
8282  A = e => "[object Set]" === F(e),
8283  R = e => "[object Date]" === F(e),
8284  N = e => "[object RegExp]" === F(e),
8285  O = e => "function" == typeof e,
8286  P = e => "string" == typeof e,
8287  M = e => "symbol" == typeof e,
8288  I = e => null !== e && "object" == typeof e,
8289  L = e => (I(e) || O(e)) && O(e.then) && O(e.catch),
8290  D = Object.prototype.toString,
8291  F = e => D.call(e),
8292  V = e => F(e).slice(8, -1),
8293  U = e => "[object Object]" === F(e),
8294  j = e => P(e) && "NaN" !== e && "-" !== e[0] && "" + parseInt(e, 10) === e,
8295  B = h(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),
8296  $ = e => {
8297    let t = Object.create(null);
8298    return n => t[n] || (t[n] = e(n));
8299  },
8300  H = /-(\w)/g,
8301  W = $(e => e.replace(H, (e, t) => t ? t.toUpperCase() : "")),
8302  K = /\B([A-Z])/g,
8303  z = $(e => e.replace(K, "-$1").toLowerCase()),
8304  q = $(e => e.charAt(0).toUpperCase() + e.slice(1)),
8305  G = $(e => e ? `on${q(e)}` : ""),
8306  J = (e, t) => !Object.is(e, t),
8307  X = (e, ...t) => {
8308    for (let n = 0; n < e.length; n++) e[n](...t);
8309  },
8310  Z = (e, t, n, l = !1) => {
8311    Object.defineProperty(e, t, {
8312      configurable: !0,
8313      enumerable: !1,
8314      writable: l,
8315      value: n
8316    });
8317  },
8318  Y = e => {
8319    let t = parseFloat(e);
8320    return isNaN(t) ? e : t;
8321  },
8322  Q = e => {
8323    let t = P(e) ? Number(e) : NaN;
8324    return isNaN(t) ? e : t;
8325  },
8326  ee = () => n || (n = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof __webpack_require__.g ? __webpack_require__.g : {}),
8327  et = h("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");
8328function en(e) {
8329  if (k(e)) {
8330    let t = {};
8331    for (let n = 0; n < e.length; n++) {
8332      let l = e[n],
8333        r = P(l) ? function (e) {
8334          let t = {};
8335          return e.replace(ei, "").split(el).forEach(e => {
8336            if (e) {
8337              let n = e.split(er);
8338              n.length > 1 && (t[n[0].trim()] = n[1].trim());
8339            }
8340          }), t;
8341        }(l) : en(l);
8342      if (r) for (let e in r) t[e] = r[e];
8343    }
8344    return t;
8345  }
8346  if (P(e) || I(e)) return e;
8347}
8348let el = /;(?![^(]*\))/g,
8349  er = /:([^]+)/,
8350  ei = /\/\*[^]*?\*\//g;
8351function es(e) {
8352  let t = "";
8353  if (P(e)) t = e;else if (k(e)) for (let n = 0; n < e.length; n++) {
8354    let l = es(e[n]);
8355    l && (t += l + " ");
8356  } else if (I(e)) for (let n in e) e[n] && (t += n + " ");
8357  return t.trim();
8358}
8359function eo(e) {
8360  if (!e) return null;
8361  let {
8362    class: t,
8363    style: n
8364  } = e;
8365  return t && !P(t) && (e.class = es(t)), n && (e.style = en(n)), e;
8366}
8367let ea = h("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");
8368function eu(e, t) {
8369  if (e === t) return !0;
8370  let n = R(e),
8371    l = R(t);
8372  if (n || l) return !!n && !!l && e.getTime() === t.getTime();
8373  if (n = M(e), l = M(t), n || l) return e === t;
8374  if (n = k(e), l = k(t), n || l) return !!n && !!l && function (e, t) {
8375    if (e.length !== t.length) return !1;
8376    let n = !0;
8377    for (let l = 0; n && l < e.length; l++) n = eu(e[l], t[l]);
8378    return n;
8379  }(e, t);
8380  if (n = I(e), l = I(t), n || l) {
8381    if (!n || !l || Object.keys(e).length !== Object.keys(t).length) return !1;
8382    for (let n in e) {
8383      let l = e.hasOwnProperty(n),
8384        r = t.hasOwnProperty(n);
8385      if (l && !r || !l && r || !eu(e[n], t[n])) return !1;
8386    }
8387  }
8388  return String(e) === String(t);
8389}
8390function ec(e, t) {
8391  return e.findIndex(e => eu(e, t));
8392}
8393let ef = e => !!(e && !0 === e.__v_isRef),
8394  ep = e => P(e) ? e : null == e ? "" : k(e) || I(e) && (e.toString === D || !O(e.toString)) ? ef(e) ? ep(e.value) : JSON.stringify(e, ed, 2) : String(e),
8395  ed = (e, t) => ef(t) ? ed(e, t.value) : T(t) ? {
8396    [`Map(${t.size})`]: [...t.entries()].reduce((e, [t, n], l) => (e[eh(t, l) + " =>"] = n, e), {})
8397  } : A(t) ? {
8398    [`Set(${t.size})`]: [...t.values()].map(e => eh(e))
8399  } : M(t) ? eh(t) : !I(t) || k(t) || U(t) ? t : String(t),
8400  eh = (e, t = "") => {
8401    var n;
8402    return M(e) ? `Symbol(${null != (n = e.description) ? n : t})` : e;
8403  };
8404class eg {
8405  constructor(e = !1) {
8406    this.detached = e, this._active = !0, this.effects = [], this.cleanups = [], this._isPaused = !1, this.parent = l, !e && l && (this.index = (l.scopes || (l.scopes = [])).push(this) - 1);
8407  }
8408  get active() {
8409    return this._active;
8410  }
8411  pause() {
8412    if (this._active) {
8413      let e, t;
8414      if (this._isPaused = !0, this.scopes) for (e = 0, t = this.scopes.length; e < t; e++) this.scopes[e].pause();
8415      for (e = 0, t = this.effects.length; e < t; e++) this.effects[e].pause();
8416    }
8417  }
8418  resume() {
8419    if (this._active && this._isPaused) {
8420      let e, t;
8421      if (this._isPaused = !1, this.scopes) for (e = 0, t = this.scopes.length; e < t; e++) this.scopes[e].resume();
8422      for (e = 0, t = this.effects.length; e < t; e++) this.effects[e].resume();
8423    }
8424  }
8425  run(e) {
8426    if (this._active) {
8427      let t = l;
8428      try {
8429        return l = this, e();
8430      } finally {
8431        l = t;
8432      }
8433    }
8434  }
8435  on() {
8436    l = this;
8437  }
8438  off() {
8439    l = this.parent;
8440  }
8441  stop(e) {
8442    if (this._active) {
8443      let t, n;
8444      for (t = 0, this._active = !1, n = this.effects.length; t < n; t++) this.effects[t].stop();
8445      for (t = 0, this.effects.length = 0, n = this.cleanups.length; t < n; t++) this.cleanups[t]();
8446      if (this.cleanups.length = 0, this.scopes) {
8447        for (t = 0, n = this.scopes.length; t < n; t++) this.scopes[t].stop(!0);
8448        this.scopes.length = 0;
8449      }
8450      if (!this.detached && this.parent && !e) {
8451        let e = this.parent.scopes.pop();
8452        e && e !== this && (this.parent.scopes[this.index] = e, e.index = this.index);
8453      }
8454      this.parent = void 0;
8455    }
8456  }
8457}
8458function ev(e) {
8459  return new eg(e);
8460}
8461function em() {
8462  return l;
8463}
8464function e_(e, t = !1) {
8465  l && l.cleanups.push(e);
8466}
8467let ey = new WeakSet();
8468class eb {
8469  constructor(e) {
8470    this.fn = e, this.deps = void 0, this.depsTail = void 0, this.flags = 5, this.next = void 0, this.cleanup = void 0, this.scheduler = void 0, l && l.active && l.effects.push(this);
8471  }
8472  pause() {
8473    this.flags |= 64;
8474  }
8475  resume() {
8476    64 & this.flags && (this.flags &= -65, ey.has(this) && (ey.delete(this), this.trigger()));
8477  }
8478  notify() {
8479    (!(2 & this.flags) || 32 & this.flags) && (8 & this.flags || eC(this));
8480  }
8481  run() {
8482    if (!(1 & this.flags)) return this.fn();
8483    this.flags |= 2, eL(this), eE(this);
8484    let e = r,
8485      t = eO;
8486    r = this, eO = !0;
8487    try {
8488      return this.fn();
8489    } finally {
8490      ew(this), r = e, eO = t, this.flags &= -3;
8491    }
8492  }
8493  stop() {
8494    if (1 & this.flags) {
8495      for (let e = this.deps; e; e = e.nextDep) eA(e);
8496      this.deps = this.depsTail = void 0, eL(this), this.onStop && this.onStop(), this.flags &= -2;
8497    }
8498  }
8499  trigger() {
8500    64 & this.flags ? ey.add(this) : this.scheduler ? this.scheduler() : this.runIfDirty();
8501  }
8502  runIfDirty() {
8503    ek(this) && this.run();
8504  }
8505  get dirty() {
8506    return ek(this);
8507  }
8508}
8509let eS = 0;
8510function eC(e, t = !1) {
8511  if (e.flags |= 8, t) {
8512    e.next = s, s = e;
8513    return;
8514  }
8515  e.next = i, i = e;
8516}
8517function ex() {
8518  let e;
8519  if (!(--eS > 0)) {
8520    if (s) {
8521      let e = s;
8522      for (s = void 0; e;) {
8523        let t = e.next;
8524        e.next = void 0, e.flags &= -9, e = t;
8525      }
8526    }
8527    for (; i;) {
8528      let t = i;
8529      for (i = void 0; t;) {
8530        let n = t.next;
8531        if (t.next = void 0, t.flags &= -9, 1 & t.flags) try {
8532          t.trigger();
8533        } catch (t) {
8534          e || (e = t);
8535        }
8536        t = n;
8537      }
8538    }
8539    if (e) throw e;
8540  }
8541}
8542function eE(e) {
8543  for (let t = e.deps; t; t = t.nextDep) t.version = -1, t.prevActiveLink = t.dep.activeLink, t.dep.activeLink = t;
8544}
8545function ew(e) {
8546  let t;
8547  let n = e.depsTail,
8548    l = n;
8549  for (; l;) {
8550    let e = l.prevDep;
8551    -1 === l.version ? (l === n && (n = e), eA(l), function (e) {
8552      let {
8553        prevDep: t,
8554        nextDep: n
8555      } = e;
8556      t && (t.nextDep = n, e.prevDep = void 0), n && (n.prevDep = t, e.nextDep = void 0);
8557    }(l)) : t = l, l.dep.activeLink = l.prevActiveLink, l.prevActiveLink = void 0, l = e;
8558  }
8559  e.deps = t, e.depsTail = n;
8560}
8561function ek(e) {
8562  for (let t = e.deps; t; t = t.nextDep) if (t.dep.version !== t.version || t.dep.computed && (eT(t.dep.computed) || t.dep.version !== t.version)) return !0;
8563  return !!e._dirty;
8564}
8565function eT(e) {
8566  if (4 & e.flags && !(16 & e.flags) || (e.flags &= -17, e.globalVersion === eD)) return;
8567  e.globalVersion = eD;
8568  let t = e.dep;
8569  if (e.flags |= 2, t.version > 0 && !e.isSSR && e.deps && !ek(e)) {
8570    e.flags &= -3;
8571    return;
8572  }
8573  let n = r,
8574    l = eO;
8575  r = e, eO = !0;
8576  try {
8577    eE(e);
8578    let n = e.fn(e._value);
8579    (0 === t.version || J(n, e._value)) && (e._value = n, t.version++);
8580  } catch (e) {
8581    throw t.version++, e;
8582  } finally {
8583    r = n, eO = l, ew(e), e.flags &= -3;
8584  }
8585}
8586function eA(e, t = !1) {
8587  let {
8588    dep: n,
8589    prevSub: l,
8590    nextSub: r
8591  } = e;
8592  if (l && (l.nextSub = r, e.prevSub = void 0), r && (r.prevSub = l, e.nextSub = void 0), n.subs === e && (n.subs = l, !l && n.computed)) {
8593    n.computed.flags &= -5;
8594    for (let e = n.computed.deps; e; e = e.nextDep) eA(e, !0);
8595  }
8596  t || --n.sc || !n.map || n.map.delete(n.key);
8597}
8598function eR(e, t) {
8599  e.effect instanceof eb && (e = e.effect.fn);
8600  let n = new eb(e);
8601  t && C(n, t);
8602  try {
8603    n.run();
8604  } catch (e) {
8605    throw n.stop(), e;
8606  }
8607  let l = n.run.bind(n);
8608  return l.effect = n, l;
8609}
8610function eN(e) {
8611  e.effect.stop();
8612}
8613let eO = !0,
8614  eP = [];
8615function eM() {
8616  eP.push(eO), eO = !1;
8617}
8618function eI() {
8619  let e = eP.pop();
8620  eO = void 0 === e || e;
8621}
8622function eL(e) {
8623  let {
8624    cleanup: t
8625  } = e;
8626  if (e.cleanup = void 0, t) {
8627    let e = r;
8628    r = void 0;
8629    try {
8630      t();
8631    } finally {
8632      r = e;
8633    }
8634  }
8635}
8636let eD = 0;
8637class eF {
8638  constructor(e, t) {
8639    this.sub = e, this.dep = t, this.version = t.version, this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;
8640  }
8641}
8642class eV {
8643  constructor(e) {
8644    this.computed = e, this.version = 0, this.activeLink = void 0, this.subs = void 0, this.map = void 0, this.key = void 0, this.sc = 0;
8645  }
8646  track(e) {
8647    if (!r || !eO || r === this.computed) return;
8648    let t = this.activeLink;
8649    if (void 0 === t || t.sub !== r) t = this.activeLink = new eF(r, this), r.deps ? (t.prevDep = r.depsTail, r.depsTail.nextDep = t, r.depsTail = t) : r.deps = r.depsTail = t, function e(t) {
8650      if (t.dep.sc++, 4 & t.sub.flags) {
8651        let n = t.dep.computed;
8652        if (n && !t.dep.subs) {
8653          n.flags |= 20;
8654          for (let t = n.deps; t; t = t.nextDep) e(t);
8655        }
8656        let l = t.dep.subs;
8657        l !== t && (t.prevSub = l, l && (l.nextSub = t)), t.dep.subs = t;
8658      }
8659    }(t);else if (-1 === t.version && (t.version = this.version, t.nextDep)) {
8660      let e = t.nextDep;
8661      e.prevDep = t.prevDep, t.prevDep && (t.prevDep.nextDep = e), t.prevDep = r.depsTail, t.nextDep = void 0, r.depsTail.nextDep = t, r.depsTail = t, r.deps === t && (r.deps = e);
8662    }
8663    return t;
8664  }
8665  trigger(e) {
8666    this.version++, eD++, this.notify(e);
8667  }
8668  notify(e) {
8669    eS++;
8670    try {
8671      for (let e = this.subs; e; e = e.prevSub) e.sub.notify() && e.sub.dep.notify();
8672    } finally {
8673      ex();
8674    }
8675  }
8676}
8677let eU = new WeakMap(),
8678  ej = Symbol(""),
8679  eB = Symbol(""),
8680  e$ = Symbol("");
8681function eH(e, t, n) {
8682  if (eO && r) {
8683    let t = eU.get(e);
8684    t || eU.set(e, t = new Map());
8685    let l = t.get(n);
8686    l || (t.set(n, l = new eV()), l.map = t, l.key = n), l.track();
8687  }
8688}
8689function eW(e, t, n, l, r, i) {
8690  let s = eU.get(e);
8691  if (!s) {
8692    eD++;
8693    return;
8694  }
8695  let o = e => {
8696    e && e.trigger();
8697  };
8698  if (eS++, "clear" === t) s.forEach(o);else {
8699    let r = k(e),
8700      i = r && j(n);
8701    if (r && "length" === n) {
8702      let e = Number(l);
8703      s.forEach((t, n) => {
8704        ("length" === n || n === e$ || !M(n) && n >= e) && o(t);
8705      });
8706    } else switch ((void 0 !== n || s.has(void 0)) && o(s.get(n)), i && o(s.get(e$)), t) {
8707      case "add":
8708        r ? i && o(s.get("length")) : (o(s.get(ej)), T(e) && o(s.get(eB)));
8709        break;
8710      case "delete":
8711        !r && (o(s.get(ej)), T(e) && o(s.get(eB)));
8712        break;
8713      case "set":
8714        T(e) && o(s.get(ej));
8715    }
8716  }
8717  ex();
8718}
8719function eK(e) {
8720  let t = tS(e);
8721  return t === e ? t : (eH(t, "iterate", e$), ty(e) ? t : t.map(tx));
8722}
8723function ez(e) {
8724  return eH(e = tS(e), "iterate", e$), e;
8725}
8726let eq = {
8727  __proto__: null,
8728  [Symbol.iterator]() {
8729    return eG(this, Symbol.iterator, tx);
8730  },
8731  concat(...e) {
8732    return eK(this).concat(...e.map(e => k(e) ? eK(e) : e));
8733  },
8734  entries() {
8735    return eG(this, "entries", e => (e[1] = tx(e[1]), e));
8736  },
8737  every(e, t) {
8738    return eX(this, "every", e, t, void 0, arguments);
8739  },
8740  filter(e, t) {
8741    return eX(this, "filter", e, t, e => e.map(tx), arguments);
8742  },
8743  find(e, t) {
8744    return eX(this, "find", e, t, tx, arguments);
8745  },
8746  findIndex(e, t) {
8747    return eX(this, "findIndex", e, t, void 0, arguments);
8748  },
8749  findLast(e, t) {
8750    return eX(this, "findLast", e, t, tx, arguments);
8751  },
8752  findLastIndex(e, t) {
8753    return eX(this, "findLastIndex", e, t, void 0, arguments);
8754  },
8755  forEach(e, t) {
8756    return eX(this, "forEach", e, t, void 0, arguments);
8757  },
8758  includes(...e) {
8759    return eY(this, "includes", e);
8760  },
8761  indexOf(...e) {
8762    return eY(this, "indexOf", e);
8763  },
8764  join(e) {
8765    return eK(this).join(e);
8766  },
8767  lastIndexOf(...e) {
8768    return eY(this, "lastIndexOf", e);
8769  },
8770  map(e, t) {
8771    return eX(this, "map", e, t, void 0, arguments);
8772  },
8773  pop() {
8774    return eQ(this, "pop");
8775  },
8776  push(...e) {
8777    return eQ(this, "push", e);
8778  },
8779  reduce(e, ...t) {
8780    return eZ(this, "reduce", e, t);
8781  },
8782  reduceRight(e, ...t) {
8783    return eZ(this, "reduceRight", e, t);
8784  },
8785  shift() {
8786    return eQ(this, "shift");
8787  },
8788  some(e, t) {
8789    return eX(this, "some", e, t, void 0, arguments);
8790  },
8791  splice(...e) {
8792    return eQ(this, "splice", e);
8793  },
8794  toReversed() {
8795    return eK(this).toReversed();
8796  },
8797  toSorted(e) {
8798    return eK(this).toSorted(e);
8799  },
8800  toSpliced(...e) {
8801    return eK(this).toSpliced(...e);
8802  },
8803  unshift(...e) {
8804    return eQ(this, "unshift", e);
8805  },
8806  values() {
8807    return eG(this, "values", tx);
8808  }
8809};
8810function eG(e, t, n) {
8811  let l = ez(e),
8812    r = l[t]();
8813  return l === e || ty(e) || (r._next = r.next, r.next = () => {
8814    let e = r._next();
8815    return e.value && (e.value = n(e.value)), e;
8816  }), r;
8817}
8818let eJ = Array.prototype;
8819function eX(e, t, n, l, r, i) {
8820  let s = ez(e),
8821    o = s !== e && !ty(e),
8822    a = s[t];
8823  if (a !== eJ[t]) {
8824    let t = a.apply(e, i);
8825    return o ? tx(t) : t;
8826  }
8827  let u = n;
8828  s !== e && (o ? u = function (t, l) {
8829    return n.call(this, tx(t), l, e);
8830  } : n.length > 2 && (u = function (t, l) {
8831    return n.call(this, t, l, e);
8832  }));
8833  let c = a.call(s, u, l);
8834  return o && r ? r(c) : c;
8835}
8836function eZ(e, t, n, l) {
8837  let r = ez(e),
8838    i = n;
8839  return r !== e && (ty(e) ? n.length > 3 && (i = function (t, l, r) {
8840    return n.call(this, t, l, r, e);
8841  }) : i = function (t, l, r) {
8842    return n.call(this, t, tx(l), r, e);
8843  }), r[t](i, ...l);
8844}
8845function eY(e, t, n) {
8846  let l = tS(e);
8847  eH(l, "iterate", e$);
8848  let r = l[t](...n);
8849  return (-1 === r || !1 === r) && tb(n[0]) ? (n[0] = tS(n[0]), l[t](...n)) : r;
8850}
8851function eQ(e, t, n = []) {
8852  eM(), eS++;
8853  let l = tS(e)[t].apply(e, n);
8854  return ex(), eI(), l;
8855}
8856let e0 = h("__proto__,__v_isRef,__isVue"),
8857  e1 = new Set(Object.getOwnPropertyNames(Symbol).filter(e => "arguments" !== e && "caller" !== e).map(e => Symbol[e]).filter(M));
8858function e2(e) {
8859  M(e) || (e = String(e));
8860  let t = tS(this);
8861  return eH(t, "has", e), t.hasOwnProperty(e);
8862}
8863class e6 {
8864  constructor(e = !1, t = !1) {
8865    this._isReadonly = e, this._isShallow = t;
8866  }
8867  get(e, t, n) {
8868    if ("__v_skip" === t) return e.__v_skip;
8869    let l = this._isReadonly,
8870      r = this._isShallow;
8871    if ("__v_isReactive" === t) return !l;
8872    if ("__v_isReadonly" === t) return l;
8873    if ("__v_isShallow" === t) return r;
8874    if ("__v_raw" === t) return n === (l ? r ? tf : tc : r ? tu : ta).get(e) || Object.getPrototypeOf(e) === Object.getPrototypeOf(n) ? e : void 0;
8875    let i = k(e);
8876    if (!l) {
8877      let e;
8878      if (i && (e = eq[t])) return e;
8879      if ("hasOwnProperty" === t) return e2;
8880    }
8881    let s = Reflect.get(e, t, tw(e) ? e : n);
8882    return (M(t) ? e1.has(t) : e0(t)) ? s : (l || eH(e, "get", t), r) ? s : tw(s) ? i && j(t) ? s : s.value : I(s) ? l ? th(s) : tp(s) : s;
8883  }
8884}
8885class e4 extends e6 {
8886  constructor(e = !1) {
8887    super(!1, e);
8888  }
8889  set(e, t, n, l) {
8890    let r = e[t];
8891    if (!this._isShallow) {
8892      let t = t_(r);
8893      if (ty(n) || t_(n) || (r = tS(r), n = tS(n)), !k(e) && tw(r) && !tw(n)) return !t && (r.value = n, !0);
8894    }
8895    let i = k(e) && j(t) ? Number(t) < e.length : w(e, t),
8896      s = Reflect.set(e, t, n, tw(e) ? e : l);
8897    return e === tS(l) && (i ? J(n, r) && eW(e, "set", t, n) : eW(e, "add", t, n)), s;
8898  }
8899  deleteProperty(e, t) {
8900    let n = w(e, t);
8901    e[t];
8902    let l = Reflect.deleteProperty(e, t);
8903    return l && n && eW(e, "delete", t, void 0), l;
8904  }
8905  has(e, t) {
8906    let n = Reflect.has(e, t);
8907    return M(t) && e1.has(t) || eH(e, "has", t), n;
8908  }
8909  ownKeys(e) {
8910    return eH(e, "iterate", k(e) ? "length" : ej), Reflect.ownKeys(e);
8911  }
8912}
8913class e8 extends e6 {
8914  constructor(e = !1) {
8915    super(!0, e);
8916  }
8917  set(e, t) {
8918    return !0;
8919  }
8920  deleteProperty(e, t) {
8921    return !0;
8922  }
8923}
8924let e3 = new e4(),
8925  e5 = new e8(),
8926  e9 = new e4(!0),
8927  e7 = new e8(!0),
8928  te = e => e,
8929  tt = e => Reflect.getPrototypeOf(e);
8930function tn(e) {
8931  return function (...t) {
8932    return "delete" !== e && ("clear" === e ? void 0 : this);
8933  };
8934}
8935function tl(e, t) {
8936  let n = function (e, t) {
8937    let n = {
8938      get(n) {
8939        let l = this.__v_raw,
8940          r = tS(l),
8941          i = tS(n);
8942        e || (J(n, i) && eH(r, "get", n), eH(r, "get", i));
8943        let {
8944            has: s
8945          } = tt(r),
8946          o = t ? te : e ? tE : tx;
8947        return s.call(r, n) ? o(l.get(n)) : s.call(r, i) ? o(l.get(i)) : void (l !== r && l.get(n));
8948      },
8949      get size() {
8950        let t = this.__v_raw;
8951        return e || eH(tS(t), "iterate", ej), Reflect.get(t, "size", t);
8952      },
8953      has(t) {
8954        let n = this.__v_raw,
8955          l = tS(n),
8956          r = tS(t);
8957        return e || (J(t, r) && eH(l, "has", t), eH(l, "has", r)), t === r ? n.has(t) : n.has(t) || n.has(r);
8958      },
8959      forEach(n, l) {
8960        let r = this,
8961          i = r.__v_raw,
8962          s = tS(i),
8963          o = t ? te : e ? tE : tx;
8964        return e || eH(s, "iterate", ej), i.forEach((e, t) => n.call(l, o(e), o(t), r));
8965      }
8966    };
8967    return C(n, e ? {
8968      add: tn("add"),
8969      set: tn("set"),
8970      delete: tn("delete"),
8971      clear: tn("clear")
8972    } : {
8973      add(e) {
8974        t || ty(e) || t_(e) || (e = tS(e));
8975        let n = tS(this);
8976        return tt(n).has.call(n, e) || (n.add(e), eW(n, "add", e, e)), this;
8977      },
8978      set(e, n) {
8979        t || ty(n) || t_(n) || (n = tS(n));
8980        let l = tS(this),
8981          {
8982            has: r,
8983            get: i
8984          } = tt(l),
8985          s = r.call(l, e);
8986        s || (e = tS(e), s = r.call(l, e));
8987        let o = i.call(l, e);
8988        return l.set(e, n), s ? J(n, o) && eW(l, "set", e, n) : eW(l, "add", e, n), this;
8989      },
8990      delete(e) {
8991        let t = tS(this),
8992          {
8993            has: n,
8994            get: l
8995          } = tt(t),
8996          r = n.call(t, e);
8997        r || (e = tS(e), r = n.call(t, e)), l && l.call(t, e);
8998        let i = t.delete(e);
8999        return r && eW(t, "delete", e, void 0), i;
9000      },
9001      clear() {
9002        let e = tS(this),
9003          t = 0 !== e.size,
9004          n = e.clear();
9005        return t && eW(e, "clear", void 0, void 0), n;
9006      }
9007    }), ["keys", "values", "entries", Symbol.iterator].forEach(l => {
9008      n[l] = function (...n) {
9009        let r = this.__v_raw,
9010          i = tS(r),
9011          s = T(i),
9012          o = "entries" === l || l === Symbol.iterator && s,
9013          a = r[l](...n),
9014          u = t ? te : e ? tE : tx;
9015        return e || eH(i, "iterate", "keys" === l && s ? eB : ej), {
9016          next() {
9017            let {
9018              value: e,
9019              done: t
9020            } = a.next();
9021            return t ? {
9022              value: e,
9023              done: t
9024            } : {
9025              value: o ? [u(e[0]), u(e[1])] : u(e),
9026              done: t
9027            };
9028          },
9029          [Symbol.iterator]() {
9030            return this;
9031          }
9032        };
9033      };
9034    }), n;
9035  }(e, t);
9036  return (t, l, r) => "__v_isReactive" === l ? !e : "__v_isReadonly" === l ? e : "__v_raw" === l ? t : Reflect.get(w(n, l) && l in t ? n : t, l, r);
9037}
9038let tr = {
9039    get: tl(!1, !1)
9040  },
9041  ti = {
9042    get: tl(!1, !0)
9043  },
9044  ts = {
9045    get: tl(!0, !1)
9046  },
9047  to = {
9048    get: tl(!0, !0)
9049  },
9050  ta = new WeakMap(),
9051  tu = new WeakMap(),
9052  tc = new WeakMap(),
9053  tf = new WeakMap();
9054function tp(e) {
9055  return t_(e) ? e : tv(e, !1, e3, tr, ta);
9056}
9057function td(e) {
9058  return tv(e, !1, e9, ti, tu);
9059}
9060function th(e) {
9061  return tv(e, !0, e5, ts, tc);
9062}
9063function tg(e) {
9064  return tv(e, !0, e7, to, tf);
9065}
9066function tv(e, t, n, l, r) {
9067  if (!I(e) || e.__v_raw && !(t && e.__v_isReactive)) return e;
9068  let i = r.get(e);
9069  if (i) return i;
9070  let s = e.__v_skip || !Object.isExtensible(e) ? 0 : function (e) {
9071    switch (e) {
9072      case "Object":
9073      case "Array":
9074        return 1;
9075      case "Map":
9076      case "Set":
9077      case "WeakMap":
9078      case "WeakSet":
9079        return 2;
9080      default:
9081        return 0;
9082    }
9083  }(V(e));
9084  if (0 === s) return e;
9085  let o = new Proxy(e, 2 === s ? l : n);
9086  return r.set(e, o), o;
9087}
9088function tm(e) {
9089  return t_(e) ? tm(e.__v_raw) : !!(e && e.__v_isReactive);
9090}
9091function t_(e) {
9092  return !!(e && e.__v_isReadonly);
9093}
9094function ty(e) {
9095  return !!(e && e.__v_isShallow);
9096}
9097function tb(e) {
9098  return !!e && !!e.__v_raw;
9099}
9100function tS(e) {
9101  let t = e && e.__v_raw;
9102  return t ? tS(t) : e;
9103}
9104function tC(e) {
9105  return !w(e, "__v_skip") && Object.isExtensible(e) && Z(e, "__v_skip", !0), e;
9106}
9107let tx = e => I(e) ? tp(e) : e,
9108  tE = e => I(e) ? th(e) : e;
9109function tw(e) {
9110  return !!e && !0 === e.__v_isRef;
9111}
9112function tk(e) {
9113  return tA(e, !1);
9114}
9115function tT(e) {
9116  return tA(e, !0);
9117}
9118function tA(e, t) {
9119  return tw(e) ? e : new tR(e, t);
9120}
9121class tR {
9122  constructor(e, t) {
9123    this.dep = new eV(), this.__v_isRef = !0, this.__v_isShallow = !1, this._rawValue = t ? e : tS(e), this._value = t ? e : tx(e), this.__v_isShallow = t;
9124  }
9125  get value() {
9126    return this.dep.track(), this._value;
9127  }
9128  set value(e) {
9129    let t = this._rawValue,
9130      n = this.__v_isShallow || ty(e) || t_(e);
9131    J(e = n ? e : tS(e), t) && (this._rawValue = e, this._value = n ? e : tx(e), this.dep.trigger());
9132  }
9133}
9134function tN(e) {
9135  e.dep && e.dep.trigger();
9136}
9137function tO(e) {
9138  return tw(e) ? e.value : e;
9139}
9140function tP(e) {
9141  return O(e) ? e() : tO(e);
9142}
9143let tM = {
9144  get: (e, t, n) => "__v_raw" === t ? e : tO(Reflect.get(e, t, n)),
9145  set: (e, t, n, l) => {
9146    let r = e[t];
9147    return tw(r) && !tw(n) ? (r.value = n, !0) : Reflect.set(e, t, n, l);
9148  }
9149};
9150function tI(e) {
9151  return tm(e) ? e : new Proxy(e, tM);
9152}
9153class tL {
9154  constructor(e) {
9155    this.__v_isRef = !0, this._value = void 0;
9156    let t = this.dep = new eV(),
9157      {
9158        get: n,
9159        set: l
9160      } = e(t.track.bind(t), t.trigger.bind(t));
9161    this._get = n, this._set = l;
9162  }
9163  get value() {
9164    return this._value = this._get();
9165  }
9166  set value(e) {
9167    this._set(e);
9168  }
9169}
9170function tD(e) {
9171  return new tL(e);
9172}
9173function tF(e) {
9174  let t = k(e) ? Array(e.length) : {};
9175  for (let n in e) t[n] = tB(e, n);
9176  return t;
9177}
9178class tV {
9179  constructor(e, t, n) {
9180    this._object = e, this._key = t, this._defaultValue = n, this.__v_isRef = !0, this._value = void 0;
9181  }
9182  get value() {
9183    let e = this._object[this._key];
9184    return this._value = void 0 === e ? this._defaultValue : e;
9185  }
9186  set value(e) {
9187    this._object[this._key] = e;
9188  }
9189  get dep() {
9190    return function (e, t) {
9191      let n = eU.get(e);
9192      return n && n.get(t);
9193    }(tS(this._object), this._key);
9194  }
9195}
9196class tU {
9197  constructor(e) {
9198    this._getter = e, this.__v_isRef = !0, this.__v_isReadonly = !0, this._value = void 0;
9199  }
9200  get value() {
9201    return this._value = this._getter();
9202  }
9203}
9204function tj(e, t, n) {
9205  return tw(e) ? e : O(e) ? new tU(e) : I(e) && arguments.length > 1 ? tB(e, t, n) : tk(e);
9206}
9207function tB(e, t, n) {
9208  let l = e[t];
9209  return tw(l) ? l : new tV(e, t, n);
9210}
9211class t$ {
9212  constructor(e, t, n) {
9213    this.fn = e, this.setter = t, this._value = void 0, this.dep = new eV(this), this.__v_isRef = !0, this.deps = void 0, this.depsTail = void 0, this.flags = 16, this.globalVersion = eD - 1, this.next = void 0, this.effect = this, this.__v_isReadonly = !t, this.isSSR = n;
9214  }
9215  notify() {
9216    if (this.flags |= 16, !(8 & this.flags) && r !== this) return eC(this, !0), !0;
9217  }
9218  get value() {
9219    let e = this.dep.track();
9220    return eT(this), e && (e.version = this.dep.version), this._value;
9221  }
9222  set value(e) {
9223    this.setter && this.setter(e);
9224  }
9225}
9226let tH = {
9227    GET: "get",
9228    HAS: "has",
9229    ITERATE: "iterate"
9230  },
9231  tW = {
9232    SET: "set",
9233    ADD: "add",
9234    DELETE: "delete",
9235    CLEAR: "clear"
9236  },
9237  tK = {},
9238  tz = new WeakMap();
9239function tq() {
9240  return p;
9241}
9242function tG(e, t = !1, n = p) {
9243  if (n) {
9244    let t = tz.get(n);
9245    t || tz.set(n, t = []), t.push(e);
9246  }
9247}
9248function tJ(e, t = 1 / 0, n) {
9249  if (t <= 0 || !I(e) || e.__v_skip || (n = n || new Set()).has(e)) return e;
9250  if (n.add(e), t--, tw(e)) tJ(e.value, t, n);else if (k(e)) for (let l = 0; l < e.length; l++) tJ(e[l], t, n);else if (A(e) || T(e)) e.forEach(e => {
9251    tJ(e, t, n);
9252  });else if (U(e)) {
9253    for (let l in e) tJ(e[l], t, n);
9254    for (let l of Object.getOwnPropertySymbols(e)) Object.prototype.propertyIsEnumerable.call(e, l) && tJ(e[l], t, n);
9255  }
9256  return e;
9257}
9258function tX(e, t) {}
9259let tZ = {
9260  SETUP_FUNCTION: 0,
9261  0: "SETUP_FUNCTION",
9262  RENDER_FUNCTION: 1,
9263  1: "RENDER_FUNCTION",
9264  NATIVE_EVENT_HANDLER: 5,
9265  5: "NATIVE_EVENT_HANDLER",
9266  COMPONENT_EVENT_HANDLER: 6,
9267  6: "COMPONENT_EVENT_HANDLER",
9268  VNODE_HOOK: 7,
9269  7: "VNODE_HOOK",
9270  DIRECTIVE_HOOK: 8,
9271  8: "DIRECTIVE_HOOK",
9272  TRANSITION_HOOK: 9,
9273  9: "TRANSITION_HOOK",
9274  APP_ERROR_HANDLER: 10,
9275  10: "APP_ERROR_HANDLER",
9276  APP_WARN_HANDLER: 11,
9277  11: "APP_WARN_HANDLER",
9278  FUNCTION_REF: 12,
9279  12: "FUNCTION_REF",
9280  ASYNC_COMPONENT_LOADER: 13,
9281  13: "ASYNC_COMPONENT_LOADER",
9282  SCHEDULER: 14,
9283  14: "SCHEDULER",
9284  COMPONENT_UPDATE: 15,
9285  15: "COMPONENT_UPDATE",
9286  APP_UNMOUNT_CLEANUP: 16,
9287  16: "APP_UNMOUNT_CLEANUP"
9288};
9289function tY(e, t, n, l) {
9290  try {
9291    return l ? e(...l) : e();
9292  } catch (e) {
9293    t0(e, t, n);
9294  }
9295}
9296function tQ(e, t, n, l) {
9297  if (O(e)) {
9298    let r = tY(e, t, n, l);
9299    return r && L(r) && r.catch(e => {
9300      t0(e, t, n);
9301    }), r;
9302  }
9303  if (k(e)) {
9304    let r = [];
9305    for (let i = 0; i < e.length; i++) r.push(tQ(e[i], t, n, l));
9306    return r;
9307  }
9308}
9309function t0(e, t, n, l = !0) {
9310  t && t.vnode;
9311  let {
9312    errorHandler: r,
9313    throwUnhandledErrorInProduction: i
9314  } = t && t.appContext.config || g;
9315  if (t) {
9316    let l = t.parent,
9317      i = t.proxy,
9318      s = `https://vuejs.org/error-reference/#runtime-${n}`;
9319    for (; l;) {
9320      let t = l.ec;
9321      if (t) {
9322        for (let n = 0; n < t.length; n++) if (!1 === t[n](e, i, s)) return;
9323      }
9324      l = l.parent;
9325    }
9326    if (r) {
9327      eM(), tY(r, null, 10, [e, i, s]), eI();
9328      return;
9329    }
9330  }
9331  !function (e, t, n, l = !0, r = !1) {
9332    if (r) throw e;
9333    console.error(e);
9334  }(e, 0, 0, l, i);
9335}
9336let t1 = [],
9337  t2 = -1,
9338  t6 = [],
9339  t4 = null,
9340  t8 = 0,
9341  t3 = Promise.resolve(),
9342  t5 = null;
9343function t9(e) {
9344  let t = t5 || t3;
9345  return e ? t.then(this ? e.bind(this) : e) : t;
9346}
9347function t7(e) {
9348  if (!(1 & e.flags)) {
9349    let t = nr(e),
9350      n = t1[t1.length - 1];
9351    !n || !(2 & e.flags) && t >= nr(n) ? t1.push(e) : t1.splice(function (e) {
9352      let t = t2 + 1,
9353        n = t1.length;
9354      for (; t < n;) {
9355        let l = t + n >>> 1,
9356          r = t1[l],
9357          i = nr(r);
9358        i < e || i === e && 2 & r.flags ? t = l + 1 : n = l;
9359      }
9360      return t;
9361    }(t), 0, e), e.flags |= 1, ne();
9362  }
9363}
9364function ne() {
9365  t5 || (t5 = t3.then(function e(t) {
9366    try {
9367      for (t2 = 0; t2 < t1.length; t2++) {
9368        let e = t1[t2];
9369        !e || 8 & e.flags || (4 & e.flags && (e.flags &= -2), tY(e, e.i, e.i ? 15 : 14), 4 & e.flags || (e.flags &= -2));
9370      }
9371    } finally {
9372      for (; t2 < t1.length; t2++) {
9373        let e = t1[t2];
9374        e && (e.flags &= -2);
9375      }
9376      t2 = -1, t1.length = 0, nl(), t5 = null, (t1.length || t6.length) && e();
9377    }
9378  }));
9379}
9380function nt(e) {
9381  k(e) ? t6.push(...e) : t4 && -1 === e.id ? t4.splice(t8 + 1, 0, e) : 1 & e.flags || (t6.push(e), e.flags |= 1), ne();
9382}
9383function nn(e, t, n = t2 + 1) {
9384  for (; n < t1.length; n++) {
9385    let t = t1[n];
9386    if (t && 2 & t.flags) {
9387      if (e && t.id !== e.uid) continue;
9388      t1.splice(n, 1), n--, 4 & t.flags && (t.flags &= -2), t(), 4 & t.flags || (t.flags &= -2);
9389    }
9390  }
9391}
9392function nl(e) {
9393  if (t6.length) {
9394    let e = [...new Set(t6)].sort((e, t) => nr(e) - nr(t));
9395    if (t6.length = 0, t4) {
9396      t4.push(...e);
9397      return;
9398    }
9399    for (t8 = 0, t4 = e; t8 < t4.length; t8++) {
9400      let e = t4[t8];
9401      4 & e.flags && (e.flags &= -2), 8 & e.flags || e(), e.flags &= -2;
9402    }
9403    t4 = null, t8 = 0;
9404  }
9405}
9406let nr = e => null == e.id ? 2 & e.flags ? -1 : 1 / 0 : e.id,
9407  ni = null,
9408  ns = null;
9409function no(e) {
9410  let t = ni;
9411  return ni = e, ns = e && e.type.__scopeId || null, t;
9412}
9413function na(e) {
9414  ns = e;
9415}
9416function nu() {
9417  ns = null;
9418}
9419let nc = e => nf;
9420function nf(e, t = ni, n) {
9421  if (!t || e._n) return e;
9422  let l = (...n) => {
9423    let r;
9424    l._d && r7(-1);
9425    let i = no(t);
9426    try {
9427      r = e(...n);
9428    } finally {
9429      no(i), l._d && r7(1);
9430    }
9431    return r;
9432  };
9433  return l._n = !0, l._c = !0, l._d = !0, l;
9434}
9435function np(e, t) {
9436  if (null === ni) return e;
9437  let n = iV(ni),
9438    l = e.dirs || (e.dirs = []);
9439  for (let e = 0; e < t.length; e++) {
9440    let [r, i, s, o = g] = t[e];
9441    r && (O(r) && (r = {
9442      mounted: r,
9443      updated: r
9444    }), r.deep && tJ(i), l.push({
9445      dir: r,
9446      instance: n,
9447      value: i,
9448      oldValue: void 0,
9449      arg: s,
9450      modifiers: o
9451    }));
9452  }
9453  return e;
9454}
9455function nd(e, t, n, l) {
9456  let r = e.dirs,
9457    i = t && t.dirs;
9458  for (let s = 0; s < r.length; s++) {
9459    let o = r[s];
9460    i && (o.oldValue = i[s].value);
9461    let a = o.dir[l];
9462    a && (eM(), tQ(a, n, 8, [e.el, o, e, t]), eI());
9463  }
9464}
9465let nh = Symbol("_vte"),
9466  ng = e => e.__isTeleport,
9467  nv = e => e && (e.disabled || "" === e.disabled),
9468  nm = e => e && (e.defer || "" === e.defer),
9469  n_ = e => "undefined" != typeof SVGElement && e instanceof SVGElement,
9470  ny = e => "function" == typeof MathMLElement && e instanceof MathMLElement,
9471  nb = (e, t) => {
9472    let n = e && e.to;
9473    return P(n) ? t ? t(n) : null : n;
9474  },
9475  nS = {
9476    name: "Teleport",
9477    __isTeleport: !0,
9478    process(e, t, n, l, r, i, s, o, a, u) {
9479      let {
9480          mc: c,
9481          pc: f,
9482          pbc: p,
9483          o: {
9484            insert: d,
9485            querySelector: h,
9486            createText: g,
9487            createComment: m
9488          }
9489        } = u,
9490        _ = nv(t.props),
9491        {
9492          shapeFlag: y,
9493          children: b,
9494          dynamicChildren: S
9495        } = t;
9496      if (null == e) {
9497        let e = t.el = g(""),
9498          u = t.anchor = g("");
9499        d(e, n, l), d(u, n, l);
9500        let f = (e, t) => {
9501            16 & y && (r && r.isCE && (r.ce._teleportTarget = e), c(b, e, t, r, i, s, o, a));
9502          },
9503          p = () => {
9504            let e = t.target = nb(t.props, h),
9505              n = nw(e, t, g, d);
9506            e && ("svg" !== s && n_(e) ? s = "svg" : "mathml" !== s && ny(e) && (s = "mathml"), _ || (f(e, n), nE(t, !1)));
9507          };
9508        _ && (f(n, u), nE(t, !0)), nm(t.props) ? ry(() => {
9509          p(), t.el.__isMounted = !0;
9510        }, i) : p();
9511      } else {
9512        if (nm(t.props) && !e.el.__isMounted) {
9513          ry(() => {
9514            nS.process(e, t, n, l, r, i, s, o, a, u), delete e.el.__isMounted;
9515          }, i);
9516          return;
9517        }
9518        t.el = e.el, t.targetStart = e.targetStart;
9519        let c = t.anchor = e.anchor,
9520          d = t.target = e.target,
9521          g = t.targetAnchor = e.targetAnchor,
9522          m = nv(e.props),
9523          y = m ? n : d;
9524        if ("svg" === s || n_(d) ? s = "svg" : ("mathml" === s || ny(d)) && (s = "mathml"), S ? (p(e.dynamicChildren, S, y, r, i, s, o), rk(e, t, !0)) : a || f(e, t, y, m ? c : g, r, i, s, o, !1), _) m ? t.props && e.props && t.props.to !== e.props.to && (t.props.to = e.props.to) : nC(t, n, c, u, 1);else if ((t.props && t.props.to) !== (e.props && e.props.to)) {
9525          let e = t.target = nb(t.props, h);
9526          e && nC(t, e, null, u, 0);
9527        } else m && nC(t, d, g, u, 1);
9528        nE(t, _);
9529      }
9530    },
9531    remove(e, t, n, {
9532      um: l,
9533      o: {
9534        remove: r
9535      }
9536    }, i) {
9537      let {
9538        shapeFlag: s,
9539        children: o,
9540        anchor: a,
9541        targetStart: u,
9542        targetAnchor: c,
9543        target: f,
9544        props: p
9545      } = e;
9546      if (f && (r(u), r(c)), i && r(a), 16 & s) {
9547        let e = i || !nv(p);
9548        for (let r = 0; r < o.length; r++) {
9549          let i = o[r];
9550          l(i, t, n, e, !!i.dynamicChildren);
9551        }
9552      }
9553    },
9554    move: nC,
9555    hydrate: function (e, t, n, l, r, i, {
9556      o: {
9557        nextSibling: s,
9558        parentNode: o,
9559        querySelector: a,
9560        insert: u,
9561        createText: c
9562      }
9563    }, f) {
9564      let p = t.target = nb(t.props, a);
9565      if (p) {
9566        let a = nv(t.props),
9567          d = p._lpa || p.firstChild;
9568        if (16 & t.shapeFlag) {
9569          if (a) t.anchor = f(s(e), t, o(e), n, l, r, i), t.targetStart = d, t.targetAnchor = d && s(d);else {
9570            t.anchor = s(e);
9571            let o = d;
9572            for (; o;) {
9573              if (o && 8 === o.nodeType) {
9574                if ("teleport start anchor" === o.data) t.targetStart = o;else if ("teleport anchor" === o.data) {
9575                  t.targetAnchor = o, p._lpa = t.targetAnchor && s(t.targetAnchor);
9576                  break;
9577                }
9578              }
9579              o = s(o);
9580            }
9581            t.targetAnchor || nw(p, t, c, u), f(d && s(d), t, p, n, l, r, i);
9582          }
9583        }
9584        nE(t, a);
9585      }
9586      return t.anchor && s(t.anchor);
9587    }
9588  };
9589function nC(e, t, n, {
9590  o: {
9591    insert: l
9592  },
9593  m: r
9594}, i = 2) {
9595  0 === i && l(e.targetAnchor, t, n);
9596  let {
9597      el: s,
9598      anchor: o,
9599      shapeFlag: a,
9600      children: u,
9601      props: c
9602    } = e,
9603    f = 2 === i;
9604  if (f && l(s, t, n), (!f || nv(c)) && 16 & a) for (let e = 0; e < u.length; e++) r(u[e], t, n, 2);
9605  f && l(o, t, n);
9606}
9607let nx = (/* unused pure expression or super */ null && (nS));
9608function nE(e, t) {
9609  let n = e.ctx;
9610  if (n && n.ut) {
9611    let l, r;
9612    for (t ? (l = e.el, r = e.anchor) : (l = e.targetStart, r = e.targetAnchor); l && l !== r;) 1 === l.nodeType && l.setAttribute("data-v-owner", n.uid), l = l.nextSibling;
9613    n.ut();
9614  }
9615}
9616function nw(e, t, n, l) {
9617  let r = t.targetStart = n(""),
9618    i = t.targetAnchor = n("");
9619  return r[nh] = i, e && (l(r, e), l(i, e)), i;
9620}
9621let nk = Symbol("_leaveCb"),
9622  nT = Symbol("_enterCb");
9623function nA() {
9624  let e = {
9625    isMounted: !1,
9626    isLeaving: !1,
9627    isUnmounting: !1,
9628    leavingVNodes: new Map()
9629  };
9630  return lf(() => {
9631    e.isMounted = !0;
9632  }), lh(() => {
9633    e.isUnmounting = !0;
9634  }), e;
9635}
9636let nR = [Function, Array],
9637  nN = {
9638    mode: String,
9639    appear: Boolean,
9640    persisted: Boolean,
9641    onBeforeEnter: nR,
9642    onEnter: nR,
9643    onAfterEnter: nR,
9644    onEnterCancelled: nR,
9645    onBeforeLeave: nR,
9646    onLeave: nR,
9647    onAfterLeave: nR,
9648    onLeaveCancelled: nR,
9649    onBeforeAppear: nR,
9650    onAppear: nR,
9651    onAfterAppear: nR,
9652    onAppearCancelled: nR
9653  },
9654  nO = e => {
9655    let t = e.subTree;
9656    return t.component ? nO(t.component) : t;
9657  };
9658function nP(e) {
9659  let t = e[0];
9660  if (e.length > 1) {
9661    for (let n of e) if (n.type !== r2) {
9662      t = n;
9663      break;
9664    }
9665  }
9666  return t;
9667}
9668let nM = {
9669  name: "BaseTransition",
9670  props: nN,
9671  setup(e, {
9672    slots: t
9673  }) {
9674    let n = ik(),
9675      l = nA();
9676    return () => {
9677      let r = t.default && nU(t.default(), !0);
9678      if (!r || !r.length) return;
9679      let i = nP(r),
9680        s = tS(e),
9681        {
9682          mode: o
9683        } = s;
9684      if (l.isLeaving) return nD(i);
9685      let a = nF(i);
9686      if (!a) return nD(i);
9687      let u = nL(a, s, l, n, e => u = e);
9688      a.type !== r2 && nV(a, u);
9689      let c = n.subTree && nF(n.subTree);
9690      if (c && c.type !== r2 && !ii(a, c) && nO(n).type !== r2) {
9691        let e = nL(c, s, l, n);
9692        if (nV(c, e), "out-in" === o && a.type !== r2) return l.isLeaving = !0, e.afterLeave = () => {
9693          l.isLeaving = !1, 8 & n.job.flags || n.update(), delete e.afterLeave, c = void 0;
9694        }, nD(i);
9695        "in-out" === o && a.type !== r2 ? e.delayLeave = (e, t, n) => {
9696          nI(l, c)[String(c.key)] = c, e[nk] = () => {
9697            t(), e[nk] = void 0, delete u.delayedLeave, c = void 0;
9698          }, u.delayedLeave = () => {
9699            n(), delete u.delayedLeave, c = void 0;
9700          };
9701        } : c = void 0;
9702      } else c && (c = void 0);
9703      return i;
9704    };
9705  }
9706};
9707function nI(e, t) {
9708  let {
9709      leavingVNodes: n
9710    } = e,
9711    l = n.get(t.type);
9712  return l || (l = Object.create(null), n.set(t.type, l)), l;
9713}
9714function nL(e, t, n, l, r) {
9715  let {
9716      appear: i,
9717      mode: s,
9718      persisted: o = !1,
9719      onBeforeEnter: a,
9720      onEnter: u,
9721      onAfterEnter: c,
9722      onEnterCancelled: f,
9723      onBeforeLeave: p,
9724      onLeave: d,
9725      onAfterLeave: h,
9726      onLeaveCancelled: g,
9727      onBeforeAppear: m,
9728      onAppear: _,
9729      onAfterAppear: y,
9730      onAppearCancelled: b
9731    } = t,
9732    S = String(e.key),
9733    C = nI(n, e),
9734    x = (e, t) => {
9735      e && tQ(e, l, 9, t);
9736    },
9737    E = (e, t) => {
9738      let n = t[1];
9739      x(e, t), k(e) ? e.every(e => e.length <= 1) && n() : e.length <= 1 && n();
9740    },
9741    w = {
9742      mode: s,
9743      persisted: o,
9744      beforeEnter(t) {
9745        let l = a;
9746        if (!n.isMounted) {
9747          if (!i) return;
9748          l = m || a;
9749        }
9750        t[nk] && t[nk](!0);
9751        let r = C[S];
9752        r && ii(e, r) && r.el[nk] && r.el[nk](), x(l, [t]);
9753      },
9754      enter(e) {
9755        let t = u,
9756          l = c,
9757          r = f;
9758        if (!n.isMounted) {
9759          if (!i) return;
9760          t = _ || u, l = y || c, r = b || f;
9761        }
9762        let s = !1,
9763          o = e[nT] = t => {
9764            s || (s = !0, t ? x(r, [e]) : x(l, [e]), w.delayedLeave && w.delayedLeave(), e[nT] = void 0);
9765          };
9766        t ? E(t, [e, o]) : o();
9767      },
9768      leave(t, l) {
9769        let r = String(e.key);
9770        if (t[nT] && t[nT](!0), n.isUnmounting) return l();
9771        x(p, [t]);
9772        let i = !1,
9773          s = t[nk] = n => {
9774            i || (i = !0, l(), n ? x(g, [t]) : x(h, [t]), t[nk] = void 0, C[r] !== e || delete C[r]);
9775          };
9776        C[r] = e, d ? E(d, [t, s]) : s();
9777      },
9778      clone(e) {
9779        let i = nL(e, t, n, l, r);
9780        return r && r(i), i;
9781      }
9782    };
9783  return w;
9784}
9785function nD(e) {
9786  if (le(e)) return (e = id(e)).children = null, e;
9787}
9788function nF(e) {
9789  if (!le(e)) return ng(e.type) && e.children ? nP(e.children) : e;
9790  let {
9791    shapeFlag: t,
9792    children: n
9793  } = e;
9794  if (n) {
9795    if (16 & t) return n[0];
9796    if (32 & t && O(n.default)) return n.default();
9797  }
9798}
9799function nV(e, t) {
9800  6 & e.shapeFlag && e.component ? (e.transition = t, nV(e.component.subTree, t)) : 128 & e.shapeFlag ? (e.ssContent.transition = t.clone(e.ssContent), e.ssFallback.transition = t.clone(e.ssFallback)) : e.transition = t;
9801}
9802function nU(e, t = !1, n) {
9803  let l = [],
9804    r = 0;
9805  for (let i = 0; i < e.length; i++) {
9806    let s = e[i],
9807      o = null == n ? s.key : String(n) + String(null != s.key ? s.key : i);
9808    s.type === r0 ? (128 & s.patchFlag && r++, l = l.concat(nU(s.children, t, o))) : (t || s.type !== r2) && l.push(null != o ? id(s, {
9809      key: o
9810    }) : s);
9811  }
9812  if (r > 1) for (let e = 0; e < l.length; e++) l[e].patchFlag = -2;
9813  return l;
9814}
9815function nj(e, t) {
9816  return O(e) ? C({
9817    name: e.name
9818  }, t, {
9819    setup: e
9820  }) : e;
9821}
9822function nB() {
9823  let e = ik();
9824  return e ? (e.appContext.config.idPrefix || "v") + "-" + e.ids[0] + e.ids[1]++ : "";
9825}
9826function n$(e) {
9827  e.ids = [e.ids[0] + e.ids[2]++ + "-", 0, 0];
9828}
9829function nH(e) {
9830  let t = ik(),
9831    n = tT(null);
9832  return t && Object.defineProperty(t.refs === g ? t.refs = {} : t.refs, e, {
9833    enumerable: !0,
9834    get: () => n.value,
9835    set: e => n.value = e
9836  }), n;
9837}
9838function nW(e, t, n, l, r = !1) {
9839  if (k(e)) {
9840    e.forEach((e, i) => nW(e, t && (k(t) ? t[i] : t), n, l, r));
9841    return;
9842  }
9843  if (n5(l) && !r) {
9844    512 & l.shapeFlag && l.type.__asyncResolved && l.component.subTree.component && nW(e, t, n, l.component.subTree);
9845    return;
9846  }
9847  let i = 4 & l.shapeFlag ? iV(l.component) : l.el,
9848    s = r ? null : i,
9849    {
9850      i: o,
9851      r: a
9852    } = e,
9853    u = t && t.r,
9854    c = o.refs === g ? o.refs = {} : o.refs,
9855    f = o.setupState,
9856    p = tS(f),
9857    d = f === g ? () => !1 : e => w(p, e);
9858  if (null != u && u !== a && (P(u) ? (c[u] = null, d(u) && (f[u] = null)) : tw(u) && (u.value = null)), O(a)) tY(a, o, 12, [s, c]);else {
9859    let t = P(a),
9860      l = tw(a);
9861    if (t || l) {
9862      let o = () => {
9863        if (e.f) {
9864          let n = t ? d(a) ? f[a] : c[a] : a.value;
9865          r ? k(n) && x(n, i) : k(n) ? n.includes(i) || n.push(i) : t ? (c[a] = [i], d(a) && (f[a] = c[a])) : (a.value = [i], e.k && (c[e.k] = a.value));
9866        } else t ? (c[a] = s, d(a) && (f[a] = s)) : l && (a.value = s, e.k && (c[e.k] = s));
9867      };
9868      s ? (o.id = -1, ry(o, n)) : o();
9869    }
9870  }
9871}
9872let nK = (/* unused pure expression or super */ null && (!1)),
9873  nz = () => {
9874    nK || (console.error("Hydration completed but contains mismatches."), nK = !0);
9875  },
9876  nq = e => e.namespaceURI.includes("svg") && "foreignObject" !== e.tagName,
9877  nG = e => e.namespaceURI.includes("MathML"),
9878  nJ = e => {
9879    if (1 === e.nodeType) {
9880      if (nq(e)) return "svg";
9881      if (nG(e)) return "mathml";
9882    }
9883  },
9884  nX = e => 8 === e.nodeType;
9885function nZ(e) {
9886  let {
9887      mt: t,
9888      p: n,
9889      o: {
9890        patchProp: l,
9891        createText: r,
9892        nextSibling: i,
9893        parentNode: s,
9894        remove: o,
9895        insert: a,
9896        createComment: u
9897      }
9898    } = e,
9899    c = (n, l, o, u, y, b = !1) => {
9900      b = b || !!l.dynamicChildren;
9901      let S = nX(n) && "[" === n.data,
9902        C = () => h(n, l, o, u, y, S),
9903        {
9904          type: x,
9905          ref: E,
9906          shapeFlag: w,
9907          patchFlag: k
9908        } = l,
9909        T = n.nodeType;
9910      l.el = n, -2 === k && (b = !1, l.dynamicChildren = null);
9911      let A = null;
9912      switch (x) {
9913        case r1:
9914          3 !== T ? "" === l.children ? (a(l.el = r(""), s(n), n), A = n) : A = C() : (n.data !== l.children && (nz(), n.data = l.children), A = i(n));
9915          break;
9916        case r2:
9917          _(n) ? (A = i(n), m(l.el = n.content.firstChild, n, o)) : A = 8 !== T || S ? C() : i(n);
9918          break;
9919        case r6:
9920          if (S && (T = (n = i(n)).nodeType), 1 === T || 3 === T) {
9921            A = n;
9922            let e = !l.children.length;
9923            for (let t = 0; t < l.staticCount; t++) e && (l.children += 1 === A.nodeType ? A.outerHTML : A.data), t === l.staticCount - 1 && (l.anchor = A), A = i(A);
9924            return S ? i(A) : A;
9925          }
9926          C();
9927          break;
9928        case r0:
9929          A = S ? d(n, l, o, u, y, b) : C();
9930          break;
9931        default:
9932          if (1 & w) A = 1 === T && l.type.toLowerCase() === n.tagName.toLowerCase() || _(n) ? f(n, l, o, u, y, b) : C();else if (6 & w) {
9933            l.slotScopeIds = y;
9934            let e = s(n);
9935            if (A = S ? g(n) : nX(n) && "teleport start" === n.data ? g(n, n.data, "teleport end") : i(n), t(l, e, null, o, u, nJ(e), b), n5(l) && !l.type.__asyncResolved) {
9936              let t;
9937              S ? (t = ic(r0)).anchor = A ? A.previousSibling : e.lastChild : t = 3 === n.nodeType ? ih("") : ic("div"), t.el = n, l.component.subTree = t;
9938            }
9939          } else 64 & w ? A = 8 !== T ? C() : l.type.hydrate(n, l, o, u, y, b, e, p) : 128 & w && (A = l.type.hydrate(n, l, o, u, nJ(s(n)), y, b, e, c));
9940      }
9941      return null != E && nW(E, null, u, l), A;
9942    },
9943    f = (e, t, n, r, i, s) => {
9944      s = s || !!t.dynamicChildren;
9945      let {
9946          type: a,
9947          props: u,
9948          patchFlag: c,
9949          shapeFlag: f,
9950          dirs: d,
9951          transition: h
9952        } = t,
9953        g = "input" === a || "option" === a;
9954      if (g || -1 !== c) {
9955        let a;
9956        d && nd(t, null, n, "created");
9957        let y = !1;
9958        if (_(e)) {
9959          y = rw(null, h) && n && n.vnode.props && n.vnode.props.appear;
9960          let l = e.content.firstChild;
9961          y && h.beforeEnter(l), m(l, e, n), t.el = e = l;
9962        }
9963        if (16 & f && !(u && (u.innerHTML || u.textContent))) {
9964          let l = p(e.firstChild, t, e, n, r, i, s);
9965          for (; l;) {
9966            n0(e, 1) || nz();
9967            let t = l;
9968            l = l.nextSibling, o(t);
9969          }
9970        } else if (8 & f) {
9971          let n = t.children;
9972          "\n" === n[0] && ("PRE" === e.tagName || "TEXTAREA" === e.tagName) && (n = n.slice(1)), e.textContent !== n && (n0(e, 0) || nz(), e.textContent = t.children);
9973        }
9974        if (u) {
9975          if (g || !s || 48 & c) {
9976            let t = e.tagName.includes("-");
9977            for (let r in u) (g && (r.endsWith("value") || "indeterminate" === r) || b(r) && !B(r) || "." === r[0] || t) && l(e, r, null, u[r], void 0, n);
9978          } else if (u.onClick) l(e, "onClick", null, u.onClick, void 0, n);else if (4 & c && tm(u.style)) for (let e in u.style) u.style[e];
9979        }
9980        (a = u && u.onVnodeBeforeMount) && iS(a, n, t), d && nd(t, null, n, "beforeMount"), ((a = u && u.onVnodeMounted) || d || y) && rY(() => {
9981          a && iS(a, n, t), y && h.enter(e), d && nd(t, null, n, "mounted");
9982        }, r);
9983      }
9984      return e.nextSibling;
9985    },
9986    p = (e, t, l, s, o, u, f) => {
9987      f = f || !!t.dynamicChildren;
9988      let p = t.children,
9989        d = p.length;
9990      for (let t = 0; t < d; t++) {
9991        let h = f ? p[t] : p[t] = im(p[t]),
9992          g = h.type === r1;
9993        e ? (g && !f && t + 1 < d && im(p[t + 1]).type === r1 && (a(r(e.data.slice(h.children.length)), l, i(e)), e.data = h.children), e = c(e, h, s, o, u, f)) : g && !h.children ? a(h.el = r(""), l) : (n0(l, 1) || nz(), n(null, h, l, null, s, o, nJ(l), u));
9994      }
9995      return e;
9996    },
9997    d = (e, t, n, l, r, o) => {
9998      let {
9999        slotScopeIds: c
10000      } = t;
10001      c && (r = r ? r.concat(c) : c);
10002      let f = s(e),
10003        d = p(i(e), t, f, n, l, r, o);
10004      return d && nX(d) && "]" === d.data ? i(t.anchor = d) : (nz(), a(t.anchor = u("]"), f, d), d);
10005    },
10006    h = (e, t, l, r, a, u) => {
10007      if (n0(e.parentElement, 1) || nz(), t.el = null, u) {
10008        let t = g(e);
10009        for (;;) {
10010          let n = i(e);
10011          if (n && n !== t) o(n);else break;
10012        }
10013      }
10014      let c = i(e),
10015        f = s(e);
10016      return o(e), n(null, t, f, c, l, r, nJ(f), a), l && (l.vnode.el = t.el, rK(l, t.el)), c;
10017    },
10018    g = (e, t = "[", n = "]") => {
10019      let l = 0;
10020      for (; e;) if ((e = i(e)) && nX(e) && (e.data === t && l++, e.data === n)) {
10021        if (0 === l) return i(e);
10022        l--;
10023      }
10024      return e;
10025    },
10026    m = (e, t, n) => {
10027      let l = t.parentNode;
10028      l && l.replaceChild(e, t);
10029      let r = n;
10030      for (; r;) r.vnode.el === t && (r.vnode.el = r.subTree.el = e), r = r.parent;
10031    },
10032    _ = e => 1 === e.nodeType && "TEMPLATE" === e.tagName;
10033  return [(e, t) => {
10034    if (!t.hasChildNodes()) {
10035      n(null, e, t), nl(), t._vnode = e;
10036      return;
10037    }
10038    c(t.firstChild, e, null, null, null), nl(), t._vnode = e;
10039  }, c];
10040}
10041let nY = "data-allow-mismatch",
10042  nQ = {
10043    0: "text",
10044    1: "children",
10045    2: "class",
10046    3: "style",
10047    4: "attribute"
10048  };
10049function n0(e, t) {
10050  if (0 === t || 1 === t) for (; e && !e.hasAttribute(nY);) e = e.parentElement;
10051  let n = e && e.getAttribute(nY);
10052  if (null == n) return !1;
10053  if ("" === n) return !0;
10054  {
10055    let e = n.split(",");
10056    return !!(0 === t && e.includes("children")) || n.split(",").includes(nQ[t]);
10057  }
10058}
10059let n1 = ee().requestIdleCallback || (e => setTimeout(e, 1)),
10060  n2 = ee().cancelIdleCallback || (e => clearTimeout(e)),
10061  n6 = (e = 1e4) => t => {
10062    let n = n1(t, {
10063      timeout: e
10064    });
10065    return () => n2(n);
10066  },
10067  n4 = e => (t, n) => {
10068    let l = new IntersectionObserver(e => {
10069      for (let n of e) if (n.isIntersecting) {
10070        l.disconnect(), t();
10071        break;
10072      }
10073    }, e);
10074    return n(e => {
10075      if (e instanceof Element) {
10076        if (function (e) {
10077          let {
10078              top: t,
10079              left: n,
10080              bottom: l,
10081              right: r
10082            } = e.getBoundingClientRect(),
10083            {
10084              innerHeight: i,
10085              innerWidth: s
10086            } = window;
10087          return (t > 0 && t < i || l > 0 && l < i) && (n > 0 && n < s || r > 0 && r < s);
10088        }(e)) return t(), l.disconnect(), !1;
10089        l.observe(e);
10090      }
10091    }), () => l.disconnect();
10092  },
10093  n8 = e => t => {
10094    if (e) {
10095      let n = matchMedia(e);
10096      if (!n.matches) return n.addEventListener("change", t, {
10097        once: !0
10098      }), () => n.removeEventListener("change", t);
10099      t();
10100    }
10101  },
10102  n3 = (e = []) => (t, n) => {
10103    P(e) && (e = [e]);
10104    let l = !1,
10105      r = e => {
10106        l || (l = !0, i(), t(), e.target.dispatchEvent(new e.constructor(e.type, e)));
10107      },
10108      i = () => {
10109        n(t => {
10110          for (let n of e) t.removeEventListener(n, r);
10111        });
10112      };
10113    return n(t => {
10114      for (let n of e) t.addEventListener(n, r, {
10115        once: !0
10116      });
10117    }), i;
10118  },
10119  n5 = e => !!e.type.__asyncLoader;
10120function n9(e) {
10121  let t;
10122  O(e) && (e = {
10123    loader: e
10124  });
10125  let {
10126      loader: n,
10127      loadingComponent: l,
10128      errorComponent: r,
10129      delay: i = 200,
10130      hydrate: s,
10131      timeout: o,
10132      suspensible: a = !0,
10133      onError: u
10134    } = e,
10135    c = null,
10136    f = 0,
10137    p = () => (f++, c = null, d()),
10138    d = () => {
10139      let e;
10140      return c || (e = c = n().catch(e => {
10141        if (e = e instanceof Error ? e : Error(String(e)), u) return new Promise((t, n) => {
10142          u(e, () => t(p()), () => n(e), f + 1);
10143        });
10144        throw e;
10145      }).then(n => e !== c && c ? c : (n && (n.__esModule || "Module" === n[Symbol.toStringTag]) && (n = n.default), t = n, n)));
10146    };
10147  return nj({
10148    name: "AsyncComponentWrapper",
10149    __asyncLoader: d,
10150    __asyncHydrate(e, n, l) {
10151      let r = s ? () => {
10152        let t = s(l, t => function (e, t) {
10153          if (nX(e) && "[" === e.data) {
10154            let n = 1,
10155              l = e.nextSibling;
10156            for (; l;) {
10157              if (1 === l.nodeType) {
10158                if (!1 === t(l)) break;
10159              } else if (nX(l)) {
10160                if ("]" === l.data) {
10161                  if (0 == --n) break;
10162                } else "[" === l.data && n++;
10163              }
10164              l = l.nextSibling;
10165            }
10166          } else t(e);
10167        }(e, t));
10168        t && (n.bum || (n.bum = [])).push(t);
10169      } : l;
10170      t ? r() : d().then(() => !n.isUnmounted && r());
10171    },
10172    get __asyncResolved() {
10173      return t;
10174    },
10175    setup() {
10176      let e = iw;
10177      if (n$(e), t) return () => n7(t, e);
10178      let n = t => {
10179        c = null, t0(t, e, 13, !r);
10180      };
10181      if (a && e.suspense || iN) return d().then(t => () => n7(t, e)).catch(e => (n(e), () => r ? ic(r, {
10182        error: e
10183      }) : null));
10184      let s = tk(!1),
10185        u = tk(),
10186        f = tk(!!i);
10187      return i && setTimeout(() => {
10188        f.value = !1;
10189      }, i), null != o && setTimeout(() => {
10190        if (!s.value && !u.value) {
10191          let e = Error(`Async component timed out after ${o}ms.`);
10192          n(e), u.value = e;
10193        }
10194      }, o), d().then(() => {
10195        s.value = !0, e.parent && le(e.parent.vnode) && e.parent.update(
10195);
10196      }).catch(e => {
10197        n(e), u.value = e;
10198      }), () => s.value && t ? n7(t, e) : u.value && r ? ic(r, {
10199        error: u.value
10200      }) : l && !f.value ? ic(l) : void 0;
10201    }
10202  });
10203}
10204function n7(e, t) {
10205  let {
10206      ref: n,
10207      props: l,
10208      children: r,
10209      ce: i
10210    } = t.vnode,
10211    s = ic(e, l, r);
10212  return s.ref = n, s.ce = i, delete t.vnode.ce, s;
10213}
10214let le = e => e.type.__isKeepAlive,
10215  lt = {
10216    name: "KeepAlive",
10217    __isKeepAlive: !0,
10218    props: {
10219      include: [String, RegExp, Array],
10220      exclude: [String, RegExp, Array],
10221      max: [String, Number]
10222    },
10223    setup(e, {
10224      slots: t
10225    }) {
10226      let n = ik(),
10227        l = n.ctx;
10228      if (!l.renderer) return () => {
10229        let e = t.default && t.default();
10230        return e && 1 === e.length ? e[0] : e;
10231      };
10232      let r = new Map(),
10233        i = new Set(),
10234        s = null,
10235        o = n.suspense,
10236        {
10237          renderer: {
10238            p: a,
10239            m: u,
10240            um: c,
10241            o: {
10242              createElement: f
10243            }
10244          }
10245        } = l,
10246        p = f("div");
10247      function d(e) {
10248        ls(e), c(e, n, o, !0);
10249      }
10250      function h(e) {
10251        r.forEach((t, n) => {
10252          let l = iU(t.type);
10253          l && !e(l) && g(n);
10254        });
10255      }
10256      function g(e) {
10257        let t = r.get(e);
10258        !t || s && ii(t, s) ? s && ls(s) : d(t), r.delete(e), i.delete(e);
10259      }
10260      l.activate = (e, t, n, l, r) => {
10261        let i = e.component;
10262        u(e, t, n, 0, o), a(i.vnode, e, t, n, i, o, l, e.slotScopeIds, r), ry(() => {
10263          i.isDeactivated = !1, i.a && X(i.a);
10264          let t = e.props && e.props.onVnodeMounted;
10265          t && iS(t, i.parent, e);
10266        }, o);
10267      }, l.deactivate = e => {
10268        let t = e.component;
10269        rT(t.m), rT(t.a), u(e, p, null, 1, o), ry(() => {
10270          t.da && X(t.da);
10271          let n = e.props && e.props.onVnodeUnmounted;
10272          n && iS(n, t.parent, e), t.isDeactivated = !0;
10273        }, o);
10274      }, rM(() => [e.include, e.exclude], ([e, t]) => {
10275        e && h(t => ln(e, t)), t && h(e => !ln(t, e));
10276      }, {
10277        flush: "post",
10278        deep: !0
10279      });
10280      let m = null,
10281        _ = () => {
10282          null != m && (rz(n.subTree.type) ? ry(() => {
10283            r.set(m, lo(n.subTree));
10284          }, n.subTree.suspense) : r.set(m, lo(n.subTree)));
10285        };
10286      return lf(_), ld(_), lh(() => {
10287        r.forEach(e => {
10288          let {
10289              subTree: t,
10290              suspense: l
10291            } = n,
10292            r = lo(t);
10293          if (e.type === r.type && e.key === r.key) {
10294            ls(r);
10295            let e = r.component.da;
10296            e && ry(e, l);
10297            return;
10298          }
10299          d(e);
10300        });
10301      }), () => {
10302        if (m = null, !t.default) return s = null;
10303        let n = t.default(),
10304          l = n[0];
10305        if (n.length > 1) return s = null, n;
10306        if (!ir(l) || !(4 & l.shapeFlag) && !(128 & l.shapeFlag)) return s = null, l;
10307        let o = lo(l);
10308        if (o.type === r2) return s = null, o;
10309        let a = o.type,
10310          u = iU(n5(o) ? o.type.__asyncResolved || {} : a),
10311          {
10312            include: c,
10313            exclude: f,
10314            max: p
10315          } = e;
10316        if (c && (!u || !ln(c, u)) || f && u && ln(f, u)) return o.shapeFlag &= -257, s = o, l;
10317        let d = null == o.key ? a : o.key,
10318          h = r.get(d);
10319        return o.el && (o = id(o), 128 & l.shapeFlag && (l.ssContent = o)), m = d, h ? (o.el = h.el, o.component = h.component, o.transition && nV(o, o.transition), o.shapeFlag |= 512, i.delete(d), i.add(d)) : (i.add(d), p && i.size > parseInt(p, 10) && g(i.values().next().value)), o.shapeFlag |= 256, s = o, rz(l.type) ? l : o;
10320      };
10321    }
10322  };
10323function ln(e, t) {
10324  return k(e) ? e.some(e => ln(e, t)) : P(e) ? e.split(",").includes(t) : !!N(e) && (e.lastIndex = 0, e.test(t));
10325}
10326function ll(e, t) {
10327  li(e, "a", t);
10328}
10329function lr(e, t) {
10330  li(e, "da", t);
10331}
10332function li(e, t, n = iw) {
10333  let l = e.__wdc || (e.__wdc = () => {
10334    let t = n;
10335    for (; t;) {
10336      if (t.isDeactivated) return;
10337      t = t.parent;
10338    }
10339    return e();
10340  });
10341  if (la(t, l, n), n) {
10342    let e = n.parent;
10343    for (; e && e.parent;) le(e.parent.vnode) && function (e, t, n, l) {
10344      let r = la(t, e, l, !0);
10345      lg(() => {
10346        x(l[t], r);
10347      }, n);
10348    }(l, t, n, e), e = e.parent;
10349  }
10350}
10351function ls(e) {
10352  e.shapeFlag &= -257, e.shapeFlag &= -513;
10353}
10354function lo(e) {
10355  return 128 & e.shapeFlag ? e.ssContent : e;
10356}
10357function la(e, t, n = iw, l = !1) {
10358  if (n) {
10359    let r = n[e] || (n[e] = []),
10360      i = t.__weh || (t.__weh = (...l) => {
10361        eM();
10362        let r = iT(n),
10363          i = tQ(t, n, e, l);
10364        return r(), eI(), i;
10365      });
10366    return l ? r.unshift(i) : r.push(i), i;
10367  }
10368}
10369let lu = e => (t, n = iw) => {
10370    iN && "sp" !== e || la(e, (...e) => t(...e), n);
10371  },
10372  lc = lu("bm"),
10373  lf = lu("m"),
10374  lp = lu("bu"),
10375  ld = lu("u"),
10376  lh = lu("bum"),
10377  lg = lu("um"),
10378  lv = lu("sp"),
10379  lm = lu("rtg"),
10380  l_ = lu("rtc");
10381function ly(e, t = iw) {
10382  la("ec", e, t);
10383}
10384let lb = "components";
10385function lS(e, t) {
10386  return lw(lb, e, !0, t) || e;
10387}
10388let lC = Symbol.for("v-ndc");
10389function lx(e) {
10390  return P(e) ? lw(lb, e, !1) || e : e || lC;
10391}
10392function lE(e) {
10393  return lw("directives", e);
10394}
10395function lw(e, t, n = !0, l = !1) {
10396  let r = ni || iw;
10397  if (r) {
10398    let n = r.type;
10399    if (e === lb) {
10400      let e = iU(n, !1);
10401      if (e && (e === t || e === W(t) || e === q(W(t)))) return n;
10402    }
10403    let i = lk(r[e] || n[e], t) || lk(r.appContext[e], t);
10404    return !i && l ? n : i;
10405  }
10406}
10407function lk(e, t) {
10408  return e && (e[t] || e[W(t)] || e[q(W(t))]);
10409}
10410function lT(e, t, n, l) {
10411  let r;
10412  let i = n && n[l],
10413    s = k(e);
10414  if (s || P(e)) {
10415    let n = s && tm(e),
10416      l = !1;
10417    n && (l = !ty(e), e = ez(e)), r = Array(e.length);
10418    for (let n = 0, s = e.length; n < s; n++) r[n] = t(l ? tx(e[n]) : e[n], n, void 0, i && i[n]);
10419  } else if ("number" == typeof e) {
10420    r = Array(e);
10421    for (let n = 0; n < e; n++) r[n] = t(n + 1, n, void 0, i && i[n]);
10422  } else if (I(e)) {
10423    if (e[Symbol.iterator]) r = Array.from(e, (e, n) => t(e, n, void 0, i && i[n]));else {
10424      let n = Object.keys(e);
10425      r = Array(n.length);
10426      for (let l = 0, s = n.length; l < s; l++) {
10427        let s = n[l];
10428        r[l] = t(e[s], s, l, i && i[l]);
10429      }
10430    }
10431  } else r = [];
10432  return n && (n[l] = r), r;
10433}
10434function lA(e, t) {
10435  for (let n = 0; n < t.length; n++) {
10436    let l = t[n];
10437    if (k(l)) for (let t = 0; t < l.length; t++) e[l[t].name] = l[t].fn;else l && (e[l.name] = l.key ? (...e) => {
10438      let t = l.fn(...e);
10439      return t && (t.key = l.key), t;
10440    } : l.fn);
10441  }
10442  return e;
10443}
10444function lR(e, t, n = {}, l, r) {
10445  if (ni.ce || ni.parent && n5(ni.parent) && ni.parent.ce) return "default" !== t && (n.name = t), r3(), il(r0, null, [ic("slot", n, l && l())], 64);
10446  let i = e[t];
10447  i && i._c && (i._d = !1), r3();
10448  let s = i && lN(i(n)),
10449    o = n.key || s && s.key,
10450    a = il(r0, {
10451      key: (o && !M(o) ? o : `_${t}`) + (!s && l ? "_fb" : "")
10452    }, s || (l ? l() : []), s && 1 === e._ ? 64 : -2);
10453  return !r && a.scopeId && (a.slotScopeIds = [a.scopeId + "-s"]), i && i._c && (i._d = !0), a;
10454}
10455function lN(e) {
10456  return e.some(e => !ir(e) || !!(e.type !== r2 && (e.type !== r0 || lN(e.children)))) ? e : null;
10457}
10458function lO(e, t) {
10459  let n = {};
10460  for (let l in e) n[t && /[A-Z]/.test(l) ? `on:${l}` : G(l)] = e[l];
10461  return n;
10462}
10463let lP = e => e ? iR(e) ? iV(e) : lP(e.parent) : null,
10464  lM = C(Object.create(null), {
10465    $: e => e,
10466    $el: e => e.vnode.el,
10467    $data: e => e.data,
10468    $props: e => e.props,
10469    $attrs: e => e.attrs,
10470    $slots: e => e.slots,
10471    $refs: e => e.refs,
10472    $parent: e => lP(e.parent),
10473    $root: e => lP(e.root),
10474    $host: e => e.ce,
10475    $emit: e => e.emit,
10476    $options: e => l0(e),
10477    $forceUpdate: e => e.f || (e.f = () => {
10478      t7(e.update);
10479    }),
10480    $nextTick: e => e.n || (e.n = t9.bind(e.proxy)),
10481    $watch: e => rL.bind(e)
10482  }),
10483  lI = (e, t) => e !== g && !e.__isScriptSetup && w(e, t),
10484  lL = {
10485    get({
10486      _: e
10487    }, t) {
10488      let n, l, r;
10489      if ("__v_skip" === t) return !0;
10490      let {
10491        ctx: i,
10492        setupState: s,
10493        data: o,
10494        props: a,
10495        accessCache: u,
10496        type: c,
10497        appContext: f
10498      } = e;
10499      if ("$" !== t[0]) {
10500        let l = u[t];
10501        if (void 0 !== l) switch (l) {
10502          case 1:
10503            return s[t];
10504          case 2:
10505            return o[t];
10506          case 4:
10507            return i[t];
10508          case 3:
10509            return a[t];
10510        } else {
10511          if (lI(s, t)) return u[t] = 1, s[t];
10512          if (o !== g && w(o, t)) return u[t] = 2, o[t];
10513          if ((n = e.propsOptions[0]) && w(n, t)) return u[t] = 3, a[t];
10514          if (i !== g && w(i, t)) return u[t] = 4, i[t];
10515          lY && (u[t] = 0);
10516        }
10517      }
10518      let p = lM[t];
10519      return p ? ("$attrs" === t && eH(e.attrs, "get", ""), p(e)) : (l = c.__cssModules) && (l = l[t]) ? l : i !== g && w(i, t) ? (u[t] = 4, i[t]) : w(r = f.config.globalProperties, t) ? r[t] : void 0;
10520    },
10521    set({
10522      _: e
10523    }, t, n) {
10524      let {
10525        data: l,
10526        setupState: r,
10527        ctx: i
10528      } = e;
10529      return lI(r, t) ? (r[t] = n, !0) : l !== g && w(l, t) ? (l[t] = n, !0) : !w(e.props, t) && !("$" === t[0] && t.slice(1) in e) && (i[t] = n, !0);
10530    },
10531    has({
10532      _: {
10533        data: e,
10534        setupState: t,
10535        accessCache: n,
10536        ctx: l,
10537        appContext: r,
10538        propsOptions: i
10539      }
10540    }, s) {
10541      let o;
10542      return !!n[s] || e !== g && w(e, s) || lI(t, s) || (o = i[0]) && w(o, s) || w(l, s) || w(lM, s) || w(r.config.globalProperties, s);
10543    },
10544    defineProperty(e, t, n) {
10545      return null != n.get ? e._.accessCache[t] = 0 : w(n, "value") && this.set(e, t, n.value, null), Reflect.defineProperty(e, t, n);
10546    }
10547  },
10548  lD = C({}, lL, {
10549    get(e, t) {
10550      if (t !== Symbol.unscopables) return lL.get(e, t, e);
10551    },
10552    has: (e, t) => "_" !== t[0] && !et(t)
10553  });
10554function lF() {
10555  return null;
10556}
10557function lV() {
10558  return null;
10559}
10560function lU(e) {}
10561function lj(e) {}
10562function lB() {
10563  return null;
10564}
10565function l$() {}
10566function lH(e, t) {
10567  return null;
10568}
10569function lW() {
10570  return lz().slots;
10571}
10572function lK() {
10573  return lz().attrs;
10574}
10575function lz() {
10576  let e = ik();
10577  return e.setupContext || (e.setupContext = iF(e));
10578}
10579function lq(e) {
10580  return k(e) ? e.reduce((e, t) => (e[t] = null, e), {}) : e;
10581}
10582function lG(e, t) {
10583  let n = lq(e);
10584  for (let e in t) {
10585    if (e.startsWith("__skip")) continue;
10586    let l = n[e];
10587    l ? k(l) || O(l) ? l = n[e] = {
10588      type: l,
10589      default: t[e]
10590    } : l.default = t[e] : null === l && (l = n[e] = {
10591      default: t[e]
10592    }), l && t[`__skip_${e}`] && (l.skipFactory = !0);
10593  }
10594  return n;
10595}
10596function lJ(e, t) {
10597  return e && t ? k(e) && k(t) ? e.concat(t) : C({}, lq(e), lq(t)) : e || t;
10598}
10599function lX(e, t) {
10600  let n = {};
10601  for (let l in e) t.includes(l) || Object.defineProperty(n, l, {
10602    enumerable: !0,
10603    get: () => e[l]
10604  });
10605  return n;
10606}
10607function lZ(e) {
10608  let t = ik(),
10609    n = e();
10610  return iA(), L(n) && (n = n.catch(e => {
10611    throw iT(t), e;
10612  })), [n, () => iT(t)];
10613}
10614let lY = !0;
10615function lQ(e, t, n) {
10616  tQ(k(e) ? e.map(e => e.bind(t.proxy)) : e.bind(t.proxy), t, n);
10617}
10618function l0(e) {
10619  let t;
10620  let n = e.type,
10621    {
10622      mixins: l,
10623      extends: r
10624    } = n,
10625    {
10626      mixins: i,
10627      optionsCache: s,
10628      config: {
10629        optionMergeStrategies: o
10630      }
10631    } = e.appContext,
10632    a = s.get(n);
10633  return a ? t = a : i.length || l || r ? (t = {}, i.length && i.forEach(e => l1(t, e, o, !0)), l1(t, n, o)) : t = n, I(n) && s.set(n, t), t;
10634}
10635function l1(e, t, n, l = !1) {
10636  let {
10637    mixins: r,
10638    extends: i
10639  } = t;
10640  for (let s in i && l1(e, i, n, !0), r && r.forEach(t => l1(e, t, n, !0)), t) if (l && "expose" === s) ;else {
10641    let l = l2[s] || n && n[s];
10642    e[s] = l ? l(e[s], t[s]) : t[s];
10643  }
10644  return e;
10645}
10646let l2 = {
10647  data: l6,
10648  props: l5,
10649  emits: l5,
10650  methods: l3,
10651  computed: l3,
10652  beforeCreate: l8,
10653  created: l8,
10654  beforeMount: l8,
10655  mounted: l8,
10656  beforeUpdate: l8,
10657  updated: l8,
10658  beforeDestroy: l8,
10659  beforeUnmount: l8,
10660  destroyed: l8,
10661  unmounted: l8,
10662  activated: l8,
10663  deactivated: l8,
10664  errorCaptured: l8,
10665  serverPrefetch: l8,
10666  components: l3,
10667  directives: l3,
10668  watch: function (e, t) {
10669    if (!e) return t;
10670    if (!t) return e;
10671    let n = C(Object.create(null), e);
10672    for (let l in t) n[l] = l8(e[l], t[l]);
10673    return n;
10674  },
10675  provide: l6,
10676  inject: function (e, t) {
10677    return l3(l4(e), l4(t));
10678  }
10679};
10680function l6(e, t) {
10681  return t ? e ? function () {
10682    return C(O(e) ? e.call(this, this) : e, O(t) ? t.call(this, this) : t);
10683  } : t : e;
10684}
10685function l4(e) {
10686  if (k(e)) {
10687    let t = {};
10688    for (let n = 0; n < e.length; n++) t[e[n]] = e[n];
10689    return t;
10690  }
10691  return e;
10692}
10693function l8(e, t) {
10694  return e ? [...new Set([].concat(e, t))] : t;
10695}
10696function l3(e, t) {
10697  return e ? C(Object.create(null), e, t) : t;
10698}
10699function l5(e, t) {
10700  return e ? k(e) && k(t) ? [...new Set([...e, ...t])] : C(Object.create(null), lq(e), lq(null != t ? t : {})) : t;
10701}
10702function l9() {
10703  return {
10704    app: null,
10705    config: {
10706      isNativeTag: y,
10707      performance: !1,
10708      globalProperties: {},
10709      optionMergeStrategies: {},
10710      errorHandler: void 0,
10711      warnHandler: void 0,
10712      compilerOptions: {}
10713    },
10714    mixins: [],
10715    components: {},
10716    directives: {},
10717    provides: Object.create(null),
10718    optionsCache: new WeakMap(),
10719    propsCache: new WeakMap(),
10720    emitsCache: new WeakMap()
10721  };
10722}
10723let l7 = 0,
10724  re = null;
10725function rt(e, t) {
10726  if (iw) {
10727    let n = iw.provides,
10728      l = iw.parent && iw.parent.provides;
10729    l === n && (n = iw.provides = Object.create(l)), n[e] = t;
10730  }
10731}
10732function rn(e, t, n = !1) {
10733  let l = iw || ni;
10734  if (l || re) {
10735    let r = re ? re._context.provides : l ? null == l.parent ? l.vnode.appContext && l.vnode.appContext.provides : l.parent.provides : void 0;
10736    if (r && e in r) return r[e];
10737    if (arguments.length > 1) return n && O(t) ? t.call(l && l.proxy) : t;
10738  }
10739}
10740function rl() {
10741  return !!(iw || ni || re);
10742}
10743let rr = {},
10744  ri = () => Object.create(rr),
10745  rs = e => Object.getPrototypeOf(e) === rr;
10746function ro(e, t, n, l) {
10747  let r;
10748  let [i, s] = e.propsOptions,
10749    o = !1;
10750  if (t) for (let a in t) {
10751    let u;
10752    if (B(a)) continue;
10753    let c = t[a];
10754    i && w(i, u = W(a)) ? s && s.includes(u) ? (r || (r = {}))[u] = c : n[u] = c : rj(e.emitsOptions, a) || a in l && c === l[a] || (l[a] = c, o = !0);
10755  }
10756  if (s) {
10757    let t = tS(n),
10758      l = r || g;
10759    for (let r = 0; r < s.length; r++) {
10760      let o = s[r];
10761      n[o] = ra(i, t, o, l[o], e, !w(l, o));
10762    }
10763  }
10764  return o;
10765}
10766function ra(e, t, n, l, r, i) {
10767  let s = e[n];
10768  if (null != s) {
10769    let e = w(s, "default");
10770    if (e && void 0 === l) {
10771      let e = s.default;
10772      if (s.type !== Function && !s.skipFactory && O(e)) {
10773        let {
10774          propsDefaults: i
10775        } = r;
10776        if (n in i) l = i[n];else {
10777          let s = iT(r);
10778          l = i[n] = e.call(null, t), s();
10779        }
10780      } else l = e;
10781      r.ce && r.ce._setProp(n, l);
10782    }
10783    s[0] && (i && !e ? l = !1 : s[1] && ("" === l || l === z(n)) && (l = !0));
10784  }
10785  return l;
10786}
10787let ru = new WeakMap();
10788function rc(e) {
10789  return !("$" === e[0] || B(e));
10790}
10791let rf = e => "_" === e[0] || "$stable" === e,
10792  rp = e => k(e) ? e.map(im) : [im(e)],
10793  rd = (e, t, n) => {
10794    if (t._n) return t;
10795    let l = nf((...e) => rp(t(...e)), n);
10796    return l._c = !1, l;
10797  },
10798  rh = (e, t, n) => {
10799    let l = e._ctx;
10800    for (let n in e) {
10801      if (rf(n)) continue;
10802      let r = e[n];
10803      if (O(r)) t[n] = rd(n, r, l);else if (null != r) {
10804        let e = rp(r);
10805        t[n] = () => e;
10806      }
10807    }
10808  },
10809  rg = (e, t) => {
10810    let n = rp(t);
10811    e.slots.default = () => n;
10812  },
10813  rv = (e, t, n) => {
10814    for (let l in t) (n || "_" !== l) && (e[l] = t[l]);
10815  },
10816  rm = (e, t, n) => {
10817    let l = e.slots = ri();
10818    if (32 & e.vnode.shapeFlag) {
10819      let e = t._;
10820      e ? (rv(l, t, n), n && Z(l, "_", e, !0)) : rh(t, l);
10821    } else t && rg(e, t);
10822  },
10823  r_ = (e, t, n) => {
10824    let {
10825        vnode: l,
10826        slots: r
10827      } = e,
10828      i = !0,
10829      s = g;
10830    if (32 & l.shapeFlag) {
10831      let e = t._;
10832      e ? n && 1 === e ? i = !1 : rv(r, t, n) : (i = !t.$stable, rh(t, r)), s = t;
10833    } else t && (rg(e, t), s = {
10834      default: 1
10835    });
10836    if (i) for (let e in r) rf(e) || null != s[e] || delete r[e];
10837  },
10838  ry = rY;
10839function rb(e) {
10840  return rC(e);
10841}
10842function rS(e) {
10843  return rC(e, nZ);
10844}
10845function rC(e, t) {
10846  var n;
10847  let l, r;
10848  ee().__VUE__ = !0;
10849  let {
10850      insert: i,
10851      remove: s,
10852      patchProp: o,
10853      createElement: a,
10854      createText: u,
10855      createComment: c,
10856      setText: f,
10857      setElementText: p,
10858      parentNode: d,
10859      nextSibling: h,
10860      setScopeId: y = _,
10861      insertStaticContent: b
10862    } = e,
10863    S = (e, t, n, l = null, r = null, i = null, s, o = null, a = !!t.dynamicChildren) => {
10864      if (e === t) return;
10865      e && !ii(e, t) && (l = er(e), Y(e, r, i, !0), e = null), -2 === t.patchFlag && (a = !1, t.dynamicChildren = null);
10866      let {
10867        type: u,
10868        ref: c,
10869        shapeFlag: f
10870      } = t;
10871      switch (u) {
10872        case r1:
10873          x(e, t, n, l);
10874          break;
10875        case r2:
10876          E(e, t, n, l);
10877          break;
10878        case r6:
10879          null == e && k(t, n, l, s);
10880          break;
10881        case r0:
10882          V(e, t, n, l, r, i, s, o, a);
10883          break;
10884        default:
10885          1 & f ? R(e, t, n, l, r, i, s, o, a) : 6 & f ? U(e, t, n, l, r, i, s, o, a) : 64 & f ? u.process(e, t, n, l, r, i, s, o, a, eo) : 128 & f && u.process(e, t, n, l, r, i, s, o, a, eo);
10886      }
10887      null != c && r && nW(c, e && e.ref, i, t || e, !t);
10888    },
10889    x = (e, t, n, l) => {
10890      if (null == e) i(t.el = u(t.children), n, l);else {
10891        let n = t.el = e.el;
10892        t.children !== e.children && f(n, t.children);
10893      }
10894    },
10895    E = (e, t, n, l) => {
10896      null == e ? i(t.el = c(t.children || ""), n, l) : t.el = e.el;
10897    },
10898    k = (e, t, n, l) => {
10899      [e.el, e.anchor] = b(e.children, t, n, l, e.el, e.anchor);
10900    },
10901    T = ({
10902      el: e,
10903      anchor: t
10904    }, n, l) => {
10905      let r;
10906      for (; e && e !== t;) r = h(e), i(e, n, l), e = r;
10907      i(t, n, l);
10908    },
10909    A = ({
10910      el: e,
10911      anchor: t
10912    }) => {
10913      let n;
10914      for (; e && e !== t;) n = h(e), s(e), e = n;
10915      s(t);
10916    },
10917    R = (e, t, n, l, r, i, s, o, a) => {
10918      "svg" === t.type ? s = "svg" : "math" === t.type && (s = "mathml"), null == e ? N(t, n, l, r, i, s, o, a) : L(e, t, r, i, s, o, a);
10919    },
10920    N = (e, t, n, l, r, s, u, c) => {
10921      let f, d;
10922      let {
10923        props: h,
10924        shapeFlag: g,
10925        transition: m,
10926        dirs: _
10927      } = e;
10928      if (f = e.el = a(e.type, s, h && h.is, h), 8 & g ? p(f, e.children) : 16 & g && M(e.children, f, null, l, r, rx(e, s), u, c), _ && nd(e, null, l, "created"), P(f, e, e.scopeId, u, l), h) {
10929        for (let e in h) "value" === e || B(e) || o(f, e, null, h[e], s, l);
10930        "value" in h && o(f, "value", null, h.value, s), (d = h.onVnodeBeforeMount) && iS(d, l, e);
10931      }
10932      _ && nd(e, null, l, "beforeMount");
10933      let y = rw(r, m);
10934      y && m.beforeEnter(f), i(f, t, n), ((d = h && h.onVnodeMounted) || y || _) && ry(() => {
10935        d && iS(d, l, e), y && m.enter(f), _ && nd(e, null, l, "mounted");
10936      }, r);
10937    },
10938    P = (e, t, n, l, r) => {
10939      if (n && y(e, n), l) for (let t = 0; t < l.length; t++) y(e, l[t]);
10940      if (r) {
10941        let n = r.subTree;
10942        if (t === n || rz(n.type) && (n.ssContent === t || n.ssFallback === t)) {
10943          let t = r.vnode;
10944          P(e, t, t.scopeId, t.slotScopeIds, r.parent);
10945        }
10946      }
10947    },
10948    M = (e, t, n, l, r, i, s, o, a = 0) => {
10949      for (let u = a; u < e.length; u++) S(null, e[u] = o ? i_(e[u]) : im(e[u]), t, n, l, r, i, s, o);
10950    },
10951    L = (e, t, n, l, r, i, s) => {
10952      let a;
10953      let u = t.el = e.el,
10954        {
10955          patchFlag: c,
10956          dynamicChildren: f,
10957          dirs: d
10958        } = t;
10959      c |= 16 & e.patchFlag;
10960      let h = e.props || g,
10961        m = t.props || g;
10962      if (n && rE(n, !1), (a = m.onVnodeBeforeUpdate) && iS(a, n, t, e), d && nd(t, e, n, "beforeUpdate"), n && rE(n, !0), (h.innerHTML && null == m.innerHTML || h.textContent && null == m.textContent) && p(u, ""), f ? D(e.dynamicChildren, f, u, n, l, rx(t, r), i) : s || q(e, t, u, null, n, l, rx(t, r), i, !1), c > 0) {
10963        if (16 & c) F(u, h, m, n, r);else if (2 & c && h.class !== m.class && o(u, "class", null, m.class, r), 4 & c && o(u, "style", h.style, m.style, r), 8 & c) {
10964          let e = t.dynamicProps;
10965          for (let t = 0; t < e.length; t++) {
10966            let l = e[t],
10967              i = h[l],
10968              s = m[l];
10969            (s !== i || "value" === l) && o(u, l, i, s, r, n);
10970          }
10971        }
10972        1 & c && e.children !== t.children && p(u, t.children);
10973      } else s || null != f || F(u, h, m, n, r);
10974      ((a = m.onVnodeUpdated) || d) && ry(() => {
10975        a && iS(a, n, t, e), d && nd(t, e, n, "updated");
10976      }, l);
10977    },
10978    D = (e, t, n, l, r, i, s) => {
10979      for (let o = 0; o < t.length; o++) {
10980        let a = e[o],
10981          u = t[o],
10982          c = a.el && (a.type === r0 || !ii(a, u) || 70 & a.shapeFlag) ? d(a.el) : n;
10983        S(a, u, c, null, l, r, i, s, !0);
10984      }
10985    },
10986    F = (e, t, n, l, r) => {
10987      if (t !== n) {
10988        if (t !== g) for (let i in t) B(i) || i in n || o(e, i, t[i], null, r, l);
10989        for (let i in n) {
10990          if (B(i)) continue;
10991          let s = n[i],
10992            a = t[i];
10993          s !== a && "value" !== i && o(e, i, a, s, r, l);
10994        }
10995        "value" in n && o(e, "value", t.value, n.value, r);
10996      }
10997    },
10998    V = (e, t, n, l, r, s, o, a, c) => {
10999      let f = t.el = e ? e.el : u(""),
11000        p = t.anchor = e ? e.anchor : u(""),
11001        {
11002          patchFlag: d,
11003          dynamicChildren: h,
11004          slotScopeIds: g
11005        } = t;
11006      g && (a = a ? a.concat(g) : g), null == e ? (i(f, n, l), i(p, n, l), M(t.children || [], n, p, r, s, o, a, c)) : d > 0 && 64 & d && h && e.dynamicChildren ? (D(e.dynamicChildren, h, n, r, s, o, a), (null != t.key || r && t === r.subTree) && rk(e, t, !0)) : q(e, t, n, p, r, s, o, a, c);
11007    },
11008    U = (e, t, n, l, r, i, s, o, a) => {
11009      t.slotScopeIds = o, null == e ? 512 & t.shapeFlag ? r.ctx.activate(t, n, l, s, a) : j(t, n, l, r, i, s, a) : $(e, t, a);
11010    },
11011    j = (e, t, n, l, r, i, s) => {
11012      let o = e.component = iE(e, l, r);
11013      le(e) && (o.ctx.renderer = eo), iO(o, !1, s), o.asyncDep ? (r && r.registerDep(o, H, s), e.el || E(null, o.subTree = ic(r2), t, n)) : H(o, e, t, n, r, i, s);
11014    },
11015    $ = (e, t, n) => {
11016      let l = t.component = e.component;
11017      if (function (e, t, n) {
11018        let {
11019            props: l,
11020            children: r,
11021            component: i
11022          } = e,
11023          {
11024            props: s,
11025            children: o,
11026            patchFlag: a
11027          } = t,
11028          u = i.emitsOptions;
11029        if (t.dirs || t.transition) return !0;
11030        if (!n || !(a >= 0)) return (!!r || !!o) && (!o || !o.$stable) || l !== s && (l ? !s || rW(l, s, u) : !!s);
11031        if (1024 & a) return !0;
11032        if (16 & a) return l ? rW(l, s, u) : !!s;
11033        if (8 & a) {
11034          let e = t.dynamicProps;
11035          for (let t = 0; t < e.length; t++) {
11036            let n = e[t];
11037            if (s[n] !== l[n] && !rj(u, n)) return !0;
11038          }
11039        }
11040        return !1;
11041      }(e, t, n)) {
11042        if (l.asyncDep && !l.asyncResolved) {
11043          K(l, t, n);
11044          return;
11045        }
11046        l.next = t, l.update();
11047      } else t.el = e.el, l.vnode = t;
11048    },
11049    H = (e, t, n, l, i, s, o) => {
11050      let a = () => {
11051        if (e.isMounted) {
11052          let t,
11053            {
11054              next: n,
11055              bu: l,
11056              u: r,
11057              parent: u,
11058              vnode: c
11059            } = e;
11060          {
11061            let t = function e(t) {
11062              let n = t.subTree.component;
11063              if (n) return n.asyncDep && !n.asyncResolved ? n : e(n);
11064            }(e);
11065            if (t) {
11066              n && (n.el = c.el, K(e, n, o)), t.asyncDep.then(() => {
11067                e.isUnmounted || a();
11068              });
11069              return;
11070            }
11071          }
11072          let f = n;
11073          rE(e, !1), n ? (n.el = c.el, K(e, n, o)) : n = c, l && X(l), (t = n.props && n.props.onVnodeBeforeUpdate) && iS(t, u, n, c), rE(e, !0);
11074          let p = rB(e),
11075            h = e.subTree;
11076          e.subTree = p, S(h, p, d(h.el), er(h), e, i, s), n.el = p.el, null === f && rK(e, p.el), r && ry(r, i), (t = n.props && n.props.onVnodeUpdated) && ry(() => iS(t, u, n, c), i);
11077        } else {
11078          let o;
11079          let {
11080              el: a,
11081              props: u
11082            } = t,
11083            {
11084              bm: c,
11085              m: f,
11086              parent: p,
11087              root: d,
11088              type: h
11089            } = e,
11090            g = n5(t);
11091          if (rE(e, !1), c && X(c), !g && (o = u && u.onVnodeBeforeMount) && iS(o, p, t), rE(e, !0), a && r) {
11092            let t = () => {
11093              e.subTree = rB(e), r(a, e.subTree, e, i, null);
11094            };
11095            g && h.__asyncHydrate ? h.__asyncHydrate(a, e, t) : t();
11096          } else {
11097            d.ce && d.ce._injectChildStyle(h);
11098            let r = e.subTree = rB(e);
11099            S(null, r, n, l, e, i, s), t.el = r.el;
11100          }
11101          if (f && ry(f, i), !g && (o = u && u.onVnodeMounted)) {
11102            let e = t;
11103            ry(() => iS(o, p, e), i);
11104          }
11105          (256 & t.shapeFlag || p && n5(p.vnode) && 256 & p.vnode.shapeFlag) && e.a && ry(e.a, i), e.isMounted = !0, t = n = l = null;
11106        }
11107      };
11108      e.scope.on();
11109      let u = e.effect = new eb(a);
11110      e.scope.off();
11111      let c = e.update = u.run.bind(u),
11112        f = e.job = u.runIfDirty.bind(u);
11113      f.i = e, f.id = e.uid, u.scheduler = () => t7(f), rE(e, !0), c();
11114    },
11115    K = (e, t, n) => {
11116      t.component = e;
11117      let l = e.vnode.props;
11118      e.vnode = t, e.next = null, function (e, t, n, l) {
11119        let {
11120            props: r,
11121            attrs: i,
11122            vnode: {
11123              patchFlag: s
11124            }
11125          } = e,
11126          o = tS(r),
11127          [a] = e.propsOptions,
11128          u = !1;
11129        if ((l || s > 0) && !(16 & s)) {
11130          if (8 & s) {
11131            let n = e.vnode.dynamicProps;
11132            for (let l = 0; l < n.length; l++) {
11133              let s = n[l];
11134              if (rj(e.emitsOptions, s)) continue;
11135              let c = t[s];
11136              if (a) {
11137                if (w(i, s)) c !== i[s] && (i[s] = c, u = !0);else {
11138                  let t = W(s);
11139                  r[t] = ra(a, o, t, c, e, !1);
11140                }
11141              } else c !== i[s] && (i[s] = c, u = !0);
11142            }
11143          }
11144        } else {
11145          let l;
11146          for (let s in ro(e, t, r, i) && (u = !0), o) t && (w(t, s) || (l = z(s)) !== s && w(t, l)) || (a ? n && (void 0 !== n[s] || void 0 !== n[l]) && (r[s] = ra(a, o, s, void 0, e, !0)) : delete r[s]);
11147          if (i !== o) for (let e in i) t && w(t, e) || (delete i[e], u = !0);
11148        }
11149        u && eW(e.attrs, "set", "");
11150      }(e, t.props, l, n), r_(e, t.children, n), eM(), nn(e), eI();
11151    },
11152    q = (e, t, n, l, r, i, s, o, a = !1) => {
11153      let u = e && e.children,
11154        c = e ? e.shapeFlag : 0,
11155        f = t.children,
11156        {
11157          patchFlag: d,
11158          shapeFlag: h
11159        } = t;
11160      if (d > 0) {
11161        if (128 & d) {
11162          J(u, f, n, l, r, i, s, o, a);
11163          return;
11164        }
11165        if (256 & d) {
11166          G(u, f, n, l, r, i, s, o, a);
11167          return;
11168        }
11169      }
11170      8 & h ? (16 & c && el(u, r, i), f !== u && p(n, f)) : 16 & c ? 16 & h ? J(u, f, n, l, r, i, s, o, a) : el(u, r, i, !0) : (8 & c && p(n, ""), 16 & h && M(f, n, l, r, i, s, o, a));
11171    },
11172    G = (e, t, n, l, r, i, s, o, a) => {
11173      let u;
11174      e = e || m, t = t || m;
11175      let c = e.length,
11176        f = t.length,
11177        p = Math.min(c, f);
11178      for (u = 0; u < p; u++) {
11179        let l = t[u] = a ? i_(t[u]) : im(t[u]);
11180        S(e[u], l, n, null, r, i, s, o, a);
11181      }
11182      c > f ? el(e, r, i, !0, !1, p) : M(t, n, l, r, i, s, o, a, p);
11183    },
11184    J = (e, t, n, l, r, i, s, o, a) => {
11185      let u = 0,
11186        c = t.length,
11187        f = e.length - 1,
11188        p = c - 1;
11189      for (; u <= f && u <= p;) {
11190        let l = e[u],
11191          c = t[u] = a ? i_(t[u]) : im(t[u]);
11192        if (ii(l, c)) S(l, c, n, null, r, i, s, o, a);else break;
11193        u++;
11194      }
11195      for (; u <= f && u <= p;) {
11196        let l = e[f],
11197          u = t[p] = a ? i_(t[p]) : im(t[p]);
11198        if (ii(l, u)) S(l, u, n, null, r, i, s, o, a);else break;
11199        f--, p--;
11200      }
11201      if (u > f) {
11202        if (u <= p) {
11203          let e = p + 1,
11204            f = e < c ? t[e].el : l;
11205          for (; u <= p;) S(null, t[u] = a ? i_(t[u]) : im(t[u]), n, f, r, i, s, o, a), u++;
11206        }
11207      } else if (u > p) for (; u <= f;) Y(e[u], r, i, !0), u++;else {
11208        let d;
11209        let h = u,
11210          g = u,
11211          _ = new Map();
11212        for (u = g; u <= p; u++) {
11213          let e = t[u] = a ? i_(t[u]) : im(t[u]);
11214          null != e.key && _.set(e.key, u);
11215        }
11216        let y = 0,
11217          b = p - g + 1,
11218          C = !1,
11219          x = 0,
11220          E = Array(b);
11221        for (u = 0; u < b; u++) E[u] = 0;
11222        for (u = h; u <= f; u++) {
11223          let l;
11224          let c = e[u];
11225          if (y >= b) {
11226            Y(c, r, i, !0);
11227            continue;
11228          }
11229          if (null != c.key) l = _.get(c.key);else for (d = g; d <= p; d++) if (0 === E[d - g] && ii(c, t[d])) {
11230            l = d;
11231            break;
11232          }
11233          void 0 === l ? Y(c, r, i, !0) : (E[l - g] = u + 1, l >= x ? x = l : C = !0, S(c, t[l], n, null, r, i, s, o, a), y++);
11234        }
11235        let w = C ? function (e) {
11236          let t, n, l, r, i;
11237          let s = e.slice(),
11238            o = [0],
11239            a = e.length;
11240          for (t = 0; t < a; t++) {
11241            let a = e[t];
11242            if (0 !== a) {
11243              if (e[n = o[o.length - 1]] < a) {
11244                s[t] = n, o.push(t);
11245                continue;
11246              }
11247              for (l = 0, r = o.length - 1; l < r;) e[o[i = l + r >> 1]] < a ? l = i + 1 : r = i;
11248              a < e[o[l]] && (l > 0 && (s[t] = o[l - 1]), o[l] = t);
11249            }
11250          }
11251          for (l = o.length, r = o[l - 1]; l-- > 0;
11251) o[l] = r, r = s[r];
11252          return o;
11253        }(E) : m;
11254        for (d = w.length - 1, u = b - 1; u >= 0; u--) {
11255          let e = g + u,
11256            f = t[e],
11257            p = e + 1 < c ? t[e + 1].el : l;
11258          0 === E[u] ? S(null, f, n, p, r, i, s, o, a) : C && (d < 0 || u !== w[d] ? Z(f, n, p, 2) : d--);
11259        }
11260      }
11261    },
11262    Z = (e, t, n, l, r = null) => {
11263      let {
11264        el: s,
11265        type: o,
11266        transition: a,
11267        children: u,
11268        shapeFlag: c
11269      } = e;
11270      if (6 & c) {
11271        Z(e.component.subTree, t, n, l);
11272        return;
11273      }
11274      if (128 & c) {
11275        e.suspense.move(t, n, l);
11276        return;
11277      }
11278      if (64 & c) {
11279        o.move(e, t, n, eo);
11280        return;
11281      }
11282      if (o === r0) {
11283        i(s, t, n);
11284        for (let e = 0; e < u.length; e++) Z(u[e], t, n, l);
11285        i(e.anchor, t, n);
11286        return;
11287      }
11288      if (o === r6) {
11289        T(e, t, n);
11290        return;
11291      }
11292      if (2 !== l && 1 & c && a) {
11293        if (0 === l) a.beforeEnter(s), i(s, t, n), ry(() => a.enter(s), r);else {
11294          let {
11295              leave: e,
11296              delayLeave: l,
11297              afterLeave: r
11298            } = a,
11299            o = () => i(s, t, n),
11300            u = () => {
11301              e(s, () => {
11302                o(), r && r();
11303              });
11304            };
11305          l ? l(s, o, u) : u();
11306        }
11307      } else i(s, t, n);
11308    },
11309    Y = (e, t, n, l = !1, r = !1) => {
11310      let i;
11311      let {
11312        type: s,
11313        props: o,
11314        ref: a,
11315        children: u,
11316        dynamicChildren: c,
11317        shapeFlag: f,
11318        patchFlag: p,
11319        dirs: d,
11320        cacheIndex: h
11321      } = e;
11322      if (-2 === p && (r = !1), null != a && nW(a, null, n, e, !0), null != h && (t.renderCache[h] = void 0), 256 & f) {
11323        t.ctx.deactivate(e);
11324        return;
11325      }
11326      let g = 1 & f && d,
11327        m = !n5(e);
11328      if (m && (i = o && o.onVnodeBeforeUnmount) && iS(i, t, e), 6 & f) en(e.component, n, l);else {
11329        if (128 & f) {
11330          e.suspense.unmount(n, l);
11331          return;
11332        }
11333        g && nd(e, null, t, "beforeUnmount"), 64 & f ? e.type.remove(e, t, n, eo, l) : c && !c.hasOnce && (s !== r0 || p > 0 && 64 & p) ? el(c, t, n, !1, !0) : (s === r0 && 384 & p || !r && 16 & f) && el(u, t, n), l && Q(e);
11334      }
11335      (m && (i = o && o.onVnodeUnmounted) || g) && ry(() => {
11336        i && iS(i, t, e), g && nd(e, null, t, "unmounted");
11337      }, n);
11338    },
11339    Q = e => {
11340      let {
11341        type: t,
11342        el: n,
11343        anchor: l,
11344        transition: r
11345      } = e;
11346      if (t === r0) {
11347        et(n, l);
11348        return;
11349      }
11350      if (t === r6) {
11351        A(e);
11352        return;
11353      }
11354      let i = () => {
11355        s(n), r && !r.persisted && r.afterLeave && r.afterLeave();
11356      };
11357      if (1 & e.shapeFlag && r && !r.persisted) {
11358        let {
11359            leave: t,
11360            delayLeave: l
11361          } = r,
11362          s = () => t(n, i);
11363        l ? l(e.el, i, s) : s();
11364      } else i();
11365    },
11366    et = (e, t) => {
11367      let n;
11368      for (; e !== t;) n = h(e), s(e), e = n;
11369      s(t);
11370    },
11371    en = (e, t, n) => {
11372      let {
11373        bum: l,
11374        scope: r,
11375        job: i,
11376        subTree: s,
11377        um: o,
11378        m: a,
11379        a: u
11380      } = e;
11381      rT(a), rT(u), l && X(l), r.stop(), i && (i.flags |= 8, Y(s, e, t, n)), o && ry(o, t), ry(() => {
11382        e.isUnmounted = !0;
11383      }, t), t && t.pendingBranch && !t.isUnmounted && e.asyncDep && !e.asyncResolved && e.suspenseId === t.pendingId && (t.deps--, 0 === t.deps && t.resolve());
11384    },
11385    el = (e, t, n, l = !1, r = !1, i = 0) => {
11386      for (let s = i; s < e.length; s++) Y(e[s], t, n, l, r);
11387    },
11388    er = e => {
11389      if (6 & e.shapeFlag) return er(e.component.subTree);
11390      if (128 & e.shapeFlag) return e.suspense.next();
11391      let t = h(e.anchor || e.el),
11392        n = t && t[nh];
11393      return n ? h(n) : t;
11394    },
11395    ei = !1,
11396    es = (e, t, n) => {
11397      null == e ? t._vnode && Y(t._vnode, null, null, !0) : S(t._vnode || null, e, t, null, null, null, n), t._vnode = e, ei || (ei = !0, nn(), nl(), ei = !1);
11398    },
11399    eo = {
11400      p: S,
11401      um: Y,
11402      m: Z,
11403      r: Q,
11404      mt: j,
11405      mc: M,
11406      pc: q,
11407      pbc: D,
11408      n: er,
11409      o: e
11410    };
11411  return t && ([l, r] = t(eo)), {
11412    render: es,
11413    hydrate: l,
11414    createApp: (n = l, function (e, t = null) {
11415      O(e) || (e = C({}, e)), null == t || I(t) || (t = null);
11416      let l = l9(),
11417        r = new WeakSet(),
11418        i = [],
11419        s = !1,
11420        o = l.app = {
11421          _uid: l7++,
11422          _component: e,
11423          _props: t,
11424          _container: null,
11425          _context: l,
11426          _instance: null,
11427          version: iK,
11428          get config() {
11429            return l.config;
11430          },
11431          set config(v) {},
11432          use: (e, ...t) =>
11432 (r.has(e) || (e && O(e.install) ? (r.add(e), e.install(o, ...t)) : O(e) && (r.add(e), e(o, ...t))), o),
11433          mixin: e => (l.mixins.includes(e) || l.mixins.push(e), o),
11434          component: (e, t) => t ? (l.components[e] = t, o) : l.components[e],
11435          directive: (e, t) => t ? (l.directives[e] = t, o) : l.directives[e],
11436          mount(r, i, a) {
11437            if (!s) {
11438              let u = o._ceVNode || ic(e, t);
11439              return u.appContext = l, !0 === a ? a = "svg" : !1 === a && (a = void 0), i && n ? n(u, r) : es(u, r, a), s = !0, o._container = r, r.__vue_app__ = o, iV(u.component);
11440            }
11441          },
11442          onUnmount(e) {
11443            i.push(e);
11444          },
11445          unmount() {
11446            s && (tQ(i, o._instance, 16), es(null, o._container), delete o._container.__vue_app__);
11447          },
11448          provide: (e, t) => (l.provides[e] = t, o),
11449          runWithContext(e) {
11450            let t = re;
11451            re = o;
11452            try {
11453              return e();
11454            } finally {
11455              re = t;
11456            }
11457          }
11458        };
11459      return o;
11460    })
11461  };
11462}
11463function rx({
11464  type: e,
11465  props: t
11466}, n) {
11467  return "svg" === n && "foreignObject" === e || "mathml" === n && "annotation-xml" === e && t && t.encoding && t.encoding.includes("html") ? void 0 : n;
11468}
11469function rE({
11470  effect: e,
11471  job: t
11472}, n) {
11473  n ? (e.flags |= 32, t.flags |= 4) : (e.flags &= -33, t.flags &= -5);
11474}
11475function rw(e, t) {
11476  return (!e || e && !e.pendingBranch) && t && !t.persisted;
11477}
11478function rk(e, t, n = !1) {
11479  let l = e.children,
11480    r = t.children;
11481  if (k(l) && k(r)) for (let e = 0; e < l.length; e++) {
11482    let t = l[e],
11483      i = r[e];
11484    !(1 & i.shapeFlag) || i.dynamicChildren || ((i.patchFlag <= 0 || 32 === i.patchFlag) && ((i = r[e] = i_(r[e])).el = t.el), n || -2 === i.patchFlag || rk(t, i)), i.type === r1 && (i.el = t.el);
11485  }
11486}
11487function rT(e) {
11488  if (e) for (let t = 0; t < e.length; t++) e[t].flags |= 8;
11489}
11490let rA = Symbol.for("v-scx"),
11491  rR = () => rn(rA);
11492function rN(e, t) {
11493  return rI(e, null, t);
11494}
11495function rO(e, t) {
11496  return rI(e, null, {
11497    flush: "post"
11498  });
11499}
11500function rP(e, t) {
11501  return rI(e, null, {
11502    flush: "sync"
11503  });
11504}
11505function rM(e, t, n) {
11506  return rI(e, t, n);
11507}
11508function rI(e, t, n = g) {
11509  let l;
11510  let {
11511      immediate: r,
11512      deep: i,
11513      flush: s,
11514      once: o
11515    } = n,
11516    a = C({}, n),
11517    u = t && r || !t && "post" !== s;
11518  if (iN) {
11519    if ("sync" === s) {
11520      let e = rR();
11521      l = e.__watcherHandles || (e.__watcherHandles = []);
11522    } else if (!u) {
11523      let e = () => {};
11524      return e.stop = _, e.resume = _, e.pause = _, e;
11525    }
11526  }
11527  let c = iw;
11528  a.call = (e, t, n) => tQ(e, c, t, n);
11529  let f = !1;
11530  "post" === s ? a.scheduler = e => {
11531    ry(e, c && c.suspense);
11532  } : "sync" !== s && (f = !0, a.scheduler = (e, t) => {
11533    t ? e() : t7(e);
11534  }), a.augmentJob = e => {
11535    t && (e.flags |= 4), f && (e.flags |= 2, c && (e.id = c.uid, e.i = c));
11536  };
11537  let d = function (e, t, n = g) {
11538    let l, r, i, s;
11539    let {
11540        immediate: o,
11541        deep: a,
11542        once: u,
11543        scheduler: c,
11544        augmentJob: f,
11545        call: d
11546      } = n,
11547      h = e => a ? e : ty(e) || !1 === a || 0 === a ? tJ(e, 1) : tJ(e),
11548      m = !1,
11549      y = !1;
11550    if (tw(e) ? (r = () => e.value, m = ty(e)) : tm(e) ? (r = () => h(e), m = !0) : k(e) ? (y = !0, m = e.some(e => tm(e) || ty(e)), r = () => e.map(e => tw(e) ? e.value : tm(e) ? h(e) : O(e) ? d ? d(e, 2) : e() : void 0)) : r = O(e) ? t ? d ? () => d(e, 2) : e : () => {
11551      if (i) {
11552        eM();
11553        try {
11554          i();
11555        } finally {
11556          eI();
11557        }
11558      }
11559      let t = p;
11560      p = l;
11561      try {
11562        return d ? d(e, 3, [s]) : e(s);
11563      } finally {
11564        p = t;
11565      }
11566    } : _, t && a) {
11567      let e = r,
11568        t = !0 === a ? 1 / 0 : a;
11569      r = () => tJ(e(), t);
11570    }
11571    let b = em(),
11572      S = () => {
11573        l.stop(), b && b.active && x(b.effects, l);
11574      };
11575    if (u && t) {
11576      let e = t;
11577      t = (...t) => {
11578        e(...t), S();
11579      };
11580    }
11581    let C = y ? Array(e.length).fill(tK) : tK,
11582      E = e => {
11583        if (1 & l.flags && (l.dirty || e)) {
11584          if (t) {
11585            let e = l.run();
11586            if (a || m || (y ? e.some((e, t) => J(e, C[t])) : J(e, C))) {
11587              i && i();
11588              let n = p;
11589              p = l;
11590              try {
11591                let n = [e, C === tK ? void 0 : y && C[0] === tK ? [] : C, s];
11592                d ? d(t, 3, n) : t(...n), C = e;
11593              } finally {
11594                p = n;
11595              }
11596            }
11597          } else l.run();
11598        }
11599      };
11600    return f && f(E), (l = new eb(r)).scheduler = c ? () => c(E, !1) : E, s = e => tG(e, !1, l), i = l.onStop = () => {
11601      let e = tz.get(l);
11602      if (e) {
11603        if (d) d(e, 4);else for (let t of e) t();
11604        tz.delete(l);
11605      }
11606    }, t ? o ? E(!0) : C = l.run() : c ? c(E.bind(null, !0), !0) : l.run(), S.pause = l.pause.bind(l), S.resume = l.resume.bind(l), S.stop = S, S;
11607  }(e, t, a);
11608  return iN && (l ? l.push(d) : u && d()), d;
11609}
11610function rL(e, t, n) {
11611  let l;
11612  let r = this.proxy,
11613    i = P(e) ? e.includes(".") ? rD(r, e) : () => r[e] : e.bind(r, r);
11614  O(t) ? l = t : (l = t.handler, n = t);
11615  let s = iT(this),
11616    o = rI(i, l.bind(r), n);
11617  return s(), o;
11618}
11619function rD(e, t) {
11620  let n = t.split(".");
11621  return () => {
11622    let t = e;
11623    for (let e = 0; e < n.length && t; e++) t = t[n[e]];
11624    return t;
11625  };
11626}
11627function rF(e, t, n = g) {
11628  let l = ik(),
11629    r = W(t),
11630    i = z(t),
11631    s = rV(e, r),
11632    o = tD((s, o) => {
11633      let a, u;
11634      let c = g;
11635      return rP(() => {
11636        let t = e[r];
11637        J(a, t) && (a = t, o());
11638      }), {
11639        get: () => (s(), n.get ? n.get(a) : a),
11640        set(e) {
11641          let s = n.set ? n.set(e) : e;
11642          if (!J(s, a) && !(c !== g && J(e, c))) return;
11643          let f = l.vnode.props;
11644          f && (t in f || r in f || i in f) && (`onUpdate:${t}` in f || `onUpdate:${r}` in f || `onUpdate:${i}` in f) || (a = e, o()), l.emit(`update:${t}`, s), J(e, s) && J(e, c) && !J(s, u) && o(), c = e, u = s;
11645        }
11646      };
11647    });
11648  return o[Symbol.iterator] = () => {
11649    let e = 0;
11650    return {
11651      next: () => e < 2 ? {
11652        value: e++ ? s || g : o,
11653        done: !1
11654      } : {
11655        done: !0
11656      }
11657    };
11658  }, o;
11659}
11660let rV = (e, t) => "modelValue" === t || "model-value" === t ? e.modelModifiers : e[`${t}Modifiers`] || e[`${W(t)}Modifiers`] || e[`${z(t)}Modifiers`];
11661function rU(e, t, ...n) {
11662  let l;
11663  if (e.isUnmounted) return;
11664  let r = e.vnode.props || g,
11665    i = n,
11666    s = t.startsWith("update:"),
11667    o = s && rV(r, t.slice(7));
11668  o && (o.trim && (i = n.map(e => P(e) ? e.trim() : e)), o.number && (i = n.map(Y)));
11669  let a = r[l = G(t)] || r[l = G(W(t))];
11670  !a && s && (a = r[l = G(z(t))]), a && tQ(a, e, 6, i);
11671  let u = r[l + "Once"];
11672  if (u) {
11673    if (e.emitted) {
11674      if (e.emitted[l]) return;
11675    } else e.emitted = {};
11676    e.emitted[l] = !0, tQ(u, e, 6, i);
11677  }
11678}
11679function rj(e, t) {
11680  return !!(e && b(t)) && (w(e, (t = t.slice(2).replace(/Once$/, ""))[0].toLowerCase() + t.slice(1)) || w(e, z(t)) || w(e, t));
11681}
11682function rB(e) {
11683  let t, n;
11684  let {
11685      type: l,
11686      vnode: r,
11687      proxy: i,
11688      withProxy: s,
11689      propsOptions: [o],
11690      slots: a,
11691      attrs: u,
11692      emit: c,
11693      render: f,
11694      renderCache: p,
11695      props: d,
11696      data: h,
11697      setupState: g,
11698      ctx: m,
11699      inheritAttrs: _
11700    } = e,
11701    y = no(e);
11702  try {
11703    if (4 & r.shapeFlag) {
11704      let e = s || i;
11705      t = im(f.call(e, e, p, d, g, h, m)), n = u;
11706    } else t = im(l.length > 1 ? l(d, {
11707      attrs: u,
11708      slots: a,
11709      emit: c
11710    }) : l(d, null)), n = l.props ? u : r$(u);
11711  } catch (n) {
11712    r4.length = 0, t0(n, e, 1), t = ic(r2);
11713  }
11714  let b = t;
11715  if (n && !1 !== _) {
11716    let e = Object.keys(n),
11717      {
11718        shapeFlag: t
11719      } = b;
11720    e.length && 7 & t && (o && e.some(S) && (n = rH(n, o)), b = id(b, n, !1, !0));
11721  }
11722  return r.dirs && ((b = id(b, null, !1, !0)).dirs = b.dirs ? b.dirs.concat(r.dirs) : r.dirs), r.transition && nV(b, r.transition), t = b, no(y), t;
11723}
11724let r$ = e => {
11725    let t;
11726    for (let n in e) ("class" === n || "style" === n || b(n)) && ((t || (t = {}))[n] = e[n]);
11727    return t;
11728  },
11729  rH = (e, t) => {
11730    let n = {};
11731    for (let l in e) S(l) && l.slice(9) in t || (n[l] = e[l]);
11732    return n;
11733  };
11734function rW(e, t, n) {
11735  let l = Object.keys(t);
11736  if (l.length !== Object.keys(e).length) return !0;
11737  for (let r = 0; r < l.length; r++) {
11738    let i = l[r];
11739    if (t[i] !== e[i] && !rj(n, i)) return !0;
11740  }
11741  return !1;
11742}
11743function rK({
11744  vnode: e,
11745  parent: t
11746}, n) {
11747  for (; t;) {
11748    let l = t.subTree;
11749    if (l.suspense && l.suspense.activeBranch === e && (l.el = e.el), l === e) (e = t.vnode).el = n, t = t.parent;else break;
11750  }
11751}
11752let rz = e => e.__isSuspense,
11753  rq = 0,
11754  rG = {
11755    name: "Suspense",
11756    __isSuspense: !0,
11757    process(e, t, n, l, r, i, s, o, a, u) {
11758      if (null == e) !function (e, t, n, l, r, i, s, o, a) {
11759        let {
11760            p: u,
11761            o: {
11762              createElement: c
11763            }
11764          } = a,
11765          f = c("div"),
11766          p = e.suspense = rX(e, r, l, t, f, n, i, s, o, a);
11767        u(null, p.pendingBranch = e.ssContent, f, null, l, p, i, s), p.deps > 0 ? (rJ(e, "onPending"), rJ(e, "onFallback"), u(null, e.ssFallback, t, n, l, null, i, s), rQ(p, e.ssFallback)) : p.resolve(!1, !0);
11768      }(t, n, l, r, i, s, o, a, u);else {
11769        if (i && i.deps > 0 && !e.suspense.isInFallback) {
11770          t.suspense = e.suspense, t.suspense.vnode = t, t.el = e.el;
11771          return;
11772        }
11773        !function (e, t, n, l, r, i, s, o, {
11774          p: a,
11775          um: u,
11776          o: {
11777            createElement: c
11778          }
11779        }) {
11780          let f = t.suspense = e.suspense;
11781          f.vnode = t, t.el = e.el;
11782          let p = t.ssContent,
11783            d = t.ssFallback,
11784            {
11785              activeBranch: h,
11786              pendingBranch: g,
11787              isInFallback: m,
11788              isHydrating: _
11789            } = f;
11790          if (g) f.pendingBranch = p, ii(p, g) ? (a(g, p, f.hiddenContainer, null, r, f, i, s, o), f.deps <= 0 ? f.resolve() : m && !_ && (a(h, d, n, l, r, null, i, s, o), rQ(f, d))) : (f.pendingId = rq++, _ ? (f.isHydrating = !1, f.activeBranch = g) : u(g, r, f), f.deps = 0, f.effects.length = 0, f.hiddenContainer = c("div"), m ? (a(null, p, f.hiddenContainer, null, r, f, i, s, o), f.deps <= 0 ? f.resolve() : (a(h, d, n, l, r, null, i, s, o), rQ(f, d))) : h && ii(p, h) ? (a(h, p, n, l, r, f, i, s, o), f.resolve(!0)) : (a(null, p, f.hiddenContainer, null, r, f, i, s, o), f.deps <= 0 && f.resolve()));else if (h && ii(p, h)) a(h, p, n, l, r, f, i, s, o), rQ(f, p);else if (rJ(t, "onPending"), f.pendingBranch = p, 512 & p.shapeFlag ? f.pendingId = p.component.suspenseId : f.pendingId = rq++, a(null, p, f.hiddenContainer, null, r, f, i, s, o), f.deps <= 0) f.resolve();else {
11791            let {
11792              timeout: e,
11793              pendingId: t
11794            } = f;
11795            e > 0 ? setTimeout(() => {
11796              f.pendingId === t && f.fallback(d);
11797            }, e) : 0 === e && f.fallback(d);
11798          }
11799        }(e, t, n, l, r, s, o, a, u);
11800      }
11801    },
11802    hydrate: function (e, t, n, l, r, i, s, o, a) {
11803      let u = t.suspense = rX(t, l, n, e.parentNode, document.createElement("div"), null, r, i, s, o, !0),
11804        c = a(e, u.pendingBranch = t.ssContent, n, u, i, s);
11805      return 0 === u.deps && u.resolve(!1, !0), c;
11806    },
11807    normalize: function (e) {
11808      let {
11809          shapeFlag: t,
11810          children: n
11811        } = e,
11812        l = 32 & t;
11813      e.ssContent = rZ(l ? n.default : n), e.ssFallback = l ? rZ(n.fallback) : ic(r2);
11814    }
11815  };
11816function rJ(e, t) {
11817  let n = e.props && e.props[t];
11818  O(n) && n();
11819}
11820function rX(e, t, n, l, r, i, s, o, a, u, c = !1) {
11821  let f;
11822  let {
11823      p: p,
11824      m: d,
11825      um: h,
11826      n: g,
11827      o: {
11828        parentNode: m,
11829        remove: _
11830      }
11831    } = u,
11832    y = function (e) {
11833      let t = e.props && e.props.suspensible;
11834      return null != t && !1 !== t;
11835    }(e);
11836  y && t && t.pendingBranch && (f = t.pendingId, t.deps++);
11837  let b = e.props ? Q(e.props.timeout) : void 0,
11838    S = i,
11839    C = {
11840      vnode: e,
11841      parent: t,
11842      parentComponent: n,
11843      namespace: s,
11844      container: l,
11845      hiddenContainer: r,
11846      deps: 0,
11847      pendingId: rq++,
11848      timeout: "number" == typeof b ? b : -1,
11849      activeBranch: null,
11850      pendingBranch: null,
11851      isInFallback: !c,
11852      isHydrating: c,
11853      isUnmounted: !1,
11854      effects: [],
11855      resolve(e = !1, n = !1) {
11856        let {
11857            vnode: l,
11858            activeBranch: r,
11859            pendingBranch: s,
11860            pendingId: o,
11861            effects: a,
11862            parentComponent: u,
11863            container: c
11864          } = C,
11865          p = !1;
11866        C.isHydrating ? C.isHydrating = !1 : e || ((p = r && s.transition && "out-in" === s.transition.mode) && (r.transition.afterLeave = () => {
11867          o === C.pendingId && (d(s, c, i === S ? g(r) : i, 0), nt(a));
11868        }), r && (m(r.el) === c && (i = g(r)), h(r, u, C, !0)), p || d(s, c, i, 0)), rQ(C, s), C.pendingBranch = null, C.isInFallback = !1;
11869        let _ = C.parent,
11870          b = !1;
11871        for (; _;) {
11872          if (_.pendingBranch) {
11873            _.effects.push(...a), b = !0;
11874            break;
11875          }
11876          _ = _.parent;
11877        }
11878        b || p || nt(a), C.effects = [], y && t && t.pendingBranch && f === t.pendingId && (t.deps--, 0 !== t.deps || n || t.resolve()), rJ(l, "onResolve");
11879      },
11880      fallback(e) {
11881        if (!C.pendingBranch) return;
11882        let {
11883          vnode: t,
11884          activeBranch: n,
11885          parentComponent: l,
11886          container: r,
11887          namespace: i
11888        } = C;
11889        rJ(t, "onFallback");
11890        let s = g(n),
11891          u = () => {
11892            C.isInFallback && (p(null, e, r, s, l, null, i, o, a), rQ(C, e));
11893          },
11894          c = e.transition && "out-in" === e.transition.mode;
11895        c && (n.transition.afterLeave = u), C.isInFallback = !0, h(n, l, null, !0), c || u();
11896      },
11897      move(e, t, n) {
11898        C.activeBranch && d(C.activeBranch, e, t, n), C.container = e;
11899      },
11900      next: () => C.activeBranch && g(C.activeBranch),
11901      registerDep(e, t, n) {
11902        let l = !!C.pendingBranch;
11903        l && C.deps++;
11904        let r = e.vnode.el;
11905        e.asyncDep.catch(t => {
11906          t0(t, e, 0);
11907        }).then(i => {
11908          if (e.isUnmounted || C.isUnmounted || C.pendingId !== e.suspenseId) return;
11909          e.asyncResolved = !0;
11910          let {
11911            vnode: o
11912          } = e;
11913          iP(e, i, !1), r && (o.el = r);
11914          let a = !r && e.subTree.el;
11915          t(e, o, m(r || e.subTree.el), r ? null : g(e.subTree), C, s, n), a && _(a), rK(e, o.el), l && 0 == --C.deps && C.resolve();
11916        });
11917      },
11918      unmount(e, t) {
11919        C.isUnmounted = !0, C.activeBranch && h(C.activeBranch, n, e, t), C.pendingBranch && h(C.pendingBranch, n, e, t);
11920      }
11921    };
11922  return C;
11923}
11924function rZ(e) {
11925  let t;
11926  if (O(e)) {
11927    let n = r9 && e._c;
11928    n && (e._d = !1, r3()), e = e(), n && (e._d = !0, t = r8, r5());
11929  }
11930  return k(e) && (e = function (e, t = !0) {
11931    let n;
11932    for (let t = 0; t < e.length; t++) {
11933      let l = e[t];
11934      if (!ir(l)) return;
11935      if (l.type !== r2 || "v-if" === l.children) {
11936        if (n) return;
11937        n = l;
11938      }
11939    }
11940    return n;
11941  }(e)), e = im(e), t && !e.dynamicChildren && (e.dynamicChildren = t.filter(t => t !== e)), e;
11942}
11943function rY(e, t) {
11944  t && t.pendingBranch ? k(e) ? t.effects.push(...e) : t.effects.push(e) : nt(e);
11945}
11946function rQ(e, t) {
11947  e.activeBranch = t;
11948  let {
11949      vnode: n,
11950      parentComponent: l
11951    } = e,
11952    r = t.el;
11953  for (; !r && t.component;) r = (t = t.component.subTree).el;
11954  n.el = r, l && l.subTree === n && (l.vnode.el = r, rK(l, r));
11955}
11956let r0 = Symbol.for("v-fgt"),
11957  r1 = Symbol.for("v-txt"),
11958  r2 = Symbol.for("v-cmt"),
11959  r6 = Symbol.for("v-stc"),
11960  r4 = [],
11961  r8 = null;
11962function r3(e = !1) {
11963  r4.push(r8 = e ? null : []);
11964}
11965function r5() {
11966  r4.pop(), r8 = r4[r4.length - 1] || null;
11967}
11968let r9 = 1;
11969function r7(e, t = !1) {
11970  r9 += e, e < 0 && r8 && t && (r8.hasOnce = !0);
11971}
11972function ie(e) {
11973  return e.dynamicChildren = r9 > 0 ? r8 || m : null, r5(), r9 > 0 && r8 && r8.push(e), e;
11974}
11975function it(e, t, n, l, r, i) {
11976  return ie(iu(e, t, n, l, r, i, !0));
11977}
11978function il(e, t, n, l, r) {
11979  return ie(ic(e, t, n, l, r, !0));
11980}
11981function ir(e) {
11982  return !!e && !0 === e.__v_isVNode;
11983}
11984function ii(e, t) {
11985  return e.type === t.type && e.key === t.key;
11986}
11987function is(e) {}
11988let io = ({
11989    key: e
11990  }) => null != e ? e : null,
11991  ia = ({
11992    ref: e,
11993    ref_key: t,
11994    ref_for: n
11995  }) => ("number" == typeof e && (e = "" + e), null != e ? P(e) || tw(e) || O(e) ? {
11996    i: ni,
11997    r: e,
11998    k: t,
11999    f: !!n
12000  } : e : null);
12001function iu(e, t = null, n = null, l = 0, r = null, i = e === r0 ? 0 : 1, s = !1, o = !1) {
12002  let a = {
12003    __v_isVNode: !0,
12004    __v_skip: !0,
12005    type: e,
12006    props: t,
12007    key: t && io(t),
12008    ref: t && ia(t),
12009    scopeId: ns,
12010    slotScopeIds: null,
12011    children: n,
12012    component: null,
12013    suspense: null,
12014    ssContent: null,
12015    ssFallback: null,
12016    dirs: null,
12017    transition: null,
12018    el: null,
12019    anchor: null,
12020    target: null,
12021    targetStart: null,
12022    targetAnchor: null,
12023    staticCount: 0,
12024    shapeFlag: i,
12025    patchFlag: l,
12026    dynamicProps: r,
12027    dynamicChildren: null,
12028    appContext: null,
12029    ctx: ni
12030  };
12031  return o ? (iy(a, n), 128 & i && e.normalize(a)) : n && (a.shapeFlag |= P(n) ? 8 : 16), r9 > 0 && !s && r8 && (a.patchFlag > 0 || 6 & i) && 32 !== a.patchFlag && r8.push(a), a;
12032}
12033let ic = function (e, t = null, n = null, l = 0, r = null, i = !1) {
12034  var s;
12035  if (e && e !== lC || (e = r2), ir(e)) {
12036    let l = id(e, t, !0);
12037    return n && iy(l, n), r9 > 0 && !i && r8 && (6 & l.shapeFlag ? r8[r8.indexOf(e)] = l : r8.push(l)), l.patchFlag = -2, l;
12038  }
12039  if (O(s = e) && "__vccOpts" in s && (e = e.__vccOpts), t) {
12040    let {
12041      class: e,
12042      style: n
12043    } = t = ip(t);
12044    e && !P(e) && (t.class = es(e)), I(n) && (tb(n) && !k(n) && (n = C({}, n)), t.style = en(n));
12045  }
12046  let o = P(e) ? 1 : rz(e) ? 128 : ng(e) ? 64 : I(e) ? 4 : O(e) ? 2 : 0;
12047  return iu(e, t, n, l, r, o, i, !0);
12048};
12049function ip(e) {
12050  return e ? tb(e) || rs(e) ? C({}, e) : e : null;
12051}
12052function id(e, t, n = !1, l = !1) {
12053  let {
12054      props: r,
12055      ref: i,
12056      patchFlag: s,
12057      children: o,
12058      transition: a
12059    } = e,
12060    u = t ? ib(r || {}, t) : r,
12061    c = {
12062      __v_isVNode: !0,
12063      __v_skip: !0,
12064      type: e.type,
12065      props: u,
12066      key: u && io(u),
12067      ref: t && t.ref ? n && i ? k(i) ? i.concat(ia(t)) : [i, ia(t)] : ia(t) : i,
12068      scopeId: e.scopeId,
12069      slotScopeIds: e.slotScopeIds,
12070      children: o,
12071      target: e.target,
12072      targetStart: e.targetStart,
12073      targetAnchor: e.targetAnchor,
12074      staticCount: e.staticCount,
12075      shapeFlag: e.shapeFlag,
12076      patchFlag: t && e.type !== r0 ? -1 === s ? 16 : 16 | s : s,
12077      dynamicProps: e.dynamicProps,
12078      dynamicChildren: e.dynamicChildren,
12079      appContext: e.appContext,
12080      dirs: e.dirs,
12081      transition: a,
12082      component: e.component,
12083      suspense: e.suspense,
12084      ssContent: e.ssContent && id(e.ssContent),
12085      ssFallback: e.ssFallback && id(e.ssFallback),
12086      el: e.el,
12087      anchor: e.anchor,
12088      ctx: e.ctx,
12089      ce: e.ce
12090    };
12091  return a && l && nV(c, a.clone(c)), c;
12092}
12093function ih(e = " ", t = 0) {
12094  return ic(r1, null, e, t);
12095}
12096function ig(e, t) {
12097  let n = ic(r6, null, e);
12098  return n.staticCount = t, n;
12099}
12100function iv(e = "", t = !1) {
12101  return t ? (r3(), il(r2, null, e)) : ic(r2, null, e);
12102}
12103function im(e) {
12104  return null == e || "boolean" == typeof e ? ic(r2) : k(e) ? ic(r0, null, e.slice()) : ir(e) ? i_(e) : ic(r1, null, String(e));
12105}
12106function i_(e) {
12107  return null === e.el && -1 !== e.patchFlag || e.memo ? e : id(e);
12108}
12109function iy(e, t) {
12110  let n = 0,
12111    {
12112      shapeFlag: l
12113    } = e;
12114  if (null == t) t = null;else if (k(t)) n = 16;else if ("object" == typeof t) {
12115    if (65 & l) {
12116      let n = t.default;
12117      n && (n._c && (n._d = !1), iy(e, n()), n._c && (n._d = !0));
12118      return;
12119    }
12120    {
12121      n = 32;
12122      let l = t._;
12123      l || rs(t) ? 3 === l && ni && (1 === ni.slots._ ? t._ = 1 : (t._ = 2, e.patchFlag |= 1024)) : t._ctx = ni;
12124    }
12125  } else O(t) ? (t = {
12126    default: t,
12127    _ctx: ni
12128  }, n = 32) : (t = String(t), 64 & l ? (n = 16, t = [ih(t)]) : n = 8);
12129  e.children = t, e.shapeFlag |= n;
12130}
12131function ib(...e) {
12132  let t = {};
12133  for (let n = 0; n < e.length; n++) {
12134    let l = e[n];
12135    for (let e in l) if ("class" === e) t.class !== l.class && (t.class = es([t.class, l.class]));else if ("style" === e) t.style = en([t.style, l.style]);else if (b(e)) {
12136      let n = t[e],
12137        r = l[e];
12138      r && n !== r && !(k(n) && n.includes(r)) && (t[e] = n ? [].concat(n, r) : r);
12139    } else "" !== e && (t[e] = l[e]);
12140  }
12141  return t;
12142}
12143function iS(e, t, n, l = null) {
12144  tQ(e, t, 7, [n, l]);
12145}
12146let iC = l9(),
12147  ix = 0;
12148function iE(e, t, n) {
12149  let l = e.type,
12150    r = (t ? t.appContext : e.appContext) || iC,
12151    i = {
12152      uid: ix++,
12153      vnode: e,
12154      type: l,
12155      parent: t,
12156      appContext: r,
12157      root: null,
12158      next: null,
12159      subTree: null,
12160      effect: null,
12161      update: null,
12162      job: null,
12163      scope: new eg(!0),
12164      render: null,
12165      proxy: null,
12166      exposed: null,
12167      exposeProxy: null,
12168      withProxy: null,
12169      provides: t ? t.provides : Object.create(r.provides),
12170      ids: t ? t.ids : ["", 0, 0],
12171      accessCache: null,
12172      renderCache: [],
12173      components: null,
12174      directives: null,
12175      propsOptions: function e(t, n, l = !1) {
12176        let r = l ? ru : n.propsCache,
12177          i = r.get(t);
12178        if (i) return i;
12179        let s = t.props,
12180          o = {},
12181          a = [],
12182          u = !1;
12183        if (!O(t)) {
12184          let r = t => {
12185            u = !0;
12186            let [l, r] = e(t, n, !0);
12187            C(o, l), r && a.push(...r);
12188          };
12189          !l && n.mixins.length && n.mixins.forEach(r), t.extends && r(t.extends), t.mixins && t.mixins.forEach(r);
12190        }
12191        if (!s && !u) return I(t) && r.set(t, m), m;
12192        if (k(s)) for (let e = 0; e < s.length; e++) {
12193          let t = W(s[e]);
12194          rc(t) && (o[t] = g);
12195        } else if (s) for (let e in s) {
12196          let t = W(e);
12197          if (rc(t)) {
12198            let n = s[e],
12199              l = o[t] = k(n) || O(n) ? {
12200                type: n
12201              } : C({}, n),
12202              r = l.type,
12203              i = !1,
12204              u = !0;
12205            if (k(r)) for (let e = 0; e < r.length; ++e) {
12206              let t = r[e],
12207                n = O(t) && t.name;
12208              if ("Boolean" === n) {
12209                i = !0;
12210                break;
12211              }
12212              "String" === n && (u = !1);
12213            } else i = O(r) && "Boolean" === r.name;
12214            l[0] = i, l[1] = u, (i || w(l, "default")) && a.push(t);
12215          }
12216        }
12217        let c = [o, a];
12218        return I(t) && r.set(t, c), c;
12219      }(l, r),
12220      emitsOptions: function e(t, n, l = !1) {
12221        let r = n.emitsCache,
12222          i = r.get(t);
12223        if (void 0 !== i) return i;
12224        let s = t.emits,
12225          o = {},
12226          a = !1;
12227        if (!O(t)) {
12228          let r = t => {
12229            let l = e(t, n, !0);
12230            l && (a = !0, C(o, l));
12231          };
12232          !l && n.mixins.length && n.mixins.forEach(r), t.extends && r(t.extends), t.mixins && t.mixins.forEach(r);
12233        }
12234        return s || a ? (k(s) ? s.forEach(e => o[e] = null) : C(o, s), I(t) && r.set(t, o), o) : (I(t) && r.set(t, null), null);
12235      }(l, r),
12236      emit: null,
12237      emitted: null,
12238      propsDefaults: g,
12239      inheritAttrs: l.inheritAttrs,
12240      ctx: g,
12241      data: g,
12242      props: g,
12243      attrs: g,
12244      slots: g,
12245      refs: g,
12246      setupState: g,
12247      setupContext: null,
12248      suspense: n,
12249      suspenseId: n ? n.pendingId : 0,
12250      asyncDep: null,
12251      asyncResolved: !1,
12252      isMounted: !1,
12253      isUnmounted: !1,
12254      isDeactivated: !1,
12255      bc: null,
12256      c: null,
12257      bm: null,
12258      m: null,
12259      bu: null,
12260      u: null,
12261      um: null,
12262      bum: null,
12263      da: null,
12264      a: null,
12265      rtg: null,
12266      rtc: null,
12267      ec: null,
12268      sp: null
12269    };
12270  return i.ctx = {
12271    _: i
12272  }, i.root = t ? t.root : i, i.emit = rU.bind(null, i), e.ce && e.ce(i), i;
12273}
12274let iw = null,
12275  ik = () => iw || ni;
12276{
12277  let e = ee(),
12278    t = (t, n) => {
12279      let l;
12280      return (l = e[t]) || (l = e[t] = []), l.push(n), e => {
12281        l.length > 1 ? l.forEach(t => t(e)) : l[0](e);
12282      };
12283    };
12284  o = t("__VUE_INSTANCE_SETTERS__", e => iw = e), a = t("__VUE_SSR_SETTERS__", e => iN = e);
12285}
12286let iT = e => {
12287    let t = iw;
12288    return o(e), e.scope.on(), () => {
12289      e.scope.off(), o(t);
12290    };
12291  },
12292  iA = () => {
12293    iw && iw.scope.off(), o(null);
12294  };
12295function iR(e) {
12296  return 4 & e.vnode.shapeFlag;
12297}
12298let iN = !1;
12299function iO(e, t = !1, n = !1) {
12300  t && a(t);
12301  let {
12302      props: l,
12303      children: r
12304    } = e.vnode,
12305    i = iR(e);
12306  !function (e, t, n, l = !1) {
12307    let r = {},
12308      i = ri();
12309    for (let n in e.propsDefaults = Object.create(null), ro(e, t, r, i), e.propsOptions[0]) n in r || (r[n] = void 0);
12310    n ? e.props = l ? r : td(r) : e.type.props ? e.props = r : e.props = i, e.attrs = i;
12311  }(e, l, i, t), rm(e, r, n);
12312  let s = i ? function (e, t) {
12313    let n = e.type;
12314    e.accessCache = Object.create(null), e.proxy = new Proxy(e.ctx, lL);
12315    let {
12316      setup: l
12317    } = n;
12318    if (l) {
12319      eM();
12320      let n = e.setupContext = l.length > 1 ? iF(e) : null,
12321        r = iT(e),
12322        i = tY(l, e, 0, [e.props, n]),
12323        s = L(i);
12324      if (eI(), r(), (s || e.sp) && !n5(e) && n$(e), s) {
12325        if (i.then(iA, iA), t) return i.then(n => {
12326          iP(e, n, t);
12327        }).catch(t => {
12328          t0(t, e, 0);
12329        });
12330        e.asyncDep = i;
12331      } else iP(e, i, t);
12332    } else iL(e, t);
12333  }(e, t) : void 0;
12334  return t && a(!1), s;
12335}
12336function iP(e, t, n) {
12337  O(t) ? e.type.__ssrInlineRender ? e.ssrRender = t : e.render = t : I(t) && (e.setupState = tI(t)), iL(e, n);
12338}
12339function iM(e) {
12340  u = e, c = e => {
12341    e.render._rc && (e.withProxy = new Proxy(e.ctx, lD));
12342  };
12343}
12344let iI = () => !u;
12345function iL(e, t, n) {
12346  let l = e.type;
12347  if (!e.render) {
12348    if (!t && u && !l.render) {
12349      let t = l.template || l0(e).template;
12350      if (t) {
12351        let {
12352            isCustomElement: n,
12353            compilerOptions: r
12354          } = e.appContext.config,
12355          {
12356            delimiters: i,
12357            compilerOptions: s
12358          } = l,
12359          o = C(C({
12360            isCustomElement: n,
12361            delimiters: i
12362          }, r), s);
12363        l.render = u(t, o);
12364      }
12365    }
12366    e.render = l.render || _, c && c(e);
12367  }
12368  {
12369    let t = iT(e);
12370    eM();
12371    try {
12372      !function (e) {
12373        let t = l0(e),
12374          n = e.proxy,
12375          l = e.ctx;
12376        lY = !1, t.beforeCreate && lQ(t.beforeCreate, e, "bc");
12377        let {
12378          data: r,
12379          computed: i,
12380          methods: s,
12381          watch: o,
12382          provide: a,
12383          inject: u,
12384          created: c,
12385          beforeMount: f,
12386          mounted: p,
12387          beforeUpdate: d,
12388          updated: h,
12389          activated: g,
12390          deactivated: m,
12391          beforeDestroy: y,
12392          beforeUnmount: b,
12393          destroyed: S,
12394          unmounted: C,
12395          render: x,
12396          renderTracked: E,
12397          renderTriggered: w,
12398          errorCaptured: T,
12399          serverPrefetch: A,
12400          expose: R,
12401          inheritAttrs: N,
12402          components: M,
12403          directives: L,
12404          filters: D
12405        } = t;
12406        if (u && function (e, t, n = _) {
12407          for (let n in k(e) && (e = l4(e)), e) {
12408            let l;
12409            let r = e[n];
12410            tw(l = I(r) ? "default" in r ? rn(r.from || n, r.default, !0) : rn(r.from || n) : rn(r)) ? Object.defineProperty(t, n, {
12411              enumerable: !0,
12412              configurable: !0,
12413              get: () => l.value,
12414              set: e => l.value = e
12415            }) : t[n] = l;
12416          }
12417        }(u, l, null), s) for (let e in s) {
12418          let t = s[e];
12419          O(t) && (l[e] = t.bind(n));
12420        }
12421        if (r) {
12422          let t = r.call(n, n);
12423          I(t) && (e.data = tp(t));
12424        }
12425        if (lY = !0, i) for (let e in i) {
12426          let t = i[e],
12427            r = O(t) ? t.bind(n, n) : O(t.get) ? t.get.bind(n, n) : _,
12428            s = ij({
12429              get: r,
12430              set: !O(t) && O(t.set) ? t.set.bind(n) : _
12431            });
12432          Object.defineProperty(l, e, {
12433            enumerable: !0,
12434            configurable: !0,
12435            get: () => s.value,
12436            set: e => s.value = e
12437          });
12438        }
12439        if (o) for (let e in o) !function e(t, n, l, r) {
12440          let i = r.includes(".") ? rD(l, r) : () => l[r];
12441          if (P(t)) {
12442            let e = n[t];
12443            O(e) && rM(i, e);
12444          } else if (O(t)) rM(i, t.bind(l));else if (I(t)) {
12445            if (k(t)) t.forEach(t => e(t, n, l, r));else {
12446              let e = O(t.handler) ? t.handler.bind(l) : n[t.handler];
12447              O(e) && rM(i, e, t);
12448            }
12449          }
12450        }(o[e], l, n, e);
12451        if (a) {
12452          let e = O(a) ? a.call(n) : a;
12453          Reflect.ownKeys(e).forEach(t => {
12454            rt(t, e[t]);
12455          });
12456        }
12457        function F(e, t) {
12458          k(t) ? t.forEach(t => e(t.bind(n))) : t && e(t.bind(n));
12459        }
12460        if (c && lQ(c, e, "c"), F(lc, f), F(lf, p), F(lp, d), F(ld, h), F(ll, g), F(lr, m), F(ly, T), F(l_, E), F(lm, w), F(lh, b), F(lg, C), F(lv, A), k(R)) {
12461          if (R.length) {
12462            let t = e.exposed || (e.exposed = {});
12463            R.forEach(e => {
12464              Object.defineProperty(t, e, {
12465                get: () => n[e],
12466                set: t => n[e] = t
12467              });
12468            });
12469          } else e.exposed || (e.exposed = {});
12470        }
12471        x && e.render === _ && (e.render = x), null != N && (e.inheritAttrs = N), M && (e.components = M), L && (e.directives = L), A && n$
12471(e);
12472      }(e);
12473    } finally {
12474      eI(), t();
12475    }
12476  }
12477}
12478let iD = {
12479  get: (e, t) => (eH(e, "get", ""), e[t])
12480};
12481function iF(e) {
12482  return {
12483    attrs: new Proxy(e.attrs, iD),
12484    slots: e.slots,
12485    emit: e.emit,
12486    expose: t => {
12487      e.exposed = t || {};
12488    }
12489  };
12490}
12491function iV(e) {
12492  return e.exposed ? e.exposeProxy || (e.exposeProxy = new Proxy(tI(tC(e.exposed)), {
12493    get: (t, n) => n in t ? t[n] : n in lM ? lM[n](e) : void 0,
12494    has: (e, t) => t in e || t in lM
12495  })) : e.proxy;
12496}
12497function iU(e, t = !0) {
12498  return O(e) ? e.displayName || e.name : e.name || t && e.__name;
12499}
12500let ij = (e, t) => function (e, t, n = !1) {
12501  let l, r;
12502  return O(e) ? l = e : (l = e.get, r = e.set), new t$(l, r, n);
12503}(e, 0, iN);
12504function iB(e, t, n) {
12505  let l = arguments.length;
12506  return 2 !== l ? (l > 3 ? n = Array.prototype.slice.call(arguments, 2) : 3 === l && ir(n) && (n = [n]), ic(e, t, n)) : !I(t) || k(t) ? ic(e, null, t) : ir(t) ? ic(e, null, [t]) : ic(e, t);
12507}
12508function i$() {}
12509function iH(e, t, n, l) {
12510  let r = n[l];
12511  if (r && iW(r, e)) return r;
12512  let i = t();
12513  return i.memo = e.slice(), i.cacheIndex = l, n[l] = i;
12514}
12515function iW(e, t) {
12516  let n = e.memo;
12517  if (n.length != t.length) return !1;
12518  for (let e = 0; e < n.length; e++) if (J(n[e], t[e])) return !1;
12519  return r9 > 0 && r8 && r8.push(e), !0;
12520}
12521let iK = "3.5.13",
12522  iz = (/* unused pure expression or super */ null && (_)),
12523  iq = null,
12524  iG = void 0,
12525  iJ = (/* unused pure expression or super */ null && (_)),
12526  iX = {
12527    createComponentInstance: iE,
12528    setupComponent: iO,
12529    renderComponentRoot: rB,
12530    setCurrentRenderingInstance: no,
12531    isVNode: ir,
12532    normalizeVNode: im,
12533    getComponentPublicInstance: iV,
12534    ensureValidVNode: lN,
12535    pushWarningContext: function (e) {},
12536    popWarningContext: function () {}
12537  },
12538  iZ = null,
12539  iY = null,
12540  iQ = null,
12541  i0 = "undefined" != typeof window && window.trustedTypes;
12542if (i0) try {
12543  d = i0.createPolicy("vue", {
12544    createHTML: e => e
12545  });
12546} catch (e) {}
12547let i1 = d ? e => d.createHTML(e) : e => e,
12548  i2 = "undefined" != typeof document ? document : null,
12549  i6 = i2 && i2.createElement("template"),
12550  i4 = "transition",
12551  i8 = "animation",
12552  i3 = Symbol("_vtc"),
12553  i5 = {
12554    name: String,
12555    type: String,
12556    css: {
12557      type: Boolean,
12558      default: !0
12559    },
12560    duration: [String, Number, Object],
12561    enterFromClass: String,
12562    enterActiveClass: String,
12563    enterToClass: String,
12564    appearFromClass: String,
12565    appearActiveClass: String,
12566    appearToClass: String,
12567    leaveFromClass: String,
12568    leaveActiveClass: String,
12569    leaveToClass: String
12570  },
12571  i9 = C({}, nN, i5),
12572  i7 = ((e = (e, {
12573    slots: t
12574  }) => iB(nM, sn(e), t)).displayName = "Transition", e.props = i9, e),
12575  se = (e, t = []) => {
12576    k(e) ? e.forEach(e => e(...t)) : e && e(...t);
12577  },
12578  st = e => !!e && (k(e) ? e.some(e => e.length > 1) : e.length > 1);
12579function sn(e) {
12580  let t = {};
12581  for (let n in e) n in i5 || (t[n] = e[n]);
12582  if (!1 === e.css) return t;
12583  let {
12584      name: n = "v",
12585      type: l,
12586      duration: r,
12587      enterFromClass: i = `${n}-enter-from`,
12588      enterActiveClass: s = `${n}-enter-active`,
12589      enterToClass: o = `${n}-enter-to`,
12590      appearFromClass: a = i,
12591      appearActiveClass: u = s,
12592      appearToClass: c = o,
12593      leaveFromClass: f = `${n}-leave-from`,
12594      leaveActiveClass: p = `${n}-leave-active`,
12595      leaveToClass: d = `${n}-leave-to`
12596    } = e,
12597    h = function (e) {
12598      if (null == e) return null;
12599      if (I(e)) return [Q(e.enter), Q(e.leave)];
12600      {
12601        let t = Q(e);
12602        return [t, t];
12603      }
12604    }(r),
12605    g = h && h[0],
12606    m = h && h[1],
12607    {
12608      onBeforeEnter: _,
12609      onEnter: y,
12610      onEnterCancelled: b,
12611      onLeave: S,
12612      onLeaveCancelled: x,
12613      onBeforeAppear: E = _,
12614      onAppear: w = y,
12615      onAppearCancelled: k = b
12616    } = t,
12617    T = (e, t, n, l) => {
12618      e._enterCancelled = l, sr(e, t ? c : o), sr(e, t ? u : s), n && n();
12619    },
12620    A = (e, t) => {
12621      e._isLeaving = !1, sr(e, f), sr(e, d), sr(e, p), t && t();
12622    },
12623    R = e => (t, n) => {
12624      let r = e ? w : y,
12625        s = () =>
12625 T(t, e, n);
12626      se(r, [t, s]), si(() => {
12627        sr(t, e ? a : i), sl(t, e ? c : o), st(r) || so(t, l, g, s);
12628      });
12629    };
12630  return C(t, {
12631    onBeforeEnter(e) {
12632      se(_, [e]), sl(e, i), sl(e, s);
12633    },
12634    onBeforeAppear(e) {
12635      se(E, [e]), sl(e, a), sl(e, u);
12636    },
12637    onEnter: R(!1),
12638    onAppear: R(!0),
12639    onLeave(e, t) {
12640      e._isLeaving = !0;
12641      let n = () => A(e, t);
12642      sl(e, f), e._enterCancelled ? (sl(e, p), sf()) : (sf(), sl(e, p)), si(() => {
12643        e._isLeaving && (sr(e, f), sl(e, d), st(S) || so(e, l, m, n));
12644      }), se(S, [e, n]);
12645    },
12646    onEnterCancelled(e) {
12647      T(e, !1, void 0, !0), se(b, [e]);
12648    },
12649    onAppearCancelled(e) {
12650      T(e, !0, void 0, !0), se(k, [e]);
12651    },
12652    onLeaveCancelled(e) {
12653      A(e), se(x, [e]);
12654    }
12655  });
12656}
12657function sl(e, t) {
12658  t.split(/\s+/).forEach(t => t && e.classList.add(t)), (e[i3] || (e[i3] = new Set())).add(t);
12659}
12660function sr(e, t) {
12661  t.split(/\s+/).forEach(t => t && e.classList.remove(t));
12662  let n = e[i3];
12663  n && (n.delete(t), n.size || (e[i3] = void 0));
12664}
12665function si(e) {
12666  requestAnimationFrame(() => {
12667    requestAnimationFrame(e);
12668  });
12669}
12670let ss = 0;
12671function so(e, t, n, l) {
12672  let r = e._endId = ++ss,
12673    i = () => {
12674      r === e._endId && l();
12675    };
12676  if (null != n) return setTimeout(i, n);
12677  let {
12678    type: s,
12679    timeout: o,
12680    propCount: a
12681  } = sa(e, t);
12682  if (!s) return l();
12683  let u = s + "end",
12684    c = 0,
12685    f = () => {
12686      e.removeEventListener(u, p), i();
12687    },
12688    p = t => {
12689      t.target === e && ++c >= a && f();
12690    };
12691  setTimeout(() => {
12692    c < a && f();
12693  }, o + 1), e.addEventListener(u, p);
12694}
12695function sa(e, t) {
12696  let n = window.getComputedStyle(e),
12697    l = e => (n[e] || "").split(", "),
12698    r = l(`${i4}Delay`),
12699    i = l(`${i4}Duration`),
12700    s = su(r, i),
12701    o = l(`${i8}Delay`),
12702    a = l(`${i8}Duration`),
12703    u = su(o, a),
12704    c = null,
12705    f = 0,
12706    p = 0;
12707  t === i4 ? s > 0 && (c = i4, f = s, p = i.length) : t === i8 ? u > 0 && (c = i8, f = u, p = a.length) : p = (c = (f = Math.max(s, u)) > 0 ? s > u ? i4 : i8 : null) ? c === i4 ? i.length : a.length : 0;
12708  let d = c === i4 && /\b(transform|all)(,|$)/.test(l(`${i4}Property`).toString());
12709  return {
12710    type: c,
12711    timeout: f,
12712    propCount: p,
12713    hasTransform: d
12714  };
12715}
12716function su(e, t) {
12717  for (; e.length < t.length;) e = e.concat(e);
12718  return Math.max(...t.map((t, n) => sc(t) + sc(e[n])));
12719}
12720function sc(e) {
12721  return "auto" === e ? 0 : 1e3 * Number(e.slice(0, -1).replace(",", "."));
12722}
12723function sf() {
12724  return document.body.offsetHeight;
12725}
12726let sp = Symbol("_vod"),
12727  sd = Symbol("_vsh"),
12728  sh = {
12729    beforeMount(e, {
12730      value: t
12731    }, {
12732      transition: n
12733    }) {
12734      e[sp] = "none" === e.style.display ? "" : e.style.display, n && t ? n.beforeEnter(e) : sg(e, t);
12735    },
12736    mounted(e, {
12737      value: t
12738    }, {
12739      transition: n
12740    }) {
12741      n && t && n.enter(e);
12742    },
12743    updated(e, {
12744      value: t,
12745      oldValue: n
12746    }, {
12747      transition: l
12748    }) {
12749      !t != !n && (l ? t ? (l.beforeEnter(e), sg(e, !0), l.enter(e)) : l.leave(e, () => {
12750        sg(e, !1);
12751      }) : sg(e, t));
12752    },
12753    beforeUnmount(e, {
12754      value: t
12755    }) {
12756      sg(e, t);
12757    }
12758  };
12759function sg(e, t) {
12760  e.style.display = t ? e[sp] : "none", e[sd] = !t;
12761}
12762let sv = Symbol("");
12763function sm(e) {
12764  let t = ik();
12765  if (!t) return;
12766  let n = t.ut = (n = e(t.proxy)) => {
12767      Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e => s_(e, n));
12768    },
12769    l = () => {
12770      let l = e(t.proxy);
12771      t.ce ? s_(t.ce, l) : function e(t, n) {
12772        if (128 & t.shapeFlag) {
12773          let l = t.suspense;
12774          t = l.activeBranch, l.pendingBranch && !l.isHydrating && l.effects.push(() => {
12775            e(l.activeBranch, n);
12776          });
12777        }
12778        for (; t.component;) t = t.component.subTree;
12779        if (1 & t.shapeFlag && t.el) s_(t.el, n);else if (t.type === r0) t.children.forEach(t => e(t, n));else if (t.type === r6) {
12780          let {
12781            el: e,
12782            anchor: l
12783          } = t;
12784          for (; e && (s_(e, n), e !== l);) e = e.nextSibling;
12785        }
12786      }(t.subTree, l), n(l);
12787    };
12788  lp(() => {
12789    nt(l);
12790  }), lf(() => {
12791    rM(l, _, {
12792      flush: "post"
12793    });
12794    let e = new MutationObserver(l);
12795    e.observe(t.subTree.el.parentNode, {
12796      childList: !0
12797    }), lg(() => e.disconnect());
12798  });
12799}
12800function s_(e, t) {
12801  if (1 === e.nodeType) {
12802    let n = e.style,
12803      l = "";
12804    for (let e in t) n.setProperty(`--${e}`, t[e]), l += `--${e}: ${t[e]};`;
12805    n[sv] = l;
12806  }
12807}
12808let sy = /(^|;)\s*display\s*:/,
12809  sb = /\s*!important$/;
12810function sS(e, t, n) {
12811  if (k(n)) n.forEach(n => sS(e, t, n));else if (null == n && (n = ""), t.startsWith("--")) e.setProperty(t, n);else {
12812    let l = function (e, t) {
12813      let n = sx[t];
12814      if (n) return n;
12815      let l = W(t);
12816      if ("filter" !== l && l in e) return sx[t] = l;
12817      l = q(l);
12818      for (let n = 0; n < sC.length; n++) {
12819        let r = sC[n] + l;
12820        if (r in e) return sx[t] = r;
12821      }
12822      return t;
12823    }(e, t);
12824    sb.test(n) ? e.setProperty(z(l), n.replace(sb, ""), "important") : e[l] = n;
12825  }
12826}
12827let sC = ["Webkit", "Moz", "ms"],
12828  sx = {},
12829  sE = "http://www.w3.org/1999/xlink";
12830function sw(e, t, n, l, r, i = ea(t)) {
12831  l && t.startsWith("xlink:") ? null == n ? e.removeAttributeNS(sE, t.slice(6, t.length)) : e.setAttributeNS(sE, t, n) : null == n || i && !(n || "" === n) ? e.removeAttribute(t) : e.setAttribute(t, i ? "" : M(n) ? String(n) : n);
12832}
12833function sk(e, t, n, l, r) {
12834  if ("innerHTML" === t || "textContent" === t) {
12835    null != n && (e[t] = "innerHTML" === t ? i1(n) : n);
12836    return;
12837  }
12838  let i = e.tagName;
12839  if ("value" === t && "PROGRESS" !== i && !i.includes("-")) {
12840    let l = "OPTION" === i ? e.getAttribute("value") || "" : e.value,
12841      r = null == n ? "checkbox" === e.type ? "on" : "" : String(n);
12842    l === r && "_value" in e || (e.value = r), null == n && e.removeAttribute(t), e._value = n;
12843    return;
12844  }
12845  let s = !1;
12846  if ("" === n || null == n) {
12847    let l = typeof e[t];
12848    if ("boolean" === l) {
12849      var o;
12850      n = !!(o = n) || "" === o;
12851    } else null == n && "string" === l ? (n = "", s = !0) : "number" === l && (n = 0, s = !0);
12852  }
12853  try {
12854    e[t] = n;
12855  } catch (e) {}
12856  s && e.removeAttribute(r || t);
12857}
12858function sT(e, t, n, l) {
12859  e.addEventListener(t, n, l);
12860}
12861let sA = Symbol("_vei"),
12862  sR = /(?:Once|Passive|Capture)$/,
12863  sN = 0,
12864  sO = Promise.resolve(),
12865  sP = () => sN || (sO.then(() => sN = 0), sN = Date.now()),
12866  sM = e => 111 === e.charCodeAt(0) && 110 === e.charCodeAt(1) && e.charCodeAt(2) > 96 && 123 > e.charCodeAt(2),
12867  sI = {};
12868function sL(e, t, n) {
12869  let l = nj(e, t);
12870  U(l) && C(l, t);
12871  class r extends sV {
12872    constructor(e) {
12873      super(l, e, n);
12874    }
12875  }
12876  return r.def = l, r;
12877}
12878let sD = (e, t) => sL(e, t, op),
12879  sF = "undefined" != typeof HTMLElement ? HTMLElement : class {};
12880class sV extends sF {
12881  constructor(e, t = {}, n = of) {
12882    super(), this._def = e, this._props = t, this._createApp = n, this._isVueCE = !0, this._instance = null, this._app = null, this._nonce = this._def.nonce, this._connected = !1, this._resolved = !1, this._numberProps = null, this._styleChildren = new WeakSet(), this._ob = null, this.shadowRoot && n !== of ? this._root = this.shadowRoot : !1 !== e.shadowRoot ? (this.attachShadow({
12883      mode: "open"
12884    }), this._root = this.shadowRoot) : this._root = this, this._def.__asyncLoader || this._resolveProps(this._def);
12885  }
12886  connectedCallback() {
12887    if (!this.isConnected) return;
12888    this.shadowRoot || this._parseSlots(), this._connected = !0;
12889    let e = this;
12890    for (; e = e && (e.parentNode || e.host);) if (e instanceof sV) {
12891      this._parent = e;
12892      break;
12893    }
12894    this._instance || (this._resolved ? (this._setParent(), this._update()) : e && e._pendingResolve ? this._pendingResolve = e._pendingResolve.then(() => {
12895      this._pendingResolve = void 0, this._resolveDef();
12896    }) : this._resolveDef());
12897  }
12898  _setParent(e = this._parent) {
12899    e && (this._instance.parent = e._instance, this._instance.provides = e._instance.provides);
12900  }
12901  disconnectedCallback() {
12902    this._connected = !1, t9(() => {
12903      this._connected || (this._ob && (this._ob.disconnect(), this._ob = null), this._app && this._app.unmount(), this._instance && (this._instance.ce = void 0), this._app = this._instance = null);
12904    });
12905  }
12906  _resolveDef() {
12907    if (this._pendingResolve) return;
12908    for (let e = 0; e < this.attributes.length; e++) this._setAttr(this.attributes[e].name);
12909    this._ob = new MutationObserver(e => {
12910      for (let t of e) this._setAttr(t.attributeName);
12911    }), this._ob.observe(this, {
12912      attributes: !0
12913    });
12914    let e = (e, t = !1) => {
12915        let n;
12916        this._resolved = !0, this._pendingResolve = void 0;
12917        let {
12918          props: l,
12919          styles: r
12920        } = e;
12921        if (l && !k(l)) for (let e in l) {
12922          let t = l[e];
12923          (t === Number || t && t.type === Number) && (e in this._props && (this._props[e] = Q(this._props[e])), (n || (n = Object.create(null)))[W(e)] = !0);
12924        }
12925        this._numberProps = n, t && this._resolveProps(e), this.shadowRoot && this._applyStyles(r), this._mount(e);
12926      },
12927      t = this._def.__asyncLoader;
12928    t ? this._pendingResolve = t().then(t => e(this._def = t, !0)) : e(this._def);
12929  }
12930  _mount(e) {
12931    this._app = this._createApp(e), e.configureApp && e.configureApp(this._app), this._app._ceVNode = this._createVNode(), this._app.mount(this._root);
12932    let t = this._instance && this._instance.exposed;
12933    if (t) for (let e in t) w(this, e) || Object.defineProperty(this, e, {
12934      get: () => tO(t[e])
12935    });
12936  }
12937  _resolveProps(e) {
12938    let {
12939        props: t
12940      } = e,
12941      n = k(t) ? t : Object.keys(t || {});
12942    for (let e of Object.keys(this)) "_" !== e[0] && n.includes(e) && this._setProp(e, this[e]);
12943    for (let e of n.map(W)) Object.defineProperty(this, e, {
12944      get() {
12945        return this._getProp(e);
12946      },
12947      set(t) {
12948        this._setProp(e, t, !0, !0);
12949      }
12950    });
12951  }
12952  _setAttr(e) {
12953    if (e.startsWith("data-v-")) return;
12954    let t = this.hasAttribute(e),
12955      n = t ? this.getAttribute(e) : sI,
12956      l = W(e);
12957    t && this._numberProps && this._numberProps[l] && (n = Q(n)), this._setProp(l, n, !1, !0);
12958  }
12959  _getProp(e) {
12960    return this._props[e];
12961  }
12962  _setProp(e, t, n = !0, l = !1) {
12963    if (t !== this._props[e] && (t === sI ? delete this._props[e] : (this._props[e] = t, "key" === e && this._app && (this._app._ceVNode.key = t)), l && this._instance && this._update(), n)) {
12964      let n = this._ob;
12965      n && n.disconnect(), !0 === t ? this.setAttribute(z(e), "") : "string" == typeof t || "number" == typeof t ? this.setAttribute(z(e), t + "") : t || this.removeAttribute(z(e)), n && n.observe(this, {
12966        attributes: !0
12967      });
12968    }
12969  }
12970  _update() {
12971    ou(this._createVNode(), this._root);
12972  }
12973  _createVNode() {
12974    let e = {};
12975    this.shadowRoot || (e.onVnodeMounted = e.onVnodeUpdated = this._renderSlots.bind(this));
12976    let t = ic(this._def, C(e, this._props));
12977    return this._instance || (t.ce = e => {
12978      this._instance = e, e.ce = this, e.isCE = !0;
12979      let t = (e, t) => {
12980        this.dispatchEvent(new CustomEvent(e, U(t[0]) ? C({
12981          detail: t
12982        }, t[0]) : {
12983          detail: t
12984        }));
12985      };
12986      e.emit = (e, ...n) => {
12987        t(e, n), z(e) !== e && t(z(e), n);
12988      }, this._setParent();
12989    }), t;
12990  }
12991  _applyStyles(e, t) {
12992    if (!e) return;
12993    if (t) {
12994      if (t === this._def || this._styleChildren.has(t)) return;
12995      this._styleChildren.add(t);
12996    }
12997    let n = this._nonce;
12998    for (let t = e.length - 1; t >= 0; t--) {
12999      let l = document.createElement("style");
13000      n && l.setAttribute("nonce", n), l.textContent = e[t], this.shadowRoot.prepe
13000nd(l);
13001    }
13002  }
13003  _parseSlots() {
13004    let e;
13005    let t = this._slots = {};
13006    for (; e = this.firstChild;) {
13007      let n = 1 === e.nodeType && e.getAttribute("slot") || "default";
13008      (t[n] || (t[n] = [])).push(e), this.removeChild(e);
13009    }
13010  }
13011  _renderSlots() {
13012    let e = (this._teleportTarget || this).querySelectorAll("slot"),
13013      t = this._instance.type.__scopeId;
13014    for (let n = 0; n < e.length; n++) {
13015      let l = e[n],
13016        r = l.getAttribute("name") || "default",
13017        i = this._slots[r],
13018        s = l.parentNode;
13019      if (i) for (let e of i) {
13020        if (t && 1 === e.nodeType) {
13021          let n;
13022          let l = t + "-s",
13023            r = document.createTreeWalker(e, 1);
13024          for (e.setAttribute(l, ""); n = r.nextNode();) n.setAttribute(l, "");
13025        }
13026        s.insertBefore(e, l);
13027      } else for (; l.firstChild;) s.insertBefore(l.firstChild, l);
13028      s.removeChild(l);
13029    }
13030  }
13031  _injectChildStyle(e) {
13032    this._applyStyles(e.styles, e);
13033  }
13034  _removeChildStyle(e) {}
13035}
13036function sU(e) {
13037  let t = ik();
13038  return t && t.ce || null;
13039}
13040function sj() {
13041  let e = sU();
13042  return e && e.shadowRoot;
13043}
13044function sB(e = "$style") {
13045  {
13046    let t = ik();
13047    if (!t) return g;
13048    let n = t.type.__cssModules;
13049    return n && n[e] || g;
13050  }
13051}
13052let s$ = new WeakMap(),
13053  sH = new WeakMap(),
13054  sW = Symbol("_moveCb"),
13055  sK = Symbol("_enterCb"),
13056  sz = (t = {
13057    name: "TransitionGroup",
13058    props: C({}, i9, {
13059      tag: String,
13060      moveClass: String
13061    }),
13062    setup(e, {
13063      slots: t
13064    }) {
13065      let n, l;
13066      let r = ik(),
13067        i = nA();
13068      return ld(() => {
13069        if (!n.length) return;
13070        let t = e.moveClass || `${e.name || "v"}-move`;
13071        if (!function (e, t, n) {
13072          let l = e.cloneNode(),
13073            r = e[i3];
13074          r && r.forEach(e => {
13075            e.split(/\s+/).forEach(e => e && l.classList.remove(e));
13076          }), n.split(/\s+/).forEach(e => e && l.classList.add(e)), l.style.display = "none";
13077          let i = 1 === t.nodeType ? t : t.parentNode;
13078          i.appendChild(l);
13079          let {
13080            hasTransform: s
13081          } = sa(l);
13082          return i.removeChild(l), s;
13083        }(n[0].el, r.vnode.el, t)) return;
13084        n.forEach(sq), n.forEach(sG);
13085        let l = n.filter(sJ);
13086        sf(), l.forEach(e => {
13087          let n = e.el,
13088            l = n.style;
13089          sl(n, t), l.transform = l.webkitTransform = l.transitionDuration = "";
13090          let r = n[sW] = e => {
13091            (!e || e.target === n) && (!e || /transform$/.test(e.propertyName)) && (n.removeEventListener("transitionend", r), n[sW] = null, sr(n, t));
13092          };
13093          n.addEventListener("transitionend", r);
13094        });
13095      }), () => {
13096        let s = tS(e),
13097          o = sn(s),
13098          a = s.tag || r0;
13099        if (n = [], l) for (let e = 0; e < l.length; e++) {
13100          let t = l[e];
13101          t.el && t.el instanceof Element && (n.push(t), nV(t, nL(t, o, i, r)), s$.set(t, t.el.getBoundingClientRect()));
13102        }
13103        l = t.default ? nU(t.default()) : [];
13104        for (let e = 0; e < l.length; e++) {
13105          let t = l[e];
13106          null != t.key && nV(t, nL(t, o, i, r));
13107        }
13108        return ic(a, null, l);
13109      };
13110    }
13111  }, delete t.props.mode, t);
13112function sq(e) {
13113  let t = e.el;
13114  t[sW] && t[sW](), t[sK] && t[sK]();
13115}
13116function sG(e) {
13117  sH.set(e, e.el.getBoundingClientRect());
13118}
13119function sJ(e) {
13120  let t = s$.get(e),
13121    n = sH.get(e),
13122    l = t.left - n.left,
13123    r = t.top - n.top;
13124  if (l || r) {
13125    let t = e.el.style;
13126    return t.transform = t.webkitTransform = `translate(${l}px,${r}px)`, t.transitionDuration = "0s", e;
13127  }
13128}
13129let sX = e => {
13130  let t = e.props["onUpdate:modelValue"] || !1;
13131  return k(t) ? e => X(t, e) : t;
13132};
13133function sZ(e) {
13134  e.target.composing = !0;
13135}
13136function sY(e) {
13137  let t = e.target;
13138  t.composing && (t.composing = !1, t.dispatchEvent(new Event("input")));
13139}
13140let sQ = Symbol("_assign"),
13141  s0 = {
13142    created(e, {
13143      modifiers: {
13144        lazy: t,
13145        trim: n,
13146        number: l
13147      }
13148    }, r) {
13149      e[sQ] = sX(r);
13150      let i = l || r.props && "number" === r.props.type;
13151      sT(e, t ? "change" : "input", t => {
13152        if (t.target.composing) return;
13153        let l = e.value;
13154        n && (l = l.trim()), i && (l = Y(l)), e[sQ](l);
13155      }), n && sT(e, "change", () => {
13156        e.value = e.value.trim();
13157      }), t || (sT(e, "compositionstart", sZ), sT(e, "compositionend", sY), sT(e, "change", sY));
13158    },
13159    mounted(e, {
13160      value: t
13161    }) {
13162      e.value = null == t ? "" : t;
13163    },
13164    beforeUpdate(e, {
13165      value: t,
13166      oldValue: n,
13167      modifiers: {
13168        lazy: l,
13169        trim: r,
13170        number: i
13171      }
13172    }, s) {
13173      if (e[sQ] = sX(s), e.composing) return;
13174      let o = (i || "number" === e.type) && !/^0\d/.test(e.value) ? Y(e.value) : e.value,
13175        a = null == t ? "" : t;
13176      o === a || document.activeElement === e && "range" !== e.type && (l && t === n || r && e.value.trim() === a) || (e.value = a);
13177    }
13178  },
13179  s1 = {
13180    deep: !0,
13181    created(e, t, n) {
13182      e[sQ] = sX(n), sT(e, "change", () => {
13183        let t = e._modelValue,
13184          n = s3(e),
13185          l = e.checked,
13186          r = e[sQ];
13187        if (k(t)) {
13188          let e = ec(t, n),
13189            i = -1 !== e;
13190          if (l && !i) r(t.concat(n));else if (!l && i) {
13191            let n = [...t];
13192            n.splice(e, 1), r(n);
13193          }
13194        } else if (A(t)) {
13195          let e = new Set(t);
13196          l ? e.add(n) : e.delete(n), r(e);
13197        } else r(s5(e, l));
13198      });
13199    },
13200    mounted: s2,
13201    beforeUpdate(e, t, n) {
13202      e[sQ] = sX(n), s2(e, t, n);
13203    }
13204  };
13205function s2(e, {
13206  value: t,
13207  oldValue: n
13208}, l) {
13209  let r;
13210  if (e._modelValue = t, k(t)) r = ec(t, l.props.value) > -1;else if (A(t)) r = t.has(l.props.value);else {
13211    if (t === n) return;
13212    r = eu(t, s5(e, !0));
13213  }
13214  e.checked !== r && (e.checked = r);
13215}
13216let s6 = {
13217    created(e, {
13218      value: t
13219    }, n) {
13220      e.checked = eu(t, n.props.value), e[sQ] = sX(n), sT(e, "change", () => {
13221        e[sQ](s3(e));
13222      });
13223    },
13224    beforeUpdate(e, {
13225      value: t,
13226      oldValue: n
13227    }, l) {
13228      e[sQ] = sX(l), t !== n && (e.checked = eu(t, l.props.value));
13229    }
13230  },
13231  s4 = {
13232    deep: !0,
13233    created(e, {
13234      value: t,
13235      modifiers: {
13236        number: n
13237      }
13238    }, l) {
13239      let r = A(t);
13240      sT(e, "change", () => {
13241        let t = Array.prototype.filter.call(e.options, e => e.selected).map(e => n ? Y(s3(e)) : s3(e));
13242        e[sQ](e.multiple ? r ? new Set(t) : t : t[0]), e._assigning = !0, t9(() => {
13243          e._assigning = !1;
13244        });
13245      }), e[sQ] = sX(l);
13246    },
13247    mounted(e, {
13248      value: t
13249    }) {
13250      s8(e, t);
13251    },
13252    beforeUpdate(e, t, n) {
13253      e[sQ] = sX(n);
13254    },
13255    updated(e, {
13256      value: t
13257    }) {
13258      e._assigning || s8(e, t);
13259    }
13260  };
13261function s8(e, t) {
13262  let n = e.multiple,
13263    l = k(t);
13264  if (!n || l || A(t)) {
13265    for (let r = 0, i = e.options.length; r < i; r++) {
13266      let i = e.options[r],
13267        s = s3(i);
13268      if (n) {
13269        if (l) {
13270          let e = typeof s;
13271          "string" === e || "number" === e ? i.selected = t.some(e => String(e) === String(s)) : i.selected = ec(t, s) > -1;
13272        } else i.selected = t.has(s);
13273      } else if (eu(s3(i), t)) {
13274        e.selectedIndex !== r && (e.selectedIndex = r);
13275        return;
13276      }
13277    }
13278    n || -1 === e.selectedIndex || (e.selectedIndex = -1);
13279  }
13280}
13281function s3(e) {
13282  return "_value" in e ? e._value : e.value;
13283}
13284function s5(e, t) {
13285  let n = t ? "_trueValue" : "_falseValue";
13286  return n in e ? e[n] : t;
13287}
13288let s9 = {
13289  created(e, t, n) {
13290    oe(e, t, n, null, "created");
13291  },
13292  mounted(e, t, n) {
13293    oe(e, t, n, null, "mounted");
13294  },
13295  beforeUpdate(e, t, n, l) {
13296    oe(e, t, n, l, "beforeUpdate");
13297  },
13298  updated(e, t, n, l) {
13299    oe(e, t, n, l, "updated");
13300  }
13301};
13302function s7(e, t) {
13303  switch (e) {
13304    case "SELECT":
13305      return s4;
13306    case "TEXTAREA":
13307      return s0;
13308    default:
13309      switch (t) {
13310        case "checkbox":
13311          return s1;
13312        case "radio":
13313          return s6;
13314        default:
13315          return s0;
13316      }
13317  }
13318}
13319function oe(e, t, n, l, r) {
13320  let i = s7(e.tagName, n.props && n.props.type)[r];
13321  i && i(e, t, n, l);
13322}
13323let ot = ["ctrl", "shift", "alt", "meta"],
13324  on = {
13325    stop: e => e.stopPropagation(),
13326    prevent: e => e.preventDefault(),
13327    self: e => e.target !== e.currentTarget,
13328    ctrl: e => !e.ctrlKey,
13329    shift: e => !e.shiftKey,
13330    alt: e => !e.altKey,
13331    meta: e => !e.metaKey,
13332    left: e => "button" in e && 0 !== e.button,
13333    middle: e => "button" in e && 1 !== e.button,
13334    right: e => "button" in e && 2 !== e.button,
13335    exact: (e, t) => ot.some(n => e[`${n}Key`] && !t.includes(n))
13336  },
13337  ol = (e, t) => {
13338    let n = e._withMods || (e._withMods = {}),
13339      l = t.join(".");
13340    return n[l] || (n[l] = (n, ...l) => {
13341      for (let e = 0; e < t.length; e++) {
13342        let l = on[t[e]];
13343        if (l && l(n, t)) return;
13344      }
13345      return e(n, ...l);
13346    });
13347  },
13348  or = {
13349    esc: "escape",
13350    space: " ",
13351    up: "arrow-up",
13352    left: "arrow-left",
13353    right: "arrow-right",
13354    down: "arrow-down",
13355    delete: "backspace"
13356  },
13357  oi = (e, t) => {
13358    let n = e._withKeys || (e._withKeys = {}),
13359      l = t.join(".");
13360    return n[l] || (n[l] = n => {
13361      if (!("key" in n)) return;
13362      let l = z(n.key);
13363      if (t.some(e => e === l || or[e] === l)) return e(n);
13364    });
13365  },
13366  os = C({
13367    patchProp: (e, t, n, l, r, i) => {
13368      let s = "svg" === r;
13369      "class" === t ? function (e, t, n) {
13370        let l = e[i3];
13371        l && (t = (t ? [t, ...l] : [...l]).join(" ")), null == t ? e.removeAttribute("class") : n ? e.setAttribute("class", t) : e.className = t;
13372      }(e, l, s) : "style" === t ? function (e, t, n) {
13373        let l = e.style,
13374          r = P(n),
13375          i = !1;
13376        if (n && !r) {
13377          if (t) {
13378            if (P(t)) for (let e of t.split(";")) {
13379              let t = e.slice(0, e.indexOf(":")).trim();
13380              null == n[t] && sS(l, t, "");
13381            } else for (let e in t) null == n[e] && sS(l, e, "");
13382          }
13383          for (let e in n) "display" === e && (i = !0), sS(l, e, n[e]);
13384        } else if (r) {
13385          if (t !== n) {
13386            let e = l[sv];
13387            e && (n += ";" + e), l.cssText = n, i = sy.test(n);
13388          }
13389        } else t && e.removeAttribute("style");
13390        sp in e && (e[sp] = i ? l.display : "", e[sd] && (l.display = "none"));
13391      }(e, n, l) : b(t) ? S(t) || function (e, t, n, l, r = null) {
13392        let i = e[sA] || (e[sA] = {}),
13393          s = i[t];
13394        if (l && s) s.value = l;else {
13395          let [n, o] = function (e) {
13396            let t;
13397            if (sR.test(e)) {
13398              let n;
13399              for (t = {}; n = e.match(sR);) e = e.slice(0, e.length - n[0].length), t[n[0].toLowerCase()] = !0;
13400            }
13401            return [":" === e[2] ? e.slice(3) : z(e.slice(2)), t];
13402          }(t);
13403          l ? sT(e, n, i[t] = function (e, t) {
13404            let n = e => {
13405              if (e._vts) {
13406                if (e._vts <= n.attached) return;
13407              } else e._vts = Date.now();
13408              tQ(function (e, t) {
13409                if (!k(t)) return t;
13410                {
13411                  let n = e.stopImmediatePropagation;
13412                  return e.stopImmediatePropagation = () => {
13413                    n.call(e), e._stopped = !0;
13414                  }, t.map(e => t => !t._stopped && e && e(t));
13415                }
13416              }(e, n.value), t, 5, [e]);
13417            };
13418            return n.value = e, n.attached = sP(), n;
13419          }(l, r), o) : s && (!function (e, t, n, l) {
13420            e.removeEventListener(t, n, l);
13421          }(e, n, s, o), i[t] = void 0);
13422        }
13423      }(e, t, 0, l, i) : ("." === t[0] ? (t = t.slice(1), 0) : "^" === t[0] ? (t = t.slice(1), 1) : !function (e, t, n, l) {
13424        if (l) return !!("innerHTML" === t || "textContent" === t || t in e && sM(t) && O(n));
13425        if ("spellcheck" === t || "draggable" === t || "translate" === t || "form" === t || "list" === t && "INPUT" === e.tagName || "type" === t && "TEXTAREA" === e.tagName) return !1;
13426        if ("width" === t || "height" === t) {
13427          let t = e.tagName;
13428          if ("IMG" === t || "VIDEO" === t || "CANVAS" === t || "SOURCE" === t) return !1;
13429        }
13430        return !(sM(t) && P(n)) && t in e;
13431      }(e, t, l, s)) ? e._isVueCE && (/[A-Z]/.test(t) || !P(l)) ? sk(e, W(t), l, i, t) : ("true-value" === t ? e._trueValue = l : "false-value" === t && (e._falseValue = l), sw(e, t, l, s)) : (sk(e, t, l), e.tagName.includes("-") || "value" !== t && "checked" !== t && "selected" !== t || sw(e, t, l, s, i, "value" !== t));
13432    }
13433  }, {
13434    insert: (e, t, n) => {
13435      t.insertBefore(e, n || null);
13436    },
13437    remove: e => {
13438      let t = e.parentNode;
13439      t && t.removeChild(e);
13440    },
13441    createElement: (e, t, n, l) => {
13442      let r = "svg" === t ? i2.createElementNS("http://www.w3.org/2000/svg", e) : "mathml" === t ? i2.createElementNS("http://www.w3.org/1998/Math/MathML", e) : n ? i2.createElement(e, {
13443        is: n
13444      }) : i2.createElement(e);
13445      return "select" === e && l && null != l.multiple && r.setAttribute("multiple", l.multiple), r;
13446    },
13447    createText: e => i2.createTextNode(e),
13448    createComment: e => i2.createComment(e),
13449    setText: (e, t) => {
13450      e.nodeValue = t;
13451    },
13452    setElementText: (e, t) => {
13453      e.textContent = t;
13454    },
13455    parentNode: e => e.parentNode,
13456    nextSibling: e => e.nextSibling,
13457    querySelector: e => i2.querySelector(e),
13458    setScopeId(e, t) {
13459      e.setAttribute(t, "");
13460    },
13461    insertStaticContent(e, t, n, l, r, i) {
13462      let s = n ? n.previousSibling : t.lastChild;
13463      if (r && (r === i || r.nextSibling)) for (; t.insertBefore(r.cloneNode(!0), n), r !== i && (r = r.nextSibling););else {
13464        i6.innerHTML = i1("svg" === l ? `<svg>${e}</svg>` : "mathml" === l ? `<math>${e}</math>` : e);
13465        let r = i6.content;
13466        if ("svg" === l || "mathml" === l) {
13467          let e = r.firstChild;
13468          for (; e.firstChild;) r.appendChild(e.firstChild);
13469          r.removeChild(e);
13470        }
13471        t.insertBefore(r, n);
13472      }
13473      return [s ? s.nextSibling : t.firstChild, n ? n.previousSibling : t.lastChild];
13474    }
13475  }),
13476  oo = (/* unused pure expression or super */ null && (!1));
13477function oa() {
13478  return f = oo ? f : rS(os), oo = !0, f;
13479}
13480let ou = (...e) => {
13481    (f || (f = rb(os))).render(...e);
13482  },
13483  oc = (...e) => {
13484    oa().hydrate(...e);
13485  },
13486  of = (...e) => {
13487    let t = (f || (f = rb(os))).createApp(...e),
13488      {
13489        mount: n
13490      } = t;
13491    return t.mount = e => {
13492      let l = oh(e);
13493      if (!l) return;
13494      let r = t._component;
13495      O(r) || r.render || r.template || (r.template = l.innerHTML), 1 === l.nodeType && (l.textContent = "");
13496      let i = n(l, !1, od(l));
13497      return l instanceof Element && (l.removeAttribute("v-cloak"), l.setAttribute("data-v-app", "")), i;
13498    }, t;
13499  },
13500  op = (...e) => {
13501    let t = oa().createApp(...e),
13502      {
13503        mount: n
13504      } = t;
13505    return t.mount = e => {
13506      let t = oh(e);
13507      if (t) return n(t, !0, od(t));
13508    }, t;
13509  };
13510function od(e) {
13511  return e instanceof SVGElement ? "svg" : "function" == typeof MathMLElement && e instanceof MathMLElement ? "mathml" : void 0;
13512}
13513function oh(e) {
13514  return P(e) ? document.querySelector(e) : e;
13515}
13516let og = (/* unused pure expression or super */ null && (!1)),
13517  ov = () => {
13518    og || (og = !0, s0.getSSRProps = ({
13519      value: e
13520    }) => ({
13521      value: e
13522    }), s6.getSSRProps = ({
13523      value: e
13524    }, t) => {
13525      if (t.props && eu(t.props.value, e)) return {
13526        checked: !0
13527      };
13528    }, s1.getSSRProps = ({
13529      value: e
13530    }, t) => {
13531      if (k(e)) {
13532        if (t.props && ec(e, t.props.value) > -1) return {
13533          checked: !0
13534        };
13535      } else if (A(e)) {
13536        if (t.props && e.has(t.props.value)) return {
13537          checked: !0
13538        };
13539      } else if (e) return {
13540        checked: !0
13541      };
13542    }, s9.getSSRProps = (e, t) => {
13543      if ("string" != typeof t.type) return;
13544      let n = s7(t.type.toUpperCase(), t.props && t.props.type);
13545      if (n.getSSRProps) return n.getSSRProps(e, t);
13546    }, sh.getSSRProps = ({
13547      value: e
13548    }) => {
13549      if (!e) return {
13550        style: {
13551          display: "none"
13552        }
13553      };
13554    });
13555  },
13556  om = () => {};
13557
13558
13559/***/ }),
13560
13561/***/ 3643:
13562/***/ ((module, __webpack_exports__, __webpack_require__) => {
13563
13564"use strict";
13565__webpack_require__.r(__webpack_exports__);
13566/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13567/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
13568/* harmony export */ });
13569/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
13570/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
13571/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
13572/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
13573// Imports
13574
13575
13576var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
13577// Module
13578___CSS_LOADER_EXPORT___.push([module.id, `.vehicle-card .oem-toyota__tdg--srp-card-overview.vehicle-overview{grid-template-areas:"title        tdg-heart   dropdown" "identifiers  identifiers identifiers" "specs        specs       specs";grid-area:tdg-heart;grid-template-columns:1fr repeat(2, auto);column-gap:.8rem}.oem-toyota__tdg--srp-card-heart-wrapper{margin-top:.5rem}`, ""]);
13579// Exports
13580/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
13581
13582
13583/***/ }),
13584
13585/***/ 3677:
13586/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13587
13588"use strict";
13589/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13590/* harmony export */   S: () => (/* binding */ RefinementType)
13591/* harmony export */ });
13592var RefinementType;
13593(function (RefinementType) {
13594    RefinementType["Year"] = "Year";
13595    RefinementType["Make"] = "Make";
13596    RefinementType["Model"] = "Model";
13597    RefinementType["Trim"] = "Trim";
13598    RefinementType["PriceRange"] = "PriceRange";
13599    RefinementType["PriceAndPayment"] = "PriceAndPayment";
13600    RefinementType["Mileage"] = "Mileage";
13601    RefinementType["Mileagerange"] = "Mileagerange";
13602    RefinementType["Location"] = "Location";
13603    RefinementType["Dealership"] = "Dealership";
13604    RefinementType["Bodystyle"] = "Bodystyle";
13605    RefinementType["Extcolor"] = "Extcolor";
13606    RefinementType["Intcolor"] = "Intcolor";
13607    RefinementType["CityMpgRange"] = "CityMpgRange";
13608    RefinementType["HwyMpgRange"] = "HwyMpgRange";
13609    RefinementType["Cylinder"] = "Cylinder";
13610    RefinementType["Displacement"] = "Displacement";
13611    RefinementType["Transmission"] = "Transmission";
13612    RefinementType["Features"] = "Features";
13613    RefinementType["Fueltype"] = "Fueltype";
13614    RefinementType["DriveTrainType"] = "DriveTrainType";
13615    RefinementType["Tags"] = "Tags";
13616    RefinementType["VehicleType"] = "VehicleType";
13617    RefinementType["BodyType"] = "BodyType";
13618    RefinementType["Packages"] = "Packages";
13619    RefinementType["LeasePriceRange"] = "LeasePriceRange";
13620    RefinementType["FinancePriceRange"] = "FinancePriceRange";
13621    RefinementType["VehicleCondition"] = "VehicleCondition";
13622    RefinementType["ModelAndTrim"] = "ModelAndTrim";
13623    RefinementType["FamilyModelAndTrim"] = "FamilyModelAndTrim";
13624    RefinementType["CpoTier"] = "CpoTier";
13625    RefinementType["CarBravo"] = "CarBravo";
13626    RefinementType["Availability"] = "Availability";
13627    RefinementType["BedLength"] = "BedLength";
13628    RefinementType["YearRange"] = "YearRange";
13629    RefinementType["RangeRange"] = "RangeRange";
13630    RefinementType["InTransit"] = "intransit";
13631    RefinementType["InProduction"] = "inproduction";
13632    RefinementType["InStock"] = "instock";
13633    RefinementType["Special"] = "Special";
13634    RefinementType["Cpo"] = "Cpo";
13635    RefinementType["carfax1owner"] = "carfax1owner";
13636    RefinementType["commercialvehicle"] = "commercialvehicle";
13637    RefinementType["searchValet"] = "q";
13638    RefinementType["VehicleStageText"] = "VehicleStageText";
13639    RefinementType["SignalsForYou"] = "signalsforyou";
13640    RefinementType["Manufacturer"] = "Manufacturer";
13641    RefinementType["WeightRange"] = "WeightRange";
13642    RefinementType["LengthRange"] = "LengthRange";
13643    RefinementType["Class"] = "Class";
13644    RefinementType["SlideRange"] = "SlideRange";
13645    RefinementType["RvType"] = "rvType";
13646    RefinementType["RvBrand"] = "RvBrand";
13647    RefinementType["SleepsRange"] = "SleepsRange";
13648    RefinementType["LocationName"] = "LocationName";
13649})(RefinementType || (RefinementType = {}));
13650
13651
13652/***/ }),
13653
13654/***/ 3743:
13655/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13656
13657"use strict";
13658/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13659/* harmony export */   m: () => (/* binding */ DropdownType)
13660/* harmony export */ });
13661/* unused harmony export CustomDropdownModel */
13662class CustomDropdownModel {
13663}
13664var DropdownType;
13665(function (DropdownType) {
13666    DropdownType[DropdownType["Pagination"] = 0] = "Pagination";
13667    DropdownType[DropdownType["SearchValet"] = 1] = "SearchValet";
13668    DropdownType[DropdownType["SearchSort"] = 2] = "SearchSort";
13669})(DropdownType || (DropdownType = {}));
13670
13671
13672/***/ }),
13673
13674/***/ 3807:
13675/***/ ((module, __webpack_exports__, __webpack_require__) => {
13676
13677"use strict";
13678__webpack_require__.r(__webpack_exports__);
13679/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13680/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
13681/* harmony export */ });
13682/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
13683/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
13684/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
13685/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
13686// Imports
13687
13688
13689var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
13690// Module
13691___CSS_LOADER_EXPORT___.push([module.id, `.vehicle-card-deck .invalid-props{background-color:#f1ddab;border:2px solid #debe6f;border-radius:.25rem;padding:1rem}.vehicle-card-deck .invalid-props__warning{font-size:1.5em;font-weight:700}.vehicle-card-deck__no-vehicles{font-weight:700}`, ""]);
13692// Exports
13693/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
13694
13695
13696/***/ }),
13697
13698/***/ 3845:
13699/***/ ((module, __webpack_exports__, __webpack_require__) => {
13700
13701"use strict";
13702__webpack_require__.r(__webpack_exports__);
13703/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13704/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
13705/* harmony export */ });
13706/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
13707/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
13708/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
13709/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
13710// Imports
13711
13712
13713var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
13714// Module
13715___CSS_LOADER_EXPORT___.push([module.id, `
13716.vehicle-location {
13717    display: flex;
13718    align-items: start;
13719    gap: 4px;
13720}
13721.location-text {
13722    font-size: var(--location-text-font-size, 1.2rem);
13723}
13724`, ""]);
13725// Exports
13726/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
13727
13728
13729/***/ }),
13730
13731/***/ 3884:
13732/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13733
13734"use strict";
13735
13736
13737Object.defineProperty(exports, "__esModule", ({
13738  value: true
13739}));
13740exports.typeConstraint = exports.namedConstraint = exports.taggedConstraint = exports.traverseAncerstors = void 0;
13741var METADATA_KEY = __webpack_require__(4725);
13742var metadata_1 = __webpack_require__(8390);
13743var traverseAncerstors = function (request, constraint) {
13744  var parent = request.parentRequest;
13745  if (parent !== null) {
13746    return constraint(parent) ? true : traverseAncerstors(parent, constraint);
13747  } else {
13748    return false;
13749  }
13750};
13751exports.traverseAncerstors = traverseAncerstors;
13752var taggedConstraint = function (key) {
13753  return function (value) {
13754    var constraint = function (request) {
13755      return request !== null && request.target !== null && request.target.matchesTag(key)(value);
13756    };
13757    constraint.metaData = new metadata_1.Metadata(key, value);
13758    return constraint;
13759  };
13760};
13761exports.taggedConstraint = taggedConstraint;
13762var namedConstraint = taggedConstraint(METADATA_KEY.NAMED_TAG);
13763exports.namedConstraint = namedConstraint;
13764var typeConstraint = function (type) {
13765  return function (request) {
13766    var binding = null;
13767    if (request !== null) {
13768      binding = request.bindings[0];
13769      if (typeof type === "string") {
13770        var serviceIdentifier = binding.serviceIdentifier;
13771        return serviceIdentifier === type;
13772      } else {
13773        var constructor = request.bindings[0].implementationType;
13774        return type === constructor;
13775      }
13776    }
13777    return false;
13778  };
13779};
13780exports.typeConstraint = typeConstraint;
13781
13782/***/ }),
13783
13784/***/ 3902:
13785/***/ ((module, __webpack_exports__, __webpack_require__) => {
13786
13787"use strict";
13788__webpack_require__.r(__webpack_exports__);
13789/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13790/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
13791/* harmony export */ });
13792/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
13793/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
13794/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
13795/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
13796// Imports
13797
13798
13799var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
13800// Module
13801___CSS_LOADER_EXPORT___.push([module.id, `
13802.modal-close[data-v-2f35092b] {
13803  display: flex;
13804  flex-direction: row-reverse;
13805  position: relative;
13806  z-index: 1;
13807  padding: 2em;
13808  top: 5em;
13809}
13810`, ""]);
13811// Exports
13812/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
13813
13814
13815/***/ }),
13816
13817/***/ 3907:
13818/***/ ((module, __webpack_exports__, __webpack_require__) => {
13819
13820"use strict";
13821__webpack_require__.r(__webpack_exports__);
13822/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13823/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
13824/* harmony export */ });
13825/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
13826/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
13827/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
13828/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
13829// Imports
13830
13831
13832var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
13833// Module
13834___CSS_LOADER_EXPORT___.push([module.id, `.location-dot[data-v-df36362e]{margin-top:var(--location-dot-top-spacing, 2px)}.location-dot path[data-v-df36362e]{fill:var(--location-dot-color, var(--cta-background-color))}`, ""]);
13835// Exports
13836/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
13837
13838
13839/***/ }),
13840
13841/***/ 3925:
13842/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
13843
13844"use strict";
13845/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13846/* harmony export */   U: () => (/* binding */ EvnVideoPlayer)
13847/* harmony export */ });
13848/* harmony import */ var _services_toggles_iToggleService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4478);
13849/* harmony import */ var inversify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(260);
13850/* harmony import */ var _types_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5644);
13851var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13852    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13853    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13854    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
13855    return c > 3 && r && Object.defineProperty(target, key, r), r;
13856};
13857var __metadata = (undefined && undefined.__metadata) || function (k, v) {
13858    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
13859};
13860var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
13861    return function (target, key) { decorator(target, key, paramIndex); }
13862};
13863var _a;
13864
13865
13866
13867let EvnVideoPlayer = class EvnVideoPlayer {
13868    constructor(toggleService) {
13869        this.toggleService = toggleService;
13870    }
13871    /**
13872     * @param eventType The event to listen for to initialize the EVN video player.
13873     */
13874    initialize(eventType) {
13875        const domContentLoaded = 'DOMContentLoaded';
13876        const loading = 'loading';
13877        if ((eventType === domContentLoaded && document.readyState === loading)
13878            || eventType !== domContentLoaded) {
13879            document.addEventListener(eventType, () => {
13880                this.initEventListenersAndObservers();
13881            });
13882            return;
13883        }
13884        this.initEventListenersAndObservers();
13885    }
13886    initEventListenersAndObservers() {
13887        this.addLoadEvnVideoPlayerEvent();
13888        this.initInlineEvnVideo();
13889    }
13890    //Ford EVN video player inline video initialization.
13891    addLoadEvnVideoPlayerEvent() {
13892        const evnVideoPlayerModal = document.getElementById("evnVideoPlayerModal");
13893        if (evnVideoPlayerModal) {
13894            $('#evnVideoPlayerModal').on('shown.bs.modal', function (event) {
13895                //@ts-ignore
13896                const element = event.relatedTarget;
13897                if (element.dataset.videoId) {
13898                    window.evnVideoPlayer.initialize({
13899                        selector: "#evn-video-player-container",
13900                        videoId: element.dataset.videoId,
13901                        embed: "first",
13902                        videoJsPlayerOptions: {
13903                            autoplay: 'muted',
13904                            loop: true
13905                        }
13906                    });
13907                }
13908            });
13909            const observer = new MutationObserver(() => {
13910                if (evnVideoPlayerModal.style.display === "none") {
13911                    Array.from(window.evnVideoPlayer._players).forEac
13911h(function (player) {
13912                        if (!player.videoPlayer.isDisposed_) {
13913                            player.videoPlayer.dispose();
13914                        }
13915                    });
13916                }
13917            });
13918            const config = { attributes: true, attributeFilter: ['style'] };
13919            observer.observe(evnVideoPlayerModal, config);
13920        }
13921    }
13922    /**
13923     * This is currently only used on the VDP behind the EnableCosmosVdpGalleryMod toggle
13924     */
13925    initInlineEvnVideo() {
13926        const videoContainerElem = document.querySelector("#do-video-container[data-video-player-type='evn']");
13927        if (videoContainerElem && videoContainerElem.dataset.videoFeedUrl) {
13928            let options = {
13929                root: document.querySelector(".hero-carousel__items"),
13930                threshold: 0.9,
13931            };
13932            const observer = new IntersectionObserver((entries) => {
13933                entries.forEach((entry) => {
13934                    if (entry.isIntersecting) {
13935                        window.evnVideoPlayer.initialize({
13936                            selector: "#do-video-container",
13937                            videoId: videoContainerElem.dataset.videoFeedUrl,
13938                            embed: "first",
13939                            videoJsPlayerOptions: {
13940                                autoplay: 'muted',
13941                                loop: true
13942                            }
13943                        });
13944                        observer.disconnect();
13945                    }
13946                });
13947            }, options);
13948            observer.observe(videoContainerElem);
13949        }
13950    }
13951};
13952EvnVideoPlayer = __decorate([
13953    (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .injectable */ ._G)(),
13954    __param(0, (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .inject */ .WQ)(_types_types__WEBPACK_IMPORTED_MODULE_1__/* .TYPES */ .Q.IToggleService)),
13955    __metadata("design:paramtypes", [typeof (_a = typeof _services_toggles_iToggleService__WEBPACK_IMPORTED_MODULE_2__/* .IToggleService */ .F !== "undefined" && _services_toggles_iToggleService__WEBPACK_IMPORTED_MODULE_2__/* .IToggleService */ .F) === "function" ? _a : Object])
13956], EvnVideoPlayer);
13957
13958
13959
13960/***/ }),
13961
13962/***/ 3960:
13963/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
13964
13965// style-loader: Adds some css to the DOM by adding a <style> tag
13966
13967// load the styles
13968var content = __webpack_require__(8595);
13969if(content.__esModule) content = content.default;
13970if(typeof content === 'string') content = [[module.id, content, '']];
13971if(content.locals) module.exports = content.locals;
13972// add the styles to the DOM
13973var add = (__webpack_require__(8449)/* ["default"] */ .A)
13974var update = add("795727d0", content, false, {});
13975// Hot Module Replacement
13976if(false) {}
13977
13978/***/ }),
13979
13980/***/ 4081:
13981/***/ ((__unused_webpack_module, exports) => {
13982
13983"use strict";
13984
13985
13986Object.defineProperty(exports, "__esModule", ({
13987  value: true
13988}));
13989exports.BindingCount = void 0;
13990var BindingCount = {
13991  MultipleBindingsAvailable: 2,
13992  NoBindingsAvailable: 0,
13993  OnlyOneBindingAvailable: 1
13994};
13995exports.BindingCount = BindingCount;
13996
13997/***/ }),
13998
13999/***/ 4131:
14000/***/ ((__unused_webpack_module, exports) => {
14001
14002"use strict";
14003
14004
14005Object.defineProperty(exports, "__esModule", ({
14006  value: true
14007}));
14008exports.QueryableString = void 0;
14009var QueryableString = function () {
14010  function QueryableString(str) {
14011    this.str = str;
14012  }
14013  QueryableString.prototype.startsWith = function (searchString) {
14014    return this.str.indexOf(searchString) === 0;
14015  };
14016  QueryableString.prototype.endsWith = function (searchString) {
14017    var reverseString = "";
14018    var reverseSearchString = searchString.split("").reverse().join("");
14019    reverseString = this.str.split("").reverse().join("");
14020    return this.startsWith.call({
14021      str: reverseString
14022    }, reverseSearchString);
14023  };
14024  QueryableString.prototype.contains = function (searchString) {
14025    return this.str.indexOf(searchString) !== -1;
14026  };
14027  QueryableString.prototype.equals = function (compareString) {
14028    return this.str === compareString;
14029  };
14030  QueryableString.prototype.value = function () {
14031    return this.str;
14032  };
14033  return QueryableString;
14034}();
14035exports.QueryableString = QueryableString;
14036
14037/***/ }),
14038
14039/***/ 4208:
14040/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
14041
14042"use strict";
14043/* harmony export */ __webpack_require__.d(__webpack_exports__, {
14044/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
14045/* harmony export */ });
14046/**
14047 * A collection of shims that provide minimal functionality of the ES6 collections.
14048 *
14049 * These implementations are not meant to be used outside of the ResizeObserver
14050 * modules as they cover only a limited range of use cases.
14051 */
14052/* eslint-disable require-jsdoc, valid-jsdoc */
14053var MapShim = function () {
14054  if (typeof Map !== 'undefined') {
14055    return Map;
14056  }
14057  /**
14058   * Returns index in provided array that matches the specified key.
14059   *
14060   * @param {Array<Array>} arr
14061   * @param {*} key
14062   * @returns {number}
14063   */
14064  function getIndex(arr, key) {
14065    var result = -1;
14066    arr.some(function (entry, index) {
14067      if (entry[0] === key) {
14068        result = index;
14069        return true;
14070      }
14071      return false;
vendor: 4,341 bytes, lines 14072-14232
14072    });
14073    return result;
14074  }
14075  return /** @class */function () {
14076    function class_1() {
14077      this.__entries__ = [];
14078    }
14079    Object.defineProperty(class_1.prototype, "size", {
14080      /**
14081       * @returns {boolean}
14082       */
14083      get: function () {
14084        return this.__entries__.length;
14085      },
14086      enumerable: true,
14087      configurable: true
14088    });
14089    /**
14090     * @param {*} key
14091     * @returns {*}
14092     */
14093    class_1.prototype.get = function (key) {
14094      var index = getIndex(this.__entries__, key);
14095      var entry = this.__entries__[index];
14096      return entry && entry[1];
14097    };
14098    /**
14099     * @param {*} key
14100     * @param {*} value
14101     * @returns {void}
14102     */
14103    class_1.prototype.set = function (key, value) {
14104      var index = getIndex(this.__entries__, key);
14105      if (~index) {
14106        this.__entries__[index][1] = value;
14107      } else {
14108        this.__entries__.push([key, value]);
14109      }
14110    };
14111    /**
14112     * @param {*} key
14113     * @returns {void}
14114     */
14115    class_1.prototype.delete = function (key) {
14116      var entries = this.__entries__;
14117      var index = getIndex(entries, key);
14118      if (~index) {
14119        entries.splice(index, 1);
14120      }
14121    };
14122    /**
14123     * @param {*} key
14124     * @returns {void}
14125     */
14126    class_1.prototype.has = function (key) {
14127      return !!~getIndex(this.__entries__, key);
14128    };
14129    /**
14130     * @returns {void}
14131     */
14132    class_1.prototype.clear = function () {
14133      this.__entries__.splice(0);
14134    };
14135    /**
14136     * @param {Function} callback
14137     * @param {*} [ctx=null]
14138     * @returns {void}
14139     */
14140    class_1.prototype.forEach = function (callback, ctx) {
14141      if (ctx === void 0) {
14142        ctx = null;
14143      }
14144      for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
14145        var entry = _a[_i];
14146        callback.call(ctx, entry[1], entry[0]);
14147      }
14148    };
14149    return class_1;
14150  }();
14151}();
14152
14153/**
14154 * Detects whether window and document objects are available in current environment.
14155 */
14156var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
14157
14158// Returns global object of a current environment.
14159var global$1 = function () {
14160  if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.Math === Math) {
14161    return __webpack_require__.g;
14162  }
14163  if (typeof self !== 'undefined' && self.Math === Math) {
14164    return self;
14165  }
14166  if (typeof window !== 'undefined' && window.Math === Math) {
14167    return window;
14168  }
14169  // eslint-disable-next-line no-new-func
14170  return Function('return this')();
14171}();
14172
14173/**
14174 * A shim for the requestAnimationFrame which falls back to the setTimeout if
14175 * first one is not supported.
14176 *
14177 * @returns {number} Requests' identifier.
14178 */
14179var requestAnimationFrame$1 = function () {
14180  if (typeof requestAnimationFrame === 'function') {
14181    // It's required to use a bounded function because IE sometimes throws
14182    // an "Invalid calling object" error if rAF is invoked without the global
14183    // object on the left hand side.
14184    return requestAnimationFrame.bind(global$1);
14185  }
14186  return function (callback) {
14187    return setTimeout(function () {
14188      return callback(Date.now());
14189    }, 1000 / 60);
14190  };
14191}();
14192
14193// Defines minimum timeout before adding a trailing call.
14194var trailingTimeout = 2;
14195/**
14196 * Creates a wrapper function which ensures that provided callback will be
14197 * invoked only once during the specified delay period.
14198 *
14199 * @param {Function} callback - Function to be invoked after the delay period.
14200 * @param {number} delay - Delay after which to invoke callback.
14201 * @returns {Function}
14202 */
14203function throttle(callback, delay) {
14204  var leadingCall = false,
14205    trailingCall = false,
14206    lastCallTime = 0;
14207  /**
14208   * Invokes the original callback function and schedules new invocation if
14209   * the "proxy" was called during current request.
14210   *
14211   * @returns {void}
14212   */
14213  function resolvePending() {
14214    if (leadingCall) {
14215      leadingCall = false;
14216      callback();
14217    }
14218    if (trailingCall) {
14219      proxy();
14220    }
14221  }
14222  /**
14223   * Callback invoked after the specified delay. It will further postpone
14224   * invocation of the original function delegating it to the
14225   * requestAnimationFrame.
14226   *
14227   * @returns {void}
14228   */
14229  function timeoutCallback() {
14230    requestAnimationFrame$1(resolvePending);
14231  }
14232  /**
vendor: 4,503 bytes, lines 14233-14367
14233   * Schedules invocation of the original function.
14234   *
14235   * @returns {void}
14236   */
14237  function proxy() {
14238    var timeStamp = Date.now();
14239    if (leadingCall) {
14240      // Reject immediately following calls.
14241      if (timeStamp - lastCallTime < trailingTimeout) {
14242        return;
14243      }
14244      // Schedule new call to be in invoked when the pending one is resolved.
14245      // This is important for "transitions" which never actually start
14246      // immediately so there is a chance that we might miss one if change
14247      // happens amids the pending invocation.
14248      trailingCall = true;
14249    } else {
14250      leadingCall = true;
14251      trailingCall = false;
14252      setTimeout(timeoutCallback, delay);
14253    }
14254    lastCallTime = timeStamp;
14255  }
14256  return proxy;
14257}
14258
14259// Minimum delay before invoking the update of observers.
14260var REFRESH_DELAY = 20;
14261// A list of substrings of CSS properties used to find transition events that
14262// might affect dimensions of observed elements.
14263var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
14264// Check if MutationObserver is available.
14265var mutationObserverSupported = typeof MutationObserver !== 'undefined';
14266/**
14267 * Singleton controller class which handles updates of ResizeObserver instances.
14268 */
14269var ResizeObserverController = /** @class */function () {
14270  /**
14271   * Creates a new instance of ResizeObserverController.
14272   *
14273   * @private
14274   */
14275  function ResizeObserverController() {
14276    /**
14277     * Indicates whether DOM listeners have been added.
14278     *
14279     * @private {boolean}
14280     */
14281    this.connected_ = false;
14282    /**
14283     * Tells that controller has subscribed for Mutation Events.
14284     *
14285     * @private {boolean}
14286     */
14287    this.mutationEventsAdded_ = false;
14288    /**
14289     * Keeps reference to the instance of MutationObserver.
14290     *
14291     * @private {MutationObserver}
14292     */
14293    this.mutationsObserver_ = null;
14294    /**
14295     * A list of connected observers.
14296     *
14297     * @private {Array<ResizeObserverSPI>}
14298     */
14299    this.observers_ = [];
14300    this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
14301    this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
14302  }
14303  /**
14304   * Adds observer to observers list.
14305   *
14306   * @param {ResizeObserverSPI} observer - Observer to be added.
14307   * @returns {void}
14308   */
14309  ResizeObserverController.prototype.addObserver = function (observer) {
14310    if (!~this.observers_.indexOf(observer)) {
14311      this.observers_.push(observer);
14312    }
14313    // Add listeners if they haven't been added yet.
14314    if (!this.connected_) {
14315      this.connect_();
14316    }
14317  };
14318  /**
14319   * Removes observer from observers list.
14320   *
14321   * @param {ResizeObserverSPI} observer - Observer to be removed.
14322   * @returns {void}
14323   */
14324  ResizeObserverController.prototype.removeObserver = function (observer) {
14325    var observers = this.observers_;
14326    var index = observers.indexOf(observer);
14327    // Remove observer if it's present in registry.
14328    if (~index) {
14329      observers.splice(index, 1);
14330    }
14331    // Remove listeners if controller has no connected observers.
14332    if (!observers.length && this.connected_) {
14333      this.disconnect_();
14334    }
14335  };
14336  /**
14337   * Invokes the update of observers. It will continue running updates insofar
14338   * it detects changes.
14339   *
14340   * @returns {void}
14341   */
14342  ResizeObserverController.prototype.refresh = function () {
14343    var changesDetected = this.updateObservers_();
14344    // Continue running updates if changes have been detected as there might
14345    // be future ones caused by CSS transitions.
14346    if (changesDetected) {
14347      this.refresh();
14348    }
14349  };
14350  /**
14351   * Updates every observer from observers list and notifies them of queued
14352   * entries.
14353   *
14354   * @private
14355   * @returns {boolean} Returns "true" if any observer has detected changes in
14356   *      dimensions of it's elements.
14357   */
14358  ResizeObserverController.prototype.updateObservers_ = function () {
14359    // Collect observers that have active observations.
14360    var activeObservers = this.observers_.filter(function (observer) {
14361      return observer.gatherActive(), observer.hasActive();
14362    });
14363    // Deliver notifications in a separate cycle in order to avoid any
14364    // collisions between observers, e.g. when multiple instances of
14365    // ResizeObserver are tracking the same element and the callback of one
14366    // of them changes content dimensions of the observed target. Sometimes
14367    // this may result in notifications being blocked for the rest of observers.
vendor: 8,171 bytes, lines 14368-14606
14368    activeObservers.forEach(function (observer) {
14369      return observer.broadcastActive();
14370    });
14371    return activeObservers.length > 0;
14372  };
14373  /**
14374   * Initializes DOM listeners.
14375   *
14376   * @private
14377   * @returns {void}
14378   */
14379  ResizeObserverController.prototype.connect_ = function () {
14380    // Do nothing if running in a non-browser environment or if listeners
14381    // have been already added.
14382    if (!isBrowser || this.connected_) {
14383      return;
14384    }
14385    // Subscription to the "Transitionend" event is used as a workaround for
14386    // delayed transitions. This way it's possible to capture at least the
14387    // final state of an element.
14388    document.addEventListener('transitionend', this.onTransitionEnd_);
14389    window.addEventListener('resize', this.refresh);
14390    if (mutationObserverSupported) {
14391      this.mutationsObserver_ = new MutationObserver(this.refresh);
14392      this.mutationsObserver_.observe(document, {
14393        attributes: true,
14394        childList: true,
14395        characterData: true,
14396        subtree: true
14397      });
14398    } else {
14399      document.addEventListener('DOMSubtreeModified', this.refresh);
14400      this.mutationEventsAdded_ = true;
14401    }
14402    this.connected_ = true;
14403  };
14404  /**
14405   * Removes DOM listeners.
14406   *
14407   * @private
14408   * @returns {void}
14409   */
14410  ResizeObserverController.prototype.disconnect_ = function () {
14411    // Do nothing if running in a non-browser environment or if listeners
14412    // have been already removed.
14413    if (!isBrowser || !this.connected_) {
14414      return;
14415    }
14416    document.removeEventListener('transitionend', this.onTransitionEnd_);
14417    window.removeEventListener('resize', this.refresh);
14418    if (this.mutationsObserver_) {
14419      this.mutationsObserver_.disconnect();
14420    }
14421    if (this.mutationEventsAdded_) {
14422      document.removeEventListener('DOMSubtreeModified', this.refresh);
14423    }
14424    this.mutationsObserver_ = null;
14425    this.mutationEventsAdded_ = false;
14426    this.connected_ = false;
14427  };
14428  /**
14429   * "Transitionend" event handler.
14430   *
14431   * @private
14432   * @param {TransitionEvent} event
14433   * @returns {void}
14434   */
14435  ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
14436    var _b = _a.propertyName,
14437      propertyName = _b === void 0 ? '' : _b;
14438    // Detect whether transition may affect dimensions of an element.
14439    var isReflowProperty = transitionKeys.some(function (key) {
14440      return !!~propertyName.indexOf(key);
14441    });
14442    if (isReflowProperty) {
14443      this.refresh();
14444    }
14445  };
14446  /**
14447   * Returns instance of the ResizeObserverController.
14448   *
14449   * @returns {ResizeObserverController}
14450   */
14451  ResizeObserverController.getInstance = function () {
14452    if (!this.instance_) {
14453      this.instance_ = new ResizeObserverController();
14454    }
14455    return this.instance_;
14456  };
14457  /**
14458   * Holds reference to the controller's instance.
14459   *
14460   * @private {ResizeObserverController}
14461   */
14462  ResizeObserverController.instance_ = null;
14463  return ResizeObserverController;
14464}();
14465
14466/**
14467 * Defines non-writable/enumerable properties of the provided target object.
14468 *
14469 * @param {Object} target - Object for which to define properties.
14470 * @param {Object} props - Properties to be defined.
14471 * @returns {Object} Target object.
14472 */
14473var defineConfigurable = function (target, props) {
14474  for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
14475    var key = _a[_i];
14476    Object.defineProperty(target, key, {
14477      value: props[key],
14478      enumerable: false,
14479      writable: false,
14480      configurable: true
14481    });
14482  }
14483  return target;
14484};
14485
14486/**
14487 * Returns the global object associated with provided element.
14488 *
14489 * @param {Object} target
14490 * @returns {Object}
14491 */
14492var getWindowOf = function (target) {
14493  // Assume that the element is an instance of Node, which means that it
14494  // has the "ownerDocument" property from which we can retrieve a
14495  // corresponding global object.
14496  var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
14497  // Return the local global object if it's not possible extract one from
14498  // provided element.
14499  return ownerGlobal || global$1;
14500};
14501
14502// Placeholder of an empty content rectangle.
14503var emptyRect = createRectInit(0, 0, 0, 0);
14504/**
14505 * Converts provided string to a number.
14506 *
14507 * @param {number|string} value
14508 * @returns {number}
14509 */
14510function toFloat(value) {
14511  return parseFloat(value) || 0;
14512}
14513/**
14514 * Extracts borders size from provided styles.
14515 *
14516 * @param {CSSStyleDeclaration} styles
14517 * @param {...string} positions - Borders positions (top, right, ...)
14518 * @returns {number}
14519 */
14520function getBordersSize(styles) {
14521  var positions = [];
14522  for (var _i = 1; _i < arguments.length; _i++) {
14523    positions[_i - 1] = arguments[_i];
14524  }
14525  return positions.reduce(function (size, position) {
14526    var value = styles['border-' + position + '-width'];
14527    return size + toFloat(value);
14528  }, 0);
14529}
14530/**
14531 * Extracts paddings sizes from provided styles.
14532 *
14533 * @param {CSSStyleDeclaration} styles
14534 * @returns {Object} Paddings box.
14535 */
14536function getPaddings(styles) {
14537  var positions = ['top', 'right', 'bottom', 'left'];
14538  var paddings = {};
14539  for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
14540    var position = positions_1[_i];
14541    var value = styles['padding-' + position];
14542    paddings[position] = toFloat(value);
14543  }
14544  return paddings;
14545}
14546/**
14547 * Calculates content rectangle of provided SVG element.
14548 *
14549 * @param {SVGGraphicsElement} target - Element content rectangle of which needs
14550 *      to be calculated.
14551 * @returns {DOMRectInit}
14552 */
14553function getSVGContentRect(target) {
14554  var bbox = target.getBBox();
14555  return createRectInit(0, 0, bbox.width, bbox.height);
14556}
14557/**
14558 * Calculates content rectangle of provided HTMLElement.
14559 *
14560 * @param {HTMLElement} target - Element for which to calculate the content rectangle.
14561 * @returns {DOMRectInit}
14562 */
14563function getHTMLElementContentRect(target) {
14564  // Client width & height properties can't be
14565  // used exclusively as they provide rounded values.
14566  var clientWidth = target.clientWidth,
14567    clientHeight = target.clientHeight;
14568  // By this condition we can catch all non-replaced inline, hidden and
14569  // detached elements. Though elements with width & height properties less
14570  // than 0.5 will be discarded as well.
14571  //
14572  // Without it we would need to implement separate methods for each of
14573  // those cases and it's not possible to perform a precise and performance
14574  // effective test for hidden elements. E.g. even jQuery's ':visible' filter
14575  // gives wrong results for elements with width & height less than 0.5.
14576  if (!clientWidth && !clientHeight) {
14577    return emptyRect;
14578  }
14579  var styles = getWindowOf(target).getComputedStyle(target);
14580  var paddings = getPaddings(styles);
14581  var horizPad = paddings.left + paddings.right;
14582  var vertPad = paddings.top + paddings.bottom;
14583  // Computed styles of width & height are being used because they are the
14584  // only dimensions available to JS that contain non-rounded values. It could
14585  // be possible to utilize the getBoundingClientRect if only it's data wasn't
14586  // affected by CSS transformations let alone paddings, borders and scroll bars.
14587  var width = toFloat(styles.width),
14588    height = toFloat(styles.height);
14589  // Width & height include paddings and borders when the 'border-box' box
14590  // model is applied (except for IE).
14591  if (styles.boxSizing === 'border-box') {
14592    // Following conditions are required to handle Internet Explorer which
14593    // doesn't include paddings and borders to computed CSS dimensions.
14594    //
14595    // We can say that if CSS dimensions + paddings are equal to the "client"
14596    // properties then it's either IE, and thus we don't need to subtract
14597    // anything, or an element merely doesn't have paddings/borders styles.
14598    if (Math.round(width + horizPad) !== clientWidth) {
14599      width -= getBordersSize(styles, 'left', 'right') + horizPad;
14600    }
14601    if (Math.round(height + vertPad) !== clientHeight) {
14602      height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
14603    }
14604  }
14605  // Following steps can't be applied to the document's root element as its
14606  // client[Width/Height] properties represent viewport area of the window.
vendor: 6,521 bytes, lines 14607-14802
14607  // Besides, it's as well not necessary as the <html> itself neither has
14608  // rendered scroll bars nor it can be clipped.
14609  if (!isDocumentElement(target)) {
14610    // In some browsers (only in Firefox, actually) CSS width & height
14611    // include scroll bars size which can be removed at this step as scroll
14612    // bars are the only difference between rounded dimensions + paddings
14613    // and "client" properties, though that is not always true in Chrome.
14614    var vertScrollbar = Math.round(width + horizPad) - clientWidth;
14615    var horizScrollbar = Math.round(height + vertPad) - clientHeight;
14616    // Chrome has a rather weird rounding of "client" properties.
14617    // E.g. for an element with content width of 314.2px it sometimes gives
14618    // the client width of 315px and for the width of 314.7px it may give
14619    // 314px. And it doesn't happen all the time. So just ignore this delta
14620    // as a non-relevant.
14621    if (Math.abs(vertScrollbar) !== 1) {
14622      width -= vertScrollbar;
14623    }
14624    if (Math.abs(horizScrollbar) !== 1) {
14625      height -= horizScrollbar;
14626    }
14627  }
14628  return createRectInit(paddings.left, paddings.top, width, height);
14629}
14630/**
14631 * Checks whether provided element is an instance of the SVGGraphicsElement.
14632 *
14633 * @param {Element} target - Element to be checked.
14634 * @returns {boolean}
14635 */
14636var isSVGGraphicsElement = function () {
14637  // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
14638  // interface.
14639  if (typeof SVGGraphicsElement !== 'undefined') {
14640    return function (target) {
14641      return target instanceof getWindowOf(target).SVGGraphicsElement;
14642    };
14643  }
14644  // If it's so, then check that element is at least an instance of the
14645  // SVGElement and that it has the "getBBox" method.
14646  // eslint-disable-next-line no-extra-parens
14647  return function (target) {
14648    return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function';
14649  };
14650}();
14651/**
14652 * Checks whether provided element is a document element (<html>).
14653 *
14654 * @param {Element} target - Element to be checked.
14655 * @returns {boolean}
14656 */
14657function isDocumentElement(target) {
14658  return target === getWindowOf(target).document.documentElement;
14659}
14660/**
14661 * Calculates an appropriate content rectangle for provided html or svg element.
14662 *
14663 * @param {Element} target - Element content rectangle of which needs to be calculated.
14664 * @returns {DOMRectInit}
14665 */
14666function getContentRect(target) {
14667  if (!isBrowser) {
14668    return emptyRect;
14669  }
14670  if (isSVGGraphicsElement(target)) {
14671    return getSVGContentRect(target);
14672  }
14673  return getHTMLElementContentRect(target);
14674}
14675/**
14676 * Creates rectangle with an interface of the DOMRectReadOnly.
14677 * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
14678 *
14679 * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
14680 * @returns {DOMRectReadOnly}
14681 */
14682function createReadOnlyRect(_a) {
14683  var x = _a.x,
14684    y = _a.y,
14685    width = _a.width,
14686    height = _a.height;
14687  // If DOMRectReadOnly is available use it as a prototype for the rectangle.
14688  var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
14689  var rect = Object.create(Constr.prototype);
14690  // Rectangle's properties are not writable and non-enumerable.
14691  defineConfigurable(rect, {
14692    x: x,
14693    y: y,
14694    width: width,
14695    height: height,
14696    top: y,
14697    right: x + width,
14698    bottom: height + y,
14699    left: x
14700  });
14701  return rect;
14702}
14703/**
14704 * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
14705 * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
14706 *
14707 * @param {number} x - X coordinate.
14708 * @param {number} y - Y coordinate.
14709 * @param {number} width - Rectangle's width.
14710 * @param {number} height - Rectangle's height.
14711 * @returns {DOMRectInit}
14712 */
14713function createRectInit(x, y, width, height) {
14714  return {
14715    x: x,
14716    y: y,
14717    width: width,
14718    height: height
14719  };
14720}
14721
14722/**
14723 * Class that is responsible for computations of the content rectangle of
14724 * provided DOM element and for keeping track of it's changes.
14725 */
14726var ResizeObservation = /** @class */function () {
14727  /**
14728   * Creates an instance of ResizeObservation.
14729   *
14730   * @param {Element} target - Element to be observed.
14731   */
14732  function ResizeObservation(target) {
14733    /**
14734     * Broadcasted width of content rectangle.
14735     *
14736     * @type {number}
14737     */
14738    this.broadcastWidth = 0;
14739    /**
14740     * Broadcasted height of content rectangle.
14741     *
14742     * @type {number}
14743     */
14744    this.broadcastHeight = 0;
14745    /**
14746     * Reference to the last observed content rectangle.
14747     *
14748     * @private {DOMRectInit}
14749     */
14750    this.contentRect_ = createRectInit(0, 0, 0, 0);
14751    this.target = target;
14752  }
14753  /**
14754   * Updates content rectangle and tells whether it's width or height properties
14755   * have changed since the last broadcast.
14756   *
14757   * @returns {boolean}
14758   */
14759  ResizeObservation.prototype.isActive = function () {
14760    var rect = getContentRect(this.target);
14761    this.contentRect_ = rect;
14762    return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;
14763  };
14764  /**
14765   * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
14766   * from the corresponding properties of the last observed content rectangle.
14767   *
14768   * @returns {DOMRectInit} Last observed content rectangle.
14769   */
14770  ResizeObservation.prototype.broadcastRect = function () {
14771    var rect = this.contentRect_;
14772    this.broadcastWidth = rect.width;
14773    this.broadcastHeight = rect.height;
14774    return rect;
14775  };
14776  return ResizeObservation;
14777}();
14778var ResizeObserverEntry = /** @class */function () {
14779  /**
14780   * Creates an instance of ResizeObserverEntry.
14781   *
14782   * @param {Element} target - Element that is being observed.
14783   * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
14784   */
14785  function ResizeObserverEntry(target, rectInit) {
14786    var contentRect = createReadOnlyRect(rectInit);
14787    // According to the specification following properties are not writable
14788    // and are also not enumerable in the native implementation.
14789    //
14790    // Property accessors are not being used as they'd require to define a
14791    // private WeakMap storage which may cause memory leaks in browsers that
14792    // don't support this type of collections.
14793    defineConfigurable(this, {
14794      target: target,
14795      contentRect: contentRect
14796    });
14797  }
14798  return ResizeObserverEntry;
14799}();
14800var ResizeObserverSPI = /** @class */function () {
14801  /**
14802   * Creates a new instance of ResizeObserver.
14803   *
14804   * @param {ResizeObserverCallback} callback - Callback function that is invoked
14805   *      when one of the observed elements changes it's content dimensions.
14806   * @param {ResizeObserverController} controller - Controller instance which
14807   *      is responsible for the updates of observer.
14808   * @param {ResizeObserver} callbackCtx - Reference to the public
14809   *      ResizeObserver instance which will be passed to callback function.
14810   */
14811  function ResizeObserverSPI(callback, controller, callbackCtx) {
14812    /**
14813     * Collection of resize observations that have detected changes in dimensions
14814     * of elements.
14815     *
14816     * @private {Array<ResizeObservation>}
14817     */
14818    this.activeObservations_ = [];
14819    /**
14820     * Registry of the ResizeObservation instances.
14821     *
14822     * @private {Map<Element, ResizeObservation>}
14823     */
14824    this.observations_ = new MapShim();
14825    if (typeof callback !== 'function') {
14826      throw new TypeError('The callback provided as parameter 1 is not a function.');
14827    }
14828    this.callback_ = callback;
14829    this.controller_ = controller;
14830    this.callbackCtx_ = callbackCtx;
14831  }
14832  /**
14833   * Starts observing provided element.
14834   *
14835   * @param {Element} target - Element to be observed.
14836   * @returns {void}
14837   */
14838  ResizeObserverSPI.prototype.observe = function (target) {
14839    if (!arguments.length) {
14840      throw new TypeError('1 argument required, but only 0 present.');
14841    }
14842    // Do nothing if current environment doesn't have the Element interface.
14843    if (typeof Element === 'undefined' || !(Element instanceof Object)) {
14844      return;
14845    }
14846    if (!(target instanceof getWindowOf(target).Element)) {
14847      throw new TypeError('parameter 1 is not of type "Element".');
14848    }
14849    var observations = this.observations_;
14850    // Do nothing if element is already being observed.
14851    if (observations.has(target)) {
14852      return;
14853    }
14854    observations.set(target, new ResizeObservation(target));
14855    this.controller_.addObserver(this);
14856    // Force the update of observations.
14857    this.controller_.refresh();
14858  };
14859  /**
14860   * Stops observing provided element.
14861   *
14862   * @param {Element} target - Element to stop observing.
14863   * @returns {void}
14864   */
14865  ResizeObserverSPI.prototype.unobserve = function (target) {
14866    if (!arguments.length) {
14867      throw new TypeError('1 argument required, but only 0 present.');
14868    }
14869    // Do nothing if current environment doesn't have the Element interface.
14870    if (typeof Element === 'undefined' || !(Element instanceof Object)) {
14871      return;
14872    }
14873    if (!(target instanceof getWindowOf(target).Element)) {
14874      throw new TypeError('parameter 1 is not of type "Element".');
14875    }
14876    var observations = this.observations_;
14877    // Do nothing if element is not being observed.
14878    if (!observations.has(target)) {
14879      return;
14880    }
14881    observations.delete(target);
14882    if (!observations.size) {
14883      this.controller_.removeObserver(this);
14884    }
14885  };
14886  /**
14887   * Stops observing all elements.
14888   *
14889   * @returns {void}
14890   */
14891  ResizeObserverSPI.prototype.disconnect = function () {
14892    this.clearActive();
14893    this.observations_.clear();
14894    this.controller_.removeObserver(this);
14895  };
14896  /**
14897   * Collects observation instances the associated element of which has changed
14898   * it's content rectangle.
14899   *
14900   * @returns {void}
14901   */
14902  ResizeObserverSPI.prototype.gatherActive = function () {
14903    var _this = this;
14904    this.clearActive();
14905    this.observations_.forEach(function (observation) {
14906      if (observation.isActive()) {
14907        _this.activeObservations_.push(observation);
14908      }
14909    });
14910  };
14911  /**
14912   * Invokes initial callback function with a list of ResizeObserverEntry
14913   * instances collected from active resize observations.
14914   *
14915   * @returns {void}
14916   */
14917  ResizeObserverSPI.prototype.broadcastActive = function () {
14918    // Do nothing if observer doesn't have active observations.
14919    if (!this.hasActive()) {
14920      return;
14921    }
14922    var ctx = this.callbackCtx_;
14923    // Create ResizeObserverEntry instance for every active observation.
14924    var entries = this.activeObservations_.map(function (observation) {
14925      return new ResizeObserverEntry(observation.target, observation.broadcastRect());
14926    });
14927    this.callback_.call(ctx, entries, ctx);
14928    this.clearActive();
14929  };
14930  /**
14931   * Clears the collection of active observations.
14932   *
14933   * @returns {void}
14934   */
14935  ResizeObserverSPI.prototype.clearActive = function () {
14936    this.activeObservations_.splice(0);
14937  };
14938  /**
14939   * Tells whether observer has active observations.
14940   *
14941   * @returns {boolean}
14942   */
14943  ResizeObserverSPI.prototype.hasActive = function () {
14944    return this.activeObservations_.length > 0;
14945  };
14946  return ResizeObserverSPI;
14947}();
14948
14949// Registry of internal observers. If WeakMap is not available use current shim
14950// for the Map collection as it has all required methods and because WeakMap
14951// can't be fully polyfilled anyway.
14952var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
14953/**
14954 * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
14955 * exposing only those methods and properties that are defined in the spec.
14956 */
14957var ResizeObserver = /** @class */function () {
14958  /**
14959   * Creates a new instance of ResizeObserver.
14960   *
14961   * @param {ResizeObserverCallback} callback - Callback that is invoked when
14962   *      dimensions of the observed elements change.
14963   */
14964  function ResizeObserver(callback) {
14965    if (!(this instanceof ResizeObserver)) {
14966      throw new TypeError('Cannot call a class as a function.');
14967    }
14968    if (!arguments.length) {
14969      throw new TypeError('1 argument required, but only 0 present.');
14970    }
14971    var controller = ResizeObserverController.getInstance();
14972    var observer = new ResizeObserverSPI(callback, controller, this);
14973    observers.set(this, observer);
14974  }
14975  return ResizeObserver;
14976}();
14977// Expose public methods of ResizeObserver.
14978['observe', 'unobserve', 'disconnect'].forEach(function (method) {
14979  ResizeObserver.prototype[method] = function () {
14980    var _a;
14981    return (_a = observers.get(this))[method].apply(_a, arguments);
14982  };
14983});
14984var index = function () {
14985  // Export existing implementation if available.
14986  if (typeof global$1.ResizeObserver !== 'undefined') {
14987    return global$1.ResizeObserver;
14988  }
14989  return ResizeObserver;
14990}();
14991/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (index);
14992
14993/***/ }),
14994
14995/***/ 4387:
14996/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14997
14998"use strict";
14999
15000
15001Object.defineProperty(exports, "__esModule", ({
15002  value: true
15003}));
15004exports.getBindingDictionary = exports.createMockRequest = exports.plan = void 0;
15005var binding_count_1 = __webpack_require__(4081);
15006var ERROR_MSGS = __webpack_require__(7718);
15007var literal_types_1 = __webpack_require__(7802);
15008var METADATA_KEY = __webpack_require__(4725);
15009var exceptions_1 = __webpack_require__(8229);
15010var serialization_1 = __webpack_require__(7911);
15011var context_1 = __webpack_require__(8528);
15012var metadata_1 = __webpack_require__(8390);
15013var plan_1 = __webpack_require__(3104);
15014var reflection_utils_1 = __webpack_require__(9592);
15015var request_1 = __webpack_require__(9034);
15016var target_1 = __webpack_require__(154);
15017function getBindingDictionary(cntnr) {
15018  return cntnr._bindingDictionary;
15019}
15020exports.getBindingDictionary = getBindingDictionary;
15021function _createTarget(isMultiInject, targetType, serviceIdentifier, name, key, value) {
15022  var metadataKey = isMultiInject ? METADATA_KEY.MULTI_INJECT_TAG : METADATA_KEY.INJECT_TAG;
15023  var injectMetadata = new metadata_1.Metadata(metadataKey, serviceIdentifier);
15024  var target = new target_1.Target(targetType, name, serviceIdentifier, injectMetadata);
15025  if (key !== undefined) {
15026    var tagMetadata = new metadata_1.Metadata(key, value);
15027    target.metadata.push(tagMetadata);
15028  }
15029  return target;
15030}
15031function _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target) {
15032  var bindings = getBindings(context.container, target.serviceIdentifier);
15033  var activeBindings = [];
15034  if (bindings.length === binding_count_1.BindingCount.NoBindingsAvailable && context.container.options.autoBindInjectable && typeof target.serviceIdentifier === "function" && metadataReader.getConstructorMetadata(target.serviceIdentifier).compilerGeneratedMetadata) {
15035    context.container.bind(target.serviceIdentifier).toSelf();
15036    bindings = getBindings(context.container, target.serviceIdentifier);
15037  }
15038  if (!avoidConstraints) {
15039    activeBindings = bindings.filter(function (binding) {
15040      var request = new request_1.Request(binding.serviceIdentifier, context, parentRequest, binding, target);
15041      return binding.constraint(request);
15042    });
15043  } else {
15044    activeBindings = bindings;
15045  }
15046  _validateActiveBindingCount(target.serviceIdentifier, activeBindings, target, context.container);
15047  return activeBindings;
15048}
15049function _validateActiveBindingCount(serviceIdentifier, bindings, target, container) {
15050  switch (bindings.length) {
15051    case binding_count_1.BindingCount.NoBindingsAvailable:
15052      if (target.isOptional()) {
15053        return bindings;
15054      } else {
15055        var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);
15056        var msg = ERROR_MSGS.NOT_REGISTERED;
15057        msg += serialization_1.listMetadataForTarget(serviceIdentifierString, target);
15058        msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);
15059        throw new Error(msg);
15060      }
15061    case binding_count_1.BindingCount.OnlyOneBindingAvailable:
15062      if (!target.isArray()) {
15063        return bindings;
15064      }
15065    case binding_count_1.BindingCount.MultipleBindingsAvailable:
15066    default:
15067      if (!target.isArray()) {
15068        var serviceIdentifierString = serialization_1.getServiceIdentifierAsString(serviceIdentifier);
15069        var msg = ERROR_MSGS.AMBIGUOUS_MATCH + " " + serviceIdentifierString;
15070        msg += serialization_1.listRegisteredBindingsForServiceIdentifier(container, serviceIdentifierString, getBindings);
15071        throw new Error(msg);
15072      } else {
15073        return bindings;
15074      }
15075  }
15076}
15077function _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, parentRequest, target) {
15078  var activeBindings;
15079  var childRequest;
15080  if (parentRequest === null) {
15081    activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, null, target);
15082    childRequest = new request_1.Request(serviceIdentifier, context, null, activeBindings, target);
15083    var thePlan = new plan_1.Plan(context, childRequest);
15084    context.addPlan(thePlan);
15085  } else {
15086    activeBindings = _getActiveBindings(metadataReader, avoidConstraints, context, parentRequest, target);
15087    childRequest = parentRequest.addChildRequest(target.serviceIdentifier, activeBindings, target);
15088  }
15089  activeBindings.forEach(function (binding) {
15090    var subChildRequest = null;
15091    if (target.isArray()) {
15092      subChildRequest = childRequest.addChildRequest(binding.serviceIdentifier, binding, target);
15093    } else {
15094      if (binding.cache) {
15095        return;
15096      }
15097      subChildRequest = childRequest;
15098    }
15099    if (binding.type === literal_types_1.BindingTypeEnum.Instance && binding.implementationType !== null) {
15100      var dependencies = reflection_utils_1.getDependencies(metadataReader, binding.implementationType);
15101      if (!context.container.options.skipBaseClassChecks) {
15102        var baseClassDependencyCount = reflection_utils_1.getBaseClassDependencyCount(metadataReader, binding.implementationType);
15103        if (dependencies.length < baseClassDependencyCount) {
15104          var error = ERROR_MSGS.ARGUMENTS_LENGTH_MISMATCH(reflection_utils_1.getFunctionName(binding.implementationType));
15105          throw new Error(error);
15106        }
15107      }
15108      dependencies.forEach(function (dependency) {
15109        _createSubRequests(metadataReader, false, dependency.serviceIdentifier, context, subChildRequest, dependency);
15110      });
15111    }
15112  });
15113}
15114function getBindings(container, serviceIdentifier) {
15115  var bindings = [];
15116  var bindingDictionary = getBindingDictionary(container);
15117  if (bindingDictionary.hasKey(serviceIdentifier)) {
15118    bindings = bindingDictionary.get(serviceIdentifier);
15119  } else if (container.parent !== null) {
15120    bindings = getBindings(container.parent, serviceIdentifier);
15121  }
15122  return bindings;
15123}
15124function plan(metadataReader, container, isMultiInject, targetType, serviceIdentifier, key, value, avoidConstraints) {
15125  if (avoidConstraints === void 0) {
15126    avoidConstraints = false;
15127  }
15128  var context = new context_1.Context(container);
15129  var target = _createTarget(isMultiInject, targetType, serviceIdentifier, "", key, value);
15130  try {
15131    _createSubRequests(metadataReader, avoidConstraints, serviceIdentifier, context, null, target);
15132    return context;
15133  } catch (error) {
15134    if (exceptions_1.isStackOverflowExeption(error)) {
15135      if (context.plan) {
15136        serialization_1.circularDependencyToException(context.plan.rootRequest);
15137      }
15138    }
15139    throw error;
15140  }
15141}
15142exports.plan = plan;
15143function createMockRequest(container, serviceIdentifier, key, value) {
15144  var target = new target_1.Target(literal_types_1.TargetTypeEnum.Variable, "", serviceIdentifier, new metadata_1.Metadata(key, value));
15145  var context = new context_1.Context(container);
15146  var request = new request_1.Request(serviceIdentifier, context, null, [], target);
15147  return request;
15148}
15149exports.createMockRequest = createMockRequest;
15150
15151/***/ }),
15152
15153/***/ 4423:
15154/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
15155
15156"use strict";
15157/* harmony export */ __webpack_require__.d(__webpack_exports__, {
15158/* harmony export */   A: () => (/* binding */ SpaHelpers)
15159/* harmony export */ });
15160class SpaHelpers {
15161    static ParseHtmlAttrs(attrs) {
15162        const attrsArray = attrs.match(/[A-za-z0-9\-]*=([\']([^\s\']|[ ])*[\']|[\"]([^\s\"]|[ ])*[\"])/g);
15163        const attrsObj = {};
15164        attrsArray === null || attrsArray === void 0 ? void 0 : attrsArray.forEach(attr => {
15165            const attrKey = attr.match(/[A-za-z0-9\-]*=/)[0].split("=")[0];
15166            const attrValue = attr.match(/=([\']([^\s\']|[ ])*[\']|[\"]([^\s\"]|[ ])*[\"])/)[0];
15167            attrsObj[attrKey] = attrValue.substring(2, attrValue.length - 1);
15168        });
15169        return attrsObj;
15170    }
15171    static loadScript(url) {
15172        const script = document.createElement('script');
15173        script.src = url;
15174        document.body.appendChild(script);
15175    }
15176    static requiredAsterisk(isRequired) {
15177        return isRequired ? "*" : "";
15178    }
15179    static requiredAttribute(isRequired) {
15180        return isRequired ? true : null;
15181    }
15182}
15183
15184
15185/***/ }),
15186
15187/***/ 4478:
15188/***/ (() => {
15189
15190"use strict";
15191
15192
15193
15194/***/ }),
15195
15196/***/ 4506:
15197/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
15198
15199// style-loader: Adds some css to the DOM by adding a <style> tag
15200
15201// load the styles
15202var content = __webpack_require__(8043);
15203if(content.__esModule) content = content.default;
15204if(typeof content === 'string') content = [[module.id, content, '']];
15205if(content.locals) module.exports = content.locals;
15206// add the styles to the DOM
15207var add = (__webpack_require__(8449)/* ["default"] */ .A)
15208var update = add("490f52aa", content, false, {});
15209// Hot Module Replacement
15210if(false) {}
15211
15212/***/ }),
15213
15214/***/ 4533:
15215/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
15216
15217"use strict";
15218
15219
15220Object.defineProperty(exports, "__esModule", ({
15221  value: true
15222}));
15223exports.BindingWhenSyntax = void 0;
15224var binding_on_syntax_1 = __webpack_require__(5078);
15225var constraint_helpers_1 = __webpack_require__(3884);
15226var BindingWhenSyntax = function () {
15227  function BindingWhenSyntax(binding) {
15228    this._binding = binding;
15229  }
15230  BindingWhenSyntax.prototype.when = function (constraint) {
15231    this._binding.constraint = constraint;
15232    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15233  };
15234  BindingWhenSyntax.prototype.whenTargetNamed = function (name) {
15235    this._binding.constraint = constraint_helpers_1.namedConstraint(name);
15236    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15237  };
15238  BindingWhenSyntax.prototype.whenTargetIsDefault = function () {
15239    this._binding.constraint = function (request) {
15240      var targetIsDefault = request.target !== null && !request.target.isNamed() && !request.target.isTagged();
15241      return targetIsDefault;
15242    };
15243    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15244  };
15245  BindingWhenSyntax.prototype.whenTargetTagged = function (tag, value) {
15246    this._binding.constraint = constraint_helpers_1.taggedConstraint(tag)(value);
15247    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15248  };
15249  BindingWhenSyntax.prototype.whenInjectedInto = function (parent) {
15250    this._binding.constraint = function (request) {
15251      return constraint_helpers_1.typeConstraint(parent)(request.parentRequest);
15252    };
15253    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15254  };
15255  BindingWhenSyntax.prototype.whenParentNamed = function (name) {
15256    this._binding.constraint = function (request) {
15257      return constraint_helpers_1.namedConstraint(name)(request.parentRequest);
15258    };
15259    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15260  };
15261  BindingWhenSyntax.prototype.whenParentTagged = function (tag, value) {
15262    this._binding.constraint = function (request) {
15263      return constraint_helpers_1.taggedConstraint(tag)(value)(request.parentRequest);
15264    };
15265    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15266  };
15267  BindingWhenSyntax.prototype.whenAnyAncestorIs = function (ancestor) {
15268    this._binding.constraint = function (request) {
15269      return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));
15270    };
15271    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15272  };
15273  BindingWhenSyntax.prototype.whenNoAncestorIs = function (ancestor) {
15274    this._binding.constraint = function (request) {
15275      return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.typeConstraint(ancestor));
15276    };
15277    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15278  };
15279  BindingWhenSyntax.prototype.whenAnyAncestorNamed = function (name) {
15280    this._binding.constraint = function (request) {
15281      return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));
15282    };
15283    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15284  };
15285  BindingWhenSyntax.prototype.whenNoAncestorNamed = function (name) {
15286    this._binding.constraint = function (request) {
15287      return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.namedConstraint(name));
15288    };
15289    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15290  };
15291  BindingWhenSyntax.prototype.whenAnyAncestorTagged = function (tag, value) {
15292    this._binding.constraint = function (request) {
15293      return constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));
15294    };
15295    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15296  };
15297  BindingWhenSyntax.prototype.whenNoAncestorTagged = function (tag, value) {
15298    this._binding.constraint = function (request) {
15299      return !constraint_helpers_1.traverseAncerstors(request, constraint_helpers_1.taggedConstraint(tag)(value));
15300    };
15301    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15302  };
15303  BindingWhenSyntax.prototype.whenAnyAncestorMatches = function (constraint) {
15304    this._binding.constraint = function (request) {
15305      return constraint_helpers_1.traverseAncerstors(request, constraint);
15306    };
15307    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15308  };
15309  BindingWhenSyntax.prototype.whenNoAncestorMatches = function (constraint) {
15310    this._binding.constraint = function (request) {
15311      return !constraint_helpers_1.traverseAncerstors(request, constraint);
15312    };
15313    return new binding_on_syntax_1.BindingOnSyntax(this._binding);
15314  };
15315  return BindingWhenSyntax;
15316}();
15317exports.BindingWhenSyntax = BindingWhenSyntax;
15318
15319/***/ }),
15320
15321/***/ 4567:
15322/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
15323
15324"use strict";
15325/* harmony export */ __webpack_require__.d(__webpack_exports__, {
15326/* harmony export */   C: () => (/* binding */ VehicleImageCarousel)
15327/* harmony export */ });
15328/* unused harmony export Direction */
15329/* harmony import */ var _utilities_performanceHelpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9185);
15330var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
15331    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15332    return new (P || (P = Promise))(function (resolve, reject) {
15333        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15334        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
15335        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15336        step((generator = generator.apply(thisArg, _arguments || [])).next());
15337    });
15338};
15339
15340var Direction;
15341(function (Direction) {
15342    Direction[Direction["LeftRight"] = 0] = "LeftRight";
15343    Direction[Direction["UpDown"] = 1] = "UpDown";
15344})(Direction || (Direction = {}));
15345var CarouselItemType;
15346(function (CarouselItemType) {
15347    CarouselItemType["image"] = "image";
15348    CarouselItemType["video"] = "video";
15349    CarouselItemType["interior360"] = "interior360";
15350    CarouselItemType["spincar"] = "spincar";
15351}
15351)(CarouselItemType || (CarouselItemType = {}));
15352/*
15353 * Description: VehicleImageCarousel is a carousel component that consists of
15354 * both mobile and desktop views.
15355 *
15356 * carouselParent: wrapper element that contains the entire carousel
15357 * rootClassName: the classname for the hero-images. Default: hero-carousel
15358 */
15359class VehicleImageCarousel {
15360    constructor(carouselParent, rootClassName, thumbnailDesktopScrollContainer, thumbnailDesktopScrollDirection, thumbnailMobileScrollableContainer, thumbnailMobileScrollDirection, carouselItemsContainerWidth) {
15361        var _a, _b;
15362        this._buttonClassName = "";
15363        this._carouselItemContainer = "hero-carousel__items";
15364        this._currentIndex = 0;
15365        this._carouselScroll = {
15366            isMouseDown: false,
15367            isScrolling: false,
15368            x1: 0,
15369            x2: 0
15370        };
15371        this._selectedThumbnailClasses = ["border-cta", "thumbnail--selected"];
15372        this._hiddenClass = "hidden";
15373        this._touchSwipe = false;
15374        this.scrollSlides = (elem) => {
15375            var _a, _b;
15376            const slideIndex = parseInt((_b = (_a = elem.dataset) === null || _a === void 0 ? void 0 : _a.carouselIndex) !== null && _b !== void 0 ? _b : "0");
15377            if (this._currentIndex !== slideIndex) {
15378                this.goToSlide(slideIndex, this._touchSwipe);
15379            }
15380        };
15381        this.selectThumbnail = (selected) => __awaiter(this, void 0, void 0, function* () {
15382            this.observeHeroImageScrolling(false);
15383            const slideIndex = Array.from(selected.parentElement.querySelectorAll(".thumbnail")).indexOf(selected);
15384            yield this.goToSlide(slideIndex, false);
15385            //give some time for the smooth scrolling to finish so we don"t
15386            //prematurely fire observer upates when the thumbnails trigger a
15387            //scroll of the hero images
15388            window.setTimeout(() => {
15389                this.observeHeroImageScrolling(true);
15390            }, 1000);
15391        });
15392        /* TEMPORARY - only initialize if carousel is not in SPA (SPA component has its own TS) */
15393        const isCosmosSpa = (_b = (_a = document.querySelector('.hero-carousel')) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.contains('hero-carousel--component');
15394        if (!isCosmosSpa) {
15395            this.initialize(carouselParent, rootClassName, thumbnailDesktopScrollContainer, thumbnailDesktopScrollDirection, thumbnailMobileScrollableContainer, thumbnailMobileScrollDirection, carouselItemsContainerWidth);
15396        }
15397    }
15398    initialize(carouselParent, rootClassName, thumbnailDesktopScrollContainer, thumbnailDesktopScrollDirection, thumbnailMobileScrollableContainer, thumbnailMobileScrollDirection, carouselItemsContainerWidth) {
15399        return __awaiter(this, void 0, void 0, function* () {
15400            //setup scrolling for related thumbnails
15401            this._desktopThumbsScrollable = thumbnailDesktopScrollContainer ? true : false;
15402            this._mobileThumbsScrollable = thumbnailMobileScrollableContainer ? true : false;
15403            this._thumbnailDesktopScrollContainer = thumbnailDesktopScrollContainer;
15404            this._thumbnailDesktopScrollDirection = thumbnailDesktopScrollDirection;
15405            this._thumbnailMobileScrollableContainer = thumbnailMobileScrollableContainer;
15406            this._thumbnailMobileScrollDirection = thumbnailMobileScrollDirection;
15407            this.carouselParent = carouselParent !== null && carouselParent !== void 0 ? carouselParent : document.querySelector("body");
15408            this.rootClassName = rootClassName !== null && rootClassName !== void 0 ? rootClassName : "hero-carousel";
15409            yield this.getElements(carouselItemsContainerWidth);
15410            this._scrollX = 0;
15411            if (this._carouselImageCount === 0 && this._controls) {
15412                this._controls.classList.add(this._hiddenClass);
15413            }
15414            this.toggleControls();
15415            this.addListeners(this, "mouse");
15416            if (this._desktopThumbsScrollable) {
15417                this.addSelectedClasses(this._desktopThumbnails[this._currentIndex]);
15418            }
15419            if (this._mobileThumbsScrollable) {
15420                this.addSelectedClasses(this._mobileThumbnails[this._currentIndex]);
15421            }
15422        });
15423    }
15424    getElements(containerWidth) {
15425        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
15426        return __awaiter(this, void 0, void 0, function* () {
15427            this._carouselElement = (_a = this.carouselParent.querySelector(`.${this.rootClassName}`)) !== null && _a !== void 0 ? _a : null;
15428            this._counterBadgeElement = (_b = this.carouselParent.querySelector(".hero-carousel__image-counter")) !== null && _b !== void 0 ? _b : null;
15429            this._counter = (_c = this.carouselParent.querySelector(".image-counter__current")) !== null && _c !== void 0 ? _c : null;
15430            this._buttonClassName = `${this.rootClassName}__controls`;
15431            //carousel controls
15432            this._controls = (_d = this._carouselElement.querySelector(`.${this._buttonClassName}`)) !== null && _d !== void 0 ? _d : null;
15433            this._previousButton = this.getButton(this._controls, "previous");
15434            this._nextButton = this.getButton(this._controls, "next");
15435            this._items = this.carouselParent.querySelectorAll(`.${this.rootClassName} .${this.rootClassName}__item`);
15436            this._carouselImageCount = this._items.length;
15437            this._dots = this.carouselParent.querySelectorAll(".dot");
15438            //mobile thumbnail controls
15439            this._thumbnailMobileScrollableContainerElem = (_e = this.carouselParent.querySelector(`.${this._thumbnailMobileScrollableContainer}`)) !== null && _e !== void 0 ? _e : this.carouselParent.querySelector(".thumbnails--mobile");
15440            if (this._thumbnailMobileScrollableContainerElem) {
15441                this._mobileThumbnails = this._thumbnailMobileScrollableContainerElem.querySelectorAll(".thumbnail");
15442                this._controlsThumbsMobile = (_f = this._thumbnailMobileScrollableContainerElem.querySelector(`.${this._buttonClassName}`)) !== null && _f !== void 0 ? _f : null;
15443                this._previousButtonThumbsMobile = this.getButton(this._controlsThumbsMobile, "previous");
15444                this._nextButtonThumbsMobile = this.getButton(this._controlsThumbsMobile, "next");
15445            }
15446            //desktop thumbnail controls
15447            this._thumbnailDesktopScrollContainerElem = (_g = this.carouselParent.querySelector(`.${this._thumbnailDesktopScrollContainer}`)) !== null && _g !== void 0 ? _g : this.carouselParent.querySelector(".thumbnails--desktop");
15448            if (this._thumbnailDesktopScrollContainerElem) {
15449                this._desktopThumbnails = this._thumbnailDesktopScrollContainerElem.querySelectorAll(".thumbnail");
15450                this._controlsThumbsDesktop = (_h = this._thumbnailDesktopScrollContainerElem.querySelector(`.${this._buttonClassName}`)) !== null && _h !== void 0 ? _h : null;
15451                this._previousButtonThumbsDesktop = this.getButton(this._controlsThumbsDesktop, "previous");
15452                this._nextButtonThumbsDesktop = this.getButton(this._controlsThumbsDesktop, "next");
15453            }
15454            //SITESAA-3503: if we don't pass in a container width, then calculate it.
15455            if (containerWidth) {
15456                this._containerWidth = containerWidth;
15457            }
15458            else {
15459                let containerElem = (_k = (_j = this.carouselParent) === null || _j === void 0 ? void 0 : _j.querySelector(`.${this._carouselItemContainer}`)) !== null && _k !== void 0 ? _k : null;
15460                yield (0,_utilities_performanceHelpers__WEBPACK_IMPORTED_MODULE_0__/* .doBeforeNextRepaint */ .L
15460)(() => {
15461                    this._containerWidth = containerElem === null || containerElem === void 0 ? void 0 : containerElem.getBoundingClientRect().width;
15462                });
15463            }
15464        });
15465    }
15466    getButton(controls, buttonName) {
15467        var _a, _b;
15468        if (!controls) {
15469            return null;
15470        }
15471        let btn = (_a = controls.querySelector(`.${this._buttonClassName}--${buttonName}`)) !== null && _a !== void 0 ? _a : null;
15472        if (!btn) {
15473            return null;
15474        }
15475        // CONPLAT-1944
15476        // get the big outer button if EnableBiggerHover = true
15477        if (btn && btn.classList.contains("cursorPointer")) {
15478            return btn;
15479        }
15480        // otherwise, return the inner button
15481        return (_b = btn.querySelector("button")) !== null && _b !== void 0 ? _b : null;
15482    }
15483    addListeners(carousel, eventType) {
15484        var _a, _b, _c;
15485        const clickEvent = eventType === "mouse" ? "click" : "touchend";
15486        const page = document.querySelector('.vdp');
15487        page === null || page === void 0 ? void 0 : page.setAttribute("data-dotagging-affiliation", window.DlronGlobal_DealerName);
15488        if (carousel._previousButton) {
15489            carousel._previousButton.setAttribute("data-dotagging-affiliation", window.DlronGlobal_DealerName);
15490            carousel._previousButton.addEventListener(clickEvent, (e) => {
15491                e.preventDefault();
15492                if (!carousel._carouselScroll.isScrolling) {
15493                    carousel.goToPreviousSlide();
15494                }
15495            });
15496        }
15497        if (carousel._nextButton) {
15498            carousel._nextButton.setAttribute("data-dotagging-affiliation", window.DlronGlobal_DealerName);
15499            carousel._nextButton.addEventListener(clickEvent, (e) => {
15500                e.preventDefault();
15501                if (!carousel._carouselScroll.isScrolling) {
15502                    carousel.goToNextSlide();
15503                }
15504            });
15505        }
15506        if (carousel._previousButtonThumbsMobile) {
15507            carousel._previousButtonThumbsMobile.addEventListener(clickEvent, (e) => {
15508                e.preventDefault();
15509                if (!carousel._carouselScroll.isScrolling) {
15510                    carousel.goToPreviousSlide();
15511                }
15512            });
15513        }
15514        if (carousel._nextButtonThumbsMobile) {
15515            carousel._nextButtonThumbsMobile.setAttribute("data-dotagging-affiliation", window.DlronGlobal_DealerName);
15516            carousel._nextButtonThumbsMobile.addEventListener(clickEvent, (e) => {
15517                e.preventDefault();
15518                if (!carousel._carouselScroll.isScrolling) {
15519                    carousel.goToNextSlide();
15520                }
15521            });
15522        }
15523        if (carousel._previousButtonThumbsDesktop) {
15524            carousel._previousButtonThumbsDesktop.setAttribute("data-dotagging-affiliation", window.DlronGlobal_DealerName);
15525            carousel._previousButtonThumbsDesktop.addEventListener(clickEvent, (e) => {
15526                e.preventDefault();
15527                if (!carousel._carouselScroll.isScrolling) {
15528                    carousel.goToPreviousSlide();
15529                }
15530            });
15531        }
15532        if (carousel._nextButtonThumbsDesktop) {
15533            carousel._nextButtonThumbsDesktop.setAttribute("data-dotagging-affiliation", window.DlronGlobal_DealerName);
15534            carousel._nextButtonThumbsDesktop.addEventListener(clickEvent, (e) => {
15535                e.preventDefault();
15536                if (!carousel._carouselScroll.isScrolling) {
15537                    carousel.goToNextSlide();
15538                }
15539            });
15540        }
15541        const containerElem = (_a = this.carouselParent.querySelector(`.${this._carouselItemContainer}`)) !== null && _a !== void 0 ? _a : null;
15542        if (containerElem) {
15543            const swipeObserver = new ResizeObserver((entries) => {
15544                for (let entry of entries) {
15545                    this._containerWidth = entry.contentRect.width;
15546                    this._scrollX = this._currentIndex * this._containerWidth;
15547                    entry.target.scrollTo({ left: this._scrollX, behavior: "smooth" });
15548                }
15549            });
15550            swipeObserver.observe(containerElem);
15551        }
15552        // We only want to throw events from IntersectionObserver if it is a result of 
15553        // a touch swipe
15554        this.carouselParent.querySelector(`.hero-carousel__items`).addEventListener("touchstart", (ev) => {
15555            this._touchSwipe = true;
15556        });
15557        //intersection observer to capture hero image scroll events to track
15558        //image counts and thumbnail hilighting on mobile
15559        let firstAfterPageLoad = true;
15560        this._heroIntersectionObserver = new IntersectionObserver((entries) => {
15561            entries.forEach((entry) => {
15562                //We check the window's width to make sure this is only used when in mobile view
15563                if (entry.isIntersecting && window.innerWidth < 992) {
15564                    // we don't want to send the event when the page loads on each first photo
15565                    if (firstAfterPageLoad) {
15566                        firstAfterPageLoad = false;
15567                    }
15568                    else {
15569                        this.scrollSlides(entry.target);
15570                    }
15571                    this._touchSwipe = false;
15572                }
15573            });
15574        }, {
15575            root: this.carouselParent.querySelector(`.${this.rootClassName} .hero-carousel__items`),
15576            threshold: 0.51,
15577        });
15578        this.observeHeroImageScrolling(true);
15579        // When clicking on a thumbnail, it scrolls the carousel to the image that
15580        // matches the thumbnail
15581        (_b = this._desktopThumbnails) === null || _b === void 0 ? void 0 : _b.forEach((element) => {
15582            if (this._desktopThumbsScrollable) {
15583                element.addEventListener(clickEvent, (e) => __awaiter(this, void 0, void 0, function* () {
15584                    e.preventDefault();
15585                    const selected = e.target.closest(".thumbnail");
15586                    this.selectThumbnail(selected);
15587                }));
15588            }
15589        });
15590        (_c = this._mobileThumbnails) === null || _c === void 0 ? void 0 : _c.forEach((element) => {
15591            if (this._mobileThumbsScrollable) {
15592                element.addEventListener(clickEvent, (e) => __awaiter(this, void 0, void 0, function* () {
15593                    e.preventDefault();
15594                    const selected = e.target.closest(".thumbnail");
15595                    this.selectThumbnail(selected);
15596                }));
15597            }
15598        });
15599    }
15600    observeHeroImageScrolling(observe) {
15601        this.carouselParent.querySelectorAll(`.${this.rootClassName} .hero-carousel__items .hero-carousel__item`).forEach((elem) => {
15602            if (observe) {
15603                this._heroIntersectionObserver.observe(elem);
15604            }
15605            else {
15606                this._heroIntersectionObserver.unobserve(elem);
15607            }
15608        });
15609    }
15610    removeSelectedClasses(thumbnail) {
15611        if (thumbnail) {
15612            thumbnail.classList.remove(...this._selectedThumbnailClasses);
15613        }
15614    }
15615    addSelectedClasses(thumbnail) {
15616        if (thumbnail) {
15617            thumbnail.classList.add(...this._selectedThumbnailClasses);
15618        }
15619    }
15620    goToPreviousSlide() {
15621        let slideIndex = this._currentIndex - 1;
15622        if (slideIndex === -1) {
15623            slideIndex = this._carouselImageCount - 1;
15624        }
15625        this.goToSlide(slideIndex, false);
15626    }
15627    goToNextSlide() {
15628        let slideIndex = this._currentIndex + 1;
15629        if (slideIndex === this._carouselImageCount) {
15630            slideIndex = 0;
15631        }
15632        this.goToSlide(slideIndex, false);
15633    }
15634    goToSlide(slideIndex, scrollEvent) {
15635        return __awaiter(this, void 0, void 0, function* () {
15636            if (this._mobileThumbsScrollable) {
15637                this.removeSelectedClasses(this._mobileThumbnails[this._currentIndex]);
15638            }
15639            if (this._desktopThumbsScrollable) {
15640                this.removeSelectedClasses(this._desktopThumbnails[this._currentIndex]);
15641            }
15642            if (this._dots.length > 0) {
15643                this.updateDots(this._currentIndex, slideIndex);
15644            }
15645            if (scrollEvent) {
15646                this.dispatchSwipeImageTagging(slideIndex);
15647            }
15648            this._currentIndex = slideIndex;
15649            //scroll the carousel hero image
15650            if (!scrollEvent) {
15651                yield this.scrollIntoView(this._items[this._currentIndex], this._carouselItemContainer, Direction.LeftRight);
15652            }
15653            //scroll thumbnails into view
15654            if (this._mobileThumbsScrollable) {
15655                const thumbnail = this._mobileThumbnails[this._currentIndex];
15656                this.addSelectedClasses(thumbnail);
15657                yield this.scrollIntoView(thumbnail, this._thumbnailMobileScrollableContainer, this._thumbnailMobileScrollDirection);
15658            }
15659            if (this._desktopThumbsScrollable) {
15660                const thumbnail = this._desktopThumbnails[this._currentIndex];
15661                this.addSelectedClasses(thumbnail);
15662                yield this.scrollIntoView(thumbnail, this._thumbnailDesktopScrollContainer, this._thumbnailDesktopScrollDirection);
15663            }
15664            this.toggleControls();
15665            if (this._dots.length === 0) {
15666                this.updateCounter();
15667            }
15668            //show/hide special items type, TPIs like spincar, videos, etc.
15669            this.renderCarouselContent();
15670        });
15671    }
15672    getCurrentItemElement() {
15673        return this._items[this._currentIndex];
15674    }
15675    getSelectedItemType() {
15676        const currentItem = this.getCurrentItemElement();
15677        if (!currentItem) {
15678            return CarouselItemType.image;
15679        }
15680        switch (currentItem.dataset.carouselContentType) {
15681            case "video":
15682                return CarouselItemType.video;
15683            case "360interior":
15684                return CarouselItemType.interior360;
15685            case "spincar":
15686                return CarouselItemType.spincar;
15687            default:
15688                return CarouselItemType.image;
15689        }
15690    }
15691    renderCarouselContent() {
15692        const selectedItemType = this.getSelectedItemType();
15693    }
15694    toggleControls() {
15695        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
15696        const isFirstSlide = this._currentIndex === 0;
15697        const isLastSlide = this._currentIndex === this._carouselImageCount - 1;
15698        (_a = this._previousButton) === null || _a === void 0 ? void 0 : _a.classList.remove(this._hiddenClass);
15699        (_b = this._nextButton) === null || _b === void 0 ? void 0 : _b.classList.remove(this._hiddenClass);
15700        if (this._previousButton) {
15701            this._previousButton.disabled = false;
15702        }
15703        if (this._nextButton) {
15704            this._nextButton.disabled = false;
15705        }
15706        (_c = this._previousButtonThumbsMobile) === null || _c === void 0 ? void 0 : _c.classList.remove(this._hiddenClass);
15707        (_d = this._nextButtonThumbsMobile) === null || _d === void 0 ? void 0 : _d.classList.remove(this._hiddenClass);
15708        (_e = this._nextButtonThumbsDesktop) === null || _e === void 0 ? void 0 : _e.classList.remove(this._hiddenClass);
15709        (_f = this._previousButtonThumbsDesktop) === null || _f === void 0 ? void 0 : _f.classList.remove(this._hiddenClass);
15710        if (isFirstSlide) {
15711            (_g = this._previousButton) === null || _g === void 0 ? void 0 : _g.classList.add(this._hiddenClass);
15712            if (this._previousButton) {
15713                this._previousButton.disabled = true;
15714            }
15715            (_h = this._previousButtonThumbsDesktop) === null || _h === void 0 ? void 0 : _h.classList.add(this._hiddenClass);
15716            (_j = this._previousButtonThumbsMobile) === null || _j === void 0 ? void 0 : _j.classList.add(this._hiddenClass);
15717        }
15718        if (isLastSlide) {
15719            (_k = this._nextButton) === null || _k === void 0 ? void 0 : _k.classList.add(this._hiddenClass);
15720            if (this._nextButton) {
15721                this._nextButton.disabled = true;
15722            }
15723            (_l = this._nextButtonThumbsMobile) === null || _l === void 0 ? void 0 : _l.classList.add(this._hiddenClass);
15724            (_m = this._nextButtonThumbsDesktop) === null || _m === void 0 ? void 0 : _m.classList.add(this._hiddenClass);
15725        }
15726    }
15727    updateDots(currentIndex, nextIndex) {
15728        const dot = this._dots[currentIndex];
15729        dot === null || dot === void 0 ? void 0 : dot.classList.remove("active");
15730        const nextDot = this._dots[nextIndex];
15731        nextDot === null || nextDot === void 0 ? void 0 : nextDot.classList.add("active");
15732    }
15733    updateCounter() {
15734        var _a, _b;
15735        const totalImageCountRaw = (_b = (_a = this._counterBadgeElement) === null || _a === void 0 ? void 0 : _a.dataset) === null || _b === void 0 ? void 0 : _b.imageCount;
15736        let totalImageCount = 0;
15737        let newIndex = this._currentIndex;
15738        if (totalImageCountRaw != null) {
15739            totalImageCount = parseInt(totalImageCountRaw);
15740        }
15741        /* +1 to account for 0-based index */
15742        if (!isNaN(totalImageCount)
15743            && totalImageCount > 0
15744            && this._currentIndex + 1 > totalImageCount) {
15745            newIndex = this._currentIndex - 1;
15746        }
15747        /* +1 to account for 0-based index */
15748        this._counter.innerHTML = (newIndex + 1).toString();
15749    }
15750    scrollIntoView(elem, containerSelector, scrollDirection) {
15751        return __awaiter(this, void 0, void 0, function* () {
15752            //NOTE: scrollIntoView() does not play well when scrolling multiple elements simultaneously
15753            //      so we have opted to leverage scrollTo which does allow this
15754            //      Additionally, scrollable items that are hidden will have a getBoundingClientRect() of 0.
15755            //      So, after scrolling the carousel in desktop view switching to mobile view will not show
15756            //      the highlighted thumbnail because we could not scroll it into view since it was hidden
15757            if (!elem) {
15758                return;
15759            }
15760            let containerElem = this.carouselParent.querySelector(`.${containerSelector}`);
15761            if (!containerElem) {
15762                return;
15763            }
15764            let position;
15765            if (scrollDirection === Direction.LeftRight) {
15766                yield (0,_utilities_performanceHelpers__WEBPACK_IMPORTED_MODULE_0__/* .doBeforeNextRepaint */ .L
15766)(() => {
15767                    position = elem.offsetLeft - (containerElem.getBoundingClientRect().width - elem.getBoundingClientRect().width) / 2;
15768                });
15769                containerElem.scrollTo({ left: position, behavior: "smooth" });
15770            }
15771            else {
15772                yield (0,_utilities_performanceHelpers__WEBPACK_IMPORTED_MODULE_0__/* .doBeforeNextRepaint */ .L)(() => {
15773                    position = elem.offsetTop - (containerElem.getBoundingClientRect().height - elem.getBoundingClientRect().height) / 2;
15774                });
15775                containerElem.scrollTo({ top: position, behavior: "smooth" });
15776            }
15777        });
15778    }
15779    scrollToItem(item) {
15780        var _a, _b;
15781        const elem = item;
15782        const index = (_b = parseInt((_a = elem === null || elem === void 0 ? void 0 : elem.dataset) === null || _a === void 0 ? void 0 : _a.imageNum)) !== null && _b !== void 0 ? _b : 0;
15783        this.goToSlide(index - 1, false);
15784    }
15785    dispatchSwipeImageTagging(slideIndex) {
15786        let eventAction;
15787        let eventActionResult;
15788        if (this._currentIndex < slideIndex) {
15789            eventAction = "swipe_left";
15790            eventActionResult = "increase";
15791        }
15792        else if (this._currentIndex > slideIndex) {
15793            eventAction = "swipe_right";
15794            eventActionResult = "decrease";
15795        }
15796        else {
15797            return;
15798        }
15799        const taggingVehicleDetailsElement = this._carouselElement.closest("[data-vehicle-information]");
15800        const imageLinkElement = taggingVehicleDetailsElement.querySelector(`[tabindex] a`);
15801        if (taggingVehicleDetailsElement && imageLinkElement) {
15802            const elementDataset = taggingVehicleDetailsElement.dataset;
15803            const SwipeEventData = {
15804                affiliation: `${elementDataset.dotaggingAffiliation || ""}`,
15805                card_name: `${elementDataset.dotaggingCardName || ""}`,
15806                context: `${elementDataset.dotaggingContext || ""}`,
15807                department: `${elementDataset.dotaggingDepartment || ""}`,
15808                element_color: `${elementDataset.dotaggingElementColor || ""}`,
15809                element_order: `${slideIndex + 1}`,
15810                element_position: `${elementDataset.dotaggingElementPosition || ""}`,
15811                element_subtype: "image",
15812                element_text: `${elementDataset.dotaggingElementText || ""}`,
15813                element_title: `${elementDataset.dotaggingElementTitle || ""}`,
15814                element_type: `${elementDataset.dotaggingElementType || ""}`,
15815                event: "media_interaction",
15816                event_action: `${eventAction}`,
15817                event_action_result: `${eventActionResult}`,
15818                event_location: `${elementDataset.dotaggingEventLocation || ""}`,
15819                event_owner: `${imageLinkElement.dataset.dotaggingEventOwner || ""}`,
15820                flow_name: `${elementDataset.dotaggingFlowName || ""}`,
15821                flow_outcome: `${elementDataset.dotaggingFlowOutcome || ""}`,
15822                flow_stage: `${elementDataset.dotaggingFlowStage || ""}`,
15823                item_category: `${elementDataset.dotaggingItemCategory || ""}`,
15824                item_color: `${elementDataset.dotaggingItemColor || ""}`,
15825                item_condition: `${elementDataset.dotaggingItemCondition || ""}`,
15826                item_fuel_type: `${elementDataset.dotaggingItemFuelType || ""}`,
15827                item_id: `${elementDataset.dotaggingItemId || ""}`,
15828                item_make: `${elementDataset.dotaggingItemMake || ""}`,
15829                item_model: `${elementDataset.dotaggingItemModel || ""}`,
15830                item_number: `${elementDataset.dotaggingItemNumber || ""}`,
15831                item_order: `${elementDataset.dotaggingItemOrder || ""}`,
15832                item_price: `${elementDataset.dotaggingPrice || ""}`,
15833                item_type: `${elementDataset.dotaggingItemType || ""}`,
15834                item_variant: `${elementDataset.dotaggingItemVariant || ""}`,
15835                item_year: `${elementDataset.dotaggingItemYear || ""}`,
15836                link_url: `${imageLinkElement.getAttribute("href") || ""}`,
15837                media_type: "gallery",
15838                product_name: "SRP 2.0|Vehicle Item Details",
15839            };
15840            this._carouselElement.dispatchEvent(new CustomEvent("dotagging.event", {
15841                bubbles: true,
15842                detail: {
15843                    data: SwipeEventData
15844                }
15845            }));
15846        }
15847    }
15848}
15849
15850
15851/***/ }),
15852
15853/***/ 4693:
15854/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
15855
15856// style-loader: Adds some css to the DOM by adding a <style> tag
15857
15858// load the styles
15859var content = __webpack_require__(2966);
15860if(content.__esModule) content = content.default;
15861if(typeof content === 'string') content = [[module.id, content, '']];
15862if(content.locals) module.exports = content.locals;
15863// add the styles to the DOM
15864var add = (__webpack_require__(8449)/* ["default"] */ .A)
15865var update = add("0094c034", content, false, {});
15866// Hot Module Replacement
15867if(false) {}
15868
15869/***/ }),
15870
15871/***/ 4725:
15872/***/ ((__unused_webpack_module, exports) => {
15873
15874"use strict";
15875
15876
15877Object.defineProperty(exports, "__esModule", ({
15878  value: true
15879}));
15880exports.POST_CONSTRUCT = exports.DESIGN_PARAM_TYPES = exports.PARAM_TYPES = exports.TAGGED_PROP = exports.TAGGED = exports.MULTI_INJECT_TAG = exports.INJECT_TAG = exports.OPTIONAL_TAG = exports.UNMANAGED_TAG = exports.NAME_TAG = exports.NAMED_TAG = void 0;
15881exports.NAMED_TAG = "named";
15882exports.NAME_TAG = "name";
15883exports.UNMANAGED_TAG = "unmanaged";
15884exports.OPTIONAL_TAG = "optional";
15885exports.INJECT_TAG = "inject";
15886exports.MULTI_INJECT_TAG = "multi_inject";
15887exports.TAGGED = "inversify:tagged";
15888exports.TAGGED_PROP = "inversify:tagged_props";
15889exports.PARAM_TYPES = "inversify:paramtypes";
15890exports.DESIGN_PARAM_TYPES = "design:paramtypes";
15891exports.POST_CONSTRUCT = "post_construct";
15892
15893/***/ }),
15894
15895/***/ 4984:
15896/***/ ((__unused_webpack_module, exports) => {
15897
15898"use strict";
15899
15900
15901Object.defineProperty(exports, "__esModule", ({
15902  value: true
15903}));
15904exports.multiBindToService = void 0;
15905exports.multiBindToService = function (container) {
15906  return function (service) {
15907    return function () {
15908      var types = [];
15909      for (var _i = 0; _i < arguments.length; _i++) {
15910        types[_i] = arguments[_i];
15911      }
15912      return types.forEach(function (t) {
15913        return container.bind(t).toService(service);
15914      });
15915    };
15916  };
15917};
15918
15919/***/ }),
15920
15921/***/ 4999:
15922/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
15923
15924"use strict";
15925
15926// EXPORTS
15927__webpack_require__.d(__webpack_exports__, {
15928  H: () => (/* binding */ ShareVehicleModal)
15929});
15930
15931;// ./src/components/smsForm/smsForm.ts
15932var SpecialType;
15933(function (SpecialType) {
15934    SpecialType[SpecialType["new"] = 1] = "new";
15935    SpecialType[SpecialType["cpo"] = 2] = "cpo";
15936    SpecialType[SpecialType["used"] = 3] = "used";
15937    SpecialType[SpecialType["serviceAndParts"] = 4] = "serviceAndParts";
15938    SpecialType[SpecialType["general"] = 5] = "general";
15939    SpecialType[SpecialType["symphony"] = 7] = "symphony";
15940    SpecialType[SpecialType["default"] = 0] = "default";
15941})(SpecialType || (SpecialType = {}));
15942class SmsForm {
15943    get isVehicleBasedLead() {
15944        return this._isVehicleBasedLead;
15945    }
15946    set smsComponentSuccessCallback(callback) {
15947        this._smsComponentSuccessCallback = callback;
15948    }
15949    set smsComponentErrorCallback(callback) {
15950        this._smsComponentErrorCallback = callback;
15951    }
15952    constructor(data) {
15953        this._isMobile = false;
15954        this._isVehicleBasedLead = false;
15955        this.clearLeadData = (leadDataElements) => {
15956            leadDataElements.forEach(dataElement => {
15957                dataElement.value = "";
15958            });
15959            if (this._leadData.isVehicleBasedLead) {
15960                if (this._leadVinElement) {
15961                    this._leadVinElement.value = "";
15962                }
15963                if (this._altIdElement) {
15964                    this._altIdElement.value = "";
15965                }
15966            }
15967        };
15968        this.specialTypeToLeadSource = () => {
15969            const leadData = this._leadData;
15970            const isMobile = this._isMobile;
15971            const specialType = this.getInputElementValue(this._specialTypeElement);
15972            switch (parseInt(specialType)) {
15973                case SpecialType.new:
15974                    return (isMobile) ? leadData.leadSources.OfferMobileNew : leadData.leadSources.OfferDesktopNew;
15975                case SpecialType.symphony:
15976                    return (isMobile) ? leadData.leadSources.SymphonyOfferMobile : leadData.leadSources.SymphonyOfferDesktop;
15977                case SpecialType.cpo:
15978                    return (isMobile) ? leadData.leadSources.OfferMobileCertifiedPreOwned : leadData.leadSources.OfferDesktopCertifiedPreOwned;
15979                case SpecialType.used:
15980                    return (isMobile) ? leadData.leadSources.OfferMobileUsed 
15980: leadData.leadSources.OfferDesktopUsed;
15981                case SpecialType.serviceAndParts:
15982                    return (isMobile) ? leadData.leadSources.OfferMobileServiceAndParts : leadData.leadSources.OfferDesktopServiceAndParts;
15983                case SpecialType.general:
15984                    return (isMobile) ? leadData.leadSources.OfferMobileGeneral : leadData.leadSources.OfferDesktopGeneral;
15985                default: return SpecialType.default;
15986            }
15987        };
15988        this.specialTypeToLeadType = () => {
15989            const leadData = this._leadData;
15990            const specialType = this.getInputElementValue(this._specialTypeElement);
15991            switch (parseInt(specialType)) {
15992                case SpecialType.new:
15993                case SpecialType.symphony:
15994                    return leadData.leadTypes.NewCar;
15995                case SpecialType.cpo:
15996                case SpecialType.used:
15997                    return leadData.leadTypes.UsedCar;
15998                case SpecialType.serviceAndParts:
15999                    return leadData.leadTypes.Service;
16000                case SpecialType.general:
16001                    return leadData.leadTypes.GeneralContact;
16002                default: return SpecialType.default;
16003            }
16004        };
16005        this._smsLeadDataElementId = data.smsLeadDataElementId;
16006        this._smsComponentElementId = data.smsComponentElementId;
16007        this._smsComponentLeadDataFormId = data.smsComponentLeadDataFormId;
16008        this._smsLeadFormSubmitFunctionName = data.smsLeadFormSubmitFunctionName;
16009        this._smsComponentButtonElement = data.smsComponentButtonElement;
16010        this._trackingEventCategory_smsSubmitButtonClick = data.trackingEventCategory_smsSubmitButtonClick;
16011        this._trackingEventCategory_smsComponentButtonClick = data.trackingEventCategory_smsComponentButtonClick;
16012        this._trackingEventCategory_smsLeadExists = data.rackingEventCategory_smsLeadExists;
16013        this._leadDataElements = data.leadDataElements;
16014        this.getLeadElements();
16015        this.initialize();
16016    }
16017    initialize() {
16018        const failureErrorMsg = this.getLeadData();
16019        if (failureErrorMsg.length > 0) {
16020            console.error(failureErrorMsg);
16021        }
16022        this._isVehicleBasedLead = this._leadData.isVehicleBasedLead;
16023        this._isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
16024        this._lead = (this._isMobile) ? this._leadData.mobile : this._leadData.desktop;
16025        // Make local references to class variables to avoid issues with 'this' in callbacks
16026        const leadData = this._leadData;
16027        const lead = this._lead;
16028        this.initializeDealeronLead(lead, leadData);
16029        this.initializeSmsComponentButton(leadData);
16030    }
16031    getLeadElements() {
16032        this._leadPhoneElement = this.getElementByIdHelper("smslead_phone");
16033        this._leadVinElement = this.getElementByIdHelper("smslead_vin");
16034        this._altIdElement = this.getElementByIdHelper("smslead_altid");
16035        this._specialTypeElement = this.getElementByIdHelper("smslead_specialType");
16036        this._vehicleIdElement = this.getElementByIdHelper("smslead_vehicleid");
16037        this._couponElement = this.getElementByIdHelper("smslead_coupon");
16038        this._commentAdditionElement = this.getElementByIdHelper("smslead_commentAddition");
16039        this._vehicleNameElement = this.getElementByIdHelper("smslead_vehicleName");
16040        this._specialDetailsUriElement = this.getElementByIdHelper("smslead_specialDetailsUri");
16041    }
16042    getElementByIdHelper(elementId) {
16043        return document.querySelector(`#${this._smsComponentElementId} #${elementId}`);
16044    }
16045    getLeadData() {
16046        const leadDataScript = document.getElementById(this._smsLeadDataElementId);
16047        let errorMsg = "";
16048        if (leadDataScript) {
16049            try {
16050                const scriptText = leadDataScript.text;
16051                this._leadData = JSON.parse(scriptText);
16052            }
16053            catch (err) {
16054                errorMsg = "Error parsing lead data JSON for smsForm.js- failed to initialize smsFormComponent.";
16055            }
16056        }
16057        else {
16058            errorMsg = `#${this._smsLeadDataElementId} does not exist - failed to initialize smsFormComponent.`;
16059        }
16060        return errorMsg;
16061    }
16062    initializeDealeronLead(lead, leadData) {
16063        var _a;
16064        const submitOptions = this.getSubmitOptions(lead, leadData);
16065        window.DealeronLead.addSubmissionMethod(this._smsLeadFormSubmitFunctionName, submitOptions);
16066        window.DealeronLead.initialize(`#${this._smsComponentElementId} #${this._smsComponentLeadDataFormId}`, this._smsLeadFormSubmitFunctionName);
16067        (_a = this._leadPhoneElement) === null || _a === void 0 ? void 0 : _a.addEventListener("focus", function () {
16068            window.DealeronLead.begin();
16069            const leadSourceName = lead.id;
16070            window.trackerHook({ trackId: leadSourceName });
16071        });
16072    }
16073    getSubmitOptions(lead, leadData) {
16074        let phoneNum;
16075        const clearLeadData = this.clearLeadData;
16076        return {
16077            leadSource: (leadData.isDqlSpecialBasedLead) ? this.specialTypeToLeadSource : lead.id,
16078            leadType: (leadData.isDqlSpecialBasedLead) ? this.specialTypeToLeadType : leadData.leadType,
16079            additionalData: this.getAdditionalData(phoneNum),
16080            successCallback: this.smsSubmitSuccessCallback(phoneNum, lead, clearLeadData),
16081            errorCallback: this.smsSubmitErrorCallback(),
16082            endpoint: "/api/lead/sms/#TOKEN#"
16083        };
16084    }
16085    getAdditionalData(phoneNum) {
16086        return () => {
16087            var _a, _b;
16088            let vin = "";
16089            let altId = "";
16090            let vehicleId = "";
16091            if (this._leadData.isVehicleBasedLead) {
16092                vin = this.getInputElementValue(this._leadVinElement);
16093                altId = this.getInputElementValue(this._altIdElement);
16094                vehicleId = this.getInputElementValue(this._vehicleIdElement);
16095            }
16096            let comments = "";
16097            for (let id in this._leadData.additionalFields) {
16098                const comment = this.getInputElementValue(document.querySelector(`#${this._smsComponentElementId} #smslead_${id}`));
16099                comments += `${this._leadData.additionalFields[id]}: ${comment}; `;
16100            }
16101            if (this._leadData.isCouponBasedLead) {
16102                const coupon = this.getInputElementValue(this._couponElement);
16103                comments += `Coupon: ${coupon}; `;
16104            }
16105            if (this._leadData.isDqlSpecialBasedLead) {
16106                const commentAddition = this.getInputElementValue(this._commentAdditionElement);
16107                comments += `${commentAddition}, SMS: yes, URL: ${window.location.href}; `;
16108            }
16109            const optOut = document.querySelector(`#${this._smsComponentElementId} #${this._smsComponentLeadDataFormId}#optOut`);
16110            if (optOut) {
16111                comments += `Do Not Sell Personal Info: ${optOut.checked}`;
16112            }
16113            const specialDetailsUri = (_b = (_a = this._specialDetailsUriElement) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : window.location.href;
16114            let pathName = (this._leadData.isDqlSpecialBasedLead) ? specialDetailsUri : window.location.href;
16115            pathName = pathName.replace(/\#/gi, "");
16116            phoneNum = window.dataList["Phone"].replace(/\D/gi, "");
16117            return {
16118                Vin: vin,
16119                AltDealerId: altId,
16120                VehicleId: vehicleId,
16121                MessageLink: pathName,
16122                Comments: comments
16123            };
16124        };
16125    }
16126    smsSubmitSuccessCallback(phoneNum, lead, clearLeadData) {
16127        return (data) => {
16128            const vehicleName = this.getInputElementValue(this._vehicleNameElement);
16129            const vin = this.getInputElementValue(this._leadVinElement);
16130            const leadSourceName = lead.id;
16131            clearLeadData(this._leadDataElements);
16132            let response;
16133            try {
16134                response = JSON.parse(data);
16135            }
16136            catch (err) {
16137                response = { leadId: "-1", leadSource: "" };
16138            }
16139            window.ResetTracker();
16140            window.trackerHook({ trackId: leadSourceName, actionType: "click" });
16141            if (parseInt(response.leadId, 10) != -1) {
16142                let eventValue = "";
16143            }
16144            else {
16145                window.DealeronLead.token.value = null;
16146            }
16147            this._smsComponentSuccessCallback();
16148        };
16149    }
16150    smsSubmitErrorCallback() {
16151        return () => {
16152            this._smsComponentErrorCallback();
16153        };
16154    }
16155    initializeSmsComponentButton(leadData) {
16156        const _this = this;
16157        const lead = this._lead;
16158        const buttonElements = document.querySelectorAll(`[data-type="${this._smsComponentButtonElement}"]`);
16159        buttonElements.forEach(function (buttonElement) {
16160            buttonElement.addEventListener("click", function (e) {
16161                e.preventDefault();
16162                const vehicleName = buttonElement.dataset.vehicleName;
16163                _this.setValuesOnSmsComponent(buttonElement, leadData, vehicleName);
16164            });
16165        });
16166    }
16167    setValuesOnSmsComponent(buttonElement, leadData, vehicleName) {
16168        var _a, _b, _c, _d, _e, _f, _g;
16169        if (leadData.isVehicleBasedLead) {
16170            const vin = (_a = buttonElement.dataset.vin) !== null && _a !== void 0 ? _a : "";
16171            const altId = (_b = buttonElement.dataset.altid) !== null && _b !== void 0 ? _b : "";
16172            const vehicleId = (_c = buttonElement.dataset.vehicleId) !== null && _c !== void 0 ? _c : "";
16173            // hidden elements
16174            if (this._leadVinElement) {
16175                this._leadVinElement.value = vin;
16176            }
16177            if (this._altIdElement) {
16178                this._altIdElement.value = altId;
16179            }
16180            if (this._vehicleIdElement) {
16181                this._vehicleIdElement.value = vehicleId;
16182            }
16183            if (this._vehicleNameElement) {
16184                this._vehicleNameElement.value = vehicleName;
16185            }
16186        }
16187        else if (leadData.isCouponBasedLead) {
16188            const coupon = (_d = buttonElement.dataset.coupon) !== null && _d !== void 0 ? _d : "";
16189            if (this._couponElement) {
16190                this._couponElement.value = coupon;
16191            }
16192        }
16193        else if (leadData.isDqlSpecialBasedLead) {
16194            const specialType = (_e = buttonElement.dataset.dataSpecialType) !== null && _e !== void 0 ? _e : "";
16195            const commentAddition = (_f = buttonElement.dataset.dataCommentAddition) !== null && _f !== void 0 ? _f : "";
16196            const specialDetailsUri = (_g = buttonElement.dataset.dataSpecialDetailsUri) !== null && _g !== void 0 ? _g : "";
16197            if (this._specialTypeElement) {
16198                this._specialTypeElement.value = specialType;
16199            }
16200            if (this._commentAdditionElement) {
16201                this._commentAdditionElement.value = commentAddition;
16202            }
16203            if (this._specialDetailsUriElement) {
16204                this._specialDetailsUriElement.value = specialDetailsUri;
16205            }
16206        }
16207    }
16208    getInputElementValue(element) {
16209        var _a;
16210        return (_a = element === null || element === void 0 ? void 0 : element.value) !== null && _a !== void 0 ? _a : "";
16211    }
16212}
16213
16214// EXTERNAL MODULE: ./src/services/toggles/toggleService.ts + 1 modules
16215var toggleService = __webpack_require__(7363);
16216// EXTERNAL MODULE: ./src/services/toggles/iToggleService.ts
16217var iToggleService = __webpack_require__(4478);
16218// EXTERNAL MODULE: ./node_modules/inversify/lib/inversify.js
16219var inversify = __webpack_require__(260);
16220// EXTERNAL MODULE: ./src/types/types.ts
16221var types = __webpack_require__(5644);
16222;// ./src/components/shareVehicleModal/shareVehicleModal.ts
16223var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16224    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16225    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16226    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16227    return c > 3 && r && Object.defineProperty(target, key, r), r;
16228};
16229var __metadata = (undefined && undefined.__metadata) || function (k, v) {
16230    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16231};
16232var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
16233    return function (target, key) { decorator(target, key, paramIndex); }
16234};
16235var _a;
16236// @ts-nocheck
16237
16238
16239
16240
16241
16242let ShareVehicleModal = class ShareVehicleModal {
16243    constructor(toggleService) {
16244        this.referenceErrorMsg = "element does not exist - failed to initialize Share Vehicle modal.";
16245        this.COPY_BUTTON_TOGGLE_CLASS = "share-vehicle__button--copied";
16246        this._toggleService = toggleService;
16247    }
16248    initialize() {
16249        if (!this.modalExists()) {
16250            throw new ReferenceError(`${this._shareVehicleModalElementId} ${this.referenceErrorMsg}`);
16251        }
16252        this.emailRefactorToggleStatus = this._toggleService.getToggleStatus(toggleService/* Toggle */.lM.EmailRefactor);
16253        this.initializePrivateVariables();
16254        this.initializeModal();
16255    }
16256    initializePrivateVariables() {
16257        this._submitButtonId = "shareVehicleLeadSubmit";
16258        this._additionalLeadDataBlockId = "shareVehicleLeadExpanded";
16259        this._shareVehicleBtnElement = "share-vehicle-button";
16260        this._leadDataElements = document.querySelectorAll(`
16261      #${this._shareVehicleModalElementId} #smslead_phone,
16262      #${this._additionalLeadDataBlockId} input,
16263      #${this._additionalLeadDataBlockId} select`);
16264        this._smsForm = new SmsForm(this.getSmsFormParamObject());
16265        this._smsForm.smsComponentSuccessCallback = this.smsSubmitSuccessCallback(this._submitButtonId, this._shareVehicleModalElementId);
16266        this._smsForm.smsComponentErrorCallback = this.smsSubmitErrorCallback(this._submitButtonId);
16267        this._emailAFriendForm = this._modal.querySelector("form#emailFriendForm");
16268    }
16269    modalExists() {
16270        this._shareVehicleModalElementId = "shareVehicleModal";
16271        this._modal = document.getElementById(this._shareVehicleModalElementId);
16272        return this._modal !== null;
16273    }
16274    initializeEmailAFriend() {
16275        if (!this._emailAFriendForm) {
16276            return;
16277        }
16278        let endpoint = "";
16279        let additionalData = null;
16280        if (this._isCompareModal) {
16281            endpoint = `/api/vhcliaa/email-vehicle-compare/${window.DlronGlobal_DealerId}`;
16282            additionalData = (form) => {
16283                const optOutCheckbox = form.querySelector("#optOut");
16284                const optedOut = optOutCheckbox && optOutCheckbox.checked;
16285                const friendsName = form.querySelector("#emailFriend_friendName").value;
16286                const friendsEmail = form.querySelector("#emailFriend_friendEmail").value;
16287                const comments = form.querySelector("#emailFriend_Comments").value;
16288                const firstName = form.querySelector("#emailFriend_yourName").value;
16289                const email = form.querySelector("#emailFriend_yourEmail").value;
16290                const sendCopy = form.querySelector("#sendCopy").checked;
16291                const link = form.querySelector("#emailFriend_Url").value;
16292                return {
16293                    Comments: optedOut ? `${comments}, Do Not Sell Personal Info: true` : comments,
16294                    FriendsName: friendsName,
16295                    FriendsEmail: friendsEmail,
16296                    FirstName: firstName,
16297                    Email: email,
16298                    SendCopy: sendCopy,
16299                    Link: link
16300                };
16301            };
16302        }
16303        else if (this.emailRefactorToggleStatus) {
16304            endpoint = `/api/vhcliaa/email-a-friend/${window.DlronGlobal_DealerId}`;
16305            additionalData = (form) => {
16306                const optOutCheckbox = form.querySelector("#optOut");
16307                const optedOut = optOutCheckbox && optOutCheckbox.checked;
16308                const friendsName = form.querySelector("#emailFriend_friendName").value;
16309                const friendsEmail = form.querySelector("#emailFriend_friendEmail").value;
16310                const comments = form.querySelector("#emailFriend_Comments").value;
16311                const firstName = form.querySelector("#emailFriend_yourName").value;
16312                const email = form.querySelector("#emailFriend_yourEmail").value;
16313                const sendCopy = form.querySelector("#sendCopy").checked;
16314                return {
16315                    VehicleId: form.dataset.vehicleId,
16316                    Vin: form.dataset.vin,
16317                    Comments: optedOut ? `${comments}, Do Not Sell Personal Info: true` : comments,
16318                    FriendsName: friendsName,
16319                    FriendsEmail: friendsEmail,
16320                    FirstName: firstName,
16321                    Email: email,
16322                    SendCopy: sendCopy
16323                };
16324            };
16325        }
16326        else {
16327            endpoint = "/api/lead/emailFriend/#TOKEN#";
16328            additionalData = (form) => {
16329                const optOutCheckbox = form.querySelector("#optOut");
16330                const optedOut = optOutCheckbox && optOutCheckbox.checked;
16331                const comment = form.querySelector("#emailFriend_Comments").value;
16332                return {
16333                    VehicleId: form.dataset.vehicleId,
16334                    Vin: form.dataset.vin,
16335                    Comments: optedOut ? `${comment}, Do Not Sell Personal Info: true` : comment
16336                };
16337            };
16338        }
16339        const submitOptions = {
16340            submitCoreValues: false,
16341            endpoint: endpoint,
16342            successCallback: () => {
16343                window.jQuery(this._modal).modal("hide");
16344            },
16345            additionalData: additionalData
16346        };
16347        window.DealeronLead.addSubmissionMethod("emailFriendSubmitOptions", submitOptions);
16348        window.DealeronLead.initialize(this._emailAFriendForm, "emailFriendSubmitOptions");
16349        const friendEmailField = this._emailAFriendForm.querySelector("#emailFriend_friendEmail");
16350        if (friendEmailField) {
16351            friendEmailField.addEventListener("focusout", window.DealeronLead.begin);
16352        }
16353    }
16354    getSmsFormParamObject() {
16355        return {
16356            smsLeadDataElementId: "shareVehicleLeadData",
16357            smsComponentElementId: this._shareVehicleModalElementId,
16358            smsComponentLeadDataFormId: "shareVehicleLeadForm",
16359            smsLeadFormSubmitFunctionName: "smsShareVehicleModalSubmit",
16360            smsComponentButtonElement: this._shareVehicleBtnElement,
16361            trackingEventCategory_smsSubmitButtonClick: "Share-Vehicle-Modal-Submit",
16362            rackingEventCategory_smsLeadExists: "Share-Vehicle-Modal-Lead",
16363            trackingEventCategory_smsComponentButtonClick: "Share-Vehicle-Button",
16364            leadDataElements: this._leadDataElements
16365        };
16366    }
16367    initializeModal() {
16368        var _a;
16369        jQuery(`#${this._shareVehicleModalElementId}`).on("show.bs.modal", (event) => {
16370            var _a;
16371            const shareVehicleButtonElement = event.relatedTarget;
16372            const vin = shareVehicleButtonElement.dataset.vin;
16373            const vehicleId = shareVehicleButtonElement.dataset.vehicleId;
16374            if (this._emailAFriendForm) {
16375                this._emailAFriendForm.dataset.vin = vin;
16376                this._emailAFriendForm.dataset.vehicleId = vehicleId;
16377            }
16378            const vehicleName = (_a = shareVehicleButtonElement.dataset.vehicleName) !== null && _a !== void 0 ? _a : "";
16379            this.updateModalTitle(vehicleName);
16380            this.updateHTMLValueHelper("shareVehicleModalTitleVehicleName", vehicleName, "textContent");
16381            if (document.querySelector(".vehicle-compare-container")) {
16382                this.toggleTextOptions(false);
16383                this._isCompareModal = true;
16384            }
16385            this.initializeEmailAFriend();
16386        });
16387        jQuery(`#${this._shareVehicleModalElementId}`).on("hide.bs.modal", (event) => {
16388            if (document.querySelector(".vehicle-compare-container")) {
16389                this.toggleTextOptions(true);
16390            }
16391            this._isCompareModal = false;
16392            this.clearForms();
16393        });
16394        (_a = document.getElementById("shareVehicleLeadPortion")) === null || _a === void 0 ? void 0 : _a.addEventListener("change", (event) => {
16395            this.toggleLeadExpansion(event);
16396        });
16397    }
16398    toggleLeadExpansion(event) {
16399        const target = event.target;
16400        if (target.checked) {
16401            jQuery(`#${this._additionalLeadDataBlockId}`).slideDown();
16402        }
16403        else {
16404            jQuery(`#${this._additionalLeadDataBlockId}`).slideUp();
16405        }
16406    }
16407    smsSubmitSuccessCallback(submitButtonId, shareVehicleModalElementId) {
16408        return () => {
16409            var _a;
16410            (_a = document.getElementById(submitButtonId)) === null || _a === void 0 ? void 0 : _a.removeAttribute("disabled");
16411            jQuery(`#${shareVehicleModalElementId}`).modal("hide");
16412        };
16413    }
16414    smsSubmitErrorCallback(submitButtonId) {
16415        return () => {
16416            var _a;
16417            alert("An error occurred sending the message. Please try again.");
16418            (_a = document.getElementById(submitButtonId)) === null || _a === void 0 ? void 0 : _a.removeAttribute("disabled");
16419        };
16420    }
16421    updateModalTitle(vehicleName) {
16422        if (this._smsForm.isVehicleBasedLead) {
16423            const formTitleNameElement = document.querySelector(`#${this._shareVehicleModalElementId} #shareVehicleModalTitleVehicleName`);
16424            if (formTitleNameElement) {
16425                formTitleNameElement.innerHTML = vehicleName;
16426            }
16427        }
16428    }
16429    updateHTMLValueHelper(elementId, htmlContent, valueKey) {
16430        const updateElement = document.getElementById(elementId);
16431        if (updateElement) {
16432            updateElement[valueKey] = htmlContent;
16433        }
16434    }
16435    // Added as part of DO-25632
16436    toggleTextOptions(showTextOptions) {
16437        let textForm = document.querySelector(".share-panel--text-me");
16438        if (textForm) {
16439            let modal = document.querySelector(`#${this._shareVehicleModalElementId}`);
16440            let body = document.querySelector(".share-vehicle__body");
16441            let panels = document.querySelector(".share-vehicle__panels");
16442            let accordionToggles = document.querySelectorAll(".share-panel__toggle");
16443            let emailContent = document.querySelector("#emailFriendContent");
16444            let panelLabels = document.querySelectorAll(".panel-label");
16445            // show text form
16446            if (showTextOptions) {
16447                modal.classList.remove("share-vehicle--1-forms");
16448                modal.classList.add("share-vehicle--2-forms");
16449                body.classList.remove("share-vehicle__body--single-panel");
16450                panels.classList.remove("share-vehicle__panels--single-panel");
16451                textForm.classList.remove("hide-text-me-panel");
16452                accordionToggles.forEach((item) => {
16453                    item.classList.remove("hide-text-me-panel");
16454                });
16455                emailContent.classList.add("collapse");
16456                panelLabels.forEach((item) => {
16457                    item.classList.remove("hidden");
16458                });
16459            }
16460            // hide text form
16461            else {
16462                modal.classList.remove("share-vehicle--2-forms");
16463                modal.classList.add("share-vehicle--1-forms");
16464                body.classList.add("share-vehicle__body--single-panel");
16465                panels.classList.add("share-vehicle__panels--single-panel");
16466                textForm.classList.add("hide-text-me-panel");
16467                accordionToggles.forEach((item) => {
16468                    item.classList.add("hide-text-me-panel");
16469                });
16470                emailContent.classList.remove("collapse");
16471                panelLabels.forEach((item) => {
16472                    item.classList.add("hidden");
16473                });
16474            }
16475        }
16476    }
16477    clearForms() {
16478        let modalElem = document.querySelector(`#${this._shareVehicleModalElementId}`);
16479        modalElem.querySelectorAll("input:not([type='hidden'])").forEach((elem) => elem.value = "");
16480        modalElem.querySelectorAll("textarea").forEach((elem) => elem.value = "");
16481        modalElem.querySelectorAll(".has-error").forEach((elem) => {
16482            if (elem.nodeName.toLocaleLowerCase() === "label") {
16483                elem.parentElement.removeChild(elem);
16484            }
16485            else {
16486                elem.classList.remove('has-error');
16487            }
16488        });
16489        modalElem.querySelectorAll('.has-success').forEach((elem) => elem.classList.remove('has-success'));
16490        document.getElementById('btnSubmit').removeAttribute('disabled');
16491    }
16492};
16493ShareVehicleModal = __decorate([
16494    (0,inversify/* injectable */._G)(),
16495    __param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IToggleService)),
16496    __metadata("design:paramtypes", [typeof (_a = typeof iToggleService/* IToggleService */.F !== "undefined" && iToggleService/* IToggleService */.F) === "function" ? _a : Object])
16497], ShareVehicleModal);
16498
16499
16500
16501/***/ }),
16502
16503/***/ 5078:
16504/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16505
16506"use strict";
16507
16508
16509Object.defineProperty(exports, "__esModule", ({
16510  value: true
16511}));
16512exports.BindingOnSyntax = void 0;
16513var binding_when_syntax_1 = __webpack_require__(4533);
16514var BindingOnSyntax = function () {
16515  function BindingOnSyntax(binding) {
16516    this._binding = binding;
16517  }
16518  BindingOnSyntax.prototype.onActivation = function (handler) {
16519    this._binding.onActivation = handler;
16520    return new binding_when_syntax_1.BindingWhenSyntax(this._binding);
16521  };
16522  return BindingOnSyntax;
16523}();
16524exports.BindingOnSyntax = BindingOnSyntax;
16525
16526/***/ }),
16527
16528/***/ 5141:
16529/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
16530
16531"use strict";
16532/* harmony export */ __webpack_require__.d(__webpack_exports__, {
16533/* harmony export */   I: () => (/* binding */ ToggleFetcher)
16534/* harmony export */ });
16535/* harmony import */ var inversify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(260);
16536var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16537    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16538    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16539    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
16540    return c > 3 && r && Object.defineProperty(target, key, r), r;
16541};
16542var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
16543    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16544    return new (P || (P = Promise))(function (resolve, reject) {
16545        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16546        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16547        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
16548        step((generator = generator.apply(thisArg, _arguments || [])).next());
16549    });
16550};
16551
16552let ToggleFetcher = class ToggleFetcher {
16553    fetch() {
16554        return __awaiter(this, void 0, void 0, function* () {
16555            const url = `/api/vhcliaa/config/get-all-toggles/${window.DlronGlobal_DealerId}`;
16556            if (window._toggleFetcherToggles && window._toggleFetcherToggles[url] !== undefined && window._toggleFetcherToggles[url] !== null) {
16557                return window._toggleFetcherToggles[url];
16558            }
16559            let togglesPromise = this.getResponse(url);
16560            window._toggleFetcherToggles = {};
16561            window._toggleFetcherToggles[url] = togglesPromise;
16562            return togglesPromise;
16563        });
16564    }
16565    getResponse(url) {
16566        return __awaiter(this, void 0, void 0, function* () {
16567            let promise;
16568            if (window._toggleFetcherCache && window._toggleFetcherCache[url] !== undefined && window._toggleFetcherCache[url] !== null) {
16569                promise = window._toggleFetcherCache[url];
16570                window._toggleFetcherCache[url] = undefined; //make sure to consume response only once
16571            }
16572            try {
16573                if (!promise) {
16574                    promise = fetch(url);
16575                }
16576                const response = yield promise;
16577                if (response.ok) {
16578                    const responseData = yield response.json();
16579                    return responseData;
16580                }
16581                else {
16582                    throw new Error(`Error: ${response.status} for endpoint ${url}`);
16583                }
16584            }
16585            catch (error) {
16586                console.error(new Error(`Error fetching toggles from ${url}: ${error.message}`));
16587                return {};
16588            }
16589        });
16590    }
16591};
16592ToggleFetcher = __decorate([
16593    (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .injectable */ ._G)()
16594], ToggleFetcher);
16595
16596
16597
16598/***/ }),
16599
16600/***/ 5326:
16601/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16602
16603// style-loader: Adds some css to the DOM by adding a <style> tag
16604
16605// load the styles
16606var content = __webpack_require__(3643);
16607if(content.__esModule) content = content.default;
16608if(typeof content === 'string') content = [[module.id, content, '']];
16609if(content.locals) module.exports = content.locals;
16610// add the styles to the DOM
16611var add = (__webpack_require__(8449)/* ["default"] */ .A)
16612var update = add("553aa9e5", content, false, {});
16613// Hot Module Replacement
16614if(false) {}
16615
16616/***/ }),
16617
16618/***/ 5426:
16619/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16620
16621"use strict";
16622
16623
16624Object.defineProperty(exports, "__esModule", ({
16625  value: true
16626}));
16627exports.MetadataReader = void 0;
16628var METADATA_KEY = __webpack_require__(4725);
16629var MetadataReader = function () {
16630  function MetadataReader() {}
16631  MetadataReader.prototype.getConstructorMetadata = function (constructorFunc) {
16632    var compilerGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.PARAM_TYPES, constructorFunc);
16633    var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED, constructorFunc);
16634    return {
16635      compilerGeneratedMetadata: compilerGeneratedMetadata,
16636      userGeneratedMetadata: userGeneratedMetadata || {}
16637    };
16638  };
16639  MetadataReader.prototype.getPropertiesMetadata = function (constructorFunc) {
16640    var userGeneratedMetadata = Reflect.getMetadata(METADATA_KEY.TAGGED_PROP, constructorFunc) || [];
16641    return userGeneratedMetadata;
16642  };
16643  return MetadataReader;
16644}();
16645exports.MetadataReader = MetadataReader;
16646
16647/***/ }),
16648
16649/***/ 5467:
16650/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
16651
16652"use strict";
16653
16654// EXPORTS
16655__webpack_require__.d(__webpack_exports__, {
16656  o: () => (/* binding */ useGlobalStore)
16657});
16658
16659// EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm-browser.prod.js
16660var vue_runtime_esm_browser_prod = __webpack_require__(3568);
16661// EXTERNAL MODULE: ./node_modules/pinia/dist/pinia.mjs + 1 modules
16662var pinia = __webpack_require__(1774);
16663// EXTERNAL MODULE: ./src/components/spaCosmos/utilities/SpaHelpers.ts
16664var SpaHelpers = __webpack_require__(4423);
16665;// ./src/infrastructure/vue/vehicleCardDeck/vehicleStore.ts
16666
16667
16668
16669const useVehicleStore = (0,pinia/* defineStore */.nY)('vehicle', () => {
16670    const isConsumerReportsScriptLoaded = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
16671    const loadingVehicles = (0,vue_runtime_esm_browser_prod/* ref */.KR)(true);
16672    const isLoadingVehicles = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => loadingVehicles.value);
16673    function setLoadingVehicles(value) {
16674        loadingVehicles.value = value;
16675    }
16676    function addConsumerReportsScript() {
16677        if (!isConsumerReportsScriptLoaded.value) {
16678            const url = "/resources/vhcliaa/components/consumerReports/consumerReports.js";
16679            SpaHelpers/* SpaHelpers */.A.loadScript(`${url}?v=${window.DlronGlobal_PlatformVersion}`);
16680            isConsumerReportsScriptLoaded.value = true;
16681        }
16682    }
16683    return {
16684        isLoadingVehicles,
16685        setLoadingVehicles,
16686        addConsumerReportsScript
16687    };
16688});
16689
16690// EXTERNAL MODULE: ./src/core/enums/industry.ts
16691var industry = __webpack_require__(8586);
16692;// ./src/infrastructure/vue/vehicleCardDeck/globalStore.ts
16693
16694
16695
16696
16697const useGlobalStore = (0,pinia/* defineStore */.nY)('global', () => {
16698    const vehicleStore = useVehicleStore();
16699    const isMobile = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
16700    const activeVehicleDropdown = (0,vue_runtime_esm_browser_prod/* ref */.KR)(null);
16701    const getActiveVehicleDropdown = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => activeVehicleDropdown.value);
16702    function setActiveVehicleDropdown(value) {
16703        activeVehicleDropdown.value = value;
16704    }
16705    const isProgrammaticScroll = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
16706    function updateProgramaticScroll(value) {
16707        isProgrammaticScroll.value = value;
16708    }
16709    const getIndustry = (0,vue_runtime_esm_browser_prod/* ref */.KR)(industry/* Industry */.j.Automotive);
16710    function setIndustry(value) {
16711        getIndustry.value = value;
16712    }
16713    return {
16714        vehicleStore,
16715        getActiveVehicleDropdown,
16716        setActiveVehicleDropdown,
16717        isMobile,
16718        isProgrammaticScroll,
16719        updateProgramaticScroll,
16720        getIndustry,
16721        setIndustry
16722    };
16723});
16724
16725
16726/***/ }),
16727
16728/***/ 5517:
16729/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16730
16731"use strict";
16732
16733
16734Object.defineProperty(exports, "__esModule", ({
16735  value: true
16736}));
16737exports.AsyncContainerModule = exports.ContainerModule = void 0;
16738var id_1 = __webpack_require__(8418);
16739var ContainerModule = function () {
16740  function ContainerModule(registry) {
16741    this.id = id_1.id();
16742    this.registry = registry;
16743  }
16744  return ContainerModule;
16745}();
16746exports.ContainerModule = ContainerModule;
16747var AsyncContainerModule = function () {
16748  function AsyncContainerModule(registry) {
16749    this.id = id_1.id();
16750    this.registry = registry;
16751  }
16752  return AsyncContainerModule;
16753}();
16754exports.AsyncContainerModule = AsyncContainerModule;
16755
16756/***/ }),
16757
16758/***/ 5577:
16759/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
16760
16761// style-loader: Adds some css to the DOM by adding a <style> tag
16762
16763// load the styles
16764var content = __webpack_require__(3807);
16765if(content.__esModule) content = content.default;
16766if(typeof content === 'string') content = [[module.id, content, '']];
16767if(content.locals) module.exports = content.locals;
16768// add the styles to the DOM
16769var add = (__webpack_require__(8449)/* ["default"] */ .A)
16770var update = add("83861cfe", content, false, {});
16771// Hot Module Replacement
16772if(false) {}
16773
16774/***/ }),
16775
16776/***/ 5644:
16777/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
16778
16779"use strict";
16780/* harmony export */ __webpack_require__.d(__webpack_exports__, {
16781/* harmony export */   Q: () => (/* binding */ TYPES),
16782/* harmony export */   x: () => (/* binding */ PROVIDERS)
16783/* harmony export */ });
16784//Types used in our non-vue architecture for DI support
16785const TYPES = {
16786    IToggleService: Symbol.for("IToggleService"),
16787    ITranslationService: Symbol.for("ITranslationService"),
16788    IOemVehicleStatusService: Symbol.for("IOemVehicleStatusService"),
16789    IFilterPanel: Symbol.for("IFilterPanel"),
16790    IInventoryWasabi: Symbol.for("IInventoryWasabi"),
16791    IWasabiFilterState: Symbol.for("IWasabiFilterState"),
16792    IFilterState: Symbol.for("IFilterState"),
16793    SearchResultsPageWasabi: Symbol.for("SearchResultsPageWasabi"),
16794    InventoryLineupPageWasabi: Symbol.for("LineupPage"),
16795    IToggleFetcher: Symbol.for("IToggleFetcher"),
16796    ITranslationFetcher: Symbol.for("ITranslationFetcher"),
16797    SrpWasabiGeneral: Symbol.for("SrpWasabiGeneral"),
16798    VehicleCardWasabi: Symbol.for("VehicleCardWasabi"),
16799    RangeFilterCosmos: Symbol.for("RangeFilterCosmos"),
16800    VehicleDetailsPageHoisin: Symbol.for("VehicleDetailsPageHoisin"),
16801    IVehicleService: Symbol.for("IVehicleService"),
16802    IFilterService: Symbol.for("IFilterService"),
16803    IPriceStakSynchronizer: Symbol.for("PriceStakSynchronizer"),
16804    ShareVehicleModel: Symbol.for("ShareVehicleModel"),
16805    EvnVideoPlayer: Symbol.for("EvnVideoPlayer"),
16806    IPersonalizationService: Symbol.for("IPersonalizationService"),
16807    IStoreProvider: Symbol.for("IStoreProvider"),
16808    VehiclePricestakDisclaimerModal: Symbol.for("VehiclePricestakDisclaimerModal"),
16809    TdgConfirmAndContactButtons: Symbol.for("TdgConfirmAndContactButtons"),
16810    ILocationSortModalService: Symbol.for("ILocationSortModalService"),
16811    INavbarSearchService: Symbol.for("INavbarSearchService"),
16812};
16813const PROVIDERS = {
16814    ToggleService: Symbol.for("ToggleService"),
16815    TranslationService: Symbol.for("TranslationService"),
16816    OemVehicleStatusService: Symbol.for("OemVehicleStatusService"),
16817    FilterPanel: Symbol.for("FilterPanel"),
16818    VehicleCardWasabi: Symbol.for("VehicleCardWasabi"),
16819    RangeFilterCosmos: Symbol.for("RangeFilterCosmos"),
16820    VehicleService: Symbol.for("VehicleService"),
16821    PriceStakSynchronizer: Symbol.for("PriceStakSynchronizer"),
16822    ShareVehicleModel: Symbol.for("ShareVehicleModel"),
16823    PersonalizationService: Symbol.for("PersonalizationService"),
16824    StoreProvider: Symbol.for("StoreProvider"),
16825    VehiclePricestakDisclaimerModal: Symbol.for("VehiclePricestakDisclaimerModal"),
16826    TdgConfirmAndContactButtons: Symbol.for("TdgConfirmAndContactButtons"),
16827    LocationSortModalService: Symbol.for("ILocationSortModalService"),
16828    NavbarSearchService: Symbol.for("NavbarSearchService"),
16829};
16830
16831
16832
16833/***/ }),
16834
16835/***/ 6055:
16836/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
16837
16838"use strict";
16839
16840// EXPORTS
16841__webpack_require__.d(__webpack_exports__, {
16842  P: () => (/* binding */ useFilterStore)
16843});
16844
16845// EXTERNAL MODULE: ./node_modules/pinia/dist/pinia.mjs + 1 modules
16846var pinia = __webpack_require__(1774);
16847// EXTERNAL MODULE: ./src/inversify.config.ts + 24 modules
16848var inversify_config = __webpack_require__(3239);
16849// EXTERNAL MODULE: ./src/types/types.ts
16850var types = __webpack_require__(5644);
16851// EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm-browser.prod.js
16852var vue_runtime_esm_browser_prod = __webpack_require__(3568);
16853// EXTERNAL MODULE: ./src/components/spaCosmos/searchFilters/filterPanel/refinementType.ts
16854var refinementType = __webpack_require__(3677);
16855// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/globalStore.ts + 11 modules
16856var cosmosSrp_globalStore = __webpack_require__(3551);
16857// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/customEvents.ts
16858var customEvents = __webpack_require__(9600);
16859// EXTERNAL MODULE: ./node_modules/lodash.debounce/index.js
16860var lodash_debounce = __webpack_require__(730);
16861var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
16862// EXTERNAL MODULE: ./src/utilities/urlHelpers.ts
16863var urlHelpers = __webpack_require__(7324);
16864;// ./src/utilities/filterHelpers.ts
16865class FilterHelpers {
16866}
16867//NOTE: Because our filters are a combination of queryString and ES values, we can 
16868//      have a mix of encoded and decoded values. These helpers will do comparisons
16869//      on the decoded values to help account for these issues.
16870//      Example: The Location filter can have the following values:
16871//          Somewhere, MI
16872//          Nowhere, MD
16873//      When we put these together as a multi-select filter, we get the following queryString
16874//          ?location=Somewhere%2C%20MI,Nowhere%2C%20MD
16875//      Note that in this instance, we have to keep the commas in the values encoded, but we
16876//      split on the comma between each value. 
16877//
16878//      Because of complicated scenarios like this, we have hand coded methods to handle the
16879//      querystring filters instead of being able to rely on the built in methods like URLSearchParams.
16880FilterHelpers.arrayIncludes = (array, value) => {
16881    if (!array) {
16882        return false;
16883    }
16884    const decodedArray = array.map(item => decodeURIComponent(item)) || [];
16885    const decodedValue = decodeURIComponent(value);
16886    const containsDecodedValue = decodedArray.includes(decodedValue);
16887    return containsDecodedValue;
16888};
16889FilterHelpers.arrayIndexOf = (array, value) => {
16890    if (!array) {
16891        return -1;
16892    }
16893    const decodedArray = array.map(item => decodeURIComponent(item)) || [];
16894    const decodedValue = decodeURIComponent(value);
16895    const indexOfDecodedValue = decodedArray.indexOf(decodedValue);
16896    return indexOfDecodedValue;
16897};
16898// NOTE: the startwiths is used explicitly for handling ModelAndTrim filters.
16899FilterHelpers.arraySomeModelAndTrim = (array, value) => {
16900    if (!array) {
16901        return false;
16902    }
16903    const decodedArray = array.map(item => decodeURIComponent(item)) || [];
16904    const decodedValue = decodeURIComponent(value);
16905    const indexOfDecodedValue = decodedArray.some((item) => item.startsWith(`${decodedValue}: `));
16906    return indexOfDecodedValue;
16907};
16908
16909;// ./src/infrastructure/vue/cosmosSrp/filterStore.ts
16910var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
16911    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16912    return new (P || (P = Promise))(function (resolve, reject) {
16913        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16914        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16915        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
16916        step((generator = generator.apply(thisArg, _arguments || [])).next());
16917    });
16918};
16919
16920
16921
16922
16923
16924
16925
16926
16927
16928
16929function getFamilyKey(make, family) {
16930    return `${make}::${family}`;
16931}
16932function parseFamilyKey(familyKey) {
16933    const makeEnd = familyKey.indexOf('::');
16934    return { make: familyKey.slice(0, makeEnd), family: familyKey.slice(makeEnd + 2) };
16935}
16936const useFilterStore = (0,pinia/* defineStore */.nY)('filter', () => {
16937    const globalStore = (0,cosmosSrp_globalStore/* useGlobalStore */.o)();
16938    const filterService = inversify_config/* doIocContainer */.E.get(types/* TYPES */.Q.IFilterService);
16939    const loadingFilters = (0,vue_runtime_esm_browser_prod/* ref */.KR)(true);
16940    //this stores the most recent filter (aka refinementtype) that the user interacted with
16941    const currentFilter = (0,vue_runtime_esm_browser_prod/* ref */.KR)(null);
16942    const isWaitingToFilterVehicles = (0,vue_runtime_esm_browser_prod/* ref */.KR)(false);
16943    const currentSelectFiltersLabel = (0,vue_runtime_esm_browser_prod/* ref */.KR)("");
16944    /* IMPORTANT NOTES ABOUT FILTER STATE */
16945    //This holds the entirey of the selected filters and other non refinement url parameters
16946    //because we fetch stuff and we need to know the state of toggles and such we want to keep track of everything
16947    //so if you need to know something that involves ONLY vehicle refinement filters, you'll need to run it
16948    //through a isRefinement() check.
16949    // DO NOT MUTATE this directly. Use the queuedFilters to push things in and out of here.
16950    // Deliberate exception: normalizeBooleanFilterValue corrects an existing value in place, without
16951    // going through queuedFilters/getFilters(), specifically to avoid triggering a redundant search.
16952    const selectedFilters = (0,vue_runtime_esm_browser_prod/* reactive */.Kh)({});
16953    //We work with a queue so we can support both dynamic filtering and non-dynamic filtering
16954    //Always put stuff in the queue, then process the queue to move it to the actual selected filters.
16955    const queuedFilters = (0,vue_runtime_esm_browser_prod/* reactive */.Kh)({});
16956    // Tracks which models and trims are selected under each family.
16957    // Keyed by "Make::Family". This is UI-only metadata — the actual search uses the flat unique list in queuedFilters.
16958    const familyModelSelections = (0,vue_runtime_esm_browser_prod/* reactive */.Kh)({});
16959    const FamilyModelSelectionsStorageKey = 'cosmosSrp_familyModelSelections';
16960    (0,vue_runtime_esm_browser_prod/* watch */.wB)(familyModelSelections, (newVal) => {
16961        sessionStorage.setItem(FamilyModelSelectionsStorageKey, JSON.stringify(newVal));
16962    }, { deep: true });
16963    //GETTERS
16964    const isMobileOrTablet = (0,vue_runtime_esm_browser_prod/* ref */.KR)(window.innerWidth < 992);
16965    const getSelectedFilters = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => selectedFilters);
16966    const getQueuedFilters = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => queuedFilters);
16967    const isDynamicFilteringEnabled = () => filterService.isDynamicFilteringEnabled(globalStore.getSrpModel.SrpPageSettingsModel.SrpFilterType, globalStore.getSrpModel.UiLocation);
16968    const isDynamicFilteringAndNotMobile = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => isDynamicFilteringEnabled() && !isMobileOrTablet.value);
16969    const getCurrentFilter = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => currentFilter.value);
16970    const isLoadingFilters = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => loadingFilters.value);
16971    const hideZeroCountFiltersToggle = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => filterService.hideZeroCountFilters());
16972    const hideZeroCountFilters = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => hideZeroCountFiltersToggle.value || globalStore.getSrpModel.FilterPanelModel.HideZeroMatchFilters);
16973    const getShowPrimaryMakeFirst = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => globalStore.getSrpModel.FilterPanelModel.ShowPrimaryMakeRefinementFirst);
16974    const getCurrentSelectFiltersLabel = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => currentSelectFiltersLabel.value);
16975    //our filter state tracks ALL querystring params
16976    //so we need to know if any vehicle refinements are selected
16977    const hasAppliedFilters = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => {
16978        for (let key in selectedFilters) {
16979            if (isRefinementType(key)) {
16980                return true;
16981            }
16982        }
16983        return false;
16984    });
16985    //get the count of all of the vehicle refinement filters
16986    const getTotalRefinementFilterCount = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => {
16987        let count = 0;
16988        for (const key in selectedFilters) {
16989            if (selectedFilters.hasOwnProperty(key) && isRefinementType(key)) {
16990                count += selectedFilters[key].length;
16991            }
16992        }
16993        return count;
16994    });
16995    const getTotalQueuedRefinementFilterCount = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => {
16996        let count = 0;
16997        for (const key in queuedFilters) {
16998            if (queuedFilters.hasOwnProperty(key) && isRefinementType(key)) {
16999                count += queuedFilters[key].length;
17000            }
17001        }
17002        return count;
17003    });
17004    const getWaitingToFilterVehicles = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => {
17005        if (isDynamicFilteringAndNotMobile.value) {
17006            return false;
17007        }
17008        return isWaitingToFilterVehicles.value;
17009    });
17010    //METHODS
17011    function setup() {
17012        var _a;
17013        return __awaiter(this, void 0, void 0, function* () {
17014            if ((_a = window === null || window === void 0 ? void 0 : window.DealeronCookie) === null || _a === void 0 ? void 0 : _a.getItem("DLRON_LOCATION_MODAL_USED")) {
17015                checkForLocationSort();
17016            }
17017            parseQueryString(true);
17018            restoreFamilySelectionsFromCache();
17019        });
17020    }
17021    const displayFilterItemCheckbox = (vehicleCount, checkboxFilter = null, shouldShow = true) => {
17022        var _a;
17023        if (hideZeroCountFilters.value && vehicleCount === 0) {
17024            return false;
17025        }
17026        return (_a = checkboxFilter === null || checkboxFilter === void 0 ? void 0 : checkboxFilter.ShowCheckboxFilter) !== null && _a !== void 0 ? _a : shouldShow;
17027    };
17028    //determine if a key is a vehicle refinement filter
17029    function isRefinementType(key) {
17030        const inputLowerCase = key.toLowerCase();
17031        // Use the enum instead of an array
17032        return Object.values(refinementType/* RefinementType */.S).some(item => item.toLowerCase() === inputLowerCase);
17033    }
17034    function getCosmosSrpFilters(updateUrlNow = true, removingSearchQuery = false) {
17035        return __awaiter(this, void 0, void 0, function* () {
17036            try {
17037                loadingFilters.value = true;
17038                document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.FilterLoadStart));
17039                // See DO-36952. On mobile, we need to check if the search valet has been updated and bypass the check for dynamic filtering
17040                const hasSearchValetUpdate = getQueuedFilters.value.hasOwnProperty("q") || getQueryStringKeyValuePairs().some(f => f.key === "q");
17041                // If we are using dynamic filtering and not on mobile and not removing a filter pill, we want to call getFilteredVehicle
17042                const shouldCallGetFilteredVehicles = isDynamicFilteringAndNotMobile.value || (hasSearchValetUpdate && !removingSearchQuery);
17043                //scroll vehicles to the top of the vehicles list as soon as possible.
17044                if (shouldCallGetFilteredVehicles) {
17045                    globalStore.vehicleStore.srpScrollTop();
17046                    yield (0,vue_runtime_esm_browser_prod/* nextTick */.dY)();
17047                }
17048                //process any queued filters
17049                processFilterQueue(updateUrlNow);
17050                //then parse the querystring to get the current state of the filters
17051                parseQueryString();
17052                //go fetch everything about filters from the server
17053                const response = yield getFiltersFromFilterService();
17054                setFilterModel(response);
17055                loadingFilters.value = false;
17056                document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.FilterLoadEnd, { detail: getSelectedFilters.value }));
17057                if (shouldCallGetFilteredVehicles) {
17058                    globalStore.vehicleStore.getFilteredVehicles();
17059                }
17060            }
17061            catch (error) {
17062                loadingFilters.value = false;
17063                console.error(`Error fetching data: ${error}`);
17064            }
17065        });
17066    }
17067    function getFiltersFromFilterService() {
17068        return __awaiter(this, void 0, void 0, function* () {
17069            const response = yield filterService.getFilters(globalStore.getSrpModel.DealerModel.DealerId, globalStore.getSrpModel.PageId, globalStore.getDynamicCountsSearch);
17070            return response;
17071        });
17072    }
17073    function setFilterModel(data) {
17074        Object.assign(globalStore.getSrpModel.FilterPanelModel, data);
17075    }
17076    //manually extract the querystring params because we allow dealers to use unsafe characters
17077    function getQueryStringKeyValuePairs() {
17078        const queryString = window.location.href.split('?');
17079        if (!queryString || queryString.length < 2) {
17080            return [];
17081        }
17082        // Split the query string into key-value pairs
17083        const pairs = queryString[1].split('#')[0].split('&');
17084        // Map each pair into an object
17085        const params = pairs.map((pair) => {
17086            // Split the key and value (with potential trailing =)
17087            const [key, ...valueParts] = pair.split('=');
17088            // Join the value parts (keeping trailing =)
17089            const value = valueParts.join('=');
17090            //we can't use decodeURIComponent because we allow dealers to use unsafe characters
17091            return {
17092                key: key,
17093                value: value
17094            };
17095        });
17096        return params;
17097    }
17098    function parseQueryString(init = false) {
17099        //HACK: because we allow dealers to use unsafe querystring characters we can't use
17100        // the URLSearchParams object because it will overwrite our manual encoding rules
17101        const params = getQueryStringKeyValuePairs();
17102        const updateParms = new Object();
17103        for (const parm in params) {
17104            const [key, value] = [params[parm].key, params[parm].value];
17105            let values = [];
17106            switch (key.toLowerCase()) {
17107                case 'modelandtrim':
17108                case 'rvbrand':
17109                    // Split by exclamation mark (!) to separate different Model:Trim sets
17110                    const modelTrimSets = value.split('!');
17111                    for (const modelTrimSet of modelTrimSets) {
17112                        // Split by colon (:) to separate Model and Trims
17113                        const [model, trims] = modelTrimSet.split(':');
17114                        // Split Trims by comma (,) to get individual Trims
17115                        if (trims && trims.length > 0) {
17116                            const trimArray = trims.split(',');
17117                            for (const trim of trimArray) {
17118                                values.push(`${model}: ${trim}`); // Create an object for each Model:Trim
17119                            }
17120                        }
17121                        else {
17122                            values.push(`${model}`);
17123                        }
17124                    }
17125                    break;
17126                case 'familymodelandtrim': {
17127                    // Format: FAMILY:MODEL[:TRIM1,TRIM2]!FAMILY2:MODEL2[...]
17128                    // Entries stored as "FAMILY: MODEL" or "FAMILY: MODEL: TRIM"
17129                    const familyModelTrimSets = value.split('!');
17130                    for (const set of familyModelTrimSets) {
17131                        const pieces = set.split(':');
17132                        const family = pieces[0];
17133                        const model = pieces[1];
17134                        if (!family || !model) {
17135                            continue;
17136                        }
17137                        if (pieces[2] && pieces[2].length > 0) {
17138                            const trimArray = pieces[2].split(',');
17139                            for (const trim of trimArray) {
17140                                values.push(`${family}: ${model}: ${trim}`);
17141                            }
17142                        }
17143                        else {
17144                            values.push(`${family}: ${model}`);
17145                        }
17146                    }
17147                    break;
17148                }
17149                default:
17150                    if (value) {
17151                        values = value.split(','); // Split values by comma (default delimiter)
17152                    }
17153                    else {
17154                        //handle queryString params that don't have a value
17155                        values = [null];
17156                    }
17157                    break;
17158            }
17159            updateParms[key] = values;
17160        }
17161        //on setup we want to update the queued filters to be updated. After this we
17162        //we only want to update the selected filters when we process the queue
17163        if (init) {
17164            syncObjects(queuedFilters, updateParms);
17165        }
17166        syncObjects(selectedFilters, updateParms);
17167    }
17168    //do all our filter work on the queues so we can delay applying filters
17169    //in the case that dynamic filtering is disabled.
17170    function removeFilter(filterKey, filterValue, isAllTrimsClick, isClearFilterPillClick) {
17171        //We don't care about the value of For You, just that we have the key
17172        if (filterKey === refinementType/* RefinementType */.S.SignalsForYou) {
17173            delete queuedFilters[filterKey];
17174            return true;
17175        }
17176        filterValue = EncodeFilterValue(filterKey, filterValue);
17177        if (filterValue === undefined && queuedFilters.hasOwnProperty(filterKey)) {
17178            delete queuedFilters[filterKey];
17179            if (filterKey === 'q' && globalStore.injectBestMatchSortOption) {
17180                globalStore.injectBestMatchSortOption(false);
17181            }
17182            return true;
17183        }
17184        else if (queuedFilters.hasOwnProperty(filterKey) && Array.isArray(queuedFilters[filterKey])) {
17185            const index = FilterHelpers.arrayIndexOf(queuedFilters[filterKey], filterValue);
17186            let syncFamilyOnModelAndTrim = false;
17187            if (index !== -1) {
17188                //remove the item
17189                queuedFilters[filterKey].splice(index, 1);
17190                if (filterKey === 'q') {
17191                    clearBestMatchSort();
17192                    if (globalStore.injectBestMatchSortOption) {
17193                        globalStore.injectBestMatchSortOption(false);
17194                    }
17195                }
17196                //If the filter has no values then delete it from queued filters
17197                if (queuedFilters[filterKey].length === 0) {
17198                    delete queuedFilters[filterKey];
17199                }
17200                //If we are removing a search valet pill/query we need to clear the search input as well.
17201                if (isClearFilterPillClick && filterKey === 'q') {
17202                    document.dispatchEvent(new Event(customEvents/* CosmosSrpCustomEvents */.A.SearchValetCleared));
17203                }
17204                if (isDynamicFilteringAndNotMobile.value || isClearFilterPillClick) {
17205                    processFilterQueue();
17206                }
17207                if (filterKey === refinementType/* RefinementType */.S.ModelAndTrim || filterKey === refinementType/* RefinementType */.S.RvBrand) {
17208                    syncFamilyOnModelAndTrim = true;
17209                }
17210            }
17211            //ModelAndTrim entries are in the format of "ModelName: TrimName". We know if we're removing a trim
17212            // by checking `startsWith("Model :"). Model/Trim are special in that we either have just
17213            // the model name, or we have only a list of "ModelName: TrimName" items. Not both.
17214            if ((filterKey === refinementType/* RefinementType */.S.ModelAndTrim || filterKey === refinementType/* RefinementType */.S.RvBrand) && !isClearFilterPillClick) {
17215                //handle trim removal - if we remove the final trim for a model add the model back in
17216                if (filterValue.indexOf(": ") > -1) {
17217                    const model = filterValue.split(": ")[0];
17218                    if (!FilterHelpers.arraySomeModelAndTrim(queuedFilters[filterKey], model)) {
17219                        addFilter(filterKey, model);
17220                    }
17221                }
17222                else {
17223                    //handle model removal - we need to remove all trims for this model because we're removing the model
17224                    if (queuedFilters[filterKey]) {
17225                        queuedFilters[filterKey] = queuedFilters[filterKey].filter(function (item) {
17226                            //when working with filters we always need to compare decoded values
17227                            return !decodeURIComponent(item).startsWith(`${decodeURIComponent(filterValue)}: `);
17228                        });
17229                    }
17230                    //The all trims button is never "uncheckable", per se, it clears all the trims
17231                    //and set us back to just the model. Because of this it will remove the model
17232                    //from the filter state so we need to add it back
17233                    if (isAllTrimsClick) {
17234                        queuedFilters[filterKey].push(filterValue);
17235                    }
17236                }
17237            }
17238            // FamilyModelAndTrim entries are in the format "FAMILY: MODEL" (bare) or "FAMILY: MODEL: TRIM" (trim).
17239            // Unlike ModelAndTrim, bare entries already contain ": " so we discriminate by part count, not presence of ": ".
17240            if (filterKey === refinementType/* RefinementType */.S.FamilyModelAndTrim && !isClearFilterPillClick) {
17241                const parts = filterValue.split(': ');
17242                if (parts.length === 3) {
17243                    // Removing a trim — restore bare "FAMILY: MODEL" if no other trims remain for it
17244                    const familyModel = `${parts[0]}: ${parts[1]}`;
17245                    if (!FilterHelpers.arraySomeModelAndTrim(queuedFilters[filterKey], familyModel)) {
17246                        addFilter(filterKey, familyModel);
17247                    }
17248                }
17249                else {
17250                    // Removing bare "FAMILY: MODEL" — remove all associated "FAMILY: MODEL: TRIM" entries
17251                    if (queuedFilters[filterKey]) {
17252                        queuedFilters[filterKey] = queuedFilters[filterKey].filter(function (item) {
17253                            return !decodeURIComponent(item).startsWith(`${decodeURIComponent(filterValue)}: `);
17254                        });
17255                    }
17256                    if (isAllTrimsClick) {
17257                        queuedFilters[filterKey].push(filterValue);
17258                    }
17259                }
17260            }
17261            if (queuedFilters[filterKey] && queuedFilters[filterKey].length === 0) {
17262                delete queuedFilters[filterKey];
17263            }
17264            if (queuedFilters[filterKey] && queuedFilters[filterKey].length === 0) {
17265                delete queuedFilters[filterKey];
17266            }
17267            // Sync after the auto-add block so mobile's model re-add is visible in queuedFilters
17268            if (syncFamilyOnModelAndTrim) {
17269                syncFamilySelectionsAfterRemoval(filterKey, filterValue);
17270            }
17271            return true;
17272        }
17273        return false;
17274    }
17275    function isBestMatchSortValue(sortValue) {
17276        if (!sortValue) {
17277            return false;
17278        }
17279        const decodedSortValue = decodeURIComponent(sortValue)
17280            .replace(/\+/g, ' ')
17281            .trim()
17282            .toLowerCase();
17283        return decodedSortValue.startsWith('relevance ')
17284            || decodedSortValue.includes('st=relevance ')
17285            || decodedSortValue.includes('&st=relevance ')
17286            || decodedSortValue.includes('?st=relevance ');
17287    }
17288    function clearBestMatchSort() {
17289        if (!queuedFilters.hasOwnProperty('st') || !Array.isArray(queuedFilters['st'])) {
17290            return;
17291        }
17292        if (queuedFilters['st'].some((sortValue) => isBestMatchSortValue(sortValue))) {
17293            delete queuedFilters['st'];
17294        }
17295    }
17296    function clearSortState() {
17297        if (queuedFilters.hasOwnProperty('st')) {
17298            delete queuedFilters['st'];
17299        }
17300        if (selectedFilters.hasOwnProperty('st')) {
17301            delete selectedFilters['st'];
17302        }
17303    }
17304    //Common place to encode filter values before adding the qs value to the filter object.
17305    //***IF YOU ADD AN ENTRY TO THE ENCODE PLEASE MAKE SURE TO MAKE A DECODE ENTRY BELOW */
17306    function EncodeFilterValue(filterKey, filterValue) {
17307        //Check to make sure the filterValue is a string before encoding.
17308        //If it is not a string it is most likly a filter object, so we don't want to encode it.
17309        if (typeof filterValue === 'string') {
17310            let newFilterValue = filterValue;
17311            // Replace registered html
17312            newFilterValue = newFilterValue.replace(/<sup>&reg;<\/sup>/g, "*REGISTERED");
17313            // Replace trademark html
17314            newFilterValue = newFilterValue.replace(/<sup>&trade;<\/sup>/g, "*TRADEMARK");
17315            // Replace registered inline ®
17316            newFilterValue = newFilterValue.replace(/\u00AE/g, "*REGINLINE");
17317            // Replace trademark inline ™
17318            newFilterValue = newFilterValue.replace(/\u2122/g, "*TMINLINE");
17319            // Replace ampersand with encoded ampersand
17320            newFilterValue = newFilterValue.replace(/&/g, "%26");
17321            // Replace comma with encoded comma
17322            newFilterValue = newFilterValue.replace(/,/g, "%2C");
17323            // Replace comma with encoded semicolon
17324            newFilterValue = newFilterValue.replace(/;/g, "%3B");
17325            // Lincoln's "Competitive+" tier puts a literal "+" in the value. A bare "+" in the
17326            // query string is decoded as a space server-side, so the search would never match the tier.
17327            // Scoped to cpotier - no other filter's values carry a "+" that reaches this path.
17328            if ((filterKey === null || filterKey === void 0 ? void 0 : filterKey.toLowerCase()) === "cpotier") {
17329                newFilterValue = newFilterValue.replace(/\+/g, "%2B");
17330            }
17331            return newFilterValue;
17332        }
17333        return filterValue;
17334    }
17335    function DecodeFilterValue(filterKey, filterValue) {
17336        //Check to make sure the filterValue is a string before encoding.
17337        //If it is not a string it is most likly a filter object, so we don't want to encode it.
17338        if (typeof filterValue === 'string') {
17339            let newFilterValue = filterValue;
17340            // Decode encoded registered html
17341            newFilterValue = newFilterValue.replace(/\*REGISTERED/g, "<sup>&reg;</sup>");
17342            // Decode encoded trademark html
17343            newFilterValue = newFilterValue.replace(/\*TRADEMARK/g, "<sup>&trade;</sup>");
17344            // Decode encoded inline registered
17345            newFilterValue = newFilterValue.replace(/\*REGINLINE/g, "\u00AE");
17346            // Decode encoded inline trademark
17347            newFilterValue = newFilterValue.replace(/\*TMINLINE/g, "\u2122");
17348            // Decode encoded ampersand
17349            newFilterValue = newFilterValue.replace(/%26/g, "&");
17350            // Decode encoded comma
17351            newFilterValue = newFilterValue.replace(/%2C/g, ",");
17352            // Decode encoded semicolon
17353            newFilterValue = newFilterValue.replace(/%3B/g, ";");
17354            // Decode encoded space
17355            newFilterValue = newFilterValue.replace(/%20/g, " ");
17356            // Mirror of the cpotier "+" encoding in EncodeFilterValue, so filter pills and
17357            // comparisons show the tier as "Competitive+" rather than "Competitive%2B".
17358            if ((filterKey === null || filterKey === void 0 ? void 0 : filterKey.toLowerCase()) === "cpotier") {
17359                newFilterValue = newFilterValue.replace(/%2B/gi, "+");
17360            }
17361            return newFilterValue;
17362        }
17363        return filterValue;
17364    }
17365    function addFilter(filterKey, filterValue) {
17366        filterValue = EncodeFilterValue(filterKey, filterValue);
17367        if (queuedFilters.hasOwnProperty(filterKey)) {
17368            if (filterKey.indexOf("range") > -1) {
17369                delete queuedFilters[filterKey];
17370            }
17371            //don't add the value if it already exists
17372            if (Array.isArray(queuedFilters[filterKey])) {
17373                const index = FilterHelpers.arrayIndexOf(queuedFilters[filterKey], filterValue);
17374                if (index > -1) {
17375                    return false;
17376                }
17377            }
17378        }
17379        if (filterKey === refinementType/* RefinementType */.S.ModelAndTrim || filterKey === refinementType/* RefinementType */.S.RvBrand) {
17380            //if we're adding a trim and there were no other trims selected for this model
17381            // then we need to remove the model entry. Model/Trim are special in that we either have just
17382            // the model name, or we have only a list of "ModelName: TrimName" items. Not both.
17383            if (filterValue.indexOf(": ") > -1) {
17384                const model = filterValue.split(": ")[0];
17385                if (isFilterSelected(filterKey, model)) {
17386                    const index = FilterHelpers.arrayIndexOf(queuedFilters[filterKey], model);
17387                    if (index !== -1) {
17388                        queuedFilters[filterKey].splice(index, 1);
17389                    }
17390                }
17391            }
17392        }
17393        // FamilyModelAndTrim: adding a trim "FAMILY: MODEL: TRIM" removes the bare "FAMILY: MODEL" entry if present.
17394        // Adding a bare "FAMILY: MODEL" entry (parts.length === 2) needs no special handling.
17395        if (filterKey === refinementType/* RefinementType */.S.FamilyModelAndTrim) {
17396            const parts = filterValue.split(': ');
17397            if (parts.length === 3) {
17398                const familyModel = `${parts[0]}: ${parts[1]}`;
17399                if (isFilterSelected(filterKey, familyModel)) {
17400                    const index = FilterHelpers.arrayIndexOf(queuedFilters[filterKey], familyModel);
17401                    if (index !== -1) {
17402                        queuedFilters[filterKey].splice(index, 1);
17403                    }
17404                }
17405            }
17406        }
17407        if (queuedFilters[filterKey]) {
17408            queuedFilters[filterKey].push(filterValue);
17409        }
17410        else {
17411            queuedFilters[filterKey] = [filterValue];
17412        }
17413        return true;
17414    }
17415    //assign the queued filters to the actual filters. This applies the
17416    //filters to the UI officially
17417    function processFilterQueue(updateUrlNow = true) {
17418        syncObjects(selectedFilters, queuedFilters);
17419        updateQueryString(updateUrlNow);
17420    }
17421    //When we update the filter state we update the queued filters.
17422    //If we are using dynamic filtering, we apply the filters immediately.
17423    //  We go get all the filters again because this updates the vehicle counts
17424    //If we are not using dynamic filtering, we wait until the user clicks the apply filters button
17425    function updateFilterState(refinementName, filterItem, isAllTrimsClick) {
17426        let isSelected = isFilterSelected(refinementName, filterItem);
17427        //keep track of the filter refinement the user is currently interacting with
17428        setCurrentFilter(refinementName);
17429        if (filterItem === undefined // handle special case for handling range filters
17430            || ((refinementName == refinementType/* RefinementType */.S.ModelAndTrim || refinementName == refinementType/* RefinementType */.S.RvBrand || refinementName == refinementType/* RefinementType */.S.FamilyModelAndTrim) && isFilterModelSelected(filterItem, refinementName)) // handle modelAndTrim special case
17431            || isFilterSelected(refinementName, filterItem) // handle all other cases
17432        ) {
17433            if (!removeFilter(refinementName, filterItem, isAllTrimsClick)) {
17434                document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.UpdateFilterState));
17435                return;
17436            }
17437        }
17438        else {
17439            if (refinementName === 'st') {
17440                // we want to remove the sort parameter if we're trying a new sort
17441                clearSortState();
17442                // Best Match is the implicit/default search sort and should not persist "st" in the query string.
17443                if (isBestMatchSortValue(filterItem)) {
17444                    clearSortState();
17445                    processFilterQueue();
17446                    if (globalStore.injectBestMatchSortOption) {
17447                        globalStore.injectBestMatchSortOption(true);
17448                    }
17449                    getFilters();
17450                    document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.UpdateFilterState));
17451                    return;
17452                }
17453            }
17454            handleAvailabilityFilters(refinementName);
17455            if (!addFilter(refinementName, filterItem)) {
17456                document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.UpdateFilterState));
17457                return;
17458            }
17459        }
17460        // DO NOT REMOVE refinementName === 'st' until we universally support dynamic filtering. This will break sorting on mobile. See DO-31720
17461        if (isDynamicFilteringAndNotMobile.value || refinementName === 'st') {
17462            getFilters();
17463        }
17464        else {
17465            let hasFiltersToApply = false;
17466            const anyFilters = Object.assign(Object.assign({}, selectedFilters), queuedFilters);
17467            for (const key in anyFilters) {
17468                if (anyFilters.hasOwnProperty(key) && isRefinementType(key)) {
17469                    hasFiltersToApply = true;
17470                    break;
17471                }
17472            }
17473            setWaitingToFilterVehicles(hasFiltersToApply);
17474            let removingSearchQuery = refinementName == 'q' && isSelected;
17475            getFilters(false, removingSearchQuery);
17476        }
17477        document.dispatchEvent(new CustomEvent(customEvents/* CosmosSrpCustomEvents */.A.UpdateFilterState));
17478    }
17479    function handleAvailabilityFilters(refinementName) {
17480        const refinementKeys = [refinementType/* RefinementType */.S.InTransit, refinementType/* RefinementType */.S.InProduction, refinementType/* RefinementType */.S.InStock];
17481        if (refinementKeys.includes(refinementName)) {
17482            const toggleOffRefinments = refinementKeys.filter(refinement => refinement !== refinementName);
17483            toggleOffRefinments.forEach(refinement => {
17484                removeFilter(refinement);
17485            });
17486        }
17487    }
17488    function updateSearchValetFilter(searchKey, searchValue, distanceKey, distanceValue) {
17489        //remove the existing search valet filters
17490        delete queuedFilters[searchKey];
17491        delete queuedFilters[distanceKey];
17492        if (searchValue) {
17493            delete queuedFilters['st'];
17494            if (globalStore.injectBestMatchSortOption) {
17495                globalStore.injectBestMatchSortOption(true);
17496            }
17497        }
17498        else {
17499            clearBestMatchSort();
17500            if (globalStore.injectBestMatchSortOption) {
17501                globalStore.injectBestMatchSortOption(false);
17502            }
17503        }
17504        //add the new search valet filters
17505        if (searchValue) {
17506            addFilter(searchKey, searchValue);
17507        }
17508        if (distanceValue) {
17509            addFilter(distanceKey, distanceValue);
17510        }
17511        getFilters();
17512    }
17513    // Idempotent add — ensures model is tracked under this family without toggling
17514    function addModelToFamily(make, family, modelName) {
17515        const key = getFamilyKey(make, family);
17516        if (!familyModelSelections[key]) {
17517            familyModelSelections[key] = { models: [], trims: {} };
17518        }
17519        if (!familyModelSelections[key].models.includes(modelName)) {
17520            familyModelSelections[key].models.push(modelName);
17521        }
17522    }
17523    function removeModelFromFamily(make, family, modelName) {
17524        const key = getFamilyKey(make, family);
17525        if (!familyModelSelections[key]) {
17526            return;
17527        }
17528        const entry = familyModelSelections[key];
17529        const idx = entry.models.indexOf(modelName);
17530        if (idx !== -1) {
17531            entry.models.splice(idx, 1);
17532        }
17533        delete entry.trims[modelName];
17534        if (entry.models.length === 0) {
17535            delete familyModelSelections[key];
17536        }
17537    }
17538    function getFamilyModelSelectionsFor(make, family) {
17539        var _a;
17540        return ((_a = familyModelSelections[getFamilyKey(make, family)]) === null || _a === void 0 ? void 0 : _a.models) || [];
17541    }
17542    const getFamilyModelSelections = (0,vue_runtime_esm_browser_prod/* computed */.EW)(() => familyModelSelections);
17543    function isModelInAnyOtherFamily(make, family, modelName) {
17544        var _a, _b;
17545        const currentKey = getFamilyKey(make, family);
17546        for (const key in familyModelSelections) {
17547            if (key === currentKey)
17548                continue;
17549            if ((_b = (_a = familyModelSelections[key]) === null || _a === void 0 ? void 0 : _a.models) === null || _b === void 0 ? void 0 : _b.includes(modelName)) {
17550                return true;
17551            }
17552        }
17553        return false;
17554    }
17555    function isTrimInAnyOtherFamily(make, family, modelName, trimName) {
17556        var _a;
17557        const currentKey = getFamilyKey(make, family);
17558        for (const key in familyModelSelections) {
17559            if (key === currentKey)
17560                continue;
17561            const trims = (_a = familyModelSelections[key]) === null || _a === void 0 ? void 0 : _a.trims[modelName];
17562            if (trims === null || trims === void 0 ? void 0 : trims.includes(trimName)) {
17563                return true;
17564            }
17565        }
17566        return false;
17567    }
17568    function clearFamilyModelSelections() {
17569        for (const key in familyModelSelections) {
17570            delete familyModelSelections[key];
17571        }
17572        sessionStorage.removeItem(FamilyModelSelectionsStorageKey);
17573    }
17574    function addTrimToFamilyModel(make, family, modelName, trimName) {
17575        const key = getFamilyKey(make, family);
17576        if (!familyModelSelections[key]) {
17577            familyModelSelections[key] = { models: [], trims: {} };
17578        }
17579        if (!familyModelSelections[key].trims[modelName]) {
17580            familyModelSelections[key].trims[modelName] = [];
17581        }
17582        if (!familyModelSelections[key].trims[modelName].includes(trimName)) {
17583            familyModelSelections[key].trims[modelName].push(trimName);
17584        }
17585    }
17586    function removeTrimFromFamilyModel(make, family, modelName, trimName) {
17587        const key = getFamilyKey(make, family);
17588        const entry = familyModelSelections[key];
17589        if (!(entry === null || entry === void 0 ? void 0 : entry.trims[modelName])) {
17590            return;
17591        }
17592        const storedTrims = entry.trims[modelName];
17593        const idx = storedTrims.indexOf(trimName);
17594        if (idx !== -1) {
17595            entry.trims[modelName].splice(idx, 1);
17596        }
17597        if (entry.trims[modelName].length === 0) {
17598            delete entry.trims[modelName];
17599        }
17600    }
17601    function getTrimsForFamilyModel(make, family, modelName) {
17602        var _a;
17603        return ((_a = familyModelSelections[getFamilyKey(make, family)]) === null || _a === void 0 ? void 0 : _a.trims[modelName]) || [];
17604    }
17605    // Syncs familyModelSelections when a ModelAndTrim entry is removed from queuedFilters
17606    // (e.g. via a filter pill click). Handles both trim-level and model-level removals.
17607    function removeFromAllFamilies(modelName, action) {
17608        for (const familyKey in familyModelSelections) {
17609            const { make, family } = parseFamilyKey(familyKey);
17610            action(make, family);
17611        }
17612    }
17613    function isModelStillInQueuedFilters(filterKey, modelName) {
17614        const remaining = queuedFilters[filterKey];
17615        return !!(remaining === null || remaining === void 0 ? void 0 : remaining.some(v => {
17616            const dv = DecodeFilterValue(filterKey, v);
17617            return dv === modelName || dv.startsWith(`${modelName}: `);
17618        }));
17619    }
17620    function isModelTrackedInAnyFamily(modelName) {
17621        var _a, _b;
17622        for (const fk in familyModelSelections) {
17623            if (((_b = (_a = familyModelSelections[fk]) === null || _a === void 0 ? void 0 : _a.models) === null || _b === void 0 ? void 0 : _b.indexOf(modelName)) !== -1) {
17624                return true;
17625            }
17626        }
17627        return false;
17628    }
17629    function purgeOrphanedTrimsFromQueue(filterKey, modelName) {
17630        const qf = queuedFilters;
17631        if (!qf[filterKey]) {
17632            return;
17633        }
17634        qf[filterKey] = qf[filterKey].filter(v => !DecodeFilterValue(filterKey, v).startsWith(`${modelName}: `));
17635        if (qf[filterKey].length === 0) {
17636            delete qf[filterKey];
17637        }
17638    }
17639    function syncFamilySelectionsAfterRemoval(filterKey, encodedFilterValue) {
17640        const decoded = DecodeFilterValue(filterKey, encodedFilterValue);
17641        const colonIdx = decoded.indexOf(': ');
17642        if (colonIdx > -1) {
17643            const modelName = decoded.slice(0, colonIdx);
17644            const trimName = decoded.slice(colonIdx + 2);
17645            removeFromAllFamilies(modelName, (make, family) => removeTrimFromFamilyModel(make, family, modelName, trimName));
17646            const modelStillQueued = isModelStillInQueuedFilters(filterKey, modelName);
17647            if (!modelStillQueued) {
17648                removeFromAllFamilies(modelName, (make, family) => removeModelFromFamily(make, family, modelName));
17649            }
17650            return;
17651        }
17652        const modelInFamily = isModelTrackedInAnyFamily(decoded);
17653        removeFromAllFamilies(decoded, (make, family) => removeModelFromFamily(make, family, decoded));
17654        if (modelInFamily) {
17655            purgeOrphanedTrimsFromQueue(filterKey, decoded);
17656            processFilterQueue();
17657        }
17658    }
17659    function restoreFamilySelectionsFromCache() {
17660        const raw = sessionStorage.getItem(FamilyModelSelectionsStorageKey);
17661        if (!raw)
17662            return;
17663        try {
17664            const cached = JSON.parse(raw);
17665            for (const key in cached) {
17666                const cachedEntry = cached[key];
17667                // Support both old format (string[]) and new format ({ models: string[], trims: Record<string, string[]> })
17668                const models = Array.isArray(cachedEntry) ? cachedEntry : (cachedEntry.models || []);
17669                const trims = Array.isArray(cachedEntry) ? {} : (cachedEntry.trims || {});
17670                const validModels = models.filter(modelName => isFilterModelSelected(modelName, refinementType/* RefinementType */.S.ModelAndTrim) ||
17671                    isFilterModelSelected(modelName, refinementType/* RefinementType */.S.RvBrand));
17672                const validTrims = {};
17673                for (const modelName of validModels) {
17674                    const trimList = trims[modelName] || [];
17675                    const validTrimList = trimList.filter(trimName => isFilterSelected(refinementType/* RefinementType */.S.ModelAndTrim, `${modelName}: ${trimName}`));
17676                    if (validTrimList.length > 0) {
17677                        validTrims[modelName] = validTrimList;
17678                    }
17679                }
17680                if (validModels.length > 0) {
17681                    familyModelSelections[key] = { models: validModels, trims: validTrims };
17682                }
17683            }
17684        }
17685        catch (_a) {
17686            sessionStorage.removeItem(FamilyModelSelectionsStorageKey);
17687        }
17688    }
17689    function removeAllFilters() {
17690        clearFamilyModelSelections();
17691        for (const key in queuedFilters) {
17692            if (queuedFilters.hasOwnProperty(key) && isRefinementType(key)) {
17693                delete queuedFilters[key];
17694            }
17695        }
17696        clearBestMatchSort();
17697        if (globalStore.injectBestMatchSortOption) {
17698            globalStore.injectBestMatchSortOption(false);
17699        }
17700        syncObjects(selectedFilters, queuedFilters);
17701        getFilters();
17702        if (!isDynamicFilteringEnabled()) {
17703            globalStore.vehicleStore.getFilteredVehicles();
17704        }
17705    }
17706    // Update the query string to reflect updated filters
17707    function updateQueryString(updateUrlNow = true) {
17708        if (selectedFilters.hasOwnProperty('st') && Array.isArray(selectedFilters['st'])) {
17709            const sortValues = selectedFilters['st'];
17710            const hasNoSortValue = sortValues.length === 0 || sortValues.every(sortValue => !sortValue);
17711            const hasBestMatchSort = sortValues.some((sortValue) => isBestMatchSortValue(sortValue));
17712            if (hasNoSortValue || hasBestMatchSort) {
17713                delete selectedFilters['st'];
17714            }
17715        }
17716        //HACK: because we let dealers use unfriendly querystring characters we need to do some
17717        //manual encoding and decoding so we cannot use the URLSearchParams object as it
17718        //will overwrite our encoding
17719        const params = [];
17720        for (const key in selectedFilters) {
17721            if (selectedFilters.hasOwnProperty(key)) {
17722                switch (key) {
17723                    case refinementType/* RefinementType */.S.ModelAndTrim:
17724                    case refinementType/* RefinementType */.S.RvBrand:
17725                        // Handle the "ModelAndTrim" key separately
17726                        const modelTrimSets = selectedFilters[key];
17727                        const modelTrimMap = {};
17728                        for (const item of modelTrimSets) {
17729                            const [model, trim] = item.replace(/\+/g, '%2B').split(': ');
17730                            if (!modelTrimMap[model]) {
17731                                modelTrimMap[model] = [trim];
17732                            }
17733                            else {
17734                                modelTrimMap[model].push(trim);
17735                            }
17736                        }
17737                        // Format the models and trims
17738                        const formattedArray = Object.keys(modelTrimMap).map((model) => {
17739                            const trims = modelTrimMap[model].join(',');
17740                            if (trims.length > 0) {
17741                                return `${model}:${trims}`;
17742                            }
17743                            else {
17744                                return `${model}`;
17745                            }
17746                        });
17747                        params.push({ "key": key, "value": `${formattedArray.join('!')}` });
17748                        break;
17749                    case refinementType/* RefinementType */.S.FamilyModelAndTrim: {
17750                        // Entries are "FAMILY: MODEL" or "FAMILY: MODEL: TRIM"
17751                        // Serialize as FAMILY:MODEL[:TRIM1,TRIM2]!...
17752                        const familyModelTrimItems = selectedFilters[key];
17753                        const familyModelTrimMap = {};
17754                        for (const item of familyModelTrimItems) {
17755                            const parts = item.replaceAll('+', '%2B').split(': ');
17756                            const familyModel = `${parts[0]}:${parts[1]}`;
17757                            const trim = parts[2];
17758                            if (!familyModelTrimMap[familyModel]) {
17759                                familyModelTrimMap[familyModel] = trim ? [trim] : [];
17760                            }
17761                            else if (trim) {
17762                                familyModelTrimMap[familyModel].push(trim);
17763                            }
17764                        }
17765                        const formattedFamilyArray = Object.keys(familyModelTrimMap).map((familyModel) => {
17766                            const trims = familyModelTrimMap[familyModel].join(',');
17767                            return trims.length > 0 ? `${familyModel}:${trims}` : familyModel;
17768                        });
17769                        params.push({ "key": key, "value": formattedFamilyArray.join('!') });
17770                        break;
17771                    }
17772                    case refinementType/* RefinementType */.S.Location:
17773                        //locations have commas in the data, so we want to manually encode them so
17774                        //that when we split on "," for multi-select we don't split on the location state
17775                        const encodedLocations = [];
17776                        selectedFilters[key].forEach((item) => {
17777                            //our search can't handle the + symbol, which is what an encoded space would look like
17778                            //so instead, we manually encode to %20
17779                            encodedLocations.push(item.replace(", ", "%2C%20"));
17780                        });
17781                        params.push({ "key": key, "value": encodedLocations.join(',') });
17782                        break;
17783                    //This is base 64 encoded and has a trailing = we need to make sure it comes through
17784                    case refinementType/* RefinementType */.S.SignalsForYou:
17785                        params.push({ "key": key, "value": selectedFilters[key] });
17786                        break;
17787                    default:
17788                        const encodedDefaults = [];
17789                        selectedFilters[key].forEach((item) => {
17790                            encodedDefaults.push(EncodeFilterValue(key, item));
17791                        });
17792                        params.push({ "key": key, "value": encodedDefaults.join(',') });
17793                        break;
17794                }
17795            }
17796        }
17797        const url = new URL(location.href);
17798        //HACK: because we let dealers use unfriendly querystring characters we can't encode here
17799        var search = urlHelpers/* UrlHelpers */.b.mapArrayToQueryString(params);
17800        globalStore.setDynamicCountsSearch(search);
17801        if (updateUrlNow) {
17802            url.search = search;
17803        }
17804        //update the url without redirecting
17805        const formattedUrl = url.toString();
17806        globalStore.updateUrlState(formattedUrl);
17807    }
17808    // OEM-14660: an external link can select a boolean filter using an equivalent but non-canonical value
17809    // (e.g. CarBravo=true vs CarBravo=1). Skips addFilter/removeFilter/getFilters() on purpose - this
17810    // corrects existing state and must not trigger a search.
17811    function normalizeBooleanFilterValue(filterKey, canonicalValue) {
17812        [selectedFilters, queuedFilters].forEach(filterObj => {
17813            const filters = filterObj;
17814            const values = filters[filterKey];
17815            const isAlreadyCanonical = Array.isArray(values) && values.length === 1 && values[0] === canonicalValue;
17816            if (Array.isArray(values) && !isAlreadyCanonical) {
17817                filters[filterKey] = [canonicalValue];
17818            }
17819        });
17820    }
17821    function isFilterSelected(key, value) {
17822        //support filters that can have multiple values (i.e. the value in the key exists)
17823        //and filters that can only have one value (i.e. the key exists)
17824        var _a, _b;
17825        //HACK: we let dealers use unfriendly querystring characters so when we compare selected
17826        // we can't use the URLSearchParams objects. However, we want to display friendly names
17827        // for checkboxes and filter pills. So, we need to compare encoded and decoded values.
17828        value = EncodeFilterValue(key, value);
17829        if (getWaitingToFilterVehicles.value) {
17830            if (queuedFilters.hasOwnProperty(key)) {
17831                if (key === refinementType/* RefinementType */.S.SignalsForYou) {
17832                    return true;
17833                }
17834                if (value !== undefined) {
17835                    return (_a = FilterHelpers.arrayIncludes(queuedFilters[key], value)) !== null && _a !== void 0 ? _a : false;
17836                }
17837                else {
17838                    return true;
17839                }
17840            }
17841        }
17842        else {
17843            if (selectedFilters.hasOwnProperty(key)) {
17844                if (key === refinementType/* RefinementType */.S.SignalsForYou) {
17845                    return true;
17846                }
17847                if (value !== undefined) {
17848                    return (_b = FilterHelpers.arrayIncludes(selectedFilters[key], value)) !== null && _b !== void 0 ? _b : false;
17849                }
17850                else {
17851                    return true;
17852                }
17853            }
17854        }
17855        return false;
17856    }
17857    const getFilters = lodash_debounce_default()((updateUrlNow = true, removingSearchQuery = false) => {
17858        getCosmosSrpFilters(updateUrlNow, removingSearchQuery);
17859    }, 300);
17860    // Immediate version for initial page load - bypasses debounce
17861    const getFiltersImmediate = (updateUrlNow = true, removingSearchQuery = false) => {
17862        getCosmosSrpFilters(updateUrlNow, removingSearchQuery);
17863    };
17864    //ModelAndTrim helpers
17865    function isFilterModelSelected(modelName, refinementType) {
17866        var _a, _b;
17867        if (getWaitingToFilterVehicles.value) {
17868            return (_a = (FilterHelpers.arrayIncludes(queuedFilters[refinementType], modelName)
17869                || FilterHelpers.arraySomeModelAndTrim(queuedFilters[refinementType], modelName))) !== null && _a !== void 0 ? _a : false;
17870        }
17871        return (_b = (FilterHelpers.arrayIncludes(selectedFilters[refinementType], modelName)
17872            || FilterHelpers.arraySomeModelAndTrim(selectedFilters[refinementType], modelName))) !== null && _b !== void 0 ? _b : false;
17873    }
17874    function doesModelHaveSelectedTrims(modelName, refinementType) {
17875        var _a, _b;
17876        if (getWaitingToFilterVehicles.value) {
17877            return (_a = FilterHelpers.arraySomeModelAndTrim(queuedFilters[refinementType], modelName)) !== null && _a !== void 0 ? _a : false;
17878        }
17879        return (_b = FilterHelpers.arraySomeModelAndTrim(selectedFilters[refinementType], modelName)) !== null && _b !== void 0 ? _b : false;
17880    }
17881    //get the count for a specific vehicle refinement filter
17882    function getRefinementFilterCount(key) {
17883        var _a, _b, _c, _d;
17884        //The mileage filter is a special case where we need to use the Mileagerange key
17885        if (key === refinementType/* RefinementType */.S.Mileage) {
17886            key = refinementType/* RefinementType */.S.Mileagerange.toString();
17887        }
17888        if (getWaitingToFilterVehicles.value) {
17889            return (_b = (_a = queuedFilters[findKeyIgnoreCase(queuedFilters, key)]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
17890        }
17891        return (_d = (_c = selectedFilters[findKeyIgnoreCase(selectedFilters, key)]) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0;
17892    }
17893    function setWaitingToFilterVehicles(value) {
17894        isWaitingToFilterVehicles.value = value;
17895    }
17896    ;
17897    function isFilterEnabled(filterName) {
17898        var _a, _b, _c;
17899        return (_c = (_b = (_a = globalStore.getSrpModel.FilterPanelModel) === null || _a === void 0 ? void 0 : _a.FilterList) === null || _b === void 0 ? void 0 : _b.Refinements.some(refinement => refinement.RefinementType == filterName)) !== null && _c !== void 0 ? _c : false;
17900    }
17901    function undoFilters(undoFilterState) {
17902        //revert the filter state to the state before the last filter was applied
17903        syncObjects(queuedFilters, undoFilterState);
17904        // Update selected filters so that Apply Filters CTA label updates
17905        processFilterQueue();
17906        //now get the filters using what we reverted to
17907        getFilters();
17908    }
17909    //sync target and source objects
17910    function syncObjects(target, source) {
17911        // Remove properties from target that no longer exist in source
17912        for (const key in target) {
17913            if (!(key in source)) {
17914                delete target[key];
17915            }
17916        }
17917        Object.assign(target, source);
17918    }
17919    ;
17920    function findKeyIgnoreCase(obj, searchKey) {
17921        // Convert the searchKey to lowercase for case-insensitive comparison
17922        const lowercaseSearchKey = searchKey.toLowerCase();
17923        // Iterate through the object's keys
17924        for (const key in obj) {
17925            if (obj.hasOwnProperty(key)) {
17926                // Convert the current key to lowercase for comparison
17927                const lowercaseKey = key.toLowerCase();
17928                // If the lowercase keys match, return the original key
17929                if (lowercaseKey === lowercaseSearchKey) {
17930                    return key;
17931                }
17932            }
17933        }
17934        // If no match is found, return undefined
17935        return undefined;
17936    }
17937    function setCurrentFilter(filterId) {
17938        currentFilter.value = filterId;
17939    }
17940    function setCurrentSelectFiltersLabel(label) {
17941        currentSelectFiltersLabel.value = label;
17942    }
17943    //If we have location data from the user we sort by that location type
17944    function checkForLocationSort() {
17945        if ((window.location.search.indexOf("st=") < 0)) {
17946            let sortQuery = "";
17947            switch (window.DealeronCookie.getItem("DLRON_LOCATION_MODAL_USED")) {
17948                case "zip":
17949                    const zip = window.DealeronCookie.getItem("DLRON_ZIP");
17950                    sortQuery = `st=Distance+asc&ZipCode=${zip}`;
17951                    break;
17952                case "coordinate":
17953                    if (globalThis.location.search.includes("currentlocation=")) {
17954                        return;
17955                    }
17956                    const coordinate = decodeURIComponent(window.DealeronCookie.getItem("DLRON_coordinate"));
17957                    const latLong = coordinate.split("|");
17958                    const trimmedLatLong = parseFloat(latLong[0]).toFixed(3) + "|" + parseFloat(latLong[1]).toFixed(3);
17959                    sortQuery = `currentlocation=${trimmedLatLong}`;
17960                    break;
17961                case "closed":
17962                    return;
17963                default:
17964                    return;
17965            }
17966            const url = new URL(window.location.href);
17967            if (url.search && url.search !== "?") {
17968                url.search += `&${sortQuery}`;
17969            }
17970            else {
17971                url.search = `?${sortQuery}`;
17972            }
17973            window.history.replaceState({}, "", url.toString());
17974        }
17975    }
17976    new ResizeObserver(() => {
17977        // if resizing from mobile view -> desktop view && dynamicFilteringEnabled,
17978        // remove all queuedFilters
17979        if (isDynamicFilteringEnabled() && isMobileOrTablet.value && window.innerWidth >= 992) {
17980            syncObjects(queuedFilters, selectedFilters);
17981            setWaitingToFilterVehicles(false);
17982        }
17983        if (!isDynamicFilteringEnabled() && isMobileOrTablet.value && window.innerWidth >= 992) {
17984            syncObjects(queuedFilters, selectedFilters);
17985        }
17986        isMobileOrTablet.value = window.innerWidth < 992;
17987    }).observe(document.documentElement);
17988    // Removes a model-level entry directly from queuedFilters without triggering the
17989    // auto-add side effects of removeFilter. Needed after trim-removal loops in family
17990    // uncheck: removeFilter's auto-add runs AFTER processFilterQueue (dynamic mode),
17991    // so the model lands in queuedFilters but isModelChecked misses it via selectedFilters.
17992    function removeAutoAddedModelFilter(filterKey, modelName) {
17993        if (!queuedFilters[filterKey]) {
17994            return;
17995        }
17996        const encodedModelName = EncodeFilterValue(filterKey, modelName);
17997        const index = FilterHelpers.arrayIndexOf(queuedFilters[filterKey], encodedModelName);
17998        if (index === -1) {
17999            return;
18000        }
18001        queuedFilters[filterKey].splice(index, 1);
18002        if (queuedFilters[filterKey].length === 0) {
18003            delete queuedFilters[filterKey];
18004        }
18005        if (isDynamicFilteringAndNotMobile.value) {
18006            processFilterQueue();
18007        }
18008    }
18009    return {
18010        getCosmosSrpFilters,
18011        isLoadingFilters,
18012        getCurrentFilter,
18013        getFilters,
18014        getFiltersImmediate,
18015        getSelectedFilters,
18016        getQueuedFilters,
18017        removeFilter,
18018        isRefinementType,
18019        isFilterSelected,
18020        normalizeBooleanFilterValue,
18021        getRefinementFilterCount,
18022        getTotalRefinementFilterCount,
18023        getTotalQueuedRefinementFilterCount,
18024        updateFilterState,
18025        isDynamicFiltering: isDynamicFilteringAndNotMobile,
18026        getWaitingToFilterVehicles,
18027        isFilterEnabled,
18028        isFilterModelSelected,
18029        doesModelHaveSelectedTrims,
18030        removeAllFilters,
18031        undoFilters,
18032        hasAppliedFilters,
18033        updateSearchValetFilter,
18034        hideZeroCountFilters,
18035        displayFilterItemCheckbox,
18036        syncObjects,
18037        setCurrentFilter,
18038        setup,
18039        getShowPrimaryMakeFirst,
18040        setWaitingToFilterVehicles,
18041        getCurrentSelectFiltersLabel,
18042        setCurrentSelectFiltersLabel,
18043        DecodeFilterValue,
18044        EncodeFilterValue,
18045        getFiltersFromFilterService,
18046        addModelToFamily,
18047        removeModelFromFamily,
18048        getFamilyModelSelectionsFor,
18049        getFamilyModelSelections,
18050        isModelInAnyOtherFamily,
18051        clearFamilyModelSelections,
18052        addTrimToFamilyModel,
18053        removeTrimFromFamilyModel,
18054        getTrimsForFamilyModel,
18055        isTrimInAnyOtherFamily,
18056        removeAutoAddedModelFilter
18057    };
18058});
18059
18060
18061/***/ }),
18062
18063/***/ 6088:
18064/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
18065
18066"use strict";
18067
18068
18069Object.defineProperty(exports, "__esModule", ({
18070  value: true
18071}));
18072exports.multiInject = void 0;
18073var METADATA_KEY = __webpack_require__(4725);
18074var metadata_1 = __webpack_require__(8390);
18075var decorator_utils_1 = __webpack_require__(40);
18076function multiInject(serviceIdentifier) {
18077  return function (target, targetKey, index) {
18078    var metadata = new metadata_1.Metadata(METADATA_KEY.MULTI_INJECT_TAG, serviceIdentifier);
18079    if (typeof index === "number") {
18080      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
18081    } else {
18082      decorator_utils_1.tagProperty(target, targetKey, metadata);
18083    }
18084  };
18085}
18086exports.multiInject = multiInject;
18087
18088/***/ }),
18089
18090/***/ 6387:
18091/***/ ((module, __webpack_exports__, __webpack_require__) => {
18092
18093"use strict";
18094__webpack_require__.r(__webpack_exports__);
18095/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18096/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
18097/* harmony export */ });
18098/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
18099/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
18100/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
18101/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
18102// Imports
18103
18104
18105var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
18106// Module
18107___CSS_LOADER_EXPORT___.push([module.id, `.comments-button[data-v-c4c8aa2a]{border-radius:5px}`, ""]);
18108// Exports
18109/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
18110
18111
18112/***/ }),
18113
18114/***/ 6566:
18115/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
18116
18117"use strict";
18118
18119
18120Object.defineProperty(exports, "__esModule", ({
18121  value: true
18122}));
18123exports.BindingToSyntax = void 0;
18124var ERROR_MSGS = __webpack_require__(7718);
18125var literal_types_1 = __webpack_require__(7802);
18126var binding_in_when_on_syntax_1 = __webpack_require__(2437);
18127var binding_when_on_syntax_1 = __webpack_require__(3341);
18128var BindingToSyntax = function () {
18129  function BindingToSyntax(binding) {
18130    this._binding = binding;
18131  }
18132  BindingToSyntax.prototype.to = function (constructor) {
18133    this._binding.type = literal_types_1.BindingTypeEnum.Instance;
18134    this._binding.implementationType = constructor;
18135    return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
18136  };
18137  BindingToSyntax.prototype.toSelf = function () {
18138    if (typeof this._binding.serviceIdentifier !== "function") {
18139      throw new Error("" + ERROR_MSGS.INVALID_TO_SELF_VALUE);
18140    }
18141    var self = this._binding.serviceIdentifier;
18142    return this.to(self);
18143  };
18144  BindingToSyntax.prototype.toConstantValue = function (value) {
18145    this._binding.type = literal_types_1.BindingTypeEnum.ConstantValue;
18146    this._binding.cache = value;
18147    this._binding.dynamicValue = null;
18148    this._binding.implementationType = null;
18149    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
18150  };
18151  BindingToSyntax.prototype.toDynamicValue = function (func) {
18152    this._binding.type = literal_types_1.BindingTypeEnum.DynamicValue;
18153    this._binding.cache = null;
18154    this._binding.dynamicValue = func;
18155    this._binding.implementationType = null;
18156    return new binding_in_when_on_syntax_1.BindingInWhenOnSyntax(this._binding);
18157  };
18158  BindingToSyntax.prototype.toConstructor = function (constructor) {
18159    this._binding.type = literal_types_1.BindingTypeEnum.Constructor;
18160    this._binding.implementationType = constructor;
18161    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
18162  };
18163  BindingToSyntax.prototype.toFactory = function (factory) {
18164    this._binding.type = literal_types_1.BindingTypeEnum.Factory;
18165    this._binding.factory = factory;
18166    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
18167  };
18168  BindingToSyntax.prototype.toFunction = function (func) {
18169    if (typeof func !== "function") {
18170      throw new Error(ERROR_MSGS.INVALID_FUNCTION_BINDING);
18171    }
18172    var bindingWhenOnSyntax = this.toConstantValue(func);
18173    this._binding.type = literal_types_1.BindingTypeEnum.Function;
18174    return bindingWhenOnSyntax;
18175  };
18176  BindingToSyntax.prototype.toAutoFactory = function (serviceIdentifier) {
18177    this._binding.type = literal_types_1.BindingTypeEnum.Factory;
18178    this._binding.factory = function (context) {
18179      var autofactory = function () {
18180        return context.container.get(serviceIdentifier);
18181      };
18182      return autofactory;
18183    };
18184    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
18185  };
18186  BindingToSyntax.prototype.toProvider = function (provider) {
18187    this._binding.type = literal_types_1.BindingTypeEnum.Provider;
18188    this._binding.provider = provider;
18189    return new binding_when_on_syntax_1.BindingWhenOnSyntax(this._binding);
18190  };
18191  BindingToSyntax.prototype.toService = function (service) {
18192    this.toDynamicValue(function (context) {
18193      return context.container.get(service);
18194    });
18195  };
18196  return BindingToSyntax;
18197}();
18198exports.BindingToSyntax = BindingToSyntax;
18199
18200/***/ }),
18201
18202/***/ 6579:
18203/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18204
18205"use strict";
18206/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18207/* harmony export */   F: () => (/* binding */ VehiclePricestakDisclaimerModal)
18208/* harmony export */ });
18209/* harmony import */ var inversify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(260);
18210var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18211    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18212    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18213    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c >
18213 3 ? d(target, key, r) : d(target, key)) || r;
18214    return c > 3 && r && Object.defineProperty(target, key, r), r;
18215};
18216
18217let VehiclePricestakDisclaimerModal = class VehiclePricestakDisclaimerModal {
18218    initialize() {
18219        const disclaimerBtns = document.querySelectorAll('[data-target="#ModalPriceStakDisclaimer"]');
18220        disclaimerBtns.forEach(btn => {
18221            this.addDisclaimerBtnTagging(btn);
18222        });
18223        const modal = window.jQuery("#ModalPriceStakDisclaimer");
18224        if (modal) {
18225            modal.on('show.bs.modal', function (e) {
18226                const toggleElem = e.relatedTarget.querySelector('.hidden');
18227                if (toggleElem) {
18228                    modal.find("#priceStakDisclaimerModalText").html(toggleElem.innerHTML);
18229                }
18230            });
18231        }
18232    }
18233    addDisclaimerBtnTagging(btn) {
18234        const taggingParentElement = document.querySelector("[data-dotagging-event-owner]");
18235        btn.setAttribute("data-dotagging-event", "cta_interaction");
18236        btn.setAttribute("data-dotagging-event-action", "click");
18237        btn.setAttribute("data-dotagging-event-action-result", "open");
18238        btn.setAttribute("data-dotagging-element-order", "0");
18239        btn.setAttribute("data-dotagging-element-type", "item_details");
18240        btn.setAttribute("data-dotagging-element-subtype", "cta_button");
18241    }
18242};
18243VehiclePricestakDisclaimerModal = __decorate([
18244    (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .injectable */ ._G)()
18245], VehiclePricestakDisclaimerModal);
18246
18247
18248
18249/***/ }),
18250
18251/***/ 6611:
18252/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18253
18254"use strict";
18255/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18256/* harmony export */   J: () => (/* binding */ SrpPageSettingsModel),
18257/* harmony export */   K: () => (/* binding */ SrpFilterType)
18258/* harmony export */ });
18259class SrpPageSettingsModel {
18260}
18261var SrpFilterType;
18262(function (SrpFilterType) {
18263    SrpFilterType[SrpFilterType["Dynamic"] = 0] = "Dynamic";
18264    SrpFilterType[SrpFilterType["Applied"] = 1] = "Applied";
18265})(SrpFilterType || (SrpFilterType = {}));
18266
18267
18268/***/ }),
18269
18270/***/ 6737:
18271/***/ ((module, __webpack_exports__, __webpack_require__) => {
18272
18273"use strict";
18274__webpack_require__.r(__webpack_exports__);
18275/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18276/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
18277/* harmony export */ });
18278/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
18279/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
18280/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
18281/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
18282// Imports
18283
18284
18285var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
18286// Module
18287___CSS_LOADER_EXPORT___.push([module.id, `.video-button[data-v-9faa8a96]{border-radius:5px}`, ""]);
18288// Exports
18289/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
18290
18291
18292/***/ }),
18293
18294/***/ 6833:
18295/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
18296
18297// style-loader: Adds some css to the DOM by adding a <style> tag
18298
18299// load the styles
18300var content = __webpack_require__(3902);
18301if(content.__esModule) content = content.default;
18302if(typeof content === 'string') content = [[module.id, content, '']];
18303if(content.locals) module.exports = content.locals;
18304// add the styles to the DOM
18305var add = (__webpack_require__(8449)/* ["default"] */ .A)
18306var update = add("2b9e5a36", content, false, {});
18307// Hot Module Replacement
18308if(false) {}
18309
18310/***/ }),
18311
18312/***/ 6839:
18313/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18314
18315"use strict";
18316/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18317/* harmony export */   t: () => (/* binding */ HideableScrollbar)
18318/* harmony export */ });
18319/* harmony import */ var resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4208);
18320
18321class HideableScrollbar {
18322    constructor(containerElem, addResizeListener = true, addIntersectionListener = false) {
18323        this._containerElem = containerElem;
18324        this._scrollbarVisibleClassName = 'scrollbar-visible';
18325        this._scrollbarEnabledClassName = 'enable-scrolling';
18326        this._elementInView = false;
18327        this._mouseHovering = false;
18328        this._scrollbarVisibleEvent = new Event("scrollbar-visible");
18329        this._scrollbarHiddenEvent = new Event("scrollbar-hidden");
18330        if (addResizeListener) {
18331            this.addResizeListeners();
18332        }
18333        else if (addIntersectionListener) {
18334            this.addIntersectionListeners();
18335        }
18336        this.addHoverListeners(addIntersectionListener);
18337    }
18338    addResizeListeners() {
18339        const elementResizeObserver = new resize_observer_polyfill__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A(() => {
18340            // Apply the appropriate scrollbar styling when container is resized by scrolling through the page
18341            this.checkHeights(this._containerElem, this._mouseHovering, true);
18342        });
18343        elementResizeObserver.observe(this._containerElem);
18344    }
18345    // Enable scrolling only when the element is in full view
18346    addIntersectionListeners() {
18347        const elementIntersectionObserver = new IntersectionObserver((entries) => {
18348            entries.forEach(entry => {
18349                var _a, _b, _c, _d, _e, _f;
18350                if (entry.isIntersecting) {
18351                    (_a = this._containerElem.classList) === null || _a === void 0 ? void 0 : _a.add(this._scrollbarEnabledClassName);
18352                    this._containerElem.scrollIntoView(false);
18353                    this._elementInView = true;
18354                }
18355                else {
18356                    (_c = (_b = this._containerElem) === null || _b === void 0 ? void 0 : _b.classList) === null || _c === void 0 ? void 0 : _c.remove(this._scrollbarVisibleClassName);
18357                    (_d = this._containerElem) === null || _d === void 0 ? void 0 : _d.dispatchEvent(this._scrollbarHiddenEvent);
18358                    (_f = (_e = this._containerElem) === null || _e === void 0 ? void 0 : _e.classList) === null || _f === void 0 ? void 0 : _f.remove(this._scrollbarEnabledClassName);
18359                    this._elementInView = false;
18360                }
18361            });
18362        }, { threshold: 1 });
18363        elementIntersectionObserver.observe(this._containerElem);
18364    }
18365    addHoverListeners(hasIntersectionListener) {
18366        var _a, _b;
18367        (_a = this._containerElem) === null || _a === void 0 ? void 0 : _a.addEventListener('mouseover', () => {
18368            this._mouseHovering = true;
18369            // if mouse is over #srp_filter element and #srp_filter content is overflowing, add class
18370            this.checkHeights(this._containerElem, this._mouseHovering, hasIntersectionListener ? this._elementInView : true);
18371        });
18372        (_b = this._containerElem) === null || _b === void 0 ? void 0 : _b.addEventListener('mouseleave', () => {
18373            this._mouseHovering = false;
18374            // Only remove class if scrollbar exists
18375            this.checkHeights(this._containerElem, this._mouseHovering, hasIntersectionListener ? this._elementInView : true);
18376        });
18377    }
18378    // Function to adjust scrollbar styling in resize events
18379    checkHeights(containerElem, mouseHovering, elementInView) {
18380        var _a, _b, _c, _d, _e, _f;
18381        if (mouseHovering && elementInView && containerElem.scrollHeight > containerElem.clientHeight) {
18382            (_b = (_a = this._containerElem) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.add(this._scrollbarVisibleClassName);
18383            (_c = this._containerElem) === null || _c === void 0 ? void 0 : _c.dispatchEvent(this._scrollbarVisibleEvent);
18384        }
18385        else {
18386            (_e = (_d = this._containerElem) === null || _d === void 0 ? void 0 : _d.classList) === null || _e === void 0 ? void 0 : _e.remove(this._scrollbarVisibleClassName);
18387            (_f = this._containerElem) === null || _f === void 0 ? void 0 : _f.dispatchEvent(this._scrollbarHiddenEvent);
18388        }
18389    }
18390}
18391
18392
18393/***/ }),
18394
18395/***/ 6983:
18396/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
18397
18398"use strict";
18399
18400
18401Object.defineProperty(exports, "__esModule", ({
18402  value: true
18403}));
18404exports.Lookup = void 0;
18405var ERROR_MSGS = __webpack_require__(7718);
18406var Lookup = function () {
18407  function Lookup() {
18408    this._map = new Map();
18409  }
18410  Lookup.prototype.getMap = function () {
18411    return this._map;
18412  };
18413  Lookup.prototype.add = function (serviceIdentifier, value) {
18414    if (serviceIdentifier === null || serviceIdentifier === undefined) {
18415      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
18416    }
18417    if (value === null || value === undefined) {
18418      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
18419    }
18420    var entry = this._map.get(serviceIdentifier);
18421    if (entry !== undefined) {
18422      entry.push(value);
18423      this._map.set(serviceIdentifier, entry);
18424    } else {
18425      this._map.set(serviceIdentifier, [value]);
18426    }
18427  };
18428  Lookup.prototype.get = function (serviceIdentifier) {
18429    if (serviceIdentifier === null || serviceIdentifier === undefined) {
18430      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
18431    }
18432    var entry = this._map.get(serviceIdentifier);
18433    if (entry !== undefined) {
18434      return entry;
18435    } else {
18436      throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
18437    }
18438  };
18439  Lookup.prototype.remove = function (serviceIdentifier) {
18440    if (serviceIdentifier === null || serviceIdentifier === undefined) {
18441      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
18442    }
18443    if (!this._map.delete(serviceIdentifier)) {
18444      throw new Error(ERROR_MSGS.KEY_NOT_FOUND);
18445    }
18446  };
18447  Lookup.prototype.removeByCondition = function (condition) {
18448    var _this = this;
18449    this._map.forEach(function (entries, key) {
18450      var updatedEntries = entries.filter(function (entry) {
18451        return !condition(entry);
18452      });
18453      if (updatedEntries.length > 0) {
18454        _this._map.set(key, updatedEntries);
18455      } else {
18456        _this._map.delete(key);
18457      }
18458    });
18459  };
18460  Lookup.prototype.hasKey = function (serviceIdentifier) {
18461    if (serviceIdentifier === null || serviceIdentifier === undefined) {
18462      throw new Error(ERROR_MSGS.NULL_ARGUMENT);
18463    }
18464    return this._map.has(serviceIdentifier);
18465  };
18466  Lookup.prototype.clone = function () {
18467    var copy = new Lookup();
18468    this._map.forEach(function (value, key) {
18469      value.forEach(function (b) {
18470        return copy.add(key, b.clone());
18471      });
18472    });
18473    return copy;
18474  };
18475  Lookup.prototype.traverse = function (func) {
18476    this._map.forEach(function (value, key) {
18477      func(key, value);
18478    });
18479  };
18480  return Lookup;
18481}();
18482exports.Lookup = Lookup;
18483
18484/***/ }),
18485
18486/***/ 7067:
18487/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18488
18489"use strict";
18490/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18491/* harmony export */   Y: () => (/* binding */ TdgConfirmAndContactButtons)
18492/* harmony export */ });
18493/* unused harmony export TdgButtonType */
18494/* harmony import */ var inversify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(260);
18495/* harmony import */ var _core_enums_uiLocationVersion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3277);
18496/* harmony import */ var _infrastructure_vue_cosmosSrp_customEvents__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9600);
18497/* harmony import */ var _services_toggles_iToggleService__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(4478);
18498/* harmony import */ var _types_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5644);
18499/* harmony import */ var _services_stores_iStoreProvider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(2770);
18500var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18501    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18502    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18503    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18504    return c > 3 && r && Object.defineProperty(target, key, r), r;
18505};
18506var __metadata = (undefined && undefined.__metadata) || function (k, v) {
18507    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
18508};
18509var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
18510    return function (target, key) { decorator(target, key, paramIndex); }
18511};
18512var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
18513    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18514    return new (P || (P = Promise))(function (resolve, reject) {
18515        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18516        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18517        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18518        step((generator = generator.apply(thisArg, _arguments || [])).next());
18519    });
18520};
18521var _a, _b;
18522
18523
18524
18525
18526
18527
18528var TdgButtonType;
18529(function (TdgButtonType) {
18530    TdgButtonType[TdgButtonType["ConfirmAvailability"] = 0] = "ConfirmAvailability";
18531    TdgButtonType[TdgButtonType["ContactDealer"] = 1] = "ContactDealer";
18532})(TdgButtonType || (TdgButtonType = {}));
18533let TdgConfirmAndContactButtons = class TdgConfirmAndContactButtons {
18534    constructor(storeProvider, toggleService) {
18535        this._confirmReplacementCode = "#DG_CONFIRM_AVAILABILITY#";
18536        this._contactDealerReplacementCode = "#DG_CONTACT_DEALER#";
18537        this._tdgAttribute = "data-istdg";
18538        this.storeProvider = storeProvider;
18539        this.toggleService = toggleService;
18540    }
18541    initialize(uiLocationVersion) {
18542        var _a, _b, _c, _d;
18543        return __awaiter(this, void 0, void 0, function* () {
18544            if (uiLocationVersion === _core_enums_uiLocationVersion__WEBPACK_IMPORTED_MODULE_1__/* .UiLocationVersion */ .I.SrpWasabi || uiLocationVersion === _core_enums_uiLocationVersion__WEBPACK_IMPORTED_MODULE_1__/* .UiLocationVersion */ .I.VehicleCardDeck) {
18545                this._globalStore = this.storeProvider.getGlobalStore();
18546            }
18547            this._isTdgDealer = (_b = (_a = this._globalStore) === null || _a === void 0 ? void 0 : _a.getIsTdgDealer) !== null && _b !== void 0 ? _b : ((_d = (_c = document.querySelector(`[${this._tdgAttribute}]`)) === null || _c === void 0 ? void 0 : _c.getAttribute(this._tdgAttribute)) === null || _d === void 0 ? void 0 : _d.toLowerCase()) === "true";
18548            this._uiLocationVersion = uiLocationVersion;
18549            yield this.addLoadListener();
18550        });
18551    }
18552    addLoadListener() {
18553        return __awaiter(this, void 0, void 0, function* () {
18554            switch (this._uiLocationVersion) {
18555                case _core_enums_uiLocationVersion__WEBPACK_IMPORTED_MODULE_1__/* .UiLocationVersion */ .I.SrpWasabi:
18556                    document.addEventListener(_infrastructure_vue_cosmosSrp_customEvents__WEBPACK_IMPORTED_MODULE_2__/* .CosmosSrpCustomEvents */ .A.VehicleLoadEnd, () => __awaiter(this, void 0, void 0, function* () { return yield this.initializeButtons(); }));
18557                    document.addEventListener(_infrastructure_vue_cosmosSrp_customEvents__WEBPACK_IMPORTED_MODULE_2__/* .CosmosSrpCustomEvents */ .A.PricingVisibilityAdjusted, () => __awaiter(this, void 0, void 0, function* () { return yield this.initializeButtons(); }));
18558                    break;
18559                case _core_enums_uiLocationVersion__WEBPACK_IMPORTED_MODULE_1__/* .UiLocationVersion */ .I.VdpHoisin:
18560                    if (document.readyState === 'loading') {
18561                        document.addEventListener("DOMContentLoaded", () => __awaiter(this, void 0, void 0, function* () { return yield this.initializeButtons(); }));
18562                        return;
18563                    }
18564                    yield this.initializeButtons();
18565                    break;
18566                default:
18567                    break;
18568            }
18569        });
18570    }
18571    initializeButtons() {
18572        return __awaiter(this, void 0, void 0, function* () {
18573            this._confirmAvailabilityElements = this.getButtons(this._confirmReplacementCode);
18574            this._contactDealerElements = this.getButtons(this._contactDealerReplacementCode);
18575            this._confirmAvailabilityElements.forEach((element) => {
18576                element.setAttribute("disabled", "");
18577            });
18578            this._contactDealerElements.forEach((element) => {
18579                element.setAttribute("disabled", "");
18580            });
18581            if (this._isTdgDealer && (yield this.checkIsTdgLoadedAsync())) {
18582                this.onTdgLoaded();
18583            }
18584        });
18585    }
18586    getButtons(selector) {
18587        const elements = document.querySelectorAll(`[data-elementtype="LinkButton"][href="${selector}"]`);
18588        return Array.from(elements);
18589    }
18590    checkIsTdgLoadedAsync() {
18591        return __awaiter(this, void 0, void 0, function* () {
18592            if (window.DGDataHub) {
18593                return true;
18594            }
18595            for (let i = 0; i < 10; i++) {
18596                const loaded = yield new Promise(resolve => {
18597                    setTimeout(() => {
18598                        resolve(!!window.DGDataHub);
18599                    }, 100);
18600                });
18601                if (loaded) {
18602                    return true;
18603                }
18604            }
18605            console.error("TDG library failed to load in time.");
18606            return false;
18607        });
18608    }
18609    addButtonListener(element, buttonType) {
18610        element.removeAttribute("disabled");
18611        element.setAttribute("href", "javascript:void(0);");
18612        element.addEventListener("click", (event) => {
18613            if (event.target === element) {
18614                this.onCtaClick(element, buttonType);
18615            }
18616        });
18617    }
18618    onTdgLoaded() {
18619        this._confirmAvailabilityElements.forEach((element) => {
18620            this.addButtonListener(element, TdgButtonType.ConfirmAvailability);
18621        });
18622        this._contactDealerElements.forEach((element) => {
18623            this.addButtonListener(element, TdgButtonType.ContactDealer);
18624        });
18625    }
18626    onCtaClick(element, buttonType) {
18627        var _a, _b, _c, _d, _e, _f;
18628        const vehicleInfo = element.closest("[data-vehicle-information]");
18629        const vin = (_b = (_a = vehicleInfo === null || vehicleInfo === void 0 ? void 0 : vehicleInfo.dataset) === null || _a === void 0 ? void 0 : _a.vin) !== null && _b !== void 0 ? _b : "";
18630        const isNew = ((_c = vehicleInfo === null || vehicleInfo === void 0 ? void 0 : vehicleInfo.dataset) === null || _c === void 0 ? void 0 : _c.vehicletype) === "new";
18631        const isCpo = ((_d = vehicleInfo === null || vehicleInfo === void 0 ? void 0 : vehicleInfo.dataset) === null || _d === void 0 ? void 0 : _d.cpo) === "true";
18632        let vehicleType;
18633        if (isNew) {
18634            vehicleType = "new";
18635        }
18636        else {
18637            vehicleType = isCpo ? "cpo" : "used";
18638        }
18639        switch (buttonType) {
18640            case TdgButtonType.ConfirmAvailability:
18641                (_e = window.DGDataHub) === null || _e === void 0 ? void 0 : _e.showConfirmAvailability(vin, vehicleType);
18642                break;
18643            case TdgButtonType.ContactDealer:
18644                (_f = window.DGDataHub) === null || _f === void 0 ? void 0 : _f.showContactDealer(vin, vehicleType);
18645                break;
18646            default:
18647                break;
18648        }
18649    }
18650};
18651TdgConfirmAndContactButtons = __decorate([
18652    (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .injectable */ ._G)(),
18653    __param(0, (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .inject */ .WQ)(_types_types__WEBPACK_IMPORTED_MODULE_3__/* .TYPES */ .Q.IStoreProvider)),
18654    __param(1, (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .inject */ .WQ)(_types_types__WEBPACK_IMPORTED_MODULE_3__/* .TYPES */ .Q.IToggleService)),
18655    __metadata("design:paramtypes", [typeof (_a = typeof _services_stores_iStoreProvider__WEBPACK_IMPORTED_MODULE_4__/* .IStoreProvider */ .y !== "undefined" && _services_stores_iStoreProvider__WEBPACK_IMPORTED_MODULE_4__/* .IStoreProvider */ .y) === "function" ? _a : Object, typeof (_b = typeof _services_toggles_iToggleService__WEBPACK_IMPORTED_MODULE_5__/* .IToggleService */ .F !== "undefined" && _services_toggles_iToggleService__WEBPACK_IMPORTED_MODULE_5__/* .IToggleService */ .F) === "function" ? _b : Object])
18656], TdgConfirmAndContactButtons);
18657
18658
18659
18660/***/ }),
18661
18662/***/ 7090:
18663/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18664
18665"use strict";
18666/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18667/* harmony export */   d: () => (/* binding */ ServiceHelpers)
18668/* harmony export */ });
18669/* harmony import */ var _components_spaCosmos_pagination_pagingModel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1719);
18670/* harmony import */ var _utilities_urlHelpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7324);
18671var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
18672    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18673    return new (P || (P = Promise))(function (resolve, reject) {
18674        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18675        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18676        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18677        step((generator = generator.apply(thisArg, _arguments || [])).next());
18678    });
18679};
18680var _a;
18681
18682
18683class ServiceHelpers {
18684    static mapArrayToQueryString(searchParams) {
18685        return searchParams.map(param => {
18686            switch (param.key) {
18687                // Base64 encode any dql query parameters
18688                case "dql":
18689                    return `${param.key}=${btoa(param.value).replace(/\+/g, "%2B")}`;
18690                default:
18691                    // Use default behavior for other keys
18692                    return `${param.key}=${param.value}`;
18693            }
18694        }).join('&');
18695    }
18696}
18697_a = ServiceHelpers;
18698ServiceHelpers.sendApiRequest = (url) => __awaiter(void 0, void 0, void 0, function* () {
18699    try {
18700        const response = yield fetch(url);
18701        if (response.ok) {
18702            const responseText = yield response.text();
18703            try {
18704                const responseData = JSON.parse(responseText);
18705                return responseData;
18706            }
18707            catch (error) {
18708                console.error(new Error(`Error parsing JSON data from endpoint ${url}: ${error.message}
18709            \n\nData that failed JSON-parsing:\n\n${responseText}`));
18710            }
18711        }
18712        else {
18713            throw new Error(`Error: ${response.status} for endpoint ${url}`);
18714        }
18715    }
18716    catch (error) {
18717        console.error(new Error(`Error fetching data from ${url}: ${error.message}`));
18718    }
18719});
18720//HACK: we can't use the built in URLSearchParams because we let dealers use unsafe querystring params
18721ServiceHelpers.getBaseApiQueryString = (paginationData = null, dynamicCountsSearch = null) => {
18722    var _b, _c, _d, _e;
18723    var search = dynamicCountsSearch ? dynamicCountsSearch : window.location.search;
18724    const searchParams = _utilities_urlHelpers__WEBPACK_IMPORTED_MODULE_1__/* .UrlHelpers */ .b.queryStringToArray(search);
18725    searchParams.push({ "key": "host", "value": window.location.host });
18726    const pageNumber = (_c = (_b = searchParams.find(param => param.key === _components_spaCosmos_pagination_pagingModel__WEBPACK_IMPORTED_MODULE_0__/* .PaginationQueryParams */ .p.PageNumber)) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : paginationData === null || paginationData === void 0 ? void 0 : paginationData.PageNumber;
18727    // don't put the pt param if it's the first page
18728    if (pageNumber && pageNumber > 1) {
18729        _a.setSearchParam(_components_spaCosmos_pagination_pagingModel__WEBPACK_IMPORTED_MODULE_0__/* .PaginationQueryParams */ .p.PageNumber, +pageNumber, searchParams);
18730    }
18731    const pageSize = (_e = (_d = searchParams.find(param => param.key === _components_spaCosmos_pagination_pagingModel__WEBPACK_IMPORTED_MODULE_0__/* .PaginationQueryParams */ .p.PageSize)) === null || _d === void 0 ? void 0 : _d.value) !== null && _e !== void 0 ? _e : paginationData === null || paginationData === void 0 ? void 0 : paginationData.PageSize;
18732    // TODO: don't put the pn param if it's the default value
18733    if (pageSize && pageSize > 0) {
18734        _a.setSearchParam(_components_spaCosmos_pagination_pagingModel__WEBPACK_IMPORTED_MODULE_0__/* .PaginationQueryParams */ .p.PageSize, +pageSize, searchParams);
18735    }
18736    return searchParams;
18737};
18738ServiceHelpers.setSearchParam = (paramName, paramValue, searchParams) => {
18739    const existingParam = searchParams.find(param => param.key === paramName);
18740    if (paramValue !== '' && paramValue !== null && paramValue !== undefined) {
18741        const btoaFilters = ["dql"];
18742        if (btoaFilters.includes(paramName)) {
18743            paramValue = btoa(paramValue).replace(/\+/g, "%2B");
18744        }
18745        //if the paramName already exists, update it
18746        if (existingParam) {
18747            searchParams[searchParams.indexOf(existingParam)].value = paramValue;
18748        }
18749        else {
18750            //otherwise add it
18751            searchParams.push({ "key": paramName, "value": paramValue });
18752        }
18753    }
18754    else {
18755        //remove the param if it exists and the value is null or empty string
18756        if (existingParam && (paramValue === '' || paramValue === null || paramValue === undefined)) {
18757            searchParams.splice(searchParams.indexOf(existingParam), 1);
18758        }
18759    }
18760};
18761
18762
18763/***/ }),
18764
18765/***/ 7324:
18766/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18767
18768"use strict";
18769/* harmony export */ __webpack_require__.d(__webpack_exports__, {
18770/* harmony export */   b: () => (/* binding */ UrlHelpers)
18771/* harmony export */ });
18772class UrlHelpers {
18773    static mapArrayToQueryString(searchParams) {
18774        return searchParams.map(param => param.value ? `${param.key}=${param.value}` : `${param.key}`).join('&');
18775    }
18776    static queryStringToArray(queryString) {
18777        // Remove leading '?' if present
18778        if (queryString === null || queryString === void 0 ? void 0 : queryString.startsWith('?')) {
18779            queryString = queryString.slice(1);
18780        }
18781        if (!queryString) {
18782            return []; // Return empty array if no query string
18783        }
18784        const keyValuePairs = queryString.split('&');
18785        const params = keyValuePairs.map((pair) => {
18786            // Split the key and value (with potential trailing =)
18787            const [key, ...valueParts] = pair.split('=');
18788            // Join the value parts (keeping trailing =)
18789            const value = valueParts.join('=');
18790            //we can't use decodeURIComponent because we allow dealers to use unsafe characters
18791            return {
18792                key: key,
18793                value: value
18794            };
18795        });
18796        return params;
18797    }
18798}
18799UrlHelpers.setQueryParam = (paramName, paramValue, searchParams) => {
18800    //update an existing value if the key exists
18801    const existingParam = searchParams.findIndex(param => param.key === paramName);
18802    if (existingParam > -1) {
18803        searchParams.splice(existingParam, 1);
18804    }
18805    searchParams.push({ "key": paramName, "value": paramValue });
18806};
18807
18808
18809/***/ }),
18810
18811/***/ 7363:
18812/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
18813
18814"use strict";
18815
18816// EXPORTS
18817__webpack_require__.d(__webpack_exports__, {
18818  lM: () => (/* binding */ Toggle),
18819  gH: () => (/* binding */ ToggleService)
18820});
18821
18822// UNUSED EXPORTS: ExperimentToggle
18823
18824// NAMESPACE OBJECT: ./src/services/toggles/iToggleFetcher.ts
18825var iToggleFetcher_namespaceObject = {};
18826__webpack_require__.r(iToggleFetcher_namespaceObject);
18827
18828// EXTERNAL MODULE: ./node_modules/inversify/lib/inversify.js
18829var inversify = __webpack_require__(260);
18830// EXTERNAL MODULE: ./src/types/types.ts
18831var types = __webpack_require__(5644);
18832// EXTERNAL MODULE: ./src/utilities/urlHelpers.ts
18833var urlHelpers = __webpack_require__(7324);
18834;// ./src/services/toggles/iToggleFetcher.ts
18835
18836
18837;// ./src/services/toggles/toggleService.ts
18838var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18839    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18840    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18841    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18842    return c > 3 && r && Object.defineProperty(target, key, r), r;
18843};
18844var __metadata = (undefined && undefined.__metadata) || function (k, v) {
18845    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
18846};
18847var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
18848    return function (target, key) { decorator(target, key, paramIndex); }
18849};
18850var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
18851    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18852    return new (P || (P = Promise))(function (resolve, reject) {
18853        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18854        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18855        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18856        step((generator = generator.apply(thisArg, _arguments || [])).next());
18857    });
18858};
18859var _a;
18860
18861
18862
18863
18864let ToggleService = class ToggleService {
18865    constructor(dataFetcher) {
18866        this.toggles = null;
18867        this.storeToggles = (data, dealerId) => {
18868            const dataString = JSON.stringify(data);
18869            this.setSessionStorage(this.getStorageLocation(dealerId), dataString);
18870        };
18871        // This pulls all of the Toggles from the back-end.
18872        // Note: If a toggle is not found then it it will return false, so if you want to allow a
18873        //  queryString parm to override the toggles, you need to call getExperiment() instead
18874        //  of getToggleStatus()
18875        this.getToggleStatus = (toggle) => {
18876            if (!this.toggles) {
18877                return false;
18878            }
18879            //Experiment toggles are not stored in session storage but will override any other toggle
18880            //  so check this first before looking in session storage
18881            const experimentToggle = this.getExperimentToggle(toggle);
18882            if (typeof experimentToggle === 'boolean') {
18883                return experimentToggle;
18884            }
18885            if (!this.toggles) {
18886                return false;
18887            }
18888            let storedToggleValue = this.toggles[toggle];
18889            if (storedToggleValue === true) {
18890                return true;
18891            }
18892            return false;
18893        };
18894        this.dataFetcher = dataFetcher;
18895    }
18896    initialize() {
18897        return __awaiter(this, void 0, void 0, function* () {
18898            const data = yield this.dataFetcher.fetch();
18899            this.toggles = data;
18900            this.storeToggles(data, window.DlronGlobal_DealerId);
18901        });
18902    }
18903    getStorageLocation(dealerId) {
18904        return `sessionToggles_${dealerId}`;
18905    }
18906    setSessionStorage(storageLocation, response) {
18907        if (response !== null) {
18908            sessionStorage.setItem(storageLocation, response);
18909        }
18910        else {
18911            sessionStorage.removeItem(storageLocation);
18912        }
18913    }
18914    getQueryStringParam(queryString, paramName) {
18915        const params = urlHelpers/* UrlHelpers */.b.queryStringToArray(queryString);
18916        // Iterate over all the parameter keys
18917        for (const { key, value } of params) {
18918            if (key.toLowerCase() === paramName.toLowerCase()) {
18919                // Return the value of the matching parameter
18920                return value;
18921            }
18922        }
18923        // Parameter not found
18924        return null;
18925    }
18926    //NOTE: For experiments to work from queryString you need to manually add them to this function
18927    getExperimentToggle(toggle) {
18928        let experimentResult = null;
18929        switch (toggle) {
18930            case Toggle.AltDealerIdProtection_DO46595:
18931                experimentResult = this.getQueryStringParam(window.location.search, ExperimentToggle.AltDealerIdProtection_DO46595);
18932                break;
18933            case Toggle.BannersConfigUpdate:
18934                experimentResult = this.getQueryStringParam(window.location.search, ExperimentToggle.BannersConfigUpdate);
18935                break;
18936            case Toggle.DO35873:
18937                experimentResult = this.getQueryStringParam(window.location.search, ExperimentToggle.DO35873);
18938                break;
18939            case Toggle.DO37371:
18940                experimentResult = this.getQueryStringParam(window.location.search, ExperimentToggle.DO37371);
18941                break;
18942            case Toggle.EmailRefactor:
18943                experimentResult = this.getQueryStringParam(window.location.search, ExperimentToggle.EmailRefactor);
18944                break;
18945            case Toggle.HideZeroCountFilters:
18946                experimentResult = this.getQueryStringParam(window.location.search, ExperimentToggle.HideZeroCountFilters);
18947                break;
18948            case Toggle.LS2531:
18949                experimentResult = this.getQueryStringParam(window.location.search, ExperimentToggle.LS2531);
18950                break;
18951            case Toggle.ShowMileageWhenZeroMiles_OEM12049:
18952                experimentResult = this.getQueryStringParam(window.location.search, ExperimentToggle.ShowMileageWhenZeroMiles_OEM12049);
18953                break;
18954            case Toggle.SubaruModelFamilyFilter_DO57714:
18955                experimentResult = this.getQueryStringParam(globalThis.location.search, ExperimentToggle.SubaruModelFamilyFilter_DO57714);
18956                break;
18957            case Toggle.VehicleCardAlignment_DO48222:
18958                experimentResult = this.getQueryStringParam(window.location.search, ExperimentToggle.VehicleCardAlignment_DO48222);
18959                break;
18960        }
18961        switch (experimentResult) {
18962            case "on": return true;
18963            case "off": return false;
18964            default: return null;
18965        }
18966    }
18967};
18968ToggleService = __decorate([
18969    (0,inversify/* injectable */._G)(),
18970    __param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IToggleFetcher)),
18971    __metadata("design:paramtypes", [typeof (_a = typeof iToggleFetcher_namespaceObject.IToggleFetcher !== "undefined" && iToggleFetcher_namespaceObject.IToggleFetcher) === "function" ? _a : Object])
18972], ToggleService);
18973
18974//NOTE: Update these when adding new toggles that apply to client side features
18975//       that need to know about them conversions
18976var Toggle;
18977(function (Toggle) {
18978    Toggle["AltDealerIdProtection_DO46595"] = "AltDealerIdProtection_DO46595";
18979    Toggle["BannersConfigUpdate"] = "BannersConfigUpdate";
18980    Toggle["DO35873"] = "DO35873";
18981    Toggle["DO37371"] = "DO37371";
18982    Toggle["EmailRefactor"] = "EmailRefactor";
18983    Toggle["HideZeroCountFilters"] = "HideZeroCountFilters";
18984    Toggle["LS2531"] = "LS2531";
18985    Toggle["SubaruModelFamilyFilter_DO57714"] = "SubaruModelFamilyFilter_DO57714";
18986    Toggle["VehicleCardAlignment_DO48222"] = "VehicleCardAlignment_DO48222";
18987    Toggle["ShowMileageWhenZeroMiles_OEM12049"] = "ShowMileageWhenZeroMiles_OEM12049";
18988})(Toggle || (Toggle = {}));
18989var ExperimentToggle;
18990(function (ExperimentToggle) {
18991    ExperimentToggle["AltDealerIdProtection_DO46595"] = "AltDealerIdProtection_DO46595";
18992    ExperimentToggle["BannersConfigUpdate"] = "BannersConfigUpdate";
18993    ExperimentToggle["DO35873"] = "DO35873";
18994    ExperimentToggle["DO37371"] = "DO37371";
18995    ExperimentToggle["EmailRefactor"] = "EmailRefactor";
18996    ExperimentToggle["HideZeroCountFilters"] = "HideZeroCountFilters";
18997    ExperimentToggle["LS2531"] = "LS2531";
18998    ExperimentToggle["SubaruModelFamilyFilter_DO57714"] = "SubaruModelFamilyFilter_DO57714";
18999    ExperimentToggle["VehicleCardAlignment_DO48222"] = "VehicleCardAlignment_DO48222";
19000    ExperimentToggle["ShowMileageWhenZeroMiles_OEM12049"] = "ShowMileageWhenZeroMiles_OEM12049";
19001})(ExperimentToggle || (ExperimentToggle = {}));
19002
19003
19004/***/ }),
19005
19006/***/ 7442:
19007/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
19008
19009"use strict";
19010
19011
19012Object.defineProperty(exports, "__esModule", ({
19013  value: true
19014}));
19015exports.inject = exports.LazyServiceIdentifer = void 0;
19016var error_msgs_1 = __webpack_require__(7718);
19017var METADATA_KEY = __webpack_require__(4725);
19018var metadata_1 = __webpack_require__(8390);
19019var decorator_utils_1 = __webpack_require__(40);
19020var LazyServiceIdentifer = function () {
19021  function LazyServiceIdentifer(cb) {
19022    this._cb = cb;
19023  }
19024  LazyServiceIdentifer.prototype.unwrap = function () {
19025    return this._cb();
19026  };
19027  return LazyServiceIdentifer;
19028}();
19029exports.LazyServiceIdentifer = LazyServiceIdentifer;
19030function inject(serviceIdentifier) {
19031  return function (target, targetKey, index) {
19032    if (serviceIdentifier === undefined) {
19033      throw new Error(error_msgs_1.UNDEFINED_INJECT_ANNOTATION(target.name));
19034    }
19035    var metadata = new metadata_1.Metadata(METADATA_KEY.INJECT_TAG, serviceIdentifier);
19036    if (typeof index === "number") {
19037      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
19038    } else {
19039      decorator_utils_1.tagProperty(target, targetKey, metadata);
19040    }
19041  };
19042}
19043exports.inject = inject;
19044
19045/***/ }),
19046
19047/***/ 7493:
19048/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19049
19050// style-loader: Adds some css to the DOM by adding a <style> tag
19051
19052// load the styles
19053var content = __webpack_require__(2620);
19054if(content.__esModule) content = content.default;
19055if(typeof content === 'string') content = [[module.id, content, '']];
19056if(content.locals) module.exports = content.locals;
19057// add the styles to the DOM
19058var add = (__webpack_require__(8449)/* ["default"] */ .A)
19059var update = add("5ed402e7", content, false, {});
19060// Hot Module Replacement
19061if(false) {}
19062
19063/***/ }),
19064
19065/***/ 7549:
19066/***/ ((__unused_webpack_module, exports) => {
19067
19068"use strict";
19069
19070
19071Object.defineProperty(exports, "__esModule", ({
19072  value: true
19073}));
19074exports.ContainerSnapshot = void 0;
19075var ContainerSnapshot = function () {
19076  function ContainerSnapshot() {}
19077  ContainerSnapshot.of = function (bindings, middleware) {
19078    var snapshot = new ContainerSnapshot();
19079    snapshot.bindings = bindings;
19080    snapshot.middleware = middleware;
19081    return snapshot;
19082  };
19083  return ContainerSnapshot;
19084}();
19085exports.ContainerSnapshot = ContainerSnapshot;
19086
19087/***/ }),
19088
19089/***/ 7569:
19090/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19091
19092// style-loader: Adds some css to the DOM by adding a <style> tag
19093
19094// load the styles
19095var content = __webpack_require__(8943);
19096if(content.__esModule) content = content.default;
19097if(typeof content === 'string') content = [[module.id, content, '']];
19098if(content.locals) module.exports = content.locals;
19099// add the styles to the DOM
19100var add = (__webpack_require__(8449)/* ["default"] */ .A)
19101var update = add("aab4a7e8", content, false, {});
19102// Hot Module Replacement
19103if(false) {}
19104
19105/***/ }),
19106
19107/***/ 7590:
19108/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
19109
19110"use strict";
19111
19112
19113Object.defineProperty(exports, "__esModule", ({
19114  value: true
19115}));
19116exports.named = void 0;
19117var METADATA_KEY = __webpack_require__(4725);
19118var metadata_1 = __webpack_require__(8390);
19119var decorator_utils_1 = __webpack_require__(40);
19120function named(name) {
19121  return function (target, targetKey, index) {
19122    var metadata = new metadata_1.Metadata(METADATA_KEY.NAMED_TAG, name);
19123    if (typeof index === "number") {
19124      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
19125    } else {
19126      decorator_utils_1.tagProperty(target, targetKey, metadata);
19127    }
19128  };
19129}
19130exports.named = named;
19131
19132/***/ }),
19133
19134/***/ 7718:
19135/***/ ((__unused_webpack_module, exports) => {
19136
19137"use strict";
19138
19139
19140Object.defineProperty(exports, "__esModule", ({
19141  value: true
19142}));
19143exports.STACK_OVERFLOW = exports.CIRCULAR_DEPENDENCY_IN_FACTORY = exports.POST_CONSTRUCT_ERROR = exports.MULTIPLE_POST_CONSTRUCT_METHODS = exports.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = exports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = exports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = exports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = exports.ARGUMENTS_LENGTH_MISMATCH = exports.INVALID_DECORATOR_OPERATION = exports.INVALID_TO_SELF_VALUE = exports.INVALID_FUNCTION_BINDING = exports.INVALID_MIDDLEWARE_RETURN = exports.NO_MORE_SNAPSHOTS_AVAILABLE = exports.INVALID_BINDING_TYPE = exports.NOT_IMPLEMENTED = exports.CIRCULAR_DEPENDENCY = exports.UNDEFINED_INJECT_ANNOTATION = exports.MISSING_INJECT_ANNOTATION = exports.MISSING_INJECTABLE_ANNOTATION = exports.NOT_REGISTERED = exports.CANNOT_UNBIND = exports.AMBIGUOUS_MATCH = exports.KEY_NOT_FOUND = exports.NULL_ARGUMENT = exports.DUPLICATED_METADATA = exports.DUPLICATED_INJECTABLE_DECORATOR = void 0;
19144exports.DUPLICATED_INJECTABLE_DECORATOR = "Cannot apply @injectable decorator multiple times.";
19145exports.DUPLICATED_METADATA = "Metadata key was used more than once in a parameter:";
19146exports.NULL_ARGUMENT = "NULL argument";
19147exports.KEY_NOT_FOUND = "Key Not Found";
19148exports.AMBIGUOUS_MATCH = "Ambiguous match found for serviceIdentifier:";
19149exports.CANNOT_UNBIND = "Could not unbind serviceIdentifier:";
19150exports.NOT_REGISTERED = "No matching bindings found for serviceIdentifier:";
19151exports.MISSING_INJECTABLE_ANNOTATION = "Missing required @injectable annotation in:";
19152exports.MISSING_INJECT_ANNOTATION = "Missing required @inject or @multiInject annotation in:";
19153exports.UNDEFINED_INJECT_ANNOTATION = function (name) {
19154  return "@inject called with undefined this could mean that the class " + name + " has " + "a circular dependency problem. You can use a LazyServiceIdentifer to  " + "overcome this limitation.";
19155};
19156exports.CIRCULAR_DEPENDENCY = "Circular dependency found:";
19157exports.NOT_IMPLEMENTED = "Sorry, this feature is not fully implemented yet.";
19158exports.INVALID_BINDING_TYPE = "Invalid binding type:";
19159exports.NO_MORE_SNAPSHOTS_AVAILABLE = "No snapshot available to restore.";
19160exports.INVALID_MIDDLEWARE_RETURN = "Invalid return type in middleware. Middleware must return!";
19161exports.INVALID_FUNCTION_BINDING = "Value provided to function binding must be a function!";
19162exports.INVALID_TO_SELF_VALUE = "The toSelf function can only be applied when a constructor is " + "used as service identifier";
19163exports.INVALID_DECORATOR_OPERATION = "The @inject @multiInject @tagged and @named decorators " + "must be applied to the parameters of a class constructor or a class property.";
19164exports.ARGUMENTS_LENGTH_MISMATCH = function () {
19165  var values = [];
19166  for (var _i = 0; _i < arguments.length; _i++) {
19167    values[_i] = arguments[_i];
19168  }
19169  return "The number of constructor arguments in the derived class " + (values[0] + " must be >= than the number of constructor arguments of its base class.");
19170};
19171exports.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT = "Invalid Container constructor argument. Container options " + "must be an object.";
19172exports.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE = "Invalid Container option. Default scope must " + "be a string ('singleton' or 'transient').";
19173exports.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE = "Invalid Container option. Auto bind injectable must " + "be a boolean";
19174exports.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK = "Invalid Container option. Skip base check must " + "be a boolean";
19175exports.MULTIPLE_POST_CONSTRUCT_METHODS = "Cannot apply @postConstruct decorator multiple times in the same class";
19176exports.POST_CONSTRUCT_ERROR = function () {
19177  var values = [];
19178  for (var _i = 0; _i < arguments.length; _i++) {
19179    values[_i] = arguments[_i];
19180  }
19181  return "@postConstruct error in class " + values[0] + ": " + values[1];
19182};
19183exports.CIRCULAR_DEPENDENCY_IN_FACTORY = function () {
19184  var values = [];
19185  for (var _i = 0; _i < arguments.length; _i++) {
19186    values[_i] = arguments[_i];
19187  }
19188  return "It looks like there is a circular dependency " + ("in one of the '" + values[0] + "' bindings. Please investigate bindings with") + ("service identifier '" + values[1] + "'.");
19189};
19190exports.STACK_OVERFLOW = "Maximum call stack size exceeded";
19191
19192/***/ }),
19193
19194/***/ 7753:
19195/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19196
19197// style-loader: Adds some css to the DOM by adding a <style> tag
19198
19199// load the styles
19200var content = __webpack_require__(2486);
19201if(content.__esModule) content = content.default;
19202if(typeof content === 'string') content = [[module.id, content, '']];
19203if(content.locals) module.exports = content.locals;
19204// add the styles to the DOM
19205var add = (__webpack_require__(8449)/* ["default"] */ .A)
19206var update = add("ed37f76c", content, false, {});
19207// Hot Module Replacement
19208if(false) {}
19209
19210/***/ }),
19211
19212/***/ 7802:
19213/***/ ((__unused_webpack_module, exports) => {
19214
19215"use strict";
19216
19217
19218Object.defineProperty(exports, "__esModule", ({
19219  value: true
19220}));
19221exports.TargetTypeEnum = exports.BindingTypeEnum = exports.BindingScopeEnum = void 0;
19222var BindingScopeEnum = {
19223  Request: "Request",
19224  Singleton: "Singleton",
19225  Transient: "Transient"
19226};
19227exports.BindingScopeEnum = BindingScopeEnum;
19228var BindingTypeEnum = {
19229  ConstantValue: "ConstantValue",
19230  Constructor: "Constructor",
19231  DynamicValue: "DynamicValue",
19232  Factory: "Factory",
19233  Function: "Function",
19234  Instance: "Instance",
19235  Invalid: "Invalid",
19236  Provider: "Provider"
19237};
19238exports.BindingTypeEnum = BindingTypeEnum;
19239var TargetTypeEnum = {
19240  ClassProperty: "ClassProperty",
19241  ConstructorArgument: "ConstructorArgument",
19242  Variable: "Variable"
19243};
19244exports.TargetTypeEnum = TargetTypeEnum;
19245
19246/***/ }),
19247
19248/***/ 7827:
19249/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19250
19251// style-loader: Adds some css to the DOM by adding a <style> tag
19252
19253// load the styles
19254var content = __webpack_require__(8508);
19255if(content.__esModule) content = content.default;
19256if(typeof content === 'string') content = [[module.id, content, '']];
19257if(content.locals) module.exports = content.locals;
19258// add the styles to the DOM
19259var add = (__webpack_require__(8449)/* ["default"] */ .A)
19260var update = add("1196aa5a", content, false, {});
19261// Hot Module Replacement
19262if(false) {}
19263
19264/***/ }),
19265
19266/***/ 7891:
19267/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19268
19269// style-loader: Adds some css to the DOM by adding a <style> tag
19270
19271// load the styles
19272var content = __webpack_require__(2564);
19273if(content.__esModule) content = content.default;
19274if(typeof content === 'string') content = [[module.id, content, '']];
19275if(content.locals) module.exports = content.locals;
19276// add the styles to the DOM
19277var add = (__webpack_require__(8449)/* ["default"] */ .A)
19278var update = add("5cb0c63c", content, false, {});
19279// Hot Module Replacement
19280if(false) {}
19281
19282/***/ }),
19283
19284/***/ 7911:
19285/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
19286
19287"use strict";
19288
19289
19290Object.defineProperty(exports, "__esModule", ({
19291  value: true
19292}));
19293exports.circularDependencyToException = exports.listMetadataForTarget = exports.listRegisteredBindingsForServiceIdentifier = exports.getServiceIdentifierAsString = exports.getFunctionName = void 0;
19294var ERROR_MSGS = __webpack_require__(7718);
19295function getServiceIdentifierAsString(serviceIdentifier) {
19296  if (typeof serviceIdentifier === "function") {
19297    var _serviceIdentifier = serviceIdentifier;
19298    return _serviceIdentifier.name;
19299  } else if (typeof serviceIdentifier === "symbol") {
19300    return serviceIdentifier.toString();
19301  } else {
19302    var _serviceIdentifier = serviceIdentifier;
19303    return _serviceIdentifier;
19304  }
19305}
19306exports.getServiceIdentifierAsString = getServiceIdentifierAsString;
19307function listRegisteredBindingsForServiceIdentifier(container, serviceIdentifier, getBindings) {
19308  var registeredBindingsList = "";
19309  var registeredBindings = getBindings(container, serviceIdentifier);
19310  if (registeredBindings.length !== 0) {
19311    registeredBindingsList = "\nRegistered bindings:";
19312    registeredBindings.forEach(function (binding) {
19313      var name = "Object";
19314      if (binding.implementationType !== null) {
19315        name = getFunctionName(binding.implementationType);
19316      }
19317      registeredBindingsList = registeredBindingsList + "\n " + name;
19318      if (binding.constraint.metaData) {
19319        registeredBindingsList = registeredBindingsList + " - " + binding.constraint.metaData;
19320      }
19321    });
19322  }
19323  return registeredBindingsList;
19324}
19325exports.listRegisteredBindingsForServiceIdentifier = listRegisteredBindingsForServiceIdentifier;
19326function alreadyDependencyChain(request, serviceIdentifier) {
19327  if (request.parentRequest === null) {
19328    return false;
19329  } else if (request.parentRequest.serviceIdentifier === serviceIdentifier) {
19330    return true;
19331  } else {
19332    return alreadyDependencyChain(request.parentRequest, serviceIdentifier);
19333  }
19334}
19335function dependencyChainToString(request) {
19336  function _createStringArr(req, result) {
19337    if (result === void 0) {
19338      result = [];
19339    }
19340    var serviceIdentifier = getServiceIdentifierAsString(req.serviceIdentifier);
19341    result.push(serviceIdentifier);
19342    if (req.parentRequest !== null) {
19343      return _createStringArr(req.parentRequest, result);
19344    }
19345    return result;
19346  }
19347  var stringArr = _createStringArr(request);
19348  return stringArr.reverse().join(" --> ");
19349}
19350function circularDependencyToException(request) {
19351  request.childRequests.forEach(function (childRequest) {
19352    if (alreadyDependencyChain(childRequest, childRequest.serviceIdentifier)) {
19353      var services = dependencyChainToString(childRequest);
19354      throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY + " " + services);
19355    } else {
19356      circularDependencyToException(childRequest);
19357    }
19358  });
19359}
19360exports.circularDependencyToException = circularDependencyToException;
19361function listMetadataForTarget(serviceIdentifierString, target) {
19362  if (target.isTagged() || target.isNamed()) {
19363    var m_1 = "";
19364    var namedTag = target.getNamedTag();
19365    var otherTags = target.getCustomTags();
19366    if (namedTag !== null) {
19367      m_1 += namedTag.toString() + "\n";
19368    }
19369    if (otherTags !== null) {
19370      otherTags.forEach(function (tag) {
19371        m_1 += tag.toString() + "\n";
19372      });
19373    }
19374    return " " + serviceIdentifierString + "\n " + serviceIdentifierString + " - " + m_1;
19375  } else {
19376    return " " + serviceIdentifierString;
19377  }
19378}
19379exports.listMetadataForTarget = listMetadataForTarget;
19380function getFunctionName(v) {
19381  if (v.name) {
19382    return v.name;
19383  } else {
19384    var name_1 = v.toString();
19385    var match = name_1.match(/^function\s*([^\s(]+)/);
19386    return match ? match[1] : "Anonymous function: " + name_1;
19387  }
19388}
19389exports.getFunctionName = getFunctionName;
19390
19391/***/ }),
19392
19393/***/ 8043:
19394/***/ ((module, __webpack_exports__, __webpack_require__) => {
19395
19396"use strict";
19397__webpack_require__.r(__webpack_exports__);
19398/* harmony export */ __webpack_require__.d(__webpack_exports__, {
19399/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
19400/* harmony export */ });
19401/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
19402/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
19403/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
19404/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
19405// Imports
19406
19407
19408var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
19409// Module
19410___CSS_LOADER_EXPORT___.push([module.id, `.oem-toyota__tdg--srp-card-specs[data-v-50b80fa6]{flex-wrap:wrap}.oem-toyota__tdg--srp-card-colors[data-v-50b80fa6]{flex-wrap:wrap;row-gap:.7rem}.vehicle-card .oem-toyota__tdg--srp-card-color.vehicle-colors__int[data-v-50b80fa6],.vehicle-card .oem-toyota__tdg--srp-card-color.vehicle-colors__ext[data-v-50b80fa6]{align-items:baseline}.oem-toyota__tdg--srp-card-color-icon[data-v-50b80fa6]{align-self:flex-start}.vehicle-card .oem-toyota__tdg--srp-card-color-value.vehicle-colors__value[data-v-50b80fa6]{overflow:unset;text-overflow:clip;white-space:unset}.vehicle-card__body--signalsforyou[data-v-50b80fa6]{border:solid 2.67px var(--cta-background-color);border-top-right-radius:0px}.vehicle-card--signalsforyou-margin[data-v-50b80fa6]{margin-top:2.4rem}.vehicle-card .save-heart__srp-card-overview.vehicle-overview[data-v-50b80fa6]{grid-template-areas:"title        save-heart   dropdown" "identifiers  identifiers identifiers" "specs        specs       specs";grid-area:save-heart;grid-template-columns:1fr repeat(2, auto);column-gap:.8rem}`, ""]);
19411// Exports
19412/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_
19412LOADER_EXPORT___);
19413
19414
19415/***/ }),
19416
19417/***/ 8066:
19418/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
19419
19420"use strict";
19421
19422// EXPORTS
19423__webpack_require__.d(__webpack_exports__, {
19424  a: () => (/* binding */ VehicleCardWasabi)
19425});
19426
19427// EXTERNAL MODULE: ./node_modules/inversify/lib/inversify.js
19428var inversify = __webpack_require__(260);
19429// EXTERNAL MODULE: ./src/types/types.ts
19430var types = __webpack_require__(5644);
19431// EXTERNAL MODULE: ./src/components/vehicleImageCarousel/vehicleImageCarousel.ts
19432var vehicleImageCarousel = __webpack_require__(4567);
19433;// ./src/utilities/dynamicImportsUtility.ts
19434var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
19435    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19436    return new (P || (P = Promise))(function (resolve, reject) {
19437        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19438        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19439        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19440        step((generator = generator.apply(thisArg, _arguments || [])).next());
19441    });
19442};
19443/**
19444 * Import and instantiate a class when element is scrolled into the frame.
19445 *
19446 * @param {Function} importFunction - the dynamic import function used to import the class file. This should look like import(\/* webpackChunkName: "className" *\/ 'path/to/class/file').
19447 * @param {ElementCollection} observedElements - a DOM element or list of DOM elements for the IntersectionObserver to observe.
19448 * @param {boolean} shouldInstantiate - whether or not the imported module should be newed up.
19449 * @param {IntersectionObserverInit} observerOptions - options to pass to the IntersectionObserver constructor
19450 * @param {...any} otherConstructorArgs - any other arguments to pass to the constructor.
19451 */
19452function importClassOnScroll(importFunction, observedElements, shouldInstantiate, observerOptions, ...otherConstructorArgs) {
19453    const elementList = convertToArray(observedElements);
19454    const observer = new IntersectionObserver((entries) => {
19455        entries === null || entries === void 0 ? void 0 : entries.forEach((entry) => __awaiter(this, void 0, void 0, function* () {
19456            if (entry === null || entry === void 0 ? void 0 : entry.isIntersecting) {
19457                try {
19458                    const importedClass = yield importFunction();
19459                    if (shouldInstantiate) {
19460                        const instantiated = new importedClass.default(entry.target, ...otherConstructorArgs);
19461                    }
19462                    observer.disconnect();
19463                }
19464                catch (error) {
19465                    console.error('An error occurred when trying to dynamically import a class.');
19466                    console.error(error);
19467                    return;
19468                }
19469            }
19470        }));
19471    }, observerOptions);
19472    elementList.forEach((element) => {
19473        observer.observe(element);
19474    });
19475}
19476/**
19477 * Import and instantiate a class when element is clicked, focused, etc.
19478 *
19479 * @param {Function} importFunction - the dynamic import function used to import the class file. This should look like import(\/* webpackChunkName: "className" *\/ 'path/to/class/file').
19480 * @param {ElementCollection} clickableElements - a DOM element or list of DOM elements that would be clicked.
19481 * @param {Event} eventType - the type of event to listen for
19482 * @param {boolean} shouldInstantiate - whether or not the imported module should be newed up.
19483 * @param {boolean | AddEventListenerOptions} listenerOptions - options to pass to the IntersectionObserver constructor
19484 * @param {...any} otherConstructorArgs - any other arguments to pass to the constructor.
19485 */
19486function importClassOnEvent(importFunction, elementsToListenOn, eventType, shouldInstantiate, listenerOptions, ...otherConstructorArgs) {
19487    const elementList = convertToArray(elementsToListenOn);
19488    const events = typeof eventType === 'string' ? [eventType] : eventType;
19489    elementList === null || elementList === void 0 ? void 0 : elementList.forEach((element) => {
19490        events.forEach((event) => {
19491            element.addEventListener(event, function listener(event) {
19492                return __awaiter(this, void 0, void 0, function* () {
19493                    const importedClass = yield importFunction();
19494                    if (shouldInstantiate) {
19495                        const instantiated = new importedClass.default(event.currentTarget, ...otherConstructorArgs);
19496                    }
19497                    this.removeEventListener(eventType, listener);
19498                });
19499            }, listenerOptions);
19500        });
19501    });
19502}
19503function convertToArray(elements) {
19504    if (!elements) {
19505        return [];
19506    }
19507    if ('length' in elements) {
19508        return Array.from(elements);
19509    }
19510    else {
19511        return [elements];
19512    }
19513}
19514/**
19515 * Remove loading states
19516 * @param loadingRegionSelector CSS Selector for parent element that has the aria-busy attribute. This is an accessibility feature that tells assistive technology that an element or region is loading.
19517 * @param loadingLabelElementSelector CSS Selector for screen-reader-only labels indicating that the region is loading
19518 */
19519function setLoadingToFalse(loadingRegionSelector, loadingLabelElementSelector) {
19520    const loadingRegion = document.querySelector(`${loadingRegionSelector}[aria-busy]`);
19521    const loadingLabel = document.querySelector(loadingLabelElementSelector);
19522    loadingRegion === null || loadingRegion === void 0 ? void 0 : loadingRegion.setAttribute('aria-busy', 'false');
19523    loadingLabel === null || loadingLabel === void 0 ? void 0 : loadingLabel.remove();
19524}
19525
19526// EXTERNAL MODULE: ./src/utilities/performanceHelpers.ts
19527var performanceHelpers = __webpack_require__(9185);
19528// EXTERNAL MODULE: ./src/services/toggles/iToggleService.ts
19529var iToggleService = __webpack_require__(4478);
19530// EXTERNAL MODULE: ./src/utilities/jQueryHelper/jQueryHelper.ts
19531var jQueryHelper = __webpack_require__(2781);
19532;// ./src/components/vehicle/vehicleCard/vehicleCardWasabi.ts
19533var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19534    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19535    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19536    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19537    return c > 3 && r && Object.defineProperty(target, key, r), r;
19538};
19539var __metadata = (undefined && undefined.__metadata) || function (k, v) {
19540    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
19541};
19542var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
19543    return function (target, key) { decorator(target, key, paramIndex); }
19544};
19545var vehicleCardWasabi_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
19546    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19547    return new (P || (P = Promise))(function (resolve, reject) {
19548        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19549        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19550        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19551        step((generator = generator.apply(thisArg, _arguments || [])).next());
19552    });
19553};
19554var _a;
19555
19556
19557
19558
19559
19560
19561
19562let VehicleCardWasabi = class VehicleCardWasabi {
19563    constructor(toggleService) {
19564        this.carouselList = [];
19565        this.toggleService = toggleService;
19566    }
19567    initialize() {
19568        return vehicleCardWasabi_awaiter(this, void 0, void 0, function* () {
19569            yield this.setupCarousel();
19570            this.setupCompare();
19571            this.initializePopovers();
19572        });
19573    }
19574    setupCarousel() {
19575        return vehicleCardWasabi_awaiter(this, void 0, void 0, function* () {
19576            const rootCarouselClassName = 'hero-carousel';
19577            //NOTE: SITESAA-3503: this is a constant width across the carousel item containers 
19578            //      and we don't want to calculate it everytime we instantiate a new carousel, 
19579            //      so we'll do it here and then pass it in.
19580            const carouselItemsContainer = `${rootCarouselClassName}__items`;
19581            const carouselItemsContainerElem = document.querySelectorAll(`.${carouselItemsContainer}`);
19582            let carouselItemsContainerWidth = 0;
19583            if (carouselItemsContainerElem.length > 0) {
19584                yield (0,performanceHelpers/* doBeforeNextRepaint */.L)(() => {
19585                    carouselItemsContainerWidth = carouselItemsContainerElem[0].getBoundingClientRect().width;
19586                });
19587            }
19588            const carouselContainer = document.querySelectorAll(".vehicleImg .top-container, .vehicle-card--mod .vehicle-image__image-wrapper");
19589            carouselContainer.forEach(carouselParent => {
19590                if (carouselParent.querySelector(`.vehicle-image .${rootCarouselClassName}`)) {
19591                    this.carouselList.push(new vehicleImageCarousel/* VehicleImageCarousel */.C(carouselParent, rootCarouselClassName, null, null, null, null, carouselItemsContainerWidth));
19592                }
19593            });
19594        });
19595    }
19596    setupCompare() {
19597        const url = new URL(window.location.href);
19598        const isVehicleCompare = url.searchParams.get('isVehicleCompare') == "true";
19599        if (isVehicleCompare) {
19600            __webpack_require__.e(/* import() | vehicleCompare */ 554).then(__webpack_require__.bind(__webpack_require__, 6469));
19601        }
19602        else {
19603            const checkboxes = document.querySelectorAll('[data-compare-checkbox-wrapper]');
19604            importClassOnScroll(() => __webpack_require__.e(/* import() | vehicleCompare */ 554).then(__webpack_require__.bind(__webpack_require__, 6469)), checkboxes, false);
19605        }
19606    }
19607    initializePopovers() {
19608        const popoverTriggers = document.querySelectorAll('.vehicle-card--mod [data-toggle="popover"]');
19609        popoverTriggers.forEach(el => {
19610            const element = window.jQuery(el);
19611            jQueryHelper/* JQueryHelper */.$.SafeApplyPopover(element);
19612        });
19613    }
19614};
19615VehicleCardWasabi = __decorate([
19616    (0,inversify/* injectable */._G)(),
19617    __param(0, (0,inversify/* inject */.WQ)(types/* TYPES */.Q.IToggleService)),
19618    __metadata("design:paramtypes", [typeof (_a = typeof iToggleService/* IToggleService */.F !== "undefined" && iToggleService/* IToggleService */.F) === "function" ? _a : Object])
19619], VehicleCardWasabi);
19620
19621
19622
19623/***/ }),
19624
19625/***/ 8102:
19626/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
19627
19628"use strict";
19629/* harmony export */ __webpack_require__.d(__webpack_exports__, {
19630/* harmony export */   $: () => (/* binding */ TranslationFetcher)
19631/* harmony export */ });
19632/* harmony import */ var inversify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(260);
19633var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19634    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19635    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19636    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19637    return c > 3 && r && Object.defineProperty(target, key, r), r;
19638};
19639var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
19640    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19641    return new (P || (P = Promise))(function (resolve, reject) {
19642        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19643        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19644        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19645        step((generator = generator.apply(thisArg, _arguments || [])).next());
19646    });
19647};
19648
19649let TranslationFetcher = class TranslationFetcher {
19650    constructor() {
19651        this._dealerId = window.DlronGlobal_DealerId;
19652    }
19653    getEndPoint(translationType) {
19654        return `/api/vhcliaa/translations/${this._dealerId}/${translationType}`;
19655    }
19656    fetch(translationType) {
19657        return __awaiter(this, void 0, void 0, function* () {
19658            const url = this.getEndPoint(translationType);
19659            try {
19660                const response = yield fetch(url);
19661                if (response.ok) {
19662                    const responseData = yield response.json();
19663                    return responseData;
19664                }
19665                else {
19666                    throw new Error(`Error: ${response.status} for endpoint ${url}`);
19667                }
19668            }
19669            catch (error) {
19670                console.error(new Error(`Error fetching translations from ${url}: ${error.message}`));
19671                return "";
19672            }
19673        });
19674    }
19675};
19676TranslationFetcher = __decorate([
19677    (0,inversify__WEBPACK_IMPORTED_MODULE_0__/* .injectable */ ._G)()
19678], TranslationFetcher);
19679
19680
19681
19682/***/ }),
19683
19684/***/ 8156:
19685/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
19686
19687"use strict";
19688
19689
19690Object.defineProperty(exports, "__esModule", ({
19691  value: true
19692}));
19693exports.resolve = void 0;
19694var ERROR_MSGS = __webpack_require__(7718);
19695var literal_types_1 = __webpack_require__(7802);
19696var exceptions_1 = __webpack_require__(8229);
19697var serialization_1 = __webpack_require__(7911);
19698var instantiation_1 = __webpack_require__(3553);
19699var invokeFactory = function (factoryType, serviceIdentifier, fn) {
19700  try {
19701    return fn();
19702  } catch (error) {
19703    if (exceptions_1.isStackOverflowExeption(error)) {
19704      throw new Error(ERROR_MSGS.CIRCULAR_DEPENDENCY_IN_FACTORY(factoryType, serviceIdentifier.toString()));
19705    } else {
19706      throw error;
19707    }
19708  }
19709};
19710var _resolveRequest = function (requestScope) {
19711  return function (request) {
19712    request.parentContext.setCurrentRequest(request);
19713    var bindings = request.bindings;
19714    var childRequests = request.childRequests;
19715    var targetIsAnArray = request.target && request.target.isArray();
19716    var targetParentIsNotAnArray = !request.parentRequest || !request.parentRequest.target || !request.target || !request.parentRequest.target.matchesArray(request.target.serviceIdentifier);
19717    if (targetIsAnArray && targetParentIsNotAnArray) {
19718      return childRequests.map(function (childRequest) {
19719        var _f = _resolveRequest(requestScope);
19720        return _f(childRequest);
19721      });
19722    } else {
19723      var result = null;
19724      if (request.target.isOptional() && bindings.length === 0) {
19725        return undefined;
19726      }
19727      var binding_1 = bindings[0];
19728      var isSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Singleton;
19729      var isRequestSingleton = binding_1.scope === literal_types_1.BindingScopeEnum.Request;
19730      if (isSingleton && binding_1.activated) {
19731        return binding_1.cache;
19732      }
19733      if (isRequestSingleton && requestScope !== null && requestScope.has(binding_1.id)) {
19734        return requestScope.get(binding_1.id);
19735      }
19736      if (binding_1.type === literal_types_1.BindingTypeEnum.ConstantValue) {
19737        result = binding_1.cache;
19738      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Function) {
19739        result = binding_1.cache;
19740      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Constructor) {
19741        result = binding_1.implementationType;
19742      } else if (binding_1.type === literal_types_1.BindingTypeEnum.DynamicValue && binding_1.dynamicValue !== null) {
19743        result = invokeFactory("toDynamicValue", binding_1.serviceIdentifier, function () {
19744          return binding_1.dynamicValue(request.parentContext);
19745        });
19746      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Factory && binding_1.factory !== null) {
19747        result = invokeFactory("toFactory", binding_1.serviceIdentifier, function () {
19748          return binding_1.factory(request.parentContext);
19749        });
19750      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Provider && binding_1.provider !== null) {
19751        result = invokeFactory("toProvider", binding_1.serviceIdentifier, function () {
19752          return binding_1.provider(request.parentContext);
19753        });
19754      } else if (binding_1.type === literal_types_1.BindingTypeEnum.Instance && binding_1.implementationType !== null) {
19755        result = instantiation_1.resolveInstance(binding_1.implementationType, childRequests, _resolveRequest(requestScope));
19756      } else {
19757        var serviceIdentifier = serialization_1.getServiceIdentifierAsString(request.serviceIdentifier);
19758        throw new Error(ERROR_MSGS.INVALID_BINDING_TYPE + " " + serviceIdentifier);
19759      }
19760      if (typeof binding_1.onActivation === "function") {
19761        result = binding_1.onActivation(request.parentContext, result);
19762      }
19763      if (isSingleton) {
19764        binding_1.cache = result;
19765        binding_1.activated = true;
19766      }
19767      if (isRequestSingleton && requestScope !== null && !requestScope.has(binding_1.id)) {
19768        requestScope.set(binding_1.id, result);
19769      }
19770      return result;
19771    }
19772  };
19773};
19774function resolve(context) {
19775  var _f = _resolveRequest(context.plan.rootRequest.requestScope);
19776  return _f(context.plan.rootRequest);
19777}
19778exports.resolve = resolve;
19779
19780/***/ }),
19781
19782/***/ 8186:
19783/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19784
19785// style-loader: Adds some css to the DOM by adding a <style> tag
19786
19787// load the styles
19788var content = __webpack_require__(9703);
19789if(content.__esModule) content = content.default;
19790if(typeof content === 'string') content = [[module.id, content, '']];
19791if(content.locals) module.exports = content.locals;
19792// add the styles to the DOM
19793var add = (__webpack_require__(8449)/* ["default"] */ .A)
19794var update = add("21eace71", content, false, {});
19795// Hot Module Replacement
19796if(false) {}
19797
19798/***/ }),
19799
19800/***/ 8220:
19801/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19802
19803// style-loader: Adds some css to the DOM by adding a <style> tag
19804
19805// load the styles
19806var content = __webpack_require__(3845);
19807if(content.__esModule) content = content.default;
19808if(typeof content === 'string') content = [[module.id, content, '']];
19809if(content.locals) module.exports = content.locals;
19810// add the styles to the DOM
19811var add = (__webpack_require__(8449)/* ["default"] */ .A)
19812var update = add("c2031622", content, false, {});
19813// Hot Module Replacement
19814if(false) {}
19815
19816/***/ }),
19817
19818/***/ 8229:
19819/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
19820
19821"use strict";
19822
19823
19824Object.defineProperty(exports, "__esModule", ({
19825  value: true
19826}));
19827exports.isStackOverflowExeption = void 0;
19828var ERROR_MSGS = __webpack_require__(7718);
19829function isStackOverflowExeption(error) {
19830  return error instanceof RangeError || error.message === ERROR_MSGS.STACK_OVERFLOW;
19831}
19832exports.isStackOverflowExeption = isStackOverflowExeption;
19833
19834/***/ }),
19835
19836/***/ 8370:
19837/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
19838
19839"use strict";
19840
19841
19842Object.defineProperty(exports, "__esModule", ({
19843  value: true
19844}));
19845exports.injectable = void 0;
19846var ERRORS_MSGS = __webpack_require__(7718);
19847var METADATA_KEY = __webpack_require__(4725);
19848function injectable() {
19849  return function (target) {
19850    if (Reflect.hasOwnMetadata(METADATA_KEY.PARAM_TYPES, target)) {
19851      throw new Error(ERRORS_MSGS.DUPLICATED_INJECTABLE_DECORATOR);
19852    }
19853    var types = Reflect.getMetadata(METADATA_KEY.DESIGN_PARAM_TYPES, target) || [];
19854    Reflect.defineMetadata(METADATA_KEY.PARAM_TYPES, types, target);
19855    return target;
19856  };
19857}
19858exports.injectable = injectable;
19859
19860/***/ }),
19861
19862/***/ 8390:
19863/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
19864
19865"use strict";
19866
19867
19868Object.defineProperty(exports, "__esModule", ({
19869  value: true
19870}));
19871exports.Metadata = void 0;
19872var METADATA_KEY = __webpack_require__(4725);
19873var Metadata = function () {
19874  function Metadata(key, value) {
19875    this.key = key;
19876    this.value = value;
19877  }
19878  Metadata.prototype.toString = function () {
19879    if (this.key === METADATA_KEY.NAMED_TAG) {
19880      return "named: " + this.value.toString() + " ";
19881    } else {
19882      return "tagged: { key:" + this.key.toString() + ", value: " + this.value + " }";
19883    }
19884  };
19885  return Metadata;
19886}();
19887exports.Metadata = Metadata;
19888
19889/***/ }),
19890
19891/***/ 8418:
19892/***/ ((__unused_webpack_module, exports) => {
19893
19894"use strict";
19895
19896
19897Object.defineProperty(exports, "__esModule", ({
19898  value: true
19899}));
19900exports.id = void 0;
19901var idCounter = 0;
19902function id() {
19903  return idCounter++;
19904}
19905exports.id = id;
19906
19907/***/ }),
19908
19909/***/ 8449:
19910/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
19911
19912"use strict";
19913
19914// EXPORTS
19915__webpack_require__.d(__webpack_exports__, {
19916  A: () => (/* binding */ addStylesClient)
19917});
19918
19919;// ./node_modules/vue-style-loader/lib/listToStyles.js
19920/**
19921 * Translates the list format produced by css-loader into something
19922 * easier to manipulate.
19923 */
19924function listToStyles(parentId, list) {
19925  var styles = [];
19926  var newStyles = {};
19927  for (var i = 0; i < list.length; i++) {
19928    var item = list[i];
19929    var id = item[0];
19930    var css = item[1];
19931    var media = item[2];
19932    var sourceMap = item[3];
19933    var part = {
19934      id: parentId + ':' + i,
19935      css: css,
19936      media: media,
19937      sourceMap: sourceMap
19938    };
19939    if (!newStyles[id]) {
19940      styles.push(newStyles[id] = {
19941        id: id,
19942        parts: [part]
19943      });
19944    } else {
19945      newStyles[id].parts.push(part);
19946    }
19947  }
19948  return styles;
19949}
19950;// ./node_modules/vue-style-loader/lib/addStylesClient.js
19951/*
19952  MIT License http://www.opensource.org/licenses/mit-license.php
19953  Author Tobias Koppers @sokra
19954  Modified by Evan You @yyx990803
19955*/
19956
19957
19958
19959var hasDocument = typeof document !== 'undefined'
19960
19961if (typeof DEBUG !== 'undefined' && DEBUG) {
19962  if (!hasDocument) {
19963    throw new Error(
19964    'vue-style-loader cannot be used in a non-browser environment. ' +
19965    "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
19966  ) }
19967}
19968
19969/*
19970type StyleObject = {
19971  id: number;
19972  parts: Array<StyleObjectPart>
19973}
19974
19975type StyleObjectPart = {
19976  css: string;
19977  media: string;
19978  sourceMap: ?string
19979}
19980*/
19981
19982var stylesInDom = {/*
19983  [id: number]: {
19984    id: number,
19985    refs: number,
19986    parts: Array<(obj?: StyleObjectPart) => void>
19987  }
19988*/}
19989
19990var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
19991var singletonElement = null
19992var singletonCounter = 0
19993var isProduction = false
19994var noop = function () {}
19995var options = null
19996var ssrIdKey = 'data-vue-ssr-id'
19997
19998// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
19999// tags it will allow on a page
20000var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
20001
20002function addStylesClient (parentId, list, _isProduction, _options) {
20003  isProduction = _isProduction
20004
20005  options = _options || {}
20006
20007  var styles = listToStyles(parentId, list)
20008  addStylesToDom(styles)
20009
20010  return function update (newList) {
20011    var mayRemove = []
20012    for (var i = 0; i < styles.length; i++) {
20013      var item = styles[i]
20014      var domStyle = stylesInDom[item.id]
20015      domStyle.refs--
20016      mayRemove.push(domStyle)
20017    }
20018    if (newList) {
20019      styles = listToStyles(parentId, newList)
20020      addStylesToDom(styles)
20021    } else {
20022      styles = []
20023    }
20024    for (var i = 0; i < mayRemove.length; i++) {
20025      var domStyle = mayRemove[i]
20026      if (domStyle.refs === 0) {
20027        for (var j = 0; j < domStyle.parts.length; j++) {
20028          domStyle.parts[j]()
20029        }
20030        delete stylesInDom[domStyle.id]
20031      }
20032    }
20033  }
20034}
20035
20036function addStylesToDom (styles /* Array<StyleObject> */) {
20037  for (var i = 0; i < styles.length; i++) {
20038    var item = styles[i]
20039    var domStyle = stylesInDom[item.id]
20040    if (domStyle) {
20041      domStyle.refs++
20042      for (var j = 0; j < domStyle.parts.length; j++) {
20043        domStyle.parts[j](item.parts[j])
20044      }
20045      for (; j < item.parts.length; j++) {
20046        domStyle.parts.push(addStyle(item.parts[j]))
20047      }
20048      if (domStyle.parts.length > item.parts.length) {
20049        domStyle.parts.length = item.parts.length
20050      }
20051    } else {
20052      var parts = []
20053      for (var j = 0; j < item.parts.length; j++) {
20054        parts.push(addStyle(item.parts[j]))
20055      }
20056      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
20057    }
20058  }
20059}
20060
20061function createStyleElement () {
20062  var styleElement = document.createElement('style')
20063  styleElement.type = 'text/css'
20064  head.appendChild(styleElement)
20065  return styleElement
20066}
20067
20068function addStyle (obj /* StyleObjectPart */) {
20069  var update, remove
20070  var styleElement = document.querySelector('style[' + ssrIdKey + '~="' + obj.id + '"]')
20071
20072  if (styleElement) {
20073    if (isProduction) {
20074      // has SSR styles and in production mode.
20075      // simply do nothing.
20076      return noop
20077    } else {
20078      // has SSR styles but in dev mode.
20079      // for some reason Chrome can't handle source map in server-rendered
20080      // style tags - source maps in <style> only works if the style tag is
20081      // created and inserted dynamically. So we remove the server rendered
20082      // styles and inject new ones.
20083      styleElement.parentNode.removeChild(styleElement)
20084    }
20085  }
20086
20087  if (isOldIE) {
20088    // use singleton mode for IE9.
20089    var styleIndex = singletonCounter++
20090    styleElement = singletonElement || (singletonElement = createStyleElement())
20091    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
20092    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
20093  } else {
20094    // use multi-style-tag mode in all other cases
20095    styleElement = createStyleElement()
20096    update = applyToTag.bind(null, styleElement)
20097    remove = function () {
20098      styleElement.parentNode.removeChild(styleElement)
20099    }
20100  }
20101
20102  update(obj)
20103
20104  return function updateStyle (newObj /* StyleObjectPart */) {
20105    if (newObj) {
20106      if (newObj.css === obj.css &&
20107          newObj.media === obj.media &&
20108          newObj.sourceMap === obj.sourceMap) {
20109        return
20110      }
20111      update(obj = newObj)
20112    } else {
20113      remove()
20114    }
20115  }
20116}
20117
20118var replaceText = (function () {
20119  var textStore = []
20120
20121  return function (index, replacement) {
20122    textStore[index] = replacement
20123    return textStore.filter(Boolean).join('\n')
20124  }
20125})()
20126
20127function applyToSingletonTag (styleElement, index, remove, obj) {
20128  var css = remove ? '' : obj.css
20129
20130  if (styleElement.styleSheet) {
20131    styleElement.styleSheet.cssText = replaceText(index, css)
20132  } else {
20133    var cssNode = document.createTextNode(css)
20134    var childNodes = styleElement.childNodes
20135    if (childNodes[index]) styleElement.removeChild(childNodes[index])
20136    if (childNodes.length) {
20137      styleElement.insertBefore(cssNode, childNodes[index])
20138    } else {
20139      styleElement.appendChild(cssNode)
20140    }
20141  }
20142}
20143
20144function applyToTag (styleElement, obj) {
20145  var css = obj.css
20146  var media = obj.media
20147  var sourceMap = obj.sourceMap
20148
20149  if (media) {
20150    styleElement.setAttribute('media', media)
20151  }
20152  if (options.ssrId) {
20153    styleElement.setAttribute(ssrIdKey, obj.id)
20154  }
20155
20156  if (sourceMap) {
20157    // https://developer.chrome.com/devtools/docs/javascript-debugging
20158    // this makes source maps inside style tags work properly in Chrome
20159    css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
20160    // http://stackoverflow.com/a/26603875
20161    css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)
20161))) + ' */'
20162  }
20163
20164  if (styleElement.styleSheet) {
20165    styleElement.styleSheet.cssText = css
20166  } else {
20167    while (styleElement.firstChild) {
20168      styleElement.removeChild(styleElement.firstChild)
20169    }
20170    styleElement.appendChild(document.createTextNode(css))
20171  }
20172}
20173
20174
20175/***/ }),
20176
20177/***/ 8508:
20178/***/ ((module, __webpack_exports__, __webpack_require__) => {
20179
20180"use strict";
20181__webpack_require__.r(__webpack_exports__);
20182/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20183/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20184/* harmony export */ });
20185/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
20186/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
20187/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
20188/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
20189// Imports
20190
20191
20192var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
20193// Module
20194___CSS_LOADER_EXPORT___.push([module.id, `.oem-vehicle-features[data-v-718b1078]{display:grid;grid-template-columns:repeat(2, 1fr);gap:.5rem 2.4rem;margin:0;border-top:1px solid #dcdce2;padding:.8rem 2rem}@media(max-width: 1533px){.oem-vehicle-features.list-view[data-v-718b1078]{display:flex;flex-wrap:wrap}}.oem-vehicle-feature[data-v-718b1078]{list-style:none;display:flex;align-items:center}.oem-vehicle-feature__icon[data-v-718b1078]{width:32px;height:32px;margin-right:5px;object-fit:contain;column-gap:.5rem}.oem-vehicle-feature__icon[src\$=".svg"][data-v-718b1078]{fill:#464646}.oem-vehicle-feature__icon[src\$=".png"][data-v-718b1078]{filter:brightness(0) saturate(100%) invert(28%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(93%) contrast(89%)}.oem-vehicle-feature__text[data-v-718b1078]{flex:1;word-wrap:break-word}`, ""]);
20195// Exports
20196/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
20197
20198
20199/***/ }),
20200
20201/***/ 8528:
20202/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
20203
20204"use strict";
20205
20206
20207Object.defineProperty(exports, "__esModule", ({
20208  value: true
20209}));
20210exports.Context = void 0;
20211var id_1 = __webpack_require__(8418);
20212var Context = function () {
20213  function Context(container) {
20214    this.id = id_1.id();
20215    this.container = container;
20216  }
20217  Context.prototype.addPlan = function (plan) {
20218    this.plan = plan;
20219  };
20220  Context.prototype.setCurrentRequest = function (currentRequest) {
20221    this.currentRequest = currentRequest;
20222  };
20223  return Context;
20224}();
20225exports.Context = Context;
20226
20227/***/ }),
20228
20229/***/ 8586:
20230/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20231
20232"use strict";
20233/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20234/* harmony export */   j: () => (/* binding */ Industry)
20235/* harmony export */ });
20236// make sure this matches the values in VHCLIAA.Core.Common.Industry
20237var Industry;
20238(function (Industry) {
20239    Industry[Industry["Automotive"] = 0] = "Automotive";
20240    Industry[Industry["Fireplace"] = 1] = "Fireplace";
20241    Industry[Industry["Powersports"] = 2] = "Powersports";
20242    Industry[Industry["Legal"] = 3] = "Legal";
20243    Industry[Industry["RecreationalVehicles"] = 4] = "RecreationalVehicles";
20244})(Industry || (Industry = {}));
20245
20246
20247/***/ }),
20248
20249/***/ 8595:
20250/***/ ((module, __webpack_exports__, __webpack_require__) => {
20251
20252"use strict";
20253__webpack_require__.r(__webpack_exports__);
20254/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20255/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20256/* harmony export */ });
20257/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
20258/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
20259/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
20260/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
20261// Imports
20262
20263
20264var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
20265// Module
20266___CSS_LOADER_EXPORT___.push([module.id, `@media(min-width: 768px){.modal-background{height:100%;width:100%;background-color:rgba(0,0,0,.6)}}@media(max-width: 767px){#searchNearbyMobileBanner.alert{padding:0;margin:0;position:fixed;z-index:9999;height:100%}#searchNearbyMobileBanner>.container{z-index:999999;position:relative;padding-bottom:1em;background-color:#fff;box-shadow:0 0 5px rgba(0,0,0,.3)}#searchNearbyMobileBanner.btn{padding:8px 7px}h2#geoFilterTitle{font-size:18px}#searchNearbyMobileBanner input.form-control{font-size:12px !important}}`, ""]);
20267// Exports
20268/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
20269
20270
20271/***/ }),
20272
20273/***/ 8602:
20274/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20275
20276"use strict";
20277/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20278/* harmony export */   V: () => (/* binding */ AppLocation)
20279/* harmony export */ });
20280var AppLocation;
20281(function (AppLocation) {
20282    AppLocation[AppLocation["CosmosSrp"] = 0] = "CosmosSrp";
20283    AppLocation[AppLocation["VehicleCardDeck"] = 1] = "VehicleCardDeck";
20284})(AppLocation || (AppLocation = {}));
20285
20286
20287/***/ }),
20288
20289/***/ 8677:
20290/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
20291
20292"use strict";
20293
20294
20295Object.defineProperty(exports, "__esModule", ({
20296  value: true
20297}));
20298exports.Binding = void 0;
20299var literal_types_1 = __webpack_require__(7802);
20300var id_1 = __webpack_require__(8418);
20301var Binding = function () {
20302  function Binding(serviceIdentifier, scope) {
20303    this.id = id_1.id();
20304    this.activated = false;
20305    this.serviceIdentifier = serviceIdentifier;
20306    this.scope = scope;
20307    this.type = literal_types_1.BindingTypeEnum.Invalid;
20308    this.constraint = function (request) {
20309      return true;
20310    };
20311    this.implementationType = null;
20312    this.cache = null;
20313    this.factory = null;
20314    this.provider = null;
20315    this.onActivation = null;
20316    this.dynamicValue = null;
20317  }
20318  Binding.prototype.clone = function () {
20319    var clone = new Binding(this.serviceIdentifier, this.scope);
20320    clone.activated = false;
20321    clone.implementationType = this.implementationType;
20322    clone.dynamicValue = this.dynamicValue;
20323    clone.scope = this.scope;
20324    clone.type = this.type;
20325    clone.factory = this.factory;
20326    clone.provider = this.provider;
20327    clone.constraint = this.constraint;
20328    clone.onActivation = this.onActivation;
20329    clone.cache = this.cache;
20330    return clone;
20331  };
20332  return Binding;
20333}();
20334exports.Binding = Binding;
20335
20336/***/ }),
20337
20338/***/ 8690:
20339/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
20340
20341"use strict";
20342
20343
20344Object.defineProperty(exports, "__esModule", ({
20345  value: true
20346}));
20347exports.targetName = void 0;
20348var METADATA_KEY = __webpack_require__(4725);
20349var metadata_1 = __webpack_require__(8390);
20350var decorator_utils_1 = __webpack_require__(40);
20351function targetName(name) {
20352  return function (target, targetKey, index) {
20353    var metadata = new metadata_1.Metadata(METADATA_KEY.NAME_TAG, name);
20354    decorator_utils_1.tagParameter(target, targetKey, index, metadata);
20355  };
20356}
20357exports.targetName = targetName;
20358
20359/***/ }),
20360
20361/***/ 8943:
20362/***/ ((module, __webpack_exports__, __webpack_require__) => {
20363
20364"use strict";
20365__webpack_require__.r(__webpack_exports__);
20366/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20367/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20368/* harmony export */ });
20369/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
20370/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
20371/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
20372/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
20373// Imports
20374
20375
20376var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
20377// Module
vendor: 3,441 bytes, lines 20378-20420
20378___CSS_LOADER_EXPORT___.push([module.id, `.vehicle-title__car-bravo,.vehicle-title__condition,.vehicle-title__toyota-gold,.vehicle-title__toyota-silver{margin-right:3px}.save-heart__srp-card-heart-wrapper{margin-top:.5rem}.vehicle-special-tags{display:flex;flex-wrap:wrap;color:#707070;line-height:1;padding-bottom:8px}.vehicle-special-tags__label,.vehicle-special-tags__icon{font-size:12px;font-weight:400;line-height:1}.vehicle-special-tags__special-offer,.vehicle-special-tags__price-drop{display:flex;align-items:center}.vehicle-special-tags__label{margin-right:1rem}.vehicle-special-tags__icon{color:#333;margin-right:.5rem}.vehicle-overview__identifiers{display:grid;gap:.8rem}.vehicle-overview__identifiers .vehicle-special-tags{padding-bottom:0}`, ""]);
20379// Exports
20380/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
20381
20382
20383/***/ }),
20384
20385/***/ 8993:
20386/***/ ((module, __webpack_exports__, __webpack_require__) => {
20387
20388"use strict";
20389__webpack_require__.r(__webpack_exports__);
20390/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20391/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20392/* harmony export */ });
20393/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
20394/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
20395/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
20396/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
20397// Imports
20398
20399
20400var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
20401// Module
20402___CSS_LOADER_EXPORT___.push([module.id, `.hero-carousel[data-v-574006ad]{overflow:hidden}.hero-carousel--signalsforyou-rounded[data-v-574006ad]{border-radius:.75rem 0 0 0}.hero-carousel__items[data-v-574006ad]{margin-left:-1px;aspect-ratio:1.3333333333}.hero-carousel__item[data-v-574006ad]{scroll-snap-stop:always;aspect-ratio:4/3;transition:opacity .5s ease}.hero-carousel__item--loading[data-v-574006ad]{opacity:0}.hero-carousel__item--loaded[data-v-574006ad]{opacity:1}.hero-carousel__controls[data-v-574006ad]{grid-template-columns:auto 1fr auto;align-items:center}.hero-carousel__control[data-v-574006ad]{pointer-events:auto}.hero-carousel__control--previous-btn[data-v-574006ad]{grid-area:previous}.hero-carousel__control--next-btn[data-v-574006ad]{grid-area:next;justify-self:end}.hero-carousel__control--next-btn.hidden[data-v-574006ad]{display:block !important}.hero-carousel__image-counter[data-v-574006ad]{display:unset}`, ""]);
20403// Exports
20404/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
20405
20406
20407/***/ }),
20408
20409/***/ 9034:
20410/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
20411
20412"use strict";
20413
20414
20415Object.defineProperty(exports, "__esModule", ({
20416  value: true
20417}));
20418exports.Request = void 0;
20419var id_1 = __webpack_require__(8418);
20420var Request = function () {
vendor: 4,021 bytes, lines 20421-20556
20421  function Request(serviceIdentifier, parentContext, parentRequest, bindings, target) {
20422    this.id = id_1.id();
20423    this.serviceIdentifier = serviceIdentifier;
20424    this.parentContext = parentContext;
20425    this.parentRequest = parentRequest;
20426    this.target = target;
20427    this.childRequests = [];
20428    this.bindings = Array.isArray(bindings) ? bindings : [bindings];
20429    this.requestScope = parentRequest === null ? new Map() : null;
20430  }
20431  Request.prototype.addChildRequest = function (serviceIdentifier, bindings, target) {
20432    var child = new Request(serviceIdentifier, this.parentContext, this, bindings, target);
20433    this.childRequests.push(child);
20434    return child;
20435  };
20436  return Request;
20437}();
20438exports.Request = Request;
20439
20440/***/ }),
20441
20442/***/ 9089:
20443/***/ ((module) => {
20444
20445"use strict";
20446
20447
20448/*
20449  MIT License http://www.opensource.org/licenses/mit-license.php
20450  Author Tobias Koppers @sokra
20451*/
20452module.exports = function (cssWithMappingToString) {
20453  var list = [];
20454
20455  // return the list of modules as css string
20456  list.toString = function toString() {
20457    return this.map(function (item) {
20458      var content = "";
20459      var needLayer = typeof item[5] !== "undefined";
20460      if (item[4]) {
20461        content += "@supports (".concat(item[4], ") {");
20462      }
20463      if (item[2]) {
20464        content += "@media ".concat(item[2], " {");
20465      }
20466      if (needLayer) {
20467        content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
20468      }
20469      content += cssWithMappingToString(item);
20470      if (needLayer) {
20471        content += "}";
20472      }
20473      if (item[2]) {
20474        content += "}";
20475      }
20476      if (item[4]) {
20477        content += "}";
20478      }
20479      return content;
20480    }).join("");
20481  };
20482
20483  // import a list of modules into the list
20484  list.i = function i(modules, media, dedupe, supports, layer) {
20485    if (typeof modules === "string") {
20486      modules = [[null, modules, undefined]];
20487    }
20488    var alreadyImportedModules = {};
20489    if (dedupe) {
20490      for (var k = 0; k < this.length; k++) {
20491        var id = this[k][0];
20492        if (id != null) {
20493          alreadyImportedModules[id] = true;
20494        }
20495      }
20496    }
20497    for (var _k = 0; _k < modules.length; _k++) {
20498      var item = [].concat(modules[_k]);
20499      if (dedupe && alreadyImportedModules[item[0]]) {
20500        continue;
20501      }
20502      if (typeof layer !== "undefined") {
20503        if (typeof item[5] === "undefined") {
20504          item[5] = layer;
20505        } else {
20506          item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
20507          item[5] = layer;
20508        }
20509      }
20510      if (media) {
20511        if (!item[2]) {
20512          item[2] = media;
20513        } else {
20514          item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
20515          item[2] = media;
20516        }
20517      }
20518      if (supports) {
20519        if (!item[4]) {
20520          item[4] = "".concat(supports);
20521        } else {
20522          item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
20523          item[4] = supports;
20524        }
20525      }
20526      list.push(item);
20527    }
20528  };
20529  return list;
20530};
20531
20532/***/ }),
20533
20534/***/ 9092:
20535/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20536
20537"use strict";
20538/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20539/* harmony export */   F2: () => (/* binding */ SortData),
20540/* harmony export */   pC: () => (/* binding */ SortDataPair),
20541/* harmony export */   r3: () => (/* binding */ SortType)
20542/* harmony export */ });
20543/* unused harmony export SearchSortModel */
20544class SearchSortModel {
20545}
20546var SortType;
20547(function (SortType) {
20548    SortType[SortType["Year"] = 0] = "Year";
20549    SortType[SortType["ProductName"] = 1] = "ProductName";
20550    SortType[SortType["Price"] = 2] = "Price";
20551    SortType[SortType["Model"] = 3] = "Model";
20552    SortType[SortType["Trim"] = 4] = "Trim";
20553    SortType[SortType["BodyStyle"] = 5] = "BodyStyle";
20554    SortType[SortType["ExtColor"] = 6] = "ExtColor";
20555    SortType[SortType["IntColor"] = 7] = "IntColor";
20556    SortType[SortType["Make"] = 8] = "Make";
20557    SortType[SortType["Mileage"] = 9] = "Mileage";
20558    SortType[SortType["Days"] = 10] = "Days";
20559    SortType[SortType["Distance"] = 11] = "Distance";
20560    SortType[SortType["Name"] = 12] = "Name";
20561    SortType[SortType["CategoryName"] = 13] = "CategoryName";
20562    SortType[SortType["SubcategoryName"] = 14] = "SubcategoryName";
20563    SortType[SortType["Msrp"] = 15] = "Msrp";
20564    SortType[SortType["Cost"] = 16] = "Cost";
20565    SortType[SortType["Relevance"] = 17] = "Relevance";
20566    SortType[SortType["Finance"] = 18] = "Finance";
20567    SortType[SortType["Lease"] = 19] = "Lease";
20568    SortType[SortType["Vin"] = 20] = "Vin";
20569    SortType[SortType["LocalVehicles"] = 21] = "LocalVehicles";
20570    SortType[SortType["SignalsForYou"] = 22] = "SignalsForYou";
20571    SortType[SortType["Savings"] = 23] = "Savings";
20572})(SortType || (SortType = {}));
20573class SortData {
20574    get DisplayableSortDataPair() {
20575        return this.OrdersItems.find(s => s.Field !== SortType.Distance) || this.OrdersItems[0];
20576    }
20577    constructor(orders, showAsDefault, requestWithQueryString) {
20578        this.OrdersItems = orders;
20579        this.ShowAsDefault = showAsDefault;
20580        this.RequestWithQueryString = requestWithQueryString;
20581    }
20582}
20583class SortDataPair {
20584    constructor(field, descending) {
20585        this.Field = field;
20586        this.Descending = descending;
20587    }
20588}
20589
20590
20591/***/ }),
20592
20593/***/ 9185:
20594/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20595
20596"use strict";
20597/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20598/* harmony export */   L: () => (/* binding */ doBeforeNextRepaint)
20599/* harmony export */ });
20600/**
20601 * Do something before the browser recalculates styles. Use this for expensive operations to avoid long tasks blocking the main thread.
20602 * Examples of expensive operations:
20603 * - getBoundingClientRect()
20604 * - window.getComputedStyle()
20605 * @param callback The callback to execute before the next repaint
20606 * @returns A promise that resolves inside requestAnimationFrame() after the callback is executed
20607 */
20608function doBeforeNextRepaint(callback) {
20609    return new Promise((resolve) => {
20610        requestAnimationFrame(() => {
20611            callback();
20612            resolve();
20613        });
20614    });
20615}
20616
20617
20618/***/ }),
20619
20620/***/ 9248:
20621/***/ ((module) => {
20622
20623"use strict";
20624
20625
20626module.exports = function (i) {
20627  return i[1];
20628};
20629
20630/***/ }),
20631
20632/***/ 9523:
20633/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
20634
20635"use strict";
20636
20637
20638Object.defineProperty(exports, "__esModule", ({
20639  value: true
20640}));
20641exports.tagged = void 0;
20642var metadata_1 = __webpack_require__(8390);
20643var decorator_utils_1 = __webpack_require__(40);
20644function tagged(metadataKey, metadataValue) {
20645  return function (target, targetKey, index) {
20646    var metadata = new metadata_1.Metadata(metadataKey, metadataValue);
20647    if (typeof index === "number") {
20648      decorator_utils_1.tagParameter(target, targetKey, index, metadata);
20649    } else {
20650      decorator_utils_1.tagProperty(target, targetKey, metadata);
20651    }
20652  };
20653}
20654exports.tagged = tagged;
20655
20656/***/ }),
20657
20658/***/ 9536:
20659/***/ ((module, __webpack_exports__, __webpack_require__) => {
20660
20661"use strict";
20662__webpack_require__.r(__webpack_exports__);
20663/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20664/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
20665/* harmony export */ });
20666/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
20667/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
20668/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
20669/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
20670// Imports
20671
20672
20673var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
20674// Module
20675___CSS_LOADER_EXPORT___.push([module.id, `.vehicle-specs[data-v-5a269b74]{display:contents}.vehicle-specs .vehicle-colors[data-v-5a269b74]{display:contents}.vehicle-specs .vehicle-colors__ext[data-v-5a269b74]{margin-left:auto}`, ""]);
20676// Exports
20677/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
20678
20679
20680/***/ }),
20681
20682/***/ 9592:
20683/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
20684
20685"use strict";
20686
20687
20688var __spreadArrays = this && this.__spreadArrays || function () {
20689  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
20690  for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];
20691  return r;
20692};
20693Object.defineProperty(exports, "__esModule", ({
20694  value: true
20695}));
20696exports.getFunctionName = exports.getBaseClassDependencyCount = exports.getDependencies = void 0;
20697var inject_1 = __webpack_require__(7442);
20698var ERROR_MSGS = __webpack_require__(7718);
20699var literal_types_1 = __webpack_require__(7802);
20700var METADATA_KEY = __webpack_require__(4725);
20701var serialization_1 = __webpack_require__(7911);
20702Object.defineProperty(exports, "getFunctionName", ({
20703  enumerable: true,
20704  get: function () {
20705    return serialization_1.getFunctionName;
20706  }
20707}));
20708var target_1 = __webpack_require__(154);
20709function getDependencies(metadataReader, func) {
20710  var constructorName = serialization_1.getFunctionName(func);
20711  var targets = getTargets(metadataReader, constructorName, func, false);
20712  return targets;
20713}
20714exports.getDependencies = getDependencies;
20715function getTargets(metadataReader, constructorName, func, isBaseClass) {
20716  var metadata = metadataReader.getConstructorMetadata(func);
20717  var serviceIdentifiers = metadata.compilerGeneratedMetadata;
20718  if (serviceIdentifiers === undefined) {
20719    var msg = ERROR_MSGS.MISSING_INJECTABLE_ANNOTATION + " " + constructorName + ".";
20720    throw new Error(msg);
20721  }
20722  var constructorArgsMetadata = metadata.userGeneratedMetadata;
20723  var keys = Object.keys(constructorArgsMetadata);
20724  var hasUserDeclaredUnknownInjections = func.length === 0 && keys.length > 0;
20725  var iterations = hasUserDeclaredUnknownInjections ? keys.length : func.length;
20726  var constructorTargets = getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations);
20727  var propertyTargets = getClassPropsAsTargets(metadataReader, func);
20728  var targets = __spreadArrays(constructorTargets, propertyTargets);
20729  return targets;
20730}
20731function getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata) {
20732  var targetMetadata = constructorArgsMetadata[index.toString()] || [];
20733  var metadata = formatTargetMetadata(targetMetadata);
20734  var isManaged = metadata.unmanaged !== true;
20735  var serviceIdentifier = serviceIdentifiers[index];
20736  var injectIdentifier = metadata.inject || metadata.multiInject;
20737  serviceIdentifier = injectIdentifier ? injectIdentifier : serviceIdentifier;
20738  if (serviceIdentifier instanceof inject_1.LazyServiceIdentifer) {
20739    serviceIdentifier = serviceIdentifier.unwrap();
20740  }
20741  if (isManaged) {
20742    var isObject = serviceIdentifier === Object;
20743    var isFunction = serviceIdentifier === Function;
20744    var isUndefined = serviceIdentifier === undefined;
20745    var isUnknownType = isObject || isFunction || isUndefined;
20746    if (!isBaseClass && isUnknownType) {
20747      var msg = ERROR_MSGS.MISSING_INJECT_ANNOTATION + " argument " + index + " in class " + constructorName + ".";
20748      throw new Error(msg);
20749    }
20750    var target = new target_1.Target(literal_types_1.TargetTypeEnum.ConstructorArgument, metadata.targetName, serviceIdentifier);
20751    target.metadata = targetMetadata;
20752    return target;
20753  }
20754  return null;
20755}
20756function getConstructorArgsAsTargets(isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata, iterations) {
20757  var targets = [];
20758  for (var i = 0; i < iterations; i++) {
20759    var index = i;
20760    var target = getConstructorArgsAsTarget(index, isBaseClass, constructorName, serviceIdentifiers, constructorArgsMetadata);
20761    if (target !== null) {
20762      targets.push(target);
20763    }
20764  }
20765  return targets;
20766}
20767function getClassPropsAsTargets(metadataReader, constructorFunc) {
20768  var classPropsMetadata = metadataReader.getPropertiesMetadata(constructorFunc);
20769  var targets = [];
20770  var keys = Object.keys(classPropsMetadata);
20771  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
20772    var key = keys_1[_i];
20773    var targetMetadata = classPropsMetadata[key];
20774    var metadata = formatTargetMetadata(classPropsMetadata[key]);
20775    var targetName = metadata.targetName || key;
20776    var serviceIdentifier = metadata.inject || metadata.multiInject;
20777    var target = new target_1.Target(literal_types_1.TargetTypeEnum.ClassProperty, targetName, serviceIdentifier);
20778    target.metadata = targetMetadata;
20779    targets.push(target);
20780  }
20781  var baseConstructor = Object.getPrototypeOf(constructorFunc.prototype).constructor;
20782  if (baseConstructor !== Object) {
20783    var baseTargets = getClassPropsAsTargets(metadataReader, baseConstructor);
20784    targets = __spreadArrays(targets, baseTargets);
20785  }
20786  return targets;
20787}
20788function getBaseClassDependencyCount(metadataReader, func) {
20789  var baseConstructor = Object.getPrototypeOf(func.prototype).constructor;
20790  if (baseConstructor !== Object) {
20791    var baseConstructorName = serialization_1.getFunctionName(baseConstructor);
20792    var targets = getTargets(metadataReader, baseConstructorName, baseConstructor, true);
20793    var metadata = targets.map(function (t) {
20794      return t.metadata.filter(function (m) {
20795        return m.key === METADATA_KEY.UNMANAGED_TAG;
20796      });
20797    });
20798    var unmanagedCount = [].concat.apply([], metadata).length;
20799    var dependencyCount = targets.length - unmanagedCount;
20800    if (dependencyCount > 0) {
20801      return dependencyCount;
20802    } else {
20803      return getBaseClassDependencyCount(metadataReader, baseConstructor);
20804    }
20805  } else {
20806    return 0;
20807  }
20808}
20809exports.getBaseClassDependencyCount = getBaseClassDependencyCount;
20810function formatTargetMetadata(targetMetadata) {
20811  var targetMetadataMap = {};
20812  targetMetadata.forEach(function (m) {
20813    targetMetadataMap[m.key.toString()] = m.value;
20814  });
20815  return {
20816    inject: targetMetadataMap[METADATA_KEY.INJECT_TAG],
20817    multiInject: targetMetadataMap[METADATA_KEY.MULTI_INJECT_TAG],
20818    targetName: targetMetadataMap[METADATA_KEY.NAME_TAG],
20819    unmanaged: targetMetadataMap[METADATA_KEY.UNMANAGED_TAG]
20820  };
20821}
20822
20823/***/ }),
20824
20825/***/ 9600:
20826/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20827
20828"use strict";
20829/* harmony export */ __webpack_require__.d(__webpack_exports__, {
20830/* harmony export */   A: () => (/* binding */ CosmosSrpCustomEvents)
20831/* harmony export */ });
20832var CosmosSrpCustomEvents;
20833(function (CosmosSrpCustomEvents) {
20834    CosmosSrpCustomEvents["FilterLoadStart"] = "do.filterloadstart";
20835    CosmosSrpCustomEvents["FilterLoadEnd"] = "do.filterloadend";
20836    CosmosSrpCustomEvents["VehicleLoadStart"] = "do.vehicleloadstart";
20837    CosmosSrpCustomEvents["VehicleLoadEnd"] = "do.vehicleloadend";
20838    CosmosSrpCustomEvents["VehicleCompareCheckboxChange"] = "do.vehiclecomparecheckboxchange";
20839    CosmosSrpCustomEvents["VehicleCompareButtonClick"] = "do.vehiclecomparebuttonclick";
20840    CosmosSrpCustomEvents["VehicleCompareCheckboxToggle"] = "do.vehiclecomparecheckboxtoggle";
20841    CosmosSrpCustomEvents["VehicleCompareButtonDisplay"] = "do.vehiclecomparebuttondisplay";
20842    CosmosSrpCustomEvents["VehicleCompareCountRequest"] = "do.vehiclecomparerequestcount";
20843    CosmosSrpCustomEvents["VehicleCompareCountResponse"] = "do.vehiclecompareresponsecount";
20844    CosmosSrpCustomEvents["SearchValetCleared"] = "do.searchvaletcleared";
20845    CosmosSrpCustomEvents["RemoveFilterPill"] = "do.removeFilterPill";
20846    CosmosSrpCustomEvents["SwitchPricingTab"] = "do.switchPricingTab";
20847    CosmosSrpCustomEvents["VehicleCardLoaded"] = "do.vehiclecardloaded";
20848    CosmosSrpCustomEvents["VehicleDeckLoaded"] = "do.vehicledeckloaded";
20849    CosmosSrpCustomEvents["VehicleSearchEnd"] = "do.vehiclesearchend";
20850    CosmosSrpCustomEvents["ClearFilters"] = "do.clearFilters";
20851    CosmosSrpCustomEvents["UpdateFilterState"] = "do.updateFilterState";
20852    CosmosSrpCustomEvents["MobileFilterPanelOpened"] = "do.mobileFilterPanelOpened";
20853    CosmosSrpCustomEvents["PricingVisibilityAdjusted"] = "do.pricingVisibilityAdjusted";
20854})(CosmosSrpCustomEvents || (CosmosSrpCustomEvents = {}));
20855
20856
20857/***/ }),
20858
20859/***/ 9638:
20860/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
20861
20862"use strict";
20863
20864
20865var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
20866  function adopt(value) {
20867    return value instanceof P ? value : new P(function (resolve) {
20868      resolve(value);
20869    });
20870  }
20871  return new (P || (P = Promise))(function (resolve, reject) {
20872    function fulfilled(value) {
20873      try {
20874        step(generator.next(value));
20875      } catch (e) {
20876        reject(e);
20877      }
20878    }
20879    function rejected(value) {
20880      try {
20881        step(generator["throw"](value));
20882      } catch (e) {
20883        reject(e);
20884      }
20885    }
20886    function step(result) {
20887      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
20888    }
20889    step((generator = generator.apply(thisArg, _arguments || [])).next());
20890  });
20891};
20892var __generator = this && this.__generator || function (thisArg, body) {
20893  var _ = {
20894      label: 0,
20895      sent: function () {
20896        if (t[0] & 1) throw t[1];
20897        return t[1];
20898      },
20899      trys: [],
20900      ops: []
20901    },
20902    f,
20903    y,
20904    t,
20905    g;
20906  return g = {
20907    next: verb(0),
20908    "throw": verb(1),
20909    "return": verb(2)
20910  }, typeof Symbol === "function" && (g[Symbol.iterator] = function () {
20911    return this;
20912  }), g;
20913  function verb(n) {
20914    return function (v) {
20915      return step([n, v]);
20916    };
20917  }
20918  function step(op) {
20919    if (f) throw new TypeError("Generator is already executing.");
20920    while (_) try {
20921      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;
20922      if (y = 0, t) op = [op[0] & 2, t.value];
20923      switch (op[0]) {
20924        case 0:
20925        case 1:
20926          t = op;
20927          break;
20928        case 4:
20929          _.label++;
20930          return {
20931            value: op[1],
20932            done: false
20933          };
20934        case 5:
20935          _.label++;
20936          y = op[1];
20937          op = [0];
20938          continue;
20939        case 7:
20940          op = _.ops.pop();
20941          _.trys.pop();
20942          continue;
20943        default:
20944          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
20945            _ = 0;
20946            continue;
20947          }
20948          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
20949            _.label = op[1];
20950            break;
20951          }
20952          if (op[0] === 6 && _.label < t[1]) {
20953            _.label = t[1];
20954            t = op;
20955            break;
20956          }
20957          if (t && _.label < t[2]) {
20958            _.label = t[2];
20959            _.ops.push(op);
20960            break;
20961          }
20962          if (t[2]) _.ops.pop();
20963          _.trys.pop();
20964          continue;
20965      }
20966      op = body.call(thisArg, _);
20967    } catch (e) {
20968      op = [6, e];
20969      y = 0;
20970    } finally {
20971      f = t = 0;
20972    }
20973    if (op[0] & 5) throw op[1];
20974    return {
20975      value: op[0] ? op[1] : void 0,
20976      done: true
20977    };
20978  }
20979};
20980Object.defineProperty(exports, "__esModule", ({
20981  value: true
20982}));
20983exports.Container = void 0;
20984var binding_1 = __webpack_require__(8677);
20985var ERROR_MSGS = __webpack_require__(7718);
20986var literal_types_1 = __webpack_require__(7802);
20987var METADATA_KEY = __webpack_require__(4725);
20988var metadata_reader_1 = __webpack_require__(5426);
20989var planner_1 = __webpack_require__(4387);
20990var resolver_1 = __webpack_require__(8156);
20991var binding_to_syntax_1 = __webpack_require__(6566);
20992var id_1 = __webpack_require__(8418);
20993var serialization_1 = __webpack_require__(7911);
20994var container_snapshot_1 = __webpack_require__(7549);
20995var lookup_1 = __webpack_require__(6983);
20996var Container = function () {
20997  function Container(containerOptions) {
20998    var options = containerOptions || {};
20999    if (typeof options !== "object") {
21000      throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT);
21001    }
21002    if (options.defaultScope === undefined) {
21003      options.defaultScope = literal_types_1.BindingScopeEnum.Transient;
21004    } else if (options.defaultScope !== literal_types_1.BindingScopeEnum.Singleton && options.defaultScope !== literal_types_1.BindingScopeEnum.Transient && options.defaultScope !== literal_types_1.BindingScopeEnum.Request) {
21005      throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE);
21006    }
21007    if (options.autoBindInjectable === undefined) {
21008      options.autoBindInjectable = false;
21009    } else if (typeof options.autoBindInjectable !== "boolean") {
21010      throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE);
21011    }
21012    if (options.skipBaseClassChecks === undefined) {
21013      options.skipBaseClassChecks = false;
21014    } else if (typeof options.skipBaseClassChecks !== "boolean") {
21015      throw new Error("" + ERROR_MSGS.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK);
21016    }
21017    this.options = {
21018      autoBindInjectable: options.autoBindInjectable,
21019      defaultScope: options.defaultScope,
21020      skipBaseClassChecks: options.skipBaseClassChecks
21021    };
21022    this.id = id_1.id();
21023    this._bindingDictionary = new lookup_1.Lookup();
21024    this._snapshots = [];
21025    this._middleware = null;
21026    this.parent = null;
21027    this._metadataReader = new metadata_reader_1.MetadataReader();
21028  }
21029  Container.merge = function (container1, container2) {
21030    var container = new Container();
21031    var bindingDictionary = planner_1.getBindingDictionary(container);
21032    var bindingDictionary1 = planner_1.getBindingDictionary(container1);
21033    var bindingDictionary2 = planner_1.getBindingDictionary(container2);
21034    function copyDictionary(origin, destination) {
21035      origin.traverse(function (key, value) {
21036        value.forEach(function (binding) {
21037          destination.add(binding.serviceIdentifier, binding.clone());
21038        });
21039      });
21040    }
21041    copyDictionary(bindingDictionary1, bindingDictionary);
21042    copyDictionary(bindingDictionary2, bindingDictionary);
21043    return container;
21044  };
21045  Container.prototype.load = function () {
21046    var modules = [];
21047    for (var _i = 0; _i < arguments.length; _i++) {
21048      modules[_i] = arguments[_i];
21049    }
21050    var getHelpers = this._getContainerModuleHelpersFactory();
21051    for (var _a = 0, modules_1 = modules; _a < modules_1.length; _a++) {
21052      var currentModule = modules_1[_a];
21053      var containerModuleHelpers = getHelpers(currentModule.id);
21054      currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction);
21055    }
21056  };
21057  Container.prototype.loadAsync = function () {
21058    var modules = [];
21059    for (var _i = 0; _i < arguments.length; _i++) {
21060      modules[_i] = arguments[_i];
21061    }
21062    return __awaiter(this, void 0, void 0, function () {
21063      var getHelpers, _a, modules_2, currentModule, containerModuleHelpers;
21064      return __generator(this, function (_b) {
21065        switch (_b.label) {
21066          case 0:
21067            getHelpers = this._getContainerModuleHelpersFactory();
21068            _a = 0, modules_2 = modules;
21069            _b.label = 1;
21070          case 1:
21071            if (!(_a < modules_2.length)) return [3, 4];
21072            currentModule = modules_2[_a];
21073            containerModuleHelpers = getHelpers(currentModule.id);
21074            return [4, currentModule.registry(containerModuleHelpers.bindFunction, containerModuleHelpers.unbindFunction, containerModuleHelpers.isboundFunction, containerModuleHelpers.rebindFunction)];
21075          case 2:
21076            _b.sent();
21077            _b.label = 3;
21078          case 3:
21079            _a++;
21080            return [3, 1];
21081          case 4:
21082            return [2];
21083        }
21084      });
21085    });
21086  };
21087  Container.prototype.unload = function () {
21088    var _this = this;
21089    var modules = [];
21090    for (var _i = 0; _i < arguments.length; _i++) {
21091      modules[_i] = arguments[_i];
21092    }
21093    var conditionFactory = function (expected) {
21094      return function (item) {
21095        return item.moduleId === expected;
21096      };
21097    };
21098    modules.forEach(function (module) {
21099      var condition = conditionFactory(module.id);
21100      _this._bindingDictionary.removeByCondition(condition);
21101    });
21102  };
21103  Container.prototype.bind = function (serviceIdentifier) {
21104    var scope = this.options.defaultScope || literal_types_1.BindingScopeEnum.Transient;
21105    var binding = new binding_1.Binding(serviceIdentifier, scope);
21106    this._bindingDictionary.add(serviceIdentifier, binding);
21107    return new binding_to_syntax_1.BindingToSyntax(binding);
21108  };
21109  Container.prototype.rebind = function (serviceIdentifier) {
21110    this.unbind(serviceIdentifier);
21111    return this.bind(serviceIdentifier);
21112  };
21113  Container.prototype.unbind = function (serviceIdentifier) {
21114    try {
21115      this._bindingDictionary.remove(serviceIdentifier);
21116    } catch (e) {
21117      throw new Error(ERROR_MSGS.CANNOT_UNBIND + " " + serialization_1.getServiceIdentifierAsString(serviceIdentifier));
21118    }
21119  };
21120  Container.prototype.unbindAll = function () {
21121    this._bindingDictionary = new lookup_1.Lookup();
21122  };
21123  Container.prototype.isBound = function (serviceIdentifier) {
21124    var bound = this._bindingDictionary.hasKey(serviceIdentifier);
21125    if (!bound && this.parent) {
21126      bound = this.parent.isBound(serviceIdentifier);
21127    }
21128    return bound;
21129  };
21130  Container.prototype.isBoundNamed = function (serviceIdentifier, named) {
21131    return this.isBoundTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
21132  };
21133  Container.prototype.isBoundTagged = function (serviceIdentifier, key, value) {
21134    var bound = false;
21135    if (this._bindingDictionary.hasKey(serviceIdentifier)) {
21136      var bindings = this._bindingDictionary.get(serviceIdentifier);
21137      var request_1 = planner_1.createMockRequest(this, serviceIdentifier, key, value);
21138      bound = bindings.some(function (b) {
21139        return b.constraint(request_1);
21140      });
21141    }
21142    if (!bound && this.parent) {
21143      bound = this.parent.isBoundTagged(serviceIdentifier, key, value);
21144    }
21145    return bound;
21146  };
21147  Container.prototype.snapshot = function () {
21148    this._snapshots.push(container_snapshot_1.ContainerSnapshot.of(this._bindingDictionary.clone(), this._middleware));
21149  };
21150  Container.prototype.restore = function () {
21151    var snapshot = this._snapshots.pop();
21152    if (snapshot === undefined) {
21153      throw new Error(ERROR_MSGS.NO_MORE_SNAPSHOTS_AVAILABLE);
21154    }
21155    this._bindingDictionary = snapshot.bindings;
21156    this._middleware = snapshot.middleware;
21157  };
21158  Container.prototype.createChild = function (containerOptions) {
21159    var child = new Container(containerOptions || this.options);
21160    child.parent = this;
21161    return child;
21162  };
21163  Container.prototype.applyMiddleware = function () {
21164    var middlewares = [];
21165    for (var _i = 0; _i < arguments.length; _i++) {
21166      middlewares[_i] = arguments[_i];
21167    }
21168    var initial = this._middleware ? this._middleware : this._planAndResolve();
21169    this._middleware = middlewares.reduce(function (prev, curr) {
21170      return curr(prev);
21171    }, initial);
21172  };
21173  Container.prototype.applyCustomMetadataReader = function (metadataReader) {
21174    this._metadataReader = metadataReader;
21175  };
21176  Container.prototype.get = function (serviceIdentifier) {
21177    return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);
21178  };
21179  Container.prototype.getTagged = function (serviceIdentifier, key, value) {
21180    return this._get(false, false, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);
21181  };
21182  Container.prototype.getNamed = function (serviceIdentifier, named) {
21183    return this.getTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
21184  };
21185  Container.prototype.getAll = function (serviceIdentifier) {
21186    return this._get(true, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier);
21187  };
21188  Container.prototype.getAllTagged = function (serviceIdentifier, key, value) {
21189    return this._get(false, true, literal_types_1.TargetTypeEnum.Variable, serviceIdentifier, key, value);
21190  };
21191  Container.prototype.getAllNamed = function (serviceIdentifier, named) {
21192    return this.getAllTagged(serviceIdentifier, METADATA_KEY.NAMED_TAG, named);
21193  };
21194  Container.prototype.resolve = function (constructorFunction) {
21195    var tempContainer = this.createChild();
21196    tempContainer.bind(constructorFunction).toSelf();
21197    return tempContainer.get(constructorFunction);
21198  };
21199  Container.prototype._getContainerModuleHelpersFactory = function () {
21200    var _this = this;
21201    var setModuleId = function (bindingToSyntax, moduleId) {
21202      bindingToSyntax._binding.moduleId = moduleId;
21203    };
21204    var getBindFunction = function (moduleId) {
21205      return function (serviceIdentifier) {
21206        var _bind = _this.bind.bind(_this);
21207        var bindingToSyntax = _bind(serviceIdentifier);
21208        setModuleId(bindingToSyntax, moduleId);
21209        return bindingToSyntax;
21210      };
21211    };
21212    var getUnbindFunction = function (moduleId) {
21213      return function (serviceIdentifier) {
21214        var _unbind = _this.unbind.bind(_this);
21215        _unbind(serviceIdentifier);
21216      };
21217    };
21218    var getIsboundFunction = function (moduleId) {
21219      return function (serviceIdentifier) {
21220        var _isBound = _this.isBound.bind(_this);
21221        return _isBound(serviceIdentifier);
21222      };
21223    };
21224    var getRebindFunction = function (moduleId) {
21225      return function (serviceIdentifier) {
21226        var _rebind = _this.rebind.bind(_this);
21227        var bindingToSyntax = _rebind(serviceIdentifier);
21228        setModuleId(bindingToSyntax, moduleId);
21229        return bindingToSyntax;
21230      };
21231    };
21232    return function (mId) {
21233      return {
21234        bindFunction: getBindFunction(mId),
21235        isboundFunction: getIsboundFunction(mId),
21236        rebindFunction: getRebindFunction(mId),
21237        unbindFunction: getUnbindFunction(mId)
21238      };
21239    };
21240  };
21241  Container.prototype._get = function (avoidConstraints, isMultiInject, targetType, serviceIdentifier, key, value) {
21242    var result = null;
21243    var defaultArgs = {
21244      avoidConstraints: avoidConstraints,
21245      contextInterceptor: function (context) {
21246        return context;
21247      },
21248      isMultiInject: isMultiInject,
21249      key: key,
21250      serviceIdentifier: serviceIdentifier,
21251      targetType: targetType,
21252      value: value
21253    };
21254    if (this._middleware) {
21255      result = this._middleware(defaultArgs);
21256      if (result === undefined || result === null) {
21257        throw new Error(ERROR_MSGS.INVALID_MIDDLEWARE_RETURN);
21258      }
21259    } else {
21260      result = this._planAndResolve()(defaultArgs);
21261    }
21262    return result;
21263  };
21264  Container.prototype._planAndResolve = function () {
21265    var _this = this;
21266    return function (args) {
21267      var context = planner_1.plan(_this._metadataReader, _this, args.isMultiInject, args.targetType, args.serviceIdentifier, args.key, args.value, args.avoidConstraints);
21268      context = args.contextInterceptor(context);
21269      var result = resolver_1.resolve(context);
21270      return result;
21271    };
21272  };
21273  return Container;
21274}();
21275exports.Container = Container;
21276
21277/***/ }),
21278
21279/***/ 9673:
21280/***/ ((module, __webpack_exports__, __webpack_require__) => {
21281
21282"use strict";
21283__webpack_require__.r(__webpack_exports__);
21284/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21285/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
21286/* harmony export */ });
21287/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
21288/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
21289/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
21290/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
21291// Imports
21292
21293
21294var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
21295// Module
21296___CSS_LOADER_EXPORT___.push([module.id, `.rv-detail[data-v-8a43e908]{display:flex;align-items:center;column-gap:.5rem}.rv-detail__label[data-v-8a43e908]{font-size:1.2rem;line-height:1.2}.rv-detail-icon[data-v-8a43e908]{display:grid;grid-template-areas:"icon";grid-template-columns:1fr;grid-template-rows:1fr}.rv-detail-icon__image[data-v-8a43e908]{grid-area:icon}.rv-detail-icon[data-v-8a43e908]::after{content:"";display:block;background-color:#707070;grid-area:icon;mask-repeat:no-repeat;mask-position:top center;mask-size:contain;mask-image:var(--img-url)}.rv-detail-icon__image[data-v-8a43e908]{width:2rem;height:auto}.rv-detail--features[data-v-8a43e908] .rv-detail__label{display:-webkit-inline-box;-webkit-line-clamp:2;overflow:hidden;-webkit-box-orient:vertical;text-overflow:ellipsis}`, ""]);
21297// Exports
21298/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
21299
21300
21301/***/ }),
21302
21303/***/ 9703:
21304/***/ ((module, __webpack_exports__, __webpack_require__) => {
21305
21306"use strict";
21307__webpack_require__.r(__webpack_exports__);
21308/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21309/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
21310/* harmony export */ });
21311/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9248);
21312/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
21313/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9089);
21314/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
21315// Imports
21316
21317
21318var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
21319// Module
21320___CSS_LOADER_EXPORT___.push([module.id, `.vehicle-compare-button-container{display:flex;flex-wrap:wrap;align-items:center;white-space:nowrap;font-size:1.6rem;border-top:2px solid #f4f5f7;padding:8px 20px;width:inherit}.vehicle-compare-button-container .vehicle-compare-button-container--left{flex:auto}.wasabi_srp .vehicle-compare-button-container .vehicle-compare-button-container--left.custom-checkbox input[type=checkbox]{display:none}.wasabi_srp .vehicle-compare-button-container .vehicle-compare-button-container--left.custom-checkbox input[type=checkbox]:checked+.checkbox::before{font-family:"FontAwesome";font-size:14px;content:"";color:#fff;background-color:var(--cta-background-color);font-weight:normal;border-color:var(--cta-background-color)}.wasabi_srp .vehicle-compare-button-container .vehicle-compare-button-container--left.custom-checkbox input[type=checkbox]:disabled+.checkbox::before{cursor:not-allowed}.wasabi_srp .vehicle-compare-button-container .vehicle-compare-button-container--left.custom-checkbox .checkbox{margin:0px;color:#5c5c5c;display:flex;padding-left:0;line-height:1}.wasabi_srp .vehicle-compare-button-container .vehicle-compare-button-container--left.custom-checkbox .checkbox:hover::before{cursor:pointer}.wasabi_srp .vehicle-compare-button-container .vehicle-compare-button-container--left.custom-checkbox .checkbox::before{border-width:1px;border-style:solid;border-color:#dcdce2;border-radius:6px;background-color:#fff;content:"";width:20px;height:20px;padding:2px;flex:0 0 auto;margin-right:13px}.vehicle-compare-button-container .vehicle-compare-button-container--left .vehicle-compare-checkbox{width:1.1em;height:1.1em;margin:0;position:relative;top:.05em}.vehicle-compare-button-container .vehicle-compare-button-container--left .vehicle-compare-checkbox__label{letter-spacing:0;color:#122532;display:inline-block;font-weight:inherit;margin:0;align-items:center}.wasabi_srp .vehicle-compare-button-container .vehicle-compare-button-container--left .vehicle-compare-checkbox__label{margin:0 0 0 1.1em}.vehicle-compare-button-container .vehicle-compare-button-container--left .vehicle-compare-checkbox__label.checkbox{padding:0}#content-main-inventory .vehicle-compare-button-container .vehicle-compare-button-container--right{padding:0 0 0 1.5em}.wasabi_srp .vehicle-compare-button-container .vehicle-compare-button-container--right{padding:0 0 0 2.2em}.vehicle-compare-button-container .vehicle-compare-button-container--right .vehicle-compare-button{letter-spacing:0;font-size:inherit;padding:0;text-transform:none;flex-grow:2;border:0;cursor:pointer}.vehicle-compare-button-container .vehicle-compare-button-container--right .vehicle-compare-button__label{letter-spacing:0;color:#122532}.vehicle-compare-button-container .vehicle-compare-button-container--right .vehicle-compare-button__label{margin:0;font-weight:inherit;font-style:italic}.list-view{position:relative}.list-view .vehicle-card--mod .vehicle-compare-button-container{border-top:none;padding:15px 20px}.grid-view .vehicle-card--mod .vehicle-compare-button-container{border-top:none;padding:15px 20px}.vehicle-card .vehicle-compare-button-container--right .vehicle-compare-button{color:var(--cta-background-color)}.compare-table{height:100%;position:relative;display:flex;flex-direction:column}
21320.compare-table,.compare-table__body--details{overflow:auto;-ms-overflow-style:none;scrollbar-width:none}.compare-table::-webkit-scrollbar,.compare-table__body--details::-webkit-scrollbar{display:none}.compare-table__row{display:flex;column-gap:.29em}@media(min-width: 834px){.compare-table__row{column-gap:.79em}}@media(min-width: 1920px){.compare-table__row{column-gap:2.14em}}.compare-table__row--body:not(:first-of-type) .cell-contents--details{border-top:2px solid #dcdce2}.compare-table__cell{width:100%;min-width:180px}.compare-table__cell--details{font-size:.95em}.compare-table__loading{font-weight:400}.compare-table .cell-contents{height:100%}.compare-table .cell-contents--details{background:#f4f5f7}.compare-table .cell-contents__empty{height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.compare-table .cell-contents__empty-text{font-size:16px;color:#a5a5a5}.compare-table .header-cell{position:relative;border:2px solid #f4f5f7;border-bottom:none}.compare-table .header-cell__close{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;position:absolute;right:.36em;top:.36em;z-index:50}.compare-table .header-cell__close-icon{color:#a5a5a5}.compare-table .header-cell__image{display:block;max-width:100%;aspect-ratio:4/3;object-fit:contain;object-position:top}.compare-table .header-cell__vehicle-title{padding:.8em 1.45em;display:block}.compare-table .header-cell .vehicle-title{margin:0;line-height:.5em;color:#333}.compare-table .header-cell .vehicle-title__text{flex:0 1 auto;font-size:.55em}.compare-table .header-cell .vehicle-title__year,.compare-table .header-cell .vehicle-title__make-model{font-weight:900;padding-right:5px}.compare-table .header-cell .vehicle-title__year{color:#a5a5a5}.compare-table .header-cell .vehicle-title__trim{flex:1 1 auto;font-size:.45em}.compare-table .price-cell{padding:0 1.45em .8em 1.45em;color:#000;border-right:2px solid #f4f5f7;border-left:2px solid #f4f5f7;border-bottom:2px solid #dcdce2}.compare-table .price-cell__amount{font-weight:bold;font-size:1.14em;margin:0}.compare-table .price-cell__label{font-size:.93em;margin:0}.compare-table .specs-cell{padding:.85em 1.45em}.compare-table .specs-data{height:100%}.compare-table .highlights-cell{padding:.8em 1.45em}.compare-table .highlights-cell__list{-webkit-padding-start:0;padding-inline-start:0}.compare-table .highlights-cell__item{display:flex;align-items:center;margin:0;padding:.4em 0}.compare-table .highlights-cell__icon{margin-right:.5em;min-width:24px;flex-basis:24px;opacity:.2}.compare-table .highlights-cell__expand{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial}.compare-table .comments-cell{padding:1.25em 1.45em}.compare-table .comments-cell__text{line-height:1.35em;margin-bottom:.71em}.compare-table .comments-cell__text:not(.comments-cell__text--expanded){max-height:6.7em;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:4;-webkit-box-orient:vertical;display:block;white-space:nowrap;display:-webkit-box;white-space:unset}@media(min-width: 834px){.compare-table .comments-cell__text:not(.comments-cell__text--expanded){-webkit-line-clamp:3;max-height:5.4em}}.compare-table .comments-cell__expand{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial}.compare-table .comments-cell__vdp-button-container{margin-top:1.65em}.compare-table .comments-cell__vdp-button{border-radius:5px;width:100%;padding-top:.75em;padding-bottom:.75em;font-size:1em;text-transform:none}.specs__list{display:flex;flex-direction:column;list-style:none;padding-inline-start:0;margin:0}.specs__item{display:flex}.specs__value{font-weight:700;display:-webkit-inline-box;-webkit-line-clamp:2;overflow:hidden;-webkit-box-orient:vertical;text-overflow:ellipsis}.specs__value,.specs__color-label{margin-top:2px}.specs__icon{margin-right:.5em}.specs__color-icon{border:1px solid #999;border-radius:5px;display:block}.specs__list{row-gap:13px}.specs__icon{min-width:24px;flex-basis:24px}.specs__color-icon{margin:.15em 9px .15em 1px;padding:9px}body::-webkit-scrollbar .vehicle-compare-container{display:none}.vehicle-compare-container{display:grid;grid-template-rows:minmax(auto, 85px) auto;height:100%;width:100%;position:fixed;top:0;left:0;z-index:99999 !important;background:#fff;-ms-overflow-style:none;scrollbar-width:none}.vehicle-compare-container::-webkit-scrollbar{display:none}@media(min-width: 834px){.vehicle-compare-container[data-has-vehicles=false]{background:#f4f5f7}}.vehicle-compare-container header{color:unset}.vehicle-compare-container .header{display:grid;grid-template-columns:1fr auto;grid-template-rows:1fr auto;grid-template-areas:"title close" "clear share";height:85px;align-content:flex-end;background-color:#f4f5f7;padding:0 .71em .71em 1.07em;width:100vw;max-width:1450px}@media(min-width: 834px){.vehicle-compare-container .header{grid-template-rows:1fr;grid-template-columns:1fr repeat(2, auto);grid-template-areas:". . close" "title clear share";align-items:flex-end;column-gap:2.86em;height:109px;padding:0 2.86em .71em}}@media(min-width: 1025px){.vehicle-compare-container .header{margin-right:auto;margin-left:auto}}.vehicle-compare-container .header__title{grid-area:title;font-size:1.5em;font-weight:bold;padding:1.13em 0 0;text-transform:none;margin:0}@media(min-width: 834px){.vehicle-compare-container .header__title{font-size:2.3em;padding-bottom:0}}@media(min-width: 834px){.vehicle-compare-container .header__actions{display:flex;justify-content:flex-end;align-self:end;align-items:center}}.vehicle-compare-container .header__actions-close{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;cursor:pointer;padding:1.07em .79em;color:#122532}@media(min-width: 834px){.vehicle-compare-container .header__actions-close{display:inline-block;padding:0;font-size:1.2em;line-height:1}}.vehicle-compare-container .header__actions-close-icon{font-size:1.6em}.vehicle-compare-container .header__actions-share{grid-area:share;border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;cursor:pointer;z-index:100}@media(min-width: 834px){.vehicle-compare-container .header__actions-share{font-size:1.2em}}.vehicle-compare-container .header__actions-clear{grid-area:clear;border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;background:rgba(0,0,0,0);border:none;padding-bottom:8px;font-size:1.2em;text-align:left;cursor:pointer}@media(min-width: 834px){.vehicle-compare-container .header__actions-clear{font-size:1.2em}}.vehicle-compare-container .header__container-close{grid-area:close;display:flex;flex-direction:column;align-items:flex-end;justify-content:center}.vehicle-compare-container .vehicle-compare__main{display:grid;grid-template-columns:auto auto 1fr;width:100%;max-width:1450px;margin:0 auto;-ms-overflow-style:none;scrollbar-width:none}.vehicle-compare-container .vehicle-compare__main::-webkit-scrollbar{display:none}@media(min-width: 834px){.vehicle-compare-container .vehicle-compare__main{padding:1.43em 2.9em}}.vehicle-compare-container .vehicle-compare__main--no-vehicles{justify-items:center;grid-template-columns:1fr}.vehicle-compare-container .vehicle-compare__main,.vehicle-compare-container .vehicle-compare__table{overflow:auto;height:100%}.vehicle-compare-container .vehicle-compare__table{min-width:fit-content}@media(min-width: 834px){.vehicle-compare-container .vehicle-compare__table{max-width:calc(1450px 
21320- 2.9em*2)}}.vehicle-compare-container .vehicle-compare__table--1-col{width:calc(calc(calc(100vw - 2.9em * 2) / 5)*1);min-width:calc(180px*1 + 0.29em*(1 - 1))}@media(min-width: 1450px){.vehicle-compare-container .vehicle-compare__table--1-col{width:calc(calc(calc(1450px - 2.9em * 2) / 5)*1)}}@media(min-width: 834px){.vehicle-compare-container .vehicle-compare__table--1-col{min-width:calc(180px*1 + 0.79em*(1 - 1))}}@media(min-width: 1920px){.vehicle-compare-container .vehicle-compare__table--1-col{min-width:calc(180px*1 + 2.14em*(1 - 1))}}.vehicle-compare-container .vehicle-compare__table--2-col{width:calc(calc(calc(100vw - 2.9em * 2) / 5)*2);min-width:calc(180px*2 + 0.29em*(2 - 1))}@media(min-width: 1450px){.vehicle-compare-container .vehicle-compare__table--2-col{width:calc(calc(calc(1450px - 2.9em * 2) / 5)*2)}}@media(min-width: 834px){.vehicle-compare-container .vehicle-compare__table--2-col{min-width:calc(180px*2 + 0.79em*(2 - 1))}}@media(min-width: 1920px){.vehicle-compare-container .vehicle-compare__table--2-col{min-width:calc(180px*2 + 2.14em*(2 - 1))}}.vehicle-compare-container .vehicle-compare__table--3-col{width:calc(calc(calc(100vw - 2.9em * 2) / 5)*3);min-width:calc(180px*3 + 0.29em*(3 - 1))}@media(min-width: 1450px){.vehicle-compare-container .vehicle-compare__table--3-col{width:calc(calc(calc(1450px - 2.9em * 2) / 5)*3)}}@media(min-width: 834px){.vehicle-compare-container .vehicle-compare__table--3-col{min-width:calc(180px*3 + 0.79em*(3 - 1))}}@media(min-width: 1920px){.vehicle-compare-container .vehicle-compare__table--3-col{min-width:calc(180px*3 + 2.14em*(3 - 1))}}.vehicle-compare-container .vehicle-compare__table--4-col{width:calc(calc(calc(100vw - 2.9em * 2) / 5)*4);min-width:calc(180px*4 + 0.29em*(4 - 1))}@media(min-width: 1450px){.vehicle-compare-container .vehicle-compare__table--4-col{width:calc(calc(calc(1450px - 2.9em * 2) / 5)*4)}}@media(min-width: 834px){.vehicle-compare-container .vehicle-compare__table--4-col{min-width:calc(180px*4 + 0.79em*(4 - 1))}}@media(min-width: 1920px){.vehicle-compare-container .vehicle-compare__table--4-col{min-width:calc(180px*4 + 2.14em*(4 - 1))}}.vehicle-compare-container .vehicle-compare__table--5-col{width:calc(calc(calc(100vw - 2.9em * 2) / 5)*5);min-width:calc(180px*5 + 0.29em*(5 - 1))}@media(min-width: 1450px){.vehicle-compare-container .vehicle-compare__table--5-col{width:calc(calc(calc(1450px - 2.9em * 2) / 5)*5)}}@media(min-width: 834px){.vehicle-compare-container .vehicle-compare__table--5-col{min-width:calc(180px*5 + 0.79em*(5 - 1))}}@media(min-width: 1920px){.vehicle-compare-container .vehicle-compare__table--5-col{min-width:calc(180px*5 + 2.14em*(5 - 1))}}.vehicle-compare-container .vehicle-compare__add-vehicles{min-width:180px;width:calc(calc(calc(100vw - 2.9em * 2) / 5)*1)}@media(min-width: 1450px){.vehicle-compare-container .vehicle-compare__add-vehicles{width:calc(calc(calc(1450px - 2.9em * 2) / 5)*1)}}.vehicle-compare-container .add-vehicles{padding:5.14em 1.43em 0}.vehicle-compare-container .add-vehicles__label{font-size:1.15em;color:#a5a5a5;text-align:center;margin-bottom:2.14em}.vehicle-compare-container .add-vehicles__back-button{display:block;margin:0 auto;font-size:13px;min-height:40px}.vehicle-compare-container .scrolling-controls{display:none}.vehicle-compare-container .scrolling-controls .scrolling-control__btn{z-index:10;position:fixed;top:275px;height:140px;width:4.5em;background-color:#333;border:none;color:#fff;cursor:pointer;opacity:.5}.vehicle-compare-container .scrolling-controls .scrolling-control__btn i{pointer-events:none;font-size:2.5em}.vehicle-compare-container .scrolling-controls .scrolling-control--previous .scrolling-control__btn--previous{border-radius:0 14px 14px 0;left:0}.vehicle-compare-container .scrolling-controls .scrolling-control--next .scrolling-control__btn--next{border-radius:14px 0 0 14px;right:0}@media(min-width: 834px){.vehicle-compare-container .scrolling-controls{display:flex}}@media(min-width: 1025px){.vehicle-compare-container .scrolling-controls{display:none}}@media(min-width: 834px){.vehicle-compare-container{background:#fff;grid-template-rows:minmax(auto, 109px) auto}}.specialTags{display:block;font-size:18px;border:none;z-index:2}.specialTags--bottom{position:absolute;top:0;padding:4px 0;text-align:center;width:30px;height:38px;clip-path:path("M 0 0 h 30 v 38 l -15 -8 l -15 8 z")}.specialTags--right{padding:4px 6px;width:40px;height:32px;clip-path:path("M 0 0 h 40 l -9 16 l 9 16 h -40 z")}.specialTags .fa-long-arrow-down{margin-left:3px}.missing-image{display:grid;grid-template-rows:1fr 47% 1fr;grid-template-areas:"." "title" "subtitle";align-items:center;justify-content:center;color:#333;text-align:center;padding:0 10px;pointer-events:none}.missing-image__title{grid-area:title}.missing-image__subtitle{grid-area:subtitle}.missing-image__title,.missing-image__subtitle{margin:0;text-transform:none;font-weight:bold}.missing-image__title{font-size:2em;max-width:27rem;line-height:1.1}.missing-image__subtitle{font-size:1.07em}.vehicle-card--mod .vehicle-image{position:relative;display:grid;grid-template-columns:[image-start] 20px [price-drop-start] auto [price-drop-end] 2px [special-start] auto [special-end] 1fr [save-start] auto [save-end] 18px [image-end];grid-template-rows:[image-start overlays-start] auto [overlays-end] 1fr [image-end]}.vehicle-card--mod .vehicle-image .special-flag{position:static}.vehicle-card--mod .vehicle-image .special-flag--price-drop{grid-column:price-drop;grid-row:overlays}.vehicle-card--mod .vehicle-image .special-flag--special{grid-column:special;grid-row:overlays}.vehicle-card--mod .vehicle-image .tdg_container_inv{width:31px;height:31px;background-color:#dcdce2;grid-column:save;grid-row:overlays;z-index:1}.vehicle-card--mod .vehicle-image .tdg_container_inv .tdg-heart{margin:6px 5px}.vehicle-card--mod .vehicle-image__image-wrapper{grid-area:image;display:grid;grid-template-areas:"image-and-overlay"}.vehicle-card--mod .vehicle-image__single-image,.vehicle-card--mod .vehicle-image .missing-image{grid-area:image-and-overlay}.vehicle-card--mod .vehicle-image__image--rounded{border-radius:1rem 1rem 0px 0px;overflow:hidden}.list-view .vehicle-card--mod .vehicle-image__image--rounded{border-radius:1rem 0px 0px 0px}.vehicle-dropdown{position:relative}.vehicle-dropdown__trigger{display:flex;align-items:center;justify-content:center;width:35px;height:35px;color:var(--cta-background-color);border:none;background-color:rgba(0,0,0,0);border-radius:50%}.vehicle-dropdown__trigger:hover,.vehicle-dropdown__trigger:active,.vehicle-dropdown__trigger:focus{color:#333}.vehicle-dropdown__trigger.less-whitespace{height:20px}.vehicle-dropdown__dots{display:flex;flex-direction:column;row-gap:2px;font-size:4px}.vehicle-dropdown__menu{margin:5px 0 0;-webkit-box-shadow:0px 0px 15px 2px rgba(0,0,0,.1);-moz-box-shadow:0px 0px 15px 2px rgba(0,0,0,.1);box-shadow:0px 0px 15px 2px rgba(0,0,0,.1);float:none;right:0;left:auto;padding:0;background-color:#fff;border:none;position:absolute;top:100%;z-index:10;min-width:145px;font-size:14px;text-align:left;list-style:none;background-clip:padding-box;border-radius:4px;display:none}.vehicle-dropdown__menu.open{display:block}.vehicle-dropdown__menu hr{width:125px;margin-top:0;margin-bottom:0}.vehicle-dropdown__item .dropdown-button:hover,.vehicle-dropdown__item .dropdown-button:active,.vehicle-dropdown__item .dropdown-button:focus,.vehicle-dropdown__item .vehicle-dropdown__action:hover,.vehicle-dropdown__item .vehicle-dropdown__action:active,.vehicle-dropdown__item .vehicle-dropdown__action:focus{border-color:#eaecf0}.vehicle-dropdown__item:first-of-type .dropdown-button,.vehicle-dropdown__item:first-of-type .vehicle-dropdown__action{border-radius:5px 5px 0 0}.vehicle-dropdown__item:last-of-type .dropdown-button,.vehicle-dropdown__item:last-of-type .vehicle-dropdown__action{border-radius:0 0 5px 5px}.vehicle-dropdown__item--copy-link .copied{background:var(--cta-background-color) !important;color:#fff}.vehicle-dropdown__item--copy-link .copied::after{background-color:#fff !important}.vehicle-dropdown__action{width:100%;display:grid !important;padding:0px 15px !important;grid-template-areas:"icon label";grid-template-columns:18px 1fr;grid-template-rows:auto;border-width:0;border-style:solid;border-color:#f4f5f7;background-color:#fff;min-height:42px;column-gap:12px;text-align:left;align-items:center;color:inherit !important}.vehicle-dropdown__action:hover{background-color:#f4f5f7}.vehicle-dropdown__action::after{content:"";background-color:#333;width:18px;height:18px;display:block;grid-area:icon;z-index:1;mix-blend-mode:screen;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}
21320.vehicle-dropdown__action--details::after{mask-image:var(--details-icon-url);-webkit-mask-image:var(--details-icon-url)}.vehicle-dropdown__icon{grid-area:icon;width:18px;height:auto;font-size:20px}.vehicle-dropdown__label{grid-area:label}.vehicle-dropdown .dropdown-button{width:100%;display:grid !important;padding:0px 15px !important;grid-template-areas:"icon label";grid-template-columns:18px 1fr;grid-template-rows:auto;border-width:0;border-style:solid;border-color:#f4f5f7;background-color:#fff;min-height:42px;column-gap:12px;text-align:left;align-items:center}.vehicle-dropdown .dropdown-button:hover{background-color:#f4f5f7}.vehicle-dropdown .dropdown-button::after{content:"";background-color:#333;width:18px;height:18px;display:block;grid-area:icon;z-index:1;mix-blend-mode:screen;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.vehicle-dropdown .dropdown-button--copy::after{mask-image:var(--copy-icon-url);-webkit-mask-image:var(--copy-icon-url)}.vehicle-dropdown .dropdown-button--share::after{mask-image:var(--share-icon-url);-webkit-mask-image:var(--share-icon-url)}.vehicle-dropdown .dropdown-button--print::after{mask-image:var(--print-icon-url);-webkit-mask-image:var(--print-icon-url)}.vehicle-dropdown .dropdown-button__icon{grid-area:icon;width:18px;height:auto}.vehicle-dropdown .dropdown-button__label{grid-area:label}.vehicle-card--mod .vehicle-overview{display:grid;grid-template-areas:"title        dropdown" "identifiers  identifiers" "specs        specs";grid-template-columns:1fr auto;padding:1.43em 1.43em 1em;gap:.71em 1.43em;align-items:center;grid-template-rows:repeat(3, auto)}.vehicle-card--mod .vehicle-overview__title{grid-area:title}.vehicle-card--mod .vehicle-overview__dropdown{grid-area:dropdown}.vehicle-card--mod .vehicle-overview__identifiers{grid-area:identifiers}.vehicle-card--mod .vehicle-overview__specs{grid-area:specs}@media(min-width: 640px){.vehicle-card--mod .vehicle-overview{grid-template-rows:minmax(5em, auto) repeat(2, auto)}}.list-view .vehicle-card--mod .vehicle-overview{grid-template-rows:repeat(3, auto)}.vehicle-card--mod .vehicle-overview__specs{display:flex;align-items:center;justify-content:space-between;gap:1.07em;padding:.86em 0 0;border-top:2px solid #f4f5f7;height:100%;width:100%}.vehicle-card--mod .vehicle-overview__colors{min-width:0}.vehicle-card--mod .vehicle-title{display:flex;align-items:center}.vehicle-card--mod .vehicle-title__text{display:inline-flex;flex-wrap:wrap;font-size:1.14em;color:#333;margin:0px;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.4}.vehicle-card--mod .vehicle-title__year-make-model{flex:0 1 auto;padding-right:.25em}.vehicle-card--mod .vehicle-title__condition,.vehicle-card--mod .vehicle-title__year,.vehicle-card--mod .vehicle-title__make-model,.vehicle-card--mod .vehicle-title__car-bravo,.vehicle-card--mod .vehicle-title__toyota-gold,.vehicle-card--mod .vehicle-title__toyota-silver{font-weight:900}.vehicle-card--mod .vehicle-title__condition,.vehicle-card--mod .vehicle-title__year{color:#707070}.vehicle-card--mod .vehicle-title__car-bravo{color:#063c4a}.vehicle-card--mod .vehicle-title__toyota-gold{color:#a37e2c}.vehicle-card--mod .vehicle-title__toyota-silver{color:#75757a}.vehicle-card--mod .vehicle-title__trim{flex:1 1 auto}.vehicle-card--mod .vehicle-status{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;display:flex;align-items:center;justify-content:space-between;min-height:1.43em;background-color:color-mix(in srgb, var(--cta-background-color), transparent 95%);border:1px solid var(--cta-background-color);color:var(--cta-background-color);padding:.29em .71em;font-size:1rem !important;line-height:1;text-align:center}.vehicle-card--mod .vehicle-status--rounded{border-radius:.36em}.vehicle-card--mod .vehicle-status__label{display:flex;column-gap:.3rem;align-items:center}.vehicle-card--mod .vehicle-eta-icon,.vehicle-card--mod .vehicle-status-info-icon{display:grid;grid-template-areas:"icon";grid-template-columns:1fr;grid-template-rows:1fr}.vehicle-card--mod .vehicle-eta-icon__image,.vehicle-card--mod .vehicle-status-info-icon__image{grid-area:icon}.vehicle-card--mod .vehicle-eta-icon::after,.vehicle-card--mod .vehicle-status-info-icon::after{content:"";display:block;background-color:#5c5c5c;mix-blend-mode:screen;grid-area:icon;width:100%;height:100%}.vehicle-card--mod .vehicle-eta-icon__image,.vehicle-card--mod .vehicle-status-info-icon__image{display:flex;align-items:center;width:1.1rem}.vehicle-card--mod .vehicle-mileage{width:max-content;font-size:1.14em}.vehicle-card--mod .vehicle-colors{display:flex;align-items:center;column-gap:1.07em}.vehicle-card--mod .vehicle-colors__int,.vehicle-card--mod .vehicle-colors__ext{display:flex;align-items:center;column-gap:.36em;min-width:0}.vehicle-card--mod .vehicle-colors__icon{width:1.43em;height:1.43em;border:1px solid #dcdce2;flex:0 0 auto}.vehicle-card--mod .vehicle-colors__icon--rounded{border-radius:.21em}.vehicle-card--mod .vehicle-colors__label,.vehicle-card--mod .vehicle-colors__value{font-size:.93em}.vehicle-card--mod .vehicle-colors__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vehicle-card--mod .vehicle-identifiers{display:flex;flex-wrap:wrap;gap:.21em 1.43em;color:#707070;line-height:1}.vehicle-card--mod .vehicle-identifiers__label,.vehicle-card--mod .vehicle-identifiers__value{font-size:1.2rem;font-weight:400;line-height:1}.vehicle-card--mod .vehicle-features{display:flex;column-gap:.36em;padding:0 1.43em;min-height:3.57em;align-items:center;justify-content:space-between;column-gap:.8rem}.list-view .vehicle-card--mod .vehicle-features{min-height:0}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-features{flex-wrap:wrap;grid-template-rows:repeat(2, auto);row-gap:2.5em;padding:2.71em 2.5em 2.29em}}.grid-view .vehicle-card--mod .vehicle-features--all .vehicle-highlights{max-width:200
21320px}.grid-view .vehicle-card--mod .vehicle-features--all .vehicle-highlights__item:nth-of-type(n+5){display:none}.grid-view .vehicle-card--mod .vehicle-features--all .vehicle-features__more-details{flex:0 1 auto}.grid-view .vehicle-card--mod .vehicle-features--all .vehicle-more-details{flex-wrap:nowrap}.grid-view .vehicle-card--mod .vehicle-features--all .vehicle-more-details__comments,.grid-view .vehicle-card--mod .vehicle-features--all .vehicle-more-details__video,.grid-view .vehicle-card--mod .vehicle-features--all .vehicle-more-details__window-sticker{flex:0 1 auto;min-width:2.7rem}.grid-view .vehicle-card--mod .vehicle-features--all .comments-button,.grid-view .vehicle-card--mod .vehicle-features--all .window-sticker-button,.grid-view .vehicle-card--mod .vehicle-features--all .video-button{min-width:2.7rem;height:2.7rem}.grid-view .vehicle-card--mod .vehicle-features--all .comments-button__label,.grid-view .vehicle-card--mod .vehicle-features--all .window-sticker-button__label,.grid-view .vehicle-card--mod .vehicle-features--all .video-button__label{display:none}@media(min-width: 1533px){.list-view .grid-view .vehicle-card--mod .vehicle-features--all .comments-button__label,.list-view .grid-view .vehicle-card--mod .vehicle-features--all .window-sticker-button__label,.list-view .grid-view .vehicle-card--mod .vehicle-features--all .video-button__label{display:block}}@media(max-width: 1532px){.list-view .vehicle-card--mod .vehicle-features--all .vehicle-highlights{max-width:200px}.list-view .vehicle-card--mod .vehicle-features--all .vehicle-highlights__item:nth-of-type(n+5){display:none}.list-view .vehicle-card--mod .vehicle-features--all .vehicle-features__more-details{flex:0 1 auto}.list-view .vehicle-card--mod .vehicle-features--all .vehicle-more-details{flex-wrap:nowrap}.list-view .vehicle-card--mod .vehicle-features--all .vehicle-more-details__comments,.list-view .vehicle-card--mod .vehicle-features--all .vehicle-more-details__video,.list-view .vehicle-card--mod .vehicle-features--all .vehicle-more-details__window-sticker{flex:0 1 auto;min-width:2.7rem}.list-view .vehicle-card--mod .vehicle-features--all .comments-button,.list-view .vehicle-card--mod .vehicle-features--all .window-sticker-button,.list-view .vehicle-card--mod .vehicle-features--all .video-button{min-width:2.7rem;height:2.7rem}.list-view .vehicle-card--mod .vehicle-features--all .comments-button__label,.list-view .vehicle-card--mod .vehicle-features--all .window-sticker-button__label,.list-view .vehicle-card--mod .vehicle-features--all .video-button__label{display:none}}@media(max-width: 1532px)and (min-width: 1533px){.list-view .list-view .vehicle-card--mod .vehicle-features--all .comments-button__label,.list-view .list-view .vehicle-card--mod .vehicle-features--all .window-sticker-button__label,.list-view .list-view .vehicle-card--mod .vehicle-features--all .video-button__label{display:block}}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-features--highlights-only .vehicle-highlights__list{grid-template-columns:1fr;gap:1.5em 1.43em}}.vehicle-card--mod .vehicle-features--buttons-only{padding:.71em 1.43em}.vehicle-card--mod .vehicle-features__heading{display:none;font-size:.93em;font-weight:700;margin:0;color:#5c5c5c}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-features__heading{display:block}}.vehicle-card--mod .vehicle-features__highlights,.vehicle-card--mod .vehicle-features__more-details{flex:1 1 auto}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-features__highlights,.list-view .vehicle-card--mod .vehicle-features__more-details{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(2, auto);row-gap:1.07em;flex:0 1 100%}}.vehicle-card--mod .vehicle-highlights{display:flex;align-items:center;justify-content:space-between;column-gap:.8rem}.vehicle-card--mod .vehicle-highlights__tooltip{display:block;position:absolute;width:max-content;height:fit-content;max-width:10.71em;padding:.29em .71em .36em;bottom:calc(100% + .71em);left:0;border-radius:0;background-color:#333}.vehicle-card--mod .vehicle-highlights__tooltip::before{content:"";display:block;position:absolute;background-color:#333;width:.79em;height:.57em;clip-path:polygon(0% 0%, 50% 100%, 100% 0);top:calc(100% - .07em)}.vehicle-card--mod .vehicle-highlights__tooltip-text{color:#fff;font-size:.93em}.vehicle-card--mod .vehicle-highlights__tooltip::before{left:.29em;right:auto;transform:none}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-highlights{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(2, auto);row-gap:.71em}}.vehicle-card--mod .vehicle-highlights__list{list-style:none;display:contents;padding:0;margin:0}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-highlights__list{display:grid;grid-template-columns:repeat(2, 1fr);grid-template-rows:auto;grid-auto-rows:auto;gap:2.5em 1.43em}}.vehicle-card--mod .vehicle-highlights__item,.vehicle-card--mod .vehicle-highlights__disclaimer{flex:1 1 3rem;display:flex}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-highlights__item{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr;column-gap:.71em}}.vehicle-card--mod .vehicle-highlights__icon-wrapper{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;display:flex;align-items:center;justify-content:center;padding:1.2rem 0;flex:1 0 auto}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-highlights__icon-wrapper{display:none}}.vehicle-card--mod .vehicle-highlights__icon--full,.vehicle-card--mod .vehicle-highlights__label--full{display:none}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-highlights__icon--full,.list-view .vehicle-card--mod .vehicle-highlights__label--full{display:block}}.vehicle-card--mod .vehicle-highlights__icon{width:2.5rem;height:auto}.vehicle-card--mod .vehicle-highlights__label{margin-top:.36em;font-size:.93em;color:#5c5c5c}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-highlights__disclaimer{display:inline-block;margin-right:auto;padding:0}}.vehicle-card--mod .vehicle-highlights__disclaimer .vehicle-highlights__tooltip{left:auto !important;right:calc(50% - .71em)}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-highlights__disclaimer .vehicle-highlights__tooltip{bottom:calc(100% + .36em)}}.vehicle-card--mod .vehicle-highlights__disclaimer .vehicle-highlights__tooltip::before{left:auto;right:.29em}.vehicle-card--mod .vehicle-highlights__tooltip{top:auto !important;bottom:calc(100% - .36em);left:calc(50% - .71em) !important}.vehicle-card--mod .vehicle-highlights__tooltip-text{padding:0}.vehicle-card--mod .highlights-disclaimer{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;display:flex;align-items:center;justify-content:center;padding:1.2rem 0;flex:1 0 auto}.vehicle-card--mod .highlights-disclaimer__label{display:none;font-size:.79em;color:var(--cta-background-color)}@media(min-width: 1533px){.list-view .vehicle-card--mod .highlights-disclaimer__label{display:block}}.vehicle-card--mod .highlights-disclaimer__icon--image-mask{padding-right:3px;
21320cursor:pointer;display:flex;align-items:center;column-gap:.5rem;z-index:0}.vehicle-card--mod .highlights-disclaimer__icon--image-mask .fa-question-circle{display:none}.vehicle-card--mod .highlights-disclaimer__icon--image-mask::after{content:"";background-color:#a5a5a5;width:1.8rem;height:1.8rem;position:relative;z-index:1;mask-repeat:no-repeat;mask-position:center;mask-size:contain;mask-image:url("https://cdn.dlron.us/static/industry-automotive/icons/icon_info.svg");-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-image:url("https://cdn.dlron.us/static/industry-automotive/icons/icon_info.svg")}.vehicle-card--mod .highlights-disclaimer-icon{display:grid;grid-template-areas:"icon";grid-template-columns:1fr;grid-template-rows:1fr}.vehicle-card--mod .highlights-disclaimer-icon__image{grid-area:icon}.vehicle-card--mod .highlights-disclaimer-icon::after{content:"";display:block;background-color:#5c5c5c;mix-blend-mode:screen;grid-area:icon;width:100%;height:100%}.vehicle-card--mod .highlights-disclaimer-icon__image{width:1.8rem}@media(min-width: 1533px){.list-view .vehicle-card--mod .highlights-disclaimer-icon__image{display:none}}.vehicle-card--mod .vehicle-more-details{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.43em}.vehicle-card--mod .vehicle-more-details__comments,.vehicle-card--mod .vehicle-more-details__video,.vehicle-card--mod .vehicle-more-details__window-sticker{flex:1 1 auto;min-width:2.7rem}.vehicle-card--mod .vehicle-more-details .comments-button,.vehicle-card--mod .vehicle-more-details .window-sticker-button,.vehicle-card--mod .vehicle-more-details .video-button{display:flex;align-items:center;justify-content:center;column-gap:.36em;width:100%;padding:.21em;height:auto;min-height:2.7rem;background-color:rgba(0,0,0,0);border:1px solid #122532;transition:none}.vehicle-card--mod .vehicle-more-details .comments-button:hover,.vehicle-card--mod .vehicle-more-details .comments-button:active,.vehicle-card--mod .vehicle-more-details .comments-button:focus,.vehicle-card--mod .vehicle-more-details .window-sticker-button:hover,.vehicle-card--mod .vehicle-more-details .window-sticker-button:active,.vehicle-card--mod .vehicle-more-details .window-sticker-button:focus,.vehicle-card--mod .vehicle-more-details .video-button:hover,.vehicle-card--mod .vehicle-more-details .video-button:active,.vehicle-card--mod .vehicle-more-details .video-button:focus{background-color:#eaecf0;border-color:#a5a5a5}.vehicle-card--mod .vehicle-more-details .comments-button__label,.vehicle-card--mod .vehicle-more-details .window-sticker-button__label,.vehicle-card--mod .vehicle-more-details .video-button__label{font-size:.93em;color:#333}@media(min-width: 1920px){.list-view .vehicle-card--mod .vehicle-more-details .comments-button,.list-view .vehicle-card--mod .vehicle-more-details .window-sticker-button,.list-view .vehicle-card--mod .vehicle-more-details .video-button{font-size:1.14em}}.vehicle-card--mod .vehicle-more-details .comments-button__icon,.vehicle-card--mod .vehicle-more-details .window-sticker-button__icon{font-size:1.15em;color:#000}.vehicle-card--mod .vehicle-more-details .comments-button__image,.vehicle-card--mod .vehicle-more-details .window-sticker-button__image{max-width:1.15em;height:auto}.vehicle-card--mod .vehicle-more-details .video-button__icon{max-height:1.14em;width:auto;filter:invert(100%)}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-more-details .comments-button--more{display:block;border:none;padding:0;text-align:left;background-color:rgba(0,0,0,0);color:var(--cta-background-color);min-height:0}}@media(min-width: 1920px){.list-view .vehicle-card--mod .vehicle-comments--compressed{display:none}}.vehicle-card--mod .vehicle-comments--full{display:none}@media(min-width: 1920px){.list-view .vehicle-card--mod .vehicle-comments--full{display:grid;grid-template-columns:1fr;row-gap:.71em;margin-bottom:1.79em}}.vehicle-card--mod .vehicle-comments__heading,.vehicle-card--mod .vehicle-comments__text{font-size:1.14em;color:#5c5c5c;line-height:1.5}.vehicle-card--mod .vehicle-comments__heading{margin:0}.vehicle-card--mod .vehicle-comments__text{display:-webkit-inline-box;-webkit-line-clamp:5;overflow:hidden;-webkit-box-orient:vertical;text-overflow:ellipsis}.multi-tabs{display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:25px}.multi-tabs li{flex:1}.multi-tabs li:visited,.multi-tabs li:hover,.multi-tabs li:active,.multi-tabs li:focus,.multi-tabs li:active:hover,.multi-tabs li button:visited,.multi-tabs li button:hover,.multi-tabs li button:active,.multi-tabs li button:focus,.multi-tabs li button:active:hover{outline:none}.multi-tabs li button{border-radius:0;border-width:2px;border-style:solid;border-color:#eaecf0;width:100%;height:40px;font-size:12px;padding:8px 6px;text-transform:uppercase;font-weight:bold;line-height:1.17;letter-spacing:2.4px;outline:#eaecf0;background-color:#fff;color:#5c5c5c}.multi-tabs li button:hover{background-color:#f2f3f6;color:#333}.multi-tabs li.active button{background-color:#dcdce2;border-color:#dcdce2;outline:#dcdce2;color:#333}.multi-tabs li:first-of-type button{border-top-left-radius:21px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:21px;border-right:0}.multi-tabs li:last-of-type button{border-top-left-radius:0;border-top-right-radius:21px;border-bottom-right-radius:21px;border-bottom-left-radius:0;border-left:0}.multi-tabs li.onlyTab button{border-radius:21px;border-left:2px;border-left-style:solid;border-radius:21px;border-left:2px;border-left-style:solid}.vehiclePricingStack .tab-pane[id^=finance-] .vehiclePricingDetails .priceBlock,.vehiclePricingStack .tab-pane[id^=lease-] .vehiclePricingDetails .priceBlock{padding-top:14px}.vehiclePricingStack .tab-pane[id^=finance-] .vehiclePricingHighlights,.vehiclePricingStack .tab-pane[id^=lease-] .vehiclePricingHighlights{display:flex;align-items:flex-start;justify-content:space-between}.vehiclePricingStack ul.priceBlock.priceBlockResponsiveDesktop{margin-bottom:0}.vehiclePricingStack .vehiclePricingDetails .priceBlock{padding-left:20px;padding-right:20px;margin-left:-20px;margin-right:-20px}.vehiclePricingStack .vehiclePricingHighlight{text-align:center}.vehiclePricingStack .vehiclePricingHighlight:first-of-type{text-align:left}.vehiclePricingStack .vehiclePricingHighlight:last-of-type{text-align:right}.vehiclePricingStack .vehiclePricingHighlightAmount{display:block;font-weight:900;font-size:24px;line-height:1.5}.vehiclePricingStack .dealerDiscount .vehiclePricingHighlightAmount{font-weight:bold}.vehiclePricingStack .vehiclePricingHighlightLabel{font-weight:bold;font-size:15px;line-height:1.33}.vehiclePricingStack .tab-pane[id^=buy-] .vehiclePricingHighlightLabel{text-transform:uppercase}.vehiclePricingStack .singlePrice{justify-content:center}.vehiclePricingStack .singlePrice .vehiclePricingHighlight{text-align:center}.vehiclePricingStack .singlePrice .vehiclePricingHighlightLabel{display:block}.vehiclePricingStack .singlePrice .vehiclePricingHighlightAmount{display:block}
21320.vehiclePricingStack .vehiclePricingMoreLess{display:flex;align-items:center}.vehiclePricingStack .vehiclePricingMoreLess::before,.vehiclePricingStack .vehiclePricingMoreLess::after{content:"";display:block;border-top:2px solid #f4f5f7;flex:1 0 auto}.vehiclePricingStack .vehiclePricingMoreLessButton{padding:.57em .71em;border:none;background:none}.vehiclePricingStack .vehiclePricingMoreLessButton[aria-expanded=true] .vehiclePricingMoreLessButtonIcon{transform:rotate(180deg)}.vehiclePricingStack .vehiclePricingMoreLessButtonLabel{font-size:.93em}.vehiclePricingStack .vehiclePricingMoreLessButtonIcon{font-size:1.07em}.vehiclePricingStack .priceBlockItem{display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:baseline;margin-top:5px}.vehiclePricingStack .priceBlockItem>div{flex:1;text-align:center}.vehiclePricingStack .priceBlockItem a{margin-top:5px}.vehiclePricingStack .priceBlockItem.priceBlockItemImage--left-align{justify-content:left}.vehiclePricingStack .priceBlockItem.priceBlockItemImage--right-align{justify-content:right}.vehiclePricingStack .priceBlockItem.priceBlockItemImage--center-align{justify-content:center}.vehiclePricingStack .priceBlockItemPrice,.vehiclePricingStack .priceBlockItemRebate{font-size:13px;line-height:1.54}.vehiclePricingStack .priceBlockItemPrice:first-of-type,.vehiclePricingStack .priceBlockItemRebate:first-of-type{margin-top:0}.vehiclePricingStack .priceBlockItemPrice:not(:first-of-type),.vehiclePricingStack .priceBlockItemRebate:not(:first-of-type){margin-top:.8rem}.vehiclePricingStack .priceBlockItemPriceButton{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;padding-right:3px;
21320cursor:pointer;display:flex;align-items:center;column-gap:.5rem;column-gap:.2rem}.vehiclePricingStack .priceBlockItemPriceButton .fa-question-circle{display:none}.vehiclePricingStack .priceBlockItemPriceButton::after{content:"";background-color:#a5a5a5;width:1.8rem;height:1.8rem;position:relative;z-index:1;mask-repeat:no-repeat;mask-position:center;mask-size:contain;mask-image:url("https://cdn.dlron.us/static/industry-automotive/icons/icon_info.svg");-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-image:url("https://cdn.dlron.us/static/industry-automotive/icons/icon_info.svg")}.vehiclePricingStack .priceBlockItemPriceButtonIcon{display:flex;align-items:center}.vehiclePricingStack .priceBlockItemPriceButtonIconImage{width:1.6rem;display:none}.vehiclePricingStack .priceBlocItemPriceValue{font-weight:900}.vehiclePricingStack .priceBlockItemRebates>ul{flex:1}.vehiclePricingStack .priceBlockItemRebate .popover-title,.vehiclePricingStack .priceBlockItemRebate .popover-content{text-align:left}.vehiclePricingStack .priceBlockItemRebate span{font-size:13px;line-height:1.54}.vehiclePricingStack .priceBlockItemRebateLabel,.vehiclePricingStack .rebatesLabel{padding-right:3px;
21320cursor:pointer;display:flex;align-items:center;column-gap:.5rem}.vehiclePricingStack .priceBlockItemRebateLabel .fa-question-circle,.vehiclePricingStack .rebatesLabel .fa-question-circle{display:none}.vehiclePricingStack .priceBlockItemRebateLabel::after,.vehiclePricingStack .rebatesLabel::after{content:"";background-color:#a5a5a5;width:1.8rem;height:1.8rem;position:relative;z-index:1;mask-repeat:no-repeat;mask-position:center;mask-size:contain;mask-image:url("https://cdn.dlron.us/static/industry-automotive/icons/icon_info.svg");-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;-webkit-mask-image:url("https://cdn.dlron.us/static/industry-automotive/icons/icon_info.svg")}.vehiclePricingStack .priceBlockItemRebateValue,.vehiclePricingStack .priceBlockItemRebate span.pull-right{font-weight:900}.vehiclePricingStack .priceBlockItemRebateButton{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;display:flex;align-items:center;column-gap:.3rem}.vehiclePricingStack .priceBlockItemRebateButtonIcon{display:flex;align-items:center}.vehiclePricingStack .priceBlockItemRebateButtonIconImage{width:1.6rem;display:none}.vehiclePricingStack .priceBlockItemDivider div,.vehiclePricingStack .priceBlockItemDivider hr{width:100%;border-top:2px solid #f4f5f7}.vehiclePricingStack .vehiclePricingDisclaimers .vehiclePricingDisclaimers{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;font-size:13px;line-height:1.54}.vehiclePricingStack .vehiclePricingDisclaimers .vehiclePricingDisclaimers .defaultDisclaimerText{color:#707070}.vehiclePricingStack .vehiclePricingModalDisclaimerToggle .modalDisclaimerToggleLabel{display:inline-block;margin-right:2px}.vehiclePricingStack .vehiclePricingModalDisclaimerToggle i{font-size:15px}@media(max-width: 991px){.vehiclePricingStack .btn-lg{font-size:18px}}.priceStakDisclaimerModal .modal-dialog{min-height:calc(100vh - 60px);display:flex;flex-direction:column;justify-content:center;overflow:auto}.priceStakDisclaimerModal .modal-header,.priceStakDisclaimerModal .modal-content{padding:5px}.priceStakText--bold{font-weight:700}.priceStakText--italic{font-style:italic}.priceStakText--underline{text-decoration:underline}.priceStakText--strikethrough{text-decoration:line-through}.wasabi_srp .vehiclePricingStack .tab-pane[id^=buy-] .vehiclePricingHighlight.featuredPrice .vehiclePricingHighlightAmount{line-height:1.25}.wasabi_srp .vehiclePricingStack .tab-pane[id^=buy-] .vehiclePricingHighlight:not(.featuredPrice) .vehiclePricingHighlightAmount{font-size:20px;line-height:1.5;font-weight:bold}.wasabi_srp .vehiclePricingStack .tab-pane[id^=finance-] .vehiclePricingHighlights,.wasabi_srp .vehiclePricingStack .tab-pane[id^=lease-] .vehiclePricingHighlights{padding-bottom:15px}.wasabi_srp .vehiclePricingStack .tab-pane[id^=finance-] .vehiclePricingHighlight.monthlyPayment .vehiclePricingHighlightAmount,.wasabi_srp .vehiclePricingStack .tab-pane[id^=lease-] .vehiclePricingHighlight.monthlyPayment .vehiclePricingHighlightAmount{line-height:1.25}.wasabi_srp .vehiclePricingStack .tab-pane[id^=finance-] .vehiclePricingHighlight:not(.monthlyPayment) .vehiclePricingHighlightAmount,.wasabi_srp .vehiclePricingStack .tab-pane[id^=lease-] .vehiclePricingHighlight:not(.monthlyPayment) .vehiclePricingHighlightAmount{font-size:20px;line-height:1.5}.wasabi_srp .vehiclePricingStack .priceBlock:first-of-type:not(:first-child){padding-top:14px}.wasabi_srp .vehiclePricingStack .vehiclePricingDisclaimers .vehiclePricingDisclaimers{padding:10px 0}.wasabi_srp .vehiclePricingStack .multi-tabs{margin-bottom:25px}.wasabi_srp .vehiclePricingStack .pricestak-post{padding-top:20px}.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas{height:100%}.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas .pricingStackContainer,.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas .pricestak,.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas [data-pricestak-main],.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas .pricing-tab-content,.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas .pricing-tab-content__pane,.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas .hidden-xs{height:100%}.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas [data-pricestak-main],.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas .hidden-xs{display:flex;flex-direction:column}.wasabi_srp .grid-view .vehiclePricingStack.shift-ctas .vehicleCallsToAction{margin-top:auto}.wasabi_srp .list-view .vehiclePricingStack .singlePrice{margin:43px auto 25px}.wasabi_srp .list-view .vehiclePricingStack .singlePrice .vehiclePricingHighlightAmount,.wasabi_srp .list-view .vehiclePricingStack .singlePrice .vehiclePricingHighlightLabel{display:block}.wasabi_srp .list-view .vehiclePricingStack .singlePrice .vehiclePricingHighlightLabel{margin-top:10px;font-size:25px;line-height:.8}.wasabi_srp .list-view .vehiclePricingStack .singlePrice .vehiclePricingHighlightAmount{font-size:40px;line-height:.75}.wasabi_srp .list-view .vehiclePricingStack .tab-content:first-child .singlePrice{margin-top:77px}.multi-tabs{display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:25px}.multi-tabs li{flex:1}.multi-tabs li:visited,.multi-tabs li:hover,.multi-tabs li:active,.multi-tabs li:focus,.multi-tabs li:active:hover,.multi-tabs li button:visited,.multi-tabs li button:hover,.multi-tabs li button:active,.multi-tabs li button:focus,.multi-tabs li button:active:hover{outline:none}.multi-tabs li button{border-radius:0;border-width:1px;border-style:solid;border-color:#eaecf0;width:100%;height:50px;font-size:13px;padding:8px 6px;text-transform:uppercase;font-weight:bold;line-height:1.17;letter-spacing:2.4px;outline:#eaecf0;background-color:#fff;color:#5c5c5c}.multi-tabs li button:hover{background-color:#f2f3f6;color:#333}.multi-tabs li.active button{background-color:#dcdce2;border-color:#dcdce2;outline:#dcdce2;color:#333;pointer-events:none}.multi-tabs li:first-of-type button{border-top-left-radius:10px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:10px;border-right:0}.multi-tabs li:last-of-type button{border-top-left-radius:0;border-top-right-radius:10px;border-bottom-right-radius:10px;border-bottom-left-radius:0;border-left:0}.multi-tabs li.onlyTab button{border-radius:10px;border-left:1px;border-left-style:solid;border-radius:10px;border-left:1px;border-left-style:solid}.vehicle-card--mod .vehiclePricingStack .tab-pane[id^=buy-] .vehiclePricingHighlights .priceBlockItemDivider{display:none}.vehicle-card--mod .vehiclePricingStack .custom-comments--empty{display:none}.vehicle-card--mod .vehiclePricingStack .model-footer{overflow:auto}.vehicle-card--mod .vehicle-more-info{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(2, auto);row-gap:.71em;padding:.71em 1.43em}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-more-info{display:flex;column-gap:1.43em}}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-more-info__icons,.list-view .vehicle-card--mod .vehicle-more-info__location-info{flex:1 1 auto}}.vehicle-card--mod .vehicle-more-info__icons{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.71em}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-more-info__icons{justify-content:flex-start}}.vehicle-card--mod .vehicle-more-info__icons img{max-width:100%}.vehicle-card--mod .vehicle-more-info__location-info{text-align:center}.vehicle-card--mod .vehicle-more-info .eligible-benefits,.vehicle-card--mod .vehicle-more-info .feature-logos,.vehicle-card--mod .vehicle-more-info .benefits-highlights__eligible-benefits{display:contents}.vehicle-card--mod .vehicle-more-info .icon-img{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:.71em;margin:0}.vehicle-card--mod .vehicle-more-info .icon-img__button{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial}
21320.vehicle-card--mod .vehicle-more-info .icon-img__benefit{border:1px solid #a5a5a5;padding:3px;border-radius:5px}.vehicle-card--mod .vehicle-more-info .icon-img img{overflow-wrap:anywhere}.vehicle-card--mod .vehicle-more-info .no-border{border:none}.vehicle-card--mod .vehicle-more-info .eligible-benefit-icon,.vehicle-card--mod .vehicle-more-info .eligible-benefit-disclaimer{width:auto;float:none;padding:0}.vehicle-card--mod .vehicle-more-info .eligible-benefit-disclaimer{min-width:7.14em;display:-webkit-inline-box;-webkit-line-clamp:2;overflow:hidden;-webkit-box-orient:vertical;text-overflow:ellipsis}.vehicle-card--mod .vehicle-more-info .location-info{display:grid;grid-template-columns:repeat(3, minmax(0, max-content));grid-auto-columns:auto;justify-content:center;column-gap:.4em}.vehicle-card--mod .vehicle-more-info .location-info__tooltip{display:block;position:absolute;width:max-content;height:fit-content;max-width:10.71em;padding:.29em .71em .36em;bottom:calc(100% + .71em);left:0;border-radius:0;background-color:#333}.vehicle-card--mod .vehicle-more-info .location-info__tooltip::before{content:"";display:block;position:absolute;background-color:#333;width:.79em;height:.57em;clip-path:polygon(0% 0%, 50% 100%, 100% 0);top:calc(100% - .07em)}.vehicle-card--mod .vehicle-more-info .location-info__tooltip-text{color:#fff;font-size:.93em}.vehicle-card--mod .vehicle-more-info .location-info__tooltip::before{left:50%;right:auto;transform:translateX(-50%)}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-more-info .location-info{display:flex;justify-content:center}}.vehicle-card--mod .vehicle-more-info .location-info__item{display:inline-block;font-size:.86em;color:#5c5c5c}.vehicle-card--mod .vehicle-more-info .location-info__item,.vehicle-card--mod .vehicle-more-info .location-info__item:hover,.vehicle-card--mod .vehicle-more-info .location-info__item:active,.vehicle-card--mod .vehicle-more-info .location-info__item:focus{text-decoration:none}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-more-info .location-info__item{width:max-content}}.vehicle-card--mod .vehicle-more-info .location-info__item:not(:first-child)::before{display:inline-block;content:"|";padding-right:.25em}.vehicle-card--mod .vehicle-more-info .location-info__item--location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(min-width: 1533px){.list-view .vehicle-card--mod .vehicle-more-info .location-info__item--location{max-width:20em}}.vehicle-card--mod .vehicle-compare-button-container{display:flex;flex-wrap:wrap;justify-content:space-between;font-size:1.6rem;width:inherit;border-top:none;padding:15px 20px}.list-view .vehicle-card--mod .vehicle-compare-button-container{display:grid;grid-template-columns:auto;grid-template-rows:auto minmax(1.64em, auto);justify-content:flex-end}.vehicle-card--mod .vehicle-compare-button-container--left input[type=checkbox]{display:none}.vehicle-card--mod .vehicle-compare-button-container--left input[type=checkbox]:checked+.checkbox::before{font-family:"FontAwesome";font-size:14px;content:"";color:#fff;background-color:var(--cta-background-color);font-weight:normal;border-color:var(--cta-background-color)}.vehicle-card--mod .vehicle-compare-button-container--left input[type=checkbox]:disabled+.checkbox::before{cursor:not-allowed}.vehicle-card--mod .vehicle-compare-button-container--left .checkbox{display:flex;column-gap:.93em;color:#5c5c5c;padding:0;margin:0px;line-height:1}.vehicle-card--mod .vehicle-compare-button-container--left .checkbox:hover::before{cursor:pointer}.vehicle-card--mod .vehicle-compare-button-container--left .checkbox::before{border-width:1px;border-style:solid;border-color:#dcdce2;border-radius:6px;background-color:#fff;content:"";width:1.43em;height:1.43em;padding:2px;flex:0 0 auto;font-size:14px}.vehicle-card--mod .vehicle-compare-button-container--left.custom-checkbox{flex:0 1 auto}.list-view .vehicle-card--mod .vehicle-compare-button-container--left{flex:auto}.vehicle-card--mod .vehicle-compare-button-container--left .vehicle-compare-checkbox{width:1.1em;height:1.1em;margin:0;position:relative;top:.05em}.vehicle-card--mod .vehicle-compare-button-container--left .vehicle-compare-checkbox__label{letter-spacing:0;color:#122532;display:inline-flex;font-weight:inherit;margin:0;align-items:center;justify-content:flex-end;font-size:.93em;cursor:pointer}.list-view .vehicle-card--mod .vehicle-compare-button-container--left .vehicle-compare-checkbox__label{justify-content:flex-end}.vehicle-card--mod .vehicle-compare-button-container--left .vehicle-compare-checkbox__label::before{margin:0 !important}.list-view .vehicle-card--mod .vehicle-compare-button-container--left .vehicle-compare-checkbox__label::before{order:1}.list-view .vehicle-card--mod .vehicle-compare-button-container--right{padding:0 2.2em 0 0 !important}.vehicle-card--mod .vehicle-compare-button-container--right .vehicle-compare-button{letter-spacing:0;font-size:.93em;padding:0;text-transform:none;flex-grow:2;border:0;cursor:pointer;color:var(--cta-background-color);background-color:rgba(0,0,0,0)}.vehicle-card--mod .vehicle-compare-button-container--right .vehicle-compare-button__label{letter-spacing:0;color:#122532;margin:0;font-size:.93em;font-weight:inherit;font-style:italic}.vehicle-card{display:grid;grid-template-rows:repeat(4, auto) 1fr repeat(2, auto);grid-template-areas:"head" "image" "overview" "features" "pricing" "more-info" "compare";position:relative}.vehicle-card__image{grid-area:image}.vehicle-card__overview{grid-area:overview}.vehicle-card__features{grid-area:features}.vehicle-card__pricing{grid-area:pricing}.vehicle-card__more-info{grid-area:more-info}.vehicle-card__compare{grid-area:compare}.vehicle-card__head{grid-area:head;height:24px;text-align:center;display:flex;justify-content:flex-end;
21320font-size:10.67px;line-height:12.8px}.vehicle-card__head-tab{width:104px;background-color:var(--cta-background-color);border-top-left-radius:10.67px;border-top-right-radius:10.67px;display:flex;align-items:center;justify-content:center;color:#fff}.vehicle-card__head-tab svg{margin-right:2px;margin-top:2px}.vehicle-card__body{display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid;grid-column:1/-1;grid-row:2/-1;background-color:#fff;-webkit-box-shadow:0 0 15px 0 rgba(0,0,0,.07);box-shadow:0 0 15px 0 rgba(0,0,0,.07)}.vehicle-card--rounded .vehicle-card__body{border-radius:1rem}.vehicle-card__features--auto,.vehicle-card__pricing,.vehicle-card__more-info,.vehicle-card__compare{border-top:1px solid #dcdce2}.vehicle-card__pricing{padding:1.43em}.list-view .vehicle-card__compare{display:grid;align-items:flex-end}.list-view .vehicle-card{grid-template-rows:repeat(3, auto) 1fr auto;grid-template-columns:1fr 27.86em;grid-template-areas:"head      head" "image     pricing" "overview  pricing" "features  pricing" "more-info pricing" "more-info compare"}.list-view .vehicle-card.vehicle-card--no-icons-location{grid-template-rows:repeat(4, auto);grid-template-areas:"head      head" "image     pricing" "overview  pricing" "features  pricing" "features  compare"}@media(min-width: 1533px){.list-view .vehicle-card{grid-template-rows:repeat(2, auto) 1fr auto;grid-template-columns:54fr 46fr 27.86em;grid-template-areas:"head       head      head" "image      features  pricing" "overview   features  pricing" "more-info  more-info pricing" "more-info  more-info compare"}.list-view .vehicle-card.vehicle-card--no-icons-location{grid-template-rows:repeat(3, auto);grid-template-areas:"head       head      head" "image      features  pricing" "overview   features  pricing" "overview   features  compare"}}@media(min-width: 1920px){.list-view .vehicle-card{grid-template-columns:7fr 3fr 29.28em}}@media(min-width: 1533px){.list-view .vehicle-card .vehicle-card__features{border-top:none;border-left:1px solid #dcdce2;background-color:rgba(0,0,0,0)}}@media(min-width: 1200px){.list-view .vehicle-card .vehicle-card__pricing,.list-view .vehicle-card .vehicle-card__compare{border-top:none;border-left:1px solid #dcdce2}}.list-view .vehicle-card .vehicle-card__pricing{padding:2.5em}@media(min-width: 1920px){.list-view .vehicle-card .vehicle-card__pricing{padding:2.5em 3.21em}}.vehicle-card.skeleton do-personalized-content{position:absolute;display:block;background-image:url("https://cdn.dlron.us/static/industry-automotive/backgrounds/skeleton-background-image.jpeg");width:100%;height:100%}.vehicle-card.skeleton .skeleton{background-color:#dcdce2}.vehicle-card.skeleton .skeleton.vehicle-card__image{aspect-ratio:4/3;width:100%;height:auto;margin:0}.vehicle-card.skeleton .skeleton.vehicle-card__overview{height:3em;margin:1em 4em 1em 1em}.vehicle-card.skeleton .skeleton.vehicle-card__features{height:2em;margin:1em 8em 1em 1em}.vehicle-card.skeleton .skeleton.vehicle-card__pricing,.vehicle-card.skeleton .skeleton .vehicle-card__compare{height:7em;margin:1em}.vehicle-card--carbravo{border:2px solid #6bc24a}.vehicle-card--adcard do-personalized-content{position:absolute;display:block;width:100%;height:100%}.vehicle-cards-aligned .vehicle-card{grid-template-rows:subgrid;grid-row:span 7;gap:0}.vehicle-cards-aligned .vehicle-card .vehicle-overview{align-items:start;grid-template-rows:repeat(3, auto)}.vehicle-cards-aligned .vehicle-card .save-heart__srp-card-heart-wrapper{margin-top:.8rem}.vehicle-cards-aligned .vehicle-card .save-heart__srp-card-heart-wrapper.less-whitespace{margin-top:.1rem}.vehicle-cards-aligned .vehicle-card .save-heart__srp-card-heart-wrapper.less-whitespace .save-vehicle-heart label{margin:0 !important}.inventory_list.list-view .vehicle-card--adcard{aspect-ratio:8/3}.inventory_list.grid-view .vehicle-card--adcard{aspect-ratio:3/8}.hero-carousel{position:relative;cursor:auto !important}.hero-carousel__items{display:flex;scroll-snap-type:x mandatory;overflow:hidden;scroll-behavior:smooth;overflow-x:scroll;-ms-overflow-style:none;scrollbar-width:none}.hero-carousel__items::-webkit-scrollbar{display:none}@media(max-width: 991px){.hero-carousel__items:hover{cursor:grab}.hero-carousel__items:hover:active{cursor:ew-resize}}.hero-carousel__item{width:100%;flex-shrink:0;scroll-snap-align:start;position:relative;overflow:hidden;display:flex;justify-content:center;min-height:10px}.hero-carousel__item::before{content:"";position:absolute;width:auto;height:100%;background-color:#222;background-clip:content-box;border:solid;border-color:rgba(0,0,0,0);border-width:2px 0;transform:translate(0px, 0px)}.hero-carousel__item:not(.square),.hero-carousel__item:not(.square)::before{border-radius:21px}@media(max-width: 991px){.hero-carousel__item:not(.square),.hero-carousel__item:not(.square)::before{border-radius:21px 21px 0 0}}.hero-carousel__image{max-width:100%;object-fit:contain;z-index:1}.hero-carousel__image--dimmed{filter:brightness(50%)}.hero-carousel__controls{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;pointer-events:none}.hero-carousel__controls--hover{position:absolute;height:100%;width:25%;pointer-events:auto}.hero-carousel__controls--hover:hover{opacity:1}@media(max-width: 991px){.hero-carousel__controls--hover{width:15%}.hero-carousel__controls--hover{opacity:1}}.hero-carousel__controls--previous{left:0}
21320.hero-carousel__controls--previous.vertical{left:unset !important;top:0 !important;display:flex;justify-content:center;width:100%;height:40px}.hero-carousel__controls--next{right:0}.hero-carousel__controls--next.vertical{right:unset !important;bottom:0 !important;display:flex;justify-content:center;width:100%;height:40px}.hero-carousel__view--more{position:absolute;top:calc(50% - 25px);margin-left:auto;margin-right:auto;left:0;right:0;width:211px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;z-index:1}.hero-carousel__control{position:absolute;width:40px;height:70px;background-color:rgba(0,0,0,.55);border:none;color:#fff;top:calc(50% - 35px)}.hero-carousel__control.vertical{width:70px !important;height:40px !important;top:unset !important}.hero-carousel__control--previous-btn{border-radius:0 14px 14px 0;left:0}.hero-carousel__control--previous-btn.vertical{border-radius:0 0 14px 14px !important;left:unset !important}.hero-carousel__control--next-btn{border-radius:14px 0 0 14px;right:0}.hero-carousel__control--next-btn.vertical{border-radius:14px 14px 0 0 !important;bottom:0 !important;right:unset !important}.hero-carousel__control:hover{background-color:rgba(0,0,0,.5)}.missingImgOverlay{position:absolute;transition:.5s ease;opacity:1;text-align:center;padding:0 10px;transform:translate(-50%, -50%);width:100%;max-width:280px;height:80%;display:grid;grid-template-rows:1fr [title] 47% [subtitle] 1fr;align-items:center;justify-content:center;color:#333}.missingImgOverlay__title,.missingImgOverlay__subtitle{margin:0;text-transform:none;font-weight:bold}.missingImgOverlay__title{font-size:28px;grid-row-start:title;line-height:1.1}@media(max-width: 639px){.missingImgOverlay__title{font-size:33px}}.missingImgOverlay__subtitle{font-size:15px;grid-row-start:subtitle}@media(max-width: 639px){.missingImgOverlay__subtitle{font-size:22px}}.hero-carousel__image-counter{position:absolute;min-width:90px;height:40px;padding:13px 10px;right:15px;bottom:15px;color:#fff;font-size:15px;font-weight:bold;line-height:.93;text-align:center;background-color:rgba(0,0,0,.55);border-radius:21px;box-shadow:0 0 10px 1px hsla(0,0%,100%,.15)}@media(max-width: 991px){.hero-carousel__image-counter{min-width:61px;height:27px;padding:6px 10px;right:20px;bottom:20px;font-size:10px;line-height:1.4}}.hero-carousel__image-counter .image-counter__slash{display:inline-block;padding:0 2px}.vehicle-card--mod .bravoBudgetVehicle img{position:absolute;top:3px;pointer-events:none;right:8px;max-width:45%;z-index:1}.vehicle-card--mod .hero-carousel{position:static;display:grid;grid-template-columns:[images-start controls-start] 1fr [counter-start] auto [images-end controls-end counter-end];grid-template-rows:[images-start controls-start] 1fr [counter-start] auto [images-end controls-end counter-end]}.vehicle-card--mod .hero-carousel--rounded{border-radius:1rem 1rem 0px 0px;overflow:hidden}.list-view .vehicle-card--mod .hero-carousel--rounded{border-radius:1rem 0px 0px 0px}.vehicle-card--mod .hero-carousel__items{grid-area:images}.vehicle-card--mod .hero-carousel__item{grid-template-areas:"image-and-button";grid-template-columns:1fr;grid-template-rows:1fr;width:calc(100% + 2px);min-width:100%;scroll-snap-align:center;border-radius:0}.vehicle-card--mod .hero-carousel__item--viewvehicle{display:grid}.vehicle-card--mod .hero-carousel__item:last-of-type{width:calc(100% + 2px)}.vehicle-card--mod .hero-carousel__item::before,.vehicle-card--mod .hero-carousel__item::after{content:none}.vehicle-card--mod .hero-carousel__image-wrapper,.vehicle-card--mod .hero-carousel__vdp-button-wrapper{grid-area:image-and-button}.vehicle-card--mod .hero-carousel__image-wrapper{display:grid;grid-template-areas:"background-foreground-missing"}.vehicle-card--mod .hero-carousel__background-wrapper,.vehicle-card--mod .hero-carousel__single-image,.vehicle-card--mod .hero-carousel .missing-image{grid-area:background-foreground-missing}.vehicle-card--mod .hero-carousel__single-image{display:grid;align-items:center;justify-content:center}.vehicle-card--mod .hero-carousel__image{max-width:100%;width:100%;aspect-ratio:1.3333333333;object-fit:contain}.vehicle-card--mod .hero-carousel__background-image{filter:blur(10px);aspect-ratio:1.3333333333;object-fit:cover;width:100%}.list-view .vehicle-card--mod .hero-carousel__image--grid,.list-view .vehicle-card--mod .hero-carousel__background-image--grid{display:none}.grid-view .vehicle-card--mod .hero-carousel__image--list,.grid-view .vehicle-card--mod .hero-carousel__background-image--list{display:none}.vehicle-card--mod .hero-carousel__vdp-button-wrapper{display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,.5);z-index:1}.vehicle-card--mod .hero-carousel__vdp-button-wrapper-blurred{background-color:rgba(0,0,0,0) !important;backdrop-filter:blur(25px);width:110%;margin-left:-5%}.vehicle-card--mod .hero-carousel__view--more{position:static;margin:0}.vehicle-card--mod .hero-carousel__controls{grid-area:controls;display:grid;grid-template-columns:25% 1fr 25%;grid-template-areas:"previous . next";position:static;width:100%;height:100%;z-index:2}@media(max-width: 991px){.vehicle-card--mod .hero-carousel__controls{grid-template-columns:45px 1fr 45px}}.vehicle-card--mod .hero-carousel__controls--hover{display:flex;align-items:center;position:static;width:100%}.vehicle-card--mod .hero-carousel__controls--previous{grid-area:previous;justify-content:flex-start}.vehicle-card--mod .hero-carousel__controls--next{grid-area:next;justify-content:flex-end}.vehicle-card--mod .hero-carousel__control{position:static}.vehicle-card--mod .hero-carousel__image-counter{display:none;position:static;grid-area:counter;color:#fff;text-align:center;margin:1em;z-index:2}@media(hover: none){.vehicle-card--mod .hero-carousel__image-counter{display:block}}.list-view .vehicle-card--mod .hero-carousel__image-counter{display:none}.more-info-modal{padding-right:0 !important}.more-info-modal__container{position:relative;top:50%;transform:translateY(-50%) !important;max-width:fit-content;margin:auto;width:auto}@media(max-width: 991px){.more-info-modal__container{width:520px}}@media(max-width: 550px){.more-info-modal__container{padding:15px}}.more-info-modal__dialog{display:flex;justify-content:center;align-items:center}.more-info-modal__content{box-shadow:16px 16px 20px #333;max-height:93vh;display:grid;grid-template-areas:"header" "body" "footer";grid-template-rows:auto 1fr auto;grid-template-columns:1fr;background-color:#fff}@media(min-width: 992px){.more-info-modal__content{max-width:clamp(28rem,53vw,101.7rem)}}.more-info-modal__content--rounded{border-radius:1rem}.more-info-header{grid-area:header;display:flex;align-items:center;justify-content:space-between;column-gap:.8rem;padding:clamp(2.1rem,6.5vw,5.5rem) clamp(2.1rem,6.5vw,5.5rem) clamp(2.4rem,11.6vw,5rem)}@media(min-width: 992px){.more-info-header{padding:clamp(2.1rem,6.5vw,5.5rem) clamp(2.1rem,6.5vw,5.5rem) 2.8rem}}.more-info-header__title{margin:0;font-size:2.4rem;line-height:normal}.more-info-header__close,.more-info-header__close-icon{width:3.2rem;height:3.2rem}.more-info-header__close{border:none;background:rgba(0,0,0,0);padding:0;text-transform:initial;display:flex;align-items:center;justify-content:center}.more-info-header__close-icon{font-size:4rem;line-height:.8}.more-info-body{padding:0 clamp(2.1rem,6.5vw,5.5rem);grid-area:body;overflow-y:hidden}.more-info-body__text{font-size:1.6rem;overflow-y:auto;height:100%;padding:0 clamp(1.1rem,2.5vw,7.3rem) 5.5vh 0;scrollbar-width:thin}.more-info-body__text::-webkit-scrollbar{width:5px;height:5px}.more-info-body__text::-webkit-scrollbar-track{background:#ebecf0}.more-info-body__text::-webkit-scrollbar-thumb{background-color:#a5a5a5;border-radius:10px}.more-info-footer{grid-area:footer;background-color:#f4f5f7;padding:clamp(1.8rem,5.5vw,2.4rem) clamp(2.1rem,6.5vw,5.5rem)}.more-info-footer--rounded{border-radius:0 0 1rem 1rem}@media(min-width: 992px){.more-info-footer{display:flex;justify-content:flex-end}}.more-info-footer .more-info-footer__close{display:block;width:100%;padding:1.6rem;font-size:2rem !important;line-height:1}@media(min-width: 992px){.more-info-footer .more-info-footer__close{width:auto}}.share-form__group--phone label[for=smslead_phone]{width:unset}.share-form__group--phone .control-label{display:block;text-align:left;color:#5c5c5c;font-size:16px;font-weight:bold;padding:0 0 5px;line-height:1}.share-form__group--phone .form-control{width:100%;border-radius:5px;min-height:40px;font-size:16px;font-weight:bold;color:#333;line-height:normal;border:1px solid #e7e9ed;box-shadow:none}.share-form__group--phone .form-control:focus{border:1px solid #9b9b9b;box-shadow:none}.share-form__group--phone .form-control::placeholder{color:#9b9b9b}.share-form__group--phone .iti__selected-flag{height:40px}.share-form__group--phone .iti__arrow{border:none}.share-form__group--phone .iti__arrow::before{content:"";display:inline-block;font-family:"FontAwesome";font-size:16px;line-height:1;transform:translateY(-7px);color:#a5a5a5}.share-form__group--phone .iti__country-list{border:none;border-radius:5px;box-shadow:0 10px 15px 0 rgba(0,0,0,.15);scrollbar-width:thin}.share-form__group--phone .iti__country-list::-webkit-scrollbar{width:5px;height:5px}.share-form__group--phone .iti__country-list::-webkit-scrollbar-track{background:#ebecf0}.share-form__group--phone .iti__country-list::-webkit-scrollbar-thumb{background-color:#a5a5a5;border-radius:10px}.share-form__group--phone .iti__country{padding:8px 10px;font-size:16px;color:#5c5c5c}.share-form__group--phone .iti__divider{display:none}.share-form__group--phone .iti__highlight{background-color:#f4f5f7}.share-form__group--phone .iti__active{background-color:#dedfe0;font-weight:700}.share-form .share-form__group--oem-checkbox .checkbox{padding:0;float:none}.share-form .share-form__group--oem-checkbox input[type=checkbox]{display:none}.share-form .share-form__group--oem-checkbox input[type=checkbox]:checked+label::before{font-family:"FontAwesome";font-size:14px;content:"";color:#fff;background-color:var(--cta-background-color);font-weight:normal;border-color:var(--cta-background-color)}.share-form .share-form__group--oem-checkbox input[type=checkbox]:disabled+label::before{cursor:not-allowed}.share-form .share-form__group--oem-checkbox label{margin:0px;color:#5c5c5c;display:flex;padding-left:0;font-size:16px;line-height:1.25}.share-form .share-form__group--oem-checkbox label:hover::before{cursor:pointer}.share-form .share-form__group--oem-checkbox label::before{border-width:1px;border-style:solid;border-color:#dcdce2;border-radius:6px;background-color:#fff;content:"";width:20px;height:20px;padding:2px;flex:0 0 auto;margin-right:13px;line-height:1}.share-form .share-form__group--oem-checkbox label small{color:#5c5c5c !important;font-size:100%}.share-form .form-group{margin:0}.share-form .form-group .control-label{margin:0}.share-form .form-group .col-lg-4,.share-form .form-group .col-lg-8{width:100%;padding-left:0;padding-right:0}.share-form__group--text,.share-form__group--text-area,.share-form__group--email{padding-top:20px}.share-form__group--checkbox{padding-top:10px}.share-form__group--checkbox:not(.share-form__group--oem-checkbox) input[type=checkbox]{display:none}.share-form__group--checkbox:not(.share-form__group--oem-checkbox) input[type=checkbox]:checked+.checkbox::before{font-family:"FontAwesome";font-size:14px;content:"";color:#fff;background-color:var(--cta-background-color);font-weight:normal;border-color:var(--cta-background-color)}.share-form__group--checkbox:not(.share-form__group--oem-checkbox) input[type=checkbox]:disabled+.checkbox::before{cursor:not-allowed}.share-form__group--checkbox:not(.share-form__group--oem-checkbox) .checkbox{margin:0px;color:#5c5c5c;display:flex;padding-left:0;line-height:1}.share-form__group--checkbox:not(.share-form__group--oem-checkbox) .checkbox:hover::before{cursor:pointer}.share-form__group--checkbox:not(.share-form__group--oem-checkbox) .checkbox::before{border-width:1px;border-style:solid;border-color:#dcdce2;border-radius:6px;background-color:#fff;content:"";width:20px;height:20px;padding:2px;flex:0 0 auto;margin-right:13px}.share-form .share-form__label{display:block;text-align:left;color:#5c5c5c;font-size:16px;font-weight:bold;padding:0 0 5px;line-height:1}.share-form .share-form__input{width:100%;border-radius:5px;min-height:40px;font-size:16px;font-weight:bold;color:#333;line-height:normal;border:1px solid #e7e9ed;box-shadow:none}.share-form .share-form__input:focus{border:1px solid #9b9b9b;box-shadow:none}.share-form .share-form__input::placeholder{color:#9b9b9b}.share-form .share-form__checkbox-label{font-weight:400;padding-top:0;min-height:auto}.share-form .share-form__checkbox-label:hover{cursor:pointer}.share-form .share-form__checkbox-label-text{line-height:1.25}.share-form__expand-panel{display:none}.share-form__footer{padding-top:20px}.share-form .share-form__submit{border-radius:5px;min-height:50px;display:block;width:100%;font-size:18px;font-weight:900;line-height:1}.share-form__disclaimer,.share-form__required{font-size:12px;color:#5c5c5c;text-align:left;margin-top:10px;line-height:initial}.share-form--email .share-form__group:first-of-type{padding-top:0}.share-form--email .share-form__group--text-area{padding-bottom:20px;border-bottom:1px solid #dedfe0}.share-form--email .share-form__group--text-area .share-form__input{min-height:80px}.share-form .visitorDisclaimer{font-size:12px;color:#5c5c5c;text-align:left;margin-top:10px;line-height:initial;margin:0}@media(min-width: 500px){.share-form #shareVehicleLeadForm #shareVehicleTextLink{border:none;padding-top:0}}@media(min-width: 500px){.share-form #shareVehicleLeadForm{padding-left:30px;border-left:solid 1px #dedfe0}}.share-vehicle{padding-right:0px !important;z-index:100000}.share-vehicle__dialog{width:100%;min-width:320px;max-width:720px;margin-right:auto;margin-left:auto}.share-vehicle .share-vehicle__content{padding-top:42px;padding-left:20px;padding-right:20px;padding-bottom:30px}@media(min-width: 500px){.share-vehicle .share-vehicle__content{padding-top:50px;padding-left:50px;padding-right:50px}}.share-vehicle .share-vehicle__close{display:flex;justify-content:center;align-items:center;position:absolute;right:0;top:0;padding:20px;z-index:10;opacity:1;font-size:initial;width:calc(16px + 20px*2);height:calc(16px + 20px*2)}.share-vehicle__close-icon{font-size:21px;color:#9b9b9b}.share-vehicle__header{border:none;padding:0}.share-vehicle__title{color:#333;font-size:16px;font-weight:900;text-align:left;text-transform:none;line-height:1.45}.share-vehicle__body{padding:0}.share-vehicle .share-vehicle__copy-link-btn{width:100%;border:solid 1px #122532;background:#fff;color:#122532;font-size:16px;line-height:1.25;text-transform:none;border-radius:5px;min-height:50px}.share-vehicle .share-vehicle__copy-link-btn.share-vehicle__button--copied{background:#5c5c5c;border:solid 1px #122532;color:#fff}.share-vehicle__print-btn{width:100%;border:solid 1px #122532;background:#fff;color:#122532;font-size:16px;line-height:1.25;text-transform:none;border-radius:5px;min-height:50px}.share-vehicle__panels{margin:0}.share-vehicle .share-panel.panel{margin:0;border:0}.share-vehicle .share-panel__heading{padding:0}.share-vehicle .share-panel__toggle{display:none}.share-vehicle .share-panel__toggle.collapsed .panel-label__icon{transform:rotate(180deg)}.share-vehicle .share-panel__content.collapse{display:block}.share-vehicle .share-panel .share-panel__body.panel-body{border:none;background:none;padding:0}.share-vehicle .panel-label{color:#333;font-size:16px;font-weight:900;text-align:left;text-transform:none;line-height:1.45}.share-vehicle .panel-label--toggle{display:grid;grid-template-columns:1fr auto}.share-vehicle .panel-label__icon{font-weight:700}.share-vehicle--0-forms .share-vehicle__body{padding-top:30px}.share-vehicle--0-forms .share-vehicle__dialog,.share-vehicle--1-forms .share-vehicle__dialog{max-width:682px}.share-vehicle--0-forms .share-vehicle__content,.share-vehicle--1-forms .share-vehicle__content{padding-bottom:40px}@media(min-width: 500px){.share-vehicle--0-forms .share-vehicle__content,.share-vehicle--1-forms .share-vehicle__content{padding-bottom:50px}}@media(min-width: 500px){.share-vehicle--1-forms .share-vehic
21320le__body{display:grid;grid-template-columns:1fr 1fr;padding-top:30px}.share-vehicle--1-forms .share-vehicle__body--single-panel{grid-template-columns:1fr;padding-top:0}}.share-vehicle--1-forms .share-vehicle__actions{padding-top:20px;padding-bottom:10px}@media(min-width: 500px){.share-vehicle--1-forms .share-vehicle__actions{padding-top:0;padding-bottom:0;padding-right:30px}}.share-vehicle--1-forms .share-vehicle__actions div:not(:first-child){margin-top:20px}.share-vehicle--1-forms .share-vehicle__panels{padding-top:28px;border-top:1px solid #dedfe0}@media(min-width: 500px){.share-vehicle--1-forms .share-vehicle__panels{padding-top:0;padding-left:30px;border-top:none;border-left:1px solid #dedfe0}.share-vehicle--1-forms .share-vehicle__panels--single-panel{padding-left:0;border-left:unset}}.share-vehicle--1-forms .share-panel__content{padding-top:10px}.share-vehicle.share-vehicle--2-forms .share-vehicle__dialog{max-width:720px}.share-vehicle.share-vehicle--2-forms .share-vehicle__content{padding-bottom:20px}@media(min-width: 500px){.share-vehicle.share-vehicle--2-forms .share-vehicle__content{padding-bottom:30px}}.share-vehicle.share-vehicle--2-forms .share-vehicle__actions{padding:20px 0;display:grid;grid-template-columns:repeat(2, minmax(130px, 1fr));column-gap:20px;max-width:max-content}@media(min-width: 500px){.share-vehicle.share-vehicle--2-forms .share-vehicle__actions{padding:20px 0 10px}}.share-vehicle.share-vehicle--2-forms .share-vehicle__copy-link-btn{min-height:32px;padding-top:6px;padding-bottom:6px}.share-vehicle.share-vehicle--2-forms .share-vehicle__print-btn{min-height:32px;padding-top:6px;padding-bottom:6px}@media(min-width: 500px){.share-vehicle.share-vehicle--2-forms .share-vehicle__panels{display:grid;grid-template-columns:repeat(2, 1fr);padding-top:20px;border-top:1px solid #dedfe0}}@media(min-width: 500px){.share-vehicle.share-vehicle--2-forms .share-panel--text-me{padding-right:50px}}@media(min-width: 500px){.share-vehicle.share-vehicle--2-forms .share-panel--email{padding-left:50px;border-left:1px solid #dedfe0}}.share-vehicle.share-vehicle--2-forms .share-panel__toggle{display:block;padding:10px 0;border-top:1px solid #dedfe0}@media(min-width: 500px){.share-vehicle.share-vehicle--2-forms .share-panel__toggle{display:none}}.share-vehicle.share-vehicle--2-forms .share-panel__content{padding-top:10px;padding-bottom:10px}.share-vehicle.share-vehicle--2-forms .share-panel__content.collapse:not(.in){display:none}@media(min-width: 500px){.share-vehicle.share-vehicle--2-forms .share-panel__content{padding-top:20px;padding-bottom:0}.share-vehicle.share-vehicle--2-forms .share-panel__content.collapse:not(.in){display:block}.share-vehicle.share-vehicle--2-forms .share-panel__content.collapse,.share-vehicle.share-vehicle--2-forms .share-panel__content.collapsing{height:auto !important}}.share-vehicle.share-vehicle--2-forms .share-panel:last-of-type .share-panel__content{padding-bottom:0}.share-vehicle.share-vehicle--2-forms .panel-label--static{display:none}@media(min-width: 500px){.share-vehicle.share-vehicle--2-forms .panel-label--static{display:block}}.hide-text-me-panel{display:none}.vehicle-card-deck .vehicle-cards{display:grid;column-gap:2rem;row-gap:4rem;grid-template-columns:repeat(auto-fill, minmax(29.5rem, 1fr))}`, ""]);
21321// Exports
21322/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
21323
21324
21325/***/ }),
21326
21327/***/ 9708:
21328/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
21329
21330/*! *****************************************************************************
21331Copyright (C) Microsoft. All rights reserved.
21332Licensed under the Apache License, Version 2.0 (the "License"); you may not use
21333this file except in compliance with the License. You may obtain a copy of the
21334License at http://www.apache.org/licenses/LICENSE-2.0
21335
21336THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21337KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
21338WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
21339MERCHANTABLITY OR NON-INFRINGEMENT.
21340
21341See the Apache Version 2.0 License for specific language governing permissions
21342and limitations under the License.
21343***************************************************************************** */
21344var Reflect;
21345(function (Reflect) {
21346  // Metadata Proposal
21347  // https://rbuckton.github.io/reflect-metadata/
21348  (function (factory) {
21349    var root = typeof __webpack_require__.g === "object" ? __webpack_require__.g : typeof self === "object" ? self : typeof this === "object" ? this : Function("return this;")();
21350    var exporter = makeExporter(Reflect);
21351    if (typeof root.Reflect === "undefined") {
21352      root.Reflect = Reflect;
21353    } else {
21354      exporter = makeExporter(root.Reflect, exporter);
21355    }
21356    factory(exporter);
21357    function makeExporter(target, previous) {
21358      return function (key, value) {
21359        if (typeof target[key] !== "function") {
21360          Object.defineProperty(target, key, {
21361            configurable: true,
21362            writable: true,
21363            value: value
21364          });
21365        }
21366        if (previous) previous(key, value);
21367      };
21368    }
21369  })(function (exporter) {
21370    var hasOwn = Object.prototype.hasOwnProperty;
21371    // feature test for Symbol support
21372    var supportsSymbol = typeof Symbol === "function";
21373    var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== "undefined" ? Symbol.toPrimitive : "@@toPrimitive";
21374    var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== "undefined" ? Symbol.iterator : "@@iterator";
21375    var supportsCreate = typeof Object.create === "function"; // feature test for Object.create support
21376    var supportsProto = {
21377      __proto__: []
21378    } instanceof Array; // feature test for __proto__ support
21379    var downLevel = !supportsCreate && !supportsProto;
21380    var HashMap = {
21381      // create an object in dictionary mode (a.k.a. "slow" mode in v8)
21382      create: supportsCreate ? function () {
21383        return MakeDictionary(Object.create(null));
21384      } : supportsProto ? function () {
21385        return MakeDictionary({
21386          __proto__: null
21387        });
21388      } : function () {
21389        return MakeDictionary({});
21390      },
21391      has: downLevel ? function (map, key) {
vendor: 10,794 bytes, lines 21392-21642
21392        return hasOwn.call(map, key);
21393      } : function (map, key) {
21394        return key in map;
21395      },
21396      get: downLevel ? function (map, key) {
21397        return hasOwn.call(map, key) ? map[key] : undefined;
21398      } : function (map, key) {
21399        return map[key];
21400      }
21401    };
21402    // Load global or shim versions of Map, Set, and WeakMap
21403    var functionPrototype = Object.getPrototypeOf(Function);
21404    var usePolyfill = typeof process === "object" && process["env" + ""] && process["env" + ""]["REFLECT_METADATA_USE_MAP_POLYFILL"] === "true";
21405    var _Map = !usePolyfill && typeof Map === "function" && typeof Map.prototype.entries === "function" ? Map : CreateMapPolyfill();
21406    var _Set = !usePolyfill && typeof Set === "function" && typeof Set.prototype.entries === "function" ? Set : CreateSetPolyfill();
21407    var _WeakMap = !usePolyfill && typeof WeakMap === "function" ? WeakMap : CreateWeakMapPolyfill();
21408    // [[Metadata]] internal slot
21409    // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots
21410    var Metadata = new _WeakMap();
21411    /**
21412     * Applies a set of decorators to a property of a target object.
21413     * @param decorators An array of decorators.
21414     * @param target The target object.
21415     * @param propertyKey (Optional) The property key to decorate.
21416     * @param attributes (Optional) The property descriptor for the target key.
21417     * @remarks Decorators are applied in reverse order.
21418     * @example
21419     *
21420     *     class Example {
21421     *         // property declarations are not part of ES6, though they are valid in TypeScript:
21422     *         // static staticProperty;
21423     *         // property;
21424     *
21425     *         constructor(p) { }
21426     *         static staticMethod(p) { }
21427     *         method(p) { }
21428     *     }
21429     *
21430     *     // constructor
21431     *     Example = Reflect.decorate(decoratorsArray, Example);
21432     *
21433     *     // property (on constructor)
21434     *     Reflect.decorate(decoratorsArray, Example, "staticProperty");
21435     *
21436     *     // property (on prototype)
21437     *     Reflect.decorate(decoratorsArray, Example.prototype, "property");
21438     *
21439     *     // method (on constructor)
21440     *     Object.defineProperty(Example, "staticMethod",
21441     *         Reflect.decorate(decoratorsArray, Example, "staticMethod",
21442     *             Object.getOwnPropertyDescriptor(Example, "staticMethod")));
21443     *
21444     *     // method (on prototype)
21445     *     Object.defineProperty(Example.prototype, "method",
21446     *         Reflect.decorate(decoratorsArray, Example.prototype, "method",
21447     *             Object.getOwnPropertyDescriptor(Example.prototype, "method")));
21448     *
21449     */
21450    function decorate(decorators, target, propertyKey, attributes) {
21451      if (!IsUndefined(propertyKey)) {
21452        if (!IsArray(decorators)) throw new TypeError();
21453        if (!IsObject(target)) throw new TypeError();
21454        if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes)) throw new TypeError();
21455        if (IsNull(attributes)) attributes = undefined;
21456        propertyKey = ToPropertyKey(propertyKey);
21457        return DecorateProperty(decorators, target, propertyKey, attributes);
21458      } else {
21459        if (!IsArray(decorators)) throw new TypeError();
21460        if (!IsConstructor(target)) throw new TypeError();
21461        return DecorateConstructor(decorators, target);
21462      }
21463    }
21464    exporter("decorate", decorate);
21465    // 4.1.2 Reflect.metadata(metadataKey, metadataValue)
21466    // https://rbuckton.github.io/reflect-metadata/#reflect.metadata
21467    /**
21468     * A default metadata decorator factory that can be used on a class, class member, or parameter.
21469     * @param metadataKey The key for the metadata entry.
21470     * @param metadataValue The value for the metadata entry.
21471     * @returns A decorator function.
21472     * @remarks
21473     * If `metadataKey` is already defined for the target and target key, the
21474     * metadataValue for that key will be overwritten.
21475     * @example
21476     *
21477     *     // constructor
21478     *     @Reflect.metadata(key, value)
21479     *     class Example {
21480     *     }
21481     *
21482     *     // property (on constructor, TypeScript only)
21483     *     class Example {
21484     *         @Reflect.metadata(key, value)
21485     *         static staticProperty;
21486     *     }
21487     *
21488     *     // property (on prototype, TypeScript only)
21489     *     class Example {
21490     *         @Reflect.metadata(key, value)
21491     *         property;
21492     *     }
21493     *
21494     *     // method (on constructor)
21495     *     class Example {
21496     *         @Reflect.metadata(key, value)
21497     *         static staticMethod() { }
21498     *     }
21499     *
21500     *     // method (on prototype)
21501     *     class Example {
21502     *         @Reflect.metadata(key, value)
21503     *         method() { }
21504     *     }
21505     *
21506     */
21507    function metadata(metadataKey, metadataValue) {
21508      function decorator(target, propertyKey) {
21509        if (!IsObject(target)) throw new TypeError();
21510        if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey)) throw new TypeError();
21511        OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
21512      }
21513      return decorator;
21514    }
21515    exporter("metadata", metadata);
21516    /**
21517     * Define a unique metadata entry on the target.
21518     * @param metadataKey A key used to store and retrieve metadata.
21519     * @param metadataValue A value that contains attached metadata.
21520     * @param target The target object on which to define metadata.
21521     * @param propertyKey (Optional) The property key for the target.
21522     * @example
21523     *
21524     *     class Example {
21525     *         // property declarations are not part of ES6, though they are valid in TypeScript:
21526     *         // static staticProperty;
21527     *         // property;
21528     *
21529     *         constructor(p) { }
21530     *         static staticMethod(p) { }
21531     *         method(p) { }
21532     *     }
21533     *
21534     *     // constructor
21535     *     Reflect.defineMetadata("custom:annotation", options, Example);
21536     *
21537     *     // property (on constructor)
21538     *     Reflect.defineMetadata("custom:annotation", options, Example, "staticProperty");
21539     *
21540     *     // property (on prototype)
21541     *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "property");
21542     *
21543     *     // method (on constructor)
21544     *     Reflect.defineMetadata("custom:annotation", options, Example, "staticMethod");
21545     *
21546     *     // method (on prototype)
21547     *     Reflect.defineMetadata("custom:annotation", options, Example.prototype, "method");
21548     *
21549     *     // decorator factory as metadata-producing annotation.
21550     *     function MyAnnotation(options): Decorator {
21551     *         return (target, key?) => Reflect.defineMetadata("custom:annotation", options, target, key);
21552     *     }
21553     *
21554     */
21555    function defineMetadata(metadataKey, metadataValue, target, propertyKey) {
21556      if (!IsObject(target)) throw new TypeError();
21557      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
21558      return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);
21559    }
21560    exporter("defineMetadata", defineMetadata);
21561    /**
21562     * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.
21563     * @param metadataKey A key used to store and retrieve metadata.
21564     * @param target The target object on which the metadata is defined.
21565     * @param propertyKey (Optional) The property key for the target.
21566     * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.
21567     * @example
21568     *
21569     *     class Example {
21570     *         // property declarations are not part of ES6, though they are valid in TypeScript:
21571     *         // static staticProperty;
21572     *         // property;
21573     *
21574     *         constructor(p) { }
21575     *         static staticMethod(p) { }
21576     *         method(p) { }
21577     *     }
21578     *
21579     *     // constructor
21580     *     result = Reflect.hasMetadata("custom:annotation", Example);
21581     *
21582     *     // property (on constructor)
21583     *     result = Reflect.hasMetadata("custom:annotation", Example, "staticProperty");
21584     *
21585     *     // property (on prototype)
21586     *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "property");
21587     *
21588     *     // method (on constructor)
21589     *     result = Reflect.hasMetadata("custom:annotation", Example, "staticMethod");
21590     *
21591     *     // method (on prototype)
21592     *     result = Reflect.hasMetadata("custom:annotation", Example.prototype, "method");
21593     *
21594     */
21595    function hasMetadata(metadataKey, target, propertyKey) {
21596      if (!IsObject(target)) throw new TypeError();
21597      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
21598      return OrdinaryHasMetadata(metadataKey, target, propertyKey);
21599    }
21600    exporter("hasMetadata", hasMetadata);
21601    /**
21602     * Gets a value indicating whether the target object has the provided metadata key defined.
21603     * @param metadataKey A key used to store and retrieve metadata.
21604     * @param target The target object on which the metadata is defined.
21605     * @param propertyKey (Optional) The property key for the target.
21606     * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.
21607     * @example
21608     *
21609     *     class Example {
21610     *         // property declarations are not part of ES6, though they are valid in TypeScript:
21611     *         // static staticProperty;
21612     *         // property;
21613     *
21614     *         constructor(p) { }
21615     *         static staticMethod(p) { }
21616     *         method(p) { }
21617     *     }
21618     *
21619     *     // constructor
21620     *     result = Reflect.hasOwnMetadata("custom:annotation", Example);
21621     *
21622     *     // property (on constructor)
21623     *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticProperty");
21624     *
21625     *     // property (on prototype)
21626     *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "property");
21627     *
21628     *     // method (on constructor)
21629     *     result = Reflect.hasOwnMetadata("custom:annotation", Example, "staticMethod");
21630     *
21631     *     // method (on prototype)
21632     *     result = Reflect.hasOwnMetadata("custom:annotation", Example.prototype, "method");
21633     *
21634     */
21635    function hasOwnMetadata(metadataKey, target, propertyKey) {
21636      if (!IsObject(target)) throw new TypeError();
21637      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
21638      return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);
21639    }
21640    exporter("hasOwnMetadata", hasOwnMetadata);
21641    /**
21642     * Gets the metadata value for the provided metadata key on the target object or its prototype chain.
21643     * @param metadataKey A key used to store and retrieve metadata.
21644     * @param target The target object on which the metadata is defined.
21645     * @param propertyKey (Optional) The property key for the target.
21646     * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
21647     * @example
21648     *
21649     *     class Example {
21650     *         // property declarations are not part of ES6, though they are valid in TypeScript:
21651     *         // static staticProperty;
21652     *         // property;
21653     *
21654     *         constructor(p) { }
21655     *         static staticMethod(p) { }
21656     *         method(p) { }
21657     *     }
21658     *
21659     *     // constructor
21660     *     result = Reflect.getMetadata("custom:annotation", Example);
21661     *
21662     *     // property (on constructor)
21663     *     result = Reflect.getMetadata("custom:annotation", Example, "staticProperty");
21664     *
21665     *     // property (on prototype)
21666     *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "property");
21667     *
21668     *     // method (on constructor)
21669     *     result = Reflect.getMetadata("custom:annotation", Example, "staticMethod");
21670     *
21671     *     // method (on prototype)
21672     *     result = Reflect.getMetadata("custom:annotation", Example.prototype, "method");
21673     *
21674     */
21675    function getMetadata(metadataKey, target, propertyKey) {
21676      if (!IsObject(target)) throw new TypeError();
21677      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
21678      return OrdinaryGetMetadata(metadataKey, target, propertyKey);
21679    }
21680    exporter("getMetadata", getMetadata);
21681    /**
21682     * Gets the metadata value for the provided metadata key on the target object.
21683     * @param metadataKey A key used to store and retrieve metadata.
21684     * @param target The target object on which the metadata is defined.
21685     * @param propertyKey (Optional) The property key for the target.
21686     * @returns The metadata value for the metadata key if found; otherwise, `undefined`.
21687     * @example
21688     *
21689     *     class Example {
21690     *         // property declarations are not part of ES6, though they are valid in TypeScript:
21691     *         // static staticProperty;
21692     *         // property;
21693     *
21694     *         constructor(p) { }
21695     *         static staticMethod(p) { }
21696     *         method(p) { }
21697     *     }
21698     *
21699     *     // constructor
21700     *     result = Reflect.getOwnMetadata("custom:annotation", Example);
21701     *
21702     *     // property (on constructor)
21703     *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticProperty");
21704     *
21705     *     // property (on prototype)
21706     *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "property");
21707     *
21708     *     // method (on constructor)
21709     *     result = Reflect.getOwnMetadata("custom:annotation", Example, "staticMethod");
21710     *
21711     *     // method (on prototype)
21712     *     result = Reflect.getOwnMetadata("custom:annotation", Example.prototype, "method");
21713     *
21714     */
21715    function getOwnMetadata(metadataKey, target, propertyKey) {
21716      if (!IsObject(target)) throw new TypeError();
21717      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
21718      return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);
21719    }
21720    exporter("getOwnMetadata", getOwnMetadata);
21721    /**
21722     * Gets the metadata keys defined on the target object or its prototype chain.
21723     * @param target The target object on which the metadata is defined.
21724     * @param propertyKey (Optional) The property key for the target.
21725     * @returns An array of unique metadata keys.
21726     * @example
21727     *
21728     *     class Example {
21729     *         // property declarations are not part of ES6, though they are valid in TypeScript:
21730     *         // static staticProperty;
21731     *         // property;
21732     *
21733     *         constructor(p) { }
21734     *         static staticMethod(p) { }
21735     *         method(p) { }
21736     *     }
21737     *
21738     *     // constructor
21739     *     result = Reflect.getMetadataKeys(Example);
21740     *
21741     *     // property (on constructor)
21742     *     result = Reflect.getMetadataKeys(Example, "staticProperty");
21743     *
21744     *     // property (on prototype)
21745     *     result = Reflect.getMetadataKeys(Example.prototype, "property");
21746     *
21747     *     // method (on constructor)
21748     *     result = Reflect.getMetadataKeys(Example, "staticMethod");
21749     *
21750     *     // method (on prototype)
21751     *     result = Reflect.getMetadataKeys(Example.prototype, "method");
21752     *
21753     */
21754    function getMetadataKeys(target, propertyKey) {
21755      if (!IsObject(target)) throw new TypeError();
21756      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
21757      return OrdinaryMetadataKeys(target, propertyKey);
21758    }
21759    exporter("getMetadataKeys", getMetadataKeys);
21760    /**
21761     * Gets the unique metadata keys defined on the target object.
21762     * @param target The target object on which the metadata is defined.
21763     * @param propertyKey (Optional) The property key for the target.
21764     * @returns An array of unique metadata keys.
21765     * @example
21766     *
21767     *     class Example {
21768     *         // property declarations are not part of ES6, though they are valid in TypeScript:
21769     *         // static staticProperty;
21770     *         // property;
21771     *
21772     *         constructor(p) { }
21773     *         static staticMethod(p) { }
21774     *         method(p) { }
21775     *     }
21776     *
21777     *     // constructor
21778     *     result = Reflect.getOwnMetadataKeys(Example);
21779     *
21780     *     // property (on constructor)
21781     *     result = Reflect.getOwnMetadataKeys(Example, "staticProperty");
21782     *
21783     *     // property (on prototype)
21784     *     result = Reflect.getOwnMetadataKeys(Example.prototype, "property");
21785     *
21786     *     // method (on constructor)
21787     *     result = Reflect.getOwnMetadataKeys(Example, "staticMethod");
21788     *
21789     *     // method (on prototype)
21790     *     result = Reflect.getOwnMetadataKeys(Example.prototype, "method");
21791     *
21792     */
21793    function getOwnMetadataKeys(target, propertyKey) {
21794      if (!IsObject(target)) throw new TypeError();
21795      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
21796      return OrdinaryOwnMetadataKeys(target, propertyKey);
21797    }
21798    exporter("getOwnMetadataKeys", getOwnMetadataKeys);
21799    /**
21800     * Deletes the metadata entry from the target object with the provided key.
21801     * @param metadataKey A key used to store and retrieve metadata.
21802     * @param target The target object on which the metadata is defined.
21803     * @param propertyKey (Optional) The property key for the target.
21804     * @returns `true` if the metadata entry was found and deleted; otherwise, false.
21805     * @example
21806     *
21807     *     class Example {
21808     *         // property declarations are not part of ES6, though they are valid in TypeScript:
21809     *         // static staticProperty;
21810     *         // property;
21811     *
21812     *         constructor(p) { }
21813     *         static staticMethod(p) { }
21814     *         method(p) { }
21815     *     }
21816     *
21817     *     // constructor
21818     *     result = Reflect.deleteMetadata("custom:annotation", Example);
21819     *
21820     *     // property (on constructor)
21821     *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticProperty");
21822     *
21823     *     // property (on prototype)
21824     *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "property");
21825     *
21826     *     // method (on constructor)
21827     *     result = Reflect.deleteMetadata("custom:annotation", Example, "staticMethod");
21828     *
21829     *     // method (on prototype)
21830     *     result = Reflect.deleteMetadata("custom:annotation", Example.prototype, "method");
21831     *
21832     */
21833    function deleteMetadata(metadataKey, target, propertyKey) {
21834      if (!IsObject(target)) throw new TypeError();
21835      if (!IsUndefined(propertyKey)) propertyKey = ToPropertyKey(propertyKey);
21836      var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/false);
21837      if (IsUndefined(metadataMap)) return false;
vendor: 7,326 bytes, lines 21838-22033
21838      if (!metadataMap.delete(metadataKey)) return false;
21839      if (metadataMap.size > 0) return true;
21840      var targetMetadata = Metadata.get(target);
21841      targetMetadata.delete(propertyKey);
21842      if (targetMetadata.size > 0) return true;
21843      Metadata.delete(target);
21844      return true;
21845    }
21846    exporter("deleteMetadata", deleteMetadata);
21847    function DecorateConstructor(decorators, target) {
21848      for (var i = decorators.length - 1; i >= 0; --i) {
21849        var decorator = decorators[i];
21850        var decorated = decorator(target);
21851        if (!IsUndefined(decorated) && !IsNull(decorated)) {
21852          if (!IsConstructor(decorated)) throw new TypeError();
21853          target = decorated;
21854        }
21855      }
21856      return target;
21857    }
21858    function DecorateProperty(decorators, target, propertyKey, descriptor) {
21859      for (var i = decorators.length - 1; i >= 0; --i) {
21860        var decorator = decorators[i];
21861        var decorated = decorator(target, propertyKey, descriptor);
21862        if (!IsUndefined(decorated) && !IsNull(decorated)) {
21863          if (!IsObject(decorated)) throw new TypeError();
21864          descriptor = decorated;
21865        }
21866      }
21867      return descriptor;
21868    }
21869    function GetOrCreateMetadataMap(O, P, Create) {
21870      var targetMetadata = Metadata.get(O);
21871      if (IsUndefined(targetMetadata)) {
21872        if (!Create) return undefined;
21873        targetMetadata = new _Map();
21874        Metadata.set(O, targetMetadata);
21875      }
21876      var metadataMap = targetMetadata.get(P);
21877      if (IsUndefined(metadataMap)) {
21878        if (!Create) return undefined;
21879        metadataMap = new _Map();
21880        targetMetadata.set(P, metadataMap);
21881      }
21882      return metadataMap;
21883    }
21884    // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)
21885    // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata
21886    function OrdinaryHasMetadata(MetadataKey, O, P) {
21887      var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
21888      if (hasOwn) return true;
21889      var parent = OrdinaryGetPrototypeOf(O);
21890      if (!IsNull(parent)) return OrdinaryHasMetadata(MetadataKey, parent, P);
21891      return false;
21892    }
21893    // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)
21894    // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata
21895    function OrdinaryHasOwnMetadata(MetadataKey, O, P) {
21896      var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/false);
21897      if (IsUndefined(metadataMap)) return false;
21898      return ToBoolean(metadataMap.has(MetadataKey));
21899    }
21900    // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)
21901    // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata
21902    function OrdinaryGetMetadata(MetadataKey, O, P) {
21903      var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);
21904      if (hasOwn) return OrdinaryGetOwnMetadata(MetadataKey, O, P);
21905      var parent = OrdinaryGetPrototypeOf(O);
21906      if (!IsNull(parent)) return OrdinaryGetMetadata(MetadataKey, parent, P);
21907      return undefined;
21908    }
21909    // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)
21910    // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata
21911    function OrdinaryGetOwnMetadata(MetadataKey, O, P) {
21912      var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/false);
21913      if (IsUndefined(metadataMap)) return undefined;
21914      return metadataMap.get(MetadataKey);
21915    }
21916    // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)
21917    // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata
21918    function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {
21919      var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/true);
21920      metadataMap.set(MetadataKey, MetadataValue);
21921    }
21922    // 3.1.6.1 OrdinaryMetadataKeys(O, P)
21923    // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys
21924    function OrdinaryMetadataKeys(O, P) {
21925      var ownKeys = OrdinaryOwnMetadataKeys(O, P);
21926      var parent = OrdinaryGetPrototypeOf(O);
21927      if (parent === null) return ownKeys;
21928      var parentKeys = OrdinaryMetadataKeys(parent, P);
21929      if (parentKeys.length <= 0) return ownKeys;
21930      if (ownKeys.length <= 0) return parentKeys;
21931      var set = new _Set();
21932      var keys = [];
21933      for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {
21934        var key = ownKeys_1[_i];
21935        var hasKey = set.has(key);
21936        if (!hasKey) {
21937          set.add(key);
21938          keys.push(key);
21939        }
21940      }
21941      for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {
21942        var key = parentKeys_1[_a];
21943        var hasKey = set.has(key);
21944        if (!hasKey) {
21945          set.add(key);
21946          keys.push(key);
21947        }
21948      }
21949      return keys;
21950    }
21951    // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)
21952    // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys
21953    function OrdinaryOwnMetadataKeys(O, P) {
21954      var keys = [];
21955      var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/false);
21956      if (IsUndefined(metadataMap)) return keys;
21957      var keysObj = metadataMap.keys();
21958      var iterator = GetIterator(keysObj);
21959      var k = 0;
21960      while (true) {
21961        var next = IteratorStep(iterator);
21962        if (!next) {
21963          keys.length = k;
21964          return keys;
21965        }
21966        var nextValue = IteratorValue(next);
21967        try {
21968          keys[k] = nextValue;
21969        } catch (e) {
21970          try {
21971            IteratorClose(iterator);
21972          } finally {
21973            throw e;
21974          }
21975        }
21976        k++;
21977      }
21978    }
21979    // 6 ECMAScript Data Typ0es and Values
21980    // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values
21981    function Type(x) {
21982      if (x === null) return 1 /* Null */;
21983      switch (typeof x) {
21984        case "undefined":
21985          return 0 /* Undefined */;
21986        case "boolean":
21987          return 2 /* Boolean */;
21988        case "string":
21989          return 3 /* String */;
21990        case "symbol":
21991          return 4 /* Symbol */;
21992        case "number":
21993          return 5 /* Number */;
21994        case "object":
21995          return x === null ? 1 /* Null */ : 6 /* Object */;
21996        default:
21997          return 6 /* Object */;
21998      }
21999    }
22000    // 6.1.1 The Undefined Type
22001    // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type
22002    function IsUndefined(x) {
22003      return x === undefined;
22004    }
22005    // 6.1.2 The Null Type
22006    // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type
22007    function IsNull(x) {
22008      return x === null;
22009    }
22010    // 6.1.5 The Symbol Type
22011    // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type
22012    function IsSymbol(x) {
22013      return typeof x === "symbol";
22014    }
22015    // 6.1.7 The Object Type
22016    // https://tc39.github.io/ecma262/#sec-object-type
22017    function IsObject(x) {
22018      return typeof x === "object" ? x !== null : typeof x === "function";
22019    }
22020    // 7.1 Type Conversion
22021    // https://tc39.github.io/ecma262/#sec-type-conversion
22022    // 7.1.1 ToPrimitive(input [, PreferredType])
22023    // https://tc39.github.io/ecma262/#sec-toprimitive
22024    function ToPrimitive(input, PreferredType) {
22025      switch (Type(input)) {
22026        case 0 /* Undefined */:
22027          return input;
22028        case 1 /* Null */:
22029          return input;
22030        case 2 /* Boolean */:
22031          return input;
22032        case 3 /* String */:
22033          return input;
vendor: 5,604 bytes, lines 22034-22172
22034        case 4 /* Symbol */:
22035          return input;
22036        case 5 /* Number */:
22037          return input;
22038      }
22039      var hint = PreferredType === 3 /* String */ ? "string" : PreferredType === 5 /* Number */ ? "number" : "default";
22040      var exoticToPrim = GetMethod(input, toPrimitiveSymbol);
22041      if (exoticToPrim !== undefined) {
22042        var result = exoticToPrim.call(input, hint);
22043        if (IsObject(result)) throw new TypeError();
22044        return result;
22045      }
22046      return OrdinaryToPrimitive(input, hint === "default" ? "number" : hint);
22047    }
22048    // 7.1.1.1 OrdinaryToPrimitive(O, hint)
22049    // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive
22050    function OrdinaryToPrimitive(O, hint) {
22051      if (hint === "string") {
22052        var toString_1 = O.toString;
22053        if (IsCallable(toString_1)) {
22054          var result = toString_1.call(O);
22055          if (!IsObject(result)) return result;
22056        }
22057        var valueOf = O.valueOf;
22058        if (IsCallable(valueOf)) {
22059          var result = valueOf.call(O);
22060          if (!IsObject(result)) return result;
22061        }
22062      } else {
22063        var valueOf = O.valueOf;
22064        if (IsCallable(valueOf)) {
22065          var result = valueOf.call(O);
22066          if (!IsObject(result)) return result;
22067        }
22068        var toString_2 = O.toString;
22069        if (IsCallable(toString_2)) {
22070          var result = toString_2.call(O);
22071          if (!IsObject(result)) return result;
22072        }
22073      }
22074      throw new TypeError();
22075    }
22076    // 7.1.2 ToBoolean(argument)
22077    // https://tc39.github.io/ecma262/2016/#sec-toboolean
22078    function ToBoolean(argument) {
22079      return !!argument;
22080    }
22081    // 7.1.12 ToString(argument)
22082    // https://tc39.github.io/ecma262/#sec-tostring
22083    function ToString(argument) {
22084      return "" + argument;
22085    }
22086    // 7.1.14 ToPropertyKey(argument)
22087    // https://tc39.github.io/ecma262/#sec-topropertykey
22088    function ToPropertyKey(argument) {
22089      var key = ToPrimitive(argument, 3 /* String */);
22090      if (IsSymbol(key)) return key;
22091      return ToString(key);
22092    }
22093    // 7.2 Testing and Comparison Operations
22094    // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations
22095    // 7.2.2 IsArray(argument)
22096    // https://tc39.github.io/ecma262/#sec-isarray
22097    function IsArray(argument) {
22098      return Array.isArray ? Array.isArray(argument) : argument instanceof Object ? argument instanceof Array : Object.prototype.toString.call(argument) === "[object Array]";
22099    }
22100    // 7.2.3 IsCallable(argument)
22101    // https://tc39.github.io/ecma262/#sec-iscallable
22102    function IsCallable(argument) {
22103      // NOTE: This is an approximation as we cannot check for [[Call]] internal method.
22104      return typeof argument === "function";
22105    }
22106    // 7.2.4 IsConstructor(argument)
22107    // https://tc39.github.io/ecma262/#sec-isconstructor
22108    function IsConstructor(argument) {
22109      // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.
22110      return typeof argument === "function";
22111    }
22112    // 7.2.7 IsPropertyKey(argument)
22113    // https://tc39.github.io/ecma262/#sec-ispropertykey
22114    function IsPropertyKey(argument) {
22115      switch (Type(argument)) {
22116        case 3 /* String */:
22117          return true;
22118        case 4 /* Symbol */:
22119          return true;
22120        default:
22121          return false;
22122      }
22123    }
22124    // 7.3 Operations on Objects
22125    // https://tc39.github.io/ecma262/#sec-operations-on-objects
22126    // 7.3.9 GetMethod(V, P)
22127    // https://tc39.github.io/ecma262/#sec-getmethod
22128    function GetMethod(V, P) {
22129      var func = V[P];
22130      if (func === undefined || func === null) return undefined;
22131      if (!IsCallable(func)) throw new TypeError();
22132      return func;
22133    }
22134    // 7.4 Operations on Iterator Objects
22135    // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects
22136    function GetIterator(obj) {
22137      var method = GetMethod(obj, iteratorSymbol);
22138      if (!IsCallable(method)) throw new TypeError(); // from Call
22139      var iterator = method.call(obj);
22140      if (!IsObject(iterator)) throw new TypeError();
22141      return iterator;
22142    }
22143    // 7.4.4 IteratorValue(iterResult)
22144    // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue
22145    function IteratorValue(iterResult) {
22146      return iterResult.value;
22147    }
22148    // 7.4.5 IteratorStep(iterator)
22149    // https://tc39.github.io/ecma262/#sec-iteratorstep
22150    function IteratorStep(iterator) {
22151      var result = iterator.next();
22152      return result.done ? false : result;
22153    }
22154    // 7.4.6 IteratorClose(iterator, completion)
22155    // https://tc39.github.io/ecma262/#sec-iteratorclose
22156    function IteratorClose(iterator) {
22157      var f = iterator["return"];
22158      if (f) f.call(iterator);
22159    }
22160    // 9.1 Ordinary Object Internal Methods and Internal Slots
22161    // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots
22162    // 9.1.1.1 OrdinaryGetPrototypeOf(O)
22163    // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof
22164    function OrdinaryGetPrototypeOf(O) {
22165      var proto = Object.getPrototypeOf(O);
22166      if (typeof O !== "function" || O === functionPrototype) return proto;
22167      // TypeScript doesn't set __proto__ in ES5, as it's non-standard.
22168      // Try to determine the superclass constructor. Compatible implementations
22169      // must either set __proto__ on a subclass constructor to the superclass constructor,
22170      // or ensure each class has a valid `constructor` property on its prototype that
22171      // points back to the constructor.
22172      // If this is not the same as Function.[[Prototype]], then this is definately inherited.
vendor: 10,182 bytes, lines 22173-22467
22173      // This is the case when in ES6 or when using __proto__ in a compatible browser.
22174      if (proto !== functionPrototype) return proto;
22175      // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.
22176      var prototype = O.prototype;
22177      var prototypeProto = prototype && Object.getPrototypeOf(prototype);
22178      if (prototypeProto == null || prototypeProto === Object.prototype) return proto;
22179      // If the constructor was not a function, then we cannot determine the heritage.
22180      var constructor = prototypeProto.constructor;
22181      if (typeof constructor !== "function") return proto;
22182      // If we have some kind of self-reference, then we cannot determine the heritage.
22183      if (constructor === O) return proto;
22184      // we have a pretty good guess at the heritage.
22185      return constructor;
22186    }
22187    // naive Map shim
22188    function CreateMapPolyfill() {
22189      var cacheSentinel = {};
22190      var arraySentinel = [];
22191      var MapIterator = /** @class */function () {
22192        function MapIterator(keys, values, selector) {
22193          this._index = 0;
22194          this._keys = keys;
22195          this._values = values;
22196          this._selector = selector;
22197        }
22198        MapIterator.prototype["@@iterator"] = function () {
22199          return this;
22200        };
22201        MapIterator.prototype[iteratorSymbol] = function () {
22202          return this;
22203        };
22204        MapIterator.prototype.next = function () {
22205          var index = this._index;
22206          if (index >= 0 && index < this._keys.length) {
22207            var result = this._selector(this._keys[index], this._values[index]);
22208            if (index + 1 >= this._keys.length) {
22209              this._index = -1;
22210              this._keys = arraySentinel;
22211              this._values = arraySentinel;
22212            } else {
22213              this._index++;
22214            }
22215            return {
22216              value: result,
22217              done: false
22218            };
22219          }
22220          return {
22221            value: undefined,
22222            done: true
22223          };
22224        };
22225        MapIterator.prototype.throw = function (error) {
22226          if (this._index >= 0) {
22227            this._index = -1;
22228            this._keys = arraySentinel;
22229            this._values = arraySentinel;
22230          }
22231          throw error;
22232        };
22233        MapIterator.prototype.return = function (value) {
22234          if (this._index >= 0) {
22235            this._index = -1;
22236            this._keys = arraySentinel;
22237            this._values = arraySentinel;
22238          }
22239          return {
22240            value: value,
22241            done: true
22242          };
22243        };
22244        return MapIterator;
22245      }();
22246      return /** @class */function () {
22247        function Map() {
22248          this._keys = [];
22249          this._values = [];
22250          this._cacheKey = cacheSentinel;
22251          this._cacheIndex = -2;
22252        }
22253        Object.defineProperty(Map.prototype, "size", {
22254          get: function () {
22255            return this._keys.length;
22256          },
22257          enumerable: true,
22258          configurable: true
22259        });
22260        Map.prototype.has = function (key) {
22261          return this._find(key, /*insert*/false) >= 0;
22262        };
22263        Map.prototype.get = function (key) {
22264          var index = this._find(key, /*insert*/false);
22265          return index >= 0 ? this._values[index] : undefined;
22266        };
22267        Map.prototype.set = function (key, value) {
22268          var index = this._find(key, /*insert*/true);
22269          this._values[index] = value;
22270          return this;
22271        };
22272        Map.prototype.delete = function (key) {
22273          var index = this._find(key, /*insert*/false);
22274          if (index >= 0) {
22275            var size = this._keys.length;
22276            for (var i = index + 1; i < size; i++) {
22277              this._keys[i - 1] = this._keys[i];
22278              this._values[i - 1] = this._values[i];
22279            }
22280            this._keys.length--;
22281            this._values.length--;
22282            if (key === this._cacheKey) {
22283              this._cacheKey = cacheSentinel;
22284              this._cacheIndex = -2;
22285            }
22286            return true;
22287          }
22288          return false;
22289        };
22290        Map.prototype.clear = function () {
22291          this._keys.length = 0;
22292          this._values.length = 0;
22293          this._cacheKey = cacheSentinel;
22294          this._cacheIndex = -2;
22295        };
22296        Map.prototype.keys = function () {
22297          return new MapIterator(this._keys, this._values, getKey);
22298        };
22299        Map.prototype.values = function () {
22300          return new MapIterator(this._keys, this._values, getValue);
22301        };
22302        Map.prototype.entries = function () {
22303          return new MapIterator(this._keys, this._values, getEntry);
22304        };
22305        Map.prototype["@@iterator"] = function () {
22306          return this.entries();
22307        };
22308        Map.prototype[iteratorSymbol] = function () {
22309          return this.entries();
22310        };
22311        Map.prototype._find = function (key, insert) {
22312          if (this._cacheKey !== key) {
22313            this._cacheIndex = this._keys.indexOf(this._cacheKey = key);
22314          }
22315          if (this._cacheIndex < 0 && insert) {
22316            this._cacheIndex = this._keys.length;
22317            this._keys.push(key);
22318            this._values.push(undefined);
22319          }
22320          return this._cacheIndex;
22321        };
22322        return Map;
22323      }();
22324      function getKey(key, _) {
22325        return key;
22326      }
22327      function getValue(_, value) {
22328        return value;
22329      }
22330      function getEntry(key, value) {
22331        return [key, value];
22332      }
22333    }
22334    // naive Set shim
22335    function CreateSetPolyfill() {
22336      return /** @class */function () {
22337        function Set() {
22338          this._map = new _Map();
22339        }
22340        Object.defineProperty(Set.prototype, "size", {
22341          get: function () {
22342            return this._map.size;
22343          },
22344          enumerable: true,
22345          configurable: true
22346        });
22347        Set.prototype.has = function (value) {
22348          return this._map.has(value);
22349        };
22350        Set.prototype.add = function (value) {
22351          return this._map.set(value, value), this;
22352        };
22353        Set.prototype.delete = function (value) {
22354          return this._map.delete(value);
22355        };
22356        Set.prototype.clear = function () {
22357          this._map.clear();
22358        };
22359        Set.prototype.keys = function () {
22360          return this._map.keys();
22361        };
22362        Set.prototype.values = function () {
22363          return this._map.values();
22364        };
22365        Set.prototype.entries = function () {
22366          return this._map.entries();
22367        };
22368        Set.prototype["@@iterator"] = function () {
22369          return this.keys();
22370        };
22371        Set.prototype[iteratorSymbol] = function () {
22372          return this.keys();
22373        };
22374        return Set;
22375      }();
22376    }
22377    // naive WeakMap shim
22378    function CreateWeakMapPolyfill() {
22379      var UUID_SIZE = 16;
22380      var keys = HashMap.create();
22381      var rootKey = CreateUniqueKey();
22382      return /** @class */function () {
22383        function WeakMap() {
22384          this._key = CreateUniqueKey();
22385        }
22386        WeakMap.prototype.has = function (target) {
22387          var table = GetOrCreateWeakMapTable(target, /*create*/false);
22388          return table !== undefined ? HashMap.has(table, this._key) : false;
22389        };
22390        WeakMap.prototype.get = function (target) {
22391          var table = GetOrCreateWeakMapTable(target, /*create*/false);
22392          return table !== undefined ? HashMap.get(table, this._key) : undefined;
22393        };
22394        WeakMap.prototype.set = function (target, value) {
22395          var table = GetOrCreateWeakMapTable(target, /*create*/true);
22396          table[this._key] = value;
22397          return this;
22398        };
22399        WeakMap.prototype.delete = function (target) {
22400          var table = GetOrCreateWeakMapTable(target, /*create*/false);
22401          return table !== undefined ? delete table[this._key] : false;
22402        };
22403        WeakMap.prototype.clear = function () {
22404          // NOTE: not a real clear, just makes the previous data unreachable
22405          this._key = CreateUniqueKey();
22406        };
22407        return WeakMap;
22408      }();
22409      function CreateUniqueKey() {
22410        var key;
22411        do key = "@@WeakMap@@" + CreateUUID(); while (HashMap.has(keys, key));
22412        keys[key] = true;
22413        return key;
22414      }
22415      function GetOrCreateWeakMapTable(target, create) {
22416        if (!hasOwn.call(target, rootKey)) {
22417          if (!create) return undefined;
22418          Object.defineProperty(target, rootKey, {
22419            value: HashMap.create()
22420          });
22421        }
22422        return target[rootKey];
22423      }
22424      function FillRandomBytes(buffer, size) {
22425        for (var i = 0; i < size; ++i) buffer[i] = Math.random() * 0xff | 0;
22426        return buffer;
22427      }
22428      function GenRandomBytes(size) {
22429        if (typeof Uint8Array === "function") {
22430          if (typeof crypto !== "undefined") return crypto.getRandomValues(new Uint8Array(size));
22431          if (typeof msCrypto !== "undefined") return msCrypto.getRandomValues(new Uint8Array(size));
22432          return FillRandomBytes(new Uint8Array(size), size);
22433        }
22434        return FillRandomBytes(new Array(size), size);
22435      }
22436      function CreateUUID() {
22437        var data = GenRandomBytes(UUID_SIZE);
22438        // mark as random - RFC 4122 § 4.4
22439        data[6] = data[6] & 0x4f | 0x40;
22440        data[8] = data[8] & 0xbf | 0x80;
22441        var result = "";
22442        for (var offset = 0; offset < UUID_SIZE; ++offset) {
22443          var byte = data[offset];
22444          if (offset === 4 || offset === 6 || offset === 8) result += "-";
22445          if (byte < 16) result += "0";
22446          result += byte.toString(16).toLowerCase();
22447        }
22448        return result;
22449      }
22450    }
22451    // uses a heuristic used by v8 and chakra to force an object into dictionary mode.
22452    function MakeDictionary(obj) {
22453      obj.__ = undefined;
22454      delete obj.__;
22455      return obj;
22456    }
22457  });
22458})(Reflect || (Reflect = {}));
22459
22460/***/ }),
22461
22462/***/ 9912:
22463/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
22464
22465// style-loader: Adds some css to the DOM by adding a <style> tag
22466
22467// load the styles
vendor: 5,755 bytes, lines 22468-22614
22468var content = __webpack_require__(8993);
22469if(content.__esModule) content = content.default;
22470if(typeof content === 'string') content = [[module.id, content, '']];
22471if(content.locals) module.exports = content.locals;
22472// add the styles to the DOM
22473var add = (__webpack_require__(8449)/* ["default"] */ .A)
22474var update = add("0215468b", content, false, {});
22475// Hot Module Replacement
22476if(false) {}
22477
22478/***/ })
22479
22480/******/ 	});
22481/************************************************************************/
22482/******/ 	// The module cache
22483/******/ 	var __webpack_module_cache__ = {};
22484/******/ 	
22485/******/ 	// The require function
22486/******/ 	function __webpack_require__(moduleId) {
22487/******/ 		// Check if module is in cache
22488/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
22489/******/ 		if (cachedModule !== undefined) {
22490/******/ 			return cachedModule.exports;
22491/******/ 		}
22492/******/ 		// Create a new module (and put it into the cache)
22493/******/ 		var module = __webpack_module_cache__[moduleId] = {
22494/******/ 			id: moduleId,
22495/******/ 			// no module.loaded needed
22496/******/ 			exports: {}
22497/******/ 		};
22498/******/ 	
22499/******/ 		// Execute the module function
22500/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22501/******/ 	
22502/******/ 		// Return the exports of the module
22503/******/ 		return module.exports;
22504/******/ 	}
22505/******/ 	
22506/******/ 	// expose the modules object (__webpack_modules__)
22507/******/ 	__webpack_require__.m = __webpack_modules__;
22508/******/ 	
22509/************************************************************************/
22510/******/ 	/* webpack/runtime/compat get default export */
22511/******/ 	(() => {
22512/******/ 		// getDefaultExport function for compatibility with non-harmony modules
22513/******/ 		__webpack_require__.n = (module) => {
22514/******/ 			var getter = module && module.__esModule ?
22515/******/ 				() => (module['default']) :
22516/******/ 				() => (module);
22517/******/ 			__webpack_require__.d(getter, { a: getter });
22518/******/ 			return getter;
22519/******/ 		};
22520/******/ 	})();
22521/******/ 	
22522/******/ 	/* webpack/runtime/define property getters */
22523/******/ 	(() => {
22524/******/ 		// define getter functions for harmony exports
22525/******/ 		__webpack_require__.d = (exports, definition) => {
22526/******/ 			for(var key in definition) {
22527/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
22528/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
22529/******/ 				}
22530/******/ 			}
22531/******/ 		};
22532/******/ 	})();
22533/******/ 	
22534/******/ 	/* webpack/runtime/ensure chunk */
22535/******/ 	(() => {
22536/******/ 		__webpack_require__.f = {};
22537/******/ 		// This file contains only the entry chunk.
22538/******/ 		// The chunk loading function for additional chunks
22539/******/ 		__webpack_require__.e = (chunkId) => {
22540/******/ 			return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {
22541/******/ 				__webpack_require__.f[key](chunkId, promises);
22542/******/ 				return promises;
22543/******/ 			}, []));
22544/******/ 		};
22545/******/ 	})();
22546/******/ 	
22547/******/ 	/* webpack/runtime/get javascript chunk filename */
22548/******/ 	(() => {
22549/******/ 		// This function allow to reference async chunks
22550/******/ 		__webpack_require__.u = (chunkId) => {
22551/******/ 			// return url for filenames based on template
22552/******/ 			return "" + "vehicleCompare" + "Bundle.js";
22553/******/ 		};
22554/******/ 	})();
22555/******/ 	
22556/******/ 	/* webpack/runtime/get mini-css chunk filename */
22557/******/ 	(() => {
22558/******/ 		// This function allow to reference async chunks
22559/******/ 		__webpack_require__.miniCssF = (chunkId) => {
22560/******/ 			// return url for filenames based on template
22561/******/ 			return "" + "vehicleCompare" + ".min.css";
22562/******/ 		};
22563/******/ 	})();
22564/******/ 	
22565/******/ 	/* webpack/runtime/global */
22566/******/ 	(() => {
22567/******/ 		__webpack_require__.g = (function() {
22568/******/ 			if (typeof globalThis === 'object') return globalThis;
22569/******/ 			try {
22570/******/ 				return this || new Function('return this')();
22571/******/ 			} catch (e) {
22572/******/ 				if (typeof window === 'object') return window;
22573/******/ 			}
22574/******/ 		})();
22575/******/ 	})();
22576/******/ 	
22577/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
22578/******/ 	(() => {
22579/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
22580/******/ 	})();
22581/******/ 	
22582/******/ 	/* webpack/runtime/load script */
22583/******/ 	(() => {
22584/******/ 		var inProgress = {};
22585/******/ 		var dataWebpackPrefix = "vhcliaa:";
22586/******/ 		// loadScript function to load a script via script tag
22587/******/ 		__webpack_require__.l = (url, done, key, chunkId) => {
22588/******/ 			if(inProgress[url]) { inProgress[url].push(done); return; }
22589/******/ 			var script, needAttach;
22590/******/ 			if(key !== undefined) {
22591/******/ 				var scripts = document.getElementsByTagName("script");
22592/******/ 				for(var i = 0; i < scripts.length; i++) {
22593/******/ 					var s = scripts[i];
22594/******/ 					if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; }
22595/******/ 				}
22596/******/ 			}
22597/******/ 			if(!script) {
22598/******/ 				needAttach = true;
22599/******/ 				script = document.createElement('script');
22600/******/ 		
22601/******/ 				script.charset = 'utf-8';
22602/******/ 				script.timeout = 120;
22603/******/ 				if (__webpack_require__.nc) {
22604/******/ 					script.setAttribute("nonce", __webpack_require__.nc);
22605/******/ 				}
22606/******/ 				script.setAttribute("data-webpack", dataWebpackPrefix + key);
22607/******/ 		
22608/******/ 				script.src = url;
22609/******/ 			}
22610/******/ 			inProgress[url] = [done];
22611/******/ 			var onScriptComplete = (prev, event) => {
22612/******/ 				// avoid mem leaks in IE.
22613/******/ 				script.onerror = script.onload = null;
22614/******/ 				clearTimeout(timeout);
22615/******/ 				var doneFns = inProgress[url];
22616/******/ 				delete inProgress[url];
22617/******/ 				script.parentNode && script.parentNode.removeChild(script);
22618/******/ 				doneFns && doneFns.forEach((fn) => (fn(event)));
22619/******/ 				if(prev) return prev(event);
22620/******/ 			}
22621/******/ 			var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);
22622/******/ 			script.onerror = onScriptComplete.bind(null, script.onerror);
22623/******/ 			script.onload = onScriptComplete.bind(null, script.onload);
22624/******/ 			needAttach && document.head.appendChild(script);
22625/******/ 		};
22626/******/ 	})();
22627/******/ 	
22628/******/ 	/* webpack/runtime/make namespace object */
22629/******/ 	(() => {
22630/******/ 		// define __esModule on exports
22631/******/ 		__webpack_require__.r = (exports) => {
22632/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
22633/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
22634/******/ 			}
22635/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
22636/******/ 		};
22637/******/ 	})();
22638/******/ 	
22639/******/ 	/* webpack/runtime/publicPath */
22640/******/ 	(() => {
22641/******/ 		__webpack_require__.p = "/resources/vhcliaa/";
22642/******/ 	})();
22643/******/ 	
22644/******/ 	/* webpack/runtime/css loading */
22645/******/ 	(() => {
22646/******/ 		if (typeof document === "undefined") return;
22647/******/ 		var createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {
22648/******/ 			var linkTag = document.createElement("link");
22649/******/ 		
22650/******/ 			linkTag.rel = "stylesheet";
22651/******/ 			linkTag.type = "text/css";
22652/******/ 			if (__webpack_require__.nc) {
22653/******/ 				linkTag.nonce = __webpack_require__.nc;
22654/******/ 			}
22655/******/ 			var onLinkComplete = (event) => {
22656/******/ 				// avoid mem leaks.
22657/******/ 				linkTag.onerror = linkTag.onload = null;
22658/******/ 				if (event.type === 'load') {
22659/******/ 					resolve();
22660/******/ 				} else {
22661/******/ 					var errorType = event && event.type;
22662/******/ 					var realHref = event && event.target && event.target.href || fullhref;
22663/******/ 					var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + errorType + ": " + realHref + ")");
22664/******/ 					err.name = "ChunkLoadError";
22665/******/ 					err.code = "CSS_CHUNK_LOAD_FAILED";
22666/******/ 					err.type = errorType;
22667/******/ 					err.request = realHref;
22668/******/ 					if (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)
22669/******/ 					reject(err);
22670/******/ 				}
22671/******/ 			}
22672/******/ 			linkTag.onerror = linkTag.onload = onLinkComplete;
22673/******/ 			linkTag.href = fullhref;
22674/******/ 		
22675/******/ 		
22676/******/ 			if (oldTag) {
22677/******/ 				oldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);
22678/******/ 			} else {
22679/******/ 				document.head.appendChild(linkTag);
22680/******/ 			}
22681/******/ 			return linkTag;
22682/******/ 		};
22683/******/ 		var findStylesheet = (href, fullhref) => {
22684/******/ 			var existingLinkTags = document.getElementsByTagName("link");
22685/******/ 			for(var i = 0; i < existingLinkTags.length; i++) {
22686/******/ 				var tag = existingLinkTags[i];
22687/******/ 				var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");
22688/******/ 				if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;
22689/******/ 			}
22690/******/ 			var existingStyleTags = document.getElementsByTagName("style");
22691/******/ 			for(var i = 0; i < existingStyleTags.length; i++) {
22692/******/ 				var tag = existingStyleTags[i];
22693/******/ 				var dataHref = tag.getAttribute("data-href");
22694/******/ 				if(dataHref === href || dataHref === fullhref) return tag;
22695/******/ 			}
22696/******/ 		};
22697/******/ 		var loadStylesheet = (chunkId) => {
22698/******/ 			return new Promise((resolve, reject) => {
22699/******/ 				var href = __webpack_require__.miniCssF(chunkId);
22700/******/ 				var fullhref = __webpack_require__.p + href;
22701/******/ 				if(findStylesheet(href, fullhref)) return resolve();
22702/******/ 				createStylesheet(chunkId, fullhref, null, resolve, reject);
22703/******/ 			});
22704/******/ 		}
22705/******/ 		// object to store loaded CSS chunks
22706/******/ 		var installedCssChunks = {
22707/******/ 			547: 0
22708/******/ 		};
22709/******/ 		
22710/******/ 		__webpack_require__.f.miniCss = (chunkId, promises) => {
22711/******/ 			var cssChunks = {"554":1};
22712/******/ 			if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);
22713/******/ 			else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {
22714/******/ 				promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {
22715/******/ 					installedCssChunks[chunkId] = 0;
22716/******/ 				}, (e) => {
22717/******/ 					delete installedCssChunks[chunkId];
22718/******/ 					throw e;
22719/******/ 				}));
22720/******/ 			}
22721/******/ 		};
22722/******/ 		
22723/******/ 		// no hmr
22724/******/ 		
22725/******/ 		// no prefetching
22726/******/ 		
22727/******/ 		// no preloaded
vendor: 4,960 bytes, lines 22728-22835
22728/******/ 	})();
22729/******/ 	
22730/******/ 	/* webpack/runtime/jsonp chunk loading */
22731/******/ 	(() => {
22732/******/ 		// no baseURI
22733/******/ 		
22734/******/ 		// object to store loaded and loading chunks
22735/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
22736/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
22737/******/ 		var installedChunks = {
22738/******/ 			547: 0
22739/******/ 		};
22740/******/ 		
22741/******/ 		__webpack_require__.f.j = (chunkId, promises) => {
22742/******/ 				// JSONP chunk loading for javascript
22743/******/ 				var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;
22744/******/ 				if(installedChunkData !== 0) { // 0 means "already installed".
22745/******/ 		
22746/******/ 					// a Promise means "currently loading".
22747/******/ 					if(installedChunkData) {
22748/******/ 						promises.push(installedChunkData[2]);
22749/******/ 					} else {
22750/******/ 						if(true) { // all chunks have JS
22751/******/ 							// setup Promise in chunk cache
22752/******/ 							var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));
22753/******/ 							promises.push(installedChunkData[2] = promise);
22754/******/ 		
22755/******/ 							// start chunk loading
22756/******/ 							var url = __webpack_require__.p + __webpack_require__.u(chunkId);
22757/******/ 							// create error before stack unwound to get useful stacktrace later
22758/******/ 							var error = new Error();
22759/******/ 							var loadingEnded = (event) => {
22760/******/ 								if(__webpack_require__.o(installedChunks, chunkId)) {
22761/******/ 									installedChunkData = installedChunks[chunkId];
22762/******/ 									if(installedChunkData !== 0) installedChunks[chunkId] = undefined;
22763/******/ 									if(installedChunkData) {
22764/******/ 										var errorType = event && (event.type === 'load' ? 'missing' : event.type);
22765/******/ 										var realSrc = event && event.target && event.target.src;
22766/******/ 										error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')';
22767/******/ 										error.name = 'ChunkLoadError';
22768/******/ 										error.type = errorType;
22769/******/ 										error.request = realSrc;
22770/******/ 										installedChunkData[1](error);
22771/******/ 									}
22772/******/ 								}
22773/******/ 							};
22774/******/ 							__webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId);
22775/******/ 						}
22776/******/ 					}
22777/******/ 				}
22778/******/ 		};
22779/******/ 		
22780/******/ 		// no prefetching
22781/******/ 		
22782/******/ 		// no preloaded
22783/******/ 		
22784/******/ 		// no HMR
22785/******/ 		
22786/******/ 		// no HMR manifest
22787/******/ 		
22788/******/ 		// no on chunks loaded
22789/******/ 		
22790/******/ 		// install a JSONP callback for chunk loading
22791/******/ 		var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
22792/******/ 			var [chunkIds, moreModules, runtime] = data;
22793/******/ 			// add "moreModules" to the modules object,
22794/******/ 			// then flag all "chunkIds" as loaded and fire callback
22795/******/ 			var moduleId, chunkId, i = 0;
22796/******/ 			if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
22797/******/ 				for(moduleId in moreModules) {
22798/******/ 					if(__webpack_require__.o(moreModules, moduleId)) {
22799/******/ 						__webpack_require__.m[moduleId] = moreModules[moduleId];
22800/******/ 					}
22801/******/ 				}
22802/******/ 				if(runtime) var result = runtime(__webpack_require__);
22803/******/ 			}
22804/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
22805/******/ 			for(;i < chunkIds.length; i++) {
22806/******/ 				chunkId = chunkIds[i];
22807/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
22808/******/ 					installedChunks[chunkId][0]();
22809/******/ 				}
22810/******/ 				installedChunks[chunkId] = 0;
22811/******/ 			}
22812/******/ 		
22813/******/ 		}
22814/******/ 		
22815/******/ 		var chunkLoadingGlobal = self["webpackChunkvhcliaa"] = self["webpackChunkvhcliaa"] || [];
22816/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
22817/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
22818/******/ 	})();
22819/******/ 	
22820/************************************************************************/
22821var __webpack_exports__ = {};
22822// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
22823(() => {
22824"use strict";
22825
22826// EXTERNAL MODULE: ./node_modules/reflect-metadata/Reflect.js
22827var vehicleCardDeck_Reflect = __webpack_require__(9708);
22828// EXTERNAL MODULE: ./src/inversify.config.ts + 24 modules
22829var vehicleCardDeck_inversify_config = __webpack_require__(3239);
22830// EXTERNAL MODULE: ./src/types/types.ts
22831var vehicleCardDeck_types = __webpack_require__(5644);
22832// EXTERNAL MODULE: ./node_modules/vue/dist/vue.runtime.esm-browser.prod.js
22833var vehicleCardDeck_vue_runtime_esm_browser_prod = __webpack_require__(3568);
22834// EXTERNAL MODULE: ./node_modules/pinia/dist/pinia.mjs + 1 modules
22835var vehicleCardDeck_dist_pinia = __webpack_require__(1774);
22836// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/customEvents.ts
22837var vehicleCardDeck_customEvents = __webpack_require__(9600);
22838// EXTERNAL MODULE: ./src/infrastructure/vue/vehicleCardDeck/globalStore.ts + 1 modules
22839var vehicleCardDeck_vehicleCardDeck_globalStore = __webpack_require__(5467);
22840;// ./src/components/moreInfoModal/moreInfoModal.ts
22841/// <reference path="../../utilities/do_utility.ts" />
22842class vehicleCardDeck_MoreInfoModal {
22843    constructor() {
22844        this.getElements();
22845        this.addShowEventListener();
22846    }
22847    getElements() {
22848        this._titleElement = this.getModalElement('title');
22849        this._contentElement = this.getModalElement('text');
22850    }
22851    getModalElement(selectorValue) {
22852        const element = document.querySelector(`[data-modal-element="${selectorValue}"]`);
22853        return element;
22854    }
22855    addShowEventListener() {
22856        /* NOTE: this is calling Bootstrap events so we have to use jQuery */
22857        $(`[data-modal-element="wrapper"]`).on('show.bs.modal', (event) => {
22858            var _a, _b;
22859            /* Funky casting needed for Bootstrap event */
22860            const clickEvent = event;
22861            const modalTrigger = clickEvent.relatedTarget;
22862            const title = (_a = modalTrigger === null || modalTrigger === void 0 ? void 0 : modalTrigger.dataset) === null || _a === void 0 ? void 0 : _a.title;
22863            const content = (_b = modalTrigger === null || modalTrigger === void 0 ? void 0 : modalTrigger.dataset) === null || _b === void 0 ? void 0 : _b.content;
22864            if (!(content && this._contentElement)) {
22865                return event.preventDefault();
22866            }
22867            if (this._titleElement) {
22868                if (title) {
22869                    this._titleElement.innerHTML = title;
22870                }
22871                else {
22872                    this._titleElement.innerHTML = '';
22873                }
22874            }
22875            if (this._contentElement) {
22876                this._contentElement.innerHTML = DoUtility.DecodeHtml(content);
22877            }
22878        });
22879    }
22880}
22881
22882// EXTERNAL MODULE: ./src/components/spaCosmos/pagination/srpScrollType.ts
22883var vehicleCardDeck_srpScrollType = __webpack_require__(1560);
22884// EXTERNAL MODULE: ./src/infrastructure/vue/cosmosSrp/globalStore.ts + 11 modules
22885var vehicleCardDeck_cosmosSrp_globalStore = __webpack_require__(3551);
22886// EXTERNAL MODULE: ./src/core/enums/srpLayoutType.ts
22887var vehicleCardDeck_srpLayoutType = __webpack_require__(2491);
22888;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/skeletonLoaders/vehicleCardSkeleton.vue?vue&type=script&setup=true&lang=ts
22889
22890
22891const vehicleCardDeck_hoisted_1 = { class: "vehicle-card vehicle-card--mod skeleton" };
22892const vehicleCardDeck_hoisted_2 = ["src"];
22893
22894
22895
22896
22897const vehicleCardDeck_gridView = "/resources/vhcliaa/components/spaCosmos/skeletonLoaders/vehicle-card-skeleton-grid.svg";
22898const vehicleCardDeck_listView = "/resources/vhcliaa/components/spaCosmos/skeletonLoaders/vehicle-card-skeleton-list.svg";
22899/* harmony default export */ const vehicleCardDeck_vehicleCardSkeletonvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
22900    __name: 'vehicleCardSkeleton',
22901    props: {
22902        forceGridLayout: { type: Boolean, default: false }
22903    },
22904    setup(__props) {
22905        const props = __props;
22906        const toggleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService);
22907        const globalStore = (0,vehicleCardDeck_cosmosSrp_globalStore/* useGlobalStore */.o)();
22908        const skeletonImage = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
22909            return props.forceGridLayout || globalStore.currentLayout == vehicleCardDeck_srpLayoutType/* SrpLayoutType */._.Grid
22910                ? vehicleCardDeck_gridView
22911                : vehicleCardDeck_listView;
22912        });
22913        return (_ctx, _cache) => {
22914            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_hoisted_1, [
22915                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
22916                    class: "card-skeleton-image",
22917                    src: skeletonImage.value,
22918                    alt: "",
22919                    fetchpriority: "high"
22920                }, null, 8 /* PROPS */, vehicleCardDeck_hoisted_2)
22921            ]));
22922        };
22923    }
22924}));
22925
22926;// ./src/components/spaCosmos/skeletonLoaders/vehicleCardSkeleton.vue?vue&type=script&setup=true&lang=ts
22927 
22928// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
22928ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/skeletonLoaders/vehicleCardSkeleton.vue?vue&type=style&index=0&id=72f833e6&scoped=true&lang=scss
22929var vehicleCardDeck_vehicleCardSkeletonvue_type_style_index_0_id_72f833e6_scoped_true_lang_scss = __webpack_require__(7891);
22930;// ./src/components/spaCosmos/skeletonLoaders/vehicleCardSkeleton.vue?vue&type=style&index=0&id=72f833e6&scoped=true&lang=scss
22931
22932// EXTERNAL MODULE: ./node_modules/vue-loader/dist/exportHelper.js
22933var vehicleCardDeck_exportHelper = __webpack_require__(1535);
22934;// ./src/components/spaCosmos/skeletonLoaders/vehicleCardSkeleton.vue
22935
22936
22937
22938;
22939
22940
22941const vehicleCardDeck_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_vehicleCardSkeletonvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-72f833e6"]])
22942
22943/* harmony default export */ const vehicleCardDeck_vehicleCardSkeleton = (vehicleCardDeck_exports_);
22944// EXTERNAL MODULE: ./src/core/enums/industry.ts
22945var vehicleCardDeck_industry = __webpack_require__(8586);
22946;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/vehicleHighlights/vehicleHighlights.vue?vue&type=script&setup=true&lang=ts
22947
22948
22949const vehicleCardDeck_vehicleHighlightsvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-highlights" };
22950const vehicleCardDeck_vehicleHighlightsvue_type_script_setup_true_lang_ts_hoisted_2 = { class: "vehicle-highlights__list" };
22951const vehicleCardDeck_hoisted_3 = { class: "vehicle-highlights__item" };
22952const vehicleCardDeck_hoisted_4 = ["data-title", "data-content", "data-loc", "data-dotagging-element-order", "data-dotagging-element-text"];
22953const vehicleCardDeck_hoisted_5 = ["src", "alt", "title"];
22954const vehicleCardDeck_hoisted_6 = ["src"];
22955const vehicleCardDeck_hoisted_7 = ["innerHTML"];
22956const vehicleCardDeck_hoisted_8 = { class: "vehicle-highlights__disclaimer" };
22957const vehicleCardDeck_hoisted_9 = ["title", "data-title", "data-content", "data-loc", "data-dotagging-element-order", "data-dotagging-element-text"];
22958const vehicleCardDeck_hoisted_10 = { class: "highlights-disclaimer__label highlights-disclaimer__label--full" };
22959
22960
22961/* harmony default export */ const vehicleCardDeck_vehicleHighlightsvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
22962    __name: 'vehicleHighlights',
22963    props: {
22964        model: {},
22965        vin: {}
22966    },
22967    setup(__props) {
22968        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
22969        // Computed translation labels
22970        const vehicleHighlightsLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("VEHICLE_HIGHLIGHTS"));
22971        const viewDisclaimerLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("VIEW_DISCLAIMER"));
22972        const disclaimerLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("DISCLAIMER"));
22973        const props = __props;
22974        const vin = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.vin);
22975        let elementOrder = 0;
22976        function GetHighlightImageName(highlight) {
22977            return GetKebabCase(highlight) + "-sm.svg";
22978        }
22979        function GetImageSrc(highlight) {
22980            return props.model.FeatureIconPath + GetHighlightImageName(highlight);
22981        }
22982        function GetKebabCase(imageName) {
22983            let dashesAdded = imageName.replace(/[^0-9a-zA-Z]/g, "-");
22984            let repeatedDashesRemoved = dashesAdded.replace(/[-]{2,}/g, "-");
22985            let trailingDashesRemoved = repeatedDashesRemoved.replace(/-+$/g, "");
22986            let startingDashesRemoved = trailingDashesRemoved.charAt(0) === "-" ? trailingDashesRemoved.slice(1) : trailingDashesRemoved;
22987            return startingDashesRemoved.toLowerCase();
22988        }
22989        return (_ctx, _cache) => {
22990            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleHighlightsvue_type_script_setup_true_lang_ts_hoisted_1, [
22991                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("ul", vehicleCardDeck_vehicleHighlightsvue_type_script_setup_true_lang_ts_hoisted_2, [
22992                    ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.Highlights.slice(0, 6), (highlight, index) => {
22993                        return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("li", vehicleCardDeck_hoisted_3, [
22994                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
22995                                class: "vehicle-highlights__icon-wrapper vehicle-highlights__icon-wrapper--compressed stat-icon-link",
22996                                type: "button",
22997                                "data-toggle": "modal",
22998                                "data-target": "#moreInfoModal",
22999                                "aria-haspopup": "dialog",
23000                                "data-title": vehicleHighlightsLabel.value,
23001                                "data-content": highlight,
23002                                "data-loc": `available inventory:${vin.value}:${highlight}`,
23003                                "data-dotagging-event": "cta_interaction",
23004                                "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
23005                                "data-dotagging-event-action-result": "open",
23006                                "data-dotagging-event-action": "click",
23007                                "data-dotagging-element-order": (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* isRef */.i9)(elementOrder) //@ts-ignore
23008                                    ? elementOrder.value++ : elementOrder++,
23009                                "data-dotagging-element-type": "item_details",
23010                                "data-dotagging-element-subtype": "cta_icon",
23011                                "data-dotagging-element-text": highlight
23012                            }, [
23013                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23014                                    class: "vehicle-highlights__icon",
23015                                    src: GetImageSrc(highlight),
23016                                    alt: highlight,
23017                                    title: highlight,
23018                                    width: "25",
23019                                    height: "25",
23020                                    loading: "eager"
23021                                }, null, 8 /* PROPS */, vehicleCardDeck_hoisted_5)
23022                            ], 8 /* PROPS */, vehicleCardDeck_hoisted_4),
23023                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23024                                class: "vehicle-highlights__icon vehicle-highlights__icon--full",
23025                                src: GetImageSrc(highlight),
23026                                alt: "",
23027                                width: "25",
23028                                height: "25",
23029                                loading: "eager"
23030                            }, null, 8 /* PROPS */, vehicleCardDeck_hoisted_6),
23031                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", {
23032                                class: "vehicle-highlights__label vehicle-highlights__label--full",
23033                                innerHTML: highlight
23034                            }, null, 8 /* PROPS */, vehicleCardDeck_hoisted_7)
23035                        ]));
23036                    }), 256 /* UNKEYED_FRAGMENT */))
23037                ]),
23038                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_hoisted_8, [
23039                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
23040                        class: "highlights-disclaimer highlights-disclaimer__icon--image-mask stat-disclaim",
23041                        type: "button",
23042                        title: viewDisclaimerLabel.value,
23043                        "data-toggle": "modal",
23044                        "data-target": "#moreInfoModal",
23045                        "aria-haspopup": "dialog",
23046                        "data-title": disclaimerLabel.value,
23047                        "data-content": _ctx.model.DisclaimerText,
23048                        "data-loc": `available inventory:${vin.value}`,
23049                        "data-dotagging-event": "cta_interaction",
23050                        "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
23051                        "data-dotagging-event-action-result": "open",
23052                        "data-dotagging-event-action": "click",
23053                        "data-dotagging-element-order": (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* isRef */.i9)(elementOrder) //@ts-ignore
23054                            ? elementOrder.value++ : elementOrder++,
23055                        "data-dotagging-element-type": "item_details",
23056                        "data-dotagging-element-subtype": "cta_icon",
23057                        "data-dotagging-element-text": disclaimerLabel.value
23058                    }, [
23059                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_hoisted_10, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(disclaimerLabel.value), 1 /* TEXT */)
23060                    ], 8 /* PROPS */, vehicleCardDeck_hoisted_9)
23061                ])
23062            ]));
23063        };
23064    }
23065}));
23066
23067;// ./src/components/spaCosmos/vehicleCards/features/vehicleHighlights/vehicleHighlights.vue?vue&type=script&setup=true&lang=ts
23068 
23069;// ./src/components/spaCosmos/vehicleCards/features/vehicleHighlights/vehicleHighlights.vue
23070
23071
23072
23073const vehicleCardDeck_vehicleHighlights_exports_ = vehicleCardDeck_vehicleHighlightsvue_type_script_setup_true_lang_ts;
23074
23075/* harmony default export */ const vehicleCardDeck_vehicleHighlights = (vehicleCardDeck_vehicleHighlights_exports_);
23076;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/videoButton/videoButton.vue?vue&type=script&setup=true&lang=ts
23077
23078
23079const vehicleCardDeck_videoButtonvue_type_script_setup_true_lang_ts_hoisted_1 = ["id", "aria-label", "title", "data-loc", "show", "data-vi
23079deo-id", "data-target", "data-toggle"];
23080const vehicleCardDeck_videoButtonvue_type_script_setup_true_lang_ts_hoisted_2 = ["src", "alt"];
23081const vehicleCardDeck_videoButtonvue_type_script_setup_true_lang_ts_hoisted_3 = { class: "video-button__label" };
23082
23083
23084/* harmony default export */ const vehicleCardDeck_videoButtonvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23085    __name: 'videoButton',
23086    props: {
23087        model: {}
23088    },
23089    setup(__props) {
23090        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
23091        // Computed translation labels
23092        const videoLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("VIDEO"));
23093        const buttonId = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${props.model.VideoId}-${props.model.VehicleVin}`);
23094        const iframeVideoUrl = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return (_b = (_a = props.model.IframeVideoUrl) === null || _a === void 0 ? void 0 : _a.replace(/["']/g, "")) !== null && _b !== void 0 ? _b : ""; });
23095        const fordVideoUrl = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return (_b = (_a = props.model.FordVideoUrl) === null || _a === void 0 ? void 0 : _a.replace(/["']/g, "")) !== null && _b !== void 0 ? _b : ""; });
23096        const props = __props;
23097        return (_ctx, _cache) => {
23098            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("a", {
23099                id: buttonId.value,
23100                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["video-button btn stat-button-link", _ctx.model.VideoBtnClass]),
23101                rel: "nofollow",
23102                "aria-label": videoLabel.value,
23103                title: videoLabel.value,
23104                "data-loc": `available inventory:${_ctx.model.VehicleVin}`,
23105                "data-dotagging-event": "cta_interaction",
23106                "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
23107                "data-dotagging-event-action-result": "play",
23108                "data-dotagging-event-action": "click",
23109                "data-dotagging-element-order": "0",
23110                "data-dotagging-element-type": "item_details",
23111                "data-dotagging-element-subtype": "cta_icon",
23112                show: _ctx.model.IframeVideoUrl ? iframeVideoUrl.value : null,
23113                "data-video-id": _ctx.model.FordVideoUrl ? fordVideoUrl.value : null,
23114                "data-target": _ctx.model.FordVideoUrl ? '#evnVideoPlayerModal' : null,
23115                "data-toggle": _ctx.model.FordVideoUrl ? 'modal' : null
23116            }, [
23117                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23118                    class: "video-button__icon",
23119                    src: _ctx.model.VideoIconPath,
23120                    alt: _ctx.model.VideoImgAltText
23121                }, null, 8 /* PROPS */, vehicleCardDeck_videoButtonvue_type_script_setup_true_lang_ts_hoisted_2),
23122                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_videoButtonvue_type_script_setup_true_lang_ts_hoisted_3, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(videoLabel.value), 1 /* TEXT */)
23123            ], 10 /* CLASS, PROPS */, vehicleCardDeck_videoButtonvue_type_script_setup_true_lang_ts_hoisted_1));
23124        };
23125    }
23126}));
23127
23128;// ./src/components/spaCosmos/vehicleCards/features/videoButton/videoButton.vue?vue&type=script&setup=true&lang=ts
23129 
23130// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/videoButton/videoButton.vue?vue&type=style&index=0&id=9faa8a96&lang=scss&scoped=true
23131var vehicleCardDeck_videoButtonvue_type_style_index_0_id_9faa8a96_lang_scss_
23131scoped_true = __webpack_require__(3042);
23132;// ./src/components/spaCosmos/vehicleCards/features/videoButton/videoButton.vue?vue&type=style&index=0&id=9faa8a96&lang=scss&scoped=true
23133
23134;// ./src/components/spaCosmos/vehicleCards/features/videoButton/videoButton.vue
23135
23136
23137
23138;
23139
23140
23141const vehicleCardDeck_videoButton_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_videoButtonvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-9faa8a96"]])
23142
23143/* harmony default export */ const vehicleCardDeck_videoButton = (vehicleCardDeck_videoButton_exports_);
23144;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/windowSticker/windowSticker.vue?vue&type=script&setup=true&lang=ts
23145
23146
23147const vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_1 = ["aria-label", "title", "onclick", "data-vin", "data-loc"];
23148const vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_2 = ["aria-label"];
23149const vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_3 = { class: "window-sticker-button__label" };
23150const vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_4 = ["data-title", "data-content", "data-loc"];
23151const vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_5 = { class: "oem-hyundai__window-sticker-disclaimer--srp-card-disclaimer-button-icon" };
23152const vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_6 = ["src", "alt"];
23153
23154
23155/* harmony default export */ const vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23156    __name: 'windowSticker',
23157    props: {
23158        model: {}
23159    },
23160    setup(__props) {
23161        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
23162        // Computed translation labels
23163        const windowStickerLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("WINDOW_STICKER"));
23164        const hyundaiDisclaimerLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getComment("HYUNDAI_DISCLAIMER_WINDOW_STICKER"));
23165        const viewDisclaimerLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("VIEW_DISCLAIMER"));
23166        const disclaimerLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("DISCLAIMER"));
23167        const stickerDataLoc = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `available inventory:${props.model.VehicleVin}:window sticker`);
23168        const props = __props;
23169        function GetTaggingEvent() {
23170            if (props.model.IsSubaruDealer) {
23171                return "linkClick";
23172            }
23173            return null;
23174        }
23175        function GetTaggingValue() {
23176            if (props.model.IsSubaruDealer) {
23177                return "Window Sticker";
23178            }
23179            return null;
23180        }
23181        return (_ctx, _cache) => {
23182            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
23183                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["window-sticker", { 'oem-hyundai__window-sticker-disclaimer--srp-card-window-sticker': _ctx.model.IsHyundaiDealer }])
23184            }, [
23185                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* mergeProps */.v6)({
23186                    type: "button",
23187                    class: ["window-sticker-button windowSticker btn stat-button-link", { 'oem-hyundai__window-sticker-disclaimer--srp-card-window-sticker-button': _ctx.model.IsHyundaiDealer }],
23188                    "aria-label": windowStickerLabel.value,
23189                    title: windowStickerLabel.value,
23190                    onclick: _ctx.model.ClickEvent,
23191                    "data-vin": _ctx.model.VehicleVin,
23192                    "data-loc": stickerDataLoc.value,
23193                    "data-dotagging-event": "cta_interaction",
23194                    "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
23195                    "data-dotagging-event-action-result": "open",
23196                    "data-dotagging-element-type": "item_details",
23197                    "data-dotagging-element-subtype": "cta_button",
23198                    "data-tagging-item": "windowsticker"
23199                }, { 'data-tagging-event': GetTaggingEvent(),
23200                    'data-tagging-value': GetTaggingValue() }), [
23201                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", {
23202                        class: "window-sticker-button__icon fa fa-qrcode",
23203                        role: "img",
23204                        "aria-label": windowStickerLabel.value
23205                    }, null, 8 /* PROPS */, vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_2),
23206                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_3, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(windowStickerLabel.value), 1 /* TEXT */)
23207                ], 16 /* FULL_PROPS */, vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_1),
23208                (_ctx.model.IsHyundaiDealer)
23209                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("button", {
23210                        key: 0,
23211                        type: "button",
23212                        class: "oem-hyundai__window-sticker-disclaimer--srp-card-disclaimer-button btn stat-disclaim",
23213                        "data-toggle": "modal",
23214                        "data-target": "#moreInfoModal",
23215                        "aria-haspopup": "dialog",
23216                        "data-title": disclaimerLabel.value,
23217                        "data-content": hyundaiDisclaimerLabel.value,
23218                        "data-loc": stickerDataLoc.value,
23219                        "data-dotagging-event": "cta_interaction",
23220                        "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
23221                        "data-dotagging-event-action": "click",
23222                        "data-dotagging-event-action-result": "popup",
23223                        "data-dotagging-element-type": "item_details",
23224                        "data-dotagging-element-order": "0",
23225                        "data-dotagging-element-subtype": "cta_icon"
23226                    }, [
23227                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_5, [
23228                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23229                                src: _ctx.model.DisclaimerIconPath,
23230                                alt: viewDisclaimerLabel.value,
23231                                class: "oem-hyundai__window-sticker-disclaimer--srp-card-disclaimer-button-icon-image"
23232                            }, null, 8 /* PROPS */, vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_6)
23233                        ])
23234                    ], 8 /* PROPS */, vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts_hoisted_4))
23235                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
23236            ], 2 /* CLASS */));
23237        };
23238    }
23239}));
23240
23241;// ./src/components/spaCosmos/vehicleCards/features/windowSticker/windowSticker.vue?vue&type=script&setup=true&lang=ts
23242 
23243// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
23243ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/windowSticker/windowSticker.vue?vue&type=style&index=0&id=7ddcc9ee&lang=scss&scoped=true
23244var vehicleCardDeck_windowStickervue_type_style_index_0_id_7ddcc9ee_lang_scss_scoped_true = __webpack_require__(4693);
23245;// ./src/components/spaCosmos/vehicleCards/features/windowSticker/windowSticker.vue?vue&type=style&index=0&id=7ddcc9ee&lang=scss&scoped=true
23246
23247;// ./src/components/spaCosmos/vehicleCards/features/windowSticker/windowSticker.vue
23248
23249
23250
23251;
23252
23253
23254const vehicleCardDeck_windowSticker_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_windowStickervue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-7ddcc9ee"]])
23255
23256/* harmony default export */ const vehicleCardDeck_windowSticker = (vehicleCardDeck_windowSticker_exports_);
23257;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/vehicleFeatures/vehicleFeatures.vue?vue&type=script&setup=true&lang=ts
23258
23259
23260const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_1 = {
23261    key: 0,
23262    class: "vehicle-features__highlights"
23263};
23264const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_2 = { class: "vehicle-features__heading vehicle-features__heading--highlights" };
23265const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_3 = {
23266    key: 1,
23267    class: "vehicle-features__more-details"
23268};
23269const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_4 = { class: "vehicle-features__heading vehicle-features__heading--more-details" };
23270const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_5 = { class: "vehicle-more-details" };
23271const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_6 = ["data-vehicle-comments"];
23272const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_7 = { class: "vehicle-comments vehicle-comments--compressed" };
23273const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_8 = ["aria-label", "title", "data-vin", "data-loc", "data-dotagging-element-text"];
23274const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_9 = ["src", "alt"];
23275const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_10 = { class: "comments-button__label" };
23276const vehicleCardDeck_hoisted_11 = { class: "vehicle-comments vehicle-comments--full" };
23277const vehicleCardDeck_hoisted_12 = { class: "vehicle-comments__heading" };
23278const vehicleCardDeck_hoisted_13 = ["innerHTML"];
23279const vehicleCardDeck_hoisted_14 = ["data-vin", "data-loc"];
23280const vehicleCardDeck_hoisted_15 = {
23281    key: 1,
23282    class: "vehicle-more-details__video"
23283};
23284const vehicleCardDeck_hoisted_16 = {
23285    key: 2,
23286    class: "vehicle-more-details__window-sticker"
23287};
23288
23289
23290
23291
23292
23293/* harmony default export */ const vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23294    __name: 'vehicleFeatures',
23295    props: {
23296        model: {}
23297    },
23298    setup(__props) {
23299        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
23300        // Computed translation labels
23301        const featuresLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("FEATURES"));
23302        const moreDetailsLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("MORE_DETAILS"));
23303        const commentsLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("COMMENTS"));
23304        const dealerCommentsLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("DEALER_COMMENTS"));
23305        const moreLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("MORE"));
23306        const commentDataLoc = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `available inventory:${props.model.VehicleVin}`);
23307        const props = __props;
23308        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => {
23309            addCommentsModalEventListener();
23310        });
23311        function addCommentsModalEventListener() {
23312            $('#commentsModal').on('show.bs.modal', function (e) {
23313                /* Funky casting needed for Bootstrap event */
23314                const clickEvent = e;
23315                const eventTrigger = clickEvent.relatedTarget;
23316                const buttonVin = eventTrigger.dataset.vin;
23317                const modalContent = this.querySelector('.model-content__text');
23318                const comments = (document.querySelector(`[data-vin="${buttonVin}"] [data-vehicle-comments]`));
23319                if (comments && modalContent) {
23320                    /* Comments are encoded on the back end since they could contain HTML elements, quotes, and other special characters that could potentially break the page */
23321                    const commentsHtmlEncoded = comments.dataset.vehicleComments;
23322                    const commentsHtmlDecoded = DoUtility.DecodeHtml(commentsHtmlEncoded);
23323                    modalContent.innerHTML = commentsHtmlDecoded;
23324                }
23325            });
23326        }
23327        function getCommentsIconPath() {
23328            return `${window.location.origin}/${props.model.DealerCommentsIconPath}`;
23329        }
23330        return (_ctx, _cache) => {
23331            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
23332                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-features", { 'vehicle-features--highlights-only': _ctx.model.ShowHighlightsOnly,
23333                        'vehicle-features--buttons-only': _ctx.model.ShowIconButtonsOnly,
23334                        'vehicle-features--all': _ctx.model.ShowHighlightsAndButtons,
23335                        'oem-hyundai__window-sticker-disclaimer--srp-card-vehicle-features': _ctx.model.IsHyundai }])
23336            }, [
23337                (_ctx.model.ShowHighlights)
23338                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_1, [
23339                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h4", vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_2, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(featuresLabel.value), 1 /* TEXT */),
23340                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleHighlights, {
23341                            model: _ctx.model.VehicleHighlightsModel,
23342                            vin: _ctx.model.VehicleVin
23343                        }, null, 8 /* PROPS */, ["model", "vin"])
23344                    ]))
23345                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
23346                (_ctx.model.ShowFeatureDetails)
23347                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_3, [
23348                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h4", vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_4, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(moreDetailsLabel.value), 1 /* TEXT */),
23349                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_5, [
23350                            (_ctx.model.ShowComments)
23351                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
23352                                    key: 0,
23353                                    class: "vehicle-more-details__comments",
23354                                    "data-vehicle-comments": _ctx.model.VehicleC
23354ommentsEncoded
23355                                }, [
23356                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_7, [
23357                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
23358                                            type: "button",
23359                                            class: "comments-button comments-button--comments btn stat-icon-link",
23360                                            "aria-label": commentsLabel.value,
23361                                            title: commentsLabel.value,
23362                                            "data-vin": _ctx.model.VehicleVin,
23363                                            "data-loc": commentDataLoc.value,
23364                                            "data-toggle": "modal",
23365                                            "data-target": "#commentsModal",
23366                                            "data-dotagging-event": "cta_interaction",
23367                                            "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
23368                                            "data-dotagging-event-action-result": "open",
23369                                            "data-dotagging-event-action": "click",
23370                                            "data-dotagging-element-order": "0",
23371                                            "data-dotagging-element-type": "item_details",
23372                                            "data-dotagging-element-subtype": "cta_icon",
23373                                            "data-dotagging-element-text": commentsLabel.value
23374                                        }, [
23375                                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23376                                                src: getCommentsIconPath(),
23377                                                class: "comments-button__image",
23378                                                alt: commentsLabel.value
23379                                            }, null, 8 /* PROPS */, vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_9),
23380                                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_10, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(commentsLabel.value), 1 /* TEXT */)
23381                                        ], 8 /* PROPS */, vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_8)
23382                                    ]),
23383                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_hoisted_11, [
23384                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h5", vehicleCardDeck_hoisted_12, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(dealerCommentsLabel.value), 1 /* TEXT */),
23385                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
23386                                            class: "vehicle-comments__text",
23387                                            innerHTML: _ctx.model.InvComments
23388                                        }, null, 8 /* PROPS */, vehicleCardDeck_hoisted_13),
23389                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
23390                                            type: "button",
23391                                            class: "comments-button comments-button--more stat-text-link",
23392                                            "data-vin": _ctx.model.VehicleVin,
23393                                            "data-loc": commentDataLoc.value,
23394                                            "data-toggle": "modal",
23395                                            "data-target": "#commentsModal"
23396                                        }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(moreLabel.value) + "... ", 9 /* TEXT, PROPS */, vehicleCardDeck_hoisted_14)
23397                                    ])
23398                                ], 8 /* PROPS */, vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_6))
23399                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
23400                            (_ctx.model.ShowVideoButton)
23401                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_hoisted_15, [
23402                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_videoButton, {
23403                                        model: _ctx.model.VideoButtonModel
23404                                    }, null, 8 /* PROPS */, ["model"])
23405                                ]))
23406                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
23407                            (_ctx.model.ShowWindowSticker)
23408                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_hoisted_16, [
23409                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_windowSticker, {
23410                                        model: _ctx.model.WindowStickersModel
23411                                    }, null, 8 /* PROPS */, ["model"])
23412                                ]))
23413                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
23414                        ])
23415                    ]))
23416                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
23417            ], 2 /* CLASS */));
23418        };
23419    }
23420}));
23421
23422;// ./src/components/spaCosmos/vehicleCards/features/vehicleFeatures/vehicleFeatures.vue?vue&type=script&setup=true&lang=ts
23423 
23424// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
23424ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/vehicleFeatures/vehicleFeatures.vue?vue&type=style&index=0&id=c4c8aa2a&lang=scss&scoped=true
23425var vehicleCardDeck_vehicleFeaturesvue_type_style_index_0_id_c4c8aa2a_lang_scss_scoped_true = __webpack_require__(1404);
23426;// ./src/components/spaCosmos/vehicleCards/features/vehicleFeatures/vehicleFeatures.vue?vue&type=style&index=0&id=c4c8aa2a&lang=scss&scoped=true
23427
23428;// ./src/components/spaCosmos/vehicleCards/features/vehicleFeatures/vehicleFeatures.vue
23429
23430
23431
23432;
23433
23434
23435const vehicleCardDeck_vehicleFeatures_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_vehicleFeaturesvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-c4c8aa2a"]])
23436
23437/* harmony default export */ const vehicleCardDeck_vehicleFeatures = (vehicleCardDeck_vehicleFeatures_exports_);
23438// EXTERNAL MODULE: ./src/components/spaCosmos/utilities/spaBreakpoints.ts
23439var vehicleCardDeck_spaBreakpoints = __webpack_require__(3402);
23440;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleEta/vehicleEtaModel.ts
23441class vehicleCardDeck_VehicleEtaModel {
23442}
23443
23444;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleEta/vehicleEta.vue?vue&type=script&setup=true&lang=ts
23445
23446
23447const vehicleCardDeck_vehicleEtavue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-eta-icon" };
23448const vehicleCardDeck_vehicleEtavue_type_script_setup_true_lang_ts_hoisted_2 = ["src", "alt"];
23449
23450
23451/* harmony default export */ const vehicleCardDeck_vehicleEtavue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23452    __name: 'vehicleEta',
23453    props: {
23454        model: {}
23455    },
23456    setup(__props) {
23457        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
23458        // computed translation label
23459        const viewDisclaimerLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("VIEW_DISCLAIMER")}`);
23460        const props = __props;
23461        return (_ctx, _cache) => {
23462            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
23463                (_ctx.model.ShowEta)
23464                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 0 }, [
23465                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.EtaDisplay), 1 /* TEXT */)
23466                    ], 64 /* STABLE_FRAGMENT */))
23467                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
23468                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleEtavue_type_script_setup_true_lang_ts_hoisted_1, [
23469                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23470                        src: _ctx.model.DisclaimerIconPath,
23471                        alt: viewDisclaimerLabel.value,
23472                        class: "vehicle-eta-icon__image"
23473                    }, null, 8 /* PROPS */, vehicleCardDeck_vehicleEtavue_type_script_setup_true_lang_ts_hoisted_2)
23474                ])
23475            ], 64 /* STABLE_FRAGMENT */));
23476        };
23477    }
23478}));
23479
23480;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleEta/vehicleEta.vue?vue&type=script&setup=true&lang=ts
23481 
23482;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleEta/vehicleEta.vue
23483
23484
23485
23486const vehicleCardDeck_vehicleEta_exports_ = vehicleCardDeck_vehicleEtavue_type_script_setup_true_lang_ts;
23487
23488/* harmony default export */ const vehicleCardDeck_vehicleEta = (vehicleCardDeck_vehicleEta_exports_);
23489// EXTERNAL MODULE: ./src/components/spaCosmos/utilities/SpaHelpers.ts
23490var vehicleCardDeck_SpaHelpers = __webpack_require__(4423);
23491;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleStatusInfo/vehicleStatusInfoModel.ts
23492class vehicleCardDeck_VehicleStatusInfoModel {
23493}
23494
23495;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleStatusInfo/vehicleStatusInfo.vue?vue&type=script&setup=true&lang=ts
23496
23497
23498const vehicleCardDeck_vehicleStatusInfovue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-status-info-icon" };
23499const vehicleCardDeck_vehicleStatusInfovue_type_script_setup_true_lang_ts_hoisted_2 = ["src", "alt"];
23500
23501
23502/* harmony default export */ const vehicleCardDeck_vehicleStatusInfovue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23503    __name: 'vehicleStatusInfo',
23504    props: {
23505        model: {}
23506    },
23507    setup(__props) {
23508        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
23509        // computed translation label
23510        const viewDisclaimerLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("VIEW_DISCLAIMER")}`);
23511        const props = __props;
23512        return (_ctx, _cache) => {
23513            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleStatusInfovue_type_script_setup_true_lang_ts_hoisted_1, [
23514                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23515                    src: _ctx.model.IconPath,
23516                    alt: viewDisclaimerLabel.value,
23517                    class: "vehicle-status-info-icon__image"
23518                }, null, 8 /* PROPS */, vehicleCardDeck_vehicleStatusInfovue_type_script_setup_true_lang_ts_hoisted_2)
23519            ]));
23520        };
23521    }
23522}));
23523
23524;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleStatusInfo/vehicleStatusInfo.vue?vue&type=script&setup=true&lang=ts
23525 
23526;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleStatusInfo/vehicleStatusInfo.vue
23527
23528
23529
23530const vehicleCardDeck_vehicleStatusInfo_exports_ = vehicleCardDeck_vehicleStatusInfovue_type_script_setup_true_lang_ts;
23531
23532/* harmony default export */ const vehicleCardDeck_vehicleStatusInfo = (vehicleCardDeck_vehicleStatusInfo_exports_);
23533;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleStatus.vue?vue&type=script&setup=true&lang=ts
23534
23535
23536const vehicleCardDeck_vehicleStatusvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-status__label" };
23537const vehicleCardDeck_vehicleStatusvue_type_script_setup_true_lang_ts_hoisted_2 = ["innerHTML"];
23538const vehicleCardDeck_vehicleStatusvue_type_script_setup_true_lang_ts_hoisted_3 = ["innerHTML"];
23539
23540
23541
23542
23543
23544/* harmony default export */ const vehicleCardDeck_vehicleStatusvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23545    __name: 'vehicleStatus',
23546    props: {
23547        model: {}
23548    },
23549    setup(__props) {
23550        const props = __props;
23551        function getVehicleEtaModel() {
23552            const vEtaModel = new vehicleCardDeck_VehicleEtaModel();
23553            vEtaModel.DisclaimerIconPath = props.model.DisclaimerIconPath;
23554            vEtaModel.EtaDisplay = props.model.EtaDisplay;
23555            vEtaModel.ShowEta = props.model.ShowEta;
23556            return vEtaModel;
23557        }
23558        function getVehicleStatusInfo() {
23559            const vStatusInfoModel = new vehicleCardDeck_VehicleStatusInfoModel();
23560            vStatusInfoModel.IconPath = props.model.DisclaimerIconPath;
23561            return vStatusInfoModel;
23562        }
23563        return (_ctx, _cache) => {
23564            return (_ctx.model.HasStatusInfo)
23565                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("button", (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* mergeProps */.v6)({
23566                    key: 0,
23567                    type: "button",
23568                    class: ["vehicle-status vehicle-status--button stat-button-link", `vehicle-status--${_ctx.model.CornerType}`]
23569                }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_SpaHelpers/* SpaHelpers */.A).ParseHtmlAttrs(_ctx.model.ModalAttrs), {
23570                    "data-loc": "available inventory",
23571                    "data-dotagging-event": "cta_interaction",
23572                    "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
23573                    "data-dotagging-event-action": "click",
23574                    "data-dotagging-event-action-result": "popup",
23575                    "data-dotagging-element-type": "item_details",
23576                    "data-dotagging-element-order": "0",
23577                    "data-dotagging-element-subtype": "cta_button"
23578                }), [
23579                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleStatusvue_type_script_setup_true_lang_ts_hoisted_1, [
23580                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("text", {
23581                            innerHTML: _ctx.model.StatusText
23582                        }, null, 8 /* PROPS */, vehicleCardDeck_vehicleStatusvue_type_script_setup_true_lang_ts_hoisted_2),
23583                        (_ctx.model.HasVehicleEtaHtml)
23584                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_vehicleEta, {
23585                                key: 0,
23586                                model: getVehicleEtaModel()
23587                            }, null, 8 /* PROPS */, ["model"]))
23588                            : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_vehicleStatusInfo, {
23589                                key: 1,
23590                                model: getVehicleStatusInfo()
23591                            }, null, 8 /* PROPS */, ["model"]))
23592                    ])
23593                ], 16 /* FULL_PROPS */))
23594                : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
23595                    key: 1,
23596                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-status vehicle-status--badge", `vehicle-status--${_ctx.model.CornerType}`])
23597                }, [
23598                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", {
23599                        class: "vehicle-status__label",
23600                        innerHTML: _ctx.model.StatusText
23601                    }, null, 8 /* PROPS */, vehicleCardDeck_vehicleStatusvue_type_script_setup_true_lang_ts_hoisted_3)
23602                ], 2 /* CLASS */));
23603        };
23604    }
23605}));
23606
23607;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleStatus.vue?vue&type=script&setup=true&lang=ts
23608 
23609;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleStatus/vehicleStatus.vue
23610
23611
23612
23613const vehicleCardDeck_vehicleStatus_exports_ = vehicleCardDeck_vehicleStatusvue_type_script_setup_true_lang_ts;
23614
23615/* harmony default export */ const vehicleCardDeck_vehicleStatus = (vehicleCardDeck_vehicleStatus_exports_);
23616;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleDetail.vue?vue&type=script&setup=true&lang=ts
23617
23618
23619const vehicleCardDeck_recreationalVehicleDetailvue_type_script_setup_true_lang_ts_hoisted_1 = ["src"];
23620const vehicleCardDeck_recreationalVehicleDetailvue_type_script_setup_true_lang_ts_hoisted_2 = ["innerHTML"];
23621/* harmony default export */ const vehicleCardDeck_recreationalVehicleDetailvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23622    __name: 'recreationalVehicleDetail',
23623    props: {
23624        model: {}
23625    },
23626    setup(__props) {
23627        const props = __props;
23628        return (_ctx, _cache) => {
23629            return (_ctx.model.showDetail)
23630                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
23631                    key: 0,
23632                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(`rv-detail rv-detail--${_ctx.model.classSuffix}`)
23633                }, [
23634                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
23635                        class: "rv-detail-icon",
23636                        style: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeStyle */.Tr)(`--img-url: url(${_ctx.model.icon})`)
23637                    }, [
23638                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23639                            class: "rv-detail-icon__image",
23640                            src: _ctx.model.icon,
23641                            alt: ""
23642                        }, null, 8 /* PROPS */, vehicleCardDeck_recreationalVehicleDetailvue_type_script_setup_true_lang_ts_hoisted_1)
23643                    ], 4 /* STYLE */),
23644                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", {
23645                        class: "rv-detail__label",
23646                        innerHTML: _ctx.model.label
23647                    }, null, 8 /* PROPS */, vehicleCardDeck_recreationalVehicleDetailvue_type_script_setup_true_lang_ts_hoisted_2)
23648                ], 2 /* CLASS */))
23649                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true);
23650        };
23651    }
23652}));
23653
23654;// ./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleDetail.vue?vue&type=script&setup=true&lang=ts
23655 
23656// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
23656ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleDetail.vue?vue&type=style&index=0&id=8a43e908&lang=scss&scoped=true
23657var vehicleCardDeck_recreationalVehicleDetailvue_type_style_index_0_id_8a43e908_lang_scss_scoped_true = __webpack_require__(2908);
23658;// ./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleDetail.vue?vue&type=style&index=0&id=8a43e908&lang=scss&scoped=true
23659
23660;// ./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleDetail.vue
23661
23662
23663
23664;
23665
23666
23667const vehicleCardDeck_recreationalVehicleDetail_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_recreationalVehicleDetailvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-8a43e908"]])
23668
23669/* harmony default export */ const vehicleCardDeck_recreationalVehicleDetail = (vehicleCardDeck_recreationalVehicleDetail_exports_);
23670;// ./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleDetailModel.ts
23671class vehicleCardDeck_RecreationalVehicleDetailModel {
23672}
23673
23674;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleFeatures.vue?vue&type=script&setup=true&lang=ts
23675
23676
23677const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "rv-features" };
23678const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_2 = {
23679    key: 0,
23680    class: "rv-specs rv-specs--status"
23681};
23682const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_3 = {
23683    key: 1,
23684    class: "rv-mileage"
23685};
23686const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_4 = { class: "rv-location-icon" };
23687const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_5 = ["src"];
23688const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_6 = { class: "rv-location__location-name" };
23689const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_7 = {
23690    key: 1,
23691    class: "rv-specs rv-specs--details"
23692};
23693const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_8 = { class: "rv-details" };
23694const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_9 = {
23695    key: 0,
23696    class: "rv-floorplan"
23697};
23698const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_10 = ["src", "alt"];
23699const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_11 = ["href"];
23700
23701
23702
23703
23704
23705
23706
23707
23708const vehicleCardDeck_iconPath = 'https://cdn.dealeron.com/static/industry-automotive/icons/features/';
23709/* harmony default export */ const vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23710    __name: 'recreationalVehicleFeatures',
23711    props: {
23712        model: {}
23713    },
23714    setup(__props) {
23715        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
23716        const globalStore = (0,vehicleCardDeck_cosmosSrp_globalStore/* useGlobalStore */.o)();
23717        const toggleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService);
23718        const props = __props;
23719        const locationIconPath = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(`${vehicleCardDeck_iconPath}fa-sharp-location-dot.svg`);
23720        const sleepsLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("SLEEPS")}`);
23721        const longLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("LONG")}`);
23722        const viewFloorplanLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("VIEW_FLOORPLAN")}`);
23723        const floorplanDiagramLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("FLOORPLAN_DIAGRAM")}`);
23724        const showStatusRow = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.model.ShowStatus || props.model.ShowMileage || props.model.ShowDealerLocatedAt);
23725        const showDealerLocatedAt = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
23726            const name = props.model.VehicleLocationName;
23727            return !!(name && name.trim().length > 0);
23728        });
23729        const rvDetails = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
23730            var _a, _b, _c;
23731            const details = [];
23732            const sleeps = new vehicleCardDeck_RecreationalVehicleDetailModel();
23733            const length = new vehicleCardDeck_RecreationalVehicleDetailModel();
23734            const weight = new vehicleCardDeck_RecreationalVehicleDetailModel();
23735            const features = new vehicleCardDeck_RecreationalVehicleDetailModel();
23736            sleeps.label = `${sleepsLabel.value} ${(_a = props.model.RvInfoViewModel.Sleeps) !== null && _a !== void 0 ? _a : ""}`;
23737            sleeps.classSuffix = "sleeps";
23738            sleeps.showDetail = props.model.RvInfoViewModel.ShowSleeps;
23739            sleeps.icon = `${vehicleCardDeck_iconPath}beds.svg`;
23740            length.label = `${(_b = props.model.Length) !== null && _b !== void 0 ? _b : ""} ${longLabel.value}`;
23741            length.classSuffix = "length";
23742            length.showDetail = props.model.ShowLength;
23743            length.icon = `${vehicleCardDeck_iconPath}length.svg`;
23744            weight.label = (_c = props.model.RvInfoViewModel.Weight) !== null && _c !== void 0 ? _c : "";
23745            weight.classSuffix = "weight";
23746            weight.showDetail = props.model.RvInfoViewModel.ShowWeight;
23747            weight.icon = `${vehicleCardDeck_iconPath}dry-weight.svg`;
23748            features.label = getFeaturesText(props.model.Features);
23749            features.classSuffix = "features";
23750            features.showDetail = props.model.RvInfoViewModel.ShowRvFeatures;
23751            features.icon = `${vehicleCardDeck_iconPath}floorplan.svg`;
23752            details.push(sleeps, length, weight, features);
23753            return details;
23754        });
23755        function getFeaturesText(features) {
23756            var _a;
23757            return (_a = features === null || features === void 0 ? void 0 : features.slice(0, 5).join(", ")) !== null && _a !== void 0 ? _a : "";
23758        }
23759        const showFloorplanImage = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
23760        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => {
23761            addResizeObserver();
23762        });
23763        function addResizeObserver() {
23764            const resizeObserver = new ResizeObserver((entries) => {
23765                showFloorplanImage.value = globalStore.currentLayout === vehicleCardDeck_srpLayoutType/* SrpLayoutType */._.List && entries[0].c
23765ontentBoxSize[0].inlineSize >= vehicleCardDeck_spaBreakpoints/* SpaBreakpoints */.h.breakpoint1533;
23766            });
23767            resizeObserver.observe(document.documentElement);
23768        }
23769        return (_ctx, _cache) => {
23770            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_1, [
23771                (showStatusRow.value)
23772                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_2, [
23773                        (_ctx.model.ShowStatus)
23774                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_vehicleStatus, {
23775                                key: 0,
23776                                model: _ctx.model.VehicleStatusModel
23777                            }, null, 8 /* PROPS */, ["model"]))
23778                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
23779                        (_ctx.model.ShowMileage)
23780                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_3, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.Mileage), 1 /* TEXT */))
23781                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
23782                        (showDealerLocatedAt.value)
23783                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
23784                                key: 2,
23785                                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["rv-location", `rv-location--${_ctx.model.CornerType}`]),
23786                                style: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeStyle */.Tr)({ '--svg-url': `url(${locationIconPath.value})` })
23787                            }, [
23788                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_4, [
23789                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23790                                        src: locationIconPath.value,
23791                                        class: "rv-location-icon__image",
23792                                        alt: ""
23793                                    }, null, 8 /* PROPS */, vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_5)
23794                                ]),
23795                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_6, [
23796                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleLocationName), 1 /* TEXT */)
23797                                ])
23798                            ], 6 /* CLASS, STYLE */))
23799                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
23800                    ]))
23801                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
23802                (_ctx.model.ShowRvDetails)
23803                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_7, [
23804                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_8, [
23805                            ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(rvDetails.value, (detail, index) => {
23806                                return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_recreationalVehicleDetail, {
23807                                    key: detail.classSuffix,
23808                                    model: detail
23809                                }, null, 8 /* PROPS */, ["model"]));
23810                            }), 128 /* KEYED_FRAGMENT */))
23811                        ]),
23812                        (_ctx.model.RvInfoViewModel.ShowFloorplan)
23813                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_9, [
23814                                (showFloorplanImage.value)
23815                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("img", {
23816                                        key: 0,
23817                                        src: _ctx.model.RvInfoViewModel.FloorplanImage,
23818                                        class: "rv-floorplan__image",
23819                                        alt: floorplanDiagramLabel.value
23820                                    }, null, 8 /* PROPS */, vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_10))
23821                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
23822                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("a", {
23823                                    href: _ctx.model.RvInfoViewModel.FloorplanLink,
23824                                    class: "rv-floorplan__link stat-text-link",
23825                                    "data-loc": "available inventory"
23826                                }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(viewFloorplanLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_11)
23827                            ]))
23828                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
23829                    ]))
23830                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
23831            ]));
23832        };
23833    }
23834}));
23835
23836;// ./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleFeatures.vue?vue&type=script&setup=true&lang=ts
23837 
23838// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
23838ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleFeatures.vue?vue&type=style&index=0&id=5de90bdd&lang=scss&scoped=true
23839var vehicleCardDeck_recreationalVehicleFeaturesvue_type_style_index_0_id_5de90bdd_lang_scss_scoped_true = __webpack_require__(7493);
23840;// ./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleFeatures.vue?vue&type=style&index=0&id=5de90bdd&lang=scss&scoped=true
23841
23842;// ./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleFeatures.vue
23843
23844
23845
23846;
23847
23848
23849const vehicleCardDeck_recreationalVehicleFeatures_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_recreationalVehicleFeaturesvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-5de90bdd"]])
23850
23851/* harmony default export */ const vehicleCardDeck_recreationalVehicleFeatures = (vehicleCardDeck_recreationalVehicleFeatures_exports_);
23852;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/oemVehicleFeatures/oemVehicleFeatures.vue?vue&type=script&setup=true&lang=ts
23853
23854
23855const vehicleCardDeck_oemVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "oem-vehicle-feature" };
23856const vehicleCardDeck_oemVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_2 = ["src", "alt"];
23857const vehicleCardDeck_oemVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_3 = { class: "oem-vehicle-feature__text" };
23858
23859
23860
23861/* harmony default export */ const vehicleCardDeck_oemVehicleFeaturesvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23862    __name: 'oemVehicleFeatures',
23863    props: {
23864        model: {}
23865    },
23866    setup(__props) {
23867        const globalStore = (0,vehicleCardDeck_cosmosSrp_globalStore/* useGlobalStore */.o)();
23868        //Checks the current Layout, default to Grid
23869        const isListView = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
23870            return globalStore.currentLayout === vehicleCardDeck_srpLayoutType/* SrpLayoutType */._.List;
23871        });
23872        const props = __props;
23873        return (_ctx, _cache) => {
23874            return (_ctx.model.ShowOemHighlights)
23875                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
23876                    key: 0,
23877                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["oem-vehicle-features", { 'list-view': isListView.value }])
23878                }, [
23879                    ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.OemFeatureHighlights, (highlight) => {
23880                        return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_oemVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_1, [
23881                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
23882                                class: "oem-vehicle-feature__icon",
23883                                src: highlight.IconPath,
23884                                alt: highlight.IconAltText
23885                            }, null, 8 /* PROPS */, vehicleCardDeck_oemVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_2),
23886                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_oemVehicleFeaturesvue_type_script_setup_true_lang_ts_hoisted_3, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(highlight.FeatureText), 1 /* TEXT */)
23887                        ]));
23888                    }), 256 /* UNKEYED_FRAGMENT */))
23889                ], 2 /* CLASS */))
23890                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true);
23891        };
23892    }
23893}));
23894
23895;// ./src/components/spaCosmos/vehicleCards/features/oemVehicleFeatures/oemVehicleFeatures.vue?vue&type=script&setup=true&lang=ts
23896 
23897// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
23897ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/oemVehicleFeatures/oemVehicleFeatures.vue?vue&type=style&index=0&id=718b1078&lang=scss&scoped=true
23898var vehicleCardDeck_oemVehicleFeaturesvue_type_style_index_0_id_718b1078_lang_scss_scoped_true = __webpack_require__(7827);
23899;// ./src/components/spaCosmos/vehicleCards/features/oemVehicleFeatures/oemVehicleFeatures.vue?vue&type=style&index=0&id=718b1078&lang=scss&scoped=true
23900
23901;// ./src/components/spaCosmos/vehicleCards/features/oemVehicleFeatures/oemVehicleFeatures.vue
23902
23903
23904
23905;
23906
23907
23908const vehicleCardDeck_oemVehicleFeatures_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_oemVehicleFeaturesvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-718b1078"]])
23909
23910/* harmony default export */ const vehicleCardDeck_oemVehicleFeatures = (vehicleCardDeck_oemVehicleFeatures_exports_);
23911;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/features/features.vue?vue&type=script&setup=true&lang=ts
23912
23913
23914
23915
23916
23917
23918
23919
23920/* harmony default export */ const vehicleCardDeck_featuresvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23921    __name: 'features',
23922    props: {
23923        vehicleFeaturesModel: {},
23924        rvFeaturesModel: {},
23925        oemVehicleFeaturesModel: {},
23926        showRvDetails: { type: Boolean }
23927    },
23928    setup(__props) {
23929        const globalStore = (0,vehicleCardDeck_cosmosSrp_globalStore/* useGlobalStore */.o)();
23930        const isRvIndustry = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => globalStore.getIndustry == vehicleCardDeck_industry/* Industry */.j.RecreationalVehicles);
23931        const props = __props;
23932        return (_ctx, _cache) => {
23933            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
23934                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("Features.vue"),
23935                (isRvIndustry.value && _ctx.showRvDetails)
23936                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_recreationalVehicleFeatures, {
23937                        key: 0,
23938                        model: _ctx.rvFeaturesModel
23939                    }, null, 8 /* PROPS */, ["model"]))
23940                    : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 1 }, [
23941                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleFeatures, { model: _ctx.vehicleFeaturesModel }, null, 8 /* PROPS */, ["model"]),
23942                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_oemVehicleFeatures, { model: _ctx.oemVehicleFeaturesModel }, null, 8 /* PROPS */, ["model"])
23943                    ], 64 /* STABLE_FRAGMENT */))
23944            ], 2112 /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */));
23945        };
23946    }
23947}));
23948
23949;// ./src/components/spaCosmos/vehicleCards/features/features.vue?vue&type=script&setup=true&lang=ts
23950 
23951;// ./src/components/spaCosmos/vehicleCards/features/features.vue
23952
23953
23954
23955const vehicleCardDeck_features_exports_ = vehicleCardDeck_featuresvue_type_script_setup_true_lang_ts;
23956
23957/* harmony default export */ const vehicleCardDeck_features = (vehicleCardDeck_features_exports_);
23958;// ./src/components/spaCosmos/vehicleCards/features/rvFeatures/recreationalVehicleFeaturesModel.ts
23959class vehicleCardDeck_RecreationalVehicleFeaturesModel {
23960}
23961
23962;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleCompareButton/vehicleCompareButton.vue?vue&type=script&setup=true&lang=ts
23963
23964
23965const vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-compare-button-container" };
23966const vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_2 = {
23967    class: "vehicle-compare-button-container--left custom-checkbox",
23968    "data-compare-checkbox-wrapper": ""
23969};
23970const vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_3 = ["id", "data-loc", "data-vehicle-compare-vin", "data-dotagging-event-action-result", "data-dotagging-element-state", "data-dotagging-element-title", "disabled"];
23971const vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_4 = ["for"];
23972const vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_5 = { class: "vehicle-compare-button-container--right" };
23973const vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_6 = ["data-loc"];
23974const vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_7 = {
23975    key: 1,
23976    "data-vehicle-compare-label": "true",
23977    class: "vehicle-compare-button__label"
23978};
23979
23980
23981
23982/* harmony default export */ const vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
23983    __name: 'vehicleCompareButton',
23984    props: {
23985        model: {}
23986    },
23987    setup(__props) {
23988        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
23989        const compareCheckbox = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(null);
23990        //these get updated by the event listener below
23991        const totalVehiclesCompared = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(0);
23992        const maxVehicles = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(5);
23993        const compareVehicleLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("COMPARE_VEHICLE")}`);
23994        const compareViewLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("COMPARE_VIEW")}`);
23995        const compareAddMoreLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("COMPARE_ADD_MORE")}`);
23996        const compareId = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `vehicleCompare-${props.model.Vin}-${props.model.ButtonLocation}`);
23997        const isCheckboxDisabed = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
23998            if (compareCheckbox.value) {
23999                return compareCheckbox.value.checked == false && (totalVehiclesCompared === null || totalVehiclesCompared === void 0 ? void 0 : totalVehiclesCompared.value) >= maxVehicles.value;
24000            }
24001            return true;
24002        });
24003        const props = __props;
24004        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => {
24005            initialize();
24006        });
24007        function initialize() {
24008            //listen for the vehicle compare checkbox toggle event that comes from vehicleCompareDialog.vue
24009            document.addEventListener(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.VehicleC
24009ompareCheckboxToggle, (event) => {
24010                const { vin, checked } = event.detail;
24011                //if we don't have a vin then this event is for all of the buttons (like a clear all vehicle event)
24012                if (!vin || vin === props.model.Vin) {
24013                    if (compareCheckbox) {
24014                        compareCheckbox.value.checked = checked;
24015                    }
24016                }
24017            });
24018            //listen for the vehicle compare display button event that comes from vehicleCompareDialog.vue
24019            document.addEventListener(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.VehicleCompareButtonDisplay, (event) => {
24020                const { compareVehicleCount, maxVehiclesToCompare } = event.detail;
24021                updateVehicleCount(compareVehicleCount);
24022                if (maxVehicles.value !== maxVehiclesToCompare) {
24023                    maxVehicles.value = maxVehiclesToCompare;
24024                }
24025            });
24026            document.addEventListener(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.VehicleCompareCountResponse, (event) => {
24027                const { compareVehicleCount } = event.detail;
24028                updateVehicleCount(compareVehicleCount);
24029            });
24030            document.dispatchEvent(new CustomEvent(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.VehicleCompareCountRequest));
24031        }
24032        function updateVehicleCount(compareVehicleCount) {
24033            if (totalVehiclesCompared.value !== compareVehicleCount) {
24034                totalVehiclesCompared.value = compareVehicleCount;
24035            }
24036        }
24037        function changeEventHandler(event) {
24038            document.dispatchEvent(new CustomEvent(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.VehicleCompareCheckboxChange, {
24039                detail: {
24040                    vin: props.model.Vin,
24041                    checkboxEvent: event
24042                }
24043            }));
24044        }
24045        function compareButtonEventHandler() {
24046            document.dispatchEvent(new CustomEvent(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.VehicleCompareButtonClick));
24047        }
24048        return (_ctx, _cache) => {
24049            var _a, _b;
24050            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_1, [
24051                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_2, [
24052                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("input", {
24053                        id: compareId.value,
24054                        ref_key: "compareCheckbox",
24055                        ref: compareCheckbox,
24056                        class: "vehicle-compare-checkbox stat-checkbox",
24057                        type: "checkbox",
24058                        "data-loc": `compare vehicle:${_ctx.model.Vin}`,
24059                        "data-vehicle-compare-checkbox": "true",
24060                        "data-vehicle-compare-vin": _ctx.model.Vin,
24061                        "data-dotagging-event": "element_configuration",
24062                        "data-dotagging-product-name": "Website|Compare Vehicles",
24063                        "data-dotagging-event-action": "click",
24064                        "data-dotagging-event-action-result": ((_a = compareCheckbox.value) === null || _a === void 0 ? void 0 : _a.checked) ? 'check' : 'uncheck',
24065                        "data-dotagging-element-state": ((_b = compareCheckbox.value) === null || _b === void 0 ? void 0 : _b.checked) ? 'active' : 'inactive',
24066                        "data-dotagging-element-position": "center_left",
24067                        "data-dotagging-element-title": compareVehicleLabel.value,
24068                        "data-dotagging-element-order": 0,
24069                        "data-dotagging-element-type": "item_details",
24070                        "data-dotagging-element-subtype": "toggle",
24071                        onChange: changeEventHandler,
24072                        disabled: isCheckboxDisabed.value
24073                    }, null, 40 /* PROPS, NEED_HYDRATION */, vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_3),
24074                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("label", {
24075                        for: compareId.value,
24076                        class: "vehicle-compare-checkbox__label checkbox"
24077                    }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(compareVehicleLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_4)
24078                ]),
24079                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_5, [
24080                    (totalVehiclesCompared.value > 1)
24081                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("button", {
24082                            key: 0,
24083                            type: "button",
24084                            "data-vehicle-compare-button": "true",
24085                            class: "vehicle-compare-button text-cta stat-button-link",
24086                            "data-loc": `compare vehicle:${_ctx.model.Vin}`,
24087                            "aria-haspopup": "dialog",
24088                            "data-dotagging-event": "cta_interaction",
24089                            "data-dotagging-product-name": "Website|Compare Vehicles",
24090                            "data-dotagging-event-action": "click",
24091                            "data-dotagging-event-action-result": "popup",
24092                            "data-dotagging-element-order": "1",
24093                            "data-dotagging-element-type": "item_details",
24094                            "data-dotagging-element-subtype": "cta_button",
24095                            onClick: compareButtonEventHandler
24096                        }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(compareViewLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_6))
24097                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
24098                    (totalVehiclesCompared.value === 1)
24099                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("label", vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts_hoisted_7, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(compareAddMoreLabel.value), 1 /* TEXT */))
24100                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
24101                ])
24102            ]));
24103        };
24104    }
24105}));
24106
24107;// ./src/components/spaCosmos/vehicleCards/vehicleCompareButton/vehicleCompareButton.vue?vue&type=script&setup=true&lang=ts
24108 
24109;// ./src/components/spaCosmos/vehicleCards/vehicleCompareButton/vehicleCompareButton.vue
24110
24111
24112
24113const vehicleCardDeck_vehicleCompareButton_exports_ = vehicleCardDeck_vehicleCompareButtonvue_type_script_setup_true_lang_ts;
24114
24115/* harmony default export */ const vehicleCardDeck_vehicleCompareButton = (vehicleCardDeck_vehicleCompareButton_exports_);
24116;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/modelEBrochure.vue?vue&type=script&setup=true&lang=ts
24117
24118
24119const vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_1 = { class: "icon-img margin-bottom-1x modelE-Brochure" };
24120const vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_2 = { class: "col-xs-1 eligible-benefit-icon" };
24121const vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_3 = ["href"];
24122const vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_4 = { class: "col-xs-11 eligible-benefit-disclaimer" };
24123const vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_5 = ["href"];
24124
24125/* harmony default export */ const vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24126    __name: 'modelEBrochure',
24127    props: {
24128        vin: {},
24129        vehicleModel: {}
24130    },
24131    setup(__props) {
24132        const label = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `INFINITI/${props.vehicleModel}/${props.vin}`);
24133        const props = __props;
24134        function getLink(vehicleModel) {
24135            switch (vehicleModel.toLowerCase()) {
24136                case "qx50":
24137                    return "/static/brand-infiniti/E-Brochures/2025/US_MY2025_QX50_E-Brochure_1003.pdf";
24138                case "qx55":
24139                    return "/static/brand-infiniti/E-Brochures/2025/Finalizied_QX55_Digital_Brochure.pdf";
24140                case "qx80":
24141                    return "/static/brand-infiniti/E-Brochures/2025/2025_QX80.pdf";
24142                case "qx60":
24143                    return "/static/brand-infiniti/E-Brochures/2025/2025_QX60_Model_Brochure-compressed.pdf";
24144                default:
24145                    return "";
24146            }
24147        }
24148        return (_ctx, _cache) => {
24149            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_1, [
24150                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_2, [
24151                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("a", {
24152                        href: getLink(_ctx.vehicleModel),
24153                        class: "stat-icon-link",
24154                        "data-loc": "eligible benefits",
24155                        rel: "noopener",
24156                        target: "_blank",
24157                        "data-dotagging-event": "cta_interaction",
24158                        "data-dotagging-product-name": "Website|Eligible Benefits",
24159                        "data-dotagging-event-action-result": "open",
24160                        "data-dotagging-element-type": "item_details",
24161                        "data-dotagging-element-subtype": "hyperlink"
24162                    }, _cache[0] || (_cache[0] = [
24163                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", {
24164                            class: "fa-stack",
24165                            "data-placement": "top",
24166                            "data-toggle": "tooltip",
24167                            "data-original-title": "Model E-Brochure"
24168                        }, [
24169                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "fa fa-circle fa-stack-2x" }),
24170                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "fa fa-download fa-stack-1x fa-inverse" })
24171                        ], -1 /* HOISTED */)
24172                    ]), 8 /* PROPS */, vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_3)
24173                ]),
24174                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_4, [
24175                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("a", {
24176                        href: getLink(_ctx.vehicleModel),
24177                        class: "stat-text-link",
24178                        "data-loc": "eligible benefits",
24179                        rel: "noopener",
24180                        target: "_blank",
24181                        "data-dotagging-event": "cta_interaction",
24182                        "data-dotagging-product-name": "Website|Eligible Benefits",
24183                        "data-dotagging-event-action-result": "open",
24184                        "data-dotagging-element-type": "item_details",
24185                        "data-dotagging-element-subtype": "hyperlink"
24186                    }, _cache[1] || (_cache[1] = [
24187                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("strong", null, "Model E-Brochure", -1 /* HOISTED */)
24188                    ]), 8 /* PROPS */, vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts_hoisted_5)
24189                ])
24190            ]));
24191        };
24192    }
24193}));
24194
24195;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/modelEBrochure.vue?vue&type=script&setup=true&lang=ts
24196 
24197;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/modelEBrochure.vue
24198
24199
24200
24201const vehicleCardDeck_modelEBrochure_exports_ = vehicleCardDeck_modelEBrochurevue_type_script_setup_true_lang_ts;
24202
24203/* harmony default export */ const vehicleCardDeck_modelEBrochure = (vehicleCardDeck_modelEBrochure_exports_);
24204;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/icons/iconEligibleBenefit.vue?vue&type=script&setup=true&lang=ts
24205
24206
24207const vehicleCardDeck_iconEligibleBenefitvue_type_script_setup_true_lang_ts_hoisted_1 = ["data-original-title", "title"];
24208/* harmony default export */ const vehicleCardDeck_iconEligibleBenefitvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24209    __name: 'iconEligibleBenefit',
24210    props: {
24211        model: {}
24212    },
24213    setup(__props) {
24214        return (_ctx, _cache) => {
24215            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", {
24216                class: "fa-stack",
24217                "data-placement": "top",
24218                "data-toggle": "tooltip",
24219                "data-original-title": _ctx.model.Name,
24220                title: _ctx.model.Description
24221            }, [
24222                _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "fa fa-circle fa-stack-2x" }, null, -1 /* HOISTED */)),
24223                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", {
24224                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(_ctx.model.IconClass)
24225                }, null, 2 /* CLASS */)
24226            ], 8 /* PROPS */, vehicleCardDeck_iconEligibleBenefitvue_type_script_setup_true_lang_ts_hoisted_1));
24227        };
24228    }
24229}));
24230
24231;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/icons/iconEligibleBenefit.vue?vue&type=script&setup=true&lang=ts
24232 
24233;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/icons/iconEligibleBenefit.vue
24234
24235
24236
24237const vehicleCardDeck_iconEligibleBenefit_exports_ = vehicleCardDeck_iconEligibleBenefitvue_type_script_setup_true_lang_ts;
24238
24239/* harmony default export */ const vehicleCardDeck_iconEligibleBenefit = (vehicleCardDeck_iconEligibleBenefit_exports_);
24240;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/icons/iconEligibleBenefitName.vue?vue&type=script&setup=true&lang=ts
24241
24242
24243const vehicleCardDeck_iconEligibleBenefitNamevue_type_script_setup_true_lang_ts_hoisted_1 = { key: 0 };
24244/* harmony default export */ const vehicleCardDeck_iconEligibleBenefitNamevue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24245    __name: 'iconEligibleBenefitName',
24246    props: {
24247        model: {}
24248    },
24249    setup(__props) {
24250        return (_ctx, _cache) => {
24251            return (_ctx.model.HasName)
24252                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_
24252prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("strong", vehicleCardDeck_iconEligibleBenefitNamevue_type_script_setup_true_lang_ts_hoisted_1, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.Name), 1 /* TEXT */))
24253                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true);
24254        };
24255    }
24256}));
24257
24258;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/icons/iconEligibleBenefitName.vue?vue&type=script&setup=true&lang=ts
24259 
24260;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/icons/iconEligibleBenefitName.vue
24261
24262
24263
24264const vehicleCardDeck_iconEligibleBenefitName_exports_ = vehicleCardDeck_iconEligibleBenefitNamevue_type_script_setup_true_lang_ts;
24265
24266/* harmony default export */ const vehicleCardDeck_iconEligibleBenefitName = (vehicleCardDeck_iconEligibleBenefitName_exports_);
24267;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/icons/iconEligibleBenefitWrapper.vue?vue&type=script&setup=true&lang=ts
24268
24269
24270const vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_1 = { class: "icon-img margin-bottom-1x" };
24271const vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_2 = { class: "col-xs-1 eligible-benefit-icon" };
24272const vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_3 = ["href", "rel", "target"];
24273const vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_4 = { class: "col-xs-11 eligible-benefit-disclaimer" };
24274const vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_5 = ["href", "rel", "target"];
24275
24276
24277/* harmony default export */ const vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24278    __name: 'iconEligibleBenefitWrapper',
24279    props: {
24280        model: {}
24281    },
24282    setup(__props) {
24283        return (_ctx, _cache) => {
24284            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_1, [
24285                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_2, [
24286                    (_ctx.model.HasLink)
24287                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("a", {
24288                            key: 0,
24289                            href: _ctx.model.Link,
24290                            class: "stat-icon-link",
24291                            "data-loc": "eligible benefits",
24292                            rel: _ctx.model.LinkRel,
24293                            target: _ctx.model.LinkTarget,
24294                            "data-dotagging-event": "cta_interaction",
24295                            "data-dotagging-product-name": "Website|Eligible Benefits",
24296                            "data-dotagging-event-action-result": "open",
24297                            "data-dotagging-element-type": "item_details",
24298                            "data-dotagging-element-subtype": "hyperlink"
24299                        }, [
24300                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_iconEligibleBenefit, { model: _ctx.model }, null, 8 /* PROPS */, ["model"])
24301                        ], 8 /* PROPS */, vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_3))
24302                        : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_iconEligibleBenefit, {
24303                            key: 1,
24304                            model: _ctx.model
24305                        }, null, 8 /* PROPS */, ["model"]))
24306                ]),
24307                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_4, [
24308                    (_ctx.model.HasLink)
24309                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("a", {
24310                            key: 0,
24311                            href: _ctx.model.Link,
24312                            class: "stat-text-link",
24313                            "data-loc": "eligible benefits",
24314                            rel: _ctx.model.LinkRel,
24315                            target: _ctx.model.LinkTarget,
24316                            "data-dotagging-event": "cta_interaction",
24317                            "data-dotagging-product-name": "Website|Eligible Benefits",
24318                            "data-dotagging-event-action-result": "open",
24319                            "data-dotagging-element-type": "item_details",
24320                            "data-dotagging-element-subtype": "hyperlink"
24321                        }, [
24322                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_iconEligibleBenefitName, { model: _ctx.model }, null, 8 /* PROPS */, ["model"])
24323                        ], 8 /* PROPS */, vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_5))
24324                        : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_iconEligibleBenefitName, {
24325                            key: 1,
24326                            model: _ctx.model
24327                        }, null, 8 /* PROPS */, ["model"])),
24328                    (_ctx.model.HasDescription)
24329                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 2 }, [
24330                            _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("br", null, null, -1 /* HOISTED */)),
24331                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)(" " + (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.Description), 1 /* TEXT */)
24332                        ], 64 /* STABLE_FRAGMENT */))
24333                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
24334                ])
24335            ]));
24336        };
24337    }
24338}));
24339
24340;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/icons/iconEligibleBenefitWrapper.vue?vue&type=script&setup=true&lang=ts
24341 
24342;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/icons/iconEligibleBenefitWrapper.vue
24343
24344
24345
24346const vehicleCardDeck_iconEligibleBenefitWrapper_exports_ = vehicleCardDeck_iconEligibleBenefitWrappervue_type_script_setup_true_lang_ts;
24347
24348/* harmony default export */ const vehicleCardDeck_iconEligibleBenefitWrapper = (vehicleCardDeck_iconEligibleBenefitWrapper_exports_);
24349;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/images/imageEligibleBenefit.vue?vue&type=script&setup=true&lang=ts
24350
24351
24352const vehicleCardDeck_imageEligibleBenefitvue_type_script_setup_true_lang_ts_hoisted_1 = ["alt", "title", "src"];
24353/* harmony default export */ const vehicleCardDeck_imageEligibleBenefitvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24354    __name: 'imageEligibleBenefit',
24355    props: {
24356        model: {}
24357    },
24358    setup(__props) {
24359        return (_ctx, _cache) => {
24360            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("img", {
24361                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(_ctx.model.ImageClass),
24362                alt: _ctx.model.AltTag,
24363                title: _ctx.model.AltTag,
24364                src: _ctx.model.ImageSrc,
24365                loading: "lazy"
24366            }, null, 10 /* CLASS, PROPS */, vehicleCardDeck_imageEligibleBenefitvue_type_script_setup_true_lang_ts_hoisted_1));
24367        };
24368    }
24369}));
24370
24371;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/images/imageEligibleBenefit.vue?vue&type=script&setup=true&lang=ts
24372 
24373;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/images/imageEligibleBenefit.vue
24374
24375
24376
24377const vehicleCardDeck_imageEligibleBenefit_exports_ = vehicleCardDeck_imageEligibleBenefitvue_type_script_setup_true_lang_ts;
24378
24379/* harmony default export */ const vehicleCardDeck_imageEligibleBenefit = (vehicleCardDeck_imageEligibleBenefit_exports_);
24380;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/images/imageEligibleBenefitWrapper.vue?vue&type=script&setup=true&lang=ts
24381
24382
24383const vehicleCardDeck_imageEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_1 = { class: "icon-img margin-right-1x margin-bottom-1x" };
24384const vehicleCardDeck_imageEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_2 = ["href", "rel", "target"];
24385
24386/* harmony default export */ const vehicleCardDeck_imageEligibleBenefitWrappervue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24387    __name: 'imageEligibleBenefitWrapper',
24388    props: {
24389        model: {}
24390    },
24391    setup(__props) {
24392        return (_ctx, _cache) => {
24393            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_imageEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_1, [
24394                (_ctx.model.HasLink)
24395                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("a", {
24396                        key: 0,
24397                        class: "icon-img__benefit stat-image-link",
24398                        "data-loc": "eligible benefits",
24399                        href: _ctx.model.Link,
24400                        rel: _ctx.model.LinkRel,
24401                        target: _ctx.model.LinkTarget,
24402                        "data-dotagging-event": "cta_interaction",
24403                        "data-dotagging-product-name": "Website|Eligible Benefits",
24404                        "data-dotagging-event-action-result": "open",
24405                        "data-dotagging-element-type": "item_details",
24406                        "data-dotagging-element-subtype": "hyperlink"
24407                    }, [
24408                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_imageEligibleBenefit, { model: _ctx.model }, null, 8 /* PROPS */, ["model"])
24409                    ], 8 /* PROPS */, vehicleCardDeck_imageEligibleBenefitWrappervue_type_script_setup_true_lang_ts_hoisted_2))
24410                    : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_imageEligibleBenefit, {
24411                        key: 1,
24412                        model: _ctx.model
24413                    }, null, 8 /* PROPS */, ["model"]))
24414            ]));
24415        };
24416    }
24417}));
24418
24419;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/images/imageEligibleBenefitWrapper.vue?vue&type=script&setup=true&lang=ts
24420 
24421;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/images/imageEligibleBenefitWrapper.vue
24422
24423
24424
24425const vehicleCardDeck_imageEligibleBenefitWrapper_exports_ = vehicleCardDeck_imageEligibleBenefitWrappervue_type_script_setup_true_lang_ts;
24426
24427/* harmony default export */ const vehicleCardDeck_imageEligibleBenefitWrapper = (vehicleCardDeck_imageEligibleBenefitWrapper_exports_);
24428;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/vehicleEligibleBenefits.vue?vue&type=script&setup=true&lang=ts
24429
24430
24431const vehicleCardDeck_vehicleEligibleBenefitsvue_type_script_setup_true_lang_ts_hoisted_1 = {
24432    key: 0,
24433    class: "eligible-benefits"
24434};
24435
24436
24437
24438
24439/* harmony default export */ const vehicleCardDeck_vehicleEligibleBenefitsvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24440    __name: 'vehicleEligibleBenefits',
24441    props: {
24442        model: {},
24443        vehicleModel: {},
24444        hasBrochure: { type: Boolean }
24445    },
24446    setup(__props) {
24447        const hasEligibleBenefits = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return ((_b = (_a = props.model) === null || _a === void 0 ? void 0 : _a.EligibleBenefits) === null || _b === void 0 ? void 0 : _b.length) > 0; });
24448        const isImageBenefitType = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return ((_b = (_a = props.model) === null || _a === void 0 ? void 0 : _a.BenefitType) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'image'; });
24449        const props = __props;
24450        return (_ctx, _cache) => {
24451            return (hasEligibleBenefits.value || _ctx.hasBrochure)
24452                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleEligibleBenefitsvue_type_script_setup_true_lang_ts_hoisted_1, [
24453                    (isImageBenefitType.value)
24454                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 0 }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.EligibleBenefits || [], (benefit, index) => {
24455                            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_imageEligibleBenefitWrapper, {
24456                                model: benefit,
24457                                key: `benefit-${_ctx.model.VehicleVin}-image-${index.toString()}`
24458                            }, null, 8 /* PROPS */, ["model"]));
24459                        }), 128 /* KEYED_FRAGMENT */))
24460                        : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 1 }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.EligibleBenefits || [], (benefit, index) => {
24461                            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_iconEligibleBenefitWrapper, {
24462                                model: benefit,
24463                                key: `benefit-${_ctx.model.VehicleVin}-${_ctx.model.BenefitType}-${index.toString()}`
24464                            }, null, 8 /* PROPS */, ["model"]));
24465                        }), 128 /* KEYED_FRAGMENT */)),
24466                    (_ctx.hasBrochure)
24467                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_modelEBrochure, {
24468                            key: 2,
24469                            vin: _ctx.model.VehicleVin,
24470                            vehicleModel: _ctx.vehicleModel
24471                        }, null, 8 /* PROPS */, ["vin", "vehicleModel"]))
24472                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
24473                ]))
24474                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true);
24475        };
24476    }
24477}));
24478
24479;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/vehicleEligibleBenefits.vue?vue&type=script&setup=true&lang=ts
24480 
24481;// ./src/components/spaCosmos/vehicleCards/vehicleEligibleBenefits/vehicleEligibleBenefits.vue
24482
24483
24484
24485const vehicleCardDeck_vehicleEligibleBenefits_exports_ = vehicleCardDeck_vehicleEligibleBenefitsvue_type_script_setup_true_lang_ts;
24486
24487/* harmony default export */ const vehicleCardDeck_vehicleEligibleBenefits = (vehicleCardDeck_vehicleEligibleBenefits_exports_);
24488;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselImage.vue?vue&type=script&setup=true&lang=ts
24489
24490
24491const vehicleCardDeck_carouselImagevue_type_script_setup_true_lang_ts_hoisted_1 = ["data-image-num", "src", "srcset", "sizes", "alt", "title", "loading", "data-dotagging-image-provider"];
24492
24493/* harmony default export */ const vehicleCardDeck_carouselImagevue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24494    __name: 'carouselImage',
24495    props: {
24496        imageSrc: {},
24497        imageDownloadDate: {},
24498        imageNum: {},
24499        isFirstImage: { type: Boolean },
24500        isBackground: { type: Boolean },
24501        isGrid: { type: Boolean },
24502        vehicleNameHtmlEncoded: {},
24503        backgroundColorQueryParam: {},
24504        imageProvider: {}
24505    },
24506    setup(__props) {
24507        const props = __props;
24508        const isLoading = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.isFirstImage ? 'eager' : 'lazy');
24509        const className = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.isBackground ? 'hero-carousel__background-image' : 'hero-carousel__image');
24510        const gridOrList = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.isGrid ? 'grid' : 'list');
24511        const queryParams = props.imageDownloadDate ? `timestamp=${props.imageDownloadDate}&${props.backgroundColorQueryParam}` : props.backgroundColorQueryParam;
24512        const imgUrlWithBgColor = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${props.imageSrc}?${queryParams}`);
24513        const srcset = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.isGrid
24514            ? `${imgUrlWithBgColor.value}&width=300 300w,
24515                        ${imgUrlWithBgColor.value}&width=400 400w,
24516                        ${imgUrlWithBgColor.value}&width=500 500w,
24517                        ${imgUrlWithBgColor.value}&width=600 600w`
24518            : `${imgUrlWithBgColor.value}&width=1 1w,
24519                        ${imgUrlWithBgColor.value}&width=400 400w,
24520                        ${imgUrlWithBgColor.value}&width=500 500w,
24521                        ${imgUrlWithBgColor.value}&width=600 600w,
24522                        ${imgUrlWithBgColor.value}&width=700 700w,
24523                        ${imgUrlWithBgColor.value}&width=800 800w`);
24524        const sizes = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.isGrid
24525            ? `(min-width: 1920px) calc(100vw / 4),
24526                        (min-width: 1301px) calc(100vw / 3),
24527                        (min-width: 640px) calc(100vw / 2),
24528                        (min-width: 540px) 100vw,
24529                        100vw`
24530            : `(min-width: 1920px) 100vw,
24531                        (min-width: 1533px) calc((100vw) * .54),
24532                        (min-width: 1201px) 100vw,
24533                        100vw`);
24534        function onImgLoad(event) {
24535            if (event.target.closest(".hero-carousel__single-image") && event.target.closest(`.${gridOrList.value}-view`)) {
24536                const ancestorElem = event.target.closest(".hero-carousel__item");
24537                ancestorElem.classList.remove("hero-carousel__item--loading");
24538                ancestorElem.classList.add("hero-carousel__item--loaded");
24539            }
24540        }
24541        return (_ctx, _cache) => {
24542            var _a;
24543            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("img", {
24544                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(`${className.value} ${className.value}--${gridOrList.value}`),
24545                "data-image-num": _ctx.imageNum,
24546                src: `${imgUrlWithBgColor.value}&width=300`,
24547                srcset: srcset.value,
24548                sizes: sizes.value,
24549                alt: _ctx.vehicleNameHtmlEncoded,
24550                title: _ctx.vehicleNameHtmlEncoded,
24551                width: "300",
24552                loading: isLoading.value,
24553                "data-dotagging-image-provider": (_a = _ctx.imageProvider) !== null && _a !== void 0 ? _a : '',
24554                onLoad: onImgLoad,
24555                onError: onImgLoad
24556            }, null, 42 /* CLASS, PROPS, NEED_HYDRATION */, vehicleCardDeck_carouselImagevue_type_script_setup_true_lang_ts_hoisted_1));
24557        };
24558    }
24559}));
24560
24561;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselImage.vue?vue&type=script&setup=true&lang=ts
24562 
24563;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselImage.vue
24564
24565
24566
24567const vehicleCardDeck_carouselImage_exports_ = vehicleCardDeck_carouselImagevue_type_script_setup_true_lang_ts;
24568
24569/* harmony default export */ const vehicleCardDeck_carouselImage = (vehicleCardDeck_carouselImage_exports_);
24570;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/vehicleImageCarouselHeroWrapper.vue?vue&type=script&setup=true&lang=ts
24571
24572
24573const vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_1 = { class: "hero-carousel__image-wrapper" };
24574const vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_2 = {
24575    key: 0,
24576    class: "hero-carousel__background-wrapper"
24577};
24578const vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_3 = { class: "hero-carousel__single-image" };
24579const vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_4 = {
24580    key: 1,
24581    class: "missing-image"
24582};
24583const vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_5 = { class: "missing-image__title" };
24584const vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_6 = { class: "missing-image__subtitle" };
24585
24586
24587
24588/* harmony default export */ const vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24589    __name: 'vehicleImageCarouselHeroWrapper',
24590    props: {
24591        model: {}
24592    },
24593    setup(__props) {
24594        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
24595        const photoUnavailabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("VEHICLE_PHOTOS_UNAVAILABLE"));
24596        const checkBackSoonLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("PLEASE_CHECK_BACK_SOON"));
24597        const props = __props;
24598        const isImageSourceMissing = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.model.ImageSource.toLowerCase().includes("missing"));
24599        return (_ctx, _cache) => {
24600            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_1, [
24601                (!isImageSourceMissing.value)
24602                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_2, [
24603                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_carouselImage, {
24604                            "image-src": _ctx.model.ImageSource,
24605                            "image-download-date": _ctx.model.ImageDownloadDate,
24606                            "image-num": _ctx.model.ImageNum,
24607                            "is-first-image": _ctx.model.IsFirstImage,
24608                            "background-color-query-param": _ctx.model.Backgroun
24608dColorQueryParam,
24609                            "vehicle-name-html-encoded": _ctx.model.VehicleNameHtmlEncoded,
24610                            "is-background": true,
24611                            "is-grid": true,
24612                            "image-provider": _ctx.model.ImageProvider
24613                        }, null, 8 /* PROPS */, ["image-src", "image-download-date", "image-num", "is-first-image", "background-color-query-param", "vehicle-name-html-encoded", "image-provider"]),
24614                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_carouselImage, {
24615                            "image-src": _ctx.model.ImageSource,
24616                            "image-download-date": _ctx.model.ImageDownloadDate,
24617                            "image-num": _ctx.model.ImageNum,
24618                            "is-first-image": _ctx.model.IsFirstImage,
24619                            "background-color-query-param": _ctx.model.BackgroundColorQueryParam,
24620                            "vehicle-name-html-encoded": _ctx.model.VehicleNameHtmlEncoded,
24621                            "is-background": true,
24622                            "is-grid": false,
24623                            "image-provider": _ctx.model.ImageProvider
24624                        }, null, 8 /* PROPS */, ["image-src", "image-download-date", "image-num", "is-first-image", "background-color-query-param", "vehicle-name-html-encoded", "image-provider"])
24625                    ]))
24626                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
24627                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_3, [
24628                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_carouselImage, {
24629                        "image-src": _ctx.model.ImageSource,
24630                        "image-download-date": _ctx.model.ImageDownloadDate,
24631                        "image-num": _ctx.model.ImageNum,
24632                        "is-first-image": _ctx.model.IsFirstImage,
24633                        "background-color-query-param": _ctx.model.BackgroundColorQueryParam,
24634                        "vehicle-name-html-encoded": _ctx.model.VehicleNameHtmlEncoded,
24635                        "is-background": false,
24636                        "is-grid": true,
24637                        "image-provider": _ctx.model.ImageProvider
24638                    }, null, 8 /* PROPS */, ["image-src", "image-download-date", "image-num", "is-first-image", "background-color-query-param", "vehicle-name-html-encoded", "image-provider"]),
24639                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_carouselImage, {
24640                        "image-src": _ctx.model.ImageSource,
24641                        "image-download-date": _ctx.model.ImageDownloadDate,
24642                        "image-num": _ctx.model.ImageNum,
24643                        "is-first-image": _ctx.model.IsFirstImage,
24644                        "background-color-query-param": _ctx.model.BackgroundColorQueryParam,
24645                        "vehicle-name-html-encoded": _ctx.model.VehicleNameHtmlEncoded,
24646                        "is-background": false,
24647                        "is-grid": false,
24648                        "image-provider": _ctx.model.ImageProvider
24649                    }, null, 8 /* PROPS */, ["image-src", "image-download-date", "image-num", "is-first-image", "background-color-query-param", "vehicle-name-html-encoded", "image-provider"])
24650                ]),
24651                (isImageSourceMissing.value && !_ctx.model.IsViewMoreImage)
24652                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_4, [
24653                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("p", vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_5, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(photoUnavailabel.value), 1 /* TEXT */),
24654                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("p", vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts_hoisted_6, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(checkBackSoonLabel.value), 1 /* TEXT */)
24655                    ]))
24656                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
24657            ]));
24658        };
24659    }
24660}));
24661
24662;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/vehicleImageCarouselHeroWrapper.vue?vue&type=script&setup=true&lang=ts
24663 
24664;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/vehicleImageCarouselHeroWrapper.vue
24665
24666
24667
24668const vehicleCardDeck_vehicleImageCarouselHeroWrapper_exports_ = vehicleCardDeck_vehicleImageCarouselHeroWrappervue_type_script_setup_true_lang_ts;
24669
24670/* harmony default export */ const vehicleCardDeck_vehicleImageCarouselHeroWrapper = (vehicleCardDeck_vehicleImageCarouselHeroWrapper_exports_);
24671;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselImageCounter.vue?vue&type=script&setup=true&lang=ts
24672
24673
24674const vehicleCardDeck_carouselImageCountervue_type_script_setup_true_lang_ts_hoisted_1 = {
24675    key: 0,
24676    class: "hero-carousel__image-counter"
24677};
24678const vehicleCardDeck_carouselImageCountervue_type_script_setup_true_lang_ts_hoisted_2 = { class: "image-counter__current" };
24679const vehicleCardDeck_carouselImageCountervue_type_script_setup_true_lang_ts_hoisted_3 = { class: "image-counter__total" };
24680
24681/* harmony default export */ const vehicleCardDeck_carouselImageCountervue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24682    __name: 'carouselImageCounter',
24683    props: {
24684        currentSlide: {},
24685        totalCount: {},
24686        imageLimit: {}
24687    },
24688    setup(__props) {
24689        const props = __props;
24690        const showCounter = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
24691        const currentCount = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.currentSlide >= props.imageLimit ? props.imageLimit : props.currentSlide);
24692        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => {
24693            addDocResizeObserver();
24694        });
24695        function addDocResizeObserver() {
24696            // hover: none is a device capability, not a viewport dimension — evaluate once on mount
24697            showCounter.value = props.totalCount > 1 && window.matchMedia('(hover: none)').matches;
24698        }
24699        return (_ctx, _cache) => {
24700            return (showCounter.value)
24701                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_carouselImageCountervue_type_script_setup_true_lang_ts_hoisted_1, [
24702                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_carouselImageCountervue_type_script_setup_true_lang_ts_hoisted_2, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(currentCount.value), 1 /* TEXT */),
24703                    _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", { class: "image-counter__slash" }, "/", -1 /* HOISTED */)),
24704                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_carouselImageCountervue_type_script_setup_true_lang_ts_hoisted_3, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.totalCount), 1 /* TEXT */)
24705                ]))
24706                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true);
24707        };
24708    }
24709}));
24710
24711;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselImageCounter.vue?vue&type=script&setup=true&lang=ts
24712 
24713;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselImageCounter.vue
24714
24715
24716
24717const vehicleCardDeck_carouselImageCounter_exports_ = vehicleCardDeck_carouselImageCountervue_type_script_setup_true_lang_ts;
24718
24719/* harmony default export */ const vehicleCardDeck_carouselImageCounter = (vehicleCardDeck_carouselImageCounter_exports_);
24720;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselTypes.ts
24721var vehicleCardDeck_Direction;
24722(function (Direction) {
24723    Direction[Direction["LeftRight"] = 0] = "LeftRight";
24724    Direction[Direction["UpDown"] = 1] = "UpDown";
24725})(vehicleCardDeck_Direction || (vehicleCardDeck_Direction = {}));
24726var vehicleCardDeck_CarouselItemType;
24727(function (CarouselItemType) {
24728    CarouselItemType["image"] = "image";
24729    CarouselItemType["video"] = "video";
24730    CarouselItemType["interior360"] = "interior360";
24731    CarouselItemType["spincar"] = "spincar";
24732})(vehicleCardDeck_CarouselItemType || (vehicleCardDeck_CarouselItemType = {}));
24733var vehicleCardDeck_CarouselControlType;
24734(function (CarouselControlType) {
24735    CarouselControlType["Next"] = "next";
24736    CarouselControlType["Previous"] = "previous";
24737})(vehicleCardDeck_CarouselControlType || (vehicleCardDeck_CarouselControlType = {}));
24738
24739;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselControl.vue?vue&type=script&setup=true&lang=ts
24740
24741
24742const vehicleCardDeck_carouselControlvue_type_script_setup_true_lang_ts_hoisted_1 = ["aria-label", "title", "data-loc", "data-dotagging-element-title", "data-dotagging-affiliation"];
24743
24744
24745/* harmony default export */ const vehicleCardDeck_carouselControlvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24746    __name: 'carouselControl',
24747    props: {
24748        controlType: {},
24749        vin: {}
24750    },
24751    setup(__props) {
24752        const props = __props;
24753        const vin = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.vin);
24754        const type = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.controlType.toString());
24755        const typeCapitalized = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => type.value.charAt(0).toUpperCase() + type.value.slice(1));
24756        const direction = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.controlType === vehicleCardDeck_CarouselControlType.Previous ? 'left' : 'right');
24757        const taggingAffiliation = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(window.DlronGlobal_DealerName);
24758        return (_ctx, _cache) => {
24759            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("button", {
24760                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(`hero-carousel__control hero-carousel__control--${type.value}-btn stat-arrow-${direction.value === 'left' ? 'prev' : 'next'}`),
24761                onClick: _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* withModifiers */.D$)(($event) => (_ctx.$emit('controlClicked', _ctx.controlType)), ["prevent"])),
24762                role: "button",
24763                "aria-label": `${typeCapitalized.value} image`,
24764                title: `${typeCapitalized.value} image`,
24765                "data-loc": `available inventory:${vin.value}`,
24766                "data-dotagging-event": "media_interaction",
24767                "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
24768                "data-dotagging-event-action": "click",
24769                "data-dotagging-event-action-result": "calc",
24770                "data-dotagging-event-state": "active",
24771                "data-dotagging-element-position": "center_center",
24772                "data-dotagging-element-order": "0",
24773                "data-dotagging-media_type": "gallery",
24774                "data-dotagging-element-subtype": "nav_button",
24775                "data-dotagging-element-title": `Carousel Controls - ${typeCapitalized.value} Image`,
24776                "data-dotagging-affiliation": taggingAffiliation.value
24777            }, [
24778                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", {
24779                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(`fa fa-chevron-${direction.value} custom-dealer-styling__chevron-${direction.value}--white`)
24780                }, null, 2 /* CLASS */)
24781            ], 10 /* CLASS, PROPS */, vehicleCardDeck_carouselControlvue_type_script_setup_true_lang_ts_hoisted_1));
24782        };
24783    }
24784}));
24785
24786;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselControl.vue?vue&type=script&setup=true&lang=ts
24787 
24788;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/carouselControl.vue
24789
24790
24791
24792const vehicleCardDeck_carouselControl_exports_ = vehicleCardDeck_carouselControlvue_type_script_setup_true_lang_ts;
24793
24794/* harmony default export */ const vehicleCardDeck_carouselControl = (vehicleCardDeck_carouselControl_exports_);
24795;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/vehicleImageCarouselHeroWrapperModel.ts
24796class vehicleCardDeck_VehicleImageCarouselHeroWrapperModel {
24797    constructor() {
24798        this.IsFirstImage = false;
24799        this.IsViewMoreImage = false;
24800        this.ImageProvider = '';
24801    }
24802}
24803
24804// EXTERNAL MODULE: ./src/utilities/performanceHelpers.ts
24805var vehicleCardDeck_performanceHelpers = __webpack_require__(9185);
24806;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/vehicleImageCarousel.vue?vue&type=script&setup=true&lang=ts
24807var vehicleCardDeck_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
24808    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
24809    return new (P || (P = Promise))(function (resolve, reject) {
24810        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
24811        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
24812        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
24813        step((generator = generator.apply(thisArg, _arguments || [])).next());
24814    });
24815};
24816
24817
24818const vehicleCardDeck_vehicleImageCarouselvue_type_script_setup_true_lang_ts_hoisted_1 = ["id", "data-carousel-index", "title"];
24819const vehicleCardDeck_vehicleImageCarouselvue_type_script_setup_true_lang_ts_hoisted_2 = ["href", "data-loc", "data-dotagging-element-order"];
24820const vehicleCardDeck_vehicleImageCarouselvue_type_script_setup_true_lang_ts_hoisted_3 = ["aria-label", "title", "data-loc"];
24821
24822
24823
24824
24825
24826
24827
24828
24829/* harmony default export */ const vehicleCardDeck_vehicleImageCarouselvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
24830    __name: 'vehicleImageCarousel',
24831    props: {
24832        model: {}
24833    },
24834    setup(__props) {
24835        const props = __props;
24836        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
24837        const carouselImageCount = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.model.PhotoListDetailed.length);
24838        const viewMoreLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getButton("VIEW_MORE"));
24839        const hasRedirectLocation = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.model.RedirectLocation != null && props.model.RedirectLocation.trim() !== "");
24840        const carouselElement = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(null);
24841        const carouselItemContainer = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(null);
24842        const controls = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(null);
24843        const controlVisibility = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)({
24844            all: true,
24845            previous: false,
24846            next: true
24847        });
24848        const photoList = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)([]);
24849        let currentIndex = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(0);
24850        let items = [];
24851        let scrollX = 0;
24852        let containerWidth = 0;
24853        let heroIntersectionObserver = null;
24854        let isSwiping = false;
24855        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => {
24856            initialize();
24857        });
24858        function initialize() {
24859            return vehicleCardDeck_awaiter(this, void 0, void 0, function* () {
24860                if (carouselImageCount.value === 0 && controls.value) {
24861                    controlVisibility.value.all = false;
24862                }
24863                yield getContainerWidth();
24864                toggleControls();
24865                addObservers();
24866                renderMorePhotos();
24867            });
24868        }
24869        function getContainerWidth() {
24870            return vehicleCardDeck_awaiter(this, void 0, void 0, function* () {
24871                yield (0,vehicleCardDeck_performanceHelpers/* doBeforeNextRepaint */.L)(() => {
24872                    containerWidth = carouselItemContainer.value.getBoundingClientRect().width;
24873                });
24874            });
24875        }
24876        function toggleControls() {
24877            const isFirstSlide = currentIndex.value === 0;
24878            const isLastSlide = currentIndex.value === carouselImageCount.value - 1;
24879            controlVisibility.value.previous = !isFirstSlide;
24880            controlVisibility.value.next = !isLastSlide;
24881        }
24882        function addObservers() {
24883            addResizeObserver();
24884            addHeroIntersectionObserver();
24885        }
24886        function addResizeObserver() {
24887            if (carouselItemContainer) {
24888                let lastContainerWidth = 0;
24889                const swipeObserver = new ResizeObserver((entries) => {
24890                    for (let entry of entries) {
24891                        const newWidth = entry.contentRect.width;
24892                        if (newWidth === lastContainerWidth) {
24893                            continue;
24894                        }
24895                        lastContainerWidth = newWidth;
24896                        containerWidth = newWidth;
24897                        scrollX = currentIndex.value * containerWidth;
24898                        entry.target.scrollTo({ left: scrollX, behavior: "smooth" });
24899                    }
24900                });
24901                swipeObserver === null || swipeObserver === void 0 ? void 0 : swipeObserver.observe(carouselItemContainer.value);
24902            }
24903        }
24904        function addHeroIntersectionObserver() {
24905            //intersection observer to capture hero image scroll events to track
24906            //image counts and thumbnail hilighting
24907            let firstAfterPageLoad = true;
24908            heroIntersectionObserver = new IntersectionObserver((entries) => {
24909                entries.forEach((entry) => vehicleCardDeck_awaiter(this, void 0, void 0, function* () {
24910                    if (entry.isIntersecting) {
24911                        // we don't want to send the event when the page loads on each first photo
24912                        if (firstAfterPageLoad) {
24913                            firstAfterPageLoad = false;
24914                        }
24915                        else {
24916                            yield scrollSlides(entry.target, isSwiping);
24917                        }
24918                        setTouchSwipe(false);
24919                    }
24920                }));
24921            }, {
24922                root: carouselItemContainer.value,
24923                threshold: .9,
24924            });
24925            for (let item of items) {
24926                heroIntersectionObserver === null || heroIntersectionObserver === void 0 ? void 0 : heroIntersectionObserver.observe(item);
24927            }
24928        }
24929        function renderMorePhotos(newPhotoCount = 1) {
24930            return vehicleCardDeck_awaiter(this, void 0, void 0, function* () {
24931                for (let i = 0; i < newPhotoCount; i++) {
24932                    const totalPhotoCount = props.model.PhotoListDetailed.length;
24933                    const currentRenderedPhotosCount = photoList.value.length;
24934                    if (currentRenderedPhotosCount < totalPhotoCount) {
24935                        const newPhoto = props.model.PhotoListDetailed[currentRenderedPhotosCount];
24936                        photoList.value.push(newPhoto);
24937                        yield (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* nextTick */.dY)();
24938                        items = Array.from(carouselItemContainer.value.children);
24939                        const latestItem = items[items.length - 1];
24940                        if (latestItem) {
24941                            heroIntersectionObserver === null || heroIntersectionObserver === void 0 ? void 0 : heroIntersectionObserver.observe(latestItem);
24942                        }
24943                    }
24944                }
24945            });
24946        }
24947        function isLastImage(index) {
24948            return index === props.model.PhotoListDetailed.length - 1;
24949        }
24950        function getWrapperModel(imageSrc, imageNum, isFirstImage, isViewMoreImage, backgroundColorQueryParam, vehicleNameHtmlEncoded, downloadDate, imageProvider = '') {
24951            const model = new vehicleCardDeck_VehicleImageCarouselHeroWrapperModel();
24952            model.ImageSource = imageSrc;
24953            model.ImageNum = imageNum;
24954            model.IsFirstImage = isFirstImage;
24955            model.IsViewMoreImage = isViewMoreImage;
24956            model.BackgroundColorQueryParam = backgroundColorQueryParam;
24957            model.VehicleNameHtmlEncoded = vehicleNameHtmlEncoded;
24958            model.ImageDownloadDate = downloadDate;
24959            model.ImageProvider = imageProvider;
24960            return model;
24961        }
24962        function carouselControlHandler(controlType) {
24963            switch (controlType) {
24964                case vehicleCardDeck_CarouselControlType.Previous:
24965                    goToPreviousSlide();
24966                    break;
24967                case vehicleCardDeck_CarouselControlType.Next:
24968                    goToNextSlide();
24969                    break;
24970            }
24971        }
24972        function setTouchSwipe(isTouchSwiping) {
24973            isSwiping = isTouchSwiping;
24974            if (isSwiping && currentIndex.value === photoList.value.length - 1) {
24975                renderMorePhotos();
24976            }
24977        }
24978        function scrollSlides(elem, isSwiping) {
24979            var _a, _b;
24980            return vehicleCardDeck_awaiter(this, void 0, void 0, function* () {
24981                const slideIndex = parseInt((_b = (_a = elem.dataset) === null || _a === void 0 ? void 0 : _a.carouselIndex) !== null && _b !== void 0 ? _b : "0");
24982                yield goToSlide(slideIndex, isSwiping);
24983            });
24984        }
24985        function goToPreviousSlide() {
24986            return vehicleCardDeck_awaiter(this, void 0, void 0, function* () {
24987                let slideIndex = currentIndex.value;
24988                if (slideIndex > 0) {
24989                    slideIndex--;
24990                }
24991                yield goToSlide(slideIndex, false);
24992            });
24993        }
24994        function goToNextSlide() {
24995            return vehicleCardDeck_awaiter(this, void 0, void 0, function* () {
24996                if (currentIndex.value === photoList.value.length - 1) {
24997                    renderMorePhotos();
24998                    yield (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* nextTick */.dY)();
24999                }
25000                let slideIndex = currentIndex.value;
25001                if (slideIndex < carouselImageCount.value - 1) {
25002                    slideIndex++;
25003                }
25004                yield goToSlide(slideIndex, false);
25005            });
25006        }
25007        function goToSlide(slideIndex, scrollEvent) {
25008            return vehicleCardDeck_awaiter(this, void 0, void 0, function* () {
25009                if (scrollEvent) {
25010                    dispatchSwipeImageTagging(slideIndex);
25011                }
25012                currentIndex.value = slideIndex;
25013                //scroll the carousel hero image
25014                if (!scrollEvent) {
25015                    yield scrollIntoView(items[currentIndex.value], carouselItemContainer.value);
25016                }
25017                toggleControls();
25018            });
25019        }
25020        function scrollIntoView(elem, containerElem) {
25021            return vehicleCardDeck_awaiter(this, void 0, void 0, function* () {
25022                //NOTE: scrollIntoView() does not play well when scrolling multiple elements simultaneously
25023                //      so we have opted to leverage scrollTo which does allow this
25024                //      Additionally, scrollable items that are hidden will have a getBoundingClientRect() of 0.
25025                //      So, after scrolling the carousel in desktop view switching to mobile view will not show
25026                //      the highlighted thumbnail because we could not scroll it into view since it was hidden
25027                if (!elem) {
25028                    return;
25029                }
25030                if (!containerElem) {
25031                    return;
25032                }
25033                let position;
25034                yield (0,vehicleCardDeck_performanceHelpers/* doBeforeNextRepaint */.L)(() => {
25035                    position = elem.offsetLeft - (containerElem.getBoundingClientRect().width - elem.getBoundingClientRect().width) / 2;
25036                });
25037                containerElem.scrollTo({ left: position, behavior: "smooth" });
25038            });
25039        }
25040        function dispatchSwipeImageTagging(slideIndex) {
25041            let eventAction;
25042            let eventActionResult;
25043            if (currentIndex.value < slideIndex) {
25044                eventAction = "swipe_left";
25045                eventActionResult = "increase";
25046            }
25047            else if (currentIndex.value > slideIndex) {
25048                eventAction = "swipe_right";
25049                eventActionResult = "decrease";
25050            }
25051            else {
25052                return;
25053            }
25054            const taggingVehicleDetailsElement = carouselElement.value.closest("[data-vehicle-information]");
25055            const imageLinkElement = taggingVehicleDetailsElement === null || taggingVehicleDetailsElement === void 0 ? void 0 : taggingVehicleDetailsElement.querySelector(`[tabindex] a`);
25056            if (taggingVehicleDetailsElement && imageLinkElement) {
25057                const dataset = taggingVehicleDetailsElement.dataset;
25058                const SwipeEventData = {
25059                    affiliation: `${dataset.dotaggingAffiliation || ""}`,
25060                    card_name: `${dataset.dotaggingCardName || ""}`,
25061                    context: `${dataset.dotaggingContext || ""}`,
25062                    department: `${dataset.dotaggingDepartment || ""}`,
25063                    element_color: `${dataset.dotaggingElementColor || ""}`,
25064                    element_order: `${slideIndex + 1}`,
25065                    element_position: `${dataset.dotaggingElementPosition || ""}`,
25066                    element_subtype: "image",
25067                    element_text: `${dataset.dotaggingElementText || ""}`,
25068                    element_title: `${dataset.dotaggingElementTitle || ""}`,
25069                    element_type: `${dataset.dotaggingElementType || ""}`,
25070                    event: "media_interaction",
25071                    event_action: `${eventAction}`,
25072                    event_action_result: `${eventActionResult}`,
25073                    event_location: `${dataset.dotaggingEventLocation || ""}`,
25074                    event_owner: `${imageLinkElement.dataset.dotaggingEventOwner || ""}`,
25075                    flow_name: `${dataset.dotaggingFlowName || ""}`,
25076                    flow_outcome: `${dataset.dotaggingFlowOutcome || ""}`,
25077                    flow_stage: `${dataset.dotaggingFlowStage || ""}`,
25078                    item_category: `${dataset.dotaggingItemCategory || ""}`,
25079                    item_color: `${dataset.dotaggingItemColor || ""}`,
25080                    item_condition: `${dataset.dotaggingItemCondition || ""}`,
25081                    item_fuel_type: `${dataset.dotaggingItemFuelType || ""}`,
25082                    item_id: `${dataset.dotaggingItemId || ""}`,
25083                    item_make: `${dataset.dotaggingItemMake || ""}`,
25084                    item_model: `${dataset.dotaggingItemModel || ""}`,
25085                    item_number: `${dataset.dotaggingItemNumber || ""}`,
25086                    item_order: `${dataset.dotaggingItemOrder || ""}`,
25087                    item_price: `${dataset.dotaggingPrice || ""}`,
25088                    item_type: `${dataset.dotaggingItemType || ""}`,
25089                    item_variant: `${dataset.dotaggingItemVariant || ""}`,
25090                    item_year: `${dataset.dotaggingItemYear || ""}`,
25091                    link_url: `${imageLinkElement.getAttribute("href") || ""}`,
25092                    media_type: "gallery",
25093                    product_name: "SRP 2.0|Vehicle Item Details",
25094                };
25095                SwipeEventData.item_body_type = dataset.dotaggingItemBodyType || '';
25096                SwipeEventData.item_color_interior = dataset.dotaggingItemColorInterior || '';
25097                SwipeEventData.item_engine = dataset.dotaggingItemEngine || '';
25098                SwipeEventData.item_fuel_efficiency_city = dataset.dotaggingItemFuelEfficiencyCity || '';
25099                SwipeEventData.item_fuel_efficiency_highway = dataset.dotaggingItemFuelEfficiencyHighway || '';
25100                SwipeEventData.item_odometer = dataset.dotaggingItemOdometer || '';
25101                SwipeEventData.item_transmission = dataset.dotaggingItemTransmission || '';
25102                carouselElement.value.dispatchEvent(new CustomEvent("dotagging.event", {
25103                    bubbles: true,
25104                    detail: {
25105                        data: SwipeEventData
25106                    }
25107                }));
25108            }
25109        }
25110        return (_ctx, _cache) => {
25111            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
25112                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["hero-carousel hero-carousel--component", [`hero-carousel--${_ctx.model.CornerType}`,
25113                        { [`hero-carousel--signalsforyou-${_ctx.model.CornerType}`]: _ctx.model.IsSignalsForYou }]]),
25114                ref_key: "carouselElement",
25115                ref: carouselElement
25116            }, [
25117                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
25118                    class: "hero-carousel__items",
25119                    onTouchstart: _cache[0] || (_cache[0] = ($event) => (setTouchSwipe(true))),
25120                    tabindex: "0",
25121                    ref_key: "carouselItemContainer",
25122                    ref: carouselItemContainer
25123                }, [
25124                    ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(photoList.value, (detailImage, index) => {
25125                        return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
25126                            id: `hero-carousel__item--${index.toString()}-${_ctx.model.Vin}`,
25127                            class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["hero-carousel__item hero-carousel__item--loading", _ctx.model.CornerType]),
25128                            "data-carousel-index": index,
25129                            title: _ctx.model.PhotoLabel,
25130                            tabindex: "-1"
25131                        }, [
25132                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("a", {
25133                                class: "hero-carousel__item--viewvehicle stat-image-link",
25134                                ref_for: true,
25135                                ref: "viewVehicleLink",
25136                                href: _ctx.model.RedirectLocation,
25137                                "data-loc": `available inventory:${_ctx.model.Vin}`,
25138                                "data-dotagging-event": "media_interaction",
25139                                "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
25140                                "data-dotagging-event-action": "click",
25141                                "data-dotagging-event-action-result": "open",
25142                                "data-dotagging-element-order": index,
25143                                "data-dotagging-media-type": "gallery",
25144                                "data-dotagging-element-subtype": "hyperlink"
25145                            }, [
25146                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleImageCarouselHeroWrapper, {
25147                                    model: getWrapperModel(detailImage.TargetUrl, index + 1, index == 0, _ctx.model.VehicleUxPosition === 1, _ctx.model.Backgroun
25147dColorQueryParam, _ctx.model.VehicleNameHtmlEncoded, detailImage.DownloadDate, detailImage.Provider)
25148                                }, null, 8 /* PROPS */, ["model"]),
25149                                (hasRedirectLocation.value && isLastImage(index))
25150                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
25151                                        key: 0,
25152                                        class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(['hero-carousel__vdp-button-wrapper', { ['hero-carousel__vdp-button-wrapper-blurred']: _ctx.model.BlurCtaBackground }])
25153                                    }, [
25154                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
25155                                            class: "btn btn-lg btn-cta hero-carousel__view--more stat-button-link",
25156                                            "aria-label": viewMoreLabel.value,
25157                                            title: viewMoreLabel.value,
25158                                            "data-loc": `available inventory:${_ctx.model.Vin}`
25159                                        }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(viewMoreLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_vehicleImageCarouselvue_type_script_setup_true_lang_ts_hoisted_3)
25160                                    ], 2 /* CLASS */))
25161                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
25162                            ], 8 /* PROPS */, vehicleCardDeck_vehicleImageCarouselvue_type_script_setup_true_lang_ts_hoisted_2)
25163                        ], 10 /* CLASS, PROPS */, vehicleCardDeck_vehicleImageCarouselvue_type_script_setup_true_lang_ts_hoisted_1));
25164                    }), 256 /* UNKEYED_FRAGMENT */))
25165                ], 544 /* NEED_HYDRATION, NEED_PATCH */),
25166                (controlVisibility.value.all)
25167                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
25168                        key: 0,
25169                        class: "hero-carousel__controls",
25170                        ref_key: "controls",
25171                        ref: controls
25172                    }, [
25173                        (controlVisibility.value.previous)
25174                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_carouselControl, {
25175                                key: 0,
25176                                onControlClicked: carouselControlHandler,
25177                                "control-type": (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_CarouselControlType).Previous,
25178                                vin: _ctx.model.Vin
25179                            }, null, 8 /* PROPS */, ["control-type", "vin"]))
25180                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25181                        (controlVisibility.value.next)
25182                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_carouselControl, {
25183                                key: 1,
25184                                onControlClicked: carouselControlHandler,
25185                                "control-type": (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_CarouselControlType).Next,
25186                                vin: _ctx.model.Vin
25187                            }, null, 8 /* PROPS */, ["control-type", "vin"]))
25188                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
25189                    ], 512 /* NEED_PATCH */))
25190                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25191                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_carouselImageCounter, {
25192                    "current-slide": (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(currentIndex) + 1,
25193                    "total-count": _ctx.model.TotalImageCount,
25194                    "image-limit": _ctx.model.DetailedImageCount
25195                }, null, 8 /* PROPS */, ["current-slide", "total-count", "image-limit"])
25196            ], 2 /* CLASS */));
25197        };
25198    }
25199}));
25200
25201;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/vehicleImageCarousel.vue?vue&type=script&setup=true&lang=ts
25202 
25203// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
25203ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/vehicleImageCarousel.vue?vue&type=style&index=0&id=574006ad&lang=scss&scoped=true
25204var vehicleCardDeck_vehicleImageCarouselvue_type_style_index_0_id_574006ad_lang_scss_scoped_true = __webpack_require__(9912);
25205;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/vehicleImageCarousel.vue?vue&type=style&index=0&id=574006ad&lang=scss&scoped=true
25206
25207;// ./src/components/spaCosmos/vehicleCards/vehicleImageCarousel/vehicleImageCarousel.vue
25208
25209
25210
25211;
25212
25213
25214const vehicleCardDeck_vehicleImageCarousel_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_vehicleImageCarouselvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-574006ad"]])
25215
25216/* harmony default export */ const vehicleCardDeck_vehicleImageCarousel = (vehicleCardDeck_vehicleImageCarousel_exports_);
25217;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleImage/vehicleImage.vue?vue&type=script&setup=true&lang=ts
25218
25219
25220const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-image" };
25221const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_2 = { class: "vehicle-image__image-wrapper" };
25222const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_3 = {
25223    key: 1,
25224    class: "vehicle-image__single-image"
25225};
25226const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_4 = ["href", "data-loc", "aria-label", "data-dotagging-affiliation"];
25227const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_5 = { key: 0 };
25228const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_6 = ["media", "srcset"];
25229const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_7 = ["media", "srcset"];
25230const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_8 = ["alt", "title", "src", "data-img", "data-thumbnail-vin", "data-dotagging-image-provider"];
25231const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_9 = { key: 1 };
25232const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_10 = ["srcset"];
25233const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_11 = ["srcset"];
25234const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_12 = ["alt", "title", "src", "data-img", "data-thumbnail-vin", "data-dotagging-image-provider"];
25235const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_13 = {
25236    key: 2,
25237    class: "missing-image"
25238};
25239const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_14 = { class: "missing-image__title" };
25240const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_15 = { class: "missing-image__subtitle" };
25241
25242
25243
25244/* harmony default export */ const vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
25245    __name: 'vehicleImage',
25246    props: {
25247        model: {}
25248    },
25249    setup(__props) {
25250        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
25251        const priceDropLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("PRICE_DROP"));
25252        const specialLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("SPECIAL"));
25253        const specialOfferInvLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("SPECIAL_OFFER_INV"));
25254        const viewDetailsLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("VIEW_DETAILS"));
25255        const photoUnavailabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("VEHICLE_PHOTOS_UNAVAILABLE"));
25256        const checkBackSoonLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("PLEASE_CHECK_BACK_SOON"));
25257        const numberOfBreakpoints = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.model.SrpImageBreakpointWidthPairs.length - 1);
25258        const isMissingImage = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.model.VehiclePhotoSrc.toLowerCase().indexOf("missing") > -1);
25259        const altText = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.model.ImageAltText);
25260        const props = __props;
25261        return (_ctx, _cache) => {
25262            var _a, _b;
25263            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_1, [
25264                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_2, [
25265                    (_ctx.model.HasInventoryOrStockPhotos)
25266                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* resolveDynamicComponent */.$y)(vehicleCardDeck_vehicleImageCarousel), {
25267                            key: 0,
25268                            model: _ctx.model.VehicleImageCarouselModel
25269                        }, null, 8 /* PROPS */, ["model"]))
25270                        : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_3, [
25271                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("a", {
25272                                class: "hero-carousel__item--viewvehicle stat-image-link",
25273                                href: _ctx.model.VehicleDetailUrl,
25274                                "data-loc": `available inventory:${_ctx.model.Vin}`,
25275                                "aria-label": viewDetailsLabel.value,
25276                                "data-dotagging-event": "media_interaction",
25277                                "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
25278                                "data-dotagging-event-action": "click",
25279                                "data-dotagging-event-action-result": "open",
25280                                "data-dotagging-affiliation": _ctx.model.DealerName,
25281                                "data-dotagging-element-subtype": "image",
25282                                "data-dotagging-media-type": "gallery",
25283                                "data-dotagging-element-position": "top"
25284                            }, [
25285                                (_ctx.model.SrpImageBreakpointWidthPairs.length > 1)
25286                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("picture", vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_5, [
25287                                        ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.SrpImageBreakpointWidthPairs, (pair) => {
25288                                            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("source", {
25289                                                media: `max-width:${pair.Breakpoint}px`,
25290                                                srcset: `${_ctx.model.VehiclePhotoSrc}?width=${pair.Width}`
25291                                            }, null, 8 /* PROPS */, vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_6));
25292                                        }), 256 /* UNKEYED_FRAGMENT */)),
25293                                        (_ctx.model.SrpImageBreakpointWidthPairs.length > 1)
25294                                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("source", {
25295                                                key: 0,
25296                                                media: `min-width:${_ctx.model.SrpImageBreakpointWidthPairs[numberOfBreakpoints.value].Width}px`,
25297                                                srcset: `${_ctx.model.VehiclePhotoSrc}?width=${_ctx.model.SrpImageBreakpointWidthPairs[numberOfBreakpoints.value].Width}`
25298                                            }, null, 8 /* PROPS */, vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_7))
25299                                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25300                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
25301                                            loading: "lazy",
25302                                            class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(`vehicle-image__image vehicle-image__image--${_ctx.model.CornerType} img-responsive margin-auto`),
25303                                            alt: altText.value,
25304                                            title: altText.value,
25305                                            src: _ctx.model.VehiclePhotoSrc,
25306                                            "data-img": _ctx.model.VehiclePhotoSrc,
25307                                            "data-thumbnail-vin": _ctx.model.Vin,
25308                                            "data-dotagging-image-provider": (_a = _ctx.model.ImageProvider) !== null && _a !== void 0 ? _a : ''
25309                                        }, null, 10 /* CLASS, PROPS */, vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_8)
25310                                    ]))
25311                                    : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("picture", vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_9, [
25312                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("source", {
25313                                            media: "(max-width: 991px)",
25314                                            srcset: `${_ctx.model.VehiclePhotoSrc}?width=992`
25315                                        }, null, 8 /* PROPS */, vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_10),
25316                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("source", {
25317                                            media: "(min-width: 992px)",
25318                                            srcset: `${_ctx.model.VehiclePhotoSrc}?width=1500`
25319                                        }, null, 8 /* PROPS */, vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_11),
25320                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
25321                                            loading: "lazy",
25322                                            class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(`vehicle-image__image vehicle-image__image--${_ctx.model.CornerType} img-responsive margin-auto`),
25323                                            alt: altText.value,
25324                                            title: altText.value,
25325                                            src: _ctx.model.VehiclePhotoSrc,
25326                                            "data-img": _ctx.model.VehiclePhotoSrc,
25327                                            "data-thumbnail-vin": _ctx.model.Vin,
25328                                            "data-dotagging-image-provider": (_b = _ctx.model.ImageProvider) !== null && _b !== void 0 ? _b : ''
25329                                        }, null, 10 /* CLASS, PROPS */, vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_12)
25330                                    ]))
25331                            ], 8 /* PROPS */, vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_4)
25332                        ])),
25333                    (isMissingImage.value)
25334                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_13, [
25335                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("p", vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_14, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(photoUnavailabel.value), 1 /* TEXT */),
25336                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("p", vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts_hoisted_15, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(checkBackSoonLabel.value), 1 /* TEXT */)
25337                        ]))
25338                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
25339                ])
25340            ]));
25341        };
25342    }
25343}));
25344
25345;// ./src/components/spaCosmos/vehicleCards/vehicleImage/vehicleImage.vue?vue&type=script&setup=true&lang=ts
25346 
25347;// ./src/components/spaCosmos/vehicleCards/vehicleImage/vehicleImage.vue
25348
25349
25350
25351const vehicleCardDeck_vehicleImage_exports_ = vehicleCardDeck_vehicleImagevue_type_script_setup_true_lang_ts;
25352
25353/* harmony default export */ const vehicleCardDeck_vehicleImage = (vehicleCardDeck_vehicleImage_exports_);
25354;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/consumerReports/consumerReports.vue?vue&type=script&setup=true&lang=ts
25355
25356
25357const vehicleCardDeck_consumerReportsvue_type_script_setup_true_lang_ts_hoisted_1 = {
25358    key: 0,
25359    class: "icon-img__benefit"
25360};
25361const vehicleCardDeck_consumerReportsvue_type_script_setup_true_lang_ts_hoisted_2 = ["id", "data-oem", "data-vehicle-year", "data-type", "data-loc"];
25362
25363
25364/* harmony default export */ const vehicleCardDeck_consumerReportsvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
25365    __name: 'consumerReports',
25366    props: {
25367        model: {}
25368    },
25369    setup(__props) {
25370        const globalStore = (0,vehicleCardDeck_cosmosSrp_globalStore/* useGlobalStore */.o)();
25371        const props = __props;
25372        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => {
25373            globalStore.vehicleStore.addConsumerReportsScript();
25374        });
25375        return (_ctx, _cache) => {
25376            return (_ctx.model.HasConsumerReport)
25377                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_consumerReportsvue_type_script_setup_true_lang_ts_hoisted_1, [
25378                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
25379                        class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["consumerReports stat-icon-link", _ctx.model.ConsumerReport]),
25380                        id: `${_ctx.model.ConsumerReport}-${_ctx.model.VIN}`,
25381                        "data-oem": _ctx.model.OemName,
25382                        "data-vehicle-year": _ctx.model.VehicleYear,
25383                        "data-type": _ctx.model.Type,
25384                        "data-tagging-event": "linkClick",
25385                        "data-tagging-value": "CR Trust Mark",
25386                        "data-loc": `available inventory:${_ctx.model.VIN}`,
25387                        "data-dotagging-event": "cta_interaction",
25388                        "data-dotagging-element-type": "item_details",
25389                        "data-dotagging-element-subtype": "hyperlink",
25390                        "data-dotagging-event-action": "click",
25391                        "data-dotagging-event-action-result": "open",
25392                        "data-dotagging-element-order": "0",
25393                        "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
25394                        "data-dotagging-value": "CR Trust Mark"
25395                    }, null, 10 /* CLASS, PROPS */, vehicleCardDeck_consumerReportsvue_type_script_setup_true_lang_ts_hoisted_2)
25396                ]))
25397                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true);
25398        };
25399    }
25400}));
25401
25402;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/consumerReports/consumerReports.vue?vue&type=script&setup=true&lang=ts
25403 
25404;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/consumerReports/consumerReports.vue
25405
25406
25407
25408const vehicleCardDeck_consumerReports_exports_ = vehicleCardDeck_consumerReportsvue_type_script_setup_true_lang_ts;
25409
25410/* harmony default export */ const vehicleCardDeck_consumerReports = (vehicleCardDeck_consumerReports_exports_);
25411;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/cpoImage.vue?vue&type=script&setup=true&lang=ts
25412
25413
25414const vehicleCardDeck_cpoImagevue_type_script_setup_true_lang_ts_hoisted_1 = ["src", "title", "alt"];
25415/* harmony default export */ const vehicleCardDeck_cpoImagevue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
25416    __name: 'cpoImage',
25417    props: {
25418        model: {}
25419    },
25420    setup(__props) {
25421        const props = __props;
25422        return (_ctx, _cache) => {
25423            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("img", {
25424                src: _ctx.model.cpoImage,
25425                class: "img-responsive margin-auto",
25426                title: _ctx.model.cpoAltTitle,
25427                alt: _ctx.model.cpoAltTitle,
25428                loading: "lazy"
25429            }, null, 8 /* PROPS */, vehicleCardDeck_cpoImagevue_type_script_setup_true_lang_ts_hoisted_1));
25430        };
25431    }
25432}));
25433
25434;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/cpoImage.vue?vue&type=script&setup=true&lang=ts
25435 
25436;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/cpoImage.vue
25437
25438
25439
25440const vehicleCardDeck_cpoImage_exports_ = vehicleCardDeck_cpoImagevue_type_script_setup_true_lang_ts;
25441
25442/* harmony default export */ const vehicleCardDeck_cpoImage = (vehicleCardDeck_cpoImage_exports_);
25443;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/featureLogos/featureLogoType.ts
25444var vehicleCardDeck_FeatureLogoType;
25445(function (FeatureLogoType) {
25446    FeatureLogoType[FeatureLogoType["FeatureLogo"] = 0] = "FeatureLogo";
25447    FeatureLogoType[FeatureLogoType["FeatureLogoWithDisclaimer"] = 1] = "FeatureLogoWithDisclaimer";
25448    FeatureLogoType[FeatureLogoType["Rebate"] = 2] = "Rebate";
25449    FeatureLogoType[FeatureLogoType["TextFeatureWithDisclaimer"] = 3] = "TextFeatureWithDisclaimer";
25450    FeatureLogoType[FeatureLogoType["Text"] = 4] = "Text";
25451})(vehicleCardDeck_FeatureLogoType || (vehicleCardDeck_FeatureLogoType = {}));
25452
25453;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/featureLogos/featureLogo.vue?vue&type=script&setup=true&lang=ts
25454
25455
25456const vehicleCardDeck_featureLogovue_type_script_setup_true_lang_ts_hoisted_1 = ["src", "alt", "title"];
25457/* harmony default export */ const vehicleCardDeck_featureLogovue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
25458    __name: 'featureLogo',
25459    props: {
25460        model: {
25461            type: Object,
25462            required: true
25463        },
25464        cadillacInTransitEta: {
25465            type: String
25466        },
25467        imageClass: {
25468            type: String,
25469            default: "img-responsive"
25470        }
25471    },
25472    setup(__props) {
25473        const props = __props;
25474        return (_ctx, _cache) => {
25475            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
25476                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
25477                    src: __props.model.ImageUrl,
25478                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(__props.imageClass),
25479                    alt: __props.model.AltText,
25480                    title: __props.model.AltText,
25481                    loading: "lazy"
25482                }, null, 10 /* CLASS, PROPS */, vehicleCardDeck_featureLogovue_type_script_setup_true_lang_ts_hoisted_1),
25483                (__props.model.ShowCadillacInTransitEta)
25484                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 0 }, [
25485                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(__props.cadillacInTransitEta), 1 /* TEXT */)
25486                    ], 64 /* STABLE_FRAGMENT */))
25487                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
25488            ], 64 /* STABLE_FRAGMENT */));
25489        };
25490    }
25491}));
25492
25493;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/featureLogos/featureLogo.vue?vue&type=script&setup=true&lang=ts
25494 
25495;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/featureLogos/featureLogo.vue
25496
25497
25498
25499const vehicleCardDeck_featureLogo_exports_ = vehicleCardDeck_featureLogovue_type_script_setup_true_lang_ts;
25500
25501/* harmony default export */ const vehicleCardDeck_featureLogo = (vehicleCardDeck_featureLogo_exports_);
25502;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/featureLogos/featureLogos.vue?vue&type=script&setup=true&lang=ts
25503
25504
25505const vehicleCardDeck_featureLogosvue_type_script_setup_true_lang_ts_hoisted_1 = ["data-loc", "href"];
25506const vehicleCardDeck_featureLogosvue_type_script_setup_true_lang_ts_hoisted_2 = ["data-title", "data-content"];
25507
25508
25509
25510
25511const vehicleCardDeck_DisclaimerLabel = 'DISCLAIMER';
25512/* harmony default export */ const vehicleCardDeck_featureLogosvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
25513    __name: 'featureLogos',
25514    props: {
25515        model: {}
25516    },
25517    setup(__props) {
25518        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
25519        const props = __props;
25520        const labelDisclaimer = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel(vehicleCardDeck_DisclaimerLabel));
25521        function isDisclaimerType(logoType) {
25522            return (logoType === vehicleCardDeck_FeatureLogoType.FeatureLogoWithDisclaimer || logoType === vehicleCardDeck_FeatureLogoType.TextFeatureWithDisclaimer);
25523        }
25524        return (_ctx, _cache) => {
25525            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.Logos, (logo) => {
25526                var _a;
25527                return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
25528                    key: logo.FeatureName,
25529                    class: "icon-img margin-right-1x margin-bottom-1x feature-logo"
25530                }, [
25531                    (logo.LogoType === (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_FeatureLogoType).FeatureLogo)
25532                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 0 }, [
25533                            (logo.HasLinkUrl)
25534                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("a", (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* mergeProps */.v6)({
25535                                    key: 0,
25536                                    class: ["icon-img__benefit stat-image-link", logo.CustomClass],
25537                                    "data-loc": `feature logos:${(_a = logo.FeatureName) === null || _a === void 0 ? void 0 : _a.toLowerCase()}`,
25538                                    target: "_blank",
25539                                    href: logo.LinkUrl,
25540                                    ref_for: true
25541                                }, logo.ClickTaggingAttrObj), [
25542                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_featureLogo, {
25543                                        model: logo,
25544                                        "cadillac-in-transit-eta": _ctx.model.CadillacInTransitEta
25545                                    }, null, 8 /* PROPS */, ["model", "cadillac-in-transit-eta"])
25546                                ], 16 /* FULL_PROPS */, vehicleCardDeck_featureLogosvue_type_script_setup_true_lang_ts_hoisted_1))
25547                                : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_featureLogo, {
25548                                    key: 1,
25549                                    model: logo,
25550                                    "cadillac-in-transit-eta": _ctx.model.CadillacInTransitEta
25551                                }, null, 8 /* PROPS */, ["model", "cadillac-in-transit-eta"]))
25552                        ], 64 /* STABLE_FRAGMENT */))
25553                        : (isDisclaimerType(logo.LogoType))
25554                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("button", {
25555                                key: 1,
25556                                type: "button",
25557                                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["icon-img__button icon-img__benefit stat-disclaim", logo.CustomClass]),
25558                                "data-toggle": "modal",
25559                                "data-target": "#moreInfoModal",
25560                                "aria-haspopup": "dialog",
25561                                "data-title": logo.DisclaimerTitle ? logo.DisclaimerTitle : labelDisclaimer.value,
25562                                "data-content": logo.Disclaimer,
25563                                "data-loc": "available inventory",
25564                                "data-dotagging-event": "cta_interaction",
25565                                "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
25566                                "data-dotagging-event-action": "click",
25567                                "data-dotagging-event-action-result": "popup",
25568                                "data-dotagging-element-type": "item_details",
25569                                "data-dotagging-element-order": "0",
25570                                "data-dotagging-element-subtype": "cta_button"
25571                            }, [
25572                                (logo.LogoType === (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_FeatureLogoType).TextFeatureWithDisclaimer)
25573                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 0 }, [
25574                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(logo.FeatureName) + " ", 1 /* TEXT */),
25575                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_featureLogo, {
25576                                            model: logo,
25577                                            "image-class": "disclaimerIcon",
25578                                            "cadillac-in-transit-eta": _ctx.model.CadillacInTransitEta
25579                                        }, null, 8 /* PROPS */, ["model", "cadillac-in-transit-eta"])
25580                                    ], 64 /* STABLE_FRAGMENT */))
25581                                    : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_featureLogo, {
25582                                        key: 1,
25583                                        model: logo,
25584                                        "cadillac-in-transit-eta": _ctx.model.CadillacInTransitEta
25585                                    }, null, 8 /* PROPS */, ["model", "cadillac-in-transit-eta"]))
25586                            ], 10 /* CLASS, PROPS */, vehicleCardDeck_featureLogosvue_type_script_setup_true_lang_ts_hoisted_2))
25587                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
25588                ]));
25589            }), 128 /* KEYED_FRAGMENT */));
25590        };
25591    }
25592}));
25593
25594;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/featureLogos/featureLogos.vue?vue&type=script&setup=true&lang=ts
25595 
25596;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/featureLogos/featureLogos.vue
25597
25598
25599
25600const vehicleCardDeck_featureLogos_exports_ = vehicleCardDeck_featureLogosvue_type_script_setup_true_lang_ts;
25601
25602/* harmony default export */ const vehicleCardDeck_featureLogos = (vehicleCardDeck_featureLogos_exports_);
25603;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/manufacturerIcons.vue?vue&type=script&setup=true&lang=ts
25604
25605
25606const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_1 = {
25607    key: 0,
25608    class: "icon-custom icon-custom--bmw border-cta text-cta text-center small margin-right-1x margin-bottom-1x"
25609};
25610const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_2 = ["data-content"];
25611const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_3 = ["src", "title", "alt"];
25612const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_4 = {
25613    key: 1,
25614    class: "icon-custom icon-custom--fca border-cta text-cta text-center small margin-right-1x margin-bottom-1x"
25615};
25616const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_5 = ["data-content"];
25617const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_6 = ["src", "title", "alt"];
25618const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_7 = {
25619    key: 2,
25620    class: "icon-custom icon-custom--hyundai margin-right-1x margin-bottom-1x"
25621};
25622const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_8 = {
25623    type: "button",
25624    class: "oem-hyundai__cpo--manu-logo-button stat-logo",
25625    "data-toggle": "modal",
25626    "data-target": "#hyundaiCpoModal",
25627    "aria-haspopup": "dialog",
25628    "data-loc": "available inventory"
25629};
25630const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_9 = ["src", "title", "alt"];
25631const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_10 = {
25632    key: 3,
25633    class: "icon-custom icon-custom--default border-cta text-cta text-center small margin-right-1x margin-bottom-1x cursorPointer"
25634};
25635const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_11 = ["href"];
25636const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_12 = {
25637    key: 0,
25638    class: "icon-img margin-right-1x margin-bottom-1x"
25639};
25640const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_13 = ["href"];
25641const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_14 = ["src"];
25642const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_15 = ["innerHTML"];
25643const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_16 = {
25644    key: 5,
25645    class: "icon-img margin-right-1x margin-bottom-1x"
25646};
25647const vehicleCardDeck_hoisted_17 = ["innerHTML"];
25648const vehicleCardDeck_hoisted_18 = ["src", "alt"];
25649
25650
25651
25652
25653
25654/* harmony default export */ const vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
25655    __name: 'manufacturerIcons',
25656    props: {
25657        model: {}
25658    },
25659    setup(__props) {
25660        const props = __props;
25661        const toggleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService);
25662        const cpoImageModel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
25663            return {
25664                cpoImage: props.model.CpoImage,
25665                cpoAltTitle: props.model.CpoAltTitle
25666            };
25667        });
25668        return (_ctx, _cache) => {
25669            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
25670                (_ctx.model.ShowBmwCpoLogo)
25671                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_1, [
25672                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
25673                            type: "button",
25674                            class: "oem-bmw__cpo--manu-logo-button stat-logo",
25675                            "data-toggle": "modal",
25676                            "data-target": "#moreInfoModal",
25677                            "aria-haspopup": "dialog",
25678                            "data-title": "The BMW Certified Advantage:",
25679                            "data-content": _ctx.model.BmwCpoModalContent,
25680                            "data-loc": "available inventory"
25681                        }, [
25682                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
25683                                src: _ctx.model.CpoImage,
25684                                class: "img-responsive margin-auto",
25685                                title: _ctx.model.CpoAltTitle,
25686                                alt: _ctx.model.CpoAltTitle,
25687                                loading: "lazy"
25688                            }, null, 8 /* PROPS */, vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_3)
25689                        ], 8 /* PROPS */, vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_2)
25690                    ]))
25691                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25692                (_ctx.model.UseFcaGoldCpoModal)
25693                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_4, [
25694                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
25695                            type: "button",
25696                            class: "oem-fca__cpo--manu-logo-button stat-logo",
25697                            "data-toggle": "modal",
25698                            "data-target": "#moreInfoModal",
25699                            "aria-haspopup": "dialog",
25700                            "data-content": _ctx.model.FcaGoldCpoModalContent,
25701                            "data-loc": "available inventory"
25702                        }, [
25703                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
25704                                src: _ctx.model.CpoImage,
25705                                class: "img-responsive margin-auto",
25706                                title: _ctx.model.CpoAltTitle,
25707                                alt: _ctx.model.CpoAltTitle,
25708                                loading: "lazy"
25709                            }, null, 8 /* PROPS */, vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_6)
25710                        ], 8 /* PROPS */, vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_5)
25711                    ]))
25712                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25713                (_ctx.model.ShowHyundaiCpo)
25714                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_7, [
25715                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_8, [
25716                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
25717                                src: _ctx.model.CpoImage,
25718                                class: "img-responsive margin-auto",
25719                                title: _ctx.model.CpoAltTitle,
25720                                alt: _ctx.model.CpoAltTitle,
25721                                loading: "lazy"
25722                            }, null, 8 /* PROPS */, vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_9)
25723                        ])
25724                    ]))
25725                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25726                (_ctx.model.ShowDefaultCpoLogo)
25727                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_10, [
25728                        (_ctx.model.UseCpoLink)
25729                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("a", {
25730                                key: 0,
25731                                href: _ctx.model.CpoLink,
25732                                class: "stat-image-link",
25733                                "data-loc": "available inventory",
25734                                rel: "noopener",
25735                                target: "_blank"
25736                            }, [
25737                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_cpoImage, { model: cpoImageModel.value }, null, 8 /* PROPS */, ["model"])
25738                            ], 8 /* PROPS */, vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_11))
25739                            : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_cpoImage, {
25740                                key: 1,
25741                                model: cpoImageModel.value
25742                            }, null, 8 /* PROPS */, ["model"]))
25743                    ]))
25744                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25745                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_featureLogos, {
25746                    model: _ctx.model.FeatureLogosViewModel
25747                }, null, 8 /* PROPS */, ["model"]),
25748                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_consumerReports, {
25749                    model: _ctx.model.ConsumerReportsViewModel
25750                }, null, 8 /* PROPS */, ["model"]),
25751                (_ctx.model.IsUsed)
25752                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 4 }, [
25753                        (_ctx.model.HasCpoReportImage)
25754                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_12, [
25755                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("a", {
25756                                    href: _ctx.model.CpoReport,
25757                                    class: "stat-image-link",
25758                                    "data-loc": "available inventory",
25759                                    rel: "noopener nofollow",
25760                                    target: "_blank"
25761                                }, [
25762                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
25763                                        src: _ctx.model.CpoReportImage,
25764                                        class: "img-responsive margin-auto",
25765                                        alt: "Acura 182-Point Inspection",
25766                                        title: "Acura 182-Point Inspection",
25767                                        loading: "lazy"
25768                                    }, null, 8 /* PROPS */, vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_14)
25769                                ], 8 /* PROPS */, vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_13)
25770                            ]))
25771                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25772                        (_ctx.model.HasCarHistoryReport)
25773                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
25774                                key: 1,
25775                                class: "icon-img margin-right-1x margin-bottom-1x",
25776                                innerHTML: _ctx.model.CarHistoryReport
25777                            }, null, 8 /* PROPS */, vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_15))
25778                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
25779                    ], 64 /* STABLE_FRAGMENT */))
25780                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25781                (_ctx.model.ShowFordSmartBonus)
25782                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts_hoisted_16, [
25783                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("template", {
25784                            innerHTML: _ctx.model.FordSmartBonus
25785                        }, null, 8 /* PROPS */, vehicleCardDeck_hoisted_17)
25786                    ]))
25787                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
25788                ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.RebateImages, (rebateImage, index) => {
25789                    return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
25790                        class: "icon-img margin-right-1x margin-bottom-1x",
25791                        key: `rebateImage${index.toString()}`
25792                    }, [
25793                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
25794                            src: rebateImage.ImageUrl,
25795                            alt: rebateImage.AltText
25796                        }, null, 8 /* PROPS */, vehicleCardDeck_hoisted_18)
25797                    ]));
25798                }), 128 /* KEYED_FRAGMENT */))
25799            ], 64 /* STABLE_FRAGMENT */));
25800        };
25801    }
25802}));
25803
25804;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/manufacturerIcons.vue?vue&type=script&setup=true&lang=ts
25805 
25806;// ./src/components/spaCosmos/vehicleCards/vehicleManufacturerIcons/manufacturerIcons.vue
25807
25808
25809
25810const vehicleCardDeck_manufacturerIcons_exports_ = vehicleCardDeck_manufacturerIconsvue_type_script_setup_true_lang_ts;
25811
25812/* harmony default export */ const vehicleCardDeck_manufacturerIcons = (vehicleCardDeck_manufacturerIcons_exports_);
25813;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/dgDisclaimersModal/dgDisclaimersModal.vue?vue&type=script&setup=true&lang=ts
25814
25815
25816const vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_1 = ["id", "aria-labelledby"];
25817const vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_2 = { class: "modal-dialog modal-lg" };
25818const vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_3 = { class: "modal-content" };
25819const vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_4 = { class: "modal-header" };
25820const vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_5 = ["id"];
25821const vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_6 = { class: "modal-body" };
25822const vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_7 = ["id", "innerHTML"];
25823const vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_8 = ["id", "innerHTML"];
25824
25825
25826/* harmony default export */ const vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
25827    __name: 'dgDisclaimersModal',
25828    props: {
25829        model: {}
25830    },
25831    setup(__props) {
25832        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
25833        const modalContainer = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(null);
25834        // computed translation labels
25835        const disclosuresLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getTitle("DISCLOSURES")}`);
25836        let superscriptCount = 0;
25837        const props = __props;
25838        const modalObserver = new MutationObserver(mutationObserverCallback);
25839        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => {
25840            observeModal();
25841        });
25842        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onBeforeUnmount */.xo)(() => {
25843            modalObserver.disconnect();
25844        });
25845        function incrementSuperscriptCount() {
25846            return ++superscriptCount;
25847        }
25848        function getDisclaimer(count, disclaimer) {
25849            return `${count}. ${disclaimer}`;
25850        }
25851        function observeModal() {
25852            modalObserver.observe(modalContainer.value, { attributes: true, attributeFilter: ['style'] });
25853        }
25854        function onStyleChange() {
25855            var _a, _b;
25856            if (navigator.userAgent.includes('Chrome') || navigator.userAgent.includes('Firefox')) {
25857                (_a = document.querySelector('.selectedDgDisclaimer')) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ behavior: "smooth", block: "start", inline: "nearest" });
25858            }
25859            else {
25860                (_b = document.querySelector('.selectedDgDisclaimer')) === null || _b === void 0 ? void 0 : _b.scrollIntoView(true);
25861            }
25862        }
25863        ;
25864        function mutationObserverCallback(mutations) {
25865            for (const mutation of mutations) {
25866                const newElem = mutation.target;
25867                if (newElem.style.display === 'block') {
25868                    onStyleChange();
25869                }
25870            }
25871        }
25872        return (_ctx, _cache) => {
25873            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
25874                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" Start Digital Garage Disclaimers Modal "),
25875                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
25876                    class: "modal fade dgDisclaimersModal",
25877                    id: `dgDisclaimersModal-${_ctx.model.VehicleVin}`,
25878                    tabindex: "-1",
25879                    role: "dialog",
25880                    "aria-labelledby": `dgDisclaimersModalTitle-${_ctx.model.VehicleVin}`,
25881                    ref_key: "modalContainer",
25882                    ref: modalContainer
25883                }, [
25884                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_2, [
25885                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_3, [
25886                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_4, [
25887                                _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
25888                                    type: "button",
25889                                    class: "close stat-button-close",
25890                                    "data-loc": "available inventory",
25891                                    "data-dismiss": "modal",
25892                                    "aria-hidden": "true"
25893                                }, "×", -1 /* HOISTED */)),
25894                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h3", {
25895                                    id: `dgDisclaimersModalTitle-${_ctx.model.VehicleVin}`,
25896                                    class: "modal-title"
25897                                }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(disclosuresLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_5)
25898                            ]),
25899                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_6, [
25900                                ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.DigitalGarageEfcDisclaimerValues, (efcDesc, index) => {
25901                                    return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
25902                                        class: "dgDisclaimer",
25903                                        key: index,
25904                                        id: `dgDisclaimer${(Number(index) + 1)}-${_ctx.model.VehicleVin}`,
25905                                        innerHTML: getDisclaimer((Number(index) + 1), efcDesc)
25906                                    }, null, 8 /* PROPS */, vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_7));
25907                                }), 128 /* KEYED_FRAGMENT */)),
25908                                ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.DigitalGarageRtiDisclaimerDescriptions, (rtiDesc, index) => {
25909                                    return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
25910                                        class: "dgDisclaimer",
25911                                        key: index,
25912                                        id: `dgDisclaimer${(Number(index) + 1)}-${_ctx.model.VehicleVin}`,
25913                                        innerHTML: getDisclaimer((Number(index) + 1), rtiDesc)
25914                                    }, null, 8 /* PROPS */, vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_8));
25915                                }), 128 /* KEYED_FRAGMENT */))
25916                            ])
25917                        ])
25918                    ])
25919                ], 8 /* PROPS */, vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts_hoisted_1),
25920                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" End Digital Garage Disclaimers Modal ")
25921            ], 2112 /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */));
25922        };
25923    }
25924}));
25925
25926;
25926// ./src/components/spaCosmos/vehicleCards/vehicleOverview/dgDisclaimersModal/dgDisclaimersModal.vue?vue&type=script&setup=true&lang=ts
25927 
25928;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/dgDisclaimersModal/dgDisclaimersModal.vue
25929
25930
25931
25932const vehicleCardDeck_dgDisclaimersModal_exports_ = vehicleCardDeck_dgDisclaimersModalvue_type_script_setup_true_lang_ts;
25933
25934/* harmony default export */ const vehicleCardDeck_dgDisclaimersModal = (vehicleCardDeck_dgDisclaimersModal_exports_);
25935;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/dgDisclaimersModal/DgDisclaimersModalModel.ts
25936class vehicleCardDeck_DgDisclaimersModalModel {
25937}
25938
25939;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleDropdown/vehicleDropdownModel.ts
25940class vehicleCardDeck_VehicleDropdownModel {
25941}
25942
25943// EXTERNAL MODULE: ./src/services/toggles/toggleService.ts + 1 modules
25944var vehicleCardDeck_toggles_toggleService = __webpack_require__(7363);
25945;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleDropdown/vehicleDropdown.vue?vue&type=script&setup=true&lang=ts
25946
25947
25948const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-overview__dropdown" };
25949const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_2 = { class: "vehicle-dropdown" };
25950const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_3 = ["id", "aria-label", "title", "data-dotagging-element-text"];
25951const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_4 = ["aria-labelledby"];
25952const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_5 = { class: "vehicle-dropdown__item vehicle-dropdown__item--copy-link" };
25953const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_6 = { class: "vehicle-dropdown__item vehicle-dropdown__item--share" };
25954const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_7 = ["data-vdp-url", "data-vehicle-id", "data-vin", "data-vehicle-name", "data-dealer-id", "data-altid"];
25955const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_8 = { class: "dropdown-button__label" };
25956const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_9 = { class: "vehicle-dropdown__item vehicle-dropdown__item--print" };
25957const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_10 = ["data-vin", "data-dotagging-link-url"];
25958const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_11 = { class: "vehicle-dropdown__label" };
25959const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_12 = { class: "vehicle-dropdown__item vehicle-dropdown__item--details" };
25960const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_13 = ["href"];
25961const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_14 = { class: "vehicle-dropdown__label" };
25962
25963
25964
25965const vehicleCardDeck_copyIconUrl = "https://cdn.dealeron.com/static/industry-automotive/icons/copy.svg";
25966const vehicleCardDeck_shareIconUrl = "https://cdn.dealeron.com/static/industry-automotive/icons/share-2.svg";
25967const vehicleCardDeck_printIconUrl = "https://cdn.dealeron.com/static/industry-automotive/icons/print.svg";
25968const vehicleCardDeck_detailsIconUrl = "https://cdn.dealeron.com/static/industry-automotive/icons/car-icon.svg";
25969/* harmony default export */ const vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
25970    __name: 'vehicleDropdown',
25971    props: {
25972        model: {}
25973    },
25974    setup(__props) {
25975        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
25976        const storeProvider = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.StoreProvider);
25977        const toggleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService);
25978        const globalStore = storeProvider.getGlobalStore();
25979        const vehicleCardAlignmentToggle = toggleService.getToggleStatus(vehicleCardDeck_toggles_toggleService/* Toggle */.lM.VehicleCardAlignment_DO48222);
25980        // computed translation labels
25981        const viewDetailsLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getButton("VIEW_DETAILS")}`);
25982        const printLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("PRINT")}`);
25983        const shareLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("SHARE")}`);
25984        const copyLinkLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getButton("COPY_LINK")}`);
25985        const copiedLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getButton("COPIED")}!`);
25986        const actionsLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("ACTIONS")}`);
25987        const offerType = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
25988            const offerTypeEl = document.querySelector("ul[data-priceStak-tab-container] > li.active > button");
25989            if (offerTypeEl) {
25990                return offerTypeEl.dataset.pricestakTab !== "" ? offerTypeEl.dataset.pricestakTab : "buy";
25991            }
25992        });
25993        const getPrintUrl = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `print-email-vehicledetailsvin.aspx?vin=${props.model.VehicleVin}&childId=${props.model.DealerId}&offerType=${offerType.value}?print=true`);
25994        const getTaggingLinkUrl = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${window.location.hostname}/${getPrintUrl.value}`);
25995        const isVehicleDropdownOpen = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => globalStore.getActiveVehicleDropdown == props.model.VehicleVin);
25996        const shareVehicleButtonImage = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)();
25997        const printButtonImage = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)();
25998        const copyButtonImage = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)();
25999        const copyButtonLinkLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)();
26000        const isCopying = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
26001        const deatailsButtonImage = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)();
26002        const currentCopyLinkLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(copyLinkLabel.value);
26003        const props = __props;
26004        document.addEventListener("click", event => {
26005            if (!event.target.closest('[data-type="dropdown"], [data-type="dropdown-button"]')) {
26006                globalStore.setActiveVehicleDropdown('');
26007            }
26008        });
26009        function toggleVehicleDropdown(vin) {
26010            if (vin === globalStore.getActiveVehicleDropdown) {
26011                globalStore.setActiveVehicleDropdown('');
26012                return;
26013            }
26014            globalStore.setActiveVehicleDropdown(vin);
26015        }
26016        function copyLink(vdpUrl) {
26017            if (navigator.clipboard) {
26018                navigator.clipboard.writeText(vdpUrl)
26019                    .then(() => {
26020                    toggleCopyButtonCopiedState();
26021                    setTimeout(() => {
26022                        toggleCopyButtonCopiedState();
26023                    }, 3000);
26024                })
26025                    .catch(() => {
26026                    alert(`Unable to copy link to clipboard: ${vdpUrl}`);
26027                });
26028            }
26029        }
26030        function print(printUrl) {
26031            window.open(printUrl);
26032        }
26033        function toggleCopyButtonCopiedState() {
26034            if (!isCopying.value) {
26035                isCopying.value = true;
26036                currentCopyLinkLabel.value = copiedLabel.value;
26037            }
26038            else {
26039                isCopying.value = false;
26040                currentCopyLinkLabel.value = copyLinkLabel.value;
26041            }
26042        }
26043        return (_ctx, _cache) => {
26044            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_1, [
26045                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_2, [
26046                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
26047                        class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-dropdown__trigger stat-dropdown", { 'less-whitespace': (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardAlignmentToggle) }]),
26048                        id: `vehicle-dropdown-${_ctx.model.VehicleVin}`,
26049                        "data-loc": "share vehicle",
26050                        onClick: _cache[0] || (_cache[0] = ($event) => (toggleVehicleDropdown(`${_ctx.model.VehicleVin}`))),
26051                        type: "button",
26052                        "data-toggle": "dropdown",
26053                        "aria-haspopup": "true",
26054                        "aria-expanded": "false",
26055                        "data-type": "dropdown-button",
26056                        "aria-label": actionsLabel.value,
26057                        title: actionsLabel.value,
26058                        "data-dotagging-event": "cta_interaction",
26059                        "data-dotagging-product-name": "Website|Share Item Details",
26060                        "data-dotagging-event-action-result": "open",
26061                        "data-dotagging-event-action": "click",
26062                        "data-dotagging-element-order": "0",
26063                        "data-dotagging-element-type": "item_details",
26064                        "data-dotagging-element-subtype": "cta_icon",
26065                        "data-dotagging-element-text": actionsLabel.value
26066                    }, _cache[3] || (_cache[3] = [
26067                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", {
26068                            class: "vehicle-dropdown__dots",
26069                            role: "img",
26070                            "aria-label": "dropdown dots"
26071                        }, [
26072                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "vehicle-dropdown__dot fa fa-circle" }),
26073                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "vehicle-dropdown__dot fa fa-circle" }),
26074                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "vehicle-dropdown__dot fa fa-circle" })
26075                        ], -1 /* HOISTED */)
26076                    ]), 10 /* CLASS, PROPS */, vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_3),
26077                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("ul", {
26078                        class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-dropdown__menu", { 'open': isVehicleDropdownOpen.value }]),
26079                        "aria-labelledby": `vehicle-dropdown-${_ctx.model.VehicleVin}`,
26080                        "data-type": "dropdown"
26081                    }, [
26082                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("li", vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_5, [
26083                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
26084                                type: "button",
26085                                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["dropdown-button dropdown-button--copy stat-button-link", { 'copied': isCopying.value }]),
26086                                "data-loc": "share vehicle",
26087                                "data-type": "copy-link-button",
26088                                style: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeStyle */.Tr)(`--copy-icon-url: url(${vehicleCardDeck_copyIconUrl});`),
26089                                "data-dotagging-event": "cta_interaction",
26090                                "data-dotagging-product-name": "Website|Copy Item Link",
26091                                "data-dotagging-event-action": "click",
26092                                "data-dotagging-event-action-result": "calc",
26093                                "data-dotagging-element-order": "0",
26094                                "data-dotagging-element-type": "form",
26095                                "data-dotagging-element-subtype": "cta_button",
26096                                onClick: _cache[1] || (_cache[1] = ($event) => (copyLink(_ctx.model.VehicleDetailUrl)))
26097                            }, [
26098                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
26099                                    ref_key: "copyButtonImage",
26100                                    ref: copyButtonImage,
26101                                    class: "dropdown-button__icon",
26102                                    alt: "",
26103                                    src: vehicleCardDeck_copyIconUrl
26104                                }, null, 512 /* NEED_PATCH */),
26105                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", {
26106                                    ref_key: "copyButtonLinkLabel",
26107                                    ref: copyButtonLinkLabel,
26108                                    class: "vehicle-dropdown__label"
26109                                }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(currentCopyLinkLabel.value), 513 /* TEXT, NEED_PATCH */)
26110                            ], 6 /* CLASS, STYLE */)
26111                        ]),
26112                        _cache[5] || (_cache[5] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("hr", null, null, -1 /* HOISTED */)),
26113                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("li", vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_6, [
26114                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
26115                                "data-type": "share-vehicle-button",
26116                                class: "dropdown-button dropdown-button--share stat-button-link sms-lead-modal",
26117                                onclick: "TrackGeneralCTA(this);",
26118                                "data-toggle": "modal",
26119                                "data-target": "#shareVehicleModal",
26120                                "data-vdp-url": _ctx.model.VehicleDetailUrl,
26121                                "data-vehicle-id": _ctx.model.VehicleId,
26122                                "data-vin": _ctx.model.VehicleVin,
26123                                "data-vehicle-name": _ctx.model.VehicleName,
26124                                "data-dealer-id": _ctx.model.DealerId,
26125                                "data-altid": _ctx.model.DealerLocatedAtId,
26126                                "data-loc": "share vehicle",
26127                                style: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeStyle */.Tr)(`--share-icon-url: url(${vehicleCardDeck_shareIconUrl});`),
26128                                "data-dotagging-event": "cta_interaction",
26129                                "data-dotagging-product-name": "Website|Share Item Details",
26130                                "data-dotagging-event-action": "click",
26131                                "data-dotagging-event-action-result": "open",
26132                                "data-dotagging-element-type": "item_details",
26133                                "data-dotagging-element-order": "1",
26134                                "data-dotagging-element-subtype": "cta_button"
26135                            }, [
26136                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
26137                                    ref_key: "shareVehicleButtonImage",
26138                                    ref: shareVehicleButtonImage,
26139                                    class: "dropdown-button__icon",
26140                                    alt: "",
26141                                    src: vehicleCardDeck_shareIconUrl
26142                                }, null, 512 /* NEED_PATCH */),
26143                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_8, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(shareLabel.value), 1 /* TEXT */)
26144                            ], 12 /* STYLE, PROPS */, vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_7)
26145                        ]),
26146                        _cache[6] || (_cache[6] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("hr", null, null, -1 /* HOISTED */)),
26147                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("li", vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_9, [
26148                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
26149                                type: "button",
26150                                class: "dropdown-button dropdown-button--print stat-button-link",
26151                                "data-loc": "share vehicle",
26152                                "data-type": "print-button",
26153                                "data-vin": _ctx.model.VehicleVin,
26154                                style: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeStyle */.Tr)(`--print-icon-url: url(${vehicleCardDeck_printIconUrl});`),
26155                                "data-dotagging-event": "cta_interaction",
26156                                "data-dotagging-product-name": "Website|Print Item Details",
26157                                "data-dotagging-event-action": "click",
26158                                "data-dotagging-event-action-result": "redirect",
26159                                "data-dotagging-element-order": "2",
26160                                "data-dotagging-element-type": "form",
26161                                "data-dotagging-element-subtype": "cta_button",
26162                                "data-dotagging-link-url": getTaggingLinkUrl.value,
26163                                onClick: _cache[2] || (_cache[2] = ($event) => (print(getPrintUrl.value)))
26164                            }, [
26165                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
26166                                    ref_key: "printButtonImage",
26167                                    ref: printButtonImage,
26168                                    class: "dropdown-button__icon",
26169                                    alt: "",
26170                                    src: vehicleCardDeck_printIconUrl
26171                                }, null, 512 /* NEED_PATCH */),
26172                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_11, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(printLabel.value), 1 /* TEXT */)
26173                            ], 12 /* STYLE, PROPS */, vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_10)
26174                        ]),
26175                        (_ctx.model.VehicleDetailUrl !== '')
26176                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 0 }, [
26177                                _cache[4] || (_cache[4] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("hr", null, null, -1 /* HOISTED */)),
26178                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("li", vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_12, [
26179                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("a", {
26180                                        class: "vehicle-dropdown__action vehicle-dropdown__action--detail
26180s stat-text-link",
26181                                        "data-loc": "share vehicle",
26182                                        href: _ctx.model.VehicleDetailUrl,
26183                                        "data-type": "view-details-button",
26184                                        style: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeStyle */.Tr)(`--details-icon-url: url(${vehicleCardDeck_detailsIconUrl});`),
26185                                        "data-dotagging-event": "cta_interaction",
26186                                        "data-dotagging-product-name": "Website|View Item Details",
26187                                        "data-dotagging-event-action": "click",
26188                                        "data-dotagging-event-action-result": "redirect",
26189                                        "data-dotagging-element-type": "item_details",
26190                                        "data-dotagging-element-subtype": "cta_icon",
26191                                        "data-dotagging-element-order": "3"
26192                                    }, [
26193                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("img", {
26194                                            ref_key: "deatailsButtonImage",
26195                                            ref: deatailsButtonImage,
26196                                            class: "vehicle-dropdown__icon",
26197                                            alt: "",
26198                                            src: vehicleCardDeck_detailsIconUrl
26199                                        }, null, 512 /* NEED_PATCH */),
26200                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_14, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(viewDetailsLabel.value), 1 /* TEXT */)
26201                                    ], 12 /* STYLE, PROPS */, vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_13)
26202                                ])
26203                            ], 64 /* STABLE_FRAGMENT */))
26204                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
26205                    ], 10 /* CLASS, PROPS */, vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts_hoisted_4)
26206                ])
26207            ]));
26208        };
26209    }
26210}));
26211
26212;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleDropdown/vehicleDropdown.vue?vue&type=script&setup=true&lang=ts
26213 
26214// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleDropdown/vehicleDropdown.vue?vue&type=style&index=0&id=12e549a4&scoped=true&lang=scss
26215var vehicleCardDeck_vehicleDropdownvue_type_style_index_0_id_12e549a4_scoped_true_lang_scss = __webpack_require__(1324);
26216;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleDropdown/vehicleDropdown.vue?vue&type=style&index=0&id=12e549a4&scoped=true&lang=scss
26217
26218;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleDropdown/vehicleDropdown.vue
26219
26220
26221
26222;
26223
26224
26225const vehicleCardDeck_vehicleDropdown_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_vehicleDropdownvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-12e549a4"]])
26226
26227/* harmony default export */ const vehicleCardDeck_vehicleDropdown = (vehicleCardDeck_vehicleDropdown_exports_);
26228;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleLocation/iconLocationDot.vue?vue&type=script&setup=true&lang=ts
26229
26230
26231const vehicleCardDeck_iconLocationDotvue_type_script_setup_true_lang_ts_hoisted_1 = ["width", "height"];
26232/* harmony default export */ const vehicleCardDeck_iconLocationDotvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
26233    __name: 'iconLocationDot',
26234    props: {
26235        size: {
26236            type: [String, Number],
26237            default: 24
26238        }
26239    },
26240    setup(__props) {
26241        return (_ctx, _cache) => {
26242            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("svg", {
26243                class: "location-dot",
26244                width: __props.size,
26245                height: __props.size,
26246                viewBox: "0 0 24 24",
26247                fill: "none",
26248                xmlns: "http://www.w3.org/2000/svg"
26249            }, _cache[0] || (_cache[0] = [
26250                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("path", {
26251                    d: "M11.5 21.5C11.5 21.5 19 13.375 19 9C19 4.85938 15.6406 1.5 11.5 1.5C7.35938 1.5 4 4.85938 4 9C4 13.375 11.5 21.5 11.5 21.5ZM11.5 6.5C12.163 6.5 12.7989 6.76339 13.2678 7.23223C13.7366 7.70107 14 8.33696 14 9C14 9.66304 13.7366 10.2989 13.2678 10.7678C12.7989 11.2366 12.163 11.5 11.5 11.5C10.837 11.5 10.2011 11.2366 9.73223 10.7678C9.26339 10.2989 9 9.66304 9 9C9 8.33696 9.26339 7.70107 9.73223 7.23223C10.2011 6.76339 10.837 6.5 11.5 6.5Z",
26252                    fill: "black"
26253                }, null, -1 /* HOISTED */)
26254            ]), 8 /* PROPS */, vehicleCardDeck_iconLocationDotvue_type_script_setup_true_lang_ts_hoisted_1));
26255        };
26256    }
26257}));
26258
26259;// ./src/components/spaCosmos/vehicleCards/vehicleLocation/iconLocationDot.vue?vue&type=script&setup=true&lang=ts
26260 
26261// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleLocation/iconLocationDot.vue?vue&type=style&index=0&id=df36362e&scoped=true&lang=scss
26262var vehicleCardDeck_iconLocationDotvue_type_style_index_0_id_df36362e_scoped_true_lang_scss = __webpack_require__(3318);
26263;// ./src/components/spaCosmos/vehicleCards/vehicleLocation/iconLocationDot.vue?vue&type=style&index=0&id=df36362e&scoped=true&lang=scss
26264
26265;// ./src/components/spaCosmos/vehicleCards/vehicleLocation/iconLocationDot.vue
26266
26267
26268
26269;
26270
26271
26272const vehicleCardDeck_iconLocationDot_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_iconLocationDotvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-df36362e"]])
26273
26274/* harmony default export */ const vehicleCardDeck_iconLocationDot = (vehicleCardDeck_iconLocationDot_exports_);
26275;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleLocation/vehicleLocation.vue?vue&type=script&lang=ts&setup=true
26276
26277
26278const vehicleCardDeck_vehicleLocationvue_type_script_lang_ts_setup_true_hoisted_1 = {
26279    key: 0,
26280    class: "vehicle-location"
26281};
26282const vehicleCardDeck_vehicleLocationvue_type_script_lang_ts_setup_true_hoisted_2 = { class: "location-text" };
26283
26284/* harmony default export */ const vehicleCardDeck_vehicleLocationvue_type_script_lang_ts_setup_true = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
26285    __name: 'vehicleLocation',
26286    props: {
26287        model: {}
26288    },
26289    setup(__props) {
26290        const props = __props;
26291        return (_ctx, _cache) => {
26292            return (props.model.enabled && props.model.location)
26293                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleLocationvue_type_script_lang_ts_setup_true_hoisted_1, [
26294                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_iconLocationDot, { size: "14" }),
26295                    _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)()),
26296                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleLocationvue_type_script_lang_ts_setup_true_hoisted_2, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(props.model.location), 1 /* TEXT */)
26297                ]))
26298                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true);
26299        };
26300    }
26301}));
26302
26303;// ./src/components/spaCosmos/vehicleCards/vehicleLocation/vehicleLocation.vue?vue&type=script&lang=ts&setup=true
26304 
26305// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
26305ader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleLocation/vehicleLocation.vue?vue&type=style&index=0&id=312f7248&lang=css
26306var vehicleCardDeck_vehicleLocationvue_type_style_index_0_id_312f7248_lang_css = __webpack_require__(8220);
26307;// ./src/components/spaCosmos/vehicleCards/vehicleLocation/vehicleLocation.vue?vue&type=style&index=0&id=312f7248&lang=css
26308
26309;// ./src/components/spaCosmos/vehicleCards/vehicleLocation/vehicleLocation.vue
26310
26311
26312
26313;
26314
26315const vehicleCardDeck_vehicleLocation_exports_ = vehicleCardDeck_vehicleLocationvue_type_script_lang_ts_setup_true;
26316
26317/* harmony default export */ const vehicleCardDeck_vehicleLocation = (vehicleCardDeck_vehicleLocation_exports_);
26318;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/tdgHeart/tdgHeart.vue?vue&type=script&setup=true&lang=ts
26319
26320
26321const vehicleCardDeck_tdgHeartvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "oem-toyota__tdg--srp-card-heart" };
26322const vehicleCardDeck_tdgHeartvue_type_script_setup_true_lang_ts_hoisted_2 = ["id"];
26323/* harmony default export */ const vehicleCardDeck_tdgHeartvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
26324    __name: 'tdgHeart',
26325    props: {
26326        model: {}
26327    },
26328    setup(__props) {
26329        const props = __props;
26330        return (_ctx, _cache) => {
26331            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_tdgHeartvue_type_script_setup_true_lang_ts_hoisted_1, [
26332                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
26333                    id: `${_ctx.model.DivId}${_ctx.model.AppendId}`
26334                }, null, 8 /* PROPS */, vehicleCardDeck_tdgHeartvue_type_script_setup_true_lang_ts_hoisted_2)
26335            ]));
26336        };
26337    }
26338}));
26339
26340;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/tdgHeart/tdgHeart.vue?vue&type=script&setup=true&lang=ts
26341 
26342// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/tdgHeart/tdgHeart.vue?vue&type=style&index=0&id=21576078&lang=scss
26343var vehicleCardDeck_tdgHeartvue_type_style_index_0_id_21576078_lang_scss = __webpack_require__(5326);
26344;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/tdgHeart/tdgHeart.vue?vue&type=style&index=0&id=21576078&lang=scss
26345
26346;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/tdgHeart/tdgHeart.vue
26347
26348
26349
26350;
26351
26352const vehicleCardDeck_tdgHeart_exports_ = vehicleCardDeck_tdgHeartvue_type_script_setup_true_lang_ts;
26353
26354/* harmony default export */ const vehicleCardDeck_tdgHeart = (vehicleCardDeck_tdgHeart_exports_);
26355;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleAuto.vue?vue&type=script&setup=true&lang=ts
26356
26357
26358const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-overview__title" };
26359const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_2 = ["data-loc", "href", "title"];
26360const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_3 = { class: "vehicle-title__text h2" };
26361const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_4 = { class: "vehicle-title__year-make-model" };
26362const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_5 = {
26363    key: 1,
26364    class: "vehicle-title__condition-year"
26365};
26366const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_6 = {
26367    key: 0,
26368    class: "vehicle-title__car-bravo"
26369};
26370const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_7 = {
26371    key: 1,
26372    class: "vehicle-title__condition"
26373};
26374const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_8 = { class: "vehicle-title__year" };
26375const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_9 = { class: "vehicle-title__make-model" };
26376const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_10 = { class: "vehicle-title__trim" };
26377const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_11 = { class: "vehicle-title__appended" };
26378const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_12 = {
26379    key: 0,
26380    class: "oem-toyota__tdg--srp-card-heart-wrapper"
26381};
26382const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_13 = { class: "vehicle-overview__identifiers" };
26383const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_14 = {
26384    key: 0,
26385    class: "vehicle-special-tags"
26386};
26387const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_15 = {
26388    key: 0,
26389    class: "vehicle-special-tags__special-offer"
26390};
26391const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_16 = { class: "vehicle-special-tags__label" };
26392const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_17 = {
26393    key: 1,
26394    class: "vehicle-special-tags__price-drop"
26395};
26396const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_18 = { class: "vehicle-special-tags__label" };
26397const vehicleCardDeck_hoisted_19 = { class: "vehicle-identifiers" };
26398const vehicleCardDeck_hoisted_20 = {
26399    key: 0,
26400    class: "vehicle-identifiers__vin"
26401};
26402const vehicleCardDeck_hoisted_21 = { class: "vehicle-identifiers__label" };
26403const vehicleCardDeck_hoisted_22 = { class: "vehicle-identifiers__value" };
26404const vehicleCardDeck_hoisted_23 = {
26405    key: 1,
26406    class: "vehicle-identifiers__stock"
26407};
26408const vehicleCardDeck_hoisted_24 = { class: "vehicle-identifiers__label" };
26409const vehicleCardDeck_hoisted_25 = { class: "vehicle-identifiers__value" };
26410const vehicleCardDeck_hoisted_26 = {
26411    key: 2,
26412    class: "vehicle-identifiers__model-code"
26413};
26414const vehicleCardDeck_hoisted_27 = { class: "vehicle-identifiers__label" };
26415const vehicleCardDeck_hoisted_28 = { class: "vehicle-identifiers__value" };
26416
26417
26418
26419
26420
26421
26422/* harmony default export */ const vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
26423    __name: 'vehicleTitleAuto',
26424    props: {
26425        model: {},
26426        tdgHeartModel: {},
26427        vehicleDropdownModel: {},
26428        vehicleLocationModel: {}
26429    },
26430    setup(__props) {
26431        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
26432        const carBravoLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("CARBRAVO")}`);
26433        const vinLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("VIN")}`);
26434        const stockLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("STOCK")}`);
26435        const modelLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("MODEL")}`);
26436        const priceDropLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("PRICE_DROP3"));
26437        const specialLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("SPECIAL_OFFER_INV"));
26438        const toggleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService);
26439        const vehicleCardAlignmentToggle = toggleService.getToggleStatus(vehicleCardDeck_toggles_toggleService/* Toggle */.lM.VehicleCardAlignment_DO48222);
26440        const props = __props;
26441        return (_ctx, _cache) => {
26442            const _component_heart_icon = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* resolve
26442Component */.g2)("heart-icon");
26443            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
26444                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_1, [
26445                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("a", {
26446                        class: "vehicle-title stat-text-link",
26447                        "data-loc": `available inventory:${_ctx.model.VehicleVin}`,
26448                        href: _ctx.model.VehicleDetailUrl,
26449                        title: `${_ctx.model.VehicleRuleAdjustedYear} ${_ctx.model.VehicleMakeAndModel} ${_ctx.model.VehicleRuleAdjustedTrim}`,
26450                        "data-dotagging-event": "cta_interaction",
26451                        "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
26452                        "data-dotagging-event-action-result": "open",
26453                        "data-dotagging-element-type": "item_details",
26454                        "data-dotagging-element-subtype": "hyperlink"
26455                    }, [
26456                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h3", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_3, [
26457                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_4, [
26458                                (_ctx.model.IsMiniOem)
26459                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 0 }, [
26460                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleName), 1 /* TEXT */)
26461                                    ], 64 /* STABLE_FRAGMENT */))
26462                                    : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_5, [
26463                                        (_ctx.model.IsCarBravoVehicle)
26464                                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_6, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(carBravoLabel.value), 1 /* TEXT */))
26465                                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26466                                        (_ctx.model.ShowVehicleCondition)
26467                                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_7, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleCondition), 1 /* TEXT */))
26468                                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26469                                        (_ctx.model.ShowCpoTier)
26470                                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", {
26471                                                key: 2,
26472                                                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(_ctx.model.CpoTierClass)
26473                                            }, [
26474                                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.CpoTierTitle), 1 /* TEXT */),
26475                                                _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", null, " ", -1 /* HOISTED */))
26476                                            ], 2 /* CLASS */))
26477                                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26478                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_8, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleRuleAdjustedYear), 1 /* TEXT */),
26479                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_9, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleMakeAndModel), 1 /* TEXT */),
26480                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_10, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleRuleAdjustedTrim), 1 /* TEXT */),
26481                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_11, " " + (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleTitleAppendText), 1 /* TEXT */)
26482                                    ]))
26483                            ])
26484                        ])
26485                    ], 8 /* PROPS */, vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_2)
26486                ]),
26487                (_ctx.model.ShowTdgHeart)
26488                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_12, [
26489                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_tdgHeart, { model: _ctx.tdgHeartModel }, null, 8 /* PROPS */, ["model"])
26490                    ]))
26491                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26492                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
26493                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["save-heart__srp-card-heart-wrapper", { 'less-whitespace': (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardAlignmentToggle) }])
26494                }, [
26495                    (_ctx.model.ShowVehicleSavingHeart)
26496                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(_component_heart_icon, { key: 0 }))
26497                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
26498                ], 2 /* CLASS */),
26499                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleDropdown, { model: _ctx.vehicleDropdownModel }, null, 8 /* PROPS */, ["model"]),
26500                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_13, [
26501                    (_ctx.model.ShowSpecialTags)
26502                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_14, [
26503                            (_ctx.model.ShowSpecialIcon)
26504                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_15, [
26505                                    _cache[1] || (_cache[1] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", { class: "vehicle-special-tags__icon" }, [
26506                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "fa fa-tags" })
26507                                    ], -1 /* HOISTED */)),
26508                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_16, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(specialLabel.value), 1 /* TEXT */)
26509                                ]))
26510                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26511                            (_ctx.model.ShouldDisplayPriceDropIcon)
26512                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_17, [
26513                                    _cache[2] || (_cache[2] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", { class: "vehicle-special-tags__icon" }, [
26514                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "fa fa-arrow-circle-down" })
26515                                    ], -1 /* HOISTED */)),
26516                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts_hoisted_18, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(priceDropLabel.value), 1 /* TEXT */)
26517                                ]))
26518                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
26519                        ]))
26520                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26521                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleLocation, { model: _ctx.vehicleLocationModel }, null, 8 /* PROPS */, ["model"]),
26522                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_hoisted_19, [
26523                        (_ctx.model.ShowVin)
26524                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_hoisted_20, [
26525                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_hoisted_21, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(vinLabel.value) + ": ", 1 /* TEXT */),
26526                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_hoisted_22, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleVin), 1 /* TEXT */)
26527                            ]))
26528                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26529                        (_ctx.model.ShowStockNumber)
26530                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_hoisted_23, [
26531                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_hoisted_24, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(stockLabel.value) + ": ", 1 /* TEXT */),
26532                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_hoisted_25, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleStockNumber), 1 /* TEXT */)
26533                            ]))
26534                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26535                        (_ctx.model.ShowModelCode)
26536                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_hoisted_26, [
26537                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_hoisted_27, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(modelLabel.value) + ": ", 1 /* TEXT */),
26538                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_hoisted_28, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleModelCode), 1 /* TEXT */)
26539                            ]))
26540                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
26541                    ])
26542                ])
26543            ], 64 /* STABLE_FRAGMENT */));
26544        };
26545    }
26546}));
26547
26548;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleAuto.vue?vue&type=script&setup=true&lang=ts
26549 
26550// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
26550ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleAuto.vue?vue&type=style&index=0&id=6c17e541&lang=scss
26551var vehicleCardDeck_vehicleTitleAutovue_type_style_index_0_id_6c17e541_lang_scss = __webpack_require__(7569);
26552;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleAuto.vue?vue&type=style&index=0&id=6c17e541&lang=scss
26553
26554;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleAuto.vue
26555
26556
26557
26558;
26559
26560const vehicleCardDeck_vehicleTitleAuto_exports_ = vehicleCardDeck_vehicleTitleAutovue_type_script_setup_true_lang_ts;
26561
26562/* harmony default export */ const vehicleCardDeck_vehicleTitleAuto = (vehicleCardDeck_vehicleTitleAuto_exports_);
26563;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleRecreationalVehicles.vue?vue&type=script&setup=true&lang=ts
26564
26565
26566const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-overview__title" };
26567const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_2 = ["data-loc", "href", "title"];
26568const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_3 = { class: "vehicle-title__text h2" };
26569const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_4 = { class: "vehicle-title__year-make-model" };
26570const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_5 = { class: "vehicle-title__condition-year" };
26571const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_6 = {
26572    key: 0,
26573    class: "vehicle-title__condition"
26574};
26575const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_7 = { class: "vehicle-title__year" };
26576const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_8 = { class: "vehicle-title__trim" };
26577const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_9 = { class: "vehicle-title__appended" };
26578const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_10 = {
26579    key: 0,
26580    class: "vehicle-overview__identifiers"
26581};
26582const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_11 = {
26583    key: 0,
26584    class: "vehicle-special-tags"
26585};
26586const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_12 = {
26587    key: 0,
26588    class: "vehicle-special-tags__special-offer"
26589};
26590const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_13 = { class: "vehicle-special-tags__label" };
26591const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_14 = {
26592    key: 1,
26593    class: "vehicle-special-tags__price-drop"
26594};
26595const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_15 = { class: "vehicle-special-tags__label" };
26596const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_16 = { class: "vehicle-identifiers" };
26597const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_17 = {
26598    key: 0,
26599    class: "vehicle-identifiers__vin"
26600};
26601const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_18 = { class: "vehicle-identifiers__label" };
26602const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_19 = { class: "vehicle-identifiers__value" };
26603const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_20 = {
26604    key: 1,
26605    class: "vehicle-identifiers__stock"
26606};
26607const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_21 = { class: "vehicle-identifiers__label" };
26608const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_22 = { class: "vehicle-identifiers__value" };
26609
26610
26611
26612
26613/* harmony default export */ const vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
26614    __name: 'vehicleTitleRecreationalVehicles',
26615    props: {
26616        model: {},
26617        vehicleDropdownModel: {}
26618    },
26619    setup(__props) {
26620        var _a, _b, _c;
26621        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
26622        const vinLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("VIN")}` + " ");
26623        const stockLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("STOCK")}` + " ");
26624        const priceDropLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("PRICE_DROP3"));
26625        const specialLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("SPECIAL_OFFER_INV"));
26626        const toggleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService);
26627        const vehicleCardAlignmentToggle = toggleService.getToggleStatus(vehicleCardDeck_toggles_toggleService/* Toggle */.lM.VehicleCardAlignment_DO48222);
26628        const props = __props;
26629        const rvManufacturer = (_a = props.model.RvInfoViewModel.Manufacturer) !== null && _a !== void 0 ? _a : "";
26630        const rvBrand = (_b = props.model.RvInfoViewModel.Brand) !== null && _b !== void 0 ? _b : "";
26631        const rvModelName = (_c = props.model.RvInfoViewModel.ModelName) !== null && _c !== void 0 ? _c : "";
26632        const rvManufacturerAndBrand = ` ${rvManufacturer} ${rvBrand} `;
26633        return (_ctx, _cache) => {
26634            const _component_heart_icon = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* resolve
26634Component */.g2)("heart-icon");
26635            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
26636                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_1, [
26637                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("a", {
26638                        class: "vehicle-title stat-text-link",
26639                        "data-loc": `available inventory:${_ctx.model.VehicleVin}`,
26640                        href: _ctx.model.VehicleDetailUrl,
26641                        title: `${_ctx.model.VehicleRuleAdjustedYear} ${rvManufacturerAndBrand} ${(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(rvModelName)}`,
26642                        "data-dotagging-event": "cta_interaction",
26643                        "data-dotagging-product-name": "SRP 2.0|Vehicle Item Details",
26644                        "data-dotagging-event-action-result": "open",
26645                        "data-dotagging-element-type": "item_details",
26646                        "data-dotagging-element-subtype": "hyperlink"
26647                    }, [
26648                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h3", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_3, [
26649                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_4, [
26650                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_5, [
26651                                    (_ctx.model.ShowVehicleCondition)
26652                                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_6, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleCondition), 1 /* TEXT */))
26653                                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26654                                    (_ctx.model.ShowCpoTier)
26655                                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", {
26656                                            key: 1,
26657                                            class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(_ctx.model.CpoTierClass)
26658                                        }, [
26659                                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.CpoTierTitle), 1 /* TEXT */),
26660                                            _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", null, " ", -1 /* HOISTED */))
26661                                        ], 2 /* CLASS */))
26662                                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26663                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_7, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleRuleAdjustedYear), 1 /* TEXT */),
26664                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", { class: "vehicle-title__make-model" }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(rvManufacturerAndBrand)),
26665                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_8, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.RvInfoViewModel.ModelName), 1 /* TEXT */),
26666                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_9, " " + (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleTitleAppendText), 1 /* TEXT */)
26667                                ])
26668                            ])
26669                        ])
26670                    ], 8 /* PROPS */, vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_2)
26671                ]),
26672                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
26673                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["save-heart__srp-card-heart-wrapper", { 'less-whitepsace': (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardAlignmentToggle) }])
26674                }, [
26675                    (_ctx.model.ShowVehicleSavingHeart)
26676                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(_component_heart_icon, { key: 0 }))
26677                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
26678                ], 2 /* CLASS */),
26679                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleDropdown, { model: _ctx.vehicleDropdownModel }, null, 8 /* PROPS */, ["model"]),
26680                (_ctx.model.ShowIdentifiers)
26681                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_10, [
26682                        (_ctx.model.ShowSpecialTags)
26683                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_11, [
26684                                (_ctx.model.ShowSpecialIcon)
26685                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_12, [
26686                                        _cache[1] || (_cache[1] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", { class: "vehicle-special-tags__icon" }, [
26687                                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "fa fa-tags" })
26688                                        ], -1 /* HOISTED */)),
26689                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_13, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(specialLabel.value), 1 /* TEXT */)
26690                                    ]))
26691                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26692                                (_ctx.model.ShouldDisplayPriceDropIcon)
26693                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_14, [
26694                                        _cache[2] || (_cache[2] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", { class: "vehicle-special-tags__icon" }, [
26695                                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", { class: "fa fa-arrow-circle-down" })
26696                                        ], -1 /* HOISTED */)),
26697                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_15, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(priceDropLabel.value), 1 /* TEXT */)
26698                                    ]))
26699                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
26700                            ]))
26701                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26702                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_16, [
26703                            (_ctx.model.ShowVin)
26704                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_17, [
26705                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_18, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(vinLabel.value), 1 /* TEXT */),
26706                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_19, "#" + (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleVin), 1 /* TEXT */)
26707                                ]))
26708                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26709                            (_ctx.model.ShowStockNumber)
26710                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_20, [
26711                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_21, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(stockLabel.value), 1 /* TEXT */),
26712                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts_hoisted_22, "#" + (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.VehicleStockNumber), 1 /* TEXT */)
26713                                ]))
26714                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
26715                        ])
26716                    ]))
26717                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
26718            ], 64 /* STABLE_FRAGMENT */));
26719        };
26720    }
26721}));
26722
26723;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleRecreationalVehicles.vue?vue&type=script&setup=true&lang=ts
26724 
26725// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
26725ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleRecreationalVehicles.vue?vue&type=style&index=0&id=8e879ab6&lang=scss
26726var vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_style_index_0_id_8e879ab6_lang_scss = __webpack_require__(3108);
26727;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleRecreationalVehicles.vue?vue&type=style&index=0&id=8e879ab6&lang=scss
26728
26729;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleRecreationalVehicles.vue
26730
26731
26732
26733;
26734
26735const vehicleCardDeck_vehicleTitleRecreationalVehicles_exports_ = vehicleCardDeck_vehicleTitleRecreationalVehiclesvue_type_script_setup_true_lang_ts;
26736
26737/* harmony default export */ const vehicleCardDeck_vehicleTitleRecreationalVehicles = (vehicleCardDeck_vehicleTitleRecreationalVehicles_exports_);
26738;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitle.vue?vue&type=script&setup=true&lang=ts
26739
26740
26741
26742
26743
26744
26745
26746/* harmony default export */ const vehicleCardDeck_vehicleTitlevue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
26747    __name: 'vehicleTitle',
26748    props: {
26749        model: {},
26750        tdgHeartModel: {},
26751        vehicleDropdownModel: {},
26752        vehicleLocationModel: {}
26753    },
26754    setup(__props) {
26755        const globalStore = (0,vehicleCardDeck_cosmosSrp_globalStore/* useGlobalStore */.o)();
26756        const isRvIndustry = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => globalStore.getIndustry == vehicleCardDeck_industry/* Industry */.j.RecreationalVehicles);
26757        const props = __props;
26758        return (_ctx, _cache) => {
26759            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
26760                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("VehicleTitle.vue"),
26761                (!isRvIndustry.value)
26762                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_vehicleTitleAuto, {
26763                        key: 0,
26764                        model: _ctx.model,
26765                        vehicleDropdownModel: _ctx.vehicleDropdownModel,
26766                        vehicleLocationModel: _ctx.vehicleLocationModel,
26767                        tdgHeartModel: _ctx.tdgHeartModel
26768                    }, null, 8 /* PROPS */, ["model", "vehicleDropdownModel", "vehicleLocationModel", "tdgHeartModel"]))
26769                    : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_vehicleTitleRecreationalVehicles, {
26770                        key: 1,
26771                        model: _ctx.model,
26772                        vehicleDropdownModel: _ctx.vehicleDropdownModel
26773                    }, null, 8 /* PROPS */, ["model", "vehicleDropdownModel"]))
26774            ], 2112 /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */));
26775        };
26776    }
26777}));
26778
26779;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitle.vue?vue&type=script&setup=true&lang=ts
26780 
26781;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitle.vue
26782
26783
26784
26785const vehicleCardDeck_vehicleTitle_exports_ = vehicleCardDeck_vehicleTitlevue_type_script_setup_true_lang_ts;
26786
26787/* harmony default export */ const vehicleCardDeck_vehicleTitle = (vehicleCardDeck_vehicleTitle_exports_);
26788;// ./src/components/spaCosmos/vehicleCards/vehicleOverview/vehicleTitle/vehicleTitleViewModel.ts
26789class vehicleCardDeck_VehicleTitleViewModel {
26790}
26791
26792// EXTERNAL MODULE: ./src/components/pricing/pricingTypeCookie.ts
26793var vehicleCardDeck_pricingTypeCookie = __webpack_require__(1373);
26794;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/priceStakTabs.vue?vue&type=script&setup=true&lang=ts
26795
26796
26797const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_1 = {
26798    key: 0,
26799    role: "tablist",
26800    class: "multi-tabs multi-tabs--pricing nav nav-tabs nav-justified flex-box",
26801    "data-priceStak-tab-container": ""
26802};
26803const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_2 = ["i
26803d", "aria-expanded", "data-loc"];
26804const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_3 = ["id", "aria-expanded", "data-loc"];
26805const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_4 = ["id", "aria-expanded", "data-loc", "data-dotagging-element-order"];
26806const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_5 = { class: "pricing-tab-content tab-content" };
26807const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_6 = ["id"];
26808const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_7 = {
26809    key: 0,
26810    class: "beforeLeadSubmission"
26811};
26812const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_8 = ["innerHTML"];
26813const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_9 = ["innerHTML"];
26814const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_10 = {
26815    key: 1,
26816    class: "afterLeadSubmission"
26817};
26818const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_11 = ["innerHTML"];
26819const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_12 = ["innerHTML"];
26820const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_13 = ["id"];
26821const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_14 = ["innerHTML"];
26822const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_15 = ["innerHTML"];
26823const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_16 = ["id"];
26824const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_17 = ["innerHTML"];
26825const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_18 = ["innerHTML"];
26826
26827
26828
26829
26830/* harmony default export */ const vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
26831    __name: 'priceStakTabs',
26832    props: {
26833        model: {}
26834    },
26835    setup(__props) {
26836        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
26837        const storeProvider = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.StoreProvider);
26838        const globalStore = storeProvider.getGlobalStore();
26839        const buyLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("BUY")}`);
26840        const financeLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("FINANCE")}`);
26841        const leaseLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("LEASE")}`);
26842        const isMobile = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => globalStore.isMobile);
26843        const tabNames = ["buy", "finance", "lease"];
26844        let selectedTab = "buy";
26845        let showBuy = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(true);
26846        let showFinance = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
26847        let showLease = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
26848        let isPostLead = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
26849        const props = __props;
26850        const taggingTitle = props.model.StakTypeString + " - Pricestak";
26851        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => {
26852            document.addEventListener(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.SwitchPricingTab, handlePricingTabSwitch);
26853            // A card mounted by infinite scroll defaults to buy until the next SwitchPricingTab dispatch. Seed it
26854            // from the cookie so it never renders out of step with the cards already on the page.
26855            const cookieTab = vehicleCardDeck_pricingTypeCookie/* PricingTypeCookie */.L.currentCookieValue;
26856            if (tabNames.includes(cookieTab)) {
26857                setSelectedTab(cookieTab);
26858            }
26859            setupLeadListener();
26860        });
26861        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onUnmounted */.hi)(() => {
26862            // Cards are torn down and rebuilt on every filter/pagination change.
26863            // Without this the document accumulates a handler per destroyed card.
26864            document.removeEventListener(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.SwitchPricingTab, handlePricingTabSwitch);
26865        });
26866        function setupLeadListener() {
26867            const isDoPriceUnlocked = window.DealeronCookie.getItem(window.DlronGlobal_PriceUnlocked) === "?v=7HWvMx0ytdM";
26868            const isTdgPriceUnlocked = window.hasOwnProperty("toyotaDigitalGarageScript") && window.toyotaDigitalGarageScript.globalPriceUnlocked;
26869            isPostLead.value = isDoPriceUnlocked || isTdgPriceUnlocked;
26870            document.addEventListener('trigger-adjust-pricing-visibility', () => {
26871                isPostLead.value = true;
26872                //NOTE: we want to make sure that the DOM is updated so that this finds all
26873                //      the eprice modal buttons. For timing issues, we'll do this here instead
26874                //      of in the pricemodal.ts file.
26875                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* nextTick */.dY)(() => {
26876                    var _a;
26877                    (_a = window.ePriceModal) === null || _a === void 0 ? void 0 : _a.setupEvents();
26878                    document.dispatchEvent(new Event(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.PricingVisibilityAdjusted));
26879                });
26880            });
26881        }
26882        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* watch */.wB)(isMobile, () => {
26883            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* nextTick */.dY)(() => {
26884                var _a;
26885                (_a = window.ePriceModal) === null || _a === void 0 ? void 0 : _a.setupEvents();
26886            });
26887        });
26888        function handlePricingTabSwitch(data) {
26889            setSelectedTab(data.detail);
26890        }
26891        function setSelectedTab(tabName) {
26892            selectedTab = tabName;
26893            if ((tabName === "lease" && !shouldDisplay(props.model.LeaseContent)) ||
26894                (tabName === "finance" && !shouldDisplay(props.model.FinanceContent))) {
26895                selectedTab = "buy";
26896            }
26897            showBuy.value = selectedTab === 'buy';
26898            showFinance.value = selectedTab === 'finance';
26899            showLease.value = selectedTab === 'lease';
26900        }
26901        function shouldDisplay(content) {
26902            return content && content.trim();
26903        }
26904        return (_ctx, _cache) => {
26905            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
26906                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" No data-toggle/href, so Bootstrap's tab plugin never touches these buttons, and Vue owns the\n       .active highlight from the same state that drives the panes' v-show. "),
26907                (shouldDisplay(_ctx.model.LeaseContent) || shouldDisplay(_ctx.model.FinanceContent))
26908                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("ul", vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_1, [
26909                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("li", {
26910                            class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["multi-tabs__tab multi-tabs__tab--buy nav-item", { active: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(showBuy) }]),
26911                            role: "presentation",
26912                            "data-pricestak-tab-wrapper": "buy"
26913                        }, [
26914                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
26915                                class: "multi-tabs__tab-button text-uppercase buy-btn stat-tab-link",
26916                                "data-priceStak-tab": "buy",
26917                                type: "button",
26918                                role: "tab",
26919                                id: 'buy-btn-' + _ctx.model.Vin,
26920                                "data-pricestak-element": "pricestak-tab-button",
26921                                "aria-expanded": String((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(showBuy)),
26922                                "data-loc": `available inventory:${_ctx.model.Vin}`,
26923                                "data-dotagging-event": "element_c
26923onfiguration",
26924                                "data-dotagging-product-name": "SRP 2.0|",
26925                                "data-dotagging-event-action-result": "calc",
26926                                "data-dotagging-element-type": "item_details",
26927                                "data-dotagging-element-subtype": "nav_tab",
26928                                "data-dotagging-element-state": "active",
26929                                "data-dotagging-element-position": "top_right",
26930                                "data-dotagging-element-title": taggingTitle,
26931                                "data-dotagging-element-order": "0"
26932                            }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(buyLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_2)
26933                        ], 2 /* CLASS */),
26934                        (shouldDisplay(_ctx.model.FinanceContent))
26935                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("li", {
26936                                key: 0,
26937                                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["multi-tabs__tab multi-tabs__tab--finance nav-item", { active: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(showFinance) }]),
26938                                role: "presentation",
26939                                "data-pricestak-tab-wrapper": "finance"
26940                            }, [
26941                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
26942                                    class: "multi-tabs__tab-button text-uppercase finance-btn stat-tab-link",
26943                                    "data-priceStak-tab": "finance",
26944                                    type: "button",
26945                                    role: "tab",
26946                                    id: 'finance-btn-' + _ctx.model.Vin,
26947                                    "data-pricestak-element": "pricestak-tab-button",
26948                                    "aria-expanded": String((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(showFinance)),
26949                                    "data-loc": `available inventory:${_ctx.model.Vin}`,
26950                                    "data-dotagging-event": "element_configuration",
26951                                    "data-dotagging-product-name": "SRP 2.0|",
26952                                    "data-dotagging-event-action-result": "calc",
26953                                    "data-dotagging-element-type": "item_details",
26954                                    "data-dotagging-element-subtype": "nav_tab",
26955                                    "data-dotagging-element-state": "active",
26956                                    "data-dotagging-element-position": "top_right",
26957                                    "data-dotagging-element-title": taggingTitle,
26958                                    "data-dotagging-element-order": "1"
26959                                }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(financeLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_3)
26960                            ], 2 /* CLASS */))
26961                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26962                        (shouldDisplay(_ctx.model.LeaseContent))
26963                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("li", {
26964                                key: 1,
26965                                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["multi-tabs__tab multi-tabs__tab--lease nav-item", { active: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(showLease) }]),
26966                                role: "presentation",
26967                                "data-pricestak-tab-wrapper": "lease"
26968                            }, [
26969                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
26970                                    class: "multi-tabs__tab-button text-uppercase lease-btn stat-tab-link",
26971                                    "data-priceStak-tab": "lease",
26972                                    type: "button",
26973                                    role: "tab",
26974                                    id: 'lease-btn-' + _ctx.model.Vin,
26975                                    "data-pricestak-element": "pricestak-tab-button",
26976                                    "aria-expanded": String((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(showLease)),
26977                                    "data-loc": `available inventory:${_ctx.model.Vin}`,
26978                                    "data-dotagging-event": "element_c
26978onfiguration",
26979                                    "data-dotagging-product-name": "SRP 2.0|",
26980                                    "data-dotagging-event-action-result": "calc",
26981                                    "data-dotagging-element-type": "item_details",
26982                                    "data-dotagging-element-subtype": "nav_tab",
26983                                    "data-dotagging-element-state": "active",
26984                                    "data-dotagging-element-position": "top_right",
26985                                    "data-dotagging-element-title": taggingTitle,
26986                                    "data-dotagging-element-order": (shouldDisplay(_ctx.model.FinanceContent) ? '2' : '1')
26987                                }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(leaseLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_4)
26988                            ], 2 /* CLASS */))
26989                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
26990                    ]))
26991                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
26992                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_5, [
26993                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* withDirectives */.bo)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
26994                        id: _ctx.model.BuyRef,
26995                        class: "pricing-tab-content__pane pricing-tab-content__pane--buy vehiclePricing tab-pane buy-content active",
26996                        "data-pricestak-tab-pane": "buy"
26997                    }, [
26998                        (!(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(isPostLead))
26999                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_7, [
27000                                (!isMobile.value)
27001                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27002                                        key: 0,
27003                                        class: "hidden-xs",
27004                                        innerHTML: _ctx.model.BuyContent
27005                                    }, null, 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_8))
27006                                    : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27007                                        key: 1,
27008                                        class: "visible-xs",
27009                                        innerHTML: _ctx.model.MobileBuyContent
27010                                    }, null, 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_9))
27011                            ]))
27012                            : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_10, [
27013                                (!isMobile.value)
27014                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27015                                        key: 0,
27016                                        class: "hidden-xs",
27017                                        innerHTML: _ctx.model.BuyContentAfterLead
27018                                    }, null, 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_11))
27019                                    : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27020                                        key: 1,
27021                                        class: "visible-xs",
27022                                        innerHTML: _ctx.model.MobileBuyContentAfterLead
27023                                    }, null, 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_12))
27024                            ]))
27025                    ], 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_6), [
27026                        [vehicleCardDeck_vue_runtime_esm_browser_prod/* vShow */.aG, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(showBuy)]
27027                    ]),
27028                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* withDirectives */.bo)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
27029                        id: _ctx.model.FinanceRef,
27030                        class: "pricing-tab-content__pane pricing-tab-content__pane--finance vehiclePricing tab-pane finance-content active",
27031                        "data-pricestak-tab-pane": "finance"
27032                    }, [
27033                        (!isMobile.value)
27034                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27035                                key: 0,
27036                                class: "hidden-xs",
27037                                innerHTML: _ctx.model.FinanceContent
27038                            }, null, 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_14))
27039                            : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27040                                key: 1,
27041                                class: "visible-xs",
27042                                innerHTML: _ctx.model.MobileFinanceContent
27043                            }, null, 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_15))
27044                    ], 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_13), [
27045                        [vehicleCardDeck_vue_runtime_esm_browser_prod/* vShow */.aG, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(showFinance)]
27046                    ]),
27047                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* withDirectives */.bo)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
27048                        id: _ctx.model.LeaseRef,
27049                        class: "pricing-tab-content__pane pricing-tab-content__pane--lease vehiclePricing tab-pane lease-content active",
27050                        "data-pricestak-tab-pane": "lease"
27051                    }, [
27052                        (!isMobile.value)
27053                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27054                                key: 0,
27055                                class: "hidden-xs",
27056                                innerHTML: _ctx.model.LeaseContent
27057                            }, null, 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_17))
27058                            : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27059                                key: 1,
27060                                class: "visible-xs",
27061                                innerHTML: _ctx.model.MobileLeaseContent
27062                            }, null, 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_18))
27063                    ], 8 /* PROPS */, vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts_hoisted_16), [
27064                        [vehicleCardDeck_vue_runtime_esm_browser_prod/* vShow */.aG, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(showLease)]
27065                    ])
27066                ])
27067            ], 64 /* STABLE_FRAGMENT */));
27068        };
27069    }
27070}));
27071
27072;// ./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/priceStakTabs.vue?vue&type=script&setup=true&lang=ts
27073 
27074;// ./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/priceStakTabs.vue
27075
27076
27077
27078const vehicleCardDeck_priceStakTabs_exports_ = vehicleCardDeck_priceStakTabsvue_type_script_setup_true_lang_ts;
27079
27080/* harmony default export */ const vehicleCardDeck_priceStakTabs = (vehicleCardDeck_priceStakTabs_exports_);
27081;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/priceStakContent.vue?vue&type=script&setup=true&lang=ts
27082
27083
27084const vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "pricestak" };
27085const vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_2 = ["innerHTML"];
27086const vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_3 = {
27087    "data-pricestak-main": "",
27088    "data-pricestak-vue-managed": "true"
27089};
27090const vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_4 = ["innerHTML"];
27091const vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_5 = ["innerHTML"];
27092
27093
27094
27095
27096/* harmony default export */ const vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
27097    __name: 'priceStakContent',
27098    props: {
27099        model: {}
27100    },
27101    setup(__props) {
27102        const toggleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService);
27103        const vehicleCardAlignmentToggle = toggleService.getToggleStatus(vehicleCardDeck_toggles_toggleService/* Toggle */.lM.VehicleCardAlignment_DO48222);
27104        const props = __props;
27105        return (_ctx, _cache) => {
27106            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_1, [
27107                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
27108                    innerHTML: _ctx.model.PricePreHtml,
27109                    class: "pricestak-pre"
27110                }, null, 8 /* PROPS */, vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_2),
27111                _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", { "data-pricestak-tpi-location": "above" }, null, -1 /* HOISTED */)),
27112                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_3, [
27113                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_priceStakTabs, {
27114                        model: _ctx.model.PriceStakTabsModel
27115                    }, null, 8 /* PROPS */, ["model"])
27116                ]),
27117                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
27118                    "data-pricestak-tpi-location": "below",
27119                    innerHTML: _ctx.model.TpiBelowHtml
27120                }, null, 8 /* PROPS */, vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_4),
27121                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
27122                    innerHTML: _ctx.model.PricePostHtml,
27123                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["pricestak-post", { 'less-whitespace': (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardAlignmentToggle) }])
27124                }, null, 10 /* CLASS, PROPS */, vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts_hoisted_5)
27125            ]));
27126        };
27127    }
27128}));
27129
27130;// ./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/priceStakContent.vue?vue&type=script&setup=true&lang=ts
27131 
27132// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
27132ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/priceStakContent.vue?vue&type=style&index=0&id=520844d0&scoped=true&lang=scss
27133var vehicleCardDeck_priceStakContentvue_type_style_index_0_id_520844d0_scoped_true_lang_scss = __webpack_require__(7753);
27134;// ./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/priceStakContent.vue?vue&type=style&index=0&id=520844d0&scoped=true&lang=scss
27135
27136;// ./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/priceStakContent.vue
27137
27138
27139
27140;
27141
27142
27143const vehicleCardDeck_priceStakContent_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_priceStakContentvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-520844d0"]])
27144
27145/* harmony default export */ const vehicleCardDeck_priceStakContent = (vehicleCardDeck_priceStakContent_exports_);
27146;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/vehiclePricingPanel.vue?vue&type=script&setup=true&lang=ts
27147
27148
27149const vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-pricing__content pricingStackContainer" };
27150const vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_2 = { key: 0 };
27151const vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_3 = { class: "text-center" };
27152const vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_4 = { class: "small" };
27153const vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_5 = ["innerHTML"];
27154const vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_6 = ["innerHTML"];
27155const vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_7 = ["innerHTML"];
27156const vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_8 = ["innerHTML"];
27157
27158
27159
27160
27161/* harmony default export */ const vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
27162    __name: 'vehiclePricingPanel',
27163    props: {
27164        model: {}
27165    },
27166    setup(__props) {
27167        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
27168        const toggleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService);
27169        const vehicleCardAlignmentToggle = toggleService.getToggleStatus(vehicleCardDeck_toggles_toggleService/* Toggle */.lM.VehicleCardAlignment_DO48222);
27170        const props = __props;
27171        const hasFacebookMessengerContent = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return (_b = ((_a = props.model.FacebookMessengerContent) === null || _a === void 0 ? void 0 : _a.length) > 0) !== null && _b !== void 0 ? _b : false; });
27172        const reservedVehicleTitle = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getTitle("RESERVED_VEHICLE"));
27173        const reservedVehicleComment = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getComment("RESERVED_VEHICLE_TOYOTA_LEXUS"));
27174        return (_ctx, _cache) => {
27175            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27176                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-pricing vehiclePricingStack", { 'shift-ctas': (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardAlignmentToggle) }])
27177            }, [
27178                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_1, [
27179                    (_ctx.model.ShowReservedDisclaimer)
27180                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_2, [
27181                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h4", vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_3, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(reservedVehicleTitle.value), 1 /* TEXT */),
27182                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("p", vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_4, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(reservedVehicleComment.value), 1 /* TEXT */)
27183                        ]))
27184                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27185                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_priceStakContent, {
27186                        model: _ctx.model.PriceStakViewModel
27187                    }, null, 8 /* PROPS */, ["model"]),
27188                    ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.BeforeCommentCustomContentCollection, (tpi, index) => {
27189                        return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27190                            class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["margin-top_5x", tpi.Key])
27191                        }, [
27192                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", {
27193                                innerHTML: tpi.Value
27194                            }, null, 8 /* PROPS */, vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_5)
27195                        ], 2 /* CLASS */));
27196                    }), 256 /* UNKEYED_FRAGMENT */)),
27197                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
27198                        class: "custom-comments invExtComments",
27199                        innerHTML: _ctx.model.CustomCommentContent
27200                    }, null, 8 /* PROPS */, vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_6),
27201                    (hasFacebookMessengerContent.value)
27202                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", {
27203                            key: 1,
27204                            innerHTML: _ctx.model.FacebookMessengerContent
27205                        }, null, 8 /* PROPS */, vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_7))
27206                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27207                    ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(_ctx.model.AfterCommentCustomContentCollection, (tpi, index) => {
27208                        return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27209                            class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["margin-top_5x", tpi.Key])
27210                        }, [
27211                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", {
27212                                innerHTML: tpi.Value
27213                            }, null, 8 /* PROPS */, vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts_hoisted_8)
27214                        ], 2 /* CLASS */));
27215                    }), 256 /* UNKEYED_FRAGMENT */))
27216                ])
27217            ], 2 /* CLASS */));
27218        };
27219    }
27220}));
27221
27222;// ./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/vehiclePricingPanel.vue?vue&type=script&setup=true&lang=ts
27223 
27224;// ./src/components/spaCosmos/vehicleCards/vehiclePricingPanel/vehiclePricingPanel.vue
27225
27226
27227
27228const vehicleCardDeck_vehiclePricingPanel_exports_ = vehicleCardDeck_vehiclePricingPanelvue_type_script_setup_true_lang_ts;
27229
27230/* harmony default export */ const vehicleCardDeck_vehiclePricingPanel = (vehicleCardDeck_vehiclePricingPanel_exports_);
27231;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleSpecs/vehicleSpecs.vue?vue&type=script&setup=true&lang=ts
27232
27233
27234const vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-specs" };
27235const vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_2 = {
27236    key: 1,
27237    class: "vehicle-mileage"
27238};
27239const vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_3 = ["title"];
27240const vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_4 = { class: "vehicle-colors__label" };
27241const vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_5 = ["innerHTML"];
27242const vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_6 = ["title"];
27243const vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_7 = {
27244    key: 1,
27245    class: "vehicle-colors__label"
27246};
27247const vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_8 = ["innerHTML"];
27248
27249
27250
27251
27252/* harmony default export */ const vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
27253    __name: 'vehicleSpecs',
27254    props: {
27255        model: {}
27256    },
27257    setup(__props) {
27258        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
27259        const props = __props;
27260        const interiorShortLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("INTERIOR_SHORT")}`);
27261        const exteriorShortLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("EXTERIOR_SHORT")}`);
27262        const showExteriorColors = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.model.ShowExteriorColorLabel || props.model.ShowExteriorColorSwatch);
27263        const showInternalColors = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() =>
27263 props.model.ShowInteriorColorLabel || props.model.ShowInteriorColorSwatch);
27264        return (_ctx, _cache) => {
27265            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_1, [
27266                (_ctx.model.ShowStatus)
27267                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_vehicleStatus, {
27268                        key: 0,
27269                        model: _ctx.model.VehicleStatusModel
27270                    }, null, 8 /* PROPS */, ["model"]))
27271                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27272                (_ctx.model.ShowMileage)
27273                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_2, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.Mileage), 1 /* TEXT */))
27274                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27275                (_ctx.model.ShowColors)
27276                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27277                        key: 2,
27278                        class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-colors", { 'oem-toyota__tdg--srp-card-colors': _ctx.model.UseTdgColorClasses }])
27279                    }, [
27280                        (showExteriorColors.value)
27281                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27282                                key: 0,
27283                                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-colors__ext", { 'oem-toyota__tdg--srp-card-color': _ctx.model.UseTdgColorClasses }])
27284                            }, [
27285                                (_ctx.model.ShowExteriorColorSwatch)
27286                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* mergeProps */.v6)({
27287                                        key: 0,
27288                                        class: ["vehicle-colors__icon", [
27289                                                `vehicle-colors__icon--${_ctx.model.CornerType}`,
27290                                                {
27291                                                    'oem-toyota__tdg--srp-card-color-icon': _ctx.model.UseTdgColorClasses,
27292                                                },
27293                                            ]]
27294                                    }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_SpaHelpers/* SpaHelpers */.A).ParseHtmlAttrs(_ctx.model.ExternalColorAccessibilityAttributes), {
27295                                        title: _ctx.model.ExteriorColorIconTitleAttribute,
27296                                        style: `background-color: ${_ctx.model.ExteriorColorCode}`
27297                                    }), null, 16 /* FULL_PROPS */, vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_3))
27298                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27299                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("span", vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_4, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(exteriorShortLabel.value) + (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.ShowExteriorColorLabel ? ":" : ""), 1 /* TEXT */),
27300                                (_ctx.model.ShowExteriorColorLabel)
27301                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", {
27302                                        key: 1,
27303                                        class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-colors__value", {
27304                                                'oem-toyota__tdg--srp-card-color-value': _ctx.model.UseTdgColorClasses,
27305                                            }]),
27306                                        innerHTML: _ctx.model.ExteriorColorLabel
27307                                    }, null, 10 /* CLASS, PROPS */, vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_5))
27308                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
27309                            ], 2 /* CLASS */))
27310                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27311                        (showInternalColors.value)
27312                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27313                                key: 1,
27314                                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-colors__int", { 'oem-toyota__tdg--srp-card-color': _ctx.model.UseTdgColorClasses }])
27315                            }, [
27316                                (_ctx.model.ShowInteriorColorSwatch)
27317                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* mergeProps */.v6)({
27318                                        key: 0,
27319                                        class: ["vehicle-colors__icon", [
27320                                                `vehicle-colors__icon--${_ctx.model.CornerType}`,
27321                                                {
27322                                                    'oem-toyota__tdg--srp-card-color-icon': _ctx.model.UseTdgColorClasses,
27323                                                },
27324                                            ]]
27325                                    }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_SpaHelpers/* SpaHelpers */.A).ParseHtmlAttrs(_ctx.model.InteriorColorAccessibilityAttributes), {
27326                                        title: _ctx.model.InteriorColorIconTitleAttribute,
27327                                        style: `background-color: ${_ctx.model.InteriorColorCode}`
27328                                    }), null, 16 /* FULL_PROPS */, vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_6))
27329                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27330                                (_ctx.model.ShowInteriorColorSwatch || _ctx.model.IsCosmosTdgEnabled)
27331                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_7, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(interiorShortLabel.value) + (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(_ctx.model.ShowInteriorColorLabel ? ":" : ""), 1 /* TEXT */))
27332                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27333                                (_ctx.model.ShowInteriorColorLabel)
27334                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", {
27335                                        key: 2,
27336                                        class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-colors__value", {
27337                                                'oem-toyota__tdg--srp-card-color-value': _ctx.model.UseTdgColorClasses,
27338                                            }]),
27339                                        innerHTML: _ctx.model.InteriorColorLabel
27340                                    }, null, 10 /* CLASS, PROPS */, vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts_hoisted_8))
27341                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
27342                            ], 2 /* CLASS */))
27343                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
27344                    ], 2 /* CLASS */))
27345                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
27346            ]));
27347        };
27348    }
27349}));
27350
27351;// ./src/components/spaCosmos/vehicleCards/vehicleSpecs/vehicleSpecs.vue?vue&type=script&setup=true&lang=ts
27352 
27353// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleSpecs/vehicleSpecs.vue?vue&type=style&index=0&id=5a269b74&lang=scss&scoped=true
27354var vehicleCardDeck_vehicleSpecsvue_type_style_index_0_id_5a269b74_lang_scss_
27354scoped_true = __webpack_require__(761);
27355;// ./src/components/spaCosmos/vehicleCards/vehicleSpecs/vehicleSpecs.vue?vue&type=style&index=0&id=5a269b74&lang=scss&scoped=true
27356
27357;// ./src/components/spaCosmos/vehicleCards/vehicleSpecs/vehicleSpecs.vue
27358
27359
27360
27361;
27362
27363
27364const vehicleCardDeck_vehicleSpecs_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_vehicleSpecsvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-5a269b74"]])
27365
27366/* harmony default export */ const vehicleCardDeck_vehicleSpecs = (vehicleCardDeck_vehicleSpecs_exports_);
27367;// ./src/components/spaCosmos/vehicleCards/vehicleSpecs/vehicleSpecsModel.ts
27368class vehicleCardDeck_VehicleSpecsModel {
27369}
27370
27371;// ./src/components/spaCosmos/vehicleCards/vehicleLocation/vehicleLocationModel.ts
27372class vehicleCardDeck_VehicleLocationModel {
27373}
27374
27375;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleCard.vue?vue&type=script&setup=true&lang=ts
27376
27377
27378const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_1 = ["id", "data-altdealerid", "data-vin", "data-make", "data-model", "data-year", "data-trim", "data-extcolor", "data-extcolorcode", "data-intcolor", "data-intcolorcode", "data-trans", "data-price", "data-priceLib", "data-vehicleid", "data-engine", "data-fueltype", "data-vehicletype", "data-bodystyle", "data-modelcode", "data-msrp", "data-name", "data-cpo", "data-stocknum", "data-mpgcity", "data-mpghwy", "data-intransit", "data-inproduction", "data-instock", "data-drivetrain", "data-dotagging-item-id", "data-dotagging-item-number", "data-dotagging-item-price", "data-dotagging-item-condition", "data-dotagging-item-year", "data-dotagging-item-make", "data-dotagging-item-model", "data-dotagging-item-variant", "data-dotagging-item-color", "data-dotagging-item-fuel-type", "data-dotagging-item-type", "data-dotagging-affiliation", "data-dotagging-item-inventory-date", "data-dotagging-item-recommended", "data-dotagging-item-location", "data-dotagging-item-generic-color", "data-dotagging-item-drivetrain", "data-dotagging-item-body-type", "data-dotagging-item-color-interior", "data-dotagging-item-engine", "data-dotagging-item-fuel-efficiency-city", "data-dotagging-item-fuel-efficiency-highway", "data-dotagging-item-odometer", "data-dotagging-item-transmission", "data-stellantis-ccode", "data-odometer", "data-cdsid"];
27379const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_2 = {
27380    key: 0,
27381    class: "vehicle-card__head"
27382};
27383const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_3 = { class: "vehicle-card__image" };
27384const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_4 = { class: "vehicle-card__overview" };
27385const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_5 = { class: "vehicle-card__pricing" };
27386const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_6 = {
27387    key: 1,
27388    class: "vehicle-card__more-info"
27389};
27390const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_7 = { class: "vehicle-more-info" };
27391const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_8 = {
27392    key: 0,
27393    class: "vehicle-more-info__icons"
27394};
27395const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_9 = {
27396    key: 1,
27397    class: "vehicle-more-info__location-info"
27398};
27399const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_10 = { class: "location-info" };
27400const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_11 = ["innerHTML"];
27401const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_12 = ["innerHTML"];
27402const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_13 = {
27403    key: 2,
27404    class: "vehicle-card__more-info"
27405};
27406const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_14 = { class: "vehicle-more-info" };
27407const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_15 = { class: "eligible-benefits" };
27408const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_16 = { class: "vehicle-card__compare" };
27409
27410
27411
27412
27413
27414
27415
27416
27417
27418
27419
27420
27421
27422
27423
27424
27425
27426
27427
27428
27429/* harmony default export */ const vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
27430    __name: 'vehicleCard',
27431    props: {
27432        model: {},
27433        shouldPadCardHeader: { type: Boolean }
27434    },
27435    setup(__props) {
27436        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
27437        const storeProvider = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.StoreProvider);
27438        const globalStore = storeProvider.getGlobalStore();
27439        // computed translation labels
27440        const carBravoLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => `${translationService.getLabel("CARBRAVO")}`);
27441        const hasEligibleBenefits = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => { var _a, _b; return ((_b = (_a = props.model.EligibleBenefitsViewModel) === null || _a === void 0 ? void 0 : _a.EligibleBenefits) === null || _b === void 0 ? void 0 : _b.length) > 0; });
27442        // see DO-25741 - rendering this HTML on used pages sometimes caused display issues, so rather than fixing their HTML, Toyota pushed this responsibility onto us
27443        const showTdgDisclaimersModal = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => props.model.ShowDgDisclaimersModal && props.model.VehicleType.toLowerCase() === "new");
27444        const isRvIndustry = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => globalStore.getIndustry == vehicleCardDeck_industry/* Industry */.j.RecreationalVehicles);
27445        const props = __props;
27446        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => {
27447            document.dispatchEvent(new CustomEvent(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.VehicleCardLoaded));
27448        });
27449        const showAutoSpecs = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
27450            return props.model.ShowSpecs && !isRvIndustry.value;
27451        });
27452        const showAutoFeatures = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
27453            return !isRvIndustry.value && props.model.ShowFeatures;
27454        });
27455        const showRvFeatures = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
27456            var _a;
27457            return isRvIndustry.value && ((_a = props.model.RvInfoViewModel) === null || _a === void 0 ? void 0 : _a.ShowRvDetails);
27458        });
27459        const showFeatures = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
27460            return showAutoFeatures.value || showRvFeatures.value;
27461        });
27462        const industryClassSuffix = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => {
27463            return isRvIndustry.value ? "rv" : "auto";
27464        });
27465        function getVehicleDropdownModel() {
27466            const vdModel = new vehicleCardDeck_VehicleDropdownModel();
27467            vdModel.VehicleVin = props.model.VehicleVin;
27468            vdModel.VehicleId = props.model.VehicleId;
27469            vdModel.VehicleMake = props.model.VehicleMake;
27470            vdModel.VehicleModel = props.model.VehicleModel;
27471            vdModel.VehicleName = props.model.VehicleName;
27472            vdModel.VehicleType = props.model.VehicleType;
27473            vdModel.DealerId = props.model.DealerId;
27474            vdModel.DealerLocatedAtId = props.model.DealerLocatedAtId;
27475            vdModel.VehicleDetailUrl = props.model.VehicleDetailUrl;
27476            return vdModel;
27477        }
27478        function getDgDisclaimersModalModel() {
27479            const dgModel = new vehicleCardDeck_DgDisclaimersModalModel();
27480            dgModel.VehicleVin = props.model.VehicleVin;
27481            dgModel.DigitalGarageEfcDisclaimerValues = props.model.DigitalGarageEfcDisclaimerValues;
27482            dgModel.DigitalGarageRtiDisclaimerDescriptions = props.model.DigitalGarageRtiDisclaimerDescriptions;
27483            return dgModel;
27484        }
27485        function getRvFeaturesModel() {
27486            const rvSpecsModel = new vehicleCardDeck_RecreationalVehicleFeaturesModel();
27487            rvSpecsModel.CornerType = props.model.CornerType;
27488            rvSpecsModel.DealerLocatedAtCity = props.model.DealerLocatedAtCity;
27489            rvSpecsModel.VehicleLocationName = props.model.VehicleLocationName;
27490            rvSpecsModel.DealerLocatedAtState = props.model.DealerLocatedAtState;
27491            rvSpecsModel.Features = props.model.Features;
27492            rvSpecsModel.Length = props.model.Length;
27493            rvSpecsModel.Mileage = props.model.Mileage;
27494            rvSpecsModel.RvInfoViewModel = props.model.RvInfoViewModel;
27495            rvSpecsModel.VehicleStatusModel = props.model.VehicleStatusModel;
27496            rvSpecsModel.ShowDealerLocatedAt = props.model.ShowDealerLocatedAt;
27497            rvSpecsModel.ShowLength = props.model.ShowLength;
27498            rvSpecsModel.ShowMileage = props.model.ShowMileage;
27499            rvSpecsModel.ShowRvDetails = props.model.RvInfoViewModel.ShowRvDetails;
27500            rvSpecsModel.ShowStatus = props.model.ShowStatus;
27501            rvSpecsModel.VehicleDetailUrl = props.model.VehicleDetailUrl;
27502            return rvSpecsModel;
27503        }
27504        function getVehicleSpecsModel() {
27505            const vehicleSpecsModel = new vehicleCardDeck_VehicleSpecsModel();
27506            vehicleSpecsModel.CornerType = props.model.CornerType;
27507            vehicleSpecsModel.ExternalColorAccessibilityAttributes = props.model.ExternalColorAccessibilityAttributes;
27508            vehicleSpecsModel.ExteriorColorCode = props.model.ExteriorColorCode;
27509            vehicleSpecsModel.ExteriorColorIconTitleAttribute = props.model.ExteriorColorIconTitleAttribute;
27510            vehicleSpecsModel.ExteriorColorLabel = props.model.ExteriorColorLabel;
27511            vehicleSpecsModel.InteriorColorAccessibilityAttributes = props.model.InteriorColorAccessibilityAttributes;
27512            vehicleSpecsModel.InteriorColorCode = props.model.InteriorColorCode;
27513            vehicleSpecsModel.InteriorColorIconTitleAttribute = props.model.InteriorColorIconTitleAttribute;
27514            vehicleSpecsModel.InteriorColorLabel = props.model.InteriorColorLabel;
27515            vehicleSpecsModel.IsCosmosTdgEnabled = props.model.IsCosmosTdgEnabled;
27516            vehicleSpecsModel.Mileage = props.model.Mileage;
27517            vehicleSpecsModel.ShowColors = props.model.ShowColors;
27518            vehicleSpecsModel.ShowExteriorColorLabel = props.model.ShowExteriorColorLabel;
27519            vehicleSpecsModel.ShowExteriorColorSwatch = props.model.ShowExteriorColorSwatch;
27520            vehicleSpecsModel.ShowInteriorColorLabel = props.model.ShowInteriorColorLabel;
27521            vehicleSpecsModel.ShowInteriorColorSwatch = props.model.ShowInteriorColorSwatch;
27522            vehicleSpecsModel.ShowMileage = props.model.ShowMileage;
27523            vehicleSpecsModel.ShowStatus = props.model.ShowStatus;
27524            vehicleSpecsModel.UseTdgColorClasses = props.model.UseTdgColorClasses;
27525            vehicleSpecsModel.VehicleStatusModel = props.model.VehicleStatusModel;
27526            return vehicleSpecsModel;
27527        }
27528        function getVehicleTitleModel() {
27529            const titleModel = new vehicleCardDeck_VehicleTitleViewModel();
27530            titleModel.CpoTierTitle = props.model.CpoTierTitle;
27531            titleModel.CpoTierClass = props.model.CpoTierClass;
27532            titleModel.IsCarBravoVehicle = props.model.IsCarBravoVehicle;
27533            titleModel.IsMiniOem = props.model.IsMiniOem;
27534            titleModel.ShowCpoTier = props.model.ShowCpoTier;
27535            titleModel.ShowIdentifiers = props.model.ShowIdentifiers;
27536            titleModel.ShowModelCode = props.model.ShowModelCode;
27537            titleModel.ShowStockNumber = props.model.ShowStockNumber;
27538            titleModel.ShowTdgHeart = props.model.ShowTdgHeart;
27539            titleModel.ShowVehicleCondition = props.model.ShowVehicleCondition;
27540            titleModel.ShowVehicleSavingHeart = props.model.ShowVehicleSavingHeart;
27541            titleModel.ShowVin = props.model.ShowVin;
27542            titleModel.VehicleCondition = props.model.VehicleCondition;
27543            titleModel.VehicleDetailUrl = props.model.VehicleDetailUrl;
27544            titleModel.VehicleMake = props.model.VehicleMake;
27545            titleModel.VehicleMakeAndModel = props.model.VehicleMakeAndModel;
27546            titleModel.VehicleModel = props.model.VehicleModel;
27547            titleModel.VehicleModelCode = props.model.VehicleModelCode;
27548            titleModel.VehicleName = props.model.VehicleName;
27549            titleModel.VehicleRuleAdjustedTrim = props.model.VehicleRuleAdjustedTrim;
27550            titleModel.VehicleRuleAdjustedYear = props.model.VehicleRuleAdjustedYear;
27551            titleModel.VehicleStockNumber = props.model.VehicleStockNumber;
27552            titleModel.VehicleTitleAppendText = props.model.VehicleTitleAppendText;
27553            titleModel.VehicleVin = props.model.VehicleVin;
27554            titleModel.RvInfoViewModel = props.model.RvInfoViewModel;
27555            titleModel.ShowSpecialTags = props.model.ShowSpecialTags;
27556            titleModel.ShouldDisplayPriceDropIcon = props.model.ShouldDisplayPriceDropIcon;
27557            titleModel.ShowSpecialIcon = props.model.ShowSpecialIcon;
27558            return titleModel;
27559        }
27560        function getVehicleLocationModel() {
27561            const locationModel = new vehicleCardDeck_VehicleLocationModel();
27562            locationModel.enabled = props.model.ShowLocation;
27563            locationModel.location = props.model.VehicleLocationLabel;
27564            return locationModel;
27565        }
27566        return (_ctx, _cache) => {
27567            var _a;
27568            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27569                "data-vehicle-information": "",
27570                class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-card vehicle-card--mod", [`vehicle-card--${_ctx.model.CornerType}`,
27571                        { 'vehicle-card--carbravo': _ctx.model.IsCarBravoVehicle },
27572                        { 'vehicle-card--no-icons-location': !_ctx.model.ShowIconsAndLocation },
27573                        `vehicle_${_ctx.model.VehicleUxPosition}`,
27574                        { 'vehicle-card--signalsforyou': _ctx.model.IsSignalsForYou },
27575                        { 'vehicle-card--signalsforyou-margin': _ctx.shouldPadCardHeader }]]),
27576                id: `vehicle_${_ctx.model.VehicleUxPosition}`,
27577                "data-altdealerid": _ctx.model.DealerLocatedAtId,
27578                "data-vin": _ctx.model.VehicleVin,
27579                "data-make": _ctx.model.VehicleMake,
27580                "data-model": _ctx.model.VehicleModel,
27581                "data-year": _ctx.model.VehicleYear,
27582                "data-trim": _ctx.model.VehicleTrim,
27583                "data-extcolor": _ctx.model.ExteriorColorLabel,
27584                "data-extcolorcode": _ctx.model.VehicleExteriorColorCode,
27585                "data-intcolor": _ctx.model.InteriorColorLabel,
27586                "data-intcolorcode": _ctx.model.VehicleInteriorColorCode,
27587                "data-trans": _ctx.model.VehicleTransmission,
27588                "data-price": _ctx.model.VehicleInternetPrice,
27589                "data-priceLib": _ctx.model.VehiclePriceLibrary,
27590                "data-vehicleid": _ctx.model.VehicleId,
27591                "data-engine": _ctx.model.VehicleEngine,
27592                "data-fueltype": _ctx.model.VehicleFuelType,
27593                "data-vehicletype": _ctx.model.VehicleType,
27594                "data-bodystyle": _ctx.model.VehicleBodyStyle,
27595                "data-modelcode": _ctx.model.VehicleModelCode,
27596                "data-msrp": _ctx.model.VehicleMsrp,
27597                "data-name": _ctx.model.VehicleNameHtmlEncoded,
27598                "data-cpo": _ctx.model.VehicleCpo,
27599                "data-stocknum": _ctx.model.VehicleStockNumber,
27600                "data-mpgcity": _ctx.model.VehicleMpgCity,
27601                "data-mpghwy": _ctx.model.VehicleMpgHwy,
27602                "data-intransit": _ctx.model.VehicleInTransit,
27603                "data-inproduction": _ctx.model.VehicleInProduction,
27604                "data-instock": _ctx.model.VehicleInStock,
27605                "data-drivetrain": _ctx.model.VehicleDriveTrain,
27606                "data-dotagging-element-type": "item_details",
27607                "data-dotagging-item-id": _ctx.model.VehicleVin,
27608                "data-dotagging-item-number": _ctx.model.VehicleStockNumber,
27609                "data-dotagging-item-price": _ctx.model.TaggingPrice,
27610                "data-dotagging-item-condition": _ctx.model.TaggingItemCondition,
27611                "data-dotagging-item-year": _ctx.model.VehicleYear,
27612                "data-dotagging-item-make": _ctx.model.VehicleMake,
27613                "data-dotagging-item-model": _ctx.model.VehicleModel,
27614                "data-dotagging-item-variant": _ctx.model.VehicleTrim,
27615                "data-dotagging-item-color": _ctx.model.ExteriorColorLabel,
27616                "data-dotagging-item-category": "automotive",
27617                "data-dotagging-item-fuel-type": _ctx.model.VehicleFuelType,
27618                "data-dotagging-item-type": _ctx.model.TaggingItemType,
27619                "data-dotagging-affiliation": _ctx.model.DealerName,
27620                "data-dotagging-item-inventory-date": _ctx.model.VehicleTaggingInventoryDate,
27621                "data-dotagging-item-recommended": _ctx.model.IsSignalsForYou,
27622                "data-dotagging-item-location": _ctx.model.VehicleLocation,
27623                "data-dotagging-item-generic-color": _ctx.model.VehicleGenericColor,
27624                "data-dotagging-item-drivetrain": _ctx.model.VehicleDriveTrain,
27625                "data-dotagging-item-body-type": _ctx.model.VehicleBodyType,
27626                "data-dotagging-item-color-interior": _ctx.model.InteriorColorLabel,
27627                "data-dotagging-item-engine": _ctx.model.VehicleEngine,
27628                "data-dotagging-item-fuel-efficiency-city": _ctx.model.VehicleMpgCity,
27629                "data-dotagging-item-fuel-efficiency-highway": _ctx.model.VehicleMpgHwy,
27630                "data-dotagging-item-odometer": _ctx.model.Mileage,
27631                "data-dotagging-item-transmission": _ctx.model.VehicleTransmission,
27632                "data-stellantis-ccode": _ctx.model.StellantisCode,
27633                "data-odometer": _ctx.model.VehicleMileage,
27634                "data-cdsid": _ctx.model.ChromeStyleId > 0 ? _ctx.model.ChromeStyleId : undefined
27635            }, [
27636                (_ctx.model.IsSignalsForYou)
27637                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_2, _cache[0] || (_cache[0] = [
27638                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", { class: "vehicle-card__head-tab" }, [
27639                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", null, [
27640                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("svg", {
27641                                    width: "15",
27642                                    height: "14",
27643                                    viewBox: "0 0 15 14",
27644                                    fill: "none",
27645                                    xmlns: "http://www.w3.org/2000/svg"
27646                                }, [
27647                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("path", {
27648                                        d: "M2.5211 0L1.78357 0.704947L2.88095 1.75485L3.61743 1.0499L2.5211 0ZM12.1461 0L11.0487 1.0499L11.7857 1.75485L12.8826 0.705449L12.1461 0ZM7.33333 0.312864C7.16048 0.31487 6.98552 0.324396 6.80952 0.344953C6.80429 0.344953 6.79905 0.34395 6.79381 0.344953C4.66924 0.578097 2.97838 2.22114 2.68452 4.24573C2.44986 5.87523 3.15176 7.35281 4.32143 8.30444C4.79988 8.69529 5.1235 9.23163 5.2381 9.82364V12.8319H6.43238C6.61467 13.1313 6.94729 13.3333 7.33333 13.3333C7.71938 13.3333 8.052 13.1313 8.23429 12.8319H9.42857V10.8264H9.47781V10.2308C9.47781 9.49573 9.87695 8.75468 10.5254 8.17859C11.3929 7.3473 12.0476 6.16653 12.0476 4.81029C12.0476 2.33345 9.91781 0.289801 7.33333 0.312864ZM7.33333 1.31563C9.35786 1.28856 11 2.87494 11 4.81029C11 5.86019 10.4919 6.78474 9.78843 7.4576L9.80519 7.47365C9.1061 8.0907 8.65405 8.92205 8.5271 9.82414H6.23595C6.12071 8.96476 5.73571 8.13297 5.00814 7.53632C4.08257 6.78424 3.531 5.65111 3.71538 4.37158C3.94429 2.79221 5.28314 1.5222 6.92372 1.34822C7.05916 1.33015 7.19557 1.31944 7.33229 1.31614L7.33333 1.31563ZM0 4.81029V5.81306H1.57143V4.81029H0ZM13.0952 4.81029V5.81306H14.6667V4.81029H13.0952ZM2.88095 8.8685L1.7841 9.9179L2.5211 10.6233L3.6169 9.57345L2.88095 8.8685ZM11.7857 8.8685L11.0492 9.57345L12.1456 10.6233L12.8826 9.9179L11.7857 8.8685ZM6.28571 10.8269H8.38095V11.8297H6.28571V10.8269Z",
27649                                        fill: "#F7F7F7"
27650                                    })
27651                                ])
27652                            ]),
27653                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", null, "FOR YOU")
27654                        ], -1 /* HOISTED */)
27655                    ])))
27656                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27657                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
27658                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-card__body", { 'vehicle-card__body--signalsforyou': _ctx.model.IsSignalsForYou }])
27659                }, [
27660                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_3, [
27661                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleImage, {
27662                            model: _ctx.model.VehicleImageModel
27663                        }, null, 8 /* PROPS */, ["model"])
27664                    ]),
27665                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_4, [
27666                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", {
27667                            class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-overview", { 'oem-toyota__tdg--srp-card-overview': _ctx.model.ShowTdgHeart, 'save-heart__srp-card-overview': _ctx.model.ShowVehicleSavingHeart }])
27668                        }, [
27669                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleTitle, {
27670                                model: getVehicleTitleModel(),
27671                                vehicleDropdownModel: getVehicleDropdownModel(),
27672                                vehicleLocationModel: getVehicleLocationModel(),
27673                                tdgHeartModel: _ctx.model.TdgHeartModel
27674                            }, null, 8 /* PROPS */, ["model", "vehicleDropdownModel", "vehicleLocationModel", "tdgHeartModel"]),
27675                            (showAutoSpecs.value)
27676                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27677                                    key: 0,
27678                                    class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-overview__specs", { 'oem-toyota__tdg--srp-card-specs': _ctx.model.UseTdgColorClasses }])
27679                                }, [
27680                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleSpecs, {
27681                                        model: getVehicleSpecsModel()
27682                                    }, null, 8 /* PROPS */, ["model"])
27683                                ], 2 /* CLASS */))
27684                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
27685                        ], 2 /* CLASS */)
27686                    ]),
27687                    (showFeatures.value)
27688                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
27689                            key: 0,
27690                            class: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* normalizeClass */.C4)(["vehicle-card__features", `vehicle-card__features--${industryClassSuffix.value}`])
27691                        }, [
27692                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_features, {
27693                                "show-rv-details": (_a = _ctx.model.RvInfoViewModel) === null || _a === void 0 ? void 0 : _a.ShowRvDetails,
27694                                "vehicle-features-model": _ctx.model.VehicleFeaturesModel,
27695                                "oem-vehicle-features-model": _ctx.model.OemVehicleFeaturesModel,
27696                                "rv-features-model": getRvFeaturesModel()
27697                            }, null, 8 /* PROPS */, ["show-rv-details", "vehicle-features-model", "oem-vehicle-features-model", "rv-features-model"])
27698                        ], 2 /* CLASS */))
27699                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27700                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_5, [
27701                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehiclePricingPanel, {
27702                            model: _ctx.model.WasabiVehiclePricingPanelViewModel
27703                        }, null, 8 /* PROPS */, ["model"])
27704                    ]),
27705                    (_ctx.model.ShowIconsAndLocation)
27706                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_6, [
27707                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_7, [
27708                                (_ctx.model.ShowIcons)
27709                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_8, [
27710                                        (hasEligibleBenefits.value || _ctx.model.HasModelEBrochure)
27711                                            ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_vehicleEligibleBenefits, {
27712                                                key: 0,
27713                                                model: _ctx.model.EligibleBenefitsViewModel,
27714                                                vehicleModel: _ctx.model.VehicleModel,
27715                                                hasBrochure: _ctx.model.HasModelEBrochure
27716                                            }, null, 8 /* PROPS */, ["model", "vehicleModel", "hasBrochure"]))
27717                                            : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27718                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_manufacturerIcons, {
27719                                            model: _ctx.model.ManufacturerHighlightsIconsViewModel
27720                                        }, null, 8 /* PROPS */, ["model"])
27721                                    ]))
27722                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27723                                (_ctx.model.ShowLocationInfo)
27724                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_9, [
27725                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_10, [
27726                                            (_ctx.model.ShowLocationDistance)
27727                                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", {
27728                                                    key: 0,
27729                                                    innerHTML: _ctx.model.VehicleLocationDistanceLabel,
27730                                                    class: "location-info__item location-info__item--miles-away"
27731                                                }, null, 8 /* PROPS */, vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_11))
27732                                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27733                                            (_ctx.model.ShowDaysOnLot)
27734                                                ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("span", {
27735                                                    key: 1,
27736                                                    innerHTML: _ctx.model.DaysOnLotLabel,
27737                                                    class: "location-info__item location-info__item--days-on-lot"
27738                                                }, null, 8 /* PROPS */, vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_12))
27739                                                : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
27740                                        ])
27741                                    ]))
27742                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
27743                            ])
27744                        ]))
27745                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27746                    (!_ctx.model.ShowIconsAndLocation && _ctx.model.HasModelEBrochure)
27747                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_13, [
27748                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_14, [
27749                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_15, [
27750                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_modelEBrochure, {
27751                                        vehicleModel: _ctx.model.VehicleModel,
27752                                        vin: _ctx.model.VehicleVin
27753                                    }, null, 8 /* PROPS */, ["vehicleModel", "vin"])
27754                                ])
27755                            ])
27756                        ]))
27757                        : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
27758                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_16, [
27759                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleCompareButton, {
27760                            model: _ctx.model.VehicleCompareButtonModel
27761                        }, null, 8 /* PROPS */, ["model"])
27762                    ])
27763                ], 2 /* CLASS */),
27764                (showTdgDisclaimersModal.value)
27765                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_dgDisclaimersModal, {
27766                        key: 1,
27767                        model: getDgDisclaimersModalModel()
27768                    }, null, 8 /* PROPS */, ["model"]))
27769                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
27770            ], 10 /* CLASS, PROPS */, vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts_hoisted_1));
27771        };
27772    }
27773}));
27774
27775;// ./src/components/spaCosmos/vehicleCards/vehicleCard.vue?vue&type=script&setup=true&lang=ts
27776 
27777// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/vehicleCards/vehicleCard.vue?vue&type=style&index=0&id=50b80fa6&scoped=true&lang=scss
27778var vehicleCardDeck_vehicleCardvue_type_style_index_0_id_50b80fa6_scoped_true_lang_scss = __webpack_require__(4506);
27779;// ./src/components/spaCosmos/vehicleCards/vehicleCard.vue?vue&type=style&index=0&id=50b80fa6&scoped=true&lang=scss
27780
27781;// ./src/components/spaCosmos/vehicleCards/vehicleCard.vue
27782
27783
27784
27785;
27786
27787
27788const vehicleCardDeck_vehicleCard_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_vehicleCardvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-50b80fa6"]])
27789
27790/* harmony default export */ const vehicleCardDeck_vehicleCard = (vehicleCardDeck_vehicleCard_exports_);
27791// EXTERNAL MODULE: ./src/components/vehicleDisclaimerModal/vehiclePricestakDisclaimerModal.ts
27792var vehicleCardDeck_vehiclePricestakDisclaimerModal = __webpack_require__(6579);
27793;// ./src/components/vehicleCardDeck/vehicleCardDeckModel.ts
27794
27795class vehicleCardDeck_VehicleCardDeckModel {
27796    constructor() {
27797        this.AppendScriptUrls = [];
27798        this.CustomContentHtml = [];
27799        this.Industry = vehicleCardDeck_industry/* Industry */.j.Automotive;
27800        this.ModalsHtml = [];
27801        this.PrependScripts = [];
27802        this.StylesheetUrls = [];
27803        this.VehicleCards = [];
27804    }
27805}
27806
27807;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/vehicleCardDeck/vehicleCards.vue?vue&type=script&setup=true&lang=ts
27808var vehicleCardDeck_vehicleCardsvue_type_script_setup_true_lang_ts_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
27809    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27810    return new (P || (P = Promise))(function (resolve, reject) {
27811        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
27812        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
27813        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27814        step((generator = generator.apply(thisArg, _arguments || [])).next());
27815    });
27816};
27817
27818
27819const vehicleCardDeck_vehicleCardsvue_type_script_setup_true_lang_ts_hoisted_1 = { class: "vehicle-cards grid-view" };
27820
27821
27822
27823
27824
27825
27826
27827
27828
27829
27830/* harmony default export */ const vehicleCardDeck_vehicleCardsvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
27831    __name: 'vehicleCards',
27832    props: {
27833        vins: {},
27834        dealerId: {}
27835    },
27836    setup(__props) {
27837        const props = __props;
27838        const vehicleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.VehicleService);
27839        const priceStakSynchronizer = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.PriceStakSynchronizer);
27840        const vehicleCardWasabi = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.VehicleCardWasabi);
27841        const shareVehicleModal = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ShareVehicleModel);
27842        const pricestakDisclaimerModal = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.VehiclePricestakDisclaimerModal);
27843        const globalStore = (0,vehicleCardDeck_vehicleCardDeck_globalStore/* useGlobalStore */.o)();
27844        const vehicleStore = globalStore.vehicleStore;
27845        let cardDeckData = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(new vehicleCardDeck_VehicleCardDeckModel());
27846        let cards = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)([]);
27847        const isLoadingVehicles = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => vehicleStore.isLoadingVehicles);
27848        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => vehicleCardDeck_vehicleCardsvue_type_script_setup_true_lang_ts_awaiter(this, void 0, void 0, function* () {
27849            yield fetchVehicleCardDeckData();
27850            // need to keep this exact order here to make sure all DOM is present when it needs to be
27851            addModals();
27852            addCards();
27853            addStylesAndScripts();
27854            addCustomContent();
27855            yield initializeServices();
27856        }));
27857        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onUpdated */.$u)(() => {
27858            priceStakSynchronizer.initialize(vehicleCardDeck_srpScrollType/* SrpScrollType */.v.Pagination);
27859        });
27860        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* watch */.wB)(() => props.vins, (newVins, oldVins) => vehicleCardDeck_vehicleCardsvue_type_script_setup_true_lang_ts_awaiter(this, void 0, void 0, function* () {
27861            yield fetchVehicleCardDeckData();
27862            addCards(); //Updates the card list with the new set of vehicle cards after update. 
27863        }));
27864        function fetchVehicleCardDeckData() {
27865            var _a;
27866            return vehicleCardDeck_vehicleCardsvue_type_script_setup_true_lang_ts_awaiter(this, void 0, void 0, function* () {
27867                vehicleStore.setLoadingVehicles(true);
27868                const response = yield vehicleService.getVehicleCardDeck(props.dealerId, props.vins);
27869                const invalidVins = checkVinValidity(response.VehicleCards, props.vins.split(',').map(vin => vin.trim()));
27870                cardDeckData.value = Object.assign(cardDeckData.value, response);
27871                globalStore.setIndustry(cardDeckData.value.Industry);
27872                vehicleStore.setLoadingVehicles(false);
27873                //Passes a list of invalid vins that dont have vehicles in the response
27874                //Also passes a boolean indicating if there are any vehicles in the response
27875                dispatchVehicleDeckLoadedEvent(invalidVins, ((_a = response === null || response === void 0 ? void 0 : response.VehicleCards) === null || _a === void 0 ? void 0 : _a.length) > 0);
27876            });
27877        }
27878        function initializeServices() {
27879            return vehicleCardDeck_vehicleCardsvue_type_script_setup_true_lang_ts_awaiter(this, void 0, void 0, function* () {
27880                yield (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* nextTick */.dY)();
27881                priceStakSynchronizer.initialize(vehicleCardDeck_srpScrollType/* SrpScrollType */.v.Pagination);
27882                vehicleCardWasabi.initialize();
27883                shareVehicleModal.initialize();
27884                pricestakDisclaimerModal.initialize();
27885            });
27886        }
27887        function addModals() {
27888            cardDeckData.value.ModalsHtml.forEach((modalHtml) => {
27889                const tempWrapper = document.createElement('div');
27890                tempWrapper.innerHTML = modalHtml;
27891                const childNodes = Array.from(tempWrapper.childNodes);
27892                childNodes.forEach((node) => {
27893                    // If an element node, append it to the body if it hasn't been added already
27894                    if (node instanceof HTMLElement && !document.getElementById(node.id)) {
27895                        document.body.append(node);
27896                    }
27897                });
27898            });
27899            // Constructor intentionally triggers setup side effects (event listeners, DOM prep). NOSONAR
27900            new vehicleCardDeck_MoreInfoModal(); // NOSONAR
27901        }
27902        function addCustomContent() {
27903            cardDeckData.value.CustomContentHtml.forEach((html) => {
27904                const tempWrapper = document.createElement('div');
27905                tempWrapper.innerHTML = html;
27906                const childNodes = Array.from(tempWrapper.childNodes);
27907                childNodes.forEach((node) => {
27908                    // If an element node, append it to the body if it hasn't been added already
27909                    if (node instanceof HTMLElement && !document.getElementById(node.id)) {
27910                        document.body.append(node);
27911                    }
27912                });
27913            });
27914        }
27915        function addCards() {
27916            cards.value = cardDeckData.value.VehicleCards;
27917        }
27918        function addStylesAndScripts() {
27919            cardDeckData.value.StylesheetUrls.forEach((styleUrl) => {
27920                if (!document.querySelector(`link[href="${styleUrl}"]`)) {
27921                    const linkElement = document.createElement('link');
27922                    linkElement.href = styleUrl;
27923                    linkElement.rel = "stylesheet";
27924                    document.head.appendChild(linkElement);
27925                }
27926            });
27927            cardDeckData.value.PrependScripts.forEach((script) => {
27928                const tempWrapper = document.createElement('div');
27929                tempWrapper.innerHTML = script;
27930                const childNodes = Array.from(tempWrapper.childNodes);
27931                childNodes.forEach((node) => {
27932                    document.body.prepend(node);
27933                });
27934            });
27935            cardDeckData.value.AppendScriptUrls.forEach((scriptUrl) => {
27936                if (!document.querySelector(`script[src="${scriptUrl}"]`)) {
27937                    const scriptElement = document.createElement('script');
27938                    scriptElement.src = scriptUrl;
27939                    document.body.appendChild(scriptElement);
27940                }
27941            });
27942            new vehicleCardDeck_vehiclePricestakDisclaimerModal/* VehiclePricestakDisclaimerModal */.F().initialize();
27943        }
27944        function checkVinValidity(vehicleCards, vins) {
27945            const vehicleVins = vehicleCards.map(card => card.VehicleVin);
27946            const missingVins = vins.filter(vin => vehicleVins.indexOf(vin) === -1);
27947            return missingVins;
27948        }
27949        function dispatchVehicleDeckLoadedEvent(invalidVins, hasValidVin) {
27950            const eventData = {
27951                invalidVins,
27952                hasValidVin,
27953            };
27954            const event = new CustomEvent(vehicleCardDeck_customEvents/* CosmosSrpCustomEvents */.A.VehicleDeckLoaded);
27955            event.data = eventData;
27956            window.dispatchEvent(event);
27957        }
27958        return (_ctx, _cache) => {
27959            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_vehicleCardsvue_type_script_setup_true_lang_ts_hoisted_1, [
27960                (!isLoadingVehicles.value)
27961                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 0 }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(cards), (card) => {
27962                        return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_vehicleCard, {
27963                            model: card,
27964                            "should-pad-card-header": false,
27965                            key: card.VehicleVin
27966                        }, null, 8 /* PROPS */, ["model"]));
27967                    }), 128 /* KEYED_FRAGMENT */))
27968                    : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(true), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, { key: 1 }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* renderList */.pI)(props.vins.split(',').map(vin => vin.trim()), (n, index) => {
27969                        return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_vehicleCardSkeleton, {
27970                            forceGridLayout: true,
27971                            key: index
27972                        }));
27973                    }), 128 /* KEYED_FRAGMENT */))
27974            ]));
27975        };
27976    }
27977}));
27978
27979;// ./src/components/vehicleCardDeck/vehicleCards.vue?vue&type=script&setup=true&lang=ts
27980 
27981// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
27981ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/vehicleCardDeck/vehicleCards.vue?vue&type=style&index=0&id=40341b2e&lang=scss
27982var vehicleCardDeck_vehicleCardsvue_type_style_index_0_id_40341b2e_lang_scss = __webpack_require__(8186);
27983;// ./src/components/vehicleCardDeck/vehicleCards.vue?vue&type=style&index=0&id=40341b2e&lang=scss
27984
27985;// ./src/components/vehicleCardDeck/vehicleCards.vue
27986
27987
27988
27989;
27990
27991const vehicleCardDeck_vehicleCards_exports_ = vehicleCardDeck_vehicleCardsvue_type_script_setup_true_lang_ts;
27992
27993/* harmony default export */ const vehicleCardDeck_vehicleCards = (vehicleCardDeck_vehicleCards_exports_);
27994// EXTERNAL MODULE: ./src/core/enums/uiLocationVersion.ts
27995var vehicleCardDeck_uiLocationVersion = __webpack_require__(3277);
27996;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/modals/geoFilterModal.vue?vue&type=script&setup=true&lang=ts
27997
27998
27999const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_1 = {
28000    class: "modal fade page-modal modal-background",
28001    id: "geoFilterModal",
28002    tabindex: "-1",
28003    "aria-labelledby": "geoFilterTitle"
28004};
28005const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_2 = { class: "modal-dialog" };
28006const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_3 = { class: "modal-content" };
28007const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_4 = { class: "modal-body" };
28008const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_5 = { class: "pad-bottom-1x" };
28009const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_6 = { id: "geoFilterTitle" };
28010const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_7 = {
28011    id: "zipForm",
28012    class: "row margin-top-2x"
28013};
28014const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_8 = { class: "form-group col-xs-7 col-sm-8 margin-bottom-x pad-right_5x" };
28015const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_9 = ["placeholder"];
28016const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_10 = { class: "col-xs-5 col-sm-4 pad-left-x" };
28017const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_11 = ["onclick"];
28018const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_12 = ["onclick"];
28019
28020
28021/* harmony default export */ const vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
28022    __name: 'geoFilterModal',
28023    props: {
28024        pageVehicleType: {}
28025    },
28026    setup(__props) {
28027        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
28028        const searchVehiclesNearbyLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("SEARCH_VEHICLES_NEARBY"));
28029        const searchNewVehiclesNearbyLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("SEARCH_NEW_VEHICLES_NEARBY"));
28030        const searchUsedVehiclesNearbyLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("SEARCH_USED_VEHICLES_NEARBY"));
28031        const locationInputLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("LOCATION_INPUT"));
28032        const zipCodeLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("ZIP_CODE"));
28033        const searchLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("SEARCH"));
28034        const shareMyLocationLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("SHARE_MY_LOCATION"));
28035        const locationSortModalService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.LocationSortModalService);
28036        const props = __props;
28037        function getGeoFilterModalTitle() {
28038            switch (props.pageVehicleType.toLowerCase()) {
28039                case 'new':
28040                    return searchNewVehiclesNearbyLabel.value;
28041                case 'used':
28042                    return searchUsedVehiclesNearbyLabel.value;
28043                default:
28044                    return searchVehiclesNearbyLabel.value;
28045            }
28046        }
28047        return (_ctx, _cache) => {
28048            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("dialog", vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_1, [
28049                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_2, [
28050                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_3, [
28051                        _cache[1] || (_cache[1] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", { class: "modal-header" }, [
28052                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
28053                                type: "button",
28054                                class: "close stat-button-close",
28055                                "data-loc": "search inventory",
28056                                "data-dismiss": "modal"
28057                            }, "×")
28058                        ], -1 /* HOISTED */)),
28059                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_4, [
28060                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_5, [
28061                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h2", vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_6, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(getGeoFilterModalTitle()), 1 /* TEXT */),
28062                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("p", null, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(locationInputLabel.value), 1 /* TEXT */),
28063                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("form", null, [
28064                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_7, [
28065                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_8, [
28066                                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("input", {
28067                                                type: "text",
28068                                                "data-dlron-type": "zipcode",
28069                                                class: "form-control stat-input-field",
28070                                                "data-loc": "search inventory",
28071                                                id: "zipCodeModalTxt",
28072                                                name: "zipcode",
28073                                                placeholder: zipCodeLabel.value,
28074                                                autocomplete: "postal-code",
28075                                                "aria-labelledby": "zipSearchModalBtn"
28076                                            }, null, 8 /* PROPS */, vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_9)
28077                                        ]),
28078                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_10, [
28079                                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
28080                                                id: "zipSearchModalBtn",
28081                                                class: "btn btn-default btn-block btn-main stat-search-submit",
28082                                                "data-loc": "search inventory",
28083                                                value: "",
28084                                                onclick: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(locationSortModalService).zipcodeSearchDynamic.bind((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(locationSortModalService))
28085                                            }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(searchLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_11)
28086                                        ])
28087                                    ])
28088                                ]),
28089                                _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h3", { class: "text-muted text-center margin-vert-1x" }, "- or -", -1 /* HOISTED */)),
28090                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
28091                                    id: "getLocation",
28092                                    class: "btn btn-cta btn-block stat-button-link",
28093                                    "data-loc": "search inventory",
28094                                    value: "",
28095                                    onclick: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(locationSortModalService).askLocation.bind((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(locationSortModalService))
28096                                }, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(shareMyLocationLabel.value), 9 /* TEXT, PROPS */, vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts_hoisted_12)
28097                            ])
28098                        ])
28099                    ])
28100                ])
28101            ]));
28102        };
28103    }
28104}));
28105
28106;// ./src/components/spaCosmos/modals/geoFilterModal.vue?vue&type=script&setup=true&lang=ts
28107 
28108// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
28108ader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/modals/geoFilterModal.vue?vue&type=style&index=0&id=29399bf6&lang=scss
28109var vehicleCardDeck_geoFilterModalvue_type_style_index_0_id_29399bf6_lang_scss = __webpack_require__(3960);
28110;// ./src/components/spaCosmos/modals/geoFilterModal.vue?vue&type=style&index=0&id=29399bf6&lang=scss
28111
28112;// ./src/components/spaCosmos/modals/geoFilterModal.vue
28113
28114
28115
28116;
28117
28118const vehicleCardDeck_geoFilterModal_exports_ = vehicleCardDeck_geoFilterModalvue_type_script_setup_true_lang_ts;
28119
28120/* harmony default export */ const vehicleCardDeck_geoFilterModal = (vehicleCardDeck_geoFilterModal_exports_);
28121;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/modals/modalDialogs.vue?vue&type=script&setup=true&lang=ts
28122
28123
28124const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_1 = {
28125    key: 0,
28126    class: "modal fade page-modal",
28127    id: "videoModal",
28128    tabindex: "-1",
28129    role: "dialog",
28130    "aria-label": "View Video",
28131    "aria-hidden": "true"
28132};
28133const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_2 = {
28134    key: 1,
28135    class: "modal fade page-modal",
28136    id: "optionsModal",
28137    tabindex: "-1",
28138    role: "dialog",
28139    "aria-label": "View Options",
28140    "aria-hidden": "true"
28141};
28142const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_3 = {
28143    key: 2,
28144    class: "modal fade page-modal",
28145    id: "commentsModal",
28146    tabindex: "-1",
28147    role: "dialog",
28148    "aria-label": "View Comments",
28149    "aria-hidden": "true"
28150};
28151const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_4 = { class: "modal-dialog" };
28152const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_5 = { class: "modal-content" };
28153const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_6 = { class: "model-content__heading" };
28154const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_7 = {
28155    key: 3,
28156    class: "modal fade",
28157    id: "rebateModal",
28158    tabindex: "-1",
28159    role: "dialog",
28160    "aria-label": "View More Rebate Information",
28161    "aria-hidden": "true"
28162};
28163const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_8 = { class: "modal-dialog" };
28164const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_9 = { class: "modal-content" };
28165const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_10 = { class: "modal-footer" };
28166const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_11 = {
28167    type: "button",
28168    class: "btn btn-main stat-button-link",
28169    "data-dismiss": "modal",
28170    "data-loc": "available inventory"
28171};
28172
28173
28174
28175
28176/* harmony default export */ const vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
28177    __name: 'modalDialogs',
28178    props: {
28179        uiLocation: {},
28180        pageVehicleType: {}
28181    },
28182    setup(__props) {
28183        const translationService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService);
28184        const cancelLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("CANCEL"));
28185        const dealerCommentsLabel = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => translationService.getLabel("DEALER_COMMENTS"));
28186        const props = __props;
28187        return (_ctx, _cache) => {
28188            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)(vehicleCardDeck_vue_runtime_esm_browser_prod/* Fragment */.FK, null, [
28189                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" Video Modal "),
28190                (_ctx.uiLocation == (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_uiLocationVersion/* UiLocationVersion */.I).SrpWasabi)
28191                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_1, [
28192                        _cache[0] || (_cache[0] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createStaticVNode */.Fv)("<div class=\"modal-dialog\" style=\"width:700px;\" data-v-2f35092b><div class=\"modal-content\" data-v-2f35092b><div class=\"modal-header\" data-v-2f35092b><button type=\"button\" class=\"close stat-button-close\" data-dismiss=\"modal\" data-loc=\"available inventory\" data-v-2f35092b><i class=\"fa fa-times custom-dealer-styling__close--black\" aria-hidden=\"true\" data-v-2f35092b></i></button></div><div class=\"modal-body\" data-v-2f35092b></div></div><!-- /.modal-content --></div>", 1)),
28193                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" /.modal-dialog ")
28194                    ]))
28195                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
28196                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" End Video Modal "),
28197                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" Options Modal "),
28198                (_ctx.uiLocation == (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_uiLocationVersion/* UiLocationVersion */.I).SrpWasabi)
28199                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_2, [
28200                        _cache[1] || (_cache[1] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", { class: "modal-dialog" }, [
28201                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", { class: "modal-content" }, [
28202                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" Content retrieved from remote source indicated in targeting element ")
28203                            ]),
28204                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" /.modal-content ")
28205                        ], -1 /* HOISTED */)),
28206                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" /.modal-dialog ")
28207                    ]))
28208                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
28209                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" End Options Modal "),
28210                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" Comments Modal "),
28211                (_ctx.uiLocation == (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_uiLocationVersion/* UiLocationVersion */.I).SrpWasabi || _ctx.uiLocation == (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_uiLocationVersion/* UiLocationVersion */.I).VehicleCardDeck)
28212                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_3, [
28213                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_4, [
28214                            _cache[3] || (_cache[3] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", { class: "modal-close" }, [
28215                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", {
28216                                    type: "button",
28217                                    role: "button",
28218                                    class: "close stat-button-close",
28219                                    "data-dismiss": "modal",
28220                                    "data-loc": "available inventory",
28221                                    "aria-label": "Close"
28222                                }, [
28223                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("i", {
28224                                        class: "fa fa-times custom-dealer-styling__close--black",
28225                                        "aria-hidden": "true"
28226                                    })
28227                                ])
28228                            ], -1 /* HOISTED */)),
28229                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_5, [
28230                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("h2", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_6, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(dealerCommentsLabel.value), 1 /* TEXT */),
28231                                _cache[2] || (_cache[2] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", { class: "model-content__text" }, [
28232                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" Content retrieved from remote source indicated in targeting element ")
28233                                ], -1 /* HOISTED */))
28234                            ]),
28235                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" /.modal-content ")
28236                        ]),
28237                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" /.modal-dialog ")
28238                    ]))
28239                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
28240                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" End Comments Modal "),
28241                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" Rebate Modal "),
28242                (_ctx.uiLocation == (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_uiLocationVersion/* UiLocationVersion */.I).SrpWasabi)
28243                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_7, [
28244                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" Content retrieved from remote source indicated in targeting element "),
28245                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_8, [
28246                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_9, [
28247                                _cache[4] || (_cache[4] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createStaticVNode */.Fv)("<div class=\"modal-header\" data-v-2f35092b><button type=\"button\" class=\"close stat-button-close\" data-dismiss=\"modal\" data-loc=\"available inventory\" data-v-2f35092b><i class=\"fa fa-times custom-dealer-styling__close--black\" aria-hidden=\"true\" data-v-2f35092b></i></button></div><div class=\"modal-body\" data-v-2f35092b><iframe width=\"100%\" height=\"100%\" id=\"rebateIframe\" data-v-2f35092b></iframe></div>", 2)),
28248                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("div", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_10, [
28249                                    (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("button", vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts_hoisted_11, (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* toDisplayString */.v_)(cancelLabel.value) + "> ", 1 /* TEXT */)
28250                                ])
28251                            ])
28252                        ])
28253                    ]))
28254                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
28255                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" End Rebate Modal "),
28256                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)(" Geo Filter Modal "),
28257                (_ctx.uiLocation == (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_uiLocationVersion/* UiLocationVersion */.I).SrpWasabi)
28258                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createBlock */.Wv)(vehicleCardDeck_geoFilterModal, {
28259                        key: 4,
28260                        pageVehicleType: _ctx.pageVehicleType
28261                    }, null, 8 /* PROPS */, ["pageVehicleType"]))
28262                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
28263                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("End Geo Filter Modal ")
28264            ], 64 /* STABLE_FRAGMENT */));
28265        };
28266    }
28267}));
28268
28269;// ./src/components/spaCosmos/modals/modalDialogs.vue?vue&type=script&setup=true&lang=ts
28270 
28271// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLo
28271ader.js!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/components/spaCosmos/modals/modalDialogs.vue?vue&type=style&index=0&id=2f35092b&scoped=true&lang=css
28272var vehicleCardDeck_modalDialogsvue_type_style_index_0_id_2f35092b_scoped_true_lang_css = __webpack_require__(6833);
28273;// ./src/components/spaCosmos/modals/modalDialogs.vue?vue&type=style&index=0&id=2f35092b&scoped=true&lang=css
28274
28275;// ./src/components/spaCosmos/modals/modalDialogs.vue
28276
28277
28278
28279;
28280
28281
28282const vehicleCardDeck_modalDialogs_exports_ = /*#__PURE__*/(0,vehicleCardDeck_exportHelper/* default */.A)(vehicleCardDeck_modalDialogsvue_type_script_setup_true_lang_ts, [['__scopeId',"data-v-2f35092b"]])
28283
28284/* harmony default export */ const vehicleCardDeck_modalDialogs = (vehicleCardDeck_modalDialogs_exports_);
28285;// ./node_modules/ts-loader/index.js??clonedRuleSet-1!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/infrastructure/vue/vehicleCardDeck/AppVehicleCardDeck.vue?vue&type=script&setup=true&lang=ts
28286var vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
28287    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28288    return new (P || (P = Promise))(function (resolve, reject) {
28289        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
28290        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
28291        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
28292        step((generator = generator.apply(thisArg, _arguments || [])).next());
28293    });
28294};
28295
28296
28297const vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_1 = {
28298    key: 0,
28299    class: "vehicle-card-deck__cards"
28300};
28301const vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_2 = {
28302    key: 1,
28303    class: "vehicle-card-deck__no-vehicles"
28304};
28305const vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_3 = {
28306    key: 2,
28307    class: "invalid-props"
28308};
28309const vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_4 = {
28310    key: 0,
28311    class: "invalid-props__invalid-vins"
28312};
28313const vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_5 = {
28314    key: 1,
28315    class: "invalid-props__no-dealerid"
28316};
28317const vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_6 = {
28318    key: 2,
28319    class: "invalid-props__invalid-dealerid"
28320};
28321
28322
28323
28324
28325
28326
28327
28328/* harmony default export */ const vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts = (/*@__PURE__*/(0,vehicleCardDeck_vue_runtime_esm_browser_prod/* defineComponent */.pM)({
28329    __name: 'AppVehicleCardDeck',
28330    props: {
28331        vins: {},
28332        dealerId: {}
28333    },
28334    setup(__props) {
28335        const toggleService = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* inject */.WQ)(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService);
28336        const props = __props;
28337        // Store
28338        const pinia = (0,vehicleCardDeck_dist_pinia/* createPinia */.Ey)();
28339        (0,vehicleCardDeck_dist_pinia/* setActivePinia */.oO)(pinia);
28340        const globalStore = (0,vehicleCardDeck_vehicleCardDeck_globalStore/* useGlobalStore */.o)();
28341        const vehicleCardDeck = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(null);
28342        // Prop validation refs
28343        const localVins = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)("");
28344        const hasVins = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
28345        const vinsHasValidCharacters = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
28346        const hasDealerId = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
28347        const dealerIdIsNumber = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* ref */.KR)(false);
28348        // Prop validation computed properties
28349        const isValidVins = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => hasVins.value && vinsHasValidCharacters.value);
28350        const isValidDealerId = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => hasDealerId.value && dealerIdIsNumber.value);
28351        const arePropsValid = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* computed */.EW)(() => isValidVins.value && isValidDealerId.value);
28352        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* onMounted */.sV)(() => vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_awaiter(this, void 0, void 0, function* () {
28353            initialize();
28354            if (!arePropsValid.value) {
28355                return;
28356            }
28357            ;
28358        }));
28359        function initialize() {
28360            document.addEventListener("vins-update", (event) => {
28361                localVins.value = event.detail.vins;
28362                validateProps();
28363            });
28364            //props are immutable, so work with a local ref for Vins which can be updated
28365            localVins.value = props.vins;
28366            validateProps();
28367            setupResizeObserver();
28368        }
28369        /**
28370         * Validates the props passed to the component through custom code. Doing this outside of standard prop validation to allow for visible warnings in production mode.
28371         */
28372        function validateProps() {
28373            validateVins();
28374            validateDealerId();
28375        }
28376        function validateVins() {
28377            var _a, _b;
28378            const vinString = (_b = (_a = localVins.value) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '';
28379            hasVins.value = vinString.length > 0 && vinString.split(',').length > 0;
28380            vinsHasValidCharacters.value = /^[a-zA-Z0-9,]+$/.test(vinString);
28381            if (!vinsHasValidCharacters.value) {
28382                logPropValidationWarning('vins', 'The vins attribute must only contain numbers, letters, and commas.');
28383            }
28384        }
28385        function validateDealerId() {
28386            var _a, _b;
28387            const dealerId = (_b = (_a = props.dealerId) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '';
28388            hasDealerId.value = dealerId.length > 0;
28389            dealerIdIsNumber.value = /^\d+$/.test(dealerId);
28390            if (!hasDealerId.value) {
28391                logPropValidationWarning('dealerId', 'The dealerId attribute must contain at least one character.');
28392            }
28393            if (!dealerIdIsNumber.value) {
28394                logPropValidationWarning('dealerId', 'The dealerId attribute must only contain numbers.');
28395            }
28396        }
28397        function logPropValidationWarning(attr, errorMessage) {
28398            console.warn(`Warning: Invalid "${attr}" attribute in <vehicle-card-deck> component. ${errorMessage}`);
28399        }
28400        function setupResizeObserver() {
28401            const resizeObserver = new ResizeObserver(() => {
28402                if (window.innerWidth <= 768) {
28403                    globalStore.isMobile = true;
28404                }
28405                else {
28406                    globalStore.isMobile = false;
28407                }
28408            });
28409            resizeObserver.observe(document.body);
28410        }
28411        return (_ctx, _cache) => {
28412            return ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", {
28413                ref_key: "vehicleCardDeck",
28414                ref: vehicleCardDeck,
28415                class: "vehicle-card-deck"
28416            }, [
28417                (arePropsValid.value)
28418                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_1, [
28419                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_vehicleCards, {
28420                            vins: localVins.value,
28421                            "dealer-id": _ctx.dealerId
28422                        }, null, 8 /* PROPS */, ["vins", "dealer-id"])
28423                    ]))
28424                    : (!hasVins.value)
28425                        ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_2, " No vehicles to display "))
28426                        : ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("div", vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_3, [
28427                            _cache[3] || (_cache[3] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("p", { class: "invalid-props__warning" }, [
28428                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)("WARNING: "),
28429                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("code", null, "<vehicle-card-deck>"),
28430                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)(" element props are not valid. Please check the following in your custom code:")
28431                            ], -1 /* HOISTED */)),
28432                            (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("ul", null, [
28433                                (!vinsHasValidCharacters.value)
28434                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("li", vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_4, _cache[0] || (_cache[0] = [
28435                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)("The "),
28436                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("code", null, "vins", -1 /* HOISTED */),
28437                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)(" attribute must be a comma-separated list of VINs, and must only contain numbers, letters, and commas.")
28438                                    ])))
28439                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
28440                                (!hasDealerId.value)
28441                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("li", vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_5, _cache[1] || (_cache[1] = [
28442                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)("The "),
28443                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("code", null, "dealerId", -1 /* HOISTED */),
28444                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)(" attribute must contain at least one character.")
28445                                    ])))
28446                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true),
28447                                (!dealerIdIsNumber.value)
28448                                    ? ((0,vehicleCardDeck_vue_runtime_esm_browser_prod/* openBlock */.uX)(), (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementBlock */.CE)("li", vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts_hoisted_6, _cache[2] || (_cache[2] = [
28449                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)("The "),
28450                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("code", null, "dealerId", -1 /* HOISTED */),
28451                                        (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createTextVNode */.eW)(" attribute must only contain numbers.")
28452                                    ])))
28453                                    : (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createCommentVNode */.Q3)("v-if", true)
28454                            ]),
28455                            _cache[4] || (_cache[4] = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("p", null, [
28456                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("strong", null, "When used correctly, your card deck element should look similar to the following:"),
28457                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("br"),
28458                                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createElementVNode */.Lk)("code", null, "<vehicle-card-deck vins=\"VIN1,VIN2,VIN3\" dealer-id=\"12345\"></vehicle-card-deck>")
28459                            ], -1 /* HOISTED */))
28460                        ])),
28461                (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createVNode */.bF)(vehicleCardDeck_modalDialogs, {
28462                    uiLocation: (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* unref */.R1)(vehicleCardDeck_uiLocationVersion/* UiLocationVersion */.I).VehicleCardDeck
28463                }, null, 8 /* PROPS */, ["uiLocation"])
28464            ], 512 /* NEED_PATCH */));
28465        };
28466    }
28467}));
28468
28469;// ./src/infrastructure/vue/vehicleCardDeck/AppVehicleCardDeck.vue?vue&type=script&setup=true&lang=ts
28470 
28471// EXTERNAL MODULE: ./node_modules/vue-style-loader/index.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-7.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/infrastructure/vue/vehicleCardDeck/AppVehicleCardDeck.vue?vue&type=style&index=0&id=48ee9f99&lang=scss
28472var vehicleCardDeck_AppVehicleCardDeckvue_type_style_index_0_id_48ee9f99_lang_scss = __webpack_require__(5577);
28473;// ./src/infrastructure/vue/vehicleCardDeck/AppVehicleCardDeck.vue?vue&type=style&index=0&id=48ee9f99&lang=scss
28474
28475;// ./src/infrastructure/vue/vehicleCardDeck/AppVehicleCardDeck.vue
28476
28477
28478
28479;
28480
28481const vehicleCardDeck_AppVehicleCardDeck_exports_ = vehicleCardDeck_AppVehicleCardDeckvue_type_script_setup_true_lang_ts;
28482
28483/* harmony default export */ const vehicleCardDeck_AppVehicleCardDeck = (vehicleCardDeck_AppVehicleCardDeck_exports_);
28484// EXTERNAL MODULE: ./src/infrastructure/vue/types/appLocation.ts
28485var vehicleCardDeck_appLocation = __webpack_require__(8602);
28486;// ./src/components/vehicleCardDeck/vehicleCardDeckLoader.ts
28487var vehicleCardDeck_vehicleCardDeckLoader_awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
28488    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28489    return new (P || (P = Promise))(function (resolve, reject) {
28490        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
28491        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
28492        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
28493        step((generator = generator.apply(thisArg, _arguments || [])).next());
28494    });
28495};
28496//DEPENDENCY INJECTION
28497// reflect-metadata should only be called once at the root of the application
28498
28499
28500
28501
28502
28503
28504class vehicleCardDeck_VehicleCardDeckLoader {
28505    constructor(appHostElement) {
28506        this._appHostElement = appHostElement;
28507    }
28508    initialize() {
28509        return vehicleCardDeck_vehicleCardDeckLoader_awaiter(this, void 0, void 0, function* () {
28510            yield this.initializeServices();
28511            this.initializeApp();
28512        });
28513    }
28514    initializeServices() {
28515        return vehicleCardDeck_vehicleCardDeckLoader_awaiter(this, void 0, void 0, function* () {
28516            this.toggleService = vehicleCardDeck_inversify_config/* doIocContainer */.E.get(vehicleCardDeck_types/* TYPES */.Q.IToggleService);
28517            this.translationService = vehicleCardDeck_inversify_config/* doIocContainer */.E.get(vehicleCardDeck_types/* TYPES */.Q.ITranslationService);
28518            this.vehicleService = vehicleCardDeck_inversify_config/* doIocContainer */.E.get(vehicleCardDeck_types/* TYPES */.Q.IVehicleService);
28519            this.storeProvider = vehicleCardDeck_inversify_config/* doIocContainer */.E.get(vehicleCardDeck_types/* TYPES */.Q.IStoreProvider);
28520            this.vehicleCardWasabi = vehicleCardDeck_inversify_config/* doIocContainer */.E.get(vehicleCardDeck_types/* TYPES */.Q.VehicleCardWasabi);
28521            this.priceStakSynchronizer = vehicleCardDeck_inversify_config/* doIocContainer */.E.get(vehicleCardDeck_types/* TYPES */.Q.IPriceStakSynchronizer);
28522            this.shareVehicleModal = vehicleCardDeck_inversify_config/* doIocContainer */.E.get(vehicleCardDeck_types/* TYPES */.Q.ShareVehicleModel);
28523            this.pricestakDisclaimerModal = vehicleCardDeck_inversify_config/* doIocContainer */.E.get(vehicleCardDeck_types/* TYPES */.Q.VehiclePricestakDisclaimerModal);
28524            yield this.translationService.initialize(true, true, true, true);
28525            yield this.toggleService.initialize();
28526            this.storeProvider.initialize(vehicleCardDeck_appLocation/* AppLocation */.V.VehicleCardDeck);
28527            // Other services are not initialized here because they need to wait until after cards are loaded
28528        });
28529    }
28530    initializeApp() {
28531        const app = (0,vehicleCardDeck_vue_runtime_esm_browser_prod/* createApp */.Ef)(vehicleCardDeck_AppVehicleCardDeck, {
28532            vins: this._appHostElement.getAttribute('vins'),
28533            dealerId: this._appHostElement.getAttribute('dealer-id')
28534        });
28535        app.provide(vehicleCardDeck_types/* PROVIDERS */.x.ToggleService, this.toggleService);
28536        app.provide(vehicleCardDeck_types/* PROVIDERS */.x.TranslationService, this.translationService);
28537        app.provide(vehicleCardDeck_types/* PROVIDERS */.x.VehicleService, this.vehicleService);
28538        app.provide(vehicleCardDeck_types/* PROVIDERS */.x.StoreProvider, this.storeProvider);
28539        app.provide(vehicleCardDeck_types/* PROVIDERS */.x.VehicleCardWasabi, this.vehicleCardWasabi);
28540        app.provide(vehicleCardDeck_types/* PROVIDERS */.x.PriceStakSynchronizer, this.priceStakSynchronizer);
28541        app.provide(vehicleCardDeck_types/* PROVIDERS */.x.ShareVehicleModel, this.shareVehicleModal);
28542        app.provide(vehicleCardDeck_types/* PROVIDERS */.x.VehiclePricestakDisclaimerModal, this.pricestakDisclaimerModal);
28543        app.mount(this._appHostElement);
28544    }
28545}
28546
28547;// ./src/components/vehicleCardDeck/vehicleCardDeck.ts
28548
28549class vehicleCardDeck_VehicleCardDeck extends HTMLElement {
28550    constructor() {
28551        super();
28552    }
28553    static get observedAttributes() {
28554        return ['vins'];
28555    }
28556    attributeChangedCallback(name, oldValue, newValue) {
28557        if (name === 'vins' && oldValue !== newValue) {
28558            this.dispatchEvent(new CustomEvent('vins-update', {
28559                detail: { vins: newValue, oldVins: oldValue },
28560                bubbles: true,
28561                composed: true, // Allow crossing the shadow DOM boundary
28562            }));
28563        }
28564    }
28565    connectedCallback() {
28566        const loader = new vehicleCardDeck_VehicleCardDeckLoader(this);
28567        loader.initialize();
28568    }
28569}
28570customElements.define('vehicle-card-deck', vehicleCardDeck_VehicleCardDeck);
28571
28572})();
28573
28574/******/ })()
28575;

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.