@elliemae/ds-mobile 3.40.0-rc.2 → 3.40.0

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.
@@ -93,7 +93,7 @@ const DSMobileContextMenu = (0, import_ds_system.withTheme)(
93
93
  backdropZIndex = 1e3,
94
94
  zIndex = 1001,
95
95
  dataTestid = "mobile-context-menu",
96
- buttonFooter = null,
96
+ buttonFooter: ButtonFooter = null,
97
97
  onApply = import_lodash.noop,
98
98
  selecteds: initSelecteds,
99
99
  onKeyDown
@@ -111,12 +111,22 @@ const DSMobileContextMenu = (0, import_ds_system.withTheme)(
111
111
  else if (singleSelect) setSelectedItems(value);
112
112
  }
113
113
  };
114
- const handleApply = function(e) {
115
- if (this.onClick) this.onClick(e);
114
+ const handleApply = (e) => {
115
+ if (ButtonFooter?.props?.onClick) ButtonFooter?.props?.onClick?.(e);
116
116
  onApply(e, selectedItems);
117
117
  };
118
118
  const rows = [theme.space.s, 1];
119
- if (buttonFooter) rows.push("56px");
119
+ const footerProps = {
120
+ containerProps: {
121
+ "data-testid": `${dataTestid}--btn`
122
+ },
123
+ buttonType: "primary",
124
+ size: "l",
125
+ // keeping the binding for legacy code just in case, I have no idea what the intent was here,
126
+ // composition based render-function will have no need for the binding, so only doing the binding for the React.cloneElement scenario
127
+ onClick: (ButtonFooter?.props ?? false) === false ? handleApply : handleApply.bind(ButtonFooter.props)
128
+ };
129
+ if (ButtonFooter) rows.push("56px");
120
130
  if (!open) return null;
121
131
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
122
132
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -149,6 +159,7 @@ const DSMobileContextMenu = (0, import_ds_system.withTheme)(
149
159
  else if (multiple) isSelected = trueSelected.includes(value);
150
160
  return import_react.default.cloneElement(child, {
151
161
  value,
162
+ // eslint-disable-next-line react/no-array-index-key
152
163
  key: `cm.${ii}`,
153
164
  isMulti: multiple,
154
165
  singleSelect,
@@ -157,15 +168,7 @@ const DSMobileContextMenu = (0, import_ds_system.withTheme)(
157
168
  selectedItems: isGroup ? trueSelected : null
158
169
  });
159
170
  }) }) }) }),
160
- buttonFooter && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_grid.Grid, { pl: "xs", pr: "xs", alignItems: "center", children: import_react.default.cloneElement(buttonFooter, {
161
- ...buttonFooter.props,
162
- containerProps: {
163
- "data-testid": `${dataTestid}--btn`
164
- },
165
- buttonType: "primary",
166
- size: "l",
167
- onClick: handleApply.bind(buttonFooter.props)
168
- }) })
171
+ ButtonFooter ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_grid.Grid, { pl: "xs", pr: "xs", alignItems: "center", children: import_react.default.isValidElement(ButtonFooter) ? import_react.default.cloneElement(ButtonFooter, footerProps) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ButtonFooter, { ...footerProps }) }) : null
169
172
  ]
170
173
  }
171
174
  )
