{"version":3,"sources":["webpack://smalldoor//usr/src/app/app/javascript/controllers|sync|/_controller\\.js$/","webpack://smalldoor/./app/javascript/bundles/application/utils/google_tag_management.js","webpack://smalldoor/./app/javascript/bundles/application/utils/is_coupon.js","webpack://smalldoor/./app/javascript/controllers/form_controller.js","webpack://smalldoor/./app/javascript/controllers/input_controller.js","webpack://smalldoor/./app/javascript/utils/formatters.js","webpack://smalldoor/./app/javascript/controllers/io_controller.js","webpack://smalldoor/./app/javascript/controllers/mask_controller.js","webpack://smalldoor/./app/javascript/controllers/scroll_filter_controller.js","webpack://smalldoor/./app/javascript/controllers/slideshow_controller.js","webpack://smalldoor/./app/javascript/controllers/stepped_form_controller.js","webpack://smalldoor/./app/javascript/controllers/index.js","webpack://smalldoor/./app/javascript/packs/application.js"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","googleTagManager","event","value","dataLayer","window","data","push","postMembershipGoogleTagManager","plan","membershipId","userId","locality","coupon","email","mobilePhone","trackManager","productId","productName","name","orderID","orderTotal","displayPrice","pageCategory","pageURL","location","href","accountNumber","isCoupon","postExistingMemberAddPatientGoogleTagManager","postIntroExamBooking","firstName","lastName","length","this","element","submit","Controller","hasInputTarget","inputTarget","targets","DEFAULT_LOCALE","ioToggleId","currentTarget","dataset","toggleTargets","forEach","target","hidden","inputValue","ioOutputValue","outputTargets","outputValue","ioOutputFormat","ioOutputId","locale","Intl","DateTimeFormat","weekday","month","day","format","Date","toDate","hour","minute","toTime","nodeName","innerText","IMask","mask","pattern","hasPatternValue","patternValue","values","String","threshold","thresholdValue","defaultOptions","rootMargin","rootMarginValue","observer","IntersectionObserver","entries","intersectionRatio","classList","toggle","filterClass","effectClass","observerOptions","itemTargets","item","observe","unobserve","classes","Number","indexValue","showCurrentSlides","toggleSlideButtons","slideTargets","index","rangeValue","hasPreviousButtonTarget","previousButtonTarget","style","visibility","hasNextButtonTarget","nextButtonTarget","range","noValidate","checkValidity","hasNextStep","preventDefault","next","stepTargets","submitButton","disabled","disableWithValue","form","document","querySelector","FormData","formObject","key","invalidInput","idsToValidate","inputIndex","elements","input","currentStepTarget","contains","includes","setCustomValidity","replace","reportValidity","showCurrentStep","toggleStepButtons","hasSubmitTarget","hasSubmitValue","submitTarget","hiddenText","submitValue","button","disableWith","application","Application","context","require","load","definitionsFromContext","ActiveStorage","Rails"],"mappings":"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","file":"js/application-b5b6f868f071441e38a6.js","sourcesContent":["var map = {\n\t\"./form_controller.js\": 60000,\n\t\"./input_controller.js\": 21223,\n\t\"./io_controller.js\": 48172,\n\t\"./mask_controller.js\": 51773,\n\t\"./scroll_filter_controller.js\": 79271,\n\t\"./slideshow_controller.js\": 41445,\n\t\"./stepped_form_controller.js\": 90024,\n\t\"controllers/form_controller.js\": 60000,\n\t\"controllers/input_controller.js\": 21223,\n\t\"controllers/io_controller.js\": 48172,\n\t\"controllers/mask_controller.js\": 51773,\n\t\"controllers/scroll_filter_controller.js\": 79271,\n\t\"controllers/slideshow_controller.js\": 41445,\n\t\"controllers/stepped_form_controller.js\": 90024\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 67074;","import isCoupon from './is_coupon';\n\nexport const googleTagManager = (event, value) => {\n const NODE_ENV = process.env.NODE_ENV;\n if (NODE_ENV === 'production') {\n const { dataLayer } = window;\n const data = { event, ...value };\n dataLayer.push(data);\n }\n}\n\nexport const postMembershipGoogleTagManager = (\n plan,\n membershipId,\n userId,\n locality,\n coupon,\n email,\n mobilePhone\n) => {\n const trackManager = {\n productId: plan.id,\n productName: plan.name,\n orderID: membershipId,\n orderTotal: plan.displayPrice,\n pageCategory: 'order_complete',\n pageURL: window.location.href,\n accountNumber: null,\n userId,\n location: locality,\n coupon: isCoupon(coupon) ? { id: coupon.id, name: coupon.name } : false,\n email: email,\n mobilePhone: mobilePhone\n };\n googleTagManager('startMembership', trackManager);\n}\n\nexport const postExistingMemberAddPatientGoogleTagManager = (\n plan,\n membershipId,\n userId,\n locality,\n coupon,\n) => {\n const trackManager = {\n productId: plan.id,\n productName: plan.name,\n orderID: membershipId,\n orderTotal: plan.displayPrice,\n pageCategory: 'order_complete',\n pageURL: window.location.href,\n accountNumber: null,\n userId,\n location: locality,\n coupon: isCoupon(coupon) ? { id: coupon.id, name: coupon.name } : false,\n };\n googleTagManager('existingMemberAddPatientPaymentComplete', trackManager);\n}\n\nexport const postIntroExamBooking = (\n email,\n firstName,\n lastName,\n mobilePhone\n) => {\n const trackManager = {\n email: email,\n firstName: firstName,\n lastName: lastName,\n mobilePhone: mobilePhone\n };\n googleTagManager('introExamBooking', trackManager)\n}","const isCoupon = (coupon) => coupon && Object.keys(coupon).length !== 0;\n\nexport default isCoupon;\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n submit() {\n this.element.submit()\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = ['input']\n\n empty() {\n if (this.hasInputTarget) this.inputTarget.value = ''\n }\n}\n","const DEFAULT_LOCALE = \"en-US\"\n\nexport const toDate = (value, locale = DEFAULT_LOCALE) => new Intl.DateTimeFormat(locale, {\n weekday: \"short\",\n month: \"long\",\n day: \"numeric\"\n}).format(new Date(value))\n\nexport const toTime = (value, locale = DEFAULT_LOCALE) => new Intl.DateTimeFormat(locale, {\n hour: \"numeric\",\n minute: \"numeric\"\n}).format(new Date(value))\n","import { Controller } from \"stimulus\"\nimport { toDate, toTime } from \"../utils/formatters\"\n\nexport default class extends Controller {\n static targets = [\"output\", \"toggle\"]\n\n toggle(event) {\n const { ioToggleId } = event.currentTarget.dataset\n this.toggleTargets.forEach(target =>\n target.hidden = target.dataset.ioToggleId !== ioToggleId\n )\n }\n\n update(event) {\n const inputValue = event.currentTarget.dataset.ioOutputValue || event.currentTarget.value\n\n this.outputTargets.forEach(target => {\n let outputValue\n const { ioOutputFormat, ioOutputId } = target.dataset\n\n if (ioOutputId === event.currentTarget.dataset.ioOutputId) {\n switch (ioOutputFormat) {\n case \"date\":\n outputValue = toDate(inputValue)\n break\n case \"time\":\n outputValue = toTime(inputValue)\n break\n default:\n outputValue = inputValue\n }\n\n if (target.nodeName === 'INPUT') {\n target.value = outputValue\n } else {\n target.innerText = outputValue\n }\n }\n })\n }\n}\n","import { Controller } from \"stimulus\"\nimport IMask from 'imask';\n\nexport default class extends Controller {\n static values = {\n pattern: String,\n }\n\n connect() {\n IMask(this.element, {\n mask: this.pattern\n })\n }\n\n get pattern() {\n if (this.hasPatternValue) {\n return this.patternValue\n } else {\n return '+{1} (000) 000-0000'\n }\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = [\"item\"]\n static classes = [\"filter\", \"effect\"]\n static values = {\n threshold: Number,\n rootMargin: String,\n }\n\n connect() {\n this.threshold = this.thresholdValue || this.defaultOptions.threshold\n this.rootMargin = this.rootMarginValue || this.defaultOptions.rootMargin\n\n this.observer = new IntersectionObserver(\n entries => entries.forEach(({ intersectionRatio, target }) => {\n target.classList.toggle(this.filterClass, intersectionRatio < this.threshold)\n target.classList.toggle(this.effectClass, intersectionRatio < this.threshold)\n }),\n this.observerOptions\n )\n this.itemTargets.forEach(item => this.observer.observe(item))\n }\n\n disconnect() {\n this.itemTargets.forEach(item => this.observer.unobserve(item))\n }\n\n get observerOptions() {\n return {\n threshold: this.threshold,\n rootMargin: this.rootMargin\n }\n }\n\n get defaultOptions () {\n return {\n threshold: 1.0,\n rootMargin: '0px'\n }\n }\n}\n","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = [\"slide\", \"nextButton\", \"previousButton\"]\n\n static values = {\n index: Number,\n range: Number\n };\n\n next() {\n this.indexValue++\n }\n\n previous() {\n this.indexValue--\n }\n\n indexValueChanged() {\n this.showCurrentSlides()\n this.toggleSlideButtons()\n }\n\n showCurrentSlides() {\n this.slideTargets.forEach((element, index) => {\n element.hidden = index < this.indexValue || index > this.indexValue + this.rangeValue - 1\n })\n }\n\n toggleSlideButtons() {\n if (this.hasPreviousButtonTarget) {\n this.previousButtonTarget.style.visibility = this.indexValue === 0 ? \"hidden\" : \"visible\"\n }\n\n if (this.hasNextButtonTarget) {\n this.nextButtonTarget.style.visibility = this.indexValue >= this.slideTargets.length - this.rangeValue ? \"hidden\" : \"visible\"\n }\n }\n}\n","import { Controller } from \"stimulus\"\nimport { postIntroExamBooking } from \"../bundles/application/utils/google_tag_management\";\n\nexport default class extends Controller {\n static targets = [\"step\", \"previousButton\", \"nextButton\"]\n\n static values = {\n index: Number,\n submit: String,\n disableWith: String,\n };\n\n connect() {\n this.element.noValidate = true\n }\n\n submit(event) {\n if (!this.checkValidity()) {\n event.preventDefault()\n } else if (this.hasNextStep) {\n event.preventDefault()\n this.next()\n if (this.indexValue == this.stepTargets.length - 1) {\n this.submitButton.disabled = true\n }\n } else if (this.submitButton) {\n this.submitButton.disabled = true\n this.submitButton.innerText = this.disableWithValue || 'Submitting...'\n\n // Pass form data to GTM data layer\n let form = document.querySelector('form');\n const data = new FormData(form);\n var formObject = {};\n data.forEach((value, key) => formObject[key] = value);\n \n postIntroExamBooking(\n formObject[\"appointment[patient_attributes][client_attributes][email]\"],\n formObject[\"appointment[patient_attributes][client_attributes][firstname]\"],\n formObject[\"appointment[patient_attributes][client_attributes][lastname]\"],\n formObject[\"appointment[patient_attributes][client_attributes][mobile_phone]\"],\n )\n }\n }\n\n checkValidity() {\n let invalidInput\n let idsToValidate = ['intro-first-name', 'intro-last-name', 'intro-pet-name']\n\n for (let inputIndex = 0; inputIndex < this.element.elements.length; inputIndex++) {\n const input = this.element.elements[inputIndex]\n // Check if first, last, and pet name contains only spaces and show error if so\n if (input.nodeName === 'INPUT' && this.currentStepTarget.contains(input) && idsToValidate.includes(input.id)) {\n \n input.setCustomValidity('')\n \n if (!input.value.replace(/\\s/g, '').length) {\n invalidInput = input\n input.setCustomValidity('Please fill out this field.')\n break\n }\n }\n if (input.nodeName === 'INPUT' && this.currentStepTarget.contains(input) && !input.checkValidity()) {\n invalidInput = input\n break\n }\n }\n\n if (invalidInput) {\n invalidInput.reportValidity()\n return false\n }\n\n return true\n }\n\n next() {\n this.indexValue++\n }\n\n previous() {\n this.indexValue--\n }\n\n indexValueChanged() {\n this.showCurrentStep()\n this.toggleStepButtons()\n }\n\n showCurrentStep() {\n this.stepTargets.forEach(\n (element, index) => element.hidden = index !== this.indexValue\n )\n }\n\n toggleStepButtons() {\n if (this.hasPreviousButtonTarget) {\n this.previousButtonTarget.style.visibility = this.indexValue === 0 ? \"hidden\" : \"visible\"\n }\n\n if (this.hasSubmitTarget && this.hasSubmitValue) {\n if (this.indexValue >= this.stepTargets.length - 1) {\n this.submitTarget.hiddenText = this.submitTarget.innerText\n this.submitTarget.innerText = this.submitValue\n } else if (this.submitTarget.hiddenText) {\n this.submitTarget.innerText = this.submitTarget.hiddenText\n }\n }\n }\n\n get currentStepTarget() {\n return this.stepTargets[this.indexValue]\n }\n\n get hasNextStep() {\n return this.indexValue < this.stepTargets.length - 1\n }\n\n get submitButton() {\n return this.element.button\n }\n}\n","// Load all the controllers within this directory and all subdirectories. \n// Controller files must be named *_controller.js.\n\nimport { Application } from \"stimulus\"\nimport { definitionsFromContext } from \"stimulus/webpack-helpers\"\n\nconst application = Application.start()\nconst context = require.context(\"controllers\", true, /_controller\\.js$/)\napplication.load(definitionsFromContext(context))\n","require(\"stylesheets/application.scss\")\n\n// import * as ActionCable from '@rails/actioncable';\n// window.Cable = ActionCable.createConsumer();\n\nimport * as ActiveStorage from '@rails/activestorage';\nActiveStorage.start();\n\nimport Rails from '@rails/ujs';\nRails.start();\n\nimport \"controllers\"\n\nrequire(\"trix\")\nrequire(\"@rails/actiontext\")\n"],"sourceRoot":""}