{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/underscore/modules/_setup.js","webpack:///./assets/src/js/modules/consumer-account/account-api.js","webpack:///./assets/src/js/modules/consumer-account/account-status-helpers.js","webpack:///./assets/src/js/utils/form-validation-utils.js","webpack:///./assets/src/js/modules/swatchbook-utils.js","webpack:///./assets/src/js/modules/consumer-account/login.js","webpack:///./assets/src/js/swatch-ordering.js","webpack:///(webpack)/buildin/global.js","webpack:///./assets/src/js/modules/filter-toggle.js","webpack:///./assets/src/js/modules/lazyload.js","webpack:///./assets/src/js/modules/widen-utils.js","webpack:///./assets/src/js/modules/widen-gallery-filters.js","webpack:///./assets/src/js/utils/url-utils.js","webpack:///./assets/src/js/modules/consumer-account/storage-actions.js","webpack:///./assets/src/js/modules/consumer-account/account-modal.js","webpack:///./assets/src/js/modules/consumer-account/create-account.js","webpack:///./node_modules/underscore/modules/restArguments.js","webpack:///./node_modules/underscore/modules/isObject.js","webpack:///./node_modules/underscore/modules/isNull.js","webpack:///./node_modules/underscore/modules/isUndefined.js","webpack:///./node_modules/underscore/modules/isBoolean.js","webpack:///./node_modules/underscore/modules/isElement.js","webpack:///./node_modules/underscore/modules/_tagTester.js","webpack:///./node_modules/underscore/modules/isString.js","webpack:///./node_modules/underscore/modules/isNumber.js","webpack:///./node_modules/underscore/modules/isDate.js","webpack:///./node_modules/underscore/modules/isRegExp.js","webpack:///./node_modules/underscore/modules/isError.js","webpack:///./node_modules/underscore/modules/isSymbol.js","webpack:///./node_modules/underscore/modules/isMap.js","webpack:///./node_modules/underscore/modules/isWeakMap.js","webpack:///./node_modules/underscore/modules/isSet.js","webpack:///./node_modules/underscore/modules/isWeakSet.js","webpack:///./node_modules/underscore/modules/isArrayBuffer.js","webpack:///./node_modules/underscore/modules/isDataView.js","webpack:///./node_modules/underscore/modules/isArray.js","webpack:///./node_modules/underscore/modules/isFunction.js","webpack:///./node_modules/underscore/modules/_has.js","webpack:///./node_modules/underscore/modules/isArguments.js","webpack:///./node_modules/underscore/modules/isFinite.js","webpack:///./node_modules/underscore/modules/isNaN.js","webpack:///./node_modules/underscore/modules/constant.js","webpack:///./node_modules/underscore/modules/_createSizePropertyCheck.js","webpack:///./node_modules/underscore/modules/_shallowProperty.js","webpack:///./node_modules/underscore/modules/_getByteLength.js","webpack:///./node_modules/underscore/modules/_isBufferLike.js","webpack:///./node_modules/underscore/modules/isTypedArray.js","webpack:///./node_modules/underscore/modules/_getLength.js","webpack:///./node_modules/underscore/modules/_isArrayLike.js","webpack:///./node_modules/underscore/modules/_collectNonEnumProps.js","webpack:///./node_modules/underscore/modules/keys.js","webpack:///./node_modules/underscore/modules/isEmpty.js","webpack:///./node_modules/underscore/modules/isMatch.js","webpack:///./node_modules/underscore/modules/underscore.js","webpack:///./node_modules/underscore/modules/isEqual.js","webpack:///./node_modules/underscore/modules/allKeys.js","webpack:///./node_modules/underscore/modules/values.js","webpack:///./node_modules/underscore/modules/pairs.js","webpack:///./node_modules/underscore/modules/invert.js","webpack:///./node_modules/underscore/modules/functions.js","webpack:///./node_modules/underscore/modules/_createAssigner.js","webpack:///./node_modules/underscore/modules/extend.js","webpack:///./node_modules/underscore/modules/extendOwn.js","webpack:///./node_modules/underscore/modules/defaults.js","webpack:///./node_modules/underscore/modules/_baseCreate.js","webpack:///./node_modules/underscore/modules/create.js","webpack:///./node_modules/underscore/modules/clone.js","webpack:///./node_modules/underscore/modules/tap.js","webpack:///./node_modules/underscore/modules/has.js","webpack:///./node_modules/underscore/modules/identity.js","webpack:///./node_modules/underscore/modules/matcher.js","webpack:///./node_modules/underscore/modules/_deepGet.js","webpack:///./node_modules/underscore/modules/property.js","webpack:///./node_modules/underscore/modules/_optimizeCb.js","webpack:///./node_modules/underscore/modules/_baseIteratee.js","webpack:///./node_modules/underscore/modules/iteratee.js","webpack:///./node_modules/underscore/modules/_cb.js","webpack:///./node_modules/underscore/modules/mapObject.js","webpack:///./node_modules/underscore/modules/noop.js","webpack:///./node_modules/underscore/modules/propertyOf.js","webpack:///./node_modules/underscore/modules/times.js","webpack:///./node_modules/underscore/modules/random.js","webpack:///./node_modules/underscore/modules/now.js","webpack:///./node_modules/underscore/modules/_createEscaper.js","webpack:///./node_modules/underscore/modules/_escapeMap.js","webpack:///./node_modules/underscore/modules/escape.js","webpack:///./node_modules/underscore/modules/unescape.js","webpack:///./node_modules/underscore/modules/_unescapeMap.js","webpack:///./node_modules/underscore/modules/templateSettings.js","webpack:///./node_modules/underscore/modules/template.js","webpack:///./node_modules/underscore/modules/result.js","webpack:///./node_modules/underscore/modules/uniqueId.js","webpack:///./node_modules/underscore/modules/chain.js","webpack:///./node_modules/underscore/modules/_executeBound.js","webpack:///./node_modules/underscore/modules/partial.js","webpack:///./node_modules/underscore/modules/bind.js","webpack:///./node_modules/underscore/modules/_flatten.js","webpack:///./node_modules/underscore/modules/bindAll.js","webpack:///./node_modules/underscore/modules/memoize.js","webpack:///./node_modules/underscore/modules/delay.js","webpack:///./node_modules/underscore/modules/defer.js","webpack:///./node_modules/underscore/modules/throttle.js","webpack:///./node_modules/underscore/modules/debounce.js","webpack:///./node_modules/underscore/modules/wrap.js","webpack:///./node_modules/underscore/modules/negate.js","webpack:///./node_modules/underscore/modules/compose.js","webpack:///./node_modules/underscore/modules/after.js","webpack:///./node_modules/underscore/modules/before.js","webpack:///./node_modules/underscore/modules/once.js","webpack:///./node_modules/underscore/modules/findKey.js","webpack:///./node_modules/underscore/modules/_createPredicateIndexFinder.js","webpack:///./node_modules/underscore/modules/findIndex.js","webpack:///./node_modules/underscore/modules/findLastIndex.js","webpack:///./node_modules/underscore/modules/sortedIndex.js","webpack:///./node_modules/underscore/modules/_createIndexFinder.js","webpack:///./node_modules/underscore/modules/indexOf.js","webpack:///./node_modules/underscore/modules/lastIndexOf.js","webpack:///./node_modules/underscore/modules/find.js","webpack:///./node_modules/underscore/modules/findWhere.js","webpack:///./node_modules/underscore/modules/each.js","webpack:///./node_modules/underscore/modules/map.js","webpack:///./node_modules/underscore/modules/_createReduce.js","webpack:///./node_modules/underscore/modules/reduce.js","webpack:///./node_modules/underscore/modules/reduceRight.js","webpack:///./node_modules/underscore/modules/filter.js","webpack:///./node_modules/underscore/modules/reject.js","webpack:///./node_modules/underscore/modules/every.js","webpack:///./node_modules/underscore/modules/some.js","webpack:///./node_modules/underscore/modules/contains.js","webpack:///./node_modules/underscore/modules/invoke.js","webpack:///./node_modules/underscore/modules/pluck.js","webpack:///./node_modules/underscore/modules/where.js","webpack:///./node_modules/underscore/modules/max.js","webpack:///./node_modules/underscore/modules/min.js","webpack:///./node_modules/underscore/modules/sample.js","webpack:///./node_modules/underscore/modules/shuffle.js","webpack:///./node_modules/underscore/modules/sortBy.js","webpack:///./node_modules/underscore/modules/_group.js","webpack:///./node_modules/underscore/modules/groupBy.js","webpack:///./node_modules/underscore/modules/indexBy.js","webpack:///./node_modules/underscore/modules/countBy.js","webpack:///./node_modules/underscore/modules/partition.js","webpack:///./node_modules/underscore/modules/toArray.js","webpack:///./node_modules/underscore/modules/size.js","webpack:///./node_modules/underscore/modules/_keyInObj.js","webpack:///./node_modules/underscore/modules/pick.js","webpack:///./node_modules/underscore/modules/omit.js","webpack:///./node_modules/underscore/modules/initial.js","webpack:///./node_modules/underscore/modules/first.js","webpack:///./node_modules/underscore/modules/rest.js","webpack:///./node_modules/underscore/modules/last.js","webpack:///./node_modules/underscore/modules/compact.js","webpack:///./node_modules/underscore/modules/flatten.js","webpack:///./node_modules/underscore/modules/difference.js","webpack:///./node_modules/underscore/modules/without.js","webpack:///./node_modules/underscore/modules/uniq.js","webpack:///./node_modules/underscore/modules/union.js","webpack:///./node_modules/underscore/modules/intersection.js","webpack:///./node_modules/underscore/modules/unzip.js","webpack:///./node_modules/underscore/modules/zip.js","webpack:///./node_modules/underscore/modules/object.js","webpack:///./node_modules/underscore/modules/range.js","webpack:///./node_modules/underscore/modules/chunk.js","webpack:///./node_modules/underscore/modules/_chainResult.js","webpack:///./node_modules/underscore/modules/mixin.js","webpack:///./node_modules/underscore/modules/underscore-array-methods.js","webpack:///./node_modules/underscore/modules/index-default.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","VERSION","root","self","global","Function","ArrayProto","Array","ObjProto","SymbolProto","push","slice","toString","supportsArrayBuffer","ArrayBuffer","nativeIsArray","isArray","nativeKeys","keys","nativeCreate","nativeIsView","isView","_isNaN","isNaN","_isFinite","isFinite","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","MAX_ARRAY_INDEX","Math","pow","digitalUserApi","window","digitalUserApiEndoint","addVisualization","data","callback","dealerIdParam","getParameterByName","requestUrl","userId","micrositeName","request","XMLHttpRequest","open","setRequestHeader","onload","status","updateAccountIconStatus","updateAccountStatusMessage","onerror","console","log","send","addPhoto","imageUrl","thumbUrl","description","productLineId","productLineName","responseData","JSON","parse","responseText","stringify","addDealer","accountnumber","addSwatch","productLineCode","colorNumber","swatchId","widenUrl","addSwatches","callbacks","swatchlist","map","swatch","onSuccess","onError","createAccount","forgotPassword","username","getAccountData","getItemsByType","type","brandId","replace","hasAssets","login","password","rememberMe","logout","removeItemByType","id","msgType","updateAccount","updatePassword","showNavIndicator","icon","document","getElementById","classList","indexOf","add","setTimeout","remove","querySelector","showNewNavIndicator","isAuthenticated","assetType","action","msgDiv","innerHTML","updateSwatchCartStatusMessage","a","validateByType","val","RegExp","test","addRequiredAttrs","form","inputList","querySelectorAll","length","setAttribute","clearInputValues","init","validate","fieldList","fieldErrorList","field","isValid","required","isFormValid","getAttribute","fieldWrapper","parentNode","fieldError","focus","formatPhone","match","arr","join","substring","positionWindowAtFormElement","options","position","element","offsetTop","offset","scrollTo","top","behavior","removeAllErrors","removeRequiredAttrs","removeAttribute","resetSelectValues","selectList","firstOption","swatchbookData","getItemById","getSwatchbookData","item","items","find","saved","getTruncatedWidenUrl","url","split","updateNavIcon","localStorage","getItem","cart","saveSwatchbookItem","page","location","href","dateSaved","Date","now","setItem","removeSwatchbookItem","at","findIndex","splice","clearSwatchbook","clearOrderData","destroy","saveItem","widenUtils","getIdFromAssetUrl","setAssetCaption","removeItem","localStorageSwatchEventHandlers","btn","label","addEventListener","event","stopPropagation","collection","colorName","productLine","styleId","swatchCatId","swatchCatName","swatchColorNumber","swatchStyleName","newSwatch","displayMessage","addSwatchToCart","removeSwatchFromCart","getAllOfType","filter","getUserData","clearAllSwatchbookData","getCartData","clearCart","getSwatchProductUrlParams","productName","isVisualizerActive","toLowerCase","visualizerModelId","VisualizerModelId","visualizerProgamFamilyName","VisualizerProgramFamilyName","localTesting","onloadend","testData","getProductDetailsPageUrl","initialLanuch","onModalClose","onModalButtonClick","preventDefault","launchLoginModal","onLoginSuccess","myFavoritesUrl","onLoginFail","onLogoutButtonClick","loginUrl","checkLoginStatus","body","getElementsByTagName","modalBtns","removeEventListener","removeModalEventHandlers","logoutBtns","addLogoutEventHandlers","localStorageData","addModalEventHandlers","toggleCreateAccountForm","isVisible","modal","style","height","resetCreateAccountForm","msg","loginMessageSwatch","loginMessagePhoto","loginMessageDealer","loginMessageVisualization","overlay","openAccountModal","loginSubmitBtn","modalCloseBtn","modalForm","modalErrorMsg","remember","success","closeAccountModal","onLoginSubmit","addCreateAccountCallbacks","submitForm","_","templateSettings","interpolate","modalTemplateVals","template","captionMinimized","previousElementInFocus","getAddLabel","isAuthenticatedDealer","getRemoveLabel","captionTitlebarClickHandler","caption","titlebarBtn","bottom","offsetHeight","removeModal","isModalRemoved","firstChild","target","contains","removeChild","addModal","div","createElement","compiled","appendChild","setPreviousElementInFocus","activeElement","swatchModalBtns","img","src","imageSrc","updateAssetUrlDimensions","width","innerHeight","imageAlt","accountStorageSwatchEventHandler","swatches","swatchAsset","getItemBySwatchId","assetId","removeItemFromAccount","saveItemToAccount","getSwatchVisualizationParams","products","product","Id","Name","visualizerDetailsTemplateVals","visualizerDetailsTemplate","detailDivs","detail","addSwatchVisualizationNav","addEventListeners","filters","getItemsFromAccount","addSwatchOrderingEventListeners","g","this","e","filterMenus","parentElement","toggle","isExpanded","lazyLoadHandler","lazyloadThrottleTimeout","images","clearTimeout","scrollTop","pageYOffset","forEach","dataset","imageObserver","IntersectionObserver","entries","entry","isIntersecting","image","srcset","unobserve","rootMargin","threshold","observe","mediaLoadOffset","mediaLoadCallback","onMediaLoadComplete","mediaLoadLimit","getFirstMetaDataArrayValue","getAssetDescription","desc","getFilename","filename","substr","lastIndexOf","getUrlForWidth","getProductLineId","productEpiReferences","getProductUrl","productUrl","getMediaItemData","onInitLoadComplete","galleryWidenQueryParams","requestMethod","encodeURIComponent","urlDataParam","additionalHeader","file_properties","format_type","MediaGalleryData","mediaItems","external_id","title","metadata","fields","Product","productLineUrl","webReadyCaption","colorRange","designStyle","RoomStyle","roomType","RoomType","columnSize","active","videoUrl","embeds","VideoWithPlayerAndDownload","html","posterImage","video_poster","parseImageData","totalCt","parseInt","total_count","itemsLoaded","setMediaLoadCallback","setMediaLoadCompleteCallback","fragment","asset","urlDims","b","getDimensionsFromAssetUrl","filterLists","designStyleFilter","roomTypeFilter","productLineFilter","colorRangeFilter","imagesVideosFilter","formatToKebobCase","str","order","addItemToList","filterType","list","inputType","filterList","inputName","isChecked","addFilterItemByName","buildFilterObjects","sort","detectProduction","results","exec","decodeURIComponent","api","getPhotoAccountIdFromWidenId","assets","onDocumentModalKeyUp","keyCode","closeBtn","zIndex","passwordMatch","passIpt","passConfirmIpt","onSubmitCallbacks","removereateAccountCallbacks","disableScroll","errorMsg","existingErrorMsg","accountCreationErrorMsg","passwordStrengthErrorMsg","optInVal","passwordStrength","checked","restArguments","func","startIndex","max","arguments","rest","index","args","apply","isObject","obj","isNull","isUndefined","isBoolean","isElement","nodeType","tagTester","isFunction","nodelist","childNodes","Int8Array","has","isArguments","isSymbol","parseFloat","isNumber","constant","createSizePropertyCheck","getSizeProperty","sizeProperty","shallowProperty","typedArrayPattern","isDataView","collectNonEnumProps","hash","emulatedSet","nonEnumIdx","constructor","proto","prop","isEmpty","isString","isMatch","attrs","_keys","_wrapped","eq","aStack","bStack","deepEq","className","valueOf","DataView","byteLength","getUint8","buffer","areArrays","aCtor","bCtor","pop","isEqual","allKeys","values","pairs","invert","result","functions","names","createAssigner","keysFunc","defaults","source","toJSON","String","baseCreate","Ctor","props","extendOwn","clone","extend","tap","interceptor","path","identity","deepGet","optimizeCb","context","argCount","accumulator","baseIteratee","Infinity","cb","iteratee","mapObject","currentKey","noop","propertyOf","times","accum","random","min","floor","getTime","createEscaper","escaper","testRegexp","replaceRegexp","string","evaluate","escape","noMatch","escapes","escapeRegExp","escapeChar","text","settings","oldSettings","render","matcher","variable","argument","fallback","idCounter","uniqueId","prefix","chain","instance","_chain","executeBound","sourceFunc","boundFunc","callingContext","partial","boundArgs","placeholder","bound","TypeError","callArgs","concat","flatten","input","depth","strict","output","idx","j","len","Error","hasher","memoize","cache","address","wait","delay","throttle","timeout","previous","later","leading","throttled","_now","remaining","trailing","cancel","debounce","immediate","debounced","callNow","wrap","wrapper","negate","predicate","compose","start","after","before","memo","findKey","createPredicateIndexFinder","dir","array","low","high","mid","createIndexFinder","predicateFind","sortedIndex","findLastIndex","findWhere","each","createReduce","reducer","initial","reject","every","some","fromIndex","guard","contextPath","method","pluck","where","computed","lastComputed","v","sample","last","rand","temp","shuffle","sortBy","criteria","left","right","group","partition","pass","reStrSymbol","toArray","size","keyInObj","pick","first","compact","Boolean","otherArrays","difference","uniq","isSorted","seen","arrays","intersection","argsLength","unzip","range","stop","step","ceil","chunk","count","chainResult","mixin"],"mappings":"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","file":"swatch-ordering.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\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\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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 6);\n","// Current version.\nexport var VERSION = '1.11.0';\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nexport var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nexport var ArrayProto = Array.prototype, ObjProto = Object.prototype;\nexport var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nexport var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// Modern feature detection.\nexport var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined';\n\n// All **ECMAScript 5+** native function implementations that we hope to use\n// are declared here.\nexport var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create,\n nativeIsView = supportsArrayBuffer && ArrayBuffer.isView;\n\n// Create references to these builtin functions because we override them.\nexport var _isNaN = isNaN,\n _isFinite = isFinite;\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nexport var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nexport var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n// The largest integer that can be represented exactly.\nexport var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n","/* eslint-disable no-console */\n// import * as testData from './test-data';\nimport { getParameterByName } from '../../utils/url-utils';\nimport { updateAccountIconStatus, updateAccountStatusMessage } from './account-status-helpers';\n\nconst baseUrl = '';\nconst digitalUserApi = window.digitalUserApiEndoint;\n\nconst addVisualization = (data, callback) => {\n // console.log('account-api.js, addVisualization');\n // console.log(data);\n let dealerIdParam = '';\n if (getParameterByName('dealerid') !== null) {\n dealerIdParam = `?dealerid=${getParameterByName('dealerid')}`;\n }\n const requestUrl = `${digitalUserApi}/visualization/user/${window.userId}/?site=${window.micrositeName}${dealerIdParam}`;\n const request = new XMLHttpRequest();\n request.open('POST', requestUrl, true);\n request.setRequestHeader('Content-type', 'text/plain');\n request.setRequestHeader('Accept', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n if (callback) {\n callback();\n }\n updateAccountIconStatus();\n updateAccountStatusMessage('visualizer scene', 'add');\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n request.send(data.toString());\n};\n\nconst addPhoto = (data, callback) => {\n const {\n imageUrl,\n thumbUrl,\n description,\n productLineId,\n productLineName,\n } = data;\n const requestUrl = `${digitalUserApi}/photo`;\n const request = new XMLHttpRequest();\n request.open('POST', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callback) {\n callback(responseData);\n }\n updateAccountIconStatus();\n updateAccountStatusMessage('photo', 'add');\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n /* if (window.localTesting) {\n request.onloadend = () => {\n if (callback) {\n const responseData = testData.addPhotoJson;\n callback(JSON.parse(responseData.replace(/\\\\\"/gi, '')));\n }\n };\n } */\n request.send(JSON.stringify({\n 'user-id': window.userId,\n 'photo-url': imageUrl,\n 'thumbnail-url': thumbUrl,\n description,\n 'product-line-id': productLineId,\n 'product-line-name': productLineName,\n }));\n};\n\nconst addDealer = (data, callback) => {\n const requestUrl = `${digitalUserApi}/dealer`;\n const request = new XMLHttpRequest();\n request.open('POST', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callback) {\n callback(responseData);\n }\n updateAccountIconStatus();\n updateAccountStatusMessage('dealer', 'add');\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n request.send(JSON.stringify({\n 'user-id': window.userId,\n 'record-id': data.accountnumber,\n 'ship-to-account': data.accountnumber,\n }));\n};\n\nconst addSwatch = (data, callback) => {\n const {\n productLineCode,\n colorNumber,\n swatchId,\n widenUrl,\n } = data;\n const requestUrl = `${digitalUserApi}/swatch`;\n const request = new XMLHttpRequest();\n request.open('POST', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callback) {\n callback(responseData);\n }\n updateAccountIconStatus();\n updateAccountStatusMessage('swatch', 'add');\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n /* if (window.localTesting) {\n request.onloadend = () => {\n if (callback) {\n const responseData = testData.addSwatchJson;\n callback(JSON.parse(responseData.replace(/\\\\\"/gi, '')));\n }\n };\n } */\n request.send(JSON.stringify({\n 'user-id': window.userId,\n 'product-line-code': productLineCode,\n 'color-number': colorNumber,\n 'swatch-id': swatchId,\n 'widen-url': widenUrl,\n }));\n};\n\nconst addSwatches = (data, callbacks) => {\n // console.log('account-api.js, addSwatches');\n const swatchlist = data.map(swatch => ({\n 'user-id': window.userId,\n 'product-line-code': swatch.productLineCode,\n 'color-number': swatch.colorNumber,\n 'swatch-id': swatch.swatchId,\n }));\n // console.log(swatchlist);\n const requestUrl = `${baseUrl}/addswatches`;\n const request = new XMLHttpRequest();\n request.open('POST', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n if (!callbacks) {\n return;\n }\n if (callbacks.onSuccess) {\n const responseData = JSON.parse(request.responseText);\n callbacks.onSuccess(responseData);\n }\n }\n };\n request.onerror = () => {\n if (!callbacks) {\n return;\n }\n if (callbacks.onError) {\n const responseData = JSON.parse(request.responseText);\n callbacks.onError(responseData);\n }\n };\n request.send(JSON.stringify({\n data: JSON.stringify({\n swatchlist,\n }),\n }));\n};\n\nconst removeItemByType = (type, id, callback) => {\n // console.log(`account-api.js, removeItemByType: ${type}, item: ${id}`);\n let requestUrl;\n let msgType = '';\n switch (type) {\n case 'location':\n requestUrl = `${digitalUserApi}/dealer`;\n msgType = 'dealer';\n break;\n case 'photo':\n requestUrl = `${digitalUserApi}/photo`;\n msgType = 'photo';\n break;\n case 'visualization':\n requestUrl = `${digitalUserApi}/visualization`;\n msgType = 'visualizer scene';\n break;\n case 'swatch':\n requestUrl = `${digitalUserApi}/swatch`;\n msgType = 'swatch';\n break;\n default:\n break;\n }\n const request = new XMLHttpRequest();\n request.open('DELETE', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callback) {\n callback(responseData);\n }\n updateAccountIconStatus();\n updateAccountStatusMessage(msgType, 'remove');\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n /* if (window.localTesting) {\n request.onloadend = () => {\n if (callback) {\n const responseData = testData.removeItemJson;\n callback(JSON.parse(responseData.replace(/\\\\\"/gi, '')));\n }\n };\n } */\n request.send(JSON.stringify({\n 'asset-id': id,\n }));\n};\n\nconst getItemsByType = (type, callback) => {\n let requestUrl;\n switch (type) {\n case 'location':\n requestUrl = `${digitalUserApi}/dealer/brand/${window.brandId}/user/${window.userId}`;\n break;\n case 'photo':\n requestUrl = `${digitalUserApi}/photos/user/${window.userId}`;\n break;\n case 'swatch':\n requestUrl = `${digitalUserApi}/swatches/microsite/${window.micrositeName}/user/${window.userId}`;\n break;\n case 'visualization':\n requestUrl = `${digitalUserApi}/visualizations/user/${window.userId}?site=${window.micrositeName}`;\n break;\n default:\n break;\n }\n const request = new XMLHttpRequest();\n request.open('GET', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText.replace(/\\\\\"/gi, '\\\\\"'));\n if (callback) {\n callback(responseData);\n }\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n /* if (window.localTesting) {\n request.onloadend = () => {\n if (callback) {\n let data;\n switch (type) {\n case 'location':\n data = testData.getDealersJson;\n break;\n case 'photo':\n data = testData.getPhotosJson;\n break;\n case 'swatch':\n data = testData.getSwatchesJson;\n break;\n case 'visualization':\n data = testData.getVisualizationsJson;\n break;\n default:\n data = '';\n break;\n }\n callback(JSON.parse(data.replace(/\\\\\"/gi, '')));\n }\n };\n } */\n request.send();\n};\n\nconst getAccountData = (callback) => {\n const requestUrl = `${digitalUserApi}/account/${window.userId}`;\n const request = new XMLHttpRequest();\n request.open('GET', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callback) {\n callback(responseData);\n }\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n request.send();\n};\n\nconst forgotPassword = (data, callbacks) => {\n const {\n username,\n } = data;\n const requestUrl = `${baseUrl}/forgot-password/SendPasswordResetEmail`;\n const request = new XMLHttpRequest();\n request.open('POST', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n if (!callbacks) {\n return;\n }\n if (callbacks.onSuccess) {\n const responseData = JSON.parse(request.responseText);\n callbacks.onSuccess(responseData);\n }\n }\n };\n request.onerror = () => {\n if (!callbacks) {\n return;\n }\n if (callbacks.onError) {\n const responseData = JSON.parse(request.responseText);\n callbacks.onError(responseData);\n }\n };\n request.send(JSON.stringify({\n username,\n }));\n};\n\nconst login = (data, callbacks) => {\n const {\n username,\n password,\n rememberMe,\n } = data;\n const requestUrl = `${baseUrl}/userlogin`;\n const request = new XMLHttpRequest();\n request.open('POST', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n if (!callbacks) {\n return;\n }\n if (callbacks.onSuccess) {\n const responseData = JSON.parse(request.responseText);\n callbacks.onSuccess(responseData);\n }\n }\n };\n request.onerror = () => {\n if (!callbacks) {\n return;\n }\n if (callbacks.onError) {\n const responseData = JSON.parse(request.responseText);\n callbacks.onError(responseData);\n }\n };\n /* if (window.localTesting) {\n request.onloadend = () => {\n if (callbacks) {\n const responseData = testData.loginSuccessResponse;\n console.log(callbacks);\n callbacks.onSuccess(JSON.parse(responseData.replace(/\\\\\"/gi, '')));\n }\n };\n } */\n request.send(JSON.stringify({\n data: JSON.stringify({\n 'microsite-name': window.micrositeName,\n username,\n password,\n rememberMe,\n }),\n }));\n};\n\nconst logout = (callbacks) => {\n const requestUrl = `${baseUrl}/logout`;\n const request = new XMLHttpRequest();\n request.open('POST', requestUrl, true);\n // request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n if (!callbacks) {\n return;\n }\n if (callbacks.onSuccess) {\n // const responseData = JSON.parse(request.responseText);\n const responseData = request.responseText;\n callbacks.onSuccess(responseData);\n }\n }\n };\n request.onerror = () => {\n if (!callbacks) {\n return;\n }\n if (callbacks.onError) {\n // const responseData = JSON.parse(request.responseText);\n const responseData = request.responseText;\n callbacks.onError(responseData);\n }\n };\n request.send();\n};\n\nconst updatePassword = (data, callbacks) => {\n const requestUrl = `${digitalUserApi}/password`;\n const request = new XMLHttpRequest();\n request.open('PATCH', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callbacks.onSuccess) {\n callbacks.onSuccess(responseData);\n }\n }\n };\n request.onerror = () => {\n if (callbacks.onError) {\n const responseData = JSON.parse(request.responseText);\n callbacks.onError(responseData);\n }\n };\n request.send(JSON.stringify(data));\n};\n\nconst updateAccount = (data, callbacks) => {\n const requestUrl = `${digitalUserApi}/account`;\n const request = new XMLHttpRequest();\n request.open('PATCH', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callbacks.onSuccess) {\n callbacks.onSuccess(responseData);\n }\n }\n };\n request.onerror = () => {\n if (callbacks.onError) {\n const responseData = JSON.parse(request.responseText);\n callbacks.onError(responseData);\n }\n };\n request.send(JSON.stringify(data));\n};\n\nconst createAccount = (data, callbacks) => {\n const requestUrl = `${baseUrl}/usercreateaccount`;\n const request = new XMLHttpRequest();\n request.open('POST', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callbacks.onSuccess) {\n callbacks.onSuccess(responseData);\n }\n }\n };\n request.onerror = () => {\n if (callbacks.onError) {\n const responseData = JSON.parse(request.responseText);\n callbacks.onError(responseData);\n }\n };\n /* if (window.localTesting) {\n request.onloadend = () => {\n if (callbacks.onSuccess) {\n callbacks.onSuccess(testData.createAccountSuccess);\n }\n };\n } */\n request.send(JSON.stringify({\n data: JSON.stringify(data),\n }));\n};\n\nconst hasAssets = (callback) => {\n const requestUrl = `${digitalUserApi}/has-assets/${window.userId}`;\n const request = new XMLHttpRequest();\n request.open('GET', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callback) {\n callback(responseData);\n }\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n request.send();\n};\n\nexport {\n addVisualization,\n addPhoto,\n addDealer,\n addSwatch,\n addSwatches,\n createAccount,\n forgotPassword,\n getAccountData,\n getItemsByType,\n hasAssets,\n login,\n logout,\n removeItemByType,\n updateAccount,\n updatePassword,\n};\n/* eslint-enable no-console */\n","/* eslint-disable no-console */\nimport { hasAssets } from './account-api';\n\nconst showNewNavIndicator = (status) => {\n const icon = document.querySelector('.topbar-section .my-account-item');\n if (icon === null) {\n return;\n }\n const visibleClass = 'items-added-to-swatchbook';\n if (!status) {\n icon.classList.remove(visibleClass);\n } else {\n icon.classList.add(visibleClass);\n }\n};\n\nconst showNavIndicator = (status) => {\n const icon = document.getElementById('swbk-plus');\n // if element doesn't exist, use new nav indicator\n if (icon === null) {\n showNewNavIndicator(status);\n return;\n }\n const visibleClass = 'is-visible';\n const growClass = 'is-grow';\n\n if (!status) {\n icon.classList.remove(visibleClass);\n return;\n }\n if (icon.classList.toString().indexOf(visibleClass) !== -1) {\n icon.classList.add(growClass);\n setTimeout(() => {\n icon.classList.remove(growClass);\n }, 200);\n } else {\n icon.classList.add(visibleClass);\n }\n};\n\nconst updateAccountStatusMessage = (assetType, action) => {\n const msgDiv = document.querySelector('.my-account-status-message');\n if (!window.isAuthenticated || !msgDiv) {\n return;\n }\n // Clear existing message\n msgDiv.innerHTML = '';\n setTimeout(() => {\n if (action === 'add') {\n msgDiv.innerHTML = `${assetType} has been added to your favorites.`;\n }\n if (action === 'remove') {\n msgDiv.innerHTML = `${assetType} has been removed from your favorites.`;\n }\n }, 100);\n};\n\nconst updateSwatchCartStatusMessage = (action) => {\n const msgDiv = document.querySelector('.my-account-status-message');\n if (!msgDiv) {\n return;\n }\n // Clear existing message\n msgDiv.innerHTML = '';\n setTimeout(() => {\n if (action === 'add') {\n msgDiv.innerHTML = 'Swatch has been added to your swatch cart.';\n }\n if (action === 'remove') {\n msgDiv.innerHTML = 'Swatch has been removed from your swatch cart.';\n }\n }, 100);\n};\n\nconst updateAccountIconStatus = () => {\n if (!window.isAuthenticated) {\n return;\n }\n hasAssets((data) => {\n if (data['has-assets']) {\n showNavIndicator(true);\n } else {\n showNavIndicator(false);\n }\n });\n};\n\nexport {\n updateAccountIconStatus,\n updateAccountStatusMessage,\n updateSwatchCartStatusMessage,\n};\n/* eslint-enable no-console */\n","/* eslint-disable no-console */\n\nconst validateByType = (type, val) => {\n // console.log(`${type}, ${val}`);\n let status;\n switch (type) {\n case 'text':\n status = val !== '';\n break;\n case 'phone':\n status = new RegExp(/^(\\+\\d{1,2}\\s)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}$/).test(val);\n break;\n case 'zipcode':\n status = new RegExp(/(^\\d{5}(-\\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$)/).test(val);\n break;\n case 'email':\n /* eslint-disable no-useless-escape */\n status = new RegExp(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/).test(val);\n /* eslint-enable no-useless-escape */\n break;\n case 'password':\n status = new RegExp(/^(?=.*[a-z])(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})/).test(val); /* eslint-disable-line no-useless-escape */\n break;\n default:\n break;\n }\n return status;\n};\n\n// Format phone as xxx xxx xxxx\nconst formatPhone = (s) => {\n if (s !== null && s !== undefined && s !== '') {\n if (s.match(new RegExp(/\\d/g) || []) !== null) {\n const arr = s.match(new RegExp(/\\d/g) || []).join('');\n return `${arr.substring(0, 3)}-${arr.substring(3, 6)}-${arr.substring(6)}`;\n }\n return s;\n }\n return s;\n};\n\nconst validate = (form) => {\n // Identify all fields with a validate attribute in form (will be on the label for the input/submit)\n const fieldList = form.querySelectorAll('[validate]');\n const fieldErrorList = [];\n let field;\n let isValid;\n let required;\n let isFormValid = true;\n for (let i = 0; i < fieldList.length; i++) { /* eslint-disable-line no-plusplus */\n field = fieldList[i];\n isValid = true;\n required = field.getAttribute('required') !== null;\n // If value is required, run against validation OR\n if (required) {\n isValid = validateByType(field.getAttribute('validate'), field.value);\n }\n // If value isn't required but value has been entered that requires validation, then run\n if (!required && field.value !== '' && field.getAttribute('validate') !== 'text') {\n isValid = validateByType(field.getAttribute('validate'), field.value);\n }\n // Mark form as invalid\n const fieldWrapper = form.querySelector(`[for=\"${field.id}\"]`).parentNode;\n const fieldError = fieldWrapper.querySelector('.text-danger');\n if (!isValid) {\n isFormValid = isValid;\n // Toggle error class on element label\n fieldWrapper.classList.add('ValidationFail');\n if (fieldError) {\n fieldError.classList.add('field-validation-error');\n fieldError.classList.remove('field-validation-valid');\n }\n fieldErrorList.push(field);\n } else {\n fieldWrapper.classList.remove('ValidationFail');\n if (fieldError) {\n fieldError.classList.remove('field-validation-error');\n fieldError.classList.add('field-validation-valid');\n }\n }\n }\n if (fieldErrorList.length > 0) {\n fieldErrorList[0].focus();\n }\n return isFormValid;\n};\n\nconst removeAllErrors = (form) => {\n const fieldList = form.querySelectorAll('[validate]');\n for (let i = 0; i < fieldList.length; i++) { /* eslint-disable-line no-plusplus */\n const field = fieldList[i];\n const fieldWrapper = form.querySelector(`[for=\"${field.id}\"]`).parentNode;\n const fieldError = fieldWrapper.querySelector('.text-danger');\n fieldWrapper.classList.remove('ValidationFail');\n if (fieldError) {\n fieldError.classList.remove('field-validation-error');\n fieldError.classList.add('field-validation-valid');\n }\n }\n};\n\nconst addRequiredAttrs = (form) => {\n const inputList = form.querySelectorAll('input[type=\"text\"], input[type=\"password\"], textarea');\n for (let i = 0; i < inputList.length; i++) { /* eslint-disable-line no-plusplus */\n inputList[i].setAttribute('required', 'required');\n }\n};\n\nconst removeRequiredAttrs = (form) => {\n const inputList = form.querySelectorAll('input[type=\"text\"], input[type=\"password\"], textarea');\n for (let i = 0; i < inputList.length; i++) { /* eslint-disable-line no-plusplus */\n inputList[i].removeAttribute('required');\n }\n};\n\nconst clearInputValues = (form) => {\n const inputList = form.querySelectorAll('input[type=\"text\"], input[type=\"password\"], textarea');\n for (let i = 0; i < inputList.length; i++) { /* eslint-disable-line no-plusplus */\n inputList[i].value = '';\n }\n};\nconst resetSelectValues = (form) => {\n const selectList = form.querySelectorAll('select');\n for (let i = 0; i < selectList.length; i++) { /* eslint-disable-line no-plusplus */\n const select = selectList[i];\n const firstOption = select.querySelector('option:first-child');\n if (firstOption) {\n selectList[i].value = firstOption.value;\n }\n }\n};\n\nconst positionWindowAtFormElement = (options) => {\n let position = 0;\n if (options.element) {\n // console.log(`form-validation-utils.js, positionWindowAtFormElement, ${options.element.offsetTop}`);\n position = options.element.offsetTop;\n }\n if (options.position) {\n position = options.position; /* eslint-disable-line prefer-destructuring */\n }\n let offset = options.offset; /* eslint-disable-line prefer-destructuring */\n if (!offset) {\n offset = 0;\n }\n window.scrollTo({\n top: position + offset,\n behavior: 'smooth',\n });\n};\n\nconst init = () => {};\n\n/* eslint-enable no-console */\n\nexport {\n addRequiredAttrs,\n clearInputValues,\n init,\n validate,\n formatPhone,\n positionWindowAtFormElement,\n removeAllErrors,\n removeRequiredAttrs,\n resetSelectValues,\n validateByType,\n};\n","/* eslint-disable no-console */\nimport { updateAccountIconStatus } from './consumer-account/account-status-helpers';\nimport { getAccountData } from './consumer-account/account-api';\n\nconst swatchbookLsObj = 'horizons_swbk';\nlet swatchbookData;\n\nconst getItemById = (id) => {\n if (!swatchbookData) {\n swatchbookData = getSwatchbookData(); /* eslint-disable-line no-use-before-define */\n }\n const item = swatchbookData.items.find(saved => saved.id === id);\n if (item !== undefined) {\n return item;\n }\n return null;\n};\n\n// We're only saving the portion of the url AFTER springswindowfashions/\nconst getTruncatedWidenUrl = (url) => {\n if (url.indexOf('springswindowfashions/') !== -1) {\n return url.split('springswindowfashions/')[1];\n }\n return url;\n};\n\nconst isEmpty = () => {\n if (swatchbookData.items.length === 0) {\n return true;\n }\n return false;\n};\n\nconst updateNavIcon = () => {\n // Do not update icon if window.isAuthenticated = false\n if (!window.isAuthenticated) {\n return;\n }\n const icon = document.querySelector('.my-account-item');\n const addedClass = 'items-added-to-swatchbook';\n if (icon === null) {\n return;\n }\n if (isEmpty()) {\n icon.classList.remove(addedClass);\n } else {\n icon.classList.add(addedClass);\n }\n};\n\nconst getSwatchbookData = () => {\n let data = JSON.parse(window.localStorage.getItem(swatchbookLsObj));\n if (data === null) {\n // Set up an empty data object\n data = { items: [], cart: [] };\n }\n return data;\n};\n\nconst getUserData = (callback) => {\n getAccountData(callback);\n};\n\nconst saveItem = (options) => {\n switch (options.type) {\n case 'swatch':\n break;\n case 'photo':\n options.id = window.widenUtils.getIdFromAssetUrl(options.imageUrl);\n break;\n case 'location':\n options.id = 'dealer';\n break;\n default:\n break;\n }\n if (getItemById(options.id) !== null) {\n console.log(`${options.id} already in swatchbook.`);\n return;\n }\n // Add timestamp\n options.page = window.location.href;\n options.dateSaved = Date.now();\n swatchbookData.items.push(options);\n window.localStorage.setItem(swatchbookLsObj, JSON.stringify(swatchbookData));\n updateAccountIconStatus();\n\n if (options.type === 'photo' && options.description == null) {\n window.widenUtils.setAssetCaption(options.id, options.imageUrl);\n }\n};\n\nconst removeItem = (type, val) => {\n let id;\n switch (type) {\n case 'swatch':\n id = val;\n break;\n case 'photo':\n id = window.widenUtils.getIdFromAssetUrl(val);\n break;\n case 'location':\n id = val;\n break;\n case 'visualization':\n id = val;\n break;\n default:\n break;\n }\n const at = swatchbookData.items.findIndex(saved => saved.id === id);\n if (at !== undefined) {\n // Remove item\n swatchbookData.items.splice(at, 1);\n console.log(`${id} removed from swatchbook.`);\n // Update data object in storage\n window.localStorage.setItem(swatchbookLsObj, JSON.stringify(swatchbookData));\n }\n updateAccountIconStatus();\n};\n\nconst getAllOfType = (type) => {\n if (swatchbookData === null || !swatchbookData) {\n return [];\n }\n if (!swatchbookData.items) {\n return [];\n }\n const arr = swatchbookData.items.filter(item => item.type === type);\n return arr;\n};\n\nconst saveSwatchbookItem = (options) => {\n /* if (options.type === 'swatch') {\n options.modalData = encodeSwatchModalTableDataById(options.id);\n } */\n if (getItemById(options.id) === null) {\n options.page = window.location.href;\n options.dateSaved = Date.now();\n swatchbookData.items.push(options);\n window.localStorage.setItem(swatchbookLsObj, JSON.stringify(swatchbookData));\n updateNavIcon();\n }\n};\n\nconst removeSwatchbookItem = (options) => {\n let id;\n switch (options.type) {\n case 'swatch':\n id = options.value;\n break;\n case 'photo':\n id = options.value;\n break;\n default:\n break;\n }\n const at = swatchbookData.items.findIndex(saved => saved.id === id);\n if (at !== undefined) {\n // Remove item\n swatchbookData.items.splice(at, 1);\n // Update data object in storage\n window.localStorage.setItem(swatchbookLsObj, JSON.stringify(swatchbookData));\n }\n updateNavIcon();\n};\n\nconst localStorageSwatchEventHandlers = (item) => {\n const id = item.getAttribute('id');\n const btn = item.querySelector('.swatchbutton');\n const label = item.querySelector('.swatchbutton--label');\n if (btn) {\n // Toggle button to remove state if in swatchbook\n if (getItemById(id) !== null) {\n btn.classList.add('is-active');\n label.innerHTML = 'Remove Swatch';\n } else {\n btn.classList.remove('is-active');\n label.innerHTML = 'Add Swatch';\n }\n // Add/remove swatch event handlers\n btn.addEventListener('click', (event) => {\n event.stopPropagation();\n // Remove\n if (btn.classList.toString().indexOf('is-active') !== -1) {\n removeSwatchbookItem({\n type: 'swatch',\n value: id,\n });\n btn.classList.remove('is-active');\n label.innerHTML = 'Add Swatch';\n // Add\n } else {\n const data = {\n collection: btn.getAttribute('data-collection'),\n colorName: btn.getAttribute('data-colorName'),\n colorNumber: btn.getAttribute('data-colorNumber'),\n id: btn.getAttribute('data-id'),\n imageUrl: btn.getAttribute('data-imageUrl'),\n productLine: btn.getAttribute('data-productLine'),\n productLineCode: btn.getAttribute('data-productLineCode'),\n styleId: btn.getAttribute('data-styleId'),\n swatchCatId: btn.getAttribute('data-swatchCatId'),\n swatchCatName: btn.getAttribute('data-swatchCatName'),\n swatchColorNumber: btn.getAttribute('data-swatchColorNumber'),\n swatchStyleName: btn.getAttribute('data-swatchStyleName'),\n swatchId: btn.getAttribute('data-swatchId'),\n newSwatch: btn.getAttribute('data-new-swatch'),\n displayMessage: btn.getAttribute('data-display-message'),\n type: btn.getAttribute('data-type'),\n widenUrl: getTruncatedWidenUrl(btn.getAttribute('data-imageUrl')),\n };\n saveSwatchbookItem(data);\n btn.classList.add('is-active');\n label.innerHTML = 'Remove Swatch';\n }\n });\n }\n};\n\nconst addSwatchToCart = (id) => {\n if (getSwatchbookData === null) {\n init(); /* eslint-disable-line no-use-before-define */\n }\n if (swatchbookData.cart.indexOf(id) === -1) {\n swatchbookData.cart.push(id);\n window.localStorage.setItem(swatchbookLsObj, JSON.stringify(swatchbookData));\n }\n};\n\nconst removeSwatchFromCart = (id) => {\n const at = swatchbookData.cart.findIndex(saved => saved === id);\n if (at !== -1) {\n // Remove item\n swatchbookData.cart.splice(at, 1);\n // Update data object in storage\n window.localStorage.setItem(swatchbookLsObj, JSON.stringify(swatchbookData));\n }\n};\n\nconst clearSwatchbook = () => {\n if (swatchbookData === null) {\n return;\n }\n swatchbookData.items = [];\n window.localStorage.setItem(swatchbookLsObj, JSON.stringify(swatchbookData));\n};\n\nconst clearCart = () => {\n if (swatchbookData === null) {\n return;\n }\n swatchbookData.cart = [];\n window.localStorage.setItem(swatchbookLsObj, JSON.stringify(swatchbookData));\n};\n\nconst getCartData = () => {\n if (swatchbookData === null) {\n return [];\n }\n return swatchbookData.cart;\n};\n\n\nconst clearOrderData = () => {\n swatchbookData.cart = [];\n window.localStorage.setItem(swatchbookLsObj, JSON.stringify(swatchbookData));\n};\n\nconst destroy = () => {\n swatchbookData = null;\n};\n\nconst clearAllSwatchbookData = () => {\n if (!swatchbookData) {\n swatchbookData = getSwatchbookData();\n }\n clearOrderData();\n clearSwatchbook();\n destroy();\n};\n\nconst init = () => {\n swatchbookData = getSwatchbookData();\n updateAccountIconStatus();\n};\n\nconst getProductDetailsPageUrl = (productLineId, callback) => {\n const requestUrl = `/GetProductDetailsUrl?productLineId=${productLineId}`;\n const request = new XMLHttpRequest();\n request.open('GET', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callback) {\n callback(responseData.url);\n }\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n request.send();\n};\n\nconst getSwatchProductUrlParams = (productName, callback) => {\n // If visualizer isn't active immediately run the callback method\n if (!window.isVisualizerActive) {\n callback();\n return;\n }\n // console.log(productName.toLowerCase());\n // Pass product name (lc) to get visualization url params...\n const requestUrl = `/GetVisualizationProperties?pagename=${productName.toLowerCase()}`;\n const request = new XMLHttpRequest();\n request.open('GET', requestUrl, true);\n request.setRequestHeader('Content-type', 'application/json');\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n const responseData = JSON.parse(request.responseText);\n if (callback) {\n callback({\n visualizerModelId: responseData.VisualizerModelId,\n visualizerProgamFamilyName: responseData.VisualizerProgramFamilyName,\n });\n }\n }\n };\n request.onerror = () => {\n console.log('error');\n };\n if (window.localTesting) {\n request.onloadend = () => {\n if (callback) {\n let testData = {\n visualizerModelId: null,\n visualizerProgamFamilyName: null,\n };\n if (productName.indexOf('Cellular Shades') !== -1) {\n testData = {\n visualizerModelId: 'CELL',\n visualizerProgamFamilyName: 'CELL',\n };\n }\n callback(testData);\n }\n };\n }\n request.send();\n};\n\nexport {\n saveItem,\n removeItem,\n getTruncatedWidenUrl,\n saveSwatchbookItem,\n removeSwatchbookItem,\n localStorageSwatchEventHandlers,\n addSwatchToCart,\n removeSwatchFromCart,\n getSwatchbookData,\n getItemById,\n getAllOfType,\n getUserData,\n clearAllSwatchbookData,\n getCartData,\n clearCart,\n clearOrderData,\n clearSwatchbook,\n getSwatchProductUrlParams,\n getProductDetailsPageUrl,\n init,\n destroy,\n};\n/* eslint-enable no-console */\n","/* eslint-disable no-console */\nimport { clearAllSwatchbookData, getAllOfType } from '../swatchbook-utils';\nimport { login, logout, addSwatches } from './account-api';\nimport { openAccountModal, closeAccountModal } from './account-modal';\nimport { addCreateAccountCallbacks, resetCreateAccountForm } from './create-account';\nimport { updateAccountIconStatus } from './account-status-helpers';\nimport { validate } from '../../utils/form-validation-utils';\n\nlet initialLanuch = true;\n\nconst loginModalId = 'acct-login-modal';\n\nconst onLoginSubmit = (event, callbacks) => {\n event.preventDefault();\n const modalForm = document.querySelector('.acct-login-modal-form');\n const modalErrorMsg = modalForm.querySelector('.form-error-message');\n if (validate(modalForm)) {\n modalErrorMsg.classList.add('hide');\n let remember = false;\n if (document.querySelectorAll('#modalAcctRememberMe:checked').length === 1) {\n remember = true;\n }\n login(\n {\n username: document.getElementById('modalAcctUsername').value,\n password: document.getElementById('modalAcctPassword').value,\n rememberMe: remember,\n },\n {\n onSuccess: (data) => {\n // console.log(data);\n if (!data.success) {\n modalErrorMsg.classList.remove('hide');\n } else {\n window.isAuthenticated = true;\n window.userId = data['user-id'];\n checkLoginStatus(() => { /* eslint-disable-line no-use-before-define */\n if (callbacks) {\n if (callbacks.onLoginSuccess) {\n callbacks.onLoginSuccess();\n }\n }\n });\n const modal = document.querySelector(`#${loginModalId}`);\n closeAccountModal(modal);\n }\n },\n onError: () => {\n if (!callbacks) {\n return;\n }\n if (callbacks.onLoginFail) {\n callbacks.onLoginFail();\n }\n },\n },\n );\n }\n};\n\nconst onModalClose = (event, callback) => {\n if (callback) {\n callback();\n }\n};\n\nconst onModalButtonClick = (event) => {\n // User is already logged in and for some reason this\n // event handler has not been removed.\n if (window.isAuthenticated) {\n return;\n }\n event.preventDefault();\n launchLoginModal({ /* eslint-disable-line no-use-before-define */\n type: '',\n callbacks: {\n onLoginSuccess: () => {\n window.location = window.myFavoritesUrl;\n },\n onLoginFail: () => {\n //\n },\n },\n });\n};\n\nconst onLogoutButtonClick = (event) => {\n event.preventDefault();\n logout({\n onSuccess: () => {\n clearAllSwatchbookData();\n window.location = window.loginUrl;\n },\n });\n};\n\nconst addLogoutEventHandlers = () => {\n const logoutBtns = document.querySelectorAll('a[href=\"/logout\"], a[href=\"/logout/\"]');\n if (logoutBtns) {\n [].map.call(logoutBtns, btn => btn.addEventListener('click', onLogoutButtonClick));\n }\n};\n\nconst removeModalEventHandlers = () => {\n const modalBtns = document.querySelectorAll('.acct-login-modal-btn');\n // console.log('login.js, removeModalEventHandlers');\n // console.log(modalBtns);\n if (modalBtns) {\n [].map.call(modalBtns, btn => btn.removeEventListener('click', onModalButtonClick));\n }\n};\n\nconst addModalEventHandlers = () => {\n const modalBtns = document.querySelectorAll('.acct-login-modal-btn');\n // console.log('login.js, addModalEventHandlers');\n // console.log(modalBtns);\n if (modalBtns) {\n [].map.call(modalBtns, btn => btn.addEventListener('click', onModalButtonClick));\n }\n};\n\nconst checkLoginStatus = (callback) => {\n // console.log(`login.js, checkLoginStatus, isAuthenticated: ${window.isAuthenticated}`);\n const body = document.getElementsByTagName('body')[0];\n if (window.isAuthenticated) {\n body.classList.add('is-authenticated');\n removeModalEventHandlers();\n addLogoutEventHandlers();\n // Check to see if there are any swatches in localstorage\n const localStorageData = getAllOfType('swatch');\n if (localStorageData.length !== 0) {\n addSwatches(localStorageData, {\n onSuccess: () => {\n clearAllSwatchbookData();\n updateAccountIconStatus();\n if (callback) {\n callback();\n }\n },\n onError: () => {\n updateAccountIconStatus();\n if (callback) {\n callback();\n }\n },\n });\n } else {\n updateAccountIconStatus();\n if (callback) { /* eslint-disable-line no-lonely-if */\n callback();\n }\n }\n } else {\n body.classList.remove('is-authenticated');\n addModalEventHandlers();\n updateAccountIconStatus();\n }\n};\n\nconst toggleCreateAccountForm = (isVisible) => {\n const modal = document.getElementById(loginModalId);\n if (isVisible) {\n modal.querySelector('.account-login-container').classList.add('hidden');\n // modal.querySelector('.login-side-column').classList.add('hidden');\n modal.querySelector('.create-account-container').classList.remove('hidden');\n // modal.querySelector('.create-account-side-column').classList.remove('hidden');\n if (modal.querySelectorAll('.login-message-wrapper').length !== 0) {\n modal.querySelector('.login-message-wrapper').classList.add('hidden');\n }\n modal.style.height = '600px';\n } else {\n modal.querySelector('.account-login-container').classList.remove('hidden');\n // modal.querySelector('.login-side-column').classList.remove('hidden');\n modal.querySelector('.create-account-container').classList.add('hidden');\n // modal.querySelector('.create-account-side-column').classList.add('hidden');\n modal.removeAttribute('style');\n if (modal.querySelectorAll('.login-message-wrapper').length !== 0) {\n modal.querySelector('.login-message-wrapper').classList.remove('hidden');\n }\n }\n};\n\nconst launchLoginModal = (options) => {\n // Reset modal\n toggleCreateAccountForm();\n resetCreateAccountForm({\n form: document.querySelector('.modal-acct-create-form'),\n });\n const {\n type,\n callbacks,\n } = options;\n const modal = document.getElementById(loginModalId);\n if (type) {\n modal.classList.add('c-modal--loginCTA');\n modal.querySelector('.login-message-wrapper').classList.remove('hidden');\n let msg = '';\n switch (type) {\n case 'swatch':\n msg = window.loginMessageSwatch;\n break;\n case 'photo':\n msg = window.loginMessagePhoto;\n break;\n case 'location':\n msg = window.loginMessageDealer;\n break;\n case 'visualization':\n msg = window.loginMessageVisualization;\n break;\n default:\n break;\n }\n modal.querySelector('.login-message-wrapper p').innerHTML = msg;\n } else {\n modal.classList.remove('c-modal--loginCTA');\n modal.querySelector('.login-message-wrapper').classList.add('hidden');\n modal.querySelector('.login-message-wrapper p').innerHTML = '';\n }\n const overlay = document.querySelector('#modal-overlay');\n openAccountModal(modal);\n // Submit modal form\n const loginSubmitBtn = modal.querySelector('.acct-login-modal-form .o-form__submit');\n const modalCloseBtn = modal.querySelector('#close-btn');\n // const toggleCreateAccountBtn = modal.querySelector('.create-account-btn');\n // Only run once\n if (initialLanuch) {\n initialLanuch = false;\n loginSubmitBtn.addEventListener('click', (event) => {\n onLoginSubmit(event, callbacks);\n });\n modalCloseBtn.addEventListener('click', (event) => {\n event.stopPropagation();\n onModalClose(event, callbacks.onLoginFail);\n });\n if (overlay) {\n overlay.addEventListener('click', event => onModalClose(event, callbacks.onLoginFail));\n }\n // Toggle create account form\n // if (type === 'visualization' || type === 'photo' || type === 'location' || type === 'swatch') {\n // Need to account for error message as well...\n [].map.call(document.querySelectorAll('.create-account-btn, .acct-login-modal-form .form-error-message a'), btn => btn.addEventListener('click', (event) => {\n event.preventDefault();\n addCreateAccountCallbacks({\n onLoginSuccess: () => {\n callbacks.onLoginSuccess();\n closeAccountModal(modal);\n },\n onLoginFail: () => {\n // console.log('onLoginFail');\n callbacks.onLoginFail();\n },\n });\n toggleCreateAccountForm(true);\n }));\n // }\n }\n};\n\nconst submitForm = (data, callbacks) => {\n login(data, callbacks);\n};\n\nconst init = () => {\n checkLoginStatus();\n};\n\nexport {\n checkLoginStatus,\n init,\n launchLoginModal,\n submitForm,\n};\n/* eslint-enable no-console */\n","import _ from 'underscore';\nimport FilterToggle from './modules/filter-toggle';\nimport Lazyload from './modules/lazyload';\nimport { updateAssetUrlDimensions } from './modules/widen-utils';\nimport { getTruncatedWidenUrl, localStorageSwatchEventHandlers, getSwatchProductUrlParams } from './modules/swatchbook-utils';\nimport { getItemsFromAccount, removeItemFromAccount, saveItemToAccount } from './modules/consumer-account/storage-actions';\nimport { updateAccountIconStatus } from './modules/consumer-account/account-status-helpers';\n\n// console.log('\\n\\n\\n*************************\\n\\nswatch-ordering.js ver: 1.1.0 \\n\\n*************************\\n\\n\\n');\n\n_.templateSettings = {\n interpolate: /\\{\\{(.+?)\\}\\}/g,\n};\n\nconst modalTemplate =\n `