@@ -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-props-helpers';\nimport { styled, truncate, withTheme } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSBackdrop } from '@elliemae/ds-backdrop';\nimport { Group } from '@elliemae/ds-shared';\nimport { DSMobileContextMenuGroup as ContextMenuGroup } from './MobileContextMenuGroup.js';\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:\n 0 0px 24px 0 rgba(0, 0, 0, 0.5),\n 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 onKeyDown,\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\n zIndex={zIndex}\n rows={rows}\n innerRef={containerRef}\n data-testid=\"ds-mobile-context-menu\"\n onKeyDown={onKeyDown}\n >\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 onKeyDown: PropTypes.func.description('onKeyDown'),\n};\n\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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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-unsafe-argument, max-params */\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */\n/* eslint-disable max-lines, complexity, @typescript-eslint/no-unsafe-call */\n/* eslint-disable no-unused-vars, @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment */\n/* tslint:disable */\n// @ts-nocheck\n// What's with all the above disables?\n// this is what a legacy 7 year old codebase looks like.\n\nimport React, { useState, useRef, useMemo } from 'react';\nimport { noop } from 'lodash';\nimport { describe, PropTypes } from '@elliemae/ds-props-helpers';\nimport { styled, truncate, withTheme } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSBackdrop } from '@elliemae/ds-backdrop';\nimport { Group } from '@elliemae/ds-shared';\nimport { DSMobileContextMenuGroup as ContextMenuGroup } from './MobileContextMenuGroup.js';\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:\n 0 0px 24px 0 rgba(0, 0, 0, 0.5),\n 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: ButtonFooter = null,\n onApply = noop,\n selecteds: initSelecteds,\n onKeyDown,\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 // this function is a mess, it is using \"this\" and invoking the onClick binded,\n // it was somehow working based on handleApply.bind(ButtonFooter.props)\n // which is arguably black magic\n // Converted to arrow function and converted \"this\" to ButtonFooter?.props\n const handleApply = (e) => {\n if (ButtonFooter?.props?.onClick) ButtonFooter?.props?.onClick?.(e);\n onApply(e, selectedItems);\n };\n\n const rows = [theme.space.s, 1];\n\n const footerProps = {\n containerProps: {\n 'data-testid': `${dataTestid}--btn`,\n },\n buttonType: 'primary',\n size: 'l',\n // keeping the binding for legacy code just in case, I have no idea what the intent was here,\n // composition based render-function will have no need for the binding, so only doing the binding for the React.cloneElement scenario\n onClick: (ButtonFooter?.props ?? false) === false ? handleApply : handleApply.bind(ButtonFooter.props),\n };\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\n zIndex={zIndex}\n rows={rows}\n innerRef={containerRef}\n data-testid=\"ds-mobile-context-menu\"\n onKeyDown={onKeyDown}\n >\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 // eslint-disable-next-line react/no-array-index-key\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.isValidElement(ButtonFooter) ? (\n React.cloneElement(ButtonFooter, footerProps)\n ) : (\n <ButtonFooter {...footerProps} />\n )}\n </Grid>\n ) : null}\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 onKeyDown: PropTypes.func.description('onKeyDown'),\n};\n\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADuHjB;AA7GN,mBAAiD;AACjD,oBAAqB;AACrB,8BAAoC;AACpC,uBAA4C;AAC5C,qBAAqB;AACrB,yBAA2B;AAC3B,uBAAsB;AACtB,oCAA6D;AAE7D,MAAM,sBAAkB,yBAAO,mBAAI;AAAA,gBACnB,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA,aAC/C,CAACA,WAAUA,OAAM,MAAM;AAAA,WACzB,CAACA,WAAU,eAAeA,OAAM,MAAM,MAAM,EAAE,GAAG;AAAA;AAAA;AAAA,UAGlD,CAACA,WAAUA,OAAM,MAAM,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS1C,MAAM,kBAAc,yBAAO,mBAAI;AAAA;AAAA,iBAEd,CAACA,WAAUA,OAAM,MAAM,YAAY,QAAQ;AAAA,WACjD,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA,QACnD,2BAAS,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAWF,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA;AAAA;AAIxD,MAAM,sBAAkB,yBAAO,mBAAI;AAAA;AAAA;AAAA,gBAGnB,CAACA,WAAUA,OAAM,MAAM,OAAO,MAAM,KAAK,CAAC;AAAA;AAG1D,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,iBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,aAAa;AAAA,IACb,cAAc,eAAe;AAAA,IAC7B,UAAU;AAAA,IACV,WAAW;AAAA,IACX;AAAA,EACF,MAAM;AACJ,UAAM,CAAC,eAAe,gBAAgB,QAAI,uBAAS,CAAC,CAAC;AACrD,UAAM,mBAAe;AAAA,MACnB,MAAO,kBAAkB,SAAY,gBAAgB,CAAC,GAAG,aAAa;AAAA,MACtE,CAAC,eAAe,aAAa;AAAA,IAC/B;AACA,UAAM,mBAAe,qBAAO,IAAI;AAChC,UAAM,eAAe,CAAC,OAAO,YAAY,UAAU;AACjD,eAAS,OAAO,YAAY,KAAK;AACjC,UAAI,kBAAkB,QAAW;AAC/B,YAAI,SAAU,kBAAiB,CAAC,GAAG,KAAK,CAAC;AAAA,iBAChC,aAAc,kBAAiB,KAAK;AAAA,MAC/C;AAAA,IACF;AAMA,UAAM,cAAc,CAAC,MAAM;AACzB,UAAI,cAAc,OAAO,QAAS,eAAc,OAAO,UAAU,CAAC;AAClE,cAAQ,GAAG,aAAa;AAAA,IAC1B;AAEA,UAAM,OAAO,CAAC,MAAM,MAAM,GAAG,CAAC;AAE9B,UAAM,cAAc;AAAA,MAClB,gBAAgB;AAAA,QACd,eAAe,GAAG,UAAU;AAAA,MAC9B;AAAA,MACA,YAAY;AAAA,MACZ,MAAM;AAAA;AAAA;AAAA,MAGN,UAAU,cAAc,SAAS,WAAW,QAAQ,cAAc,YAAY,KAAK,aAAa,KAAK;AAAA,IACvG;AACA,QAAI,aAAc,MAAK,KAAK,MAAM;AAElC,QAAI,CAAC,KAAM,QAAO;AAElB,WACE,4EACE;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,QAAQ;AAAA,UACR,SAAS,CAAC,MAAM;AAEd,cAAE,gBAAgB;AAClB,2BAAe,CAAC;AAAA,UAClB;AAAA;AAAA,MACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,UAAU;AAAA,UACV,eAAY;AAAA,UACZ;AAAA,UAEA;AAAA,wDAAC,mBAAgB,gBAAe,UAAS,YAAW,UAAS,IAAG,MAAK,IAAG,MACtE,sDAAC,eAAY,YAAW,UAAS,QAAO,OAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,SAAS,CAAC,EAAE,KAAK,MAAM,GACnG,iBACH,GACF;AAAA,YACA,4CAAC,uBAAK,OAAO,EAAE,UAAU,SAAS,GAChC,sDAAC,uBAAK,OAAO,EAAE,UAAU,OAAO,GAC9B,sDAAC,0BAAM,aAAa,cAAc,UAAoB,UAAU,cAC7D,uBAAAC,QAAM,SAAS,IAAI,UAAU,CAAC,OAAO,OAAO;AAC3C,oBAAM,UACJ,MAAM,UAAU,4CAAC,8BAAAC,0BAAA,EAAiB,GAAI,QACtC,MAAM,MAAM,SAAS,8BAAAA,yBAAiB,iBACtC,MAAM,SAAS,8BAAAA,yBAAiB;AAClC,oBAAM,EAAE,UAAU,mBAAK,IAAI,MAAM;AACjC,oBAAM,QAAQ;AACd,kBAAI;AACJ,kBAAI,aAAc,cAAa,iBAAiB;AAAA,uBACvC,SAAU,cAAa,aAAa,SAAS,KAAK;AAC3D,qBAAO,aAAAD,QAAM,aAAa,OAAO;AAAA,gBAC/B;AAAA;AAAA,gBAEA,KAAK,MAAM,EAAE;AAAA,gBACb,SAAS;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA,SAAS,CAAC,UAAU,CAAC,MAAM,QAAQ,GAAG,MAAM,KAAK,IAAI;AAAA,gBACrD,eAAe,UAAU,eAAe;AAAA,cAC1C,CAAC;AAAA,YACH,CAAC,GACH,GACF,GACF;AAAA,YACC,eACC,4CAAC,uBAAK,IAAG,MAAK,IAAG,MAAK,YAAW,UAC9B,uBAAAA,QAAM,eAAe,YAAY,IAChC,aAAAA,QAAM,aAAa,cAAc,WAAW,IAE5C,4CAAC,gBAAc,GAAG,aAAa,GAEnC,IACE;AAAA;AAAA;AAAA,MACN;AAAA,OACF;AAAA,EAEJ;AACF;AAEA,MAAM,QAAQ;AAAA;AAAA,EAEZ,MAAM,kCAAU,KAAK,YAAY,sBAAsB;AAAA;AAAA,EAEvD,OAAO,kCAAU,UAAU;AAAA,IACzB,kCAAU;AAAA,IACV,kCAAU,QAAQ,kCAAU,UAAU,CAAC,kCAAU,QAAQ,kCAAU,IAAI,CAAC,CAAC;AAAA,EAC3E,CAAC,EAAE,YAAY,oBAAoB;AAAA;AAAA,EAEnC,UAAU,kCAAU,KAAK,YAAY,4CAA4C;AAAA;AAAA,EAEjF,UAAU,kCAAU,KAAK,YAAY,cAAc;AAAA;AAAA,EAEnD,gBAAgB,kCAAU,KAAK,YAAY,gCAAgC;AAAA;AAAA,EAE3E,UAAU,kCAAU,QAAQ,kCAAU,OAAO,EAAE,YAAY,oCAAoC;AAAA;AAAA,EAE/F,gBAAgB,kCAAU,OAAO,YAAY,yBAAyB;AAAA;AAAA,EAEtE,QAAQ,kCAAU,OAAO,YAAY,4BAA4B;AAAA;AAAA,EAEjE,YAAY,kCAAU,OAAO,YAAY,eAAe;AAAA;AAAA,EAExD,cAAc,kCAAU,QAAQ,YAAY,eAAe;AAAA;AAAA,EAE3D,SAAS,kCAAU,KAAK,YAAY,UAAU;AAAA;AAAA,EAE9C,WAAW,kCAAU,UAAU;AAAA,IAC7B,kCAAU,QAAQ,kCAAU,UAAU,CAAC,kCAAU,QAAQ,kCAAU,MAAM,CAAC,CAAC;AAAA,IAC3E,kCAAU;AAAA,EACZ,CAAC,EAAE,YAAY,+CAA+C;AAAA,EAC9D,WAAW,kCAAU,KAAK,YAAY,WAAW;AACnD;AAEA,oBAAoB,cAAc;AAClC,MAAM,oCAAgC,kCAAS,mBAAmB;AAElE,8BAA8B,YAAY;",
6
6
  "names": ["props", "React", "ContextMenuGroup"]
