@coreui/react 5.0.0-alpha.0 → 5.0.0-alpha.2
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/README.md +1 -1
- package/dist/components/avatar/CAvatar.d.ts +1 -1
- package/dist/components/badge/CBadge.d.ts +1 -1
- package/dist/components/card/CCard.d.ts +1 -1
- package/dist/components/close-button/CCloseButton.d.ts +6 -0
- package/dist/components/dropdown/CDropdown.d.ts +1 -0
- package/dist/components/modal/CModal.d.ts +6 -0
- package/dist/components/nav/CNav.d.ts +1 -1
- package/dist/components/navbar/CNavbar.d.ts +1 -1
- package/dist/components/offcanvas/COffcanvas.d.ts +4 -0
- package/dist/index.es.js +177 -81
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +177 -81
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utils/executeAfterTransition.d.ts +2 -0
- package/dist/utils/getTransitionDurationFromElement.d.ts +2 -0
- package/dist/utils/index.d.ts +3 -1
- package/package.json +2 -2
- package/src/components/avatar/CAvatar.tsx +1 -1
- package/src/components/badge/CBadge.tsx +1 -1
- package/src/components/button/CButton.tsx +1 -1
- package/src/components/button/__tests__/__snapshots__/CButton.spec.tsx.snap +0 -1
- package/src/components/card/CCard.tsx +1 -1
- package/src/components/carousel/CCarousel.tsx +9 -5
- package/src/components/carousel/__tests__/__snapshots__/CCarousel.spec.tsx.snap +9 -5
- package/src/components/close-button/CCloseButton.tsx +9 -1
- package/src/components/dropdown/CDropdown.tsx +43 -1
- package/src/components/dropdown/CDropdownMenu.tsx +1 -1
- package/src/components/dropdown/CDropdownToggle.tsx +3 -12
- package/src/components/modal/CModal.tsx +25 -9
- package/src/components/nav/CNav.tsx +2 -2
- package/src/components/nav/CNavGroup.tsx +9 -2
- package/src/components/nav/__tests__/__snapshots__/CNav.spec.tsx.snap +5 -4
- package/src/components/navbar/CNavbar.tsx +2 -2
- package/src/components/navbar/__tests__/CNavbar.spec.tsx +1 -1
- package/src/components/navbar/__tests__/__snapshots__/CNavbar.spec.tsx.snap +2 -1
- package/src/components/offcanvas/COffcanvas.tsx +8 -1
- package/src/components/popover/CPopover.tsx +2 -2
- package/src/components/progress/__tests__/__snapshots__/CProgress.spec.tsx.snap +10 -5
- package/src/components/progress/__tests__/__snapshots__/CProgressBar.spec.tsx.snap +0 -8
- package/src/components/sidebar/CSidebar.tsx +1 -1
- package/src/components/tooltip/CTooltip.tsx +2 -2
- package/src/components/widgets/CWidgetStatsA.tsx +1 -1
- package/src/components/widgets/CWidgetStatsB.tsx +2 -2
- package/src/components/widgets/CWidgetStatsC.tsx +4 -12
- package/src/components/widgets/CWidgetStatsD.tsx +1 -1
- package/src/components/widgets/CWidgetStatsE.tsx +1 -1
- package/src/components/widgets/CWidgetStatsF.tsx +1 -1
- package/src/components/widgets/__tests__/CWidgetStatsA.spec.tsx +1 -1
- package/src/components/widgets/__tests__/CWidgetStatsB.spec.tsx +1 -1
- package/src/components/widgets/__tests__/CWidgetStatsC.spec.tsx +1 -1
- package/src/components/widgets/__tests__/CWidgetStatsD.spec.tsx +1 -1
- package/src/components/widgets/__tests__/CWidgetStatsE.spec.tsx +1 -1
- package/src/components/widgets/__tests__/CWidgetStatsF.spec.tsx +1 -1
- package/src/components/widgets/__tests__/__snapshots__/CWidgetStatsA.spec.tsx.snap +1 -1
- package/src/components/widgets/__tests__/__snapshots__/CWidgetStatsB.spec.tsx.snap +12 -7
- package/src/components/widgets/__tests__/__snapshots__/CWidgetStatsC.spec.tsx.snap +14 -9
- package/src/components/widgets/__tests__/__snapshots__/CWidgetStatsD.spec.tsx.snap +2 -2
- package/src/components/widgets/__tests__/__snapshots__/CWidgetStatsE.spec.tsx.snap +1 -1
- package/src/components/widgets/__tests__/__snapshots__/CWidgetStatsF.spec.tsx.snap +2 -2
- package/src/hooks/usePopper.ts +10 -2
- package/src/types.ts +14 -7
- package/src/utils/executeAfterTransition.ts +46 -0
- package/src/utils/getTransitionDurationFromElement.ts +24 -0
- package/src/utils/index.ts +9 -1
package/dist/index.es.js
CHANGED
|
@@ -4357,14 +4357,103 @@ var createPopper = /*#__PURE__*/popperGenerator({
|
|
|
4357
4357
|
defaultModifiers: defaultModifiers
|
|
4358
4358
|
}); // eslint-disable-next-line import/no-unused-modules
|
|
4359
4359
|
|
|
4360
|
+
var getTransitionDurationFromElement = function (element) {
|
|
4361
|
+
if (!element) {
|
|
4362
|
+
return 0;
|
|
4363
|
+
}
|
|
4364
|
+
// Get transition-duration of the element
|
|
4365
|
+
var _a = window.getComputedStyle(element), transitionDuration = _a.transitionDuration, transitionDelay = _a.transitionDelay;
|
|
4366
|
+
var floatTransitionDuration = Number.parseFloat(transitionDuration);
|
|
4367
|
+
var floatTransitionDelay = Number.parseFloat(transitionDelay);
|
|
4368
|
+
// Return 0 if element or transition duration is not found
|
|
4369
|
+
if (!floatTransitionDuration && !floatTransitionDelay) {
|
|
4370
|
+
return 0;
|
|
4371
|
+
}
|
|
4372
|
+
// If multiple durations are defined, take the first
|
|
4373
|
+
transitionDuration = transitionDuration.split(',')[0];
|
|
4374
|
+
transitionDelay = transitionDelay.split(',')[0];
|
|
4375
|
+
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * 1000;
|
|
4376
|
+
};
|
|
4377
|
+
|
|
4378
|
+
var execute = function (callback) {
|
|
4379
|
+
if (typeof callback === 'function') {
|
|
4380
|
+
callback();
|
|
4381
|
+
}
|
|
4382
|
+
};
|
|
4383
|
+
var triggerTransitionEnd = function (element) {
|
|
4384
|
+
element.dispatchEvent(new Event('transitionend'));
|
|
4385
|
+
};
|
|
4386
|
+
var executeAfterTransition = function (callback, transitionElement, waitForTransition) {
|
|
4387
|
+
if (waitForTransition === void 0) { waitForTransition = true; }
|
|
4388
|
+
if (!waitForTransition) {
|
|
4389
|
+
execute(callback);
|
|
4390
|
+
return;
|
|
4391
|
+
}
|
|
4392
|
+
var durationPadding = 5;
|
|
4393
|
+
var emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
|
|
4394
|
+
var called = false;
|
|
4395
|
+
var handler = function (_a) {
|
|
4396
|
+
var target = _a.target;
|
|
4397
|
+
if (target !== transitionElement) {
|
|
4398
|
+
return;
|
|
4399
|
+
}
|
|
4400
|
+
called = true;
|
|
4401
|
+
transitionElement.removeEventListener('transitionend', handler);
|
|
4402
|
+
execute(callback);
|
|
4403
|
+
};
|
|
4404
|
+
transitionElement.addEventListener('transitionend', handler);
|
|
4405
|
+
setTimeout(function () {
|
|
4406
|
+
if (!called) {
|
|
4407
|
+
triggerTransitionEnd(transitionElement);
|
|
4408
|
+
}
|
|
4409
|
+
}, emulatedDuration);
|
|
4410
|
+
};
|
|
4411
|
+
|
|
4412
|
+
var isRTL = function (element) {
|
|
4413
|
+
if (typeof document !== 'undefined' && document.documentElement.dir === 'rtl') {
|
|
4414
|
+
return true;
|
|
4415
|
+
}
|
|
4416
|
+
if (element) {
|
|
4417
|
+
return element.closest('[dir="rtl"]') !== null;
|
|
4418
|
+
}
|
|
4419
|
+
return false;
|
|
4420
|
+
};
|
|
4421
|
+
|
|
4422
|
+
var getRTLPlacement = function (placement, element) {
|
|
4423
|
+
switch (placement) {
|
|
4424
|
+
case 'right': {
|
|
4425
|
+
return isRTL(element) ? 'left' : 'right';
|
|
4426
|
+
}
|
|
4427
|
+
case 'left': {
|
|
4428
|
+
return isRTL(element) ? 'right' : 'left';
|
|
4429
|
+
}
|
|
4430
|
+
default: {
|
|
4431
|
+
return placement;
|
|
4432
|
+
}
|
|
4433
|
+
}
|
|
4434
|
+
};
|
|
4435
|
+
|
|
4436
|
+
var isInViewport = function (element) {
|
|
4437
|
+
var rect = element.getBoundingClientRect();
|
|
4438
|
+
return (Math.floor(rect.top) >= 0 &&
|
|
4439
|
+
Math.floor(rect.left) >= 0 &&
|
|
4440
|
+
Math.floor(rect.bottom) <= (window.innerHeight || document.documentElement.clientHeight) &&
|
|
4441
|
+
Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth));
|
|
4442
|
+
};
|
|
4443
|
+
|
|
4360
4444
|
var usePopper = function () {
|
|
4361
4445
|
var _popper = useRef();
|
|
4446
|
+
var el = useRef();
|
|
4362
4447
|
var initPopper = function (reference, popper, options) {
|
|
4363
4448
|
_popper.current = createPopper(reference, popper, options);
|
|
4449
|
+
el.current = popper;
|
|
4364
4450
|
};
|
|
4365
4451
|
var destroyPopper = function () {
|
|
4366
|
-
|
|
4367
|
-
|
|
4452
|
+
var popperInstance = _popper.current;
|
|
4453
|
+
if (popperInstance && el.current) {
|
|
4454
|
+
executeAfterTransition(function () {
|
|
4455
|
+
popperInstance.destroy();
|
|
4456
|
+
}, el.current);
|
|
4368
4457
|
}
|
|
4369
4458
|
_popper.current = undefined;
|
|
4370
4459
|
};
|
|
@@ -4474,13 +4563,14 @@ CAccordionHeader.propTypes = {
|
|
|
4474
4563
|
CAccordionHeader.displayName = 'CAccordionHeader';
|
|
4475
4564
|
|
|
4476
4565
|
var CCloseButton = forwardRef(function (_a, ref) {
|
|
4477
|
-
var className = _a.className, disabled = _a.disabled, white = _a.white, rest = __rest(_a, ["className", "disabled", "white"]);
|
|
4566
|
+
var className = _a.className, dark = _a.dark, disabled = _a.disabled, white = _a.white, rest = __rest(_a, ["className", "dark", "disabled", "white"]);
|
|
4478
4567
|
return (React.createElement("button", __assign({ type: "button", className: classNames('btn', 'btn-close', {
|
|
4479
4568
|
'btn-close-white': white,
|
|
4480
|
-
}, disabled, className), "aria-label": "Close", disabled: disabled }, rest, { ref: ref })));
|
|
4569
|
+
}, disabled, className), "aria-label": "Close", disabled: disabled }, (dark && { 'data-coreui-theme': 'dark' }), rest, { ref: ref })));
|
|
4481
4570
|
});
|
|
4482
4571
|
CCloseButton.propTypes = {
|
|
4483
4572
|
className: PropTypes.string,
|
|
4573
|
+
dark: PropTypes.bool,
|
|
4484
4574
|
disabled: PropTypes.bool,
|
|
4485
4575
|
white: PropTypes.bool,
|
|
4486
4576
|
};
|
|
@@ -4707,7 +4797,7 @@ CBreadcrumbItem.displayName = 'CBreadcrumbItem';
|
|
|
4707
4797
|
var CButton = forwardRef(function (_a, ref) {
|
|
4708
4798
|
var _b;
|
|
4709
4799
|
var children = _a.children, className = _a.className, _c = _a.color, color = _c === void 0 ? 'primary' : _c, _d = _a.component, component = _d === void 0 ? 'button' : _d, shape = _a.shape, size = _a.size, _e = _a.type, type = _e === void 0 ? 'button' : _e, variant = _a.variant, rest = __rest(_a, ["children", "className", "color", "component", "shape", "size", "type", "variant"]);
|
|
4710
|
-
return (React.createElement(CLink, __assign({ component: rest.href ? 'a' : component, type: type, className: classNames('btn', variant ? "btn-".concat(variant, "-").concat(color) : "btn-".concat(color), (_b = {}, _b["btn-".concat(size)] = size, _b), shape, className) }, rest, { ref: ref }), children));
|
|
4800
|
+
return (React.createElement(CLink, __assign({ component: rest.href ? 'a' : component }, (!rest.href && { type: type }), { className: classNames('btn', variant ? "btn-".concat(variant, "-").concat(color) : "btn-".concat(color), (_b = {}, _b["btn-".concat(size)] = size, _b), shape, className) }, rest, { ref: ref }), children));
|
|
4711
4801
|
});
|
|
4712
4802
|
CButton.propTypes = {
|
|
4713
4803
|
children: PropTypes.node,
|
|
@@ -4880,38 +4970,6 @@ CCardTitle.propTypes = {
|
|
|
4880
4970
|
};
|
|
4881
4971
|
CCardTitle.displayName = 'CCardTitle';
|
|
4882
4972
|
|
|
4883
|
-
var isRTL = function (element) {
|
|
4884
|
-
if (typeof document !== 'undefined' && document.documentElement.dir === 'rtl') {
|
|
4885
|
-
return true;
|
|
4886
|
-
}
|
|
4887
|
-
if (element) {
|
|
4888
|
-
return element.closest('[dir="rtl"]') !== null;
|
|
4889
|
-
}
|
|
4890
|
-
return false;
|
|
4891
|
-
};
|
|
4892
|
-
|
|
4893
|
-
var getRTLPlacement = function (placement, element) {
|
|
4894
|
-
switch (placement) {
|
|
4895
|
-
case 'right': {
|
|
4896
|
-
return isRTL(element) ? 'left' : 'right';
|
|
4897
|
-
}
|
|
4898
|
-
case 'left': {
|
|
4899
|
-
return isRTL(element) ? 'right' : 'left';
|
|
4900
|
-
}
|
|
4901
|
-
default: {
|
|
4902
|
-
return placement;
|
|
4903
|
-
}
|
|
4904
|
-
}
|
|
4905
|
-
};
|
|
4906
|
-
|
|
4907
|
-
var isInViewport = function (element) {
|
|
4908
|
-
var rect = element.getBoundingClientRect();
|
|
4909
|
-
return (Math.floor(rect.top) >= 0 &&
|
|
4910
|
-
Math.floor(rect.left) >= 0 &&
|
|
4911
|
-
Math.floor(rect.bottom) <= (window.innerHeight || document.documentElement.clientHeight) &&
|
|
4912
|
-
Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth));
|
|
4913
|
-
};
|
|
4914
|
-
|
|
4915
4973
|
var CCarouselContext = createContext({});
|
|
4916
4974
|
var CCarousel = forwardRef(function (_a, ref) {
|
|
4917
4975
|
var children = _a.children, _b = _a.activeIndex, activeIndex = _b === void 0 ? 0 : _b, className = _a.className, controls = _a.controls, dark = _a.dark, indicators = _a.indicators, _c = _a.interval, interval = _c === void 0 ? 5000 : _c, onSlid = _a.onSlid, onSlide = _a.onSlide, _d = _a.pause, pause = _d === void 0 ? 'hover' : _d, _e = _a.touch, touch = _e === void 0 ? true : _e, transition = _a.transition, _f = _a.wrap, wrap = _f === void 0 ? true : _f, rest = __rest(_a, ["children", "activeIndex", "className", "controls", "dark", "indicators", "interval", "onSlid", "onSlide", "pause", "touch", "transition", "wrap"]);
|
|
@@ -5016,17 +5074,18 @@ var CCarousel = forwardRef(function (_a, ref) {
|
|
|
5016
5074
|
setTouchPosition(touchDown);
|
|
5017
5075
|
};
|
|
5018
5076
|
return (React.createElement("div", __assign({ className: classNames('carousel slide', {
|
|
5019
|
-
'carousel-dark': dark,
|
|
5020
5077
|
'carousel-fade': transition === 'crossfade',
|
|
5021
|
-
}, className), onMouseEnter: _pause, onMouseLeave: cycle }, (touch && { onTouchStart: handleTouchStart, onTouchMove: handleTouchMove }), rest, { ref: forkedRef }),
|
|
5078
|
+
}, className) }, (dark && { 'data-coreui-theme': 'dark' }), { onMouseEnter: _pause, onMouseLeave: cycle }, (touch && { onTouchStart: handleTouchStart, onTouchMove: handleTouchMove }), rest, { ref: forkedRef }),
|
|
5022
5079
|
React.createElement(CCarouselContext.Provider, { value: {
|
|
5023
5080
|
setAnimating: setAnimating,
|
|
5024
5081
|
setCustomInterval: setCustomInterval,
|
|
5025
5082
|
} },
|
|
5026
|
-
indicators && (React.createElement("
|
|
5027
|
-
return (React.createElement("
|
|
5083
|
+
indicators && (React.createElement("div", { className: "carousel-indicators" }, Array.from({ length: itemsNumber }, function (_, i) { return i; }).map(function (index) {
|
|
5084
|
+
return (React.createElement("button", __assign({ key: "indicator".concat(index), onClick: function () {
|
|
5028
5085
|
!animating && handleIndicatorClick(index);
|
|
5029
|
-
}, className:
|
|
5086
|
+
}, className: classNames({
|
|
5087
|
+
active: active === index
|
|
5088
|
+
}), "data-coreui-target": "" }, (active === index && { 'aria-current': true }), { "aria-label": "Slide ".concat(index + 1) })));
|
|
5030
5089
|
}))),
|
|
5031
5090
|
React.createElement("div", { className: "carousel-inner" }, Children.map(children, function (child, index) {
|
|
5032
5091
|
if (React.isValidElement(child)) {
|
|
@@ -5159,6 +5218,18 @@ CConditionalPortal.propTypes = {
|
|
|
5159
5218
|
};
|
|
5160
5219
|
CConditionalPortal.displayName = 'CConditionalPortal';
|
|
5161
5220
|
|
|
5221
|
+
var getNextActiveElement = function (list, activeElement, shouldGetNext, isCycleAllowed) {
|
|
5222
|
+
var listLength = list.length;
|
|
5223
|
+
var index = list.indexOf(activeElement);
|
|
5224
|
+
if (index === -1) {
|
|
5225
|
+
return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
|
|
5226
|
+
}
|
|
5227
|
+
index += shouldGetNext ? 1 : -1;
|
|
5228
|
+
if (isCycleAllowed) {
|
|
5229
|
+
index = (index + listLength) % listLength;
|
|
5230
|
+
}
|
|
5231
|
+
return list[Math.max(0, Math.min(index, listLength - 1))];
|
|
5232
|
+
};
|
|
5162
5233
|
var getPlacement = function (placement, direction, alignment, isRTL) {
|
|
5163
5234
|
var _placement = placement;
|
|
5164
5235
|
if (direction === 'dropup') {
|
|
@@ -5221,18 +5292,33 @@ var CDropdown = forwardRef(function (_a, ref) {
|
|
|
5221
5292
|
}, [visible]);
|
|
5222
5293
|
useEffect(function () {
|
|
5223
5294
|
if (_visible && dropdownToggleRef.current && dropdownMenuRef.current) {
|
|
5295
|
+
dropdownToggleRef.current.focus();
|
|
5224
5296
|
popper && initPopper(dropdownToggleRef.current, dropdownMenuRef.current, popperConfig);
|
|
5225
5297
|
window.addEventListener('mouseup', handleMouseUp);
|
|
5226
5298
|
window.addEventListener('keyup', handleKeyup);
|
|
5299
|
+
dropdownToggleRef.current.addEventListener('keydown', handleKeydown);
|
|
5300
|
+
dropdownMenuRef.current.addEventListener('keydown', handleKeydown);
|
|
5227
5301
|
onShow && onShow();
|
|
5228
5302
|
}
|
|
5229
5303
|
return function () {
|
|
5230
5304
|
popper && destroyPopper();
|
|
5231
5305
|
window.removeEventListener('mouseup', handleMouseUp);
|
|
5232
5306
|
window.removeEventListener('keyup', handleKeyup);
|
|
5307
|
+
dropdownToggleRef.current &&
|
|
5308
|
+
dropdownToggleRef.current.removeEventListener('keydown', handleKeydown);
|
|
5309
|
+
dropdownMenuRef.current &&
|
|
5310
|
+
dropdownMenuRef.current.removeEventListener('keydown', handleKeydown);
|
|
5233
5311
|
onHide && onHide();
|
|
5234
5312
|
};
|
|
5235
5313
|
}, [_visible]);
|
|
5314
|
+
var handleKeydown = function (event) {
|
|
5315
|
+
if (_visible && (event.key === 'ArrowDown' || event.key === 'ArrowUp')) {
|
|
5316
|
+
var target = event.target;
|
|
5317
|
+
event.preventDefault();
|
|
5318
|
+
var items = [].concat.apply([], Element.prototype.querySelectorAll.call(dropdownMenuRef.current, '.dropdown-item:not(.disabled):not(:disabled)'));
|
|
5319
|
+
getNextActiveElement(items, target, event.key === 'ArrowDown', true).focus();
|
|
5320
|
+
}
|
|
5321
|
+
};
|
|
5236
5322
|
var handleKeyup = function (event) {
|
|
5237
5323
|
if (autoClose === false) {
|
|
5238
5324
|
return;
|
|
@@ -5260,7 +5346,6 @@ var CDropdown = forwardRef(function (_a, ref) {
|
|
|
5260
5346
|
'dropup dropup-center': direction === 'dropup-center'
|
|
5261
5347
|
},
|
|
5262
5348
|
_b["".concat(direction)] = direction && direction !== 'center' && direction !== 'dropup-center',
|
|
5263
|
-
_b.show = _visible,
|
|
5264
5349
|
_b), className) }, rest, { ref: forkedRef }), children))));
|
|
5265
5350
|
});
|
|
5266
5351
|
var alignmentDirection = PropTypes.oneOf(['start', 'end']);
|
|
@@ -5354,9 +5439,8 @@ var CDropdownMenu = forwardRef(function (_a, ref) {
|
|
|
5354
5439
|
var forkedRef = useForkedRef(ref, dropdownMenuRef);
|
|
5355
5440
|
return (React.createElement(CConditionalPortal, { portal: portal !== null && portal !== void 0 ? portal : false },
|
|
5356
5441
|
React.createElement(Component, __assign({ className: classNames('dropdown-menu', {
|
|
5357
|
-
'dropdown-menu-dark': dark,
|
|
5358
5442
|
show: visible,
|
|
5359
|
-
}, alignment && alignmentClassNames(alignment), className), ref: forkedRef, role: "menu", "aria-hidden": !visible }, (!popper && { 'data-coreui-popper': 'static' }), rest), Component === 'ul'
|
|
5443
|
+
}, alignment && alignmentClassNames(alignment), className), ref: forkedRef, role: "menu", "aria-hidden": !visible }, (!popper && { 'data-coreui-popper': 'static' }), (dark && { 'data-coreui-theme': 'dark' }), rest), Component === 'ul'
|
|
5360
5444
|
? React.Children.map(children, function (child, index) {
|
|
5361
5445
|
if (React.isValidElement(child)) {
|
|
5362
5446
|
return React.createElement("li", { key: index }, React.cloneElement(child));
|
|
@@ -5374,7 +5458,7 @@ CDropdownMenu.displayName = 'CDropdownMenu';
|
|
|
5374
5458
|
|
|
5375
5459
|
var CDropdownToggle = function (_a) {
|
|
5376
5460
|
var children = _a.children, _b = _a.caret, caret = _b === void 0 ? true : _b, custom = _a.custom, className = _a.className, split = _a.split, _c = _a.trigger, trigger = _c === void 0 ? 'click' : _c, rest = __rest(_a, ["children", "caret", "custom", "className", "split", "trigger"]);
|
|
5377
|
-
var _d = useContext(CDropdownContext), dropdownToggleRef = _d.dropdownToggleRef,
|
|
5461
|
+
var _d = useContext(CDropdownContext), dropdownToggleRef = _d.dropdownToggleRef, visible = _d.visible, setVisible = _d.setVisible;
|
|
5378
5462
|
var triggers = __assign(__assign({}, ((trigger === 'click' || trigger.includes('click')) && {
|
|
5379
5463
|
onClick: function (event) {
|
|
5380
5464
|
event.preventDefault();
|
|
@@ -5387,17 +5471,13 @@ var CDropdownToggle = function (_a) {
|
|
|
5387
5471
|
var togglerProps = __assign({ className: classNames({
|
|
5388
5472
|
'dropdown-toggle': caret,
|
|
5389
5473
|
'dropdown-toggle-split': split,
|
|
5390
|
-
|
|
5474
|
+
show: visible,
|
|
5391
5475
|
}, className), 'aria-expanded': visible }, (!rest.disabled && __assign({}, triggers)));
|
|
5392
|
-
// We use any because Toggler can be `a` as well as `button`.
|
|
5393
5476
|
var Toggler = function () {
|
|
5394
5477
|
if (custom && React.isValidElement(children)) {
|
|
5395
5478
|
return (React.createElement(React.Fragment, null, React.cloneElement(children, __assign(__assign({ 'aria-expanded': visible }, (!rest.disabled && __assign({}, triggers))), { ref: dropdownToggleRef }))));
|
|
5396
5479
|
}
|
|
5397
|
-
|
|
5398
|
-
return (React.createElement("a", __assign({ href: "#" }, togglerProps, { ref: dropdownToggleRef }), children));
|
|
5399
|
-
}
|
|
5400
|
-
return (React.createElement(CButton, __assign({ type: "button" }, togglerProps, { tabIndex: 0 }, rest, { ref: dropdownToggleRef }),
|
|
5480
|
+
return (React.createElement(CButton, __assign({}, togglerProps, { tabIndex: 0 }, rest, { ref: dropdownToggleRef }),
|
|
5401
5481
|
children,
|
|
5402
5482
|
split && React.createElement("span", { className: "visually-hidden" }, "Toggle Dropdown")));
|
|
5403
5483
|
};
|
|
@@ -6017,12 +6097,13 @@ CModalDialog.displayName = 'CModalDialog';
|
|
|
6017
6097
|
|
|
6018
6098
|
var CModalContext = createContext({});
|
|
6019
6099
|
var CModal = forwardRef(function (_a, ref) {
|
|
6020
|
-
var children = _a.children, alignment = _a.alignment, _b = _a.backdrop, backdrop = _b === void 0 ? true : _b, className = _a.className, _c = _a.duration, duration = _c === void 0 ? 150 : _c, fullscreen = _a.fullscreen,
|
|
6100
|
+
var children = _a.children, alignment = _a.alignment, _b = _a.backdrop, backdrop = _b === void 0 ? true : _b, className = _a.className, _c = _a.duration, duration = _c === void 0 ? 150 : _c, _d = _a.focus, focus = _d === void 0 ? true : _d, fullscreen = _a.fullscreen, _e = _a.keyboard, keyboard = _e === void 0 ? true : _e, onClose = _a.onClose, onClosePrevented = _a.onClosePrevented, onShow = _a.onShow, _f = _a.portal, portal = _f === void 0 ? true : _f, scrollable = _a.scrollable, size = _a.size, _g = _a.transition, transition = _g === void 0 ? true : _g, _h = _a.unmountOnClose, unmountOnClose = _h === void 0 ? true : _h, visible = _a.visible, rest = __rest(_a, ["children", "alignment", "backdrop", "className", "duration", "focus", "fullscreen", "keyboard", "onClose", "onClosePrevented", "onShow", "portal", "scrollable", "size", "transition", "unmountOnClose", "visible"]);
|
|
6101
|
+
var activeElementRef = useRef(null);
|
|
6021
6102
|
var modalRef = useRef(null);
|
|
6022
6103
|
var modalContentRef = useRef(null);
|
|
6023
6104
|
var forkedRef = useForkedRef(ref, modalRef);
|
|
6024
|
-
var
|
|
6025
|
-
var
|
|
6105
|
+
var _j = useState(visible), _visible = _j[0], setVisible = _j[1];
|
|
6106
|
+
var _k = useState(false), staticBackdrop = _k[0], setStaticBackdrop = _k[1];
|
|
6026
6107
|
var contextValues = {
|
|
6027
6108
|
visible: _visible,
|
|
6028
6109
|
setVisible: setVisible,
|
|
@@ -6031,10 +6112,17 @@ var CModal = forwardRef(function (_a, ref) {
|
|
|
6031
6112
|
setVisible(visible);
|
|
6032
6113
|
}, [visible]);
|
|
6033
6114
|
useEffect(function () {
|
|
6034
|
-
|
|
6035
|
-
|
|
6115
|
+
var _a;
|
|
6116
|
+
if (_visible) {
|
|
6117
|
+
activeElementRef.current = document.activeElement;
|
|
6118
|
+
document.addEventListener('mouseup', handleClickOutside);
|
|
6119
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
6120
|
+
}
|
|
6121
|
+
else {
|
|
6122
|
+
(_a = activeElementRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
6123
|
+
}
|
|
6036
6124
|
return function () {
|
|
6037
|
-
document.removeEventListener('
|
|
6125
|
+
document.removeEventListener('mouseup', handleClickOutside);
|
|
6038
6126
|
document.removeEventListener('keydown', handleKeyDown);
|
|
6039
6127
|
};
|
|
6040
6128
|
}, [_visible]);
|
|
@@ -6059,7 +6147,7 @@ var CModal = forwardRef(function (_a, ref) {
|
|
|
6059
6147
|
}
|
|
6060
6148
|
setTimeout(function () {
|
|
6061
6149
|
var _a;
|
|
6062
|
-
(_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
6150
|
+
focus && ((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.focus());
|
|
6063
6151
|
}, transition ? duration : 0);
|
|
6064
6152
|
}
|
|
6065
6153
|
else {
|
|
@@ -6091,13 +6179,15 @@ var CModal = forwardRef(function (_a, ref) {
|
|
|
6091
6179
|
return (React.createElement(React.Fragment, null,
|
|
6092
6180
|
React.createElement(Transition$1, { in: _visible, mountOnEnter: true, nodeRef: modalRef, onEnter: onShow, onExit: onClose, unmountOnExit: unmountOnClose, timeout: transition ? duration : 0 }, function (state) { return (React.createElement(CConditionalPortal, { portal: portal },
|
|
6093
6181
|
React.createElement(CModalContext.Provider, { value: contextValues },
|
|
6094
|
-
React.createElement("div", { className: classNames('modal', {
|
|
6182
|
+
React.createElement("div", __assign({ className: classNames('modal', {
|
|
6095
6183
|
'modal-static': staticBackdrop,
|
|
6096
6184
|
fade: transition,
|
|
6097
6185
|
show: state === 'entered',
|
|
6098
|
-
}, className), tabIndex: -1
|
|
6186
|
+
}, className), tabIndex: -1 }, (_visible
|
|
6187
|
+
? { 'aria-modal': true, role: 'dialog' }
|
|
6188
|
+
: { 'aria-hidden': 'true' }), { style: __assign({}, (state !== 'exited' && { display: 'block' })) }, rest, { ref: forkedRef }),
|
|
6099
6189
|
React.createElement(CModalDialog, { alignment: alignment, fullscreen: fullscreen, scrollable: scrollable, size: size },
|
|
6100
|
-
React.createElement(CModalContent,
|
|
6190
|
+
React.createElement(CModalContent, { ref: modalContentRef }, children)))))); }),
|
|
6101
6191
|
backdrop && (React.createElement(CConditionalPortal, { portal: portal },
|
|
6102
6192
|
React.createElement(CBackdrop, { visible: _visible })))));
|
|
6103
6193
|
});
|
|
@@ -6107,6 +6197,7 @@ CModal.propTypes = {
|
|
|
6107
6197
|
children: PropTypes.node,
|
|
6108
6198
|
className: PropTypes.string,
|
|
6109
6199
|
duration: PropTypes.number,
|
|
6200
|
+
focus: PropTypes.bool,
|
|
6110
6201
|
fullscreen: PropTypes.oneOfType([
|
|
6111
6202
|
PropTypes.bool,
|
|
6112
6203
|
PropTypes.oneOf(['sm', 'md', 'lg', 'xl', 'xxl']),
|
|
@@ -6182,7 +6273,7 @@ CNav.propTypes = {
|
|
|
6182
6273
|
className: PropTypes.string,
|
|
6183
6274
|
component: PropTypes.elementType,
|
|
6184
6275
|
layout: PropTypes.oneOf(['fill', 'justified']),
|
|
6185
|
-
variant: PropTypes.oneOf(['tabs', '
|
|
6276
|
+
variant: PropTypes.oneOf(['pills', 'tabs', 'underline']),
|
|
6186
6277
|
};
|
|
6187
6278
|
CNav.displayName = 'CNav';
|
|
6188
6279
|
|
|
@@ -6221,14 +6312,19 @@ CSidebarNav.propTypes = {
|
|
|
6221
6312
|
};
|
|
6222
6313
|
CSidebarNav.displayName = 'CSidebarNav';
|
|
6223
6314
|
|
|
6315
|
+
var isInVisibleGroup = function (el1, el2) {
|
|
6316
|
+
var array1 = el1.toString().split('.');
|
|
6317
|
+
var array2 = el2.toString().split('.');
|
|
6318
|
+
return array2.every(function (item, index) { return item === array1[index]; });
|
|
6319
|
+
};
|
|
6224
6320
|
var CNavGroup = forwardRef(function (_a, ref) {
|
|
6225
6321
|
var children = _a.children, className = _a.className, compact = _a.compact, idx = _a.idx, toggler = _a.toggler, visible = _a.visible, rest = __rest(_a, ["children", "className", "compact", "idx", "toggler", "visible"]);
|
|
6226
6322
|
var _b = useState(), height = _b[0], setHeight = _b[1];
|
|
6227
6323
|
var navItemsRef = useRef(null);
|
|
6228
6324
|
var _c = useContext(CNavContext), visibleGroup = _c.visibleGroup, setVisibleGroup = _c.setVisibleGroup;
|
|
6229
|
-
var _d = useState(Boolean(visible || (idx && visibleGroup && visibleGroup
|
|
6325
|
+
var _d = useState(Boolean(visible || (idx && visibleGroup && isInVisibleGroup(visibleGroup, idx)))), _visible = _d[0], setVisible = _d[1];
|
|
6230
6326
|
useEffect(function () {
|
|
6231
|
-
setVisible(Boolean(idx && visibleGroup && visibleGroup
|
|
6327
|
+
setVisible(Boolean(idx && visibleGroup && isInVisibleGroup(visibleGroup, idx)));
|
|
6232
6328
|
}, [visibleGroup]);
|
|
6233
6329
|
var handleTogglerOnCLick = function (event) {
|
|
6234
6330
|
event.preventDefault();
|
|
@@ -6331,9 +6427,8 @@ var CNavbar = forwardRef(function (_a, ref) {
|
|
|
6331
6427
|
var children = _a.children, className = _a.className, color = _a.color, colorScheme = _a.colorScheme, _c = _a.component, Component = _c === void 0 ? 'nav' : _c, container = _a.container, expand = _a.expand, placement = _a.placement, rest = __rest(_a, ["children", "className", "color", "colorScheme", "component", "container", "expand", "placement"]);
|
|
6332
6428
|
return (React.createElement(Component, __assign({ className: classNames('navbar', (_b = {},
|
|
6333
6429
|
_b["bg-".concat(color)] = color,
|
|
6334
|
-
_b["navbar-".concat(colorScheme)] = colorScheme,
|
|
6335
6430
|
_b[typeof expand === 'boolean' ? 'navbar-expand' : "navbar-expand-".concat(expand)] = expand,
|
|
6336
|
-
_b), placement, className) }, rest, { ref: ref }), container ? (React.createElement("div", { className: typeof container === 'string' ? "container-".concat(container) : 'container' }, children)) : (React.createElement(React.Fragment, null, children))));
|
|
6431
|
+
_b), placement, className) }, (colorScheme && { 'data-coreui-theme': colorScheme }), rest, { ref: ref }), container ? (React.createElement("div", { className: typeof container === 'string' ? "container-".concat(container) : 'container' }, children)) : (React.createElement(React.Fragment, null, children))));
|
|
6337
6432
|
});
|
|
6338
6433
|
CNavbar.propTypes = {
|
|
6339
6434
|
children: PropTypes.node,
|
|
@@ -6404,7 +6499,7 @@ CNavbarToggler.propTypes = {
|
|
|
6404
6499
|
CNavbarToggler.displayName = 'CNavbarToggler';
|
|
6405
6500
|
|
|
6406
6501
|
var COffcanvas = forwardRef(function (_a, ref) {
|
|
6407
|
-
var children = _a.children, _b = _a.backdrop, backdrop = _b === void 0 ? true : _b, className = _a.className, _c = _a.keyboard, keyboard = _c === void 0 ? true : _c, onHide = _a.onHide, onShow = _a.onShow, placement = _a.placement, _d = _a.portal, portal = _d === void 0 ? false : _d, _e = _a.responsive, responsive = _e === void 0 ? true : _e, _f = _a.scroll, scroll = _f === void 0 ? false : _f, _g = _a.visible, visible = _g === void 0 ? false : _g, rest = __rest(_a, ["children", "backdrop", "className", "keyboard", "onHide", "onShow", "placement", "portal", "responsive", "scroll", "visible"]);
|
|
6502
|
+
var children = _a.children, _b = _a.backdrop, backdrop = _b === void 0 ? true : _b, className = _a.className, dark = _a.dark, _c = _a.keyboard, keyboard = _c === void 0 ? true : _c, onHide = _a.onHide, onShow = _a.onShow, placement = _a.placement, _d = _a.portal, portal = _d === void 0 ? false : _d, _e = _a.responsive, responsive = _e === void 0 ? true : _e, _f = _a.scroll, scroll = _f === void 0 ? false : _f, _g = _a.visible, visible = _g === void 0 ? false : _g, rest = __rest(_a, ["children", "backdrop", "className", "dark", "keyboard", "onHide", "onShow", "placement", "portal", "responsive", "scroll", "visible"]);
|
|
6408
6503
|
var _h = useState(visible), _visible = _h[0], setVisible = _h[1];
|
|
6409
6504
|
var offcanvasRef = useRef(null);
|
|
6410
6505
|
var forkedRef = useForkedRef(ref, offcanvasRef);
|
|
@@ -6445,7 +6540,7 @@ var COffcanvas = forwardRef(function (_a, ref) {
|
|
|
6445
6540
|
_a.showing = state === 'entering',
|
|
6446
6541
|
_a.show = state === 'entered',
|
|
6447
6542
|
_a['show hiding'] = state === 'exiting',
|
|
6448
|
-
_a), className), role: "dialog", tabIndex: -1, onKeyDown: handleKeyDown }, rest, { ref: forkedRef }), children)));
|
|
6543
|
+
_a), className), role: "dialog", tabIndex: -1, onKeyDown: handleKeyDown }, (dark && { 'data-coreui-theme': 'dark' }), rest, { ref: forkedRef }), children)));
|
|
6449
6544
|
}),
|
|
6450
6545
|
backdrop && (React.createElement(CConditionalPortal, { portal: portal },
|
|
6451
6546
|
React.createElement(CBackdrop, { className: "offcanvas-backdrop", onClick: handleBackdropDismiss, visible: _visible })))));
|
|
@@ -6454,6 +6549,7 @@ COffcanvas.propTypes = {
|
|
|
6454
6549
|
backdrop: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['static'])]),
|
|
6455
6550
|
children: PropTypes.node,
|
|
6456
6551
|
className: PropTypes.string,
|
|
6552
|
+
dark: PropTypes.bool,
|
|
6457
6553
|
keyboard: PropTypes.bool,
|
|
6458
6554
|
onHide: PropTypes.func,
|
|
6459
6555
|
onShow: PropTypes.func,
|
|
@@ -6697,7 +6793,7 @@ var CPopover = function (_a) {
|
|
|
6697
6793
|
typeof window !== 'undefined' &&
|
|
6698
6794
|
createPortal(React.createElement(Transition$1, { in: _visible, mountOnEnter: true, nodeRef: popoverRef, onEnter: onShow, onExit: onHide, timeout: {
|
|
6699
6795
|
enter: 0,
|
|
6700
|
-
exit: 200,
|
|
6796
|
+
exit: popoverRef.current ? getTransitionDurationFromElement(popoverRef.current) + 50 : 200,
|
|
6701
6797
|
}, unmountOnExit: true }, function (state) { return (React.createElement("div", __assign({ className: classNames('popover', 'bs-popover-auto', {
|
|
6702
6798
|
fade: animation,
|
|
6703
6799
|
show: state === 'entered',
|
|
@@ -7310,7 +7406,7 @@ var CTooltip = function (_a) {
|
|
|
7310
7406
|
typeof window !== 'undefined' &&
|
|
7311
7407
|
createPortal(React.createElement(Transition$1, { in: _visible, mountOnEnter: true, onEnter: onShow, onExit: onHide, timeout: {
|
|
7312
7408
|
enter: 0,
|
|
7313
|
-
exit: 200,
|
|
7409
|
+
exit: tooltipRef.current ? getTransitionDurationFromElement(tooltipRef.current) + 50 : 200,
|
|
7314
7410
|
}, unmountOnExit: true }, function (state) { return (React.createElement("div", __assign({ className: classNames('tooltip', 'bs-tooltip-auto', {
|
|
7315
7411
|
fade: animation,
|
|
7316
7412
|
show: state === 'entered',
|
|
@@ -7342,7 +7438,7 @@ CTooltip.displayName = 'CTooltip';
|
|
|
7342
7438
|
var CWidgetStatsA = forwardRef(function (_a, ref) {
|
|
7343
7439
|
var _b;
|
|
7344
7440
|
var action = _a.action, chart = _a.chart, className = _a.className, color = _a.color, title = _a.title, value = _a.value, rest = __rest(_a, ["action", "chart", "className", "color", "title", "value"]);
|
|
7345
|
-
return (React.createElement(CCard, __assign({ className: classNames((_b = {}, _b["bg-".concat(color)] = color, _b['text-
|
|
7441
|
+
return (React.createElement(CCard, __assign({ className: classNames((_b = {}, _b["bg-".concat(color)] = color, _b['text-white'] = color, _b), className) }, rest, { ref: ref }),
|
|
7346
7442
|
React.createElement(CCardBody, { className: "pb-0 d-flex justify-content-between align-items-start" },
|
|
7347
7443
|
React.createElement("div", null,
|
|
7348
7444
|
value && React.createElement("div", { className: "fs-4 fw-semibold" }, value),
|
|
@@ -7362,12 +7458,12 @@ CWidgetStatsA.displayName = 'CWidgetStatsA';
|
|
|
7362
7458
|
|
|
7363
7459
|
var CWidgetStatsB = forwardRef(function (_a, ref) {
|
|
7364
7460
|
var className = _a.className, color = _a.color, inverse = _a.inverse, progress = _a.progress, text = _a.text, title = _a.title, value = _a.value, rest = __rest(_a, ["className", "color", "inverse", "progress", "text", "title", "value"]);
|
|
7365
|
-
return (React.createElement(CCard, __assign({ className: className, color: color }, (inverse && { textColor: '
|
|
7461
|
+
return (React.createElement(CCard, __assign({ className: className, color: color }, (inverse && { textColor: 'white' }), rest, { ref: ref }),
|
|
7366
7462
|
React.createElement(CCardBody, null,
|
|
7367
7463
|
value && React.createElement("div", { className: "fs-4 fw-semibold" }, value),
|
|
7368
7464
|
title && React.createElement("div", null, title),
|
|
7369
7465
|
React.createElement(CProgress, __assign({ className: "my-2", height: 4 }, (inverse && { white: true }), progress)),
|
|
7370
|
-
text && (React.createElement("small", { className: inverse ? 'text-
|
|
7466
|
+
text && (React.createElement("small", { className: inverse ? 'text-white text-opacity-75' : 'text-body-secondary' }, text)))));
|
|
7371
7467
|
});
|
|
7372
7468
|
CWidgetStatsB.propTypes = {
|
|
7373
7469
|
className: PropTypes.string,
|
|
@@ -7382,11 +7478,11 @@ CWidgetStatsB.displayName = 'CWidgetCWidgetStatsB';
|
|
|
7382
7478
|
|
|
7383
7479
|
var CWidgetStatsC = forwardRef(function (_a, ref) {
|
|
7384
7480
|
var className = _a.className, color = _a.color, icon = _a.icon, inverse = _a.inverse, progress = _a.progress, title = _a.title, value = _a.value, rest = __rest(_a, ["className", "color", "icon", "inverse", "progress", "title", "value"]);
|
|
7385
|
-
return (React.createElement(CCard, __assign({ className: className, color: color }, (inverse && { textColor: '
|
|
7481
|
+
return (React.createElement(CCard, __assign({ className: className, color: color }, (inverse && { textColor: 'white' }), rest, { ref: ref }),
|
|
7386
7482
|
React.createElement(CCardBody, null,
|
|
7387
|
-
icon &&
|
|
7388
|
-
value &&
|
|
7389
|
-
title && (React.createElement("div", { className: inverse ? 'text-
|
|
7483
|
+
icon && React.createElement("div", { className: "text-end mb-4" }, icon),
|
|
7484
|
+
value && React.createElement("div", { className: "fs-4 fw-semibold" }, value),
|
|
7485
|
+
title && (React.createElement("div", { className: inverse ? 'text-white text-opacity-75' : 'text-body-secondary' }, title)),
|
|
7390
7486
|
React.createElement(CProgress, __assign({ className: "mt-3 mb-0", height: 4 }, (inverse && { white: true }), progress)))));
|
|
7391
7487
|
});
|
|
7392
7488
|
CWidgetStatsC.propTypes = {
|
|
@@ -7415,7 +7511,7 @@ var CWidgetStatsD = forwardRef(function (_a, ref) {
|
|
|
7415
7511
|
index % 2 !== 0 && React.createElement("div", { className: "vr" }),
|
|
7416
7512
|
React.createElement(CCol, null,
|
|
7417
7513
|
React.createElement("div", { className: "fs-5 fw-semibold" }, value.value),
|
|
7418
|
-
React.createElement("div", { className: "text-uppercase text-
|
|
7514
|
+
React.createElement("div", { className: "text-uppercase text-body-secondary small" }, value.title))));
|
|
7419
7515
|
}))));
|
|
7420
7516
|
});
|
|
7421
7517
|
CWidgetStatsD.propTypes = {
|
|
@@ -7431,7 +7527,7 @@ var CWidgetStatsE = forwardRef(function (_a, ref) {
|
|
|
7431
7527
|
var chart = _a.chart, className = _a.className, title = _a.title, value = _a.value, rest = __rest(_a, ["chart", "className", "title", "value"]);
|
|
7432
7528
|
return (React.createElement(CCard, __assign({ className: classNames(className) }, rest, { ref: ref }),
|
|
7433
7529
|
React.createElement(CCardBody, { className: "text-center" },
|
|
7434
|
-
title && (React.createElement("div", { className: "text-
|
|
7530
|
+
title && (React.createElement("div", { className: "text-body-secondary small text-uppercase fw-semibold" }, title)),
|
|
7435
7531
|
value && React.createElement("div", { className: "fs-6 fw-semibold py-3" }, value),
|
|
7436
7532
|
chart)));
|
|
7437
7533
|
});
|
|
@@ -7451,7 +7547,7 @@ var CWidgetStatsF = forwardRef(function (_a, ref) {
|
|
|
7451
7547
|
React.createElement("div", { className: "me-3 text-white bg-".concat(color, " ").concat(padding ? 'p-3' : 'p-4') }, icon),
|
|
7452
7548
|
React.createElement("div", null,
|
|
7453
7549
|
React.createElement("div", { className: "fs-6 fw-semibold text-".concat(color) }, value),
|
|
7454
|
-
React.createElement("div", { className: "text-
|
|
7550
|
+
React.createElement("div", { className: "text-body-secondary text-uppercase fw-semibold small" }, title))),
|
|
7455
7551
|
footer && React.createElement(CCardFooter, null, footer)));
|
|
7456
7552
|
});
|
|
7457
7553
|
CWidgetStatsF.propTypes = {
|