@hig/multi-downshift
Advanced tools
Comparing version 0.1.0-alpha to 0.1.0
import React from 'react'; | ||
import PropTypes from 'prop-types'; | ||
import Downshift from 'downshift'; | ||
@@ -21,2 +22,3 @@ import { combineEventHandlers } from '@hig/utils'; | ||
* @typedef {import("downshift").DownshiftProps<any>} Props | ||
* @property {any[]} selectedItems | ||
*/ | ||
@@ -51,3 +53,3 @@ | ||
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = MultiDownshift.__proto__ || Object.getPrototypeOf(MultiDownshift)).call.apply(_ref, [this].concat(args))), _this), _this.state = { | ||
selectedItems: [] | ||
selectedItems: _this.props.defaultSelectedItems | ||
}, _this.getRemoveButtonProps = function () { | ||
@@ -83,4 +85,3 @@ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
}, _this.handleSelect = function (selectedItem, downshift) { | ||
var selectedItems = _this.state.selectedItems; | ||
var selectedItems = _this.getSelectedItems(); | ||
var triggerChange = _this.createChangeTrigger(downshift); | ||
@@ -99,19 +100,31 @@ | ||
_createClass(MultiDownshift, [{ | ||
key: "getStateAndHelpers", | ||
key: "getSelectedItems", | ||
/** | ||
* @returns {any[]} | ||
*/ | ||
value: function getSelectedItems() { | ||
var controlledSelectedItems = this.props.selectedItems; | ||
var selectedItems = this.state.selectedItems; | ||
return controlledSelectedItems !== undefined ? controlledSelectedItems : selectedItems; | ||
} | ||
/** | ||
* @param {import("downshift").ControllerStateAndHelpers<any>} downshift | ||
* @returns {ControllerStateAndHelpers} | ||
*/ | ||
}, { | ||
key: "getStateAndHelpers", | ||
value: function getStateAndHelpers(downshift) { | ||
var selectedItems = this.state.selectedItems; | ||
var selectedItems = this.getSelectedItems(); | ||
var getRemoveButtonProps = this.getRemoveButtonProps; | ||
var getInputProps = this.createInputPropsGetter(downshift); | ||
return _extends({}, downshift, { | ||
getRemoveButtonProps: getRemoveButtonProps, | ||
selectedItems: selectedItems, | ||
getInputProps: getInputProps | ||
selectedItems: selectedItems | ||
}); | ||
@@ -135,7 +148,11 @@ } | ||
children = _props.children, | ||
passThruProps = _objectWithoutProperties(_props, ["children"]); | ||
inputValue = _props.inputValue, | ||
otherProps = _objectWithoutProperties(_props, ["children", "inputValue"]); | ||
return _extends({}, passThruProps, { | ||
stateReducer: this.stateReducer, | ||
onSelect: this.handleSelect | ||
var controlledInputValue = inputValue !== undefined ? inputValue : this.selectedItemsToString(); | ||
return _extends({}, otherProps, { | ||
inputValue: controlledInputValue, | ||
onSelect: this.handleSelect, | ||
stateReducer: this.stateReducer | ||
}); | ||
@@ -164,4 +181,4 @@ } | ||
var onChange = _this2.props.onChange; | ||
var selectedItems = _this2.state.selectedItems; | ||
var selectedItems = _this2.getSelectedItems(); | ||
@@ -189,4 +206,4 @@ if (onChange) { | ||
var itemToString = this.props.itemToString; | ||
var selectedItems = this.state.selectedItems; | ||
var selectedItems = this.getSelectedItems(); | ||
@@ -197,21 +214,2 @@ return selectedItems.map(itemToString).join(", "); | ||
/** | ||
* @param {import("downshift").ControllerStateAndHelpers} downshift | ||
* @returns {function(import("downshift").GetInputPropsOptions): any} | ||
*/ | ||
}, { | ||
key: "createInputPropsGetter", | ||
value: function createInputPropsGetter(_ref3) { | ||
var _this3 = this; | ||
var getInputProps = _ref3.getInputProps; | ||
return function (props) { | ||
return _extends({}, getInputProps(props), { | ||
value: _this3.selectedItemsToString() | ||
}); | ||
}; | ||
} | ||
/** | ||
* @param {any} item | ||
@@ -224,4 +222,3 @@ * @param {Function} done | ||
value: function unselectItem(item, done) { | ||
var selectedItems = this.state.selectedItems; | ||
var selectedItems = this.getSelectedItems(); | ||
var nextSelectedItems = selectedItems.filter(function (selectedItem) { | ||
@@ -242,4 +239,3 @@ return selectedItem !== item; | ||
value: function selectItem(item, done) { | ||
var selectedItems = this.state.selectedItems; | ||
var selectedItems = this.getSelectedItems(); | ||
var nextSelectedItems = [].concat(_toConsumableArray(selectedItems), [item]); | ||
@@ -268,6 +264,38 @@ | ||
MultiDownshift.propTypes = _extends({}, Downshift.propTypes); | ||
MultiDownshift.propTypes = _extends({}, Downshift.propTypes, { | ||
selectedItems: PropTypes.arrayOf(PropTypes.any), | ||
defaultSelectedItems: PropTypes.arrayOf(PropTypes.any) | ||
}); | ||
MultiDownshift.defaultProps = { | ||
defaultSelectedItems: [] | ||
}; | ||
MultiDownshift.__docgenInfo = { | ||
"description": "@typedef {import(\"downshift\").ControllerStateAndHelpers<any>} ControllerStateAndHelpers\n@property {function(GetRemoveButtonPropsOptions): any} getRemoveButtonProps\n@property {any[]} selectedItems", | ||
"displayName": "MultiDownshift", | ||
"props": { | ||
"selectedItems": { | ||
"type": { | ||
"name": "arrayOf", | ||
"value": { | ||
"name": "any" | ||
} | ||
}, | ||
"required": false, | ||
"description": "" | ||
}, | ||
"defaultSelectedItems": { | ||
"type": { | ||
"name": "arrayOf", | ||
"value": { | ||
"name": "any" | ||
} | ||
}, | ||
"required": false, | ||
"description": "", | ||
"defaultValue": { | ||
"value": "[]", | ||
"computed": false | ||
} | ||
} | ||
}, | ||
"composes": ["downshift"] | ||
@@ -274,0 +302,0 @@ }; |
@@ -8,2 +8,3 @@ 'use strict'; | ||
var React = _interopDefault(require('react')); | ||
var PropTypes = _interopDefault(require('prop-types')); | ||
var Downshift = _interopDefault(require('downshift')); | ||
@@ -28,2 +29,3 @@ var utils = require('@hig/utils'); | ||
* @typedef {import("downshift").DownshiftProps<any>} Props | ||
* @property {any[]} selectedItems | ||
*/ | ||
@@ -58,3 +60,3 @@ | ||
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = MultiDownshift.__proto__ || Object.getPrototypeOf(MultiDownshift)).call.apply(_ref, [this].concat(args))), _this), _this.state = { | ||
selectedItems: [] | ||
selectedItems: _this.props.defaultSelectedItems | ||
}, _this.getRemoveButtonProps = function () { | ||
@@ -90,4 +92,3 @@ var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
}, _this.handleSelect = function (selectedItem, downshift) { | ||
var selectedItems = _this.state.selectedItems; | ||
var selectedItems = _this.getSelectedItems(); | ||
var triggerChange = _this.createChangeTrigger(downshift); | ||
@@ -106,19 +107,31 @@ | ||
_createClass(MultiDownshift, [{ | ||
key: "getStateAndHelpers", | ||
key: "getSelectedItems", | ||
/** | ||
* @returns {any[]} | ||
*/ | ||
value: function getSelectedItems() { | ||
var controlledSelectedItems = this.props.selectedItems; | ||
var selectedItems = this.state.selectedItems; | ||
return controlledSelectedItems !== undefined ? controlledSelectedItems : selectedItems; | ||
} | ||
/** | ||
* @param {import("downshift").ControllerStateAndHelpers<any>} downshift | ||
* @returns {ControllerStateAndHelpers} | ||
*/ | ||
}, { | ||
key: "getStateAndHelpers", | ||
value: function getStateAndHelpers(downshift) { | ||
var selectedItems = this.state.selectedItems; | ||
var selectedItems = this.getSelectedItems(); | ||
var getRemoveButtonProps = this.getRemoveButtonProps; | ||
var getInputProps = this.createInputPropsGetter(downshift); | ||
return _extends({}, downshift, { | ||
getRemoveButtonProps: getRemoveButtonProps, | ||
selectedItems: selectedItems, | ||
getInputProps: getInputProps | ||
selectedItems: selectedItems | ||
}); | ||
@@ -142,7 +155,11 @@ } | ||
children = _props.children, | ||
passThruProps = _objectWithoutProperties(_props, ["children"]); | ||
inputValue = _props.inputValue, | ||
otherProps = _objectWithoutProperties(_props, ["children", "inputValue"]); | ||
return _extends({}, passThruProps, { | ||
stateReducer: this.stateReducer, | ||
onSelect: this.handleSelect | ||
var controlledInputValue = inputValue !== undefined ? inputValue : this.selectedItemsToString(); | ||
return _extends({}, otherProps, { | ||
inputValue: controlledInputValue, | ||
onSelect: this.handleSelect, | ||
stateReducer: this.stateReducer | ||
}); | ||
@@ -171,4 +188,4 @@ } | ||
var onChange = _this2.props.onChange; | ||
var selectedItems = _this2.state.selectedItems; | ||
var selectedItems = _this2.getSelectedItems(); | ||
@@ -196,4 +213,4 @@ if (onChange) { | ||
var itemToString = this.props.itemToString; | ||
var selectedItems = this.state.selectedItems; | ||
var selectedItems = this.getSelectedItems(); | ||
@@ -204,21 +221,2 @@ return selectedItems.map(itemToString).join(", "); | ||
/** | ||
* @param {import("downshift").ControllerStateAndHelpers} downshift | ||
* @returns {function(import("downshift").GetInputPropsOptions): any} | ||
*/ | ||
}, { | ||
key: "createInputPropsGetter", | ||
value: function createInputPropsGetter(_ref3) { | ||
var _this3 = this; | ||
var getInputProps = _ref3.getInputProps; | ||
return function (props) { | ||
return _extends({}, getInputProps(props), { | ||
value: _this3.selectedItemsToString() | ||
}); | ||
}; | ||
} | ||
/** | ||
* @param {any} item | ||
@@ -231,4 +229,3 @@ * @param {Function} done | ||
value: function unselectItem(item, done) { | ||
var selectedItems = this.state.selectedItems; | ||
var selectedItems = this.getSelectedItems(); | ||
var nextSelectedItems = selectedItems.filter(function (selectedItem) { | ||
@@ -249,4 +246,3 @@ return selectedItem !== item; | ||
value: function selectItem(item, done) { | ||
var selectedItems = this.state.selectedItems; | ||
var selectedItems = this.getSelectedItems(); | ||
var nextSelectedItems = [].concat(_toConsumableArray(selectedItems), [item]); | ||
@@ -275,6 +271,38 @@ | ||
MultiDownshift.propTypes = _extends({}, Downshift.propTypes); | ||
MultiDownshift.propTypes = _extends({}, Downshift.propTypes, { | ||
selectedItems: PropTypes.arrayOf(PropTypes.any), | ||
defaultSelectedItems: PropTypes.arrayOf(PropTypes.any) | ||
}); | ||
MultiDownshift.defaultProps = { | ||
defaultSelectedItems: [] | ||
}; | ||
MultiDownshift.__docgenInfo = { | ||
"description": "@typedef {import(\"downshift\").ControllerStateAndHelpers<any>} ControllerStateAndHelpers\n@property {function(GetRemoveButtonPropsOptions): any} getRemoveButtonProps\n@property {any[]} selectedItems", | ||
"displayName": "MultiDownshift", | ||
"props": { | ||
"selectedItems": { | ||
"type": { | ||
"name": "arrayOf", | ||
"value": { | ||
"name": "any" | ||
} | ||
}, | ||
"required": false, | ||
"description": "" | ||
}, | ||
"defaultSelectedItems": { | ||
"type": { | ||
"name": "arrayOf", | ||
"value": { | ||
"name": "any" | ||
} | ||
}, | ||
"required": false, | ||
"description": "", | ||
"defaultValue": { | ||
"value": "[]", | ||
"computed": false | ||
} | ||
} | ||
}, | ||
"composes": ["downshift"] | ||
@@ -281,0 +309,0 @@ }; |
{ | ||
"name": "@hig/multi-downshift", | ||
"version": "0.1.0-alpha", | ||
"version": "0.1.0", | ||
"description": "Multi-selection support for Downshift", | ||
@@ -20,3 +20,3 @@ "author": "Autodesk Inc.", | ||
"dependencies": { | ||
"@hig/utils": "^0.1.0-alpha", | ||
"@hig/utils": "^0.2.0", | ||
"downshift": "^2.0.12", | ||
@@ -23,0 +23,0 @@ "prop-types": "^15.6.1" |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
22302
5
471
+ Added@hig/utils@0.2.1(transitive)
- Removed@hig/utils@0.1.0(transitive)
Updated@hig/utils@^0.2.0