@startlibs/components 1.1.3 → 1.1.5
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/lib/Dialog.mjs +1 -1
- package/lib/Dialog.mjs.map +1 -1
- package/lib/containers/usePositioning.mjs +6 -0
- package/lib/containers/usePositioning.mjs.map +1 -1
- package/lib/index.cjs +7 -1
- package/lib/index.cjs.map +1 -1
- package/package.json +1 -1
- package/src/Dialog.jsx +0 -1
- package/src/containers/usePositioning.jsx +6 -0
package/lib/Dialog.mjs
CHANGED
|
@@ -127,7 +127,7 @@ const Dialog = /*#__PURE__*/styled(/*#__PURE__*/React.forwardRef((_ref, outerRef
|
|
|
127
127
|
})).withConfig({
|
|
128
128
|
displayName: "Dialog",
|
|
129
129
|
componentId: "sc-gai4ey-9"
|
|
130
|
-
})(["@supports (position:sticky){will-change:transform,opacity;&.JS-wc-off{will-change:auto;}}border-radius:24px;padding:2rem;background-color:white;width:100%;max-width:45rem;", " margin:auto;position:relative;align-self:baseline;display:block
|
|
130
|
+
})(["@supports (position:sticky){will-change:transform,opacity;&.JS-wc-off{will-change:auto;}}border-radius:24px;padding:2rem;background-color:white;width:100%;max-width:45rem;", " margin:auto;position:relative;align-self:baseline;display:block;> h3:first-child{margin-top:0.5rem;}p{line-height:140%;}", " ", " ", ""], props => props.$maxWidth && css(["max-width:", ";"], props.$maxWidth), media.mobile(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n padding: 1.75rem;\n max-width: 100%;\n ", ";\n "])), props => props.fullscreenOnMobile && "\n border-radius: 0;\n min-height: 100%;\n "), props => props.closeDialog && css(["", "{padding-right:2rem;}"], DialogTitle), customTheme('Dialog'));
|
|
131
131
|
const ConfirmDialog = props => /*#__PURE__*/React.createElement(Dialog, _extends({}, props, {
|
|
132
132
|
placement: "Confirm-Dialog"
|
|
133
133
|
}), props.children);
|
package/lib/Dialog.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.mjs","sources":["../src/Dialog.jsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash/fp'\nimport styled, {css} from 'styled-components'\nimport {darken} from 'polished'\n\nimport {callIfFunction, customTheme, getColor, media} from '@startlibs/utils'\nimport {StartlibsConsumer, useEnsureRef} from '@startlibs/core'\n\nimport {Button} from './Button'\nimport {Icon} from './Icon'\nimport {LoadingDiv} from './LoadingDiv'\nimport {fixDoubledLastMarginBottom} from './SplitColumnsContainer'\nimport {DialogContainer} from './containers/DialogContainer'\nimport {willUseIsSticky} from './willUseIsSticky'\n\nexport const DialogIcon = styled(Icon)`\n font-size: 60px;\n width: 8rem;\n text-align: center;\n color: #d2d2d2;\n right: 0;\n top: 1rem;\n position: absolute;\n ${media.desktop`\n top: 0\n `}\n`\n\nconst CloseIcon = styled(Icon).attrs(_.assign({icon: 'x'}))`\n position: absolute;\n width: 32px;\n height: 32px;\n font-size: 24px;\n line-height: 32px;\n cursor: pointer;\n border-radius: 50%;\n text-align: center;\n color: rgba(0,0,0,0.3);\n transition: 0.2s linear;\n z-index: 1000;\n top: 1rem;\n right: 1rem;\n &:hover {\n background-color: rgba(0,0,0,0.075);\n }\n `\n\nconst DialogIllustration = styled.img`\n max-width: 16rem;\n position: absolute;\n right: 1rem;\n bottom: 0;\n ${media.mobile`\n display: none;\n `}\n`\n\nconst DialogContent = styled((props) =>\n <div {...props}>\n {fixDoubledLastMarginBottom(props.children)}\n {props.icon && <DialogIcon icon={props.icon}/>}\n {props.illustration && <DialogIllustration src={props.illustration}/>}\n </div>\n)`\n outline:none;\n width: 100%;\n position: relative;\n min-height: 5rem;\n ${props => props.icon && css`\n padding-right: 8rem;\n min-height: 6rem;\n `}\n ${props => props.illustration && css`\n padding-right: 15rem;\n ${media.mobile`\n padding-right: 1.5rem;\n `}\n `}\n p {\n font-size: 14px;\n }\n `\n\nconst DialogTitle = styled.h2`\n margin-bottom: 1rem;\n padding-bottom: 1rem;\n ${props => props.fixTitleMargin && `\n padding-bottom: 0;\n `}\n ${media.mobile`\n font-size: 19px;\n `}\n`\n\nconst DialogFooter = styled.div`\n display: block;\n padding-top: 1rem;\n margin-top: 1rem;\n align-items: stretch;\n text-align: right;\n ${props => props.sticky && css`\n position: sticky;\n background: white;\n width: inherit;\n z-index: 50;\n ${media.desktop`\n bottom: -3rem;\n margin-left: -2rem;\n margin-right: -2rem;\n margin-bottom: -1.5rem;\n margin-top: 0.5rem;\n padding: 1.5rem 2rem;\n border-radius: 0 0 1rem 1rem;\n `}\n ${media.mobile`\n bottom: -0.5rem;\n padding: 0.75rem 1.75rem;\n margin-bottom: -1rem;\n margin-left: -1.75rem;\n margin-right: -1.75rem;\n `}\n ${props => props.isSticky && `\n box-shadow: 0 0px 2px 0 rgba(0,0,0,0.1), 0 0px 5px 1px rgba(0,0,0,0.15);\n border-radius: 0;\n `}\n `}\n ${media.max(370)`\n ${Button} {\n min-width: unset;\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n }\n `}\n // Footer's plain (non-colored) buttons use the \"light\" look; colored variants keep their color.\n // ponytail: for a plain footer button that shows a loading spinner, pass \\`light\\` explicitly so the spinner renders dark instead of white-on-light.\n ${Button}:not(.styled-button-colored) {\n background: ${props => darken(0.03, getColor('bluishGray')(props))};\n color: ${getColor('gray90')};\n &:hover {\n background: ${props => darken(0.06, getColor('bluishGray')(props))};\n }\n &:active {\n background: ${props => darken(0.09, getColor('bluishGray')(props))};\n }\n }\n `\n\nconst FooterAuxiliaryContainer = styled.div`\n flex-grow: 1;\n align-self: center;\n display: inline-block;\n padding-right: 1rem;\n float: left;\n`\n\n// THIS IS NEEDED FOR LOADING ANIMATION ON DialogWithImageHeader\n\nexport const DialogContentWrapper = styled(LoadingDiv)`\n padding: 2rem;\n margin: -2rem;\n ${media.mobile`\n padding: 1.75rem;\n margin: -1.75rem;\n `}\n`\nconst DialogAlwaysVisibleDiv = styled.div`\n padding: 2rem 2rem 0;\n margin: -2rem;\n ${media.mobile`\n padding: 1.75rem 1.75rem 0;\n margin: -1.75rem;\n `}\n`\n// END\n\nconst Dialog = styled(React.forwardRef(({className, skipWrap, wrapChildren, stickyFooter, fixTitleMargin, skipCloseIcon, isLoading, footer, Content, children, title, illustration, icon, auxiliarActions, container = true, onClose, ...props}, outerRef) => {\n const ref = useEnsureRef(outerRef)\n const [WithIsSticky] = willUseIsSticky()\n\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (props.closeDialog) props.closeDialog()\n }, [onClose, props.closeDialog])\n\n const alwaysVisible = (confirmCloseDialog) => <>\n {\n props.closeDialog && !skipCloseIcon &&\n <CloseIcon className=\"JS-dialog-close\" onClick={confirmCloseDialog}/>\n }\n {\n title &&\n <DialogTitle fixTitleMargin>{callIfFunction(title)}</DialogTitle>\n }\n </>\n\n const content = <>\n {\n Content &&\n <DialogContent icon={icon} illustration={illustration}>{callIfFunction(Content)}</DialogContent>\n }\n {\n !Content && children &&\n <DialogContent icon={icon} illustration={illustration}>{wrapChildren ? wrapChildren(children) : callIfFunction(children)}</DialogContent>\n }\n {\n Content && children && (wrapChildren ? wrapChildren(children) : callIfFunction(children))\n }\n {\n footer &&\n <WithIsSticky bottom>{(sentinel, isSticky) => <>\n <DialogFooter isSticky={isSticky} sticky={stickyFooter}>\n {auxiliarActions && <FooterAuxiliaryContainer>{callIfFunction(auxiliarActions)}</FooterAuxiliaryContainer>}\n {callIfFunction(footer)}\n </DialogFooter>\n {sentinel()}\n </>\n }</WithIsSticky>\n }\n </>\n\n const dialog = (confirmCloseDialog) => <div\n className={className + \" JS-has-wc JS-dialog\"}\n ref={ref}\n >\n {skipWrap\n ? <>\n {alwaysVisible(confirmCloseDialog)}\n {content}\n </>\n : <>\n <DialogAlwaysVisibleDiv>\n {alwaysVisible(confirmCloseDialog)}\n </DialogAlwaysVisibleDiv>\n <DialogContentWrapper isLoading={isLoading}>\n {content}\n </DialogContentWrapper>\n </>\n }\n </div>\n\n return container\n ? <DialogContainer {...props} DialogErrorContent={DialogErrorContent}\n ref={ref}\n title={title}\n closeDialog={handleClose}\n >{({confirmCloseDialog}) => dialog(confirmCloseDialog)}</DialogContainer>\n : dialog(handleClose)\n}))`\n @supports (position:sticky) {\n will-change: transform, opacity;\n &.JS-wc-off {\n will-change: auto;\n }\n }\n \n border-radius: 24px;\n padding: 2rem;\n background-color: white;\n width: 100%;\n max-width: 45rem;\n /* Override opcional via prop. Fica ANTES do media.mobile de propósito: no mobile\n o max-width:100% de lá continua ganhando. Inerte sem a prop → zero efeito em\n quem já ajusta a largura por css=\"max-width:...\". */\n ${props => props.$maxWidth && css`max-width: ${props.$maxWidth};`}\n margin: auto;\n position: relative;\n align-self: baseline;\n display: block; \n overflow: clip;\n > h3:first-child {\n margin-top: 0.5rem;\n }\n p {\n line-height: 140%;\n }\n ${media.mobile`\n padding: 1.75rem;\n max-width: 100%;\n ${props => props.fullscreenOnMobile && `\n border-radius: 0;\n min-height: 100%;\n `};\n `}\n ${props => props.closeDialog && css`\n ${DialogTitle} {\n padding-right: 2rem;\n }\n `}\n ${customTheme('Dialog')}\n`\n\n\nexport {\n FooterAuxiliaryContainer,\n DialogTitle,\n DialogFooter,\n DialogContent,\n CloseIcon,\n Dialog\n}\n\nexport const ConfirmDialog = (props) => <Dialog {...props} placement=\"Confirm-Dialog\">{props.children}</Dialog>\n\nexport const DefaultConfirmDialog = (props) => (\n <StartlibsConsumer>{({confirmDialogLabels}) => {\n const handleCancel = async () => {\n if (props.onCancel) props.onCancel()\n if (props.onClose) await props.onClose().catch(console.error)\n }\n\n return (\n <ConfirmDialog\n title={confirmDialogLabels.title}\n closeDialog={handleCancel}\n onClose={props.onClose}\n onConfirm={props.onConfirm}\n footer={<>\n <Button onClick={handleCancel}>{confirmDialogLabels.cancel}</Button>\n <Button\n hover=\"success\" isLoading={props.isLoading}\n onClick={props.onSaveInstead}\n >{confirmDialogLabels.confirm}</Button>\n <Button autoFocus alert onClick={props.onConfirm}>{confirmDialogLabels.discard}</Button>\n </>}\n >\n <p>{confirmDialogLabels.content}</p>\n </ConfirmDialog>\n )}}\n </StartlibsConsumer>)\n\n// Estado de erro genérico da dialog: badge circular centralizado (mesma linguagem\n// dos error pages da app) no lugar do ícone cinza flutuando no canto. Cores em rgba\n// (não getColor) pra não depender dos tokens de tema da app que consome a lib.\nconst DialogErrorLayout = styled.div`\n text-align: center;\n /* max-width (não <br/>) força a quebra do título em ~2 linhas como o error page,\n mas deixa telas estreitas quebrarem sozinhas. Ajuste fino se o corte não bater. */\n ${DialogTitle} {\n max-width: 18rem;\n margin-left: auto;\n margin-right: auto;\n }\n ${DialogContent} {\n min-height: 0; /* mata o vão vazio que sobrava acima do botão */\n p {\n max-width: 20rem;\n margin-left: auto;\n margin-right: auto;\n }\n }\n ${DialogFooter} {\n text-align: center;\n margin-top: 0;\n padding-top: 0.5rem;\n }\n`\n\nconst DialogErrorBadge = styled.div`\n width: 72px;\n height: 72px;\n margin: 0 auto 1.5rem;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.06);\n display: flex;\n align-items: center;\n justify-content: center;\n ${Icon} {\n font-size: 40px;\n color: rgba(0, 0, 0, 0.4);\n }\n`\n\nexport const DialogErrorContent = ({ closeDialog, onClose, title }) => {\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (closeDialog) closeDialog()\n }, [onClose, closeDialog])\n\n return (\n <StartlibsConsumer>\n {({ ErrorDialog: { title, content, close } }) => (\n <Dialog as=\"div\" $maxWidth=\"30rem\">\n {closeDialog && <CloseIcon onClick={handleClose} />}\n <DialogErrorLayout>\n <DialogErrorBadge><Icon icon=\"warning\"/></DialogErrorBadge>\n {title && <DialogTitle fixTitleMargin>{title}</DialogTitle>}\n <DialogContent>{content}</DialogContent>\n <DialogFooter>\n <Button highlight rounded onClick={handleClose}>{close}</Button>\n </DialogFooter>\n </DialogErrorLayout>\n </Dialog>\n )}\n </StartlibsConsumer>\n )\n}\n\nexport const DialogError = ({ closeDialog, onClose }) => {\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (closeDialog) closeDialog()\n }, [onClose, closeDialog])\n\n return (\n <StartlibsConsumer>\n {({ ErrorDialog: { title } }) => (\n <Dialog closeDialog={handleClose} title={title}>\n <DialogErrorContent closeDialog={handleClose} onClose={onClose} />\n </Dialog>\n )}\n </StartlibsConsumer>\n )\n}\n"],"names":["DialogIcon","styled","Icon","withConfig","displayName","componentId","media","desktop","_templateObject","_taggedTemplateLiteral","CloseIcon","attrs","_assign","icon","DialogIllustration","img","mobile","_templateObject2","DialogContent","props","React","createElement","fixDoubledLastMarginBottom","children","illustration","src","css","_templateObject3","DialogTitle","h2","fixTitleMargin","_templateObject4","DialogFooter","div","sticky","_templateObject5","_templateObject6","isSticky","max","_templateObject7","Button","darken","getColor","FooterAuxiliaryContainer","DialogContentWrapper","LoadingDiv","_templateObject8","DialogAlwaysVisibleDiv","_templateObject9","Dialog","forwardRef","_ref","outerRef","className","skipWrap","wrapChildren","stickyFooter","skipCloseIcon","isLoading","footer","Content","title","auxiliarActions","container","onClose","_objectWithoutProperties","_excluded","ref","useEnsureRef","WithIsSticky","willUseIsSticky","handleClose","useCallback","catch","console","error","closeDialog","alwaysVisible","confirmCloseDialog","Fragment","onClick","callIfFunction","content","bottom","sentinel","dialog","DialogContainer","_extends","DialogErrorContent","_ref2","$maxWidth","_templateObject10","fullscreenOnMobile","customTheme","ConfirmDialog","placement","DefaultConfirmDialog","StartlibsConsumer","_ref3","confirmDialogLabels","handleCancel","onCancel","onConfirm","cancel","hover","onSaveInstead","confirm","autoFocus","alert","discard","DialogErrorLayout","DialogErrorBadge","_ref4","_ref5","ErrorDialog","close","as","highlight","rounded","DialogError","_ref6","_ref7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dialog.mjs","sources":["../src/Dialog.jsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash/fp'\nimport styled, {css} from 'styled-components'\nimport {darken} from 'polished'\n\nimport {callIfFunction, customTheme, getColor, media} from '@startlibs/utils'\nimport {StartlibsConsumer, useEnsureRef} from '@startlibs/core'\n\nimport {Button} from './Button'\nimport {Icon} from './Icon'\nimport {LoadingDiv} from './LoadingDiv'\nimport {fixDoubledLastMarginBottom} from './SplitColumnsContainer'\nimport {DialogContainer} from './containers/DialogContainer'\nimport {willUseIsSticky} from './willUseIsSticky'\n\nexport const DialogIcon = styled(Icon)`\n font-size: 60px;\n width: 8rem;\n text-align: center;\n color: #d2d2d2;\n right: 0;\n top: 1rem;\n position: absolute;\n ${media.desktop`\n top: 0\n `}\n`\n\nconst CloseIcon = styled(Icon).attrs(_.assign({icon: 'x'}))`\n position: absolute;\n width: 32px;\n height: 32px;\n font-size: 24px;\n line-height: 32px;\n cursor: pointer;\n border-radius: 50%;\n text-align: center;\n color: rgba(0,0,0,0.3);\n transition: 0.2s linear;\n z-index: 1000;\n top: 1rem;\n right: 1rem;\n &:hover {\n background-color: rgba(0,0,0,0.075);\n }\n `\n\nconst DialogIllustration = styled.img`\n max-width: 16rem;\n position: absolute;\n right: 1rem;\n bottom: 0;\n ${media.mobile`\n display: none;\n `}\n`\n\nconst DialogContent = styled((props) =>\n <div {...props}>\n {fixDoubledLastMarginBottom(props.children)}\n {props.icon && <DialogIcon icon={props.icon}/>}\n {props.illustration && <DialogIllustration src={props.illustration}/>}\n </div>\n)`\n outline:none;\n width: 100%;\n position: relative;\n min-height: 5rem;\n ${props => props.icon && css`\n padding-right: 8rem;\n min-height: 6rem;\n `}\n ${props => props.illustration && css`\n padding-right: 15rem;\n ${media.mobile`\n padding-right: 1.5rem;\n `}\n `}\n p {\n font-size: 14px;\n }\n `\n\nconst DialogTitle = styled.h2`\n margin-bottom: 1rem;\n padding-bottom: 1rem;\n ${props => props.fixTitleMargin && `\n padding-bottom: 0;\n `}\n ${media.mobile`\n font-size: 19px;\n `}\n`\n\nconst DialogFooter = styled.div`\n display: block;\n padding-top: 1rem;\n margin-top: 1rem;\n align-items: stretch;\n text-align: right;\n ${props => props.sticky && css`\n position: sticky;\n background: white;\n width: inherit;\n z-index: 50;\n ${media.desktop`\n bottom: -3rem;\n margin-left: -2rem;\n margin-right: -2rem;\n margin-bottom: -1.5rem;\n margin-top: 0.5rem;\n padding: 1.5rem 2rem;\n border-radius: 0 0 1rem 1rem;\n `}\n ${media.mobile`\n bottom: -0.5rem;\n padding: 0.75rem 1.75rem;\n margin-bottom: -1rem;\n margin-left: -1.75rem;\n margin-right: -1.75rem;\n `}\n ${props => props.isSticky && `\n box-shadow: 0 0px 2px 0 rgba(0,0,0,0.1), 0 0px 5px 1px rgba(0,0,0,0.15);\n border-radius: 0;\n `}\n `}\n ${media.max(370)`\n ${Button} {\n min-width: unset;\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n }\n `}\n // Footer's plain (non-colored) buttons use the \"light\" look; colored variants keep their color.\n // ponytail: for a plain footer button that shows a loading spinner, pass \\`light\\` explicitly so the spinner renders dark instead of white-on-light.\n ${Button}:not(.styled-button-colored) {\n background: ${props => darken(0.03, getColor('bluishGray')(props))};\n color: ${getColor('gray90')};\n &:hover {\n background: ${props => darken(0.06, getColor('bluishGray')(props))};\n }\n &:active {\n background: ${props => darken(0.09, getColor('bluishGray')(props))};\n }\n }\n `\n\nconst FooterAuxiliaryContainer = styled.div`\n flex-grow: 1;\n align-self: center;\n display: inline-block;\n padding-right: 1rem;\n float: left;\n`\n\n// THIS IS NEEDED FOR LOADING ANIMATION ON DialogWithImageHeader\n\nexport const DialogContentWrapper = styled(LoadingDiv)`\n padding: 2rem;\n margin: -2rem;\n ${media.mobile`\n padding: 1.75rem;\n margin: -1.75rem;\n `}\n`\nconst DialogAlwaysVisibleDiv = styled.div`\n padding: 2rem 2rem 0;\n margin: -2rem;\n ${media.mobile`\n padding: 1.75rem 1.75rem 0;\n margin: -1.75rem;\n `}\n`\n// END\n\nconst Dialog = styled(React.forwardRef(({className, skipWrap, wrapChildren, stickyFooter, fixTitleMargin, skipCloseIcon, isLoading, footer, Content, children, title, illustration, icon, auxiliarActions, container = true, onClose, ...props}, outerRef) => {\n const ref = useEnsureRef(outerRef)\n const [WithIsSticky] = willUseIsSticky()\n\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (props.closeDialog) props.closeDialog()\n }, [onClose, props.closeDialog])\n\n const alwaysVisible = (confirmCloseDialog) => <>\n {\n props.closeDialog && !skipCloseIcon &&\n <CloseIcon className=\"JS-dialog-close\" onClick={confirmCloseDialog}/>\n }\n {\n title &&\n <DialogTitle fixTitleMargin>{callIfFunction(title)}</DialogTitle>\n }\n </>\n\n const content = <>\n {\n Content &&\n <DialogContent icon={icon} illustration={illustration}>{callIfFunction(Content)}</DialogContent>\n }\n {\n !Content && children &&\n <DialogContent icon={icon} illustration={illustration}>{wrapChildren ? wrapChildren(children) : callIfFunction(children)}</DialogContent>\n }\n {\n Content && children && (wrapChildren ? wrapChildren(children) : callIfFunction(children))\n }\n {\n footer &&\n <WithIsSticky bottom>{(sentinel, isSticky) => <>\n <DialogFooter isSticky={isSticky} sticky={stickyFooter}>\n {auxiliarActions && <FooterAuxiliaryContainer>{callIfFunction(auxiliarActions)}</FooterAuxiliaryContainer>}\n {callIfFunction(footer)}\n </DialogFooter>\n {sentinel()}\n </>\n }</WithIsSticky>\n }\n </>\n\n const dialog = (confirmCloseDialog) => <div\n className={className + \" JS-has-wc JS-dialog\"}\n ref={ref}\n >\n {skipWrap\n ? <>\n {alwaysVisible(confirmCloseDialog)}\n {content}\n </>\n : <>\n <DialogAlwaysVisibleDiv>\n {alwaysVisible(confirmCloseDialog)}\n </DialogAlwaysVisibleDiv>\n <DialogContentWrapper isLoading={isLoading}>\n {content}\n </DialogContentWrapper>\n </>\n }\n </div>\n\n return container\n ? <DialogContainer {...props} DialogErrorContent={DialogErrorContent}\n ref={ref}\n title={title}\n closeDialog={handleClose}\n >{({confirmCloseDialog}) => dialog(confirmCloseDialog)}</DialogContainer>\n : dialog(handleClose)\n}))`\n @supports (position:sticky) {\n will-change: transform, opacity;\n &.JS-wc-off {\n will-change: auto;\n }\n }\n \n border-radius: 24px;\n padding: 2rem;\n background-color: white;\n width: 100%;\n max-width: 45rem;\n /* Override opcional via prop. Fica ANTES do media.mobile de propósito: no mobile\n o max-width:100% de lá continua ganhando. Inerte sem a prop → zero efeito em\n quem já ajusta a largura por css=\"max-width:...\". */\n ${props => props.$maxWidth && css`max-width: ${props.$maxWidth};`}\n margin: auto;\n position: relative;\n align-self: baseline;\n display: block; \n > h3:first-child {\n margin-top: 0.5rem;\n }\n p {\n line-height: 140%;\n }\n ${media.mobile`\n padding: 1.75rem;\n max-width: 100%;\n ${props => props.fullscreenOnMobile && `\n border-radius: 0;\n min-height: 100%;\n `};\n `}\n ${props => props.closeDialog && css`\n ${DialogTitle} {\n padding-right: 2rem;\n }\n `}\n ${customTheme('Dialog')}\n`\n\n\nexport {\n FooterAuxiliaryContainer,\n DialogTitle,\n DialogFooter,\n DialogContent,\n CloseIcon,\n Dialog\n}\n\nexport const ConfirmDialog = (props) => <Dialog {...props} placement=\"Confirm-Dialog\">{props.children}</Dialog>\n\nexport const DefaultConfirmDialog = (props) => (\n <StartlibsConsumer>{({confirmDialogLabels}) => {\n const handleCancel = async () => {\n if (props.onCancel) props.onCancel()\n if (props.onClose) await props.onClose().catch(console.error)\n }\n\n return (\n <ConfirmDialog\n title={confirmDialogLabels.title}\n closeDialog={handleCancel}\n onClose={props.onClose}\n onConfirm={props.onConfirm}\n footer={<>\n <Button onClick={handleCancel}>{confirmDialogLabels.cancel}</Button>\n <Button\n hover=\"success\" isLoading={props.isLoading}\n onClick={props.onSaveInstead}\n >{confirmDialogLabels.confirm}</Button>\n <Button autoFocus alert onClick={props.onConfirm}>{confirmDialogLabels.discard}</Button>\n </>}\n >\n <p>{confirmDialogLabels.content}</p>\n </ConfirmDialog>\n )}}\n </StartlibsConsumer>)\n\n// Estado de erro genérico da dialog: badge circular centralizado (mesma linguagem\n// dos error pages da app) no lugar do ícone cinza flutuando no canto. Cores em rgba\n// (não getColor) pra não depender dos tokens de tema da app que consome a lib.\nconst DialogErrorLayout = styled.div`\n text-align: center;\n /* max-width (não <br/>) força a quebra do título em ~2 linhas como o error page,\n mas deixa telas estreitas quebrarem sozinhas. Ajuste fino se o corte não bater. */\n ${DialogTitle} {\n max-width: 18rem;\n margin-left: auto;\n margin-right: auto;\n }\n ${DialogContent} {\n min-height: 0; /* mata o vão vazio que sobrava acima do botão */\n p {\n max-width: 20rem;\n margin-left: auto;\n margin-right: auto;\n }\n }\n ${DialogFooter} {\n text-align: center;\n margin-top: 0;\n padding-top: 0.5rem;\n }\n`\n\nconst DialogErrorBadge = styled.div`\n width: 72px;\n height: 72px;\n margin: 0 auto 1.5rem;\n border-radius: 50%;\n background: rgba(0, 0, 0, 0.06);\n display: flex;\n align-items: center;\n justify-content: center;\n ${Icon} {\n font-size: 40px;\n color: rgba(0, 0, 0, 0.4);\n }\n`\n\nexport const DialogErrorContent = ({ closeDialog, onClose, title }) => {\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (closeDialog) closeDialog()\n }, [onClose, closeDialog])\n\n return (\n <StartlibsConsumer>\n {({ ErrorDialog: { title, content, close } }) => (\n <Dialog as=\"div\" $maxWidth=\"30rem\">\n {closeDialog && <CloseIcon onClick={handleClose} />}\n <DialogErrorLayout>\n <DialogErrorBadge><Icon icon=\"warning\"/></DialogErrorBadge>\n {title && <DialogTitle fixTitleMargin>{title}</DialogTitle>}\n <DialogContent>{content}</DialogContent>\n <DialogFooter>\n <Button highlight rounded onClick={handleClose}>{close}</Button>\n </DialogFooter>\n </DialogErrorLayout>\n </Dialog>\n )}\n </StartlibsConsumer>\n )\n}\n\nexport const DialogError = ({ closeDialog, onClose }) => {\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (closeDialog) closeDialog()\n }, [onClose, closeDialog])\n\n return (\n <StartlibsConsumer>\n {({ ErrorDialog: { title } }) => (\n <Dialog closeDialog={handleClose} title={title}>\n <DialogErrorContent closeDialog={handleClose} onClose={onClose} />\n </Dialog>\n )}\n </StartlibsConsumer>\n )\n}\n"],"names":["DialogIcon","styled","Icon","withConfig","displayName","componentId","media","desktop","_templateObject","_taggedTemplateLiteral","CloseIcon","attrs","_assign","icon","DialogIllustration","img","mobile","_templateObject2","DialogContent","props","React","createElement","fixDoubledLastMarginBottom","children","illustration","src","css","_templateObject3","DialogTitle","h2","fixTitleMargin","_templateObject4","DialogFooter","div","sticky","_templateObject5","_templateObject6","isSticky","max","_templateObject7","Button","darken","getColor","FooterAuxiliaryContainer","DialogContentWrapper","LoadingDiv","_templateObject8","DialogAlwaysVisibleDiv","_templateObject9","Dialog","forwardRef","_ref","outerRef","className","skipWrap","wrapChildren","stickyFooter","skipCloseIcon","isLoading","footer","Content","title","auxiliarActions","container","onClose","_objectWithoutProperties","_excluded","ref","useEnsureRef","WithIsSticky","willUseIsSticky","handleClose","useCallback","catch","console","error","closeDialog","alwaysVisible","confirmCloseDialog","Fragment","onClick","callIfFunction","content","bottom","sentinel","dialog","DialogContainer","_extends","DialogErrorContent","_ref2","$maxWidth","_templateObject10","fullscreenOnMobile","customTheme","ConfirmDialog","placement","DefaultConfirmDialog","StartlibsConsumer","_ref3","confirmDialogLabels","handleCancel","onCancel","onConfirm","cancel","hover","onSaveInstead","confirm","autoFocus","alert","discard","DialogErrorLayout","DialogErrorBadge","_ref4","_ref5","ErrorDialog","close","as","highlight","rounded","DialogError","_ref6","_ref7"],"mappings":"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"}
|
|
@@ -113,6 +113,9 @@ const usePositioning = (element, _ref, arrowRefOpt) => {
|
|
|
113
113
|
setTimeout(() => setPosition(retry + 1), 100);
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
|
+
// Limpar a largura para medir pode encurtar o conteúdo (itens deixam de quebrar linha)
|
|
117
|
+
// e o browser corta o scrollTop; guarda para restaurar depois de reaplicar a largura.
|
|
118
|
+
const previousScrollTop = element.current.scrollTop;
|
|
116
119
|
if (keepWidth) {
|
|
117
120
|
element.current.style.width = '';
|
|
118
121
|
} else {
|
|
@@ -229,6 +232,9 @@ const usePositioning = (element, _ref, arrowRefOpt) => {
|
|
|
229
232
|
if (fixed) {
|
|
230
233
|
element.current.style.position = 'fixed';
|
|
231
234
|
}
|
|
235
|
+
if (element.current.scrollTop !== previousScrollTop) {
|
|
236
|
+
element.current.scrollTop = previousScrollTop;
|
|
237
|
+
}
|
|
232
238
|
};
|
|
233
239
|
useLayoutEffect(setPosition, [on]);
|
|
234
240
|
useEffect(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePositioning.mjs","sources":["../../src/containers/usePositioning.jsx"],"sourcesContent":["import React, {useEffect, useLayoutEffect, useRef, useState} from 'react'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {getClosestOffsetScroll} from '@startlibs/utils'\nimport {useEnsureRef} from '@startlibs/core'\nimport {getDialogLayersSize} from './DialogContainer'\n\nconst Placeholder = styled.span`\n top:0;\n left:0;\n padding: 0 !important;\n position: absolute;\n`\n/*\ntype Alignment = 'top left' | 'top center' | 'top right' |\n 'center left' | 'center center' | 'center right' |\n 'bottom left' | 'bottom center' | 'bottom right'\n\ntype Collision = 'fit fit' | 'fit flip' | 'fit fitflip' | 'fit none' |\n 'flip fit' | 'flip flip' | 'flip fitflip' | 'flip none' |\n 'flipfit fit' | 'flipfit flip' | 'flipfit fitflip' | 'flipfit none' |\n 'none fit' | 'none flip' | 'none fitflip' | 'none none'\n*/\n\nconst HORIZONTAL_MAPPING = ['left', 'center', 'right']\nconst VERTICAL_MAPPING = ['top', 'center', 'bottom']\nconst ARROW_KEY_POSITIONS = {left: '0', right: '-0', top: '0', bottom: '-0'}\n\nconst POSITIONING_BOUNDS = {left:0,top:0,right:0,bottom:0}\nexport const addPositioningBound = (key,value) => {\n POSITIONING_BOUNDS[key] += value\n return () => POSITIONING_BOUNDS[key] -= value\n}\n\nfunction getPosition(origin, offset, max, originSize, selfSize, originalAlignment, selfAlignment, onCollision, mapping, boundMargin) {\n\n // 0 pra left ou top, 1/2 pra center, 1 pra right ou bottom\n const originDiff = originSize * (mapping.indexOf(originalAlignment) / 2)\n // 0 pra left ou top, -1/2 pra center, -1 pra right ou bottom\n const selfDiff = -(selfSize * (mapping.indexOf(selfAlignment) / 2))\n\n const respectingBounds = boundMargin !== false\n const upperBound = respectingBounds ? (POSITIONING_BOUNDS[mapping[0]] + boundMargin) : Number.MIN_SAFE_INTEGER\n const lowerBound = respectingBounds ? (POSITIONING_BOUNDS[mapping[2]] + boundMargin) : 0\n const newPosition = Math.max(upperBound, origin + selfDiff + originDiff + offset)\n\n const collision = Math.max(-newPosition, newPosition + selfSize - max + lowerBound)\n if (collision > 0 && onCollision !== 'none') {\n if (onCollision.indexOf('flip') >= 0) {\n const flippedPosition = getPosition(origin, -offset, max, originSize, selfSize, originalAlignment, selfAlignment, onCollision.indexOf('fit') >= 0 ? 'fit' : 'none', mapping.slice().reverse(), boundMargin)\n const flippedCollision = Math.max(-flippedPosition[0], flippedPosition[0] + selfSize - max)\n if ((collision > 0 && flippedCollision > 0) || flippedPosition[0] < upperBound) {\n return getPosition(origin, offset, max, originSize, selfSize, originalAlignment, selfAlignment, 'fit', mapping, boundMargin)\n }\n return collision < flippedCollision ? [newPosition, 'none'] : [flippedPosition[0], flippedPosition[1] === 'fit' ? 'flipfit' : 'flip']\n } else {\n const minBound = respectingBounds ? upperBound : 0\n const fittedPosition = Math.max(minBound, Math.min(newPosition, max - selfSize - lowerBound))\n return [fittedPosition, fittedPosition !== newPosition ? 'fit' : 'none']\n }\n } else {\n return [newPosition, 'none']\n }\n}\n\nconst arrowShadow = {\n top: '-1px -1px 2px -1px rgba(0,0,0,.25)',\n right: '1px -1px 2px -1px rgba(0,0,0,.25)',\n bottom: '1px 1px 2px -1px rgba(0,0,0,.25)',\n left: '-1px 1px 2px -1px rgba(0,0,0,.25)'\n}\n\nconst translate = (position, offset) => (position === 'left' ? '-50%' : position === 'right' ? '50%' : offset) + ',' +\n (position === 'top' ? '-50%' : position === 'bottom' ? '50%' : offset)\n\nconst ARROW_DEFAULT_SIZE = 14\n\nexport const DefaultArrow = styled.div`\n background-color: #fff;\n position: absolute;\n width: ${ARROW_DEFAULT_SIZE}px;\n height: ${ARROW_DEFAULT_SIZE}px;\n transform: translate(-50%,50%) rotate(45deg);\n bottom: 0;\n left: 50%;\n box-shadow: ${arrowShadow.bottom};\n`\n\nexport const usePositioning = (\n element,\n {\n my = 'top right',\n offset = '0 0', // x y\n at = 'bottom right',\n onCollision = 'flip flip',\n arrow,\n arrowPadding = 10,\n fill,\n useLayers = true,\n fixed,\n bottom: onBottom,\n left: onLeft,\n right: onRight,\n top: onTop,\n keepWidth = true,\n boundMargin = 6,\n respectBounds,\n respectOffsetScroll,\n on,\n placeholderAs\n },\n arrowRefOpt\n) => {\n const placeholder = useRef()\n const arrowRef = useEnsureRef(arrowRefOpt)\n const [positionInfo, setPositionInfo] = useState()\n\n const setPosition = (retry=0) => {\n if (retry>10) { return }\n if (!element.current?.style || !(placeholder.current?.offsetParent || placeholder.current?.parentNode?.offsetParent)) {\n setTimeout(()=>setPosition(retry+1),100)\n return\n }\n if (keepWidth) {\n element.current.style.width = ''\n } else {\n element.current.style.maxWidth = ''\n }\n const placeholderOffsetParent = (placeholder.current?.offsetParent || placeholder.current?.parentNode?.offsetParent)\n const usingLayer = respectOffsetScroll || useLayers && getDialogLayersSize() > 0\n const scrollOwner =\n usingLayer\n ? (_.isFunction(respectOffsetScroll) ? respectOffsetScroll(element.current.offsetParent) : getClosestOffsetScroll(element.current.offsetParent))\n : {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset}\n\n // console.log({scrollOwner,scrollTop:scrollOwner.scrollTop,pageYOffset:window.pageYOffset})\n\n const scrollY = !isNaN(scrollOwner.scrollTop) ? scrollOwner.scrollTop : window.pageYOffset\n const scrollX = !isNaN(scrollOwner.scrollLeft) ? scrollOwner.scrollLeft : window.pageXOffset\n const getRespectOffsetScrollTopLeft = () => {\n const {top,left} = placeholder.current.getBoundingClientRect()\n const {top:scrollOwnerTop, left: scrollOwnerLeft} = scrollOwner.getBoundingClientRect()\n return {top: top-scrollOwnerTop,left: left-scrollOwnerLeft}\n }\n const {left: leftPlusBorder, top: topPlusBorder} =\n respectOffsetScroll\n ? getRespectOffsetScrollTopLeft()\n :placeholder.current.getBoundingClientRect()\n\n const {borderLeftWidth, borderTopWidth} = window.getComputedStyle(placeholderOffsetParent)\n const left = leftPlusBorder - parseInt(borderLeftWidth, 10)\n const top = topPlusBorder - parseInt(borderTopWidth, 10)\n const {offsetWidth: parentOffsetWidth, offsetHeight: parentOffsetHeight} = (placeholderOffsetParent)\n const {offsetWidth: popupOffsetWidth, offsetHeight: popupOffsetHeight} = element.current\n const {width:popupCurrentWidth} = element.current.getBoundingClientRect()\n const [offsetX, offsetY] = [].concat(offset).join(' ').split(' ').map(_ => Number(_ || 0))\n const simplePositioning = [onTop, onRight, onBottom, onLeft].map(_ => _ === true ? 'center' : _)\n const simplePositioningIndex = simplePositioning.findIndex(_ => _)\n const bodyWidth = document.body.offsetWidth - (usingLayer ? parseInt(getComputedStyle(document.body).paddingRight, 10) : 0)\n // Barra fixa inferior (footer mobile) registrada em POSITIONING_BOUNDS conta como\n // borda da tela: sem isso o popup se posiciona atrás dela. Com respectBounds o\n // desconto já vem do lowerBound em getPosition, não descontar duas vezes.\n const windowHeight = window.innerHeight - (respectBounds ? 0 : POSITIONING_BOUNDS.bottom)\n\n const [verticalCollision, horizontalCollision] = onCollision.split(' ')\n const [verticalMy, horizontalMy] = [my, 'bottom $', '$ left', 'top $', '$ right'][simplePositioningIndex + 1].replace('$', simplePositioning[simplePositioningIndex]).split(' ')\n const [verticalAt, horizontalAt] = [at, 'top $', '$ right', 'bottom $', '$ left'][simplePositioningIndex + 1].replace('$', simplePositioning[simplePositioningIndex]).split(' ')\n\n const [processedLeft, collisionH] = getPosition(left, offsetX, bodyWidth, parentOffsetWidth, fill ? parentOffsetWidth : popupOffsetWidth, horizontalAt, horizontalMy, horizontalCollision, HORIZONTAL_MAPPING,!!respectBounds && boundMargin)\n const [processedTop, collisionV] = getPosition(top, offsetY, windowHeight, parentOffsetHeight, popupOffsetHeight, verticalAt, verticalMy, verticalCollision, VERTICAL_MAPPING,!!respectBounds && boundMargin)\n\n\n const flippedV = collisionV.indexOf('flip') >= 0\n const flippedH = collisionH.indexOf('flip') >= 0\n\n\n //arrow\n const arrowSide = Math.abs(VERTICAL_MAPPING.indexOf(verticalMy) - VERTICAL_MAPPING.indexOf(verticalAt)) === 2 ? (flippedV ? verticalAt : verticalMy) :\n Math.abs(HORIZONTAL_MAPPING.indexOf(horizontalMy) - HORIZONTAL_MAPPING.indexOf(horizontalAt)) === 2 ? (flippedH ? horizontalAt : horizontalMy) : ''\n const arrowElement = arrowRef.current\n const arrowOnVerticalSide = arrowSide === 'left' || arrowSide === 'right'\n const arrowSize = arrowElement ? arrowElement.getBoundingClientRect()[arrowOnVerticalSide ? 'height' : 'width'] : (ARROW_DEFAULT_SIZE * Math.sqrt(2))\n const [arrowOffset, popupArrowOffset] = arrowOnVerticalSide ?\n processArrow(ARROW_KEY_POSITIONS[arrow] || arrow, arrowSize, arrowOnVerticalSide, parentOffsetHeight, popupOffsetHeight, processedTop - top, flippedV) :\n processArrow(ARROW_KEY_POSITIONS[arrow] || arrow, arrowSize, arrowOnVerticalSide, parentOffsetWidth, popupOffsetWidth, processedLeft - left, flippedV)\n\n\n const maxHeight = window.innerHeight - (POSITIONING_BOUNDS.top + POSITIONING_BOUNDS.bottom) - (respectBounds ? boundMargin*2 : 0)\n const maxWidth = window.innerWidth - (POSITIONING_BOUNDS.left + POSITIONING_BOUNDS.right) - (respectBounds ? boundMargin*2 : 0)\n\n element.current.style.maxHeight = ''\n if (parseInt(window.getComputedStyle(element.current).maxHeight) > maxHeight) {\n element.current.style.maxHeight = maxHeight+'px'\n }\n if (keepWidth) {\n element.current.style.width = Math.ceil(popupCurrentWidth)+\"px\"\n } else {\n element.current.style.maxWidth = maxWidth+'px'\n }\n // console.log({processedTop,top,offsetY,scrollY})\n\n\n element.current.style.top = (processedTop + (arrowOnVerticalSide ? popupArrowOffset : 0) + (fixed ? 0 : scrollY)) + 'px'\n element.current.style.left = (processedLeft + (arrowOnVerticalSide ? 0 : popupArrowOffset) + (fixed ? 0 : scrollX)) + 'px'\n\n const arrowStyle = {\n transform: `translate(${translate(arrowSide, arrowOffset[0] === 'top' || arrowOffset[0] === 'left' ? '-50%' : '50%')}) rotate(45deg)`,\n bottom:\"auto\",\n left:\"auto\",\n [arrowSide]: '0',\n boxShadow: arrowShadow[arrowSide],\n [arrowOffset[0]]: arrowOffset[1]+'px'\n }\n if (arrowRef.current) {\n Object.assign(arrowRef.current.style,arrowStyle)\n }\n\n setPositionInfo({\n atTop: (verticalAt === 'top' && !flippedV) || (verticalAt === 'bottom' && flippedV),\n atBottom: (verticalAt === 'bottom' && !flippedV) || (verticalAt === 'top' && flippedV),\n atLeft: (horizontalAt === 'left' && !flippedH) || (verticalAt === 'right' && flippedH),\n atRight: (horizontalAt === 'right' && !flippedH) || (verticalAt === 'left' && flippedH),\n fullHeight: popupOffsetHeight > maxHeight,\n fullWidth: popupOffsetWidth > maxWidth,\n arrowSide,\n arrowOffset,\n arrowStyle\n })\n\n if (fill) {\n element.current.style.width = parentOffsetWidth + 'px'\n }\n if (fixed) {\n element.current.style.position = 'fixed'\n }\n }\n\n useLayoutEffect(setPosition, [on])\n\n\n useEffect(() => {\n window.addEventListener('portalReposition', setPosition)\n window.addEventListener('stepResize', setPosition)\n window.addEventListener('scroll', setPosition, {passive:true})\n return () => {\n window.removeEventListener('portalReposition', setPosition)\n window.removeEventListener('stepResize', setPosition)\n window.removeEventListener('scroll', setPosition)\n }\n }, []\n )\n\n\n const processArrow = (arrow, arrowSize, onVerticalSide, arrowContainerWidth, popupSize, deltaPopupPosition, flipped) => {\n if (!arrow) {\n return ['', 0]\n }\n const margin = arrowPadding + (arrowSize / 2)\n const [invertDirection, percent, px] = (arrow === true ? '50%' : arrow).replace(/(-)?(\\d+%)?\\s?(-?\\d+)?/, '$1:$2:$3').split(':')\n const invertAndFlipDirection = flipped ? !invertDirection : invertDirection\n const arrowPosition = onVerticalSide ? (invertAndFlipDirection ? 'bottom' : 'top') : (invertAndFlipDirection ? 'right' : 'left')\n const fromOriginCorner = arrowPosition === 'left' || arrowPosition === 'top'\n\n const popupOffset = fromOriginCorner ? deltaPopupPosition : (arrowContainerWidth - deltaPopupPosition - popupSize)\n\n /* ____________________________\n | arrow container |\n |___________________________|\n ..../\\_______\n | popup |\n |____________|\n\n |-------| = delta popup position (popupOffset)\n\n .... = arrowPadding prop, applies to both sides, moves popup or does nothing\n\n arrow prop = invert percent px // relative to arrow container\n invert = -?\n percent = (\\d+%)?\n px = (-?\\d+)?\n\n procedure:\n 1- position arrow according to container - arrowInitialPos\n 2- constrain position inside container - constrainedArrowPosition\n 3- move popup according to arrowPadding (margin) - popupDelta\n 4- final arrow position, relative to final popup position - finalArrowPosition\n */\n\n const arrowInitialPos = (parseInt(percent || 0, 10) * arrowContainerWidth / 100) + parseInt(px || 0, 10)\n const constrainedArrowPosition = (Math.min(Math.max(arrowInitialPos, 0), arrowContainerWidth))\n const arrowPositionRelativeToPopup = fromOriginCorner ? constrainedArrowPosition - popupOffset : (arrowContainerWidth - popupOffset - constrainedArrowPosition)\n const popupDelta = arrowPositionRelativeToPopup < margin ?\n (arrowPositionRelativeToPopup - margin) :\n arrowPositionRelativeToPopup > (popupSize - margin) ?\n (margin + arrowPositionRelativeToPopup - popupSize) :\n 0\n const finalPopupPosition = fromOriginCorner ? popupOffset + popupDelta : (arrowContainerWidth - popupOffset - popupDelta - popupSize)\n return [[arrowPosition,(constrainedArrowPosition - finalPopupPosition)], popupDelta]\n }\n\n const arrowElement = arrow && <DefaultArrow ref={arrowRef} />\n\n const placeholderElement = <Placeholder as={placeholderAs} ref={placeholder}/>\n return [positionInfo,placeholderElement,arrowElement]\n}"],"names":["Placeholder","styled","span","withConfig","displayName","componentId","HORIZONTAL_MAPPING","VERTICAL_MAPPING","ARROW_KEY_POSITIONS","left","right","top","bottom","POSITIONING_BOUNDS","addPositioningBound","key","value","getPosition","origin","offset","max","originSize","selfSize","originalAlignment","selfAlignment","onCollision","mapping","boundMargin","originDiff","indexOf","selfDiff","respectingBounds","upperBound","Number","MIN_SAFE_INTEGER","lowerBound","newPosition","Math","collision","flippedPosition","slice","reverse","flippedCollision","minBound","fittedPosition","min","arrowShadow","translate","position","ARROW_DEFAULT_SIZE","DefaultArrow","div","usePositioning","element","_ref","arrowRefOpt","my","at","arrow","arrowPadding","fill","useLayers","fixed","onBottom","onLeft","onRight","onTop","keepWidth","respectBounds","respectOffsetScroll","on","placeholderAs","placeholder","useRef","arrowRef","useEnsureRef","positionInfo","setPositionInfo","useState","setPosition","_element$current","_placeholder$current","_placeholder$current2","_placeholder$current3","_placeholder$current4","retry","arguments","length","undefined","current","style","offsetParent","parentNode","setTimeout","width","maxWidth","placeholderOffsetParent","usingLayer","getDialogLayersSize","scrollOwner","_isFunction","getClosestOffsetScroll","scrollTop","window","pageYOffset","scrollLeft","pageXOffset","scrollY","isNaN","scrollX","getRespectOffsetScrollTopLeft","getBoundingClientRect","scrollOwnerTop","scrollOwnerLeft","leftPlusBorder","topPlusBorder","borderLeftWidth","borderTopWidth","getComputedStyle","parseInt","offsetWidth","parentOffsetWidth","offsetHeight","parentOffsetHeight","popupOffsetWidth","popupOffsetHeight","popupCurrentWidth","offsetX","offsetY","concat","join","split","map","_","simplePositioning","simplePositioningIndex","findIndex","bodyWidth","document","body","paddingRight","windowHeight","innerHeight","verticalCollision","horizontalCollision","verticalMy","horizontalMy","replace","verticalAt","horizontalAt","processedLeft","collisionH","processedTop","collisionV","flippedV","flippedH","arrowSide","abs","arrowElement","arrowOnVerticalSide","arrowSize","sqrt","arrowOffset","popupArrowOffset","processArrow","maxHeight","innerWidth","ceil","arrowStyle","transform","boxShadow","Object","assign","atTop","atBottom","atLeft","atRight","fullHeight","fullWidth","useLayoutEffect","useEffect","addEventListener","passive","removeEventListener","onVerticalSide","arrowContainerWidth","popupSize","deltaPopupPosition","flipped","margin","invertDirection","percent","px","invertAndFlipDirection","arrowPosition","fromOriginCorner","popupOffset","arrowInitialPos","constrainedArrowPosition","arrowPositionRelativeToPopup","popupDelta","finalPopupPosition","React","createElement","ref","placeholderElement","as"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePositioning.mjs","sources":["../../src/containers/usePositioning.jsx"],"sourcesContent":["import React, {useEffect, useLayoutEffect, useRef, useState} from 'react'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {getClosestOffsetScroll} from '@startlibs/utils'\nimport {useEnsureRef} from '@startlibs/core'\nimport {getDialogLayersSize} from './DialogContainer'\n\nconst Placeholder = styled.span`\n top:0;\n left:0;\n padding: 0 !important;\n position: absolute;\n`\n/*\ntype Alignment = 'top left' | 'top center' | 'top right' |\n 'center left' | 'center center' | 'center right' |\n 'bottom left' | 'bottom center' | 'bottom right'\n\ntype Collision = 'fit fit' | 'fit flip' | 'fit fitflip' | 'fit none' |\n 'flip fit' | 'flip flip' | 'flip fitflip' | 'flip none' |\n 'flipfit fit' | 'flipfit flip' | 'flipfit fitflip' | 'flipfit none' |\n 'none fit' | 'none flip' | 'none fitflip' | 'none none'\n*/\n\nconst HORIZONTAL_MAPPING = ['left', 'center', 'right']\nconst VERTICAL_MAPPING = ['top', 'center', 'bottom']\nconst ARROW_KEY_POSITIONS = {left: '0', right: '-0', top: '0', bottom: '-0'}\n\nconst POSITIONING_BOUNDS = {left:0,top:0,right:0,bottom:0}\nexport const addPositioningBound = (key,value) => {\n POSITIONING_BOUNDS[key] += value\n return () => POSITIONING_BOUNDS[key] -= value\n}\n\nfunction getPosition(origin, offset, max, originSize, selfSize, originalAlignment, selfAlignment, onCollision, mapping, boundMargin) {\n\n // 0 pra left ou top, 1/2 pra center, 1 pra right ou bottom\n const originDiff = originSize * (mapping.indexOf(originalAlignment) / 2)\n // 0 pra left ou top, -1/2 pra center, -1 pra right ou bottom\n const selfDiff = -(selfSize * (mapping.indexOf(selfAlignment) / 2))\n\n const respectingBounds = boundMargin !== false\n const upperBound = respectingBounds ? (POSITIONING_BOUNDS[mapping[0]] + boundMargin) : Number.MIN_SAFE_INTEGER\n const lowerBound = respectingBounds ? (POSITIONING_BOUNDS[mapping[2]] + boundMargin) : 0\n const newPosition = Math.max(upperBound, origin + selfDiff + originDiff + offset)\n\n const collision = Math.max(-newPosition, newPosition + selfSize - max + lowerBound)\n if (collision > 0 && onCollision !== 'none') {\n if (onCollision.indexOf('flip') >= 0) {\n const flippedPosition = getPosition(origin, -offset, max, originSize, selfSize, originalAlignment, selfAlignment, onCollision.indexOf('fit') >= 0 ? 'fit' : 'none', mapping.slice().reverse(), boundMargin)\n const flippedCollision = Math.max(-flippedPosition[0], flippedPosition[0] + selfSize - max)\n if ((collision > 0 && flippedCollision > 0) || flippedPosition[0] < upperBound) {\n return getPosition(origin, offset, max, originSize, selfSize, originalAlignment, selfAlignment, 'fit', mapping, boundMargin)\n }\n return collision < flippedCollision ? [newPosition, 'none'] : [flippedPosition[0], flippedPosition[1] === 'fit' ? 'flipfit' : 'flip']\n } else {\n const minBound = respectingBounds ? upperBound : 0\n const fittedPosition = Math.max(minBound, Math.min(newPosition, max - selfSize - lowerBound))\n return [fittedPosition, fittedPosition !== newPosition ? 'fit' : 'none']\n }\n } else {\n return [newPosition, 'none']\n }\n}\n\nconst arrowShadow = {\n top: '-1px -1px 2px -1px rgba(0,0,0,.25)',\n right: '1px -1px 2px -1px rgba(0,0,0,.25)',\n bottom: '1px 1px 2px -1px rgba(0,0,0,.25)',\n left: '-1px 1px 2px -1px rgba(0,0,0,.25)'\n}\n\nconst translate = (position, offset) => (position === 'left' ? '-50%' : position === 'right' ? '50%' : offset) + ',' +\n (position === 'top' ? '-50%' : position === 'bottom' ? '50%' : offset)\n\nconst ARROW_DEFAULT_SIZE = 14\n\nexport const DefaultArrow = styled.div`\n background-color: #fff;\n position: absolute;\n width: ${ARROW_DEFAULT_SIZE}px;\n height: ${ARROW_DEFAULT_SIZE}px;\n transform: translate(-50%,50%) rotate(45deg);\n bottom: 0;\n left: 50%;\n box-shadow: ${arrowShadow.bottom};\n`\n\nexport const usePositioning = (\n element,\n {\n my = 'top right',\n offset = '0 0', // x y\n at = 'bottom right',\n onCollision = 'flip flip',\n arrow,\n arrowPadding = 10,\n fill,\n useLayers = true,\n fixed,\n bottom: onBottom,\n left: onLeft,\n right: onRight,\n top: onTop,\n keepWidth = true,\n boundMargin = 6,\n respectBounds,\n respectOffsetScroll,\n on,\n placeholderAs\n },\n arrowRefOpt\n) => {\n const placeholder = useRef()\n const arrowRef = useEnsureRef(arrowRefOpt)\n const [positionInfo, setPositionInfo] = useState()\n\n const setPosition = (retry=0) => {\n if (retry>10) { return }\n if (!element.current?.style || !(placeholder.current?.offsetParent || placeholder.current?.parentNode?.offsetParent)) {\n setTimeout(()=>setPosition(retry+1),100)\n return\n }\n // Limpar a largura para medir pode encurtar o conteúdo (itens deixam de quebrar linha)\n // e o browser corta o scrollTop; guarda para restaurar depois de reaplicar a largura.\n const previousScrollTop = element.current.scrollTop\n if (keepWidth) {\n element.current.style.width = ''\n } else {\n element.current.style.maxWidth = ''\n }\n const placeholderOffsetParent = (placeholder.current?.offsetParent || placeholder.current?.parentNode?.offsetParent)\n const usingLayer = respectOffsetScroll || useLayers && getDialogLayersSize() > 0\n const scrollOwner =\n usingLayer\n ? (_.isFunction(respectOffsetScroll) ? respectOffsetScroll(element.current.offsetParent) : getClosestOffsetScroll(element.current.offsetParent))\n : {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset}\n\n // console.log({scrollOwner,scrollTop:scrollOwner.scrollTop,pageYOffset:window.pageYOffset})\n\n const scrollY = !isNaN(scrollOwner.scrollTop) ? scrollOwner.scrollTop : window.pageYOffset\n const scrollX = !isNaN(scrollOwner.scrollLeft) ? scrollOwner.scrollLeft : window.pageXOffset\n const getRespectOffsetScrollTopLeft = () => {\n const {top,left} = placeholder.current.getBoundingClientRect()\n const {top:scrollOwnerTop, left: scrollOwnerLeft} = scrollOwner.getBoundingClientRect()\n return {top: top-scrollOwnerTop,left: left-scrollOwnerLeft}\n }\n const {left: leftPlusBorder, top: topPlusBorder} =\n respectOffsetScroll\n ? getRespectOffsetScrollTopLeft()\n :placeholder.current.getBoundingClientRect()\n\n const {borderLeftWidth, borderTopWidth} = window.getComputedStyle(placeholderOffsetParent)\n const left = leftPlusBorder - parseInt(borderLeftWidth, 10)\n const top = topPlusBorder - parseInt(borderTopWidth, 10)\n const {offsetWidth: parentOffsetWidth, offsetHeight: parentOffsetHeight} = (placeholderOffsetParent)\n const {offsetWidth: popupOffsetWidth, offsetHeight: popupOffsetHeight} = element.current\n const {width:popupCurrentWidth} = element.current.getBoundingClientRect()\n const [offsetX, offsetY] = [].concat(offset).join(' ').split(' ').map(_ => Number(_ || 0))\n const simplePositioning = [onTop, onRight, onBottom, onLeft].map(_ => _ === true ? 'center' : _)\n const simplePositioningIndex = simplePositioning.findIndex(_ => _)\n const bodyWidth = document.body.offsetWidth - (usingLayer ? parseInt(getComputedStyle(document.body).paddingRight, 10) : 0)\n // Barra fixa inferior (footer mobile) registrada em POSITIONING_BOUNDS conta como\n // borda da tela: sem isso o popup se posiciona atrás dela. Com respectBounds o\n // desconto já vem do lowerBound em getPosition, não descontar duas vezes.\n const windowHeight = window.innerHeight - (respectBounds ? 0 : POSITIONING_BOUNDS.bottom)\n\n const [verticalCollision, horizontalCollision] = onCollision.split(' ')\n const [verticalMy, horizontalMy] = [my, 'bottom $', '$ left', 'top $', '$ right'][simplePositioningIndex + 1].replace('$', simplePositioning[simplePositioningIndex]).split(' ')\n const [verticalAt, horizontalAt] = [at, 'top $', '$ right', 'bottom $', '$ left'][simplePositioningIndex + 1].replace('$', simplePositioning[simplePositioningIndex]).split(' ')\n\n const [processedLeft, collisionH] = getPosition(left, offsetX, bodyWidth, parentOffsetWidth, fill ? parentOffsetWidth : popupOffsetWidth, horizontalAt, horizontalMy, horizontalCollision, HORIZONTAL_MAPPING,!!respectBounds && boundMargin)\n const [processedTop, collisionV] = getPosition(top, offsetY, windowHeight, parentOffsetHeight, popupOffsetHeight, verticalAt, verticalMy, verticalCollision, VERTICAL_MAPPING,!!respectBounds && boundMargin)\n\n\n const flippedV = collisionV.indexOf('flip') >= 0\n const flippedH = collisionH.indexOf('flip') >= 0\n\n\n //arrow\n const arrowSide = Math.abs(VERTICAL_MAPPING.indexOf(verticalMy) - VERTICAL_MAPPING.indexOf(verticalAt)) === 2 ? (flippedV ? verticalAt : verticalMy) :\n Math.abs(HORIZONTAL_MAPPING.indexOf(horizontalMy) - HORIZONTAL_MAPPING.indexOf(horizontalAt)) === 2 ? (flippedH ? horizontalAt : horizontalMy) : ''\n const arrowElement = arrowRef.current\n const arrowOnVerticalSide = arrowSide === 'left' || arrowSide === 'right'\n const arrowSize = arrowElement ? arrowElement.getBoundingClientRect()[arrowOnVerticalSide ? 'height' : 'width'] : (ARROW_DEFAULT_SIZE * Math.sqrt(2))\n const [arrowOffset, popupArrowOffset] = arrowOnVerticalSide ?\n processArrow(ARROW_KEY_POSITIONS[arrow] || arrow, arrowSize, arrowOnVerticalSide, parentOffsetHeight, popupOffsetHeight, processedTop - top, flippedV) :\n processArrow(ARROW_KEY_POSITIONS[arrow] || arrow, arrowSize, arrowOnVerticalSide, parentOffsetWidth, popupOffsetWidth, processedLeft - left, flippedV)\n\n\n const maxHeight = window.innerHeight - (POSITIONING_BOUNDS.top + POSITIONING_BOUNDS.bottom) - (respectBounds ? boundMargin*2 : 0)\n const maxWidth = window.innerWidth - (POSITIONING_BOUNDS.left + POSITIONING_BOUNDS.right) - (respectBounds ? boundMargin*2 : 0)\n\n element.current.style.maxHeight = ''\n if (parseInt(window.getComputedStyle(element.current).maxHeight) > maxHeight) {\n element.current.style.maxHeight = maxHeight+'px'\n }\n if (keepWidth) {\n element.current.style.width = Math.ceil(popupCurrentWidth)+\"px\"\n } else {\n element.current.style.maxWidth = maxWidth+'px'\n }\n // console.log({processedTop,top,offsetY,scrollY})\n\n\n element.current.style.top = (processedTop + (arrowOnVerticalSide ? popupArrowOffset : 0) + (fixed ? 0 : scrollY)) + 'px'\n element.current.style.left = (processedLeft + (arrowOnVerticalSide ? 0 : popupArrowOffset) + (fixed ? 0 : scrollX)) + 'px'\n\n const arrowStyle = {\n transform: `translate(${translate(arrowSide, arrowOffset[0] === 'top' || arrowOffset[0] === 'left' ? '-50%' : '50%')}) rotate(45deg)`,\n bottom:\"auto\",\n left:\"auto\",\n [arrowSide]: '0',\n boxShadow: arrowShadow[arrowSide],\n [arrowOffset[0]]: arrowOffset[1]+'px'\n }\n if (arrowRef.current) {\n Object.assign(arrowRef.current.style,arrowStyle)\n }\n\n setPositionInfo({\n atTop: (verticalAt === 'top' && !flippedV) || (verticalAt === 'bottom' && flippedV),\n atBottom: (verticalAt === 'bottom' && !flippedV) || (verticalAt === 'top' && flippedV),\n atLeft: (horizontalAt === 'left' && !flippedH) || (verticalAt === 'right' && flippedH),\n atRight: (horizontalAt === 'right' && !flippedH) || (verticalAt === 'left' && flippedH),\n fullHeight: popupOffsetHeight > maxHeight,\n fullWidth: popupOffsetWidth > maxWidth,\n arrowSide,\n arrowOffset,\n arrowStyle\n })\n\n if (fill) {\n element.current.style.width = parentOffsetWidth + 'px'\n }\n if (fixed) {\n element.current.style.position = 'fixed'\n }\n if (element.current.scrollTop !== previousScrollTop) {\n element.current.scrollTop = previousScrollTop\n }\n }\n\n useLayoutEffect(setPosition, [on])\n\n\n useEffect(() => {\n window.addEventListener('portalReposition', setPosition)\n window.addEventListener('stepResize', setPosition)\n window.addEventListener('scroll', setPosition, {passive:true})\n return () => {\n window.removeEventListener('portalReposition', setPosition)\n window.removeEventListener('stepResize', setPosition)\n window.removeEventListener('scroll', setPosition)\n }\n }, []\n )\n\n\n const processArrow = (arrow, arrowSize, onVerticalSide, arrowContainerWidth, popupSize, deltaPopupPosition, flipped) => {\n if (!arrow) {\n return ['', 0]\n }\n const margin = arrowPadding + (arrowSize / 2)\n const [invertDirection, percent, px] = (arrow === true ? '50%' : arrow).replace(/(-)?(\\d+%)?\\s?(-?\\d+)?/, '$1:$2:$3').split(':')\n const invertAndFlipDirection = flipped ? !invertDirection : invertDirection\n const arrowPosition = onVerticalSide ? (invertAndFlipDirection ? 'bottom' : 'top') : (invertAndFlipDirection ? 'right' : 'left')\n const fromOriginCorner = arrowPosition === 'left' || arrowPosition === 'top'\n\n const popupOffset = fromOriginCorner ? deltaPopupPosition : (arrowContainerWidth - deltaPopupPosition - popupSize)\n\n /* ____________________________\n | arrow container |\n |___________________________|\n ..../\\_______\n | popup |\n |____________|\n\n |-------| = delta popup position (popupOffset)\n\n .... = arrowPadding prop, applies to both sides, moves popup or does nothing\n\n arrow prop = invert percent px // relative to arrow container\n invert = -?\n percent = (\\d+%)?\n px = (-?\\d+)?\n\n procedure:\n 1- position arrow according to container - arrowInitialPos\n 2- constrain position inside container - constrainedArrowPosition\n 3- move popup according to arrowPadding (margin) - popupDelta\n 4- final arrow position, relative to final popup position - finalArrowPosition\n */\n\n const arrowInitialPos = (parseInt(percent || 0, 10) * arrowContainerWidth / 100) + parseInt(px || 0, 10)\n const constrainedArrowPosition = (Math.min(Math.max(arrowInitialPos, 0), arrowContainerWidth))\n const arrowPositionRelativeToPopup = fromOriginCorner ? constrainedArrowPosition - popupOffset : (arrowContainerWidth - popupOffset - constrainedArrowPosition)\n const popupDelta = arrowPositionRelativeToPopup < margin ?\n (arrowPositionRelativeToPopup - margin) :\n arrowPositionRelativeToPopup > (popupSize - margin) ?\n (margin + arrowPositionRelativeToPopup - popupSize) :\n 0\n const finalPopupPosition = fromOriginCorner ? popupOffset + popupDelta : (arrowContainerWidth - popupOffset - popupDelta - popupSize)\n return [[arrowPosition,(constrainedArrowPosition - finalPopupPosition)], popupDelta]\n }\n\n const arrowElement = arrow && <DefaultArrow ref={arrowRef} />\n\n const placeholderElement = <Placeholder as={placeholderAs} ref={placeholder}/>\n return [positionInfo,placeholderElement,arrowElement]\n}"],"names":["Placeholder","styled","span","withConfig","displayName","componentId","HORIZONTAL_MAPPING","VERTICAL_MAPPING","ARROW_KEY_POSITIONS","left","right","top","bottom","POSITIONING_BOUNDS","addPositioningBound","key","value","getPosition","origin","offset","max","originSize","selfSize","originalAlignment","selfAlignment","onCollision","mapping","boundMargin","originDiff","indexOf","selfDiff","respectingBounds","upperBound","Number","MIN_SAFE_INTEGER","lowerBound","newPosition","Math","collision","flippedPosition","slice","reverse","flippedCollision","minBound","fittedPosition","min","arrowShadow","translate","position","ARROW_DEFAULT_SIZE","DefaultArrow","div","usePositioning","element","_ref","arrowRefOpt","my","at","arrow","arrowPadding","fill","useLayers","fixed","onBottom","onLeft","onRight","onTop","keepWidth","respectBounds","respectOffsetScroll","on","placeholderAs","placeholder","useRef","arrowRef","useEnsureRef","positionInfo","setPositionInfo","useState","setPosition","_element$current","_placeholder$current","_placeholder$current2","_placeholder$current3","_placeholder$current4","retry","arguments","length","undefined","current","style","offsetParent","parentNode","setTimeout","previousScrollTop","scrollTop","width","maxWidth","placeholderOffsetParent","usingLayer","getDialogLayersSize","scrollOwner","_isFunction","getClosestOffsetScroll","window","pageYOffset","scrollLeft","pageXOffset","scrollY","isNaN","scrollX","getRespectOffsetScrollTopLeft","getBoundingClientRect","scrollOwnerTop","scrollOwnerLeft","leftPlusBorder","topPlusBorder","borderLeftWidth","borderTopWidth","getComputedStyle","parseInt","offsetWidth","parentOffsetWidth","offsetHeight","parentOffsetHeight","popupOffsetWidth","popupOffsetHeight","popupCurrentWidth","offsetX","offsetY","concat","join","split","map","_","simplePositioning","simplePositioningIndex","findIndex","bodyWidth","document","body","paddingRight","windowHeight","innerHeight","verticalCollision","horizontalCollision","verticalMy","horizontalMy","replace","verticalAt","horizontalAt","processedLeft","collisionH","processedTop","collisionV","flippedV","flippedH","arrowSide","abs","arrowElement","arrowOnVerticalSide","arrowSize","sqrt","arrowOffset","popupArrowOffset","processArrow","maxHeight","innerWidth","ceil","arrowStyle","transform","boxShadow","Object","assign","atTop","atBottom","atLeft","atRight","fullHeight","fullWidth","useLayoutEffect","useEffect","addEventListener","passive","removeEventListener","onVerticalSide","arrowContainerWidth","popupSize","deltaPopupPosition","flipped","margin","invertDirection","percent","px","invertAndFlipDirection","arrowPosition","fromOriginCorner","popupOffset","arrowInitialPos","constrainedArrowPosition","arrowPositionRelativeToPopup","popupDelta","finalPopupPosition","React","createElement","ref","placeholderElement","as"],"mappings":"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"}
|
package/lib/index.cjs
CHANGED
|
@@ -1796,7 +1796,7 @@ const Dialog = /*#__PURE__*/styled__default["default"](/*#__PURE__*/React__defau
|
|
|
1796
1796
|
})).withConfig({
|
|
1797
1797
|
displayName: "Dialog",
|
|
1798
1798
|
componentId: "sc-gai4ey-9"
|
|
1799
|
-
})(["@supports (position:sticky){will-change:transform,opacity;&.JS-wc-off{will-change:auto;}}border-radius:24px;padding:2rem;background-color:white;width:100%;max-width:45rem;", " margin:auto;position:relative;align-self:baseline;display:block
|
|
1799
|
+
})(["@supports (position:sticky){will-change:transform,opacity;&.JS-wc-off{will-change:auto;}}border-radius:24px;padding:2rem;background-color:white;width:100%;max-width:45rem;", " margin:auto;position:relative;align-self:baseline;display:block;> h3:first-child{margin-top:0.5rem;}p{line-height:140%;}", " ", " ", ""], props => props.$maxWidth && styled.css(["max-width:", ";"], props.$maxWidth), utils.media.mobile(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral__default["default"](["\n padding: 1.75rem;\n max-width: 100%;\n ", ";\n "])), props => props.fullscreenOnMobile && "\n border-radius: 0;\n min-height: 100%;\n "), props => props.closeDialog && styled.css(["", "{padding-right:2rem;}"], DialogTitle), utils.customTheme('Dialog'));
|
|
1800
1800
|
const ConfirmDialog = props => /*#__PURE__*/React__default["default"].createElement(Dialog, _extends__default["default"]({}, props, {
|
|
1801
1801
|
placement: "Confirm-Dialog"
|
|
1802
1802
|
}), props.children);
|
|
@@ -2678,6 +2678,9 @@ const usePositioning = (element, _ref, arrowRefOpt) => {
|
|
|
2678
2678
|
setTimeout(() => setPosition(retry + 1), 100);
|
|
2679
2679
|
return;
|
|
2680
2680
|
}
|
|
2681
|
+
// Limpar a largura para medir pode encurtar o conteúdo (itens deixam de quebrar linha)
|
|
2682
|
+
// e o browser corta o scrollTop; guarda para restaurar depois de reaplicar a largura.
|
|
2683
|
+
const previousScrollTop = element.current.scrollTop;
|
|
2681
2684
|
if (keepWidth) {
|
|
2682
2685
|
element.current.style.width = '';
|
|
2683
2686
|
} else {
|
|
@@ -2794,6 +2797,9 @@ const usePositioning = (element, _ref, arrowRefOpt) => {
|
|
|
2794
2797
|
if (fixed) {
|
|
2795
2798
|
element.current.style.position = 'fixed';
|
|
2796
2799
|
}
|
|
2800
|
+
if (element.current.scrollTop !== previousScrollTop) {
|
|
2801
|
+
element.current.scrollTop = previousScrollTop;
|
|
2802
|
+
}
|
|
2797
2803
|
};
|
|
2798
2804
|
React.useLayoutEffect(setPosition, [on]);
|
|
2799
2805
|
React.useEffect(() => {
|