7
7
  }
@@ -59,7 +59,7 @@ const DSMobileContextMenu = withTheme(
59
59
  backdropZIndex = 1e3,
60
60
  zIndex = 1001,
61
61
  dataTestid = "mobile-context-menu",
62
- buttonFooter = null,
62
+ buttonFooter: ButtonFooter = null,
63
63
  onApply = noop,
64
64
  selecteds: initSelecteds,
65
65
  onKeyDown
@@ -77,12 +77,22 @@ const DSMobileContextMenu = withTheme(
77
77
  else if (singleSelect) setSelectedItems(value);
78
78
  }
79
79
  };
80
- const handleApply = function(e) {
81
- if (this.onClick) this.onClick(e);
80
+ const handleApply = (e) => {
81
+ if (ButtonFooter?.props?.onClick) ButtonFooter?.props?.onClick?.(e);
82
82
  onApply(e, selectedItems);
83
83
  };
84
84
  const rows = [theme.space.s, 1];
85
- if (buttonFooter) rows.push("56px");
85
+ const footerProps = {
86
+ containerProps: {
87
+ "data-testid": `${dataTestid}--btn`
88
+ },
89
+ buttonType: "primary",
90
+ size: "l",
91
+ // keeping the binding for legacy code just in case, I have no idea what the intent was here,
92
+ // composition based render-function will have no need for the binding, so only doing the binding for the React.cloneElement scenario
93
+ onClick: (ButtonFooter?.props ?? false) === false ? handleApply : handleApply.bind(ButtonFooter.props)
94
+ };
95
+ if (ButtonFooter) rows.push("56px");
86
96
  if (!open) return null;
87
97
  return /* @__PURE__ */ jsxs(Fragment, { children: [
88
98
  /* @__PURE__ */ jsx(
@@ -115,6 +125,7 @@ const DSMobileContextMenu = withTheme(
115
125
  else if (multiple) isSelected = trueSelected.includes(value);
116
126
  return React2.cloneElement(child, {
117
127
  value,
128
+ // eslint-disable-next-line react/no-array-index-key
118
129
  key: `cm.${ii}`,
119
130
  isMulti: multiple,
120
131
  singleSelect,
@@ -123,15 +134,7 @@ const DSMobileContextMenu = withTheme(
123
134
  selectedItems: isGroup ? trueSelected : null
124
135
  });
125
136
  }) }) }) }),
