{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./Content/javascripts/base/local-storage.js","webpack:///./Content/javascripts/react/site-bdc/catalog/index.js","webpack:///./Content/javascripts/react/site-bdc/catalog/app/reducers.js","webpack:///./Content/javascripts/react/site-bdc/catalog/app/App.js","webpack:///./Content/javascripts/react/site-bdc/catalog/api/CatalogApi.js","webpack:///./Content/javascripts/react/site-bdc/common/Utils.js","webpack:///./Content/javascripts/components/bdc-kovisibilitychange.js","webpack:///./Content/javascripts/react/site-bdc/login-register/reset-password/ResetPasswordConstants.js","webpack:///./Content/javascripts/base/globals.js","webpack:///./Content/javascripts/react/site-bdc/login-register/login/LoginReducer.js","webpack:///./Content/javascripts/react/site-bdc/login-register/register/reducer.js","webpack:///./Content/javascripts/content/catalog/blinds-ca/catalog.js","webpack:///./Content/javascripts/react/site-bdc/login-register/modal/reducer.js","webpack:///./Content/javascripts/react/site-bdc/login-register/app/reducer.js","webpack:///./Content/javascripts/react/site-bdc/login-register/reset-password/ResetPasswordReducer.js","webpack:///./Content/javascripts/react/site-bdc/store/configureStore.js","webpack:///./Content/javascripts/base/cookies-factory.js","webpack:///./Content/javascripts/react/site-bdc/modules/previous-products/previousProductsReducer.js","webpack:///./Content/javascripts/react/estimateBuilder/helpers/globalVariables.js","webpack:///./Content/javascripts/components/bdc-scroll-to-section.js","webpack:///./Content/javascripts/base/global-config.js","webpack:///./Content/javascripts/base/page-context-javascript.js","webpack:///./Content/javascripts/react/estimateBuilder/components/EstimateBanner.js","webpack:///./Content/javascripts/components/right-rails-flyout-menu.js","webpack:///./Content/javascripts/react/site-bdc/common/index.js","webpack:///./Content/javascripts/react/site-bdc/api/Axios.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","17","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","define","$","store","LocalStorage","extend","getFromLocalStorage","defaultValue","persist","set","remove","reducers","render","Provider","getElementById","pipApp","combineReducers","previousProducts","login","register","app","form","formReducer","modal","resetPassword","getFavoritedProduct","qs","resource","api","faveProduct","productId","favorite","post","fetchProducts","previous","queryString","require","Utils","parseUrl","url","link","retValue","port","hostname","pathname","protocol","search","getUrlAddress","newUrl","parse","stringify","parsed","getQueryString","param","location","DefaultMessage","sendAnalyticsEvent","thdAnalyticsEvent","timeOut","globals","siteId","sites","theHomeDepot","digitalData","ddoEventInit","ko","postal","originalVisible","bindingHandlers","visible","update","element","valueAccessor","ret","publish","channel","topic","BACK_TO_SIGN_IN","FORGOT_YOUR_PASSWORD","CHECK_YOUR_IN_BOX","CHANGE_YOUR_PASSWORD","YOURE_ALL_SET","globalConfig","pageContextJavascript","_","ssm","Cookies","scrollToSection","ReactDOM","estimateBanner","React","polyfill","EstimateBanner","default","estimateBannerRoot","localStorage","getItem","ObservableState","id","query","self","this","observableIsActive","observable","onEnter","onLeave","addState","alert","breakpoint","dictionaryEntryForTerm","setBodyOverlay","bodyOverlay","addClass","removeClass","refreshValue","getComputedStyle","querySelector","getPropertyValue","replace","addEventListener","userAgent","navigator","isIE","indexOf","isIE10","atob","isIE9","isIOS","test","MSStream","ajaxSetup","beforeSend","settings","blindsCookie","C","cookies","cookie","split","readCookie","cacheCheck","filter","toLowerCase","setRequestHeader","xhr","textStatus","errorThrown","status","newDoc","open","write","responseText","close","on","preventDefault","stopImmediatePropagation","output","prismicApi","ajax","then","val","ref","refs","surefitObj","results","body","items","article","forEach","obj","index","text","surefitContent","page_h1","hero_h2_subtitle","colorbox","html","transition","width","maxWidth","maxHeight","myName","css","overflow","documentElement","style","match","msViewportStyle","createTextNode","getElementsByTagName","defaultState","isLoggedIn","isSubmitting","password","serverMessage","userName","state","action","firstName","lastName","showPasswordStrength","passwordStrength","strength","color","passwordColor","passwordMessage","hasSuccessfullyCreatedAccount","newState","BootstrapReact","CatalogApi","catalogApi","setEstimateFilters","widthWhole","heightWhole","sortBy","widthText","heightText","sortByText","find","useDelorean","fave","detail","getFavoritedProducts","show","allItems","productIds","Array","each","attributes","map","x","join","response","setFavoriteProduct","FavoritedProducts","doneCallback","failCallback","catch","loginEvent","CustomEvent","taskName","dispatchEvent","click","currentTarget","closest","isFavorite","hasClass","showLoader","persistHeightWidth","widthEigth","heightEigth","minWidth","isEstimateSearch","parseFloat","height","widthStorage","LocalStoragePersister","minDimension","maxDimension","serializableValue","getDimensionsEighths","heightStorage","updateQueryString","href","hash","re","RegExp","separator","filterUrl","attr","ajaxUrl","substring","History","pushState","siteName","sortUrl","nextPage","sorts","colorswatchElement","empty","imageUrl","ImageUniqueId","append","mouseout","hide","list","next","slideToggle","icon","is","title","Adapter","getState","replaceWith","states","active","$elem","isOpen","defaultTab","newDefaultTab","selectedTab","initialState","redux","createStore","compose","applyMiddleware","thunk","devToolsExtension","f","getUsername","substr","addAjaxCacheHeader","isInternalUser","checkInternal","callback","dateAsOf","cartOnBehalfOf","userNameWithoutDomainPrefix","username","last","isLoading","pageSize","currentPage","products","pageNumber","americanBlinds","blindsCa","blinds","justBlinds","itemTypes","unknown","doorLock","garageDoor","itemSources","autobahn","containerTypes","room","garage","cssSelector","$container","scrollTop","offset","scrollOffset","headerHeight","outerHeight","position","top","animate","JSON","estimateName","editText","className","propTypes","PropTypes","shape","isRequired","string","defaultProps","cookiesFactory","newBaseUrl","baseUrl","axios","defaults","baseURL","headers","Accept","credentials"],"mappings":"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","file":"catalog_bca-24a5fb6b3055a409cf31.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t17: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({}[chunkId]||chunkId) + \"-\" + \"24a5fb6b3055a409cf31\" + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/content/build/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([2073,0]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","define([\r\n \"jquery\", \"store\"],\r\nfunction ($, store) {\r\n var LocalStorage = function () { };\r\n\r\n $.extend(LocalStorage.prototype, {\r\n\r\n getFromLocalStorage: function (key, defaultValue) {\r\n var value = store.get(key)\r\n if (value) {\r\n return value;\r\n }\r\n return defaultValue;\r\n },\r\n\r\n persist: function (key, value) {\r\n store.set(key, value);\r\n },\r\n\r\n remove: function(key) {\r\n store.remove(key);\r\n }\r\n\r\n });\r\n\r\n return LocalStorage;\r\n\r\n});\r\n","import { render } from 'react-dom';\r\nimport React from 'react';\r\nimport { Provider } from 'react-redux';\r\nimport reducers from './app/reducers';\r\nimport App from './app/App';\r\nimport configureStore from '../store/configureStore';\r\n\r\nexport default function boostrapReact() {\r\n const store = configureStore(reducers);\r\n\r\n render(\r\n \r\n \r\n ,\r\n document.getElementById('root'),\r\n );\r\n}\r\n","import { combineReducers } from 'redux';\r\nimport { reducer as formReducer } from 'redux-form';\r\nimport login from '../../login-register/login/LoginReducer';\r\nimport register from '../../login-register/register/reducer';\r\nimport modal from '../../login-register/modal/reducer';\r\nimport app from '../../login-register/app/reducer';\r\nimport resetPassword from '../../login-register/reset-password/ResetPasswordReducer';\r\nimport previousProducts from '../../modules/previous-products/previousProductsReducer';\r\n\r\nconst pipApp = combineReducers({\r\n previousProducts,\r\n login,\r\n register,\r\n app,\r\n form: formReducer,\r\n modal,\r\n resetPassword,\r\n});\r\n\r\nexport default pipApp;\r\n","import React from 'react';\r\n\r\nconst App = () => (\r\n
\r\n);\r\n\r\nexport default App;\r\n","import { api } from '../../api/Axios';\r\n\r\nconst getFavoritedProduct = (qs) => {\r\n const resource = `api/products/favorites?${qs}`;\r\n return api.get(resource);\r\n};\r\n\r\nconst faveProduct = (productId, favorite) => {\r\n const resource = `api/products/${productId}/favorite/${favorite}`;\r\n const data = { };\r\n return api.post(resource, data);\r\n};\r\n\r\nconst fetchProducts = (previous) => {\r\n const resource = 'Catalog/PreviousViewedProduct/Get';\r\n return api.post(resource, previous);\r\n};\r\nexport default { getFavoritedProduct, faveProduct, fetchProducts };\r\n","import { sites } from '../../estimateBuilder/helpers/globalVariables';\r\n\r\nconst queryString = require('query-string');\r\n\r\n// Timeout in ms\r\nconst defaultTimeOut = 500;\r\n\r\n/* eslint no-underscore-dangle:0 */\r\nclass Utils {\r\n static parseUrl = (url) => {\r\n let link = document.createElement('a');\r\n\r\n link.setAttribute('href', url);\r\n\r\n const retValue = {\r\n port: link.port,\r\n hostname: link.hostname,\r\n pathname: link.pathname,\r\n protocol: link.protocol,\r\n search: link.search,\r\n };\r\n\r\n link = null;\r\n\r\n return retValue;\r\n };\r\n\r\n static getUrlAddress = (url) => {\r\n const newUrl = Utils.parseUrl(url);\r\n return `${newUrl.protocol}//${newUrl.hostname}:${newUrl.port}`;\r\n };\r\n\r\n static parse = search => queryString.parse(search);\r\n\r\n static stringify = parsed => queryString.stringify(parsed);\r\n\r\n static getQueryString = param => queryString.parse(location.search)[`${param}`];\r\n\r\n static DefaultMessage = () => 'OK';\r\n /* eslint-disable no-undef */\r\n\r\n static sendAnalyticsEvent = (thdAnalyticsEvent, timeOut = defaultTimeOut) =>\r\n new Promise((resolve) => {\r\n if (globals.siteId === sites.theHomeDepot) {\r\n window.digitalData.event.push(thdAnalyticsEvent);\r\n } else {\r\n window.ddoEventInit(thdAnalyticsEvent);\r\n }\r\n\r\n window.setTimeout(resolve(), timeOut);\r\n });\r\n}\r\nconst scrollTillYouReachElement = (elmnt, timeToCheck, numberOfTries) => {\r\n const bounding = elmnt.getBoundingClientRect();\r\n let numTries = numberOfTries || 0;\r\n if (!(bounding.top >= 0 && bounding.top <= 1)) {\r\n elmnt.scrollIntoView();\r\n numTries += 1;\r\n // Check recursively and scroll till the element appears in the view port.\r\n // Check three times and quit.\r\n if (numTries <= 3) {\r\n setTimeout(\r\n (element, time, numberTries) => {\r\n scrollTillYouReachElement(element, time, numberTries);\r\n },\r\n timeToCheck || 800,\r\n elmnt,\r\n timeToCheck,\r\n numTries,\r\n );\r\n }\r\n }\r\n};\r\n\r\nmodule.exports = { Utils };\r\n","define([\"knockout\", \"postal\"], function (ko, postal) {\r\n //Changing other elements visibility in the page can mean our sticky isn't placed correctly anymore\r\n //For example-- a div in the container of the container of our sticky might show, causing the container of the container to grow\r\n //I've monkey-patched the ko visibility binding so it will publish a message telling our sticky to recalculate its position\r\n var originalVisible = ko.bindingHandlers.visible.update;\r\n ko.bindingHandlers.visible.update = function(element, valueAccessor) {\r\n var ret = originalVisible( element, valueAccessor );\r\n postal.publish({\r\n channel: \"DOM\",\r\n topic: \"visibilityChange\"\r\n });\r\n return ret;\r\n };\r\n});\r\n\r\n","// action types\r\nexport const BACK_TO_SIGN_IN = 'BACK_TO_SIGN_IN';\r\n\r\n// steps\r\nexport const FORGOT_YOUR_PASSWORD = 'FORGOT_YOUR_PASSWORD';\r\nexport const CHECK_YOUR_IN_BOX = 'CHECK_YOUR_IN_BOX;';\r\nexport const CHANGE_YOUR_PASSWORD = 'CHANGE_YOUR_PASSWORD';\r\nexport const YOURE_ALL_SET = 'YOURE_ALL_SET';\r\n","define([\r\n \"global-config\",\r\n \"page-context-javascript\",\r\n \"underscore\",\r\n \"knockout\",\r\n \"jquery\",\r\n \"postal\",\r\n \"ssm\",\r\n \"es6-promise\",\r\n \"js-cookie\",\r\n \"scroll-to-section\",\r\n \"react-dom\",\r\n \"../react/estimateBuilder/components/EstimateBanner\",\r\n \"react\",\r\n \"right-rails-fly-out-menu\",\r\n \"colorbox\",\r\n \"sticky-kit\",\r\n \"slick\",\r\n \"unveil\",\r\n \"jquery-validate\"\r\n], function(\r\n globalConfig,\r\n pageContextJavascript,\r\n _,\r\n ko,\r\n $,\r\n postal,\r\n ssm,\r\n promise,\r\n Cookies,\r\n scrollToSection,\r\n ReactDOM,\r\n estimateBanner,\r\n React\r\n) {\r\n \"use strict\";\r\n promise.polyfill();\r\n const EstimateBanner = estimateBanner.default;\r\n\r\n const estimateBannerRoot = document.getElementById(\"estimate-banner-root\");\r\n\r\n if (estimateBannerRoot) {\r\n ReactDOM.render(\r\n ,\r\n estimateBannerRoot\r\n );\r\n }\r\n\r\n // Configures SimpleStateManager States\r\n (function(ssm) {\r\n var ObservableState = function(id, query) {\r\n var self = this;\r\n self.id = id;\r\n self.query = query;\r\n self.observableIsActive = ko.observable(false);\r\n self.onEnter = function() {\r\n self.observableIsActive(true);\r\n };\r\n self.onLeave = function() {\r\n self.observableIsActive(false);\r\n };\r\n };\r\n\r\n ssm.addState(new ObservableState(\"mobile\", \"(max-width: 767px)\"));\r\n ssm.addState(new ObservableState(\"tablet\", \"(min-device-width: 768px)\"));\r\n ssm.addState(new ObservableState(\"desktop\", \"(min-device-width: 1024px)\"));\r\n ssm.addState(\r\n new ObservableState(\r\n \"tablet-only\",\r\n \"(min-device-width: 768px) and (max-device-width: 1024px)\"\r\n )\r\n );\r\n })(ssm);\r\n\r\n var globals = {\r\n alert: function() {\r\n return window ? window.alert : {};\r\n },\r\n breakpoint: {},\r\n ssm: ssm,\r\n dictionaryEntryForTerm:\r\n \"/DictionaryManagement/Definition/DictionaryEntryForTerm\",\r\n setBodyOverlay: function(bodyOverlay) {\r\n if (bodyOverlay) {\r\n $(\"body\").addClass(\"bdc-remove-body-scrolling\");\r\n } else {\r\n $(\"body\").removeClass(\"bdc-remove-body-scrolling\");\r\n }\r\n }\r\n };\r\n\r\n _.extend(globals, window.globalConfig);\r\n _.extend(globals, pageContextJavascript);\r\n\r\n globals.breakpoint.refreshValue = function() {\r\n this.value = window\r\n .getComputedStyle(document.querySelector(\"body\"), \":before\")\r\n .getPropertyValue(\"content\")\r\n .replace(/\\\"/g, \"\");\r\n };\r\n globals.breakpoint.refreshValue();\r\n\r\n window.addEventListener(\"resize\", function(e) {\r\n globals.breakpoint.refreshValue();\r\n });\r\n\r\n window.addEventListener(\"orientationchange\", function() {\r\n globals.breakpoint.refreshValue();\r\n });\r\n\r\n // Browser specific JavaScript\r\n var userAgent = window.navigator.userAgent;\r\n var isIE =\r\n userAgent &&\r\n (userAgent.indexOf(\"MSIE \") > 0 || userAgent.indexOf(\"Trident/\") > 0);\r\n var isIE10 = document.all && window.atob;\r\n var isIE9 = document.all && document.addEventListener && !window.atob;\r\n if (isIE) {\r\n $(\"html\").addClass(\"ie\");\r\n if (isIE9) {\r\n require([\"ie9-only\"]);\r\n } else if (isIE10) {\r\n $(\"html\").addClass(\"ie10\");\r\n require([\"ie10-only\"]);\r\n }\r\n }\r\n globals.isIOS =\r\n /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\r\n globals.isIE9 = isIE9;\r\n\r\n //exposed globally for infopages\r\n window.globals = globals;\r\n window.Cookies = Cookies;\r\n window.scrollToSection = scrollToSection;\r\n //503 means we are under construction\r\n var readCookie = function(name, c, C, i) {\r\n c = document.cookie.split(\"; \");\r\n var cookies = {};\r\n for (i = c.length - 1; i >= 0; i--) {\r\n C = c[i].split(\"=\");\r\n cookies[C[0]] = C[1];\r\n }\r\n return cookies[name];\r\n };\r\n $.ajaxSetup({\r\n beforeSend: function(request, settings) {\r\n var blindsCookie = readCookie(\"internalUser\");\r\n //Look to see if the request is mentioned in the _cacheCheck list on the page\r\n if (globals.cacheCheck !== undefined) {\r\n var hasCheck = _.filter(globals.cacheCheck, function(url) {\r\n return settings.url.toLowerCase().indexOf(url.toLowerCase()) !== -1;\r\n });\r\n //If so, we send a request header for akamai to say it should not cache this response\r\n if (hasCheck.length > 0) {\r\n if (blindsCookie !== undefined) {\r\n request.setRequestHeader(\"x-blinds-internal\", \"true\");\r\n }\r\n }\r\n }\r\n },\r\n error: function(xhr, textStatus, errorThrown) {\r\n if (xhr.status === 503) {\r\n var newDoc = document.open(\"text/html\", \"replace\");\r\n newDoc.write(xhr.responseText);\r\n newDoc.close();\r\n }\r\n }\r\n });\r\n\r\n $(function() {\r\n if (globals.siteId === 3) {\r\n $(document).on('click', 'a[href*=\"/surefit\"]', function(event) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n let output = '';\r\n const {\r\n globalConfig: { prismicApi },\r\n } = window;\r\n $.ajax({ url: prismicApi }).then(function(val) {\r\n var ref = val.refs[0].ref;\r\n $.ajax({\r\n url: `${prismicApi}/documents/search?ref=${ref}&q=[[at(my.contentpage.uid, \"surefit-guarantee-to-fit\")]]`\r\n }).then(function(surefitObj) {\r\n surefitObj.results[0].data.body[0].items[0].article.forEach(function (obj, index) {\r\n if (obj.type === 'paragraph') {\r\n output += `

