@vitus-labs/elements 0.65.0 → 0.67.0
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/LICENSE +1 -1
- package/lib/analysis/vitus-labs-elements.browser.js.html +5095 -4901
- package/lib/analysis/vitus-labs-elements.js.html +5095 -4901
- package/lib/analysis/vitus-labs-elements.module.js.html +5095 -4901
- package/lib/analysis/vitus-labs-elements.native.js.html +5095 -4901
- package/lib/index.d.ts +251 -186
- package/lib/types/Element/component.d.ts +1 -0
- package/lib/types/Element/component.d.ts.map +1 -0
- package/lib/types/Element/constants.d.ts +1 -0
- package/lib/types/Element/constants.d.ts.map +1 -0
- package/lib/types/Element/index.d.ts +1 -0
- package/lib/types/Element/index.d.ts.map +1 -0
- package/lib/types/Element/types.d.ts +3 -2
- package/lib/types/Element/types.d.ts.map +1 -0
- package/lib/types/Element/utils.d.ts +2 -1
- package/lib/types/Element/utils.d.ts.map +1 -0
- package/lib/types/Element/withEqualSizeBeforeAfter.d.ts +2 -1
- package/lib/types/Element/withEqualSizeBeforeAfter.d.ts.map +1 -0
- package/lib/types/List/component.d.ts +2 -1
- package/lib/types/List/component.d.ts.map +1 -0
- package/lib/types/List/index.d.ts +1 -0
- package/lib/types/List/index.d.ts.map +1 -0
- package/lib/types/List/withActiveState.d.ts +3 -2
- package/lib/types/List/withActiveState.d.ts.map +1 -0
- package/lib/types/Overlay/component.d.ts +7 -6
- package/lib/types/Overlay/component.d.ts.map +1 -0
- package/lib/types/Overlay/context.d.ts +4 -3
- package/lib/types/Overlay/context.d.ts.map +1 -0
- package/lib/types/Overlay/index.d.ts +1 -0
- package/lib/types/Overlay/index.d.ts.map +1 -0
- package/lib/types/Overlay/useOverlay.backup.d.ts +6 -5
- package/lib/types/Overlay/useOverlay.backup.d.ts.map +1 -0
- package/lib/types/Overlay/useOverlay.d.ts +7 -6
- package/lib/types/Overlay/useOverlay.d.ts.map +1 -0
- package/lib/types/Portal/component.d.ts +2 -1
- package/lib/types/Portal/component.d.ts.map +1 -0
- package/lib/types/Portal/index.d.ts +1 -0
- package/lib/types/Portal/index.d.ts.map +1 -0
- package/lib/types/Text/component.d.ts +2 -1
- package/lib/types/Text/component.d.ts.map +1 -0
- package/lib/types/Text/index.d.ts +1 -0
- package/lib/types/Text/index.d.ts.map +1 -0
- package/lib/types/Text/styled.d.ts +1 -0
- package/lib/types/Text/styled.d.ts.map +1 -0
- package/lib/types/Util/component.d.ts +2 -1
- package/lib/types/Util/component.d.ts.map +1 -0
- package/lib/types/Util/index.d.ts +1 -0
- package/lib/types/Util/index.d.ts.map +1 -0
- package/lib/types/constants.d.ts +1 -0
- package/lib/types/constants.d.ts.map +1 -0
- package/lib/types/helpers/Content/component.d.ts +2 -1
- package/lib/types/helpers/Content/component.d.ts.map +1 -0
- package/lib/types/helpers/Content/index.d.ts +1 -0
- package/lib/types/helpers/Content/index.d.ts.map +1 -0
- package/lib/types/helpers/Content/styled.d.ts +1 -0
- package/lib/types/helpers/Content/styled.d.ts.map +1 -0
- package/lib/types/helpers/Iterator/component.d.ts +2 -1
- package/lib/types/helpers/Iterator/component.d.ts.map +1 -0
- package/lib/types/helpers/Iterator/index.d.ts +1 -0
- package/lib/types/helpers/Iterator/index.d.ts.map +1 -0
- package/lib/types/helpers/Iterator/types.d.ts +9 -8
- package/lib/types/helpers/Iterator/types.d.ts.map +1 -0
- package/lib/types/helpers/Wrapper/component.d.ts +2 -1
- package/lib/types/helpers/Wrapper/component.d.ts.map +1 -0
- package/lib/types/helpers/Wrapper/constants.d.ts +1 -0
- package/lib/types/helpers/Wrapper/constants.d.ts.map +1 -0
- package/lib/types/helpers/Wrapper/index.d.ts +1 -0
- package/lib/types/helpers/Wrapper/index.d.ts.map +1 -0
- package/lib/types/helpers/Wrapper/styled.d.ts +1 -0
- package/lib/types/helpers/Wrapper/styled.d.ts.map +1 -0
- package/lib/types/helpers/Wrapper/utils.d.ts +2 -1
- package/lib/types/helpers/Wrapper/utils.d.ts.map +1 -0
- package/lib/types/helpers/index.d.ts +1 -0
- package/lib/types/helpers/index.d.ts.map +1 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/types.d.ts +27 -26
- package/lib/types/types.d.ts.map +1 -0
- package/lib/vitus-labs-elements.browser.js +128 -106
- package/lib/vitus-labs-elements.browser.js.map +1 -1
- package/lib/vitus-labs-elements.js +143 -127
- package/lib/vitus-labs-elements.js.map +1 -1
- package/lib/vitus-labs-elements.module.js +127 -105
- package/lib/vitus-labs-elements.module.js.map +1 -1
- package/lib/vitus-labs-elements.native.js +127 -105
- package/lib/vitus-labs-elements.native.js.map +1 -1
- package/package.json +9 -9
|
@@ -74,7 +74,7 @@ var Styled$2 = config.styled(config.component) `
|
|
|
74
74
|
})};
|
|
75
75
|
`;
|
|
76
76
|
|
|
77
|
-
const component$
|
|
77
|
+
const component$4 = forwardRef(({ children, tag, block, extendCss, direction, alignX, alignY, equalCols, isInline, ...props }, ref) => {
|
|
78
78
|
const debugProps = process.env.NODE_ENV !== 'production'
|
|
79
79
|
? {
|
|
80
80
|
'data-vl-element': 'Element',
|
|
@@ -179,7 +179,7 @@ var Styled$1 = config.styled(config.component) `
|
|
|
179
179
|
})};
|
|
180
180
|
`;
|
|
181
181
|
|
|
182
|
-
const Component$
|
|
182
|
+
const Component$6 = ({ contentType, tag, parentDirection, direction, alignX, alignY, equalCols, gap, extendCss, ...props }) => {
|
|
183
183
|
const debugProps = process.env.NODE_ENV !== 'production'
|
|
184
184
|
? {
|
|
185
185
|
'data-vl-element': contentType,
|
|
@@ -196,7 +196,7 @@ const Component$5 = ({ contentType, tag, parentDirection, direction, alignX, ali
|
|
|
196
196
|
extraStyles: extendCss,
|
|
197
197
|
}, ...debugProps, ...props }));
|
|
198
198
|
};
|
|
199
|
-
var component$
|
|
199
|
+
var component$3 = memo(Component$6);
|
|
200
200
|
|
|
201
201
|
const INLINE_ELEMENTS = {
|
|
202
202
|
span: true,
|
|
@@ -264,7 +264,7 @@ const defaultDirection = 'inline';
|
|
|
264
264
|
const defaultContentDirection = 'rows';
|
|
265
265
|
const defaultAlignX = 'left';
|
|
266
266
|
const defaultAlignY = 'center';
|
|
267
|
-
const Component$
|
|
267
|
+
const Component$5 = forwardRef(({ innerRef, tag, label, content, children, beforeContent, afterContent, block, equalCols, gap, direction, alignX = defaultAlignX, alignY = defaultAlignY, css, contentCss, beforeContentCss, afterContentCss, contentDirection = defaultContentDirection, contentAlignX = defaultAlignX, contentAlignY = defaultAlignY, beforeContentDirection = defaultDirection, beforeContentAlignX = defaultAlignX, beforeContentAlignY = defaultAlignY, afterContentDirection = defaultDirection, afterContentAlignX = defaultAlignX, afterContentAlignY = defaultAlignY, ...props }, ref) => {
|
|
268
268
|
// --------------------------------------------------------
|
|
269
269
|
// check if should render only single element
|
|
270
270
|
// --------------------------------------------------------
|
|
@@ -325,18 +325,18 @@ const Component$4 = forwardRef(({ innerRef, tag, label, content, children, befor
|
|
|
325
325
|
// return simple/empty element like input or image etc.
|
|
326
326
|
// --------------------------------------------------------
|
|
327
327
|
if (shouldBeEmpty) {
|
|
328
|
-
return React.createElement(component$
|
|
328
|
+
return React.createElement(component$4, { ...props, ...WRAPPER_PROPS });
|
|
329
329
|
}
|
|
330
330
|
const contentRenderOutput = render(CHILDREN);
|
|
331
|
-
return (React.createElement(component$
|
|
332
|
-
beforeContent && (React.createElement(component$
|
|
333
|
-
isSimpleElement ? (contentRenderOutput) : (React.createElement(component$
|
|
334
|
-
afterContent && (React.createElement(component$
|
|
331
|
+
return (React.createElement(component$4, { ...props, ...WRAPPER_PROPS, isInline: isInline },
|
|
332
|
+
beforeContent && (React.createElement(component$3, { tag: SUB_TAG, contentType: "before", parentDirection: wrapperDirection, extendCss: beforeContentCss, direction: beforeContentDirection, alignX: beforeContentAlignX, alignY: beforeContentAlignY, equalCols: equalCols, gap: gap }, render(beforeContent))),
|
|
333
|
+
isSimpleElement ? (contentRenderOutput) : (React.createElement(component$3, { tag: SUB_TAG, contentType: "content", parentDirection: wrapperDirection, extendCss: contentCss, direction: contentDirection, alignX: contentAlignX, alignY: contentAlignY, equalCols: equalCols }, contentRenderOutput)),
|
|
334
|
+
afterContent && (React.createElement(component$3, { tag: SUB_TAG, contentType: "after", parentDirection: wrapperDirection, extendCss: afterContentCss, direction: afterContentDirection, alignX: afterContentAlignX, alignY: afterContentAlignY, equalCols: equalCols, gap: gap }, render(afterContent)))));
|
|
335
335
|
});
|
|
336
336
|
const name$5 = `${PKG_NAME}/Element`;
|
|
337
|
-
Component$
|
|
338
|
-
Component$
|
|
339
|
-
Component$
|
|
337
|
+
Component$5.displayName = name$5;
|
|
338
|
+
Component$5.pkgName = PKG_NAME;
|
|
339
|
+
Component$5.VITUS_LABS__COMPONENT = name$5;
|
|
340
340
|
|
|
341
341
|
// @ts-nocheck
|
|
342
342
|
const isNumber = (a, b) => Number.isInteger(a) && Number.isInteger(b);
|
|
@@ -401,7 +401,7 @@ const attachItemProps = ({ i, length, }) => {
|
|
|
401
401
|
position,
|
|
402
402
|
};
|
|
403
403
|
};
|
|
404
|
-
const Component$
|
|
404
|
+
const Component$4 = (props) => {
|
|
405
405
|
const { itemKey, valueName, children, component, data, wrapComponent: Wrapper, wrapProps, itemProps, } = props;
|
|
406
406
|
const injectItemProps = useMemo(() => (typeof itemProps === 'function' ? itemProps : () => itemProps), [itemProps]);
|
|
407
407
|
const injectWrapItemProps = useMemo(() => (typeof wrapProps === 'function' ? wrapProps : () => wrapProps), [wrapProps]);
|
|
@@ -547,19 +547,19 @@ const Component$3 = (props) => {
|
|
|
547
547
|
};
|
|
548
548
|
return renderItems();
|
|
549
549
|
};
|
|
550
|
-
Component$
|
|
551
|
-
Component$
|
|
550
|
+
Component$4.isIterator = true;
|
|
551
|
+
Component$4.RESERVED_PROPS = RESERVED_PROPS;
|
|
552
552
|
|
|
553
|
-
const component$
|
|
554
|
-
const renderedList = React.createElement(Component$
|
|
553
|
+
const component$2 = forwardRef(({ rootElement = false, ...props }, ref) => {
|
|
554
|
+
const renderedList = React.createElement(Component$4, { ...pick(props, Component$4.RESERVED_PROPS) });
|
|
555
555
|
if (!rootElement)
|
|
556
556
|
return renderedList;
|
|
557
|
-
return (React.createElement(Component$
|
|
557
|
+
return (React.createElement(Component$5, { ref: ref, ...omit(props, Component$4.RESERVED_PROPS) }, renderedList));
|
|
558
558
|
});
|
|
559
559
|
const name$4 = `${PKG_NAME}/List`;
|
|
560
|
-
component$
|
|
561
|
-
component$
|
|
562
|
-
component$
|
|
560
|
+
component$2.displayName = name$4;
|
|
561
|
+
component$2.pkgName = PKG_NAME;
|
|
562
|
+
component$2.VITUS_LABS__COMPONENT = name$4;
|
|
563
563
|
|
|
564
564
|
// @ts-nocheck
|
|
565
565
|
const RESERVED_KEYS = [
|
|
@@ -568,7 +568,7 @@ const RESERVED_KEYS = [
|
|
|
568
568
|
'itemProps',
|
|
569
569
|
'activeItemRequired',
|
|
570
570
|
];
|
|
571
|
-
const component$
|
|
571
|
+
const component$1 = (WrappedComponent) => {
|
|
572
572
|
const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
|
|
573
573
|
const Enhanced = (props) => {
|
|
574
574
|
const { type = 'single', activeItemRequired, activeItems, itemProps = {}, ...rest } = props;
|
|
@@ -691,7 +691,7 @@ const component$2 = (WrappedComponent) => {
|
|
|
691
691
|
return Enhanced;
|
|
692
692
|
};
|
|
693
693
|
|
|
694
|
-
const Component$
|
|
694
|
+
const Component$3 = ({ DOMLocation, tag = 'div', children, }) => {
|
|
695
695
|
const [element, setElement] = useState();
|
|
696
696
|
useEffect(() => {
|
|
697
697
|
if (!tag)
|
|
@@ -709,14 +709,14 @@ const Component$2 = ({ DOMLocation, tag = 'div', children, }) => {
|
|
|
709
709
|
return createPortal(children, element);
|
|
710
710
|
};
|
|
711
711
|
const name$3 = `${PKG_NAME}/Portal`;
|
|
712
|
-
Component$
|
|
713
|
-
Component$
|
|
714
|
-
Component$
|
|
712
|
+
Component$3.displayName = name$3;
|
|
713
|
+
Component$3.pkgName = PKG_NAME;
|
|
714
|
+
Component$3.VITUS_LABS__COMPONENT = name$3;
|
|
715
715
|
|
|
716
716
|
const context = createContext({});
|
|
717
717
|
const { Provider } = context;
|
|
718
718
|
const useOverlayContext = () => useContext(context);
|
|
719
|
-
const
|
|
719
|
+
const Component$2 = ({ children, blocked, setBlocked, setUnblocked, }) => {
|
|
720
720
|
const ctx = useMemo(() => ({
|
|
721
721
|
blocked,
|
|
722
722
|
setBlocked,
|
|
@@ -726,7 +726,7 @@ const component$1 = ({ children, blocked, setBlocked, setUnblocked, }) => {
|
|
|
726
726
|
};
|
|
727
727
|
|
|
728
728
|
/* eslint-disable no-console */
|
|
729
|
-
|
|
729
|
+
const useOverlay = ({ isOpen = false, openOn = 'click', // click | hover
|
|
730
730
|
closeOn = 'click', // click | 'clickOnTrigger' | 'clickOutsideContent' | hover | manual
|
|
731
731
|
type = 'dropdown', // dropdown | tooltip | popover | modal
|
|
732
732
|
position = 'fixed', // absolute | fixed | relative | static
|
|
@@ -753,7 +753,7 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, parentContainer, closeOnEsc = tru
|
|
|
753
753
|
}, []);
|
|
754
754
|
const calculateContentPosition = useCallback(() => {
|
|
755
755
|
const overlayPosition = {};
|
|
756
|
-
if (!active)
|
|
756
|
+
if (!active || !isContentLoaded)
|
|
757
757
|
return overlayPosition;
|
|
758
758
|
if (!triggerRef.current || !contentRef.current) {
|
|
759
759
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -899,13 +899,14 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, parentContainer, closeOnEsc = tru
|
|
|
899
899
|
}
|
|
900
900
|
return overlayPosition;
|
|
901
901
|
}, [
|
|
902
|
+
isContentLoaded,
|
|
902
903
|
active,
|
|
903
|
-
type,
|
|
904
904
|
align,
|
|
905
905
|
alignX,
|
|
906
906
|
alignY,
|
|
907
907
|
offsetX,
|
|
908
908
|
offsetY,
|
|
909
|
+
type,
|
|
909
910
|
triggerRef,
|
|
910
911
|
contentRef,
|
|
911
912
|
]);
|
|
@@ -914,12 +915,17 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, parentContainer, closeOnEsc = tru
|
|
|
914
915
|
return;
|
|
915
916
|
const setValue = (param) => value(param, rootSize);
|
|
916
917
|
// ADD POSITION STYLES TO CONTENT
|
|
918
|
+
// eslint-disable-next-line no-param-reassign
|
|
917
919
|
contentRef.current.style.position = position;
|
|
920
|
+
// eslint-disable-next-line no-param-reassign
|
|
918
921
|
contentRef.current.style.top = setValue(values.top);
|
|
922
|
+
// eslint-disable-next-line no-param-reassign
|
|
919
923
|
contentRef.current.style.bottom = setValue(values.bottom);
|
|
924
|
+
// eslint-disable-next-line no-param-reassign
|
|
920
925
|
contentRef.current.style.left = setValue(values.left);
|
|
926
|
+
// eslint-disable-next-line no-param-reassign
|
|
921
927
|
contentRef.current.style.right = setValue(values.right);
|
|
922
|
-
}, [
|
|
928
|
+
}, [position, rootSize, contentRef]);
|
|
923
929
|
const setContentPosition = useCallback(() => {
|
|
924
930
|
const currentPosition = calculateContentPosition();
|
|
925
931
|
assignContentPosition(currentPosition);
|
|
@@ -930,11 +936,11 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, parentContainer, closeOnEsc = tru
|
|
|
930
936
|
}
|
|
931
937
|
return false;
|
|
932
938
|
};
|
|
933
|
-
const isTrigger = isNodeOrChild(triggerRef);
|
|
934
|
-
const isContent = isNodeOrChild(contentRef);
|
|
935
939
|
const handleVisibilityByEventType = useCallback((e) => {
|
|
936
940
|
if (blocked || disabled)
|
|
937
941
|
return;
|
|
942
|
+
const isTrigger = isNodeOrChild(triggerRef);
|
|
943
|
+
const isContent = isNodeOrChild(contentRef);
|
|
938
944
|
// showing content observing
|
|
939
945
|
if (!active) {
|
|
940
946
|
if ((openOn === 'hover' && e.type === 'mousemove') ||
|
|
@@ -976,39 +982,80 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, parentContainer, closeOnEsc = tru
|
|
|
976
982
|
openOn,
|
|
977
983
|
closeOn,
|
|
978
984
|
hideContent,
|
|
979
|
-
isContent,
|
|
980
|
-
isTrigger,
|
|
981
985
|
showContent,
|
|
986
|
+
triggerRef,
|
|
987
|
+
contentRef,
|
|
982
988
|
]);
|
|
983
989
|
const handleContentPosition = throttle(setContentPosition, throttleDelay);
|
|
984
990
|
const handleClick = handleVisibilityByEventType;
|
|
985
991
|
const handleVisibility = throttle(handleVisibilityByEventType, throttleDelay);
|
|
986
|
-
const handleEscKey = (e) => {
|
|
987
|
-
if (e.key === 'Escape') {
|
|
988
|
-
hideContent();
|
|
989
|
-
}
|
|
990
|
-
};
|
|
991
992
|
// --------------------------------------------------------------------------
|
|
992
993
|
// useEffects
|
|
993
994
|
// --------------------------------------------------------------------------
|
|
995
|
+
useEffect(() => {
|
|
996
|
+
setInnerAlignX(alignX);
|
|
997
|
+
setInnerAlignY(alignY);
|
|
998
|
+
if (disabled) {
|
|
999
|
+
hideContent();
|
|
1000
|
+
}
|
|
1001
|
+
}, [disabled, alignX, alignY, hideContent]);
|
|
1002
|
+
useEffect(() => {
|
|
1003
|
+
if (active && isContentLoaded) {
|
|
1004
|
+
setContentPosition();
|
|
1005
|
+
setContentPosition();
|
|
1006
|
+
}
|
|
1007
|
+
}, [active, isContentLoaded, setContentPosition]);
|
|
1008
|
+
// if an Overlay has an Overlay child, this will prevent closing parent child
|
|
1009
|
+
// and calculates correct position when an Overlay is opened
|
|
1010
|
+
useEffect(() => {
|
|
1011
|
+
if (active) {
|
|
1012
|
+
if (onOpen)
|
|
1013
|
+
onOpen();
|
|
1014
|
+
if (ctx.setBlocked)
|
|
1015
|
+
ctx.setBlocked();
|
|
1016
|
+
}
|
|
1017
|
+
return () => {
|
|
1018
|
+
if (onClose)
|
|
1019
|
+
onClose();
|
|
1020
|
+
if (ctx.setUnblocked)
|
|
1021
|
+
ctx.setUnblocked();
|
|
1022
|
+
setContentLoaded(false);
|
|
1023
|
+
};
|
|
1024
|
+
}, [active, onOpen, onClose, showContent, ctx]);
|
|
1025
|
+
// handle closing only when content is active
|
|
1026
|
+
useEffect(() => {
|
|
1027
|
+
if (!closeOnEsc || !active || blocked)
|
|
1028
|
+
return undefined;
|
|
1029
|
+
const handleEscKey = (e) => {
|
|
1030
|
+
if (e.key === 'Escape') {
|
|
1031
|
+
hideContent();
|
|
1032
|
+
}
|
|
1033
|
+
};
|
|
1034
|
+
window.addEventListener('keydown', handleEscKey);
|
|
1035
|
+
return () => {
|
|
1036
|
+
window.removeEventListener('keydown', handleEscKey);
|
|
1037
|
+
};
|
|
1038
|
+
}, [active, blocked, closeOnEsc, hideContent]);
|
|
994
1039
|
// handles repositioning of content on document events
|
|
995
1040
|
useEffect(() => {
|
|
996
1041
|
if (!active)
|
|
997
1042
|
return undefined;
|
|
998
1043
|
const shouldSetOverflow = type === 'modal';
|
|
1044
|
+
const onScroll = (e) => {
|
|
1045
|
+
handleContentPosition();
|
|
1046
|
+
handleVisibility(e);
|
|
1047
|
+
};
|
|
999
1048
|
if (shouldSetOverflow)
|
|
1000
1049
|
document.body.style.overflow = 'hidden';
|
|
1001
|
-
window.addEventListener('resize', handleContentPosition
|
|
1002
|
-
window.addEventListener('scroll',
|
|
1003
|
-
window.addEventListener('scroll', handleVisibility, false);
|
|
1050
|
+
window.addEventListener('resize', handleContentPosition);
|
|
1051
|
+
window.addEventListener('scroll', onScroll);
|
|
1004
1052
|
return () => {
|
|
1005
1053
|
if (shouldSetOverflow)
|
|
1006
1054
|
document.body.style.overflow = '';
|
|
1007
|
-
window.removeEventListener('
|
|
1008
|
-
window.removeEventListener('
|
|
1009
|
-
window.removeEventListener('scroll', handleContentPosition, false);
|
|
1055
|
+
window.removeEventListener('resize', handleContentPosition);
|
|
1056
|
+
window.removeEventListener('scroll', onScroll);
|
|
1010
1057
|
};
|
|
1011
|
-
}, [active, type]);
|
|
1058
|
+
}, [active, type, handleVisibility, handleContentPosition]);
|
|
1012
1059
|
// handles repositioning of content on a custom element if defined
|
|
1013
1060
|
useEffect(() => {
|
|
1014
1061
|
if (!active || !parentContainer)
|
|
@@ -1016,15 +1063,23 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, parentContainer, closeOnEsc = tru
|
|
|
1016
1063
|
// eslint-disable-next-line no-param-reassign
|
|
1017
1064
|
if (closeOn !== 'hover')
|
|
1018
1065
|
parentContainer.style.overflow = 'hidden';
|
|
1019
|
-
|
|
1020
|
-
|
|
1066
|
+
const onScroll = (e) => {
|
|
1067
|
+
handleContentPosition();
|
|
1068
|
+
handleVisibility(e);
|
|
1069
|
+
};
|
|
1070
|
+
parentContainer.addEventListener('scroll', onScroll);
|
|
1021
1071
|
return () => {
|
|
1022
1072
|
// eslint-disable-next-line no-param-reassign
|
|
1023
1073
|
parentContainer.style.overflow = '';
|
|
1024
|
-
parentContainer.removeEventListener('scroll',
|
|
1025
|
-
parentContainer.removeEventListener('scroll', handleContentPosition, false);
|
|
1074
|
+
parentContainer.removeEventListener('scroll', onScroll);
|
|
1026
1075
|
};
|
|
1027
|
-
}, [
|
|
1076
|
+
}, [
|
|
1077
|
+
active,
|
|
1078
|
+
parentContainer,
|
|
1079
|
+
closeOn,
|
|
1080
|
+
handleContentPosition,
|
|
1081
|
+
handleVisibility,
|
|
1082
|
+
]);
|
|
1028
1083
|
// enable overlay manipulation only when the state is NOT blocked
|
|
1029
1084
|
// nor in disabled state
|
|
1030
1085
|
useEffect(() => {
|
|
@@ -1034,65 +1089,32 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, parentContainer, closeOnEsc = tru
|
|
|
1034
1089
|
const enabledClick = openOn === 'click' ||
|
|
1035
1090
|
['click', 'clickOnTrigger', 'clickOutsideContent'].includes(closeOn);
|
|
1036
1091
|
if (enabledClick) {
|
|
1037
|
-
window.addEventListener('click', handleClick
|
|
1092
|
+
window.addEventListener('click', handleClick);
|
|
1038
1093
|
}
|
|
1039
1094
|
if (enabledMouseMove) {
|
|
1040
|
-
window.addEventListener('mousemove', handleVisibility
|
|
1095
|
+
window.addEventListener('mousemove', handleVisibility);
|
|
1041
1096
|
}
|
|
1042
1097
|
return () => {
|
|
1043
|
-
window.removeEventListener('click', handleClick
|
|
1044
|
-
window.removeEventListener('mousemove', handleVisibility
|
|
1045
|
-
};
|
|
1046
|
-
}, [openOn, closeOn, blocked, disabled, active]);
|
|
1047
|
-
// handle closing only when content is active
|
|
1048
|
-
useEffect(() => {
|
|
1049
|
-
if (!closeOnEsc || !active || blocked)
|
|
1050
|
-
return undefined;
|
|
1051
|
-
window.addEventListener('keydown', handleEscKey, false);
|
|
1052
|
-
return () => {
|
|
1053
|
-
window.removeEventListener('keydown', handleEscKey, false);
|
|
1098
|
+
window.removeEventListener('click', handleClick);
|
|
1099
|
+
window.removeEventListener('mousemove', handleVisibility);
|
|
1054
1100
|
};
|
|
1055
|
-
}, [
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
showContent();
|
|
1065
|
-
}
|
|
1066
|
-
else {
|
|
1067
|
-
setContentLoaded(false);
|
|
1068
|
-
if (onClose)
|
|
1069
|
-
onClose();
|
|
1070
|
-
if (ctx.setUnblocked)
|
|
1071
|
-
ctx.setUnblocked();
|
|
1072
|
-
}
|
|
1073
|
-
}, [active, onOpen, onClose, ctx.setBlocked, ctx.setUnblocked]);
|
|
1074
|
-
useEffect(() => {
|
|
1075
|
-
if (isContentLoaded) {
|
|
1076
|
-
setContentPosition();
|
|
1077
|
-
setContentPosition();
|
|
1078
|
-
}
|
|
1079
|
-
}, [isContentLoaded]);
|
|
1080
|
-
useEffect(() => {
|
|
1081
|
-
setInnerAlignX(alignX);
|
|
1082
|
-
setInnerAlignY(alignY);
|
|
1083
|
-
if (disabled) {
|
|
1084
|
-
hideContent();
|
|
1085
|
-
}
|
|
1086
|
-
}, [disabled, alignX, alignY]);
|
|
1101
|
+
}, [
|
|
1102
|
+
openOn,
|
|
1103
|
+
closeOn,
|
|
1104
|
+
blocked,
|
|
1105
|
+
disabled,
|
|
1106
|
+
active,
|
|
1107
|
+
handleClick,
|
|
1108
|
+
handleVisibility,
|
|
1109
|
+
]);
|
|
1087
1110
|
// hack-ish way to load contet correctly on the first load
|
|
1088
1111
|
// as `contentRef` is loaded dynamically
|
|
1089
|
-
const contentRefCallback = (node) => {
|
|
1090
|
-
|
|
1091
|
-
// @ts-ignore
|
|
1092
|
-
if (node)
|
|
1112
|
+
const contentRefCallback = useCallback((node) => {
|
|
1113
|
+
if (node) {
|
|
1093
1114
|
contentRef.current = node;
|
|
1094
|
-
|
|
1095
|
-
|
|
1115
|
+
setContentLoaded(true);
|
|
1116
|
+
}
|
|
1117
|
+
}, []);
|
|
1096
1118
|
return {
|
|
1097
1119
|
triggerRef,
|
|
1098
1120
|
contentRef: contentRefCallback,
|
|
@@ -1105,7 +1127,7 @@ offsetX = 0, offsetY = 0, throttleDelay = 200, parentContainer, closeOnEsc = tru
|
|
|
1105
1127
|
blocked,
|
|
1106
1128
|
setBlocked,
|
|
1107
1129
|
setUnblocked,
|
|
1108
|
-
Provider:
|
|
1130
|
+
Provider: Component$2,
|
|
1109
1131
|
};
|
|
1110
1132
|
};
|
|
1111
1133
|
|
|
@@ -1168,5 +1190,5 @@ Component.displayName = name;
|
|
|
1168
1190
|
Component.pkgName = PKG_NAME;
|
|
1169
1191
|
Component.VITUS_LABS__COMPONENT = name;
|
|
1170
1192
|
|
|
1171
|
-
export { Component$
|
|
1193
|
+
export { Component$5 as Element, component$2 as List, Component$1 as Overlay, Component$2 as OverlayProvider, Component$3 as Portal, component as Text, Component as Util, useOverlay, component$1 as withActiveState, withEqualBeforeAfter as withEqualSizeBeforeAfter };
|
|
1172
1194
|
//# sourceMappingURL=vitus-labs-elements.module.js.map
|