126
- buttonFooter && /* @__PURE__ */ jsx(Grid, { pl: "xs", pr: "xs", alignItems: "center", children: React2.cloneElement(buttonFooter, {
127
- ...buttonFooter.props,
128
- containerProps: {
129
- "data-testid": `${dataTestid}--btn`
130
- },
131
- buttonType: "primary",
132
- size: "l",
133
- onClick: handleApply.bind(buttonFooter.props)
134
- }) })
137
+ ButtonFooter ? /* @__PURE__ */ jsx(Grid, { pl: "xs", pr: "xs", alignItems: "center", children: React2.isValidElement(ButtonFooter) ? React2.cloneElement(ButtonFooter, footerProps) : /* @__PURE__ */ jsx(ButtonFooter, { ...footerProps }) }) : null
135
138
  ]
136
139
  }
137
140
  )
@@ -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-props-helpers';\nimport { styled, truncate, withTheme } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSBackdrop } from '@elliemae/ds-backdrop';\nimport { Group } from '@elliemae/ds-shared';\nimport { DSMobileContextMenuGroup as ContextMenuGroup } from './MobileContextMenuGroup.js';\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:\n 0 0px 24px 0 rgba(0, 0, 0, 0.5),\n 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 onKeyDown,\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\n zIndex={zIndex}\n rows={rows}\n innerRef={containerRef}\n data-testid=\"ds-mobile-context-menu\"\n onKeyDown={onKeyDown}\n >\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 onKeyDown: PropTypes.func.description('onKeyDown'),\n};\n\nDSMobileContextMenu.displayName = 'DSMobileContextMenu';\nconst DSMobileContextMenuWithSchema = describe(DSMobileContextMenu);\n\nDSMobileContextMenuWithSchema.propTypes = props;\n\nexport { DSMobileContextMenu, DSMobileContextMenuWithSchema };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable @typescript-eslint/no-unsafe-argument, max-params */\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */\n/* eslint-disable max-lines, complexity, @typescript-eslint/no-unsafe-call */\n/* eslint-disable no-unused-vars, @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-assignment */\n/* tslint:disable */\n// @ts-nocheck\n// What's with all the above disables?\n// this is what a legacy 7 year old codebase looks like.\n\nimport React, { useState, useRef, useMemo } from 'react';\nimport { noop } from 'lodash';\nimport { describe, PropTypes } from '@elliemae/ds-props-helpers';\nimport { styled, truncate, withTheme } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSBackdrop } from '@elliemae/ds-backdrop';\nimport { Group } from '@elliemae/ds-shared';\nimport { DSMobileContextMenuGroup as ContextMenuGroup } from './MobileContextMenuGroup.js';\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:\n 0 0px 24px 0 rgba(0, 0, 0, 0.5),\n 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: ButtonFooter = null,\n onApply = noop,\n selecteds: initSelecteds,\n onKeyDown,\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 // this function is a mess, it is using \"this\" and invoking the onClick binded,\n // it was somehow working based on handleApply.bind(ButtonFooter.props)\n // which is arguably black magic\n // Converted to arrow function and converted \"this\" to ButtonFooter?.props\n const handleApply = (e) => {\n if (ButtonFooter?.props?.onClick) ButtonFooter?.props?.onClick?.(e);\n onApply(e, selectedItems);\n };\n\n const rows = [theme.space.s, 1];\n\n const footerProps = {\n containerProps: {\n 'data-testid': `${dataTestid}--btn`,\n },\n buttonType: 'primary',\n size: 'l',\n // keeping the binding for legacy code just in case, I have no idea what the intent was here,\n // composition based render-function will have no need for the binding, so only doing the binding for the React.cloneElement scenario\n onClick: (ButtonFooter?.props ?? false) === false ? handleApply : handleApply.bind(ButtonFooter.props),\n };\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\n zIndex={zIndex}\n rows={rows}\n innerRef={containerRef}\n data-testid=\"ds-mobile-context-menu\"\n onKeyDown={onKeyDown}\n >\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 // eslint-disable-next-line react/no-array-index-key\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.isValidElement(ButtonFooter) ? (\n React.cloneElement(ButtonFooter, footerProps)\n ) : (\n <ButtonFooter {...footerProps} />\n )}\n </Grid>\n ) : null}\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 onKeyDown: PropTypes.func.description('onKeyDown'),\n};\n\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
  }
