@desynova-digital/components 9.3.9 → 9.3.10
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.
- package/molecules/table/table.js +120 -60
- package/package.json +2 -2
package/molecules/table/table.js
CHANGED
|
@@ -1183,24 +1183,11 @@ var Table = /*#__PURE__*/function (_Component) {
|
|
|
1183
1183
|
* Widen a column to its longest rendered value (double-click on the header).
|
|
1184
1184
|
* @param {object} column the column definition to fit
|
|
1185
1185
|
*/
|
|
1186
|
-
(0, _defineProperty2["default"])(_this, "
|
|
1187
|
-
|
|
1188
|
-
return;
|
|
1189
|
-
}
|
|
1190
|
-
var field = column.field;
|
|
1191
|
-
if (!field || FIXED_COLUMN_WIDTHS[field]) {
|
|
1192
|
-
return;
|
|
1193
|
-
}
|
|
1186
|
+
(0, _defineProperty2["default"])(_this, "measureColumnFitWidths", function (columns) {
|
|
1187
|
+
var widths = {};
|
|
1194
1188
|
var table = _this.tableElementRef.current;
|
|
1195
|
-
if (!table) {
|
|
1196
|
-
return;
|
|
1197
|
-
}
|
|
1198
|
-
var escaped = window.CSS && window.CSS.escape ? window.CSS.escape(field) : field;
|
|
1199
|
-
var cells;
|
|
1200
|
-
try {
|
|
1201
|
-
cells = table.querySelectorAll('tbody > tr > td[data-field="' + escaped + '"]');
|
|
1202
|
-
} catch (err) {
|
|
1203
|
-
return;
|
|
1189
|
+
if (!table || !columns || !columns.length) {
|
|
1190
|
+
return widths;
|
|
1204
1191
|
}
|
|
1205
1192
|
var probe = document.createElement("span");
|
|
1206
1193
|
probe.setAttribute("aria-hidden", "true");
|
|
@@ -1211,62 +1198,134 @@ var Table = /*#__PURE__*/function (_Component) {
|
|
|
1211
1198
|
return 0;
|
|
1212
1199
|
}
|
|
1213
1200
|
var width = 0;
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
var
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1201
|
+
if (el.children && el.children.length) {
|
|
1202
|
+
var origin = el.getBoundingClientRect().left;
|
|
1203
|
+
var right = origin;
|
|
1204
|
+
for (var i = 0; i < el.children.length; i += 1) {
|
|
1205
|
+
var childRight = el.children[i].getBoundingClientRect().right;
|
|
1206
|
+
if (childRight > right) {
|
|
1207
|
+
right = childRight;
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1210
|
+
width = Math.max(width, right - origin);
|
|
1211
|
+
} else {
|
|
1212
|
+
var text = el.textContent || "";
|
|
1213
|
+
if (text.trim()) {
|
|
1214
|
+
var cs = window.getComputedStyle(el);
|
|
1215
|
+
probe.style.fontStyle = cs.fontStyle;
|
|
1216
|
+
probe.style.fontVariant = cs.fontVariant;
|
|
1217
|
+
probe.style.fontWeight = cs.fontWeight;
|
|
1218
|
+
probe.style.fontSize = cs.fontSize;
|
|
1219
|
+
probe.style.fontFamily = cs.fontFamily;
|
|
1220
|
+
probe.style.letterSpacing = cs.letterSpacing;
|
|
1221
|
+
probe.style.wordSpacing = cs.wordSpacing;
|
|
1222
|
+
probe.style.textTransform = cs.textTransform;
|
|
1223
|
+
probe.textContent = text;
|
|
1224
|
+
width = probe.getBoundingClientRect().width;
|
|
1225
|
+
}
|
|
1227
1226
|
}
|
|
1228
1227
|
if (el.scrollWidth > el.clientWidth) {
|
|
1229
1228
|
width = Math.max(width, el.scrollWidth);
|
|
1230
1229
|
}
|
|
1231
1230
|
return width;
|
|
1232
1231
|
};
|
|
1233
|
-
var
|
|
1234
|
-
var
|
|
1232
|
+
var tableWidth = _this.state.viewportWidth || table.clientWidth || 0;
|
|
1233
|
+
var ceiling = tableWidth ? Math.min(MAX_AUTOFIT_COLUMN_WIDTH, tableWidth * MAX_AUTOFIT_TABLE_SHARE) : MAX_AUTOFIT_COLUMN_WIDTH;
|
|
1235
1234
|
try {
|
|
1236
|
-
for (var
|
|
1237
|
-
var
|
|
1238
|
-
var
|
|
1239
|
-
if (
|
|
1240
|
-
|
|
1235
|
+
for (var c = 0; c < columns.length; c += 1) {
|
|
1236
|
+
var column = columns[c];
|
|
1237
|
+
var field = column && column.field;
|
|
1238
|
+
if (!field || FIXED_COLUMN_WIDTHS[field]) {
|
|
1239
|
+
continue;
|
|
1241
1240
|
}
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1241
|
+
var escaped = window.CSS && window.CSS.escape ? window.CSS.escape(field) : field;
|
|
1242
|
+
var cells = void 0;
|
|
1243
|
+
try {
|
|
1244
|
+
cells = table.querySelectorAll('tbody > tr > td[data-field="' + escaped + '"]');
|
|
1245
|
+
} catch (err) {
|
|
1246
|
+
continue;
|
|
1247
|
+
}
|
|
1248
|
+
var content = 0;
|
|
1249
|
+
for (var i = 0; i < cells.length; i += 1) {
|
|
1250
|
+
var width = measure(cells[i].firstElementChild || cells[i]);
|
|
1251
|
+
if (width > content) {
|
|
1252
|
+
content = width;
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
var headerNeeds = 0;
|
|
1256
|
+
var headerCell = table.querySelector('thead > tr > th[data-field="' + escaped + '"]');
|
|
1257
|
+
if (headerCell) {
|
|
1258
|
+
var cs = window.getComputedStyle(headerCell);
|
|
1259
|
+
probe.style.fontStyle = cs.fontStyle;
|
|
1260
|
+
probe.style.fontVariant = cs.fontVariant;
|
|
1261
|
+
probe.style.fontWeight = cs.fontWeight;
|
|
1262
|
+
probe.style.fontSize = cs.fontSize;
|
|
1263
|
+
probe.style.fontFamily = cs.fontFamily;
|
|
1264
|
+
probe.style.letterSpacing = cs.letterSpacing;
|
|
1265
|
+
probe.style.wordSpacing = cs.wordSpacing;
|
|
1266
|
+
probe.style.textTransform = cs.textTransform;
|
|
1267
|
+
probe.textContent = column.title || headerCell.textContent || "";
|
|
1268
|
+
headerNeeds = probe.getBoundingClientRect().width + HEADER_CHROME_WIDTH;
|
|
1269
|
+
}
|
|
1270
|
+
var desired = Math.max(content, headerNeeds) + CELL_HORIZONTAL_PADDING + 1;
|
|
1271
|
+
var floor = MIN_AUTOFIT_COLUMN_WIDTH;
|
|
1272
|
+
widths[field] = Math.ceil(Math.min(Math.max(desired, floor), Math.max(ceiling, floor)));
|
|
1256
1273
|
}
|
|
1257
1274
|
} finally {
|
|
1258
1275
|
if (probe.parentNode) {
|
|
1259
1276
|
probe.parentNode.removeChild(probe);
|
|
1260
1277
|
}
|
|
1261
1278
|
}
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1279
|
+
return widths;
|
|
1280
|
+
});
|
|
1281
|
+
/**
|
|
1282
|
+
* Widen a column to its longest rendered value (double-click on the header).
|
|
1283
|
+
* @param {object} column the column definition to fit
|
|
1284
|
+
*/
|
|
1285
|
+
(0, _defineProperty2["default"])(_this, "autofitColumn", function (column) {
|
|
1286
|
+
if (!column || !_this.props.resizableColumns || _this.props.tableLoading) {
|
|
1287
|
+
return;
|
|
1288
|
+
}
|
|
1289
|
+
var widths = _this.measureColumnFitWidths([column]);
|
|
1290
|
+
var next = widths[column.field];
|
|
1267
1291
|
if (next > 0) {
|
|
1268
|
-
_this.handleColumnResizeEnd(field, next);
|
|
1292
|
+
_this.handleColumnResizeEnd(column.field, next);
|
|
1293
|
+
}
|
|
1294
|
+
});
|
|
1295
|
+
(0, _defineProperty2["default"])(_this, "fitColumnsToContent", function () {
|
|
1296
|
+
if (!_this.props.resizableColumns || _this.props.tableLoading) {
|
|
1297
|
+
return;
|
|
1298
|
+
}
|
|
1299
|
+
var columns = _this.getVisibleColumns() || [];
|
|
1300
|
+
var fitted = _this.measureColumnFitWidths(columns);
|
|
1301
|
+
var next = {};
|
|
1302
|
+
for (var i = 0; i < columns.length; i += 1) {
|
|
1303
|
+
var field = columns[i] && columns[i].field;
|
|
1304
|
+
if (!field || !fitted[field]) {
|
|
1305
|
+
continue;
|
|
1306
|
+
}
|
|
1307
|
+
var current = toPxNumber(_this.getColumnWidth(columns[i])) || 0;
|
|
1308
|
+
if (fitted[field] > current) {
|
|
1309
|
+
next[field] = fitted[field];
|
|
1310
|
+
}
|
|
1269
1311
|
}
|
|
1312
|
+
if (!Object.keys(next).length) {
|
|
1313
|
+
return;
|
|
1314
|
+
}
|
|
1315
|
+
_this.setState(function (prevState) {
|
|
1316
|
+
return {
|
|
1317
|
+
columnWidths: _objectSpread(_objectSpread({}, prevState.columnWidths), next)
|
|
1318
|
+
};
|
|
1319
|
+
}, function () {
|
|
1320
|
+
if (_this.props.onColumnsResize) {
|
|
1321
|
+
_this.props.onColumnsResize(next);
|
|
1322
|
+
} else if (_this.props.onColumnResize) {
|
|
1323
|
+
var fields = Object.keys(next);
|
|
1324
|
+
for (var _i2 = 0; _i2 < fields.length; _i2 += 1) {
|
|
1325
|
+
_this.props.onColumnResize(fields[_i2], next[fields[_i2]]);
|
|
1326
|
+
}
|
|
1327
|
+
}
|
|
1328
|
+
});
|
|
1270
1329
|
});
|
|
1271
1330
|
(0, _defineProperty2["default"])(_this, "getColumnResizeProps", function () {
|
|
1272
1331
|
return {
|
|
@@ -1812,7 +1871,7 @@ var Table = /*#__PURE__*/function (_Component) {
|
|
|
1812
1871
|
scrollContentWidth = _this$state3.scrollContentWidth;
|
|
1813
1872
|
var frozenLeft = this.frozenWidths ? this.frozenWidths.left : 0;
|
|
1814
1873
|
var frozenRight = this.frozenWidths ? this.frozenWidths.right : 0;
|
|
1815
|
-
var showScrollProxy = !!(viewportWidth && scrollContentWidth && scrollContentWidth > viewportWidth)
|
|
1874
|
+
var showScrollProxy = !!(viewportWidth && scrollContentWidth && scrollContentWidth > viewportWidth);
|
|
1816
1875
|
var proxyWidth = Math.max(viewportWidth - frozenLeft - frozenRight, 0);
|
|
1817
1876
|
var proxyContentWidth = Math.max(scrollContentWidth - frozenLeft - frozenRight, 0);
|
|
1818
1877
|
var rows = this.state.items.map(function (item, index) {
|
|
@@ -2300,7 +2359,7 @@ Table.Row = _styledComponents["default"].tr(_templateObject16 || (_templateObjec
|
|
|
2300
2359
|
}, Table.Card, function (props) {
|
|
2301
2360
|
if (typeof props.theme === "string") return "background:" + _tokens.colors[props.theme].table.innerTableBackground;
|
|
2302
2361
|
});
|
|
2303
|
-
Table.Cell = _styledComponents["default"].td(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: 'SFUIText-Regular';\n font-size: 12px;\n letter-spacing: 0.4px;\n color: ", "; \n padding: 7px 14px;\n // border-top: 1px solid ", "; \n text-align: left;\n vertical-align: middle;\n line-height: 2;\n width: ", ";\n max-width: ", ";\n\n &.tableHolder{\n padding:0px;\n }\n &.table-inner-cell {\n padding: 0;\n }\n &.pinned-column {\n background: ", ";\n z-index: 1;\n }\n\n &.pinned-column:hover {\n z-index: 3;\n }\n\n &.pinned-left-edge {\n box-shadow: 6px 0 8px -6px rgba(0, 0, 0, 0.55);\n }\n\n &.pinned-right-edge {\n box-shadow: -6px 0 8px -6px rgba(0, 0, 0, 0.55);\n }\n\n .asset-play {\n cursor: pointer;\n background-color: transparent;\n border: none;\n color: #dddddd;\n &:hover, &:focus {\n outline: none;\n color: ", ";\n text-decoration: underline;\n }\n }\n\n .icon-circle {\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n text-align: center;\n justify-content: center;\n align-items: center;\n i {\n line-height: 0;\n }\n }\n\n // max-width: 0;\n // overflow: hidden;\n // text-overflow: ellipsis;\n // white-space: nowrap;\n\n & > div.text-box {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n &.text-linkexpired {\n color: #FF6C56;\n }\n }\n & > div.action-icons-cell{\n white-space: nowrap;\n display: flex;\n align-items: center;\n justify-content: center;\n\n .tooltip-block {\n top: -50px;\n }\n \n .action-item-btn {\n padding: 0 15px;\n cursor: pointer;\n background-color: transparent;\n\n &.nested {\n border-bottom: 1px solid #303f51;\n display: flex;\n padding: 10px;\n align-items: center;\n &>div:first-child{\n margin-right:10px;\n }\n &:last-child{\n border-bottom: 0px none;\n }\n }\n\n &:hover {\n transition: color 0.4s ease-out;\n color: ", ";\n path{\n fill: ", ";\n transition: fill 0.4s ease-out;\n }\n }\n }\n\n\n &>button{\n margin-right: 15px;\n display: inline-flex;\n }\n &>button:last-child{\n margin-right: 0px;\n }\n\n .more-action-holder {\n position: relative;\n\n &:hover {\n .more-action-list-box{\n display:block;\n }\n .more-action-icon{\n transition: all 0.4s ease-out;\n background: ", ";\n }\n }\n\n .more-action-icon{\n height: 24px;\n width: 24px;\n background: #303f51;\n border-radius: 50%;\n padding: 0px 10px;\n transform: translate(0px, -1px);\n }\n .more-action-list-box{\n position: absolute;\n z-index:100;\n display:none;\n //display:block;\n padding-top: 11px;\n transform: translate(-136px,-2px);\n \n .more-action-list {\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.2);\n background: ", ";\n min-width: 200px;\n }\n\n &:before{\n content: '';\n position: absolute;\n /* left: 42%; */\n /* top: 100%; */\n width: 0;\n height: 0;\n \n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-bottom: 6px solid ", ";\n transform: translate(144px,-6px);\n }\n\n }\n\n }\n }\n\n .nested-table {\n background: #182738;\n border-left: 2px solid ", ";\n }\n\n\n"])), function (props) {
|
|
2362
|
+
Table.Cell = _styledComponents["default"].td(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: 'SFUIText-Regular';\n font-size: 12px;\n letter-spacing: 0.4px;\n color: ", "; \n padding: 7px 14px;\n // border-top: 1px solid ", "; \n text-align: left;\n vertical-align: middle;\n line-height: 2;\n width: ", ";\n max-width: ", ";\n\n &.tableHolder{\n padding:0px;\n }\n &.table-inner-cell {\n padding: 0;\n }\n &.pinned-column {\n background: ", ";\n z-index: 1;\n }\n\n &.pinned-column:hover {\n z-index: 3;\n }\n\n &.pinned-left-edge {\n box-shadow: 6px 0 8px -6px rgba(0, 0, 0, 0.55);\n }\n\n &.pinned-right-edge {\n box-shadow: -6px 0 8px -6px rgba(0, 0, 0, 0.55);\n }\n\n .asset-play {\n cursor: pointer;\n background-color: transparent;\n border: none;\n color: #dddddd;\n &:hover, &:focus {\n outline: none;\n color: ", ";\n text-decoration: underline;\n }\n }\n\n .icon-circle {\n border-radius: 50%;\n width: 24px;\n height: 24px;\n display: flex;\n text-align: center;\n justify-content: center;\n align-items: center;\n i {\n line-height: 0;\n }\n }\n\n // max-width: 0;\n // overflow: hidden;\n // text-overflow: ellipsis;\n // white-space: nowrap;\n\n & > div.text-box {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n &.text-linkexpired {\n color: #FF6C56;\n }\n }\n & > div.action-icons-cell{\n white-space: nowrap;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n\n .tooltip-block {\n top: -50px;\n }\n \n .action-item-btn {\n padding: 0 15px;\n cursor: pointer;\n background-color: transparent;\n\n &.nested {\n border-bottom: 1px solid #303f51;\n display: flex;\n padding: 10px;\n align-items: center;\n &>div:first-child{\n margin-right:10px;\n }\n &:last-child{\n border-bottom: 0px none;\n }\n }\n\n &:hover {\n transition: color 0.4s ease-out;\n color: ", ";\n path{\n fill: ", ";\n transition: fill 0.4s ease-out;\n }\n }\n }\n\n\n &>button{\n margin-right: 15px;\n display: inline-flex;\n }\n &>button:last-child{\n margin-right: 0px;\n }\n\n .more-action-holder {\n position: relative;\n\n &:hover {\n .more-action-list-box{\n display:block;\n }\n .more-action-icon{\n transition: all 0.4s ease-out;\n background: ", ";\n }\n }\n\n .more-action-icon{\n height: 24px;\n width: 24px;\n background: #303f51;\n border-radius: 50%;\n padding: 0px 10px;\n transform: translate(0px, -1px);\n }\n .more-action-list-box{\n position: absolute;\n z-index:100;\n display:none;\n //display:block;\n padding-top: 11px;\n transform: translate(-136px,-2px);\n \n .more-action-list {\n box-shadow: 0 12px 24px 0 rgba(0, 0, 0, 0.2);\n background: ", ";\n min-width: 200px;\n }\n\n &:before{\n content: '';\n position: absolute;\n /* left: 42%; */\n /* top: 100%; */\n width: 0;\n height: 0;\n \n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n border-bottom: 6px solid ", ";\n transform: translate(144px,-6px);\n }\n\n }\n\n }\n }\n\n .nested-table {\n background: #182738;\n border-left: 2px solid ", ";\n }\n\n\n"])), function (props) {
|
|
2304
2363
|
return _tokens.colors[props.theme].table.tdColor;
|
|
2305
2364
|
}, function (props) {
|
|
2306
2365
|
return _tokens.colors[props.theme].table.border;
|
|
@@ -2326,7 +2385,7 @@ Table.Cell = _styledComponents["default"].td(_templateObject17 || (_templateObje
|
|
|
2326
2385
|
return _tokens.colors[props.theme].table.CellNestedTableBorderLeft;
|
|
2327
2386
|
});
|
|
2328
2387
|
var TableTitleLoadingInitial = _styledComponents["default"].div(_templateObject18 || (_templateObject18 = (0, _taggedTemplateLiteral2["default"])(["\n height: 30px;\n position: absolute;\n left: -1px;\n z-index: 2;\n display: flex;\n width: 100%;\n top: -1px;\n"])));
|
|
2329
|
-
var DubbingStatusStyles = _styledComponents["default"].div(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteral2["default"])(["\n display:
|
|
2388
|
+
var DubbingStatusStyles = _styledComponents["default"].div(_templateObject19 || (_templateObject19 = (0, _taggedTemplateLiteral2["default"])(["\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n .detail-block {\n display: inline-flex;\n vertical-align: middle;\n justify-content: center;\n align-items: center;\n\n &:not(:last-child) {\n margin-right: 7px;\n }\n\n .status-color {\n width: 7px;\n height: 7px;\n margin-right: 6px;\n border-radius: 100%;\n background: rgba(255, 255, 255, 0.3);\n &.approved {\n background: ", ";\n }\n &.rejected {\n background: #ef5350;\n }\n }\n .language-name {\n text-transform: capitalize;\n font-size: 12px;\n font-family: SFUIText-Regular;\n color: #fff;\n }\n }\n"])), function (props) {
|
|
2330
2389
|
return _tokens.colors[props.theme].table.ApprovedBackground;
|
|
2331
2390
|
});
|
|
2332
2391
|
var SelectAllButton = _styledComponents["default"].div(_templateObject20 || (_templateObject20 = (0, _taggedTemplateLiteral2["default"])(["\n width: 20px;\n height: 20px;\n background: transparent;\n border: ", ";\n border-radius: 50%;\n cursor: pointer;\n position: absolute;\n left: 14px;\n z-index: 2;\n top: 73px;\n .input-select-all-button {\n height: 0px;\n width: 0px;\n display: none;\n }\n .label-select-all-button {\n position: relative;\n cursor: pointer;\n display: flex;\n margin: 0px;\n height: 20px;\n align-items: center;\n border-radius: 50%;\n background: ", ";\n .span-select-all-button {\n display: ", ";\n position: absolute;\n top: 10px;\n left: 5px;\n border-right: 2px solid transparent;\n border-bottom: 2px solid transparent;\n transform: rotate(45deg);\n transform-origin: 0 100%;\n animation: ", ";\n }\n }\n"])), function (props) {
|
|
@@ -2353,6 +2412,7 @@ Table.propTypes = {
|
|
|
2353
2412
|
pageDropdown: _propTypes["default"].instanceOf(Object),
|
|
2354
2413
|
resizableColumns: _propTypes["default"].bool,
|
|
2355
2414
|
onColumnResize: _propTypes["default"].func,
|
|
2415
|
+
onColumnsResize: _propTypes["default"].func,
|
|
2356
2416
|
scrollResetKey: _propTypes["default"].string
|
|
2357
2417
|
};
|
|
2358
2418
|
Table.defaultProps = {
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@desynova-digital/components",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.10",
|
|
4
4
|
"description": "Components for Desynova Digital",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"author": "desynova-digital",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"repository": "desynova-digital",
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@desynova-digital/tokens": "9.3.
|
|
10
|
+
"@desynova-digital/tokens": "9.3.10",
|
|
11
11
|
"prop-types": "^15.7.2",
|
|
12
12
|
"styled-components": "^4.3.2"
|
|
13
13
|
},
|