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