@titaui/pc 1.7.78 → 1.7.82

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.
@@ -50,7 +50,7 @@
50
50
  }
51
51
 
52
52
  .titaui-dialog .rc-dialog-header {
53
- padding: 16px 32px 16px 32px;
53
+ padding: 18px 32px;
54
54
  }
55
55
 
56
56
  .titaui-dialog .rc-dialog-body {
@@ -58,7 +58,7 @@
58
58
  }
59
59
 
60
60
  .titaui-dialog .rc-dialog-footer {
61
- padding: 12px 32px 18px;
61
+ padding: 20px 32px;
62
62
  display: flex;
63
63
  justify-content: flex-end;
64
64
  }
@@ -17,6 +17,9 @@
17
17
  color: #3f4755;
18
18
  line-height: 24px;
19
19
  cursor: pointer;
20
+ overflow: hidden;
21
+ text-overflow: ellipsis;
22
+ white-space: nowrap;
20
23
  }
21
24
 
22
25
  .titaui-dynamic-share-to-dynamic__content-quoto {
@@ -27,6 +30,13 @@
27
30
  height: 12px;
28
31
  }
29
32
 
33
+ .titaui-dynamic-share-to-dynamic__content-title {
34
+ width: 100%;
35
+ overflow: hidden;
36
+ text-overflow: ellipsis;
37
+ white-space: nowrap;
38
+ }
39
+
30
40
  .titaui-dynamic-share-to-dynamic__share {
31
41
  box-sizing: border-box;
32
42
  height: 104px;
@@ -55,7 +55,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
55
55
 
56
56
  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; }
57
57
 
58
- var prefix = "titaui-dynamic-share-to-dynamic";
58
+ var prefix = 'titaui-dynamic-share-to-dynamic';
59
59
  var userId = (0, _bsGlobal.getUserInfo)().Id;
60
60
 
