@kne/form-info 0.1.9 → 0.1.10

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/index.js CHANGED
@@ -5,15 +5,19 @@ var react = require('react');
5
5
  var InfoPage = require('@kne/info-page');
6
6
  var flexBox = require('@kne/flex-box');
7
7
  var reactFormPlus = require('@kne/react-form-plus');
8
+ var responsiveUtils = require('@kne/responsive-utils');
8
9
  var antd = require('antd');
9
10
  var jsxRuntime = require('react/jsx-runtime');
10
11
  var icons = require('@ant-design/icons');
11
12
  var reactIntl = require('@kne/react-intl');
13
+ var TableView = require('@kne/table-view');
14
+ require('@kne/table-view/dist/index.css');
12
15
  var useControlValue = require('@kne/use-control-value');
13
16
 
14
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
18
 
16
19
  var InfoPage__default = /*#__PURE__*/_interopDefaultLegacy(InfoPage);
20
+ var TableView__default = /*#__PURE__*/_interopDefaultLegacy(TableView);
17
21
  var useControlValue__default = /*#__PURE__*/_interopDefaultLegacy(useControlValue);
18
22
 
19
23
  function _extends() {
@@ -117,7 +121,7 @@ var classnames = createCommonjsModule(function (module) {
117
121
  }());
118
122
  });
119
123
 
120
- var style = {"form-outer":"kne-form-info_ZQNNL","form-info":"kne-form-info_GW4Xx","extra-btn":"kne-form-info_eY4qR","list-part":"kne-form-info_SL3dC","list-item":"kne-form-info_PNnMa","is-important":"kne-form-info_Xkp38","list-item-part":"kne-form-info_HiB5Q","table-list-inner":"kne-form-info_Uw-3T","multi-field-item":"kne-form-info_uogqr","react-form__field-label":"kne-form-info_UGjS9","multi-field-add-btn":"kne-form-info_rjVPh","table-list":"kne-form-info_r8-bn","table-list-field":"kne-form-info_Qkutm","table-list-header":"kne-form-info_9WdfD","is-req":"kne-form-info_CsPaL","table-options":"kne-form-info_8smwK","steps":"kne-form-info_IOdkE","steps-form-inner":"kne-form-info_uc1HZ","steps-modal":"kne-form-info_vWPQO","table-list-empty":"kne-form-info_DXskv","extra-container":"kne-form-info_wU-w4"};
124
+ var style = {"kne-responsive-boundary":"kne-form-info_gh14z","kne-responsive-scroll":"kne-form-info_Kfn6L","form-outer":"kne-form-info_ZQNNL","form-info":"kne-form-info_GW4Xx","extra-btn":"kne-form-info_eY4qR","list-part":"kne-form-info_SL3dC","list-item":"kne-form-info_PNnMa","list-item-part":"kne-form-info_HiB5Q","is-important":"kne-form-info_Xkp38","table-list-inner":"kne-form-info_Uw-3T","multi-field-item":"kne-form-info_uogqr","react-form__field-label":"kne-form-info_UGjS9","multi-field-add-btn":"kne-form-info_rjVPh","table-list-view":"kne-form-info_ZD9zd","table-list":"kne-form-info_r8-bn","is-mobile":"kne-form-info_LtgJz","table-list-mobile-list":"kne-form-info_5uGUh","table-list-mobile-card":"kne-form-info_H8TZT","table-list-mobile-card-body":"kne-form-info_3Mhy7","table-list-mobile-field":"kne-form-info_-e-f1","table-list-mobile-actions":"kne-form-info_FVPV7","table-list-field":"kne-form-info_Qkutm","table-list-header":"kne-form-info_9WdfD","is-req":"kne-form-info_CsPaL","table-options":"kne-form-info_8smwK","steps":"kne-form-info_IOdkE","steps-vertical":"kne-form-info_03aHQ","steps-form-inner":"kne-form-info_uc1HZ","steps-modal":"kne-form-info_vWPQO","table-list-empty":"kne-form-info_DXskv","extra-container":"kne-form-info_wU-w4"};
121
125
 
122
126
  const _excluded$7 = ["className", "column", "list", "gap"];
