{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/auto-grid/config.js","webpack:///./src/js/auto-grid/responsive_waterfall.js"],"names":["waterfall","Waterfall","containerSelector","boxSelector","minBoxWidth","root","factory","define","options","settings","Object","assign","defineProperty","get","set","value","document","querySelectorAll","forEach","item","index","columns","container","innerBoxes","boxes","Array","prototype","slice","call","compose","images","clr","imageLength","length","i","that","img","onload","clearTimeout","setTimeout","window","addEventListener","computeNumberOfColumns","num","Math","floor","clientWidth","initColumns","width","column","createElement","className","style","push","appendChild","getMinHeightIndex","min","clientHeight","columnElem","getHighestIndex","max","force","cols","colLength","removeChild","boxLength","box","addBox","elem","indexOf","columnIndex"],"mappings":";QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;ACjFA;;;;;;AADA;AAEA;AAGA,CAAC,YAAY;EACT,IAAIA,SAAS,GAAG,IAAIC,8BAAJ,CAAc;IAC1BC,iBAAiB,EAAE,OADO;IAE1BC,WAAW,EAAE,YAFa;IAG1BC,WAAW,EAAE;EAHa,CAAd,CAAhB;AAKH,CAND,I;;;;;;;;;;;;;;;;ACLA;;AAAE,WAAUC,IAAV,EAAgBC,OAAhB,EAAyB;EACvB,IAAI,IAAJ,EAAgD;IAC5C;IACAC,iCAAO,EAAD,oCAAKD,OAAL;AAAA;AAAA;AAAA,oGAAN;EACH,CAHD,MAGO,EAQN;AACJ,CAbC,aAaM,YAAY;EAChB;;EACA,IAAIL,SAAS,GAAG,SAAZA,SAAY,CAAUO,OAAV,EAAmB;IAAA;;IAC/B;;IACA;AACR;AACA;AACA;IACQ,KAAKC,QAAL,GAAgB;MACZP,iBAAiB,EAAE,OADP;MAEZC,WAAW,EAAE,YAFD;MAGZC,WAAW,EAAE;IAHD,CAAhB,CAN+B,CAY/B;;IACAM,MAAM,CAACC,MAAP,CAAc,KAAKF,QAAnB,EAA6BD,OAA7B;IAEA,IAAIJ,WAAW,SAAf;IACAM,MAAM,CAACE,cAAP,CAAsB,IAAtB,EAA4B,aAA5B,EAA2C;MACvCC,GAAG,EAAE,eAAY;QACb,OAAOT,WAAP;MACH,CAHsC;MAIvCU,GAAG,EAAE,aAAUC,KAAV,EAAiB;QAClB,IAAIA,KAAK,GAAG,GAAZ,EAAiBA,KAAK,GAAG,GAAR;QACjB,IAAIA,KAAK,GAAG,IAAZ,EAAkBA,KAAK,GAAG,IAAR;QAElBX,WAAW,GAAGW,KAAd;MACH;IATsC,CAA3C;IAYAC,QAAQ,CAACC,gBAAT,CAA0B,KAAKR,QAAL,CAAcP,iBAAxC,EAA2DgB,OAA3D,CAAmE,UAACC,IAAD,EAAOC,KAAP,EAAiB;MAChF;MACA,KAAI,CAACC,OAAL,GAAe,EAAf,CAFgF,CAIhF;;MACA,KAAI,CAACC,SAAL,GAAiBH,IAAjB;;MACA,IAAII,UAAU,GAAG,KAAI,CAACD,SAAL,CAAeL,gBAAf,CAAgC,KAAI,CAACR,QAAL,CAAcN,WAA9C,CAAjB;;MACA,KAAI,CAACqB,KAAL,GAAa,KAAI,CAACF,SAAL,GAAiBG,KAAK,CAACC,SAAN,CAAgBC,KAAhB,CAAsBC,IAAtB,CAA2BL,UAA3B,CAAjB,GAA0D,EAAvE,CAPgF,CAQhF;;MACA,KAAI,CAACM,OAAL,GATgF,CAWhF;;;MACA,IAAIC,MAAM,GAAG,KAAI,CAACR,SAAL,CAAeL,gBAAf,CAAgC,KAAhC,CAAb;;MACA,IAAIc,GAAG,SAAP;MACA,IAAIC,WAAW,GAAGF,MAAM,CAACG,MAAzB;MACA,IAAIC,CAAC,GAAG,CAAR;MACA,IAAIC,IAAI,GAAG,KAAX;;MACA,KAAKD,CAAL,EAAQA,CAAC,GAAGF,WAAZ,EAAyBE,CAAC,EAA1B,EAA8B;QAC1B,IAAIE,GAAG,GAAGN,MAAM,CAACI,CAAD,CAAhB;;QACAE,GAAG,CAACC,MAAJ,GAAa,YAAY;UACrB,IAAIN,GAAJ,EAASO,YAAY,CAACP,GAAD,CAAZ;UACTA,GAAG,GAAGQ,UAAU,CAAC,YAAY;YACzBJ,IAAI,CAACN,OAAL,CAAa,IAAb;UACH,CAFe,EAEb,GAFa,CAAhB;QAGH,CALD;MAMH;;MAEDW,MAAM,CAACC,gBAAP,CAAwB,QAAxB,EAAkC,YAAM;QACpC,KAAI,CAACZ,OAAL;MACH,CAFD;IAGH,CA9BD;EA+BH,CA3DD,CAFgB,CA+DhB;;;EACA5B,SAAS,CAACyB,SAAV,CAAoBgB,sBAApB,GAA6C,YAAY;IACrD,IAAIC,GAAG,GAAGC,IAAI,CAACC,KAAL,CAAW,KAAKvB,SAAL,CAAewB,WAAf,GAA6B,KAAKrC,QAAL,CAAcL,WAAtD,CAAV;IACAuC,GAAG,GAAGA,GAAG,IAAI,CAAb,CAFqD,CAErC;;IAEhB,OAAOA,GAAP;EACH,CALD,CAhEgB,CAuEhB;;;EACA1C,SAAS,CAACyB,SAAV,CAAoBqB,WAApB,GAAkC,UAAUJ,GAAV,EAAe;IAC7C,IAAIA,GAAG,GAAG,CAAV,EAAa;MACT;MACA,KAAKtB,OAAL,GAAe,EAAf;MACA,IAAI2B,KAAK,GAAI,MAAML,GAAP,GAAc,GAA1B;;MACA,OAAOA,GAAG,EAAV,EAAc;QACV,IAAIM,MAAM,GAAGjC,QAAQ,CAACkC,aAAT,CAAuB,KAAvB,CAAb;QACAD,MAAM,CAACE,SAAP,GAAmB,aAAnB;QACAF,MAAM,CAACG,KAAP,CAAaJ,KAAb,GAAqBA,KAArB;QACA,KAAK3B,OAAL,CAAagC,IAAb,CAAkBJ,MAAlB;QACA,KAAK3B,SAAL,CAAegC,WAAf,CAA2BL,MAA3B;MACH;IACJ;EACJ,CAbD,CAxEgB,CAuFhB;;;EACAhD,SAAS,CAACyB,SAAV,CAAoB6B,iBAApB,GAAwC,YAAY;IAChD,IAAI,KAAKlC,OAAL,IAAgB,KAAKA,OAAL,CAAaY,MAAb,GAAsB,CAA1C,EAA6C;MACzC,IAAIuB,GAAG,GAAG,KAAKnC,OAAL,CAAa,CAAb,EAAgBoC,YAA1B;MAAA,IAAwCrC,KAAK,GAAG,CAAhD;;MACA,KAAK,IAAIc,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKb,OAAL,CAAaY,MAAjC,EAAyCC,CAAC,EAA1C,EAA8C;QAC1C,IAAIwB,UAAU,GAAG,KAAKrC,OAAL,CAAaa,CAAb,CAAjB;;QACA,IAAIwB,UAAU,CAACD,YAAX,GAA0BD,GAA9B,EAAmC;UAC/BA,GAAG,GAAGE,UAAU,CAACD,YAAjB;UACArC,KAAK,GAAGc,CAAR;QACH;MACJ;;MACD,OAAOd,KAAP;IACH,CAVD,MAWK,OAAO,CAAC,CAAR;EACR,CAbD,CAxFgB,CAuGhB;;;EACAnB,SAAS,CAACyB,SAAV,CAAoBiC,eAApB,GAAsC,YAAY;IAC9C,IAAI,KAAKtC,OAAL,IAAgB,KAAKA,OAAL,CAAaY,MAAb,GAAsB,CAA1C,EAA6C;MACzC,IAAI2B,GAAG,GAAG,KAAKvC,OAAL,CAAa,CAAb,EAAgBoC,YAA1B;MAAA,IAAwCrC,KAAK,GAAG,CAAhD;;MACA,KAAK,IAAIc,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKb,OAAL,CAAaY,MAAjC,EAAyCC,CAAC,EAA1C,EAA8C;QAC1C,IAAIwB,UAAU,GAAG,KAAKrC,OAAL,CAAaa,CAAb,CAAjB;;QACA,IAAIwB,UAAU,CAACD,YAAX,GAA0BG,GAA9B,EAAmC;UAC/BA,GAAG,GAAGF,UAAU,CAACD,YAAjB;UACArC,KAAK,GAAGc,CAAR;QACH;MACJ;;MACD,OAAOd,KAAP;IACH,CAVD,MAWK,OAAO,CAAC,CAAR;EACR,CAbD,CAxGgB,CAuHhB;;;EACAnB,SAAS,CAACyB,SAAV,CAAoBG,OAApB,GAA8B,UAAUgC,KAAV,EAAiB;IAC3C,IAAIlB,GAAG,GAAG,KAAKD,sBAAL,EAAV;IACA,IAAIoB,IAAI,GAAG,KAAKzC,OAAL,CAAaY,MAAxB;;IACA,IAAI4B,KAAK,IAAIlB,GAAG,KAAKmB,IAArB,EAA2B;MACvB;MACA,IAAI5B,CAAC,GAAG,CAAR;MACA,IAAI6B,SAAS,GAAG,KAAK1C,OAAL,CAAaY,MAA7B;;MACA,KAAKC,CAAL,EAAQA,CAAC,GAAG6B,SAAZ,EAAuB7B,CAAC,EAAxB,EAA4B;QACxB,IAAIwB,UAAU,GAAG,KAAKrC,OAAL,CAAaa,CAAb,CAAjB;QACA,KAAKZ,SAAL,CAAe0C,WAAf,CAA2BN,UAA3B;MACH,CAPsB,CASvB;;;MACA,KAAKX,WAAL,CAAiBJ,GAAjB,EAVuB,CAYvB;;MACA,IAAIsB,SAAS,GAAG,KAAKzC,KAAL,CAAWS,MAA3B;;MACA,KAAK,IAAIC,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAG+B,SAApB,EAA+B/B,EAAC,EAAhC,EAAoC;QAChC,IAAIgC,GAAG,GAAG,KAAK1C,KAAL,CAAWU,EAAX,CAAV;QACA,KAAKiC,MAAL,CAAYD,GAAZ;MACH;IACJ;EACJ,CAtBD,CAxHgB,CAgJhB;;;EACAjE,SAAS,CAACyB,SAAV,CAAoByC,MAApB,GAA6B,UAAUC,IAAV,EAAgB;IACzC;IACA,IAAI,KAAK5C,KAAL,CAAW6C,OAAX,CAAmBD,IAAnB,IAA2B,CAA/B,EAAkC,KAAK5C,KAAL,CAAW6B,IAAX,CAAgBe,IAAhB;IAElC,IAAIE,WAAW,GAAG,KAAKf,iBAAL,EAAlB;;IACA,IAAIe,WAAW,GAAG,CAAC,CAAnB,EAAsB;MAClB,IAAIrB,MAAM,GAAG,KAAK5B,OAAL,CAAaiD,WAAb,CAAb;MACArB,MAAM,CAACK,WAAP,CAAmBc,IAAnB;IACH;EACJ,CATD;;EAWA,OAAOnE,SAAP;AACH,CA1KC,CAAD,C","file":"auto-grid.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 = 2);\n","// use querySelector/querySelectorAll internally\r\nimport Waterfall from './responsive_waterfall';\r\n// import Waterfall from './responsive_waterfall-BACKUP';\r\n\r\n\r\n(function () {\r\n var waterfall = new Waterfall({\r\n containerSelector: '.wall',\r\n boxSelector: '.wall-item',\r\n minBoxWidth: 333\r\n });\r\n})();\r\n",";(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define([], factory);\r\n } else if (typeof module === 'object' && module.exports) {\r\n // Node. Does not work with strict CommonJS, but\r\n // only CommonJS-like environments that support module.exports,\r\n // like Node.\r\n module.exports = factory();\r\n } else {\r\n // Browser globals (root is window)\r\n root['Waterfall'] = factory();\r\n }\r\n}(this, function () {\r\n 'use strict';\r\n var Waterfall = function (options) {\r\n // define property\r\n /**\r\n * Defining default settings\r\n * @type {{containerSelector: string, boxSelector: string, minBoxWidth: number}}\r\n */\r\n this.settings = {\r\n containerSelector: '.wall',\r\n boxSelector: '.wall-item',\r\n minBoxWidth: 333\r\n };\r\n\r\n // merging default settings with passed options\r\n Object.assign(this.settings, options);\r\n\r\n let minBoxWidth;\r\n Object.defineProperty(this, 'minBoxWidth', {\r\n get: function () {\r\n return minBoxWidth;\r\n },\r\n set: function (value) {\r\n if (value < 100) value = 100;\r\n if (value > 1000) value = 1000;\r\n\r\n minBoxWidth = value;\r\n }\r\n });\r\n\r\n document.querySelectorAll(this.settings.containerSelector).forEach((item, index) => {\r\n // init properties\r\n this.columns = [];\r\n\r\n // Logic starts\r\n this.container = item;\r\n let innerBoxes = this.container.querySelectorAll(this.settings.boxSelector);\r\n this.boxes = this.container ? Array.prototype.slice.call(innerBoxes) : [];\r\n // compose once in constructor\r\n this.compose();\r\n\r\n // handle the image or something which might change size after loaded\r\n let images = this.container.querySelectorAll('img');\r\n let clr;\r\n let imageLength = images.length;\r\n let i = 0;\r\n let that = this;\r\n for (i; i < imageLength; i++) {\r\n let img = images[i];\r\n img.onload = function () {\r\n if (clr) clearTimeout(clr);\r\n clr = setTimeout(function () {\r\n that.compose(true);\r\n }, 500);\r\n }\r\n }\r\n\r\n window.addEventListener('resize', () => {\r\n this.compose();\r\n });\r\n });\r\n };\r\n\r\n // compute the number of columns under current setting\r\n Waterfall.prototype.computeNumberOfColumns = function () {\r\n let num = Math.floor(this.container.clientWidth / this.settings.minBoxWidth);\r\n num = num || 1; // at least one column\r\n\r\n return num;\r\n };\r\n\r\n // init enough columns and set the width\r\n Waterfall.prototype.initColumns = function (num) {\r\n if (num > 0) {\r\n // create column div\r\n this.columns = [];\r\n let width = (100 / num) + '%';\r\n while (num--) {\r\n let column = document.createElement('div');\r\n column.className = 'wall-column';\r\n column.style.width = width;\r\n this.columns.push(column);\r\n this.container.appendChild(column);\r\n }\r\n }\r\n };\r\n\r\n // get the index of shortest column\r\n Waterfall.prototype.getMinHeightIndex = function () {\r\n if (this.columns && this.columns.length > 0) {\r\n var min = this.columns[0].clientHeight, index = 0;\r\n for (var i = 1; i < this.columns.length; i++) {\r\n var columnElem = this.columns[i];\r\n if (columnElem.clientHeight < min) {\r\n min = columnElem.clientHeight;\r\n index = i;\r\n }\r\n }\r\n return index;\r\n }\r\n else return -1;\r\n };\r\n\r\n // get the index of highset column\r\n Waterfall.prototype.getHighestIndex = function () {\r\n if (this.columns && this.columns.length > 0) {\r\n var max = this.columns[0].clientHeight, index = 0;\r\n for (var i = 1; i < this.columns.length; i++) {\r\n var columnElem = this.columns[i];\r\n if (columnElem.clientHeight > max) {\r\n max = columnElem.clientHeight;\r\n index = i;\r\n }\r\n }\r\n return index;\r\n }\r\n else return -1;\r\n };\r\n\r\n // compose core\r\n Waterfall.prototype.compose = function (force) {\r\n let num = this.computeNumberOfColumns();\r\n let cols = this.columns.length;\r\n if (force || num !== cols) {\r\n // remove old column\r\n let i = 0;\r\n let colLength = this.columns.length;\r\n for (i; i < colLength; i++) {\r\n let columnElem = this.columns[i];\r\n this.container.removeChild(columnElem);\r\n }\r\n\r\n // init new column\r\n this.initColumns(num);\r\n\r\n // compose\r\n let boxLength = this.boxes.length;\r\n for (let i = 0; i < boxLength; i++) {\r\n let box = this.boxes[i];\r\n this.addBox(box);\r\n }\r\n }\r\n };\r\n\r\n // add a new box to grid\r\n Waterfall.prototype.addBox = function (elem) {\r\n // push if new box\r\n if (this.boxes.indexOf(elem) < 0) this.boxes.push(elem);\r\n\r\n var columnIndex = this.getMinHeightIndex();\r\n if (columnIndex > -1) {\r\n var column = this.columns[columnIndex];\r\n column.appendChild(elem);\r\n }\r\n };\r\n\r\n return Waterfall;\r\n}));\r\n"],"sourceRoot":""}