61
61
  var DynamicShare = function DynamicShare(_ref) {
@@ -87,9 +87,9 @@ var DynamicShare = function DynamicShare(_ref) {
87
87
 
88
88
  var renderDesc = (0, _react.useMemo)(function () {
89
89
  return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
90
- className: prefix + "__operate-desc"
90
+ className: prefix + '__operate-desc'
91
91
  }, "\u5206\u4EAB\u4E86\u4E00\u5802\u597D\u8BFE"), /*#__PURE__*/_react["default"].createElement("span", {
92
- className: prefix + "-desc-operate-type",
92
+ className: prefix + '-desc-operate-type',
93
93
  style: {
94
94
  background: feedTypeColor
95
95
  }
@@ -114,11 +114,9 @@ var DynamicShare = function DynamicShare(_ref) {
114
114
  });
115
115
  }, [data, searchKeyWord]);
116
116
  (0, _react.useEffect)(function () {
117
- if (data.shareContent !== null) {
118
- if (data.shareContent.charAt(0) === "{") {
119
- setTitle(JSON.parse(data.shareContent).title);
120
- setContent(htmlToText(JSON.parse(data.shareContent).content));
121
- }
117
+ if (data.shareContent && typeof data.shareContent === 'string' && data.shareContent.substr(0, 1) === '{') {
118
+ setTitle(JSON.parse(data.shareContent).title);
119
+ setContent(htmlToText(JSON.parse(data.shareContent).content));
122
120
  }
123
121
  }, []);
124
122
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -130,12 +128,13 @@ var DynamicShare = function DynamicShare(_ref) {
130
128
  showTopping: hasDynamicOpereateAuth,
131
129
  user: data.publishUser
132
130
  }, restProps)), /*#__PURE__*/_react["default"].createElement("div", {
133
- className: prefix + "__content"
131
+ className: prefix + '__content'
134
132
  }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("img", {
135
- className: (0, _classnames["default"])(prefix + "__content-quoto", prefix + "__content-quoto--left"),
133
+ className: (0, _classnames["default"])(prefix + '__content-quoto', prefix + '__content-quoto--left'),
136
134
  src: _dynamicLeftQuoto["default"]
137
135
  })), /*#__PURE__*/_react["default"].createElement("div", {
138
- ref: contentRef
136
+ ref: contentRef,
137
+ className: "".concat(prefix, "__content-title")
139
138
  }, /*#__PURE__*/_react["default"].createElement(_dangerousHtml["default"], {
140
139
  htmlText: data.content
141
140
  }))), /*#__PURE__*/_react["default"].createElement("div", {
@@ -11,6 +11,8 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
13
 
14
+ var _bsGlobal = require("../../../../utils/bs-global");
15
+
14
16
  var _popup = _interopRequireDefault(require("../../../popup"));
15
17
 
16
18
  var _rcOverflow = _interopRequireDefault(require("rc-overflow"));
@@ -53,8 +55,7 @@ var popupAlign = {
53
55
 
54
56
  var Menu = function Menu(_ref) {
55
57
  var menus = _ref.menus,
56
- activeMenuId = _ref.activeMenuId,
57
- isShowTips = _ref.isShowTips;
58
+ activeMenuId = _ref.activeMenuId;
58
59
 
59
60
  var _useState = (0, _react.useState)(false),
60
61
  _useState2 = _slicedToArray(_useState, 2),
@@ -66,11 +67,9 @@ var Menu = function Menu(_ref) {
66
67
  isKnow = _useState4[0],
67
68
  setIsKonw = _useState4[1];
68
69
 
69
- var containerRef = (0, _react.useRef)(); // @ts-ignore
70
-
71
- var apiPath = BSGlobal.apiPath; // @ts-ignore
72
-
73
- var userId = BSGlobal.loginUserInfo.Id;
70
+ var containerRef = (0, _react.useRef)();
71
+ var apiPath = (0, _bsGlobal.getBSGlobal)("apiPath");
72
+ var userId = (0, _bsGlobal.getUserInfo)().Id;
74
73
 
75
74
  var handlePopupVisibleChange = function handlePopupVisibleChange(visible) {
76
75
  setPopupVisible(visible);
@@ -88,7 +87,7 @@ var Menu = function Menu(_ref) {
88
87
 
89
88
  var handleClick = function handleClick() {
90
89
  setIsKonw(true);
91
- localStorage.setItem("isKonwLearning", "true");
90
+ localStorage.setItem("isKonwLearning".concat(userId), "".concat(userId));
92
91
  };
93
92
 
94
93
  var popupAlign2 = {
@@ -100,6 +99,18 @@ var Menu = function Menu(_ref) {
100
99
  targetOffset: [0, 0]
101
100
  };
102
101
 
102
+ var handleClickToLearning = function handleClickToLearning() {
103
+ window.open("".concat(apiPath, "/").concat(userId, "/eLearningHome#/"), "_self");
104
+ };
105
+
106
+ (0, _react.useEffect)(function () {
107
+ var isKnow = localStorage.getItem("isKonwLearning".concat(userId));
108
+
109
+ if (isKnow) {
110
+ setIsKonw(true);
111
+ }
112
+ }, []);
113
+
103
114
  var popup = /*#__PURE__*/_react["default"].createElement("div", {
104
115
  className: "".concat(prefix, "__tips")
105
116
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -130,17 +141,16 @@ var Menu = function Menu(_ref) {
130
141
  }, menu.title)), /*#__PURE__*/_react["default"].createElement(_conditionRender["default"], {
131
142
  condition: menu.id === 44312
132
143
  }, /*#__PURE__*/_react["default"].createElement(_popup["default"], {
133
- popupVisible: isShowTips,
144
+ popupVisible: !isKnow,
134
145
  popup: popup,
135
146
  mask: false,
136
147
  action: ['focus'],
137
148
  popupAlign: popupAlign2
138
- }, /*#__PURE__*/_react["default"].createElement("a", {
149
+ }, /*#__PURE__*/_react["default"].createElement("span", {
139
150
  className: (0, _classnames["default"])("".concat(prefix, "__menu-show"), _defineProperty({}, "".concat(prefix, "__menu-show--active"), activeMenuId == menu.id)),
140
- href: "".concat(apiPath, "/").concat(userId, "/eLearningHome#/"),
141
- target: "_self",
142
151
  onClick: function onClick() {
143
- return handleTracker(menu);
152
+ handleTracker(menu);
153
+ handleClickToLearning();
144
154
  }
145
155
  }, menu.title)), /*#__PURE__*/_react["default"].createElement("img", {
146
156
  src: _new["default"],
@@ -76,30 +76,12 @@ var Inform = function Inform(props) {
76
76
  if (messageType == 135) {
77
77
  var redisKey = item.content.match(/redisKey=(\S*?)"/)[1]; // @ts-ignore
78
78
 
79
- Talent.app.vent.trigger("open-weekly-report-modal", redisKey);
80
- return;
81
- }
82
-
83
- if (messageType === 99) {
84
- var _options = {
85
- width: 680,
86
- showScroll: false,
87
- type: 'message',
88
- // 推屏类型
89
- data: {
90
- type: 'okrDashBoard',
91
- // 消息类型
92
- objId: item.messageId,
93
- objType: messageType
94
- }
95
- }; // @ts-ignore
96
-
97
- Talent.app.vent.trigger('openReactScreenPush', _options);
79
+ Talent.app.vent.trigger('open-weekly-report-modal', redisKey);
98
80
  return;
99
81
  } // 处理合并的消息
100
82
 
101
83
 
102
- var isMessageMerging = messageType == 13018 || messageType == 30362 || messageType == 131;
84
+ var isMessageMerging = [83, 93, 94, 95, 96, 97, 98, 99, 100, 131, 136, 13018, 30362].includes(messageType);
103
85
 
104
86
  if (!isMessageMerging) {
105
87
  if (messageType === _constant.informType.details) {
@@ -111,11 +93,11 @@ var Inform = function Inform(props) {
111
93
  } else if (objType === 0) {
112
94
  var str = item.content.match(/\/\/.*?[\"|\']/gi);
113
95
  if (!str) return;
114
- str = str.join("");
96
+ str = str.join('');
115
97
  var url = str.slice(0, str.length - 1);
116
98
 
117
99
  if (url) {
118
- if (item.content.indexOf("点击此处下载") !== -1) {
100
+ if (item.content.indexOf('点击此处下载') !== -1) {
119
101
  window.open(url, '_self');
120
102
  }
121
103
 
@@ -138,7 +120,7 @@ var Inform = function Inform(props) {
138
120
  var _str = item.content.match(/\/\/.*?[\"|\']/gi);
139
121
 
140
122
  if (!_str) return;
141
- _str = _str.join("");
123
+ _str = _str.join('');
142
124
 
143
125
  var _url2 = _str.slice(0, _str.length - 1);
144
126
 
@@ -148,7 +130,7 @@ var Inform = function Inform(props) {
148
130
  var _str2 = item.content.match(/https:.*?[\"|\']/gi);
149
131
 
150
132
  if (!_str2) return;
151
- _str2 = _str2.join("");
133
+ _str2 = _str2.join('');
152
134
 
153
135
  var _url3 = _str2.slice(0, _str2.length - 1);
154
136
 
@@ -171,56 +153,37 @@ var Inform = function Inform(props) {
171
153
  }
172
154
  }
173
155
 
174
- var type = 'eReport'; // E-周报提醒消息合并
156
+ var notificationType = 'e-report'; // E-周报提醒消息合并
157
+
158
+ var content = domRef.current.textContent;
175
159
 
176
160
  if (messageType == '83') {
177
161
  // 项目,目标进展提醒消息合并
178
- type = 'objective';
162
+ notificationType = 'project-objective';
179
163
  } else if (Number(messageType) > 93 && Number(messageType) <= 100) {
180
164
  // OKR 仪表盘消息提醒
181
- type = 'okrDashBoard';
182
- } else if (messageType == 131) {
183
- type = 'performance';
165
+ notificationType = 'okr-dashBoard';
166
+ } else if (messageType == 131 || messageType == 136) {
167
+ notificationType = 'performance';
168
+ content = item.content;
184
169
  }
185
170
 
186
- var options = {
187
- width: 680,
188
- showScroll: true,
189
- type: 'message',
190
- // 推屏类型
191
- data: {
192
- type: type,
193
- // 消息类型
194
- objId: item.messageId,
195
- objType: messageType,
196
- startDate: '',
197
- endDate: ''
171
+ _drawerManager["default"].open('NotificationMergeDetail', {
172
+ config: {
173
+ content: content,
174
+ messageId: item.messageId,
175
+ messageType: item.messageType,
176
+ notificationDate: item.createTime,
177
+ notificationType: notificationType,
178
+ objId: item.objId,
179
+ objType: item.objType
198
180
  }
199
- };
200
-
201
- if (messageType == 83) {
202
- options.data.objType = messageType;
203
- options.data.startDate = item.createTime;
204
- } else if (messageType > 93 && messageType <= 100) {
205
- options.data.startDate = item.createTime;
206
- } else if (messageType == 131) {
207
- options.data.objType = item.objId.split('_')[0];
208
- options.data.startDate = item.objId.split('_')[1];
209
- options.data.endDate = item.objId.split('_')[2];
210
- } else {
211
- var regex = /\((.+?)\)/g,
212
- content = domRef.current.textContent;
213
- var date = [];
214
- date = content.match(regex);
215
- options.data.startDate = date[0].slice(1, date[0].length - 1).split('-')[0]; // @ts-ignore
216
-
217
- options.data.endDate = date[0].slice(1, date[0].length - 1).split('-')[1];
218
- } // @ts-ignore
219
-
220
-
221
- Talent.app.vent.trigger('openReactScreenPush', options);
181
+ }, {
182
+ width: 680
183
+ });
222
184
  };
223
185
 
186
+ ;
224
187
  return /*#__PURE__*/_react["default"].createElement("li", {
225
188
  className: (0, _classnames["default"])("".concat(preCls, "__item"), _defineProperty({}, "".concat(preCls, "__item--scroll"), informs.length >= 4)),
226
189
  key: item.messageId,
@@ -72,11 +72,6 @@ var NavTop = function NavTop() {
72
72
  activeMenuId = _useState4[0],
73
73
  setActiveMenuId = _useState4[1];
74
74
 
75
- var _useState5 = (0, _react.useState)(true),
76
- _useState6 = _slicedToArray(_useState5, 2),
77
- isShowTips = _useState6[0],
78
- setIsShowTips = _useState6[1];
79
-
80
75
  var ua = navigator.userAgent.toLowerCase();
81
76
  var showWxInvite = (0, _bsGlobal.getTenantInfo)().mainCorpId && ua.indexOf("micromessenger") != -1;
82
77
  var openWxInvite = (0, _react.useCallback)(function () {
@@ -135,11 +130,6 @@ var NavTop = function NavTop() {
135
130
  (0, _react.useEffect)(function () {
136
131
  handleHashChange();
137
132
  window.addEventListener("hashchange", handleHashChange);
138
-
139
- if (!localStorage.getItem("isKonwLearning")) {
140
- setIsShowTips(false);
141
- }
142
-
143
133
  return function () {
144
134
  window.removeEventListener("hashchange", handleHashChange);
145
135
  };
@@ -163,8 +153,7 @@ var NavTop = function NavTop() {
163
153
  className: (0, _classnames["default"])("".concat(preCls, "__middle"))
164
154
  }, /*#__PURE__*/_react["default"].createElement(_menu["default"], {
165
155
  menus: menu,
166
- activeMenuId: activeMenuId,
167
- isShowTips: isShowTips
156
+ activeMenuId: activeMenuId
168
157
  })), showWxInvite && /*#__PURE__*/_react["default"].createElement("div", {
169
158
  className: (0, _classnames["default"])("".concat(preCls, "__invite")),
170
159
  onClick: openWxInvite
@@ -103,7 +103,7 @@ var ExportMapModal = function ExportMapModal(props) {
103
103
  while (1) {
104
104
  switch (_context.prev = _context.next) {
105
105
  case 0:
106
- okrMapRef = document.querySelector(".titaui-okr-flow__export");
106
+ okrMapRef = document.querySelector(".titaui-okr-flow__export") || document.createElement('div');
107
107
  width = okrMapRef.clientWidth; //获取dom 宽度
108
108
 
109
109
  height = okrMapRef.clientHeight; //获取dom 高度
@@ -155,6 +155,12 @@ var ExportMapModal = function ExportMapModal(props) {
155
155
  image.setAttribute("crossOrigin", "anonymous");
156
156
 
157
157
  image.onload = function () {
158
+ if (!url.Data.obj) {
159
+ _toast["default"].Error('导出失败,请稍后重试', {
160
+ canClose: false
161
+ });
162
+ }
163
+
158
164
  var a = document.createElement("a"); // 生成一个a元素
159
165
 
160
166
  var event = new MouseEvent("click"); // 创建一个单击事件
@@ -168,7 +174,7 @@ var ExportMapModal = function ExportMapModal(props) {
168
174
  _toast["default"].Success("导出成功");
169
175
 
170
176
  setIsExport(false);
171
- onCloseHandler();
177
+ onCloseHandler && onCloseHandler();
172
178
  };
173
179
 
174
180
  image.src = imgUrl;
@@ -61,7 +61,8 @@ var getDepartments = function getDepartments(_ref) {
61
61
  // 有权时,获取的节点列表可能存在多个根部门
62
62
  var firstRootNodes = [];
63
63
  var hasGetRootNode = false;
64
- var departments = departs.data.Data.departments;
64
+ var _departs$data$Data$de = departs.data.Data.departments,
65
+ departments = _departs$data$Data$de === void 0 ? [] : _departs$data$Data$de;
65
66
 
66
67
  for (var i = 0; i < departments.length; i++) {
67
68
  var it = departments[i];
@@ -123,8 +124,10 @@ var getTreeData = function getTreeData(id, opts, resolve) {
123
124
  isLoadNodes: isLoadNodes
124
125
  }).then(function (res) {
125
126
  var _res$Data = res.Data,
126
- departments = _res$Data.departments,
127
- users = _res$Data.users;
127
+ _res$Data$departments = _res$Data.departments,
128
+ departments = _res$Data$departments === void 0 ? [] : _res$Data$departments,
129
+ _res$Data$users = _res$Data.users,
130
+ users = _res$Data$users === void 0 ? [] : _res$Data$users;
128
131
  var transDeparts = (0, _utils.translateDepartsToTreeNode)(departments || []);
129
132
  var transUsers = (0, _utils.translateUsersToTreeNode)(users || [], id);
130
133
  resolve && resolve([].concat(_toConsumableArray(transUsers), _toConsumableArray(transDeparts)));
@@ -60,7 +60,7 @@ var UserSelectorPop = /*#__PURE__*/function (_PureComponent) {
60
60
  }
61
61
 
62
62
  return _possibleConstructorReturn(_this, (_temp = _this = _super.call.apply(_super, [this].concat(args)), _this.handleShowPop = function (e) {
63
- if (_this.props.stopPropagation) {
63
+ if (_this.props.stopPropagation && !!e) {
64
64
  e.stopPropagation();
65
65
  e.nativeEvent.stopImmediatePropagation();
66
66
  } //@ts-ignore
@@ -166,7 +166,7 @@ var _default = function _default(props) {
166
166
  var okrPage = (0, _react.useRef)();
167
167
  (0, _react.useEffect)(function () {
168
168
  (0, _requestApis.checkTenantOkrExist)().then(function (res) {
169
- return setExist(res.obj);
169
+ return setExist(res && res.obj || false);
170
170
  });
171
171
  }, []);
172
172
  (0, _react.useEffect)(function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@titaui/pc",
3
- "version": "1.7.78",
3
+ "version": "1.7.82",
4
4
  "nameCN": "",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
package/yarn-error.log DELETED
@@ -1,103 +0,0 @@
1
- Arguments:
2
- /usr/local/bin/node /usr/local/bin/yarn
3
-
4
- PATH:
5
- /opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/opt/homebrew/bin:/opt/homebrew/sbin
6
-
7
- Yarn version:
8
- 1.22.10
9
-
10
- Node version:
11
- 12.22.1
12
-
13
- Platform:
14
- darwin x64
15
-
16
- Trace:
17
- SyntaxError: /Users/yang/tita/titaui-pc/package.json: Unexpected token < in JSON at position 26
18
- at JSON.parse (<anonymous>)
19
- at /usr/local/lib/node_modules/yarn/lib/cli.js:1625:59
20
- at Generator.next (<anonymous>)
21
- at step (/usr/local/lib/node_modules/yarn/lib/cli.js:310:30)
22
- at /usr/local/lib/node_modules/yarn/lib/cli.js:321:13
23
-
24
- npm manifest:
25
- {
26
- "name": "@titaui/pc",
27
- <<<<<<< HEAD
28
- "version": "1.2.22",
29
- =======
30
- "version": "1.2.13",
31
- >>>>>>> master
32
- "nameCN": "",
33
- "description": "",
34
- "main": "src/index.js",
35
- "scripts": {
36
- "storybook": "start-storybook -p 6006 --no-dll",
37
- "start": "dev_server=on webpack-dev-server --disableHostCheck=true --progress --colors --config webpack-stories.config.js",
38
- "build-storybook": "build-storybook --docs --no-dll",
39
- "build:es": "babel src -d es --ignore **/__tests__",
40
- "build:lib": "cross-env OUTPUT_MODULE=commonjs babel src -d lib --ignore **/__tests__",
41
- "build:umd": "webpack --config ./.scripts/webpack.umd.js",
42
- "build": "npm run build:lib && npm run build:es && npm run build:umd"
43
- },
44
- "author": "",
45
- "license": "ISC",
46
- "devDependencies": {
47
- "del": "^6.0.0",
48
- "gulp": "^3.x",
49
- "gulp-autoprefixer": "^7.0.1",
50
- "gulp-babel": "^8.0.0",
51
- "gulp-concat": "^2.6.1",
52
- "gulp-cssbeautify": "^3.0.0",
53
- "gulp-cssnano": "^2.1.3",
54
- "gulp-filesize": "0.0.6",
55
- "gulp-postcss": "^9.0.0",
56
- "gulp-rename": "^2.0.0",
57
- "gulp-replace": "^1.0.0",
58
- "gulp-sass": "^4.1.0",
59
- "gulp-sourcemaps": "^2.6.5",
60
- "sass-resources-loader": "^2.2.1"
61
- },
62
- "dependencies": {
63
- "@titaui/dagre": "^0.8.8-pre",
64
- "@titaui/rc-tree2": "^4.1.15",
65
- "@titaui/rc-trigger": "^5.2.5",
66
- "@titaui/react-flow-renderer": "9.5.4",
67
- "@titaui/toast": "^1.0.0",
68
- "axios": "^0.21.1",
69
- "classnames": "^2.2.6",
70
- "clone-deep": "^4.0.1",
71
- "d3-cloud": "^1.2.5",
72
- "dayjs": "^1.10.4",
73
- "html2canvas": "^1.0.0-rc.7",
74
- "moment": "^2.29.1",
75
- "qs": "^6.10.1",
76
- "rc-checkbox": "^2.3.2",
77
- "rc-dialog": "8.5.2",
78
- "rc-drawer": "^4.3.1",
79
- "rc-input-number": "^5.0.0",
80
- "rc-pagination": "^3.1.6",
81
- "rc-queue-anim": "1.4.1",
82
- "rc-select": "^12.1.7",
83
- "rc-switch": "^3.2.2",
84
- "rc-table": "^7.13.2",
85
- "rc-tabs": "^11.7.3",
86
- "rc-tooltip": "^5.1.1",
87
- "rc-tree": "^4.1.5",
88
- "rc-trigger": "^5.2.3",
89
- "rc-upload": "^4.2.0-alpha.0",
90
- "rc-util": "^5.13.1",
91
- "react-collapse": "^5.1.0",
92
- "react-perfect-scrollbar": "^1.5.2",
93
- "url-parse": "^1.5.1",
94
- "uuid": "^3.1.0",
95
- "wordcloud": "^1.2.2"
96
- }
97
- }
98
-
99
- yarn manifest:
100
- No manifest
101
-
102
- Lockfile:
103
- No lockfile