${obj.text}

`;\r\n } else if (obj.type === 'list-item') {\r\n if (surefitObj.results[0].data.body[0].items[0].article[index - 1].type !== 'list-item') {\r\n output += '';\r\n }\r\n }\r\n });\r\n var surefitContent = ' \\\r\n
\\\r\n
\\\r\n
\\\r\n

' + surefitObj.results[0].data.page_h1[0].text + '

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

' + surefitObj.results[0].data.hero_h2_subtitle[0].text + '

\\\r\n ' + output + ' \\\r\n
\\\r\n
';\r\n $.colorbox({\r\n html: surefitContent,\r\n transition: \"none\",\r\n width: '600px',\r\n maxWidth: '95%',\r\n maxHeight: '95%',\r\n });\r\n });\r\n });\r\n });\r\n }\r\n });\r\n\r\n // Prevents scrolling of page when any modal (colorbox) is open\r\n $(document)\r\n .on(\"cbox_open\", function(event, myName) {\r\n $(\"body\").css({\r\n overflow: \"hidden\"\r\n });\r\n })\r\n .on(\"cbox_closed\", function(event, myName) {\r\n $(\"body\").css({\r\n overflow: \"\"\r\n });\r\n });\r\n\r\n (function() {\r\n if (\r\n \"-ms-user-select\" in document.documentElement.style &&\r\n navigator.userAgent.match(/iemobile/i) === true\r\n ) {\r\n var msViewportStyle = document.createElement(\"style\");\r\n msViewportStyle.appendChild(\r\n document.createTextNode(\"@-ms-viewport{width:auto!important}\")\r\n );\r\n document.getElementsByTagName(\"head\")[0].appendChild(msViewportStyle);\r\n }\r\n })();\r\n return globals;\r\n});\r\n","const defaultState = {\r\n isLoggedIn: false,\r\n isSubmitting: false,\r\n password: '',\r\n serverMessage: '',\r\n userName: '',\r\n};\r\n\r\nconst login = (state = defaultState, action) => {\r\n switch (action.type) {\r\n case 'LOGGING_IN':\r\n return Object.assign({}, state, {\r\n isSubmitting: true,\r\n });\r\n case 'LOGIN':\r\n return Object.assign({}, state, {\r\n isSubmitting: true,\r\n });\r\n case 'LOGIN_FAILURE':\r\n return Object.assign({}, state, {\r\n isSubmitting: false,\r\n serverMessage: action.value,\r\n isLoggedIn: false,\r\n });\r\n case 'LOGIN_SUCCESS':\r\n return { ...state, isLoggedIn: true };\r\n case 'LOGOUT':\r\n return { ...state, isLoggedIn: false };\r\n case 'LOGIN_STATUS_CHANGE':\r\n return { ...state, isLoggedIn: action.isLoggedIn };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default login;\r\n","const defaultState = {\r\n firstName: '',\r\n isSubmitting: false,\r\n lastName: '',\r\n userName: '',\r\n password: '',\r\n showPasswordStrength: false,\r\n passwordStrength: {\r\n message: '',\r\n strength: '',\r\n color: '',\r\n },\r\n passwordColor: '',\r\n passwordMessage: '',\r\n serverMessage: '',\r\n hasSuccessfullyCreatedAccount: false,\r\n};\r\n\r\nconst register = (state = defaultState, action) => {\r\n switch (action.type) {\r\n case 'CREATING_ACCOUNT':\r\n return Object.assign({}, state, { isSubmitting: true });\r\n case 'REGISTRATION_SUCCESS':\r\n return Object.assign({}, state, {\r\n hasSuccessfullyCreatedAccount: true,\r\n isSubmitting: false,\r\n });\r\n case 'REGISTRATION_FAILURE': {\r\n const newState = Object.assign({}, state, {\r\n isSubmitting: false,\r\n });\r\n newState.serverMessage = action.value;\r\n return newState;\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default register;\r\n","define([\r\n \"globals\",\r\n \"jquery\",\r\n \"local-storage\",\r\n \"js-cookie\",\r\n \"../../../react/site-bdc/catalog/index\",\r\n \"../../../react/site-bdc/catalog/api/CatalogApi\",\r\n \"jquery-history\",\r\n],\r\n function (globals, $, LocalStorage, Cookies, BootstrapReact, CatalogApi) {\r\n\r\n \"use strict\";\r\n\r\n const catalogApi = CatalogApi.default;\r\n\r\n var setEstimateFilters = function () {\r\n var widthWhole = $(\"#bdc-estimate-search-width-whole-select\");\r\n var heightWhole = $(\"#bdc-estimate-search-height-whole-select\");\r\n var sortBy = $(\"#bdc-estimate-search-sortby-select\");\r\n\r\n var widthText = $(\"#bdc-estimate-search-width-whole-text\");\r\n var heightText = $(\"#bdc-estimate-search-height-whole-text\");\r\n var sortByText = $(\"#bdc-estimate-search-sortby-text\");\r\n\r\n if (widthWhole && widthText) {\r\n $(widthText).html(\"Width (in): \" + widthWhole.val() + \"\");\r\n }\r\n\r\n if (heightWhole && heightText) {\r\n $(heightText).html(\"Height (in): \" + heightWhole.val() + \"\");\r\n }\r\n\r\n if (sortBy && sortByText) {\r\n $(sortByText).html(\"Sort By: \" + $(sortBy).find(\":selected\").text() + \"\")\r\n }\r\n }\r\n\r\n $(function () {\r\n\r\n var useDelorean = globals.siteId === 3;\r\n\r\n const fave = () => {\r\n document.addEventListener('loginStatusChange', (e) => {\r\n if (e.detail.isLoggedIn) {\r\n getFavoritedProducts();\r\n $('.gcc-fave-button').show();\r\n }\r\n });\r\n\r\n $('.gcc-fave-button').show();\r\n\r\n BootstrapReact.default();\r\n const getFavoritedProducts = () => {\r\n var allItems = $('.bdc-productsearch-item');\r\n var productIds = new Array();\r\n $.each(allItems, function (key, value) {\r\n productIds.push(value.attributes[\"data-productid\"].value);\r\n });\r\n getFavoritedProduct(productIds);\r\n }\r\n\r\n const setFavoriteProduct = (productIds) => {\r\n $.each(productIds, function (key, value) {\r\n $('li.bdc-productsearch-item[data-productid=' + value + '] .favorite-button').addClass('bg-green');\r\n })\r\n };\r\n\r\n const getFavoritedProduct = (productIds) => {\r\n const qs = productIds.map((x) => {\r\n return `ids=${x}`;\r\n }).join('&');\r\n\r\n catalogApi.getFavoritedProduct(qs).then((response) => {\r\n setFavoriteProduct(response.data.FavoritedProducts);\r\n })\r\n };\r\n\r\n getFavoritedProducts();\r\n\r\n const faveProduct = (productId, favorite, doneCallback, failCallback) => {\r\n return catalogApi.faveProduct(productId, favorite).then((response) => {\r\n doneCallback(response.data, productId, favorite);\r\n }).catch((error) => {\r\n failCallback(error, productId, favorite);\r\n });\r\n };\r\n\r\n const doneCallback = (response, productId, favorite) => {\r\n if (favorite) {\r\n $(\"li[data-productid='\" + productId + \"']\")\r\n .find('.favorite-button').addClass('bg-green');\r\n } else {\r\n $(\"li[data-productid='\" + productId + \"']\")\r\n .find('.favorite-button').removeClass('bg-green');\r\n }\r\n }\r\n\r\n const failCallback = function (error, productId, favorite) {\r\n if (error.response.status === 401) {\r\n const loginEvent = new CustomEvent('loginRequested', {\r\n \"detail\": {\r\n taskName: 'favorite',\r\n favorite: favorite,\r\n productId: productId\r\n }\r\n });\r\n document.dispatchEvent(loginEvent);\r\n }\r\n }\r\n\r\n $('.favorite-button').click((e) => {\r\n const productId = $(e.currentTarget).closest('.bdc-productsearch-item').data('productid');\r\n const isFavorite = $(e.currentTarget).closest('.favorite-button').hasClass('bg-green');\r\n const toggleTask = isFavorite ? 'unfavorite' : 'favorite';\r\n\r\n faveProduct(\r\n productId,\r\n toggleTask === 'favorite',\r\n doneCallback,\r\n failCallback,\r\n );\r\n });\r\n\r\n document.addEventListener('loginCompleted', (e) => {\r\n if (e.detail.taskName === 'favorite') {\r\n faveProduct(e.detail.productId, e.detail.favorite, doneCallback, failCallback);\r\n getFavoritedProducts();\r\n }\r\n });\r\n }\r\n\r\n if (useDelorean) {\r\n fave();\r\n }\r\n\r\n /* PRIVATE VARIABLES AND METHODS */\r\n var localStorage = new LocalStorage();\r\n\r\n setEstimateFilters();\r\n\r\n var showLoader = function () {\r\n $(\"#gcc-bca-search-results-loader\").removeClass('dn');\r\n $(\".gcc-loading\").css('display', 'block');\r\n }\r\n var persistHeightWidth = function () {\r\n\r\n var widthWhole, widthEigth, heightWhole, heightEigth, minWidth, maxWidth, minHeight, maxHeight;\r\n\r\n if (globals.isEstimateSearch) {\r\n widthWhole = $(\"#bdc-estimate-search-width-whole-select\").val();\r\n widthEigth = undefined;\r\n heightWhole = $(\"#bdc-estimate-search-height-whole-select\").val();\r\n heightEigth = undefined;\r\n\r\n minWidth = $(\"#bdc-estimate-search-width-whole-select option:first\").val();\r\n maxWidth = $(\"#bdc-estimate-search-width-whole-select option:last\").val();\r\n\r\n minHeight = $(\"#bdc-estimate-search-height-whole-select option:first\").val();\r\n maxHeight = $(\"#bdc-estimate-search-height-whole-select option:last\").val();\r\n\r\n } else {\r\n\r\n widthWhole = $(\"#SelectedWidth\").val();\r\n widthEigth = $(\"#SelectedWidthEigth\").val();\r\n heightWhole = $(\"#SelectedHeight\").val();\r\n heightEigth = $(\"#SelectedHeightEigth\").val();\r\n\r\n minWidth = $(\"#SelectedWidth option:first\").val();\r\n maxWidth = $(\"#SelectedWidth option:last\").val();\r\n\r\n minHeight = $(\"#SelectedHeight option:first\").val();\r\n maxHeight = $(\"#SelectedHeight option:last\").val();\r\n }\r\n\r\n if (widthEigth == undefined) {\r\n widthEigth = 0;\r\n }\r\n if (heightEigth == undefined) {\r\n heightEigth = 0;\r\n }\r\n\r\n var width = parseFloat(widthWhole) + parseFloat(widthEigth / 8);\r\n var height = parseFloat(heightWhole) + parseFloat(heightEigth / 8);\r\n\r\n var widthStorage = {\r\n LocalStoragePersister: {},\r\n minDimension: minWidth,\r\n maxDimension: maxWidth,\r\n serializableValue: width,\r\n getDimensionsEighths: [{ name: \"0/0\", value: 0 }, { name: \"1/8\", value: 1 }, { name: \"1/4\", value: 2 }, { name: \"3/8\", value: 3 }, { name: \"1/2\", value: 4 }, { name: \"5/8\", value: 5 }, { name: \"3/4\", value: 6 }, { name: \"7/8\", value: 7 }]\r\n };\r\n var heightStorage = {\r\n LocalStoragePersister: {},\r\n minDimension: minWidth,\r\n maxDimension: maxWidth,\r\n serializableValue: height,\r\n getDimensionsEighths: [{ name: \"0/0\", value: 0 }, { name: \"1/8\", value: 1 }, { name: \"1/4\", value: 2 }, { name: \"3/8\", value: 3 }, { name: \"1/2\", value: 4 }, { name: \"5/8\", value: 5 }, { name: \"3/4\", value: 6 }, { name: \"7/8\", value: 7 }]\r\n };\r\n localStorage.persist(\"SELECTED_WIDTH_STORAGE_KEY\", widthStorage);\r\n localStorage.persist(\"SELECTED_HEIGHT_STORAGE_KEY\", heightStorage);\r\n\r\n Cookies.set(\"widthz\", width);\r\n Cookies.set(\"hghtz\", height);\r\n };\r\n\r\n var updateQueryString = function (key, value, url) {\r\n if (!url) url = window.location.href;\r\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|#|$)(.*)\", \"gi\"),\r\n hash;\r\n\r\n if (re.test(url)) {\r\n if (typeof value !== \"undefined\" && value !== null)\r\n return url.replace(re, \"$1\" + key + \"=\" + value + \"$2$3\");\r\n else {\r\n hash = url.split(\"#\");\r\n url = hash[0].replace(re, \"$1$3\").replace(/(&|\\?)$/, \"\");\r\n if (typeof hash[1] !== \"undefined\" && hash[1] !== null)\r\n url += \"#\" + hash[1];\r\n return url;\r\n }\r\n } else {\r\n if (typeof value !== \"undefined\" && value !== null) {\r\n var separator = url.indexOf(\"?\") !== -1 ? \"&\" : \"?\";\r\n hash = url.split(\"#\");\r\n url = hash[0] + separator + key + \"=\" + value;\r\n if (typeof hash[1] !== \"undefined\" && hash[1] !== null)\r\n url += \"#\" + hash[1];\r\n return url;\r\n } else\r\n return url;\r\n }\r\n };\r\n\r\n /* EVENT HANDLERS */\r\n $(\"body\").on(\"click\", \".bdc-searchfilter-choices-list li\", function (event) {\r\n var filterUrl = $(this).find(\"label > span\").attr(\"data-filter\");\r\n var ajaxUrl = globals.ajaxUrl + filterUrl.substring(filterUrl.indexOf(\"?\"));\r\n History.pushState({ state: ajaxUrl }, \"Blinds Search - \" + globals.siteName + \" has the products you're looking for!\", filterUrl);\r\n return false;\r\n });\r\n\r\n $('body').on('click', '.bdc-productsearch-sort-ca span', function () {\r\n const sortUrl = $(this).attr('data-filter');\r\n const ajaxUrl = `${globals.ajaxUrl}${sortUrl.substring(sortUrl.indexOf('?'))}`;\r\n History.pushState({ state: ajaxUrl }, `Blinds Search - ${globals.siteName} has the products you're looking for!`, sortUrl);\r\n return false;\r\n });\r\n\r\n $(\"body\").on(\"change\", \"#SelectedWidth, #SelectedWidthEigth, #SelectedHeight, #SelectedHeightEigth\", function (event) {\r\n showLoader();\r\n var widthWhole = $(\"#SelectedWidth\").val();\r\n var widthEigth = $(\"#SelectedWidthEigth\").val();\r\n var heightWhole = $(\"#SelectedHeight\").val();\r\n var heightEigth = $(\"#SelectedHeightEigth\").val();\r\n\r\n if (widthEigth == undefined) {\r\n widthEigth = 0;\r\n }\r\n if (heightEigth == undefined) {\r\n heightEigth = 0;\r\n }\r\n\r\n var width = parseFloat(widthWhole) + parseFloat(widthEigth / 8);\r\n var height = parseFloat(heightWhole) + parseFloat(heightEigth / 8);\r\n\r\n var url = window.location.href;\r\n\r\n url = updateQueryString(\"height\", height, url);\r\n url = updateQueryString(\"width\", width, url);\r\n\r\n var ajaxUrl = globals.ajaxUrl + url.substring(url.indexOf(\"?\"));\r\n\r\n History.pushState({ state: ajaxUrl }, \"Blinds Search - \" + globals.siteName + \" has the products you're looking for!\", url);\r\n\r\n persistHeightWidth();\r\n });\r\n\r\n $(\"body\").on(\"click\", \"#see-more-products-btn\", function (event) {\r\n var url = $(this).attr(\"href\");\r\n var ajaxUrl = globals.ajaxUrl + url.substring(url.indexOf(\"?\"));\r\n History.pushState({ state: ajaxUrl }, \"Blinds Search - \" + globals.siteName + \" has the products you're looking for!\", url);\r\n return false;\r\n });\r\n\r\n $(\"body\").on(\"click\", \".bdc-pagination-link\", function (event) {\r\n var url = $(\".bdc-pagination-list\").data(\"url\");\r\n\r\n var nextPage = $(this).data(\"value\");\r\n\r\n if (nextPage) {\r\n url += \"&page=\" + nextPage;\r\n }\r\n\r\n var ajaxUrl = globals.ajaxUrl + url.substring(url.indexOf(\"?\"));\r\n History.pushState({ state: ajaxUrl }, \"Blinds Search - \" + globals.siteName + \" has the products you're looking for!\", url);\r\n return false;\r\n });\r\n\r\n $(\"body\").on(\"click\", \".bdc-productsearch-results-filter\", function (event) {\r\n $(\".bdc-searchfilter\").addClass(\"bdc-searchfilter-show\");\r\n });\r\n\r\n $(\"body\").on(\"click\", \"#bdc-searchfilter-done\", function (event) {\r\n $(\".bdc-searchfilter\").removeClass(\"bdc-searchfilter-show\");\r\n return false;\r\n });\r\n\r\n $(\"body\").on(\"change\", \"#bdc-productsearch-results-sort-items\", function (event) {\r\n var url = window.location.href;\r\n var sorts = $(this).val();\r\n var ajaxUrl = globals.ajaxUrl + window.location.search;\r\n url = updateQueryString(\"sorts\", sorts, url);\r\n ajaxUrl = updateQueryString(\"sorts\", sorts, ajaxUrl);\r\n History.pushState({ state: ajaxUrl }, \"Blinds Search - \" + globals.siteName + \" has the products you're looking for!\", url);\r\n });\r\n\r\n $(\"body\").on(\"click\", \".bdc-productwidget-colors-count\", function (event) {\r\n var productId = $(this).data(\"productid\");\r\n var url = \"/Catalog/Category/GetColorSwatchByProductId?productId=\" + productId;\r\n var colorswatchElement = \"#bdc-productsearch-colors-\" + productId;\r\n $(\"#bdc-productsearch-colors-\" + productId + \" ul\").empty();\r\n $.get(url, function (data) {\r\n $.each(data, function (key, val) {\r\n var imageUrl = \"/product-images/\" + val.ImageUniqueId + \".jpg?width=20&height=20\";\r\n $(\"#bdc-productsearch-colors-\" + productId + \" ul\").append(\"
  • \");\r\n });\r\n });\r\n $(colorswatchElement).show();\r\n });\r\n\r\n $(\".bdc-productwidget-colors-count\").mouseout(function () {\r\n $(\".bdc-productsearch-colors\").hide();\r\n });\r\n\r\n $(\"body\").on(\"change\", \".bdc-estimate-search-filter\", function (event) {\r\n setEstimateFilters();\r\n });\r\n\r\n $(\"body\").on(\"change\", \"select.bdc-estimate-search-filter\", function (event) {\r\n\r\n setEstimateFilters();\r\n\r\n var widthWhole = $(\"#bdc-estimate-search-width-whole-select\").val();\r\n var widthEigth = $(\"#bdc-estimate-search-width-eigth-select\").val();\r\n var heightWhole = $(\"#bdc-estimate-search-height-whole-select\").val();\r\n var heightEigth = $(\"#bdc-estimate-search-height-eigth-select\").val();\r\n\r\n if (widthEigth == undefined) {\r\n widthEigth = 0;\r\n }\r\n if (heightEigth == undefined) {\r\n heightEigth = 0;\r\n }\r\n\r\n var width = parseFloat(widthWhole) + parseFloat(widthEigth / 8);\r\n var height = parseFloat(heightWhole) + parseFloat(heightEigth / 8);\r\n\r\n var url = window.location.href;\r\n\r\n url = updateQueryString(\"height\", height, url);\r\n url = updateQueryString(\"width\", width, url);\r\n\r\n var sortBy = $(\"#bdc-estimate-search-sortby-select\").val();\r\n\r\n url = updateQueryString(\"sorts\", sortBy, url);\r\n\r\n var ajaxUrl = globals.ajaxUrl + url.substring(url.indexOf(\"?\"));\r\n\r\n History.pushState({ state: ajaxUrl }, \"Blinds Search - \" + globals.siteName + \" has the products you're looking for!\", url);\r\n\r\n persistHeightWidth();\r\n });\r\n\r\n $(\"body\").on(\"click\", \".bdc-searchfilter-options-title.collapsable\", function () {\r\n var link = $(this);\r\n var list = $(this).next(\".bdc-searchfilter-options-list\");\r\n $(list).slideToggle(\"300\", () => {\r\n // Animation complete.\r\n var icon = link.find(\"span.bdc-font\");\r\n if (list.is(\":visible\")) {\r\n icon.removeClass(\"bdc-font-plussign\");\r\n } else {\r\n icon.addClass(\"bdc-font-plussign\");\r\n }\r\n });\r\n });\r\n History.pushState({ state: globals.ajaxUrl }, document.title);\r\n History.Adapter.bind(window, \"statechange\", function () {\r\n var state = History.getState().data.state;\r\n showLoader();\r\n $.get(state, {}, function (data) {\r\n $(\".main-content\").replaceWith(data);\r\n\r\n if (useDelorean) {\r\n fave();\r\n }\r\n\r\n if (globals.isEstimateSearch) {\r\n setEstimateFilters();\r\n }\r\n });\r\n });\r\n\r\n var isMobile = globals.ssm.states[0].active;\r\n if (isMobile) {\r\n $(\"body\").on(\"touchstart\", function (event) {\r\n var $elem = $(event.target);\r\n //filter results\r\n if ($elem.hasClass(\"bdc-productsearch-results-filter\") || $elem.hasClass(\"bdc-font-filter\")) {\r\n $(\"#bdc-search-filter\").addClass(\"bdc-searchfilter-show\");\r\n }\r\n });\r\n }\r\n\r\n /* INITIALIZATION */\r\n persistHeightWidth();\r\n });\r\n });\r\n","\r\nconst defaultState = {\r\n isOpen: false,\r\n event: null,\r\n defaultTab: 'signIn',\r\n};\r\n\r\n\r\nconst modal = (state = defaultState, action) => {\r\n switch (action.type) {\r\n case 'OPEN_MODAL':\r\n return Object.assign({}, state, { isOpen: true, event: action.event });\r\n case 'CLOSE_MODAL':\r\n return Object.assign({}, state, { isOpen: false });\r\n case 'CHANGE_DEFAULT_TAB':\r\n return Object.assign({}, state, { defaultTab: action.newDefaultTab });\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default modal;\r\n","const defaultState = {\r\n selectedTab: 'signIn',\r\n};\r\n\r\nconst app = (state = defaultState, action) => {\r\n switch (action.type) {\r\n case 'SWITCH_TAB':\r\n return Object.assign({}, state, { selectedTab: action.value });\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default app;\r\n","import { BACK_TO_SIGN_IN } from './ResetPasswordConstants';\r\n\r\nconst initialState = {};\r\n\r\nexport default function resetPassword(state = initialState, action) {\r\n switch (action.type) {\r\n case 'CLOSE_MODAL':\r\n case BACK_TO_SIGN_IN:\r\n return Object.assign({}, initialState);\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as redux from 'redux';\r\nimport thunk from 'redux-thunk';\r\n\r\nexport default (combineReducers, initialState = {}) => {\r\n const store = redux.createStore(combineReducers, initialState, redux.compose(\r\n redux.applyMiddleware(thunk),\r\n window.devToolsExtension ? window.devToolsExtension() : f => f,\r\n ));\r\n\r\n return store;\r\n};\r\n","(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD\r\n define(['underscore'], factory);\r\n } else if (typeof exports === 'object') {\r\n // Node, CommonJS-like\r\n module.exports = factory(require('underscore'));\r\n } else {\r\n // Browser globals (root is window)\r\n root.returnExports = factory(root._);\r\n }\r\n}(this, function (_) {\r\n // methods\r\n var readCookie = function(name, c, C, i) {\r\n c = document.cookie.split(\"; \");\r\n var cookies = {};\r\n for (i = c.length - 1; i >= 0; i--) {\r\n C = c[i].split(\"=\");\r\n cookies[C[0]] = C[1];\r\n }\r\n return cookies[name];\r\n };\r\n\r\n var getCartOnBehalfOf = function() {\r\n var blindsCookie = readCookie(\"CartOnBehalfOf\");\r\n return blindsCookie;\r\n }\r\n\r\n var getDateAsOf = function() {\r\n var blindsCookie = readCookie(\"dateAsOf\");\r\n if (blindsCookie === undefined) {\r\n return undefined;\r\n }\r\n //TODO: remove this entire feature!!!\r\n //var fullDateTime = blindsCookie.substr(0, blindsCookie.indexOf(\"|\"));\r\n // HACK - Spit away the time from the view\r\n return undefined;\r\n };\r\n\r\n var getUsername = function() {\r\n var blindsCookie = readCookie(\"internalUser\");\r\n if (blindsCookie === undefined) {\r\n return undefined;\r\n }\r\n return blindsCookie.substr(0, blindsCookie.indexOf(\":\"));\r\n };\r\n\r\n return {\r\n\r\n addAjaxCacheHeader: function(xhr, settings) {\r\n return addAjaxCacheHeader(xhr, settings);\r\n },\r\n\r\n isInternalUser: function() {\r\n return getUsername() !== undefined;\r\n },\r\n checkInternal: function(callback) {\r\n var name = getUsername();\r\n if (name === undefined) {\r\n callback(false);\r\n return;\r\n }\r\n callback(true);\r\n },\r\n\r\n dateAsOf: function() {\r\n return getDateAsOf();\r\n },\r\n\r\n cartOnBehalfOf: function() {\r\n return getCartOnBehalfOf();\r\n },\r\n\r\n userName: function() {\r\n return getUsername();\r\n },\r\n\r\n userNameWithoutDomainPrefix: function () {\r\n var username = getUsername();\r\n if ( username && username.indexOf( '\\\\' ) > -1 ) {\r\n username = _.last( username.split( '\\\\' ) );\r\n }\r\n return username;\r\n }\r\n };\r\n}));\r\n","\r\nconst defaultState = {\r\n isLoading: true,\r\n pageSize: 5,\r\n currentPage: 1,\r\n products: [],\r\n};\r\n\r\nconst products = (state = defaultState, action) => {\r\n switch (action.type) {\r\n case 'RECEIVE_PRODUCTS':\r\n return Object.assign({}, state, {\r\n isLoading: false,\r\n products: [...state.products, ...action.products],\r\n });\r\n case 'REQUEST_PRODUCTS':\r\n return Object.assign({}, state, {\r\n isLoading: true,\r\n products: [...state.products],\r\n });\r\n case 'UPDATE_PAGE':\r\n return Object.assign({}, state, {\r\n currentPage: action.pageNumber,\r\n products: [...state.products],\r\n });\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default products;\r\n","export const sites = {\r\n americanBlinds: 1,\r\n blindsCa: 2,\r\n blinds: 3,\r\n justBlinds: 5,\r\n theHomeDepot: 11,\r\n};\r\n\r\nexport const itemTypes = {\r\n unknown: 0,\r\n window: 1,\r\n doorLock: 2,\r\n garageDoor: 3,\r\n};\r\n\r\nexport const itemSources = {\r\n unknown: 0,\r\n autobahn: 1,\r\n theHomeDepot: 2,\r\n};\r\n\r\nexport const containerTypes = {\r\n unknown: 0,\r\n room: 1,\r\n garage: 2,\r\n};\r\n\r\n","define([\r\n 'jquery'],\r\nfunction ($) {\r\n var scrollToSection = function (cssSelector, callback) {\r\n let $container, scrollTop;\r\n const globals = window.globals;\r\n let offset = globals.scrollOffset || 0;\r\n if ($('#gcc-site-container').length > 0) {\r\n let headerHeight = 0;\r\n $container = $('#gcc-site-container');\r\n if (globals.breakpoint.value === 'small' || globals.breakpoint.value === 'medium') {\r\n headerHeight = ($('#gcc-header').outerHeight() + $('#gcc-header-search').outerHeight() + $('#gcc-header-banner').outerHeight());\r\n } else {\r\n headerHeight = ($('#gcc-header').outerHeight() + $('#gcc-header-banner').outerHeight());\r\n }\r\n scrollTop = $(cssSelector).position().top + offset + headerHeight;\r\n } else {\r\n $container = $('html, body');\r\n scrollTop = $(cssSelector).offset().top + offset;\r\n }\r\n $container.animate({\r\n scrollTop: scrollTop\r\n }, 1000, function() {\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n }\r\n return scrollToSection;\r\n});\r\n","define(function () {\r\n return {};\r\n});\r\n","define( function () {\r\n return window.pageContextJavascript;\r\n} );\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst EstimateBanner = ({ location, data }) => {\r\n if (!location || !data) return null;\r\n if (location.pathname.toLowerCase().indexOf('estimatebuilder') !== -1) return null;\r\n\r\n const { action, estimateName } = JSON.parse(data);\r\n const editText = action === 'edit' ? 'editing' : 'adding to';\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n {editText}\r\n \r\n {estimateName}\r\n \r\n You're currently {editText} {estimateName}. Click here to return to your estimate.\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nEstimateBanner.propTypes = {\r\n location: PropTypes.shape({}).isRequired,\r\n data: PropTypes.string,\r\n};\r\n\r\nEstimateBanner.defaultProps = {\r\n data: undefined,\r\n};\r\n\r\nexport default EstimateBanner;\r\n","define( [\r\n \"jquery\",\r\n \"cookies-factory\"],\r\n function ( $,cookiesFactory ) {\r\n \r\n if ( cookiesFactory.isInternalUser() ) {\r\n // hide the right rails layout menu \r\n $( \".bdc-rrf\" ).hide();\r\n $( \".slider-icons\" ).hide();\r\n }\r\n\r\n } );","import { Utils } from './Utils';\r\n\r\nmodule.exports = { Utils };\r\n","import axios from 'axios';\r\nimport { Utils } from '../common';\r\n\r\nclass Axios {\r\n constructor() {\r\n const newBaseUrl = Utils.getUrlAddress(window.location.href).replace(/\\/+$/g, '');\r\n this.baseUrl = `${newBaseUrl}/`;\r\n axios.defaults.baseURL = this.baseUrl;\r\n axios.defaults.headers.post['Content-Type'] = 'application/json';\r\n\r\n const axiosConfig = {\r\n headers: { Accept: 'application/json' },\r\n credentials: 'same-origin',\r\n };\r\n\r\n const instance = axios.create(axiosConfig);\r\n\r\n // You can alter axios defaults after instance has been created from the client\r\n // const api = new AxiosInstance();\r\n // api.defaults.headers.common['Authorization'] = AUTH_TOKEN;\r\n return instance;\r\n }\r\n}\r\n\r\nconst api = new Axios();\r\n\r\nmodule.exports = { api };\r\n"],"sourceRoot":""}