linkmore-design 1.1.26 → 1.1.27-alpha.0

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.
Files changed (105) hide show
  1. package/dist/LmEditTable/DndContainer.d.ts +6 -3
  2. package/dist/LmEditTable/EditTable.d.ts +10 -5
  3. package/dist/LmEditTable/components/DraggableContainer.d.ts +10 -0
  4. package/dist/LmEditTable/components/QuickOpetate.d.ts +12 -0
  5. package/dist/LmEditTable/components/bottomOpetateComponent.d.ts +13 -0
  6. package/dist/LmEditTable/components/index.d.ts +16 -0
  7. package/dist/LmEditTable/hooks/useForkRef.d.ts +2 -0
  8. package/dist/LmEditTable/rowSort/DndContainerRow.d.ts +10 -0
  9. package/dist/LmEditTable/sortableItem.d.ts +3 -2
  10. package/dist/LmEditTable/util.d.ts +7 -0
  11. package/dist/LmEditTable/virtual/VirtualRow.d.ts +7 -0
  12. package/dist/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  13. package/dist/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  14. package/dist/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  15. package/dist/LmEditTable/virtual/context.d.ts +13 -0
  16. package/dist/LmEditTable/virtual/index.d.ts +4 -0
  17. package/dist/index.d.ts +1 -2
  18. package/dist/index.umd.js +1140 -529
  19. package/dist/index.umd.min.js +8 -8
  20. package/dist/variables.css +65 -0
  21. package/es/InputNumber/index.js +7 -9
  22. package/es/LmEditTable/DndContainer.d.ts +6 -3
  23. package/es/LmEditTable/DndContainer.js +70 -10
  24. package/es/LmEditTable/DragHandle.js +1 -1
  25. package/es/LmEditTable/EditTable.d.ts +10 -5
  26. package/es/LmEditTable/EditTable.js +352 -360
  27. package/es/LmEditTable/components/DraggableContainer.d.ts +10 -0
  28. package/es/LmEditTable/components/DraggableContainer.js +39 -0
  29. package/es/LmEditTable/components/QuickOpetate.d.ts +12 -0
  30. package/es/LmEditTable/components/QuickOpetate.js +82 -0
  31. package/es/LmEditTable/components/bottomOpetateComponent.d.ts +13 -0
  32. package/es/LmEditTable/components/bottomOpetateComponent.js +23 -0
  33. package/es/LmEditTable/components/index.d.ts +16 -0
  34. package/es/LmEditTable/components/index.js +7 -0
  35. package/es/LmEditTable/hooks/useForkRef.d.ts +2 -0
  36. package/es/LmEditTable/hooks/useForkRef.js +22 -0
  37. package/es/LmEditTable/rowSort/DndContainerRow.d.ts +10 -0
  38. package/es/LmEditTable/rowSort/DndContainerRow.js +81 -0
  39. package/es/LmEditTable/sortableItem.d.ts +3 -2
  40. package/es/LmEditTable/sortableItem.js +16 -4
  41. package/es/LmEditTable/sortableItemCol.js +40 -10
  42. package/es/LmEditTable/style/index.css +65 -0
  43. package/es/LmEditTable/style/variables.css +65 -0
  44. package/es/LmEditTable/util.d.ts +7 -0
  45. package/es/LmEditTable/util.js +92 -7
  46. package/es/LmEditTable/virtual/VirtualRow.d.ts +7 -0
  47. package/es/LmEditTable/virtual/VirtualRow.js +62 -0
  48. package/es/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  49. package/es/LmEditTable/virtual/VirtualRowBack.js +100 -0
  50. package/es/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  51. package/es/LmEditTable/virtual/VirtualTable.js +54 -0
  52. package/es/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  53. package/es/LmEditTable/virtual/VirtualWrapper.js +60 -0
  54. package/es/LmEditTable/virtual/context.d.ts +13 -0
  55. package/es/LmEditTable/virtual/context.js +54 -0
  56. package/es/LmEditTable/virtual/index.d.ts +4 -0
  57. package/es/LmEditTable/virtual/index.js +4 -0
  58. package/es/LmFilter/filterFns/index.js +7 -2
  59. package/es/LmTable/virTual/VirtualRow.js +12 -14
  60. package/es/hooks/useEvent/index.js +1 -1
  61. package/es/index.d.ts +1 -2
  62. package/es/styles/variables.css +65 -0
  63. package/lib/InputNumber/index.js +9 -9
  64. package/lib/LmEditTable/DndContainer.d.ts +6 -3
  65. package/lib/LmEditTable/DndContainer.js +74 -9
  66. package/lib/LmEditTable/DragHandle.js +1 -1
  67. package/lib/LmEditTable/EditTable.d.ts +10 -5
  68. package/lib/LmEditTable/EditTable.js +349 -357
  69. package/lib/LmEditTable/components/DraggableContainer.d.ts +10 -0
  70. package/lib/LmEditTable/components/DraggableContainer.js +52 -0
  71. package/lib/LmEditTable/components/QuickOpetate.d.ts +12 -0
  72. package/lib/LmEditTable/components/QuickOpetate.js +96 -0
  73. package/lib/LmEditTable/components/bottomOpetateComponent.d.ts +13 -0
  74. package/lib/LmEditTable/components/bottomOpetateComponent.js +34 -0
  75. package/lib/LmEditTable/components/index.d.ts +16 -0
  76. package/lib/LmEditTable/components/index.js +37 -0
  77. package/lib/LmEditTable/hooks/useForkRef.d.ts +2 -0
  78. package/lib/LmEditTable/hooks/useForkRef.js +29 -0
  79. package/lib/LmEditTable/rowSort/DndContainerRow.d.ts +10 -0
  80. package/lib/LmEditTable/rowSort/DndContainerRow.js +99 -0
  81. package/lib/LmEditTable/sortableItem.d.ts +3 -2
  82. package/lib/LmEditTable/sortableItem.js +19 -5
  83. package/lib/LmEditTable/sortableItemCol.js +37 -8
  84. package/lib/LmEditTable/style/index.css +65 -0
  85. package/lib/LmEditTable/style/variables.css +65 -0
  86. package/lib/LmEditTable/util.d.ts +7 -0
  87. package/lib/LmEditTable/util.js +97 -6
  88. package/lib/LmEditTable/virtual/VirtualRow.d.ts +7 -0
  89. package/lib/LmEditTable/virtual/VirtualRow.js +78 -0
  90. package/lib/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  91. package/lib/LmEditTable/virtual/VirtualRowBack.js +113 -0
  92. package/lib/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  93. package/lib/LmEditTable/virtual/VirtualTable.js +71 -0
  94. package/lib/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  95. package/lib/LmEditTable/virtual/VirtualWrapper.js +73 -0
  96. package/lib/LmEditTable/virtual/context.d.ts +13 -0
  97. package/lib/LmEditTable/virtual/context.js +64 -0
  98. package/lib/LmEditTable/virtual/index.d.ts +4 -0
  99. package/lib/LmEditTable/virtual/index.js +31 -0
  100. package/lib/LmFilter/filterFns/index.js +7 -2
  101. package/lib/LmTable/virTual/VirtualRow.js +12 -14
  102. package/lib/hooks/useEvent/index.js +1 -1
  103. package/lib/index.d.ts +1 -2
  104. package/lib/styles/variables.css +65 -0
  105. package/package.json +7 -9
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useStore = exports.useRealive = exports.TableContext = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ // =============== context ============== //
11
+ var TableContext = /*#__PURE__*/(0, _react.createContext)({
12
+ state: null,
13
+ dispatch: null,
14
+ instance: {}
15
+ });
16
+ exports.TableContext = TableContext;
17
+
18
+ var useStore = function useStore() {
19
+ return (0, _react.useContext)(TableContext);
20
+ };
21
+
22
+ exports.useStore = useStore;
23
+ var initialState = {
24
+ // 行高度
25
+ rowHeight: 0,
26
+ columnsLen: 0,
27
+ // 总行数
28
+ totalLen: 0
29
+ };
30
+
31
+ var reducer = function reducer(state, action) {
32
+ var totalLen = action.totalLen,
33
+ columnsLen = action.columnsLen,
34
+ rowHeight = action.rowHeight;
35
+
36
+ switch (action.type) {
37
+ // 数据数量
38
+ case 'changeTotalLen':
39
+ return Object.assign(Object.assign({}, state), {
40
+ totalLen: totalLen
41
+ });
42
+ // 列数量
43
+
44
+ case 'changeColumnsLen':
45
+ return Object.assign(Object.assign({}, state), {
46
+ columnsLen: columnsLen
47
+ });
48
+ // 初始化行高度
49
+
50
+ case 'initHeight':
51
+ return Object.assign(Object.assign({}, state), {
52
+ rowHeight: rowHeight
53
+ });
54
+
55
+ default:
56
+ throw new Error();
57
+ }
58
+ };
59
+
60
+ var useRealive = function useRealive() {
61
+ return (0, _react.useReducer)(reducer, initialState);
62
+ };
63
+
64
+ exports.useRealive = useRealive;
@@ -0,0 +1,4 @@
1
+ import VirtualTable from './VirtualTable';
2
+ import VirtualWrapper from './VirtualWrapper';
3
+ import VirtualRow from './VirtualRow';
4
+ export { VirtualTable, VirtualWrapper, VirtualRow };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "VirtualRow", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _VirtualRow.default;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "VirtualTable", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _VirtualTable.default;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "VirtualWrapper", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _VirtualWrapper.default;
24
+ }
25
+ });
26
+
27
+ var _VirtualTable = _interopRequireDefault(require("./VirtualTable"));
28
+
29
+ var _VirtualWrapper = _interopRequireDefault(require("./VirtualWrapper"));
30
+
31
+ var _VirtualRow = _interopRequireDefault(require("./VirtualRow"));
@@ -188,7 +188,12 @@ var useCoreOptions = function useCoreOptions(_ref) {
188
188
  fieldType: (item === null || item === void 0 ? void 0 : item.valueType) || 'string',
189
189
  type: item.type,
190
190
  value: Array.isArray(itemValue) ? itemValue : [itemValue],
191
- operator: (item === null || item === void 0 ? void 0 : item.operator) || obj[cur].mode === 'and' ? 'equal' : 'contains'
191
+
192
+ /**
193
+ * and 等同于逻辑关系contains: 选中的值包含所有值
194
+ * or 等同于逻辑关系in: 选中的值存在于所有值之中
195
+ */
196
+ operator: obj[cur].mode === 'and' ? 'contains' : 'in'
192
197
  }]);
