tenjin-ui-kit 0.2.11 → 0.2.13

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.
@@ -1,259 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _KeyboardArrowDown = _interopRequireDefault(require("@mui/icons-material/KeyboardArrowDown"));
9
- var _material = require("@mui/material");
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _react = _interopRequireWildcard(require("react"));
12
- var _fi = require("react-icons/fi");
13
- var _button = _interopRequireDefault(require("../button"));
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
21
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
22
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
24
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
26
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
27
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
28
- var CustomSelect = function CustomSelect(_ref) {
29
- var label = _ref.label,
30
- options = _ref.options,
31
- valueKey = _ref.valueKey,
32
- displayKey = _ref.displayKey,
33
- onChange = _ref.onChange,
34
- multiple = _ref.multiple,
35
- optionsContainerWidth = _ref.optionsContainerWidth;
36
- var _useState = (0, _react.useState)({
37
- unfiltered: options,
38
- filtered: options,
39
- filter: null,
40
- loading: false
41
- }),
42
- _useState2 = _slicedToArray(_useState, 2),
43
- optionsState = _useState2[0],
44
- setOptionsState = _useState2[1];
45
- var _useState3 = (0, _react.useState)(false),
46
- _useState4 = _slicedToArray(_useState3, 2),
47
- active = _useState4[0],
48
- setActive = _useState4[1];
49
- var _useState5 = (0, _react.useState)(null),
50
- _useState6 = _slicedToArray(_useState5, 2),
51
- menuAnchor = _useState6[0],
52
- setMenuAnchor = _useState6[1];
53
- var _useState7 = (0, _react.useState)([]),
54
- _useState8 = _slicedToArray(_useState7, 2),
55
- selectedOptions = _useState8[0],
56
- setSelectedOptions = _useState8[1];
57
- (0, _react.useEffect)(function () {
58
- if (selectedOptions && selectedOptions.length) {
59
- setActive(true);
60
- } else {
61
- setActive(false);
62
- }
63
- }, [selectedOptions]);
64
- var atleastOneItemSelected = selectedOptions && selectedOptions.length > 0;
65
- var handleMenuClose = function handleMenuClose() {
66
- setMenuAnchor(null);
67
- if (!atleastOneItemSelected) setActive(false);
68
- };
69
- var handleMenuOpen = function handleMenuOpen(e) {
70
- setMenuAnchor(e.currentTarget);
71
- setActive(true);
72
- };
73
- var handleSelection = function handleSelection(e, option) {
74
- var dirtyUnfilteredOptions = [];
75
- if (multiple) {
76
- var checked = e.target.checked;
77
- dirtyUnfilteredOptions = optionsState.unfiltered.map(function (o) {
78
- return o[valueKey] === option[valueKey] ? _objectSpread(_objectSpread({}, o), {}, {
79
- selected: checked
80
- }) : o;
81
- });
82
- } else {
83
- dirtyUnfilteredOptions = optionsState.unfiltered.map(function (o) {
84
- return o[valueKey] === option[valueKey] ? _objectSpread(_objectSpread({}, o), {}, {
85
- selected: true
86
- }) : _objectSpread(_objectSpread({}, o), {}, {
87
- selected: false
88
- });
89
- });
90
- }
91
- var oSelectedOptions = dirtyUnfilteredOptions.filter(function (o) {
92
- return o.selected === true;
93
- });
94
- onChange(oSelectedOptions);
95
- setOptionsState(_objectSpread(_objectSpread({}, optionsState), {}, {
96
- unfiltered: dirtyUnfilteredOptions
97
- }));
98
- setSelectedOptions(oSelectedOptions);
99
- };
100
- var clearSelection = function clearSelection() {
101
- setSelectedOptions([]);
102
- setOptionsState(_objectSpread(_objectSpread({}, optionsState), {}, {
103
- unfiltered: optionsState.unfiltered.map(function (u) {
104
- return _objectSpread(_objectSpread({}, u), {}, {
105
- selected: false
106
- });
107
- })
108
- }));
109
- handleMenuClose();
110
- onChange(null);
111
- };
112
- var theme = (0, _material.useTheme)();
113
- return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_button.default, {
114
- color: active || atleastOneItemSelected ? "primary" : "info",
115
- endIcon: /*#__PURE__*/_react.default.createElement(_KeyboardArrowDown.default, null),
116
- onClick: handleMenuOpen
117
- }, atleastOneItemSelected ? selectedOptions.length === 1 ? "".concat(label, ": ").concat(selectedOptions[0][displayKey]) : "".concat(label, ": ").concat(selectedOptions[0][displayKey], " +").concat(selectedOptions.length - 1) : label), /*#__PURE__*/_react.default.createElement(_material.Menu, {
118
- sx: {
119
- padding: 0,
120
- paddingTop: theme.spacing(0.5)
121
- },
122
- id: "select-options-menu",
123
- getContentAnchorEl: null,
124
- anchorOrigin: {
125
- vertical: "bottom",
126
- horizontal: "left"
127
- },
128
- transformOrigin: {
129
- vertical: "top",
130
- horizontal: "left"
131
- },
132
- anchorEl: menuAnchor,
133
- open: Boolean(menuAnchor),
134
- onClose: handleMenuClose
135
- }, /*#__PURE__*/_react.default.createElement(_material.Grid, {
136
- container: true,
137
- sx: {
138
- padding: "0 0.25rem",
139
- maxWidth: optionsContainerWidth,
140
- width: optionsContainerWidth
141
- }
142
- }, /*#__PURE__*/_react.default.createElement(_material.Grid, {
143
- item: true,
144
- xs: 12
145
- }, /*#__PURE__*/_react.default.createElement(_material.Input, {
146
- fullWidth: true,
147
- startAdornment: /*#__PURE__*/_react.default.createElement(_fi.FiSearch, {
148
- style: {
149
- marginRight: theme.spacing(1),
150
- color: "#7d7d7d"
151
- }
152
- }),
153
- placeholder: "Search",
154
- autoFocus: true,
155
- disableUnderline: true,
156
- value: optionsState.filter,
157
- onChange: function onChange(e) {
158
- return setOptionsState(_objectSpread(_objectSpread({}, optionsState), {}, {
159
- filter: e.target.value
160
- }));
161
- },
162
- onKeyDown: function onKeyDown(e) {
163
- return e.stopPropagation();
164
- }
165
- })), /*#__PURE__*/_react.default.createElement(_material.Grid, {
166
- item: true,
167
- xs: 12
168
- }, /*#__PURE__*/_react.default.createElement(_material.Divider, null)), optionsState.loading ? /*#__PURE__*/_react.default.createElement(_material.Grid, {
169
- item: true,
170
- xs: 12
171
- }, /*#__PURE__*/_react.default.createElement(_material.Typography, {
172
- variant: "body2",
173
- color: "GrayText"
174
- }, "Fetching options...")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Grid, {
175
- item: true,
176
- xs: 12
177
- }, /*#__PURE__*/_react.default.createElement(OptionsList, {
178
- onSelect: handleSelection,
179
- options: optionsState.unfiltered,
180
- selectedValues: selectedOptions.map(function (s) {
181
- return s[valueKey];
182
- }),
183
- valueKey: valueKey,
184
- displayKey: displayKey,
185
- multiple: multiple
186
- })), atleastOneItemSelected ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Grid, {
187
- item: true,
188
- xs: 12
189
- }, /*#__PURE__*/_react.default.createElement(_material.Divider, null)), /*#__PURE__*/_react.default.createElement(_material.Grid, {
190
- item: true,
191
- xs: 12
192
- }, /*#__PURE__*/_react.default.createElement(_button.default, {
193
- variant: "text",
194
- startIcon: /*#__PURE__*/_react.default.createElement(_fi.FiX, null),
195
- onClick: clearSelection,
196
- fullWidth: true
197
- }, "Clear Selection"))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)))));
198
- };
199
- var OptionsList = function OptionsList(_ref2) {
200
- var options = _ref2.options,
201
- multiple = _ref2.multiple,
202
- displayKey = _ref2.displayKey,
203
- onSelect = _ref2.onSelect;
204
- var handleSingleSelection = function handleSingleSelection(event, option) {
205
- if (!multiple) {
206
- onSelect(event, option);
207
- }
208
-
209
- // If multiple is true, let the checkbox event listener handle calling the onSelect.
210
- // if multiple is true, we need the checkbox click event to be passed so that the onSelect
211
- // can determined if the checkbox is checked or unchecked. Making two different functions is to avoid
212
- // calling the onSelect twice (in case of multiple being true) - once on MenuItem click (for single) and other on checkbox click (for multiple)
213
- };
214
-
215
- var handleMultipleSelection = function handleMultipleSelection(event, option) {
216
- if (multiple) {
217
- onSelect(event, option);
218
- }
219
- };
220
- return /*#__PURE__*/_react.default.createElement(_material.MenuList, {
221
- sx: {
222
- padding: 0
223
- }
224
- }, options.map(function (o) {
225
- return /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
226
- disableRipple: true,
227
- dense: true,
228
- item: true,
229
- xs: 12,
230
- onClick: function onClick(e) {
231
- return handleSingleSelection(e, o);
232
- },
233
- sx: {
234
- padding: "0 8px"
235
- }
236
- }, !multiple ? /*#__PURE__*/_react.default.createElement(_material.Typography, null, o[displayKey]) : /*#__PURE__*/_react.default.createElement(_material.FormGroup, {
237
- sx: {
238
- width: "100%"
239
- }
240
- }, /*#__PURE__*/_react.default.createElement(_material.FormControlLabel, {
241
- control: /*#__PURE__*/_react.default.createElement(_material.Checkbox, {
242
- size: "small",
243
- checked: o.selected,
244
- onChange: function onChange(e) {
245
- return handleMultipleSelection(e, o);
246
- }
247
- }),
248
- label: o[displayKey]
249
- })));
250
- }));
251
- };
252
- CustomSelect.propTypes = {
253
- label: _propTypes.default.string.isRequired
254
- };
255
- CustomSelect.defaultProps = {
256
- optionsContainerWidth: "250px"
257
- };
258
- var _default = CustomSelect;
259
- exports.default = _default;