@laser-ui/components 0.6.2 → 0.6.3
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/CHANGELOG.md +6 -0
- package/cascader/Cascader.js +21 -26
- package/cascader/types.d.ts +1 -1
- package/package.json +2 -4
- package/pagination/Pagination.js +1 -1
- package/select/Select.js +19 -24
- package/select/types.d.ts +1 -1
- package/tree-select/TreeSelect.js +21 -26
- package/tree-select/types.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [0.6.3](https://github.com/laser-ui/laser-ui/compare/v0.6.2...v0.6.3) (2024-05-24)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- **components:** show selected even if no option ([ddcdf74](https://github.com/laser-ui/laser-ui/commit/ddcdf744faaf8c3ccd3359f00d5c56807b21b85f))
|
|
10
|
+
|
|
5
11
|
## [0.6.2](https://github.com/laser-ui/laser-ui/compare/v0.6.1...v0.6.2) (2024-04-26)
|
|
6
12
|
|
|
7
13
|
**Note:** Version bump only for package @laser-ui/components
|
package/cascader/Cascader.js
CHANGED
|
@@ -355,41 +355,36 @@ function CascaderFC(props, ref) {
|
|
|
355
355
|
let suffixNode = null;
|
|
356
356
|
let selectedLabel;
|
|
357
357
|
if (multiple) {
|
|
358
|
-
const selectedNodes =
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
};
|
|
375
|
-
}), onClick: (id, item) => {
|
|
376
|
-
const checkeds = item.node.changeStatus('UNCHECKED', selected);
|
|
377
|
-
changeSelected(Array.from(checkeds.keys()));
|
|
358
|
+
const selectedNodes = _selected.map((value) => {
|
|
359
|
+
const node = nodesMap.get(value);
|
|
360
|
+
return {
|
|
361
|
+
value,
|
|
362
|
+
label: customSelected ? customSelected(value, node === null || node === void 0 ? void 0 : node.origin) : node ? node.origin.label : String(value),
|
|
363
|
+
node,
|
|
364
|
+
};
|
|
365
|
+
});
|
|
366
|
+
suffixNode = (_jsx(Dropdown, { list: selectedNodes.map(({ value, label, node }) => ({
|
|
367
|
+
id: value,
|
|
368
|
+
title: label,
|
|
369
|
+
type: 'item',
|
|
370
|
+
disabled: node === null || node === void 0 ? void 0 : node.origin.disabled,
|
|
371
|
+
})), onClick: (id) => {
|
|
372
|
+
changeSelected((draft) => {
|
|
373
|
+
draft.splice(draft.findIndex((v) => v === id), 1);
|
|
374
|
+
});
|
|
378
375
|
return false;
|
|
379
376
|
}, children: _jsx(Tag, { tabIndex: -1, size: size, children: selected.size }) }));
|
|
380
|
-
selectedNode = selectedNodes.map((node) => (_jsxs(Tag, { size: size, children: [
|
|
377
|
+
selectedNode = selectedNodes.map(({ value, label, node }) => (_jsxs(Tag, { size: size, children: [label, !((node === null || node === void 0 ? void 0 : node.disabled) || disabled) && (_jsx("div", Object.assign({}, styled('cascader__close'), { role: "button", "aria-label": t('Close'), onClick: (e) => {
|
|
381
378
|
e.stopPropagation();
|
|
382
379
|
const checkeds = node.changeStatus('UNCHECKED', selected);
|
|
383
380
|
changeSelected(Array.from(checkeds.keys()));
|
|
384
|
-
}, children: _jsx(Icon, { children: _jsx(CloseOutlined, {}) }) })))] },
|
|
381
|
+
}, children: _jsx(Icon, { children: _jsx(CloseOutlined, {}) }) })))] }, value)));
|
|
385
382
|
}
|
|
386
383
|
else {
|
|
387
384
|
if (!isNull(selected)) {
|
|
388
385
|
const node = nodesMap.get(selected);
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
selectedNode = customSelected ? customSelected(node.origin) : selectedLabel;
|
|
392
|
-
}
|
|
386
|
+
selectedLabel = node ? getTreeNodeLabel(node) : String(selected);
|
|
387
|
+
selectedNode = customSelected ? customSelected(selected, node === null || node === void 0 ? void 0 : node.origin) : selectedLabel;
|
|
393
388
|
}
|
|
394
389
|
}
|
|
395
390
|
return [selectedNode, suffixNode, selectedLabel];
|
package/cascader/types.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export interface CascaderProps<V extends React.Key, T extends CascaderItem<V>> e
|
|
|
33
33
|
virtual?: boolean | number;
|
|
34
34
|
escClosable?: boolean;
|
|
35
35
|
customItem?: (item: T) => React.ReactNode;
|
|
36
|
-
customSelected?: (
|
|
36
|
+
customSelected?: (value: V, selected?: T) => string;
|
|
37
37
|
customSearch?: {
|
|
38
38
|
filter?: (value: string, item: T) => boolean;
|
|
39
39
|
sort?: (a: T, b: T) => number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@laser-ui/components",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "React components.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ui",
|
|
@@ -26,8 +26,6 @@
|
|
|
26
26
|
"module": "./index.js",
|
|
27
27
|
"types": "./index.d.ts",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@laser-ui/hooks": "0.6.2",
|
|
30
|
-
"@laser-ui/utils": "0.6.2",
|
|
31
29
|
"@material-design-icons/svg": "^0.14.12",
|
|
32
30
|
"jss": "^10.10.0",
|
|
33
31
|
"jss-preset-default": "^10.10.0",
|
|
@@ -42,5 +40,5 @@
|
|
|
42
40
|
"access": "public",
|
|
43
41
|
"directory": "../../dist/libs/components"
|
|
44
42
|
},
|
|
45
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "6530707d94520350ae2c3fe412c98f879d84902b"
|
|
46
44
|
}
|
package/pagination/Pagination.js
CHANGED
|
@@ -157,7 +157,7 @@ export function Pagination(props) {
|
|
|
157
157
|
label: size.toString(),
|
|
158
158
|
value: size,
|
|
159
159
|
}));
|
|
160
|
-
return (_jsx("div", { children: _jsx("div", { style: { paddingRight: gap }, children: _jsx(Select, { list: list, model: pageSize, size: mini ? 'small' : undefined, customItem: (item) => (customRender && customRender.pageSize ? customRender.pageSize(item.value) : item.label), customSelected: (
|
|
160
|
+
return (_jsx("div", { children: _jsx("div", { style: { paddingRight: gap }, children: _jsx(Select, { list: list, model: pageSize, size: mini ? 'small' : undefined, customItem: (item) => (customRender && customRender.pageSize ? customRender.pageSize(item.value) : item.label), customSelected: (value, selected) => (selected ? `${selected.label}${t('Pagination', ' / Page')}` : String(value)), onModelChange: (value) => {
|
|
161
161
|
if (!isNull(value)) {
|
|
162
162
|
changePageSize(value);
|
|
163
163
|
}
|
package/select/Select.js
CHANGED
|
@@ -369,38 +369,33 @@ function SelectFC(props, ref) {
|
|
|
369
369
|
let suffixNode = null;
|
|
370
370
|
let selectedLabel;
|
|
371
371
|
if (multiple) {
|
|
372
|
-
const selectedItems =
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
disabled: itemDisabled,
|
|
387
|
-
};
|
|
388
|
-
}), onClick: (id) => {
|
|
372
|
+
const selectedItems = _selected.map((value) => {
|
|
373
|
+
const item = itemsMap.get(value);
|
|
374
|
+
return {
|
|
375
|
+
value,
|
|
376
|
+
label: customSelected ? customSelected(value, item) : item ? item.label : String(value),
|
|
377
|
+
item,
|
|
378
|
+
};
|
|
379
|
+
});
|
|
380
|
+
suffixNode = (_jsx(Dropdown, { list: selectedItems.map(({ value, label, item }) => ({
|
|
381
|
+
id: value,
|
|
382
|
+
title: label,
|
|
383
|
+
type: 'item',
|
|
384
|
+
disabled: item === null || item === void 0 ? void 0 : item.disabled,
|
|
385
|
+
})), onClick: (id) => {
|
|
389
386
|
changeSelectedByClick(id);
|
|
390
387
|
return false;
|
|
391
388
|
}, children: _jsx(Tag, { tabIndex: -1, size: size, children: selected.size }) }));
|
|
392
|
-
selectedNode = selectedItems.map((item) => (_jsxs(Tag, { size: size, children: [
|
|
389
|
+
selectedNode = selectedItems.map(({ value, label, item }) => (_jsxs(Tag, { size: size, children: [label, !((item === null || item === void 0 ? void 0 : item.disabled) || disabled) && (_jsx("div", Object.assign({}, styled('select__close'), { role: "button", "aria-label": t('Close'), onClick: (e) => {
|
|
393
390
|
e.stopPropagation();
|
|
394
|
-
changeSelectedByClick(
|
|
395
|
-
}, children: _jsx(Icon, { children: _jsx(CloseOutlined, {}) }) })))] },
|
|
391
|
+
changeSelectedByClick(value);
|
|
392
|
+
}, children: _jsx(Icon, { children: _jsx(CloseOutlined, {}) }) })))] }, value)));
|
|
396
393
|
}
|
|
397
394
|
else {
|
|
398
395
|
if (!isNull(selected)) {
|
|
399
396
|
const item = itemsMap.get(selected);
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
selectedNode = customSelected ? customSelected(item) : selectedLabel;
|
|
403
|
-
}
|
|
397
|
+
selectedLabel = item ? item.label : String(selected);
|
|
398
|
+
selectedNode = customSelected ? customSelected(selected, item) : selectedLabel;
|
|
404
399
|
}
|
|
405
400
|
}
|
|
406
401
|
return [selectedNode, suffixNode, selectedLabel];
|
package/select/types.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export interface SelectProps<V extends React.Key, T extends SelectItem<V>> exten
|
|
|
32
32
|
virtual?: boolean | number;
|
|
33
33
|
escClosable?: boolean;
|
|
34
34
|
customItem?: (item: T) => React.ReactNode;
|
|
35
|
-
customSelected?: (
|
|
35
|
+
customSelected?: (value: V, selected?: T) => string;
|
|
36
36
|
customSearch?: {
|
|
37
37
|
filter?: (value: string, item: T) => boolean;
|
|
38
38
|
sort?: (a: T, b: T) => number;
|
|
@@ -377,41 +377,36 @@ function TreeSelectFC(props, ref) {
|
|
|
377
377
|
let suffixNode = null;
|
|
378
378
|
let selectedLabel;
|
|
379
379
|
if (multiple) {
|
|
380
|
-
const selectedNodes =
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
};
|
|
397
|
-
}), onClick: (id, item) => {
|
|
398
|
-
const checkeds = item.node.changeStatus('UNCHECKED', selected);
|
|
399
|
-
changeSelected(Array.from(checkeds.keys()));
|
|
380
|
+
const selectedNodes = _selected.map((value) => {
|
|
381
|
+
const node = nodesMap.get(value);
|
|
382
|
+
return {
|
|
383
|
+
value,
|
|
384
|
+
label: customSelected ? customSelected(value, node === null || node === void 0 ? void 0 : node.origin) : node ? node.origin.label : String(value),
|
|
385
|
+
node,
|
|
386
|
+
};
|
|
387
|
+
});
|
|
388
|
+
suffixNode = (_jsx(Dropdown, { list: selectedNodes.map(({ value, label, node }) => ({
|
|
389
|
+
id: value,
|
|
390
|
+
title: label,
|
|
391
|
+
type: 'item',
|
|
392
|
+
disabled: node === null || node === void 0 ? void 0 : node.origin.disabled,
|
|
393
|
+
})), onClick: (id) => {
|
|
394
|
+
changeSelected((draft) => {
|
|
395
|
+
draft.splice(draft.findIndex((v) => v === id), 1);
|
|
396
|
+
});
|
|
400
397
|
return false;
|
|
401
398
|
}, children: _jsx(Tag, { tabIndex: -1, size: size, children: selected.size }) }));
|
|
402
|
-
selectedNode = selectedNodes.map((node) => (_jsxs(Tag, { size: size, children: [
|
|
399
|
+
selectedNode = selectedNodes.map(({ value, label, node }) => (_jsxs(Tag, { size: size, children: [label, !((node === null || node === void 0 ? void 0 : node.disabled) || disabled) && (_jsx("div", Object.assign({}, styled('tree-select__close'), { role: "button", "aria-label": t('Close'), onClick: (e) => {
|
|
403
400
|
e.stopPropagation();
|
|
404
401
|
const checkeds = node.changeStatus('UNCHECKED', selected);
|
|
405
402
|
changeSelected(Array.from(checkeds.keys()));
|
|
406
|
-
}, children: _jsx(Icon, { children: _jsx(CloseOutlined, {}) }) })))] },
|
|
403
|
+
}, children: _jsx(Icon, { children: _jsx(CloseOutlined, {}) }) })))] }, value)));
|
|
407
404
|
}
|
|
408
405
|
else {
|
|
409
406
|
if (!isNull(selected)) {
|
|
410
407
|
const node = nodesMap.get(selected);
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
selectedNode = customSelected ? customSelected(node.origin) : selectedLabel;
|
|
414
|
-
}
|
|
408
|
+
selectedLabel = node ? getTreeNodeLabel(node) : String(selected);
|
|
409
|
+
selectedNode = customSelected ? customSelected(selected, node === null || node === void 0 ? void 0 : node.origin) : selectedLabel;
|
|
415
410
|
}
|
|
416
411
|
}
|
|
417
412
|
return [selectedNode, suffixNode, selectedLabel];
|
package/tree-select/types.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export interface TreeSelectProps<V extends React.Key, T extends TreeItem<V>> ext
|
|
|
30
30
|
virtual?: boolean | number;
|
|
31
31
|
escClosable?: boolean;
|
|
32
32
|
customItem?: (item: T) => React.ReactNode;
|
|
33
|
-
customSelected?: (
|
|
33
|
+
customSelected?: (value: V, selected?: T) => string;
|
|
34
34
|
customSearch?: {
|
|
35
35
|
filter?: (value: string, item: T) => boolean;
|
|
36
36
|
sort?: (a: T, b: T) => number;
|