easy3wui 4.0.35 → 4.0.37

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,504 @@
1
+ 'use strict';
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _upload = require('antd/lib/upload');
6
+
7
+ var _upload2 = _interopRequireDefault(_upload);
8
+
9
+ var _popover = require('antd/lib/popover');
10
+
11
+ var _popover2 = _interopRequireDefault(_popover);
12
+
13
+ var _button = require('antd/lib/button');
14
+
15
+ var _button2 = _interopRequireDefault(_button);
16
+
17
+ var _modal = require('antd/lib/modal');
18
+
19
+ var _modal2 = _interopRequireDefault(_modal);
20
+
21
+ var _extends2 = require('babel-runtime/helpers/extends');
22
+
23
+ var _extends3 = _interopRequireDefault(_extends2);
24
+
25
+ var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
26
+
27
+ var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28
+
29
+ var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
30
+
31
+ var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
32
+
33
+ var _inherits2 = require('babel-runtime/helpers/inherits');
34
+
35
+ var _inherits3 = _interopRequireDefault(_inherits2);
36
+
37
+ require('antd/lib/upload/style');
38
+
39
+ require('antd/lib/popover/style');
40
+
41
+ require('antd/lib/button/style');
42
+
43
+ require('antd/lib/modal/style');
44
+
45
+ var _react = require('react');
46
+
47
+ var _react2 = _interopRequireDefault(_react);
48
+
49
+ var _propTypes = require('prop-types');
50
+
51
+ var _propTypes2 = _interopRequireDefault(_propTypes);
52
+
53
+ var _icons = require('@ant-design/icons');
54
+
55
+ var _compatible = require('@ant-design/compatible');
56
+
57
+ require('@ant-design/compatible/assets/index.css');
58
+
59
+ var _antd = require('antd');
60
+
61
+ var _comonConfig = require('comonConfigPath/comonConfig');
62
+
63
+ var _Easy3wGetCookie = require('./../Easy3wGetCookie');
64
+
65
+ var _Easy3wGetCookie2 = _interopRequireDefault(_Easy3wGetCookie);
66
+
67
+ var _Easy3wDownLoad = require('./../Easy3wDownLoad');
68
+
69
+ var _Easy3wDownLoad2 = _interopRequireDefault(_Easy3wDownLoad);
70
+
71
+ var _Easy3wAESEncrypt = require('./../Easy3wAESEncrypt');
72
+
73
+ var _Easy3wAESEncrypt2 = _interopRequireDefault(_Easy3wAESEncrypt);
74
+
75
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
76
+
77
+ var formItemStyle = {
78
+ marginBottom: 6
79
+ };
80
+
81
+ var Easy3wUploadM = function (_Component) {
82
+ (0, _inherits3['default'])(Easy3wUploadM, _Component);
83
+
84
+ function Easy3wUploadM() {
85
+ var _temp, _this, _ret;
86
+
87
+ (0, _classCallCheck3['default'])(this, Easy3wUploadM);
88
+
89
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
90
+ args[_key] = arguments[_key];
91
+ }
92
+
93
+ return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {
94
+ fileList: [{}]
95
+ // 预览
96
+ }, _this.onPreview = function (file) {
97
+ var objPreviewFileNew = (0, _extends3['default'])({}, _comonConfig.objPreviewFile, _this.props.objPreviewFile);
98
+ var previewFileUrl = objPreviewFileNew.previewFileUrl,
99
+ previewFileType = objPreviewFileNew.previewFileType;
100
+ var uid = file.uid,
101
+ url = file.url,
102
+ name = file.name;
103
+
104
+ var fileNameArr = name.toLowerCase().split('.');
105
+ var fileType = fileNameArr[fileNameArr.length - 1];
106
+ if (previewFileType.indexOf(fileType) >= 0) {
107
+ var src = _this.urlDeal(previewFileUrl, uid);
108
+ window.open(src, '_blank');
109
+ } else {
110
+ window.open(url);
111
+ }
112
+ }, _this.urlDeal = function (urlDownloadFile, uid) {
113
+ var retUrl = '';
114
+ if (uid !== '' && _comonConfig.aFlag && (_comonConfig.aFlag === '1' || _comonConfig.aFlag === '2')) {
115
+ var authToken = (0, _Easy3wGetCookie2['default'])('userToken') || 'E3WSAFEAPPQWEFGHYI7I483S';
116
+ var nowStr = _.now();
117
+ var encUrl = (0, _Easy3wAESEncrypt2['default'])(uid + '@#' + nowStr + '@#' + authToken, _comonConfig.a, _comonConfig.b);
118
+ return '' + urlDownloadFile + encUrl;
119
+ } else {
120
+ retUrl = '' + urlDownloadFile + uid;
121
+ return retUrl;
122
+ }
123
+ }, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
124
+ }
125
+ // url处理
126
+
127
+
128
+ Easy3wUploadM.prototype.render = function render() {
129
+ var _this2 = this;
130
+
131
+ var _props = this.props,
132
+ urlUpFileService = _props.urlUpFileService,
133
+ urlDownloadFile = _props.urlDownloadFile,
134
+ uploadName = _props.uploadName,
135
+ sendData = _props.sendData,
136
+ listType = _props.listType,
137
+ accept = _props.accept,
138
+ limitSize = _props.limitSize,
139
+ required = _props.required,
140
+ initialValue = _props.initialValue,
141
+ help = _props.help,
142
+ buttonName = _props.buttonName,
143
+ form = _props.form,
144
+ isRead = _props.isRead,
145
+ label = _props.label,
146
+ className = _props.className,
147
+ labelCol = _props.labelCol,
148
+ wrapperCol = _props.wrapperCol,
149
+ extend = _props.extend,
150
+ extendBack = _props.extendBack,
151
+ uploadDoneCallback = _props.uploadDoneCallback,
152
+ removeCallback = _props.removeCallback,
153
+ downloadAllFlag = _props.downloadAllFlag,
154
+ fileViewFlag = _props.fileViewFlag;
155
+ var warnMessage = this.props.warnMessage;
156
+
157
+ var iniVal = [];
158
+ var allivaule = '';
159
+ if (initialValue) {
160
+ iniVal = initialValue.map(function (obj, index) {
161
+ var uid = obj.uid,
162
+ name = obj.name;
163
+
164
+ if (allivaule === '') {
165
+ allivaule = uid;
166
+ } else {
167
+ allivaule = allivaule + ',' + uid;
168
+ }
169
+ var url = _this2.urlDeal(urlDownloadFile, uid);
170
+ return { uid: uid, name: name, url: url };
171
+ });
172
+ }
173
+ if (!warnMessage) {
174
+ warnMessage = help;
175
+ }
176
+ var getFieldDecorator = form.getFieldDecorator;
177
+
178
+ var extendShowFlag = false;
179
+ var extendBackShowFlag = false;
180
+ if (extend) {
181
+ extendShowFlag = true;
182
+ }
183
+ if (extendBack) {
184
+ extendBackShowFlag = true;
185
+ }
186
+ var ENCFlag = '0';
187
+ var authToken = (0, _Easy3wGetCookie2['default'])('userToken') || 'E3WSAFEAPPQWEFGHYI7I483S';
188
+ var upProps = {
189
+ name: uploadName,
190
+ action: urlUpFileService,
191
+ listType: listType,
192
+ showUploadList: true,
193
+ headers: {
194
+ authorization: 'authorization-text'
195
+ },
196
+ accept: accept,
197
+ data: {
198
+ sendTime: new Date().getTime(),
199
+ appType: '01',
200
+ authToken: authToken,
201
+ ENCFlag: ENCFlag,
202
+ sign: '2959f1aea8db0f7fbba61f0f8474d0ef',
203
+ data: sendData
204
+ }
205
+ };
206
+ if (isRead) {
207
+ upProps = (0, _extends3['default'])({}, upProps, { showUploadList: { showPreviewIcon: true, showRemoveIcon: false } });
208
+ }
209
+ var objPreviewFileNew = (0, _extends3['default'])({}, _comonConfig.objPreviewFile, this.props.objPreviewFile);
210
+ var previewFileFlag = objPreviewFileNew.previewFileFlag;
211
+
212
+ if (previewFileFlag && fileViewFlag !== false) {
213
+ upProps.onPreview = this.onPreview;
214
+ }
215
+ var beforeUpload = function beforeUpload(file) {
216
+ // 限制上传大小
217
+ var fileSize = file.size / 1024 / 1024;
218
+ var isLimitSize = fileSize < limitSize;
219
+ var fileTypePass = true;
220
+ var name = file.name;
221
+
222
+ var fileNameArr = name.toLowerCase().split('.');
223
+ var fileType = fileNameArr[fileNameArr.length - 1];
224
+ var acceptDefault = '.rplib,.xls,.doc,.jpg,.pdf,.png,.zip,.bmp,.rar,.txt,.docx,.ico,.bid,.xlsx,.jpeg,.json,.xml,.ebid,.dwg,.pptx,.xmind,.xps,.crx,.7z,.ppt,.svg,.pdm,.xlsm,.vsd,.gif,.tif,.docm,.csv,.ttf,.wps,.psd,.mp4,.tiff,.rtf,.tlb,.xlsb';
225
+ if (name.length > 100) {
226
+ _modal2['default'].info({
227
+ style: { top: '38%' },
228
+ okText: '知道了',
229
+ content: '文件名称至多100个字符'
230
+ });
231
+ return false;
232
+ }
233
+ if (accept && accept.length > 0) {
234
+ acceptDefault = accept;
235
+ }
236
+ if (acceptDefault.indexOf(fileType) < 0) {
237
+ fileTypePass = false;
238
+ }
239
+ if (!fileTypePass) {
240
+ _modal2['default'].error({
241
+ style: { top: '38%' },
242
+ content: '\u4E0D\u652F\u6301' + fileType + '\u7C7B\u578B\u7684\u6587\u4EF6!'
243
+ });
244
+ return false;
245
+ }
246
+ if (!isLimitSize) {
247
+ _modal2['default'].error({
248
+ style: { top: '38%' },
249
+ content: '\u9644\u4EF6\u5FC5\u987B\u5C0F\u4E8E' + limitSize + 'MB!'
250
+ });
251
+ return false;
252
+ } else if (fileSize === 0) {
253
+ _modal2['default'].error({
254
+ style: { top: '38%' },
255
+ content: '附件必须大于0MB!'
256
+ });
257
+ return false;
258
+ } else {
259
+ return true;
260
+ }
261
+ };
262
+ var handleRemove = function handleRemove(file) {
263
+ if (removeCallback) {
264
+ removeCallback(uploadName, file);
265
+ }
266
+ return true;
267
+ };
268
+ var handleFileChange = function handleFileChange(e) {
269
+ var fileList = e.fileList;
270
+ // 移除大小不符、类型不符的文件
271
+
272
+ fileList = fileList.filter(function (f1) {
273
+ var size = f1.size,
274
+ name = f1.name;
275
+
276
+ if (size >= 0) {
277
+ var correctSizeFlag = size > 0 && size / 1024 / 1024 < limitSize;
278
+ var correctTypeFlag = true;
279
+ var fileNameArr = name.toLowerCase().split('.');
280
+ var fileType = fileNameArr[fileNameArr.length - 1];
281
+ var acceptDefault = '.xls,.doc,.jpg,.pdf,.png,.zip,.bmp,.rar,.txt,.docx,.ico,.bid,.xlsx,.jpeg,.json,.xml,.ebid,.dwg,.pptx,.xmind,.xps,.crx,.7z,.ppt,.svg,.pdm,.xlsm,.vsd,.gif,.tif,.docm,.csv,.ttf,.wps,.psd,.mp4,.tiff,.rtf,.tlb,.xlsb';
282
+ if (name.length > 100) {
283
+ return false;
284
+ }
285
+ if (accept && accept.length > 0) {
286
+ acceptDefault = accept;
287
+ }
288
+ if (acceptDefault.indexOf(fileType) < 0) {
289
+ correctTypeFlag = false;
290
+ }
291
+ if (!correctSizeFlag || !correctTypeFlag) {
292
+ return false;
293
+ } else {
294
+ return true;
295
+ }
296
+ } else {
297
+ return true;
298
+ }
299
+ });
300
+ // 2. read from response and show file link
301
+ fileList = fileList.map(function (f2) {
302
+ var nFile = f2;
303
+ if (nFile.response && nFile.response.data) {
304
+ var id = nFile.response.data.fileId;
305
+ var url = '' + urlDownloadFile + id;
306
+ url = _this2.urlDeal(urlDownloadFile, id);
307
+ nFile.uid = id;
308
+ nFile.url = url;
309
+ }
310
+ return nFile;
311
+ });
312
+ // 3. filter successfully uploaded files according to response from server
313
+ fileList = fileList.filter(function (file) {
314
+ var status = file.status,
315
+ name = file.name;
316
+
317
+ if (status === 'error') {
318
+ _modal2['default'].error({
319
+ style: { top: '38%' },
320
+ content: '\u9644\u4EF6' + name + '\u4E0A\u4F20\u5931\u8D25!'
321
+ });
322
+ return false; // 上传失败
323
+ }
324
+ if (file.response) {
325
+ if (file.response.rspCode === '0000') {
326
+ if (uploadDoneCallback) {
327
+ uploadDoneCallback(uploadName, fileList, file);
328
+ }
329
+ return true;
330
+ }
331
+ if (file.response.rspMsg) {
332
+ _modal2['default'].error({
333
+ style: { top: '38%' },
334
+ content: file.response.rspMsg
335
+ });
336
+ } else {
337
+ _modal2['default'].error({
338
+ style: { top: '38%' },
339
+ content: '\u9644\u4EF6' + name + '\u4E0A\u4F20\u5931\u8D25!'
340
+ });
341
+ }
342
+ return false;
343
+ // return file.response.rspCode === '0000';// 上传成功
344
+ }
345
+ return true;
346
+ });
347
+ allivaule = '';
348
+ iniVal = fileList.map(function (obj) {
349
+ var uid = obj.uid;
350
+
351
+ if (allivaule === '') {
352
+ allivaule = uid;
353
+ } else {
354
+ allivaule = allivaule + ',' + uid;
355
+ }
356
+ });
357
+ _this2.setState({ fileList: fileList });
358
+ return fileList;
359
+ };
360
+ var checkFile = function checkFile(rule, value, callback) {
361
+ if (required && (!value || value.length === 0)) {
362
+ callback();
363
+ return;
364
+ }
365
+ if (value) {
366
+ value = value.slice(-1);
367
+ value = value.filter(function (file) {
368
+ if (file.response && file.response.rspCode === '0000') {
369
+ callback();
370
+ return true;
371
+ }
372
+ if (file.status === 'uploading') {
373
+ callback(' ');
374
+ return false;
375
+ }
376
+ return true;
377
+ });
378
+
379
+ if (required && value.length > 0) {
380
+ callback();
381
+ return;
382
+ }
383
+ }
384
+ callback();
385
+ };
386
+ var showFlag = initialValue && initialValue.length > 1 || this.state.fileList.length > 1;
387
+ return isRead ? _react2['default'].createElement(
388
+ _compatible.Form.Item,
389
+ {
390
+ label: label,
391
+ className: className,
392
+ labelCol: labelCol,
393
+ wrapperCol: wrapperCol,
394
+ style: formItemStyle
395
+ },
396
+ extendShowFlag ? extend : '',
397
+ getFieldDecorator('' + uploadName, {})(_react2['default'].createElement(_Easy3wDownLoad2['default'], {
398
+ pdfViewFlag: true,
399
+ imgVisible: true,
400
+ urlDownloadFile: urlDownloadFile,
401
+ downloadArr: initialValue,
402
+ objPreviewFile: objPreviewFileNew
403
+ })),
404
+ extendBackShowFlag ? extendBack : ''
405
+ ) : _react2['default'].createElement(
406
+ _compatible.Form.Item,
407
+ {
408
+ label: label,
409
+ className: className,
410
+ labelCol: labelCol,
411
+ wrapperCol: wrapperCol,
412
+ style: formItemStyle
413
+ },
414
+ extendShowFlag ? extend : '',
415
+ getFieldDecorator('' + uploadName, {
416
+ initialValue: iniVal || undefined,
417
+ getValueFromEvent: handleFileChange,
418
+ valuePropName: 'fileList',
419
+ rules: [{ validator: checkFile }, { required: required, message: warnMessage }]
420
+ })(_react2['default'].createElement(
421
+ _upload2['default'],
422
+ (0, _extends3['default'])({
423
+ beforeUpload: beforeUpload
424
+ }, upProps, {
425
+ fileList: this.state.fileList,
426
+ onRemove: handleRemove,
427
+ multiple: true
428
+ }),
429
+ isRead ? '' : _react2['default'].createElement(
430
+ _popover2['default'],
431
+ {
432
+ placement: 'top',
433
+ content: _react2['default'].createElement(
434
+ 'div',
435
+ { style: { padding: '4px 0' } },
436
+ _react2['default'].createElement(
437
+ 'span',
438
+ { style: { color: '#5468b2', width: 200, height: 300 } },
439
+ help
440
+ )
441
+ ),
442
+ arrowPointAtCenter: true,
443
+ style: { width: 200, height: 'auto' }
444
+ },
445
+ _react2['default'].createElement(
446
+ _button2['default'],
447
+ null,
448
+ _react2['default'].createElement(_icons.UploadOutlined, null),
449
+ ' ',
450
+ buttonName
451
+ )
452
+ )
453
+ )),
454
+ extendBackShowFlag ? extendBack : '',
455
+ /* 附件多于1个有下载全部 */
456
+ showFlag ? downloadAllFlag && allivaule !== '' ? _react2['default'].createElement(
457
+ _button2['default'],
458
+ { icon: _react2['default'].createElement(_icons.DownloadOutlined, null), size: 'normal', target: '_blank', href: this.urlDeal(urlDownloadFile, allivaule) },
459
+ '\u4E0B\u8F7D\u5168\u90E8\u9644\u4EF6'
460
+ ) : '' : ''
461
+ );
462
+ };
463
+
464
+ return Easy3wUploadM;
465
+ }(_react.Component);
466
+
467
+ Easy3wUploadM.propTypes = {
468
+ uploadName: _propTypes2['default'].string.isRequired, // 上传名称
469
+ sendData: _propTypes2['default'].string.isRequired, // 传送数据接口
470
+ initialValue: _propTypes2['default'].array, // 初始值
471
+ urlUpFileService: _propTypes2['default'].string, // 后台附件服务地址
472
+ urlDownloadFile: _propTypes2['default'].string,
473
+ required: _propTypes2['default'].bool, // 是否必须
474
+ help: _propTypes2['default'].string, // 后台附件服务地址
475
+ limitSize: _propTypes2['default'].number, // 文件大小限制
476
+ listType: _propTypes2['default'].string, // 附件类型
477
+ accept: _propTypes2['default'].string, // 接受类型
478
+ buttonName: _propTypes2['default'].string, // 上传名称
479
+ isRead: _propTypes2['default'].bool, // 是否只读
480
+ downloadAllFlag: _propTypes2['default'].bool, // 是否可以全部下载
481
+ label: _propTypes2['default'].string, // lable名称
482
+ className: _propTypes2['default'].string, // CSS类名
483
+ labelCol: _propTypes2['default'].object, // CSS类名
484
+ wrapperCol: _propTypes2['default'].object // CSS类名
485
+ };
486
+ Easy3wUploadM.defaultProps = {
487
+ initialValue: [],
488
+ listType: 'file',
489
+ accept: '',
490
+ limitSize: 200,
491
+ urlUpFileService: '',
492
+ urlDownloadFile: '',
493
+ buttonName: '上传',
494
+ help: '请上传附件,可上传多个,按Ctrl键可选多个',
495
+ required: true,
496
+ isRead: false,
497
+ downloadAllFlag: false,
498
+ label: '',
499
+ className: '',
500
+ labelCol: {},
501
+ wrapperCol: {}
502
+ };
503
+ exports['default'] = Easy3wUploadM;
504
+ module.exports = exports['default'];
@@ -91,7 +91,10 @@ var Easy3wUploadM = function (_Component) {
91
91
  }
