UNPKG

fallwall

Version:

Fallwall.js is a jQuery plugin to make Fall Styles like Pinterest.

9 lines (8 loc) 2.69 kB
"use strict";var _extends=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r};/*! * Fallwall.js * * Copyright © 2017 Eddie Wen | MIT license * https://github.com/EddieWen-Taiwan/Fallwall.js */ !function(r,e){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=e(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],e):r?r.Fallwall=e(jQuery):window.Fallwall=e(jQuery)}(void 0,function(r){var e="down",t="up",n={GRID:".fw_grid",COLUMN:".fw_column"},o={gridNumber:20,columnNumber:1,defaultClass:"",currentGrid:0,dataArray:[]},i=function(r,t){for(var n=0;n<o.gridNumber&&r[n];n++)a(r[n],e),o.currentGrid=n;t&&("function"==typeof t?t():console.error(t+" is not a function"))},a=function(i,a){for(var d=o.html_template,u=0;u<Object.keys(i).length;u++)d=d.replace("fallwall_#"+(u+1),i[u]);var l=r(n.COLUMN).eq(f()),c=void 0;a===t?(l.prepend(d),c=l.find(n.GRID).first()):a===e&&(l.append(d),c=l.find(n.GRID).last()),o.defaultClass&&c.addClass(o.defaultClass)},f=function(){var e=[];return r.each(r(n.COLUMN),function(r,t){e.push(t.offsetHeight)}),e.indexOf(Math.min.apply(Math,e))};r.fn.fallwall=function(r,e,t,a){if(!r)throw new Error("missed HTML template");if(!e)throw new Error("missed data source");if(!Array.isArray(e)||0===e.length)throw new Error("typeof dataArray is not correct");o=_extends({},o,{html_template:"<div class='fw_grid'>"+r+"</div>",dataArray:e},t);var f="<div class='fw_column'></div>".repeat(o.columnNumber);this.append(f),this.find(n.COLUMN).css({"vertical-align":"top",display:"inline-block",width:Math.floor(1e3/o.columnNumber)/10+"%"}),i(e,a)},r.fn.loadMoreFw=function(r){if(0!==o.dataArray.length){if(o.currentGrid+1<o.dataArray.length){o.currentGrid++;for(var t=o.currentGrid+o.gridNumber,n=o.currentGrid;n<t;n++){if(!o.dataArray[n])return r&&("function"==typeof r?r():console.error(r+" is not a function")),"NO_MORE_DATA";if(a(o.dataArray[n],e),o.currentGrid=n,n===t-1)return r&&("function"==typeof r?r():console.error(r+" is not a function")),"FINISHED"}}return"NO_MORE_DATA"}},r.fn.addFwGrid=function(r,e){if("object"!==("undefined"==typeof r?"undefined":_typeof(r)))throw new Error("First parameter of addFwGrid(): "+r+" must be Object");a(r,t),e&&("function"==typeof e?e():console.error(e+" is not a function"))}}); //# sourceMappingURL=fallwall.min.js.map