@blocklet/list 0.8.15 → 0.8.16

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.
Files changed (40) hide show
  1. package/lib/base.js +21 -24
  2. package/lib/components/{aside.js → aside/aside.js} +11 -12
  3. package/lib/components/aside/category-link-list.js +78 -0
  4. package/lib/components/aside/index.js +13 -0
  5. package/lib/components/category-select.js +55 -0
  6. package/lib/components/{button.js → custom-select/button.js} +1 -1
  7. package/lib/components/{custom-select.js → custom-select/custom-select.js} +8 -6
  8. package/lib/components/custom-select/index.js +13 -0
  9. package/lib/components/filter-author.js +2 -3
  10. package/lib/components/{empty.js → list/empty.js} +6 -8
  11. package/lib/components/list/index.js +13 -0
  12. package/lib/components/{list.js → list/list.js} +12 -12
  13. package/lib/components/search.js +17 -18
  14. package/lib/contexts/{store.js → filter.js} +90 -159
  15. package/lib/index.js +6 -16
  16. package/lib/libs/prop-types.js +34 -0
  17. package/lib/{tools → libs}/utils.js +6 -6
  18. package/package.json +60 -64
  19. package/src/base.js +17 -18
  20. package/src/components/{aside.js → aside/aside.js} +7 -8
  21. package/src/components/aside/category-link-list.js +53 -0
  22. package/src/components/aside/index.js +3 -0
  23. package/src/components/category-select.js +43 -0
  24. package/src/components/{button.js → custom-select/button.js} +0 -0
  25. package/src/components/{custom-select.js → custom-select/custom-select.js} +5 -4
  26. package/src/components/custom-select/index.js +3 -0
  27. package/src/components/filter-author.js +2 -3
  28. package/src/components/{empty.js → list/empty.js} +7 -8
  29. package/src/components/list/index.js +3 -0
  30. package/src/components/{list.js → list/list.js} +10 -10
  31. package/src/components/search.js +12 -12
  32. package/src/contexts/filter.js +196 -0
  33. package/src/index.js +6 -16
  34. package/src/libs/prop-types.js +26 -0
  35. package/src/{tools → libs}/utils.js +6 -6
  36. package/lib/components/categories.js +0 -143
  37. package/lib/hooks/page-state.js +0 -69
  38. package/src/components/categories.js +0 -129
  39. package/src/contexts/store.js +0 -266
  40. package/src/hooks/page-state.js +0 -53
@@ -3,30 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SearchConsumer = void 0;
7
- exports.SearchProvider = SearchProvider;
8
- exports.useSearchContext = useSearchContext;
6
+ exports.FilterConsumer = void 0;
7
+ exports.FilterProvider = FilterProvider;
8
+ exports.useFilterContext = useFilterContext;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
- var _reactRouterDom = require("react-router-dom");
15
-
16
14
  var _ahooks = require("ahooks");
17
15
 
18
- var _orderBy = _interopRequireDefault(require("lodash-es/orderBy"));
16
+ var _orderBy = _interopRequireDefault(require("lodash/orderBy"));
19
17
 
20
18
  var _axios = _interopRequireDefault(require("axios"));
21
19
 
22
- var _urlJoin = _interopRequireDefault(require("url-join"));
23
-
24
- var _pageState = _interopRequireDefault(require("../hooks/page-state"));
25
-
26
- var _utils = require("../tools/utils");
20
+ var _utils = require("../libs/utils");
27
21
 
28
22
  var _locale = _interopRequireDefault(require("../assets/locale"));
29
23
 
24
+ var _propTypes2 = require("../libs/prop-types");
25
+
30
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
27
 
32
28
  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); }
@@ -39,34 +35,29 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
39
35
 
40
36
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
41
37
 
42
- const axiosInstance = _axios.default.create();
43
-
44
- const Search = /*#__PURE__*/(0, _react.createContext)({});
38
+ const Filter = /*#__PURE__*/(0, _react.createContext)({});
45
39
  const {
46
40
  Provider,
47
41
  Consumer
48
- } = Search;
49
- exports.SearchConsumer = Consumer;
42
+ } = Filter;
43
+ exports.FilterConsumer = Consumer;
50
44
 
