@coorpacademy/components 11.19.2-alpha.17 → 11.19.2-alpha.18
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/es/molecule/cm-popin/index.d.ts.map +1 -1
- package/es/molecule/cm-popin/index.js +5 -1
- package/es/molecule/cm-popin/index.js.map +1 -1
- package/lib/molecule/cm-popin/index.d.ts.map +1 -1
- package/lib/molecule/cm-popin/index.js +5 -1
- package/lib/molecule/cm-popin/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/cm-popin/index.js"],"names":[],"mappings":";AAgCA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/cm-popin/index.js"],"names":[],"mappings":";AAgCA,kDA6PC"}
|
|
@@ -57,10 +57,14 @@ const CMPopin = props => {
|
|
|
57
57
|
const closePopin = e => {
|
|
58
58
|
if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {
|
|
59
59
|
// eslint-disable-next-line no-console
|
|
60
|
+
console.log('e.target'); // eslint-disable-next-line no-console
|
|
61
|
+
|
|
62
|
+
console.log(e.target); // eslint-disable-next-line no-console
|
|
63
|
+
|
|
60
64
|
console.log('stopPropagation et preventDefault');
|
|
61
65
|
e.stopPropagation();
|
|
62
66
|
e.preventDefault();
|
|
63
|
-
onClose();
|
|
67
|
+
onClose(e);
|
|
64
68
|
}
|
|
65
69
|
};
|
|
66
70
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useRef","useEffect","NovaSolidInterfaceFeedbackInterfaceAlertDiamond","AlertDiamond","NovaSolidApplicationsWindowUpload3","WindowUpload","NovaLineSettingsCookie","Cookie","NovaSolidSpaceMoonRocket","MoonRocket","NovaCompositionCoorpacademyPadlock","LockIcon","NovaLineStatusCheckCircle1","CheckCircle1","NovaSolidFilesBasicFileLines","FileLinesIcon","map","isEmpty","classNames","Cta","ButtonLinkIconOnly","InputSwitch","Title","CardsGrid","ListItems","style","propTypes","IconType","lockedContent","lockIcon","fileZipped","filesListIconContainer","filesListIcon","CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","backgroundImageUrl","descriptionText","thirdButton","cookieTitle","descriptionBtnTxt","listBtnSwicth","items","logo","LogoComponent","backgroundImageStyle","backgroundImage","backgroundSize","nodeRef","closePopin","e","current","contains","target","console","log","stopPropagation","preventDefault","document","addEventListener","removeEventListener","renderHeader","title","headerIcon","TopTitleIcon","headerContent","headerBackground","cookieHeader","cookieIconContainer","cookieIcon","getClassBtnSwitch","index","btnList","firstBtnSwitchContainer","length","lastBtnSwitchContainer","singleSwitchContainer","renderBtnSwitch","convert","cap","el","type","value","onChange","titlePosition","theme","details","requiredSelection","disabled","id","dataName","renderItems","list","itemsContainer","filesListContainer","wrapperPopinStyle","popinCookie","popinFilesList","popinItems","popin","background","popinHeader","cookieTitleContainer","titleContainer","contentSection","message","__html","descriptionBtn","buttonContainer","largeButton","button","label","handleOnclick","customStyle"],"sources":["../../../src/molecule/cm-popin/index.js"],"sourcesContent":["// import React from 'react';\nimport React, {useRef, useEffect} from 'react';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload,\n NovaLineSettingsCookie as Cookie,\n NovaSolidSpaceMoonRocket as MoonRocket,\n NovaCompositionCoorpacademyPadlock as LockIcon,\n NovaLineStatusCheckCircle1 as CheckCircle1,\n NovaSolidFilesBasicFileLines as FileLinesIcon\n} from '@coorpacademy/nova-icons';\nimport map from 'lodash/fp/map';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport classNames from 'classnames';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport InputSwitch from '../../atom/input-switch';\nimport Title from '../../atom/title';\nimport CardsGrid from '../../organism/cards-grid';\nimport ListItems from '../../organism/list-items';\nimport style from './style.css';\nimport propTypes from './types';\n\nconst IconType = {\n lockedContent: <LockIcon className={style.lockIcon} />,\n fileZipped: (\n <div className={style.filesListIconContainer}>\n <FileLinesIcon className={style.filesListIcon} />\n </div>\n )\n};\n\nconst CMPopin = props => {\n const {\n content,\n mode = 'alert',\n firstButton,\n secondButton,\n onClose,\n header,\n icon,\n backgroundImageUrl,\n descriptionText,\n thirdButton,\n cookieTitle,\n descriptionBtnTxt,\n listBtnSwicth,\n items\n } = props;\n const logo = {\n AlertDiamond,\n WindowUpload,\n MoonRocket,\n CheckCircle1\n };\n const LogoComponent = logo[icon];\n\n const backgroundImageStyle = backgroundImageUrl\n ? {\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover'\n }\n : null;\n const nodeRef = useRef(null);\n useEffect(() => {\n if (mode === 'items') {\n const closePopin = e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n // eslint-disable-next-line no-console\n console.log('stopPropagation et preventDefault');\n e.stopPropagation();\n e.preventDefault();\n onClose();\n }\n };\n document.addEventListener('click', closePopin);\n return () => {\n document.removeEventListener('click', closePopin);\n };\n }\n }, [mode, onClose]);\n const renderHeader = () => {\n if (header) {\n const {title, headerIcon, backgroundImage} = header;\n const TopTitleIcon = IconType[headerIcon];\n\n return (\n <>\n {title ? (\n <div className={style.headerContent}>\n {TopTitleIcon}\n <Title {...title} />\n </div>\n ) : null}\n {backgroundImage ? (\n <img className={style.headerBackground} src={backgroundImage} />\n ) : null}\n </>\n );\n }\n\n if (mode === 'cookie')\n return (\n <div className={style.cookieHeader}>\n <div className={style.cookieIconContainer}>\n <Cookie className={style.cookieIcon} />\n </div>\n <div className={style.cookieTitle}>{cookieTitle}</div>\n </div>\n );\n\n return null;\n };\n\n const getClassBtnSwitch = (index, btnList) => {\n switch (index) {\n case 0:\n return style.firstBtnSwitchContainer;\n case btnList.length - 1:\n return style.lastBtnSwitchContainer;\n default:\n return style.singleSwitchContainer;\n }\n };\n\n const renderBtnSwitch = () => {\n return map.convert({cap: false})((el, index) => {\n const {\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id,\n 'data-name': dataName\n } = el;\n return (\n <div key={index} className={getClassBtnSwitch(index, listBtnSwicth)}>\n <InputSwitch\n {...{\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id,\n 'data-name': dataName\n }}\n />\n </div>\n );\n })(listBtnSwicth);\n };\n\n const renderItems = () => {\n const {type, list} = items;\n if (isEmpty(list)) return null;\n\n if (type === 'content')\n return (\n <div className={style.itemsContainer} data-name={'cm-popin-cards'}>\n <CardsGrid {...list} />\n </div>\n );\n if (type === 'list')\n return (\n <div className={style.filesListContainer}>\n <ListItems {...list} />\n </div>\n );\n\n return null;\n };\n\n const wrapperPopinStyle = classNames(\n mode === 'cookie' && style.popinCookie,\n mode === 'list' && style.popinFilesList,\n mode === 'items' && style.popinItems,\n style.popin\n );\n return (\n <div\n className={mode !== 'cookie' ? style.background : null}\n style={backgroundImageStyle}\n data-name={'cm-popin-container'}\n >\n <div className={wrapperPopinStyle} ref={nodeRef}>\n <header className={style.popinHeader}>\n {renderHeader()}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n {mode !== 'items' && mode !== 'list' ? (\n <div\n className={\n mode === 'cookie' || mode === 'information'\n ? style.cookieTitleContainer\n : style.titleContainer\n }\n >\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={'cm-popin-content'}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n {descriptionText ? (\n <p\n className={style.descriptionText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: descriptionText}}\n />\n ) : null}\n </div>\n ) : null}\n {descriptionBtnTxt ? <div className={style.descriptionBtn}>{descriptionBtnTxt}</div> : null}\n {!isEmpty(items) ? renderItems() : null}\n {renderBtnSwitch()}\n {firstButton || secondButton || thirdButton ? (\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={firstButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={'cm-popin-cta'}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n customStyle={firstButton.customStyle}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={secondButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={secondButton['aria-label']}\n type={secondButton.type}\n customStyle={secondButton.customStyle}\n />\n </div>\n ) : null}\n {thirdButton ? (\n <div className={thirdButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={thirdButton.label}\n onClick={thirdButton.handleOnclick}\n data-name={`cm-popin-cta-${thirdButton.type}`}\n aria-label={thirdButton['aria-label']}\n type={thirdButton.type}\n customStyle={thirdButton.customStyle}\n />\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = propTypes;\n\nexport default CMPopin;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useRef","useEffect","NovaSolidInterfaceFeedbackInterfaceAlertDiamond","AlertDiamond","NovaSolidApplicationsWindowUpload3","WindowUpload","NovaLineSettingsCookie","Cookie","NovaSolidSpaceMoonRocket","MoonRocket","NovaCompositionCoorpacademyPadlock","LockIcon","NovaLineStatusCheckCircle1","CheckCircle1","NovaSolidFilesBasicFileLines","FileLinesIcon","map","isEmpty","classNames","Cta","ButtonLinkIconOnly","InputSwitch","Title","CardsGrid","ListItems","style","propTypes","IconType","lockedContent","lockIcon","fileZipped","filesListIconContainer","filesListIcon","CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","backgroundImageUrl","descriptionText","thirdButton","cookieTitle","descriptionBtnTxt","listBtnSwicth","items","logo","LogoComponent","backgroundImageStyle","backgroundImage","backgroundSize","nodeRef","closePopin","e","current","contains","target","console","log","stopPropagation","preventDefault","document","addEventListener","removeEventListener","renderHeader","title","headerIcon","TopTitleIcon","headerContent","headerBackground","cookieHeader","cookieIconContainer","cookieIcon","getClassBtnSwitch","index","btnList","firstBtnSwitchContainer","length","lastBtnSwitchContainer","singleSwitchContainer","renderBtnSwitch","convert","cap","el","type","value","onChange","titlePosition","theme","details","requiredSelection","disabled","id","dataName","renderItems","list","itemsContainer","filesListContainer","wrapperPopinStyle","popinCookie","popinFilesList","popinItems","popin","background","popinHeader","cookieTitleContainer","titleContainer","contentSection","message","__html","descriptionBtn","buttonContainer","largeButton","button","label","handleOnclick","customStyle"],"sources":["../../../src/molecule/cm-popin/index.js"],"sourcesContent":["// import React from 'react';\nimport React, {useRef, useEffect} from 'react';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload,\n NovaLineSettingsCookie as Cookie,\n NovaSolidSpaceMoonRocket as MoonRocket,\n NovaCompositionCoorpacademyPadlock as LockIcon,\n NovaLineStatusCheckCircle1 as CheckCircle1,\n NovaSolidFilesBasicFileLines as FileLinesIcon\n} from '@coorpacademy/nova-icons';\nimport map from 'lodash/fp/map';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport classNames from 'classnames';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport InputSwitch from '../../atom/input-switch';\nimport Title from '../../atom/title';\nimport CardsGrid from '../../organism/cards-grid';\nimport ListItems from '../../organism/list-items';\nimport style from './style.css';\nimport propTypes from './types';\n\nconst IconType = {\n lockedContent: <LockIcon className={style.lockIcon} />,\n fileZipped: (\n <div className={style.filesListIconContainer}>\n <FileLinesIcon className={style.filesListIcon} />\n </div>\n )\n};\n\nconst CMPopin = props => {\n const {\n content,\n mode = 'alert',\n firstButton,\n secondButton,\n onClose,\n header,\n icon,\n backgroundImageUrl,\n descriptionText,\n thirdButton,\n cookieTitle,\n descriptionBtnTxt,\n listBtnSwicth,\n items\n } = props;\n const logo = {\n AlertDiamond,\n WindowUpload,\n MoonRocket,\n CheckCircle1\n };\n const LogoComponent = logo[icon];\n\n const backgroundImageStyle = backgroundImageUrl\n ? {\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover'\n }\n : null;\n const nodeRef = useRef(null);\n useEffect(() => {\n if (mode === 'items') {\n const closePopin = e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n // eslint-disable-next-line no-console\n console.log('e.target');\n // eslint-disable-next-line no-console\n console.log(e.target);\n // eslint-disable-next-line no-console\n console.log('stopPropagation et preventDefault');\n e.stopPropagation();\n e.preventDefault();\n onClose(e);\n }\n };\n document.addEventListener('click', closePopin);\n return () => {\n document.removeEventListener('click', closePopin);\n };\n }\n }, [mode, onClose]);\n const renderHeader = () => {\n if (header) {\n const {title, headerIcon, backgroundImage} = header;\n const TopTitleIcon = IconType[headerIcon];\n\n return (\n <>\n {title ? (\n <div className={style.headerContent}>\n {TopTitleIcon}\n <Title {...title} />\n </div>\n ) : null}\n {backgroundImage ? (\n <img className={style.headerBackground} src={backgroundImage} />\n ) : null}\n </>\n );\n }\n\n if (mode === 'cookie')\n return (\n <div className={style.cookieHeader}>\n <div className={style.cookieIconContainer}>\n <Cookie className={style.cookieIcon} />\n </div>\n <div className={style.cookieTitle}>{cookieTitle}</div>\n </div>\n );\n\n return null;\n };\n\n const getClassBtnSwitch = (index, btnList) => {\n switch (index) {\n case 0:\n return style.firstBtnSwitchContainer;\n case btnList.length - 1:\n return style.lastBtnSwitchContainer;\n default:\n return style.singleSwitchContainer;\n }\n };\n\n const renderBtnSwitch = () => {\n return map.convert({cap: false})((el, index) => {\n const {\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id,\n 'data-name': dataName\n } = el;\n return (\n <div key={index} className={getClassBtnSwitch(index, listBtnSwicth)}>\n <InputSwitch\n {...{\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id,\n 'data-name': dataName\n }}\n />\n </div>\n );\n })(listBtnSwicth);\n };\n\n const renderItems = () => {\n const {type, list} = items;\n if (isEmpty(list)) return null;\n\n if (type === 'content')\n return (\n <div className={style.itemsContainer} data-name={'cm-popin-cards'}>\n <CardsGrid {...list} />\n </div>\n );\n if (type === 'list')\n return (\n <div className={style.filesListContainer}>\n <ListItems {...list} />\n </div>\n );\n\n return null;\n };\n\n const wrapperPopinStyle = classNames(\n mode === 'cookie' && style.popinCookie,\n mode === 'list' && style.popinFilesList,\n mode === 'items' && style.popinItems,\n style.popin\n );\n return (\n <div\n className={mode !== 'cookie' ? style.background : null}\n style={backgroundImageStyle}\n data-name={'cm-popin-container'}\n >\n <div className={wrapperPopinStyle} ref={nodeRef}>\n <header className={style.popinHeader}>\n {renderHeader()}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n {mode !== 'items' && mode !== 'list' ? (\n <div\n className={\n mode === 'cookie' || mode === 'information'\n ? style.cookieTitleContainer\n : style.titleContainer\n }\n >\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={'cm-popin-content'}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n {descriptionText ? (\n <p\n className={style.descriptionText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: descriptionText}}\n />\n ) : null}\n </div>\n ) : null}\n {descriptionBtnTxt ? <div className={style.descriptionBtn}>{descriptionBtnTxt}</div> : null}\n {!isEmpty(items) ? renderItems() : null}\n {renderBtnSwitch()}\n {firstButton || secondButton || thirdButton ? (\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={firstButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={'cm-popin-cta'}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n customStyle={firstButton.customStyle}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={secondButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={secondButton['aria-label']}\n type={secondButton.type}\n customStyle={secondButton.customStyle}\n />\n </div>\n ) : null}\n {thirdButton ? (\n <div className={thirdButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={thirdButton.label}\n onClick={thirdButton.handleOnclick}\n data-name={`cm-popin-cta-${thirdButton.type}`}\n aria-label={thirdButton['aria-label']}\n type={thirdButton.type}\n customStyle={thirdButton.customStyle}\n />\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = propTypes;\n\nexport default CMPopin;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/cm-popin/index.js"],"names":[],"mappings":";AAgCA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/cm-popin/index.js"],"names":[],"mappings":";AAgCA,kDA6PC"}
|
|
@@ -81,10 +81,14 @@ const CMPopin = props => {
|
|
|
81
81
|
const closePopin = e => {
|
|
82
82
|
if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {
|
|
83
83
|
// eslint-disable-next-line no-console
|
|
84
|
+
console.log('e.target'); // eslint-disable-next-line no-console
|
|
85
|
+
|
|
86
|
+
console.log(e.target); // eslint-disable-next-line no-console
|
|
87
|
+
|
|
84
88
|
console.log('stopPropagation et preventDefault');
|
|
85
89
|
e.stopPropagation();
|
|
86
90
|
e.preventDefault();
|
|
87
|
-
onClose();
|
|
91
|
+
onClose(e);
|
|
88
92
|
}
|
|
89
93
|
};
|
|
90
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["IconType","lockedContent","style","lockIcon","fileZipped","filesListIconContainer","filesListIcon","CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","backgroundImageUrl","descriptionText","thirdButton","cookieTitle","descriptionBtnTxt","listBtnSwicth","items","logo","AlertDiamond","WindowUpload","MoonRocket","CheckCircle1","LogoComponent","backgroundImageStyle","backgroundImage","backgroundSize","nodeRef","useRef","useEffect","closePopin","e","current","contains","target","console","log","stopPropagation","preventDefault","document","addEventListener","removeEventListener","renderHeader","title","headerIcon","TopTitleIcon","headerContent","headerBackground","cookieHeader","cookieIconContainer","cookieIcon","getClassBtnSwitch","index","btnList","firstBtnSwitchContainer","length","lastBtnSwitchContainer","singleSwitchContainer","renderBtnSwitch","map","convert","cap","el","type","value","onChange","titlePosition","theme","details","requiredSelection","disabled","id","dataName","renderItems","list","isEmpty","itemsContainer","filesListContainer","wrapperPopinStyle","classNames","popinCookie","popinFilesList","popinItems","popin","background","popinHeader","cookieTitleContainer","titleContainer","contentSection","message","__html","descriptionBtn","buttonContainer","largeButton","button","label","handleOnclick","customStyle","propTypes"],"sources":["../../../src/molecule/cm-popin/index.js"],"sourcesContent":["// import React from 'react';\nimport React, {useRef, useEffect} from 'react';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload,\n NovaLineSettingsCookie as Cookie,\n NovaSolidSpaceMoonRocket as MoonRocket,\n NovaCompositionCoorpacademyPadlock as LockIcon,\n NovaLineStatusCheckCircle1 as CheckCircle1,\n NovaSolidFilesBasicFileLines as FileLinesIcon\n} from '@coorpacademy/nova-icons';\nimport map from 'lodash/fp/map';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport classNames from 'classnames';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport InputSwitch from '../../atom/input-switch';\nimport Title from '../../atom/title';\nimport CardsGrid from '../../organism/cards-grid';\nimport ListItems from '../../organism/list-items';\nimport style from './style.css';\nimport propTypes from './types';\n\nconst IconType = {\n lockedContent: <LockIcon className={style.lockIcon} />,\n fileZipped: (\n <div className={style.filesListIconContainer}>\n <FileLinesIcon className={style.filesListIcon} />\n </div>\n )\n};\n\nconst CMPopin = props => {\n const {\n content,\n mode = 'alert',\n firstButton,\n secondButton,\n onClose,\n header,\n icon,\n backgroundImageUrl,\n descriptionText,\n thirdButton,\n cookieTitle,\n descriptionBtnTxt,\n listBtnSwicth,\n items\n } = props;\n const logo = {\n AlertDiamond,\n WindowUpload,\n MoonRocket,\n CheckCircle1\n };\n const LogoComponent = logo[icon];\n\n const backgroundImageStyle = backgroundImageUrl\n ? {\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover'\n }\n : null;\n const nodeRef = useRef(null);\n useEffect(() => {\n if (mode === 'items') {\n const closePopin = e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n // eslint-disable-next-line no-console\n console.log('stopPropagation et preventDefault');\n e.stopPropagation();\n e.preventDefault();\n onClose();\n }\n };\n document.addEventListener('click', closePopin);\n return () => {\n document.removeEventListener('click', closePopin);\n };\n }\n }, [mode, onClose]);\n const renderHeader = () => {\n if (header) {\n const {title, headerIcon, backgroundImage} = header;\n const TopTitleIcon = IconType[headerIcon];\n\n return (\n <>\n {title ? (\n <div className={style.headerContent}>\n {TopTitleIcon}\n <Title {...title} />\n </div>\n ) : null}\n {backgroundImage ? (\n <img className={style.headerBackground} src={backgroundImage} />\n ) : null}\n </>\n );\n }\n\n if (mode === 'cookie')\n return (\n <div className={style.cookieHeader}>\n <div className={style.cookieIconContainer}>\n <Cookie className={style.cookieIcon} />\n </div>\n <div className={style.cookieTitle}>{cookieTitle}</div>\n </div>\n );\n\n return null;\n };\n\n const getClassBtnSwitch = (index, btnList) => {\n switch (index) {\n case 0:\n return style.firstBtnSwitchContainer;\n case btnList.length - 1:\n return style.lastBtnSwitchContainer;\n default:\n return style.singleSwitchContainer;\n }\n };\n\n const renderBtnSwitch = () => {\n return map.convert({cap: false})((el, index) => {\n const {\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id,\n 'data-name': dataName\n } = el;\n return (\n <div key={index} className={getClassBtnSwitch(index, listBtnSwicth)}>\n <InputSwitch\n {...{\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id,\n 'data-name': dataName\n }}\n />\n </div>\n );\n })(listBtnSwicth);\n };\n\n const renderItems = () => {\n const {type, list} = items;\n if (isEmpty(list)) return null;\n\n if (type === 'content')\n return (\n <div className={style.itemsContainer} data-name={'cm-popin-cards'}>\n <CardsGrid {...list} />\n </div>\n );\n if (type === 'list')\n return (\n <div className={style.filesListContainer}>\n <ListItems {...list} />\n </div>\n );\n\n return null;\n };\n\n const wrapperPopinStyle = classNames(\n mode === 'cookie' && style.popinCookie,\n mode === 'list' && style.popinFilesList,\n mode === 'items' && style.popinItems,\n style.popin\n );\n return (\n <div\n className={mode !== 'cookie' ? style.background : null}\n style={backgroundImageStyle}\n data-name={'cm-popin-container'}\n >\n <div className={wrapperPopinStyle} ref={nodeRef}>\n <header className={style.popinHeader}>\n {renderHeader()}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n {mode !== 'items' && mode !== 'list' ? (\n <div\n className={\n mode === 'cookie' || mode === 'information'\n ? style.cookieTitleContainer\n : style.titleContainer\n }\n >\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={'cm-popin-content'}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n {descriptionText ? (\n <p\n className={style.descriptionText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: descriptionText}}\n />\n ) : null}\n </div>\n ) : null}\n {descriptionBtnTxt ? <div className={style.descriptionBtn}>{descriptionBtnTxt}</div> : null}\n {!isEmpty(items) ? renderItems() : null}\n {renderBtnSwitch()}\n {firstButton || secondButton || thirdButton ? (\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={firstButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={'cm-popin-cta'}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n customStyle={firstButton.customStyle}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={secondButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={secondButton['aria-label']}\n type={secondButton.type}\n customStyle={secondButton.customStyle}\n />\n </div>\n ) : null}\n {thirdButton ? (\n <div className={thirdButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={thirdButton.label}\n onClick={thirdButton.handleOnclick}\n data-name={`cm-popin-cta-${thirdButton.type}`}\n aria-label={thirdButton['aria-label']}\n type={thirdButton.type}\n customStyle={thirdButton.customStyle}\n />\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = propTypes;\n\nexport default CMPopin;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["IconType","lockedContent","style","lockIcon","fileZipped","filesListIconContainer","filesListIcon","CMPopin","props","content","mode","firstButton","secondButton","onClose","header","icon","backgroundImageUrl","descriptionText","thirdButton","cookieTitle","descriptionBtnTxt","listBtnSwicth","items","logo","AlertDiamond","WindowUpload","MoonRocket","CheckCircle1","LogoComponent","backgroundImageStyle","backgroundImage","backgroundSize","nodeRef","useRef","useEffect","closePopin","e","current","contains","target","console","log","stopPropagation","preventDefault","document","addEventListener","removeEventListener","renderHeader","title","headerIcon","TopTitleIcon","headerContent","headerBackground","cookieHeader","cookieIconContainer","cookieIcon","getClassBtnSwitch","index","btnList","firstBtnSwitchContainer","length","lastBtnSwitchContainer","singleSwitchContainer","renderBtnSwitch","map","convert","cap","el","type","value","onChange","titlePosition","theme","details","requiredSelection","disabled","id","dataName","renderItems","list","isEmpty","itemsContainer","filesListContainer","wrapperPopinStyle","classNames","popinCookie","popinFilesList","popinItems","popin","background","popinHeader","cookieTitleContainer","titleContainer","contentSection","message","__html","descriptionBtn","buttonContainer","largeButton","button","label","handleOnclick","customStyle","propTypes"],"sources":["../../../src/molecule/cm-popin/index.js"],"sourcesContent":["// import React from 'react';\nimport React, {useRef, useEffect} from 'react';\nimport {\n NovaSolidInterfaceFeedbackInterfaceAlertDiamond as AlertDiamond,\n NovaSolidApplicationsWindowUpload3 as WindowUpload,\n NovaLineSettingsCookie as Cookie,\n NovaSolidSpaceMoonRocket as MoonRocket,\n NovaCompositionCoorpacademyPadlock as LockIcon,\n NovaLineStatusCheckCircle1 as CheckCircle1,\n NovaSolidFilesBasicFileLines as FileLinesIcon\n} from '@coorpacademy/nova-icons';\nimport map from 'lodash/fp/map';\nimport isEmpty from 'lodash/fp/isEmpty';\nimport classNames from 'classnames';\nimport Cta from '../../atom/button-link';\nimport ButtonLinkIconOnly from '../../atom/button-link-icon-only';\nimport InputSwitch from '../../atom/input-switch';\nimport Title from '../../atom/title';\nimport CardsGrid from '../../organism/cards-grid';\nimport ListItems from '../../organism/list-items';\nimport style from './style.css';\nimport propTypes from './types';\n\nconst IconType = {\n lockedContent: <LockIcon className={style.lockIcon} />,\n fileZipped: (\n <div className={style.filesListIconContainer}>\n <FileLinesIcon className={style.filesListIcon} />\n </div>\n )\n};\n\nconst CMPopin = props => {\n const {\n content,\n mode = 'alert',\n firstButton,\n secondButton,\n onClose,\n header,\n icon,\n backgroundImageUrl,\n descriptionText,\n thirdButton,\n cookieTitle,\n descriptionBtnTxt,\n listBtnSwicth,\n items\n } = props;\n const logo = {\n AlertDiamond,\n WindowUpload,\n MoonRocket,\n CheckCircle1\n };\n const LogoComponent = logo[icon];\n\n const backgroundImageStyle = backgroundImageUrl\n ? {\n backgroundImage: `url(${backgroundImageUrl})`,\n backgroundSize: 'cover'\n }\n : null;\n const nodeRef = useRef(null);\n useEffect(() => {\n if (mode === 'items') {\n const closePopin = e => {\n if (nodeRef && nodeRef.current && !nodeRef.current.contains(e.target)) {\n // eslint-disable-next-line no-console\n console.log('e.target');\n // eslint-disable-next-line no-console\n console.log(e.target);\n // eslint-disable-next-line no-console\n console.log('stopPropagation et preventDefault');\n e.stopPropagation();\n e.preventDefault();\n onClose(e);\n }\n };\n document.addEventListener('click', closePopin);\n return () => {\n document.removeEventListener('click', closePopin);\n };\n }\n }, [mode, onClose]);\n const renderHeader = () => {\n if (header) {\n const {title, headerIcon, backgroundImage} = header;\n const TopTitleIcon = IconType[headerIcon];\n\n return (\n <>\n {title ? (\n <div className={style.headerContent}>\n {TopTitleIcon}\n <Title {...title} />\n </div>\n ) : null}\n {backgroundImage ? (\n <img className={style.headerBackground} src={backgroundImage} />\n ) : null}\n </>\n );\n }\n\n if (mode === 'cookie')\n return (\n <div className={style.cookieHeader}>\n <div className={style.cookieIconContainer}>\n <Cookie className={style.cookieIcon} />\n </div>\n <div className={style.cookieTitle}>{cookieTitle}</div>\n </div>\n );\n\n return null;\n };\n\n const getClassBtnSwitch = (index, btnList) => {\n switch (index) {\n case 0:\n return style.firstBtnSwitchContainer;\n case btnList.length - 1:\n return style.lastBtnSwitchContainer;\n default:\n return style.singleSwitchContainer;\n }\n };\n\n const renderBtnSwitch = () => {\n return map.convert({cap: false})((el, index) => {\n const {\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id,\n 'data-name': dataName\n } = el;\n return (\n <div key={index} className={getClassBtnSwitch(index, listBtnSwicth)}>\n <InputSwitch\n {...{\n type,\n title,\n value,\n onChange,\n titlePosition,\n theme,\n details,\n requiredSelection,\n disabled,\n id,\n 'data-name': dataName\n }}\n />\n </div>\n );\n })(listBtnSwicth);\n };\n\n const renderItems = () => {\n const {type, list} = items;\n if (isEmpty(list)) return null;\n\n if (type === 'content')\n return (\n <div className={style.itemsContainer} data-name={'cm-popin-cards'}>\n <CardsGrid {...list} />\n </div>\n );\n if (type === 'list')\n return (\n <div className={style.filesListContainer}>\n <ListItems {...list} />\n </div>\n );\n\n return null;\n };\n\n const wrapperPopinStyle = classNames(\n mode === 'cookie' && style.popinCookie,\n mode === 'list' && style.popinFilesList,\n mode === 'items' && style.popinItems,\n style.popin\n );\n return (\n <div\n className={mode !== 'cookie' ? style.background : null}\n style={backgroundImageStyle}\n data-name={'cm-popin-container'}\n >\n <div className={wrapperPopinStyle} ref={nodeRef}>\n <header className={style.popinHeader}>\n {renderHeader()}\n {onClose ? (\n <ButtonLinkIconOnly\n onClick={onClose}\n data-name={'close-icon'}\n aria-label={'close-icon'}\n size=\"small\"\n icon=\"close\"\n />\n ) : null}\n </header>\n {mode !== 'items' && mode !== 'list' ? (\n <div\n className={\n mode === 'cookie' || mode === 'information'\n ? style.cookieTitleContainer\n : style.titleContainer\n }\n >\n <div className={style.contentSection}>\n {LogoComponent ? <LogoComponent className={style.icon} /> : null}\n {content ? (\n <p\n className={mode === 'alert' ? style.content : style.message}\n data-name={'cm-popin-content'}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: content}}\n />\n ) : null}\n </div>\n {descriptionText ? (\n <p\n className={style.descriptionText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: descriptionText}}\n />\n ) : null}\n </div>\n ) : null}\n {descriptionBtnTxt ? <div className={style.descriptionBtn}>{descriptionBtnTxt}</div> : null}\n {!isEmpty(items) ? renderItems() : null}\n {renderBtnSwitch()}\n {firstButton || secondButton || thirdButton ? (\n <div className={style.buttonContainer}>\n {firstButton ? (\n <div className={firstButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={firstButton.label}\n onClick={firstButton.handleOnclick}\n data-name={'cm-popin-cta'}\n aria-label={firstButton['aria-label']}\n type={firstButton.type}\n customStyle={firstButton.customStyle}\n />\n </div>\n ) : null}\n {secondButton ? (\n <div className={secondButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={secondButton.label}\n onClick={secondButton.handleOnclick}\n data-name={`cm-popin-cta-${secondButton.type}`}\n aria-label={secondButton['aria-label']}\n type={secondButton.type}\n customStyle={secondButton.customStyle}\n />\n </div>\n ) : null}\n {thirdButton ? (\n <div className={thirdButton.largeButton ? style.largeButton : style.button}>\n <Cta\n label={thirdButton.label}\n onClick={thirdButton.handleOnclick}\n data-name={`cm-popin-cta-${thirdButton.type}`}\n aria-label={thirdButton['aria-label']}\n type={thirdButton.type}\n customStyle={thirdButton.customStyle}\n />\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n </div>\n );\n};\n\nCMPopin.propTypes = propTypes;\n\nexport default CMPopin;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.19.2-alpha.
|
|
3
|
+
"version": "11.19.2-alpha.18+9db3d876f",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -168,5 +168,5 @@
|
|
|
168
168
|
"last 2 versions",
|
|
169
169
|
"IE 11"
|
|
170
170
|
],
|
|
171
|
-
"gitHead": "
|
|
171
|
+
"gitHead": "9db3d876f188dd259d8da434504d7f1f4ebbd8e4"
|
|
172
172
|
}
|