{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/src/js/swatches.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","Swatches","this","state","activeSwatch","element","code","description","img","statusMessage","activeCollection","id","subnav","tab","activeSubCollection","selectedSwatches","defaultSwatchSelected","limit","list","warning","getSwatchData","getAttribute","getActiveTabFromId","collectionBtns","length","btn","document","querySelectorAll","collectionDropdown","getElementById","subCollectionDropdown","swatchBtns","checkboxes","prevBtns","nextBtns","map","addEventListener","data","hasSubnav","classList","contains","subnavBtn","subnavBtnList","subnavBtn1","subnavBtn1PanelId","subnavBtn1Panel","setAttribute","removeAttribute","setState","updateCollection","updateCollectionDropdown","updateSubnavContent","event","target","updateCollectionTabs","updateSubCollectionTabs","updateSwatch","input","getState","checked","window","alert","inputList","manageSelectedSwatches","swatch","getPreviousSwatchInDom","getNextSwatchInDom","options","maxSelections","selectedCollection","keys","forEach","key1","key2","getActiveSubCollectionDiv","getSwatch","collection","swatchList","getActiveCollectionDiv","at","closest","parentNode","swatchCards","card","remove","add","detailImg","querySelector","src","alt","labelWrapper","textContent","descWrapper","statusWrapper","innerHTML","getFirstSwatchInDom","find","item","filter","arr","push","substring","indexOf","collectionSubnavs","selectedPanel","isSubnav","subnavBtns"],"mappings":"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","file":"swatches.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 = 0);\n","/* eslint-disable no-console */\nexport default class Swatches {\n constructor() {\n this.state = {\n activeSwatch: {\n element: '',\n code: '',\n description: '',\n img: '',\n name: '',\n statusMessage: '',\n },\n activeCollection: {\n element: '',\n id: '',\n subnav: false,\n tab: '',\n },\n activeSubCollection: {\n element: '',\n id: '',\n tab: '',\n },\n selectedSwatches: {\n defaultSwatchSelected: false,\n limit: 0,\n list: [],\n warning: '',\n },\n };\n\n this.getSwatchData = element => (\n {\n element,\n code: element.getAttribute('data-colorcode'),\n description: element.getAttribute('data-description'),\n img: element.getAttribute('data-detailimg'),\n name: element.getAttribute('data-colorname'),\n statusMessage: element.getAttribute('data-statusmessage'),\n }\n );\n\n this.getActiveTabFromId = (id, collectionBtns) => {\n for (let i = 0; i < collectionBtns.length; i++) { /* eslint-disable-line no-plusplus */\n const btn = collectionBtns[i];\n const contentId = btn.getAttribute('aria-controls');\n if (contentId === id) {\n return btn;\n }\n }\n return null;\n };\n // Event handlers for all buttons on swatches page\n const swatchSelector = '.fabric-swatches .swatch-details-btn';\n const collectionBtns = document.querySelectorAll('.fabric-collection-nav button');\n const collectionDropdown = document.getElementById('AwningFabric');\n const subCollectionDropdown = document.getElementById('FabricSubCollection');\n const swatchBtns = document.querySelectorAll(swatchSelector);\n const checkboxes = document.querySelectorAll('.fabric-swatches .swatch-checkbox input');\n const prevBtns = document.querySelectorAll('.button-previous');\n const nextBtns = document.querySelectorAll('.button-next');\n // Event handler for collections (main/sub-collections)\n [].map.call(collectionBtns, btn => (\n btn.addEventListener('click', () => {\n let data = {};\n const id = btn.getAttribute('aria-controls');\n // Check whether button is in main nav, and contains a subnav\n const hasSubnav = btn.getAttribute('data-subnav');\n // Check whether button is in main nav/subnav\n const isSubnav = btn.classList.contains('button-subnav');\n if (isSubnav) {\n data = {\n activeSubCollection: {\n element: document.getElementById(id),\n id,\n tab: btn,\n },\n };\n } else if (hasSubnav) {\n // Get first subnav collection tab\n // Set tab to active\n // Display first tab's panel\n const subnavBtnList = document.querySelectorAll(`#${hasSubnav} button`);\n let subnavBtn1 = null;\n let subnavBtn1PanelId = '';\n let subnavBtn1Panel = null;\n for (let i = 0; i < subnavBtnList.length; i++) { /* eslint-disable-line no-plusplus */\n const subnavBtn = subnavBtnList[i];\n if (i === 0) {\n subnavBtn1 = subnavBtn;\n subnavBtn1.setAttribute('aria-selected', true);\n subnavBtn1PanelId = subnavBtn.getAttribute('aria-controls');\n subnavBtn1Panel = document.getElementById(subnavBtn1PanelId);\n subnavBtn1Panel.removeAttribute('hidden');\n } else {\n subnavBtn.setAttribute('aria-selected', false);\n }\n }\n data = {\n activeCollection: {\n element: document.getElementById(id),\n id,\n subnav: true,\n tab: btn,\n },\n activeSubCollection: {\n element: subnavBtn1Panel,\n id: subnavBtn1PanelId,\n tab: subnavBtn1,\n },\n };\n } else {\n data = {\n activeCollection: {\n element: document.getElementById(id),\n id,\n subnav: false,\n tab: btn,\n },\n activeSubCollection: {\n element: '',\n id: '',\n tab: '',\n },\n };\n }\n this.setState(data);\n this.updateCollection();\n this.updateCollectionDropdown(collectionDropdown);\n this.updateSubnavContent();\n })\n ));\n // Event handler for responsive main collection nav\n if (collectionDropdown) {\n collectionDropdown.addEventListener('change', (event) => {\n let data = {};\n const id = `panel-${event.target.value}`;\n const tab = this.getActiveTabFromId(id, collectionBtns);\n const hasSubnav = tab.getAttribute('data-subnav');\n let subnavBtn1 = null;\n let subnavBtn1PanelId = '';\n let subnavBtn1Panel = null;\n if (hasSubnav) {\n // Get first subnav collection tab\n // Set tab to active\n // Display first tab's panel\n const subnavBtnList = document.querySelectorAll(`#${hasSubnav} button`);\n for (let i = 0; i < subnavBtnList.length; i++) { /* eslint-disable-line no-plusplus */\n const subnavBtn = subnavBtnList[i];\n if (i === 0) {\n subnavBtn1 = subnavBtn;\n subnavBtn1.setAttribute('aria-selected', true);\n subnavBtn1PanelId = subnavBtn.getAttribute('aria-controls');\n subnavBtn1Panel = document.getElementById(subnavBtn1PanelId);\n } else {\n subnavBtn.setAttribute('aria-selected', false);\n }\n }\n data = {\n activeCollection: {\n element: document.getElementById(id),\n id,\n subnav: true,\n tab,\n },\n activeSubCollection: {\n element: subnavBtn1Panel,\n id: subnavBtn1PanelId,\n tab: subnavBtn1,\n },\n };\n } else {\n data = {\n activeCollection: {\n element: document.getElementById(id),\n id,\n subnav: false,\n tab,\n },\n };\n }\n this.setState(data);\n this.updateCollection();\n this.updateCollectionTabs(collectionBtns);\n this.updateSubnavContent();\n // Must be done AFTER updateCollectionTabs()\n if (subnavBtn1Panel) {\n subnavBtn1Panel.removeAttribute('hidden');\n }\n });\n }\n // Event handler for responsive sub-collection nav\n if (subCollectionDropdown) {\n subCollectionDropdown.addEventListener('change', (event) => {\n const id = `panel-${event.target.value}`;\n const data = {\n activeSubCollection: {\n element: document.getElementById(id),\n id,\n tab: this.getActiveTabFromId(id, collectionBtns),\n },\n };\n this.setState(data);\n this.updateCollection();\n this.updateSubCollectionTabs(collectionBtns);\n this.updateSubnavContent();\n });\n }\n // Event handler for swatches\n [].map.call(swatchBtns, btn => (\n btn.addEventListener('click', () => {\n const data = {\n activeSwatch: this.getSwatchData(btn),\n };\n this.setState(data);\n this.updateSwatch();\n })\n ));\n // Event handler for selection checkboxes (may not exist in all instances of swatches)\n [].map.call(checkboxes, input => (\n input.addEventListener('click', () => {\n const state = this.getState();\n const { selectedSwatches } = state;\n const { limit, list, warning } = selectedSwatches;\n // If limit is greater than 1, and user is over limit w/ selected swatch,\n // deselect swatch and display alert\n if (limit > 1 && list.length >= limit && input.checked) {\n window.alert(warning);\n input.checked = false;\n return;\n }\n if (limit === 1) {\n // If limit is 1, deselect any swatch across all collections\n const inputList = document.querySelectorAll('.swatch-details-btn input');\n for (let i = 0; i < inputList.length; i++) { /* eslint-disable-line no-plusplus */\n if (input !== inputList[i]) {\n inputList[i].checked = false;\n } else {\n inputList[i].checked = true;\n }\n }\n }\n const data = {\n selectedSwatches: {\n list: this.manageSelectedSwatches(input.value),\n },\n };\n this.setState(data);\n })\n ));\n // Event handler for previous buttons\n [].map.call(prevBtns, btn => (\n btn.addEventListener('click', () => {\n const swatch = this.getPreviousSwatchInDom();\n const data = {\n activeSwatch: this.getSwatchData(swatch),\n };\n this.setState(data);\n this.updateSwatch();\n })\n ));\n // Event handler for next buttons\n [].map.call(nextBtns, btn => (\n btn.addEventListener('click', () => {\n const swatch = this.getNextSwatchInDom();\n const data = {\n activeSwatch: this.getSwatchData(swatch),\n };\n this.setState(data);\n this.updateSwatch();\n })\n ));\n }\n\n init(options) {\n const {\n defaultSwatchSelected,\n maxSelections,\n selectedCollection,\n warning,\n } = options;\n // Configure for selectedCollection if not empty, or default to first nav item\n const collectionBtns = document.querySelectorAll('.fabric-collection-nav button');\n const data = {};\n if (collectionBtns.length > 0) {\n let btn = collectionBtns[0];\n if (selectedCollection !== '') {\n btn = document.getElementById(`tab-${selectedCollection}`);\n }\n const id = btn.getAttribute('aria-controls');\n data.activeCollection = {\n element: document.getElementById(id),\n id,\n };\n } else {\n // Assume \"active\" collection is the selectedCollection\n data.activeCollection = {\n element: document.getElementById(`panel-${selectedCollection}`),\n selectedCollection,\n };\n }\n // Configure for ability to \"select\" swatches if maxSelections is not null or greater than 0\n const limit = maxSelections !== undefined ? maxSelections : 0;\n data.selectedSwatches = {\n defaultSwatchSelected,\n limit,\n warning,\n };\n this.setState(data);\n this.updateCollection();\n }\n\n setState(data) {\n Object.keys(data).forEach((key1) => {\n if (typeof data[key1] !== 'object') {\n this.state[key1] = data[key1];\n } else {\n Object.keys(data[key1]).forEach((key2) => {\n this.state[key1][key2] = data[key1][key2];\n });\n }\n });\n }\n\n getState() {\n return this.state;\n }\n\n getActiveSubCollectionDiv() {\n const state = this.getState();\n const { activeSubCollection } = state;\n const { element } = activeSubCollection;\n return element;\n }\n\n getActiveCollectionDiv() {\n const state = this.getState();\n const { activeCollection } = state;\n const { element, subnav } = activeCollection;\n if (subnav) {\n return this.getActiveSubCollectionDiv();\n }\n return element;\n }\n\n getFirstSwatchInDom() {\n const state = this.getState();\n const { activeCollection, activeSubCollection } = state;\n const getSwatch = (collection) => {\n const { element } = collection;\n const swatchList = element.querySelectorAll('.swatch-details-btn:not(.hidden)');\n if (swatchList.length > 0) {\n return swatchList[0];\n }\n return null;\n };\n let swatch = getSwatch(activeCollection);\n if (swatch) {\n return swatch;\n }\n swatch = getSwatch(activeSubCollection);\n if (swatch) {\n return swatch;\n }\n return null;\n }\n\n getPreviousSwatchInDom() {\n const state = this.getState();\n const { activeSwatch } = state;\n const { element } = activeSwatch;\n const collection = this.getActiveCollectionDiv();\n const swatchBtns = collection.querySelectorAll('.swatch-details-btn:not(.hidden)');\n let at = 0;\n for (let i = 0; i < swatchBtns.length; i++) { /* eslint-disable-line no-plusplus */\n if (swatchBtns[i] === element) {\n at = i - 1;\n }\n }\n if (at < 0) {\n at = swatchBtns.length - 1;\n }\n return swatchBtns[at];\n }\n\n getNextSwatchInDom() {\n const state = this.getState();\n const { activeSwatch } = state;\n const { element } = activeSwatch;\n const collection = this.getActiveCollectionDiv();\n const swatchBtns = collection.querySelectorAll('.swatch-details-btn:not(.hidden)');\n let at = 0;\n for (let i = 0; i < swatchBtns.length; i++) { /* eslint-disable-line no-plusplus */\n if (swatchBtns[i] === element) {\n at = i + 1;\n }\n }\n if (at >= swatchBtns.length) {\n at = 0;\n }\n return swatchBtns[at];\n }\n\n updateSwatch() {\n const state = this.getState();\n const { activeSubCollection, activeSwatch } = state;\n const { id } = activeSubCollection;\n const {\n description,\n element,\n img,\n name,\n statusMessage,\n } = activeSwatch;\n // Update \"active collection\" to whatever the selected swatch is w/in (build awning fix)\n const collection = element.closest('.container').parentNode;\n // Check to see if activeSubCollection has an id\n // if so, update activeSubCollection instead\n let data = {\n activeCollection: {\n element: collection,\n id: collection.id,\n },\n };\n if (id !== '') {\n data = {\n activeSubCollection: {\n element: collection,\n id: collection.id,\n },\n };\n }\n this.setState(data);\n const swatchCards = collection.querySelectorAll('.swatch-details-btn');\n [].map.call(swatchCards, (card) => {\n card.classList.remove('selected');\n });\n element.classList.add('selected');\n // Detail image\n const detailImg = collection.querySelector('.product-swatch-detail img');\n if (detailImg !== null) {\n detailImg.src = img;\n detailImg.alt = `Detail of ${name} swatch texture and in-use photo product`;\n }\n // Swatch label\n const labelWrapper = collection.querySelector('.selected-swatch-name');\n if (labelWrapper !== null) {\n labelWrapper.textContent = name;\n }\n // Swatch description\n const descWrapper = collection.querySelector('.selected-swatch-description');\n if (descWrapper !== null) {\n descWrapper.textContent = description;\n }\n // Swatch status\n const statusWrapper = collection.querySelector('.selected-swatch-status-message');\n if (statusWrapper === null) {\n return;\n }\n if (statusMessage) {\n statusWrapper.innerHTML = `

${statusMessage}

`;\n statusWrapper.classList.remove('hidden');\n } else {\n statusWrapper.classList.add('hidden');\n }\n }\n\n updateCollection() {\n const swatch = this.getFirstSwatchInDom();\n if (swatch !== null) {\n this.setState({\n activeSwatch: this.getSwatchData(swatch),\n });\n this.updateSwatch();\n }\n }\n\n manageSelectedSwatches(id) {\n const state = this.getState();\n const { selectedSwatches } = state;\n const { list } = selectedSwatches;\n const isSelected = list.find(item => item === id);\n if (isSelected) {\n return list.filter(item => item !== id);\n }\n const arr = [...list];\n arr.push(id);\n return arr;\n }\n\n getSelectedSwatches() {\n const state = this.getState();\n const { selectedSwatches } = state;\n const { list } = selectedSwatches;\n return list;\n }\n\n updateCollectionTabs(collectionBtns) {\n const state = this.getState();\n const { activeCollection } = state;\n const { id } = activeCollection;\n for (let i = 0; i < collectionBtns.length; i++) { /* eslint-disable-line no-plusplus */\n const btn = collectionBtns[i];\n const contentId = btn.getAttribute('aria-controls');\n if (contentId === id) {\n // Set this tab as selected\n btn.setAttribute('aria-selected', true);\n // Show the selected panel\n document.getElementById(btn.getAttribute('aria-controls')).removeAttribute('hidden');\n } else {\n // Remove all current selected tabs\n btn.setAttribute('aria-selected', false);\n // Hide all tab panels\n document.getElementById(btn.getAttribute('aria-controls')).setAttribute('hidden', true);\n }\n }\n }\n\n updateSubCollectionTabs(collectionBtns) {\n const state = this.getState();\n const { activeSubCollection } = state;\n const { id } = activeSubCollection;\n for (let i = 0; i < collectionBtns.length; i++) { /* eslint-disable-line no-plusplus */\n const btn = collectionBtns[i];\n const contentId = btn.getAttribute('aria-controls');\n if (contentId === id) {\n // Set this tab as selected\n btn.setAttribute('aria-selected', true);\n // Show the selected panel\n document.getElementById(btn.getAttribute('aria-controls')).removeAttribute('hidden');\n } else {\n // Remove all current selected tabs\n btn.setAttribute('aria-selected', false);\n // Hide all tab panels\n document.getElementById(btn.getAttribute('aria-controls')).setAttribute('hidden', true);\n }\n }\n }\n\n updateCollectionDropdown(collectionDropdown) {\n const state = this.getState();\n const { activeCollection } = state;\n const { id } = activeCollection;\n collectionDropdown.value = id.substring(id.indexOf('-') + 1);\n }\n\n updateSubnavContent() {\n const state = this.getState();\n const { activeCollection } = state;\n const { tab } = activeCollection;\n // Hide any visible subnavs or panels related to subnavs\n const collectionSubnavs = document.querySelectorAll('.tab-subnav');\n [].map.call(collectionSubnavs, (subnav) => {\n subnav.setAttribute('hidden', 'hidden');\n });\n const selectedPanel = document.getElementById(tab.getAttribute('aria-controls'));\n const isSubnav = tab.getAttribute('data-subnav');\n if (isSubnav) {\n // Hide main collection category panel\n selectedPanel.setAttribute('hidden', 'hidden');\n // Show related subnav\n const activeSubnav = document.getElementById(isSubnav);\n activeSubnav.removeAttribute('hidden');\n } else {\n // Hide any panels associated with subnavs\n [].map.call(collectionSubnavs, (subnav) => {\n const subnavBtns = subnav.querySelectorAll('button');\n [].map.call(subnavBtns, (btn) => {\n const subnavPanel = document.getElementById(btn.getAttribute('aria-controls'));\n subnavPanel.setAttribute('hidden', 'hidden');\n });\n });\n }\n }\n}\nwindow.Swatches = Swatches;\n/* eslint-enable no-console */\n"],"sourceRoot":""}