diff --git a/dist/bricklayer-node.js b/dist/bricklayer-node.js index 3c84ea0..54e028f 100644 --- a/dist/bricklayer-node.js +++ b/dist/bricklayer-node.js @@ -81,13 +81,26 @@ var Bricklayer; this.elements = [item].concat(toArray(this.elements)); this.applyPosition('prepend', column, item); }; + Container.prototype.remove = function (item) { + var _this = this; + if (Array.isArray(item)) { + item.forEach(function (item) { return _this.remove(item); }); + return; + } + var index = this.elements.indexOf(item); + this.elements.splice(index, 1); + var column = item.closest(".bricklayer-column"); + this.applyPosition('remove', column, item); + }; Container.prototype.on = function (eventName, handler) { // eventName may be: // - breakpoint - // - afterAppend // - beforeAppend - // - afterPrepend + // - afterAppend // - beforePrepend + // - afterPrepend + // - beforeRemove + // - afterRemove this.element.addEventListener("bricklayer." + eventName, handler); return this; }; @@ -182,6 +195,10 @@ var Bricklayer; case 'prepend': column.insertBefore(item, column.firstChild); break; + case 'remove': + column.removeChild(item); + this.redraw(); + break; } trigger('after'); }; @@ -189,6 +206,23 @@ var Bricklayer; }()); Bricklayer.Container = Container; })(Bricklayer || (Bricklayer = {})); +if (!Element.prototype.matches) { + Element.prototype.matches = Element.prototype.msMatchesSelector + || Element.prototype.webkitMatchesSelector; +} +if (!Element.prototype.closest) { + Element.prototype.closest = function (selector) { + var element = this; + if (!document.documentElement.contains(element)) + return null; + do { + if (element.matches(selector)) + return element; + element = element.parentElement; + } while (element !== null); + return null; + }; +} (function (root, factory) { if (typeof define === 'function' && define.amd) { define(function () { return factory(); }); diff --git a/dist/bricklayer.js b/dist/bricklayer.js index 613e494..df2df3e 100644 --- a/dist/bricklayer.js +++ b/dist/bricklayer.js @@ -82,13 +82,26 @@ var Bricklayer; this.elements = [item].concat(toArray(this.elements)); this.applyPosition('prepend', column, item); }; + Container.prototype.remove = function (item) { + var _this = this; + if (Array.isArray(item)) { + item.forEach(function (item) { return _this.remove(item); }); + return; + } + var index = this.elements.indexOf(item); + this.elements.splice(index, 1); + var column = item.closest(".bricklayer-column"); + this.applyPosition('remove', column, item); + }; Container.prototype.on = function (eventName, handler) { // eventName may be: // - breakpoint - // - afterAppend // - beforeAppend - // - afterPrepend + // - afterAppend // - beforePrepend + // - afterPrepend + // - beforeRemove + // - afterRemove this.element.addEventListener("bricklayer." + eventName, handler); return this; }; @@ -183,6 +196,10 @@ var Bricklayer; case 'prepend': column.insertBefore(item, column.firstChild); break; + case 'remove': + column.removeChild(item); + this.redraw(); + break; } trigger('after'); }; @@ -190,6 +207,23 @@ var Bricklayer; }()); Bricklayer.Container = Container; })(Bricklayer || (Bricklayer = {})); +if (!Element.prototype.matches) { + Element.prototype.matches = Element.prototype.msMatchesSelector + || Element.prototype.webkitMatchesSelector; +} +if (!Element.prototype.closest) { + Element.prototype.closest = function (selector) { + var element = this; + if (!document.documentElement.contains(element)) + return null; + do { + if (element.matches(selector)) + return element; + element = element.parentElement; + } while (element !== null); + return null; + }; +} (function (root, factory) { if (typeof define === 'function' && define.amd) { define(function () { return factory(); }); diff --git a/dist/bricklayer.min.js b/dist/bricklayer.min.js index fc975d3..5451c46 100644 --- a/dist/bricklayer.min.js +++ b/dist/bricklayer.min.js @@ -1 +1 @@ -!function t(e,n,r){function o(s,u){if(!n[s]){if(!e[s]){var l="function"==typeof require&&require;if(!u&&l)return l(s,!0);if(i)return i(s,!0);var a=new Error("Cannot find module '"+s+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[s]={exports:{}};e[s][0].call(p.exports,function(t){var n=e[s][1][t];return o(n?n:t)},p,p.exports,t,e,n,r)}return n[s].exports}for(var i="function"==typeof require&&require,s=0;s