@@ -8,12 +8,12 @@ declare const DSMobileSelectList: React.ForwardRefExoticComponent<{
8
8
  zIndex?: number | undefined;
9
9
  header?: null | undefined;
10
10
  dataTestid?: string | undefined;
11
- buttonFooter?: null | undefined;
12
- onApply?: ((...args: any[]) => void) | undefined;
13
- selecteds?: never[] | undefined;
14
11
  useSearch?: boolean | null | undefined;
15
12
  onSearch?: ((...args: any[]) => void) | undefined;
13
+ buttonFooter?: null | undefined;
16
14
  ButtonFooter?: ((...args: any[]) => any) | null | undefined;
15
+ onApply?: ((...args: any[]) => void) | undefined;
16
+ selecteds?: never[] | undefined;
17
17
  } & {
18
18
  theme?: import("styled-components").DefaultTheme | undefined;
19
19
  }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-mobile",
3
- "version": "3.40.0-rc.2",
3
+ "version": "3.40.0",
4
4
  "license": "MIT",
5
5
  "description": "ICE MT - Dimsum - System",
6
6
  "files": [
@@ -44,29 +44,29 @@
44
44
  "prop-types": "~15.8.1",
45
45
  "react-window": "~1.8.8",
46
46
  "react-window-infinite-loader": "~1.0.8",
47
- "@elliemae/ds-accordion": "3.40.0-rc.2",
48
- "@elliemae/ds-backdrop": "3.40.0-rc.2",
49
- "@elliemae/ds-button-v2": "3.40.0-rc.2",
50
- "@elliemae/ds-circular-progress-indicator": "3.40.0-rc.2",
51
- "@elliemae/ds-form": "3.40.0-rc.2",
52
- "@elliemae/ds-form-checkbox": "3.40.0-rc.2",
53
- "@elliemae/ds-button": "3.40.0-rc.2",
54
- "@elliemae/ds-grid": "3.40.0-rc.2",
55
- "@elliemae/ds-icon": "3.40.0-rc.2",
56
- "@elliemae/ds-icons": "3.40.0-rc.2",
57
- "@elliemae/ds-indeterminate-progress-indicator": "3.40.0-rc.2",
58
- "@elliemae/ds-props-helpers": "3.40.0-rc.2",
59
- "@elliemae/ds-system": "3.40.0-rc.2",
60
- "@elliemae/ds-tabs": "3.40.0-rc.2",
61
- "@elliemae/ds-shared": "3.40.0-rc.2",
62
- "@elliemae/ds-truncated-expandable-text": "3.40.0-rc.2"
47
+ "@elliemae/ds-accordion": "3.40.0",
48
+ "@elliemae/ds-backdrop": "3.40.0",
49
+ "@elliemae/ds-button": "3.40.0",
50
+ "@elliemae/ds-button-v2": "3.40.0",
51
+ "@elliemae/ds-circular-progress-indicator": "3.40.0",
52
+ "@elliemae/ds-form": "3.40.0",
53
+ "@elliemae/ds-form-checkbox": "3.40.0",
54
+ "@elliemae/ds-grid": "3.40.0",
55
+ "@elliemae/ds-icon": "3.40.0",
56
+ "@elliemae/ds-icons": "3.40.0",
57
+ "@elliemae/ds-indeterminate-progress-indicator": "3.40.0",
58
+ "@elliemae/ds-props-helpers": "3.40.0",
59
+ "@elliemae/ds-shared": "3.40.0",
60
+ "@elliemae/ds-system": "3.40.0",
61
+ "@elliemae/ds-tabs": "3.40.0",
62
+ "@elliemae/ds-truncated-expandable-text": "3.40.0"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@elliemae/pui-cli": "9.0.0-next.50",
66
66
  "@elliemae/pui-theme": "~2.9.3",
67
67
  "styled-components": "~5.3.9",
68
68
  "styled-system": "~5.1.5",
69
- "@elliemae/ds-monorepo-devops": "3.40.0-rc.2"
69
+ "@elliemae/ds-monorepo-devops": "3.40.0"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "@elliemae/pui-theme": "~2.9.3",