92
92
 
93
93
  return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {
94
- fileList: [{}]
94
+ fileList: [],
95
+ beforeFileList: [], // 上传前获取上传文件
96
+ finishFileList: [] // 上传完成文件
97
+
95
98
  // 预览
96
99
  }, _this.onPreview = function (file) {
97
100
  var objPreviewFileNew = (0, _extends3['default'])({}, _comonConfig.objPreviewFile, _this.props.objPreviewFile);
@@ -256,6 +259,11 @@ var Easy3wUploadM = function (_Component) {
256
259
  });
257
260
  return false;
258
261
  } else {
262
+ _this2.setState(function (prev) {
263
+ return (0, _extends3['default'])({}, _this2.state, {
264
+ beforeFileList: [].concat(prev.beforeFileList, [file])
265
+ });
266
+ });
259
267
  return true;
260
268
  }
261
269
  };
@@ -267,6 +275,7 @@ var Easy3wUploadM = function (_Component) {
267
275
  };
268
276
  var handleFileChange = function handleFileChange(e) {
269
277
  var fileList = e.fileList;
278
+ var file = e.file;
270
279
  // 移除大小不符、类型不符的文件
271
280
 
272
281
  fileList = fileList.filter(function (f1) {
@@ -310,9 +319,9 @@ var Easy3wUploadM = function (_Component) {
310
319
  return nFile;
311
320
  });
312
321
  // 3. filter successfully uploaded files according to response from server
313
- fileList = fileList.filter(function (file) {
314
- var status = file.status,
315
- name = file.name;
322
+ fileList = fileList.filter(function (f3) {
323
+ var status = f3.status,
324
+ name = f3.name;
316
325
 
317
326
  if (status === 'error') {
318
327
  _modal2['default'].error({
@@ -321,17 +330,17 @@ var Easy3wUploadM = function (_Component) {
321
330
  });
322
331
  return false; // 上传失败
323
332
  }
324
- if (file.response) {
325
- if (file.response.rspCode === '0000') {
326
- if (uploadDoneCallback) {
327
- uploadDoneCallback(uploadName, fileList, file);
328
- }
333
+ if (f3.response) {
334
+ if (f3.response.rspCode === '0000') {
335
+ // if (uploadDoneCallback) {
336
+ // uploadDoneCallback(uploadName, fileList, f3);
337
+ // }
329
338
  return true;
330
339
  }
331
- if (file.response.rspMsg) {
340
+ if (f3.response.rspMsg) {
332
341
  _modal2['default'].error({
333
342
  style: { top: '38%' },
334
- content: file.response.rspMsg
343
+ content: f3.response.rspMsg
335
344
  });
336
345
  } else {
337
346
  _modal2['default'].error({
@@ -355,6 +364,24 @@ var Easy3wUploadM = function (_Component) {
355
364
  }
356
365
  });
357
366
  _this2.setState({ fileList: fileList });
367
+ var status = file.status;
368
+
369
+ if (status === 'done') {
370
+ _this2.setState(function (prev) {
371
+ return { finishFileList: [].concat(prev.finishFileList, [file]) };
372
+ }, function () {
373
+ var _state = _this2.state,
374
+ beforeFileList = _state.beforeFileList,
375
+ finishFileList = _state.finishFileList;
376
+
377
+ if (beforeFileList.length > 0 && finishFileList.length > 0 && beforeFileList.length === finishFileList.length) {
378
+ if (uploadDoneCallback) {
379
+ uploadDoneCallback(uploadName, fileList, file);
380
+ _this2.setState({ finishFileList: [], beforeFileList: [] });
381
+ }
382
+ }
383
+ });
384
+ }
358
385
  return fileList;
359
386
  };
360
387
  var checkFile = function checkFile(rule, value, callback) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "easy3wui",
3
- "version": "4.0.35",
3
+ "version": "4.0.37",
4
4
  "description": "easy3wui components for react",
5
5
  "keywords": [
6
6
  "react",