@lemon-fe/components 0.0.8 → 0.0.9

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.
@@ -0,0 +1,6 @@
1
+ import type { ReactNode } from 'react';
2
+ interface Props {
3
+ children?: ReactNode;
4
+ }
5
+ declare function FormHorizontal(props: Props): JSX.Element;
6
+ export default FormHorizontal;
@@ -0,0 +1,35 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ 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; }
6
+
7
+ import React, { useContext, useMemo } from 'react';
8
+ import { FormContext } from 'antd/lib/form/context';
9
+ import { PREFIX_CLS } from '../constants';
10
+
11
+ function FormHorizontal(props) {
12
+ var prefixCls = PREFIX_CLS;
13
+ var context = useContext(FormContext);
14
+ var myCtxt = useMemo(function () {
15
+ return _objectSpread(_objectSpread({}, context), {}, {
16
+ labelAlign: 'right',
17
+ labelCol: {
18
+ flex: '0 0 160px'
19
+ },
20
+ wrapperCol: {
21
+ md: 12,
22
+ lg: 10,
23
+ xl: 8
24
+ },
25
+ colon: false
26
+ });
27
+ }, [context]);
28
+ return /*#__PURE__*/React.createElement(FormContext.Provider, {
29
+ value: myCtxt
30
+ }, /*#__PURE__*/React.createElement("div", _objectSpread({
31
+ className: "".concat(prefixCls, "-form-horzontal")
32
+ }, props)));
33
+ }
34
+
35
+ export default FormHorizontal;
@@ -0,0 +1,14 @@
1
+ .@{prefixCls}-form-horzontal {
2
+ .ant-form-item:last-child {
3
+ margin-bottom: 0;
4
+ }
5
+
6
+ .ant-form-item-label > label.ant-form-item-no-colon::after {
7
+ margin: 0 16px 0 0;
8
+ }
9
+
10
+ .ant-form-item-required::before {
11
+ position: absolute;
12
+ left: -11px;
13
+ }
14
+ }
@@ -0,0 +1,15 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { RowProps } from 'antd';
3
+ interface Props extends RowProps {
4
+ children?: ReactNode;
5
+ prefixCls?: string;
6
+ }
7
+ declare function FormInline(props: Props): JSX.Element;
8
+ declare namespace FormInline {
9
+ var Col: typeof FormCol;
10
+ }
11
+ declare function FormCol(props: {
12
+ colSpan?: number;
13
+ children?: ReactNode;
14
+ }): JSX.Element;
15
+ export default FormInline;
@@ -0,0 +1,90 @@
1
+ var _excluded = ["prefixCls", "className"],
2
+ _excluded2 = ["colSpan"];
3
+
4
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
+
6
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
+
8
+ 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; }
9
+
10
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
11
+
12
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
13
+
14
+ import React, { useContext, useMemo } from 'react';
15
+ import { Row, Col } from 'antd';
16
+ import { FormContext } from 'antd/lib/form/context';
17
+ import { PREFIX_CLS } from '../constants';
18
+
19
+ function FormInline(props) {
20
+ var _props$prefixCls = props.prefixCls,
21
+ prefixCls = _props$prefixCls === void 0 ? PREFIX_CLS : _props$prefixCls,
22
+ className = props.className,
23
+ restProps = _objectWithoutProperties(props, _excluded);
24
+
25
+ var context = useContext(FormContext);
26
+ var myCtxt = useMemo(function () {
27
+ return _objectSpread(_objectSpread({}, context), {}, {
28
+ labelAlign: 'right',
29
+ labelCol: {
30
+ flex: '0 0 60px'
31
+ },
32
+ colon: false
33
+ });
34
+ }, [context]);
35
+ return /*#__PURE__*/React.createElement(FormContext.Provider, {
36
+ value: myCtxt
37
+ }, /*#__PURE__*/React.createElement(Row, _objectSpread({
38
+ gutter: [40, 10],
39
+ className: "".concat(prefixCls, "-form-inline")
40
+ }, restProps)));
41
+ }
42
+
43
+ function FormCol(props) {
44
+ var colSpan = props.colSpan,
45
+ restProps = _objectWithoutProperties(props, _excluded2);
46
+
47
+ var getColSpan = function getColSpan() {
48
+ var col = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
49
+
50
+ switch (col) {
51
+ case 4:
52
+ return {
53
+ span: 24
54
+ };
55
+
56
+ case 3:
57
+ return {
58
+ xl: 18,
59
+ lg: 24,
60
+ md: 24,
61
+ sm: 24,
62
+ xs: 24
63
+ };
64
+
65
+ case 2:
66
+ return {
67
+ xl: 12,
68
+ lg: 24,
69
+ md: 24,
70
+ sm: 24,
71
+ xs: 24
72
+ };
73
+
74
+ case 1:
75
+ default:
76
+ return {
77
+ xl: 6,
78
+ lg: 12,
79
+ md: 12,
80
+ sm: 24,
81
+ xs: 24
82
+ };
83
+ }
84
+ };
85
+
86
+ return /*#__PURE__*/React.createElement(Col, _objectSpread(_objectSpread({}, getColSpan(colSpan)), restProps));
87
+ }
88
+
89
+ FormInline.Col = FormCol;
90
+ export default FormInline;
@@ -0,0 +1,26 @@
1
+ .@{prefixCls}-form-inline {
2
+ max-width: 1337px;
3
+
4
+ .ant-form-item {
5
+ margin-bottom: 0;
6
+
7
+ & > .ant-form-item-label > label {
8
+ line-height: 14px;
9
+ white-space: normal;
10
+ vertical-align: top;
11
+ }
12
+
13
+ & > .ant-form-item-control {
14
+ flex-basis: 0;
15
+ }
16
+ }
17
+
18
+ .ant-form-item-no-colon {
19
+ font-size: 12px;
20
+ }
21
+
22
+ .ant-form-item-required::before {
23
+ position: absolute;
24
+ left: -11px;
25
+ }
26
+ }
@@ -0,0 +1,6 @@
1
+ import React, { RefObject } from 'react';
2
+ import { FormTableRef, FormTableProps } from './typings';
3
+ declare const _default: <RecordType>(props: FormTableProps<RecordType> & {
4
+ ref?: React.RefObject<FormTableRef<RecordType>> | undefined;
5
+ }) => JSX.Element;
6
+ export default _default;
@@ -0,0 +1,159 @@
1
+ var _excluded = ["form", "columns", "name", "rowKey", "rules"];
2
+
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+
5
+ 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."); }
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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+
13
+ 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."); }
14
+
15
+ 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); }
16
+
17
+ 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; }
18
+
19
+ 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; }
20
+
21
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
+
23
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
+
25
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
26
+
27
+ 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; }
28
+
29
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30
+
31
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
32
+
33
+ import React, { cloneElement, createElement, forwardRef, isValidElement, useEffect, useImperativeHandle, useRef, useState } from 'react';
34
+ import { Form, Input, InputNumber, Checkbox, Select } from 'antd';
35
+ import { flatten, get } from 'lodash';
36
+ import Table from '../BaseTable';
37
+ import { PREFIX_CLS } from '../constants';
38
+ var components = new Map([['input', Input], ['select', Select], ['input-number', InputNumber], ['checkbox', Checkbox]]);
39
+
40
+ function FormTable(props, ref) {
41
+ var form = props.form,
42
+ columnsProp = props.columns,
43
+ name = props.name,
44
+ rowKey = props.rowKey,
45
+ rules = props.rules,
46
+ extraPorps = _objectWithoutProperties(props, _excluded);
47
+
48
+ var formatColumns = function formatColumns(cols) {
49
+ return cols.map(function (col) {
50
+ var mCol = _objectSpread({}, col);
51
+
52
+ var path = col.dataIndex || col.key;
53
+
54
+ mCol.render = function (_, field, index) {
55
+ var record = form.getFieldValue(flatten([name, field.name]));
56
+ var namePath = [field.name];
57
+ var val;
58
+
59
+ if (path) {
60
+ namePath.push(path);
61
+ val = get(record, path);
62
+ }
63
+
64
+ if (col.editable) {
65
+ var _col$editable = col.editable,
66
+ formItemProps = _col$editable.formItemProps,
67
+ formItemType = _col$editable.formItemType,
68
+ render = _col$editable.render,
69
+ extraProps = _col$editable.extraProps;
70
+ var child = null;
71
+
72
+ if (render) {
73
+ child = render(val, record, index);
74
+ } else if (typeof formItemType === 'string') {
75
+ var comp = components.get(formItemType);
76
+ child = comp ? /*#__PURE__*/createElement(comp, extraProps) : null;
77
+ } else if (typeof formItemType === 'function') {
78
+ child = formItemType;
79
+ } else if ( /*#__PURE__*/isValidElement(formItemType)) {
80
+ child = /*#__PURE__*/cloneElement(formItemType, extraProps);
81
+ }
82
+
83
+ return /*#__PURE__*/React.createElement(Form.Item, _objectSpread({
84
+ name: flatten(namePath)
85
+ }, formItemProps), child);
86
+ }
87
+
88
+ if (col.render) {
89
+ return col.render(val, record, index, field, {
90
+ remove: storedFields.current.remove
91
+ });
92
+ }
93
+
94
+ return val;
95
+ };
96
+
97
+ return mCol;
98
+ });
99
+ };
100
+
101
+ var _useState = useState([]),
102
+ _useState2 = _slicedToArray(_useState, 2),
103
+ columns = _useState2[0],
104
+ setColumns = _useState2[1];
105
+
106
+ var storedFields = useRef({
107
+ fields: null,
108
+ value: null,
109
+ remove: function remove(name) {
110
+ console.error("error remove ".concat(name));
111
+ }
112
+ });
113
+ useImperativeHandle(ref, function () {
114
+ return {
115
+ add: function add() {
116
+ var prev = form.getFieldValue(name);
117
+
118
+ for (var _len = arguments.length, records = new Array(_len), _key = 0; _key < _len; _key++) {
119
+ records[_key] = arguments[_key];
120
+ }
121
+
122
+ form.setFields([{
123
+ name: name,
124
+ value: [].concat(_toConsumableArray(prev), records)
125
+ }]);
126
+ },
127
+ remove: function remove(name) {
128
+ storedFields.current.remove(name);
129
+ }
130
+ };
131
+ });
132
+ useEffect(function () {
133
+ setColumns(formatColumns(columnsProp));
134
+ }, [columnsProp]);
135
+ return /*#__PURE__*/React.createElement(Form.List, {
136
+ name: name,
137
+ rules: rules
138
+ }, function (fields, _ref) {
139
+ var remove = _ref.remove;
140
+ var value = form.getFieldValue(name);
141
+ storedFields.current.remove = remove;
142
+
143
+ if (storedFields.current.value !== value) {
144
+ storedFields.current.value = value;
145
+ storedFields.current.fields = fields;
146
+ }
147
+
148
+ return /*#__PURE__*/React.createElement(Table, _objectSpread(_objectSpread({
149
+ pagination: false
150
+ }, extraPorps), {}, {
151
+ rowKey: "key",
152
+ className: "".concat(PREFIX_CLS, "-form-table"),
153
+ dataSource: storedFields.current.fields || [],
154
+ columns: columns
155
+ }));
156
+ });
157
+ }
158
+
159
+ export default /*#__PURE__*/forwardRef(FormTable);
@@ -0,0 +1,11 @@
1
+ .@{prefixCls}-form-table {
2
+ td {
3
+ .ant-form-item {
4
+ margin-bottom: 0;
5
+ }
6
+
7
+ .ant-form-item-explain {
8
+ display: none;
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,38 @@
1
+ import { ReactElement } from 'react';
2
+ import { FormInstance, FormItemProps } from 'antd';
3
+ import { FormListFieldData, FormListOperation, FormListProps } from 'antd/lib/form/FormList';
4
+ import { RenderedCell } from 'rc-table/lib/interface';
5
+ import { BaseTableProps, ColumnType } from '../BaseTable/typings';
6
+
7
+ export interface FormTableColumnType<T> extends Omit<ColumnType<T>, 'render'> {
8
+ editable?: {
9
+ formItemType?: string | FormItemProps<T>['children'];
10
+ formItemProps?: FormItemProps<T>;
11
+ extraProps?: any;
12
+ render?: (value: any, record: T, index: number) => ReactElement | null;
13
+ };
14
+ render?: (
15
+ value: any,
16
+ record: T,
17
+ index: number,
18
+ field: FormListFieldData,
19
+ operation: Pick<FormListOperation, 'remove'>,
20
+ ) => React.ReactNode | RenderedCell<T>;
21
+ }
22
+
23
+ export interface FormTableRef<RecordType = unknown> {
24
+ add: (...records: RecordType[]) => void;
25
+ remove: (fieldKey: number | number[]) => void;
26
+ }
27
+
28
+ export interface FormTableProps<RecordType>
29
+ extends Omit<
30
+ BaseTableProps<FormListFieldData>,
31
+ 'columns' | 'rowKey' | 'render' | 'fetch' | 'dataSource'
32
+ > {
33
+ form: FormInstance;
34
+ name: FormListProps['name'];
35
+ rules?: FormListProps['rules'];
36
+ columns: FormTableColumnType<RecordType>[];
37
+ rowKey: string;
38
+ }
package/es/index.d.ts CHANGED
@@ -19,4 +19,7 @@ export { default as Icons } from './Icons';
19
19
  export { default as FormLayout } from './FormLayout';
20
20
  export { default as MainFramework } from './MainFramework';
21
21
  export { default as init } from './init';
22
+ export { default as FormHorizontal } from './FormHorizontal';
23
+ export { default as FormInline } from './FormInline';
24
+ export { default as FormTable } from './FormTable';
22
25
  export * from './constants';
package/es/index.js CHANGED
@@ -15,4 +15,7 @@ export { default as Icons } from './Icons';
15
15
  export { default as FormLayout } from './FormLayout';
16
16
  export { default as MainFramework } from './MainFramework';
17
17
  export { default as init } from './init';
18
+ export { default as FormHorizontal } from './FormHorizontal';
19
+ export { default as FormInline } from './FormInline';
20
+ export { default as FormTable } from './FormTable';
18
21
  export * from './constants';
package/es/index.less CHANGED
@@ -15,6 +15,9 @@
15
15
  @import './EditableTable/index.less';
16
16
  @import './PageLoading/index.less';
17
17
  @import './MainFramework/index.less';
18
+ @import './FormHorizontal/index.less';
19
+ @import './FormInline//index.less';
20
+ @import './FormTable/index.less';
18
21
 
19
22
  @blue-base: #2357df;
20
23
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemon-fe/components",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "description": "> TODO: description",
5
5
  "author": "鲁盛杰 <lusj@cnlemon.net>",
6
6
  "homepage": "",
@@ -16,7 +16,7 @@
16
16
  "registry": "https://registry.npmjs.org"
17
17
  },
18
18
  "dependencies": {
19
- "@lemon-fe/hooks": "^0.0.8",
19
+ "@lemon-fe/hooks": "^0.0.9",
20
20
  "antd": "^4.17.0",
21
21
  "classnames": "^2.2.6",
22
22
  "lodash": "^4.17.21",
@@ -39,5 +39,5 @@
39
39
  "@types/lodash": "^4.14.179",
40
40
  "@types/react-resizable": "^1.7.4"
41
41
  },
42
- "gitHead": "cd8c8e854c16f5605657b3b92fb2deecd1a116e8"
42
+ "gitHead": "ef85c77ac935ece72378356f0cfa316d8d675cea"
43
43
  }