123
127
  const FormInfo = props => {
@@ -130,7 +134,8 @@ const FormInfo = props => {
130
134
  list = _Object$assign.list,
131
135
  gap = _Object$assign.gap,
132
136
  others = _objectWithoutPropertiesLoose(_Object$assign, _excluded$7);
133
- const isFlexBox = !(Number.isInteger(column) && column > 0);
137
+ const isMobile = responsiveUtils.useIsMobile();
138
+ const isFlexBox = !isMobile && !(Number.isInteger(column) && column > 0);
134
139
  const _useFlexBox = flexBox.useFlexBox(isFlexBox ? column : {}),
135
140
  flexBoxRef = _useFlexBox.ref,
136
141
  flexBoxColumn = _useFlexBox.column;
@@ -164,6 +169,9 @@ const FormInfo = props => {
164
169
  });
165
170
  };
166
171
  const renderColumn = () => {
172
+ if (isMobile) {
173
+ return renderInner(1);
174
+ }
167
175
  if (!isFlexBox) {
168
176
  return renderInner(column);
169
177
  }
@@ -212,6 +220,7 @@ const _excluded$6 = ["className", "itemClassName", "removeIcon", "removeText", "
212
220
  const List = withLocale(p => {
213
221
  const _useIntl = reactIntl.useIntl(),
214
222
  formatMessage = _useIntl.formatMessage;
223
+ const isMobile = responsiveUtils.useIsMobile();
215
224
  const _Object$assign = Object.assign({}, {
216
225
  addText: formatMessage({
217
226
  id: 'addText'
@@ -235,8 +244,8 @@ const List = withLocale(p => {
235
244
  title = _Object$assign.title,
236
245
  bordered = _Object$assign.bordered,
237
246
  others = _objectWithoutPropertiesLoose(_Object$assign, _excluded$6);
247
+ const showBorder = isMobile ? false : bordered;
238
248
  return /*#__PURE__*/jsxRuntime.jsx(reactFormPlus.SubList, _extends({}, others, {
239
- className: classnames(className, style['list-part']),
240
249
  listRender: _ref => {
241
250
  let id = _ref.id,
242
251
  allowRemove = _ref.allowRemove,
@@ -247,7 +256,7 @@ const List = withLocale(p => {
247
256
  [style['is-important']]: important
248
257
  }),
249
258
  children: [/*#__PURE__*/jsxRuntime.jsx(FormInfo, _extends({}, props, {
250
- bordered: bordered,
259
+ bordered: showBorder,
251
260
  className: style['list-item-part'],
252
261
  gap: 16,
253
262
  extra: allowRemove && /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
@@ -265,9 +274,9 @@ const List = withLocale(p => {
265
274
  let allowAdd = _ref2.allowAdd,
266
275
  onAdd = _ref2.onAdd;
267
276
  return /*#__PURE__*/jsxRuntime.jsx(InfoPage__default["default"].Part, {
268
- className: itemClassName,
277
+ className: classnames(className, itemClassName, style['list-part']),
269
278
  title: title,
270
- bordered: bordered,
279
+ bordered: showBorder,
271
280
  extra: /*#__PURE__*/jsxRuntime.jsx("div", {
272
281
  className: style['extra-container'],
273
282
  children: allowAdd && /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
@@ -340,7 +349,25 @@ const MultiField = withLocale(p => {
340
349
  }));
341
350
  });
342
351
 
343
- const _excluded$4 = ["className", "addIcon", "addText", "removeIcon", "removeText", "title", "bordered"];
352
+ const _excluded$4 = ["className", "addIcon", "addText", "removeIcon", "removeText", "title", "bordered", "renderMobile", "list"];
353
+ const buildColumns = (list, _ref) => {
354
+ let removeText = _ref.removeText;
355
+ const fieldList = Array.isArray(list) ? list : [];
356
+ return [...fieldList.filter(item => {
357
+ var _item$props, _item$props2;
358
+ return (item == null || (_item$props = item.props) == null ? void 0 : _item$props.display) !== false && !(item != null && (_item$props2 = item.props) != null && _item$props2.hidden);
359
+ }).map(item => ({
360
+ name: item.props.name,
361
+ title: item.props.label,
362
+ render: value => value
363
+ })), {
364
+ name: '__options__',
365
+ type: 'options',
366
+ title: removeText || '',
367
+ width: 100,
368
+ render: value => value
369
+ }];
370
+ };
344
371
  const TableList = withLocale(p => {
345
372
  const _useIntl = reactIntl.useIntl(),
346
373
  formatMessage = _useIntl.formatMessage;
@@ -365,10 +392,39 @@ const TableList = withLocale(p => {
365
392
  removeText = _Object$assign.removeText,
366
393
  title = _Object$assign.title,
367
394
  bordered = _Object$assign.bordered,
395
+ _Object$assign$render = _Object$assign.renderMobile,
396
+ renderMobile = _Object$assign$render === void 0 ? true : _Object$assign$render,
397
+ list = _Object$assign.list,
368
398
  others = _objectWithoutPropertiesLoose(_Object$assign, _excluded$4);
369
- return /*#__PURE__*/jsxRuntime.jsx(reactFormPlus.TableList, _extends({}, others, {
370
- headerRender: (children, _ref) => {
371
- let width = _ref.width;
399
+ const isMobile = responsiveUtils.useIsMobile();
400
+ const useMobileRender = TableView.isRenderMobileActive(renderMobile, isMobile);
401
+ const resolvedRenderMobile = react.useMemo(() => TableView.resolveRenderMobile(renderMobile), [renderMobile]);
402
+ const columns = react.useMemo(() => buildColumns(list, {
403
+ removeText
404
+ }), [list, removeText]);
405
+ const renderPart = (children, _ref2, extraClassName) => {
406
+ let onAdd = _ref2.onAdd,
407
+ allowAdd = _ref2.allowAdd;
408
+ return /*#__PURE__*/jsxRuntime.jsx(InfoPage__default["default"].Part, {
409
+ title: title,
410
+ className: classnames(className, style['table-list'], extraClassName),
411
+ bordered: bordered,
412
+ extra: /*#__PURE__*/jsxRuntime.jsx("div", {
413
+ className: style['extra-container'],
414
+ children: allowAdd && /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
415
+ className: style['extra-btn'],
416
+ icon: addIcon,
417
+ onClick: onAdd,
418
+ children: addText
419
+ })
420
+ }),
421
+ children: children
422
+ });
423
+ };
424
+ const renderDesktop = () => /*#__PURE__*/jsxRuntime.jsx(reactFormPlus.TableList, _extends({}, others, {
425
+ list: list,
426
+ headerRender: (children, _ref3) => {
427
+ let width = _ref3.width;
372
428
  return /*#__PURE__*/jsxRuntime.jsxs(antd.Row, {
373
429
  className: style['table-list-header'],
374
430
  wrap: false,
@@ -380,9 +436,9 @@ const TableList = withLocale(p => {
380
436
  })]
381
437
  });
382
438
  },
383
- headerItemRender: (children, _ref2) => {
384
- let id = _ref2.id,
385
- isReq = _ref2.isReq;
439
+ headerItemRender: (children, _ref4) => {
440
+ let id = _ref4.id,
441
+ isReq = _ref4.isReq;
386
442
  return /*#__PURE__*/jsxRuntime.jsx(antd.Col, {
387
443
  className: classnames({
388
444
  [style['is-req']]: isReq
@@ -397,11 +453,11 @@ const TableList = withLocale(p => {
397
453
  children: children
398
454
  });
399
455
  },
400
- listRender: (children, _ref3) => {
401
- let id = _ref3.id,
402
- width = _ref3.width,
403
- onRemove = _ref3.onRemove,
404
- allowRemove = _ref3.allowRemove;
456
+ listRender: (children, _ref5) => {
457
+ let id = _ref5.id,
458
+ width = _ref5.width,
459
+ onRemove = _ref5.onRemove,
460
+ allowRemove = _ref5.allowRemove;
405
461
  return /*#__PURE__*/jsxRuntime.jsxs(antd.Row, {
406
462
  wrap: false,
407
463
  align: "top",
@@ -421,29 +477,67 @@ const TableList = withLocale(p => {
421
477
  })]
422
478
  }, id);
423
479
  },
424
- children: (children, _ref4) => {
425
- let onAdd = _ref4.onAdd,
426
- allowAdd = _ref4.allowAdd;
427
- return /*#__PURE__*/jsxRuntime.jsx(InfoPage__default["default"].Part, {
428
- title: title,
429
- className: classnames(className, style['table-list']),
430
- bordered: bordered,
431
- extra: /*#__PURE__*/jsxRuntime.jsx("div", {
432
- className: style['extra-container'],
433
- children: allowAdd && /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
434
- className: style['extra-btn'],
435
- icon: addIcon,
436
- onClick: onAdd,
437
- children: addText
480
+ children: (children, controls) => renderPart(/*#__PURE__*/jsxRuntime.jsx("div", {
481
+ className: style['table-list-inner'],
482
+ children: children
483
+ }), controls)
484
+ }));
485
+ const renderMobileList = () => /*#__PURE__*/jsxRuntime.jsx(reactFormPlus.SubList, _extends({}, others, {
486
+ list: list,
487
+ listRender: _ref6 => {
488
+ let id = _ref6.id,
489
+ rowList = _ref6.list,
490
+ groupArgs = _ref6.groupArgs,
491
+ onRemove = _ref6.onRemove,
492
+ allowRemove = _ref6.allowRemove;
493
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
494
+ className: classnames(style['table-list-mobile-card'], 'info-page-table-mobile-card'),
495
+ children: [/*#__PURE__*/jsxRuntime.jsx("div", {
496
+ className: style['table-list-mobile-card-body'],
497
+ children: /*#__PURE__*/jsxRuntime.jsx(reactFormPlus.FieldList, {
498
+ list: rowList,
499
+ groupArgs: groupArgs,
500
+ itemRender: (children, targetProps) => {
501
+ if (targetProps.hidden) {
502
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
503
+ style: {
504
+ display: 'none'
505
+ },
506
+ children: children
507
+ });
508
+ }
509
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
510
+ className: style['table-list-mobile-field'],
511
+ children: children
512
+ });
513
+ }
438
514
  })
439
- }),
440
- children: /*#__PURE__*/jsxRuntime.jsx("div", {
441
- className: style['table-list-inner'],
442
- children: children
443
- })
444
- });
445
- }
515
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
516
+ className: style['table-list-mobile-actions'],
517
+ children: /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
518
+ type: "link",
519
+ onClick: onRemove,
520
+ danger: true,
521
+ disabled: !allowRemove,
522
+ icon: removeIcon,
523
+ children: removeText
524
+ })
525
+ })]
526
+ }, id);
527
+ },
528
+ children: (children, controls) => renderPart(/*#__PURE__*/jsxRuntime.jsx("div", {
529
+ className: classnames(style['table-list-mobile-list'], 'info-page-table-mobile-card-list'),
530
+ children: children
531
+ }), controls, style['is-mobile'])
446
532
  }));
533
+ return /*#__PURE__*/jsxRuntime.jsx(TableView__default["default"], {
534
+ columns: columns,
535
+ dataSource: [],
536
+ empty: null,
537
+ className: style['table-list-view'],
538
+ renderMobile: useMobileRender ? typeof resolvedRenderMobile === 'function' ? resolvedRenderMobile : () => renderMobileList() : false,
539
+ render: () => renderDesktop()
540
+ });
447
541
  });
448
542
 
449
543
  const _excluded$3 = ["className", "children"];
@@ -3870,6 +3964,7 @@ const FormSteps = p => {
3870
3964
  onComplete = _Object$assign.onComplete,
3871
3965
  children = _Object$assign.children,
3872
3966
  stepProps = _objectWithoutPropertiesLoose(_Object$assign, _excluded$1);
3967
+ const isMobile = responsiveUtils.useIsMobile();
3873
3968
  const _useControlValue = useControlValue__default["default"](stepProps, {
3874
3969
  value: 'current',
3875
3970
  defaultValue: 'defaultCurrent'
@@ -3897,12 +3992,20 @@ const FormSteps = p => {
3897
3992
  }
3898
3993
  return currentItem;
3899
3994
  });
3995
+
3996
+ // 移动端强制垂直布局,不允许水平 Steps
3997
+ const stepsDirection = isMobile ? 'vertical' : stepProps.direction || stepProps.orientation;
3998
+ const isVerticalSteps = stepsDirection === 'vertical';
3900
3999
  const inner = /*#__PURE__*/jsxRuntime.jsxs(antd.Flex, {
3901
4000
  className: className,
3902
- vertical: stepProps.direction !== 'vertical' || stepProps.orientation !== 'vertical',
4001
+ vertical: !isVerticalSteps || isMobile,
3903
4002
  gap: 24,
3904
- children: [/*#__PURE__*/jsxRuntime.jsx(antd.Steps, _extends({}, omit_1(stepProps, ['current', 'defaultCurrent', 'onChange']), {
3905
- className: classnames(stepsClassName, style['steps']),
4003
+ children: [/*#__PURE__*/jsxRuntime.jsx(antd.Steps, _extends({}, omit_1(stepProps, ['current', 'defaultCurrent', 'onChange', 'direction', 'orientation']), {
4004
+ direction: stepsDirection,
4005
+ orientation: stepsDirection,
4006
+ className: classnames(stepsClassName, style['steps'], {
4007
+ [style['steps-vertical']]: isVerticalSteps
4008
+ }),
3906
4009
  items: stepItems,
3907
4010
  current: currentStep
3908
4011
  })), /*#__PURE__*/jsxRuntime.jsx("div", {