@elliemae/ds-mobile 1.54.0-next.7 → 1.54.0-rc.11
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/cjs/MobileBanner/styles.js +2 -2
- package/cjs/MobileBanner/styles.js.map +1 -1
- package/cjs/MobileContextMenu/MobileContextMenu.js +10 -11
- package/cjs/MobileContextMenu/MobileContextMenu.js.map +1 -1
- package/cjs/MobileContextMenu/MobileContextMenuItem.js.map +1 -1
- package/esm/MobileBanner/styles.js +2 -2
- package/esm/MobileBanner/styles.js.map +1 -1
- package/esm/MobileContextMenu/MobileContextMenu.js +11 -12
- package/esm/MobileContextMenu/MobileContextMenu.js.map +1 -1
- package/esm/MobileContextMenu/MobileContextMenuItem.js.map +1 -1
- package/package.json +10 -3
|
@@ -84,10 +84,10 @@ var StyledContent = /*#__PURE__*/styled__default['default'].div.withConfig({
|
|
|
84
84
|
});
|
|
85
85
|
var StyledCloseButtonContainer = /*#__PURE__*/styled__default['default'].div.withConfig({
|
|
86
86
|
componentId: "sc-4jnp92-6"
|
|
87
|
-
})(["display:flex;align-items:flex-start;margin-top:
|
|
87
|
+
})(["display:flex;align-items:flex-start;margin-top:6px;margin-right:6px;"]);
|
|
88
88
|
var StyledCloseButton = /*#__PURE__*/styled__default['default'](DSButton__default['default']).withConfig({
|
|
89
89
|
componentId: "sc-4jnp92-7"
|
|
90
|
-
})(["position:relative;&:focus{&:after{display:block;content:' ';position:absolute;top
|
|
90
|
+
})(["position:relative;&:focus{&:after{display:block;content:' ';position:absolute;top:0;left:0;width:100%;height:100%;border:2px solid ", ";border-radius:2px;pointer-events:none;}}"], function (_ref17) {
|
|
91
91
|
var theme = _ref17.theme;
|
|
92
92
|
return theme.colors.brand[700];
|
|
93
93
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../src/MobileBanner/styles.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { toMobile } from '@elliemae/ds-system';\nimport DSButton from '@elliemae/ds-basic/Button';\nimport type { StyledBannerContainerT, StyledContentT, StyledInnerContainerT } from './index.d';\nimport { handleAnimation, handleBorderColor } from './utils/styleHelpers';\n\nexport const StyledInnerContainer = styled.div<StyledInnerContainerT>`\n display: flex;\n min-height: 68px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral['000']};\n border-bottom: 4px solid ${({ type, theme }) => handleBorderColor(type, theme)};\n transform: translateY(${({ isOpen }) => (isOpen ? '0' : '-100%')});\n ${({ isAnimating, isOpen }) => handleAnimation(isAnimating, isOpen)};\n`;\n\nexport const StyledTextContent = styled.div`\n width: 100%;\n`;\n\nexport const StyledTitle = styled.div`\n color: ${({ theme }) => theme.colors.neutral[700]};\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[700])};\n font-weight: ${({ theme }) => theme.fontWeights.semibold};\n margin-bottom: ${({ theme }) => theme.space.xxs};\n @media not all and (min-resolution: 0.001dpcm) {\n @media {\n -webkit-font-smoothing: subpixel-antialiased; // fix safari bold render\n -webkit-text-stroke: 0.4px ${({ theme }) => theme.colors.neutral[700]}; // fix safari bold render\n }\n }\n @media screen and (min--moz-device-pixel-ratio:0) {\n -webkit-font-smoothing: subpixel-antialiased; // fix safari bold render\n -webkit-text-stroke: 0.4px ${({ theme }) => theme.colors.neutral[700]}; // fix safari bold render\n }\n`;\n\nexport const StyledSubTitle = styled.div`\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[600])};\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n`;\n\nexport const StyledIconContainer = styled.div`\n margin-top: 10px;\n margin-right: ${({ theme }) => theme.space.xxs};\n margin-left: ${({ theme }) => theme.space.xs};\n`;\n\nexport const StyledContent = styled.div<StyledContentT>`\n width: 100%;\n display: flex;\n flex-direction: column;\n margin: ${({ theme }) => theme.space.xxs2} 0;\n margin-right: ${({ showCloseButton }) => (!showCloseButton ? '28px' : '0')};\n`;\n\nexport const StyledCloseButtonContainer = styled.div`\n display: flex;\n align-items: flex-start;\n margin-top:
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../src/MobileBanner/styles.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { toMobile } from '@elliemae/ds-system';\nimport DSButton from '@elliemae/ds-basic/Button';\nimport type { StyledBannerContainerT, StyledContentT, StyledInnerContainerT } from './index.d';\nimport { handleAnimation, handleBorderColor } from './utils/styleHelpers';\n\nexport const StyledInnerContainer = styled.div<StyledInnerContainerT>`\n display: flex;\n min-height: 68px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral['000']};\n border-bottom: 4px solid ${({ type, theme }) => handleBorderColor(type, theme)};\n transform: translateY(${({ isOpen }) => (isOpen ? '0' : '-100%')});\n ${({ isAnimating, isOpen }) => handleAnimation(isAnimating, isOpen)};\n`;\n\nexport const StyledTextContent = styled.div`\n width: 100%;\n`;\n\nexport const StyledTitle = styled.div`\n color: ${({ theme }) => theme.colors.neutral[700]};\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[700])};\n font-weight: ${({ theme }) => theme.fontWeights.semibold};\n margin-bottom: ${({ theme }) => theme.space.xxs};\n @media not all and (min-resolution: 0.001dpcm) {\n @media {\n -webkit-font-smoothing: subpixel-antialiased; // fix safari bold render\n -webkit-text-stroke: 0.4px ${({ theme }) => theme.colors.neutral[700]}; // fix safari bold render\n }\n }\n @media screen and (min--moz-device-pixel-ratio: 0) {\n -webkit-font-smoothing: subpixel-antialiased; // fix safari bold render\n -webkit-text-stroke: 0.4px ${({ theme }) => theme.colors.neutral[700]}; // fix safari bold render\n }\n`;\n\nexport const StyledSubTitle = styled.div`\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[600])};\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n`;\n\nexport const StyledIconContainer = styled.div`\n margin-top: 10px;\n margin-right: ${({ theme }) => theme.space.xxs};\n margin-left: ${({ theme }) => theme.space.xs};\n`;\n\nexport const StyledContent = styled.div<StyledContentT>`\n width: 100%;\n display: flex;\n flex-direction: column;\n margin: ${({ theme }) => theme.space.xxs2} 0;\n margin-right: ${({ showCloseButton }) => (!showCloseButton ? '28px' : '0')};\n`;\n\nexport const StyledCloseButtonContainer = styled.div`\n display: flex;\n align-items: flex-start;\n margin-top: 6px;\n margin-right: 6px;\n`;\nexport const StyledCloseButton = styled(DSButton)`\n position: relative;\n &:focus {\n &:after {\n display: block;\n content: ' ';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 2px solid ${({ theme }) => theme.colors.brand[700]};\n border-radius: 2px;\n pointer-events: none;\n }\n }\n`;\n\nexport const StyledActionLink = styled.a`\n text-decoration: none;\n float: right;\n margin-left: ${({ theme }) => theme.space.xs};\n line-height: 1.1;\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[600])};\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n color: ${({ theme }) => theme.colors.brand[600]};\n`;\n\nexport const StyledBannerContainer = styled.div<StyledBannerContainerT>`\n overflow: hidden;\n height: ${({ isOpen }) => (isOpen ? 'auto' : '0px')};\n ${({ isAnimating, isOpen, height }) => handleAnimation(isAnimating, isOpen, height)};\n`;\n"],"names":["StyledInnerContainer","styled","div","theme","colors","neutral","type","handleBorderColor","isOpen","isAnimating","handleAnimation","StyledTextContent","StyledTitle","toMobile","fontSizes","title","fontWeights","semibold","space","xxs","StyledSubTitle","regular","StyledIconContainer","xs","StyledContent","xxs2","showCloseButton","StyledCloseButtonContainer","StyledCloseButton","DSButton","brand","StyledActionLink","a","StyledBannerContainer","height"],"mappings":";;;;;;;;;;;;;;;;IAMaA,oBAAoB,gBAAGC,0BAAM,CAACC,GAAV;AAAA;AAAA,oIAIX;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaC,OAAb,CAAqB,KAArB,CAAf;AAAA,CAJW,EAKJ;AAAA,MAAGC,IAAH,SAAGA,IAAH;AAAA,MAASH,KAAT,SAASA,KAAT;AAAA,SAAqBI,iDAAiB,CAACD,IAAD,EAAOH,KAAP,CAAtC;AAAA,CALI,EAMP;AAAA,MAAGK,MAAH,SAAGA,MAAH;AAAA,SAAiBA,MAAM,GAAG,GAAH,GAAS,OAAhC;AAAA,CANO,EAO7B;AAAA,MAAGC,WAAH,SAAGA,WAAH;AAAA,MAAgBD,MAAhB,SAAgBA,MAAhB;AAAA,SAA6BE,+CAAe,CAACD,WAAD,EAAcD,MAAd,CAA5C;AAAA,CAP6B;IAUpBG,iBAAiB,gBAAGV,0BAAM,CAACC,GAAV;AAAA;AAAA;IAIjBU,WAAW,gBAAGX,0BAAM,CAACC,GAAV;AAAA;AAAA,uUACb;AAAA,MAAGC,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaC,OAAb,CAAqB,GAArB,CAAf;AAAA,CADa,EAET;AAAA,MAAGF,KAAH,SAAGA,KAAH;AAAA,SAAeU,iBAAQ,CAACV,KAAK,CAACW,SAAN,CAAgBC,KAAhB,CAAsB,GAAtB,CAAD,CAAvB;AAAA,CAFS,EAGP;AAAA,MAAGZ,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACa,WAAN,CAAkBC,QAAjC;AAAA,CAHO,EAIL;AAAA,MAAGd,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACe,KAAN,CAAYC,GAA3B;AAAA,CAJK,EAQW;AAAA,MAAGhB,KAAH,SAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaC,OAAb,CAAqB,GAArB,CAAf;AAAA,CARX,EAaS;AAAA,MAAGF,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAaC,OAAb,CAAqB,GAArB,CAAf;AAAA,CAbT;IAiBXe,cAAc,gBAAGnB,0BAAM,CAACC,GAAV;AAAA;AAAA,yCACZ;AAAA,MAAGC,KAAH,UAAGA,KAAH;AAAA,SAAeU,iBAAQ,CAACV,KAAK,CAACW,SAAN,CAAgBC,KAAhB,CAAsB,GAAtB,CAAD,CAAvB;AAAA,CADY,EAEV;AAAA,MAAGZ,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACa,WAAN,CAAkBK,OAAjC;AAAA,CAFU;IAKdC,mBAAmB,gBAAGrB,0BAAM,CAACC,GAAV;AAAA;AAAA,4DAEd;AAAA,MAAGC,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACe,KAAN,CAAYC,GAA3B;AAAA,CAFc,EAGf;AAAA,MAAGhB,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACe,KAAN,CAAYK,EAA3B;AAAA,CAHe;IAMnBC,aAAa,gBAAGvB,0BAAM,CAACC,GAAV;AAAA;AAAA,uFAId;AAAA,MAAGC,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACe,KAAN,CAAYO,IAA3B;AAAA,CAJc,EAKR;AAAA,MAAGC,eAAH,UAAGA,eAAH;AAAA,SAA0B,CAACA,eAAD,GAAmB,MAAnB,GAA4B,GAAtD;AAAA,CALQ;IAQbC,0BAA0B,gBAAG1B,0BAAM,CAACC,GAAV;AAAA;AAAA;IAM1B0B,iBAAiB,gBAAG3B,0BAAM,CAAC4B,4BAAD,CAAT;AAAA;AAAA,yLAWJ;AAAA,MAAG1B,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAa0B,KAAb,CAAmB,GAAnB,CAAf;AAAA,CAXI;IAkBjBC,gBAAgB,gBAAG9B,0BAAM,CAAC+B,CAAV;AAAA;AAAA,sHAGZ;AAAA,MAAG7B,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACe,KAAN,CAAYK,EAA3B;AAAA,CAHY,EAKd;AAAA,MAAGpB,KAAH,UAAGA,KAAH;AAAA,SAAeU,iBAAQ,CAACV,KAAK,CAACW,SAAN,CAAgBC,KAAhB,CAAsB,GAAtB,CAAD,CAAvB;AAAA,CALc,EAMZ;AAAA,MAAGZ,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACa,WAAN,CAAkBK,OAAjC;AAAA,CANY,EAOlB;AAAA,MAAGlB,KAAH,UAAGA,KAAH;AAAA,SAAeA,KAAK,CAACC,MAAN,CAAa0B,KAAb,CAAmB,GAAnB,CAAf;AAAA,CAPkB;IAUhBG,qBAAqB,gBAAGhC,0BAAM,CAACC,GAAV;AAAA;AAAA,0CAEtB;AAAA,MAAGM,MAAH,UAAGA,MAAH;AAAA,SAAiBA,MAAM,GAAG,MAAH,GAAY,KAAnC;AAAA,CAFsB,EAG9B;AAAA,MAAGC,WAAH,UAAGA,WAAH;AAAA,MAAgBD,MAAhB,UAAgBA,MAAhB;AAAA,MAAwB0B,MAAxB,UAAwBA,MAAxB;AAAA,SAAqCxB,+CAAe,CAACD,WAAD,EAAcD,MAAd,EAAsB0B,MAAtB,CAApD;AAAA,CAH8B;;;;;;;;;;;;;"}
|
|
@@ -88,18 +88,17 @@ var DSMobileContextMenu = dsSystem.withTheme(function (_ref) {
|
|
|
88
88
|
selectedItems = _useState2[0],
|
|
89
89
|
setSelectedItems = _useState2[1];
|
|
90
90
|
|
|
91
|
+
var trueSelected = React.useMemo(function () {
|
|
92
|
+
return initSelecteds !== undefined ? initSelecteds : _toConsumableArray__default['default'](selectedItems);
|
|
93
|
+
}, [initSelecteds, selectedItems]);
|
|
91
94
|
var containerRef = React.useRef(null);
|
|
92
|
-
React.useEffect(function () {
|
|
93
|
-
if (typeof initSelecteds !== 'undefined') {
|
|
94
|
-
if (multiple) setSelectedItems(function (prev) {
|
|
95
|
-
return [].concat(_toConsumableArray__default['default'](prev), _toConsumableArray__default['default'](initSelecteds));
|
|
96
|
-
});else if (singleSelect) setSelectedItems(initSelecteds);
|
|
97
|
-
}
|
|
98
|
-
}, [initSelecteds, multiple, singleSelect]);
|
|
99
95
|
|
|
100
96
|
var handleChange = function handleChange(value, childProps, event) {
|
|
101
97
|
onChange(value, childProps, event);
|
|
102
|
-
|
|
98
|
+
|
|
99
|
+
if (initSelecteds === undefined) {
|
|
100
|
+
if (multiple) setSelectedItems(_toConsumableArray__default['default'](value));else if (singleSelect) setSelectedItems(value);
|
|
101
|
+
}
|
|
103
102
|
};
|
|
104
103
|
|
|
105
104
|
var handleApply = function handleApply(e) {
|
|
@@ -141,7 +140,7 @@ var DSMobileContextMenu = dsSystem.withTheme(function (_ref) {
|
|
|
141
140
|
overflow: 'auto'
|
|
142
141
|
}
|
|
143
142
|
}, /*#__PURE__*/React__default['default'].createElement(Group__default['default'], {
|
|
144
|
-
activeValue:
|
|
143
|
+
activeValue: trueSelected,
|
|
145
144
|
multiple: multiple,
|
|
146
145
|
onChange: handleChange
|
|
147
146
|
}, React__default['default'].Children.map(children, function (child, ii) {
|
|
@@ -152,7 +151,7 @@ var DSMobileContextMenu = dsSystem.withTheme(function (_ref) {
|
|
|
152
151
|
onClick = _child$props$onClick === void 0 ? lodash.noop : _child$props$onClick;
|
|
153
152
|
var value = ii;
|
|
154
153
|
var isSelected;
|
|
155
|
-
if (singleSelect) isSelected =
|
|
154
|
+
if (singleSelect) isSelected = trueSelected === value;else if (multiple) isSelected = trueSelected.includes(value);
|
|
156
155
|
return /*#__PURE__*/React__default['default'].cloneElement(child, {
|
|
157
156
|
value: value,
|
|
158
157
|
key: "cm.".concat(ii),
|
|
@@ -162,7 +161,7 @@ var DSMobileContextMenu = dsSystem.withTheme(function (_ref) {
|
|
|
162
161
|
onClick: !isGroup ? function (e) {
|
|
163
162
|
return onClick(e, child.props);
|
|
164
163
|
} : null,
|
|
165
|
-
selectedItems: isGroup ?
|
|
164
|
+
selectedItems: isGroup ? trueSelected : null
|
|
166
165
|
});
|
|
167
166
|
})))), buttonFooter && /*#__PURE__*/React__default['default'].createElement(Grid.Grid, {
|
|
168
167
|
pl: "xs",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileContextMenu.js","sources":["../../../src/MobileContextMenu/MobileContextMenu.tsx"],"sourcesContent":["/* eslint-disable import/no-unresolved */\n/* eslint-disable react/no-array-index-key */\n/* eslint-disable func-names */\n/* eslint-disable max-lines */\nimport React, { useState, useEffect, useRef } from 'react';\nimport { noop } from 'lodash';\nimport { describe, PropTypes } from 'react-desc';\nimport styled from 'styled-components';\nimport { Grid } from '@elliemae/ds-basic/Grid';\nimport { DSBackdrop } from '@elliemae/ds-basic';\nimport { truncate, withTheme } from '@elliemae/ds-system';\nimport Group from '@elliemae/ds-shared/GroupContext/Group';\nimport { DSMobileContextMenuGroup as ContextMenuGroup } from './MobileContextMenuGroup';\n\nconst StyledContainer = styled(Grid)`\n background: ${(props) => props.theme.colors.neutral['000']};\n z-index: ${(props) => props.zIndex};\n width: ${(props) => `calc(100% - ${props.theme.space.xs})`};\n position: fixed;\n bottom: 0;\n left: ${(props) => props.theme.space.xxs};\n max-height: 90vh;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.5), 0 0px 11px 0 rgba(0, 0, 0, 0.5);\n`;\n\nconst StyledTitle = styled(Grid)`\n font-size: 16px;\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n color: ${(props) => props.theme.colors.neutral['000']};\n ${truncate()}\n\n & > span {\n height: 20px;\n width: 20px;\n }\n\n & > span > svg,\n svg:not([fill]) {\n height: 20px;\n width: 20px;\n fill: ${(props) => props.theme.colors.neutral['000']};\n }\n`;\n\nconst HeaderContainer = styled(Grid)`\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: ${(props) => props.theme.colors.brand['600']};\n`;\n\nconst isArr = (prop) => Array.isArray(prop);\n\nconst DSMobileContextMenu = withTheme(\n ({\n open = false,\n title = '',\n multiple = false,\n singleSelect = false,\n onChange = noop,\n onClickOutside = noop,\n children,\n theme,\n backdropZIndex,\n zIndex = 1,\n dataTestid = 'mobile-context-menu',\n buttonFooter = null,\n onApply = noop,\n selecteds: initSelecteds,\n }) => {\n const [selectedItems, setSelectedItems] = useState([]);\n const containerRef = useRef(null);\n\n useEffect(() => {\n if (typeof initSelecteds !== 'undefined') {\n if (multiple) setSelectedItems((prev) => [...prev, ...initSelecteds]);\n else if (singleSelect) setSelectedItems(initSelecteds);\n }\n }, [initSelecteds, multiple, singleSelect]);\n\n const handleChange = (value, childProps, event) => {\n onChange(value, childProps, event);\n if (multiple) setSelectedItems([...value]);\n else if (singleSelect) setSelectedItems(value);\n };\n\n const handleApply = function (e) {\n if (this.onClick) this.onClick(e);\n onApply(e, selectedItems);\n };\n\n const rows = [theme.space.s, 1];\n if (buttonFooter) rows.push('56px');\n\n if (!open) return null;\n\n return (\n <>\n <DSBackdrop\n type=\"cover\"\n zIndex={backdropZIndex}\n onClick={(e) => {\n // PUI-4481 prevent click on elements below backdrop\n e.stopPropagation();\n onClickOutside(e);\n }}\n />\n <StyledContainer zIndex={zIndex} rows={rows} ref={containerRef} data-testid=\"ds-mobile-context-menu\">\n <HeaderContainer justifyContent=\"center\" alignItems=\"center\" pl=\"xs\" pr=\"xs\">\n <StyledTitle alignItems=\"center\" gutter=\"xxs\" cols={Array(isArr(title) ? title.length : 1).fill('auto')}>\n {title}\n </StyledTitle>\n </HeaderContainer>\n <Grid style={{ overflow: 'hidden' }}>\n <Grid style={{ overflow: 'auto' }}>\n <Group activeValue={selectedItems} multiple={multiple} onChange={handleChange}>\n {React.Children.map(children, (child, ii) => {\n const isGroup =\n child.type === (<ContextMenuGroup />).type ||\n child.type?.name === ContextMenuGroup.componentType ||\n child.type === ContextMenuGroup.type;\n const { onClick = noop } = child.props;\n const value = ii;\n let isSelected;\n if (singleSelect) isSelected = selectedItems === value;\n else if (multiple) isSelected = selectedItems.includes(value);\n return React.cloneElement(child, {\n value,\n key: `cm.${ii}`,\n isMulti: multiple,\n singleSelect,\n isSelected,\n onClick: !isGroup ? (e) => onClick(e, child.props) : null,\n selectedItems: isGroup ? selectedItems : null,\n });\n })}\n </Group>\n </Grid>\n </Grid>\n {buttonFooter && (\n <Grid pl=\"xs\" pr=\"xs\" alignItems=\"center\">\n {React.cloneElement(buttonFooter, {\n ...buttonFooter.props,\n containerProps: {\n 'data-testid': `${dataTestid}--btn`,\n },\n buttonType: 'primary',\n size: 'l',\n onClick: handleApply.bind(buttonFooter.props),\n })}\n </Grid>\n )}\n </StyledContainer>\n </>\n );\n },\n);\n\nconst props = {\n /** toggle open the menu */\n open: PropTypes.bool.description('toggle open the menu'),\n /** context menu title */\n title: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.node])),\n ]).description('context menu title'),\n /** change handler for selectable context menu */\n onChange: PropTypes.func.description('change handler for selectable context menu'),\n /** multi select */\n multiple: PropTypes.bool.description('multi select'),\n /** click outside callback handler */\n onClickOutside: PropTypes.func.description('click outside callback handler'),\n /** array of mobile context menu items */\n children: PropTypes.arrayOf(PropTypes.element).description('array of mobile context menu items'),\n /** z index for overlay div */\n backdropZIndex: PropTypes.number.description('z index for overlay div'),\n /** z index for menu container */\n zIndex: PropTypes.number.description('z index for menu container'),\n /** for e2e tests */\n dataTestid: PropTypes.string.description('for e2e tests'),\n /** bottom button */\n buttonFooter: PropTypes.element.description('bottom button'),\n /** callback */\n onApply: PropTypes.func.description('callback'),\n /** selected elements for multi and single select */\n selecteds: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n PropTypes.number,\n ]).description('selected elements for multi and single select'),\n};\n\nDSMobileContextMenu.propTypes = props;\n\nconst DSMobileContextMenuWithSchema = describe(DSMobileContextMenu);\n\nDSMobileContextMenuWithSchema.propTypes = props;\n\nexport { DSMobileContextMenu, DSMobileContextMenuWithSchema };\n"],"names":["StyledContainer","styled","Grid","props","theme","colors","neutral","zIndex","space","xs","xxs","StyledTitle","fontWeights","semibold","truncate","HeaderContainer","brand","isArr","prop","Array","isArray","DSMobileContextMenu","withTheme","open","title","multiple","singleSelect","onChange","noop","onClickOutside","children","backdropZIndex","dataTestid","buttonFooter","onApply","initSelecteds","selecteds","useState","selectedItems","setSelectedItems","containerRef","useRef","useEffect","prev","handleChange","value","childProps","event","handleApply","e","onClick","rows","s","push","React","DSBackdrop","stopPropagation","length","fill","overflow","Group","Children","map","child","ii","isGroup","type","ContextMenuGroup","name","componentType","isSelected","includes","cloneElement","key","isMulti","containerProps","buttonType","size","bind","PropTypes","bool","description","oneOfType","string","arrayOf","node","func","element","number","propTypes","DSMobileContextMenuWithSchema","describe"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,IAAMA,eAAe,gBAAGC,0BAAM,CAACC,SAAD,CAAT;AAAA;AAAA,+NACL,UAACC,KAAD;AAAA,SAAWA,KAAK,CAACC,KAAN,CAAYC,MAAZ,CAAmBC,OAAnB,CAA2B,KAA3B,CAAX;AAAA,CADK,EAER,UAACH,KAAD;AAAA,SAAWA,KAAK,CAACI,MAAjB;AAAA,CAFQ,EAGV,UAACJ,KAAD;AAAA,+BAA0BA,KAAK,CAACC,KAAN,CAAYI,KAAZ,CAAkBC,EAA5C;AAAA,CAHU,EAMX,UAACN,KAAD;AAAA,SAAWA,KAAK,CAACC,KAAN,CAAYI,KAAZ,CAAkBE,GAA7B;AAAA,CANW,CAArB;AAaA,IAAMC,WAAW,gBAAGV,0BAAM,CAACC,SAAD,CAAT;AAAA;AAAA,2JAEA,UAACC,KAAD;AAAA,SAAWA,KAAK,CAACC,KAAN,CAAYQ,WAAZ,CAAwBC,QAAnC;AAAA,CAFA,EAGN,UAACV,KAAD;AAAA,SAAWA,KAAK,CAACC,KAAN,CAAYC,MAAZ,CAAmBC,OAAnB,CAA2B,KAA3B,CAAX;AAAA,CAHM,EAIbQ,iBAAQ,EAJK,EAeL,UAACX,KAAD;AAAA,SAAWA,KAAK,CAACC,KAAN,CAAYC,MAAZ,CAAmBC,OAAnB,CAA2B,KAA3B,CAAX;AAAA,CAfK,CAAjB;AAmBA,IAAMS,eAAe,gBAAGd,0BAAM,CAACC,SAAD,CAAT;AAAA;AAAA,gFAGL,UAACC,KAAD;AAAA,SAAWA,KAAK,CAACC,KAAN,CAAYC,MAAZ,CAAmBW,KAAnB,CAAyB,KAAzB,CAAX;AAAA,CAHK,CAArB;;AAMA,IAAMC,KAAK,GAAG,SAARA,KAAQ,CAACC,IAAD;AAAA,SAAUC,KAAK,CAACC,OAAN,CAAcF,IAAd,CAAV;AAAA,CAAd;;IAEMG,mBAAmB,GAAGC,kBAAS,CACnC,gBAeM;AAAA,uBAdJC,IAcI;AAAA,MAdJA,IAcI,0BAdG,KAcH;AAAA,wBAbJC,KAaI;AAAA,MAbJA,KAaI,2BAbI,EAaJ;AAAA,2BAZJC,QAYI;AAAA,MAZJA,QAYI,8BAZO,KAYP;AAAA,+BAXJC,YAWI;AAAA,MAXJA,YAWI,kCAXW,KAWX;AAAA,2BAVJC,QAUI;AAAA,MAVJA,QAUI,8BAVOC,WAUP;AAAA,iCATJC,cASI;AAAA,MATJA,cASI,oCATaD,WASb;AAAA,MARJE,QAQI,QARJA,QAQI;AAAA,MAPJ1B,KAOI,QAPJA,KAOI;AAAA,MANJ2B,cAMI,QANJA,cAMI;AAAA,yBALJxB,MAKI;AAAA,MALJA,MAKI,4BALK,CAKL;AAAA,6BAJJyB,UAII;AAAA,MAJJA,UAII,gCAJS,qBAIT;AAAA,+BAHJC,YAGI;AAAA,MAHJA,YAGI,kCAHW,IAGX;AAAA,0BAFJC,OAEI;AAAA,MAFJA,OAEI,6BAFMN,WAEN;AAAA,MADOO,aACP,QADJC,SACI;;AACJ,kBAA0CC,cAAQ,CAAC,EAAD,CAAlD;AAAA;AAAA,MAAOC,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,MAAMC,YAAY,GAAGC,YAAM,CAAC,IAAD,CAA3B;AAEAC,EAAAA,eAAS,CAAC,YAAM;AACd,QAAI,OAAOP,aAAP,KAAyB,WAA7B,EAA0C;AACxC,UAAIV,QAAJ,EAAcc,gBAAgB,CAAC,UAACI,IAAD;AAAA,gEAAcA,IAAd,0CAAuBR,aAAvB;AAAA,OAAD,CAAhB,CAAd,KACK,IAAIT,YAAJ,EAAkBa,gBAAgB,CAACJ,aAAD,CAAhB;AACxB;AACF,GALQ,EAKN,CAACA,aAAD,EAAgBV,QAAhB,EAA0BC,YAA1B,CALM,CAAT;;AAOA,MAAMkB,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAQC,UAAR,EAAoBC,KAApB,EAA8B;AACjDpB,IAAAA,QAAQ,CAACkB,KAAD,EAAQC,UAAR,EAAoBC,KAApB,CAAR;AACA,QAAItB,QAAJ,EAAcc,gBAAgB,wCAAKM,KAAL,EAAhB,CAAd,KACK,IAAInB,YAAJ,EAAkBa,gBAAgB,CAACM,KAAD,CAAhB;AACxB,GAJD;;AAMA,MAAMG,WAAW,GAAG,SAAdA,WAAc,CAAUC,CAAV,EAAa;AAC/B,QAAI,KAAKC,OAAT,EAAkB,KAAKA,OAAL,CAAaD,CAAb;AAClBf,IAAAA,OAAO,CAACe,CAAD,EAAIX,aAAJ,CAAP;AACD,GAHD;;AAKA,MAAMa,IAAI,GAAG,CAAC/C,KAAK,CAACI,KAAN,CAAY4C,CAAb,EAAgB,CAAhB,CAAb;AACA,MAAInB,YAAJ,EAAkBkB,IAAI,CAACE,IAAL,CAAU,MAAV;AAElB,MAAI,CAAC9B,IAAL,EAAW,OAAO,IAAP;AAEX,sBACE+B,+FACEA,wCAACC,kBAAD;AACE,IAAA,IAAI,EAAC,OADP;AAEE,IAAA,MAAM,EAAExB,cAFV;AAGE,IAAA,OAAO,EAAE,iBAACkB,CAAD,EAAO;AACd;AACAA,MAAAA,CAAC,CAACO,eAAF;AACA3B,MAAAA,cAAc,CAACoB,CAAD,CAAd;AACD;AAPH,IADF,eAUEK,wCAAC,eAAD;AAAiB,IAAA,MAAM,EAAE/C,MAAzB;AAAiC,IAAA,IAAI,EAAE4C,IAAvC;AAA6C,IAAA,GAAG,EAAEX,YAAlD;AAAgE,mBAAY;AAA5E,kBACEc,wCAAC,eAAD;AAAiB,IAAA,cAAc,EAAC,QAAhC;AAAyC,IAAA,UAAU,EAAC,QAApD;AAA6D,IAAA,EAAE,EAAC,IAAhE;AAAqE,IAAA,EAAE,EAAC;AAAxE,kBACEA,wCAAC,WAAD;AAAa,IAAA,UAAU,EAAC,QAAxB;AAAiC,IAAA,MAAM,EAAC,KAAxC;AAA8C,IAAA,IAAI,EAAEnC,KAAK,CAACF,KAAK,CAACO,KAAD,CAAL,GAAeA,KAAK,CAACiC,MAArB,GAA8B,CAA/B,CAAL,CAAuCC,IAAvC,CAA4C,MAA5C;AAApD,KACGlC,KADH,CADF,CADF,eAME8B,wCAACpD,SAAD;AAAM,IAAA,KAAK,EAAE;AAAEyD,MAAAA,QAAQ,EAAE;AAAZ;AAAb,kBACEL,wCAACpD,SAAD;AAAM,IAAA,KAAK,EAAE;AAAEyD,MAAAA,QAAQ,EAAE;AAAZ;AAAb,kBACEL,wCAACM,yBAAD;AAAO,IAAA,WAAW,EAAEtB,aAApB;AAAmC,IAAA,QAAQ,EAAEb,QAA7C;AAAuD,IAAA,QAAQ,EAAEmB;AAAjE,KACGU,yBAAK,CAACO,QAAN,CAAeC,GAAf,CAAmBhC,QAAnB,EAA6B,UAACiC,KAAD,EAAQC,EAAR,EAAe;AAAA;;AAC3C,QAAMC,OAAO,GACXF,KAAK,CAACG,IAAN,KAAgBZ,wCAACa,iEAAD,OAAD,CAAuBD,IAAtC,IACA,gBAAAH,KAAK,CAACG,IAAN,4DAAYE,IAAZ,MAAqBD,iEAAgB,CAACE,aADtC,IAEAN,KAAK,CAACG,IAAN,KAAeC,iEAAgB,CAACD,IAHlC;AAIA,+BAA2BH,KAAK,CAAC5D,KAAjC,CAAQ+C,OAAR;AAAA,QAAQA,OAAR,qCAAkBtB,WAAlB;AACA,QAAMiB,KAAK,GAAGmB,EAAd;AACA,QAAIM,UAAJ;AACA,QAAI5C,YAAJ,EAAkB4C,UAAU,GAAGhC,aAAa,KAAKO,KAA/B,CAAlB,KACK,IAAIpB,QAAJ,EAAc6C,UAAU,GAAGhC,aAAa,CAACiC,QAAd,CAAuB1B,KAAvB,CAAb;AACnB,wBAAOS,yBAAK,CAACkB,YAAN,CAAmBT,KAAnB,EAA0B;AAC/BlB,MAAAA,KAAK,EAALA,KAD+B;AAE/B4B,MAAAA,GAAG,eAAQT,EAAR,CAF4B;AAG/BU,MAAAA,OAAO,EAAEjD,QAHsB;AAI/BC,MAAAA,YAAY,EAAZA,YAJ+B;AAK/B4C,MAAAA,UAAU,EAAVA,UAL+B;AAM/BpB,MAAAA,OAAO,EAAE,CAACe,OAAD,GAAW,UAAChB,CAAD;AAAA,eAAOC,OAAO,CAACD,CAAD,EAAIc,KAAK,CAAC5D,KAAV,CAAd;AAAA,OAAX,GAA4C,IANtB;AAO/BmC,MAAAA,aAAa,EAAE2B,OAAO,GAAG3B,aAAH,GAAmB;AAPV,KAA1B,CAAP;AASD,GAnBA,CADH,CADF,CADF,CANF,EAgCGL,YAAY,iBACXqB,wCAACpD,SAAD;AAAM,IAAA,EAAE,EAAC,IAAT;AAAc,IAAA,EAAE,EAAC,IAAjB;AAAsB,IAAA,UAAU,EAAC;AAAjC,kBACGoD,yBAAK,CAACkB,YAAN,CAAmBvC,YAAnB,kCACIA,YAAY,CAAC9B,KADjB;AAECwE,IAAAA,cAAc,EAAE;AACd,+BAAkB3C,UAAlB;AADc,KAFjB;AAKC4C,IAAAA,UAAU,EAAE,SALb;AAMCC,IAAAA,IAAI,EAAE,GANP;AAOC3B,IAAAA,OAAO,EAAEF,WAAW,CAAC8B,IAAZ,CAAiB7C,YAAY,CAAC9B,KAA9B;AAPV,KADH,CAjCJ,CAVF,CADF;AA2DD,CAtGkC;AAyGrC,IAAMA,KAAK,GAAG;AACZ;AACAoB,EAAAA,IAAI,EAAEwD,mBAAS,CAACC,IAAV,CAAeC,WAAf,CAA2B,sBAA3B,CAFM;;AAGZ;AACAzD,EAAAA,KAAK,EAAEuD,mBAAS,CAACG,SAAV,CAAoB,CACzBH,mBAAS,CAACI,MADe,EAEzBJ,mBAAS,CAACK,OAAV,CAAkBL,mBAAS,CAACG,SAAV,CAAoB,CAACH,mBAAS,CAACI,MAAX,EAAmBJ,mBAAS,CAACM,IAA7B,CAApB,CAAlB,CAFyB,CAApB,EAGJJ,WAHI,CAGQ,oBAHR,CAJK;;AAQZ;AACAtD,EAAAA,QAAQ,EAAEoD,mBAAS,CAACO,IAAV,CAAeL,WAAf,CAA2B,4CAA3B,CATE;;AAUZ;AACAxD,EAAAA,QAAQ,EAAEsD,mBAAS,CAACC,IAAV,CAAeC,WAAf,CAA2B,cAA3B,CAXE;;AAYZ;AACApD,EAAAA,cAAc,EAAEkD,mBAAS,CAACO,IAAV,CAAeL,WAAf,CAA2B,gCAA3B,CAbJ;;AAcZ;AACAnD,EAAAA,QAAQ,EAAEiD,mBAAS,CAACK,OAAV,CAAkBL,mBAAS,CAACQ,OAA5B,EAAqCN,WAArC,CAAiD,oCAAjD,CAfE;;AAgBZ;AACAlD,EAAAA,cAAc,EAAEgD,mBAAS,CAACS,MAAV,CAAiBP,WAAjB,CAA6B,yBAA7B,CAjBJ;;AAkBZ;AACA1E,EAAAA,MAAM,EAAEwE,mBAAS,CAACS,MAAV,CAAiBP,WAAjB,CAA6B,4BAA7B,CAnBI;;AAoBZ;AACAjD,EAAAA,UAAU,EAAE+C,mBAAS,CAACI,MAAV,CAAiBF,WAAjB,CAA6B,eAA7B,CArBA;;AAsBZ;AACAhD,EAAAA,YAAY,EAAE8C,mBAAS,CAACQ,OAAV,CAAkBN,WAAlB,CAA8B,eAA9B,CAvBF;;AAwBZ;AACA/C,EAAAA,OAAO,EAAE6C,mBAAS,CAACO,IAAV,CAAeL,WAAf,CAA2B,UAA3B,CAzBG;;AA0BZ;AACA7C,EAAAA,SAAS,EAAE2C,mBAAS,CAACG,SAAV,CAAoB,CAC7BH,mBAAS,CAACK,OAAV,CAAkBL,mBAAS,CAACG,SAAV,CAAoB,CAACH,mBAAS,CAACI,MAAX,EAAmBJ,mBAAS,CAACS,MAA7B,CAApB,CAAlB,CAD6B,EAE7BT,mBAAS,CAACS,MAFmB,CAApB,EAGRP,WAHQ,CAGI,+CAHJ;AA3BC,CAAd;AAiCA5D,mBAAmB,CAACoE,SAApB,GAAgCtF,KAAhC;IAEMuF,6BAA6B,GAAGC,kBAAQ,CAACtE,mBAAD;AAE9CqE,6BAA6B,CAACD,SAA9B,GAA0CtF,KAA1C;;;;;"}
|
|
1
|
+
{"version":3,"file":"MobileContextMenu.js","sources":["../../../src/MobileContextMenu/MobileContextMenu.tsx"],"sourcesContent":["/* eslint-disable import/no-unresolved */\n/* eslint-disable react/no-array-index-key */\n/* eslint-disable func-names */\n/* eslint-disable max-lines */\nimport React, { useState, useRef, useMemo } from 'react';\nimport { noop } from 'lodash';\nimport { describe, PropTypes } from 'react-desc';\nimport styled from 'styled-components';\nimport { Grid } from '@elliemae/ds-basic/Grid';\nimport { DSBackdrop } from '@elliemae/ds-basic';\nimport { truncate, withTheme } from '@elliemae/ds-system';\nimport Group from '@elliemae/ds-shared/GroupContext/Group';\nimport { DSMobileContextMenuGroup as ContextMenuGroup } from './MobileContextMenuGroup';\n\nconst StyledContainer = styled(Grid)`\n background: ${(props) => props.theme.colors.neutral['000']};\n z-index: ${(props) => props.zIndex};\n width: ${(props) => `calc(100% - ${props.theme.space.xs})`};\n position: fixed;\n bottom: 0;\n left: ${(props) => props.theme.space.xxs};\n max-height: 90vh;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.5), 0 0px 11px 0 rgba(0, 0, 0, 0.5);\n`;\n\nconst StyledTitle = styled(Grid)`\n font-size: 16px;\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n color: ${(props) => props.theme.colors.neutral['000']};\n ${truncate()}\n\n & > span {\n height: 20px;\n width: 20px;\n }\n\n & > span > svg,\n svg:not([fill]) {\n height: 20px;\n width: 20px;\n fill: ${(props) => props.theme.colors.neutral['000']};\n }\n`;\n\nconst HeaderContainer = styled(Grid)`\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: ${(props) => props.theme.colors.brand['600']};\n`;\n\nconst isArr = (prop) => Array.isArray(prop);\n\nconst DSMobileContextMenu = withTheme(\n ({\n open = false,\n title = '',\n multiple = false,\n singleSelect = false,\n onChange = noop,\n onClickOutside = noop,\n children,\n theme,\n backdropZIndex,\n zIndex = 1,\n dataTestid = 'mobile-context-menu',\n buttonFooter = null,\n onApply = noop,\n selecteds: initSelecteds,\n }) => {\n const [selectedItems, setSelectedItems] = useState([]);\n const trueSelected = useMemo(\n () => (initSelecteds !== undefined ? initSelecteds : [...selectedItems]),\n [initSelecteds, selectedItems],\n );\n const containerRef = useRef(null);\n const handleChange = (value, childProps, event) => {\n onChange(value, childProps, event);\n if (initSelecteds === undefined) {\n if (multiple) setSelectedItems([...value]);\n else if (singleSelect) setSelectedItems(value);\n }\n };\n\n const handleApply = function (e) {\n if (this.onClick) this.onClick(e);\n onApply(e, selectedItems);\n };\n\n const rows = [theme.space.s, 1];\n if (buttonFooter) rows.push('56px');\n\n if (!open) return null;\n\n return (\n <>\n <DSBackdrop\n type=\"cover\"\n zIndex={backdropZIndex}\n onClick={(e) => {\n // PUI-4481 prevent click on elements below backdrop\n e.stopPropagation();\n onClickOutside(e);\n }}\n />\n <StyledContainer zIndex={zIndex} rows={rows} ref={containerRef} data-testid=\"ds-mobile-context-menu\">\n <HeaderContainer justifyContent=\"center\" alignItems=\"center\" pl=\"xs\" pr=\"xs\">\n <StyledTitle alignItems=\"center\" gutter=\"xxs\" cols={Array(isArr(title) ? title.length : 1).fill('auto')}>\n {title}\n </StyledTitle>\n </HeaderContainer>\n <Grid style={{ overflow: 'hidden' }}>\n <Grid style={{ overflow: 'auto' }}>\n <Group activeValue={trueSelected} multiple={multiple} onChange={handleChange}>\n {React.Children.map(children, (child, ii) => {\n const isGroup =\n child.type === (<ContextMenuGroup />).type ||\n child.type?.name === ContextMenuGroup.componentType ||\n child.type === ContextMenuGroup.type;\n const { onClick = noop } = child.props;\n const value = ii;\n let isSelected;\n if (singleSelect) isSelected = trueSelected === value;\n else if (multiple) isSelected = trueSelected.includes(value);\n return React.cloneElement(child, {\n value,\n key: `cm.${ii}`,\n isMulti: multiple,\n singleSelect,\n isSelected,\n onClick: !isGroup ? (e) => onClick(e, child.props) : null,\n selectedItems: isGroup ? trueSelected : null,\n });\n })}\n </Group>\n </Grid>\n </Grid>\n {buttonFooter && (\n <Grid pl=\"xs\" pr=\"xs\" alignItems=\"center\">\n {React.cloneElement(buttonFooter, {\n ...buttonFooter.props,\n containerProps: {\n 'data-testid': `${dataTestid}--btn`,\n },\n buttonType: 'primary',\n size: 'l',\n onClick: handleApply.bind(buttonFooter.props),\n })}\n </Grid>\n )}\n </StyledContainer>\n </>\n );\n },\n);\n\nconst props = {\n /** toggle open the menu */\n open: PropTypes.bool.description('toggle open the menu'),\n /** context menu title */\n title: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.node])),\n ]).description('context menu title'),\n /** change handler for selectable context menu */\n onChange: PropTypes.func.description('change handler for selectable context menu'),\n /** multi select */\n multiple: PropTypes.bool.description('multi select'),\n /** click outside callback handler */\n onClickOutside: PropTypes.func.description('click outside callback handler'),\n /** array of mobile context menu items */\n children: PropTypes.arrayOf(PropTypes.element).description('array of mobile context menu items'),\n /** z index for overlay div */\n backdropZIndex: PropTypes.number.description('z index for overlay div'),\n /** z index for menu container */\n zIndex: PropTypes.number.description('z index for menu container'),\n /** for e2e tests */\n dataTestid: PropTypes.string.description('for e2e tests'),\n /** bottom button */\n buttonFooter: PropTypes.element.description('bottom button'),\n /** callback */\n onApply: PropTypes.func.description('callback'),\n /** selected elements for multi and single select */\n selecteds: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n PropTypes.number,\n ]).description('selected elements for multi and single select'),\n};\n\nDSMobileContextMenu.propTypes = props;\n\nconst DSMobileContextMenuWithSchema = describe(DSMobileContextMenu);\n\nDSMobileContextMenuWithSchema.propTypes = props;\n\nexport { DSMobileContextMenu, DSMobileContextMenuWithSchema };\n"],"names":["StyledContainer","styled","Grid","props","theme","colors","neutral","zIndex","space","xs","xxs","StyledTitle","fontWeights","semibold","truncate","HeaderContainer","brand","isArr","prop","Array","isArray","DSMobileContextMenu","withTheme","open","title","multiple","singleSelect","onChange","noop","onClickOutside","children","backdropZIndex","dataTestid","buttonFooter","onApply","initSelecteds","selecteds","useState","selectedItems","setSelectedItems","trueSelected","useMemo","undefined","containerRef","useRef","handleChange","value","childProps","event","handleApply","e","onClick","rows","s","push","React","DSBackdrop","stopPropagation","length","fill","overflow","Group","Children","map","child","ii","isGroup","type","ContextMenuGroup","name","componentType","isSelected","includes","cloneElement","key","isMulti","containerProps","buttonType","size","bind","PropTypes","bool","description","oneOfType","string","arrayOf","node","func","element","number","propTypes","DSMobileContextMenuWithSchema","describe"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileContextMenuItem.js","sources":["../../../src/MobileContextMenu/MobileContextMenuItem.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable import/no-unresolved */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { Grid } from '@elliemae/ds-basic/Grid';\nimport styled from 'styled-components';\nimport { truncate } from '@elliemae/ds-system';\nimport GroupItem from '@elliemae/ds-shared/GroupContext/GroupItem';\n\nimport Checkbox from '@elliemae/ds-basic/form/Checkbox';\nimport DSCheckmark from '@elliemae/ds-icons/Checkmark';\nimport { DSMobileTouchable } from '../MobileTouchable';\n\nconst Wrap = styled((props) => <DSMobileTouchable {...props} />)`\n border-bottom: none;\n`;\n\nconst PropWrap = styled((props) => <Grid {...props} />)`\n ${(props) => {\n if (!props.isMulti) {\n return `\n & > span {\n height: 18px;\n width: 18px;\n }\n\n & > span > svg {\n height: 18px;\n width: 18px;\n }\n `;\n }\n return '';\n }}\n`;\n\nconst Title = styled.span`\n font-size: 16px;\n color: ${(props) => props.theme.colors.brand['600']};\n ${truncate()}\n`;\n\nconst Label = styled.span`\n font-size: 13px;\n color: ${(props) => props.theme.colors.neutral['600']};\n`;\n\nconst CheckMark = styled(DSCheckmark)`\n fill: ${(props) => props.theme.colors.brand['600']};\n`;\ninterface DSMobileContextMenuItemPropsT {\n label: string;\n title: string;\n leftProp: JSX.Element;\n isGroup: boolean;\n isMulti: boolean;\n isSelected: boolean;\n singleSelect: boolean;\n onClick: (e: any) => void;\n value: string;\n}\nconst DSMobileContextMenuItem = ({\n label,\n title,\n leftProp,\n isGroup,\n isMulti,\n singleSelect,\n isSelected,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClick = () => {},\n value,\n}: DSMobileContextMenuItemPropsT): JSX.Element => (\n <GroupItem\n render={(context) => {\n const { activeValue } = context;\n let someItemSelected = activeValue >= 0 && !Array.isArray(activeValue);\n if (isGroup) someItemSelected = typeof activeValue === 'string';\n\n let showLeftAddon = isSelected;\n if (isMulti || !singleSelect) showLeftAddon = true;\n\n let leftAddon = leftProp || null;\n if (isMulti)
|
|
1
|
+
{"version":3,"file":"MobileContextMenuItem.js","sources":["../../../src/MobileContextMenu/MobileContextMenuItem.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable import/no-unresolved */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { Grid } from '@elliemae/ds-basic/Grid';\nimport styled from 'styled-components';\nimport { truncate } from '@elliemae/ds-system';\nimport GroupItem from '@elliemae/ds-shared/GroupContext/GroupItem';\n\nimport Checkbox from '@elliemae/ds-basic/form/Checkbox';\nimport DSCheckmark from '@elliemae/ds-icons/Checkmark';\nimport { DSMobileTouchable } from '../MobileTouchable';\n\nconst Wrap = styled((props) => <DSMobileTouchable {...props} />)`\n border-bottom: none;\n`;\n\nconst PropWrap = styled((props) => <Grid {...props} />)`\n ${(props) => {\n if (!props.isMulti) {\n return `\n & > span {\n height: 18px;\n width: 18px;\n }\n\n & > span > svg {\n height: 18px;\n width: 18px;\n }\n `;\n }\n return '';\n }}\n`;\n\nconst Title = styled.span`\n font-size: 16px;\n color: ${(props) => props.theme.colors.brand['600']};\n ${truncate()}\n`;\n\nconst Label = styled.span`\n font-size: 13px;\n color: ${(props) => props.theme.colors.neutral['600']};\n`;\n\nconst CheckMark = styled(DSCheckmark)`\n fill: ${(props) => props.theme.colors.brand['600']};\n`;\ninterface DSMobileContextMenuItemPropsT {\n label: string;\n title: string;\n leftProp: JSX.Element;\n isGroup: boolean;\n isMulti: boolean;\n isSelected: boolean;\n singleSelect: boolean;\n onClick: (e: any) => void;\n value: string;\n}\nconst DSMobileContextMenuItem = ({\n label,\n title,\n leftProp,\n isGroup,\n isMulti,\n singleSelect,\n isSelected,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClick = () => {},\n value,\n}: DSMobileContextMenuItemPropsT): JSX.Element => (\n <GroupItem\n render={(context) => {\n const { activeValue } = context;\n let someItemSelected = activeValue >= 0 && !Array.isArray(activeValue);\n if (isGroup) someItemSelected = typeof activeValue === 'string';\n\n let showLeftAddon = isSelected;\n if (isMulti || !singleSelect) showLeftAddon = true;\n\n let leftAddon = leftProp || null;\n if (isMulti) leftAddon = <Checkbox checked={isSelected} data-testid=\"leftAddon-checkbox\" />;\n if (singleSelect) leftAddon = <CheckMark data-testid=\"leftAddon-checkmark\" />;\n\n return (\n <Wrap\n data-testid=\"ds-contextmenu-item\"\n onClick={(e) => {\n if (singleSelect || isMulti) context.onChange(value, e, { value, label, title });\n onClick(e);\n }}\n cols={\n (singleSelect && someItemSelected) || (leftAddon && !singleSelect) || isMulti ? ['40px', 'auto'] : ['auto']\n }\n >\n {((singleSelect && someItemSelected) || isMulti || leftAddon) && (\n <PropWrap data-testid=\"left-addon\" isMulti={isMulti} alignItems=\"center\" justifyContent=\"center\" pl=\"16px\">\n {showLeftAddon && leftAddon}\n </PropWrap>\n )}\n <Grid height=\"44px\" pr=\"xs\" pl={!leftAddon && isGroup ? '24px' : 'xs'}>\n {label && (\n <Grid alignItems=\"center\">\n <Label data-testid=\"contextMenuItem-label\">{label}</Label>\n </Grid>\n )}\n <Grid alignItems={!label ? 'center' : undefined}>\n <Title data-testid=\"contextMenuItem-title\">{title}</Title>\n </Grid>\n </Grid>\n </Wrap>\n );\n }}\n />\n);\n\nconst props = {\n /** label */\n label: PropTypes.string.description('label'),\n /** menu item title */\n title: PropTypes.string.isRequired.description('menu item title'),\n /** */\n leftProp: PropTypes.element.description(''),\n /** multi select */\n isMulti: PropTypes.bool.description('multi select'),\n /** */\n singleSelect: PropTypes.bool.description(''),\n /** */\n isGroup: PropTypes.bool.description(''),\n /** on click handler */\n onClick: PropTypes.func.description('on click handler'),\n /** value for select */\n value: PropTypes.number.description('value for select'),\n /** selected value */\n isSelected: PropTypes.bool.description('selected value'),\n};\n\nDSMobileContextMenuItem.propTypes = props;\n\nconst DSMobileContextMenuItemWithSchema = describe(DSMobileContextMenuItem);\n\nDSMobileContextMenuItemWithSchema.propTypes = props;\n\nexport { DSMobileContextMenuItem, DSMobileContextMenuItemWithSchema };\n"],"names":["Wrap","styled","props","React","DSMobileTouchable","PropWrap","Grid","isMulti","Title","span","theme","colors","brand","truncate","Label","neutral","CheckMark","DSCheckmark","DSMobileContextMenuItem","label","title","leftProp","isGroup","singleSelect","isSelected","onClick","value","GroupItem","context","activeValue","someItemSelected","Array","isArray","showLeftAddon","leftAddon","Checkbox","e","onChange","undefined","PropTypes","string","description","isRequired","element","bool","func","number","propTypes","DSMobileContextMenuItemWithSchema","describe"],"mappings":"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"}
|
|
@@ -75,10 +75,10 @@ var StyledContent = /*#__PURE__*/styled.div.withConfig({
|
|
|
75
75
|
});
|
|
76
76
|
var StyledCloseButtonContainer = /*#__PURE__*/styled.div.withConfig({
|
|
77
77
|
componentId: "sc-4jnp92-6"
|
|
78
|
-
})(["display:flex;align-items:flex-start;margin-top:
|
|
78
|
+
})(["display:flex;align-items:flex-start;margin-top:6px;margin-right:6px;"]);
|
|
79
79
|
var StyledCloseButton = /*#__PURE__*/styled(DSButton).withConfig({
|
|
80
80
|
componentId: "sc-4jnp92-7"
|
|
81
|
-
})(["position:relative;&:focus{&:after{display:block;content:' ';position:absolute;top
|
|
81
|
+
})(["position:relative;&:focus{&:after{display:block;content:' ';position:absolute;top:0;left:0;width:100%;height:100%;border:2px solid ", ";border-radius:2px;pointer-events:none;}}"], function (_ref17) {
|
|
82
82
|
var theme = _ref17.theme;
|
|
83
83
|
return theme.colors.brand[700];
|
|
84
84
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../src/MobileBanner/styles.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { toMobile } from '@elliemae/ds-system';\nimport DSButton from '@elliemae/ds-basic/Button';\nimport type { StyledBannerContainerT, StyledContentT, StyledInnerContainerT } from './index.d';\nimport { handleAnimation, handleBorderColor } from './utils/styleHelpers';\n\nexport const StyledInnerContainer = styled.div<StyledInnerContainerT>`\n display: flex;\n min-height: 68px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral['000']};\n border-bottom: 4px solid ${({ type, theme }) => handleBorderColor(type, theme)};\n transform: translateY(${({ isOpen }) => (isOpen ? '0' : '-100%')});\n ${({ isAnimating, isOpen }) => handleAnimation(isAnimating, isOpen)};\n`;\n\nexport const StyledTextContent = styled.div`\n width: 100%;\n`;\n\nexport const StyledTitle = styled.div`\n color: ${({ theme }) => theme.colors.neutral[700]};\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[700])};\n font-weight: ${({ theme }) => theme.fontWeights.semibold};\n margin-bottom: ${({ theme }) => theme.space.xxs};\n @media not all and (min-resolution: 0.001dpcm) {\n @media {\n -webkit-font-smoothing: subpixel-antialiased; // fix safari bold render\n -webkit-text-stroke: 0.4px ${({ theme }) => theme.colors.neutral[700]}; // fix safari bold render\n }\n }\n @media screen and (min--moz-device-pixel-ratio:0) {\n -webkit-font-smoothing: subpixel-antialiased; // fix safari bold render\n -webkit-text-stroke: 0.4px ${({ theme }) => theme.colors.neutral[700]}; // fix safari bold render\n }\n`;\n\nexport const StyledSubTitle = styled.div`\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[600])};\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n`;\n\nexport const StyledIconContainer = styled.div`\n margin-top: 10px;\n margin-right: ${({ theme }) => theme.space.xxs};\n margin-left: ${({ theme }) => theme.space.xs};\n`;\n\nexport const StyledContent = styled.div<StyledContentT>`\n width: 100%;\n display: flex;\n flex-direction: column;\n margin: ${({ theme }) => theme.space.xxs2} 0;\n margin-right: ${({ showCloseButton }) => (!showCloseButton ? '28px' : '0')};\n`;\n\nexport const StyledCloseButtonContainer = styled.div`\n display: flex;\n align-items: flex-start;\n margin-top:
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../src/MobileBanner/styles.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { toMobile } from '@elliemae/ds-system';\nimport DSButton from '@elliemae/ds-basic/Button';\nimport type { StyledBannerContainerT, StyledContentT, StyledInnerContainerT } from './index.d';\nimport { handleAnimation, handleBorderColor } from './utils/styleHelpers';\n\nexport const StyledInnerContainer = styled.div<StyledInnerContainerT>`\n display: flex;\n min-height: 68px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral['000']};\n border-bottom: 4px solid ${({ type, theme }) => handleBorderColor(type, theme)};\n transform: translateY(${({ isOpen }) => (isOpen ? '0' : '-100%')});\n ${({ isAnimating, isOpen }) => handleAnimation(isAnimating, isOpen)};\n`;\n\nexport const StyledTextContent = styled.div`\n width: 100%;\n`;\n\nexport const StyledTitle = styled.div`\n color: ${({ theme }) => theme.colors.neutral[700]};\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[700])};\n font-weight: ${({ theme }) => theme.fontWeights.semibold};\n margin-bottom: ${({ theme }) => theme.space.xxs};\n @media not all and (min-resolution: 0.001dpcm) {\n @media {\n -webkit-font-smoothing: subpixel-antialiased; // fix safari bold render\n -webkit-text-stroke: 0.4px ${({ theme }) => theme.colors.neutral[700]}; // fix safari bold render\n }\n }\n @media screen and (min--moz-device-pixel-ratio: 0) {\n -webkit-font-smoothing: subpixel-antialiased; // fix safari bold render\n -webkit-text-stroke: 0.4px ${({ theme }) => theme.colors.neutral[700]}; // fix safari bold render\n }\n`;\n\nexport const StyledSubTitle = styled.div`\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[600])};\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n`;\n\nexport const StyledIconContainer = styled.div`\n margin-top: 10px;\n margin-right: ${({ theme }) => theme.space.xxs};\n margin-left: ${({ theme }) => theme.space.xs};\n`;\n\nexport const StyledContent = styled.div<StyledContentT>`\n width: 100%;\n display: flex;\n flex-direction: column;\n margin: ${({ theme }) => theme.space.xxs2} 0;\n margin-right: ${({ showCloseButton }) => (!showCloseButton ? '28px' : '0')};\n`;\n\nexport const StyledCloseButtonContainer = styled.div`\n display: flex;\n align-items: flex-start;\n margin-top: 6px;\n margin-right: 6px;\n`;\nexport const StyledCloseButton = styled(DSButton)`\n position: relative;\n &:focus {\n &:after {\n display: block;\n content: ' ';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 2px solid ${({ theme }) => theme.colors.brand[700]};\n border-radius: 2px;\n pointer-events: none;\n }\n }\n`;\n\nexport const StyledActionLink = styled.a`\n text-decoration: none;\n float: right;\n margin-left: ${({ theme }) => theme.space.xs};\n line-height: 1.1;\n font-size: ${({ theme }) => toMobile(theme.fontSizes.title[600])};\n font-weight: ${({ theme }) => theme.fontWeights.regular};\n color: ${({ theme }) => theme.colors.brand[600]};\n`;\n\nexport const StyledBannerContainer = styled.div<StyledBannerContainerT>`\n overflow: hidden;\n height: ${({ isOpen }) => (isOpen ? 'auto' : '0px')};\n ${({ isAnimating, isOpen, height }) => handleAnimation(isAnimating, isOpen, height)};\n`;\n"],"names":["StyledInnerContainer","styled","div","theme","colors","neutral","type","handleBorderColor","isOpen","isAnimating","handleAnimation","StyledTextContent","StyledTitle","toMobile","fontSizes","title","fontWeights","semibold","space","xxs","StyledSubTitle","regular","StyledIconContainer","xs","StyledContent","xxs2","showCloseButton","StyledCloseButtonContainer","StyledCloseButton","DSButton","brand","StyledActionLink","a","StyledBannerContainer","height"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
2
|
import _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';
|
|
3
3
|
import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
|
|
4
|
-
import React, { useState,
|
|
4
|
+
import React, { useState, useMemo, useRef } from 'react';
|
|
5
5
|
import { noop } from 'lodash';
|
|
6
6
|
import { PropTypes, describe } from 'react-desc';
|
|
7
7
|
import styled from 'styled-components';
|
|
@@ -75,18 +75,17 @@ var DSMobileContextMenu = withTheme(function (_ref) {
|
|
|
75
75
|
selectedItems = _useState2[0],
|
|
76
76
|
setSelectedItems = _useState2[1];
|
|
77
77
|
|
|
78
|
+
var trueSelected = useMemo(function () {
|
|
79
|
+
return initSelecteds !== undefined ? initSelecteds : _toConsumableArray(selectedItems);
|
|
80
|
+
}, [initSelecteds, selectedItems]);
|
|
78
81
|
var containerRef = useRef(null);
|
|
79
|
-
useEffect(function () {
|
|
80
|
-
if (typeof initSelecteds !== 'undefined') {
|
|
81
|
-
if (multiple) setSelectedItems(function (prev) {
|
|
82
|
-
return [].concat(_toConsumableArray(prev), _toConsumableArray(initSelecteds));
|
|
83
|
-
});else if (singleSelect) setSelectedItems(initSelecteds);
|
|
84
|
-
}
|
|
85
|
-
}, [initSelecteds, multiple, singleSelect]);
|
|
86
82
|
|
|
87
83
|
var handleChange = function handleChange(value, childProps, event) {
|
|
88
84
|
onChange(value, childProps, event);
|
|
89
|
-
|
|
85
|
+
|
|
86
|
+
if (initSelecteds === undefined) {
|
|
87
|
+
if (multiple) setSelectedItems(_toConsumableArray(value));else if (singleSelect) setSelectedItems(value);
|
|
88
|
+
}
|
|
90
89
|
};
|
|
91
90
|
|
|
92
91
|
var handleApply = function handleApply(e) {
|
|
@@ -128,7 +127,7 @@ var DSMobileContextMenu = withTheme(function (_ref) {
|
|
|
128
127
|
overflow: 'auto'
|
|
129
128
|
}
|
|
130
129
|
}, /*#__PURE__*/React.createElement(Group, {
|
|
131
|
-
activeValue:
|
|
130
|
+
activeValue: trueSelected,
|
|
132
131
|
multiple: multiple,
|
|
133
132
|
onChange: handleChange
|
|
134
133
|
}, React.Children.map(children, function (child, ii) {
|
|
@@ -139,7 +138,7 @@ var DSMobileContextMenu = withTheme(function (_ref) {
|
|
|
139
138
|
onClick = _child$props$onClick === void 0 ? noop : _child$props$onClick;
|
|
140
139
|
var value = ii;
|
|
141
140
|
var isSelected;
|
|
142
|
-
if (singleSelect) isSelected =
|
|
141
|
+
if (singleSelect) isSelected = trueSelected === value;else if (multiple) isSelected = trueSelected.includes(value);
|
|
143
142
|
return /*#__PURE__*/React.cloneElement(child, {
|
|
144
143
|
value: value,
|
|
145
144
|
key: "cm.".concat(ii),
|
|
@@ -149,7 +148,7 @@ var DSMobileContextMenu = withTheme(function (_ref) {
|
|
|
149
148
|
onClick: !isGroup ? function (e) {
|
|
150
149
|
return onClick(e, child.props);
|
|
151
150
|
} : null,
|
|
152
|
-
selectedItems: isGroup ?
|
|
151
|
+
selectedItems: isGroup ? trueSelected : null
|
|
153
152
|
});
|
|
154
153
|
})))), buttonFooter && /*#__PURE__*/React.createElement(Grid, {
|
|
155
154
|
pl: "xs",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileContextMenu.js","sources":["../../../src/MobileContextMenu/MobileContextMenu.tsx"],"sourcesContent":["/* eslint-disable import/no-unresolved */\n/* eslint-disable react/no-array-index-key */\n/* eslint-disable func-names */\n/* eslint-disable max-lines */\nimport React, { useState, useEffect, useRef } from 'react';\nimport { noop } from 'lodash';\nimport { describe, PropTypes } from 'react-desc';\nimport styled from 'styled-components';\nimport { Grid } from '@elliemae/ds-basic/Grid';\nimport { DSBackdrop } from '@elliemae/ds-basic';\nimport { truncate, withTheme } from '@elliemae/ds-system';\nimport Group from '@elliemae/ds-shared/GroupContext/Group';\nimport { DSMobileContextMenuGroup as ContextMenuGroup } from './MobileContextMenuGroup';\n\nconst StyledContainer = styled(Grid)`\n background: ${(props) => props.theme.colors.neutral['000']};\n z-index: ${(props) => props.zIndex};\n width: ${(props) => `calc(100% - ${props.theme.space.xs})`};\n position: fixed;\n bottom: 0;\n left: ${(props) => props.theme.space.xxs};\n max-height: 90vh;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.5), 0 0px 11px 0 rgba(0, 0, 0, 0.5);\n`;\n\nconst StyledTitle = styled(Grid)`\n font-size: 16px;\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n color: ${(props) => props.theme.colors.neutral['000']};\n ${truncate()}\n\n & > span {\n height: 20px;\n width: 20px;\n }\n\n & > span > svg,\n svg:not([fill]) {\n height: 20px;\n width: 20px;\n fill: ${(props) => props.theme.colors.neutral['000']};\n }\n`;\n\nconst HeaderContainer = styled(Grid)`\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: ${(props) => props.theme.colors.brand['600']};\n`;\n\nconst isArr = (prop) => Array.isArray(prop);\n\nconst DSMobileContextMenu = withTheme(\n ({\n open = false,\n title = '',\n multiple = false,\n singleSelect = false,\n onChange = noop,\n onClickOutside = noop,\n children,\n theme,\n backdropZIndex,\n zIndex = 1,\n dataTestid = 'mobile-context-menu',\n buttonFooter = null,\n onApply = noop,\n selecteds: initSelecteds,\n }) => {\n const [selectedItems, setSelectedItems] = useState([]);\n const containerRef = useRef(null);\n\n useEffect(() => {\n if (typeof initSelecteds !== 'undefined') {\n if (multiple) setSelectedItems((prev) => [...prev, ...initSelecteds]);\n else if (singleSelect) setSelectedItems(initSelecteds);\n }\n }, [initSelecteds, multiple, singleSelect]);\n\n const handleChange = (value, childProps, event) => {\n onChange(value, childProps, event);\n if (multiple) setSelectedItems([...value]);\n else if (singleSelect) setSelectedItems(value);\n };\n\n const handleApply = function (e) {\n if (this.onClick) this.onClick(e);\n onApply(e, selectedItems);\n };\n\n const rows = [theme.space.s, 1];\n if (buttonFooter) rows.push('56px');\n\n if (!open) return null;\n\n return (\n <>\n <DSBackdrop\n type=\"cover\"\n zIndex={backdropZIndex}\n onClick={(e) => {\n // PUI-4481 prevent click on elements below backdrop\n e.stopPropagation();\n onClickOutside(e);\n }}\n />\n <StyledContainer zIndex={zIndex} rows={rows} ref={containerRef} data-testid=\"ds-mobile-context-menu\">\n <HeaderContainer justifyContent=\"center\" alignItems=\"center\" pl=\"xs\" pr=\"xs\">\n <StyledTitle alignItems=\"center\" gutter=\"xxs\" cols={Array(isArr(title) ? title.length : 1).fill('auto')}>\n {title}\n </StyledTitle>\n </HeaderContainer>\n <Grid style={{ overflow: 'hidden' }}>\n <Grid style={{ overflow: 'auto' }}>\n <Group activeValue={selectedItems} multiple={multiple} onChange={handleChange}>\n {React.Children.map(children, (child, ii) => {\n const isGroup =\n child.type === (<ContextMenuGroup />).type ||\n child.type?.name === ContextMenuGroup.componentType ||\n child.type === ContextMenuGroup.type;\n const { onClick = noop } = child.props;\n const value = ii;\n let isSelected;\n if (singleSelect) isSelected = selectedItems === value;\n else if (multiple) isSelected = selectedItems.includes(value);\n return React.cloneElement(child, {\n value,\n key: `cm.${ii}`,\n isMulti: multiple,\n singleSelect,\n isSelected,\n onClick: !isGroup ? (e) => onClick(e, child.props) : null,\n selectedItems: isGroup ? selectedItems : null,\n });\n })}\n </Group>\n </Grid>\n </Grid>\n {buttonFooter && (\n <Grid pl=\"xs\" pr=\"xs\" alignItems=\"center\">\n {React.cloneElement(buttonFooter, {\n ...buttonFooter.props,\n containerProps: {\n 'data-testid': `${dataTestid}--btn`,\n },\n buttonType: 'primary',\n size: 'l',\n onClick: handleApply.bind(buttonFooter.props),\n })}\n </Grid>\n )}\n </StyledContainer>\n </>\n );\n },\n);\n\nconst props = {\n /** toggle open the menu */\n open: PropTypes.bool.description('toggle open the menu'),\n /** context menu title */\n title: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.node])),\n ]).description('context menu title'),\n /** change handler for selectable context menu */\n onChange: PropTypes.func.description('change handler for selectable context menu'),\n /** multi select */\n multiple: PropTypes.bool.description('multi select'),\n /** click outside callback handler */\n onClickOutside: PropTypes.func.description('click outside callback handler'),\n /** array of mobile context menu items */\n children: PropTypes.arrayOf(PropTypes.element).description('array of mobile context menu items'),\n /** z index for overlay div */\n backdropZIndex: PropTypes.number.description('z index for overlay div'),\n /** z index for menu container */\n zIndex: PropTypes.number.description('z index for menu container'),\n /** for e2e tests */\n dataTestid: PropTypes.string.description('for e2e tests'),\n /** bottom button */\n buttonFooter: PropTypes.element.description('bottom button'),\n /** callback */\n onApply: PropTypes.func.description('callback'),\n /** selected elements for multi and single select */\n selecteds: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n PropTypes.number,\n ]).description('selected elements for multi and single select'),\n};\n\nDSMobileContextMenu.propTypes = props;\n\nconst DSMobileContextMenuWithSchema = describe(DSMobileContextMenu);\n\nDSMobileContextMenuWithSchema.propTypes = props;\n\nexport { DSMobileContextMenu, DSMobileContextMenuWithSchema };\n"],"names":["StyledContainer","styled","Grid","props","theme","colors","neutral","zIndex","space","xs","xxs","StyledTitle","fontWeights","semibold","truncate","HeaderContainer","brand","isArr","prop","Array","isArray","DSMobileContextMenu","withTheme","open","title","multiple","singleSelect","onChange","noop","onClickOutside","children","backdropZIndex","dataTestid","buttonFooter","onApply","initSelecteds","selecteds","useState","selectedItems","setSelectedItems","containerRef","useRef","useEffect","prev","handleChange","value","childProps","event","handleApply","e","onClick","rows","s","push","stopPropagation","length","fill","overflow","React","Children","map","child","ii","isGroup","type","ContextMenuGroup","name","componentType","isSelected","includes","cloneElement","key","isMulti","containerProps","buttonType","size","bind","PropTypes","bool","description","oneOfType","string","arrayOf","node","func","element","number","propTypes","DSMobileContextMenuWithSchema","describe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MobileContextMenu.js","sources":["../../../src/MobileContextMenu/MobileContextMenu.tsx"],"sourcesContent":["/* eslint-disable import/no-unresolved */\n/* eslint-disable react/no-array-index-key */\n/* eslint-disable func-names */\n/* eslint-disable max-lines */\nimport React, { useState, useRef, useMemo } from 'react';\nimport { noop } from 'lodash';\nimport { describe, PropTypes } from 'react-desc';\nimport styled from 'styled-components';\nimport { Grid } from '@elliemae/ds-basic/Grid';\nimport { DSBackdrop } from '@elliemae/ds-basic';\nimport { truncate, withTheme } from '@elliemae/ds-system';\nimport Group from '@elliemae/ds-shared/GroupContext/Group';\nimport { DSMobileContextMenuGroup as ContextMenuGroup } from './MobileContextMenuGroup';\n\nconst StyledContainer = styled(Grid)`\n background: ${(props) => props.theme.colors.neutral['000']};\n z-index: ${(props) => props.zIndex};\n width: ${(props) => `calc(100% - ${props.theme.space.xs})`};\n position: fixed;\n bottom: 0;\n left: ${(props) => props.theme.space.xxs};\n max-height: 90vh;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.5), 0 0px 11px 0 rgba(0, 0, 0, 0.5);\n`;\n\nconst StyledTitle = styled(Grid)`\n font-size: 16px;\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n color: ${(props) => props.theme.colors.neutral['000']};\n ${truncate()}\n\n & > span {\n height: 20px;\n width: 20px;\n }\n\n & > span > svg,\n svg:not([fill]) {\n height: 20px;\n width: 20px;\n fill: ${(props) => props.theme.colors.neutral['000']};\n }\n`;\n\nconst HeaderContainer = styled(Grid)`\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: ${(props) => props.theme.colors.brand['600']};\n`;\n\nconst isArr = (prop) => Array.isArray(prop);\n\nconst DSMobileContextMenu = withTheme(\n ({\n open = false,\n title = '',\n multiple = false,\n singleSelect = false,\n onChange = noop,\n onClickOutside = noop,\n children,\n theme,\n backdropZIndex,\n zIndex = 1,\n dataTestid = 'mobile-context-menu',\n buttonFooter = null,\n onApply = noop,\n selecteds: initSelecteds,\n }) => {\n const [selectedItems, setSelectedItems] = useState([]);\n const trueSelected = useMemo(\n () => (initSelecteds !== undefined ? initSelecteds : [...selectedItems]),\n [initSelecteds, selectedItems],\n );\n const containerRef = useRef(null);\n const handleChange = (value, childProps, event) => {\n onChange(value, childProps, event);\n if (initSelecteds === undefined) {\n if (multiple) setSelectedItems([...value]);\n else if (singleSelect) setSelectedItems(value);\n }\n };\n\n const handleApply = function (e) {\n if (this.onClick) this.onClick(e);\n onApply(e, selectedItems);\n };\n\n const rows = [theme.space.s, 1];\n if (buttonFooter) rows.push('56px');\n\n if (!open) return null;\n\n return (\n <>\n <DSBackdrop\n type=\"cover\"\n zIndex={backdropZIndex}\n onClick={(e) => {\n // PUI-4481 prevent click on elements below backdrop\n e.stopPropagation();\n onClickOutside(e);\n }}\n />\n <StyledContainer zIndex={zIndex} rows={rows} ref={containerRef} data-testid=\"ds-mobile-context-menu\">\n <HeaderContainer justifyContent=\"center\" alignItems=\"center\" pl=\"xs\" pr=\"xs\">\n <StyledTitle alignItems=\"center\" gutter=\"xxs\" cols={Array(isArr(title) ? title.length : 1).fill('auto')}>\n {title}\n </StyledTitle>\n </HeaderContainer>\n <Grid style={{ overflow: 'hidden' }}>\n <Grid style={{ overflow: 'auto' }}>\n <Group activeValue={trueSelected} multiple={multiple} onChange={handleChange}>\n {React.Children.map(children, (child, ii) => {\n const isGroup =\n child.type === (<ContextMenuGroup />).type ||\n child.type?.name === ContextMenuGroup.componentType ||\n child.type === ContextMenuGroup.type;\n const { onClick = noop } = child.props;\n const value = ii;\n let isSelected;\n if (singleSelect) isSelected = trueSelected === value;\n else if (multiple) isSelected = trueSelected.includes(value);\n return React.cloneElement(child, {\n value,\n key: `cm.${ii}`,\n isMulti: multiple,\n singleSelect,\n isSelected,\n onClick: !isGroup ? (e) => onClick(e, child.props) : null,\n selectedItems: isGroup ? trueSelected : null,\n });\n })}\n </Group>\n </Grid>\n </Grid>\n {buttonFooter && (\n <Grid pl=\"xs\" pr=\"xs\" alignItems=\"center\">\n {React.cloneElement(buttonFooter, {\n ...buttonFooter.props,\n containerProps: {\n 'data-testid': `${dataTestid}--btn`,\n },\n buttonType: 'primary',\n size: 'l',\n onClick: handleApply.bind(buttonFooter.props),\n })}\n </Grid>\n )}\n </StyledContainer>\n </>\n );\n },\n);\n\nconst props = {\n /** toggle open the menu */\n open: PropTypes.bool.description('toggle open the menu'),\n /** context menu title */\n title: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.node])),\n ]).description('context menu title'),\n /** change handler for selectable context menu */\n onChange: PropTypes.func.description('change handler for selectable context menu'),\n /** multi select */\n multiple: PropTypes.bool.description('multi select'),\n /** click outside callback handler */\n onClickOutside: PropTypes.func.description('click outside callback handler'),\n /** array of mobile context menu items */\n children: PropTypes.arrayOf(PropTypes.element).description('array of mobile context menu items'),\n /** z index for overlay div */\n backdropZIndex: PropTypes.number.description('z index for overlay div'),\n /** z index for menu container */\n zIndex: PropTypes.number.description('z index for menu container'),\n /** for e2e tests */\n dataTestid: PropTypes.string.description('for e2e tests'),\n /** bottom button */\n buttonFooter: PropTypes.element.description('bottom button'),\n /** callback */\n onApply: PropTypes.func.description('callback'),\n /** selected elements for multi and single select */\n selecteds: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n PropTypes.number,\n ]).description('selected elements for multi and single select'),\n};\n\nDSMobileContextMenu.propTypes = props;\n\nconst DSMobileContextMenuWithSchema = describe(DSMobileContextMenu);\n\nDSMobileContextMenuWithSchema.propTypes = props;\n\nexport { DSMobileContextMenu, DSMobileContextMenuWithSchema };\n"],"names":["StyledContainer","styled","Grid","props","theme","colors","neutral","zIndex","space","xs","xxs","StyledTitle","fontWeights","semibold","truncate","HeaderContainer","brand","isArr","prop","Array","isArray","DSMobileContextMenu","withTheme","open","title","multiple","singleSelect","onChange","noop","onClickOutside","children","backdropZIndex","dataTestid","buttonFooter","onApply","initSelecteds","selecteds","useState","selectedItems","setSelectedItems","trueSelected","useMemo","undefined","containerRef","useRef","handleChange","value","childProps","event","handleApply","e","onClick","rows","s","push","stopPropagation","length","fill","overflow","React","Children","map","child","ii","isGroup","type","ContextMenuGroup","name","componentType","isSelected","includes","cloneElement","key","isMulti","containerProps","buttonType","size","bind","PropTypes","bool","description","oneOfType","string","arrayOf","node","func","element","number","propTypes","DSMobileContextMenuWithSchema","describe"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileContextMenuItem.js","sources":["../../../src/MobileContextMenu/MobileContextMenuItem.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable import/no-unresolved */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { Grid } from '@elliemae/ds-basic/Grid';\nimport styled from 'styled-components';\nimport { truncate } from '@elliemae/ds-system';\nimport GroupItem from '@elliemae/ds-shared/GroupContext/GroupItem';\n\nimport Checkbox from '@elliemae/ds-basic/form/Checkbox';\nimport DSCheckmark from '@elliemae/ds-icons/Checkmark';\nimport { DSMobileTouchable } from '../MobileTouchable';\n\nconst Wrap = styled((props) => <DSMobileTouchable {...props} />)`\n border-bottom: none;\n`;\n\nconst PropWrap = styled((props) => <Grid {...props} />)`\n ${(props) => {\n if (!props.isMulti) {\n return `\n & > span {\n height: 18px;\n width: 18px;\n }\n\n & > span > svg {\n height: 18px;\n width: 18px;\n }\n `;\n }\n return '';\n }}\n`;\n\nconst Title = styled.span`\n font-size: 16px;\n color: ${(props) => props.theme.colors.brand['600']};\n ${truncate()}\n`;\n\nconst Label = styled.span`\n font-size: 13px;\n color: ${(props) => props.theme.colors.neutral['600']};\n`;\n\nconst CheckMark = styled(DSCheckmark)`\n fill: ${(props) => props.theme.colors.brand['600']};\n`;\ninterface DSMobileContextMenuItemPropsT {\n label: string;\n title: string;\n leftProp: JSX.Element;\n isGroup: boolean;\n isMulti: boolean;\n isSelected: boolean;\n singleSelect: boolean;\n onClick: (e: any) => void;\n value: string;\n}\nconst DSMobileContextMenuItem = ({\n label,\n title,\n leftProp,\n isGroup,\n isMulti,\n singleSelect,\n isSelected,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClick = () => {},\n value,\n}: DSMobileContextMenuItemPropsT): JSX.Element => (\n <GroupItem\n render={(context) => {\n const { activeValue } = context;\n let someItemSelected = activeValue >= 0 && !Array.isArray(activeValue);\n if (isGroup) someItemSelected = typeof activeValue === 'string';\n\n let showLeftAddon = isSelected;\n if (isMulti || !singleSelect) showLeftAddon = true;\n\n let leftAddon = leftProp || null;\n if (isMulti)
|
|
1
|
+
{"version":3,"file":"MobileContextMenuItem.js","sources":["../../../src/MobileContextMenu/MobileContextMenuItem.tsx"],"sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable import/no-unresolved */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { Grid } from '@elliemae/ds-basic/Grid';\nimport styled from 'styled-components';\nimport { truncate } from '@elliemae/ds-system';\nimport GroupItem from '@elliemae/ds-shared/GroupContext/GroupItem';\n\nimport Checkbox from '@elliemae/ds-basic/form/Checkbox';\nimport DSCheckmark from '@elliemae/ds-icons/Checkmark';\nimport { DSMobileTouchable } from '../MobileTouchable';\n\nconst Wrap = styled((props) => <DSMobileTouchable {...props} />)`\n border-bottom: none;\n`;\n\nconst PropWrap = styled((props) => <Grid {...props} />)`\n ${(props) => {\n if (!props.isMulti) {\n return `\n & > span {\n height: 18px;\n width: 18px;\n }\n\n & > span > svg {\n height: 18px;\n width: 18px;\n }\n `;\n }\n return '';\n }}\n`;\n\nconst Title = styled.span`\n font-size: 16px;\n color: ${(props) => props.theme.colors.brand['600']};\n ${truncate()}\n`;\n\nconst Label = styled.span`\n font-size: 13px;\n color: ${(props) => props.theme.colors.neutral['600']};\n`;\n\nconst CheckMark = styled(DSCheckmark)`\n fill: ${(props) => props.theme.colors.brand['600']};\n`;\ninterface DSMobileContextMenuItemPropsT {\n label: string;\n title: string;\n leftProp: JSX.Element;\n isGroup: boolean;\n isMulti: boolean;\n isSelected: boolean;\n singleSelect: boolean;\n onClick: (e: any) => void;\n value: string;\n}\nconst DSMobileContextMenuItem = ({\n label,\n title,\n leftProp,\n isGroup,\n isMulti,\n singleSelect,\n isSelected,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClick = () => {},\n value,\n}: DSMobileContextMenuItemPropsT): JSX.Element => (\n <GroupItem\n render={(context) => {\n const { activeValue } = context;\n let someItemSelected = activeValue >= 0 && !Array.isArray(activeValue);\n if (isGroup) someItemSelected = typeof activeValue === 'string';\n\n let showLeftAddon = isSelected;\n if (isMulti || !singleSelect) showLeftAddon = true;\n\n let leftAddon = leftProp || null;\n if (isMulti) leftAddon = <Checkbox checked={isSelected} data-testid=\"leftAddon-checkbox\" />;\n if (singleSelect) leftAddon = <CheckMark data-testid=\"leftAddon-checkmark\" />;\n\n return (\n <Wrap\n data-testid=\"ds-contextmenu-item\"\n onClick={(e) => {\n if (singleSelect || isMulti) context.onChange(value, e, { value, label, title });\n onClick(e);\n }}\n cols={\n (singleSelect && someItemSelected) || (leftAddon && !singleSelect) || isMulti ? ['40px', 'auto'] : ['auto']\n }\n >\n {((singleSelect && someItemSelected) || isMulti || leftAddon) && (\n <PropWrap data-testid=\"left-addon\" isMulti={isMulti} alignItems=\"center\" justifyContent=\"center\" pl=\"16px\">\n {showLeftAddon && leftAddon}\n </PropWrap>\n )}\n <Grid height=\"44px\" pr=\"xs\" pl={!leftAddon && isGroup ? '24px' : 'xs'}>\n {label && (\n <Grid alignItems=\"center\">\n <Label data-testid=\"contextMenuItem-label\">{label}</Label>\n </Grid>\n )}\n <Grid alignItems={!label ? 'center' : undefined}>\n <Title data-testid=\"contextMenuItem-title\">{title}</Title>\n </Grid>\n </Grid>\n </Wrap>\n );\n }}\n />\n);\n\nconst props = {\n /** label */\n label: PropTypes.string.description('label'),\n /** menu item title */\n title: PropTypes.string.isRequired.description('menu item title'),\n /** */\n leftProp: PropTypes.element.description(''),\n /** multi select */\n isMulti: PropTypes.bool.description('multi select'),\n /** */\n singleSelect: PropTypes.bool.description(''),\n /** */\n isGroup: PropTypes.bool.description(''),\n /** on click handler */\n onClick: PropTypes.func.description('on click handler'),\n /** value for select */\n value: PropTypes.number.description('value for select'),\n /** selected value */\n isSelected: PropTypes.bool.description('selected value'),\n};\n\nDSMobileContextMenuItem.propTypes = props;\n\nconst DSMobileContextMenuItemWithSchema = describe(DSMobileContextMenuItem);\n\nDSMobileContextMenuItemWithSchema.propTypes = props;\n\nexport { DSMobileContextMenuItem, DSMobileContextMenuItemWithSchema };\n"],"names":["Wrap","styled","props","PropWrap","isMulti","Title","span","theme","colors","brand","truncate","Label","neutral","CheckMark","DSCheckmark","DSMobileContextMenuItem","label","title","leftProp","isGroup","singleSelect","isSelected","onClick","value","context","activeValue","someItemSelected","Array","isArray","showLeftAddon","leftAddon","Checkbox","e","onChange","undefined","PropTypes","string","description","isRequired","element","bool","func","number","propTypes","DSMobileContextMenuItemWithSchema","describe"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-mobile",
|
|
3
|
-
"version": "1.54.0-
|
|
3
|
+
"version": "1.54.0-rc.11",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Ellie Mae - Dim Sum - System",
|
|
6
6
|
"main": "cjs/index.js",
|
|
@@ -20,17 +20,24 @@
|
|
|
20
20
|
"directory": "dist"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
+
"@elliemae/ds-basic": "1.54.0-rc.11",
|
|
24
|
+
"@elliemae/ds-devutils": "1.54.0-rc.11",
|
|
25
|
+
"@elliemae/ds-icons": "1.54.0-rc.11",
|
|
26
|
+
"@elliemae/ds-shared": "1.54.0-rc.11",
|
|
27
|
+
"@elliemae/ds-system": "1.54.0-rc.11",
|
|
23
28
|
"polished": "~3.6.7",
|
|
29
|
+
"prop-types": "~15.7.2",
|
|
30
|
+
"react-desc": "^4.1.2",
|
|
24
31
|
"react-window": "~1.8.6",
|
|
25
32
|
"react-window-infinite-loader": "~1.0.5",
|
|
26
33
|
"styled-system": "~5.1.5"
|
|
27
34
|
},
|
|
28
35
|
"devDependencies": {
|
|
29
|
-
"@elliemae/pui-theme": "
|
|
36
|
+
"@elliemae/pui-theme": "2.2.3",
|
|
30
37
|
"styled-components": "~5.3.0"
|
|
31
38
|
},
|
|
32
39
|
"peerDependencies": {
|
|
33
|
-
"@elliemae/pui-theme": "
|
|
40
|
+
"@elliemae/pui-theme": "2.2.3",
|
|
34
41
|
"lodash": "^4.17.20",
|
|
35
42
|
"react": "~17.0.1",
|
|
36
43
|
"react-dom": "^17.0.1",
|