@coorpacademy/components 11.40.1-alpha.12 → 11.40.1-alpha.13
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.
|
@@ -190,7 +190,6 @@ const BaseModal = (props, context) => {
|
|
|
190
190
|
}))), /*#__PURE__*/React.createElement("div", {
|
|
191
191
|
ref: bodyRef,
|
|
192
192
|
className: style.body,
|
|
193
|
-
onScroll: onScroll,
|
|
194
193
|
"data-testid": "modal-body"
|
|
195
194
|
}, children), /*#__PURE__*/React.createElement(Footer, null)));
|
|
196
195
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","PropTypes","convert","Provider","Icon","ButtonLink","COLORS","style","BaseModal","props","context","title","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","_isEmpty","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get","createElement","className","footerCTAWrapper","button","type","onClick","_extends","backgroundColor","paddingLeft","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","e","stopPropagation","modalWrapper","modal","header","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape","node","bool","oneOfType","func","boolean","objectOf","number"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n // const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n // const checkScrollbar = () => {\n // const bodyElement = bodyRef.current;\n // if (bodyElement) {\n // setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n // }\n // };\n\n // useEffect(() => {\n // if (!detectScrollbar) return;\n // const bodyElement = bodyRef.current;\n\n // if (!bodyElement) return;\n\n // const debouncedCheckScrollbar = debounce(100, () => {\n // checkScrollbar();\n // });\n\n // // Observer of the body content\n // const mutationObserver = new MutationObserver(() => {\n // debouncedCheckScrollbar();\n // });\n\n // mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // // Observer of the body size\n // const resizeObserver = new ResizeObserver(() => {\n // debouncedCheckScrollbar();\n // });\n\n // if (bodyRef.current) {\n // resizeObserver.observe(bodyRef.current);\n // }\n\n // checkScrollbar();\n\n // return () => {\n // mutationObserver.disconnect();\n // resizeObserver.disconnect();\n // debouncedCheckScrollbar.cancel();\n // };\n // }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer}>\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-${cancelLabel}`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-${confirmLabel}`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\">\n <div className={style.modal} style={customStyle}>\n <header className={style.header}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle}>{title}</div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div ref={bodyRef} className={style.body} onScroll={onScroll} data-testid=\"modal-body\">\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","PropTypes","convert","Provider","Icon","ButtonLink","COLORS","style","BaseModal","props","context","title","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","_isEmpty","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get","createElement","className","footerCTAWrapper","button","type","onClick","_extends","backgroundColor","paddingLeft","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","e","stopPropagation","modalWrapper","modal","header","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape","node","bool","oneOfType","func","boolean","objectOf","number"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n // const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n // const checkScrollbar = () => {\n // const bodyElement = bodyRef.current;\n // if (bodyElement) {\n // setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n // }\n // };\n\n // useEffect(() => {\n // if (!detectScrollbar) return;\n // const bodyElement = bodyRef.current;\n\n // if (!bodyElement) return;\n\n // const debouncedCheckScrollbar = debounce(100, () => {\n // checkScrollbar();\n // });\n\n // // Observer of the body content\n // const mutationObserver = new MutationObserver(() => {\n // debouncedCheckScrollbar();\n // });\n\n // mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // // Observer of the body size\n // const resizeObserver = new ResizeObserver(() => {\n // debouncedCheckScrollbar();\n // });\n\n // if (bodyRef.current) {\n // resizeObserver.observe(bodyRef.current);\n // }\n\n // checkScrollbar();\n\n // return () => {\n // mutationObserver.disconnect();\n // resizeObserver.disconnect();\n // debouncedCheckScrollbar.cancel();\n // };\n // }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer}>\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-${cancelLabel}`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-${confirmLabel}`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\">\n <div className={style.modal} style={customStyle}>\n <header className={style.header}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle}>{title}</div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div ref={bodyRef} className={style.body} data-testid=\"modal-body\">\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -196,7 +196,6 @@ const BaseModal = (props, context) => {
|
|
|
196
196
|
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
197
197
|
ref: bodyRef,
|
|
198
198
|
className: _style.default.body,
|
|
199
|
-
onScroll: onScroll,
|
|
200
199
|
"data-testid": "modal-body"
|
|
201
200
|
}, children), /*#__PURE__*/_react.default.createElement(Footer, null)));
|
|
202
201
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_cssColorFunction","_provider","_icon","_buttonLink","_colors","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","BaseModal","props","context","title","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","useRef","useEffect","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","useCallback","_isEmpty2","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get2","createElement","className","style","footerCTAWrapper","button","type","onClick","backgroundColor","paddingLeft","hoverBackgroundColor","convert","hoverColor","COLORS","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","stopPropagation","modalWrapper","modal","header","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","shape","node","bool","oneOfType","func","boolean","objectOf","number","_default","exports"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n // const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n // const checkScrollbar = () => {\n // const bodyElement = bodyRef.current;\n // if (bodyElement) {\n // setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n // }\n // };\n\n // useEffect(() => {\n // if (!detectScrollbar) return;\n // const bodyElement = bodyRef.current;\n\n // if (!bodyElement) return;\n\n // const debouncedCheckScrollbar = debounce(100, () => {\n // checkScrollbar();\n // });\n\n // // Observer of the body content\n // const mutationObserver = new MutationObserver(() => {\n // debouncedCheckScrollbar();\n // });\n\n // mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // // Observer of the body size\n // const resizeObserver = new ResizeObserver(() => {\n // debouncedCheckScrollbar();\n // });\n\n // if (bodyRef.current) {\n // resizeObserver.observe(bodyRef.current);\n // }\n\n // checkScrollbar();\n\n // return () => {\n // mutationObserver.disconnect();\n // resizeObserver.disconnect();\n // debouncedCheckScrollbar.cancel();\n // };\n // }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer}>\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-${cancelLabel}`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-${confirmLabel}`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\">\n <div className={style.modal} style={customStyle}>\n <header className={style.header}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle}>{title}</div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div ref={bodyRef} className={style.body} onScroll={onScroll} data-testid=\"modal-body\">\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,WAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAEA,IAAAQ,MAAA,GAAAN,sBAAA,CAAAF,OAAA;AAAgC,SAAAS,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAX,wBAAAW,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAhB,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AAAA,SAAAmB,SAAA,WAAAA,QAAA,GAAAR,MAAA,CAAAS,MAAA,GAAAT,MAAA,CAAAS,MAAA,CAAAC,IAAA,eAAAb,CAAA,aAAAR,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAE,CAAA,IAAAC,CAAA,OAAAY,cAAA,CAAAC,IAAA,CAAAb,CAAA,EAAAD,CAAA,MAAAM,CAAA,CAAAN,CAAA,IAAAC,CAAA,CAAAD,CAAA,aAAAM,CAAA,KAAAW,QAAA,CAAAK,KAAA,OAAAF,SAAA,KADhC;AAGA,MAAMG,SAAS,GAAGA,CAACC,KAAK,EAAEC,OAAO,KAAK;EACpC,MAAM;IACJC,KAAK;IACLC,WAAW;IACXC,UAAU;IACVC,QAAQ;IACRC,MAAM;IACNC,MAAM;IACNC,OAAO;IACPC,QAAQ;IACRC,eAAe,GAAG,KAAK;IACvBC;EACF,CAAC,GAAGX,KAAK;EACT,MAAM;IAACY;EAAI,CAAC,GAAGX,OAAO;EACtB,MAAMY,OAAO,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC5B;;EAEA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;;EAEA;;EAEA;EACA;EACA;;EAEA;EACA;EACA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;;EAEA;EACA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACT,MAAM,IAAI,CAACE,OAAO,EAAE;IAEzB,MAAMQ,YAAY,GAAGC,KAAK,IAAI;MAC5B,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;QAC1BV,OAAO,CAAC,CAAC;MACX;IACF,CAAC;IAEDW,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEJ,YAAY,CAAC;IAClD,OAAO,MAAM;MACXG,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEL,YAAY,CAAC;IACvD,CAAC;EACH,CAAC,EAAE,CAACV,MAAM,EAAEE,OAAO,CAAC,CAAC;EAErB,MAAMc,MAAM,GAAG,IAAAC,kBAAW,EAAC,MAAM;IAC/B,IAAI,IAAAC,SAAA,CAAA7C,OAAA,EAAQ4B,MAAM,CAAC,EAAE,OAAO,IAAI;IAChC,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE,OAAOA,MAAM,CAAC,CAAC;IAEjD,MAAM;MAACkB,YAAY;MAAEC,aAAa;MAAEC,IAAI;MAAEC;IAAO,CAAC,GAAGrB,MAAM;IAC3D,MAAM;MAACsB,KAAK,EAAEC,WAAW;MAAEC,QAAQ;MAAEC,QAAQ,EAAEC;IAAc,CAAC,GAAGR,YAAY,IAAI,CAAC,CAAC;IACnF,MAAM;MACJI,KAAK,EAAEK,YAAY;MACnBC,SAAS;MACTH,QAAQ,EAAEI,eAAe;MACzBC,QAAQ;MACRC;IACF,CAAC,GAAGZ,aAAa,IAAI,CAAC,CAAC;IACvB,MAAMa,kBAAkB,GAAGD,KAAK,IAAI,IAAAE,KAAA,CAAA7D,OAAA,EAAI,gBAAgB,EAAEiC,IAAI,CAAC;IAE/D,oBACElD,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;MAAKC,SAAS,EAAEC,cAAK,CAACpC;IAAO,gBAC3B7C,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;MAAKC,SAAS,EAAEC,cAAK,CAACC;IAAiB,GACpCb,QAAQ,IAAID,WAAW,gBACtBpE,MAAA,CAAAiB,OAAA,CAAA8D,aAAA,CAACvE,WAAA,CAAAS,OAAU;MAEP+D,SAAS,EAAEC,cAAK,CAACE,MAAM;MACvBC,IAAI,EAAE,WAAW;MACjBC,OAAO,EAAEhB,QAAQ;MACjBF,KAAK,EAAEC,WAAW;MAClBE,QAAQ,EAAEC,cAAc;MACxB,aAAa,EAAE,eAAeH,WAAW;IAAE,CAE9C,CAAC,GACA,IAAI,EACPK,SAAS,IAAID,YAAY,gBACxBxE,MAAA,CAAAiB,OAAA,CAAA8D,aAAA,2BACE/E,MAAA,CAAAiB,OAAA,CAAA8D,aAAA,CAACvE,WAAA,CAAAS,OAAU,EAAAc,QAAA;MAEPkB,WAAW,EAAE;QAACqC,eAAe,EAAET,kBAAkB;QAAEU,WAAW,EAAE;MAAM,CAAC;MACvEC,oBAAoB,EAAE,IAAAC,yBAAO,EAC3B,YAAYZ,kBAAkB,0BAChC,CAAC;MACDa,UAAU,EAAEC,cAAM,CAACC,KAAK;MACxBZ,SAAS,EAAEC,cAAK,CAACE,MAAM;MACvBC,IAAI,EAAE,SAAS;MACfC,OAAO,EAAEZ,SAAS;MAClBN,KAAK,EAAEK,YAAY;MACnBF,QAAQ,EAAEI;IAAe,GACrBC,QAAQ,GACR;MACEkB,IAAI,EAAE;QACJC,QAAQ,EAAE,MAAM;QAChBC,MAAM,EAAE;UACNC,IAAI,EAAErB,QAAQ;UACdC,KAAK,EAAEe,cAAM,CAACC,KAAK;UACnBK,IAAI,EAAE,EAAE;UACRhD,WAAW,EAAE;YAACiD,OAAO,EAAE;UAAC;QAC1B;MACF;IACF,CAAC,GACD,CAAC,CAAC;MACN,aAAa,EAAE,eAAe1B,YAAY;IAAE,EAE/C,CACE,CAAC,GACJ,IACD,CAAC,EACLP,IAAI,gBACHjE,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;MACEC,SAAS,EAAE,GAAGC,cAAK,CAACkB,iBAAiB,IAAIjC,OAAO,GAAGe,cAAK,CAACmB,sBAAsB,GAAG,EAAE;IAAG,GAEtFnC,IACE,CAAC,GACJ,IACD,CAAC;EAEV,CAAC,EAAE,CAACpB,MAAM,EAAEK,IAAI,CAAC,CAAC;EAElB,IAAI,CAACN,MAAM,IAAI,CAACJ,KAAK,IAAI,CAACG,QAAQ,EAAE,OAAO,IAAI;EAE/C,SAAS0D,aAAaA,CAACzF,CAAC,EAAE;IACxBA,CAAC,EAAE0F,eAAe,CAAC,CAAC;IACpBxD,OAAO,CAAC,CAAC;EACX;EAEA,oBACE9C,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAACsB,YAAa;IAAC,eAAY;EAAO,gBACrDvG,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAACuB,KAAM;IAACvB,KAAK,EAAEhC;EAAY,gBAC9CjD,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;IAAQC,SAAS,EAAEC,cAAK,CAACwB;EAAO,GAC7B/D,UAAU,EAAEsD,IAAI,gBACfhG,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAACvC;EAAW,gBAC/B1C,MAAA,CAAAiB,OAAA,CAAA8D,aAAA,CAACxE,KAAA,CAAAU,OAAI;IACH0D,QAAQ,EAAEjC,UAAU,CAACsD,IAAK;IAC1BU,SAAS,EAAEhE,UAAU,CAACkC,KAAM;IAC5BU,eAAe,EAAE5C,UAAU,CAAC4C,eAAgB;IAC5CW,IAAI,EAAE;MAACU,MAAM,EAAE,EAAE;MAAEC,WAAW,EAAE;IAAE;EAAE,CACrC,CACE,CAAC,GACJ,IAAI,eACR5G,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAAC4B;EAAc,gBAClC7G,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAAC6B;EAAY,GAAEtE,KAAW,CAAC,EAC/CC,WAAW,gBAAGzC,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAAC8B;EAAkB,GAAEtE,WAAiB,CAAC,GAAG,IAC3E,CAAC,eACNzC,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;IAAKC,SAAS,EAAEC,cAAK,CAAC+B,eAAgB;IAAC3B,OAAO,EAAEgB,aAAc;IAAC,eAAY;EAAY,gBACrFrG,MAAA,CAAAiB,OAAA,CAAA8D,aAAA,CAACxE,KAAA,CAAAU,OAAI;IAAC0D,QAAQ,EAAC,OAAO;IAACW,eAAe,EAAC,SAAS;IAACW,IAAI,EAAE;MAACU,MAAM,EAAE,EAAE;MAAEC,WAAW,EAAE;IAAE;EAAE,CAAE,CACpF,CACC,CAAC,eACT5G,MAAA,CAAAiB,OAAA,CAAA8D,aAAA;IAAKkC,GAAG,EAAE9D,OAAQ;IAAC6B,SAAS,EAAEC,cAAK,CAACiC,IAAK;IAACnE,QAAQ,EAAEA,QAAS;IAAC,eAAY;EAAY,GACnFJ,QACE,CAAC,eACN3C,MAAA,CAAAiB,OAAA,CAAA8D,aAAA,CAACnB,MAAM,MAAE,CACN,CACF,CAAC;AAEV,CAAC;AAEDvB,SAAS,CAAC8E,YAAY,GAAG;EACvBjE,IAAI,EAAEkE,iBAAQ,CAACC,iBAAiB,CAACnE;AACnC,CAAC;AAEDb,SAAS,CAACiF,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EACpBjF,KAAK,EAAEkF,kBAAS,CAACC,MAAM;EACvBjF,UAAU,EAAEgF,kBAAS,CAACE,KAAK,CAAC;IAC1B5B,IAAI,EAAE0B,kBAAS,CAACC,MAAM;IACtB/C,KAAK,EAAE8C,kBAAS,CAACC,MAAM;IACvBrC,eAAe,EAAEoC,kBAAS,CAACC;EAC7B,CAAC,CAAC;EACFlF,WAAW,EAAEiF,kBAAS,CAACC,MAAM;EAC7BhF,QAAQ,EAAE+E,kBAAS,CAACG,IAAI;EACxBjF,MAAM,EAAE8E,kBAAS,CAACI,IAAI;EACtBjF,MAAM,EAAE6E,kBAAS,CAACK,SAAS,CAAC,CAC1BL,kBAAS,CAACM,IAAI,EACdN,kBAAS,CAACE,KAAK,CAAC;IACd3D,IAAI,EAAEyD,kBAAS,CAACC,MAAM;IACtBzD,OAAO,EAAEwD,kBAAS,CAACO,OAAO;IAC1BlE,YAAY,EAAE2D,kBAAS,CAACE,KAAK,CAAC;MAC5BzD,KAAK,EAAEuD,kBAAS,CAACC,MAAM;MACvBtD,QAAQ,EAAEqD,kBAAS,CAACM,IAAI;MACxB1D,QAAQ,EAAEoD,kBAAS,CAACI;IACtB,CAAC,CAAC;IACF9D,aAAa,EAAE0D,kBAAS,CAACE,KAAK,CAAC;MAC7BzD,KAAK,EAAEuD,kBAAS,CAACC,MAAM;MACvBlD,SAAS,EAAEiD,kBAAS,CAACM,IAAI;MACzBrD,QAAQ,EAAE+C,kBAAS,CAACC,MAAM;MAC1BrD,QAAQ,EAAEoD,kBAAS,CAACI,IAAI;MACxBlD,KAAK,EAAE8C,kBAAS,CAACC;IACnB,CAAC;EACH,CAAC,CAAC,CACH,CAAC;EACF7E,OAAO,EAAE4E,kBAAS,CAACM,IAAI;EACvBjF,QAAQ,EAAE2E,kBAAS,CAACM,IAAI;EACxBhF,eAAe,EAAE0E,kBAAS,CAACI,IAAI;EAC/B7E,WAAW,EAAEyE,kBAAS,CAACQ,QAAQ,CAACR,kBAAS,CAACK,SAAS,CAAC,CAACL,kBAAS,CAACC,MAAM,EAAED,kBAAS,CAACS,MAAM,CAAC,CAAC;AAC3F,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAApH,OAAA,GAEaoB,SAAS","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_cssColorFunction","_provider","_icon","_buttonLink","_colors","_style","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","BaseModal","props","context","title","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","useRef","useEffect","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","useCallback","_isEmpty2","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get2","createElement","className","style","footerCTAWrapper","button","type","onClick","backgroundColor","paddingLeft","hoverBackgroundColor","convert","hoverColor","COLORS","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","stopPropagation","modalWrapper","modal","header","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","string","shape","node","bool","oneOfType","func","boolean","objectOf","number","_default","exports"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n // const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n // const checkScrollbar = () => {\n // const bodyElement = bodyRef.current;\n // if (bodyElement) {\n // setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n // }\n // };\n\n // useEffect(() => {\n // if (!detectScrollbar) return;\n // const bodyElement = bodyRef.current;\n\n // if (!bodyElement) return;\n\n // const debouncedCheckScrollbar = debounce(100, () => {\n // checkScrollbar();\n // });\n\n // // Observer of the body content\n // const mutationObserver = new MutationObserver(() => {\n // debouncedCheckScrollbar();\n // });\n\n // mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // // Observer of the body size\n // const resizeObserver = new ResizeObserver(() => {\n // debouncedCheckScrollbar();\n // });\n\n // if (bodyRef.current) {\n // resizeObserver.observe(bodyRef.current);\n // }\n\n // checkScrollbar();\n\n // return () => {\n // mutationObserver.disconnect();\n // resizeObserver.disconnect();\n // debouncedCheckScrollbar.cancel();\n // };\n // }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer}>\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-${cancelLabel}`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-${confirmLabel}`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\">\n <div className={style.modal} style={customStyle}>\n <header className={style.header}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle}>{title}</div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div ref={bodyRef} className={style.body} data-testid=\"modal-body\">\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.40.1-alpha.
|
|
3
|
+
"version": "11.40.1-alpha.13+0643a8fae",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -166,5 +166,5 @@
|
|
|
166
166
|
"last 2 versions",
|
|
167
167
|
"IE 11"
|
|
168
168
|
],
|
|
169
|
-
"gitHead": "
|
|
169
|
+
"gitHead": "0643a8faed77acd70cabeeeb8fcaca48e56f1f4c"
|
|
170
170
|
}
|