193
198
  }
194
199
 
@@ -359,7 +364,7 @@ var useCoreOptions = function useCoreOptions(_ref) {
359
364
  fieldType: (item === null || item === void 0 ? void 0 : item.valueType) || 'string',
360
365
  type: item.type,
361
366
  value: Array.isArray(itemValue) ? itemValue : [itemValue],
362
- operator: complexFilter[cur].mode === 'and' ? 'equal' : 'contains'
367
+ operator: complexFilter[cur].mode === 'and' ? 'contains' : 'in'
363
368
  };
364
369
  }
365
370
 
@@ -36,12 +36,16 @@ var VirtualRow = /*#__PURE__*/_react.default.memo(function (_a, ref) {
36
36
  var rowHeight = state.rowHeight,
37
37
  totalLen = state.totalLen;
38
38
  var virtualItems = instance.columnVirtual.virtualItems;
39
- var trRef = (0, _react.useRef)(null); // 列长度
39
+ var trRef = (0, _react.useRef)(null); // 非固定列长度
40
40
 
41
41
  var columnsLen = (0, _react.useMemo)(function () {
42
42
  var _a;
43
43
 
44
- return (_a = children === null || children === void 0 ? void 0 : children.length) !== null && _a !== void 0 ? _a : 0;
44
+ return (_a = children === null || children === void 0 ? void 0 : children.filter(function (v) {
45
+ var _a, _b;
46
+
47
+ return typeof ((_a = v.props) === null || _a === void 0 ? void 0 : _a.fixLeft) !== 'number' && typeof ((_b = v.props) === null || _b === void 0 ? void 0 : _b.fixRight) !== 'number';
48
+ }).length) !== null && _a !== void 0 ? _a : 0; // return children?.length ?? 0
45
49
  }, [children]);
46
50
  (0, _react.useEffect)(function () {
47
51
  if (state.columnsLen !== columnsLen) {
@@ -88,26 +92,20 @@ var VirtualRow = /*#__PURE__*/_react.default.memo(function (_a, ref) {
88
92
  fixedRight: [],
89
93
  columns: []
90
94
  });
91
- }, [children]); // 截取非固定列
92
-
93
- var resetVirtualItems = (0, _react.useMemo)(function () {
94
- var fixedLeft = fixedColumns.fixedLeft,
95
- columns = fixedColumns.columns;
96
- return virtualItems.slice(fixedLeft.length, fixedLeft.length + columns.length);
97
- }, [fixedColumns, virtualItems]); // 横线单元格合并
95
+ }, [children]); // 横线单元格合并
98
96
 
99
97
  var colSpan = (0, _react.useMemo)(function () {
100
98
  var _a;
101
99
 
102
- var startIndex = ((_a = resetVirtualItems === null || resetVirtualItems === void 0 ? void 0 : resetVirtualItems[0]) === null || _a === void 0 ? void 0 : _a.index) || 0;
103
- return startIndex ? startIndex - fixedColumns.fixedLeft.length : startIndex;
104
- }, [fixedColumns, resetVirtualItems]);
100
+ return (_a = virtualItems[0]) === null || _a === void 0 ? void 0 : _a.index;
101
+ }, [virtualItems]);
102
+ console.log('virtualItems', virtualItems);
105
103
  return /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, resetProps, {
106
104
  ref: Object.prototype.hasOwnProperty.call(ref, 'current') ? ref : trRef
107
105
  }), fixedColumns.fixedLeft, !!colSpan && /*#__PURE__*/_react.default.createElement("td", {
108
106
  colSpan: colSpan
109
- }), resetVirtualItems.map(function (virtualCol) {
110
- return children[virtualCol.index];
107
+ }), virtualItems.map(function (virtualCol) {
108
+ return fixedColumns.columns[virtualCol.index];
111
109
  }), fixedColumns.fixedRight);
