Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mobius1-selectable

Package Overview
Dependencies
Maintainers
1
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mobius1-selectable - npm Package Compare versions

Comparing version 0.1.2 to 0.2.0

2

bower.json
{
"name": "mobius1-selectable",
"version": "0.1.2",
"version": "0.2.0",
"ignore": [

@@ -5,0 +5,0 @@ ".gitattributes",

{
"name": "mobius1-selectable",
"version": "0.1.2",
"version": "0.2.0",
"description": "UI Selectable plugin without the bloat of jQuery and jQuery UI.",

@@ -5,0 +5,0 @@ "main": "selectable.min.js",

@@ -30,9 +30,10 @@ # Selectable

Grab the files from one of the CDNs and include them in your page:
Grab the file from one of the CDNs and include it in your page:
```
https://unpkg.com/mobius1-selectable@latest/selectable.min.js
```
or
//or
```
https://cdn.jsdelivr.net/npm/mobius1-selectable@latest/selectable.min.js

@@ -102,2 +103,8 @@ ```

### getSelectedItems()
Returns an `Array` of selected items.
### getSelectedNodes()
Returns an `Array` of selected `HTMLElement` nodes.
---

@@ -104,0 +111,0 @@

@@ -8,3 +8,3 @@ /*!

*
* Version: 0.1.2
* Version: 0.2.0
*

@@ -290,2 +290,4 @@ */

this.selectedItems = [];
this.update();

@@ -304,3 +306,3 @@

this.nodes = this.container.querySelectorAll(o.filter);
this.items = this.selectedItems = [];
this.items = [];

@@ -509,4 +511,2 @@ each(this.nodes, function(el, i) {

this.selectedItems = [];
css(this.lasso, {

@@ -524,5 +524,3 @@ opacity: 0,

if (item.unselecting) {
classList.remove(el, that.config.classes.unselecting);
item.unselecting = false;
item.startselected = false;
that.deselectItem(item);
}

@@ -611,8 +609,27 @@

Selectable.prototype.clear = function() {
each(this.items, function(item) {
each(this.selectedItems, function(item) {
this.deselectItem(item);
}, this);
this.selectedItems = [];
};
/**
* Get all selected items
* @return {Array}
*/
Selectable.prototype.getSelectedItems = function() {
return this.selectedItems;
};
/**
* Get all selected nodes
* @return {Array}
*/
Selectable.prototype.getSelectedNodes = function() {
return this.selectedItems.map(function(item) {
return item.element;
});
};
/**
* Enable instance

@@ -619,0 +636,0 @@ * @return {Boolean}

@@ -8,5 +8,5 @@ /*!

*
* Version: 0.1.2
* Version: 0.2.0
*
*/
!function(e,t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define([],t):e.Selectable=t()}("undefined"!=typeof global?global:this.window||this.global,function(){"use strict";function e(e,t,s,i){e.addEventListener(t,s,!1)}function t(e,t,s){e.removeEventListener(t,s)}function s(e){this.config=o(i,e),f.mixin(this),this.init()}var i={appendTo:document.body,autoRefresh:!0,filter:".ui-selectable",tolerance:"touch",lasso:{border:"1px solid #3498db",backgroundColor:"rgba(52, 152, 219, 0.2)"},classes:{container:"ui-container",selectable:"ui-selectable",selecting:"ui-selecting",unselecting:"ui-unselecting",selected:"ui-selected"}},n=function(e){return"[object Object]"===Object.prototype.toString.call(e)},o=function(e,t){for(var s in t)if(t.hasOwnProperty(s)){var i=t[s];i&&n(i)?(e[s]=e[s]||{},o(e[s],i)):e[s]=i}return e},c=function(e,t,s){var i;if(n(e))for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(s,e[i],i);else for(i=0;i<e.length;i++)t.call(s,e[i],i)},l=function(e,t,s){var i=e&&e.style,o=n(t);if(i){if(void 0===s&&!o)return s=window.getComputedStyle(e,""),void 0===t?s:s[t];o?c(t,function(e,t){t in i||(t="-webkit-"+t),i[t]=e+("string"==typeof e?"":"opacity"===t?"":"px")}):(t in i||(t="-webkit-"+t),i[t]=s+("string"==typeof s?"":"opacity"===t?"":"px"))}},a=function(e){var t=window,s=e.getBoundingClientRect(),i=document.documentElement||document.body.parentNode||document.body,n=void 0!==t.pageXOffset?t.pageXOffset:i.scrollLeft,o=void 0!==t.pageYOffset?t.pageYOffset:i.scrollTop;return{x1:s.left+n,x2:s.left+s.width+n,y1:s.top+o,y2:s.top+s.height+o,height:s.height,width:s.width}},r=function(e,t,s){var i;return function(){var n=this,o=arguments,c=s&&!i;clearTimeout(i),i=setTimeout(function(){i=null,s||e.apply(n,o)},t),c&&e.apply(n,o)}},d={add:function(e,t){e.classList?e.classList.add(t):d.contains(e,t)||(e.className=e.className.trim()+" "+t)},remove:function(e,t){e.classList?e.classList.remove(t):d.contains(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," "))},contains:function(e,t){if(e)return e.classList?e.classList.contains(t):!!e.className&&!!e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}},u=function(e){return!!e.ctrlKey||!!e.metaKey},h=function(e){return!!e.shiftKey},f=function(){};return f.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){this._events=this._events||{},e in this._events!=0&&this._events[e].splice(this._events[e].indexOf(t),1)},emit:function(e){if(this._events=this._events||{},e in this._events!=0)for(var t=0;t<this._events[e].length;t++)this._events[e][t].apply(this,Array.prototype.slice.call(arguments,1))}},f.mixin=function(e){for(var t=["on","off","emit"],s=t.length;s--;)"function"==typeof e?e.prototype[t[s]]=f.prototype[t[s]]:e[t[s]]=f.prototype[t[s]];return e},s.prototype.init=function(){this.lasso=document.createElement("div"),this.lasso.className="ui-lasso",l(this.lasso,o({position:"fixed",opacity:0},this.config.lasso)),"string"==typeof this.config.appendTo||this.config.appendTo instanceof String?this.container=document.querySelector(this.config.appendTo):this.config.appendTo.nodeName&&(this.container=this.config.appendTo),this.update(),this.enable()},s.prototype.update=function(){var e=this,t=this.config;this.nodes=this.container.querySelectorAll(t.filter),this.items=this.selectedItems=[],c(this.nodes,function(s,i){d.add(s,e.config.classes.selectable),e.items[i]={index:i,element:s,rect:a(s),startselected:!1,selected:d.contains(s,t.classes.selected),selecting:d.contains(s,t.classes.selecting),unselecting:d.contains(s,t.classes.unselecting)}})},s.prototype.mousedown=function(e){e.preventDefault();var t,s=this.config,i=e.target,n=d.contains(i,s.filter.replace(".",""));if(this.container.appendChild(this.lasso),this.origin={x:e.pageX,y:e.pageY},!s.disabled){if(n&&d.add(i,s.classes.selecting),s.autoRefresh&&this.update(),h(e))for(var o=!1,l=this.items.length-1;l>=0&&(this.items[l].element===e.target&&(o=!0),!o||!this.items[l].selected);l--)o&&(this.items[l].selecting=!0);c(this.items,function(n){var o=n.element;n.selected&&(n.startselected=!0,u(e)||h(e)||(d.remove(o,s.classes.selected),n.selected=!1,d.add(o,s.classes.unselecting),n.unselecting=!0)),o===i&&(t=n)}),this.dragging=!0,n&&this.emit("selectable.down",t)}},s.prototype.mousemove=function(e){if(this.dragging){var t=this.config;if(!t.disabled){var s,i={x1:this.origin.x,y1:this.origin.y,x2:e.pageX,y2:e.pageY};i.x1>i.x2&&(s=i.x2,i.x2=i.x1,i.x1=s),i.y1>i.y2&&(s=i.y2,i.y2=i.y1,i.y1=s),l(this.lasso,{opacity:1,left:i.x1,width:i.x2-i.x1,top:i.y1,height:i.y2-i.y1}),c(this.items,function(s){var n=s.element,o=!1;"touch"==t.tolerance?o=!(s.rect.x1>i.x2||s.rect.x2<i.x1||s.rect.y1>i.y2||s.rect.y2<i.y1):"fit"==t.tolerance&&(o=s.rect.x1>i.x1&&s.rect.x2<i.x2&&s.rect.y1>i.y1&&s.rect.y2<i.y2),o?(s.selected&&(d.remove(n,t.classes.selected),s.selected=!1),s.unselecting&&(d.remove(n,t.classes.unselecting),s.unselecting=!1),s.selecting||(d.add(n,t.classes.selecting),s.selecting=!0)):(s.selecting&&(u(e)&&s.startselected?(d.remove(n,t.classes.selecting),s.selecting=!1,d.add(n,t.classes.selected),s.selected=!0):(d.remove(n,t.classes.selecting),s.selecting=!1,s.startselected&&(d.add(n,t.classes.unselecting),s.unselecting=!0))),n.selected&&(u(e)||s.startselected||(d.remove(n,t.classes.selected),s.selected=!1,d.add(n,t.classes.unselecting),s.unselecting=!0)))}),this.emit("selectable.drag",i)}}},s.prototype.mouseup=function(e){if(this.dragging&&(this.dragging=!1),this.container.contains(e.target)){var t=this;this.selectedItems=[],l(this.lasso,{opacity:0,left:0,width:0,top:0,height:0}),c(this.items,function(e){var s=e.element;e.unselecting&&(d.remove(s,t.config.classes.unselecting),e.unselecting=!1,e.startselected=!1),e.selecting&&t.selectItem(e)}),this.container.removeChild(this.lasso),this.emit("selectable.up",this.selectedItems)}},s.prototype.selectItem=function(e){if(this.items.indexOf(e)>=0){var t=e.element,s=this.config.classes;return d.remove(t,s.selecting),d.add(t,s.selected),e.selecting=!1,e.selected=e.startselected=!0,this.selectedItems.push(e),this.emit("selectable.selected",e)}return!1},s.prototype.deselectItem=function(e){if(this.items.indexOf(e)>=0){var t=e.element,s=this.config.classes;return e.selecting=e.selected=e.unselecting=e.startselected=!1,d.remove(t,s.unselecting),d.remove(t,s.selecting),d.remove(t,s.selected),this.selectedItems.splice(this.selectedItems.indexOf(e),1),this.emit("selectable.deselected",e)}return!1},s.prototype.recalculate=function(){c(this.nodes,function(e,t){this.items[t].rect=a(e)},this)},s.prototype.selectAll=function(){this.selectedItems=[],c(this.items,function(e){this.selectItem(e)},this)},s.prototype.clear=function(){c(this.items,function(e){this.deselectItem(e)},this)},s.prototype.enable=function(){return this.enabled||(this.enabled=!0,this.events={mousedown:this.mousedown.bind(this),mousemove:this.mousemove.bind(this),mouseup:this.mouseup.bind(this),recalculate:r(this.recalculate,50).bind(this)},e(this.container,"mousedown",this.events.mousedown),e(document,"mousemove",this.events.mousemove),e(document,"mouseup",this.events.mouseup),e(window,"resize",this.events.recalculate),e(window,"scroll",this.events.recalculate),d.add(this.container,this.config.classes.container)),this.enabled},s.prototype.disable=function(){return this.enabled&&(this.enabled=!1,t(this.container,"mousedown",this.events.mousedown),t(document,"mousemove",this.events.mousemove),t(document,"mouseup",this.events.mouseup),t(window,"resize",this.events.recalculate),t(window,"scroll",this.events.recalculate),d.remove(this.container,this.config.classes.container)),this.enabled},s.prototype.destroy=function(){var e=this.config.classes;c(this.items,function(t){var s=t.element;d.remove(s,e.unselecting),d.remove(s,e.selecting),d.remove(s,e.selected)}),this.disable()},s});
!function(e,t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define([],t):e.Selectable=t()}("undefined"!=typeof global?global:this.window||this.global,function(){"use strict";function e(e,t,s,i){e.addEventListener(t,s,!1)}function t(e,t,s){e.removeEventListener(t,s)}function s(e){this.config=o(i,e),f.mixin(this),this.init()}var i={appendTo:document.body,autoRefresh:!0,filter:".ui-selectable",tolerance:"touch",lasso:{border:"1px solid #3498db",backgroundColor:"rgba(52, 152, 219, 0.2)"},classes:{container:"ui-container",selectable:"ui-selectable",selecting:"ui-selecting",unselecting:"ui-unselecting",selected:"ui-selected"}},n=function(e){return"[object Object]"===Object.prototype.toString.call(e)},o=function(e,t){for(var s in t)if(t.hasOwnProperty(s)){var i=t[s];i&&n(i)?(e[s]=e[s]||{},o(e[s],i)):e[s]=i}return e},c=function(e,t,s){var i;if(n(e))for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(s,e[i],i);else for(i=0;i<e.length;i++)t.call(s,e[i],i)},l=function(e,t,s){var i=e&&e.style,o=n(t);if(i){if(void 0===s&&!o)return s=window.getComputedStyle(e,""),void 0===t?s:s[t];o?c(t,function(e,t){t in i||(t="-webkit-"+t),i[t]=e+("string"==typeof e?"":"opacity"===t?"":"px")}):(t in i||(t="-webkit-"+t),i[t]=s+("string"==typeof s?"":"opacity"===t?"":"px"))}},a=function(e){var t=window,s=e.getBoundingClientRect(),i=document.documentElement||document.body.parentNode||document.body,n=void 0!==t.pageXOffset?t.pageXOffset:i.scrollLeft,o=void 0!==t.pageYOffset?t.pageYOffset:i.scrollTop;return{x1:s.left+n,x2:s.left+s.width+n,y1:s.top+o,y2:s.top+s.height+o,height:s.height,width:s.width}},r=function(e,t,s){var i;return function(){var n=this,o=arguments,c=s&&!i;clearTimeout(i),i=setTimeout(function(){i=null,s||e.apply(n,o)},t),c&&e.apply(n,o)}},d={add:function(e,t){e.classList?e.classList.add(t):d.contains(e,t)||(e.className=e.className.trim()+" "+t)},remove:function(e,t){e.classList?e.classList.remove(t):d.contains(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," "))},contains:function(e,t){if(e)return e.classList?e.classList.contains(t):!!e.className&&!!e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))}},u=function(e){return!!e.ctrlKey||!!e.metaKey},h=function(e){return!!e.shiftKey},f=function(){};return f.prototype={on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){this._events=this._events||{},e in this._events!=0&&this._events[e].splice(this._events[e].indexOf(t),1)},emit:function(e){if(this._events=this._events||{},e in this._events!=0)for(var t=0;t<this._events[e].length;t++)this._events[e][t].apply(this,Array.prototype.slice.call(arguments,1))}},f.mixin=function(e){for(var t=["on","off","emit"],s=t.length;s--;)"function"==typeof e?e.prototype[t[s]]=f.prototype[t[s]]:e[t[s]]=f.prototype[t[s]];return e},s.prototype.init=function(){this.lasso=document.createElement("div"),this.lasso.className="ui-lasso",l(this.lasso,o({position:"fixed",opacity:0},this.config.lasso)),"string"==typeof this.config.appendTo||this.config.appendTo instanceof String?this.container=document.querySelector(this.config.appendTo):this.config.appendTo.nodeName&&(this.container=this.config.appendTo),this.selectedItems=[],this.update(),this.enable()},s.prototype.update=function(){var e=this,t=this.config;this.nodes=this.container.querySelectorAll(t.filter),this.items=[],c(this.nodes,function(s,i){d.add(s,e.config.classes.selectable),e.items[i]={index:i,element:s,rect:a(s),startselected:!1,selected:d.contains(s,t.classes.selected),selecting:d.contains(s,t.classes.selecting),unselecting:d.contains(s,t.classes.unselecting)}})},s.prototype.mousedown=function(e){e.preventDefault();var t,s=this.config,i=e.target,n=d.contains(i,s.filter.replace(".",""));if(this.container.appendChild(this.lasso),this.origin={x:e.pageX,y:e.pageY},!s.disabled){if(n&&d.add(i,s.classes.selecting),s.autoRefresh&&this.update(),h(e))for(var o=!1,l=this.items.length-1;l>=0&&(this.items[l].element===e.target&&(o=!0),!o||!this.items[l].selected);l--)o&&(this.items[l].selecting=!0);c(this.items,function(n){var o=n.element;n.selected&&(n.startselected=!0,u(e)||h(e)||(d.remove(o,s.classes.selected),n.selected=!1,d.add(o,s.classes.unselecting),n.unselecting=!0)),o===i&&(t=n)}),this.dragging=!0,n&&this.emit("selectable.down",t)}},s.prototype.mousemove=function(e){if(this.dragging){var t=this.config;if(!t.disabled){var s,i={x1:this.origin.x,y1:this.origin.y,x2:e.pageX,y2:e.pageY};i.x1>i.x2&&(s=i.x2,i.x2=i.x1,i.x1=s),i.y1>i.y2&&(s=i.y2,i.y2=i.y1,i.y1=s),l(this.lasso,{opacity:1,left:i.x1,width:i.x2-i.x1,top:i.y1,height:i.y2-i.y1}),c(this.items,function(s){var n=s.element,o=!1;"touch"==t.tolerance?o=!(s.rect.x1>i.x2||s.rect.x2<i.x1||s.rect.y1>i.y2||s.rect.y2<i.y1):"fit"==t.tolerance&&(o=s.rect.x1>i.x1&&s.rect.x2<i.x2&&s.rect.y1>i.y1&&s.rect.y2<i.y2),o?(s.selected&&(d.remove(n,t.classes.selected),s.selected=!1),s.unselecting&&(d.remove(n,t.classes.unselecting),s.unselecting=!1),s.selecting||(d.add(n,t.classes.selecting),s.selecting=!0)):(s.selecting&&(u(e)&&s.startselected?(d.remove(n,t.classes.selecting),s.selecting=!1,d.add(n,t.classes.selected),s.selected=!0):(d.remove(n,t.classes.selecting),s.selecting=!1,s.startselected&&(d.add(n,t.classes.unselecting),s.unselecting=!0))),n.selected&&(u(e)||s.startselected||(d.remove(n,t.classes.selected),s.selected=!1,d.add(n,t.classes.unselecting),s.unselecting=!0)))}),this.emit("selectable.drag",i)}}},s.prototype.mouseup=function(e){if(this.dragging&&(this.dragging=!1),this.container.contains(e.target)){var t=this;l(this.lasso,{opacity:0,left:0,width:0,top:0,height:0}),c(this.items,function(e){e.element;e.unselecting&&t.deselectItem(e),e.selecting&&t.selectItem(e)}),this.container.removeChild(this.lasso),this.emit("selectable.up",this.selectedItems)}},s.prototype.selectItem=function(e){if(this.items.indexOf(e)>=0){var t=e.element,s=this.config.classes;return d.remove(t,s.selecting),d.add(t,s.selected),e.selecting=!1,e.selected=e.startselected=!0,this.selectedItems.push(e),this.emit("selectable.selected",e)}return!1},s.prototype.deselectItem=function(e){if(this.items.indexOf(e)>=0){var t=e.element,s=this.config.classes;return e.selecting=e.selected=e.unselecting=e.startselected=!1,d.remove(t,s.unselecting),d.remove(t,s.selecting),d.remove(t,s.selected),this.selectedItems.splice(this.selectedItems.indexOf(e),1),this.emit("selectable.deselected",e)}return!1},s.prototype.recalculate=function(){c(this.nodes,function(e,t){this.items[t].rect=a(e)},this)},s.prototype.selectAll=function(){this.selectedItems=[],c(this.items,function(e){this.selectItem(e)},this)},s.prototype.clear=function(){c(this.selectedItems,function(e){this.deselectItem(e)},this),this.selectedItems=[]},s.prototype.getSelectedItems=function(){return this.selectedItems},s.prototype.getSelectedNodes=function(){return this.selectedItems.map(function(e){return e.element})},s.prototype.enable=function(){return this.enabled||(this.enabled=!0,this.events={mousedown:this.mousedown.bind(this),mousemove:this.mousemove.bind(this),mouseup:this.mouseup.bind(this),recalculate:r(this.recalculate,50).bind(this)},e(this.container,"mousedown",this.events.mousedown),e(document,"mousemove",this.events.mousemove),e(document,"mouseup",this.events.mouseup),e(window,"resize",this.events.recalculate),e(window,"scroll",this.events.recalculate),d.add(this.container,this.config.classes.container)),this.enabled},s.prototype.disable=function(){return this.enabled&&(this.enabled=!1,t(this.container,"mousedown",this.events.mousedown),t(document,"mousemove",this.events.mousemove),t(document,"mouseup",this.events.mouseup),t(window,"resize",this.events.recalculate),t(window,"scroll",this.events.recalculate),d.remove(this.container,this.config.classes.container)),this.enabled},s.prototype.destroy=function(){var e=this.config.classes;c(this.items,function(t){var s=t.element;d.remove(s,e.unselecting),d.remove(s,e.selecting),d.remove(s,e.selected)}),this.disable()},s});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc