@kaiheila/ui-components 1.0.1 → 1.0.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/dist/main.css +1617 -1617
- package/dist/ui-components.js +62 -23
- package/package.json +3 -3
package/dist/ui-components.js
CHANGED
|
@@ -2196,7 +2196,7 @@ const logic_models_react_namespaceObject = require("@kookapp/logic-models-react"
|
|
|
2196
2196
|
|
|
2197
2197
|
|
|
2198
2198
|
const OptionList = _ref => {
|
|
2199
|
-
var _visibleRange$visible;
|
|
2199
|
+
var _visibleRange$visible, _visibleRange$visible2;
|
|
2200
2200
|
let {
|
|
2201
2201
|
filterData,
|
|
2202
2202
|
optionsStyle,
|
|
@@ -2205,7 +2205,9 @@ const OptionList = _ref => {
|
|
|
2205
2205
|
labelKey = "label",
|
|
2206
2206
|
valueKey = "value",
|
|
2207
2207
|
loadComponent,
|
|
2208
|
-
onSelect
|
|
2208
|
+
onSelect,
|
|
2209
|
+
onReachBottom,
|
|
2210
|
+
loading = false
|
|
2209
2211
|
} = _ref;
|
|
2210
2212
|
const containerRef = (0,external_react_namespaceObject.useRef)(null);
|
|
2211
2213
|
const ids = (0,external_react_namespaceObject.useMemo)(() => filterData.map(item => item[valueKey]), [filterData, valueKey]);
|
|
@@ -2213,10 +2215,18 @@ const OptionList = _ref => {
|
|
|
2213
2215
|
visibleRange
|
|
2214
2216
|
} = (0,logic_models_react_namespaceObject.useListVirtualScroll)({
|
|
2215
2217
|
ids,
|
|
2216
|
-
heightRender:
|
|
2218
|
+
heightRender: id => {
|
|
2219
|
+
if ((0,logic_models_react_namespaceObject.isSentinelId)(id)) {
|
|
2220
|
+
// 所有元素必须有高度,否则滚动位置无法计算到该元素
|
|
2221
|
+
return 1;
|
|
2222
|
+
}
|
|
2223
|
+
return 34;
|
|
2224
|
+
} // 注意:这里需要手动维护跟样式上的高度一致,如果不能维护一致的话就需要写动态高度逻辑
|
|
2217
2225
|
}, {
|
|
2218
|
-
containerRef
|
|
2226
|
+
containerRef,
|
|
2227
|
+
onReachBottom
|
|
2219
2228
|
});
|
|
2229
|
+
const empty = (visibleRange === null || visibleRange === void 0 || (_visibleRange$visible = visibleRange.visibleIds) === null || _visibleRange$visible === void 0 ? void 0 : _visibleRange$visible.length) == 0 || (visibleRange === null || visibleRange === void 0 || (_visibleRange$visible2 = visibleRange.visibleIds) === null || _visibleRange$visible2 === void 0 ? void 0 : _visibleRange$visible2.every(id => (0,logic_models_react_namespaceObject.isSentinelId)(id)));
|
|
2220
2230
|
return /*#__PURE__*/external_react_default().createElement("ul", {
|
|
2221
2231
|
className: "selector-search-option theme-scroll-bar",
|
|
2222
2232
|
style: optionsStyle,
|
|
@@ -2234,7 +2244,10 @@ const OptionList = _ref => {
|
|
|
2234
2244
|
padding: 8,
|
|
2235
2245
|
transform: "translateY(".concat(visibleRange === null || visibleRange === void 0 ? void 0 : visibleRange.topSpace, "px)")
|
|
2236
2246
|
}
|
|
2237
|
-
},
|
|
2247
|
+
}, !empty ? visibleRange === null || visibleRange === void 0 ? void 0 : visibleRange.visibleIds.map((id, i) => {
|
|
2248
|
+
if ((0,logic_models_react_namespaceObject.isSentinelId)(id)) {
|
|
2249
|
+
return null;
|
|
2250
|
+
}
|
|
2238
2251
|
const item = filterData.find(item => item[valueKey] === id);
|
|
2239
2252
|
const label = item === null || item === void 0 ? void 0 : item[labelKey];
|
|
2240
2253
|
const value = item === null || item === void 0 ? void 0 : item[valueKey];
|
|
@@ -2252,7 +2265,9 @@ const OptionList = _ref => {
|
|
|
2252
2265
|
key: value + i,
|
|
2253
2266
|
title: label
|
|
2254
2267
|
}, renderOption ? renderOption(item) : label);
|
|
2255
|
-
}) : /*#__PURE__*/external_react_default().createElement("li", {
|
|
2268
|
+
}) : loading ? /*#__PURE__*/external_react_default().createElement("li", {
|
|
2269
|
+
key: "none"
|
|
2270
|
+
}, "\u52A0\u8F7D\u4E2D...") : /*#__PURE__*/external_react_default().createElement("li", {
|
|
2256
2271
|
key: "none"
|
|
2257
2272
|
}, "\u6CA1\u6709\u4EFB\u4F55\u5185\u5BB9")));
|
|
2258
2273
|
};
|
|
@@ -2279,7 +2294,9 @@ function selector_search_toPrimitive(t, r) { if ("object" != typeof t || !t) ret
|
|
|
2279
2294
|
|
|
2280
2295
|
class SelectorSearch extends external_react_namespaceObject.Component {
|
|
2281
2296
|
constructor(props) {
|
|
2297
|
+
var _this;
|
|
2282
2298
|
super(props);
|
|
2299
|
+
_this = this;
|
|
2283
2300
|
selector_search_defineProperty(this, "calcOptionsStyle", () => {
|
|
2284
2301
|
const {
|
|
2285
2302
|
current
|
|
@@ -2302,7 +2319,7 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2302
2319
|
showList: false,
|
|
2303
2320
|
keyword: ''
|
|
2304
2321
|
}, () => {
|
|
2305
|
-
this.changeFilterData();
|
|
2322
|
+
this.changeFilterData(true);
|
|
2306
2323
|
});
|
|
2307
2324
|
document.removeEventListener('click', this.hide);
|
|
2308
2325
|
});
|
|
@@ -2328,7 +2345,7 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2328
2345
|
this.setState({
|
|
2329
2346
|
keyword: ''
|
|
2330
2347
|
}, () => {
|
|
2331
|
-
this.changeFilterData();
|
|
2348
|
+
this.changeFilterData(true);
|
|
2332
2349
|
});
|
|
2333
2350
|
document.removeEventListener('click', this.hide);
|
|
2334
2351
|
}
|
|
@@ -2345,10 +2362,10 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2345
2362
|
event.nativeEvent.stopImmediatePropagation();
|
|
2346
2363
|
return;
|
|
2347
2364
|
}
|
|
2348
|
-
this.hide();
|
|
2349
2365
|
this.setState({
|
|
2350
|
-
|
|
2366
|
+
currentItem: this.props.data.find(item => item[this.props.valueKey] == value)
|
|
2351
2367
|
});
|
|
2368
|
+
this.hide();
|
|
2352
2369
|
const {
|
|
2353
2370
|
onChange
|
|
2354
2371
|
} = this.props;
|
|
@@ -2361,6 +2378,12 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2361
2378
|
data = [],
|
|
2362
2379
|
value
|
|
2363
2380
|
} = this.props;
|
|
2381
|
+
const {
|
|
2382
|
+
currentItem
|
|
2383
|
+
} = this.state;
|
|
2384
|
+
if (currentItem && currentItem[valueKey] == value) {
|
|
2385
|
+
return currentItem[labelKey] || '';
|
|
2386
|
+
}
|
|
2364
2387
|
return (data.find(item => {
|
|
2365
2388
|
if (item[valueKey] === value) {
|
|
2366
2389
|
return item;
|
|
@@ -2371,16 +2394,24 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2371
2394
|
this.setState({
|
|
2372
2395
|
keyword: value
|
|
2373
2396
|
}, () => {
|
|
2374
|
-
this.changeFilterData();
|
|
2397
|
+
this.changeFilterData(true);
|
|
2375
2398
|
});
|
|
2376
2399
|
});
|
|
2377
|
-
selector_search_defineProperty(this, "changeFilterData", ()
|
|
2378
|
-
|
|
2400
|
+
selector_search_defineProperty(this, "changeFilterData", function () {
|
|
2401
|
+
let updateFilterData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
2402
|
+
const keyword = _this.state.keyword.trim().toLocaleLowerCase();
|
|
2403
|
+
|
|
2404
|
+
// 受控模式下,组件渲染后的状态变更由受控逻辑接管,直接调用 keywordChange 回调
|
|
2405
|
+
if (_this.props.controlled && updateFilterData) {
|
|
2406
|
+
var _this$props$keywordCh, _this$props;
|
|
2407
|
+
(_this$props$keywordCh = (_this$props = _this.props).keywordChange) === null || _this$props$keywordCh === void 0 || _this$props$keywordCh.call(_this$props, keyword);
|
|
2408
|
+
return;
|
|
2409
|
+
}
|
|
2379
2410
|
let filterData = [];
|
|
2380
2411
|
const {
|
|
2381
2412
|
getData,
|
|
2382
2413
|
onSearchResultChange
|
|
2383
|
-
} =
|
|
2414
|
+
} = _this.props;
|
|
2384
2415
|
if (typeof getData == 'function') {
|
|
2385
2416
|
getData({
|
|
2386
2417
|
keyword
|
|
@@ -2388,21 +2419,21 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2388
2419
|
let {
|
|
2389
2420
|
list
|
|
2390
2421
|
} = _ref;
|
|
2391
|
-
|
|
2422
|
+
_this.setState({
|
|
2392
2423
|
filterData: list
|
|
2393
2424
|
});
|
|
2394
2425
|
});
|
|
2395
2426
|
return;
|
|
2396
2427
|
}
|
|
2397
2428
|
if (keyword == '') {
|
|
2398
|
-
filterData =
|
|
2429
|
+
filterData = _this.props.data || [];
|
|
2399
2430
|
} else {
|
|
2400
|
-
filterData = (
|
|
2401
|
-
let label = item[
|
|
2431
|
+
filterData = (_this.props.data || []).filter(item => {
|
|
2432
|
+
let label = item[_this.props.labelKey || 'label'];
|
|
2402
2433
|
return label.toLocaleLowerCase().includes(keyword);
|
|
2403
2434
|
});
|
|
2404
2435
|
}
|
|
2405
|
-
|
|
2436
|
+
_this.setState({
|
|
2406
2437
|
filterData
|
|
2407
2438
|
});
|
|
2408
2439
|
|
|
@@ -2437,7 +2468,8 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2437
2468
|
showList: false,
|
|
2438
2469
|
keyword: '',
|
|
2439
2470
|
filterData: [],
|
|
2440
|
-
optionsStyle: {}
|
|
2471
|
+
optionsStyle: {},
|
|
2472
|
+
currentItem: null
|
|
2441
2473
|
};
|
|
2442
2474
|
this.selectRef = /*#__PURE__*/external_react_default().createRef();
|
|
2443
2475
|
}
|
|
@@ -2474,6 +2506,8 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2474
2506
|
placeholder,
|
|
2475
2507
|
renderOption,
|
|
2476
2508
|
disabledValues = [],
|
|
2509
|
+
onReachBottom,
|
|
2510
|
+
loading,
|
|
2477
2511
|
labelKey = 'label',
|
|
2478
2512
|
valueKey = 'value',
|
|
2479
2513
|
loadComponent
|
|
@@ -2508,6 +2542,7 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2508
2542
|
}, label)), /*#__PURE__*/external_react_default().createElement("span", {
|
|
2509
2543
|
className: "dropdown-icon"
|
|
2510
2544
|
}, /*#__PURE__*/external_react_default().createElement(IconDropDown, null))), showList ? /*#__PURE__*/external_react_default().createElement(selector_search_OptionList, {
|
|
2545
|
+
loading: loading,
|
|
2511
2546
|
filterData: filterData,
|
|
2512
2547
|
optionsStyle: optionsStyle,
|
|
2513
2548
|
renderOption: renderOption,
|
|
@@ -2515,7 +2550,8 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2515
2550
|
labelKey: labelKey,
|
|
2516
2551
|
valueKey: valueKey,
|
|
2517
2552
|
loadComponent: loadComponent,
|
|
2518
|
-
onSelect: this.select
|
|
2553
|
+
onSelect: this.select,
|
|
2554
|
+
onReachBottom: onReachBottom
|
|
2519
2555
|
}) : null);
|
|
2520
2556
|
}
|
|
2521
2557
|
}
|
|
@@ -2531,7 +2567,10 @@ selector_search_defineProperty(SelectorSearch, "propTypes", {
|
|
|
2531
2567
|
onSearchResultChange: (external_prop_types_default()).func,
|
|
2532
2568
|
// 搜索结果change
|
|
2533
2569
|
onBlur: (external_prop_types_default()).func,
|
|
2534
|
-
onFocus: (external_prop_types_default()).func
|
|
2570
|
+
onFocus: (external_prop_types_default()).func,
|
|
2571
|
+
controlled: (external_prop_types_default()).bool,
|
|
2572
|
+
keywordChange: (external_prop_types_default()).func
|
|
2573
|
+
// loading: PropTypes.bool, // 如果是loading 则在filter面板显示 转圈
|
|
2535
2574
|
});
|
|
2536
2575
|
;// ./src/components/selector-search/index.js
|
|
2537
2576
|
|
|
@@ -5615,7 +5654,7 @@ class TimeSelector extends external_react_namespaceObject.Component {
|
|
|
5615
5654
|
|
|
5616
5655
|
/* harmony default export */ const time_selector = (TimeSelector);
|
|
5617
5656
|
;// ./package.json
|
|
5618
|
-
const package_namespaceObject = {"rE":"1.0.
|
|
5657
|
+
const package_namespaceObject = {"rE":"1.0.3"};
|
|
5619
5658
|
;// ./src/index.js
|
|
5620
5659
|
|
|
5621
5660
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaiheila/ui-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "开黑啦 UI Components",
|
|
5
5
|
"main": "dist/ui-components.js",
|
|
6
6
|
"scripts": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@babel/core": "^7.15.5",
|
|
21
21
|
"@babel/preset-env": "^7.15.6",
|
|
22
22
|
"@babel/preset-react": "^7.14.5",
|
|
23
|
-
"@kookapp/logic-models-react": "
|
|
23
|
+
"@kookapp/logic-models-react": "1.0.7",
|
|
24
24
|
"babel-loader": "^8.2.2",
|
|
25
25
|
"classnames": "^2.3.1",
|
|
26
26
|
"css-loader": "^6.7.1",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"webpack-dev-server": "^4.11.1"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@kookapp/logic-models-react": "^1.0.
|
|
41
|
+
"@kookapp/logic-models-react": "^1.0.7",
|
|
42
42
|
"react": "^18",
|
|
43
43
|
"react-dom": "^18"
|
|
44
44
|
},
|