Socket
Socket
Sign inDemoInstall

@hig/multi-downshift

Package Overview
Dependencies
Maintainers
6
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hig/multi-downshift - npm Package Compare versions

Comparing version 0.1.0-alpha to 0.1.0

CHANGELOG.md

104

build/index.es.js
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"

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