@elliemae/ds-mobile 3.9.1-rc.8 → 3.9.1
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.
|
@@ -85,8 +85,8 @@ const DSMobileContextMenu = (0, import_ds_system2.withTheme)(
|
|
|
85
85
|
onClickOutside = import_lodash.noop,
|
|
86
86
|
children,
|
|
87
87
|
theme,
|
|
88
|
-
backdropZIndex,
|
|
89
|
-
zIndex =
|
|
88
|
+
backdropZIndex = 1e3,
|
|
89
|
+
zIndex = 1001,
|
|
90
90
|
dataTestid = "mobile-context-menu",
|
|
91
91
|
buttonFooter = null,
|
|
92
92
|
onApply = import_lodash.noop,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/MobileContextMenu/MobileContextMenu.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"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 '@elliemae/ds-utilities';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSBackdrop } from '@elliemae/ds-backdrop';\nimport { truncate, withTheme } from '@elliemae/ds-system';\nimport { Group } from '@elliemae/ds-shared';\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 =
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAIA,mBAAiD;AACjD,oBAAqB;AACrB,0BAAoC;AACpC,uBAAuB;AACvB,qBAAqB;AACrB,yBAA2B;AAC3B,IAAAA,oBAAoC;AACpC,uBAAsB;AACtB,oCAA6D;AAE7D,MAAM,sBAAkB,yBAAO,mBAAI;AAAA,gBACnB,CAACC,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA,aACzC,CAACA,WAAUA,OAAM;AAAA,WACnB,CAACA,WAAU,eAAeA,OAAM,MAAM,MAAM;AAAA;AAAA;AAAA,UAG7C,CAACA,WAAUA,OAAM,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvC,MAAM,kBAAc,yBAAO,mBAAI;AAAA;AAAA,iBAEd,CAACA,WAAUA,OAAM,MAAM,YAAY;AAAA,WACzC,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA,QAC7C,4BAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAWD,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAIlD,MAAM,sBAAkB,yBAAO,mBAAI;AAAA;AAAA;AAAA,gBAGnB,CAACA,WAAUA,OAAM,MAAM,OAAO,MAAM;AAAA;AAGpD,MAAM,QAAQ,CAAC,SAAS,MAAM,QAAQ,IAAI;AAE1C,MAAM,0BAAsB;AAAA,EAC1B,CAAC;AAAA,IACC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,eAAe;AAAA,IACf,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,
|
|
4
|
+
"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 '@elliemae/ds-utilities';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSBackdrop } from '@elliemae/ds-backdrop';\nimport { truncate, withTheme } from '@elliemae/ds-system';\nimport { Group } from '@elliemae/ds-shared';\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 = 1000,\n zIndex = 1001,\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;\nDSMobileContextMenu.displayName = 'DSMobileContextMenu';\nconst DSMobileContextMenuWithSchema = describe(DSMobileContextMenu);\n\nDSMobileContextMenuWithSchema.propTypes = props;\n\nexport { DSMobileContextMenu, DSMobileContextMenuWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_ds_system", "props", "React", "ContextMenuGroup"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/MobileContextMenu/MobileContextMenu.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* 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 '@elliemae/ds-utilities';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSBackdrop } from '@elliemae/ds-backdrop';\nimport { truncate, withTheme } from '@elliemae/ds-system';\nimport { Group } from '@elliemae/ds-shared';\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 =
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAvB;AAIA,OAAOA,UAAS,UAAU,QAAQ,eAAe;AACjD,SAAS,YAAY;AACrB,SAAS,UAAU,iBAAiB;AACpC,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,UAAU,iBAAiB;AACpC,SAAS,aAAa;AACtB,SAAS,4BAA4B,wBAAwB;AAE7D,MAAM,kBAAkB,OAAO,IAAI;AAAA,gBACnB,CAACC,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA,aACzC,CAACA,WAAUA,OAAM;AAAA,WACnB,CAACA,WAAU,eAAeA,OAAM,MAAM,MAAM;AAAA;AAAA;AAAA,UAG7C,CAACA,WAAUA,OAAM,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvC,MAAM,cAAc,OAAO,IAAI;AAAA;AAAA,iBAEd,CAACA,WAAUA,OAAM,MAAM,YAAY;AAAA,WACzC,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA,IAC7C,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAWD,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAIlD,MAAM,kBAAkB,OAAO,IAAI;AAAA;AAAA;AAAA,gBAGnB,CAACA,WAAUA,OAAM,MAAM,OAAO,MAAM;AAAA;AAGpD,MAAM,QAAQ,CAAC,SAAS,MAAM,QAAQ,IAAI;AAE1C,MAAM,sBAAsB;AAAA,EAC1B,CAAC;AAAA,IACC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,eAAe;AAAA,IACf,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* 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 '@elliemae/ds-utilities';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSBackdrop } from '@elliemae/ds-backdrop';\nimport { truncate, withTheme } from '@elliemae/ds-system';\nimport { Group } from '@elliemae/ds-shared';\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 = 1000,\n zIndex = 1001,\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;\nDSMobileContextMenu.displayName = 'DSMobileContextMenu';\nconst DSMobileContextMenuWithSchema = describe(DSMobileContextMenu);\n\nDSMobileContextMenuWithSchema.propTypes = props;\n\nexport { DSMobileContextMenu, DSMobileContextMenuWithSchema };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React", "props"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-mobile",
|
|
3
|
-
"version": "3.9.1
|
|
3
|
+
"version": "3.9.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - System",
|
|
6
6
|
"files": [
|
|
@@ -435,21 +435,21 @@
|
|
|
435
435
|
"typeSafety": false
|
|
436
436
|
},
|
|
437
437
|
"dependencies": {
|
|
438
|
-
"@elliemae/ds-accordion": "3.9.1
|
|
439
|
-
"@elliemae/ds-backdrop": "3.9.1
|
|
440
|
-
"@elliemae/ds-button": "3.9.1
|
|
441
|
-
"@elliemae/ds-circular-progress-indicator": "3.9.1
|
|
442
|
-
"@elliemae/ds-form": "3.9.1
|
|
443
|
-
"@elliemae/ds-form-checkbox": "3.9.1
|
|
444
|
-
"@elliemae/ds-grid": "3.9.1
|
|
445
|
-
"@elliemae/ds-icon": "3.9.1
|
|
446
|
-
"@elliemae/ds-icons": "3.9.1
|
|
447
|
-
"@elliemae/ds-indeterminate-progress-indicator": "3.9.1
|
|
448
|
-
"@elliemae/ds-shared": "3.9.1
|
|
449
|
-
"@elliemae/ds-system": "3.9.1
|
|
450
|
-
"@elliemae/ds-tabs": "3.9.1
|
|
451
|
-
"@elliemae/ds-truncated-expandable-text": "3.9.1
|
|
452
|
-
"@elliemae/ds-utilities": "3.9.1
|
|
438
|
+
"@elliemae/ds-accordion": "3.9.1",
|
|
439
|
+
"@elliemae/ds-backdrop": "3.9.1",
|
|
440
|
+
"@elliemae/ds-button": "3.9.1",
|
|
441
|
+
"@elliemae/ds-circular-progress-indicator": "3.9.1",
|
|
442
|
+
"@elliemae/ds-form": "3.9.1",
|
|
443
|
+
"@elliemae/ds-form-checkbox": "3.9.1",
|
|
444
|
+
"@elliemae/ds-grid": "3.9.1",
|
|
445
|
+
"@elliemae/ds-icon": "3.9.1",
|
|
446
|
+
"@elliemae/ds-icons": "3.9.1",
|
|
447
|
+
"@elliemae/ds-indeterminate-progress-indicator": "3.9.1",
|
|
448
|
+
"@elliemae/ds-shared": "3.9.1",
|
|
449
|
+
"@elliemae/ds-system": "3.9.1",
|
|
450
|
+
"@elliemae/ds-tabs": "3.9.1",
|
|
451
|
+
"@elliemae/ds-truncated-expandable-text": "3.9.1",
|
|
452
|
+
"@elliemae/ds-utilities": "3.9.1",
|
|
453
453
|
"polished": "~3.6.7",
|
|
454
454
|
"prop-types": "~15.8.1",
|
|
455
455
|
"react-window": "~1.8.7",
|
|
@@ -474,7 +474,7 @@
|
|
|
474
474
|
"scripts": {
|
|
475
475
|
"test": "node ../../scripts/testing/test.mjs",
|
|
476
476
|
"lint": "node ../../scripts/lint.mjs",
|
|
477
|
-
"dts": "exit 0",
|
|
477
|
+
"dts": "exit 0 | echo",
|
|
478
478
|
"build": "cross-env NODE_ENV=production node ../../scripts/build/build.mjs",
|
|
479
479
|
"checkDeps": "npx -yes ../ds-codemods check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\"",
|
|
480
480
|
"dev": "cross-env NODE_ENV=development node ../../scripts/build/build.mjs --watch"
|