112
110
  });
113
111
 
@@ -17,7 +17,7 @@ function useEvent(handler) {
17
17
 
18
18
  return (0, _react.useCallback)(function () {
19
19
  var fn = handlerRef.current;
20
- return fn.apply(void 0, arguments);
20
+ return fn === null || fn === void 0 ? void 0 : fn.apply(void 0, arguments);
21
21
  }, []);
22
22
  }
23
23
 
package/lib/index.d.ts CHANGED
@@ -51,10 +51,9 @@ export type { TooltipProps } from './Tooltip';
51
51
  export { default as Form } from './Form';
52
52
  export { default as Spin } from './Spin';
53
53
  export { default as LmEditTable } from './LmEditTable';
54
- export type { CountdownHandle, TLmEditTable } from './LmEditTable/EditTable';
54
+ export type { TLmEditTable, CountdownHandle } from './LmEditTable/EditTable';
55
55
  export { default as List } from './List';
56
56
  export { default as LMQuickMenu } from './QuickMenu';
57
- export type { IMenuData, IQuickMenuProps } from './QuickMenu';
58
57
  export { default as DatePicker } from './DatePicker';
59
58
  export type { DatePickerProps, MonthPickerProps, WeekPickerProps, RangePickerProps } from './DatePicker';
60
59
  export { default as Popover } from './Popover';
