@pareto-engineering/design-system 4.0.0-alpha.73 → 4.0.0-alpha.74
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/f/fields/SelectInput/SelectInput.js +33 -42
- package/dist/cjs/f/fields/SelectInput/common/Menu/Menu.js +83 -0
- package/dist/cjs/f/fields/SelectInput/common/Menu/index.js +13 -0
- package/dist/cjs/f/fields/SelectInput/common/Multiple/Multiple.js +244 -0
- package/dist/cjs/f/fields/SelectInput/common/Multiple/index.js +13 -0
- package/dist/cjs/f/fields/SelectInput/common/Single/Single.js +104 -0
- package/dist/cjs/f/fields/SelectInput/common/Single/index.js +13 -0
- package/dist/cjs/f/fields/SelectInput/common/index.js +26 -0
- package/dist/cjs/f/fields/SelectInput/styles.scss +149 -45
- package/dist/es/f/fields/SelectInput/SelectInput.js +31 -42
- package/dist/es/f/fields/SelectInput/common/Menu/Menu.js +73 -0
- package/dist/es/f/fields/SelectInput/common/Menu/index.js +2 -0
- package/dist/es/f/fields/SelectInput/common/Multiple/Multiple.js +235 -0
- package/dist/es/f/fields/SelectInput/common/Multiple/index.js +2 -0
- package/dist/es/f/fields/SelectInput/common/Single/Single.js +96 -0
- package/dist/es/f/fields/SelectInput/common/Single/index.js +2 -0
- package/dist/es/f/fields/SelectInput/common/index.js +3 -0
- package/dist/es/f/fields/SelectInput/styles.scss +149 -45
- package/package.json +2 -2
- package/src/stories/f/SelectInput.stories.jsx +15 -0
- package/src/ui/f/fields/SelectInput/SelectInput.jsx +34 -47
- package/src/ui/f/fields/SelectInput/common/Menu/Menu.jsx +103 -0
- package/src/ui/f/fields/SelectInput/common/Menu/index.js +2 -0
- package/src/ui/f/fields/SelectInput/common/Multiple/Multiple.jsx +288 -0
- package/src/ui/f/fields/SelectInput/common/Multiple/index.js +2 -0
- package/src/ui/f/fields/SelectInput/common/Single/Single.jsx +125 -0
- package/src/ui/f/fields/SelectInput/common/Single/index.js +2 -0
- package/src/ui/f/fields/SelectInput/common/index.js +3 -0
- package/src/ui/f/fields/SelectInput/styles.scss +149 -45
- package/tests/__snapshots__/Storyshots.test.js.snap +523 -393
|
@@ -6,16 +6,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var React = _react;
|
|
9
|
-
var _formik = require("formik");
|
|
10
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
10
|
var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
|
|
12
|
-
var _a = require("../../../a");
|
|
13
|
-
var _common = require("../../common");
|
|
14
11
|
require("./styles.scss");
|
|
12
|
+
var _common = require("./common");
|
|
15
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
17
15
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
-
|
|
16
|
+
/* @pareto-engineering/generator-front 1.0.12 */
|
|
17
|
+
|
|
19
18
|
// Local Definitions
|
|
20
19
|
|
|
21
20
|
const baseClassName = _exports.default.base;
|
|
@@ -39,49 +38,33 @@ const SelectInput = _ref => {
|
|
|
39
38
|
description,
|
|
40
39
|
disabled,
|
|
41
40
|
isLoading,
|
|
42
|
-
autoComplete
|
|
41
|
+
autoComplete,
|
|
42
|
+
placeholder,
|
|
43
|
+
getTagColor,
|
|
44
|
+
multiple
|
|
43
45
|
// ...otherProps
|
|
44
46
|
} = _ref;
|
|
45
|
-
const
|
|
47
|
+
const inputProps = {
|
|
46
48
|
name,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
label,
|
|
50
|
+
labelColor,
|
|
51
|
+
color,
|
|
52
|
+
options,
|
|
53
|
+
validate,
|
|
54
|
+
optional,
|
|
55
|
+
description,
|
|
56
|
+
disabled,
|
|
57
|
+
isLoading,
|
|
58
|
+
placeholder,
|
|
59
|
+
getTagColor,
|
|
60
|
+
autoComplete
|
|
61
|
+
};
|
|
62
|
+
const Input = multiple ? _common.Multiple : _common.Single;
|
|
49
63
|
return /*#__PURE__*/React.createElement("div", {
|
|
50
64
|
id: id,
|
|
51
65
|
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
52
66
|
style: style
|
|
53
|
-
}, /*#__PURE__*/React.createElement(
|
|
54
|
-
name: name,
|
|
55
|
-
color: labelColor,
|
|
56
|
-
optional: optional
|
|
57
|
-
// {...otherProps}
|
|
58
|
-
}, label), /*#__PURE__*/React.createElement("div", {
|
|
59
|
-
className: `select-wrapper${disabled ? ' disabled' : ''}`
|
|
60
|
-
}, /*#__PURE__*/React.createElement("select", _extends({
|
|
61
|
-
className: `input y-${color}`
|
|
62
|
-
}, field, {
|
|
63
|
-
value: field.value || '',
|
|
64
|
-
id: name,
|
|
65
|
-
disabled: disabled,
|
|
66
|
-
autoComplete: autoComplete
|
|
67
|
-
}), options.map(option => {
|
|
68
|
-
// i.e if option is a string like "blah", return { value: "blah", label: "blah" }
|
|
69
|
-
const newOption = typeof option === 'string' ? {
|
|
70
|
-
value: option,
|
|
71
|
-
label: option
|
|
72
|
-
} : option;
|
|
73
|
-
return /*#__PURE__*/React.createElement("option", {
|
|
74
|
-
key: newOption.value,
|
|
75
|
-
value: newOption.value,
|
|
76
|
-
disabled: newOption?.disabled || false
|
|
77
|
-
}, newOption.label);
|
|
78
|
-
})), isLoading && /*#__PURE__*/React.createElement(_a.LoadingCircle, {
|
|
79
|
-
className: "x-main"
|
|
80
|
-
})), /*#__PURE__*/React.createElement(_common.FormDescription, {
|
|
81
|
-
className: "s-1",
|
|
82
|
-
description: description,
|
|
83
|
-
name: name
|
|
84
|
-
}));
|
|
67
|
+
}, /*#__PURE__*/React.createElement(Input, inputProps));
|
|
85
68
|
};
|
|
86
69
|
SelectInput.propTypes = {
|
|
87
70
|
/**
|
|
@@ -143,10 +126,18 @@ SelectInput.propTypes = {
|
|
|
143
126
|
/**
|
|
144
127
|
* Whether the input is optional or not
|
|
145
128
|
*/
|
|
146
|
-
optional: _propTypes.default.bool
|
|
129
|
+
optional: _propTypes.default.bool,
|
|
130
|
+
/**
|
|
131
|
+
* Whether the select input should allow multiple selections
|
|
132
|
+
*/
|
|
133
|
+
multiple: _propTypes.default.bool,
|
|
134
|
+
/**
|
|
135
|
+
* The placeholder of the select input
|
|
136
|
+
*/
|
|
137
|
+
placeholder: _propTypes.default.string
|
|
147
138
|
};
|
|
148
139
|
SelectInput.defaultProps = {
|
|
149
140
|
disabled: false,
|
|
150
|
-
|
|
141
|
+
multiple: false
|
|
151
142
|
};
|
|
152
143
|
var _default = exports.default = /*#__PURE__*/(0, _react.memo)(SelectInput);
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* @pareto-engineering/generator-front 1.0.12 */
|
|
14
|
+
// Local Definitions
|
|
15
|
+
|
|
16
|
+
const baseClassName = _exports.default.base;
|
|
17
|
+
const componentClassName = 'menu';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* This is the component description.
|
|
21
|
+
*/
|
|
22
|
+
const Menu = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
23
|
+
let {
|
|
24
|
+
id,
|
|
25
|
+
className: userClassName,
|
|
26
|
+
style,
|
|
27
|
+
items,
|
|
28
|
+
isOpen,
|
|
29
|
+
highlightedIndex,
|
|
30
|
+
getItemProps,
|
|
31
|
+
...otherProps
|
|
32
|
+
} = _ref;
|
|
33
|
+
return /*#__PURE__*/React.createElement("ul", _extends({
|
|
34
|
+
id: id,
|
|
35
|
+
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
36
|
+
style: style,
|
|
37
|
+
ref: ref
|
|
38
|
+
}, otherProps), isOpen && items.map((item, index) => /*#__PURE__*/React.createElement("li", _extends({
|
|
39
|
+
key: item.label
|
|
40
|
+
}, getItemProps({
|
|
41
|
+
item,
|
|
42
|
+
index
|
|
43
|
+
}), {
|
|
44
|
+
className: ['item', highlightedIndex === index && _exports.default.modifierActive].filter(Boolean).join(' ')
|
|
45
|
+
}), /*#__PURE__*/React.createElement("p", null, item.label))));
|
|
46
|
+
});
|
|
47
|
+
Menu.propTypes = {
|
|
48
|
+
/**
|
|
49
|
+
* The HTML id for this element
|
|
50
|
+
*/
|
|
51
|
+
id: _propTypes.default.string,
|
|
52
|
+
/**
|
|
53
|
+
* The HTML class names for this element
|
|
54
|
+
*/
|
|
55
|
+
className: _propTypes.default.string,
|
|
56
|
+
/**
|
|
57
|
+
* The React-written, css properties for this element.
|
|
58
|
+
*/
|
|
59
|
+
style: _propTypes.default.objectOf(_propTypes.default.string),
|
|
60
|
+
/**
|
|
61
|
+
* The items to be displayed in the menu
|
|
62
|
+
*/
|
|
63
|
+
items: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
64
|
+
value: _propTypes.default.string,
|
|
65
|
+
label: _propTypes.default.string
|
|
66
|
+
})),
|
|
67
|
+
/**
|
|
68
|
+
* Whether or not the menu is open
|
|
69
|
+
*/
|
|
70
|
+
isOpen: _propTypes.default.bool,
|
|
71
|
+
/**
|
|
72
|
+
* The index of the highlighted item
|
|
73
|
+
*/
|
|
74
|
+
highlightedIndex: _propTypes.default.number,
|
|
75
|
+
/**
|
|
76
|
+
* The function to get the item props
|
|
77
|
+
*/
|
|
78
|
+
getItemProps: _propTypes.default.func
|
|
79
|
+
};
|
|
80
|
+
Menu.defaultProps = {
|
|
81
|
+
// someProp:false
|
|
82
|
+
};
|
|
83
|
+
var _default = exports.default = Menu;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Menu", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _Menu.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _Menu = _interopRequireDefault(require("./Menu"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var React = _react;
|
|
9
|
+
var _formik = require("formik");
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _downshift = require("downshift");
|
|
12
|
+
var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
|
|
13
|
+
var _b = require("../../../../../b");
|
|
14
|
+
var _a = require("../../../../../a");
|
|
15
|
+
var _ = require("../../../..");
|
|
16
|
+
var _Menu = require("../Menu");
|
|
17
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
19
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
20
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* @pareto-engineering/generator-front 1.0.12 */
|
|
21
|
+
// Local Definitions
|
|
22
|
+
|
|
23
|
+
const baseClassName = _exports.default.base;
|
|
24
|
+
const componentClassName = 'multiple';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @param {Array[Object]} first - first array to check if it has an item not in the second array.
|
|
28
|
+
* @param {Array[Object]} second - second array to check against the first array.
|
|
29
|
+
*
|
|
30
|
+
* @returns {Boolean} - true if the first array has an item not in the second array.
|
|
31
|
+
*/
|
|
32
|
+
const testIfArraysAreUnique = (first, second) => first.filter(objInFirstArray => !second.some(objInSecondArray => objInFirstArray.value === objInSecondArray.value)).length > 0;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* This is the component description.
|
|
36
|
+
*/
|
|
37
|
+
const Multiple = _ref => {
|
|
38
|
+
let {
|
|
39
|
+
id,
|
|
40
|
+
className: userClassName,
|
|
41
|
+
style,
|
|
42
|
+
name,
|
|
43
|
+
label,
|
|
44
|
+
labelColor,
|
|
45
|
+
color,
|
|
46
|
+
options,
|
|
47
|
+
validate,
|
|
48
|
+
optional,
|
|
49
|
+
description,
|
|
50
|
+
disabled,
|
|
51
|
+
autoComplete,
|
|
52
|
+
transformSearch,
|
|
53
|
+
getTagColor,
|
|
54
|
+
placeholder
|
|
55
|
+
// ...otherProps
|
|
56
|
+
} = _ref;
|
|
57
|
+
const [, meta, helpers] = (0, _formik.useField)({
|
|
58
|
+
name,
|
|
59
|
+
validate
|
|
60
|
+
});
|
|
61
|
+
const {
|
|
62
|
+
setValue
|
|
63
|
+
} = helpers;
|
|
64
|
+
const {
|
|
65
|
+
value
|
|
66
|
+
} = meta;
|
|
67
|
+
const [searchInputValue, setSearchInputValue] = (0, _react.useState)('');
|
|
68
|
+
const {
|
|
69
|
+
getSelectedItemProps,
|
|
70
|
+
getDropdownProps,
|
|
71
|
+
addSelectedItem,
|
|
72
|
+
removeSelectedItem,
|
|
73
|
+
setSelectedItems,
|
|
74
|
+
selectedItems
|
|
75
|
+
} = (0, _downshift.useMultipleSelection)({
|
|
76
|
+
initialSelectedItems: value || []
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @returns {Boolean} - Unique items from the options array so that the combobox
|
|
81
|
+
* shows only the options that are not yet selected.
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
const items = (0, _react.useMemo)(() => {
|
|
85
|
+
const lowerCasedInputValue = searchInputValue.toLowerCase();
|
|
86
|
+
return options.filter(option => {
|
|
87
|
+
const lowerCasedOption = option.label.toLowerCase();
|
|
88
|
+
return lowerCasedOption.includes(lowerCasedInputValue) && !selectedItems.includes(option);
|
|
89
|
+
});
|
|
90
|
+
}, [searchInputValue, selectedItems]);
|
|
91
|
+
const {
|
|
92
|
+
isOpen,
|
|
93
|
+
getLabelProps,
|
|
94
|
+
getMenuProps,
|
|
95
|
+
getInputProps,
|
|
96
|
+
getComboboxProps,
|
|
97
|
+
highlightedIndex,
|
|
98
|
+
getItemProps
|
|
99
|
+
} = (0, _downshift.useCombobox)({
|
|
100
|
+
inputValue: searchInputValue,
|
|
101
|
+
defaultHighlightedIndex: 0,
|
|
102
|
+
// after selection, highlight the first item.
|
|
103
|
+
selectedItem: null,
|
|
104
|
+
items,
|
|
105
|
+
circularNavigation: true,
|
|
106
|
+
stateReducer: (state, actionAndChanges) => {
|
|
107
|
+
const {
|
|
108
|
+
changes,
|
|
109
|
+
type
|
|
110
|
+
} = actionAndChanges;
|
|
111
|
+
switch (type) {
|
|
112
|
+
case _downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
113
|
+
case _downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
114
|
+
return {
|
|
115
|
+
...changes,
|
|
116
|
+
isOpen: true // keep the menu open after selection.
|
|
117
|
+
};
|
|
118
|
+
default:
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
return changes;
|
|
122
|
+
},
|
|
123
|
+
onStateChange: _ref2 => {
|
|
124
|
+
let {
|
|
125
|
+
inputValue: newSearchInputValue,
|
|
126
|
+
type,
|
|
127
|
+
selectedItem
|
|
128
|
+
} = _ref2;
|
|
129
|
+
switch (type) {
|
|
130
|
+
case _downshift.useCombobox.stateChangeTypes.InputChange:
|
|
131
|
+
{
|
|
132
|
+
const transformedInput = transformSearch(newSearchInputValue);
|
|
133
|
+
setSearchInputValue(transformedInput);
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
case _downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
137
|
+
case _downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
138
|
+
case _downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
139
|
+
if (selectedItem) {
|
|
140
|
+
setSearchInputValue('');
|
|
141
|
+
addSelectedItem(selectedItem);
|
|
142
|
+
}
|
|
143
|
+
break;
|
|
144
|
+
default:
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
(0, _react.useEffect)(() => {
|
|
150
|
+
if (selectedItems?.length > 0) {
|
|
151
|
+
setValue(selectedItems);
|
|
152
|
+
}
|
|
153
|
+
}, [selectedItems]);
|
|
154
|
+
(0, _react.useEffect)(() => {
|
|
155
|
+
if (value?.length > 0 && (testIfArraysAreUnique(value, selectedItems) || testIfArraysAreUnique(selectedItems, value))) {
|
|
156
|
+
setSelectedItems(value);
|
|
157
|
+
}
|
|
158
|
+
}, [value]);
|
|
159
|
+
const parentRef = (0, _react.useRef)(null);
|
|
160
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
161
|
+
id: id,
|
|
162
|
+
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
163
|
+
style: style,
|
|
164
|
+
ref: parentRef
|
|
165
|
+
}, getComboboxProps()), /*#__PURE__*/React.createElement(_.FormLabel, _extends({
|
|
166
|
+
className: [baseClassName, componentClassName].filter(e => e).join(' ')
|
|
167
|
+
}, getLabelProps(), {
|
|
168
|
+
name: name,
|
|
169
|
+
optional: optional,
|
|
170
|
+
color: labelColor
|
|
171
|
+
}), label), selectedItems?.length > 0 && /*#__PURE__*/React.createElement("div", {
|
|
172
|
+
className: "selected-items"
|
|
173
|
+
}, selectedItems.map((selectedItem, index) => /*#__PURE__*/React.createElement("div", _extends({
|
|
174
|
+
key: selectedItem.label
|
|
175
|
+
}, getSelectedItemProps({
|
|
176
|
+
selectedItem,
|
|
177
|
+
index
|
|
178
|
+
}), {
|
|
179
|
+
className: "item"
|
|
180
|
+
}), /*#__PURE__*/React.createElement(_b.Button, {
|
|
181
|
+
onClick: e => {
|
|
182
|
+
e.stopPropagation();
|
|
183
|
+
removeSelectedItem(selectedItem);
|
|
184
|
+
},
|
|
185
|
+
isCompact: true,
|
|
186
|
+
color: getTagColor ? getTagColor(selectedItem) : color
|
|
187
|
+
}, /*#__PURE__*/React.createElement("span", null, selectedItem.label), /*#__PURE__*/React.createElement("span", {
|
|
188
|
+
className: "icon close"
|
|
189
|
+
}, "Y"))))), /*#__PURE__*/React.createElement("div", {
|
|
190
|
+
className: "input-container"
|
|
191
|
+
}, /*#__PURE__*/React.createElement("input", _extends({}, getInputProps(getDropdownProps({
|
|
192
|
+
preventKeyAction: isOpen
|
|
193
|
+
})), {
|
|
194
|
+
className: "input",
|
|
195
|
+
disabled: disabled,
|
|
196
|
+
placeholder: placeholder,
|
|
197
|
+
autoComplete: autoComplete
|
|
198
|
+
}))), /*#__PURE__*/React.createElement(_.FormDescription, {
|
|
199
|
+
className: "s-1",
|
|
200
|
+
description: description,
|
|
201
|
+
name: name
|
|
202
|
+
}), /*#__PURE__*/React.createElement(_a.Popover, {
|
|
203
|
+
isOpen: isOpen,
|
|
204
|
+
parentRef: parentRef
|
|
205
|
+
}, /*#__PURE__*/React.createElement(_Menu.Menu, _extends({
|
|
206
|
+
className: `y-${color}`,
|
|
207
|
+
isOpen: isOpen,
|
|
208
|
+
getItemProps: getItemProps,
|
|
209
|
+
highlightedIndex: highlightedIndex,
|
|
210
|
+
items: items
|
|
211
|
+
}, getMenuProps()))));
|
|
212
|
+
};
|
|
213
|
+
Multiple.propTypes = {
|
|
214
|
+
/**
|
|
215
|
+
* The HTML id for this element
|
|
216
|
+
*/
|
|
217
|
+
id: _propTypes.default.string,
|
|
218
|
+
/**
|
|
219
|
+
* The HTML class names for this element
|
|
220
|
+
*/
|
|
221
|
+
className: _propTypes.default.string,
|
|
222
|
+
/**
|
|
223
|
+
* The React-written, css properties for this element.
|
|
224
|
+
*/
|
|
225
|
+
style: _propTypes.default.objectOf(_propTypes.default.string),
|
|
226
|
+
/**
|
|
227
|
+
* A function that transforms the search input value
|
|
228
|
+
*/
|
|
229
|
+
transformSearch: _propTypes.default.func,
|
|
230
|
+
/**
|
|
231
|
+
* The minimum length of the search input value
|
|
232
|
+
*/
|
|
233
|
+
minLength: _propTypes.default.number,
|
|
234
|
+
/**
|
|
235
|
+
* The base color of the component
|
|
236
|
+
*/
|
|
237
|
+
color: _propTypes.default.string
|
|
238
|
+
};
|
|
239
|
+
Multiple.defaultProps = {
|
|
240
|
+
transformSearch: e => e,
|
|
241
|
+
minLength: 2,
|
|
242
|
+
color: 'interactive'
|
|
243
|
+
};
|
|
244
|
+
var _default = exports.default = Multiple;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Multiple", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _Multiple.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _Multiple = _interopRequireDefault(require("./Multiple"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _formik = require("formik");
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _exports = _interopRequireDefault(require("@pareto-engineering/bem/exports"));
|
|
11
|
+
var _a = require("../../../../../a");
|
|
12
|
+
var _cjs = require("../../../../../../../dist/cjs");
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
16
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } /* @pareto-engineering/generator-front 1.0.12 */
|
|
17
|
+
// Local Definitions
|
|
18
|
+
|
|
19
|
+
const baseClassName = _exports.default.base;
|
|
20
|
+
const componentClassName = 'single';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* This is the component description.
|
|
24
|
+
*/
|
|
25
|
+
const Single = _ref => {
|
|
26
|
+
let {
|
|
27
|
+
id,
|
|
28
|
+
className: userClassName,
|
|
29
|
+
style,
|
|
30
|
+
name,
|
|
31
|
+
label,
|
|
32
|
+
labelColor,
|
|
33
|
+
color,
|
|
34
|
+
options,
|
|
35
|
+
validate,
|
|
36
|
+
optional,
|
|
37
|
+
description,
|
|
38
|
+
disabled,
|
|
39
|
+
isLoading,
|
|
40
|
+
autoComplete
|
|
41
|
+
// ...otherProps
|
|
42
|
+
} = _ref;
|
|
43
|
+
const [field] = (0, _formik.useField)({
|
|
44
|
+
name,
|
|
45
|
+
validate
|
|
46
|
+
});
|
|
47
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
48
|
+
id: id,
|
|
49
|
+
className: [baseClassName, componentClassName, userClassName].filter(e => e).join(' '),
|
|
50
|
+
style: style
|
|
51
|
+
}, /*#__PURE__*/React.createElement(_cjs.FormLabel, {
|
|
52
|
+
name: name,
|
|
53
|
+
color: labelColor,
|
|
54
|
+
optional: optional
|
|
55
|
+
}, label), /*#__PURE__*/React.createElement("div", {
|
|
56
|
+
className: `select-wrapper${disabled ? ' disabled' : ''}`
|
|
57
|
+
}, /*#__PURE__*/React.createElement("select", _extends({
|
|
58
|
+
className: `input y-${color}`
|
|
59
|
+
}, field, {
|
|
60
|
+
value: field.value || '',
|
|
61
|
+
id: name,
|
|
62
|
+
disabled: disabled,
|
|
63
|
+
autoComplete: autoComplete
|
|
64
|
+
}), options.map(option => {
|
|
65
|
+
// i.e if option is a string like "blah", return { value: "blah", label: "blah" }
|
|
66
|
+
const newOption = typeof option === 'string' ? {
|
|
67
|
+
value: option,
|
|
68
|
+
label: option
|
|
69
|
+
} : option;
|
|
70
|
+
return /*#__PURE__*/React.createElement("option", {
|
|
71
|
+
key: newOption.value,
|
|
72
|
+
value: newOption.value,
|
|
73
|
+
disabled: newOption?.disabled || false
|
|
74
|
+
}, newOption.label);
|
|
75
|
+
})), isLoading && /*#__PURE__*/React.createElement(_a.LoadingCircle, {
|
|
76
|
+
className: "x-main"
|
|
77
|
+
})), /*#__PURE__*/React.createElement(_cjs.FormDescription, {
|
|
78
|
+
className: "s-1",
|
|
79
|
+
description: description,
|
|
80
|
+
name: name
|
|
81
|
+
}));
|
|
82
|
+
};
|
|
83
|
+
Single.propTypes = {
|
|
84
|
+
/**
|
|
85
|
+
* The HTML id for this element
|
|
86
|
+
*/
|
|
87
|
+
id: _propTypes.default.string,
|
|
88
|
+
/**
|
|
89
|
+
* The HTML class names for this element
|
|
90
|
+
*/
|
|
91
|
+
className: _propTypes.default.string,
|
|
92
|
+
/**
|
|
93
|
+
* The React-written, css properties for this element.
|
|
94
|
+
*/
|
|
95
|
+
style: _propTypes.default.objectOf(_propTypes.default.string),
|
|
96
|
+
/**
|
|
97
|
+
* The base color of the component
|
|
98
|
+
*/
|
|
99
|
+
color: _propTypes.default.string
|
|
100
|
+
};
|
|
101
|
+
Single.defaultProps = {
|
|
102
|
+
color: 'paragraph'
|
|
103
|
+
};
|
|
104
|
+
var _default = exports.default = Single;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Single", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _Single.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _Single = _interopRequireDefault(require("./Single"));
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Menu", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _Menu.Menu;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "Multiple", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _Multiple.Multiple;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "Single", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _Single.Single;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var _Multiple = require("./Multiple");
|
|
25
|
+
var _Single = require("./Single");
|
|
26
|
+
var _Menu = require("./Menu");
|