UNPKG

react-selectable-fast

Version:

Enable other React components to be selectable by drawing a box with your mouse/touch

2 lines 30.3 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports["React-Selectable-Fast"]=t(require("react")):e["React-Selectable-Fast"]=t(e.React)}(window,(function(e){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(t,n){t.exports=e},function(e,t){},function(e,t,n){"use strict";n.r(t),n.d(t,"TSelectableItemProps",(function(){return Se.TSelectableItemProps})),n.d(t,"SelectableGroup",(function(){return B})),n.d(t,"createSelectable",(function(){return q})),n.d(t,"SelectAll",(function(){return ce})),n.d(t,"DeselectAll",(function(){return be}));var o=n(0),r=n.n(o),l=["pageX","pageY","clientX","clientY"];function c(e,t){l.forEach((function(n){void 0===e[n]&&(e[n]=e[t][0][n])}))}function i(e){if(e.type.includes("mouse"))return e;try{"touchstart"===e.type?c(e,"targetTouches"):"touchmove"===e.type&&c(e,"changedTouches")}catch(e){console.error(e.message)}return e}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return!(e.metaKey&&!n.allowMetaClick||e.ctrlKey&&!n.allowCtrlClick||e.altKey&&!n.allowAltClick||e.shiftKey&&!n.allowShiftClick)&&("buttons"in e?e.buttons===t:"which"in e?e.which===t:e.button===t-1)}var a=function(e,t,n){var o=n.tolerance,r=void 0===o?0:o,l=n.useOffsetSize,c=void 0!==l&&l,i=c?e.offsetHeight:e.height,s=c?t.offsetHeight:t.height,a=c?e.offsetWidth:e.width,u=c?t.offsetWidth:t.width;return!(e.top+i-r<t.top||e.top+r>t.top+s||e.left+a-r<t.left||e.left+r>t.left+u)};function u(e){return Array.isArray(e)?e:[e]}function f(e,t){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,r=u(e),l=u(t),c=0;c<r.length;c++)for(var i=0;i<l.length;i++)return a(r[c],l[i],{tolerance:n,useOffsetSize:1===o})}function p(){return{documentScrollTop:Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),documentScrollLeft:Math.max(window.pageXOffset,document.documentElement.scrollLeft,document.body.scrollLeft)}}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{scrollTop:0,scrollLeft:0},n=t.scrollTop,o=t.scrollLeft;return Array.from(e.getClientRects()).map((function(t){return{top:t.top+n,left:t.left+o,offsetWidth:e.offsetWidth,offsetHeight:e.offsetHeight,width:t.width,height:t.height}}))}function h(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}var m=function(){},y=r.a.createContext({selectable:{register:function(e){},unregister:function(e){},selectAll:m,clearSelection:m,getScrolledContainer:function(){return null}}});function v(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],o=!0,r=!1,l=void 0;try{for(var c,i=e[Symbol.iterator]();!(o=(c=i.next()).done)&&(n.push(c.value),!t||n.length!==t);o=!0);}catch(e){r=!0,l=e}finally{try{o||null==i.return||i.return()}finally{if(r)throw l}}return n}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var S={y:0,x:0,width:0,height:0};function g(e){var t=e.fixedPosition,n=e.getSetState,l=e.className,c=v(Object(o.useState)(S),2),i=c[0],s=c[1];Object(o.useEffect)((function(){n(s)}),[]);var a={left:i.x,top:i.y,width:i.width,height:i.height,zIndex:9e3,position:t?"fixed":"absolute",cursor:"default",willChange:"transform",transform:"translateZ(0)"};return r.a.createElement("div",{className:l,style:a})}function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){_(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],o=!0,r=!1,l=void 0;try{for(var c,i=e[Symbol.iterator]();!(o=(c=i.next()).done)&&(n.push(c.value),!t||n.length!==t);o=!0);}catch(e){r=!0,l=e}finally{try{o||null==i.return||i.return()}finally{if(r)throw l}}return n}(e,t)||I(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(e){return function(e){if(Array.isArray(e))return L(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||I(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(e=I(e))){var t=0,n=function(){};return{s:n,n:function(){return t>=e.length?{done:!0}:{done:!1,value:e[t++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,r,l=!0,c=!1;return{s:function(){o=e[Symbol.iterator]()},n:function(){var e=o.next();return l=e.done,e},e:function(e){c=!0,r=e},f:function(){try{l||null==o.return||o.return()}finally{if(c)throw r}}}}function I(e,t){if(e){if("string"==typeof e)return L(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function E(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function P(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function R(e,t){return(R=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function D(e,t){return!t||"object"!==w(t)&&"function"!=typeof t?T(e):t}function T(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function M(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function A(e){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}g.defaultProps={className:"selectable-selectbox"};var B=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&R(e,t)}(a,e);var t,n,o,l,c=(t=a,function(){var e,n=A(t);if(M()){var o=A(this).constructor;e=Reflect.construct(n,arguments,o)}else e=n.apply(this,arguments);return D(this,e)});function a(){var e;E(this,a);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return _(T(e=c.call.apply(c,[this].concat(n))),"state",{selectionMode:!1}),_(T(e),"mouseDownStarted",!1),_(T(e),"mouseMoveStarted",!1),_(T(e),"mouseMoved",!1),_(T(e),"mouseUpStarted",!1),_(T(e),"selectionStarted",!1),_(T(e),"deselectionStarted",!1),_(T(e),"clickedItem",void 0),_(T(e),"mouseDownData",{selectboxY:0,selectboxX:0,target:null}),_(T(e),"registry",new Set),_(T(e),"selectedItems",new Set),_(T(e),"selectingItems",new Set),_(T(e),"ignoreCheckCache",new Map),_(T(e),"ignoreList",e.props.ignoreList.concat([".selectable-select-all",".selectable-deselect-all"])),_(T(e),"ignoreListNodes",[]),_(T(e),"setSelectboxState",null),_(T(e),"selectableGroup",null),_(T(e),"scrollContainer",null),_(T(e),"maxScrollTop",0),_(T(e),"maxScrollLeft",0),_(T(e),"scrollBounds",null),_(T(e),"containerScroll",{scrollTop:0,scrollLeft:0}),_(T(e),"documentScroll",{scrollTop:0,scrollLeft:0}),_(T(e),"saveContainerScroll",(function(){var t=e.scrollContainer,n=t.scrollTop,o=t.scrollLeft;e.containerScroll={scrollTop:n,scrollLeft:o}})),_(T(e),"saveDocumentScroll",(function(){var t=p(),n=t.documentScrollLeft,o=t.documentScrollTop;e.documentScroll={scrollTop:o,scrollLeft:n}})),_(T(e),"updateRegistry",(function(){var t,n=j(e.registry.values());try{for(n.s();!(t=n.n()).done;){t.value.updateBounds(e.containerDocumentScroll)}}catch(e){n.e(e)}finally{n.f()}})),_(T(e),"registerSelectable",(function(t){e.registry.add(t),t.state.isSelected&&e.selectedItems.add(t)})),_(T(e),"unregisterSelectable",(function(t){e.registry.delete(t);var n=e.selectedItems.has(t)||e.selectingItems.has(t);e.selectedItems.delete(t),e.selectingItems.delete(t),n&&e.props.onSelectedItemUnmount(t,x(e.selectedItems))})),_(T(e),"updateContainerScroll",(function(t){var n=e.containerScroll,o=n.scrollTop,r=n.scrollLeft;e.checkScrollTop(t.clientY,o),e.checkScrollBottom(t.clientY,o),e.checkScrollLeft(t.clientX,r),e.checkScrollRight(t.clientX,r)})),_(T(e),"getScrollStep",(function(t){var n=e.props,o=n.minimumSpeedFactor,r=n.scrollSpeed;return Math.max(t,o)*r})),_(T(e),"checkScrollTop",(function(t,n){var o=e.scrollBounds.top-t;(o>0||t<0)&&(e.scrollContainer.scrollTop=n-e.getScrollStep(o))})),_(T(e),"checkScrollBottom",(function(t,n){var o=t-e.scrollBounds.bottom;if(o>0||t>window.innerHeight){var r=n+e.getScrollStep(o);e.scrollContainer.scrollTop=Math.min(r,e.maxScrollTop)}})),_(T(e),"checkScrollLeft",(function(t,n){var o=e.scrollBounds.left-t;if(o>0||t<0){var r=n-e.getScrollStep(o);e.scrollContainer.scrollLeft=r}})),_(T(e),"checkScrollRight",(function(t,n){var o=t-e.scrollBounds.right;if(o>0||t>window.innerWidth){var r=n+e.getScrollStep(o);e.scrollContainer.scrollLeft=Math.min(r,e.maxScrollLeft)}})),_(T(e),"updateSelectBox",(function(t){var n=i(t);if(e.updateContainerScroll(n),!e.mouseMoveStarted){e.mouseMoveStarted=!0,e.mouseMoved=!0;var o=T(e).mouseDownData,r=n.clientX,l=n.clientY-e.scrollBounds.top+e.containerScroll.scrollTop,c=Math.min(l,o.selectboxY),s=r-e.scrollBounds.left+e.containerScroll.scrollLeft,a={x:Math.min(s,o.selectboxX),y:c,width:Math.abs(s-o.selectboxX),height:Math.abs(l-o.selectboxY)};e.setSelectboxState(a);var u={top:a.y+e.scrollBounds.top+e.documentScroll.scrollTop,left:a.x+e.scrollBounds.left+e.documentScroll.scrollLeft,width:a.width,height:a.height,offsetWidth:a.width||1,offsetHeight:a.height||1};e.selectItems(u),e.props.duringSelection(x(e.selectingItems)),e.mouseMoveStarted=!1}})),_(T(e),"selectItems",(function(t){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.props,l=r.tolerance,c=r.enableDeselect,i=r.mixedDeselect,s=j(e.registry.values());try{for(s.s();!(n=s.n()).done;){var a=n.value;e.processItem({item:a,selectboxBounds:t,tolerance:l,mixedDeselect:i,enableDeselect:c,isFromClick:o&&o.isFromClick})}}catch(e){s.e(e)}finally{s.f()}})),_(T(e),"clearSelection",(function(){var t,n=j(e.selectedItems.values());try{for(n.s();!(t=n.n()).done;){var o=t.value;o.setState({isSelected:!1}),e.selectedItems.delete(o)}}catch(e){n.e(e)}finally{n.f()}e.setState({selectionMode:!1}),e.props.onSelectionFinish(x(e.selectedItems)),e.props.onSelectionClear()})),_(T(e),"selectAll",(function(){e.removeIgnoredItemsFromRegistry();var t,n=j(e.registry.values());try{for(n.s();!(t=n.n()).done;){var o=t.value;o.state.isSelected||(o.setState({isSelected:!0}),e.selectedItems.add(o))}}catch(e){n.e(e)}finally{n.f()}e.setState({selectionMode:!0}),e.props.onSelectionFinish(x(e.selectedItems))})),_(T(e),"mouseDown",(function(t){var n=!t.type.includes("touch")&&!s(t,1,{allowAltClick:e.props.allowAltClick,allowCtrlClick:e.props.allowCtrlClick,allowMetaClick:e.props.allowMetaClick,allowShiftClick:e.props.allowShiftClick});if(!(e.mouseDownStarted||e.props.disabled||n))if(e.removeIgnoredItemsFromRegistry(),e.isInIgnoreList(t.target))e.mouseDownStarted=!1;else{e.props.resetOnStart&&e.clearSelection(),e.mouseDownStarted=!0,e.mouseUpStarted=!1;var o=i(t);if(!e.props.globalMouse&&!h(o.target,e.selectableGroup)){var r=k(d(e.selectableGroup,e.documentScroll),1)[0];if(!f({top:r.top,left:r.left,width:0,height:0,offsetHeight:r.offsetHeight,offsetWidth:r.offsetWidth},{top:o.pageY,left:o.pageX,width:0,height:0,offsetWidth:0,offsetHeight:0}))return}e.updateRootBounds(),e.updateRegistry(),e.mouseDownData={target:o.target,selectboxY:o.clientY-e.scrollBounds.top+e.containerScroll.scrollTop,selectboxX:o.clientX-e.scrollBounds.left+e.containerScroll.scrollLeft},o.preventDefault(),document.addEventListener("mousemove",e.updateSelectBox),document.addEventListener("touchmove",e.updateSelectBox),document.addEventListener("mouseup",e.mouseUp),document.addEventListener("touchend",e.mouseUp)}})),_(T(e),"mouseUp",(function(t){if(!e.mouseUpStarted&&(e.mouseUpStarted=!0,e.mouseDownStarted=!1,e.removeTempEventListeners(),e.mouseDownData)){var n=i(t),o=n.pageX,r=n.pageY;if(!e.mouseMoved&&h(n.target,e.selectableGroup))e.handleClick(n,r,o);else{var l,c=j(e.selectingItems.values());try{for(c.s();!(l=c.n()).done;){l.value.setState({isSelected:!0,isSelecting:!1})}}catch(e){c.e(e)}finally{c.f()}e.selectedItems=new Set([].concat(x(e.selectedItems),x(e.selectingItems))),e.selectingItems.clear(),1===n.which&&e.mouseDownData.target===n.target&&e.preventEvent(n.target,"click"),e.setSelectboxState({x:0,y:0,width:0,height:0}),e.props.onSelectionFinish(x(e.selectedItems))}e.toggleSelectionMode(),e.cleanUp(),e.mouseMoved=!1}})),_(T(e),"keyListener",(function(t){27===t.keyCode&&e.clearSelection()})),_(T(e),"getGroupRef",(function(t){e.selectableGroup=t})),_(T(e),"getSelectboxSetState",(function(t){e.setSelectboxState=t})),_(T(e),"defaultContainerStyle",{position:"relative"}),_(T(e),"contextValue",{selectable:{register:e.registerSelectable,unregister:e.unregisterSelectable,selectAll:e.selectAll,clearSelection:e.clearSelection,getScrolledContainer:function(){return e.scrollContainer}}}),e}return n=a,(o=[{key:"componentDidMount",value:function(){this.props.scrollContainer?this.scrollContainer=document.querySelector(this.props.scrollContainer):this.scrollContainer=this.selectableGroup,this.scrollContainer.addEventListener("scroll",this.saveContainerScroll),document.addEventListener("scroll",this.saveDocumentScroll),this.selectableGroup.addEventListener("mousedown",this.mouseDown),this.selectableGroup.addEventListener("touchstart",this.mouseDown),this.props.deselectOnEsc&&(document.addEventListener("keydown",this.keyListener),document.addEventListener("keyup",this.keyListener)),this.removeIgnoredItemsFromRegistry()}},{key:"componentWillUnmount",value:function(){this.scrollContainer.removeEventListener("scroll",this.saveContainerScroll),document.removeEventListener("scroll",this.saveDocumentScroll),this.selectableGroup.removeEventListener("mousedown",this.mouseDown),this.selectableGroup.removeEventListener("touchstart",this.mouseDown),this.props.deselectOnEsc&&(document.removeEventListener("keydown",this.keyListener),document.removeEventListener("keyup",this.keyListener)),this.removeTempEventListeners(),this.selectedItems.clear(),this.selectingItems.clear()}},{key:"removeTempEventListeners",value:function(){document.removeEventListener("mousemove",this.updateSelectBox),document.removeEventListener("touchmove",this.updateSelectBox),document.removeEventListener("mouseup",this.mouseUp),document.removeEventListener("touchend",this.mouseUp)}},{key:"updateRootBounds",value:function(){this.scrollBounds=this.scrollContainer.getBoundingClientRect(),this.maxScrollTop=this.scrollContainer.scrollHeight-this.scrollContainer.clientHeight,this.maxScrollLeft=this.scrollContainer.scrollWidth-this.scrollContainer.clientWidth}},{key:"toggleSelectionMode",value:function(){var e=this.selectedItems,t=this.state.selectionMode;e.size&&!t&&this.setState({selectionMode:!0}),!e.size&&t&&this.setState({selectionMode:!1})}},{key:"processItem",value:function(e){var t=e.item,n=e.tolerance,o=e.selectboxBounds,r=e.enableDeselect,l=e.mixedDeselect,c=e.isFromClick,i=this.props.delta,s=f(o,t.bounds,n,i),a=t.state,u=a.isSelecting,p=a.isSelected;if(c&&s)return p?this.selectedItems.delete(t):this.selectedItems.add(t),t.setState({isSelected:!p}),this.clickedItem=t,t;if(!c&&s){if(p&&r&&(!this.selectionStarted||l))return t.setState({isSelected:!1}),t.deselected=!0,this.deselectionStarted=!0,this.selectedItems.delete(t);var d=l?!t.deselected:!this.deselectionStarted;if(!u&&!p&&d)return t.setState({isSelecting:!0}),this.selectionStarted=!0,this.selectingItems.add(t),{updateSelecting:!0}}return!c&&!s&&u&&this.selectingItems.has(t)?(t.setState({isSelecting:!1}),this.selectingItems.delete(t),{updateSelecting:!0}):null}},{key:"isInIgnoreList",value:function(e){if(e){if(void 0!==this.ignoreCheckCache.get(e))return this.ignoreCheckCache.get(e);var t=this.ignoreListNodes.some((function(t){return e===t||t.contains(e)}));return this.ignoreCheckCache.set(e,t),t}}},{key:"removeIgnoredItemsFromRegistry",value:function(){var e=this;this.ignoreListNodes=Array.from(document.querySelectorAll(this.ignoreList.join(", "))),this.registry=new Set(x(this.registry).filter((function(t){return!e.isInIgnoreList(t.node)}))),this.selectedItems=new Set(x(this.selectedItems).filter((function(t){return!e.isInIgnoreList(t.node)})))}},{key:"preventEvent",value:function(e,t){e.addEventListener(t,(function n(o){e.removeEventListener(t,n,!0),o.preventDefault(),o.stopPropagation()}),!0)}},{key:"cleanUp",value:function(){if(this.deselectionStarted=!1,this.selectionStarted=!1,this.props.mixedDeselect){var e,t=j(this.registry.values());try{for(t.s();!(e=t.n()).done;)e.value.deselected=!1}catch(e){t.e(e)}finally{t.f()}}}},{key:"handleClick",value:function(e,t,n){if(this.props.selectOnClick){var o=this.props,r=o.clickClassName,l=o.allowClickWithoutSelected,c=o.onSelectionFinish,i=e.target.classList||[],s=Array.from(i).includes(r);(l||this.selectedItems.size||s||e.ctrlKey)&&(this.selectItems({top:t,left:n,width:0,height:0,offsetWidth:0,offsetHeight:0},{isFromClick:!0}),c(x(this.selectedItems),this.clickedItem),1===e.which&&this.preventEvent(e.target,"click"),2!==e.which&&3!==e.which||this.preventEvent(e.target,"contextmenu"))}}},{key:"render",value:function(){var e=this.state.selectionMode,t=this.props,n=t.component,o=void 0===n?"div":n,l=t.className,c=t.style,i=t.selectionModeClass,s=t.fixedPosition,a=t.selectboxClassName,u=t.children;return r.a.createElement(y.Provider,{value:this.contextValue},r.a.createElement(o,{ref:this.getGroupRef,style:C({},this.defaultContainerStyle,{},c),className:"".concat(l," ").concat(e?i:"")},u,r.a.createElement(g,{getSetState:this.getSelectboxSetState,className:a,fixedPosition:s})))}},{key:"containerDocumentScroll",get:function(){return{scrollTop:this.containerScroll.scrollTop+this.documentScroll.scrollTop,scrollLeft:this.containerScroll.scrollLeft+this.documentScroll.scrollLeft}}}])&&P(n.prototype,o),l&&P(n,l),a}(o.Component);function N(e){return(N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function F(){return(F=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function U(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function G(e,t){return(G=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function X(e,t){return!t||"object"!==N(t)&&"function"!=typeof t?Y(e):t}function Y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function H(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function z(e){return(z=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function K(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}_(B,"defaultProps",{clickClassName:"",tolerance:0,globalMouse:!1,ignoreList:[],scrollSpeed:.25,minimumSpeedFactor:60,duringSelection:m,onSelectionFinish:m,onSelectionClear:m,onSelectedItemUnmount:m,allowClickWithoutSelected:!0,selectionModeClass:"in-selection-mode",resetOnStart:!1,disabled:!1,deselectOnEsc:!0,fixedPosition:!1,delta:1,allowAltClick:!1,allowCtrlClick:!1,allowMetaClick:!1,allowShiftClick:!1,selectOnClick:!0});var q=function(e){var t,n;return n=t=function(t){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&G(e,t)}(s,t);var n,o,l,c,i=(n=s,function(){var e,t=z(n);if(H()){var o=z(this).constructor;e=Reflect.construct(t,arguments,o)}else e=t.apply(this,arguments);return X(this,e)});function s(){var e;U(this,s);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return K(Y(e=i.call.apply(i,[this].concat(n))),"state",{isSelected:e.props.isSelected,isSelecting:!1}),K(Y(e),"node",null),K(Y(e),"bounds",null),K(Y(e),"updateBounds",(function(t){e.bounds=d(e.node,t)})),K(Y(e),"getSelectableRef",(function(t){e.node=t})),e}return o=s,(l=[{key:"componentDidMount",value:function(){this.updateBounds(),this.context.selectable.register(this)}},{key:"componentWillUnmount",value:function(){this.context.selectable.unregister(this)}},{key:"render",value:function(){return r.a.createElement(e,F({},this.props,this.state,{selectableRef:this.getSelectableRef}))}}])&&W(o.prototype,l),c&&W(o,c),s}(o.Component),K(t,"contextType",y),K(t,"defaultProps",{isSelected:!1}),n};function V(e){return(V="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $(){return($=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function Z(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function J(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Q(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function ee(e,t){return(ee=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function te(e,t){return!t||"object"!==V(t)&&"function"!=typeof t?ne(e):t}function ne(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function oe(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function re(e){return(re=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function le(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ce=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ee(e,t)}(i,e);var t,n,o,l,c=(t=i,function(){var e,n=re(t);if(oe()){var o=re(this).constructor;e=Reflect.construct(n,arguments,o)}else e=n.apply(this,arguments);return te(this,e)});function i(){var e;J(this,i);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return le(ne(e=c.call.apply(c,[this].concat(n))),"root",null),le(ne(e),"getRootRef",(function(t){e.root=t})),e}return n=i,(o=[{key:"componentDidMount",value:function(){this.root.addEventListener("mousedown",(function(e){return e.stopPropagation()}))}},{key:"render",value:function(){var e=this.props,t=e.component,n=void 0===t?"div":t,o=e.children,l=e.className,c=void 0===l?"":l,i=Z(e,["component","children","className"]),s=n;return r.a.createElement(s,$({ref:this.getRootRef,className:"selectable-select-all ".concat(c),onClick:this.context.selectable.selectAll},i),o)}}])&&Q(n.prototype,o),l&&Q(n,l),i}(o.Component);function ie(e){return(ie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function se(){return(se=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function ae(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},l=Object.keys(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++)n=l[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function ue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function fe(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function pe(e,t){return(pe=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function de(e,t){return!t||"object"!==ie(t)&&"function"!=typeof t?he(e):t}function he(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function me(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function ye(e){return(ye=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ve(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}le(ce,"contextType",y);var be=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&pe(e,t)}(i,e);var t,n,o,l,c=(t=i,function(){var e,n=ye(t);if(me()){var o=ye(this).constructor;e=Reflect.construct(n,arguments,o)}else e=n.apply(this,arguments);return de(this,e)});function i(){var e;ue(this,i);for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];return ve(he(e=c.call.apply(c,[this].concat(n))),"root",null),ve(he(e),"getRootRef",(function(t){e.root=t})),e}return n=i,(o=[{key:"componentDidMount",value:function(){this.root.addEventListener("mousedown",(function(e){return e.stopPropagation()}))}},{key:"render",value:function(){var e=this.props,t=e.component,n=void 0===t?"div":t,o=e.children,l=e.className,c=ae(e,["component","children","className"]),i=n;return r.a.createElement(i,se({ref:this.getRootRef,className:"selectable-select-all ".concat(l),onClick:this.context.selectable.clearSelection},c),o)}}])&&fe(n.prototype,o),l&&fe(n,l),i}(o.Component);ve(be,"contextType",y);var Se=n(1)}])})); //# sourceMappingURL=react-selectable-fast.js.map