@kaiheila/ui-components 1.0.0 → 1.0.2
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/ui-components.js +54 -20
- package/package.json +3 -3
package/dist/ui-components.js
CHANGED
|
@@ -2205,7 +2205,8 @@ const OptionList = _ref => {
|
|
|
2205
2205
|
labelKey = "label",
|
|
2206
2206
|
valueKey = "value",
|
|
2207
2207
|
loadComponent,
|
|
2208
|
-
onSelect
|
|
2208
|
+
onSelect,
|
|
2209
|
+
onReachBottom
|
|
2209
2210
|
} = _ref;
|
|
2210
2211
|
const containerRef = (0,external_react_namespaceObject.useRef)(null);
|
|
2211
2212
|
const ids = (0,external_react_namespaceObject.useMemo)(() => filterData.map(item => item[valueKey]), [filterData, valueKey]);
|
|
@@ -2213,9 +2214,16 @@ const OptionList = _ref => {
|
|
|
2213
2214
|
visibleRange
|
|
2214
2215
|
} = (0,logic_models_react_namespaceObject.useListVirtualScroll)({
|
|
2215
2216
|
ids,
|
|
2216
|
-
heightRender:
|
|
2217
|
+
heightRender: id => {
|
|
2218
|
+
if ((0,logic_models_react_namespaceObject.isSentinelId)(id)) {
|
|
2219
|
+
// 所有元素必须有高度,否则滚动位置无法计算到该元素
|
|
2220
|
+
return 1;
|
|
2221
|
+
}
|
|
2222
|
+
return 34;
|
|
2223
|
+
} // 注意:这里需要手动维护跟样式上的高度一致,如果不能维护一致的话就需要写动态高度逻辑
|
|
2217
2224
|
}, {
|
|
2218
|
-
containerRef
|
|
2225
|
+
containerRef,
|
|
2226
|
+
onReachBottom
|
|
2219
2227
|
});
|
|
2220
2228
|
return /*#__PURE__*/external_react_default().createElement("ul", {
|
|
2221
2229
|
className: "selector-search-option theme-scroll-bar",
|
|
@@ -2235,10 +2243,14 @@ const OptionList = _ref => {
|
|
|
2235
2243
|
transform: "translateY(".concat(visibleRange === null || visibleRange === void 0 ? void 0 : visibleRange.topSpace, "px)")
|
|
2236
2244
|
}
|
|
2237
2245
|
}, (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 ? void 0 : visibleRange.visibleIds.map((id, i) => {
|
|
2246
|
+
if ((0,logic_models_react_namespaceObject.isSentinelId)(id)) {
|
|
2247
|
+
return null;
|
|
2248
|
+
}
|
|
2238
2249
|
const item = filterData.find(item => item[valueKey] === id);
|
|
2239
2250
|
const label = item === null || item === void 0 ? void 0 : item[labelKey];
|
|
2240
2251
|
const value = item === null || item === void 0 ? void 0 : item[valueKey];
|
|
2241
2252
|
const disabled = disabledValues.includes(value);
|
|
2253
|
+
if (!item) return null;
|
|
2242
2254
|
return /*#__PURE__*/external_react_default().createElement("li", {
|
|
2243
2255
|
className: external_classnames_default()("selector-search-option-item", {
|
|
2244
2256
|
disabled
|
|
@@ -2278,7 +2290,9 @@ function selector_search_toPrimitive(t, r) { if ("object" != typeof t || !t) ret
|
|
|
2278
2290
|
|
|
2279
2291
|
class SelectorSearch extends external_react_namespaceObject.Component {
|
|
2280
2292
|
constructor(props) {
|
|
2293
|
+
var _this;
|
|
2281
2294
|
super(props);
|
|
2295
|
+
_this = this;
|
|
2282
2296
|
selector_search_defineProperty(this, "calcOptionsStyle", () => {
|
|
2283
2297
|
const {
|
|
2284
2298
|
current
|
|
@@ -2301,7 +2315,7 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2301
2315
|
showList: false,
|
|
2302
2316
|
keyword: ''
|
|
2303
2317
|
}, () => {
|
|
2304
|
-
this.changeFilterData();
|
|
2318
|
+
this.changeFilterData(true);
|
|
2305
2319
|
});
|
|
2306
2320
|
document.removeEventListener('click', this.hide);
|
|
2307
2321
|
});
|
|
@@ -2327,7 +2341,7 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2327
2341
|
this.setState({
|
|
2328
2342
|
keyword: ''
|
|
2329
2343
|
}, () => {
|
|
2330
|
-
this.changeFilterData();
|
|
2344
|
+
this.changeFilterData(true);
|
|
2331
2345
|
});
|
|
2332
2346
|
document.removeEventListener('click', this.hide);
|
|
2333
2347
|
}
|
|
@@ -2344,10 +2358,10 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2344
2358
|
event.nativeEvent.stopImmediatePropagation();
|
|
2345
2359
|
return;
|
|
2346
2360
|
}
|
|
2347
|
-
this.hide();
|
|
2348
2361
|
this.setState({
|
|
2349
|
-
|
|
2362
|
+
currentItem: this.props.data.find(item => item[this.props.valueKey] == value)
|
|
2350
2363
|
});
|
|
2364
|
+
this.hide();
|
|
2351
2365
|
const {
|
|
2352
2366
|
onChange
|
|
2353
2367
|
} = this.props;
|
|
@@ -2360,6 +2374,12 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2360
2374
|
data = [],
|
|
2361
2375
|
value
|
|
2362
2376
|
} = this.props;
|
|
2377
|
+
const {
|
|
2378
|
+
currentItem
|
|
2379
|
+
} = this.state;
|
|
2380
|
+
if (currentItem && currentItem[valueKey] == value) {
|
|
2381
|
+
return currentItem[labelKey] || '';
|
|
2382
|
+
}
|
|
2363
2383
|
return (data.find(item => {
|
|
2364
2384
|
if (item[valueKey] === value) {
|
|
2365
2385
|
return item;
|
|
@@ -2370,16 +2390,24 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2370
2390
|
this.setState({
|
|
2371
2391
|
keyword: value
|
|
2372
2392
|
}, () => {
|
|
2373
|
-
this.changeFilterData();
|
|
2393
|
+
this.changeFilterData(true);
|
|
2374
2394
|
});
|
|
2375
2395
|
});
|
|
2376
|
-
selector_search_defineProperty(this, "changeFilterData", ()
|
|
2377
|
-
|
|
2396
|
+
selector_search_defineProperty(this, "changeFilterData", function () {
|
|
2397
|
+
let updateFilterData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
2398
|
+
const keyword = _this.state.keyword.trim().toLocaleLowerCase();
|
|
2399
|
+
|
|
2400
|
+
// 受控模式下,组件渲染后的状态变更由受控逻辑接管,直接调用 keywordChange 回调
|
|
2401
|
+
if (_this.props.controlled && updateFilterData) {
|
|
2402
|
+
var _this$props$keywordCh, _this$props;
|
|
2403
|
+
(_this$props$keywordCh = (_this$props = _this.props).keywordChange) === null || _this$props$keywordCh === void 0 || _this$props$keywordCh.call(_this$props, keyword);
|
|
2404
|
+
return;
|
|
2405
|
+
}
|
|
2378
2406
|
let filterData = [];
|
|
2379
2407
|
const {
|
|
2380
2408
|
getData,
|
|
2381
2409
|
onSearchResultChange
|
|
2382
|
-
} =
|
|
2410
|
+
} = _this.props;
|
|
2383
2411
|
if (typeof getData == 'function') {
|
|
2384
2412
|
getData({
|
|
2385
2413
|
keyword
|
|
@@ -2387,21 +2415,21 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2387
2415
|
let {
|
|
2388
2416
|
list
|
|
2389
2417
|
} = _ref;
|
|
2390
|
-
|
|
2418
|
+
_this.setState({
|
|
2391
2419
|
filterData: list
|
|
2392
2420
|
});
|
|
2393
2421
|
});
|
|
2394
2422
|
return;
|
|
2395
2423
|
}
|
|
2396
2424
|
if (keyword == '') {
|
|
2397
|
-
filterData =
|
|
2425
|
+
filterData = _this.props.data || [];
|
|
2398
2426
|
} else {
|
|
2399
|
-
filterData = (
|
|
2400
|
-
let label = item[
|
|
2427
|
+
filterData = (_this.props.data || []).filter(item => {
|
|
2428
|
+
let label = item[_this.props.labelKey || 'label'];
|
|
2401
2429
|
return label.toLocaleLowerCase().includes(keyword);
|
|
2402
2430
|
});
|
|
2403
2431
|
}
|
|
2404
|
-
|
|
2432
|
+
_this.setState({
|
|
2405
2433
|
filterData
|
|
2406
2434
|
});
|
|
2407
2435
|
|
|
@@ -2436,7 +2464,8 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2436
2464
|
showList: false,
|
|
2437
2465
|
keyword: '',
|
|
2438
2466
|
filterData: [],
|
|
2439
|
-
optionsStyle: {}
|
|
2467
|
+
optionsStyle: {},
|
|
2468
|
+
currentItem: null
|
|
2440
2469
|
};
|
|
2441
2470
|
this.selectRef = /*#__PURE__*/external_react_default().createRef();
|
|
2442
2471
|
}
|
|
@@ -2473,6 +2502,7 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2473
2502
|
placeholder,
|
|
2474
2503
|
renderOption,
|
|
2475
2504
|
disabledValues = [],
|
|
2505
|
+
onReachBottom,
|
|
2476
2506
|
labelKey = 'label',
|
|
2477
2507
|
valueKey = 'value',
|
|
2478
2508
|
loadComponent
|
|
@@ -2514,7 +2544,8 @@ class SelectorSearch extends external_react_namespaceObject.Component {
|
|
|
2514
2544
|
labelKey: labelKey,
|
|
2515
2545
|
valueKey: valueKey,
|
|
2516
2546
|
loadComponent: loadComponent,
|
|
2517
|
-
onSelect: this.select
|
|
2547
|
+
onSelect: this.select,
|
|
2548
|
+
onReachBottom: onReachBottom
|
|
2518
2549
|
}) : null);
|
|
2519
2550
|
}
|
|
2520
2551
|
}
|
|
@@ -2530,7 +2561,10 @@ selector_search_defineProperty(SelectorSearch, "propTypes", {
|
|
|
2530
2561
|
onSearchResultChange: (external_prop_types_default()).func,
|
|
2531
2562
|
// 搜索结果change
|
|
2532
2563
|
onBlur: (external_prop_types_default()).func,
|
|
2533
|
-
onFocus: (external_prop_types_default()).func
|
|
2564
|
+
onFocus: (external_prop_types_default()).func,
|
|
2565
|
+
controlled: (external_prop_types_default()).bool,
|
|
2566
|
+
keywordChange: (external_prop_types_default()).func
|
|
2567
|
+
// loading: PropTypes.bool, // 如果是loading 则在filter面板显示 转圈
|
|
2534
2568
|
});
|
|
2535
2569
|
;// ./src/components/selector-search/index.js
|
|
2536
2570
|
|
|
@@ -5614,7 +5648,7 @@ class TimeSelector extends external_react_namespaceObject.Component {
|
|
|
5614
5648
|
|
|
5615
5649
|
/* harmony default export */ const time_selector = (TimeSelector);
|
|
5616
5650
|
;// ./package.json
|
|
5617
|
-
const package_namespaceObject = {"rE":"1.0.
|
|
5651
|
+
const package_namespaceObject = {"rE":"1.0.2"};
|
|
5618
5652
|
;// ./src/index.js
|
|
5619
5653
|
|
|
5620
5654
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaiheila/ui-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
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
|
},
|