Meet

Ashley Stieger

The Denver Group | Compass Colorado

Clients working with Ashley recognize quickly that she deeply listens, connects, and endlessly works to help achieve their real estate goals. Ashley’s market-savviness and passion for the industry allows her clients to enjoy a seamless transaction process, whether they are buying or selling a luxury property, first-time homebuyers or experienced investors.

Ashley’s real estate journey began in 2009, when she purchased her first family home. Since then, she’s bought and sold multiple primary residences and acquired several investment properties. She understands the power of real estate and believes that every home purchase, including a luxury dream home, is an investment. She feels strongly about sharing the gift of real estate with others and looks forward to the opportunity to build a long-term relationship with each client she meets. 

Ashley loves living in beautiful Denver, Colorado with her husband and son. She sees Colorado as the ideal location for the highest quality of life due to the combination of a diverse, thriving economy, and a family-oriented, outdoorsy lifestyle. On any given day, you might catch her on a hike with her family, skiing in one of our many attractive ski-towns, chatting with friends at a local brewery, or trying out one of Denver’s best restaurants.

Testimonials
The way that this group takes you under their wing was absolutely needed as a first time buyer and they were amazing throughout the entire process.
Matthew S.
We loved working with our real estate agent Ashley Stieger. She was always available, encouraging, and worked tirelessly until we found our new home in Aurora, CO. ...
Rush A.
01 02
' + '' + '' + '' + '' + '' + ''); $('#modal-' + section.attr('id') + ' .close').click(function () { $('#modal-' + section.attr('id')).remove(); }); } /** * Handle type contact us click * @param {Button} button */ }, { key: "_handleContactUsButton", value: function _handleContactUsButton(button) { var window = this.window, document = this.document; // TODO: Extend for an overwritten contact us document.sendGoogleAnalyticsEvent({ hitType: 'event', eventCategory: 'button', eventAction: 'click', eventLabel: 'contact' }); window.lpUI.showModal('modal-global-contact-us', { scrollLock: true }); } /** * Track conversion * @param {Button} button */ }, { key: "_trackConversion", value: function _trackConversion(button) { var window = this.window, document = this.document; // Conversion Tracking Options var gtagConversionId = button.data('gtag-conversion-id'); var gtagConversionLabel = button.data('gtag-conversion-label'); var fbEventName = button.data('fb-event-name'); if (gtagConversionId && gtagConversionLabel) { if (window.dataLayer && window.dataLayer.length) { var configured = window.dataLayer.forEach(function (layer) { if (layer.length && layer[0] === 'config' && layer[1] === gtagConversionId) { return true; } return false; }); if (!configured) { document.sendGoogleTagManagerEvent('config', gtagConversionId); } } var sentTo = "".concat(gtagConversionId, "/").concat(gtagConversionLabel); document.sendGoogleTagManagerEvent('event', 'conversion', { send_to: sentTo }); } if (window.fbq && fbEventName) { window.fbq('track', fbEventName, {}); } } }]); return ButtonController; }(_base.BaseController); },{"@babel/runtime/helpers/asyncToGenerator":"../../../../../node_modules/@babel/runtime/helpers/asyncToGenerator.js","@babel/runtime/helpers/classCallCheck":"../../../../../node_modules/@babel/runtime/helpers/classCallCheck.js","@babel/runtime/helpers/createClass":"../../../../../node_modules/@babel/runtime/helpers/createClass.js","@babel/runtime/helpers/assertThisInitialized":"../../../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","@babel/runtime/helpers/inherits":"../../../../../node_modules/@babel/runtime/helpers/inherits.js","@babel/runtime/helpers/possibleConstructorReturn":"../../../../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","@babel/runtime/helpers/getPrototypeOf":"../../../../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","@babel/runtime/regenerator":"../../../../../node_modules/@babel/runtime/regenerator/index.js","../utils/navigation":"utils/navigation.js","./base":"controllers/base.js"}],"../../../../../node_modules/@babel/runtime/helpers/defineProperty.js":[function(require,module,exports) { var toPropertyKey = require("./toPropertyKey.js"); function _defineProperty(obj, key, value) { key = toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; },{"./toPropertyKey.js":"../../../../../node_modules/@babel/runtime/helpers/toPropertyKey.js"}],"controllers/contactForms.js":[function(require,module,exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContactFormController = exports.ADD_FIELD = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _base = require("./base"); var _constants = require("./constants.ts"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable import/prefer-default-export */ // Honeypot field var ADD_FIELD = exports.ADD_FIELD = 'middleName'; var GRECAPTCHA_ACTION = 'contact_form'; // Default lead fields var DEFAULT_LEAD_FIELDS = ['name', 'firstName', 'lastName', ADD_FIELD, 'email', 'phone', 'phoneNumber', 'source', 'message', 'mlsId', 'sourceUrl']; var ContactFormController = exports.ContactFormController = /*#__PURE__*/function (_BaseController) { (0, _inherits2.default)(ContactFormController, _BaseController); var _super = _createSuper(ContactFormController); /** * Initialize Contact Form Controller at build time * @param { ConfigController } config * @param {Window} window * @param {Document} document * @param {jquery} $ */ function ContactFormController(config, window, document, $) { var _this; (0, _classCallCheck2.default)(this, ContactFormController); _this = _super.call(this, config, window, document, $); _this.config = config; _this.window = window; _this.document = document; _this.$ = $; _this.forms = []; return _this; } /** * Initialize Contact Form Controller at run time * Attach handlers and events to DOM * @param {Object} options */ (0, _createClass2.default)(ContactFormController, [{ key: "initialize", value: function initialize() { var _this2 = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; try { var $ = this.$; var selector = options.selector; var forms = []; if (selector) { forms = $("".concat(selector, " form[data-type=\"contact-form\"]")); } else { forms = $('form[data-type="contact-form"]'); } forms.each(function (index, f) { _this2._attachSubmitHandler($(f)); }); this.forms = this.forms.concat(forms); } catch (e) { // eslint-disable-next-line no-console console.log(e); } } /** * Controllers must implement a "destroy" method to be called * after page navigation to remove event handlers / cleanup */ }, { key: "destroy", value: function destroy() { this.forms = []; } /** * Handle submit from global context * @param {Form} form */ }, { key: "submitForm", value: function submitForm(form) { this._handleSubmit(null, form); } /** * Attach submit event for form * @param {Form} contactForm */ }, { key: "_attachSubmitHandler", value: function _attachSubmitHandler(contactForm) { var _this3 = this; contactForm.submit(function (e) { return _this3._handleSubmit(e, contactForm); }); } /** * Submit Contact Form Handler * @param {Event} e * @param {Form} contactForm * @return {Promise} */ }, { key: "_handleSubmit", value: function () { var _handleSubmit2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(e, contactForm) { var window, config, recaptchaToken, values, valuesArray, name, fields, content, pageId, companyId, websiteId, pageMeta, utm, formId, data, robots, closeDelay; return _regenerator.default.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: window = this.window, config = this.config; if (e) { e.preventDefault(); } if (!contactForm.hasClass('loading')) { _context.next = 4; break; } return _context.abrupt("return"); case 4: contactForm.addClass('loading'); recaptchaToken = null; if (!config.recaptcha.enabled) { _context.next = 10; break; } _context.next = 9; return this._recaptchaToken(); case 9: recaptchaToken = _context.sent; case 10: values = {}; valuesArray = contactForm.serializeArray(); valuesArray.forEach(function (field) { if (typeof field.value === 'string') { values[field.name] = field.value.trim(); } else { values[field.name] = field.value; } }); name = values.name; if (!name && values.firstName) { values.name = values.firstName; if (values.lastName) { values.name += ' ' + values.lastName; } } fields = this._getFields(contactForm); // pass all other form values in 'content' content = Object.keys(Object.assign({}, values)).filter(function (key) { return !DEFAULT_LEAD_FIELDS.includes(key); }).reduce(function (result, key) { result[key] = values[key]; return result; }, {}); pageId = config.pageId, companyId = config.companyId, websiteId = config.websiteId, pageMeta = config.pageMeta; utm = window.localStorage.getItem('utm_vars') || '{}'; formId = this._getFormId(contactForm); data = { g_recaptcha_response: recaptchaToken, g_recaptcha_action: GRECAPTCHA_ACTION, activity: { author_email: values.email, author_name: values.name, author_phone: values.phone || values.phoneNumber, activity_source: values.source || 'CONTACT_INQUIRY', comments_attributes: [{ text: values.message || undefined }], source_url: window.location.href, content: _objectSpread(_objectSpread({}, content), JSON.parse(utm)) }, page: { pageId: pageId, companyId: companyId, websiteId: websiteId, pageMeta: _objectSpread(_objectSpread({}, pageMeta), {}, { formId: formId }) }, companyId: companyId, fields: fields }; // TODO: HoneyPot should still send request robots = values.middleName; if (!robots) { _context.next = 24; break; } return _context.abrupt("return"); case 24: _context.prev = 24; _context.next = 27; return this._submitLeadRequest(data); case 27: this._sendGAEvent(data); closeDelay = contactForm.eq(0).data('delay') || _constants.MODAL_CLOSE_DELAY; contactForm.removeClass('loading'); contactForm.addClass('success'); // TODO: Review producer and classic to deprecate "hide" contactForm.find('.success').removeClass('hide'); contactForm.trigger('formsubmitted'); setTimeout(function () { window.lpUI.hideClosestModal(contactForm); contactForm[0].reset(); window.lpUI.sideMenuHide(); contactForm.find('.success').addClass('hide'); contactForm.removeClass('success'); }, closeDelay); _context.next = 42; break; case 36: _context.prev = 36; _context.t0 = _context["catch"](24); // eslint-disable-next-line no-console console.log(_context.t0); contactForm.trigger('formsubmiterror'); contactForm.removeClass('loading'); contactForm.addClass('error'); case 42: case "end": return _context.stop(); } }, _callee, this, [[24, 36]]); })); function _handleSubmit(_x, _x2) { return _handleSubmit2.apply(this, arguments); } return _handleSubmit; }() /** * Get Recaptcha token for assessment * @param {Object} data * @return {Promise} */ }, { key: "_recaptchaToken", value: function _recaptchaToken() { var window = this.window, config = this.config; if (!config.recaptcha.recaptchaSiteId) { // eslint-disable-next-line no-console console.log('No recaptchaSiteId provided'); return; } return new Promise(function (resolve, reject) { window.grecaptcha.enterprise.ready(function () { window.grecaptcha.enterprise.execute(config.recaptcha.recaptchaSiteId, { action: GRECAPTCHA_ACTION }).then(function (token) { return resolve(token); }).catch(function (e) { return reject(e); }); }); }); } /** * Send Lead Request * @param {Object} data * @return {Promise} */ }, { key: "_submitLeadRequest", value: function _submitLeadRequest(data) { var $ = this.$, config = this.config; // TODO: Use better request library return new Promise(function (resolve, reject) { var leadRoute; if (config.leadIngesterEnabled) { leadRoute = "".concat(config.leadIngesterUrl, "/api/v1/leads"); } else { leadRoute = '/home-search/activities'; } var request = $.post(leadRoute, JSON.parse(JSON.stringify(data)), function (result) { return resolve(result); }); request.fail(function (e) { return reject(e); }); }); } /** * Send GA event * @param {Object} data */ }, { key: "_sendGAEvent", value: function _sendGAEvent(data) { var document = this.document; var event = { hitType: 'event', eventCategory: 'button', eventAction: 'click' }; switch (data.activity.activity_source) { case 'NEWSLETTER_SIGNUP': event.eventLabel = 'Newsletter'; document.sendGoogleTagManagerEvent('event', 'newsletter_signup'); break; case 'HOME_SEARCH': event.eventLabel = 'HomeSearch'; document.sendGoogleTagManagerEvent('event', 'home_search'); break; case 'HOME_VALUE': case 'HOME_VALUATION': event.eventLabel = 'HomeValue'; document.sendGoogleTagManagerEvent('event', 'home_valuation'); break; case 'EBOOK': event.eventLabel = 'Ebook'; document.sendGoogleTagManagerEvent('event', 'ebook_download'); break; case 'CONTACT_INQUIRY': default: // for contact forms, Marketing has requested that they see a page-view of 'thank-you' as indication of success // Note that this will break if we have actual page with url of /thank-you event = { hitType: 'pageview', page: '/thank-you' }; document.sendGoogleTagManagerEvent('event', 'contact_inquiry'); break; } document.sendGoogleAnalyticsEvent(event); } /** * Gather fields / schema for form, used for display in CRM * @param {Form} form * @return {Object} */ }, { key: "_getFields", value: function _getFields(form) { var $ = this.$; var inputs = form.find('input,select,textarea'); var fields = {}; inputs.each(function () { var id = this.getAttribute('id'); var name = this.getAttribute('name'); var inputType = this.getAttribute('type'); if (name === ADD_FIELD) { // Honeypot continue return true; } var label = null; if (id) { var labelNodes = form.find("label[for='".concat(id, "']")); if (labelNodes.length > 0) { label = $(labelNodes[0]).text().trim(); } else if (this.getAttribute('placeholder')) { if (this.getAttribute('placeholder').length > 0) { label = this.getAttribute('placeholder').trim(); } } } fields[name] = { label: label, type: this.tagName, inputType: this.tagName !== 'SELECT' && this.tagName !== 'TEXTAREA' ? inputType : 'text' }; }); return fields; } /** * Figure out relevant section or div ID for form * @param {Form} form * @return {string} */ }, { key: "_getFormId", value: function _getFormId(form) { var SELECTORS = "section[id^='section-'], footer[id], .modal[id^='modal-']"; var parent = form.closest(SELECTORS); if (parent && parent.attr('id')) { return this._cleanFormId(parent.attr('id')); } return ''; } /** * Remove prefix from formID * @param {string} formId * @return {string} */ }, { key: "_cleanFormId", value: function _cleanFormId(formId) { var PREFIXES = ['section-', 'modal-']; for (var _i = 0, _PREFIXES = PREFIXES; _i < _PREFIXES.length; _i++) { var prefix = _PREFIXES[_i]; if (formId.startsWith(prefix)) { return formId.substring(prefix.length); } } return formId; } }]); return ContactFormController; }(_base.BaseController); },{"@babel/runtime/helpers/defineProperty":"../../../../../node_modules/@babel/runtime/helpers/defineProperty.js","@babel/runtime/helpers/asyncToGenerator":"../../../../../node_modules/@babel/runtime/helpers/asyncToGenerator.js","@babel/runtime/helpers/classCallCheck":"../../../../../node_modules/@babel/runtime/helpers/classCallCheck.js","@babel/runtime/helpers/createClass":"../../../../../node_modules/@babel/runtime/helpers/createClass.js","@babel/runtime/helpers/inherits":"../../../../../node_modules/@babel/runtime/helpers/inherits.js","@babel/runtime/helpers/possibleConstructorReturn":"../../../../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","@babel/runtime/helpers/getPrototypeOf":"../../../../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","@babel/runtime/regenerator":"../../../../../node_modules/@babel/runtime/regenerator/index.js","./base":"controllers/base.js","./constants.ts":"controllers/constants.ts"}],"../../../../../node_modules/@babel/runtime/helpers/arrayWithHoles.js":[function(require,module,exports) { function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; },{}],"../../../../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js":[function(require,module,exports) { function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; },{}],"../../../../../node_modules/@babel/runtime/helpers/arrayLikeToArray.js":[function(require,module,exports) { function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; },{}],"../../../../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js":[function(require,module,exports) { var arrayLikeToArray = require("./arrayLikeToArray.js"); function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); } module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; },{"./arrayLikeToArray.js":"../../../../../node_modules/@babel/runtime/helpers/arrayLikeToArray.js"}],"../../../../../node_modules/@babel/runtime/helpers/nonIterableRest.js":[function(require,module,exports) { function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; },{}],"../../../../../node_modules/@babel/runtime/helpers/slicedToArray.js":[function(require,module,exports) { var arrayWithHoles = require("./arrayWithHoles.js"); var iterableToArrayLimit = require("./iterableToArrayLimit.js"); var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); var nonIterableRest = require("./nonIterableRest.js"); function _slicedToArray(arr, i) { return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); } module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; },{"./arrayWithHoles.js":"../../../../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","./iterableToArrayLimit.js":"../../../../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","./unsupportedIterableToArray.js":"../../../../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","./nonIterableRest.js":"../../../../../node_modules/@babel/runtime/helpers/nonIterableRest.js"}],"controllers/mapApiLoader.js":[function(require,module,exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.STATIC_MAP_MAX_DIM = exports.MapApiLoaderController = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _base = require("./base"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable import/prefer-default-export */ var CALLBACK = '__googleMapsCallback'; var GOOGLE_MAPS_URL = 'https://maps.googleapis.com/maps/api/js'; var STATIC_MAP_MAX_DIM = exports.STATIC_MAP_MAX_DIM = 1024; var MapApiLoaderController = exports.MapApiLoaderController = /*#__PURE__*/function (_BaseController) { (0, _inherits2.default)(MapApiLoaderController, _BaseController); var _super = _createSuper(MapApiLoaderController); /** * Initialize Button Controller at build time * @param { ConfigController } config * @param {Window} window * @param {Document} document * @param {jquery} $ */ function MapApiLoaderController(config, window, document, $) { var _this; (0, _classCallCheck2.default)(this, MapApiLoaderController); _this = _super.call(this, config, window, document, $); _this.config = config; _this.window = window; _this.document = document; _this.$ = $; _this.retries = 3; _this.callbacks = []; _this.id = "__googleMapsScriptId".concat(Date.now()); _this._apiKey = ''; _this.reset(); return _this; } /** * Set the Google Maps api key * @param {string} apiKey */ (0, _createClass2.default)(MapApiLoaderController, [{ key: "apiKey", get: /** * Get the Google Maps api key * @return {string} */ function get() { return this._apiKey; } /** * Reset the loader state. */, set: function set(apiKey) { this._apiKey = apiKey; this.config.setGoogleMapsAPIKey(apiKey); } }, { key: "reset", value: function reset() { this.deleteScript(); this.done = false; this.loading = false; this.errors = []; this.onerrorEvent = null; } /** * Destroy */ }, { key: "destroy", value: function destroy() { this.reset(); } /** * get map api Key * @return {Promise} */ }, { key: "getMapApiKey", value: function () { var _getMapApiKey = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { var code; return _regenerator.default.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: if (!this.apiKey) { _context.next = 2; break; } return _context.abrupt("return", this.apiKey); case 2: _context.prev = 2; _context.next = 5; return this.$.get("".concat(this._getBaseUrl(), "/api/v1/map")); case 5: code = _context.sent; this.apiKey = code; return _context.abrupt("return", this.apiKey); case 10: _context.prev = 10; _context.t0 = _context["catch"](2); // eslint-disable-next-line no-console console.error(_context.t0); return _context.abrupt("return", ''); case 14: case "end": return _context.stop(); } }, _callee, this, [[2, 10]]); })); function getMapApiKey() { return _getMapApiKey.apply(this, arguments); } return getMapApiKey; }() /** * CreateUrl returns the Google Maps JavaScript API script url ]. * @return {string} */ }, { key: "createUrl", value: function () { var _createUrl = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() { var url, apiKey; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: url = GOOGLE_MAPS_URL; url += "?callback=".concat(CALLBACK); _context2.next = 4; return this.getMapApiKey(); case 4: apiKey = _context2.sent; if (apiKey) { url += "&key=".concat(apiKey); } url += "&libraries=places"; return _context2.abrupt("return", url); case 8: case "end": return _context2.stop(); } }, _callee2, this); })); function createUrl() { return _createUrl.apply(this, arguments); } return createUrl; }() /** * Set the script on document. */ }, { key: "setScript", value: function () { var _setScript = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() { var url, script; return _regenerator.default.wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: if (!this.document.getElementById(this.id)) { _context3.next = 3; break; } this.callback(); return _context3.abrupt("return"); case 3: _context3.next = 5; return this.createUrl(); case 5: url = _context3.sent; script = this.document.createElement('script'); script.id = this.id; script.type = 'text/javascript'; script.src = url; script.onerror = this.loadErrorCallback.bind(this); script.defer = true; script.async = true; this.document.head.appendChild(script); case 14: case "end": return _context3.stop(); } }, _callee3, this); })); function setScript() { return _setScript.apply(this, arguments); } return setScript; }() /** * Function to be called if script tag fails * @param {Error} e */ }, { key: "loadErrorCallback", value: function loadErrorCallback(e) { var _this2 = this; this.errors.push(e); if (this.errors.length <= this.retries) { var delay = this.errors.length * Math.pow(2, this.errors.length); // eslint-disable-next-line no-console console.log("Failed to load Google Maps script, retrying in ".concat(delay, " ms.")); setTimeout(function () { _this2.deleteScript(); _this2.setScript(); }, delay); } else { this.onerrorEvent = e; this.callback(); } } /** * Delete the script tag */ }, { key: "deleteScript", value: function deleteScript() { var script = this.document.getElementById(this.id); if (script) { script.remove(); } } /** * Load the Google Maps JavaScript API script and return a Promise. * @return {Promise} */ }, { key: "load", value: function load() { return this.loadPromise(); } /** * Load the Google Maps JavaScript API script and return a Promise. * @return {Promise} */ }, { key: "loadPromise", value: function loadPromise() { var _this3 = this; return new Promise(function (resolve, reject) { _this3.loadCallback(function (err) { if (!err) { resolve(); } else { reject(err); } }); }); } /** * Load the Google Maps JavaScript API script with a callback. * @param {Function} fn */ }, { key: "loadCallback", value: function loadCallback(fn) { this.callbacks.push(fn); this.execute(); } /** * Sets the callback function that will be sent as part of the script URL. */ }, { key: "setCallback", value: function setCallback() { this.window.__googleMapsCallback = this.callback.bind(this); } /** * Reset if failed */ }, { key: "resetIfRetryingFailed", value: function resetIfRetryingFailed() { if (this.failed) { this.reset(); } } /** * This is the function that we set the callback parameter to. */ }, { key: "callback", value: function callback() { var _this4 = this; this.done = true; this.loading = false; this.callbacks.forEach(function (cb) { cb(_this4.onerrorEvent); }); this.callbacks = []; } /** * Set the script a if needed; set the callback */ }, { key: "execute", value: function execute() { if (this.window.google && this.window.google.maps && this.window.google.maps.version) { // Google Maps already loaded this.callback(); } this.resetIfRetryingFailed(); if (this.done) { this.callback(); } else { if (this.loading) { // do nothing but wait } else { this.loading = true; this.setCallback(); this.setScript(); } } } /** * get base url based on current config * @return {string} */ }, { key: "_getBaseUrl", value: function _getBaseUrl() { // Special handling for page builder since no wag available var _this$config = this.config, isBuilder = _this$config.isBuilder, websiteApiGatewayUrl = _this$config.websiteApiGatewayUrl; return isBuilder ? websiteApiGatewayUrl : ''; } /** * Resize static map requests to the max 1024px while preserving aspect ratio * @param {number} width * @param {number} height * @return {{width, height}} */ }, { key: "resizeStaticMapDimensions", value: function resizeStaticMapDimensions(width, height) { if (width <= STATIC_MAP_MAX_DIM && height <= STATIC_MAP_MAX_DIM) { return { width: width, height: height }; } // Size param ignored if dimensions exceed STATIC_MAP_MAX_DIM var ratio = Math.min(STATIC_MAP_MAX_DIM / width, STATIC_MAP_MAX_DIM / height); return { width: parseInt(width * ratio), height: parseInt(height * ratio) }; } /** * Convert theme to static api param object * @param {Object} theme * @return {Object} */ }, { key: "convertThemeToStaticApiUrl", value: function convertThemeToStaticApiUrl(theme) { // https://developers.google.com/maps/documentation/maps-static/style-reference // Google Maps Static API uses a special syntax for it's urls based on the interactive map styles return theme.map(function (t) { var styles = t.stylers.reduce(function (acc, s) { var visibility = s.visibility ? "visibility:".concat(s.visibility) : ''; var color = s.color ? "color:".concat(s.color.replace('#', '0x')) : ''; var lightness = s.lightness ? "lightness:".concat(s.lightness) : ''; return "".concat(acc, "|").concat(visibility).concat(color).concat(lightness); }, ''); var element = t.elementType ? "|element:".concat(t.elementType) : ''; return "feature:".concat(t.featureType).concat(element).concat(styles); }); } /** * Generate static map url * @param {number} lat * @param {number} lng * @param {number} zoom * @param {Object} theme * @param {number} srcWidth * @param {number} srcHeight * @return {string} */ }, { key: "generateStaticMapUrl", value: function generateStaticMapUrl(lat, lng, zoom, theme, srcWidth, srcHeight) { var baseUrl = 'https://maps.googleapis.com/maps/api/staticmap'; var _this$resizeStaticMap = this.resizeStaticMapDimensions(srcWidth, srcHeight), width = _this$resizeStaticMap.width, height = _this$resizeStaticMap.height; var query = { center: "".concat(lat, ",").concat(lng), zoom: zoom, scale: 2, size: "".concat(width, "x").concat(height), key: this.apiKey }; if (theme) { query.style = this.convertThemeToStaticApiUrl(theme); } var params = new URLSearchParams(); Object.entries(query).forEach(function (_ref) { var _ref2 = (0, _slicedToArray2.default)(_ref, 2), key = _ref2[0], value = _ref2[1]; if (Array.isArray(value)) { value.forEach(function (v) { return params.append(key, v.toString()); }); } else { params.append(key, value.toString()); } }); return "".concat(baseUrl, "?").concat(params.toString()); } }]); return MapApiLoaderController; }(_base.BaseController); },{"@babel/runtime/helpers/slicedToArray":"../../../../../node_modules/@babel/runtime/helpers/slicedToArray.js","@babel/runtime/helpers/asyncToGenerator":"../../../../../node_modules/@babel/runtime/helpers/asyncToGenerator.js","@babel/runtime/helpers/classCallCheck":"../../../../../node_modules/@babel/runtime/helpers/classCallCheck.js","@babel/runtime/helpers/createClass":"../../../../../node_modules/@babel/runtime/helpers/createClass.js","@babel/runtime/helpers/inherits":"../../../../../node_modules/@babel/runtime/helpers/inherits.js","@babel/runtime/helpers/possibleConstructorReturn":"../../../../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","@babel/runtime/helpers/getPrototypeOf":"../../../../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","@babel/runtime/regenerator":"../../../../../node_modules/@babel/runtime/regenerator/index.js","./base":"controllers/base.js"}],"controllers/pagination.js":[function(require,module,exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PaginationController = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _base = require("./base"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable import/prefer-default-export */ var PaginationController = exports.PaginationController = /*#__PURE__*/function (_BaseController) { (0, _inherits2.default)(PaginationController, _BaseController); var _super = _createSuper(PaginationController); /** * Initialize Pagination Controller at build time * @param { ConfigController } config * @param {Window} window * @param {Document} document * @param {jquery} $ */ function PaginationController(config, window, document, $) { var _this; (0, _classCallCheck2.default)(this, PaginationController); _this = _super.call(this, config, window, document, $); _this.config = config; _this.window = window; _this.document = document; _this.$ = $; return _this; } /** * Controllers must implement a "destroy" method to be called * after page navigation to remove event handlers / cleanup */ (0, _createClass2.default)(PaginationController, [{ key: "destroy", value: function destroy() {} /** * Places (re-places) a value into the query string under specified key * or removes it if new value is null or undefined * @param {string} key * @param {string|null|undefined} value * @param {string} url - defaults to window.location.href * @return {string} */ }, { key: "updateQueryString", value: function updateQueryString(key, value, url) { // https://stackoverflow.com/questions/5999118/how-can-i-add-or-update-a-query-string-parameter if (!url) { url = this.window.location.href; } var re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi'); if (re.test(url)) { if (typeof value !== 'undefined' && value !== null) { return url.replace(re, '$1' + key + '=' + encodeURIComponent(value) + '$2$3'); } else { var hash = url.split('#'); url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, ''); if (typeof hash[1] !== 'undefined' && hash[1] !== null) { url += '#' + hash[1]; } return url; } } else { if (typeof value !== 'undefined' && value !== null) { var separator = url.indexOf('?') !== -1 ? '&' : '?'; var _hash = url.split('#'); url = _hash[0] + separator + key + '=' + encodeURIComponent(value); if (typeof _hash[1] !== 'undefined' && _hash[1] !== null) { url += '#' + _hash[1]; } return url; } else { return url; } } } /** * Returns variable from query string specified by parameter name * @param {string} name * @param {string} url defaults to window.location.href * @return {string|null} */ }, { key: "getParameterByName", value: function getParameterByName(name, url) { if (!url) { url = this.window.location.href; } name = name.replace(/[[\]]/g, '\\$&'); var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'); var results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, ' ')); } /** * Generates section specific key to store page number in the URL * @param {string} sectionDomId * @return {string} */ }, { key: "makePageKey", value: function makePageKey(sectionDomId) { return sectionDomId.replace('section-', '').replace(/-/g, ''); } /** * Generates specific key to store parameter in the URL * uses prevsiouly calculated baseKey for section specific parameters * @param {Object} formParam * @param {string} baseKey pre-calculated base for section specific parameters * @return {string} */ }, { key: "makeParamKey", value: function makeParamKey(formParam, baseKey) { return formParam.global ? formParam.urlKey : baseKey + '-' + formParam.urlKey; } /** * Gets a set of parameters from window query string * always returns value of "page" parameter if present * @param {Object[]} formConfig * @param {string} sectionDomId * @return {Object} */ }, { key: "deserializeParams", value: function deserializeParams(formConfig, sectionDomId) { var _this2 = this; var params = {}; var urlPageKey = this.makePageKey(sectionDomId); var page = this.getParameterByName(urlPageKey); if (page) { params.page = parseInt(page); } if (Array.isArray(formConfig)) { formConfig.forEach(function (formParam) { var key = _this2.makeParamKey(formParam, urlPageKey); var urlValue = _this2.getParameterByName(key); if (formParam.type === 'int') { urlValue = parseInt(urlValue); if (!isFinite(urlValue)) { urlValue = null; } } else if (formParam.type === 'bool' || formParam.type === 'boolean') { urlValue = urlValue === 'true' ? true : urlValue === 'false' ? false : null; } params[formParam.formKey || formParam.param] = urlValue; }); } return params; } /** * Serializes set of parameters defined by formConfig into the URL * adding or replacing or removing required parameters * @param {Object[]} formConfig * @param {string} sectionDomId * @param {Object} params * @return {string} */ }, { key: "serializeParams", value: function serializeParams(formConfig, sectionDomId, params) { var _this3 = this; var result = this.window.location.href; var urlPageKey = this.makePageKey(sectionDomId); result = this.updateQueryString(urlPageKey, params.page, result); if (Array.isArray(formConfig)) { formConfig.forEach(function (formParam) { var key = _this3.makeParamKey(formParam, urlPageKey); result = _this3.updateQueryString(key, params[formParam.formKey || formParam.param], result); }); } return result; } /** * Formats small number for slider values * @param {number} value * @param {string} currency * @return {string} */ }, { key: "formatSliderAtom", value: function formatSliderAtom(value) { var currency = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var formattedValue = Number.isInteger(value) ? value : value.toFixed(2); return currency + formattedValue; } /** * Formats a number for slider values * @param {number} value * @param {string} currency * @param {string} delimiter * @return {string} */ }, { key: "formatSliderValue", value: function formatSliderValue(value) { var currency = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var delimiter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; if (value < 1000) { return this.formatSliderAtom(value, currency); } else if (value < 1000000) { return "".concat(this.formatSliderAtom(value / 1000, currency)).concat(delimiter, "K"); } else { return "".concat(this.formatSliderAtom(value / 1000000, currency)).concat(delimiter, "M"); } } /** * Format price slider range * @param {number} value * @param {Object} range * @param {string} currency * @param {Object} options * @return {string} */ }, { key: "formatSliderPriceRange", value: function formatSliderPriceRange(value, range, currency, options) { if (range.min === value && value !== 0) { return "".concat(options.lowPrefix).concat(this.formatSliderValue(value, currency, ' ')); } else if (range.max === value) { return "".concat(this.formatSliderValue(value, currency, ' ')).concat(options.highSuffix); } else { return "".concat(this.formatSliderValue(value, currency, ' ')); } } /** * Format area slider range * @param {number} value * @param {Object} range * @param {string} suffix * @param {Object} options * @return {string} */ }, { key: "formatSliderAreaRange", value: function formatSliderAreaRange(value, range, suffix, options) { if (range.min === value && value !== 0) { return "".concat(options.lowPrefix).concat(this.formatSliderValue(value), " ").concat(suffix); } else if (range.max === value) { return "".concat(this.formatSliderValue(value)).concat(options.highSuffix, " ").concat(suffix); } else { return "".concat(this.formatSliderValue(value), " ").concat(suffix); } } /** * Utility function to get properties search parameters from a set of jQuery objects * @param {Object} options * @return {Object} */ }, { key: "getSearchFormValues", value: function getSearchFormValues(options) { var queryElement = options.queryElement; var priceSliderElement = options.priceSliderElement; var areaSliderElement = options.areaSliderElement; var neighborhoodSelect = options.neighborhoodSelect; var result = {}; if (queryElement && queryElement.length) { result.search = !queryElement.val() ? null : queryElement.val(); } if (priceSliderElement && priceSliderElement.length) { var priceValues = priceSliderElement.val().split(';'); var priceMinLimit = parseInt(priceSliderElement.attr('data-min')); var priceMaxLimit = parseInt(priceSliderElement.attr('data-max')); var priceMin = parseInt(priceValues[0]); var priceMax = parseInt(priceValues[1]); result.priceMin = priceMin !== priceMinLimit ? priceMin : null; result.priceMax = priceMax !== priceMaxLimit ? priceMax : null; } if (areaSliderElement && areaSliderElement.length) { var areaValues = areaSliderElement.val().split(';'); var areaMinLimit = parseInt(areaSliderElement.attr('data-min')); var areaMaxLimit = parseInt(areaSliderElement.attr('data-max')); var areaMin = parseInt(areaValues[0]); var areaMax = parseInt(areaValues[1]); result.areaMin = areaMin !== areaMinLimit ? areaMin : null; result.areaMax = areaMax !== areaMaxLimit ? areaMax : null; } if (neighborhoodSelect && neighborhoodSelect.length) { result.neighborhoodId = !neighborhoodSelect.val() ? null : neighborhoodSelect.val(); } return result; } }]); return PaginationController; }(_base.BaseController); },{"@babel/runtime/helpers/classCallCheck":"../../../../../node_modules/@babel/runtime/helpers/classCallCheck.js","@babel/runtime/helpers/createClass":"../../../../../node_modules/@babel/runtime/helpers/createClass.js","@babel/runtime/helpers/inherits":"../../../../../node_modules/@babel/runtime/helpers/inherits.js","@babel/runtime/helpers/possibleConstructorReturn":"../../../../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","@babel/runtime/helpers/getPrototypeOf":"../../../../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","./base":"controllers/base.js"}],"controllers/expandSlider.js":[function(require,module,exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExpandSliderController = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _base = require("./base"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable import/prefer-default-export */ var ExpandSliderController = exports.ExpandSliderController = /*#__PURE__*/function (_BaseController) { (0, _inherits2.default)(ExpandSliderController, _BaseController); var _super = _createSuper(ExpandSliderController); /** * Initialize Expand Slider Controller at build time * @param { ConfigController } config * @param {Window} window * @param {Document} document * @param {jquery} $ */ function ExpandSliderController(config, window, document, $) { var _this; (0, _classCallCheck2.default)(this, ExpandSliderController); _this = _super.call(this, config, window, document, $); _this.config = config; _this.window = window; _this.document = document; _this.$ = $; _this._createLightbox = _this._createLightbox.bind((0, _assertThisInitialized2.default)(_this)); _this.expandSliders = []; return _this; } /** * Initialize Expand Slider Controller at run time * Attach handlers and events to DOM * @param {Object} options */ (0, _createClass2.default)(ExpandSliderController, [{ key: "initialize", value: function initialize() { var _this2 = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; try { var $ = this.$; var expandSliders = $('.has-mobile-expand'); expandSliders.each(function (index, b) { _this2._addExpandButton(b); }); this.expandSliders = this.expandSliders.concat(expandSliders); } catch (e) { // eslint-disable-next-line no-console console.log(e); } } /** * Controllers must implement a "destroy" method to be called * after page navigation to remove event handlers / cleanup */ }, { key: "destroy", value: function destroy() { var $ = this.$; $('.lp-expand-btn, .lp-expand-btn-wrapper').remove(); this.expandSliders = []; } /** * Create expand button for sliders * @param {Slider} slider */ }, { key: "_addExpandButton", value: function _addExpandButton(slider) { var $ = this.$; var $slider = $(slider); var $section = $slider.closest('section[id]'); var appendTargetSelector = $slider.data('append'); var $expandBtn = $section.find('.lp-expand-btn'); if (!$expandBtn.length) { $expandBtn = $(''); if (appendTargetSelector) { $section.find(appendTargetSelector).append($expandBtn); } else { $slider.after($expandBtn.wrap('
').parent()); } } $expandBtn.on('click', { slider: slider, $section: $section }, this._createLightbox); } /** * Create lightbox modal with slider inside on expand button click * @param {event} e */ }, { key: "_createLightbox", value: function _createLightbox(e) { var window = this.window, document = this.document, $ = this.$; var slider = e.data.slider; var $section = e.data.$section; var modalId = 'lightbox-for-' + $section.attr('id'); var $modal = $("
\n \n
\n
\n
\n
\n
")); var slickOverlayOptions = { arrows: true, dots: false, infinite: true, draggable: true, prevArrow: '', nextArrow: '' }; if (typeof window.lpUI.requestScrollLock === 'function') { window.lpUI.requestScrollLock(modalId); } else { document.body.style.overflow = 'hidden'; } $('body').append($modal); var $overlaySlider = $modal.find('.lp-lightbox__carousel'); $modal.addClass('show'); var currentSlide = slider.slick ? slider.slick.currentSlide : 0; slickOverlayOptions.initialSlide = currentSlide || 0; var $sourceImages; if (slider.slick) { $sourceImages = slider.slick.$slides.find('img'); } else { $sourceImages = $(slider).find('img'); } $sourceImages.each(function () { $('.lp-lightbox__carousel').append($(this).clone(false).removeAttr('style').wrap('
').parent()); }); $overlaySlider.slick(slickOverlayOptions); $modal.on('click', '.lp-lightbox__close', function () { var currentSlide = $overlaySlider.slick('slickCurrentSlide'); $modal.removeClass('show'); $overlaySlider.slick('unslick'); if (slider.slick) { $(slider).slick('slickGoTo', currentSlide); } if (typeof window.lpUI.releaseScrollLock === 'function') { window.lpUI.releaseScrollLock(modalId); } else { document.body.style.overflow = ''; } $modal.remove(); }); } }]); return ExpandSliderController; }(_base.BaseController); },{"@babel/runtime/helpers/classCallCheck":"../../../../../node_modules/@babel/runtime/helpers/classCallCheck.js","@babel/runtime/helpers/createClass":"../../../../../node_modules/@babel/runtime/helpers/createClass.js","@babel/runtime/helpers/assertThisInitialized":"../../../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","@babel/runtime/helpers/inherits":"../../../../../node_modules/@babel/runtime/helpers/inherits.js","@babel/runtime/helpers/possibleConstructorReturn":"../../../../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","@babel/runtime/helpers/getPrototypeOf":"../../../../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","./base":"controllers/base.js"}],"controllers/divolte.js":[function(require,module,exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DivolteController = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _base = require("./base"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable import/prefer-default-export */ var DivolteController = exports.DivolteController = /*#__PURE__*/function (_BaseController) { (0, _inherits2.default)(DivolteController, _BaseController); var _super = _createSuper(DivolteController); /** * Initialize Divolte Controller at build time * @param { ConfigController } config * @param {Window} window * @param {Document} document * @param {jquery} $ */ function DivolteController(config, window, document, $) { var _this; (0, _classCallCheck2.default)(this, DivolteController); _this = _super.call(this, config, window, document, $); _this.config = config; _this.window = window; _this.document = document; _this.$ = $; return _this; } /** * Destroy */ (0, _createClass2.default)(DivolteController, [{ key: "destroy", value: function destroy() { if (!this.window.divolte) { this.window.divolteLp = function () { (this.window.divolteLp.q = this.window.divolteLp.q || []).push( // eslint-disable-next-line prefer-rest-params arguments); }; } } /** * Initialize divolte controller * @param {Object} options */ }, { key: "initialize", value: function initialize() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var divolteServiceUrl = this.config.divolteServiceUrl; if (!divolteServiceUrl || this.window.divolte) { return; } this.loadScript(); } /** * loads divolte */ }, { key: "loadScript", value: function loadScript() { var divolteServiceUrl = this.config.divolteServiceUrl; var script = this.document.createElement('script'); script.type = 'text/javascript'; script.defer = true; script.async = true; script.src = "".concat(divolteServiceUrl, "/divolte.js"); this.document.head.appendChild(script); script.addEventListener('load', this.executeQueue.bind(this)); } /** * executeQueue */ }, { key: "executeQueue", value: function executeQueue() { var _this2 = this; (this.window.divolteLp.q || []).forEach(function (_ref) { var _ref2 = (0, _slicedToArray2.default)(_ref, 2), methodName = _ref2[0], params = _ref2[1]; _this2[methodName](params); }); this.window.divolteLp = this.divolteLp.bind(this); } /** * divolteLp * @param {string} name * @param {Object} params */ }, { key: "divolteLp", value: function divolteLp(name, params) { try { this[name](params); } catch (error) { // eslint-disable-next-line no-console console.log(error); } } /** * sendLpEvent * @param {string} name * @param {Object} params */ }, { key: "sendLpEvent", value: function sendLpEvent(name, params) { // Events must be defined in divolte schema! To ensure correct usage, event names are validated here. if (!name.includes('pageView')) { // Event not defined // eslint-disable-next-line no-console console.log(name + ' IS NOT SUPPORTED'); return; } var _this$config = this.config, companyId = _this$config.companyId, templateId = _this$config.templateId; var baseParams = { companyId: companyId, templateId: templateId }; this.window.divolte.signal(name, Object.assign(baseParams, params)); } /** * sendLpPageView */ }, { key: "sendLpPageView", value: function sendLpPageView() { this.sendLpEvent('pageView', {}); } }]); return DivolteController; }(_base.BaseController); },{"@babel/runtime/helpers/slicedToArray":"../../../../../node_modules/@babel/runtime/helpers/slicedToArray.js","@babel/runtime/helpers/classCallCheck":"../../../../../node_modules/@babel/runtime/helpers/classCallCheck.js","@babel/runtime/helpers/createClass":"../../../../../node_modules/@babel/runtime/helpers/createClass.js","@babel/runtime/helpers/inherits":"../../../../../node_modules/@babel/runtime/helpers/inherits.js","@babel/runtime/helpers/possibleConstructorReturn":"../../../../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","@babel/runtime/helpers/getPrototypeOf":"../../../../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","./base":"controllers/base.js"}],"controllers/oauth.js":[function(require,module,exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OAuthController = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _base = require("./base"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /* eslint-disable import/prefer-default-export */ var EVENT_NAME = 'oauthSuccess'; var OAuthController = exports.OAuthController = /*#__PURE__*/function (_BaseController) { (0, _inherits2.default)(OAuthController, _BaseController); var _super = _createSuper(OAuthController); /** * Initialize Button Controller at build time * @param { ConfigController } config * @param {Window} window * @param {Document} document * @param {jquery} $ */ function OAuthController(config, window, document, $) { var _this; (0, _classCallCheck2.default)(this, OAuthController); _this = _super.call(this, config, window, document, $); _this.config = config; _this.window = window; _this.document = document; _this.successListeners = []; _this._listenToMessages = _this._listenToMessages.bind((0, _assertThisInitialized2.default)(_this)); _this._listenToOneTapMessage = _this._listenToOneTapMessage.bind((0, _assertThisInitialized2.default)(_this)); return _this; } /** * Initialize OAuth Controller at run time * Swap out special buttons for the iframe * @param {Object} options */ (0, _createClass2.default)(OAuthController, [{ key: "initialize", value: function initialize() { var _this2 = this; var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; try { // handle google one tap if (options.googleSignOnEnabled && !options.iframe) { this._renderGoogleOneTap(); } // handle google sign in buttons this.document.querySelectorAll('div[data-signin-type="google-sign-in"]').forEach(function (el) { return _this2._convertGoogleSignIn(el); }); // handle facebook sign in buttons this.document.querySelectorAll('div[data-signin-type="facebook-sign-in"]').forEach(function (el) { return _this2._convertFacebookSignIn(el); }); // re-attach handlers when turbolinks goes back this.document.querySelectorAll('iframe[data-is-social-oauth-button=true]').forEach(function (el) { return _this2._attachSuccessCallback(el); }); } catch (e) { // eslint-disable-next-line no-console console.log(e); } } /** * Controllers must implement a "destroy" method to be called * after page navigation to remove event handlers / cleanup */ }, { key: "destroy", value: function destroy() { var _this3 = this; this.successListeners.forEach(function (callback) { _this3.window.removeEventListener('message', _this3._listenToMessages); _this3.window.removeEventListener(EVENT_NAME, _this3.window[callback]); }); } /** * Convert google one tap */ }, { key: "_renderGoogleOneTap", value: function _renderGoogleOneTap() { var dummyEl = this.document.createElement('div'); // eslint-disable-next-line no-undef google.accounts.id.initializeIntermediate({ src: this._buildUrlAndCopyAttributes(dummyEl, dummyEl, 'googleOneTap') }); this.window.addEventListener('message', this._listenToOneTapMessage); } /** * Listening for messages from BSS one tap iframes * @param {Event} e */ }, { key: "_listenToOneTapMessage", value: function _listenToOneTapMessage(e) { var messageTypes = { SHOW_INTERMEDIATE_IFRAME: 'show_intermediate_iframe', HIDE_INTERMEDIATE_IFRAME: 'hide_intermediate_iframe' }; var iframeId = 'onetap_google_intermediate_iframe'; var data = e.data; var type = data.type, height = data.height; if (type === messageTypes.SHOW_INTERMEDIATE_IFRAME || type === messageTypes.HIDE_INTERMEDIATE_IFRAME) { var bssIframe = this.document.getElementById(iframeId); if (bssIframe) { bssIframe.style.height = height; bssIframe.style.display = type === messageTypes.SHOW_INTERMEDIATE_IFRAME ? 'unset' : 'none'; } } } /** * Convert google sign in buttons * @param {HTMLElement} el */ }, { key: "_convertGoogleSignIn", value: function _convertGoogleSignIn(el) { this._replaceWithIframe('googleSignIn', el); } /** * Convert google sign in buttons * @param {HTMLElement} el */ }, { key: "_convertFacebookSignIn", value: function _convertFacebookSignIn(el) { this._replaceWithIframe('facebookSignIn', el); } /** * Convert google sign in buttons * @param {'googleSignIn' | 'facebookSignIn'} provider * @param {HTMLElement} el */ }, { key: "_replaceWithIframe", value: function _replaceWithIframe(provider, el) { this._attachSuccessCallback(el); var iframe = this.document.createElement('iframe'); iframe.src = this._buildUrlAndCopyAttributes(el, iframe, provider); iframe.dataset.isSocialOauthButton = true; el.replaceWith(iframe); } /** * Listening for messages from BSS iframes * @param {Event} e */ }, { key: "_listenToMessages", value: function _listenToMessages(e) { var buyerSellerServiceUrl = this.config.buyerSellerServiceUrl; if (e.origin === buyerSellerServiceUrl) { if (e.data.event === 'success') { var event = new Event('oauthSuccess'); this.window.dispatchEvent(event); this.document.documentElement.classList.add('is-login-success'); } } } /** * Attach callback to iframe * @param {HTMLElement} el */ }, { key: "_attachSuccessCallback", value: function _attachSuccessCallback(el) { this.window.addEventListener('message', this._listenToMessages); var callbackFunction = el.dataset.onSuccessFunctionName; if (callbackFunction && this.window[callbackFunction]) { this.window.addEventListener(EVENT_NAME, this.window[callbackFunction]); this.successListeners.push(callbackFunction); } } /** * Build Iframe URL * @param {HTMLElement} source * @param {HTMLElement} target * @param {string} provider * @return {string} */ }, { key: "_buildUrlAndCopyAttributes", value: function _buildUrlAndCopyAttributes(source, target, provider) { var _this$config = this.config, buyerSellerServiceUrl = _this$config.buyerSellerServiceUrl, companyId = _this$config.companyId, websiteId = _this$config.websiteId, pageId = _this$config.pageId, pageMeta = _this$config.pageMeta; var location = this.window.location; var sourceUrl = location.origin + location.pathname; var destination = new URL("".concat(buyerSellerServiceUrl, "/buttons/").concat(provider)); var utm = this.window.localStorage.getItem('utm_vars'); destination.searchParams.append('companyId', companyId); destination.searchParams.append('websiteId', websiteId); destination.searchParams.append('pageId', pageId); destination.searchParams.append('sourceUrl', sourceUrl); destination.searchParams.append('pageMeta', JSON.stringify(pageMeta)); if (utm) { destination.searchParams.append('utm', utm); } // Google and Facebook Attributes used to style the social button var RESERVED_ATTRIBUTES = ['data-size', 'data-width', 'data-text', 'data-button-type', 'data-shape', 'data-layout', 'data-max-rows', 'data-use-continue-as', 'data-type', 'data-theme', 'data-logo_alignment', 'data-locale']; Array.from(source.attributes).forEach(function (attribute) { if (RESERVED_ATTRIBUTES.includes(attribute.nodeName)) { destination.searchParams.append(attribute.nodeName, attribute.nodeValue); } else { target.setAttribute(attribute.nodeName === 'id' ? 'data-id' : attribute.nodeName, attribute.nodeValue); } }); return destination.toString(); } }]); return OAuthController; }(_base.BaseController); },{"@babel/runtime/helpers/classCallCheck":"../../../../../node_modules/@babel/runtime/helpers/classCallCheck.js","@babel/runtime/helpers/createClass":"../../../../../node_modules/@babel/runtime/helpers/createClass.js","@babel/runtime/helpers/assertThisInitialized":"../../../../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","@babel/runtime/helpers/inherits":"../../../../../node_modules/@babel/runtime/helpers/inherits.js","@babel/runtime/helpers/possibleConstructorReturn":"../../../../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","@babel/runtime/helpers/getPrototypeOf":"../../../../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","./base":"controllers/base.js"}],"controllers/index.js":[function(require,module,exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.paginationController = exports.oauthController = exports.modalController = exports.mapApiLoaderController = exports.expandSliderController = exports.divolteController = exports.contactFormController = exports.configController = exports.buttonController = void 0; var _config = require("./config"); var _modals = require("./modals"); var _buttons = require("./buttons"); var _contactForms = require("./contactForms"); var _mapApiLoader = require("./mapApiLoader"); var _pagination = require("./pagination"); var _expandSlider = require("./expandSlider"); var _divolte = require("./divolte"); var _oauth = require("./oauth"); /* global window, document */ var configController = exports.configController = new _config.ConfigController({}); var modalController = exports.modalController = new _modals.ModalController(configController, window, document, window['$']); var buttonController = exports.buttonController = new _buttons.ButtonController(configController, window, document, window['$']); var contactFormController = exports.contactFormController = new _contactForms.ContactFormController(configController, window, document, window['$']); var mapApiLoaderController = exports.mapApiLoaderController = new _mapApiLoader.MapApiLoaderController(configController, window, document, window['$']); var paginationController = exports.paginationController = new _pagination.PaginationController(configController, window, document, window['$']); var expandSliderController = exports.expandSliderController = new _expandSlider.ExpandSliderController(configController, window, document, window['$']); var divolteController = exports.divolteController = new _divolte.DivolteController(configController, window, document, window['$']); var oauthController = exports.oauthController = new _oauth.OAuthController(configController, window, document, window['$']); },{"./config":"controllers/config.js","./modals":"controllers/modals.js","./buttons":"controllers/buttons.js","./contactForms":"controllers/contactForms.js","./mapApiLoader":"controllers/mapApiLoader.js","./pagination":"controllers/pagination.js","./expandSlider":"controllers/expandSlider.js","./divolte":"controllers/divolte.js","./oauth":"controllers/oauth.js"}],"index.js":[function(require,module,exports) { "use strict"; var _HandlebarsHelpersFactory = _interopRequireDefault(require("../../utils/HandlebarsHelpersFactory")); var _controllers = require("./controllers"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* global window */ /** * Attach controller to window for usage * @param {string} key * @param {any} controller */ function attachController(key, controller) { if (window.luxuryPresence[key]) { try { // New version of sdk, destroy previous window.luxuryPresence[key].destroy(); } catch (e) { // eslint-disable-next-line no-console console.log(e); } } window.luxuryPresence[key] = controller; } attachController('config', _controllers.configController); attachController('modals', _controllers.modalController); attachController('buttons', _controllers.buttonController); attachController('contactForms', _controllers.contactFormController); attachController('mapApiLoader', _controllers.mapApiLoaderController); attachController('pagination', _controllers.paginationController); attachController('expandSliders', _controllers.expandSliderController); attachController('divolte', _controllers.divolteController); attachController('oauth', _controllers.oauthController); // methods for existing elements (can be removed later after elements updated) window.luxuryPresence.formatSliderPriceRange = _controllers.paginationController.formatSliderPriceRange.bind(_controllers.paginationController); window.luxuryPresence.formatSliderAreaRange = _controllers.paginationController.formatSliderAreaRange.bind(_controllers.paginationController); // method below doesn't use 'this', but just to be safe in case of further method updates window.luxuryPresence.getSearchFormValues = _controllers.paginationController.getSearchFormValues.bind(_controllers.paginationController); window.luxuryPresence.handlebarsHelpersFactory = function (handlebarsInstance) { return (0, _HandlebarsHelpersFactory.default)(handlebarsInstance, { isEqual: function isEqual(a, b) { return a == b; } }); }; },{"../../utils/HandlebarsHelpersFactory":"../../utils/HandlebarsHelpersFactory.js","./controllers":"controllers/index.js"}],"../../../../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js":[function(require,module,exports) { var global = arguments[3]; var OVERLAY_ID = '__parcel__error__overlay__'; var OldModule = module.bundle.Module; function Module(moduleName) { OldModule.call(this, moduleName); this.hot = { data: module.bundle.hotData, _acceptCallbacks: [], _disposeCallbacks: [], accept: function (fn) { this._acceptCallbacks.push(fn || function () {}); }, dispose: function (fn) { this._disposeCallbacks.push(fn); } }; module.bundle.hotData = null; } module.bundle.Module = Module; var checkedAssets, assetsToAccept; var parent = module.bundle.parent; if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') { var hostname = "" || location.hostname; var protocol = location.protocol === 'https:' ? 'wss' : 'ws'; var ws = new WebSocket(protocol + '://' + hostname + ':' + "51299" + '/'); ws.onmessage = function (event) { checkedAssets = {}; assetsToAccept = []; var data = JSON.parse(event.data); if (data.type === 'update') { var handled = false; data.assets.forEach(function (asset) { if (!asset.isNew) { var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id); if (didAccept) { handled = true; } } }); // Enable HMR for CSS by default. handled = handled || data.assets.every(function (asset) { return asset.type === 'css' && asset.generated.js; }); if (handled) { console.clear(); data.assets.forEach(function (asset) { hmrApply(global.parcelRequire, asset); }); assetsToAccept.forEach(function (v) { hmrAcceptRun(v[0], v[1]); }); } else if (location.reload) { // `location` global exists in a web worker context but lacks `.reload()` function. location.reload(); } } if (data.type === 'reload') { ws.close(); ws.onclose = function () { location.reload(); }; } if (data.type === 'error-resolved') { console.log('[parcel] ✨ Error resolved'); removeErrorOverlay(); } if (data.type === 'error') { console.error('[parcel] 🚨 ' + data.error.message + '\n' + data.error.stack); removeErrorOverlay(); var overlay = createErrorOverlay(data); document.body.appendChild(overlay); } }; } function removeErrorOverlay() { var overlay = document.getElementById(OVERLAY_ID); if (overlay) { overlay.remove(); } } function createErrorOverlay(data) { var overlay = document.createElement('div'); overlay.id = OVERLAY_ID; // html encode message and stack trace var message = document.createElement('div'); var stackTrace = document.createElement('pre'); message.innerText = data.error.message; stackTrace.innerText = data.error.stack; overlay.innerHTML = '
' + 'ERROR' + '🚨' + '
' + message.innerHTML + '
' + '
' + stackTrace.innerHTML + '
' + '
'; return overlay; } function getParents(bundle, id) { var modules = bundle.modules; if (!modules) { return []; } var parents = []; var k, d, dep; for (k in modules) { for (d in modules[k][1]) { dep = modules[k][1][d]; if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) { parents.push(k); } } } if (bundle.parent) { parents = parents.concat(getParents(bundle.parent, id)); } return parents; } function hmrApply(bundle, asset) { var modules = bundle.modules; if (!modules) { return; } if (modules[asset.id] || !bundle.parent) { var fn = new Function('require', 'module', 'exports', asset.generated.js); asset.isNew = !modules[asset.id]; modules[asset.id] = [fn, asset.deps]; } else if (bundle.parent) { hmrApply(bundle.parent, asset); } } function hmrAcceptCheck(bundle, id) { var modules = bundle.modules; if (!modules) { return; } if (!modules[id] && bundle.parent) { return hmrAcceptCheck(bundle.parent, id); } if (checkedAssets[id]) { return; } checkedAssets[id] = true; var cached = bundle.cache[id]; assetsToAccept.push([bundle, id]); if (cached && cached.hot && cached.hot._acceptCallbacks.length) { return true; } return getParents(global.parcelRequire, id).some(function (id) { return hmrAcceptCheck(global.parcelRequire, id); }); } function hmrAcceptRun(bundle, id) { var cached = bundle.cache[id]; bundle.hotData = {}; if (cached) { cached.hot.data = bundle.hotData; } if (cached && cached.hot && cached.hot._disposeCallbacks.length) { cached.hot._disposeCallbacks.forEach(function (cb) { cb(bundle.hotData); }); } delete bundle.cache[id]; bundle(id); cached = bundle.cache[id]; if (cached && cached.hot && cached.hot._acceptCallbacks.length) { cached.hot._acceptCallbacks.forEach(function (cb) { cb(); }); return true; } } },{}]},{},["../../../../../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","index.js"], null) //# sourceMappingURL=/lp-sdk.js.map