New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@blueprintjs/select

Package Overview
Dependencies
Maintainers
1
Versions
233
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@blueprintjs/select - npm Package Compare versions

Comparing version 2.0.0-rc.2 to 2.0.0-rc.3

2

dist/select.bundle.js

@@ -1,1 +0,1 @@

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("React"),require("classNames")):"function"==typeof define&&define.amd?define(["React","classNames"],t):"object"==typeof exports?exports.Select=t(require("React"),require("classNames")):(e.Blueprint=e.Blueprint||{},e.Blueprint.Select=t(e.React,e.classNames))}("undefined"!=typeof self?self:this,function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},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=3)}([function(t,n){t.exports=e},function(e,t){e.exports=Blueprint.Core},function(e,n){e.exports=t},function(e,t,n){e.exports=n(4)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="pt-multi-select",o=r+"-popover",i="pt-omnibar",s=i+"-overlay",p="pt-select",a=p+"-popover",u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};function l(e,t){function n(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};function v(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&(n[r[o]]=e[r[o]])}return n}var d=n(2),f=n(0),m=n(1),y=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.refHandlers={itemsParent:function(e){return t.itemsParentRef=e}},t.handleItemSelect=function(e,n){m.Utils.safeInvoke(t.props.onActiveItemChange,e),m.Utils.safeInvoke(t.props.onItemSelect,e,n)},t.handleKeyDown=function(e){switch(e.keyCode){case m.Keys.ARROW_UP:e.preventDefault(),t.moveActiveIndex(-1);break;case m.Keys.ARROW_DOWN:e.preventDefault(),t.moveActiveIndex(1)}m.Utils.safeInvoke(t.props.onKeyDown,e)},t.handleKeyUp=function(e){var n=t.props,r=n.activeItem,o=n.onItemSelect,i=n.onKeyUp;e.keyCode===m.Keys.ENTER&&(e.preventDefault(),m.Utils.safeInvoke(o,r,e)),m.Utils.safeInvoke(i,e)},t.renderItem=function(e,n){var r=t.props,o=r.activeItem,i=r.itemListPredicate,s=r.itemPredicate,p=void 0===s?function(){return!0}:s,a=r.query,u=m.Utils.isFunction(i)?t.state.filteredItems.indexOf(e)>=0:p(a,e,n),l={active:o===e,disabled:!1,matchesPredicate:u};return t.props.itemRenderer(e,{handleClick:function(n){return t.handleItemSelect(e,n)},index:n,modifiers:l})},t}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=e.items,n=e.renderer,r=e.query;return n({handleItemSelect:this.handleItemSelect,handleKeyDown:this.handleKeyDown,handleKeyUp:this.handleKeyUp,items:t,itemsParentRef:this.refHandlers.itemsParent,query:r,renderItem:this.renderItem})},t.prototype.componentWillMount=function(){this.setState({filteredItems:I(this.props)})},t.prototype.componentWillReceiveProps=function(e){e.items===this.props.items&&e.itemListPredicate===this.props.itemListPredicate&&e.itemPredicate===this.props.itemPredicate&&e.query===this.props.query||(this.shouldCheckActiveItemInViewport=!0,this.setState({filteredItems:I(e)}))},t.prototype.componentDidUpdate=function(){var e=this;this.shouldCheckActiveItemInViewport&&(requestAnimationFrame(function(){return e.scrollActiveItemIntoView()}),this.shouldCheckActiveItemInViewport=!1),this.getActiveIndex()<0&&(0!==this.state.filteredItems.length||void 0!==this.props.activeItem)&&m.Utils.safeInvoke(this.props.onActiveItemChange,this.state.filteredItems[0])},t.prototype.scrollActiveItemIntoView=function(){var e=this.getActiveElement();if(null!=this.itemsParentRef&&null!=e){var t=e.offsetTop,n=e.offsetHeight,r=this.itemsParentRef,o=r.offsetTop,i=r.scrollTop,s=r.clientHeight,p=this.getItemsParentPadding(),a=p.paddingTop,u=t+n+p.paddingBottom-o,l=t-a-o;u>=i+s?this.itemsParentRef.scrollTop=u+n-s:l<=i&&(this.itemsParentRef.scrollTop=l-n)}},t.prototype.getActiveElement=function(){if(null!=this.itemsParentRef)return this.itemsParentRef.children.item(this.getActiveIndex())},t.prototype.getActiveIndex=function(){return this.state.filteredItems.indexOf(this.props.activeItem)},t.prototype.getItemsParentPadding=function(){var e=getComputedStyle(this.itemsParentRef),t=e.paddingTop;return{paddingBottom:h(e.paddingBottom),paddingTop:h(t)}},t.prototype.moveActiveIndex=function(e){this.shouldCheckActiveItemInViewport=!0;var t=this.state.filteredItems,n=Math.max(t.length-1,0),r=m.Utils.clamp(this.getActiveIndex()+e,0,n);m.Utils.safeInvoke(this.props.onActiveItemChange,t[r])},t.displayName="Blueprint2.QueryList",t}(f.Component);function h(e){return parseInt(e.slice(0,-2),10)}function I(e){var t=e.items,n=e.itemPredicate,r=e.itemListPredicate,o=e.query;return m.Utils.isFunction(r)?r(o,t):m.Utils.isFunction(n)?t.filter(function(e,t){return n(o,e,t)}):t}var P=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={query:""},t.TypedQueryList=y.ofType(),t.refHandlers={queryList:function(e){return t.queryList=e}},t.renderQueryList=function(e){var n=t.props,r=n.inputProps,o=void 0===r?{}:r,p=n.isOpen,a=n.overlayProps,u=void 0===a?{}:a,l=e.handleKeyDown,v=e.handleKeyUp,y=p&&!t.isQueryEmpty()?{onKeyDown:l,onKeyUp:v}:{};return f.createElement(m.Overlay,c({hasBackdrop:!0},u,{isOpen:p,className:d(u.className,s),onClose:t.handleOverlayClose}),f.createElement("div",c({className:d(e.className,i)},y),f.createElement(m.InputGroup,c({autoFocus:!0,className:m.Classes.LARGE,leftIcon:"search",placeholder:"Search...",value:e.query},o,{onChange:t.handleQueryChange})),t.maybeRenderMenu(e)))},t.isQueryEmpty=function(){return 0===t.state.query.length},t.handleActiveItemChange=function(e){return t.setState({activeItem:e})},t.handleItemSelect=function(e,n){t.isQueryEmpty()||m.Utils.safeInvoke(t.props.onItemSelect,e,n)},t.handleQueryChange=function(e){var n=t.props.inputProps,r=void 0===n?{}:n;t.setState({query:e.currentTarget.value}),m.Utils.safeInvoke(r.onChange,e)},t.handleOverlayClose=function(e){m.Utils.safeInvoke(t.props.onClose,e)},t}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=(e.initialContent,e.isOpen,e.inputProps,e.noResults,e.overlayProps,v(e,["initialContent","isOpen","inputProps","noResults","overlayProps"]));return f.createElement(this.TypedQueryList,c({},t,{activeItem:this.state.activeItem,onActiveItemChange:this.handleActiveItemChange,onItemSelect:this.handleItemSelect,query:this.state.query,ref:this.refHandlers.queryList,renderer:this.renderQueryList}))},t.prototype.componentWillReceiveProps=function(e){var t=e.isOpen,n=!this.props.isOpen&&t&&this.props.resetOnSelect;this.setState({activeItem:n?this.props.items[0]:this.state.activeItem,query:n?"":this.state.query})},t.prototype.renderItems=function(e){var t=e.items,n=e.renderItem,r=t.map(n).filter(function(e){return null!=e});return r.length>0?r:this.props.noResults},t.prototype.maybeRenderMenu=function(e){var t,n=this.props.initialContent;if(this.isQueryEmpty()?null!=n&&(t=n):t=this.renderItems(e),null!=t)return f.createElement(m.Menu,{ulRef:e.itemsParentRef},t)},t.displayName="Blueprint2.Omnibar",t}(f.PureComponent),O=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={isOpen:!1,query:""},t.TypedQueryList=y.ofType(),t.refHandlers={input:function(e){return t.input=e},queryList:function(e){return t.queryList=e}},t.renderQueryList=function(e){var n=t.props,i=n.tagInputProps,s=void 0===i?{}:i,p=n.popoverProps,a=void 0===p?{}:p,u=n.selectedItems,l=void 0===u?[]:u,v=e.handleKeyDown,y=e.handleKeyUp,h=e.query,I=c({placeholder:"Search..."},s.inputProps,{onChange:t.handleQueryChange,value:h});return f.createElement(m.Popover,c({autoFocus:!1,canEscapeKeyClose:!0,enforceFocus:!1,isOpen:t.state.isOpen,position:m.Position.BOTTOM_LEFT},a,{className:d(e.className,a.className),onInteraction:t.handlePopoverInteraction,popoverClassName:d(o,a.popoverClassName),popoverDidOpen:t.handlePopoverDidOpen,popoverWillOpen:t.handlePopoverWillOpen}),f.createElement("div",{onKeyDown:t.getTargetKeyDownHandler(v),onKeyUp:t.state.isOpen?y:void 0},f.createElement(m.TagInput,c({},s,{inputProps:I,inputRef:t.refHandlers.input,className:d(r,s.className),values:l.map(t.props.tagRenderer)}))),f.createElement("div",{onKeyDown:t.getTargetKeyDownHandler(v),onKeyUp:y},f.createElement(m.Menu,{ulRef:e.itemsParentRef},t.renderItems(e))))},t.isQueryEmpty=function(){return 0===t.state.query.length},t.handleQueryChange=function(e){var n=t.props,r=n.tagInputProps,o=void 0===r?{}:r,i=n.openOnKeyDown,s=e.currentTarget.value;t.setState({query:s,isOpen:!t.isQueryEmpty()||!i}),null!=o.inputProps&&m.Utils.safeInvoke(o.inputProps.onChange,e)},t.handleItemSelect=function(e,n){t.input.focus(),null!=t.state.activeItem&&(t.props.resetOnSelect&&!t.isQueryEmpty()&&t.setState({activeItem:t.props.items[0],query:""}),m.Utils.safeInvoke(t.props.onItemSelect,e,n))},t.handlePopoverInteraction=function(e){return requestAnimationFrame(function(){var n=t.props,r=n.popoverProps,o=void 0===r?{}:r,i=n.resetOnSelect;null!=t.input&&t.input!==document.activeElement?t.setState({activeItem:i?t.props.items[0]:t.state.activeItem,isOpen:!1,query:i?"":t.state.query}):t.props.openOnKeyDown||t.setState({isOpen:!0}),m.Utils.safeInvoke(o.onInteraction,e)})},t.handlePopoverWillOpen=function(){var e=t.props,n=e.popoverProps,r=void 0===n?{}:n;e.resetOnSelect&&t.setState({activeItem:t.props.items[0]}),m.Utils.safeInvoke(r.popoverWillOpen)},t.handlePopoverDidOpen=function(){var e=t.props.popoverProps,n=void 0===e?{}:e;null!=t.queryList&&t.queryList.scrollActiveItemIntoView(),m.Utils.safeInvoke(n.popoverDidOpen)},t.handleActiveItemChange=function(e){t.setState({activeItem:e})},t.getTargetKeyDownHandler=function(e){return function(n){var r=n.which,o=t.props.resetOnSelect;r===m.Keys.ESCAPE||r===m.Keys.TAB?t.setState({activeItem:o?t.props.items[0]:t.state.activeItem,isOpen:!1,query:o?"":t.state.query}):r!==m.Keys.BACKSPACE&&r!==m.Keys.ARROW_LEFT&&r!==m.Keys.ARROW_RIGHT&&t.setState({isOpen:!0}),t.state.isOpen&&m.Utils.safeInvoke(e,n)}},t}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=(e.initialContent,e.noResults,e.openOnKeyDown,e.popoverProps,e.resetOnSelect,e.tagInputProps,v(e,["initialContent","noResults","openOnKeyDown","popoverProps","resetOnSelect","tagInputProps"]));return f.createElement(this.TypedQueryList,c({},t,{activeItem:this.state.activeItem,onActiveItemChange:this.handleActiveItemChange,onItemSelect:this.handleItemSelect,query:this.state.query,ref:this.refHandlers.queryList,renderer:this.renderQueryList}))},t.prototype.renderItems=function(e){var t=e.items,n=e.renderItem,r=this.props,o=r.initialContent,i=r.noResults;if(null!=o&&this.isQueryEmpty())return o;var s=t.map(n).filter(function(e){return null!=e});return s.length>0?s:i},t.displayName="Blueprint2.MultiSelect",t}(f.PureComponent),g=function(e){function t(t,n){var r=e.call(this,t,n)||this;r.state={isOpen:!1,query:""},r.TypedQueryList=y.ofType(),r.refHandlers={input:function(e){r.input=e;var t=r.props.inputProps,n=void 0===t?{}:t;m.Utils.safeInvoke(n.inputRef,e)},queryList:function(e){return r.list=e}},r.renderQueryList=function(e){var t=r.props,n=t.filterable,o=void 0===n||n,i=t.disabled,s=void 0!==i&&i,p=t.inputProps,u=void 0===p?{}:p,l=t.popoverProps,v=void 0===l?{}:l,y=f.createElement(m.InputGroup,c({autoFocus:!0,leftIcon:"search",placeholder:"Filter...",rightElement:r.maybeRenderInputClearButton(),value:e.query},u,{inputRef:r.refHandlers.input,onChange:r.handleQueryChange})),h=e.handleKeyDown,I=e.handleKeyUp;return f.createElement(m.Popover,c({autoFocus:!1,enforceFocus:!1,isOpen:r.state.isOpen,disabled:s,position:m.Position.BOTTOM_LEFT},v,{className:d(e.className,v.className),onInteraction:r.handlePopoverInteraction,popoverClassName:d(a,v.popoverClassName),popoverWillOpen:r.handlePopoverWillOpen,popoverDidOpen:r.handlePopoverDidOpen,popoverWillClose:r.handlePopoverWillClose}),f.createElement("div",{onKeyDown:r.state.isOpen?h:r.handleTargetKeyDown,onKeyUp:r.state.isOpen?I:void 0},r.props.children),f.createElement("div",{onKeyDown:h,onKeyUp:I},o?y:void 0,f.createElement(m.Menu,{ulRef:e.itemsParentRef},r.renderItems(e))))},r.isQueryEmpty=function(){return 0===r.state.query.length},r.handleActiveItemChange=function(e){return r.setState({activeItem:e})},r.handleTargetKeyDown=function(e){e.which!==m.Keys.ARROW_UP&&e.which!==m.Keys.ARROW_DOWN||r.setState({isOpen:!0})},r.handleItemSelect=function(e,t){r.setState({isOpen:!1}),r.props.resetOnSelect&&r.resetQuery(),m.Utils.safeInvoke(r.props.onItemSelect,e,t)},r.handlePopoverInteraction=function(e){r.setState({isOpen:e});var t=r.props.popoverProps,n=void 0===t?{}:t;m.Utils.safeInvoke(n.onInteraction,e)},r.handlePopoverWillOpen=function(){var e=r.props,t=e.popoverProps,n=void 0===t?{}:t,o=e.resetOnClose;r.previousFocusedElement=document.activeElement,o&&r.resetQuery(),m.Utils.safeInvoke(n.popoverWillOpen)},r.handlePopoverDidOpen=function(){null!=r.list&&r.list.scrollActiveItemIntoView(),requestAnimationFrame(function(){var e=r.props.inputProps;!1!==(void 0===e?{}:e).autoFocus&&null!=r.input&&r.input.focus()});var e=r.props.popoverProps,t=void 0===e?{}:e;m.Utils.safeInvoke(t.popoverDidOpen)},r.handlePopoverWillClose=function(){requestAnimationFrame(function(){void 0!==r.previousFocusedElement&&(r.previousFocusedElement.focus(),r.previousFocusedElement=void 0)});var e=r.props.popoverProps,t=void 0===e?{}:e;m.Utils.safeInvoke(t.popoverWillClose)},r.handleQueryChange=function(e){var t=r.props,n=t.inputProps,o=void 0===n?{}:n,i=t.onQueryChange,s=e.currentTarget.value;r.setState({query:s}),m.Utils.safeInvoke(o.onChange,e),m.Utils.safeInvoke(i,s)},r.resetQuery=function(){var e=r.props,t=e.items,n=e.onQueryChange;r.setState({activeItem:t[0],query:""}),m.Utils.safeInvoke(n,"")};var o=t&&t.inputProps&&void 0!==t.inputProps.value?t.inputProps.value:"";return r.state={isOpen:!1,query:o},r}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=(e.filterable,e.initialContent,e.inputProps,e.noResults,e.popoverProps,v(e,["filterable","initialContent","inputProps","noResults","popoverProps"]));return f.createElement(this.TypedQueryList,c({},t,{activeItem:this.state.activeItem,onActiveItemChange:this.handleActiveItemChange,onItemSelect:this.handleItemSelect,query:this.state.query,ref:this.refHandlers.queryList,renderer:this.renderQueryList}))},t.prototype.componentWillReceiveProps=function(e){var t=e.inputProps,n=void 0===t?{}:t;void 0!==n.value&&this.state.query!==n.value&&this.setState({query:n.value})},t.prototype.componentDidUpdate=function(e,t){this.state.isOpen&&!t.isOpen&&null!=this.list&&this.list.scrollActiveItemIntoView()},t.prototype.renderItems=function(e){var t=e.items,n=e.renderItem,r=this.props,o=r.initialContent,i=r.noResults;if(null!=o&&this.isQueryEmpty())return o;var s=t.map(n).filter(function(e){return null!=e});return s.length>0?s:i},t.prototype.maybeRenderInputClearButton=function(){return this.isQueryEmpty()?void 0:f.createElement(m.Button,{className:m.Classes.MINIMAL,icon:"cross",onClick:this.resetQuery})},t.displayName="Blueprint2.Select",t}(f.PureComponent),S=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={isOpen:!1,isTyping:!1,query:""},t.DEFAULT_PROPS={closeOnSelect:!0,inputProps:{},openOnKeyDown:!1,popoverProps:{}},t.TypedQueryList=y.ofType(),t.refHandlers={input:function(e){return t.input=e},queryList:function(e){return t.queryList=e}},t.renderQueryList=function(e){var n=t.props,r=n.inputValueRenderer,o=n.inputProps,i=void 0===o?t.DEFAULT_PROPS.inputProps:o,s=n.popoverProps,p=void 0===s?t.DEFAULT_PROPS.popoverProps:s,u=t.state,l=u.isTyping,v=u.selectedItem,y=u.query,h=e.handleKeyDown,I=e.handleKeyUp,P=l?y:v?r(v):"";return f.createElement(m.Popover,c({autoFocus:!1,enforceFocus:!1,isOpen:t.state.isOpen,position:m.Position.BOTTOM_LEFT},p,{className:d(e.className,p.className),onInteraction:t.handlePopoverInteraction,popoverClassName:d(a,p.popoverClassName),popoverDidOpen:t.handlePopoverDidOpen,popoverWillClose:t.handlePopoverWillClose}),f.createElement(m.InputGroup,c({placeholder:"Search...",value:P},i,{inputRef:t.refHandlers.input,onChange:t.handleQueryChange,onFocus:t.handleInputFocus,onKeyDown:t.getTargetKeyDownHandler(h),onKeyUp:t.getTargetKeyUpHandler(I)})),f.createElement("div",{onKeyDown:h,onKeyUp:I},f.createElement(m.Menu,{ulRef:e.itemsParentRef},t.renderItems(e))))},t.selectText=function(){null!=t.input&&requestAnimationFrame(function(){return t.input.setSelectionRange(0,t.input.value.length)})},t.handleInputFocus=function(e){var n=t.props,r=n.openOnKeyDown,o=void 0===r?t.DEFAULT_PROPS.openOnKeyDown:r,i=n.inputProps,s=void 0===i?t.DEFAULT_PROPS.inputProps:i;t.selectText(),o||t.setState({isOpen:!0}),m.Utils.safeInvoke(s.onFocus,e)},t.handleActiveItemChange=function(e){return t.setState({activeItem:e})},t.handleItemSelect=function(e,n){var r,o=t.props.closeOnSelect;(void 0===o?t.DEFAULT_PROPS.closeOnSelect:o)?(t.input.blur(),r=!1):(t.input.focus(),t.selectText(),r=!0),t.setState({isOpen:r,isTyping:!1,query:"",selectedItem:e}),m.Utils.safeInvoke(t.props.onItemSelect,e,n)},t.handlePopoverInteraction=function(e){return requestAnimationFrame(function(){var n=t.props.popoverProps,r=void 0===n?{}:n;null!=t.input&&t.input!==document.activeElement&&t.setState({isOpen:!1}),m.Utils.safeInvoke(r.onInteraction,e)})},t.handlePopoverDidOpen=function(){var e=t.props.popoverProps,n=void 0===e?{}:e;null!=t.queryList&&t.queryList.scrollActiveItemIntoView(),m.Utils.safeInvoke(n.popoverDidOpen)},t.handlePopoverWillClose=function(){var e=t.props.popoverProps,n=void 0===e?{}:e,r=t.state.selectedItem;t.setState({activeItem:r||t.props.items[0],query:""}),m.Utils.safeInvoke(n.popoverDidOpen)},t.handleQueryChange=function(e){var n=t.props.inputProps,r=void 0===n?t.DEFAULT_PROPS.inputProps:n;t.setState({isTyping:!0,query:e.currentTarget.value}),m.Utils.safeInvoke(r.onChange,e)},t.getTargetKeyDownHandler=function(e){return function(n){var r=n.which,o=t.state,i=o.isTyping,s=o.selectedItem,p=t.props,a=p.inputProps,u=void 0===a?t.DEFAULT_PROPS.inputProps:a,l=p.openOnKeyDown,c=void 0===l?t.DEFAULT_PROPS.openOnKeyDown:l;r===m.Keys.ESCAPE||r===m.Keys.TAB?(t.input.blur(),t.setState({isOpen:!1,selectedItem:i?void 0:s})):c&&r!==m.Keys.BACKSPACE&&r!==m.Keys.ARROW_LEFT&&r!==m.Keys.ARROW_RIGHT&&t.setState({isOpen:!0}),t.state.isOpen&&m.Utils.safeInvoke(e,n),m.Utils.safeInvoke(u.onKeyDown,n)}},t.getTargetKeyUpHandler=function(e){return function(n){var r=t.props.inputProps,o=void 0===r?t.DEFAULT_PROPS.inputProps:r;t.state.isOpen&&m.Utils.safeInvoke(e,n),m.Utils.safeInvoke(o.onKeyUp,n)}},t}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=(e.inputProps,e.noResults,e.popoverProps,v(e,["inputProps","noResults","popoverProps"]));return f.createElement(this.TypedQueryList,c({},t,{activeItem:this.state.activeItem,onActiveItemChange:this.handleActiveItemChange,onItemSelect:this.handleItemSelect,query:this.state.query,ref:this.refHandlers.queryList,renderer:this.renderQueryList}))},t.prototype.componentDidUpdate=function(e,t){this.state.isOpen&&!t.isOpen&&null!=this.queryList&&this.queryList.scrollActiveItemIntoView()},t.prototype.renderItems=function(e){var t=e.items,n=e.renderItem,r=t.map(n).filter(function(e){return null!=e});return r.length>0?r:this.props.noResults},t.displayName="Blueprint2.Suggest",t}(f.PureComponent);n.d(t,"MULTISELECT",function(){return r}),n.d(t,"MULTISELECT_POPOVER",function(){return o}),n.d(t,"OMNIBAR",function(){return i}),n.d(t,"OMNIBAR_OVERLAY",function(){return s}),n.d(t,"SELECT",function(){return p}),n.d(t,"SELECT_POPOVER",function(){return a}),n.d(t,"Omnibar",function(){return P}),n.d(t,"QueryList",function(){return y}),n.d(t,"MultiSelect",function(){return O}),n.d(t,"Select",function(){return g}),n.d(t,"Suggest",function(){return S})}])});
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("React"),require("classNames")):"function"==typeof define&&define.amd?define(["React","classNames"],t):"object"==typeof exports?exports.Select=t(require("React"),require("classNames")):(e.Blueprint=e.Blueprint||{},e.Blueprint.Select=t(e.React,e.classNames))}("undefined"!=typeof self?self:this,function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},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=3)}([function(t,n){t.exports=e},function(e,t){e.exports=Blueprint.Core},function(e,n){e.exports=t},function(e,t,n){e.exports=n(4)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="pt-multi-select",o=r+"-popover",i="pt-omnibar",s=i+"-overlay",p="pt-select",a=p+"-popover",u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};function l(e,t){function n(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var c=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++){t=arguments[n];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};function v(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&(n[r[o]]=e[r[o]])}return n}var d=n(2),f=n.n(d),m=n(0),y=n(1),h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.refHandlers={itemsParent:function(e){return t.itemsParentRef=e}},t.shouldCheckActiveItemInViewport=!1,t.handleItemSelect=function(e,n){y.Utils.safeInvoke(t.props.onActiveItemChange,e),y.Utils.safeInvoke(t.props.onItemSelect,e,n)},t.handleKeyDown=function(e){switch(e.keyCode){case y.Keys.ARROW_UP:e.preventDefault(),t.moveActiveIndex(-1);break;case y.Keys.ARROW_DOWN:e.preventDefault(),t.moveActiveIndex(1)}y.Utils.safeInvoke(t.props.onKeyDown,e)},t.handleKeyUp=function(e){var n=t.props,r=n.activeItem,o=n.onItemSelect,i=n.onKeyUp;e.keyCode===y.Keys.ENTER&&null!=r&&(e.preventDefault(),y.Utils.safeInvoke(o,r,e)),y.Utils.safeInvoke(i,e)},t.renderItem=function(e,n){var r=t.props,o=r.activeItem,i=r.itemListPredicate,s=r.itemPredicate,p=void 0===s?function(){return!0}:s,a=r.query,u=y.Utils.isFunction(i)?t.state.filteredItems.indexOf(e)>=0:p(a,e,n),l={active:o===e,disabled:!1,matchesPredicate:u};return t.props.itemRenderer(e,{handleClick:function(n){return t.handleItemSelect(e,n)},index:n,modifiers:l})},t}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=e.className,n=e.items,r=e.renderer,o=e.query;return r({className:t,handleItemSelect:this.handleItemSelect,handleKeyDown:this.handleKeyDown,handleKeyUp:this.handleKeyUp,items:n,itemsParentRef:this.refHandlers.itemsParent,query:o,renderItem:this.renderItem})},t.prototype.componentWillMount=function(){this.setState({filteredItems:P(this.props)})},t.prototype.componentWillReceiveProps=function(e){e.items===this.props.items&&e.itemListPredicate===this.props.itemListPredicate&&e.itemPredicate===this.props.itemPredicate&&e.query===this.props.query||(this.shouldCheckActiveItemInViewport=!0,this.setState({filteredItems:P(e)}))},t.prototype.componentDidUpdate=function(){var e=this;this.shouldCheckActiveItemInViewport&&(requestAnimationFrame(function(){return e.scrollActiveItemIntoView()}),this.shouldCheckActiveItemInViewport=!1),this.getActiveIndex()<0&&(0!==this.state.filteredItems.length||void 0!==this.props.activeItem)&&y.Utils.safeInvoke(this.props.onActiveItemChange,this.state.filteredItems[0])},t.prototype.scrollActiveItemIntoView=function(){var e=this.getActiveElement();if(null!=this.itemsParentRef&&null!=e){var t=e.offsetTop,n=e.offsetHeight,r=this.itemsParentRef,o=r.offsetTop,i=r.scrollTop,s=r.clientHeight,p=this.getItemsParentPadding(),a=p.paddingTop,u=t+n+p.paddingBottom-o,l=t-a-o;u>=i+s?this.itemsParentRef.scrollTop=u+n-s:l<=i&&(this.itemsParentRef.scrollTop=l-n)}},t.prototype.getActiveElement=function(){if(null!=this.itemsParentRef)return this.itemsParentRef.children.item(this.getActiveIndex())},t.prototype.getActiveIndex=function(){var e=this.props.activeItem;return null==e?-1:this.state.filteredItems.indexOf(e)},t.prototype.getItemsParentPadding=function(){var e=getComputedStyle(this.itemsParentRef),t=e.paddingTop;return{paddingBottom:I(e.paddingBottom),paddingTop:I(t)}},t.prototype.moveActiveIndex=function(e){this.shouldCheckActiveItemInViewport=!0;var t=this.state.filteredItems,n=Math.max(t.length-1,0),r=y.Utils.clamp(this.getActiveIndex()+e,0,n);y.Utils.safeInvoke(this.props.onActiveItemChange,t[r])},t.displayName="Blueprint2.QueryList",t}(m.Component);function I(e){return null==e?0:parseInt(e.slice(0,-2),10)}function P(e){var t=e.items,n=e.itemPredicate,r=e.itemListPredicate,o=e.query;return y.Utils.isFunction(r)?r(o,t):y.Utils.isFunction(n)?t.filter(function(e,t){return n(o,e,t)}):t}var O=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={query:""},t.TypedQueryList=h.ofType(),t.refHandlers={queryList:function(e){return t.queryList=e}},t.renderQueryList=function(e){var n=t.props,r=n.inputProps,o=void 0===r?{}:r,p=n.isOpen,a=n.overlayProps,u=void 0===a?{}:a,l=e.handleKeyDown,v=e.handleKeyUp,d=p&&!t.isQueryEmpty()?{onKeyDown:l,onKeyUp:v}:{};return m.createElement(y.Overlay,c({hasBackdrop:!0},u,{isOpen:p,className:f()(u.className,s),onClose:t.handleOverlayClose}),m.createElement("div",c({className:f()(e.className,i)},d),m.createElement(y.InputGroup,c({autoFocus:!0,className:y.Classes.LARGE,leftIcon:"search",placeholder:"Search...",value:e.query},o,{onChange:t.handleQueryChange})),t.maybeRenderMenu(e)))},t.isQueryEmpty=function(){return 0===t.state.query.length},t.handleActiveItemChange=function(e){return t.setState({activeItem:e})},t.handleItemSelect=function(e,n){t.isQueryEmpty()||y.Utils.safeInvoke(t.props.onItemSelect,e,n)},t.handleQueryChange=function(e){var n=t.props.inputProps,r=void 0===n?{}:n;t.setState({query:e.currentTarget.value}),y.Utils.safeInvoke(r.onChange,e)},t.handleOverlayClose=function(e){y.Utils.safeInvoke(t.props.onClose,e)},t}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=(e.initialContent,e.isOpen,e.inputProps,e.noResults,e.overlayProps,v(e,["initialContent","isOpen","inputProps","noResults","overlayProps"]));return m.createElement(this.TypedQueryList,c({},t,{activeItem:this.state.activeItem,onActiveItemChange:this.handleActiveItemChange,onItemSelect:this.handleItemSelect,query:this.state.query,ref:this.refHandlers.queryList,renderer:this.renderQueryList}))},t.prototype.componentWillReceiveProps=function(e){var t=e.isOpen,n=!this.props.isOpen&&t&&this.props.resetOnSelect;this.setState({activeItem:n?this.props.items[0]:this.state.activeItem,query:n?"":this.state.query})},t.prototype.renderItems=function(e){var t=e.items,n=e.renderItem,r=t.map(n).filter(function(e){return null!=e});return r.length>0?r:this.props.noResults},t.prototype.maybeRenderMenu=function(e){var t,n=this.props.initialContent;if(this.isQueryEmpty()?null!=n&&(t=n):t=this.renderItems(e),null!=t)return m.createElement(y.Menu,{ulRef:e.itemsParentRef},t)},t.displayName="Blueprint2.Omnibar",t}(m.PureComponent),g=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={isOpen:!1,query:""},t.TypedQueryList=h.ofType(),t.refHandlers={input:function(e){t.input=e;var n=t.props.tagInputProps,r=void 0===n?{}:n;y.Utils.safeInvoke(r.inputRef,e)},queryList:function(e){return t.queryList=e}},t.renderQueryList=function(e){var n=t.props,i=n.tagInputProps,s=void 0===i?{}:i,p=n.popoverProps,a=void 0===p?{}:p,u=n.selectedItems,l=void 0===u?[]:u,v=e.handleKeyDown,d=e.handleKeyUp,h=e.query,I=c({placeholder:"Search..."},s.inputProps,{onChange:t.handleQueryChange,value:h});return m.createElement(y.Popover,c({autoFocus:!1,canEscapeKeyClose:!0,enforceFocus:!1,isOpen:t.state.isOpen,position:y.Position.BOTTOM_LEFT},a,{className:f()(e.className,a.className),onInteraction:t.handlePopoverInteraction,popoverClassName:f()(o,a.popoverClassName),popoverDidOpen:t.handlePopoverDidOpen,popoverWillOpen:t.handlePopoverWillOpen}),m.createElement("div",{onKeyDown:t.getTargetKeyDownHandler(v),onKeyUp:t.state.isOpen?d:void 0},m.createElement(y.TagInput,c({},s,{inputProps:I,inputRef:t.refHandlers.input,className:f()(r,s.className),values:l.map(t.props.tagRenderer)}))),m.createElement("div",{onKeyDown:t.getTargetKeyDownHandler(v),onKeyUp:d},m.createElement(y.Menu,{ulRef:e.itemsParentRef},t.renderItems(e))))},t.isQueryEmpty=function(){return 0===t.state.query.length},t.handleQueryChange=function(e){var n=t.props,r=n.tagInputProps,o=void 0===r?{}:r,i=n.openOnKeyDown,s=e.currentTarget.value;t.setState({query:s,isOpen:!t.isQueryEmpty()||!i}),null!=o.inputProps&&y.Utils.safeInvoke(o.inputProps.onChange,e)},t.handleItemSelect=function(e,n){null!=t.input&&t.input.focus(),null!=t.state.activeItem&&(t.props.resetOnSelect&&!t.isQueryEmpty()&&t.setState({activeItem:t.props.items[0],query:""}),y.Utils.safeInvoke(t.props.onItemSelect,e,n))},t.handlePopoverInteraction=function(e){return requestAnimationFrame(function(){var n=t.props,r=n.popoverProps,o=void 0===r?{}:r,i=n.resetOnSelect;null!=t.input&&t.input!==document.activeElement?t.setState({activeItem:i?t.props.items[0]:t.state.activeItem,isOpen:!1,query:i?"":t.state.query}):t.props.openOnKeyDown||t.setState({isOpen:!0}),y.Utils.safeInvoke(o.onInteraction,e)})},t.handlePopoverWillOpen=function(){var e=t.props,n=e.popoverProps,r=void 0===n?{}:n;e.resetOnSelect&&t.setState({activeItem:t.props.items[0]}),y.Utils.safeInvoke(r.popoverWillOpen)},t.handlePopoverDidOpen=function(){var e=t.props.popoverProps,n=void 0===e?{}:e;null!=t.queryList&&t.queryList.scrollActiveItemIntoView(),y.Utils.safeInvoke(n.popoverDidOpen)},t.handleActiveItemChange=function(e){return t.setState({activeItem:e})},t.getTargetKeyDownHandler=function(e){return function(n){var r=n.which,o=t.props.resetOnSelect;r===y.Keys.ESCAPE||r===y.Keys.TAB?(null!=t.input&&t.input.blur(),t.setState({activeItem:o?t.props.items[0]:t.state.activeItem,isOpen:!1,query:o?"":t.state.query})):r!==y.Keys.BACKSPACE&&r!==y.Keys.ARROW_LEFT&&r!==y.Keys.ARROW_RIGHT&&t.setState({isOpen:!0}),t.state.isOpen&&y.Utils.safeInvoke(e,n)}},t}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=(e.initialContent,e.noResults,e.openOnKeyDown,e.popoverProps,e.resetOnSelect,e.tagInputProps,v(e,["initialContent","noResults","openOnKeyDown","popoverProps","resetOnSelect","tagInputProps"]));return m.createElement(this.TypedQueryList,c({},t,{activeItem:this.state.activeItem,onActiveItemChange:this.handleActiveItemChange,onItemSelect:this.handleItemSelect,query:this.state.query,ref:this.refHandlers.queryList,renderer:this.renderQueryList}))},t.prototype.renderItems=function(e){var t=e.items,n=e.renderItem,r=this.props,o=r.initialContent,i=r.noResults;if(null!=o&&this.isQueryEmpty())return o;var s=t.map(n).filter(function(e){return null!=e});return s.length>0?s:i},t.displayName="Blueprint2.MultiSelect",t}(m.PureComponent),C=function(e){function t(t,n){var r=e.call(this,t,n)||this;r.TypedQueryList=h.ofType(),r.refHandlers={input:function(e){r.input=e;var t=r.props.inputProps,n=void 0===t?{}:t;y.Utils.safeInvoke(n.inputRef,e)},queryList:function(e){return r.list=e}},r.renderQueryList=function(e){var t=r.props,n=t.filterable,o=void 0===n||n,i=t.disabled,s=void 0!==i&&i,p=t.inputProps,u=void 0===p?{}:p,l=t.popoverProps,v=void 0===l?{}:l,d=m.createElement(y.InputGroup,c({autoFocus:!0,leftIcon:"search",placeholder:"Filter...",rightElement:r.maybeRenderInputClearButton(),value:e.query},u,{inputRef:r.refHandlers.input,onChange:r.handleQueryChange})),h=e.handleKeyDown,I=e.handleKeyUp;return m.createElement(y.Popover,c({autoFocus:!1,enforceFocus:!1,isOpen:r.state.isOpen,disabled:s,position:y.Position.BOTTOM_LEFT},v,{className:f()(e.className,v.className),onInteraction:r.handlePopoverInteraction,popoverClassName:f()(a,v.popoverClassName),popoverWillOpen:r.handlePopoverWillOpen,popoverDidOpen:r.handlePopoverDidOpen,popoverWillClose:r.handlePopoverWillClose}),m.createElement("div",{onKeyDown:r.state.isOpen?h:r.handleTargetKeyDown,onKeyUp:r.state.isOpen?I:void 0},r.props.children),m.createElement("div",{onKeyDown:h,onKeyUp:I},o?d:void 0,m.createElement(y.Menu,{ulRef:e.itemsParentRef},r.renderItems(e))))},r.isQueryEmpty=function(){return 0===r.state.query.length},r.handleActiveItemChange=function(e){return r.setState({activeItem:e})},r.handleTargetKeyDown=function(e){e.which!==y.Keys.ARROW_UP&&e.which!==y.Keys.ARROW_DOWN||r.setState({isOpen:!0})},r.handleItemSelect=function(e,t){r.setState({isOpen:!1}),r.props.resetOnSelect&&r.resetQuery(),y.Utils.safeInvoke(r.props.onItemSelect,e,t)},r.handlePopoverInteraction=function(e){r.setState({isOpen:e});var t=r.props.popoverProps,n=void 0===t?{}:t;y.Utils.safeInvoke(n.onInteraction,e)},r.handlePopoverWillOpen=function(){var e=r.props,t=e.popoverProps,n=void 0===t?{}:t,o=e.resetOnClose;r.previousFocusedElement=document.activeElement,o&&r.resetQuery(),y.Utils.safeInvoke(n.popoverWillOpen)},r.handlePopoverDidOpen=function(){null!=r.list&&r.list.scrollActiveItemIntoView(),requestAnimationFrame(function(){var e=r.props.inputProps;!1!==(void 0===e?{}:e).autoFocus&&null!=r.input&&r.input.focus()});var e=r.props.popoverProps,t=void 0===e?{}:e;y.Utils.safeInvoke(t.popoverDidOpen)},r.handlePopoverWillClose=function(){requestAnimationFrame(function(){void 0!==r.previousFocusedElement&&(r.previousFocusedElement.focus(),r.previousFocusedElement=void 0)});var e=r.props.popoverProps,t=void 0===e?{}:e;y.Utils.safeInvoke(t.popoverWillClose)},r.handleQueryChange=function(e){var t=r.props,n=t.inputProps,o=void 0===n?{}:n,i=t.onQueryChange,s=e.currentTarget.value;r.setState({query:s}),y.Utils.safeInvoke(o.onChange,e),y.Utils.safeInvoke(i,s)},r.resetQuery=function(){var e=r.props,t=e.items,n=e.onQueryChange;r.setState({activeItem:t[0],query:""}),y.Utils.safeInvoke(n,"")};var o=t.inputProps,i=void 0===o?{}:o,s=null==i.value?"":i.value.toString();return r.state={isOpen:!1,query:s},r}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=(e.filterable,e.initialContent,e.inputProps,e.noResults,e.popoverProps,v(e,["filterable","initialContent","inputProps","noResults","popoverProps"]));return m.createElement(this.TypedQueryList,c({},t,{activeItem:this.state.activeItem,onActiveItemChange:this.handleActiveItemChange,onItemSelect:this.handleItemSelect,query:this.state.query,ref:this.refHandlers.queryList,renderer:this.renderQueryList}))},t.prototype.componentWillReceiveProps=function(e){var t=e.inputProps,n=void 0===t?{}:t;void 0!==n.value&&this.state.query!==n.value&&this.setState({query:n.value.toString()})},t.prototype.componentDidUpdate=function(e,t){this.state.isOpen&&!t.isOpen&&null!=this.list&&this.list.scrollActiveItemIntoView()},t.prototype.renderItems=function(e){var t=e.items,n=e.renderItem,r=this.props,o=r.initialContent,i=r.noResults;if(null!=o&&this.isQueryEmpty())return o;var s=t.map(n).filter(function(e){return null!=e});return s.length>0?s:i},t.prototype.maybeRenderInputClearButton=function(){return this.isQueryEmpty()?void 0:m.createElement(y.Button,{className:y.Classes.MINIMAL,icon:"cross",onClick:this.resetQuery})},t.displayName="Blueprint2.Select",t}(m.PureComponent),S=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={isOpen:!1,isTyping:!1,query:""},t.TypedQueryList=h.ofType(),t.refHandlers={input:function(e){t.input=e;var n=t.props.inputProps,r=void 0===n?{}:n;y.Utils.safeInvoke(r.inputRef,e)},queryList:function(e){return t.queryList=e}},t.renderQueryList=function(e){var n=t.props,r=n.inputValueRenderer,o=n.inputProps,i=void 0===o?{}:o,s=n.popoverProps,p=void 0===s?{}:s,u=t.state,l=u.isTyping,v=u.selectedItem,d=u.query,h=e.handleKeyDown,I=e.handleKeyUp,P=l?d:v?r(v):"";return m.createElement(y.Popover,c({autoFocus:!1,enforceFocus:!1,isOpen:t.state.isOpen,position:y.Position.BOTTOM_LEFT},p,{className:f()(e.className,p.className),onInteraction:t.handlePopoverInteraction,popoverClassName:f()(a,p.popoverClassName),popoverDidOpen:t.handlePopoverDidOpen,popoverWillClose:t.handlePopoverWillClose}),m.createElement(y.InputGroup,c({placeholder:"Search...",value:P},i,{inputRef:t.refHandlers.input,onChange:t.handleQueryChange,onFocus:t.handleInputFocus,onKeyDown:t.getTargetKeyDownHandler(h),onKeyUp:t.getTargetKeyUpHandler(I)})),m.createElement("div",{onKeyDown:h,onKeyUp:I},m.createElement(y.Menu,{ulRef:e.itemsParentRef},t.renderItems(e))))},t.selectText=function(){requestAnimationFrame(function(){null!=t.input&&t.input.setSelectionRange(0,t.input.value.length)})},t.handleInputFocus=function(e){var n=t.props,r=n.openOnKeyDown,o=n.inputProps,i=void 0===o?{}:o;t.selectText(),r||t.setState({isOpen:!0}),y.Utils.safeInvoke(i.onFocus,e)},t.handleActiveItemChange=function(e){return t.setState({activeItem:e})},t.handleItemSelect=function(e,n){var r;t.props.closeOnSelect?(null!=t.input&&t.input.blur(),r=!1):(null!=t.input&&t.input.focus(),t.selectText(),r=!0),t.setState({isOpen:r,isTyping:!1,query:"",selectedItem:e}),y.Utils.safeInvoke(t.props.onItemSelect,e,n)},t.handlePopoverInteraction=function(e){return requestAnimationFrame(function(){var n=t.props.popoverProps,r=void 0===n?{}:n;null!=t.input&&t.input!==document.activeElement&&t.setState({isOpen:!1}),y.Utils.safeInvoke(r.onInteraction,e)})},t.handlePopoverDidOpen=function(){var e=t.props.popoverProps,n=void 0===e?{}:e;null!=t.queryList&&t.queryList.scrollActiveItemIntoView(),y.Utils.safeInvoke(n.popoverDidOpen)},t.handlePopoverWillClose=function(){var e=t.props.popoverProps,n=void 0===e?{}:e,r=t.state.selectedItem;t.setState({activeItem:r||t.props.items[0],query:""}),y.Utils.safeInvoke(n.popoverDidOpen)},t.handleQueryChange=function(e){var n=t.props.inputProps,r=void 0===n?{}:n;t.setState({isTyping:!0,query:e.currentTarget.value}),y.Utils.safeInvoke(r.onChange,e)},t.getTargetKeyDownHandler=function(e){return function(n){var r=n.which,o=t.state,i=o.isTyping,s=o.selectedItem,p=t.props,a=p.inputProps,u=void 0===a?{}:a,l=p.openOnKeyDown;r===y.Keys.ESCAPE||r===y.Keys.TAB?(null!=t.input&&t.input.blur(),t.setState({isOpen:!1,selectedItem:i?void 0:s})):l&&r!==y.Keys.BACKSPACE&&r!==y.Keys.ARROW_LEFT&&r!==y.Keys.ARROW_RIGHT&&t.setState({isOpen:!0}),t.state.isOpen&&y.Utils.safeInvoke(e,n),y.Utils.safeInvoke(u.onKeyDown,n)}},t.getTargetKeyUpHandler=function(e){return function(n){var r=t.props.inputProps,o=void 0===r?{}:r;t.state.isOpen&&y.Utils.safeInvoke(e,n),y.Utils.safeInvoke(o.onKeyUp,n)}},t}return l(t,e),t.ofType=function(){return t},t.prototype.render=function(){var e=this.props,t=(e.inputProps,e.noResults,e.popoverProps,v(e,["inputProps","noResults","popoverProps"]));return m.createElement(this.TypedQueryList,c({},t,{activeItem:this.state.activeItem,onActiveItemChange:this.handleActiveItemChange,onItemSelect:this.handleItemSelect,query:this.state.query,ref:this.refHandlers.queryList,renderer:this.renderQueryList}))},t.prototype.componentDidUpdate=function(e,t){this.state.isOpen&&!t.isOpen&&null!=this.queryList&&this.queryList.scrollActiveItemIntoView()},t.prototype.renderItems=function(e){var t=e.items,n=e.renderItem,r=t.map(n).filter(function(e){return null!=e});return r.length>0?r:this.props.noResults},t.displayName="Blueprint2.Suggest",t.defaultProps={closeOnSelect:!0,openOnKeyDown:!1},t}(m.PureComponent);n.d(t,"MULTISELECT",function(){return r}),n.d(t,"MULTISELECT_POPOVER",function(){return o}),n.d(t,"OMNIBAR",function(){return i}),n.d(t,"OMNIBAR_OVERLAY",function(){return s}),n.d(t,"SELECT",function(){return p}),n.d(t,"SELECT_POPOVER",function(){return a}),n.d(t,"Omnibar",function(){return O}),n.d(t,"QueryList",function(){return h}),n.d(t,"MultiSelect",function(){return g}),n.d(t,"Select",function(){return C}),n.d(t,"Suggest",function(){return S})}])});

