@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/README.md
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
|
|
47
47
|
Several quick start options are available:
|
|
48
48
|
|
|
49
|
-
- [Download the latest release](https://github.com/coreui/coreui-react/archive/v4.9.0-alpha.
|
|
49
|
+
- [Download the latest release](https://github.com/coreui/coreui-react/archive/v4.9.0-alpha.1.zip)
|
|
50
50
|
- Clone the repo: `git clone https://github.com/coreui/coreui-react.git`
|
|
51
51
|
- Install with [npm](https://www.npmjs.com/): `npm install @coreui/react`
|
|
52
52
|
- Install with [yarn](https://yarnpkg.com/): `yarn add @coreui/react`
|
|
@@ -10,7 +10,7 @@ export interface CTooltipProps extends Omit<HTMLAttributes<HTMLDivElement>, 'con
|
|
|
10
10
|
*/
|
|
11
11
|
content: ReactNode | string;
|
|
12
12
|
/**
|
|
13
|
-
* Offset of the
|
|
13
|
+
* Offset of the tooltip relative to its target.
|
|
14
14
|
*/
|
|
15
15
|
offset?: [number, number];
|
|
16
16
|
/**
|
|
@@ -32,7 +32,7 @@ export interface CTooltipProps extends Omit<HTMLAttributes<HTMLDivElement>, 'con
|
|
|
32
32
|
*/
|
|
33
33
|
placement?: 'auto' | 'top' | 'right' | 'bottom' | 'left';
|
|
34
34
|
/**
|
|
35
|
-
* Toggle the visibility of
|
|
35
|
+
* Toggle the visibility of tooltip component.
|
|
36
36
|
*/
|
|
37
37
|
visible?: boolean;
|
|
38
38
|
}
|
package/dist/index.es.js
CHANGED
|
@@ -3021,6 +3021,16 @@ var isInViewport = function (element) {
|
|
|
3021
3021
|
Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth));
|
|
3022
3022
|
};
|
|
3023
3023
|
|
|
3024
|
+
var isRTL = function (element) {
|
|
3025
|
+
if (document.documentElement.dir === 'rtl') {
|
|
3026
|
+
return true;
|
|
3027
|
+
}
|
|
3028
|
+
if (element) {
|
|
3029
|
+
return element.closest('[dir="rtl"]') !== null;
|
|
3030
|
+
}
|
|
3031
|
+
return false;
|
|
3032
|
+
};
|
|
3033
|
+
|
|
3024
3034
|
var CCarouselContext = createContext({});
|
|
3025
3035
|
var CCarousel = forwardRef(function (_a, ref) {
|
|
3026
3036
|
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"]);
|
|
@@ -5886,19 +5896,19 @@ var CDropdownMenu = function (_a) {
|
|
|
5886
5896
|
_placement = 'bottom';
|
|
5887
5897
|
}
|
|
5888
5898
|
if (direction === 'dropup') {
|
|
5889
|
-
_placement = 'top-start';
|
|
5899
|
+
_placement = isRTL(dropdownMenuRef.current) ? 'top-end' : 'top-start';
|
|
5890
5900
|
}
|
|
5891
5901
|
if (direction === 'dropup-center') {
|
|
5892
5902
|
_placement = 'top';
|
|
5893
5903
|
}
|
|
5894
5904
|
if (direction === 'dropend') {
|
|
5895
|
-
_placement = 'right-start';
|
|
5905
|
+
_placement = isRTL(dropdownMenuRef.current) ? 'left-start' : 'right-start';
|
|
5896
5906
|
}
|
|
5897
5907
|
if (direction === 'dropstart') {
|
|
5898
|
-
_placement = 'left-start';
|
|
5908
|
+
_placement = isRTL(dropdownMenuRef.current) ? 'right-start' : 'left-start';
|
|
5899
5909
|
}
|
|
5900
5910
|
if (alignment === 'end') {
|
|
5901
|
-
_placement = 'bottom-end';
|
|
5911
|
+
_placement = isRTL(dropdownMenuRef.current) ? 'bottom-start' : 'bottom-end';
|
|
5902
5912
|
}
|
|
5903
5913
|
var dropdownMenuComponent = function (style, ref) { return (React__default.createElement(CConditionalPortal, { portal: portal !== null && portal !== void 0 ? portal : false },
|
|
5904
5914
|
React__default.createElement(Component, __assign({ className: classNames('dropdown-menu', {
|
|
@@ -7160,30 +7170,60 @@ CProgress.propTypes = {
|
|
|
7160
7170
|
};
|
|
7161
7171
|
CProgress.displayName = 'CProgress';
|
|
7162
7172
|
|
|
7173
|
+
var getPlacement$1 = function (placement, element) {
|
|
7174
|
+
console.log(element);
|
|
7175
|
+
switch (placement) {
|
|
7176
|
+
case 'right': {
|
|
7177
|
+
return isRTL(element) ? 'left' : 'right';
|
|
7178
|
+
}
|
|
7179
|
+
case 'left': {
|
|
7180
|
+
return isRTL(element) ? 'right' : 'left';
|
|
7181
|
+
}
|
|
7182
|
+
default: {
|
|
7183
|
+
return placement;
|
|
7184
|
+
}
|
|
7185
|
+
}
|
|
7186
|
+
};
|
|
7163
7187
|
var CPopover = function (_a) {
|
|
7164
7188
|
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"]);
|
|
7189
|
+
var popoverRef = useRef(null);
|
|
7190
|
+
var togglerRef = useRef(null);
|
|
7191
|
+
var popper = useRef();
|
|
7165
7192
|
var _e = useState(visible), _visible = _e[0], setVisible = _e[1];
|
|
7166
|
-
var popoverRef = useRef();
|
|
7167
|
-
var _f = useState(null), referenceElement = _f[0], setReferenceElement = _f[1];
|
|
7168
|
-
var _g = useState(null), popperElement = _g[0], setPopperElement = _g[1];
|
|
7169
|
-
var _h = useState(null), arrowElement = _h[0], setArrowElement = _h[1];
|
|
7170
|
-
var _j = usePopper(referenceElement, popperElement, {
|
|
7171
|
-
modifiers: [
|
|
7172
|
-
{ name: 'arrow', options: { element: arrowElement } },
|
|
7173
|
-
{
|
|
7174
|
-
name: 'offset',
|
|
7175
|
-
options: {
|
|
7176
|
-
offset: offset,
|
|
7177
|
-
},
|
|
7178
|
-
},
|
|
7179
|
-
],
|
|
7180
|
-
placement: placement,
|
|
7181
|
-
}), styles = _j.styles, attributes = _j.attributes;
|
|
7182
7193
|
useEffect(function () {
|
|
7183
7194
|
setVisible(visible);
|
|
7184
7195
|
}, [visible]);
|
|
7196
|
+
useEffect(function () {
|
|
7197
|
+
if (_visible) {
|
|
7198
|
+
initPopper();
|
|
7199
|
+
}
|
|
7200
|
+
return function () {
|
|
7201
|
+
destroyPopper();
|
|
7202
|
+
};
|
|
7203
|
+
}, [_visible]);
|
|
7204
|
+
var initPopper = function () {
|
|
7205
|
+
if (togglerRef.current && popoverRef.current) {
|
|
7206
|
+
popper.current = createPopper(togglerRef.current, popoverRef.current, {
|
|
7207
|
+
modifiers: [
|
|
7208
|
+
{
|
|
7209
|
+
name: 'offset',
|
|
7210
|
+
options: {
|
|
7211
|
+
offset: offset,
|
|
7212
|
+
},
|
|
7213
|
+
},
|
|
7214
|
+
],
|
|
7215
|
+
placement: getPlacement$1(placement, togglerRef.current),
|
|
7216
|
+
});
|
|
7217
|
+
}
|
|
7218
|
+
};
|
|
7219
|
+
var destroyPopper = function () {
|
|
7220
|
+
if (popper.current) {
|
|
7221
|
+
popper.current.destroy();
|
|
7222
|
+
}
|
|
7223
|
+
popper.current = undefined;
|
|
7224
|
+
};
|
|
7185
7225
|
return (React__default.createElement(React__default.Fragment, null,
|
|
7186
|
-
React__default.cloneElement(children, __assign(__assign(__assign({ ref:
|
|
7226
|
+
React__default.cloneElement(children, __assign(__assign(__assign({ ref: togglerRef }, ((trigger === 'click' || trigger.includes('click')) && {
|
|
7187
7227
|
onClick: function () { return setVisible(!_visible); },
|
|
7188
7228
|
})), ((trigger === 'focus' || trigger.includes('focus')) && {
|
|
7189
7229
|
onFocus: function () { return setVisible(true); },
|
|
@@ -7196,10 +7236,12 @@ var CPopover = function (_a) {
|
|
|
7196
7236
|
createPortal(React__default.createElement(Transition$1, { in: _visible, mountOnEnter: true, nodeRef: popoverRef, onEnter: onShow, onExit: onHide, timeout: {
|
|
7197
7237
|
enter: 0,
|
|
7198
7238
|
exit: 200,
|
|
7199
|
-
}, unmountOnExit: true }, function (state) { return (React__default.createElement("div", __assign({ className: classNames('popover', "bs-popover-".concat(placement
|
|
7239
|
+
}, unmountOnExit: true }, function (state) { return (React__default.createElement("div", __assign({ className: classNames('popover', "bs-popover-".concat(getPlacement$1(placement, togglerRef.current)
|
|
7240
|
+
.replace('left', 'start')
|
|
7241
|
+
.replace('right', 'end')), 'fade', {
|
|
7200
7242
|
show: state === 'entered',
|
|
7201
|
-
}, className), ref:
|
|
7202
|
-
React__default.createElement("div", {
|
|
7243
|
+
}, className), ref: popoverRef, role: "tooltip" }, rest),
|
|
7244
|
+
React__default.createElement("div", { "data-popper-arrow": true, className: "popover-arrow" }),
|
|
7203
7245
|
React__default.createElement("div", { className: "popover-header" }, title),
|
|
7204
7246
|
React__default.createElement("div", { className: "popover-body" }, content))); }), document.body)));
|
|
7205
7247
|
};
|
|
@@ -7732,30 +7774,60 @@ CToaster.propTypes = {
|
|
|
7732
7774
|
};
|
|
7733
7775
|
CToaster.displayName = 'CToaster';
|
|
7734
7776
|
|
|
7777
|
+
var getPlacement = function (placement, element) {
|
|
7778
|
+
console.log(element);
|
|
7779
|
+
switch (placement) {
|
|
7780
|
+
case 'right': {
|
|
7781
|
+
return isRTL(element) ? 'left' : 'right';
|
|
7782
|
+
}
|
|
7783
|
+
case 'left': {
|
|
7784
|
+
return isRTL(element) ? 'right' : 'left';
|
|
7785
|
+
}
|
|
7786
|
+
default: {
|
|
7787
|
+
return placement;
|
|
7788
|
+
}
|
|
7789
|
+
}
|
|
7790
|
+
};
|
|
7735
7791
|
var CTooltip = function (_a) {
|
|
7736
|
-
var children = _a.children, className = _a.className, content = _a.content, _b = _a.offset, offset = _b === void 0 ? [0,
|
|
7737
|
-
var tooltipRef = useRef();
|
|
7792
|
+
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"]);
|
|
7793
|
+
var tooltipRef = useRef(null);
|
|
7794
|
+
var togglerRef = useRef(null);
|
|
7795
|
+
var popper = useRef();
|
|
7738
7796
|
var _e = useState(visible), _visible = _e[0], setVisible = _e[1];
|
|
7739
|
-
var _f = useState(null), referenceElement = _f[0], setReferenceElement = _f[1];
|
|
7740
|
-
var _g = useState(null), popperElement = _g[0], setPopperElement = _g[1];
|
|
7741
|
-
var _h = useState(null), arrowElement = _h[0], setArrowElement = _h[1];
|
|
7742
|
-
var _j = usePopper(referenceElement, popperElement, {
|
|
7743
|
-
modifiers: [
|
|
7744
|
-
{ name: 'arrow', options: { element: arrowElement } },
|
|
7745
|
-
{
|
|
7746
|
-
name: 'offset',
|
|
7747
|
-
options: {
|
|
7748
|
-
offset: offset,
|
|
7749
|
-
},
|
|
7750
|
-
},
|
|
7751
|
-
],
|
|
7752
|
-
placement: placement,
|
|
7753
|
-
}), styles = _j.styles, attributes = _j.attributes;
|
|
7754
7797
|
useEffect(function () {
|
|
7755
7798
|
setVisible(visible);
|
|
7756
7799
|
}, [visible]);
|
|
7800
|
+
useEffect(function () {
|
|
7801
|
+
if (_visible) {
|
|
7802
|
+
initPopper();
|
|
7803
|
+
}
|
|
7804
|
+
return function () {
|
|
7805
|
+
destroyPopper();
|
|
7806
|
+
};
|
|
7807
|
+
}, [_visible]);
|
|
7808
|
+
var initPopper = function () {
|
|
7809
|
+
if (togglerRef.current && tooltipRef.current) {
|
|
7810
|
+
popper.current = createPopper(togglerRef.current, tooltipRef.current, {
|
|
7811
|
+
modifiers: [
|
|
7812
|
+
{
|
|
7813
|
+
name: 'offset',
|
|
7814
|
+
options: {
|
|
7815
|
+
offset: offset,
|
|
7816
|
+
},
|
|
7817
|
+
},
|
|
7818
|
+
],
|
|
7819
|
+
placement: getPlacement(placement, togglerRef.current),
|
|
7820
|
+
});
|
|
7821
|
+
}
|
|
7822
|
+
};
|
|
7823
|
+
var destroyPopper = function () {
|
|
7824
|
+
if (popper.current) {
|
|
7825
|
+
popper.current.destroy();
|
|
7826
|
+
}
|
|
7827
|
+
popper.current = undefined;
|
|
7828
|
+
};
|
|
7757
7829
|
return (React__default.createElement(React__default.Fragment, null,
|
|
7758
|
-
React__default.cloneElement(children, __assign(__assign(__assign({ ref:
|
|
7830
|
+
React__default.cloneElement(children, __assign(__assign(__assign({ ref: togglerRef }, ((trigger === 'click' || trigger.includes('click')) && {
|
|
7759
7831
|
onClick: function () { return setVisible(!_visible); },
|
|
7760
7832
|
})), ((trigger === 'focus' || trigger.includes('focus')) && {
|
|
7761
7833
|
onFocus: function () { return setVisible(true); },
|
|
@@ -7765,13 +7837,15 @@ var CTooltip = function (_a) {
|
|
|
7765
7837
|
onMouseLeave: function () { return setVisible(false); },
|
|
7766
7838
|
}))),
|
|
7767
7839
|
typeof window !== 'undefined' &&
|
|
7768
|
-
createPortal(React__default.createElement(Transition$1, { in: _visible, mountOnEnter: true,
|
|
7840
|
+
createPortal(React__default.createElement(Transition$1, { in: _visible, mountOnEnter: true, onEnter: onShow, onExit: onHide, timeout: {
|
|
7769
7841
|
enter: 0,
|
|
7770
7842
|
exit: 200,
|
|
7771
|
-
}, unmountOnExit: true }, function (state) { return (React__default.createElement("div", __assign({ className: classNames('tooltip', "bs-
|
|
7843
|
+
}, unmountOnExit: true }, function (state) { return (React__default.createElement("div", __assign({ className: classNames('tooltip', "bs-tooltip-".concat(getPlacement(placement, togglerRef.current)
|
|
7844
|
+
.replace('left', 'start')
|
|
7845
|
+
.replace('right', 'end')), 'fade', {
|
|
7772
7846
|
show: state === 'entered',
|
|
7773
|
-
}, className), ref:
|
|
7774
|
-
React__default.createElement("div", {
|
|
7847
|
+
}, className), ref: tooltipRef, role: "tooltip" }, rest),
|
|
7848
|
+
React__default.createElement("div", { "data-popper-arrow": true, className: "tooltip-arrow" }),
|
|
7775
7849
|
React__default.createElement("div", { className: "tooltip-inner" }, content))); }), document.body)));
|
|
7776
7850
|
};
|
|
7777
7851
|
CTooltip.propTypes = {
|