@coreui/react 4.9.0-alpha.0 → 4.9.0-alpha.1
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/tooltip/CTooltip.d.ts +2 -2
- package/dist/index.es.js +120 -46
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +120 -46
- package/dist/index.js.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/isRTL.d.ts +2 -0
- package/package.json +1 -1
- package/src/components/dropdown/CDropdownMenu.tsx +5 -4
- package/src/components/popover/CPopover.tsx +61 -25
- package/src/components/tooltip/CTooltip.tsx +65 -30
- package/src/utils/index.ts +2 -1
- package/src/utils/isRTL.ts +13 -0
package/dist/index.js
CHANGED
|
@@ -3041,6 +3041,16 @@ var isInViewport = function (element) {
|
|
|
3041
3041
|
Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth));
|
|
3042
3042
|
};
|
|
3043
3043
|
|
|
3044
|
+
var isRTL = function (element) {
|
|
3045
|
+
if (document.documentElement.dir === 'rtl') {
|
|
3046
|
+
return true;
|
|
3047
|
+
}
|
|
3048
|
+
if (element) {
|
|
3049
|
+
return element.closest('[dir="rtl"]') !== null;
|
|
3050
|
+
}
|
|
3051
|
+
return false;
|
|
3052
|
+
};
|
|
3053
|
+
|
|
3044
3054
|
var CCarouselContext = React.createContext({});
|
|
3045
3055
|
var CCarousel = React.forwardRef(function (_a, ref) {
|
|
3046
3056
|
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"]);
|
|
@@ -5906,19 +5916,19 @@ var CDropdownMenu = function (_a) {
|
|
|
5906
5916
|
_placement = 'bottom';
|
|
5907
5917
|
}
|
|
5908
5918
|
if (direction === 'dropup') {
|
|
5909
|
-
_placement = 'top-start';
|
|
5919
|
+
_placement = isRTL(dropdownMenuRef.current) ? 'top-end' : 'top-start';
|
|
5910
5920
|
}
|
|
5911
5921
|
if (direction === 'dropup-center') {
|
|
5912
5922
|
_placement = 'top';
|
|
5913
5923
|
}
|
|
5914
5924
|
if (direction === 'dropend') {
|
|
5915
|
-
_placement = 'right-start';
|
|
5925
|
+
_placement = isRTL(dropdownMenuRef.current) ? 'left-start' : 'right-start';
|
|
5916
5926
|
}
|
|
5917
5927
|
if (direction === 'dropstart') {
|
|
5918
|
-
_placement = 'left-start';
|
|
5928
|
+
_placement = isRTL(dropdownMenuRef.current) ? 'right-start' : 'left-start';
|
|
5919
5929
|
}
|
|
5920
5930
|
if (alignment === 'end') {
|
|
5921
|
-
_placement = 'bottom-end';
|
|
5931
|
+
_placement = isRTL(dropdownMenuRef.current) ? 'bottom-start' : 'bottom-end';
|
|
5922
5932
|
}
|
|
5923
5933
|
var dropdownMenuComponent = function (style, ref) { return (React.createElement(CConditionalPortal, { portal: portal !== null && portal !== void 0 ? portal : false },
|
|
5924
5934
|
React.createElement(Component, __assign({ className: classNames('dropdown-menu', {
|
|
@@ -7180,30 +7190,60 @@ CProgress.propTypes = {
|
|
|
7180
7190
|
};
|
|
7181
7191
|
CProgress.displayName = 'CProgress';
|
|
7182
7192
|
|
|
7193
|
+
var getPlacement$1 = function (placement, element) {
|
|
7194
|
+
console.log(element);
|
|
7195
|
+
switch (placement) {
|
|
7196
|
+
case 'right': {
|
|
7197
|
+
return isRTL(element) ? 'left' : 'right';
|
|
7198
|
+
}
|
|
7199
|
+
case 'left': {
|
|
7200
|
+
return isRTL(element) ? 'right' : 'left';
|
|
7201
|
+
}
|
|
7202
|
+
default: {
|
|
7203
|
+
return placement;
|
|
7204
|
+
}
|
|
7205
|
+
}
|
|
7206
|
+
};
|
|
7183
7207
|
var CPopover = function (_a) {
|
|
7184
7208
|
var children = _a.children, className = _a.className, content = _a.content, _b = _a.offset, offset = _b === void 0 ? [0, 8] : _b, onHide = _a.onHide, onShow = _a.onShow, _c = _a.placement, placement = _c === void 0 ? 'top' : _c, title = _a.title, _d = _a.trigger, trigger = _d === void 0 ? 'click' : _d, visible = _a.visible, rest = __rest(_a, ["children", "className", "content", "offset", "onHide", "onShow", "placement", "title", "trigger", "visible"]);
|
|
7209
|
+
var popoverRef = React.useRef(null);
|
|
7210
|
+
var togglerRef = React.useRef(null);
|
|
7211
|
+
var popper = React.useRef();
|
|
7185
7212
|
var _e = React.useState(visible), _visible = _e[0], setVisible = _e[1];
|
|
7186
|
-
var popoverRef = React.useRef();
|
|
7187
|
-
var _f = React.useState(null), referenceElement = _f[0], setReferenceElement = _f[1];
|
|
7188
|
-
var _g = React.useState(null), popperElement = _g[0], setPopperElement = _g[1];
|
|
7189
|
-
var _h = React.useState(null), arrowElement = _h[0], setArrowElement = _h[1];
|
|
7190
|
-
var _j = usePopper(referenceElement, popperElement, {
|
|
7191
|
-
modifiers: [
|
|
7192
|
-
{ name: 'arrow', options: { element: arrowElement } },
|
|
7193
|
-
{
|
|
7194
|
-
name: 'offset',
|
|
7195
|
-
options: {
|
|
7196
|
-
offset: offset,
|
|
7197
|
-
},
|
|
7198
|
-
},
|
|
7199
|
-
],
|
|
7200
|
-
placement: placement,
|
|
7201
|
-
}), styles = _j.styles, attributes = _j.attributes;
|
|
7202
7213
|
React.useEffect(function () {
|
|
7203
7214
|
setVisible(visible);
|
|
7204
7215
|
}, [visible]);
|
|
7216
|
+
React.useEffect(function () {
|
|
7217
|
+
if (_visible) {
|
|
7218
|
+
initPopper();
|
|
7219
|
+
}
|
|
7220
|
+
return function () {
|
|
7221
|
+
destroyPopper();
|
|
7222
|
+
};
|
|
7223
|
+
}, [_visible]);
|
|
7224
|
+
var initPopper = function () {
|
|
7225
|
+
if (togglerRef.current && popoverRef.current) {
|
|
7226
|
+
popper.current = createPopper(togglerRef.current, popoverRef.current, {
|
|
7227
|
+
modifiers: [
|
|
7228
|
+
{
|
|
7229
|
+
name: 'offset',
|
|
7230
|
+
options: {
|
|
7231
|
+
offset: offset,
|
|
7232
|
+
},
|
|
7233
|
+
},
|
|
7234
|
+
],
|
|
7235
|
+
placement: getPlacement$1(placement, togglerRef.current),
|
|
7236
|
+
});
|
|
7237
|
+
}
|
|
7238
|
+
};
|
|
7239
|
+
var destroyPopper = function () {
|
|
7240
|
+
if (popper.current) {
|
|
7241
|
+
popper.current.destroy();
|
|
7242
|
+
}
|
|
7243
|
+
popper.current = undefined;
|
|
7244
|
+
};
|
|
7205
7245
|
return (React.createElement(React.Fragment, null,
|
|
7206
|
-
React.cloneElement(children, __assign(__assign(__assign({ ref:
|
|
7246
|
+
React.cloneElement(children, __assign(__assign(__assign({ ref: togglerRef }, ((trigger === 'click' || trigger.includes('click')) && {
|
|
7207
7247
|
onClick: function () { return setVisible(!_visible); },
|
|
7208
7248
|
})), ((trigger === 'focus' || trigger.includes('focus')) && {
|
|
7209
7249
|
onFocus: function () { return setVisible(true); },
|
|
@@ -7216,10 +7256,12 @@ var CPopover = function (_a) {
|
|
|
7216
7256
|
ReactDOM.createPortal(React.createElement(Transition$1, { in: _visible, mountOnEnter: true, nodeRef: popoverRef, onEnter: onShow, onExit: onHide, timeout: {
|
|
7217
7257
|
enter: 0,
|
|
7218
7258
|
exit: 200,
|
|
7219
|
-
}, unmountOnExit: true }, function (state) { return (React.createElement("div", __assign({ className: classNames('popover', "bs-popover-".concat(placement
|
|
7259
|
+
}, unmountOnExit: true }, function (state) { return (React.createElement("div", __assign({ className: classNames('popover', "bs-popover-".concat(getPlacement$1(placement, togglerRef.current)
|
|
7260
|
+
.replace('left', 'start')
|
|
7261
|
+
.replace('right', 'end')), 'fade', {
|
|
7220
7262
|
show: state === 'entered',
|
|
7221
|
-
}, className), ref:
|
|
7222
|
-
React.createElement("div", {
|
|
7263
|
+
}, className), ref: popoverRef, role: "tooltip" }, rest),
|
|
7264
|
+
React.createElement("div", { "data-popper-arrow": true, className: "popover-arrow" }),
|
|
7223
7265
|
React.createElement("div", { className: "popover-header" }, title),
|
|
7224
7266
|
React.createElement("div", { className: "popover-body" }, content))); }), document.body)));
|
|
7225
7267
|
};
|
|
@@ -7752,30 +7794,60 @@ CToaster.propTypes = {
|
|
|
7752
7794
|
};
|
|
7753
7795
|
CToaster.displayName = 'CToaster';
|
|
7754
7796
|
|
|
7797
|
+
var getPlacement = function (placement, element) {
|
|
7798
|
+
console.log(element);
|
|
7799
|
+
switch (placement) {
|
|
7800
|
+
case 'right': {
|
|
7801
|
+
return isRTL(element) ? 'left' : 'right';
|
|
7802
|
+
}
|
|
7803
|
+
case 'left': {
|
|
7804
|
+
return isRTL(element) ? 'right' : 'left';
|
|
7805
|
+
}
|
|
7806
|
+
default: {
|
|
7807
|
+
return placement;
|
|
7808
|
+
}
|
|
7809
|
+
}
|
|
7810
|
+
};
|
|
7755
7811
|
var CTooltip = function (_a) {
|
|
7756
|
-
var children = _a.children, className = _a.className, content = _a.content, _b = _a.offset, offset = _b === void 0 ? [0,
|
|
7757
|
-
var tooltipRef = React.useRef();
|
|
7812
|
+
var children = _a.children, className = _a.className, content = _a.content, _b = _a.offset, offset = _b === void 0 ? [0, 6] : _b, onHide = _a.onHide, onShow = _a.onShow, _c = _a.placement, placement = _c === void 0 ? 'top' : _c, _d = _a.trigger, trigger = _d === void 0 ? 'hover' : _d, visible = _a.visible, rest = __rest(_a, ["children", "className", "content", "offset", "onHide", "onShow", "placement", "trigger", "visible"]);
|
|
7813
|
+
var tooltipRef = React.useRef(null);
|
|
7814
|
+
var togglerRef = React.useRef(null);
|
|
7815
|
+
var popper = React.useRef();
|
|
7758
7816
|
var _e = React.useState(visible), _visible = _e[0], setVisible = _e[1];
|
|
7759
|
-
var _f = React.useState(null), referenceElement = _f[0], setReferenceElement = _f[1];
|
|
7760
|
-
var _g = React.useState(null), popperElement = _g[0], setPopperElement = _g[1];
|
|
7761
|
-
var _h = React.useState(null), arrowElement = _h[0], setArrowElement = _h[1];
|
|
7762
|
-
var _j = usePopper(referenceElement, popperElement, {
|
|
7763
|
-
modifiers: [
|
|
7764
|
-
{ name: 'arrow', options: { element: arrowElement } },
|
|
7765
|
-
{
|
|
7766
|
-
name: 'offset',
|
|
7767
|
-
options: {
|
|
7768
|
-
offset: offset,
|
|
7769
|
-
},
|
|
7770
|
-
},
|
|
7771
|
-
],
|
|
7772
|
-
placement: placement,
|
|
7773
|
-
}), styles = _j.styles, attributes = _j.attributes;
|
|
7774
7817
|
React.useEffect(function () {
|
|
7775
7818
|
setVisible(visible);
|
|
7776
7819
|
}, [visible]);
|
|
7820
|
+
React.useEffect(function () {
|
|
7821
|
+
if (_visible) {
|
|
7822
|
+
initPopper();
|
|
7823
|
+
}
|
|
7824
|
+
return function () {
|
|
7825
|
+
destroyPopper();
|
|
7826
|
+
};
|
|
7827
|
+
}, [_visible]);
|
|
7828
|
+
var initPopper = function () {
|
|
7829
|
+
if (togglerRef.current && tooltipRef.current) {
|
|
7830
|
+
popper.current = createPopper(togglerRef.current, tooltipRef.current, {
|
|
7831
|
+
modifiers: [
|
|
7832
|
+
{
|
|
7833
|
+
name: 'offset',
|
|
7834
|
+
options: {
|
|
7835
|
+
offset: offset,
|
|
7836
|
+
},
|
|
7837
|
+
},
|
|
7838
|
+
],
|
|
7839
|
+
placement: getPlacement(placement, togglerRef.current),
|
|
7840
|
+
});
|
|
7841
|
+
}
|
|
7842
|
+
};
|
|
7843
|
+
var destroyPopper = function () {
|
|
7844
|
+
if (popper.current) {
|
|
7845
|
+
popper.current.destroy();
|
|
7846
|
+
}
|
|
7847
|
+
popper.current = undefined;
|
|
7848
|
+
};
|
|
7777
7849
|
return (React.createElement(React.Fragment, null,
|
|
7778
|
-
React.cloneElement(children, __assign(__assign(__assign({ ref:
|
|
7850
|
+
React.cloneElement(children, __assign(__assign(__assign({ ref: togglerRef }, ((trigger === 'click' || trigger.includes('click')) && {
|
|
7779
7851
|
onClick: function () { return setVisible(!_visible); },
|
|
7780
7852
|
})), ((trigger === 'focus' || trigger.includes('focus')) && {
|
|
7781
7853
|
onFocus: function () { return setVisible(true); },
|
|
@@ -7785,13 +7857,15 @@ var CTooltip = function (_a) {
|
|
|
7785
7857
|
onMouseLeave: function () { return setVisible(false); },
|
|
7786
7858
|
}))),
|
|
7787
7859
|
typeof window !== 'undefined' &&
|
|
7788
|
-
ReactDOM.createPortal(React.createElement(Transition$1, { in: _visible, mountOnEnter: true,
|
|
7860
|
+
ReactDOM.createPortal(React.createElement(Transition$1, { in: _visible, mountOnEnter: true, onEnter: onShow, onExit: onHide, timeout: {
|
|
7789
7861
|
enter: 0,
|
|
7790
7862
|
exit: 200,
|
|
7791
|
-
}, unmountOnExit: true }, function (state) { return (React.createElement("div", __assign({ className: classNames('tooltip', "bs-
|
|
7863
|
+
}, unmountOnExit: true }, function (state) { return (React.createElement("div", __assign({ className: classNames('tooltip', "bs-tooltip-".concat(getPlacement(placement, togglerRef.current)
|
|
7864
|
+
.replace('left', 'start')
|
|
7865
|
+
.replace('right', 'end')), 'fade', {
|
|
7792
7866
|
show: state === 'entered',
|
|
7793
|
-
}, className), ref:
|
|
7794
|
-
React.createElement("div", {
|
|
7867
|
+
}, className), ref: tooltipRef, role: "tooltip" }, rest),
|
|
7868
|
+
React.createElement("div", { "data-popper-arrow": true, className: "tooltip-arrow" }),
|
|
7795
7869
|
React.createElement("div", { className: "tooltip-inner" }, content))); }), document.body)));
|
|
7796
7870
|
};
|
|
7797
7871
|
CTooltip.propTypes = {
|