@synerise/ds-cascader 0.3.0 → 0.3.4
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
CHANGED
|
@@ -3,6 +3,38 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.3.4](https://github.com/Synerise/synerise-design/compare/@synerise/ds-cascader@0.3.3...@synerise/ds-cascader@0.3.4) (2021-11-23)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @synerise/ds-cascader
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [0.3.3](https://github.com/Synerise/synerise-design/compare/@synerise/ds-cascader@0.3.2...@synerise/ds-cascader@0.3.3) (2021-11-22)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @synerise/ds-cascader
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [0.3.2](https://github.com/Synerise/synerise-design/compare/@synerise/ds-cascader@0.3.1...@synerise/ds-cascader@0.3.2) (2021-11-16)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @synerise/ds-cascader
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## [0.3.1](https://github.com/Synerise/synerise-design/compare/@synerise/ds-cascader@0.2.75...@synerise/ds-cascader@0.3.1) (2021-11-09)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @synerise/ds-cascader
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
6
38
|
# [0.3.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-cascader@0.2.75...@synerise/ds-cascader@0.3.0) (2021-11-09)
|
|
7
39
|
|
|
8
40
|
**Note:** Version bump only for package @synerise/ds-cascader
|
package/dist/Cascader.js
CHANGED
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
-
|
|
3
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
|
|
5
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
6
|
-
|
|
7
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
8
|
-
|
|
9
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
10
|
-
|
|
11
|
-
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."); }
|
|
12
|
-
|
|
13
|
-
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); }
|
|
14
|
-
|
|
15
|
-
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; }
|
|
16
|
-
|
|
17
|
-
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
18
|
-
|
|
19
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
20
|
-
|
|
21
1
|
import * as React from 'react';
|
|
22
2
|
import SearchBar from '@synerise/ds-search-bar';
|
|
23
3
|
import Menu from '@synerise/ds-menu';
|
|
@@ -46,39 +26,32 @@ var Cascader = function Cascader(_ref) {
|
|
|
46
26
|
selectedCategoriesIds = _ref.selectedCategoriesIds;
|
|
47
27
|
|
|
48
28
|
var _React$useState = React.useState(''),
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
29
|
+
searchQuery = _React$useState[0],
|
|
30
|
+
setSearchQuery = _React$useState[1];
|
|
31
|
+
|
|
32
|
+
var _React$useState2 = React.useState(rootCategory),
|
|
33
|
+
activeCategory = _React$useState2[0],
|
|
34
|
+
setActiveCategory = _React$useState2[1];
|
|
52
35
|
|
|
53
|
-
var _React$useState3 = React.useState(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
36
|
+
var _React$useState3 = React.useState([]),
|
|
37
|
+
paths = _React$useState3[0],
|
|
38
|
+
setPaths = _React$useState3[1];
|
|
39
|
+
|
|
40
|
+
var _React$useState4 = React.useState([]),
|
|
41
|
+
filteredPaths = _React$useState4[0],
|
|
42
|
+
setFilteredPaths = _React$useState4[1];
|
|
57
43
|
|
|
58
44
|
var _React$useState5 = React.useState([]),
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
70
|
-
enteredCategories = _React$useState10[0],
|
|
71
|
-
setEnteredCategories = _React$useState10[1];
|
|
72
|
-
|
|
73
|
-
var _React$useState11 = React.useState(0),
|
|
74
|
-
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
75
|
-
scrollTop = _React$useState12[0],
|
|
76
|
-
setScrollTop = _React$useState12[1];
|
|
77
|
-
|
|
78
|
-
var _React$useState13 = React.useState(selectedCategoriesIds || []),
|
|
79
|
-
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
80
|
-
selectedIds = _React$useState14[0],
|
|
81
|
-
setSelectedIds = _React$useState14[1];
|
|
45
|
+
enteredCategories = _React$useState5[0],
|
|
46
|
+
setEnteredCategories = _React$useState5[1];
|
|
47
|
+
|
|
48
|
+
var _React$useState6 = React.useState(0),
|
|
49
|
+
scrollTop = _React$useState6[0],
|
|
50
|
+
setScrollTop = _React$useState6[1];
|
|
51
|
+
|
|
52
|
+
var _React$useState7 = React.useState(selectedCategoriesIds || []),
|
|
53
|
+
selectedIds = _React$useState7[0],
|
|
54
|
+
setSelectedIds = _React$useState7[1];
|
|
82
55
|
|
|
83
56
|
var searchResultsContainer = React.useRef();
|
|
84
57
|
var categoriesContainer = React.useRef();
|
|
@@ -88,7 +61,7 @@ var Cascader = function Cascader(_ref) {
|
|
|
88
61
|
|
|
89
62
|
var previousCategory = enteredCategories[enteredCategories.length - 2];
|
|
90
63
|
var isSearching = !!paths && searchQuery.length > 0;
|
|
91
|
-
var categoriesMaxHeight = maxHeight ? Math.floor((maxHeight - Number(categoriesContainer
|
|
64
|
+
var categoriesMaxHeight = maxHeight ? Math.floor((maxHeight - Number(categoriesContainer == null ? void 0 : (_categoriesContainer$ = categoriesContainer.current) == null ? void 0 : _categoriesContainer$.offsetTop)) / CATEGORY_ITEM_HEIGHT) * CATEGORY_ITEM_HEIGHT + VERTICAL_PADDING_OFFSET : undefined;
|
|
92
65
|
var calculateVisibleRows = React.useMemo(function () {
|
|
93
66
|
return Math.floor((height - VERTICAL_PADDING_OFFSET) / BREADCRUMB_ITEM_HEIGHT);
|
|
94
67
|
}, [height]);
|
|
@@ -109,7 +82,7 @@ var Cascader = function Cascader(_ref) {
|
|
|
109
82
|
var itemAlreadySelected = selectedIds.indexOf(item.id) !== -1;
|
|
110
83
|
|
|
111
84
|
if (!itemAlreadySelected) {
|
|
112
|
-
newSelectedList = [].concat(
|
|
85
|
+
newSelectedList = [].concat(selectedIds, [item.id]);
|
|
113
86
|
onCategorySelect && onCategorySelect(item, true);
|
|
114
87
|
} else {
|
|
115
88
|
newSelectedList = selectedIds.filter(function (id) {
|
|
@@ -118,7 +91,7 @@ var Cascader = function Cascader(_ref) {
|
|
|
118
91
|
onCategorySelect && onCategorySelect(item, false);
|
|
119
92
|
}
|
|
120
93
|
|
|
121
|
-
setSelectedIds(
|
|
94
|
+
setSelectedIds([].concat(newSelectedList));
|
|
122
95
|
};
|
|
123
96
|
|
|
124
97
|
var onCategoryClick = function onCategoryClick(category) {
|
|
@@ -127,7 +100,7 @@ var Cascader = function Cascader(_ref) {
|
|
|
127
100
|
name: category.name,
|
|
128
101
|
path: category.path
|
|
129
102
|
};
|
|
130
|
-
var updatedEnteredCategories = [].concat(
|
|
103
|
+
var updatedEnteredCategories = [].concat(enteredCategories, [entered]);
|
|
131
104
|
var hasMoreCategories = hasNestedCategories(category);
|
|
132
105
|
|
|
133
106
|
if (hasMoreCategories) {
|
|
@@ -148,7 +121,7 @@ var Cascader = function Cascader(_ref) {
|
|
|
148
121
|
updatedEnteredCategories = enteredCategories.slice(0, enteredCategories.indexOf(chosenCategory) + 1);
|
|
149
122
|
}
|
|
150
123
|
|
|
151
|
-
if (chosenCategory
|
|
124
|
+
if (chosenCategory != null && chosenCategory.id) {
|
|
152
125
|
var nextActiveCategory = searchCategoryWithId(rootCategory, chosenCategory.id);
|
|
153
126
|
|
|
154
127
|
if (nextActiveCategory) {
|
|
@@ -188,7 +161,7 @@ var Cascader = function Cascader(_ref) {
|
|
|
188
161
|
},
|
|
189
162
|
clearTooltip: searchClearTooltip
|
|
190
163
|
})), /*#__PURE__*/React.createElement(S.SearchResults, {
|
|
191
|
-
visible: !isSearching || filteredPaths && (filteredPaths
|
|
164
|
+
visible: !isSearching || filteredPaths && (filteredPaths == null ? void 0 : filteredPaths.length) > 0,
|
|
192
165
|
ref: searchResultsContainer,
|
|
193
166
|
style: contentStyles
|
|
194
167
|
}, /*#__PURE__*/React.createElement(Menu, null, isSearching && filteredPaths && /*#__PURE__*/React.createElement(S.CascaderScrollbar, {
|
|
@@ -206,7 +179,7 @@ var Cascader = function Cascader(_ref) {
|
|
|
206
179
|
paths: filteredPaths,
|
|
207
180
|
highlight: searchQuery,
|
|
208
181
|
onBreadCrumbClick: function onBreadCrumbClick(breadcrumb) {
|
|
209
|
-
var selectedCategory = searchCategoryWithId(rootCategory, breadcrumb
|
|
182
|
+
var selectedCategory = searchCategoryWithId(rootCategory, breadcrumb == null ? void 0 : breadcrumb.id);
|
|
210
183
|
selectedCategory ? onItemSelect(selectedCategory) : onItemSelect(breadcrumb);
|
|
211
184
|
},
|
|
212
185
|
scrollTop: scrollTop
|
|
@@ -37,13 +37,13 @@ var CategoriesList = function CategoriesList(_ref) {
|
|
|
37
37
|
return /*#__PURE__*/React.createElement(React.Fragment, null, Object.keys(rootCategory).filter(function (key) {
|
|
38
38
|
var _rootCategory$key;
|
|
39
39
|
|
|
40
|
-
return (_rootCategory$key = rootCategory[key])
|
|
40
|
+
return (_rootCategory$key = rootCategory[key]) == null ? void 0 : _rootCategory$key.name;
|
|
41
41
|
}).map(function (key) {
|
|
42
42
|
var item = rootCategory[key];
|
|
43
43
|
return /*#__PURE__*/React.createElement(Menu.Item, {
|
|
44
44
|
text: item.name,
|
|
45
45
|
type: selectedIds && selectedIds.includes(item.id) ? '' : 'select',
|
|
46
|
-
key: ""
|
|
46
|
+
key: "" + item.id,
|
|
47
47
|
suffixel: renderSuffix(item),
|
|
48
48
|
parent: hasNestedCategories(item),
|
|
49
49
|
onClick: function onClick() {
|
package/dist/utlis.js
CHANGED
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
-
|
|
3
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
-
|
|
5
|
-
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); }
|
|
6
|
-
|
|
7
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
8
|
-
|
|
9
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
-
|
|
11
|
-
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; }
|
|
12
|
-
|
|
13
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
14
|
-
|
|
15
1
|
export var searchCategoryWithId = function searchCategoryWithId(category, id) {
|
|
16
2
|
if (id === undefined) {
|
|
17
3
|
return undefined;
|
|
@@ -27,7 +13,7 @@ export var searchCategoryWithId = function searchCategoryWithId(category, id) {
|
|
|
27
13
|
for (var i = 0; i < keys.length; i += 1) {
|
|
28
14
|
property = keys[i];
|
|
29
15
|
|
|
30
|
-
if (Object.prototype.hasOwnProperty.call(category, property) &&
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(category, property) && typeof category[property] === 'object') {
|
|
31
17
|
result = searchCategoryWithId(category[property], id);
|
|
32
18
|
|
|
33
19
|
if (result) {
|
|
@@ -54,7 +40,7 @@ export var getAllPaths = function getAllPaths(category, resultsArray) {
|
|
|
54
40
|
for (var i = 0; i < keys.length; i += 1) {
|
|
55
41
|
property = keys[i];
|
|
56
42
|
|
|
57
|
-
if (Object.prototype.hasOwnProperty.call(category, property) &&
|
|
43
|
+
if (Object.prototype.hasOwnProperty.call(category, property) && typeof category[property] === 'object') {
|
|
58
44
|
results = getAllPaths(category[property], results);
|
|
59
45
|
}
|
|
60
46
|
}
|
|
@@ -62,8 +48,7 @@ export var getAllPaths = function getAllPaths(category, resultsArray) {
|
|
|
62
48
|
return results && results.length > 0 ? results : undefined;
|
|
63
49
|
};
|
|
64
50
|
export var filterPaths = function filterPaths(paths, searchQuery) {
|
|
65
|
-
var pathsToBeFiltered =
|
|
66
|
-
|
|
51
|
+
var pathsToBeFiltered = [].concat(paths);
|
|
67
52
|
var filtered = pathsToBeFiltered.filter(function (p) {
|
|
68
53
|
var productPath = p.path;
|
|
69
54
|
var lastElementOfPath = productPath[productPath.length - 1];
|
|
@@ -78,7 +63,7 @@ export var hasNestedCategories = function hasNestedCategories(category) {
|
|
|
78
63
|
for (var i = 0; i < keys.length; i += 1) {
|
|
79
64
|
property = keys[i];
|
|
80
65
|
|
|
81
|
-
if (Object.prototype.hasOwnProperty.call(category, property) &&
|
|
66
|
+
if (Object.prototype.hasOwnProperty.call(category, property) && typeof category[property] === 'object' && Object.prototype.toString.call(category[property]) === '[object Object]') {
|
|
82
67
|
return true;
|
|
83
68
|
}
|
|
84
69
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-cascader",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "Cascader UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "Synerise/synerise-design",
|
|
@@ -32,19 +32,19 @@
|
|
|
32
32
|
],
|
|
33
33
|
"types": "dist/index.d.ts",
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@synerise/ds-button": "^0.16.
|
|
36
|
-
"@synerise/ds-core": "^0.31.
|
|
37
|
-
"@synerise/ds-divider": "^0.5.
|
|
38
|
-
"@synerise/ds-icon": "^0.46.
|
|
39
|
-
"@synerise/ds-menu": "^0.11.
|
|
40
|
-
"@synerise/ds-scrollbar": "^0.4.
|
|
41
|
-
"@synerise/ds-search": "^0.6.
|
|
42
|
-
"@synerise/ds-search-bar": "^0.5.
|
|
35
|
+
"@synerise/ds-button": "^0.16.2",
|
|
36
|
+
"@synerise/ds-core": "^0.31.2",
|
|
37
|
+
"@synerise/ds-divider": "^0.5.4",
|
|
38
|
+
"@synerise/ds-icon": "^0.46.2",
|
|
39
|
+
"@synerise/ds-menu": "^0.11.2",
|
|
40
|
+
"@synerise/ds-scrollbar": "^0.4.2",
|
|
41
|
+
"@synerise/ds-search": "^0.6.4",
|
|
42
|
+
"@synerise/ds-search-bar": "^0.5.2",
|
|
43
43
|
"@synerise/ds-utils": "^0.19.0"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@synerise/ds-core": "*",
|
|
47
47
|
"react": ">=16.9.0 < 17.0.0"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "3e5f807c3c9ce7bbcb707b1e229ad5d7ef50d830"
|
|
50
50
|
}
|