@@ -9738,6 +9738,9 @@ p {
9738
9738
  width: 32px;
9739
9739
  padding: 0 8px;
9740
9740
  }
9741
+ .lm_editTable_warpper .ant-table-thead > tr > th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before {
9742
+ height: 100%;
9743
+ }
9741
9744
  .lm_editTable_warpper .lm_editTable_cell {
9742
9745
  cursor: pointer;
9743
9746
  height: 40px;
@@ -9749,6 +9752,21 @@ p {
9749
9752
  letter-spacing: 0px;
9750
9753
  color: var(--color-85);
9751
9754
  }
9755
+ .lm_editTable_warpper .lm_custom_cell_td {
9756
+ position: relative;
9757
+ }
9758
+ .lm_editTable_warpper .lm_custom_cell_td.ant-table-cell-with-append {
9759
+ display: flex;
9760
+ flex-direction: row;
9761
+ flex-wrap: nowrap;
9762
+ }
9763
+ .lm_editTable_warpper .lm_custom_cell_td.ant-table-cell-with-append .ant-table-row-expand-icon {
9764
+ margin-right: 8px;
9765
+ flex: none;
9766
+ }
9767
+ .lm_editTable_warpper .lm_custom_cell_td > .ant-form-item {
9768
+ flex: 1 1 auto;
9769
+ }
9752
9770
  .lm_editTable_warpper .lm_custom_cell_td .ant-form-item-control-input-content {
9753
9771
  display: flex;
9754
9772
  flex-direction: row;
@@ -9760,6 +9778,32 @@ p {
9760
9778
  .lm_editTable_warpper .lm_custom_cell_td .ant-table-row-expand-icon {
9761
9779
  margin-top: 6px;
9762
9780
  }
9781
+ .lm_editTable_warpper .lm_custom_cell_td .quick_copy_warp {
9782
+ font-size: 8px;
9783
+ position: absolute;
9784
+ left: calc(50% - 10px);
9785
+ z-index: 100;
9786
+ width: 20px;
9787
+ height: 10px;
9788
+ background-color: var(--color-6);
9789
+ display: flex;
9790
+ align-items: center;
9791
+ justify-content: center;
9792
+ color: #D8D8D8;
9793
+ }
9794
+ .lm_editTable_warpper .lm_custom_cell_td .quick_copy_warp:hover {
9795
+ cursor: pointer;
9796
+ background-color: var(--primary-color);
9797
+ color: #fff;
9798
+ }
9799
+ .lm_editTable_warpper .lm_custom_cell_td .quick_copy_up {
9800
+ top: -4px;
9801
+ left: calc(50% - 10px);
9802
+ }
9803
+ .lm_editTable_warpper .lm_custom_cell_td .quick_copy_down {
9804
+ bottom: -6px;
9805
+ left: calc(50% - 10px);
9806
+ }
9763
9807
  .lm_editTable_warpper .lm_editTable_cell_edit {
9764
9808
  height: 40px;
9765
9809
  padding: 8px 8px !important;
@@ -9771,6 +9815,9 @@ p {
9771
9815
  .lm_editTable_warpper .lm_table_quickcopy .anticon {
9772
9816
  color: var(--text-color);
9773
9817
  }
9818
+ .lm_editTable_warpper .ant-table-body {
9819
+ scroll-behavior: smooth;
9820
+ }
9774
9821
  .lm_editTable_warpper .icon_drag {
9775
9822
  color: var(--tip-text-color);
9776
9823
  }
@@ -9787,6 +9834,9 @@ p {
9787
9834
  .lm_editTable_warpper .ant-table-thead > tr > th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before {
9788
9835
  background-color: rgba(0, 0, 0, 0.06) !important;
9789
9836
  }
9837
+ .lm_editTable_warpper .ant-table-thead > tr > th:not(:last-child):not(.ant-table-selection-column):not(.ant-table-row-expand-icon-cell):not([colspan])::before {
9838
+ background-color: rgba(0, 0, 0, 0.06) !important;
9839
+ }
9790
9840
  .lm_editTable_warpper .ant-picker {
9791
9841
  height: 24px !important;
9792
9842
  padding: 2px 8px;
@@ -9830,6 +9880,21 @@ p {
9830
9880
  .lm_table_append_add_popover .ant-popover-inner-content ul li:hover {
9831
9881
  background-color: var(--color-15);
9832
9882
  }
9883
+ .lm_edittable_col_sort_item {
9884
+ overflow: hidden;
9885
+ }
9886
+ .lm_editable_col_drag {
9887
+ background-color: #fff;
9888
+ font-size: 12px;
9889
+ display: flex;
9890
+ box-sizing: border-box;
9891
+ transform: translate3d(var(--translate-x, 0), var(--translate-y, 0), 0) scaleX(var(--scale-x, 1)) scaleY(var(--scale-y, 1));
9892
+ transform-origin: 0 0;
9893
+ touch-action: manipulation;
9894
+ scale: 1.05;
9895
+ box-shadow: 0 0 0 calc(1px / var(--scale-x, 1)) rgba(63, 63, 68, 0.05), 0 1px calc(3px / var(--scale-x, 1)) 0 rgba(34, 33, 81, 0.15);
9896
+ padding: 8px;
9897
+ }
9833
9898
  .lm_filter_wrapper .lm_filter_container .lm_filter {
9834
9899
  display: flex;
9835
9900
  flex-wrap: wrap;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linkmore-design",
3
- "version": "1.1.26",
3
+ "version": "1.1.27-alpha.0",
4
4
  "author": {
5
5
  "name": "nowthen",
6
6
  "email": "rnlvwyx@gmail.com"
@@ -68,7 +68,6 @@
68
68
  "@dnd-kit/core": "^5.0.3",
69
69
  "@dnd-kit/modifiers": "^5.0.0",
70
70
  "@dnd-kit/sortable": "^6.0.1",
71
- "@react-hook/resize-observer": "^1.2.6",
72
71
  "@typescript-eslint/eslint-plugin": "^5.28.0",
73
72
  "@typescript-eslint/parser": "^5.28.0",
74
73
  "ahooks": "^3.6.2",
@@ -77,6 +76,8 @@
77
76
  "antd-img-crop": "^4.2.5",
78
77
  "axios": "^0.21.0",
79
78
  "classnames": "^2.3.1",
79
+ "conventional-changelog": "^3.1.25",
80
+ "conventional-changelog-cli": "^2.2.2",
80
81
  "dayjs": "^1.9.7",
81
82
  "echarts": "^5.4.0",
82
83
  "hex-to-rgba": "^2.0.1",
@@ -95,12 +96,11 @@
95
96
  "react-virtualized-auto-sizer": "^1.0.6",
96
97
  "react-window": "^1.8.6",
97
98
  "readline-sync": "^1.4.10",
98
- "scrollama": "^3.2.0",
99
- "use-resize-observer": "^9.0.2"
99
+ "scrollama": "^3.2.0"
100
100
  },
101
101
  "peerDependencies": {
102
- "react": ">= 17.0.1",
103
- "react-dom": ">= 17.0.1"
102
+ "react": "17.0.1",
103
+ "react-dom": "17.0.1"
104
104
  },
105
105
  "browserslist": [
106
106
  "> 1%",
@@ -141,8 +141,6 @@
141
141
  "react-copy-to-clipboard": "^5.1.0",
142
142
  "stylelint": "^13.8.0",
143
143
  "stylelint-config-prettier": "^8.0.2",
144
- "stylelint-config-standard": "^20.0.0",
145
- "conventional-changelog": "^3.1.25",
146
- "conventional-changelog-cli": "^2.2.2"
144
+ "stylelint-config-standard": "^20.0.0"
147
145
  }
148
146
  }