@@ -16,2 +16,2 @@ /**

*/
export declare type ItemPredicate<T> = (query: string, item: T, index: number) => boolean;
export declare type ItemPredicate<T> = (query: string, item: T, index?: number) => boolean;

@@ -43,10 +43,10 @@ /// <reference types="react" />

activeItem?: T;
query?: string;
query: string;
}
export declare class Omnibar<T> extends React.PureComponent<IOmnibarProps<T>, IOmnibarState<T>> {
static displayName: string;
static ofType<T>(): new () => Omnibar<T>;
static ofType<T>(): new (props: IOmnibarProps<T>) => Omnibar<T>;
state: IOmnibarState<T>;
private TypedQueryList;
private queryList;
private queryList?;
private refHandlers;

@@ -53,0 +53,0 @@ render(): JSX.Element;

@@ -9,6 +9,6 @@ "use strict";

var tslib_1 = require("tslib");
var classNames = require("classnames");
var React = require("react");
var classnames_1 = tslib_1.__importDefault(require("classnames"));
var React = tslib_1.__importStar(require("react"));
var core_1 = require("@blueprintjs/core");
var Classes = require("../../common/classes");
var Classes = tslib_1.__importStar(require("../../common/classes"));
var queryList_1 = require("../query-list/queryList");

@@ -30,4 +30,4 @@ var Omnibar = /** @class */ (function (_super) {

var handlers = isOpen && !_this.isQueryEmpty() ? { onKeyDown: handleKeyDown, onKeyUp: handleKeyUp } : {};
return (React.createElement(core_1.Overlay, tslib_1.__assign({ hasBackdrop: true }, overlayProps, { isOpen: isOpen, className: classNames(overlayProps.className, Classes.OMNIBAR_OVERLAY), onClose: _this.handleOverlayClose }),
React.createElement("div", tslib_1.__assign({ className: classNames(listProps.className, Classes.OMNIBAR) }, handlers),
return (React.createElement(core_1.Overlay, tslib_1.__assign({ hasBackdrop: true }, overlayProps, { isOpen: isOpen, className: classnames_1.default(overlayProps.className, Classes.OMNIBAR_OVERLAY), onClose: _this.handleOverlayClose }),
React.createElement("div", tslib_1.__assign({ className: classnames_1.default(listProps.className, Classes.OMNIBAR) }, handlers),
React.createElement(core_1.InputGroup, tslib_1.__assign({ autoFocus: true, className: core_1.Classes.LARGE, leftIcon: "search", placeholder: "Search...", value: listProps.query }, inputProps, { onChange: _this.handleQueryChange })),

@@ -34,0 +34,0 @@ _this.maybeRenderMenu(listProps))));

@@ -80,3 +80,3 @@ /// <reference types="react" />

*/
handleItemSelect: (item: T | undefined, event?: React.SyntheticEvent<HTMLElement>) => void;
handleItemSelect: (item: T, event?: React.SyntheticEvent<HTMLElement>) => void;
/**

@@ -97,3 +97,3 @@ * Keyboard handler for up/down arrow keys to shift the active item.

*/
renderItem: (item: T, index?: number) => JSX.Element;
renderItem: (item: T, index?: number) => JSX.Element | null;
/**

@@ -108,3 +108,3 @@ * Array of all (unfiltered) items in the list.

*/
itemsParentRef: (ref: HTMLElement) => void;
itemsParentRef: (ref: HTMLElement | null) => void;
/**

@@ -117,3 +117,3 @@ * Controlled query string. Attach an `onChange` handler to the relevant

export interface IQueryListState<T> {
filteredItems?: T[];
filteredItems: T[];
}

@@ -123,3 +123,3 @@ export declare class QueryList<T> extends React.Component<IQueryListProps<T>, IQueryListState<T>> {

static ofType<T>(): new (props: IQueryListProps<T>) => QueryList<T>;
private itemsParentRef;
private itemsParentRef?;
private refHandlers;

@@ -126,0 +126,0 @@ /**

@@ -9,3 +9,3 @@ "use strict";

var tslib_1 = require("tslib");
var React = require("react");
var React = tslib_1.__importStar(require("react"));
var core_1 = require("@blueprintjs/core");

@@ -19,2 +19,7 @@ var QueryList = /** @class */ (function (_super) {

};
/**
* flag indicating that we should check whether selected item is in viewport after rendering,
* typically because of keyboard change.
*/
_this.shouldCheckActiveItemInViewport = false;
_this.handleItemSelect = function (item, event) {

@@ -44,3 +49,3 @@ core_1.Utils.safeInvoke(_this.props.onActiveItemChange, item);

// and the popvoer would re-open out of our control :(.
if (event.keyCode === core_1.Keys.ENTER) {
if (event.keyCode === core_1.Keys.ENTER && activeItem != null) {
event.preventDefault();

@@ -73,4 +78,5 @@ core_1.Utils.safeInvoke(onItemSelect, activeItem, event);

QueryList.prototype.render = function () {
var _a = this.props, items = _a.items, renderer = _a.renderer, query = _a.query;
var _a = this.props, className = _a.className, items = _a.items, renderer = _a.renderer, query = _a.query;
return renderer({
className: className,
handleItemSelect: this.handleItemSelect,

@@ -140,6 +146,8 @@ handleKeyDown: this.handleKeyDown,

QueryList.prototype.getActiveIndex = function () {
var activeItem = this.props.activeItem;
// NOTE: this operation is O(n) so it should be avoided in render(). safe for events though.
return this.state.filteredItems.indexOf(this.props.activeItem);
return activeItem == null ? -1 : this.state.filteredItems.indexOf(activeItem);
};
QueryList.prototype.getItemsParentPadding = function () {
// assert ref exists because it was checked before calling
var _a = getComputedStyle(this.itemsParentRef), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom;

@@ -165,3 +173,3 @@ return {

function pxToNumber(value) {
return parseInt(value.slice(0, -2), 10);
return value == null ? 0 : parseInt(value.slice(0, -2), 10);
}

@@ -168,0 +176,0 @@ function getFilteredItems(_a) {

@@ -35,12 +35,12 @@ /// <reference types="react" />

activeItem?: T;
isOpen?: boolean;
query?: string;
isOpen: boolean;
query: string;
}
export declare class MultiSelect<T> extends React.PureComponent<IMultiSelectProps<T>, IMultiSelectState<T>> {
static displayName: string;
static ofType<T>(): new () => MultiSelect<T>;
static ofType<T>(): new (props: IMultiSelectProps<T>) => MultiSelect<T>;
state: IMultiSelectState<T>;
private TypedQueryList;
private input;
private queryList;
private input?;
private queryList?;
private refHandlers;

@@ -47,0 +47,0 @@ render(): JSX.Element;

@@ -8,6 +8,6 @@ "use strict";

var tslib_1 = require("tslib");
var classNames = require("classnames");
var React = require("react");
var classnames_1 = tslib_1.__importDefault(require("classnames"));
var React = tslib_1.__importStar(require("react"));
var core_1 = require("@blueprintjs/core");
var Classes = require("../../common/classes");
var Classes = tslib_1.__importStar(require("../../common/classes"));
var queryList_1 = require("../query-list/queryList");

@@ -24,3 +24,7 @@ var MultiSelect = /** @class */ (function (_super) {

_this.refHandlers = {
input: function (ref) { return (_this.input = ref); },
input: function (ref) {
_this.input = ref;
var _a = _this.props.tagInputProps, tagInputProps = _a === void 0 ? {} : _a;
core_1.Utils.safeInvoke(tagInputProps.inputRef, ref);
},
queryList: function (ref) { return (_this.queryList = ref); },

@@ -34,5 +38,5 @@ };

onChange: _this.handleQueryChange, value: query });
return (React.createElement(core_1.Popover, tslib_1.__assign({ autoFocus: false, canEscapeKeyClose: true, enforceFocus: false, isOpen: _this.state.isOpen, position: core_1.Position.BOTTOM_LEFT }, popoverProps, { className: classNames(listProps.className, popoverProps.className), onInteraction: _this.handlePopoverInteraction, popoverClassName: classNames(Classes.MULTISELECT_POPOVER, popoverProps.popoverClassName), popoverDidOpen: _this.handlePopoverDidOpen, popoverWillOpen: _this.handlePopoverWillOpen }),
return (React.createElement(core_1.Popover, tslib_1.__assign({ autoFocus: false, canEscapeKeyClose: true, enforceFocus: false, isOpen: _this.state.isOpen, position: core_1.Position.BOTTOM_LEFT }, popoverProps, { className: classnames_1.default(listProps.className, popoverProps.className), onInteraction: _this.handlePopoverInteraction, popoverClassName: classnames_1.default(Classes.MULTISELECT_POPOVER, popoverProps.popoverClassName), popoverDidOpen: _this.handlePopoverDidOpen, popoverWillOpen: _this.handlePopoverWillOpen }),
React.createElement("div", { onKeyDown: _this.getTargetKeyDownHandler(handleKeyDown), onKeyUp: _this.state.isOpen ? handleKeyUp : undefined },
React.createElement(core_1.TagInput, tslib_1.__assign({}, tagInputProps, { inputProps: defaultInputProps, inputRef: _this.refHandlers.input, className: classNames(Classes.MULTISELECT, tagInputProps.className), values: selectedItems.map(_this.props.tagRenderer) }))),
React.createElement(core_1.TagInput, tslib_1.__assign({}, tagInputProps, { inputProps: defaultInputProps, inputRef: _this.refHandlers.input, className: classnames_1.default(Classes.MULTISELECT, tagInputProps.className), values: selectedItems.map(_this.props.tagRenderer) }))),
React.createElement("div", { onKeyDown: _this.getTargetKeyDownHandler(handleKeyDown), onKeyUp: handleKeyUp },

@@ -42,12 +46,14 @@ React.createElement(core_1.Menu, { ulRef: listProps.itemsParentRef }, _this.renderItems(listProps)))));

_this.isQueryEmpty = function () { return _this.state.query.length === 0; };
_this.handleQueryChange = function (e) {
_this.handleQueryChange = function (evt) {
var _a = _this.props, _b = _a.tagInputProps, tagInputProps = _b === void 0 ? {} : _b, openOnKeyDown = _a.openOnKeyDown;
var query = e.currentTarget.value;
var query = evt.currentTarget.value;
_this.setState({ query: query, isOpen: !_this.isQueryEmpty() || !openOnKeyDown });
if (tagInputProps.inputProps != null) {
core_1.Utils.safeInvoke(tagInputProps.inputProps.onChange, e);
core_1.Utils.safeInvoke(tagInputProps.inputProps.onChange, evt);
}
};
_this.handleItemSelect = function (item, e) {
_this.input.focus();
_this.handleItemSelect = function (item, evt) {
if (_this.input != null) {
_this.input.focus();
}
// make sure the query is valid by checking if activeItem is defined

@@ -61,3 +67,3 @@ if (_this.state.activeItem != null) {

}
core_1.Utils.safeInvoke(_this.props.onItemSelect, item, e);
core_1.Utils.safeInvoke(_this.props.onItemSelect, item, evt);
}

@@ -99,5 +105,3 @@ };

};
_this.handleActiveItemChange = function (activeItem) {
_this.setState({ activeItem: activeItem });
};
_this.handleActiveItemChange = function (activeItem) { return _this.setState({ activeItem: activeItem }); };
_this.getTargetKeyDownHandler = function (handleQueryListKeyDown) {

@@ -108,2 +112,7 @@ return function (e) {

if (which === core_1.Keys.ESCAPE || which === core_1.Keys.TAB) {
// By default the escape key will not trigger a blur on the
// input element. It must be done explicitly.
if (_this.input != null) {
_this.input.blur();
}
_this.setState({

@@ -110,0 +119,0 @@ activeItem: resetOnSelect ? _this.props.items[0] : _this.state.activeItem,

@@ -53,15 +53,14 @@ /// <reference types="react" />

activeItem?: T;
isOpen?: boolean;
query?: string;
isOpen: boolean;
query: string;
}
export declare class Select<T> extends React.PureComponent<ISelectProps<T>, ISelectState<T>> {
static displayName: string;
static ofType<T>(): new () => Select<T>;
state: ISelectState<T>;
private input;
static ofType<T>(): new (props: ISelectProps<T>) => Select<T>;
private TypedQueryList;
private list;
private input?;
private list?;
private previousFocusedElement;
private refHandlers;
private previousFocusedElement;
constructor(props?: ISelectProps<T>, context?: any);
constructor(props: ISelectProps<T>, context?: any);
render(): JSX.Element;

@@ -68,0 +67,0 @@ componentWillReceiveProps(nextProps: ISelectProps<T>): void;

@@ -9,6 +9,6 @@ "use strict";

var tslib_1 = require("tslib");
var classNames = require("classnames");
var React = require("react");
var classnames_1 = tslib_1.__importDefault(require("classnames"));
var React = tslib_1.__importStar(require("react"));
var core_1 = require("@blueprintjs/core");
var Classes = require("../../common/classes");
var Classes = tslib_1.__importStar(require("../../common/classes"));
var queryList_1 = require("../query-list/queryList");

@@ -19,3 +19,2 @@ var Select = /** @class */ (function (_super) {

var _this = _super.call(this, props, context) || this;
_this.state = { isOpen: false, query: "" };
_this.TypedQueryList = queryList_1.QueryList.ofType();

@@ -35,3 +34,3 @@ _this.refHandlers = {

var handleKeyDown = listProps.handleKeyDown, handleKeyUp = listProps.handleKeyUp;
return (React.createElement(core_1.Popover, tslib_1.__assign({ autoFocus: false, enforceFocus: false, isOpen: _this.state.isOpen, disabled: disabled, position: core_1.Position.BOTTOM_LEFT }, popoverProps, { className: classNames(listProps.className, popoverProps.className), onInteraction: _this.handlePopoverInteraction, popoverClassName: classNames(Classes.SELECT_POPOVER, popoverProps.popoverClassName), popoverWillOpen: _this.handlePopoverWillOpen, popoverDidOpen: _this.handlePopoverDidOpen, popoverWillClose: _this.handlePopoverWillClose }),
return (React.createElement(core_1.Popover, tslib_1.__assign({ autoFocus: false, enforceFocus: false, isOpen: _this.state.isOpen, disabled: disabled, position: core_1.Position.BOTTOM_LEFT }, popoverProps, { className: classnames_1.default(listProps.className, popoverProps.className), onInteraction: _this.handlePopoverInteraction, popoverClassName: classnames_1.default(Classes.SELECT_POPOVER, popoverProps.popoverClassName), popoverWillOpen: _this.handlePopoverWillOpen, popoverDidOpen: _this.handlePopoverDidOpen, popoverWillClose: _this.handlePopoverWillClose }),
React.createElement("div", { onKeyDown: _this.state.isOpen ? handleKeyDown : _this.handleTargetKeyDown, onKeyUp: _this.state.isOpen ? handleKeyUp : undefined }, _this.props.children),

@@ -111,3 +110,4 @@ React.createElement("div", { onKeyDown: handleKeyDown, onKeyUp: handleKeyUp },

};
var query = props && props.inputProps && props.inputProps.value !== undefined ? props.inputProps.value : "";
var _a = props.inputProps, inputProps = _a === void 0 ? {} : _a;
var query = inputProps.value == null ? "" : inputProps.value.toString();
_this.state = { isOpen: false, query: query };

@@ -127,3 +127,3 @@ return _this;

if (nextInputProps.value !== undefined && this.state.query !== nextInputProps.value) {
this.setState({ query: nextInputProps.value });
this.setState({ query: nextInputProps.value.toString() });
}

@@ -130,0 +130,0 @@ };

@@ -31,5 +31,5 @@ /// <reference types="react" />

activeItem?: T;
isOpen?: boolean;
isTyping?: boolean;
query?: string;
isOpen: boolean;
isTyping: boolean;
query: string;
selectedItem?: T;

@@ -39,8 +39,11 @@ }

static displayName: string;
static ofType<T>(): new () => Suggest<T>;
static defaultProps: {
closeOnSelect: boolean;
openOnKeyDown: boolean;
};
static ofType<T>(): new (props: ISuggestProps<T>) => Suggest<T>;
state: ISuggestState<T>;
private DEFAULT_PROPS;
private input;
private TypedQueryList;
private queryList;
private input?;
private queryList?;
private refHandlers;

@@ -47,0 +50,0 @@ render(): JSX.Element;

@@ -9,6 +9,6 @@ "use strict";

var tslib_1 = require("tslib");
var classNames = require("classnames");
var React = require("react");
var classnames_1 = tslib_1.__importDefault(require("classnames"));
var React = tslib_1.__importStar(require("react"));
var core_1 = require("@blueprintjs/core");
var Classes = require("../../common/classes");
var Classes = tslib_1.__importStar(require("../../common/classes"));
var queryList_1 = require("../query-list/queryList");

@@ -24,24 +24,17 @@ var Suggest = /** @class */ (function (_super) {

};
// not using defaultProps, because they're hard to type with generics (can't
// use <T> on static members). but we still want to keep default values in
// one, necessarily non-`static` place. note that Partial is necessary to
// avoid having to define all required props, and all of these values must
// be referenced manually in code.
_this.DEFAULT_PROPS = {
closeOnSelect: true,
inputProps: {},
openOnKeyDown: false,
popoverProps: {},
};
_this.TypedQueryList = queryList_1.QueryList.ofType();
_this.refHandlers = {
input: function (ref) { return (_this.input = ref); },
input: function (ref) {
_this.input = ref;
var _a = _this.props.inputProps, inputProps = _a === void 0 ? {} : _a;
core_1.Utils.safeInvoke(inputProps.inputRef, ref);
},
queryList: function (ref) { return (_this.queryList = ref); },
};
_this.renderQueryList = function (listProps) {
var _a = _this.props, inputValueRenderer = _a.inputValueRenderer, _b = _a.inputProps, inputProps = _b === void 0 ? _this.DEFAULT_PROPS.inputProps : _b, _c = _a.popoverProps, popoverProps = _c === void 0 ? _this.DEFAULT_PROPS.popoverProps : _c;
var _a = _this.props, inputValueRenderer = _a.inputValueRenderer, _b = _a.inputProps, inputProps = _b === void 0 ? {} : _b, _c = _a.popoverProps, popoverProps = _c === void 0 ? {} : _c;
var _d = _this.state, isTyping = _d.isTyping, selectedItem = _d.selectedItem, query = _d.query;
var handleKeyDown = listProps.handleKeyDown, handleKeyUp = listProps.handleKeyUp;
var inputValue = isTyping ? query : selectedItem ? inputValueRenderer(selectedItem) : "";
return (React.createElement(core_1.Popover, tslib_1.__assign({ autoFocus: false, enforceFocus: false, isOpen: _this.state.isOpen, position: core_1.Position.BOTTOM_LEFT }, popoverProps, { className: classNames(listProps.className, popoverProps.className), onInteraction: _this.handlePopoverInteraction, popoverClassName: classNames(Classes.SELECT_POPOVER, popoverProps.popoverClassName), popoverDidOpen: _this.handlePopoverDidOpen, popoverWillClose: _this.handlePopoverWillClose }),
return (React.createElement(core_1.Popover, tslib_1.__assign({ autoFocus: false, enforceFocus: false, isOpen: _this.state.isOpen, position: core_1.Position.BOTTOM_LEFT }, popoverProps, { className: classnames_1.default(listProps.className, popoverProps.className), onInteraction: _this.handlePopoverInteraction, popoverClassName: classnames_1.default(Classes.SELECT_POPOVER, popoverProps.popoverClassName), popoverDidOpen: _this.handlePopoverDidOpen, popoverWillClose: _this.handlePopoverWillClose }),
React.createElement(core_1.InputGroup, tslib_1.__assign({ placeholder: "Search...", value: inputValue }, inputProps, { inputRef: _this.refHandlers.input, onChange: _this.handleQueryChange, onFocus: _this.handleInputFocus, onKeyDown: _this.getTargetKeyDownHandler(handleKeyDown), onKeyUp: _this.getTargetKeyUpHandler(handleKeyUp) })),

@@ -52,9 +45,11 @@ React.createElement("div", { onKeyDown: handleKeyDown, onKeyUp: handleKeyUp },

_this.selectText = function () {
if (_this.input != null) {
// wait until the input is properly focused to select the text inside of it
requestAnimationFrame(function () { return _this.input.setSelectionRange(0, _this.input.value.length); });
}
// wait until the input is properly focused to select the text inside of it
requestAnimationFrame(function () {
if (_this.input != null) {
_this.input.setSelectionRange(0, _this.input.value.length);
}
});
};
_this.handleInputFocus = function (event) {
var _a = _this.props, _b = _a.openOnKeyDown, openOnKeyDown = _b === void 0 ? _this.DEFAULT_PROPS.openOnKeyDown : _b, _c = _a.inputProps, inputProps = _c === void 0 ? _this.DEFAULT_PROPS.inputProps : _c;
var _a = _this.props, openOnKeyDown = _a.openOnKeyDown, _b = _a.inputProps, inputProps = _b === void 0 ? {} : _b;
_this.selectText();

@@ -68,6 +63,7 @@ if (!openOnKeyDown) {

_this.handleItemSelect = function (item, event) {
var _a = _this.props.closeOnSelect, closeOnSelect = _a === void 0 ? _this.DEFAULT_PROPS.closeOnSelect : _a;
var nextOpenState;
if (!closeOnSelect) {
_this.input.focus();
if (!_this.props.closeOnSelect) {
if (_this.input != null) {
_this.input.focus();
}
_this.selectText();

@@ -77,3 +73,5 @@ nextOpenState = true;

else {
_this.input.blur();
if (_this.input != null) {
_this.input.blur();
}
nextOpenState = false;

@@ -119,3 +117,3 @@ }

_this.handleQueryChange = function (event) {
var _a = _this.props.inputProps, inputProps = _a === void 0 ? _this.DEFAULT_PROPS.inputProps : _a;
var _a = _this.props.inputProps, inputProps = _a === void 0 ? {} : _a;
_this.setState({

@@ -128,8 +126,10 @@ isTyping: true,

_this.getTargetKeyDownHandler = function (handleQueryListKeyDown) {
return function (e) {
var which = e.which;
return function (evt) {
var which = evt.which;
var _a = _this.state, isTyping = _a.isTyping, selectedItem = _a.selectedItem;
var _b = _this.props, _c = _b.inputProps, inputProps = _c === void 0 ? _this.DEFAULT_PROPS.inputProps : _c, _d = _b.openOnKeyDown, openOnKeyDown = _d === void 0 ? _this.DEFAULT_PROPS.openOnKeyDown : _d;
var _b = _this.props, _c = _b.inputProps, inputProps = _c === void 0 ? {} : _c, openOnKeyDown = _b.openOnKeyDown;
if (which === core_1.Keys.ESCAPE || which === core_1.Keys.TAB) {
_this.input.blur();
if (_this.input != null) {
_this.input.blur();
}
_this.setState({

@@ -147,14 +147,14 @@ isOpen: false,

if (_this.state.isOpen) {
core_1.Utils.safeInvoke(handleQueryListKeyDown, e);
core_1.Utils.safeInvoke(handleQueryListKeyDown, evt);
}
core_1.Utils.safeInvoke(inputProps.onKeyDown, e);
core_1.Utils.safeInvoke(inputProps.onKeyDown, evt);
};
};
_this.getTargetKeyUpHandler = function (handleQueryListKeyUp) {
return function (e) {
var _a = _this.props.inputProps, inputProps = _a === void 0 ? _this.DEFAULT_PROPS.inputProps : _a;
return function (evt) {
var _a = _this.props.inputProps, inputProps = _a === void 0 ? {} : _a;
if (_this.state.isOpen) {
core_1.Utils.safeInvoke(handleQueryListKeyUp, e);
core_1.Utils.safeInvoke(handleQueryListKeyUp, evt);
}
core_1.Utils.safeInvoke(inputProps.onKeyUp, e);
core_1.Utils.safeInvoke(inputProps.onKeyUp, evt);
};

@@ -183,4 +183,9 @@ };

Suggest.displayName = "Blueprint2.Suggest";
// Note: can't use <T> in static members, so this remains dynamically typed.
Suggest.defaultProps = {
closeOnSelect: true,
openOnKeyDown: false,
};
return Suggest;
}(React.PureComponent));
exports.Suggest = Suggest;

@@ -16,2 +16,2 @@ /**

*/
export declare type ItemPredicate<T> = (query: string, item: T, index: number) => boolean;
export declare type ItemPredicate<T> = (query: string, item: T, index?: number) => boolean;

@@ -43,10 +43,10 @@ /// <reference types="react" />

activeItem?: T;
query?: string;
query: string;
}
export declare class Omnibar<T> extends React.PureComponent<IOmnibarProps<T>, IOmnibarState<T>> {
static displayName: string;
static ofType<T>(): new () => Omnibar<T>;
static ofType<T>(): new (props: IOmnibarProps<T>) => Omnibar<T>;
state: IOmnibarState<T>;
private TypedQueryList;
private queryList;
private queryList?;
private refHandlers;

@@ -53,0 +53,0 @@ render(): JSX.Element;

@@ -7,3 +7,3 @@ /*

import * as tslib_1 from "tslib";
import * as classNames from "classnames";
import classNames from "classnames";
import * as React from "react";

@@ -10,0 +10,0 @@ import { Classes as CoreClasses, InputGroup, Menu, Overlay, Utils, } from "@blueprintjs/core";

@@ -80,3 +80,3 @@ /// <reference types="react" />

*/
handleItemSelect: (item: T | undefined, event?: React.SyntheticEvent<HTMLElement>) => void;
handleItemSelect: (item: T, event?: React.SyntheticEvent<HTMLElement>) => void;
/**

@@ -97,3 +97,3 @@ * Keyboard handler for up/down arrow keys to shift the active item.

*/
renderItem: (item: T, index?: number) => JSX.Element;
renderItem: (item: T, index?: number) => JSX.Element | null;
/**

@@ -108,3 +108,3 @@ * Array of all (unfiltered) items in the list.

*/
itemsParentRef: (ref: HTMLElement) => void;
itemsParentRef: (ref: HTMLElement | null) => void;
/**

@@ -117,3 +117,3 @@ * Controlled query string. Attach an `onChange` handler to the relevant

export interface IQueryListState<T> {
filteredItems?: T[];
filteredItems: T[];
}

@@ -123,3 +123,3 @@ export declare class QueryList<T> extends React.Component<IQueryListProps<T>, IQueryListState<T>> {

static ofType<T>(): new (props: IQueryListProps<T>) => QueryList<T>;
private itemsParentRef;
private itemsParentRef?;
private refHandlers;

@@ -126,0 +126,0 @@ /**

@@ -16,2 +16,7 @@ /*

};
/**
* flag indicating that we should check whether selected item is in viewport after rendering,
* typically because of keyboard change.
*/
_this.shouldCheckActiveItemInViewport = false;
_this.handleItemSelect = function (item, event) {

@@ -41,3 +46,3 @@ Utils.safeInvoke(_this.props.onActiveItemChange, item);

// and the popvoer would re-open out of our control :(.
if (event.keyCode === Keys.ENTER) {
if (event.keyCode === Keys.ENTER && activeItem != null) {
event.preventDefault();

@@ -70,4 +75,5 @@ Utils.safeInvoke(onItemSelect, activeItem, event);

QueryList.prototype.render = function () {
var _a = this.props, items = _a.items, renderer = _a.renderer, query = _a.query;
var _a = this.props, className = _a.className, items = _a.items, renderer = _a.renderer, query = _a.query;
return renderer({
className: className,
handleItemSelect: this.handleItemSelect,

@@ -137,6 +143,8 @@ handleKeyDown: this.handleKeyDown,

QueryList.prototype.getActiveIndex = function () {
var activeItem = this.props.activeItem;
// NOTE: this operation is O(n) so it should be avoided in render(). safe for events though.
return this.state.filteredItems.indexOf(this.props.activeItem);
return activeItem == null ? -1 : this.state.filteredItems.indexOf(activeItem);
};
QueryList.prototype.getItemsParentPadding = function () {
// assert ref exists because it was checked before calling
var _a = getComputedStyle(this.itemsParentRef), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom;

@@ -162,3 +170,3 @@ return {

function pxToNumber(value) {
return parseInt(value.slice(0, -2), 10);
return value == null ? 0 : parseInt(value.slice(0, -2), 10);
}

@@ -165,0 +173,0 @@ function getFilteredItems(_a) {

@@ -35,12 +35,12 @@ /// <reference types="react" />

activeItem?: T;
isOpen?: boolean;
query?: string;
isOpen: boolean;
query: string;
}
export declare class MultiSelect<T> extends React.PureComponent<IMultiSelectProps<T>, IMultiSelectState<T>> {
static displayName: string;
static ofType<T>(): new () => MultiSelect<T>;
static ofType<T>(): new (props: IMultiSelectProps<T>) => MultiSelect<T>;
state: IMultiSelectState<T>;
private TypedQueryList;
private input;
private queryList;
private input?;
private queryList?;
private refHandlers;

@@ -47,0 +47,0 @@ render(): JSX.Element;

@@ -6,3 +6,3 @@ /**

import * as tslib_1 from "tslib";
import * as classNames from "classnames";
import classNames from "classnames";
import * as React from "react";

@@ -22,3 +22,7 @@ import { Keys, Menu, Popover, Position, TagInput, Utils, } from "@blueprintjs/core";

_this.refHandlers = {
input: function (ref) { return (_this.input = ref); },
input: function (ref) {
_this.input = ref;
var _a = _this.props.tagInputProps, tagInputProps = _a === void 0 ? {} : _a;
Utils.safeInvoke(tagInputProps.inputRef, ref);
},
queryList: function (ref) { return (_this.queryList = ref); },

@@ -39,12 +43,14 @@ };

_this.isQueryEmpty = function () { return _this.state.query.length === 0; };
_this.handleQueryChange = function (e) {
_this.handleQueryChange = function (evt) {
var _a = _this.props, _b = _a.tagInputProps, tagInputProps = _b === void 0 ? {} : _b, openOnKeyDown = _a.openOnKeyDown;
var query = e.currentTarget.value;
var query = evt.currentTarget.value;
_this.setState({ query: query, isOpen: !_this.isQueryEmpty() || !openOnKeyDown });
if (tagInputProps.inputProps != null) {
Utils.safeInvoke(tagInputProps.inputProps.onChange, e);
Utils.safeInvoke(tagInputProps.inputProps.onChange, evt);
}
};
_this.handleItemSelect = function (item, e) {
_this.input.focus();
_this.handleItemSelect = function (item, evt) {
if (_this.input != null) {
_this.input.focus();
}
// make sure the query is valid by checking if activeItem is defined

@@ -58,3 +64,3 @@ if (_this.state.activeItem != null) {

}
Utils.safeInvoke(_this.props.onItemSelect, item, e);
Utils.safeInvoke(_this.props.onItemSelect, item, evt);
}

@@ -96,5 +102,3 @@ };

};
_this.handleActiveItemChange = function (activeItem) {
_this.setState({ activeItem: activeItem });
};
_this.handleActiveItemChange = function (activeItem) { return _this.setState({ activeItem: activeItem }); };
_this.getTargetKeyDownHandler = function (handleQueryListKeyDown) {

@@ -105,2 +109,7 @@ return function (e) {

if (which === Keys.ESCAPE || which === Keys.TAB) {
// By default the escape key will not trigger a blur on the
// input element. It must be done explicitly.
if (_this.input != null) {
_this.input.blur();
}
_this.setState({

@@ -107,0 +116,0 @@ activeItem: resetOnSelect ? _this.props.items[0] : _this.state.activeItem,

@@ -53,15 +53,14 @@ /// <reference types="react" />

activeItem?: T;
isOpen?: boolean;
query?: string;
isOpen: boolean;
query: string;
}
export declare class Select<T> extends React.PureComponent<ISelectProps<T>, ISelectState<T>> {
static displayName: string;
static ofType<T>(): new () => Select<T>;
state: ISelectState<T>;
private input;
static ofType<T>(): new (props: ISelectProps<T>) => Select<T>;
private TypedQueryList;
private list;
private input?;
private list?;
private previousFocusedElement;
private refHandlers;
private previousFocusedElement;
constructor(props?: ISelectProps<T>, context?: any);
constructor(props: ISelectProps<T>, context?: any);
render(): JSX.Element;

@@ -68,0 +67,0 @@ componentWillReceiveProps(nextProps: ISelectProps<T>): void;

@@ -7,3 +7,3 @@ /*

import * as tslib_1 from "tslib";
import * as classNames from "classnames";
import classNames from "classnames";
import * as React from "react";

@@ -17,3 +17,2 @@ import { Button, Classes as CoreClasses, InputGroup, Keys, Menu, Popover, Position, Utils, } from "@blueprintjs/core";

var _this = _super.call(this, props, context) || this;
_this.state = { isOpen: false, query: "" };
_this.TypedQueryList = QueryList.ofType();

@@ -108,3 +107,4 @@ _this.refHandlers = {

};
var query = props && props.inputProps && props.inputProps.value !== undefined ? props.inputProps.value : "";
var _a = props.inputProps, inputProps = _a === void 0 ? {} : _a;
var query = inputProps.value == null ? "" : inputProps.value.toString();
_this.state = { isOpen: false, query: query };

@@ -124,3 +124,3 @@ return _this;

if (nextInputProps.value !== undefined && this.state.query !== nextInputProps.value) {
this.setState({ query: nextInputProps.value });
this.setState({ query: nextInputProps.value.toString() });
}

@@ -127,0 +127,0 @@ };

@@ -31,5 +31,5 @@ /// <reference types="react" />

activeItem?: T;
isOpen?: boolean;
isTyping?: boolean;
query?: string;
isOpen: boolean;
isTyping: boolean;
query: string;
selectedItem?: T;

@@ -39,8 +39,11 @@ }

static displayName: string;
static ofType<T>(): new () => Suggest<T>;
static defaultProps: {
closeOnSelect: boolean;
openOnKeyDown: boolean;
};
static ofType<T>(): new (props: ISuggestProps<T>) => Suggest<T>;
state: ISuggestState<T>;
private DEFAULT_PROPS;
private input;
private TypedQueryList;
private queryList;
private input?;
private queryList?;
private refHandlers;

@@ -47,0 +50,0 @@ render(): JSX.Element;

@@ -7,3 +7,3 @@ /*

import * as tslib_1 from "tslib";
import * as classNames from "classnames";
import classNames from "classnames";
import * as React from "react";

@@ -22,20 +22,13 @@ import { InputGroup, Keys, Menu, Popover, Position, Utils, } from "@blueprintjs/core";

};
// not using defaultProps, because they're hard to type with generics (can't
// use <T> on static members). but we still want to keep default values in
// one, necessarily non-`static` place. note that Partial is necessary to
// avoid having to define all required props, and all of these values must
// be referenced manually in code.
_this.DEFAULT_PROPS = {
closeOnSelect: true,
inputProps: {},
openOnKeyDown: false,
popoverProps: {},
};
_this.TypedQueryList = QueryList.ofType();
_this.refHandlers = {
input: function (ref) { return (_this.input = ref); },
input: function (ref) {
_this.input = ref;
var _a = _this.props.inputProps, inputProps = _a === void 0 ? {} : _a;
Utils.safeInvoke(inputProps.inputRef, ref);
},
queryList: function (ref) { return (_this.queryList = ref); },
};
_this.renderQueryList = function (listProps) {
var _a = _this.props, inputValueRenderer = _a.inputValueRenderer, _b = _a.inputProps, inputProps = _b === void 0 ? _this.DEFAULT_PROPS.inputProps : _b, _c = _a.popoverProps, popoverProps = _c === void 0 ? _this.DEFAULT_PROPS.popoverProps : _c;
var _a = _this.props, inputValueRenderer = _a.inputValueRenderer, _b = _a.inputProps, inputProps = _b === void 0 ? {} : _b, _c = _a.popoverProps, popoverProps = _c === void 0 ? {} : _c;
var _d = _this.state, isTyping = _d.isTyping, selectedItem = _d.selectedItem, query = _d.query;

@@ -50,9 +43,11 @@ var handleKeyDown = listProps.handleKeyDown, handleKeyUp = listProps.handleKeyUp;

_this.selectText = function () {
if (_this.input != null) {
// wait until the input is properly focused to select the text inside of it
requestAnimationFrame(function () { return _this.input.setSelectionRange(0, _this.input.value.length); });
}
// wait until the input is properly focused to select the text inside of it
requestAnimationFrame(function () {
if (_this.input != null) {
_this.input.setSelectionRange(0, _this.input.value.length);
}
});
};
_this.handleInputFocus = function (event) {
var _a = _this.props, _b = _a.openOnKeyDown, openOnKeyDown = _b === void 0 ? _this.DEFAULT_PROPS.openOnKeyDown : _b, _c = _a.inputProps, inputProps = _c === void 0 ? _this.DEFAULT_PROPS.inputProps : _c;
var _a = _this.props, openOnKeyDown = _a.openOnKeyDown, _b = _a.inputProps, inputProps = _b === void 0 ? {} : _b;
_this.selectText();

@@ -66,6 +61,7 @@ if (!openOnKeyDown) {

_this.handleItemSelect = function (item, event) {
var _a = _this.props.closeOnSelect, closeOnSelect = _a === void 0 ? _this.DEFAULT_PROPS.closeOnSelect : _a;
var nextOpenState;
if (!closeOnSelect) {
_this.input.focus();
if (!_this.props.closeOnSelect) {
if (_this.input != null) {
_this.input.focus();
}
_this.selectText();

@@ -75,3 +71,5 @@ nextOpenState = true;

else {
_this.input.blur();
if (_this.input != null) {
_this.input.blur();
}
nextOpenState = false;

@@ -117,3 +115,3 @@ }

_this.handleQueryChange = function (event) {
var _a = _this.props.inputProps, inputProps = _a === void 0 ? _this.DEFAULT_PROPS.inputProps : _a;
var _a = _this.props.inputProps, inputProps = _a === void 0 ? {} : _a;
_this.setState({

@@ -126,8 +124,10 @@ isTyping: true,

_this.getTargetKeyDownHandler = function (handleQueryListKeyDown) {
return function (e) {
var which = e.which;
return function (evt) {
var which = evt.which;
var _a = _this.state, isTyping = _a.isTyping, selectedItem = _a.selectedItem;
var _b = _this.props, _c = _b.inputProps, inputProps = _c === void 0 ? _this.DEFAULT_PROPS.inputProps : _c, _d = _b.openOnKeyDown, openOnKeyDown = _d === void 0 ? _this.DEFAULT_PROPS.openOnKeyDown : _d;
var _b = _this.props, _c = _b.inputProps, inputProps = _c === void 0 ? {} : _c, openOnKeyDown = _b.openOnKeyDown;
if (which === Keys.ESCAPE || which === Keys.TAB) {
_this.input.blur();
if (_this.input != null) {
_this.input.blur();
}
_this.setState({

@@ -145,14 +145,14 @@ isOpen: false,

if (_this.state.isOpen) {
Utils.safeInvoke(handleQueryListKeyDown, e);
Utils.safeInvoke(handleQueryListKeyDown, evt);
}
Utils.safeInvoke(inputProps.onKeyDown, e);
Utils.safeInvoke(inputProps.onKeyDown, evt);
};
};
_this.getTargetKeyUpHandler = function (handleQueryListKeyUp) {
return function (e) {
var _a = _this.props.inputProps, inputProps = _a === void 0 ? _this.DEFAULT_PROPS.inputProps : _a;
return function (evt) {
var _a = _this.props.inputProps, inputProps = _a === void 0 ? {} : _a;
if (_this.state.isOpen) {
Utils.safeInvoke(handleQueryListKeyUp, e);
Utils.safeInvoke(handleQueryListKeyUp, evt);
}
Utils.safeInvoke(inputProps.onKeyUp, e);
Utils.safeInvoke(inputProps.onKeyUp, evt);
};

@@ -181,4 +181,9 @@ };

Suggest.displayName = "Blueprint2.Suggest";
// Note: can't use <T> in static members, so this remains dynamically typed.
Suggest.defaultProps = {
closeOnSelect: true,
openOnKeyDown: false,
};
return Suggest;
}(React.PureComponent));
export { Suggest };
{
"name": "@blueprintjs/select",
"version": "2.0.0-rc.2",
"version": "2.0.0-rc.3",
"description": "Components related to selecting items from a list",

@@ -12,3 +12,3 @@ "main": "lib/cjs/index.js",

"scripts": {
"compile": "npm-run-all -p 'compile:*'",
"compile": "npm-run-all -p \"compile:*\"",
"compile:esm": "tsc -p ./src",

@@ -18,9 +18,9 @@ "compile:cjs": "tsc -p ./src/tsconfig.cjs.json",

"clean": "rm -rf dist/* && rm -rf lib/*",
"dev": "npm-run-all -p 'compile:esm -- --watch' 'compile:css -- --watch'",
"dist": "npm-run-all -s 'dist:*'",
"dist:bundle": "NODE_ENV=production webpack",
"dev": "npm-run-all -p \"compile:esm -- --watch\" \"compile:css -- --watch\"",
"dist": "npm-run-all -s \"dist:*\"",
"dist:bundle": "cross-env NODE_ENV=production webpack",
"dist:verify": "assert-package-layout",
"lint": "npm-run-all -p lint:stylelint lint:tslint",
"lint:stylelint": "stylelint -s scss 'src/**/*.scss'",
"lint:tslint": "tslint '{src,test}/**/*.{ts,tsx}' -c ../tslint-config -t codeFrame",
"lint:stylelint": "stylelint -s scss \"src/**/*.scss\"",
"lint:tslint": "tslint \"{src,test}/**/*.{ts,tsx}\" -c ../tslint-config -t codeFrame",
"lint-fix": "yarn lint:tslint --fix",

@@ -35,5 +35,5 @@ "test": "npm-run-all -s compile:cjs test:pre -p test:karma test:iso",

"dependencies": {
"@blueprintjs/core": "^2.0.0-rc.2",
"@blueprintjs/core": "^2.0.0-rc.3",
"classnames": "^2.2",
"tslib": "^1.5.0"
"tslib": "^1.9.0"
},

@@ -52,3 +52,3 @@ "devDependencies": {

"tslint": "^5.9.0",
"typescript": "~2.6.2",
"typescript": "~2.7.2",
"webpack": "^3.10.0"

@@ -55,0 +55,0 @@ },

@@ -23,2 +23,2 @@ /*

*/
export type ItemPredicate<T> = (query: string, item: T, index: number) => boolean;
export type ItemPredicate<T> = (query: string, item: T, index?: number) => boolean;

@@ -6,3 +6,3 @@ @# MultiSelect

<div class="pt-callout pt-intent-primary pt-icon-info-sign">
<h4>Generic components and custom filtering</h4>
<h4 class="pt-callout-title">Generic components and custom filtering</h4>
For more information on controlled usage, generic components and custom filtering, visit the documentation for [`Select<T>`](#select/select-component).

@@ -9,0 +9,0 @@ </div>

@@ -6,3 +6,3 @@ @# Select

<div class="pt-callout pt-intent-primary pt-icon-info-sign">
<h4>Disabling a Select</h4>
<h4 class="pt-callout-title">Disabling a Select</h4>
<p>Disabling the component requires setting the `disabled` prop to `true`

@@ -9,0 +9,0 @@ and separately disabling the component's children as appropriate (because `Select` accepts arbitrary children).</p>

@@ -19,3 +19,3 @@ ---

Make sure to review the [general usage docs for JS components](#blueprint.usage).
Make sure to review the [getting started docs for installation info](#blueprint/getting-started).

@@ -22,0 +22,0 @@ ```sh

{
"extends": "../../../config/tsconfig.base",
"compilerOptions": {
"outDir": "../lib/esm"
"outDir": "../lib/esm",
"strict": true
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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