51
- function SearchProvider(_ref) {
45
+ function FilterProvider(_ref) {
52
46
  let {
47
+ onSelectBlocklet,
48
+ selectedBlocklets,
49
+ filters,
53
50
  children,
54
51
  baseUrl,
55
- type,
56
52
  endpoint,
57
53
  locale,
58
- blockletRender
54
+ blockletRender,
55
+ onFilterChange
59
56
  } = _ref;
60
- const {
61
- location
62
- } = window;
63
- const history = (0, _reactRouterDom.useHistory)();
64
- const pathParams = (0, _reactRouterDom.useParams)();
65
- const isPageMode = type === 'page';
66
-
67
- if (isPageMode && !baseUrl) {
68
- throw new Error('baseUrl is required when type is page');
69
- }
57
+
58
+ const storeApi = _axios.default.create({
59
+ baseURL: endpoint
60
+ });
70
61
 
71
62
  const {
72
63
  data: allBlocklets,
@@ -76,7 +67,7 @@ function SearchProvider(_ref) {
76
67
  } = (0, _ahooks.useRequest)(async () => {
77
68
  const {
78
69
  data: list
79
- } = await axiosInstance.get((0, _urlJoin.default)(endpoint, '/api/blocklets.json'));
70
+ } = await storeApi.get('/api/blocklets.json');
80
71
  return list;
81
72
  }, {
82
73
  initialData: [],
@@ -90,58 +81,21 @@ function SearchProvider(_ref) {
90
81
  } = (0, _ahooks.useRequest)(async () => {
91
82
  const {
92
83
  data: list
93
- } = await axiosInstance.get("".concat((0, _urlJoin.default)(endpoint, '/api/blocklets/categories')));
84
+ } = await storeApi.get('/api/blocklets/categories');
94
85
  return list;
95
86
  }, {
96
87
  initialData: [],
97
88
  manual: true
98
89
  });
99
- const [memoryParams, setMemoryParams] = (0, _react.useState)({
100
- sortBy: 'popularity',
101
- sortDirection: 'desc'
102
- });
103
- const queryParams = (0, _react.useMemo)(() => {
104
- return isPageMode ? new URLSearchParams(location.search) : new Map(Object.entries(memoryParams));
105
- }, [memoryParams, location.search]);
106
- let sortParams; // 当作页面使用时 sort 数据比较特殊, 默认取 localStorge 中的值,如果 url query 中有sort值则优先使用
107
-
108
- if (isPageMode) {
109
- const localSortParams = (0, _pageState.default)({
110
- sort: 'popularity',
111
- direction: 'desc'
112
- }, baseUrl);
113
- const urlSortParams = {
114
- sort: queryParams.get('sortBy'),
115
- direction: queryParams.get('sortDirection')
116
- };
117
- sortParams = urlSortParams.sort && urlSortParams.direction ? urlSortParams : localSortParams;
118
- } else {
119
- sortParams = (0, _react.useMemo)(() => {
120
- return {
121
- sort: memoryParams.sortBy,
122
- direction: memoryParams.sortDirection
123
- };
124
- }, [memoryParams]);
125
- }
126
-
127
- const isSearchPage = location.pathname === (0, _urlJoin.default)(baseUrl, '/search');
128
- const selectedCategory = (0, _react.useMemo)(() => {
129
- let result = null;
130
-
131
- if (isPageMode) {
132
- result = !isSearchPage ? pathParams.category : queryParams.get('category');
133
- } else {
134
- result = queryParams.get('category');
135
- }
136
-
137
- return result;
138
- }, [isPageMode, pathParams, queryParams]);
139
- const hasDeveloperFilter = !!queryParams.get('developer');
140
- const categoryState = !hasDeveloperFilter ? {
141
- data: allCategories
142
- } : (0, _utils.getCategories)(allBlocklets, queryParams.get('developer'));
90
+ const selectedCategory = filters.category;
91
+ const hasDeveloperFilter = !!filters.developer;
92
+ const categoryState = (0, _react.useMemo)(() => {
93
+ return !hasDeveloperFilter ? {
94
+ data: allCategories
95
+ } : (0, _utils.getCategories)(allBlocklets, filters.developer);
96
+ }, [hasDeveloperFilter, allCategories]);
143
97
  const blockletList = (0, _react.useMemo)(() => {
144
- var _queryParams$search;
98
+ var _filters$keyword;
145
99
 
146
100
  const sortByName = x => {
147
101
  var _x$title, _x$name;
@@ -164,7 +118,7 @@ function SearchProvider(_ref) {
164
118
  };
165
119
  let result = allBlocklets || []; // 按照付费/免费筛选
166
120
 
167
- result = (0, _utils.filterBlockletByPrice)(result, queryParams.get('price')); // 按照分类筛选
121
+ result = (0, _utils.filterBlockletByPrice)(result, filters.price); // 按照分类筛选
168
122
 
169
123
  result = result.filter(item => {
170
124
  var _item$category;
@@ -172,8 +126,8 @@ function SearchProvider(_ref) {
172
126
  return selectedCategory ? (item === null || item === void 0 ? void 0 : (_item$category = item.category) === null || _item$category === void 0 ? void 0 : _item$category.name) === selectedCategory : true;
173
127
  }); // 按照作者筛选
174
128
 
175
- result = result.filter(item => queryParams !== null && queryParams !== void 0 && queryParams.developer ? item.owner.did === queryParams.get('developer') : true);
176
- const lowerSearch = (queryParams === null || queryParams === void 0 ? void 0 : (_queryParams$search = queryParams.search) === null || _queryParams$search === void 0 ? void 0 : _queryParams$search.toLocaleLowerCase()) || ''; // 按照搜索筛选
129
+ result = result.filter(item => filters !== null && filters !== void 0 && filters.developer ? item.owner.did === filters.developer : true);
130
+ const lowerSearch = (filters === null || filters === void 0 ? void 0 : (_filters$keyword = filters.keyword) === null || _filters$keyword === void 0 ? void 0 : _filters$keyword.toLocaleLowerCase()) || ''; // 按照搜索筛选
177
131
 
178
132
  result = result.filter(item => {
179
133
  var _ref2, _item$description, _item$version;
@@ -181,8 +135,8 @@ function SearchProvider(_ref) {
181
135
  return ((_ref2 = (item === null || item === void 0 ? void 0 : item.title) || (item === null || item === void 0 ? void 0 : item.name)) === null || _ref2 === void 0 ? void 0 : _ref2.toLocaleLowerCase().includes(lowerSearch)) || ((_item$description = item.description) === null || _item$description === void 0 ? void 0 : _item$description.toLocaleLowerCase().includes(lowerSearch)) || (item === null || item === void 0 ? void 0 : (_item$version = item.version) === null || _item$version === void 0 ? void 0 : _item$version.toLocaleLowerCase().includes(lowerSearch));
182
136
  }); // 排序
183
137
 
184
- return (0, _orderBy.default)(result, [sortMap[sortParams.sort]], [sortParams.direction]);
185
- }, [allBlocklets, queryParams, sortParams]);
138
+ return (0, _orderBy.default)(result, [sortMap[filters.sortBy]], [filters.sortDirection]);
139
+ }, [allBlocklets, filters]);
186
140
  const categoryList = (0, _react.useMemo)(() => {
187
141
  const list = categoryState.data || []; // 分类按照名称排序
188
142
 
@@ -198,7 +152,7 @@ function SearchProvider(_ref) {
198
152
  return (0, _utils.replaceTranslate)(_locale.default[locale][key], data);
199
153
  };
200
154
 
201
- const searchStore = {
155
+ const filterStore = {
202
156
  errors: {
203
157
  fetchBlockletsError,
204
158
  fetchCategoriesError
@@ -208,58 +162,67 @@ function SearchProvider(_ref) {
208
162
  fetchCategoriesLoading
209
163
  },
210
164
  endpoint,
211
- sortParams,
212
- history,
213
165
  blockletList,
214
166
  t: translate,
215
- queryParams,
167
+ filters: _objectSpread({
168
+ sortBy: 'popularity',
169
+ sortDirection: 'desc'
170
+ }, filters),
216
171
  selectedCategory,
217
- isSearchPage,
218
172
  categoryList,
219
- isPageMode,
220
173
  baseUrl,
221
174
  blockletRender,
222
175
  locale,
223
- handleSort: value => {
224
- const changData = _objectSpread(_objectSpread({}, Object.fromEntries(queryParams.entries())), {}, {
225
- sortBy: value,
226
- sortDirection: value === 'nameAsc' ? 'asc' : 'desc'
176
+ selectedBlocklets,
177
+ onSelectBlocklet,
178
+ handleSort: sort => {
179
+ const changeData = _objectSpread(_objectSpread({}, filters), {}, {
180
+ sortBy: sort,
181
+ sortDirection: sort === 'nameAsc' ? 'asc' : 'desc'
227
182
  });
228
183
 
229
- if (isPageMode) {
230
- sortParams.sort = changData.sortBy;
231
- sortParams.direction = changData.sortDirection;
232
- history.push("".concat((0, _urlJoin.default)(baseUrl, 'search'), "?").concat((0, _utils.urlStringify)(changData)));
233
- } else {
234
- setMemoryParams(changData);
235
- }
184
+ onFilterChange(changeData);
236
185
  },
237
- handleSearchKeyword: value => {
238
- const changData = _objectSpread(_objectSpread({}, Object.fromEntries(queryParams.entries())), {}, {
239
- search: value || undefined
186
+ handleKeyword: keyWord => {
187
+ const changeData = _objectSpread(_objectSpread({}, filters), {}, {
188
+ keyword: keyWord || undefined
240
189
  });
241
190
 
242
- if (isPageMode) {
243
- history.push("".concat((0, _urlJoin.default)(baseUrl, 'search'), "?").concat((0, _utils.urlStringify)(changData)));
244
- } else {
245
- setMemoryParams(changData);
246
- }
191
+ onFilterChange(changeData);
247
192
  },
248
- handlePriceFilter: value => {
249
- const changData = _objectSpread(_objectSpread({}, Object.fromEntries(queryParams.entries())), {}, {
250
- price: value === queryParams.get('price') ? undefined : value
193
+ handlePrice: price => {
194
+ const changeData = _objectSpread(_objectSpread({}, filters), {}, {
195
+ price: price === filters.price ? undefined : price
251
196
  });
252
197
 
253
- if (isPageMode) {
254
- history.push("".concat((0, _urlJoin.default)(baseUrl, 'search'), "?").concat((0, _utils.urlStringify)(changData)));
198
+ onFilterChange(changeData);
199
+ },
200
+ handleCategory: category => {
201
+ if (category === 'all') {
202
+ const changeData = _objectSpread(_objectSpread({}, filters), {}, {
203
+ category: undefined
204
+ });
205
+
206
+ onFilterChange(changeData);
255
207
  } else {
256
- setMemoryParams(changData);
208
+ const changeData = _objectSpread(_objectSpread({}, filters), {}, {
209
+ category
210
+ });
211
+
212
+ onFilterChange(changeData);
257
213
  }
258
214
  },
259
- getCategoryLocale: name => {
260
- if (!name) return null;
215
+ handleDeveloper: developer => {
216
+ const changeData = _objectSpread(_objectSpread({}, filters), {}, {
217
+ developer: developer || undefined
218
+ });
219
+
220
+ onFilterChange(changeData);
221
+ },
222
+ getCategoryLocale: category => {
223
+ if (!category) return null;
261
224
  let result = null;
262
- const find = categoryState.data.find(item => item.name === name);
225
+ const find = categoryState.data.find(item => item.name === category);
263
226
 
264
227
  if (find) {
265
228
  result = find.locales[locale];
@@ -267,34 +230,11 @@ function SearchProvider(_ref) {
267
230
 
268
231
  return result;
269
232
  },
270
- handleCategorySelect: value => {
271
- if (value === 'all') {
272
- const changData = _objectSpread(_objectSpread({}, Object.fromEntries(queryParams.entries())), {}, {
273
- category: undefined
274
- });
275
-
276
- if (isPageMode) {
277
- history.push(!isSearchPage ? baseUrl : "".concat((0, _urlJoin.default)(baseUrl, 'search'), "?").concat((0, _utils.urlStringify)(changData)));
278
- } else {
279
- setMemoryParams(changData);
280
- }
281
- } else {
282
- const changData = _objectSpread(_objectSpread({}, Object.fromEntries(queryParams.entries())), {}, {
283
- category: value
284
- });
285
-
286
- if (isPageMode) {
287
- history.push(!isSearchPage ? "".concat((0, _urlJoin.default)(baseUrl, 'category', value)) : "".concat((0, _urlJoin.default)(baseUrl, 'search'), "?").concat((0, _utils.urlStringify)(changData)));
288
- } else {
289
- setMemoryParams(changData);
290
- }
291
- }
292
- },
293
233
 
294
234
  get developerName() {
295
235
  var _allBlocklets$find, _allBlocklets$find$ow;
296
236
 
297
- return ((_allBlocklets$find = allBlocklets.find(i => i.owner.did === queryParams.get('developer'))) === null || _allBlocklets$find === void 0 ? void 0 : (_allBlocklets$find$ow = _allBlocklets$find.owner) === null || _allBlocklets$find$ow === void 0 ? void 0 : _allBlocklets$find$ow.name) || '';
237
+ return ((_allBlocklets$find = allBlocklets.find(i => i.owner.did === filters.developer)) === null || _allBlocklets$find === void 0 ? void 0 : (_allBlocklets$find$ow = _allBlocklets$find.owner) === null || _allBlocklets$find$ow === void 0 ? void 0 : _allBlocklets$find$ow.name) || '';
298
238
  }
299
239
 
300
240
  };
@@ -307,30 +247,21 @@ function SearchProvider(_ref) {
307
247
  fetchBlocklets();
308
248
  }, [endpoint]);
309
249
  return /*#__PURE__*/_react.default.createElement(Provider, {
310
- value: searchStore
250
+ value: filterStore
311
251
  }, children);
312
252
  }
313
253
 
314
- SearchProvider.propTypes = {
315
- children: _propTypes.default.any.isRequired,
316
- baseUrl: _propTypes.default.string,
317
- endpoint: _propTypes.default.string.isRequired,
318
- // 组件的类型: page 单独作为页面使用 持久化数据将存储在 url 和 localstorage,select 作为选择器组件使用 数据在存储在内存中
319
- type: _propTypes.default.oneOf(['select', 'page']).isRequired,
320
- locale: _propTypes.default.oneOf(['zh', 'en']),
321
- blockletRender: _propTypes.default.func.isRequired
322
- };
323
- SearchProvider.defaultProps = {
324
- baseUrl: null,
325
- locale: 'zh'
326
- };
327
-
328
- function useSearchContext() {
329
- const searchStore = (0, _react.useContext)(Search);
330
-
331
- if (!searchStore) {
254
+ FilterProvider.propTypes = _objectSpread(_objectSpread({}, _propTypes2.propTypes), {}, {
255
+ children: _propTypes.default.any.isRequired
256
+ });
257
+ FilterProvider.defaultProps = _propTypes2.defaultProps;
258
+
259
+ function useFilterContext() {
260
+ const filterStore = (0, _react.useContext)(Filter);
261
+
262
+ if (!filterStore) {
332
263
  return {};
333
264
  }
334
265
 
335
- return searchStore;
266
+ return filterStore;
336
267
  }
package/lib/index.js CHANGED
@@ -7,27 +7,17 @@ exports.default = BlockletList;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
10
  var _base = _interopRequireDefault(require("./base"));
13
11
 
14
- var _store = require("./contexts/store");
12
+ var _filter = require("./contexts/filter");
13
+
14
+ var _propTypes = require("./libs/prop-types");
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
18
18
  function BlockletList(props) {
19
- return /*#__PURE__*/_react.default.createElement(_store.SearchProvider, props, /*#__PURE__*/_react.default.createElement(_base.default, null));
19
+ return /*#__PURE__*/_react.default.createElement(_filter.FilterProvider, props, /*#__PURE__*/_react.default.createElement(_base.default, null));
20
20
  }
21
21
 
22
- BlockletList.propTypes = {
23
- baseUrl: _propTypes.default.string,
24
- endpoint: _propTypes.default.string.isRequired,
25
- // 组件的类型: page 单独作为页面使用 持久化数据将存储在 url 和 localstorage,select 作为选择器组件使用 数据在存储在内存中
26
- type: _propTypes.default.oneOf(['select', 'page']).isRequired,
27
- locale: _propTypes.default.oneOf(['zh', 'en']),
28
- blockletRender: _propTypes.default.func.isRequired
29
- };
30
- BlockletList.defaultProps = {
31
- baseUrl: null,
32
- locale: 'zh'
33
- };
22
+ BlockletList.propTypes = _propTypes.propTypes;
23
+ BlockletList.defaultProps = _propTypes.defaultProps;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.propTypes = exports.defaultProps = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ const propTypes = {
13
+ filters: _propTypes.default.shape({
14
+ keyword: _propTypes.default.string,
15
+ sortBy: _propTypes.default.string,
16
+ sortDirection: _propTypes.default.string,
17
+ price: _propTypes.default.string,
18
+ category: _propTypes.default.string,
19
+ developer: _propTypes.default.string
20
+ }),
21
+ endpoint: _propTypes.default.string.isRequired,
22
+ blockletRender: _propTypes.default.func.isRequired,
23
+ onFilterChange: _propTypes.default.func,
24
+ baseUrl: _propTypes.default.string,
25
+ locale: _propTypes.default.oneOf(['zh', 'en'])
26
+ };
27
+ exports.propTypes = propTypes;
28
+ const defaultProps = {
29
+ baseUrl: null,
30
+ locale: 'zh',
31
+ filters: {},
32
+ onFilterChange: () => {}
33
+ };
34
+ exports.defaultProps = defaultProps;
@@ -7,7 +7,7 @@ exports.urlStringify = exports.replaceTranslate = exports.removeUndefined = expo
7
7
 
8
8
  var _urlJoin = _interopRequireDefault(require("url-join"));
9
9
 
10
- var _cloneDeep = _interopRequireDefault(require("lodash-es/cloneDeep"));
10
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
11
11
 
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
 
@@ -127,13 +127,13 @@ template.replace(/{(\w*)}/g, (m, key) => data.hasOwnProperty(key) ? data[key] :
127
127
  exports.replaceTranslate = replaceTranslate;
128
128
 
129
129
  const removeUndefined = obj => {
130
- const innerObj = (0, _cloneDeep.default)(obj);
131
- Object.keys(innerObj).forEach(key => {
132
- if (innerObj[key] === undefined) {
133
- delete innerObj[key];
130
+ const clone = (0, _cloneDeep.default)(obj);
131
+ Object.keys(clone).forEach(key => {
132
+ if (clone[key] === undefined) {
133
+ delete clone[key];
134
134
  }
135
135
  });
136
- return innerObj;
136
+ return clone;
137
137
  };
138
138
 
139
139
  exports.removeUndefined = removeUndefined;
package/package.json CHANGED
@@ -1,66 +1,62 @@
1
1
  {
2
- "name": "@blocklet/list",
3
- "version": "0.8.15",
4
- "description": "Common ux components of blocklet",
5
- "publishConfig": {
6
- "access": "public"
7
- },
8
- "author": "machao <machao@arcblock.io>",
9
- "homepage": "https://github.com/blocklet/blocklet-store#readme",
10
- "license": "ISC",
11
- "main": "lib/index.js",
12
- "files": [
13
- "lib",
14
- "src",
15
- "LICENSE",
16
- "package.json",
17
- "README.md"
18
- ],
19
- "repository": {
20
- "type": "git",
21
- "url": "git@github.com:blocklet/blocklet-store.git"
22
- },
23
- "scripts": {
24
- "lint": "eslint src",
25
- "build": "rm -rf lib && babel src --out-dir lib --copy-files",
26
- "watch": "babel src --out-dir lib -w --copy-files",
27
- "precommit": "CI=1 yarn test",
28
- "prepush": "CI=1 yarn test",
29
- "prepublish": "npm run build"
30
- },
31
- "bugs": {
32
- "url": "https://github.com/blocklet/blocklet-store/issues"
33
- },
34
- "peerDependencies": {
35
- "react": ">=16.12.0"
36
- },
37
- "dependencies": {
38
- "@arcblock/ux": "^2.1.3",
39
- "@emotion/react": "^11.9.0",
40
- "@emotion/styled": "^11.8.1",
41
- "@mui/icons-material": "^5.6.2",
42
- "@mui/material": "^5.7.0",
43
- "@mui/styles": "^5.7.0",
44
- "ahooks": "^2.10.12",
45
- "axios": "^0.27.2",
46
- "flat": "^5.0.2",
47
- "lodash": "^4.17.21",
48
- "lodash-es": "^4.17.21",
49
- "mdi-material-ui": "^7.3.0",
50
- "prop-types": "^15.7.2",
51
- "qs": "^6.10.2",
52
- "react-router-dom": "^5.3.0",
53
- "styled-components": "5.3.5",
54
- "url-join": "^4.0.1"
55
- },
56
- "devDependencies": {
57
- "@babel/cli": "^7.8.4",
58
- "@babel/core": "^7.8.4",
59
- "@babel/preset-env": "^7.8.4",
60
- "@babel/preset-react": "^7.8.3",
61
- "@emotion/babel-plugin": "^11.9.2",
62
- "babel-plugin-inline-react-svg": "^2.0.1",
63
- "babel-plugin-styled-components": "^1.10.7"
64
- },
65
- "gitHead": "af730b5ec10068e9db333bb8b3083db3c2c978fe"
2
+ "name": "@blocklet/list",
3
+ "version": "0.8.16",
4
+ "description": "Common ux components of blocklet",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "author": "machao <machao@arcblock.io>",
9
+ "homepage": "https://github.com/blocklet/blocklet-store#readme",
10
+ "license": "ISC",
11
+ "main": "lib/index.js",
12
+ "files": [
13
+ "lib",
14
+ "src",
15
+ "LICENSE",
16
+ "package.json",
17
+ "README.md"
18
+ ],
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git@github.com:blocklet/blocklet-store.git"
22
+ },
23
+ "scripts": {
24
+ "lint": "eslint src",
25
+ "build": "rm -rf lib && babel src --out-dir lib --copy-files",
26
+ "watch": "babel src --out-dir lib -w --copy-files",
27
+ "precommit": "CI=1 yarn test",
28
+ "prepush": "CI=1 yarn test",
29
+ "prepublish": "npm run build"
30
+ },
31
+ "bugs": {
32
+ "url": "https://github.com/blocklet/blocklet-store/issues"
33
+ },
34
+ "peerDependencies": {
35
+ "@mui/material": ">=5.6.4",
36
+ "@mui/styles": ">=5.6.2",
37
+ "react": ">=18.1.0"
38
+ },
39
+ "dependencies": {
40
+ "@arcblock/ux": "^2.1.3",
41
+ "@emotion/react": "^11.9.0",
42
+ "@emotion/styled": "^11.8.1",
43
+ "@mui/icons-material": "^5.6.2",
44
+ "ahooks": "^2.10.12",
45
+ "axios": "^0.27.2",
46
+ "flat": "^5.0.2",
47
+ "lodash": "^4.17.21",
48
+ "prop-types": "^15.7.2",
49
+ "styled-components": "5.3.5",
50
+ "url-join": "^4.0.1"
51
+ },
52
+ "devDependencies": {
53
+ "@babel/cli": "^7.8.4",
54
+ "@babel/core": "^7.8.4",
55
+ "@babel/preset-env": "^7.8.4",
56
+ "@babel/preset-react": "^7.8.3",
57
+ "@emotion/babel-plugin": "^11.9.2",
58
+ "babel-plugin-inline-react-svg": "^2.0.1",
59
+ "babel-plugin-styled-components": "^1.10.7"
60
+ },
61
+ "gitHead": "5f5a20003947fadab688b32a18ba38826d8c3369"
66
62
  }