@laerdal/life-react-components 1.5.1-dev.3 → 1.5.1-dev.7
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/dist/Accordion/ContentAccordion.cjs +3 -3
- package/dist/Accordion/ContentAccordion.cjs.map +1 -1
- package/dist/Accordion/ContentAccordion.js +2 -3
- package/dist/Accordion/ContentAccordion.js.map +1 -1
- package/dist/Dropdown/DropdownContent.cjs +2 -0
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.js +2 -0
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/Dropdown/index.cjs +8 -0
- package/dist/Dropdown/index.cjs.map +1 -1
- package/dist/Dropdown/index.d.ts +2 -1
- package/dist/Dropdown/index.js +2 -1
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/InputFields/Checkbox.cjs +5 -4
- package/dist/InputFields/Checkbox.cjs.map +1 -1
- package/dist/InputFields/Checkbox.d.ts +6 -0
- package/dist/InputFields/Checkbox.js +3 -4
- package/dist/InputFields/Checkbox.js.map +1 -1
- package/dist/InputFields/RadioButton.cjs +3 -3
- package/dist/InputFields/RadioButton.cjs.map +1 -1
- package/dist/InputFields/RadioButton.js +2 -3
- package/dist/InputFields/RadioButton.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs +4 -7
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.js +4 -7
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/QuizButton/QuizButton.cjs +1 -3
- package/dist/QuizButton/QuizButton.cjs.map +1 -1
- package/dist/QuizButton/QuizButton.js +2 -4
- package/dist/QuizButton/QuizButton.js.map +1 -1
- package/dist/Table/Table.cjs +1 -1
- package/dist/Table/Table.cjs.map +1 -1
- package/dist/Table/Table.js +1 -1
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/TableBody.cjs +27 -21
- package/dist/Table/TableBody.cjs.map +1 -1
- package/dist/Table/TableBody.js +26 -21
- package/dist/Table/TableBody.js.map +1 -1
- package/dist/Table/TableFooter.cjs +7 -6
- package/dist/Table/TableFooter.cjs.map +1 -1
- package/dist/Table/TableFooter.js +6 -6
- package/dist/Table/TableFooter.js.map +1 -1
- package/dist/Table/TableHeaders.cjs +6 -4
- package/dist/Table/TableHeaders.cjs.map +1 -1
- package/dist/Table/TableHeaders.js +5 -4
- package/dist/Table/TableHeaders.js.map +1 -1
- package/dist/Table/TableStyles.cjs +9 -7
- package/dist/Table/TableStyles.cjs.map +1 -1
- package/dist/Table/TableStyles.js +8 -7
- package/dist/Table/TableStyles.js.map +1 -1
- package/dist/Table/TableTypes.d.ts +2 -0
- package/package.json +1 -1
|
@@ -29,6 +29,8 @@ var _styles = require("../styles");
|
|
|
29
29
|
|
|
30
30
|
var _zIndexes = require("../styles/z-indexes");
|
|
31
31
|
|
|
32
|
+
var _common = require("../common");
|
|
33
|
+
|
|
32
34
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
33
35
|
|
|
34
36
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
@@ -120,9 +122,7 @@ var ContentAccordion = function ContentAccordion(props) {
|
|
|
120
122
|
className: ''.concat(isActive ? ' active' : '').concat(item.disabled ? ' disabled' : ''),
|
|
121
123
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(ContentAccordionItemHeader, {
|
|
122
124
|
tabIndex: !item.disabled ? 0 : undefined,
|
|
123
|
-
onMouseDown:
|
|
124
|
-
return e.preventDefault();
|
|
125
|
-
},
|
|
125
|
+
onMouseDown: _common.defaultOnMouseDownHandler,
|
|
126
126
|
onClick: function onClick() {
|
|
127
127
|
return !item.disabled && onItemClick(item);
|
|
128
128
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Accordion/ContentAccordion.tsx"],"names":["ContentAccordionItemHeader","styled","div","COLORS","neutral_600","primary_700","primary_20","Z_INDEXES","hover","white","focus","primary_800","primary_100","active","ContentAccordionItemHeaderIcon","ContentAccordionItemHeaderText","ContentAccordionItemContent","ContentAccordionItemContentHeader","ContentAccordionItemContentBody","ContentAccordionItemContentFooter","ContentAccordionItem","neutral_100","neutral_300","ContentAccordionWrapper","ComponentTextStyle","Regular","Bold","ContentAccordion","props","React","useState","opened","setOpened","useEffect","multi","items","filter","item","map","key","find","onItemClick","disabled","includes","renderItem","isActive","concat","undefined","e","preventDefault","event","title","header","body","footer","size","Size","Medium"],"mappings":"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","sourcesContent":["import React from 'react'\nimport styled from 'styled-components';\nimport {Size} from '../types';\nimport {SystemIcons} from '../icons';\nimport {ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle} from '../styles/typography';\nimport {COLORS} from '../styles';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\n\nexport const ContentAccordionItemHeader = styled.div`\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n color: ${COLORS.neutral_600};\n cursor: pointer;\n\n &:hover {\n color: ${COLORS.primary_700};\n background-color: ${COLORS.primary_20};\n z-index: ${Z_INDEXES.hover};\n }\n\n &:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2E7FA1;\n background-color: ${COLORS.white};\n z-index: ${Z_INDEXES.focus};\n outline: none;\n }\n\n &:active {\n color: ${COLORS.primary_800};\n background-color: ${COLORS.primary_100};\n box-shadow: none;\n z-index: ${Z_INDEXES.active};\n }\n`;\n\nexport const ContentAccordionItemHeaderIcon = styled.div`\n width: 24px;\n height: 24px;\n\n svg {\n width: 24px;\n height: 24px;\n }\n`;\n\nexport const ContentAccordionItemHeaderText = styled.div`\n`;\n\nexport const ContentAccordionItemContent = styled.div`\n display: none;\n flex-direction: column;\n`;\n\nexport const ContentAccordionItemContentHeader = styled.div`\n`;\n\nexport const ContentAccordionItemContentBody = styled.div`\n`;\n\nexport const ContentAccordionItemContentFooter = styled.div`\n`;\n\nexport const ContentAccordionItem = styled.div`\n display: flex;\n flex-direction: column;\n border-top: 1px solid ${COLORS.neutral_100};\n\n &.active {\n ${ContentAccordionItemContent} {\n display: flex;\n }\n }\n\n &.disabled {\n ${ContentAccordionItemHeader} {\n color: ${COLORS.neutral_300};\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n`;\n\nexport const ContentAccordionWrapper = styled.div`\n width: 100%;\n position: relative;\n\n ${ContentAccordionItem}:last-child {\n border-bottom: 1px solid ${COLORS.neutral_100};\n }\n\n &.small {\n min-width: 320px;\n max-width: 528px;\n\n ${ContentAccordionItemHeader} {\n gap: 8px;\n padding: 0 8px;\n ${ComponentSStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 0 8px 16px 40px;\n gap: 8px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentSStyling(ComponentTextStyle.Regular, null)}\n }\n }\n }\n\n &.medium {\n min-width: 344px;\n max-width: 584px;\n\n ${ContentAccordionItemHeader} {\n gap: 12px;\n padding: 0 12px;\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 8px 12px 24px 48px;\n gap: 12px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentMStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n }\n\n }\n }\n\n &.large {\n min-width: 384px;\n max-width: 656px;\n\n ${ContentAccordionItemHeader} {\n gap: 16px;\n padding: 0 16px;\n ${ComponentLStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 16px 16px 32px 56px;\n gap: 16px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentLStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentLStyling(ComponentTextStyle.Regular, null)}\n }\n }\n }\n`;\n\nexport interface ContentAccordionItem {\n key: string;\n title: string;\n header?: string;\n body: any;\n footer?: any;\n disabled?: boolean;\n active?: boolean;\n}\n\nexport interface ContentAccordionProps {\n items: ContentAccordionItem[];\n multi?: boolean;\n size?: Size.Small | Size.Medium | Size.Large;\n}\n\nexport const ContentAccordion: React.FunctionComponent<ContentAccordionProps> = (props) => {\n\n const [opened, setOpened] = React.useState<string[]>([]);\n\n React.useEffect(() => {\n if (props.multi) {\n setOpened(props.items.filter(item => item.active).map(item => item.key));\n } else {\n let active = props.items.find(item => !!item.active)?.key;\n if (active) {\n setOpened([active]);\n }\n }\n }, [props.items, props.multi]);\n\n const onItemClick = (item: ContentAccordionItem) => {\n if (item.disabled) return;\n if (opened.includes(item.key)) {\n setOpened(opened.filter(key => key !== item.key));\n } else {\n if (props.multi) {\n setOpened([...opened, item.key]);\n } else {\n setOpened([item.key]);\n }\n }\n }\n\n const renderItem = (item: ContentAccordionItem) => {\n const isActive = opened.includes(item.key);\n\n return (\n <ContentAccordionItem key={item.key}\n id={`item_${item.key}`}\n className={''.concat(isActive ? ' active' : '').concat(item.disabled ? ' disabled' : '')}>\n <ContentAccordionItemHeader tabIndex={!item.disabled ? 0 : undefined}\n onMouseDown={e => e.preventDefault()}\n onClick={() => !item.disabled && onItemClick(item)}\n onKeyPress={event => event.key === 'Enter' && onItemClick(item)}>\n <ContentAccordionItemHeaderIcon>\n {\n props.multi\n ? isActive\n ? <SystemIcons.Minus/>\n : <SystemIcons.Plus/>\n : isActive\n ? <SystemIcons.ChevronDown/>\n : <SystemIcons.ChevronRight/>\n }\n </ContentAccordionItemHeaderIcon>\n <ContentAccordionItemHeaderText>\n {item.title}\n </ContentAccordionItemHeaderText>\n </ContentAccordionItemHeader>\n <ContentAccordionItemContent>\n {\n item.header &&\n <ContentAccordionItemContentHeader>\n {item.header}\n </ContentAccordionItemContentHeader>\n }\n <ContentAccordionItemContentBody>\n {item.body}\n </ContentAccordionItemContentBody>\n {\n item.footer &&\n <ContentAccordionItemContentFooter>\n {item.footer}\n </ContentAccordionItemContentFooter>\n }\n </ContentAccordionItemContent>\n </ContentAccordionItem>\n );\n }\n\n return (\n <ContentAccordionWrapper className={''.concat(` ${props.size ?? Size.Medium}`)}>\n {props.items.map(item => renderItem(item))}\n </ContentAccordionWrapper>\n );\n};\n\nexport default ContentAccordion;\n"],"file":"ContentAccordion.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/Accordion/ContentAccordion.tsx"],"names":["ContentAccordionItemHeader","styled","div","COLORS","neutral_600","primary_700","primary_20","Z_INDEXES","hover","white","focus","primary_800","primary_100","active","ContentAccordionItemHeaderIcon","ContentAccordionItemHeaderText","ContentAccordionItemContent","ContentAccordionItemContentHeader","ContentAccordionItemContentBody","ContentAccordionItemContentFooter","ContentAccordionItem","neutral_100","neutral_300","ContentAccordionWrapper","ComponentTextStyle","Regular","Bold","ContentAccordion","props","React","useState","opened","setOpened","useEffect","multi","items","filter","item","map","key","find","onItemClick","disabled","includes","renderItem","isActive","concat","undefined","defaultOnMouseDownHandler","event","title","header","body","footer","size","Size","Medium"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAGO,IAAMA,0BAA0B,GAAGC,0BAAOC,GAAV,0jBAK5BC,eAAOC,WALqB,EAS1BD,eAAOE,WATmB,EAUfF,eAAOG,UAVQ,EAWxBC,oBAAUC,KAXc,EAgBfL,eAAOM,KAhBQ,EAiBxBF,oBAAUG,KAjBc,EAsB1BP,eAAOQ,WAtBmB,EAuBfR,eAAOS,WAvBQ,EAyBxBL,oBAAUM,MAzBc,CAAhC;;;;AA6BA,IAAMC,8BAA8B,GAAGb,0BAAOC,GAAV,6KAApC;;;;AAUA,IAAMa,8BAA8B,GAAGd,0BAAOC,GAAV,uFAApC;;;;AAGA,IAAMc,2BAA2B,GAAGf,0BAAOC,GAAV,oIAAjC;;;;AAKA,IAAMe,iCAAiC,GAAGhB,0BAAOC,GAAV,uFAAvC;;;;AAGA,IAAMgB,+BAA+B,GAAGjB,0BAAOC,GAAV,uFAArC;;;;AAGA,IAAMiB,iCAAiC,GAAGlB,0BAAOC,GAAV,uFAAvC;;;;AAGA,IAAMkB,oBAAoB,GAAGnB,0BAAOC,GAAV,yVAGPC,eAAOkB,WAHA,EAM3BL,2BAN2B,EAY3BhB,0BAZ2B,EAalBG,eAAOmB,WAbW,CAA1B;;;;AAoBA,IAAMC,uBAAuB,GAAGtB,0BAAOC,GAAV,+iCAIhCkB,oBAJgC,EAKLjB,eAAOkB,WALF,EAY9BrB,0BAZ8B,EAe5B,mCAAkBwB,+BAAmBC,OAArC,EAA8C,IAA9C,CAf4B,EAkB9BT,2BAlB8B,EAsB5BC,iCAtB4B,EAuB1B,mCAAkBO,+BAAmBE,IAArC,EAA2C,IAA3C,CAvB0B,EA0B5BR,+BA1B4B,EA2B1B,mCAAkBM,+BAAmBC,OAArC,EAA8C,IAA9C,CA3B0B,EAoC9BzB,0BApC8B,EAuC5B,mCAAkBwB,+BAAmBC,OAArC,EAA8C,IAA9C,CAvC4B,EA0C9BT,2BA1C8B,EA8C5BC,iCA9C4B,EA+C1B,mCAAkBO,+BAAmBE,IAArC,EAA2C,IAA3C,CA/C0B,EAkD5BR,+BAlD4B,EAmD1B,mCAAkBM,+BAAmBC,OAArC,EAA8C,IAA9C,CAnD0B,EA6D9BzB,0BA7D8B,EAgE5B,mCAAkBwB,+BAAmBC,OAArC,EAA8C,IAA9C,CAhE4B,EAmE9BT,2BAnE8B,EAuE5BC,iCAvE4B,EAwE1B,mCAAkBO,+BAAmBE,IAArC,EAA2C,IAA3C,CAxE0B,EA2E5BR,+BA3E4B,EA4E1B,mCAAkBM,+BAAmBC,OAArC,EAA8C,IAA9C,CA5E0B,CAA7B;;;;AAkGA,IAAME,gBAAgE,GAAG,SAAnEA,gBAAmE,CAACC,KAAD,EAAW;AAAA;;AAEzF,wBAA4BC,eAAMC,QAAN,CAAyB,EAAzB,CAA5B;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AAEAH,iBAAMI,SAAN,CAAgB,YAAM;AACpB,QAAIL,KAAK,CAACM,KAAV,EAAiB;AACfF,MAAAA,SAAS,CAACJ,KAAK,CAACO,KAAN,CAAYC,MAAZ,CAAmB,UAAAC,IAAI;AAAA,eAAIA,IAAI,CAACxB,MAAT;AAAA,OAAvB,EAAwCyB,GAAxC,CAA4C,UAAAD,IAAI;AAAA,eAAIA,IAAI,CAACE,GAAT;AAAA,OAAhD,CAAD,CAAT;AACD,KAFD,MAEO;AAAA;;AACL,UAAI1B,MAAM,wBAAGe,KAAK,CAACO,KAAN,CAAYK,IAAZ,CAAiB,UAAAH,IAAI;AAAA,eAAI,CAAC,CAACA,IAAI,CAACxB,MAAX;AAAA,OAArB,CAAH,sDAAG,kBAAyC0B,GAAtD;;AACA,UAAI1B,MAAJ,EAAY;AACVmB,QAAAA,SAAS,CAAC,CAACnB,MAAD,CAAD,CAAT;AACD;AACF;AACF,GATD,EASG,CAACe,KAAK,CAACO,KAAP,EAAcP,KAAK,CAACM,KAApB,CATH;;AAWA,MAAMO,WAAW,GAAG,SAAdA,WAAc,CAACJ,IAAD,EAAgC;AAClD,QAAIA,IAAI,CAACK,QAAT,EAAmB;;AACnB,QAAIX,MAAM,CAACY,QAAP,CAAgBN,IAAI,CAACE,GAArB,CAAJ,EAA+B;AAC7BP,MAAAA,SAAS,CAACD,MAAM,CAACK,MAAP,CAAc,UAAAG,GAAG;AAAA,eAAIA,GAAG,KAAKF,IAAI,CAACE,GAAjB;AAAA,OAAjB,CAAD,CAAT;AACD,KAFD,MAEO;AACL,UAAIX,KAAK,CAACM,KAAV,EAAiB;AACfF,QAAAA,SAAS,4CAAKD,MAAL,IAAaM,IAAI,CAACE,GAAlB,GAAT;AACD,OAFD,MAEO;AACLP,QAAAA,SAAS,CAAC,CAACK,IAAI,CAACE,GAAN,CAAD,CAAT;AACD;AACF;AACF,GAXD;;AAaA,MAAMK,UAAU,GAAG,SAAbA,UAAa,CAACP,IAAD,EAAgC;AACjD,QAAMQ,QAAQ,GAAGd,MAAM,CAACY,QAAP,CAAgBN,IAAI,CAACE,GAArB,CAAjB;AAEA,wBACE,sBAAC,oBAAD;AACsB,MAAA,EAAE,iBAAUF,IAAI,CAACE,GAAf,CADxB;AAEsB,MAAA,SAAS,EAAE,GAAGO,MAAH,CAAUD,QAAQ,GAAG,SAAH,GAAe,EAAjC,EAAqCC,MAArC,CAA4CT,IAAI,CAACK,QAAL,GAAgB,WAAhB,GAA8B,EAA1E,CAFjC;AAAA,8BAGE,sBAAC,0BAAD;AAA4B,QAAA,QAAQ,EAAE,CAACL,IAAI,CAACK,QAAN,GAAiB,CAAjB,GAAqBK,SAA3D;AAC4B,QAAA,WAAW,EAAEC,iCADzC;AAE4B,QAAA,OAAO,EAAE;AAAA,iBAAM,CAACX,IAAI,CAACK,QAAN,IAAkBD,WAAW,CAACJ,IAAD,CAAnC;AAAA,SAFrC;AAG4B,QAAA,UAAU,EAAE,oBAAAY,KAAK;AAAA,iBAAIA,KAAK,CAACV,GAAN,KAAc,OAAd,IAAyBE,WAAW,CAACJ,IAAD,CAAxC;AAAA,SAH7C;AAAA,gCAIE,qBAAC,8BAAD;AAAA,oBAEIT,KAAK,CAACM,KAAN,GACIW,QAAQ,gBACN,qBAAC,kBAAD,CAAa,KAAb,KADM,gBAEN,qBAAC,kBAAD,CAAa,IAAb,KAHN,GAIIA,QAAQ,gBACN,qBAAC,kBAAD,CAAa,WAAb,KADM,gBAEN,qBAAC,kBAAD,CAAa,YAAb;AARV,UAJF,eAeE,qBAAC,8BAAD;AAAA,oBACGR,IAAI,CAACa;AADR,UAfF;AAAA,QAHF,eAsBE,sBAAC,2BAAD;AAAA,mBAEIb,IAAI,CAACc,MAAL,iBACA,qBAAC,iCAAD;AAAA,oBACGd,IAAI,CAACc;AADR,UAHJ,eAOE,qBAAC,+BAAD;AAAA,oBACGd,IAAI,CAACe;AADR,UAPF,EAWIf,IAAI,CAACgB,MAAL,iBACA,qBAAC,iCAAD;AAAA,oBACGhB,IAAI,CAACgB;AADR,UAZJ;AAAA,QAtBF;AAAA,OAA2BhB,IAAI,CAACE,GAAhC,CADF;AA0CD,GA7CD;;AA+CA,sBACE,qBAAC,uBAAD;AAAyB,IAAA,SAAS,EAAE,GAAGO,MAAH,2BAAclB,KAAK,CAAC0B,IAApB,qDAA4BC,YAAKC,MAAjC,EAApC;AAAA,cACG5B,KAAK,CAACO,KAAN,CAAYG,GAAZ,CAAgB,UAAAD,IAAI;AAAA,aAAIO,UAAU,CAACP,IAAD,CAAd;AAAA,KAApB;AADH,IADF;AAKD,CAhFM;;;;AALLF,EAAAA,K;AAVAI,IAAAA,G;AACAW,IAAAA,K;AACAC,IAAAA,M;AACAC,IAAAA,I;AACAC,IAAAA,M;AACAX,IAAAA,Q;AACA7B,IAAAA,M;;AAKAqB,EAAAA,K;;eAsFaP,gB","sourcesContent":["import React from 'react'\nimport styled from 'styled-components';\nimport {Size} from '../types';\nimport {SystemIcons} from '../icons';\nimport {ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle} from '../styles/typography';\nimport {COLORS} from '../styles';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport {defaultOnMouseDownHandler} from '../common';\n\n\nexport const ContentAccordionItemHeader = styled.div`\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n color: ${COLORS.neutral_600};\n cursor: pointer;\n\n &:hover {\n color: ${COLORS.primary_700};\n background-color: ${COLORS.primary_20};\n z-index: ${Z_INDEXES.hover};\n }\n\n &:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2E7FA1;\n background-color: ${COLORS.white};\n z-index: ${Z_INDEXES.focus};\n outline: none;\n }\n\n &:active {\n color: ${COLORS.primary_800};\n background-color: ${COLORS.primary_100};\n box-shadow: none;\n z-index: ${Z_INDEXES.active};\n }\n`;\n\nexport const ContentAccordionItemHeaderIcon = styled.div`\n width: 24px;\n height: 24px;\n\n svg {\n width: 24px;\n height: 24px;\n }\n`;\n\nexport const ContentAccordionItemHeaderText = styled.div`\n`;\n\nexport const ContentAccordionItemContent = styled.div`\n display: none;\n flex-direction: column;\n`;\n\nexport const ContentAccordionItemContentHeader = styled.div`\n`;\n\nexport const ContentAccordionItemContentBody = styled.div`\n`;\n\nexport const ContentAccordionItemContentFooter = styled.div`\n`;\n\nexport const ContentAccordionItem = styled.div`\n display: flex;\n flex-direction: column;\n border-top: 1px solid ${COLORS.neutral_100};\n\n &.active {\n ${ContentAccordionItemContent} {\n display: flex;\n }\n }\n\n &.disabled {\n ${ContentAccordionItemHeader} {\n color: ${COLORS.neutral_300};\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n`;\n\nexport const ContentAccordionWrapper = styled.div`\n width: 100%;\n position: relative;\n\n ${ContentAccordionItem}:last-child {\n border-bottom: 1px solid ${COLORS.neutral_100};\n }\n\n &.small {\n min-width: 320px;\n max-width: 528px;\n\n ${ContentAccordionItemHeader} {\n gap: 8px;\n padding: 0 8px;\n ${ComponentSStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 0 8px 16px 40px;\n gap: 8px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentSStyling(ComponentTextStyle.Regular, null)}\n }\n }\n }\n\n &.medium {\n min-width: 344px;\n max-width: 584px;\n\n ${ContentAccordionItemHeader} {\n gap: 12px;\n padding: 0 12px;\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 8px 12px 24px 48px;\n gap: 12px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentMStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n }\n\n }\n }\n\n &.large {\n min-width: 384px;\n max-width: 656px;\n\n ${ContentAccordionItemHeader} {\n gap: 16px;\n padding: 0 16px;\n ${ComponentLStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 16px 16px 32px 56px;\n gap: 16px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentLStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentLStyling(ComponentTextStyle.Regular, null)}\n }\n }\n }\n`;\n\nexport interface ContentAccordionItem {\n key: string;\n title: string;\n header?: string;\n body: any;\n footer?: any;\n disabled?: boolean;\n active?: boolean;\n}\n\nexport interface ContentAccordionProps {\n items: ContentAccordionItem[];\n multi?: boolean;\n size?: Size.Small | Size.Medium | Size.Large;\n}\n\nexport const ContentAccordion: React.FunctionComponent<ContentAccordionProps> = (props) => {\n\n const [opened, setOpened] = React.useState<string[]>([]);\n\n React.useEffect(() => {\n if (props.multi) {\n setOpened(props.items.filter(item => item.active).map(item => item.key));\n } else {\n let active = props.items.find(item => !!item.active)?.key;\n if (active) {\n setOpened([active]);\n }\n }\n }, [props.items, props.multi]);\n\n const onItemClick = (item: ContentAccordionItem) => {\n if (item.disabled) return;\n if (opened.includes(item.key)) {\n setOpened(opened.filter(key => key !== item.key));\n } else {\n if (props.multi) {\n setOpened([...opened, item.key]);\n } else {\n setOpened([item.key]);\n }\n }\n }\n\n const renderItem = (item: ContentAccordionItem) => {\n const isActive = opened.includes(item.key);\n\n return (\n <ContentAccordionItem key={item.key}\n id={`item_${item.key}`}\n className={''.concat(isActive ? ' active' : '').concat(item.disabled ? ' disabled' : '')}>\n <ContentAccordionItemHeader tabIndex={!item.disabled ? 0 : undefined}\n onMouseDown={defaultOnMouseDownHandler}\n onClick={() => !item.disabled && onItemClick(item)}\n onKeyPress={event => event.key === 'Enter' && onItemClick(item)}>\n <ContentAccordionItemHeaderIcon>\n {\n props.multi\n ? isActive\n ? <SystemIcons.Minus/>\n : <SystemIcons.Plus/>\n : isActive\n ? <SystemIcons.ChevronDown/>\n : <SystemIcons.ChevronRight/>\n }\n </ContentAccordionItemHeaderIcon>\n <ContentAccordionItemHeaderText>\n {item.title}\n </ContentAccordionItemHeaderText>\n </ContentAccordionItemHeader>\n <ContentAccordionItemContent>\n {\n item.header &&\n <ContentAccordionItemContentHeader>\n {item.header}\n </ContentAccordionItemContentHeader>\n }\n <ContentAccordionItemContentBody>\n {item.body}\n </ContentAccordionItemContentBody>\n {\n item.footer &&\n <ContentAccordionItemContentFooter>\n {item.footer}\n </ContentAccordionItemContentFooter>\n }\n </ContentAccordionItemContent>\n </ContentAccordionItem>\n );\n }\n\n return (\n <ContentAccordionWrapper className={''.concat(` ${props.size ?? Size.Medium}`)}>\n {props.items.map(item => renderItem(item))}\n </ContentAccordionWrapper>\n );\n};\n\nexport default ContentAccordion;\n"],"file":"ContentAccordion.cjs"}
|
|
@@ -12,6 +12,7 @@ import { SystemIcons } from '../icons';
|
|
|
12
12
|
import { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';
|
|
13
13
|
import { COLORS } from '../styles';
|
|
14
14
|
import { Z_INDEXES } from '../styles/z-indexes';
|
|
15
|
+
import { defaultOnMouseDownHandler } from '../common';
|
|
15
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
18
|
export var ContentAccordionItemHeader = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n color: ", ";\n cursor: pointer;\n\n &:hover {\n color: ", ";\n background-color: ", ";\n z-index: ", ";\n }\n\n &:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2E7FA1;\n background-color: ", ";\n z-index: ", ";\n outline: none;\n }\n\n &:active {\n color: ", ";\n background-color: ", ";\n box-shadow: none;\n z-index: ", ";\n }\n"])), COLORS.neutral_600, COLORS.primary_700, COLORS.primary_20, Z_INDEXES.hover, COLORS.white, Z_INDEXES.focus, COLORS.primary_800, COLORS.primary_100, Z_INDEXES.active);
|
|
@@ -74,9 +75,7 @@ export var ContentAccordion = function ContentAccordion(props) {
|
|
|
74
75
|
className: ''.concat(isActive ? ' active' : '').concat(item.disabled ? ' disabled' : ''),
|
|
75
76
|
children: [/*#__PURE__*/_jsxs(ContentAccordionItemHeader, {
|
|
76
77
|
tabIndex: !item.disabled ? 0 : undefined,
|
|
77
|
-
onMouseDown:
|
|
78
|
-
return e.preventDefault();
|
|
79
|
-
},
|
|
78
|
+
onMouseDown: defaultOnMouseDownHandler,
|
|
80
79
|
onClick: function onClick() {
|
|
81
80
|
return !item.disabled && onItemClick(item);
|
|
82
81
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Accordion/ContentAccordion.tsx"],"names":["React","styled","Size","SystemIcons","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","Z_INDEXES","ContentAccordionItemHeader","div","neutral_600","primary_700","primary_20","hover","white","focus","primary_800","primary_100","active","ContentAccordionItemHeaderIcon","ContentAccordionItemHeaderText","ContentAccordionItemContent","ContentAccordionItemContentHeader","ContentAccordionItemContentBody","ContentAccordionItemContentFooter","ContentAccordionItem","neutral_100","neutral_300","ContentAccordionWrapper","Regular","Bold","ContentAccordion","props","useState","opened","setOpened","useEffect","multi","items","filter","item","map","key","find","onItemClick","disabled","includes","renderItem","isActive","concat","undefined","e","preventDefault","event","title","header","body","footer","size","Medium"],"mappings":"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","sourcesContent":["import React from 'react'\nimport styled from 'styled-components';\nimport {Size} from '../types';\nimport {SystemIcons} from '../icons';\nimport {ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle} from '../styles/typography';\nimport {COLORS} from '../styles';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\n\nexport const ContentAccordionItemHeader = styled.div`\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n color: ${COLORS.neutral_600};\n cursor: pointer;\n\n &:hover {\n color: ${COLORS.primary_700};\n background-color: ${COLORS.primary_20};\n z-index: ${Z_INDEXES.hover};\n }\n\n &:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2E7FA1;\n background-color: ${COLORS.white};\n z-index: ${Z_INDEXES.focus};\n outline: none;\n }\n\n &:active {\n color: ${COLORS.primary_800};\n background-color: ${COLORS.primary_100};\n box-shadow: none;\n z-index: ${Z_INDEXES.active};\n }\n`;\n\nexport const ContentAccordionItemHeaderIcon = styled.div`\n width: 24px;\n height: 24px;\n\n svg {\n width: 24px;\n height: 24px;\n }\n`;\n\nexport const ContentAccordionItemHeaderText = styled.div`\n`;\n\nexport const ContentAccordionItemContent = styled.div`\n display: none;\n flex-direction: column;\n`;\n\nexport const ContentAccordionItemContentHeader = styled.div`\n`;\n\nexport const ContentAccordionItemContentBody = styled.div`\n`;\n\nexport const ContentAccordionItemContentFooter = styled.div`\n`;\n\nexport const ContentAccordionItem = styled.div`\n display: flex;\n flex-direction: column;\n border-top: 1px solid ${COLORS.neutral_100};\n\n &.active {\n ${ContentAccordionItemContent} {\n display: flex;\n }\n }\n\n &.disabled {\n ${ContentAccordionItemHeader} {\n color: ${COLORS.neutral_300};\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n`;\n\nexport const ContentAccordionWrapper = styled.div`\n width: 100%;\n position: relative;\n\n ${ContentAccordionItem}:last-child {\n border-bottom: 1px solid ${COLORS.neutral_100};\n }\n\n &.small {\n min-width: 320px;\n max-width: 528px;\n\n ${ContentAccordionItemHeader} {\n gap: 8px;\n padding: 0 8px;\n ${ComponentSStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 0 8px 16px 40px;\n gap: 8px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentSStyling(ComponentTextStyle.Regular, null)}\n }\n }\n }\n\n &.medium {\n min-width: 344px;\n max-width: 584px;\n\n ${ContentAccordionItemHeader} {\n gap: 12px;\n padding: 0 12px;\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 8px 12px 24px 48px;\n gap: 12px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentMStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n }\n\n }\n }\n\n &.large {\n min-width: 384px;\n max-width: 656px;\n\n ${ContentAccordionItemHeader} {\n gap: 16px;\n padding: 0 16px;\n ${ComponentLStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 16px 16px 32px 56px;\n gap: 16px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentLStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentLStyling(ComponentTextStyle.Regular, null)}\n }\n }\n }\n`;\n\nexport interface ContentAccordionItem {\n key: string;\n title: string;\n header?: string;\n body: any;\n footer?: any;\n disabled?: boolean;\n active?: boolean;\n}\n\nexport interface ContentAccordionProps {\n items: ContentAccordionItem[];\n multi?: boolean;\n size?: Size.Small | Size.Medium | Size.Large;\n}\n\nexport const ContentAccordion: React.FunctionComponent<ContentAccordionProps> = (props) => {\n\n const [opened, setOpened] = React.useState<string[]>([]);\n\n React.useEffect(() => {\n if (props.multi) {\n setOpened(props.items.filter(item => item.active).map(item => item.key));\n } else {\n let active = props.items.find(item => !!item.active)?.key;\n if (active) {\n setOpened([active]);\n }\n }\n }, [props.items, props.multi]);\n\n const onItemClick = (item: ContentAccordionItem) => {\n if (item.disabled) return;\n if (opened.includes(item.key)) {\n setOpened(opened.filter(key => key !== item.key));\n } else {\n if (props.multi) {\n setOpened([...opened, item.key]);\n } else {\n setOpened([item.key]);\n }\n }\n }\n\n const renderItem = (item: ContentAccordionItem) => {\n const isActive = opened.includes(item.key);\n\n return (\n <ContentAccordionItem key={item.key}\n id={`item_${item.key}`}\n className={''.concat(isActive ? ' active' : '').concat(item.disabled ? ' disabled' : '')}>\n <ContentAccordionItemHeader tabIndex={!item.disabled ? 0 : undefined}\n onMouseDown={e => e.preventDefault()}\n onClick={() => !item.disabled && onItemClick(item)}\n onKeyPress={event => event.key === 'Enter' && onItemClick(item)}>\n <ContentAccordionItemHeaderIcon>\n {\n props.multi\n ? isActive\n ? <SystemIcons.Minus/>\n : <SystemIcons.Plus/>\n : isActive\n ? <SystemIcons.ChevronDown/>\n : <SystemIcons.ChevronRight/>\n }\n </ContentAccordionItemHeaderIcon>\n <ContentAccordionItemHeaderText>\n {item.title}\n </ContentAccordionItemHeaderText>\n </ContentAccordionItemHeader>\n <ContentAccordionItemContent>\n {\n item.header &&\n <ContentAccordionItemContentHeader>\n {item.header}\n </ContentAccordionItemContentHeader>\n }\n <ContentAccordionItemContentBody>\n {item.body}\n </ContentAccordionItemContentBody>\n {\n item.footer &&\n <ContentAccordionItemContentFooter>\n {item.footer}\n </ContentAccordionItemContentFooter>\n }\n </ContentAccordionItemContent>\n </ContentAccordionItem>\n );\n }\n\n return (\n <ContentAccordionWrapper className={''.concat(` ${props.size ?? Size.Medium}`)}>\n {props.items.map(item => renderItem(item))}\n </ContentAccordionWrapper>\n );\n};\n\nexport default ContentAccordion;\n"],"file":"ContentAccordion.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Accordion/ContentAccordion.tsx"],"names":["React","styled","Size","SystemIcons","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","Z_INDEXES","defaultOnMouseDownHandler","ContentAccordionItemHeader","div","neutral_600","primary_700","primary_20","hover","white","focus","primary_800","primary_100","active","ContentAccordionItemHeaderIcon","ContentAccordionItemHeaderText","ContentAccordionItemContent","ContentAccordionItemContentHeader","ContentAccordionItemContentBody","ContentAccordionItemContentFooter","ContentAccordionItem","neutral_100","neutral_300","ContentAccordionWrapper","Regular","Bold","ContentAccordion","props","useState","opened","setOpened","useEffect","multi","items","filter","item","map","key","find","onItemClick","disabled","includes","renderItem","isActive","concat","undefined","event","title","header","body","footer","size","Medium"],"mappings":"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","sourcesContent":["import React from 'react'\nimport styled from 'styled-components';\nimport {Size} from '../types';\nimport {SystemIcons} from '../icons';\nimport {ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle} from '../styles/typography';\nimport {COLORS} from '../styles';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport {defaultOnMouseDownHandler} from '../common';\n\n\nexport const ContentAccordionItemHeader = styled.div`\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n color: ${COLORS.neutral_600};\n cursor: pointer;\n\n &:hover {\n color: ${COLORS.primary_700};\n background-color: ${COLORS.primary_20};\n z-index: ${Z_INDEXES.hover};\n }\n\n &:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2E7FA1;\n background-color: ${COLORS.white};\n z-index: ${Z_INDEXES.focus};\n outline: none;\n }\n\n &:active {\n color: ${COLORS.primary_800};\n background-color: ${COLORS.primary_100};\n box-shadow: none;\n z-index: ${Z_INDEXES.active};\n }\n`;\n\nexport const ContentAccordionItemHeaderIcon = styled.div`\n width: 24px;\n height: 24px;\n\n svg {\n width: 24px;\n height: 24px;\n }\n`;\n\nexport const ContentAccordionItemHeaderText = styled.div`\n`;\n\nexport const ContentAccordionItemContent = styled.div`\n display: none;\n flex-direction: column;\n`;\n\nexport const ContentAccordionItemContentHeader = styled.div`\n`;\n\nexport const ContentAccordionItemContentBody = styled.div`\n`;\n\nexport const ContentAccordionItemContentFooter = styled.div`\n`;\n\nexport const ContentAccordionItem = styled.div`\n display: flex;\n flex-direction: column;\n border-top: 1px solid ${COLORS.neutral_100};\n\n &.active {\n ${ContentAccordionItemContent} {\n display: flex;\n }\n }\n\n &.disabled {\n ${ContentAccordionItemHeader} {\n color: ${COLORS.neutral_300};\n cursor: not-allowed;\n pointer-events: none;\n }\n }\n`;\n\nexport const ContentAccordionWrapper = styled.div`\n width: 100%;\n position: relative;\n\n ${ContentAccordionItem}:last-child {\n border-bottom: 1px solid ${COLORS.neutral_100};\n }\n\n &.small {\n min-width: 320px;\n max-width: 528px;\n\n ${ContentAccordionItemHeader} {\n gap: 8px;\n padding: 0 8px;\n ${ComponentSStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 0 8px 16px 40px;\n gap: 8px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentSStyling(ComponentTextStyle.Regular, null)}\n }\n }\n }\n\n &.medium {\n min-width: 344px;\n max-width: 584px;\n\n ${ContentAccordionItemHeader} {\n gap: 12px;\n padding: 0 12px;\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 8px 12px 24px 48px;\n gap: 12px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentMStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentMStyling(ComponentTextStyle.Regular, null)}\n }\n\n }\n }\n\n &.large {\n min-width: 384px;\n max-width: 656px;\n\n ${ContentAccordionItemHeader} {\n gap: 16px;\n padding: 0 16px;\n ${ComponentLStyling(ComponentTextStyle.Regular, null)}\n }\n\n ${ContentAccordionItemContent} {\n padding: 16px 16px 32px 56px;\n gap: 16px;\n\n ${ContentAccordionItemContentHeader} {\n ${ComponentLStyling(ComponentTextStyle.Bold, null)}\n }\n\n ${ContentAccordionItemContentBody} {\n ${ComponentLStyling(ComponentTextStyle.Regular, null)}\n }\n }\n }\n`;\n\nexport interface ContentAccordionItem {\n key: string;\n title: string;\n header?: string;\n body: any;\n footer?: any;\n disabled?: boolean;\n active?: boolean;\n}\n\nexport interface ContentAccordionProps {\n items: ContentAccordionItem[];\n multi?: boolean;\n size?: Size.Small | Size.Medium | Size.Large;\n}\n\nexport const ContentAccordion: React.FunctionComponent<ContentAccordionProps> = (props) => {\n\n const [opened, setOpened] = React.useState<string[]>([]);\n\n React.useEffect(() => {\n if (props.multi) {\n setOpened(props.items.filter(item => item.active).map(item => item.key));\n } else {\n let active = props.items.find(item => !!item.active)?.key;\n if (active) {\n setOpened([active]);\n }\n }\n }, [props.items, props.multi]);\n\n const onItemClick = (item: ContentAccordionItem) => {\n if (item.disabled) return;\n if (opened.includes(item.key)) {\n setOpened(opened.filter(key => key !== item.key));\n } else {\n if (props.multi) {\n setOpened([...opened, item.key]);\n } else {\n setOpened([item.key]);\n }\n }\n }\n\n const renderItem = (item: ContentAccordionItem) => {\n const isActive = opened.includes(item.key);\n\n return (\n <ContentAccordionItem key={item.key}\n id={`item_${item.key}`}\n className={''.concat(isActive ? ' active' : '').concat(item.disabled ? ' disabled' : '')}>\n <ContentAccordionItemHeader tabIndex={!item.disabled ? 0 : undefined}\n onMouseDown={defaultOnMouseDownHandler}\n onClick={() => !item.disabled && onItemClick(item)}\n onKeyPress={event => event.key === 'Enter' && onItemClick(item)}>\n <ContentAccordionItemHeaderIcon>\n {\n props.multi\n ? isActive\n ? <SystemIcons.Minus/>\n : <SystemIcons.Plus/>\n : isActive\n ? <SystemIcons.ChevronDown/>\n : <SystemIcons.ChevronRight/>\n }\n </ContentAccordionItemHeaderIcon>\n <ContentAccordionItemHeaderText>\n {item.title}\n </ContentAccordionItemHeaderText>\n </ContentAccordionItemHeader>\n <ContentAccordionItemContent>\n {\n item.header &&\n <ContentAccordionItemContentHeader>\n {item.header}\n </ContentAccordionItemContentHeader>\n }\n <ContentAccordionItemContentBody>\n {item.body}\n </ContentAccordionItemContentBody>\n {\n item.footer &&\n <ContentAccordionItemContentFooter>\n {item.footer}\n </ContentAccordionItemContentFooter>\n }\n </ContentAccordionItemContent>\n </ContentAccordionItem>\n );\n }\n\n return (\n <ContentAccordionWrapper className={''.concat(` ${props.size ?? Size.Medium}`)}>\n {props.items.map(item => renderItem(item))}\n </ContentAccordionWrapper>\n );\n};\n\nexport default ContentAccordion;\n"],"file":"ContentAccordion.js"}
|
|
@@ -392,6 +392,7 @@ var DropdownContent = function DropdownContent(_ref) {
|
|
|
392
392
|
ref: elRefs[0],
|
|
393
393
|
id: "".concat(id, "_topitem"),
|
|
394
394
|
onClickHandler: function onClickHandler(e) {
|
|
395
|
+
e.stopPropagation();
|
|
395
396
|
customizationProps.onValueUpdate([x.value]);
|
|
396
397
|
setSelectedValues([x.value]);
|
|
397
398
|
setIsOpen(false);
|
|
@@ -455,6 +456,7 @@ var DropdownContent = function DropdownContent(_ref) {
|
|
|
455
456
|
active: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.includes(item.value),
|
|
456
457
|
ref: elRefs[number + 1],
|
|
457
458
|
onClickHandler: function onClickHandler(e) {
|
|
459
|
+
e.stopPropagation();
|
|
458
460
|
customizationProps.onValueUpdate([item.value]);
|
|
459
461
|
setSelectedValues([item.value]);
|
|
460
462
|
setIsOpen(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","width","Z_INDEXES","dropdown","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","neutral_600","neutral_500","MenuContentContainer","ComponentTextStyle","Bold","Small","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","React","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","keyCode","preventDefault","focusedNow","undefined","filtered","haveTopItem","i","disabled","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","ref","createRef","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","getElements","number","customContent","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","icon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling } from './CommonStyling';\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{size? : Size}>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n > *:active,\n > *.active{\n z-index: ${Z_INDEXES.active};\n }\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n \nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n\n\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\n\nconst MenuContentContainer = styled.div<{size? : Size}>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{size? : Size}>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' : \n props.size == Size.Medium ? '12px' : \n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{size?:Size}>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{size?:Size}>`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n \n padding: ${props => props.size == Size.Small || !props.size ? '0px 16px' : '8px 16px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n}) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n if(focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n const focusThis = focused == 0 && !haveTopItem() ? 1 : focused;\n if (focusThis != focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)){\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n \n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} label={selectedFirst?.displayLabel ?? selectedFirst?.value} \n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem \n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false} \n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }} />\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected:boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected:boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem \n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n item={item}\n size={size}\n active={selectedValues?.includes(item.value)} \n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }} />\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef} scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\" />\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => \n {\n if(customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["DDContainer","styled","div","COLORS","white","props","width","Z_INDEXES","dropdown","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","neutral_600","neutral_500","MenuContentContainer","ComponentTextStyle","Bold","Small","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownContent","id","customizationProps","isOpen","hideOnClickOutside","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","React","useState","isUp","setIsUp","dropdownContentRef","useRef","itemsListRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","handleKeyDown","e","keyCode","preventDefault","focusedNow","undefined","filtered","haveTopItem","i","disabled","document","getElementById","handleClickOutside","contains","target","some","useEffect","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","ref","createRef","arrLength","setElRefs","Array","fill","map","_","multiSelect","getSuggestions","suggestion","focusThis","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","pinTopItem","visibleItems","allSelected","y","showTopItem","suggestions","find","c","selectedFirst","newValues","stopPropagation","getElements","number","customContent","join","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","icon"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport Button from '../Button/Button';\nimport { Size } from '../types';\nimport { ButtonDropdownContentStyling } from './CommonStyling';\nimport { ComponentLStyling, ComponentXLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport { COLORS } from '../styles';\nimport { Checkbox, RadioButton } from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n padding-top: 4px;\n padding-right: 0px;\n padding-bottom: 4px;\n padding-left: 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n`;\n\nconst ItemsContainer = styled.div<{size? : Size}>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n > *:active,\n > *.active{\n z-index: ${Z_INDEXES.active};\n }\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n \nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\n\n\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px' };\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.neutral_100};\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_600};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_500};\n }\n`;\n\n\nconst MenuContentContainer = styled.div<{size? : Size}>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{size? : Size}>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' : \n props.size == Size.Medium ? '12px' : \n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{size?:Size}>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{size?:Size}>`\n border-top-style: solid;\n border-top-color: ${COLORS.neutral_200};\n border-top-width: 1px;\n \n padding: ${props => props.size == Size.Small || !props.size ? '0px 16px' : '8px 16px'};\n\n button {\n width: 100%;\n }\n`;\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n hideOnClickOutside: boolean;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n}\n\nconst DropdownContent: React.FunctionComponent<DropdownProps> = ({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n hideOnClickOutside,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n}) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = elRefs[index];\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement?.current?.focus();\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n const filtered = getFilteredItems();\n if(focusedNow == 1 && haveTopItem())\n focusedNow = 0;\n else {\n for (let i = focusedNow - 1; i > 0; i--) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n }\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n const filtered = getFilteredItems();\n for (let i = focusedNow + 1; i <= filtered.length; i++) {\n if (!filtered[i - 1]?.disabled) {\n focusedNow = i;\n break;\n }\n }\n } else {\n focusedNow = haveTopItem() ? 0 : 1;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setFocused(null);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setFocused(null);\n\n //TODO: add onEscapehandler\n /*\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus(); */\n }\n }\n };\n\n const handleClickOutside = (e: any) => {\n if (hideOnClickOutside && dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target) && !elRefs.some((x) => x?.current?.contains(e.target))) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength, selectedValues]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const haveTopItem = () => {\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n const focusThis = focused == 0 && !haveTopItem() ? 1 : focused;\n if (focusThis != focused) setFocused(focusThis);\n const newFocusedElement = elRefs[focusThis];\n newFocusedElement?.current?.focus();\n } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item\n }, [isOpen]);\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)){\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n \n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType == 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n select={() => {}} label={selectedFirst?.displayLabel ?? selectedFirst?.value} \n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if(customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType == 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem \n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false} \n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }} />\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n let number = 0;\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected:boolean) => handleItemClick(selected, item)}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected:boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n ref={elRefs[number + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem \n key={`key_${id}_${number++}`}\n id={`${id}_${number + 1}`}\n item={item}\n size={size}\n active={selectedValues?.includes(item.value)} \n ref={elRefs[number + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }} />\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n <ListContainer size={size} itemsType={customizationProps.itemsType} onScroll={handleScroll} ref={itemsListRef} scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\" />\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size}>\n <Button width=\"100%\" icon={customizationProps.actionIcon}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size} onClick={() => \n {\n if(customizationProps.action()) //closing the dropdown if action returns 'true'\n setIsOpen(false);\n }}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n /* ),\n {\n handleClickOutside: () => () => {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n }\n },\n },\n );\n\n return <Wrapped />; */\n};\n\nexport default DropdownContent;\n"],"file":"DropdownContent.cjs"}
|
|
@@ -358,6 +358,7 @@ var DropdownContent = function DropdownContent(_ref) {
|
|
|
358
358
|
ref: elRefs[0],
|
|
359
359
|
id: "".concat(id, "_topitem"),
|
|
360
360
|
onClickHandler: function onClickHandler(e) {
|
|
361
|
+
e.stopPropagation();
|
|
361
362
|
customizationProps.onValueUpdate([x.value]);
|
|
362
363
|
setSelectedValues([x.value]);
|
|
363
364
|
setIsOpen(false);
|
|
@@ -421,6 +422,7 @@ var DropdownContent = function DropdownContent(_ref) {
|
|
|
421
422
|
active: selectedValues === null || selectedValues === void 0 ? void 0 : selectedValues.includes(item.value),
|
|
422
423
|
ref: elRefs[number + 1],
|
|
423
424
|
onClickHandler: function onClickHandler(e) {
|
|
425
|
+
e.stopPropagation();
|
|
424
426
|
customizationProps.onValueUpdate([item.value]);
|
|
425
427
|
setSelectedValues([item.value]);
|
|
426
428
|
setIsOpen(false);
|