@cashub/ui 0.43.10 → 0.44.0
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/package.json
CHANGED
package/select/Select.js
CHANGED
|
@@ -16,12 +16,15 @@ var _hooks = require("@cashub/hooks");
|
|
|
16
16
|
var _utils = require("@cashub/utils");
|
|
17
17
|
var _media = _interopRequireDefault(require("../styles/mixin/media"));
|
|
18
18
|
var _SelectedSingle = _interopRequireDefault(require("./subComponent/SelectedSingle"));
|
|
19
|
-
var
|
|
19
|
+
var _SelectedMultipleTags = _interopRequireDefault(require("./subComponent/SelectedMultipleTags"));
|
|
20
|
+
var _SelectedMultipleText = _interopRequireDefault(require("./subComponent/SelectedMultipleText"));
|
|
20
21
|
var _ListBox = _interopRequireDefault(require("./subComponent/ListBox"));
|
|
21
22
|
var _SearchBox = _interopRequireDefault(require("./subComponent/SearchBox"));
|
|
22
23
|
var _Options = _interopRequireDefault(require("./subComponent/Options"));
|
|
23
24
|
var _OptionGroup = _interopRequireDefault(require("./subComponent/OptionGroup"));
|
|
24
25
|
var _Option = _interopRequireDefault(require("./subComponent/Option"));
|
|
26
|
+
var _Checkbox = _interopRequireDefault(require("./subComponent/Checkbox"));
|
|
27
|
+
var _Footer = _interopRequireDefault(require("./subComponent/Footer"));
|
|
25
28
|
var _figure = require("../figure");
|
|
26
29
|
var _image = require("../image");
|
|
27
30
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -41,6 +44,7 @@ const Select = _ref => {
|
|
|
41
44
|
onSelect,
|
|
42
45
|
onDeselect,
|
|
43
46
|
multiple = false,
|
|
47
|
+
displayMode = 'tags',
|
|
44
48
|
allowClear = false,
|
|
45
49
|
allowSearch = true,
|
|
46
50
|
disabled,
|
|
@@ -51,7 +55,8 @@ const Select = _ref => {
|
|
|
51
55
|
fillReverse,
|
|
52
56
|
onBlur,
|
|
53
57
|
onSearch,
|
|
54
|
-
flexGrow
|
|
58
|
+
flexGrow,
|
|
59
|
+
footer
|
|
55
60
|
} = _ref;
|
|
56
61
|
const {
|
|
57
62
|
t
|
|
@@ -110,6 +115,12 @@ const Select = _ref => {
|
|
|
110
115
|
}
|
|
111
116
|
return parsedSelected;
|
|
112
117
|
}, [multiple, enableSelectAll, newOptions.length, parsedSelected, allOptionId]);
|
|
118
|
+
const showCheckbox = (0, _react.useMemo)(() => {
|
|
119
|
+
if (multiple && displayMode === 'text') {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
return false;
|
|
123
|
+
}, [displayMode, multiple]);
|
|
113
124
|
|
|
114
125
|
// set focused option
|
|
115
126
|
const handleFocusItem = (0, _react.useCallback)(element => {
|
|
@@ -227,15 +238,30 @@ const Select = _ref => {
|
|
|
227
238
|
const selectedItem = (0, _react.useMemo)(() => {
|
|
228
239
|
if (selectedOptions.length > 0) {
|
|
229
240
|
if (multiple) {
|
|
241
|
+
if (displayMode === 'text') {
|
|
242
|
+
let text;
|
|
243
|
+
if (selectedOptions[0].id === allOptionId) {
|
|
244
|
+
[{
|
|
245
|
+
text
|
|
246
|
+
}] = selectedOptions;
|
|
247
|
+
} else {
|
|
248
|
+
text = selectedOptions.map(value => {
|
|
249
|
+
return value.text;
|
|
250
|
+
}).join(', ');
|
|
251
|
+
}
|
|
252
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_SelectedMultipleText.default, {
|
|
253
|
+
children: text
|
|
254
|
+
});
|
|
255
|
+
}
|
|
230
256
|
if (selectedOptions[0].id === allOptionId) {
|
|
231
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
257
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_SelectedMultipleTags.default, {
|
|
232
258
|
content: selectedOptions[0].text,
|
|
233
259
|
onClick: event => handleOnDeselect(event, selectedOptions[0].id),
|
|
234
260
|
disabled: disabled
|
|
235
261
|
}, selectedOptions[0].id);
|
|
236
262
|
}
|
|
237
263
|
return selectedOptions.map(value => {
|
|
238
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
264
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_SelectedMultipleTags.default, {
|
|
239
265
|
content: value.text,
|
|
240
266
|
onClick: event => handleOnDeselect(event, value.id),
|
|
241
267
|
disabled: disabled
|
|
@@ -249,7 +275,7 @@ const Select = _ref => {
|
|
|
249
275
|
});
|
|
250
276
|
}
|
|
251
277
|
return placeholder;
|
|
252
|
-
}, [placeholder, handleOnDeselect, multiple, selectedOptions, disabled, allOptionId]);
|
|
278
|
+
}, [placeholder, handleOnDeselect, multiple, displayMode, selectedOptions, disabled, allOptionId]);
|
|
253
279
|
const optionItem = (0, _react.useMemo)(() => {
|
|
254
280
|
if (optionList.length <= 0) return null;
|
|
255
281
|
return optionList.map(option => {
|
|
@@ -282,12 +308,14 @@ const Select = _ref => {
|
|
|
282
308
|
focus: focusedOption && focusedOption.id === option.id.toString(),
|
|
283
309
|
selected: option.selected,
|
|
284
310
|
"aria-selected": option.selected,
|
|
285
|
-
children: [
|
|
311
|
+
children: [showCheckbox && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.default, {
|
|
312
|
+
selected: option.selected
|
|
313
|
+
}), option.icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, {
|
|
286
314
|
src: option.icon
|
|
287
315
|
}), option.text]
|
|
288
316
|
}, option.id);
|
|
289
317
|
});
|
|
290
|
-
}, [optionList, focusedOption, handleOnSelect]);
|
|
318
|
+
}, [optionList, focusedOption, handleOnSelect, showCheckbox]);
|
|
291
319
|
|
|
292
320
|
// show or hide listbox
|
|
293
321
|
// and set listbox width according to combobox current width
|
|
@@ -558,6 +586,8 @@ const Select = _ref => {
|
|
|
558
586
|
children: optionItem || /*#__PURE__*/(0, _jsxRuntime.jsx)(Message, {
|
|
559
587
|
children: "No results found"
|
|
560
588
|
})
|
|
589
|
+
}), footer && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Footer.default, {
|
|
590
|
+
children: footer
|
|
561
591
|
})]
|
|
562
592
|
})), document.body)]
|
|
563
593
|
})
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
8
|
+
var _md = require("react-icons/md");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
var _templateObject, _templateObject2;
|
|
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 && {}.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 _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
14
|
+
const Checkbox = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
selected
|
|
17
|
+
} = _ref;
|
|
18
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Container, {
|
|
19
|
+
selected: selected,
|
|
20
|
+
children: selected && /*#__PURE__*/(0, _jsxRuntime.jsx)(_md.MdDone, {})
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
const Container = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n width: 24px;\n height: 24px;\n border: var(--border-width) solid var(--border-color);\n margin-right: var(--spacing-xs);\n border-radius: 4px;\n\n ", "\n\n > svg {\n position: absolute;\n color: var(--font-on-primary);\n font-size: var(--font-h3);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n"])), _ref2 => {
|
|
24
|
+
let {
|
|
25
|
+
selected
|
|
26
|
+
} = _ref2;
|
|
27
|
+
return selected && (0, _styledComponents.css)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n background: var(--color-primary);\n border-color: var(--color-primary);\n "])));
|
|
28
|
+
});
|
|
29
|
+
var _default = exports.default = Checkbox;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
var _templateObject;
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
11
|
+
const Footer = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding: var(--spacing-s);\n border-top: 1px solid var(--border-color);\n"])));
|
|
12
|
+
var _default = exports.default = Footer;
|
|
@@ -10,7 +10,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
10
10
|
var _templateObject;
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
13
|
-
const
|
|
13
|
+
const SelectedMultipleTags = _ref => {
|
|
14
14
|
let {
|
|
15
15
|
content,
|
|
16
16
|
onClick,
|
|
@@ -25,4 +25,4 @@ const SelectedMultiple = _ref => {
|
|
|
25
25
|
});
|
|
26
26
|
};
|
|
27
27
|
const Selected = _styledComponents.default.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n align-items: center;\n display: flex;\n background: var(--color-background3);\n border-radius: var(--border-radius-l);\n padding: 0.25rem calc(var(--spacing-xs) + 4px);\n margin: 4px 10px 4px 0;\n color: var(--font-on-background);\n font-weight: var(--font-normal);\n word-break: break-all;\n\n > span {\n display: flex;\n align-items: center;\n\n > svg {\n margin-right: var(--spacing-xs);\n color: var(--font-on-background);\n }\n }\n"])));
|
|
28
|
-
var _default = exports.default =
|
|
28
|
+
var _default = exports.default = SelectedMultipleTags;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
8
|
+
var _templateObject;
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
11
|
+
const SelectedMultipleText = _styledComponents.default.span(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n"])));
|
|
12
|
+
var _default = exports.default = SelectedMultipleText;
|