@zgfe/business-lib 1.0.24-alpha.0 → 1.0.24-alpha.1

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,2 @@
1
+ declare const _default: () => JSX.Element;
2
+ export default _default;
@@ -0,0 +1,75 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ 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."); }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import React, { useState } from 'react';
14
+ import { BizDnd } from '@zgfe/business-lib';
15
+ import styles from './styles/index.less';
16
+ import _ from 'lodash';
17
+ export default (function () {
18
+ var _useState = useState([{
19
+ id: 0,
20
+ label: 'a'
21
+ }, {
22
+ id: 1,
23
+ label: 'b'
24
+ }, {
25
+ id: 2,
26
+ label: 'c'
27
+ }, {
28
+ id: 3,
29
+ label: '添加',
30
+ disabled: true,
31
+ isAdd: true
32
+ }]),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ list = _useState2[0],
35
+ setList = _useState2[1];
36
+
37
+ function onAdd() {
38
+ setList(function (list) {
39
+ var res = [];
40
+ list.forEach(function (item, i) {
41
+ if (item.isAdd) {
42
+ res.push({
43
+ id: Math.random(),
44
+ label: String.fromCharCode(97 + i)
45
+ });
46
+ }
47
+
48
+ res.push(_.cloneDeep(item));
49
+ });
50
+ return res;
51
+ });
52
+ }
53
+
54
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(BizDnd, {
55
+ className: styles.container,
56
+ store: list,
57
+ keyField: "id",
58
+ itemClassName: styles.item,
59
+ tempClassName: styles.temp,
60
+ draddingClassName: styles.doing,
61
+ itemRender: function itemRender(data) {
62
+ if (data.isAdd) return /*#__PURE__*/React.createElement("div", {
63
+ key: data.id,
64
+ className: styles.add,
65
+ onClick: onAdd
66
+ }, "+");
67
+ return /*#__PURE__*/React.createElement("div", {
68
+ key: data.id
69
+ }, data.label);
70
+ },
71
+ onChange: function onChange(list) {
72
+ console.log('排序后数据', list);
73
+ }
74
+ }));
75
+ });
@@ -0,0 +1,2 @@
1
+ declare const _default: () => JSX.Element;
2
+ export default _default;
@@ -0,0 +1,77 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ 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."); }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import React, { useState } from 'react';
14
+ import { BizDnd } from '@zgfe/business-lib';
15
+ import styles from './styles/index.less';
16
+ import _ from 'lodash';
17
+ export default (function () {
18
+ var _useState = useState([{
19
+ id: 0,
20
+ label: 'a'
21
+ }, {
22
+ id: 1,
23
+ label: 'b'
24
+ }, {
25
+ id: 2,
26
+ label: 'c'
27
+ }, {
28
+ id: 3,
29
+ label: '添加',
30
+ disabled: true,
31
+ isAdd: true
32
+ }]),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ list = _useState2[0],
35
+ setList = _useState2[1];
36
+
37
+ function onAdd() {
38
+ setList(function (list) {
39
+ var res = [];
40
+ list.forEach(function (item, i) {
41
+ if (item.isAdd) {
42
+ res.push({
43
+ id: Math.random(),
44
+ label: String.fromCharCode(97 + i)
45
+ });
46
+ }
47
+
48
+ res.push(_.cloneDeep(item));
49
+ });
50
+ return res;
51
+ });
52
+ }
53
+
54
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(BizDnd, {
55
+ className: styles.container,
56
+ store: list,
57
+ keyField: "id",
58
+ itemClassName: styles.item,
59
+ tempClassName: styles.temp,
60
+ draddingClassName: styles.doing,
61
+ handleClassName: styles.handle,
62
+ handle: /*#__PURE__*/React.createElement("div", null, "\u64CD\u4F5C\u680F"),
63
+ itemRender: function itemRender(data, _index, handle) {
64
+ if (data.isAdd) return /*#__PURE__*/React.createElement("div", {
65
+ key: data.id,
66
+ className: styles.add,
67
+ onClick: onAdd
68
+ }, "+");
69
+ return /*#__PURE__*/React.createElement("div", {
70
+ key: data.id
71
+ }, handle, data.label);
72
+ },
73
+ onChange: function onChange(list) {
74
+ console.log('排序后数据', list);
75
+ }
76
+ }));
77
+ });
@@ -17,6 +17,7 @@ export default (function () {
17
17
  keyField: "id",
18
18
  itemClassName: styles.item,
19
19
  tempClassName: styles.temp,
20
+ draddingClassName: styles.doing,
20
21
  itemRender: function itemRender(data) {
21
22
  return /*#__PURE__*/React.createElement("div", {
22
23
  key: data.id
@@ -9,18 +9,26 @@
9
9
  width: 300px;
10
10
  height: 150px;
11
11
  margin: @margin-md;
12
+ line-height: 150px;
12
13
  text-align: center;
14
+ vertical-align: top;
13
15
  background: @background-color-base;
14
16
  border-radius: @border-radius-normal;
15
17
  }
16
18
  .temp {
17
19
  display: inline-block;
18
- width: 300px;
19
- height: 150px;
20
- margin: @margin-md;
21
- text-align: center;
22
- vertical-align: top;
23
- background: @background-color-base;
24
20
  border: 2px dashed @primary-color;
25
21
  border-radius: @border-radius-normal;
26
22
  }
23
+ .add {
24
+ font-size: 48px;
25
+ cursor: pointer;
26
+ }
27
+ .doing {
28
+ border: 1px solid @warning-color;
29
+ }
30
+ .handle {
31
+ display: block;
32
+ height: 25px;
33
+ background: @info-color;
34
+ }
package/es/dnd/index.js CHANGED
@@ -12,7 +12,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
12
12
 
13
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
14
 
15
- import React, { useState } from 'react';
15
+ import React, { useEffect, useState } from 'react';
16
16
  import BizDndItem from './item';
17
17
  import _ from 'lodash';
18
18
  import './styles/index.less';
@@ -23,7 +23,10 @@ var BizDnd = function BizDnd(props) {
23
23
  keyField = props.keyField,
24
24
  className = props.className,
25
25
  itemClassName = props.itemClassName,
26
- tempClassName = props.tempClassName;
26
+ tempClassName = props.tempClassName,
27
+ draddingClassName = props.draddingClassName,
28
+ handle = props.handle,
29
+ handleClassName = props.handleClassName;
27
30
 
28
31
  var _useState = useState(),
29
32
  _useState2 = _slicedToArray(_useState, 2),
@@ -39,6 +42,10 @@ var BizDnd = function BizDnd(props) {
39
42
  renderData = _useState6[0],
40
43
  setRenderData = _useState6[1];
41
44
 
45
+ useEffect(function () {
46
+ setRenderData(_.cloneDeep(store));
47
+ }, [store]);
48
+
42
49
  function onMouseOver(data) {
43
50
  setHoverTarget(data);
44
51
  setHoverTarget(data);
@@ -68,6 +75,9 @@ var BizDnd = function BizDnd(props) {
68
75
  setCurrent(undefined);
69
76
  setRenderData(function (list) {
70
77
  var res = [];
78
+ if (!list.find(function (item) {
79
+ return item.isTemp;
80
+ })) return list;
71
81
 
72
82
  for (var i = 0; i < list.length; i++) {
73
83
  var item = _.cloneDeep(list[i]);
@@ -90,11 +100,15 @@ var BizDnd = function BizDnd(props) {
90
100
 
91
101
  return /*#__PURE__*/React.createElement("div", {
92
102
  className: "".concat(classPrefix, "-container ").concat(className)
93
- }, renderData.map(function (data) {
103
+ }, renderData.map(function (data, i) {
94
104
  return /*#__PURE__*/React.createElement(BizDndItem, {
95
105
  data: data,
96
106
  key: data[keyField],
97
107
  className: "".concat(itemClassName, " ").concat(data.isTemp ? tempClassName : ''),
108
+ draddingClassName: draddingClassName,
109
+ index: i,
110
+ handle: handle,
111
+ handleClassName: handleClassName,
98
112
  render: props.itemRender,
99
113
  onDragging: setCurrent,
100
114
  onMouseOver: onMouseOver,
package/es/dnd/item.js CHANGED
@@ -1,4 +1,16 @@
1
- import React, { useRef } from 'react';
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+
3
+ 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."); }
4
+
5
+ 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); }
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
+
13
+ import React, { useRef, useState } from 'react';
2
14
  import { classPrefix } from '.';
3
15
  var preMouse = {
4
16
  x: 0,
@@ -14,7 +26,14 @@ var style = {
14
26
  var BizDndItem = function BizDndItem(props) {
15
27
  var className = props.className,
16
28
  render = props.render,
17
- data = props.data;
29
+ data = props.data,
30
+ draddingClassName = props.draddingClassName;
31
+
32
+ var _useState = useState(false),
33
+ _useState2 = _slicedToArray(_useState, 2),
34
+ isDragging = _useState2[0],
35
+ setIsDragging = _useState2[1];
36
+
18
37
  var ref = useRef();
19
38
 
20
39
  function onMousedown(e) {
@@ -38,6 +57,7 @@ var BizDndItem = function BizDndItem(props) {
38
57
  x: e.clientX,
39
58
  y: e.clientY
40
59
  };
60
+ setIsDragging(true);
41
61
  }
42
62
  }
43
63
 
@@ -55,6 +75,7 @@ var BizDndItem = function BizDndItem(props) {
55
75
  }
56
76
 
57
77
  function onMouseUp() {
78
+ setIsDragging(false);
58
79
  window.removeEventListener('mousemove', onMouseMove);
59
80
  window.removeEventListener('mouseup', onMouseUp);
60
81
  style = {
@@ -80,14 +101,39 @@ var BizDndItem = function BizDndItem(props) {
80
101
  className: "".concat(classPrefix, "-item ").concat(className),
81
102
  ref: ref
82
103
  });
104
+
105
+ if (props.data.disabled) {
106
+ return /*#__PURE__*/React.createElement("div", {
107
+ className: "".concat(classPrefix, "-item disable ").concat(className),
108
+ ref: ref,
109
+ onMouseOver: function onMouseOver() {
110
+ if (props.onMouseOver) props.onMouseOver(data);
111
+ }
112
+ }, render(data, props.index));
113
+ }
114
+
115
+ if (props.handle) {
116
+ var handle = /*#__PURE__*/React.createElement("span", {
117
+ className: "".concat(classPrefix, "-handle ").concat(props.handleClassName),
118
+ onMouseDown: onMousedown
119
+ }, props.handle);
120
+ return /*#__PURE__*/React.createElement("div", {
121
+ className: "".concat(classPrefix, "-item handle ").concat(className, " ").concat(isDragging ? draddingClassName : ''),
122
+ onMouseOver: function onMouseOver() {
123
+ if (props.onMouseOver) props.onMouseOver(data);
124
+ },
125
+ ref: ref
126
+ }, render(data, props.index, handle));
127
+ }
128
+
83
129
  return /*#__PURE__*/React.createElement("div", {
84
- className: "".concat(classPrefix, "-item ").concat(className),
130
+ className: "".concat(classPrefix, "-item ").concat(className, " ").concat(isDragging ? draddingClassName : ''),
85
131
  onMouseDown: onMousedown,
86
132
  onMouseOver: function onMouseOver() {
87
133
  if (props.onMouseOver) props.onMouseOver(data);
88
134
  },
89
135
  ref: ref
90
- }, render(data));
136
+ }, render(data, props.index));
91
137
  };
92
138
 
93
139
  export default BizDndItem;
@@ -3,6 +3,15 @@
3
3
  &-item {
4
4
  cursor: move;
5
5
  user-select: none;
6
+ &.disable,
7
+ &.handle {
8
+ cursor: inherit;
9
+ user-select: inherit;
10
+ }
11
+ }
12
+ &-handle {
13
+ cursor: move;
14
+ user-select: none;
6
15
  }
7
16
  &-temp {
8
17
  pointer-events: none;
package/es/dnd/types.d.ts CHANGED
@@ -1,23 +1,32 @@
1
1
  /// <reference types="react" />
2
2
  export declare namespace DndTypes {
3
+ type Data = Record<string, any> & {
4
+ isTemp?: boolean;
5
+ disabled?: boolean;
6
+ };
3
7
  interface ContainerProps {
4
8
  className?: string;
5
9
  itemClassName?: string;
6
- itemRender: (data: Record<string, any>) => React.ReactNode;
7
10
  draddingClassName?: string;
8
11
  tempClassName?: string;
9
- tempRender?: (data: Record<string, any>) => React.ReactNode;
12
+ handle?: React.ReactNode;
13
+ handleClassName?: string;
14
+ tempRender?: (data: Data) => React.ReactNode;
15
+ itemRender: (data: Data, index: number, handle?: React.ReactNode) => React.ReactNode;
10
16
  keyField: string;
11
- store: Record<string, any>[];
12
- onChange?: (list: Record<string, any>[]) => void;
17
+ store: Data[];
18
+ onChange?: (list: Data[]) => void;
13
19
  }
14
20
  interface ItemProps {
15
21
  className?: string;
16
- data: Record<string, any>;
17
- render: (data: Record<string, any>) => React.ReactNode;
22
+ data: Data;
23
+ index: number;
24
+ render: (data: Data, index: number, handle?: React.ReactNode) => React.ReactNode;
25
+ handle?: React.ReactNode;
26
+ handleClassName?: string;
18
27
  draddingClassName?: string;
19
- onDragging?: (data: Record<string, any>) => void;
20
- onMouseOver?: (data: Record<string, any>) => void;
21
- onDropEnd?: (data: Record<string, any>) => void;
28
+ onDragging?: (data: Data) => void;
29
+ onMouseOver?: (data: Data) => void;
30
+ onDropEnd?: (data: Data) => void;
22
31
  }
23
32
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zgfe/business-lib",
3
- "version": "1.0.24-alpha.0",
3
+ "version": "1.0.24-alpha.1",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",
@@ -58,5 +58,5 @@
58
58
  "react": "^16.12.0 || ^17.0.0",
59
59
  "yorkie": "^2.0.0"
60
60
  },
61
- "gitHead": "f2e1ee079aaeda5f20f3db5b51c0dbd5dd893871"
61
+ "gitHead": "d11c81c871b7a2bb1bec63974a638665c506f4ce"
62
62
  }