box-ui-elements 16.1.0-beta.46 → 16.1.0-beta.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/features/content-explorer/item-list/ItemList.js +5 -2
- package/es/features/content-explorer/item-list/ItemList.js.flow +5 -2
- package/es/features/content-explorer/item-list/ItemList.js.map +1 -1
- package/package.json +1 -1
- package/src/features/content-explorer/item-list/ItemList.js +5 -2
- package/src/features/content-explorer/item-list/__tests__/ItemList.test.js +28 -2
|
@@ -227,6 +227,11 @@ var ItemList = function ItemList(_ref2) {
|
|
|
227
227
|
};
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
+
if (!noItemsRenderer || items.length > 0) {
|
|
231
|
+
tableProps.headerHeight = headerHeight;
|
|
232
|
+
tableProps.headerRowRenderer = headerRenderer;
|
|
233
|
+
}
|
|
234
|
+
|
|
230
235
|
return React.createElement("div", {
|
|
231
236
|
className: classNames('content-explorer-item-list table', className, {
|
|
232
237
|
'bdl-ContentExplorerItemList--responsive': isResponsive
|
|
@@ -236,8 +241,6 @@ var ItemList = function ItemList(_ref2) {
|
|
|
236
241
|
headerClassName: "table-header-item",
|
|
237
242
|
width: width,
|
|
238
243
|
height: height,
|
|
239
|
-
headerHeight: headerHeight,
|
|
240
|
-
headerRowRenderer: headerRenderer,
|
|
241
244
|
rowHeight: rowHeight,
|
|
242
245
|
rowCount: items.length,
|
|
243
246
|
onRowClick: onItemClick,
|
|
@@ -210,6 +210,11 @@ const ItemList = ({
|
|
|
210
210
|
};
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
+
if (!noItemsRenderer || items.length > 0) {
|
|
214
|
+
tableProps.headerHeight = headerHeight;
|
|
215
|
+
tableProps.headerRowRenderer = headerRenderer;
|
|
216
|
+
}
|
|
217
|
+
|
|
213
218
|
return (
|
|
214
219
|
<div
|
|
215
220
|
className={classNames('content-explorer-item-list table', className, {
|
|
@@ -221,8 +226,6 @@ const ItemList = ({
|
|
|
221
226
|
headerClassName="table-header-item"
|
|
222
227
|
width={width}
|
|
223
228
|
height={height}
|
|
224
|
-
headerHeight={headerHeight}
|
|
225
|
-
headerRowRenderer={headerRenderer}
|
|
226
229
|
rowHeight={rowHeight}
|
|
227
230
|
rowCount={items.length}
|
|
228
231
|
onRowClick={onItemClick}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemList.js"],"names":["PropTypes","React","classNames","getProp","AutoSizer","Column","Table","defaultTableRowRenderer","withInfiniteLoader","ContentExplorerModePropType","ItemsPropType","ItemsMapPropType","ItemListIcon","ItemListLoadingPlaceholder","ItemListName","ItemListButton","TABLE_CELL_CLASS","InfiniteLoaderTable","DEFAULT_ROW_HEIGHT","withAutoSizer","WrappedComponent","props","flex","w","width","h","height","TableResponsive","itemIconCellRenderer","rendererParams","rowData","type","extension","hasCollaborations","isExternallyOwned","itemIconRenderer","columnData","isItemSelected","itemId","selectedItems","undefined","itemNameCellRenderer","rowIndex","id","name","label","onItemNameClick","itemNameLinkRenderer","event","renderItemListButton","contentExplorerMode","isActionDisabled","isDisabled","itemButtonCellRenderer","itemButtonRenderer","itemLoadingPlaceholderRenderer","loadingPlaceholderColumnWidths","columnIndex","ItemList","additionalColumns","className","isResponsive","items","numItemsPerPage","numTotalItems","onItemClick","onItemDoubleClick","onLoadMoreItems","headerHeight","headerRenderer","itemRowRenderer","noItemsRenderer","rowHeight","getRow","index","getRowClassNames","item","result","isLoading","renderRow","key","style","rowClassName","columns","itemRowClassname","testId","map","column","defaultRow","cloneElement","TableComponent","tableProps","infiniteLoaderProps","isRowLoaded","loadMoreRows","minimumBatchSize","rowCount","threshold","length","displayName","propTypes","arrayOf","element","string","isRequired","bool","number","func","ItemListBase"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\nimport AutoSizer from '@box/react-virtualized/dist/commonjs/AutoSizer';\nimport Column from '@box/react-virtualized/dist/commonjs/Table/Column';\nimport Table from '@box/react-virtualized/dist/commonjs/Table';\nimport defaultTableRowRenderer from '@box/react-virtualized/dist/commonjs/Table/defaultRowRenderer';\nimport '@box/react-virtualized/styles.css';\n\nimport { withInfiniteLoader } from '../../../components/react-virtualized-helpers';\n\nimport { ContentExplorerModePropType, ItemsPropType, ItemsMapPropType } from '../prop-types';\n\nimport ItemListIcon from './ItemListIcon';\nimport ItemListLoadingPlaceholder from './ItemListLoadingPlaceholder';\nimport ItemListName from './ItemListName';\nimport ItemListButton from './ItemListButton';\n\nimport './ItemList.scss';\n\nconst TABLE_CELL_CLASS = 'table-cell';\n\nconst InfiniteLoaderTable = withInfiniteLoader(Table);\n\nconst DEFAULT_ROW_HEIGHT = 40;\n\nconst withAutoSizer = WrappedComponent => {\n return props => {\n return (\n <div style={{ flex: 1 }}>\n <AutoSizer>\n {({ width: w, height: h }) => <WrappedComponent {...props} width={w} height={h} />}\n </AutoSizer>\n </div>\n );\n };\n};\n\nconst TableResponsive = withAutoSizer(Table);\n\nconst itemIconCellRenderer = rendererParams => {\n const {\n rowData: { type, extension, hasCollaborations, isExternallyOwned },\n columnData: { itemIconRenderer },\n } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n {itemIconRenderer ? (\n itemIconRenderer(rendererParams)\n ) : (\n <ItemListIcon\n type={type}\n extension={extension}\n hasCollaborations={hasCollaborations}\n isExternallyOwned={isExternallyOwned}\n />\n )}\n </div>\n );\n};\n\nconst isItemSelected = (itemId, selectedItems) => selectedItems[itemId] !== undefined;\n\nconst itemNameCellRenderer = rendererParams => {\n const {\n rowIndex,\n rowData: { id, type, name, label },\n columnData: { selectedItems, onItemNameClick, itemNameLinkRenderer },\n } = rendererParams;\n // loading placeholder may not have name and ItemListName requires name\n return (\n name && (\n <div className={TABLE_CELL_CLASS}>\n <ItemListName\n itemId={id}\n type={type}\n name={name}\n label={label}\n isSelected={isItemSelected(id, selectedItems)}\n onClick={event => onItemNameClick(event, rowIndex)}\n linkRenderer={itemNameLinkRenderer}\n />\n </div>\n )\n );\n};\n\nconst renderItemListButton = (contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems) =>\n name && (\n <ItemListButton\n contentExplorerMode={contentExplorerMode}\n id={id}\n isDisabled={isActionDisabled}\n isSelected={isItemSelected(id, selectedItems)}\n name={name}\n />\n );\n\nconst itemButtonCellRenderer = rendererParams => {\n const {\n columnData: { contentExplorerMode, itemButtonRenderer, selectedItems },\n rowData: { id, isActionDisabled, isDisabled, name },\n } = rendererParams;\n return (\n !isDisabled && (\n <div className={TABLE_CELL_CLASS}>\n {itemButtonRenderer\n ? itemButtonRenderer(rendererParams)\n : renderItemListButton(contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems)}\n </div>\n )\n );\n};\n\nconst itemLoadingPlaceholderRenderer = rendererParams => {\n const { loadingPlaceholderColumnWidths, columnIndex } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n <ItemListLoadingPlaceholder\n width={loadingPlaceholderColumnWidths && loadingPlaceholderColumnWidths[columnIndex]}\n />\n </div>\n );\n};\n\nconst ItemList = ({\n additionalColumns,\n contentExplorerMode,\n className = '',\n isResponsive = false,\n items,\n numItemsPerPage,\n numTotalItems,\n selectedItems = {},\n onItemClick,\n onItemDoubleClick,\n onItemNameClick,\n onLoadMoreItems,\n headerHeight,\n headerRenderer,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n itemRowRenderer = defaultTableRowRenderer,\n noItemsRenderer,\n width,\n height,\n rowHeight = DEFAULT_ROW_HEIGHT,\n}) => {\n const getRow = ({ index }) => items[index];\n\n const getRowClassNames = (index, item) => {\n let result = index === -1 ? 'table-header' : 'table-row';\n\n if (isItemSelected(item.id, selectedItems)) {\n result = classNames('is-selected', result);\n }\n if (item && (item.isDisabled || item.isLoading)) {\n result = classNames('disabled', result);\n }\n\n return result;\n };\n\n const renderRow = rendererParams => {\n const { index, key, style, className: rowClassName, columns } = rendererParams;\n const item = items[index];\n const itemRowClassname = classNames(rowClassName, getRowClassNames(index, item));\n const testId = getProp(rendererParams, 'rowData.id', '');\n\n if (item.isLoading) {\n return (\n <div key={key} style={style} className={itemRowClassname} role=\"row\">\n {columns.map((column, columnIndex) => (\n <div\n key={columnIndex}\n className={column.props.className}\n style={column.props.style}\n role=\"gridcell\"\n >\n {itemLoadingPlaceholderRenderer({\n item,\n columnIndex,\n })}\n </div>\n ))}\n </div>\n );\n }\n\n const defaultRow = itemRowRenderer({\n ...rendererParams,\n className: itemRowClassname,\n });\n return React.cloneElement(defaultRow, { 'data-testid': `item-row-${testId}` });\n };\n\n let TableComponent = isResponsive ? TableResponsive : Table;\n const tableProps = {};\n\n if (onLoadMoreItems) {\n TableComponent = InfiniteLoaderTable;\n tableProps.infiniteLoaderProps = {\n isRowLoaded: getRow,\n loadMoreRows: onLoadMoreItems,\n minimumBatchSize: numItemsPerPage,\n rowCount: numTotalItems,\n threshold: numItemsPerPage,\n };\n }\n\n return (\n <div\n className={classNames('content-explorer-item-list table', className, {\n 'bdl-ContentExplorerItemList--responsive': isResponsive,\n })}\n >\n <TableComponent\n gridClassName=\"table-body\"\n headerClassName=\"table-header-item\"\n width={width}\n height={height}\n headerHeight={headerHeight}\n headerRowRenderer={headerRenderer}\n rowHeight={rowHeight}\n rowCount={items.length}\n onRowClick={onItemClick}\n onRowDoubleClick={onItemDoubleClick}\n rowGetter={getRow}\n rowRenderer={renderRow}\n noRowsRenderer={noItemsRenderer}\n {...tableProps}\n >\n <Column\n className=\"item-list-icon-col\"\n cellRenderer={itemIconCellRenderer}\n columnData={{\n itemIconRenderer,\n }}\n dataKey=\"icon\"\n width={32}\n />\n <Column\n className=\"item-list-name-col\"\n cellRenderer={itemNameCellRenderer}\n columnData={{\n selectedItems,\n onItemNameClick,\n itemNameLinkRenderer,\n }}\n dataKey=\"name\"\n width={0}\n flexGrow={1}\n flexShrink={0}\n />\n {additionalColumns}\n <Column\n className=\"item-list-button-col\"\n cellRenderer={itemButtonCellRenderer}\n columnData={{\n contentExplorerMode,\n itemButtonRenderer,\n selectedItems,\n }}\n dataKey=\"button\"\n width={30}\n />\n </TableComponent>\n </div>\n );\n};\n\nItemList.displayName = 'ItemList';\n\nItemList.propTypes = {\n additionalColumns: PropTypes.arrayOf(PropTypes.element),\n className: PropTypes.string,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n isResponsive: PropTypes.bool,\n items: ItemsPropType.isRequired,\n numItemsPerPage: PropTypes.number,\n numTotalItems: PropTypes.number,\n selectedItems: ItemsMapPropType.isRequired,\n onItemClick: PropTypes.func,\n onItemDoubleClick: PropTypes.func,\n onItemNameClick: PropTypes.func,\n onLoadMoreItems: PropTypes.func,\n headerHeight: PropTypes.number,\n headerRenderer: PropTypes.func,\n itemIconRenderer: PropTypes.func,\n itemNameLinkRenderer: PropTypes.func,\n itemButtonRenderer: PropTypes.func,\n itemRowRenderer: PropTypes.func,\n noItemsRenderer: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n rowHeight: PropTypes.number,\n};\n\nexport { ItemList as ItemListBase };\nexport default ItemList;\n"],"file":"ItemList.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/features/content-explorer/item-list/ItemList.js"],"names":["PropTypes","React","classNames","getProp","AutoSizer","Column","Table","defaultTableRowRenderer","withInfiniteLoader","ContentExplorerModePropType","ItemsPropType","ItemsMapPropType","ItemListIcon","ItemListLoadingPlaceholder","ItemListName","ItemListButton","TABLE_CELL_CLASS","InfiniteLoaderTable","DEFAULT_ROW_HEIGHT","withAutoSizer","WrappedComponent","props","flex","w","width","h","height","TableResponsive","itemIconCellRenderer","rendererParams","rowData","type","extension","hasCollaborations","isExternallyOwned","itemIconRenderer","columnData","isItemSelected","itemId","selectedItems","undefined","itemNameCellRenderer","rowIndex","id","name","label","onItemNameClick","itemNameLinkRenderer","event","renderItemListButton","contentExplorerMode","isActionDisabled","isDisabled","itemButtonCellRenderer","itemButtonRenderer","itemLoadingPlaceholderRenderer","loadingPlaceholderColumnWidths","columnIndex","ItemList","additionalColumns","className","isResponsive","items","numItemsPerPage","numTotalItems","onItemClick","onItemDoubleClick","onLoadMoreItems","headerHeight","headerRenderer","itemRowRenderer","noItemsRenderer","rowHeight","getRow","index","getRowClassNames","item","result","isLoading","renderRow","key","style","rowClassName","columns","itemRowClassname","testId","map","column","defaultRow","cloneElement","TableComponent","tableProps","infiniteLoaderProps","isRowLoaded","loadMoreRows","minimumBatchSize","rowCount","threshold","length","headerRowRenderer","displayName","propTypes","arrayOf","element","string","isRequired","bool","number","func","ItemListBase"],"mappings":";;;;;;;;AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,OAAOC,SAAP,MAAsB,gDAAtB;AACA,OAAOC,MAAP,MAAmB,mDAAnB;AACA,OAAOC,KAAP,MAAkB,4CAAlB;AACA,OAAOC,uBAAP,MAAoC,+DAApC;AACA,OAAO,mCAAP;AAEA,SAASC,kBAAT,QAAmC,+CAAnC;AAEA,SAASC,2BAAT,EAAsCC,aAAtC,EAAqDC,gBAArD,QAA6E,eAA7E;AAEA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,0BAAP,MAAuC,8BAAvC;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,cAAP,MAA2B,kBAA3B;AAEA,OAAO,iBAAP;AAEA,IAAMC,gBAAgB,GAAG,YAAzB;AAEA,IAAMC,mBAAmB,GAAGT,kBAAkB,CAACF,KAAD,CAA9C;AAEA,IAAMY,kBAAkB,GAAG,EAA3B;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,gBAAgB,EAAI;AACtC,SAAO,UAAAC,KAAK,EAAI;AACZ,WACI;AAAK,MAAA,KAAK,EAAE;AAAEC,QAAAA,IAAI,EAAE;AAAR;AAAZ,OACI,oBAAC,SAAD,QACK;AAAA,UAAUC,CAAV,QAAGC,KAAH;AAAA,UAAqBC,CAArB,QAAaC,MAAb;AAAA,aAA6B,oBAAC,gBAAD,eAAsBL,KAAtB;AAA6B,QAAA,KAAK,EAAEE,CAApC;AAAuC,QAAA,MAAM,EAAEE;AAA/C,SAA7B;AAAA,KADL,CADJ,CADJ;AAOH,GARD;AASH,CAVD;;AAYA,IAAME,eAAe,GAAGR,aAAa,CAACb,KAAD,CAArC;;AAEA,IAAMsB,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAC,cAAc,EAAI;AAAA,8BAIvCA,cAJuC,CAEvCC,OAFuC;AAAA,MAE5BC,IAF4B,yBAE5BA,IAF4B;AAAA,MAEtBC,SAFsB,yBAEtBA,SAFsB;AAAA,MAEXC,iBAFW,yBAEXA,iBAFW;AAAA,MAEQC,iBAFR,yBAEQA,iBAFR;AAAA,MAGzBC,gBAHyB,GAIvCN,cAJuC,CAGvCO,UAHuC,CAGzBD,gBAHyB;AAK3C,SACI;AAAK,IAAA,SAAS,EAAEnB;AAAhB,KACKmB,gBAAgB,GACbA,gBAAgB,CAACN,cAAD,CADH,GAGb,oBAAC,YAAD;AACI,IAAA,IAAI,EAAEE,IADV;AAEI,IAAA,SAAS,EAAEC,SAFf;AAGI,IAAA,iBAAiB,EAAEC,iBAHvB;AAII,IAAA,iBAAiB,EAAEC;AAJvB,IAJR,CADJ;AAcH,CAnBD;;AAqBA,IAAMG,cAAc,GAAG,SAAjBA,cAAiB,CAACC,MAAD,EAASC,aAAT;AAAA,SAA2BA,aAAa,CAACD,MAAD,CAAb,KAA0BE,SAArD;AAAA,CAAvB;;AAEA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAZ,cAAc,EAAI;AAAA,MAEvCa,QAFuC,GAKvCb,cALuC,CAEvCa,QAFuC;AAAA,+BAKvCb,cALuC,CAGvCC,OAHuC;AAAA,MAG5Ba,EAH4B,0BAG5BA,EAH4B;AAAA,MAGxBZ,IAHwB,0BAGxBA,IAHwB;AAAA,MAGlBa,IAHkB,0BAGlBA,IAHkB;AAAA,MAGZC,KAHY,0BAGZA,KAHY;AAAA,8BAKvChB,cALuC,CAIvCO,UAJuC;AAAA,MAIzBG,aAJyB,yBAIzBA,aAJyB;AAAA,MAIVO,eAJU,yBAIVA,eAJU;AAAA,MAIOC,oBAJP,yBAIOA,oBAJP,EAM3C;;AACA,SACIH,IAAI,IACA;AAAK,IAAA,SAAS,EAAE5B;AAAhB,KACI,oBAAC,YAAD;AACI,IAAA,MAAM,EAAE2B,EADZ;AAEI,IAAA,IAAI,EAAEZ,IAFV;AAGI,IAAA,IAAI,EAAEa,IAHV;AAII,IAAA,KAAK,EAAEC,KAJX;AAKI,IAAA,UAAU,EAAER,cAAc,CAACM,EAAD,EAAKJ,aAAL,CAL9B;AAMI,IAAA,OAAO,EAAE,iBAAAS,KAAK;AAAA,aAAIF,eAAe,CAACE,KAAD,EAAQN,QAAR,CAAnB;AAAA,KANlB;AAOI,IAAA,YAAY,EAAEK;AAPlB,IADJ,CAFR;AAeH,CAtBD;;AAwBA,IAAME,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,mBAAD,EAAsBP,EAAtB,EAA0BQ,gBAA1B,EAA4CC,UAA5C,EAAwDR,IAAxD,EAA8DL,aAA9D;AAAA,SACzBK,IAAI,IACA,oBAAC,cAAD;AACI,IAAA,mBAAmB,EAAEM,mBADzB;AAEI,IAAA,EAAE,EAAEP,EAFR;AAGI,IAAA,UAAU,EAAEQ,gBAHhB;AAII,IAAA,UAAU,EAAEd,cAAc,CAACM,EAAD,EAAKJ,aAAL,CAJ9B;AAKI,IAAA,IAAI,EAAEK;AALV,IAFqB;AAAA,CAA7B;;AAWA,IAAMS,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAAxB,cAAc,EAAI;AAAA,+BAIzCA,cAJyC,CAEzCO,UAFyC;AAAA,MAE3Bc,mBAF2B,0BAE3BA,mBAF2B;AAAA,MAENI,kBAFM,0BAENA,kBAFM;AAAA,MAEcf,aAFd,0BAEcA,aAFd;AAAA,+BAIzCV,cAJyC,CAGzCC,OAHyC;AAAA,MAG9Ba,EAH8B,0BAG9BA,EAH8B;AAAA,MAG1BQ,gBAH0B,0BAG1BA,gBAH0B;AAAA,MAGRC,UAHQ,0BAGRA,UAHQ;AAAA,MAGIR,IAHJ,0BAGIA,IAHJ;AAK7C,SACI,CAACQ,UAAD,IACI;AAAK,IAAA,SAAS,EAAEpC;AAAhB,KACKsC,kBAAkB,GACbA,kBAAkB,CAACzB,cAAD,CADL,GAEboB,oBAAoB,CAACC,mBAAD,EAAsBP,EAAtB,EAA0BQ,gBAA1B,EAA4CC,UAA5C,EAAwDR,IAAxD,EAA8DL,aAA9D,CAH9B,CAFR;AASH,CAdD;;AAgBA,IAAMgB,8BAA8B,GAAG,SAAjCA,8BAAiC,CAAA1B,cAAc,EAAI;AAAA,MAC7C2B,8BAD6C,GACG3B,cADH,CAC7C2B,8BAD6C;AAAA,MACbC,WADa,GACG5B,cADH,CACb4B,WADa;AAErD,SACI;AAAK,IAAA,SAAS,EAAEzC;AAAhB,KACI,oBAAC,0BAAD;AACI,IAAA,KAAK,EAAEwC,8BAA8B,IAAIA,8BAA8B,CAACC,WAAD;AAD3E,IADJ,CADJ;AAOH,CATD;;AAWA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,QAuBX;AAAA,MAtBFC,iBAsBE,SAtBFA,iBAsBE;AAAA,MArBFT,mBAqBE,SArBFA,mBAqBE;AAAA,8BApBFU,SAoBE;AAAA,MApBFA,SAoBE,gCApBU,EAoBV;AAAA,iCAnBFC,YAmBE;AAAA,MAnBFA,YAmBE,mCAnBa,KAmBb;AAAA,MAlBFC,KAkBE,SAlBFA,KAkBE;AAAA,MAjBFC,eAiBE,SAjBFA,eAiBE;AAAA,MAhBFC,aAgBE,SAhBFA,aAgBE;AAAA,kCAfFzB,aAeE;AAAA,MAfFA,aAeE,oCAfc,EAed;AAAA,MAdF0B,WAcE,SAdFA,WAcE;AAAA,MAbFC,iBAaE,SAbFA,iBAaE;AAAA,MAZFpB,eAYE,SAZFA,eAYE;AAAA,MAXFqB,eAWE,SAXFA,eAWE;AAAA,MAVFC,YAUE,SAVFA,YAUE;AAAA,MATFC,cASE,SATFA,cASE;AAAA,MARFlC,gBAQE,SARFA,gBAQE;AAAA,MAPFY,oBAOE,SAPFA,oBAOE;AAAA,MANFO,kBAME,SANFA,kBAME;AAAA,oCALFgB,eAKE;AAAA,MALFA,eAKE,sCALgB/D,uBAKhB;AAAA,MAJFgE,eAIE,SAJFA,eAIE;AAAA,MAHF/C,KAGE,SAHFA,KAGE;AAAA,MAFFE,MAEE,SAFFA,MAEE;AAAA,8BADF8C,SACE;AAAA,MADFA,SACE,gCADUtD,kBACV;;AACF,MAAMuD,MAAM,GAAG,SAATA,MAAS;AAAA,QAAGC,KAAH,SAAGA,KAAH;AAAA,WAAeZ,KAAK,CAACY,KAAD,CAApB;AAAA,GAAf;;AAEA,MAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACD,KAAD,EAAQE,IAAR,EAAiB;AACtC,QAAIC,MAAM,GAAGH,KAAK,KAAK,CAAC,CAAX,GAAe,cAAf,GAAgC,WAA7C;;AAEA,QAAIrC,cAAc,CAACuC,IAAI,CAACjC,EAAN,EAAUJ,aAAV,CAAlB,EAA4C;AACxCsC,MAAAA,MAAM,GAAG3E,UAAU,CAAC,aAAD,EAAgB2E,MAAhB,CAAnB;AACH;;AACD,QAAID,IAAI,KAAKA,IAAI,CAACxB,UAAL,IAAmBwB,IAAI,CAACE,SAA7B,CAAR,EAAiD;AAC7CD,MAAAA,MAAM,GAAG3E,UAAU,CAAC,UAAD,EAAa2E,MAAb,CAAnB;AACH;;AAED,WAAOA,MAAP;AACH,GAXD;;AAaA,MAAME,SAAS,GAAG,SAAZA,SAAY,CAAAlD,cAAc,EAAI;AAAA,QACxB6C,KADwB,GACgC7C,cADhC,CACxB6C,KADwB;AAAA,QACjBM,GADiB,GACgCnD,cADhC,CACjBmD,GADiB;AAAA,QACZC,KADY,GACgCpD,cADhC,CACZoD,KADY;AAAA,QACMC,YADN,GACgCrD,cADhC,CACL+B,SADK;AAAA,QACoBuB,OADpB,GACgCtD,cADhC,CACoBsD,OADpB;AAEhC,QAAMP,IAAI,GAAGd,KAAK,CAACY,KAAD,CAAlB;AACA,QAAMU,gBAAgB,GAAGlF,UAAU,CAACgF,YAAD,EAAeP,gBAAgB,CAACD,KAAD,EAAQE,IAAR,CAA/B,CAAnC;AACA,QAAMS,MAAM,GAAGlF,OAAO,CAAC0B,cAAD,EAAiB,YAAjB,EAA+B,EAA/B,CAAtB;;AAEA,QAAI+C,IAAI,CAACE,SAAT,EAAoB;AAChB,aACI;AAAK,QAAA,GAAG,EAAEE,GAAV;AAAe,QAAA,KAAK,EAAEC,KAAtB;AAA6B,QAAA,SAAS,EAAEG,gBAAxC;AAA0D,QAAA,IAAI,EAAC;AAA/D,SACKD,OAAO,CAACG,GAAR,CAAY,UAACC,MAAD,EAAS9B,WAAT;AAAA,eACT;AACI,UAAA,GAAG,EAAEA,WADT;AAEI,UAAA,SAAS,EAAE8B,MAAM,CAAClE,KAAP,CAAauC,SAF5B;AAGI,UAAA,KAAK,EAAE2B,MAAM,CAAClE,KAAP,CAAa4D,KAHxB;AAII,UAAA,IAAI,EAAC;AAJT,WAMK1B,8BAA8B,CAAC;AAC5BqB,UAAAA,IAAI,EAAJA,IAD4B;AAE5BnB,UAAAA,WAAW,EAAXA;AAF4B,SAAD,CANnC,CADS;AAAA,OAAZ,CADL,CADJ;AAiBH;;AAED,QAAM+B,UAAU,GAAGlB,eAAe,mBAC3BzC,cAD2B;AAE9B+B,MAAAA,SAAS,EAAEwB;AAFmB,OAAlC;AAIA,WAAOnF,KAAK,CAACwF,YAAN,CAAmBD,UAAnB,EAA+B;AAAE,wCAA2BH,MAA3B;AAAF,KAA/B,CAAP;AACH,GA/BD;;AAiCA,MAAIK,cAAc,GAAG7B,YAAY,GAAGlC,eAAH,GAAqBrB,KAAtD;AACA,MAAMqF,UAAU,GAAG,EAAnB;;AAEA,MAAIxB,eAAJ,EAAqB;AACjBuB,IAAAA,cAAc,GAAGzE,mBAAjB;AACA0E,IAAAA,UAAU,CAACC,mBAAX,GAAiC;AAC7BC,MAAAA,WAAW,EAAEpB,MADgB;AAE7BqB,MAAAA,YAAY,EAAE3B,eAFe;AAG7B4B,MAAAA,gBAAgB,EAAEhC,eAHW;AAI7BiC,MAAAA,QAAQ,EAAEhC,aAJmB;AAK7BiC,MAAAA,SAAS,EAAElC;AALkB,KAAjC;AAOH;;AAED,MAAI,CAACQ,eAAD,IAAoBT,KAAK,CAACoC,MAAN,GAAe,CAAvC,EAA0C;AACtCP,IAAAA,UAAU,CAACvB,YAAX,GAA0BA,YAA1B;AACAuB,IAAAA,UAAU,CAACQ,iBAAX,GAA+B9B,cAA/B;AACH;;AAED,SACI;AACI,IAAA,SAAS,EAAEnE,UAAU,CAAC,kCAAD,EAAqC0D,SAArC,EAAgD;AACjE,iDAA2CC;AADsB,KAAhD;AADzB,KAKI,oBAAC,cAAD;AACI,IAAA,aAAa,EAAC,YADlB;AAEI,IAAA,eAAe,EAAC,mBAFpB;AAGI,IAAA,KAAK,EAAErC,KAHX;AAII,IAAA,MAAM,EAAEE,MAJZ;AAKI,IAAA,SAAS,EAAE8C,SALf;AAMI,IAAA,QAAQ,EAAEV,KAAK,CAACoC,MANpB;AAOI,IAAA,UAAU,EAAEjC,WAPhB;AAQI,IAAA,gBAAgB,EAAEC,iBARtB;AASI,IAAA,SAAS,EAAEO,MATf;AAUI,IAAA,WAAW,EAAEM,SAVjB;AAWI,IAAA,cAAc,EAAER;AAXpB,KAYQoB,UAZR,GAcI,oBAAC,MAAD;AACI,IAAA,SAAS,EAAC,oBADd;AAEI,IAAA,YAAY,EAAE/D,oBAFlB;AAGI,IAAA,UAAU,EAAE;AACRO,MAAAA,gBAAgB,EAAhBA;AADQ,KAHhB;AAMI,IAAA,OAAO,EAAC,MANZ;AAOI,IAAA,KAAK,EAAE;AAPX,IAdJ,EAuBI,oBAAC,MAAD;AACI,IAAA,SAAS,EAAC,oBADd;AAEI,IAAA,YAAY,EAAEM,oBAFlB;AAGI,IAAA,UAAU,EAAE;AACRF,MAAAA,aAAa,EAAbA,aADQ;AAERO,MAAAA,eAAe,EAAfA,eAFQ;AAGRC,MAAAA,oBAAoB,EAApBA;AAHQ,KAHhB;AAQI,IAAA,OAAO,EAAC,MARZ;AASI,IAAA,KAAK,EAAE,CATX;AAUI,IAAA,QAAQ,EAAE,CAVd;AAWI,IAAA,UAAU,EAAE;AAXhB,IAvBJ,EAoCKY,iBApCL,EAqCI,oBAAC,MAAD;AACI,IAAA,SAAS,EAAC,sBADd;AAEI,IAAA,YAAY,EAAEN,sBAFlB;AAGI,IAAA,UAAU,EAAE;AACRH,MAAAA,mBAAmB,EAAnBA,mBADQ;AAERI,MAAAA,kBAAkB,EAAlBA,kBAFQ;AAGRf,MAAAA,aAAa,EAAbA;AAHQ,KAHhB;AAQI,IAAA,OAAO,EAAC,QARZ;AASI,IAAA,KAAK,EAAE;AATX,IArCJ,CALJ,CADJ;AAyDH,CApJD;;AAsJAmB,QAAQ,CAAC0C,WAAT,GAAuB,UAAvB;AAEA1C,QAAQ,CAAC2C,SAAT,GAAqB;AACjB1C,EAAAA,iBAAiB,EAAE3D,SAAS,CAACsG,OAAV,CAAkBtG,SAAS,CAACuG,OAA5B,CADF;AAEjB3C,EAAAA,SAAS,EAAE5D,SAAS,CAACwG,MAFJ;AAGjBtD,EAAAA,mBAAmB,EAAEzC,2BAA2B,CAACgG,UAHhC;AAIjB5C,EAAAA,YAAY,EAAE7D,SAAS,CAAC0G,IAJP;AAKjB5C,EAAAA,KAAK,EAAEpD,aAAa,CAAC+F,UALJ;AAMjB1C,EAAAA,eAAe,EAAE/D,SAAS,CAAC2G,MANV;AAOjB3C,EAAAA,aAAa,EAAEhE,SAAS,CAAC2G,MAPR;AAQjBpE,EAAAA,aAAa,EAAE5B,gBAAgB,CAAC8F,UARf;AASjBxC,EAAAA,WAAW,EAAEjE,SAAS,CAAC4G,IATN;AAUjB1C,EAAAA,iBAAiB,EAAElE,SAAS,CAAC4G,IAVZ;AAWjB9D,EAAAA,eAAe,EAAE9C,SAAS,CAAC4G,IAXV;AAYjBzC,EAAAA,eAAe,EAAEnE,SAAS,CAAC4G,IAZV;AAajBxC,EAAAA,YAAY,EAAEpE,SAAS,CAAC2G,MAbP;AAcjBtC,EAAAA,cAAc,EAAErE,SAAS,CAAC4G,IAdT;AAejBzE,EAAAA,gBAAgB,EAAEnC,SAAS,CAAC4G,IAfX;AAgBjB7D,EAAAA,oBAAoB,EAAE/C,SAAS,CAAC4G,IAhBf;AAiBjBtD,EAAAA,kBAAkB,EAAEtD,SAAS,CAAC4G,IAjBb;AAkBjBtC,EAAAA,eAAe,EAAEtE,SAAS,CAAC4G,IAlBV;AAmBjBrC,EAAAA,eAAe,EAAEvE,SAAS,CAAC4G,IAnBV;AAoBjBpF,EAAAA,KAAK,EAAExB,SAAS,CAAC2G,MAAV,CAAiBF,UApBP;AAqBjB/E,EAAAA,MAAM,EAAE1B,SAAS,CAAC2G,MAAV,CAAiBF,UArBR;AAsBjBjC,EAAAA,SAAS,EAAExE,SAAS,CAAC2G;AAtBJ,CAArB;AAyBA,SAASjD,QAAQ,IAAImD,YAArB;AACA,eAAenD,QAAf","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport getProp from 'lodash/get';\nimport AutoSizer from '@box/react-virtualized/dist/commonjs/AutoSizer';\nimport Column from '@box/react-virtualized/dist/commonjs/Table/Column';\nimport Table from '@box/react-virtualized/dist/commonjs/Table';\nimport defaultTableRowRenderer from '@box/react-virtualized/dist/commonjs/Table/defaultRowRenderer';\nimport '@box/react-virtualized/styles.css';\n\nimport { withInfiniteLoader } from '../../../components/react-virtualized-helpers';\n\nimport { ContentExplorerModePropType, ItemsPropType, ItemsMapPropType } from '../prop-types';\n\nimport ItemListIcon from './ItemListIcon';\nimport ItemListLoadingPlaceholder from './ItemListLoadingPlaceholder';\nimport ItemListName from './ItemListName';\nimport ItemListButton from './ItemListButton';\n\nimport './ItemList.scss';\n\nconst TABLE_CELL_CLASS = 'table-cell';\n\nconst InfiniteLoaderTable = withInfiniteLoader(Table);\n\nconst DEFAULT_ROW_HEIGHT = 40;\n\nconst withAutoSizer = WrappedComponent => {\n return props => {\n return (\n <div style={{ flex: 1 }}>\n <AutoSizer>\n {({ width: w, height: h }) => <WrappedComponent {...props} width={w} height={h} />}\n </AutoSizer>\n </div>\n );\n };\n};\n\nconst TableResponsive = withAutoSizer(Table);\n\nconst itemIconCellRenderer = rendererParams => {\n const {\n rowData: { type, extension, hasCollaborations, isExternallyOwned },\n columnData: { itemIconRenderer },\n } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n {itemIconRenderer ? (\n itemIconRenderer(rendererParams)\n ) : (\n <ItemListIcon\n type={type}\n extension={extension}\n hasCollaborations={hasCollaborations}\n isExternallyOwned={isExternallyOwned}\n />\n )}\n </div>\n );\n};\n\nconst isItemSelected = (itemId, selectedItems) => selectedItems[itemId] !== undefined;\n\nconst itemNameCellRenderer = rendererParams => {\n const {\n rowIndex,\n rowData: { id, type, name, label },\n columnData: { selectedItems, onItemNameClick, itemNameLinkRenderer },\n } = rendererParams;\n // loading placeholder may not have name and ItemListName requires name\n return (\n name && (\n <div className={TABLE_CELL_CLASS}>\n <ItemListName\n itemId={id}\n type={type}\n name={name}\n label={label}\n isSelected={isItemSelected(id, selectedItems)}\n onClick={event => onItemNameClick(event, rowIndex)}\n linkRenderer={itemNameLinkRenderer}\n />\n </div>\n )\n );\n};\n\nconst renderItemListButton = (contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems) =>\n name && (\n <ItemListButton\n contentExplorerMode={contentExplorerMode}\n id={id}\n isDisabled={isActionDisabled}\n isSelected={isItemSelected(id, selectedItems)}\n name={name}\n />\n );\n\nconst itemButtonCellRenderer = rendererParams => {\n const {\n columnData: { contentExplorerMode, itemButtonRenderer, selectedItems },\n rowData: { id, isActionDisabled, isDisabled, name },\n } = rendererParams;\n return (\n !isDisabled && (\n <div className={TABLE_CELL_CLASS}>\n {itemButtonRenderer\n ? itemButtonRenderer(rendererParams)\n : renderItemListButton(contentExplorerMode, id, isActionDisabled, isDisabled, name, selectedItems)}\n </div>\n )\n );\n};\n\nconst itemLoadingPlaceholderRenderer = rendererParams => {\n const { loadingPlaceholderColumnWidths, columnIndex } = rendererParams;\n return (\n <div className={TABLE_CELL_CLASS}>\n <ItemListLoadingPlaceholder\n width={loadingPlaceholderColumnWidths && loadingPlaceholderColumnWidths[columnIndex]}\n />\n </div>\n );\n};\n\nconst ItemList = ({\n additionalColumns,\n contentExplorerMode,\n className = '',\n isResponsive = false,\n items,\n numItemsPerPage,\n numTotalItems,\n selectedItems = {},\n onItemClick,\n onItemDoubleClick,\n onItemNameClick,\n onLoadMoreItems,\n headerHeight,\n headerRenderer,\n itemIconRenderer,\n itemNameLinkRenderer,\n itemButtonRenderer,\n itemRowRenderer = defaultTableRowRenderer,\n noItemsRenderer,\n width,\n height,\n rowHeight = DEFAULT_ROW_HEIGHT,\n}) => {\n const getRow = ({ index }) => items[index];\n\n const getRowClassNames = (index, item) => {\n let result = index === -1 ? 'table-header' : 'table-row';\n\n if (isItemSelected(item.id, selectedItems)) {\n result = classNames('is-selected', result);\n }\n if (item && (item.isDisabled || item.isLoading)) {\n result = classNames('disabled', result);\n }\n\n return result;\n };\n\n const renderRow = rendererParams => {\n const { index, key, style, className: rowClassName, columns } = rendererParams;\n const item = items[index];\n const itemRowClassname = classNames(rowClassName, getRowClassNames(index, item));\n const testId = getProp(rendererParams, 'rowData.id', '');\n\n if (item.isLoading) {\n return (\n <div key={key} style={style} className={itemRowClassname} role=\"row\">\n {columns.map((column, columnIndex) => (\n <div\n key={columnIndex}\n className={column.props.className}\n style={column.props.style}\n role=\"gridcell\"\n >\n {itemLoadingPlaceholderRenderer({\n item,\n columnIndex,\n })}\n </div>\n ))}\n </div>\n );\n }\n\n const defaultRow = itemRowRenderer({\n ...rendererParams,\n className: itemRowClassname,\n });\n return React.cloneElement(defaultRow, { 'data-testid': `item-row-${testId}` });\n };\n\n let TableComponent = isResponsive ? TableResponsive : Table;\n const tableProps = {};\n\n if (onLoadMoreItems) {\n TableComponent = InfiniteLoaderTable;\n tableProps.infiniteLoaderProps = {\n isRowLoaded: getRow,\n loadMoreRows: onLoadMoreItems,\n minimumBatchSize: numItemsPerPage,\n rowCount: numTotalItems,\n threshold: numItemsPerPage,\n };\n }\n\n if (!noItemsRenderer || items.length > 0) {\n tableProps.headerHeight = headerHeight;\n tableProps.headerRowRenderer = headerRenderer;\n }\n\n return (\n <div\n className={classNames('content-explorer-item-list table', className, {\n 'bdl-ContentExplorerItemList--responsive': isResponsive,\n })}\n >\n <TableComponent\n gridClassName=\"table-body\"\n headerClassName=\"table-header-item\"\n width={width}\n height={height}\n rowHeight={rowHeight}\n rowCount={items.length}\n onRowClick={onItemClick}\n onRowDoubleClick={onItemDoubleClick}\n rowGetter={getRow}\n rowRenderer={renderRow}\n noRowsRenderer={noItemsRenderer}\n {...tableProps}\n >\n <Column\n className=\"item-list-icon-col\"\n cellRenderer={itemIconCellRenderer}\n columnData={{\n itemIconRenderer,\n }}\n dataKey=\"icon\"\n width={32}\n />\n <Column\n className=\"item-list-name-col\"\n cellRenderer={itemNameCellRenderer}\n columnData={{\n selectedItems,\n onItemNameClick,\n itemNameLinkRenderer,\n }}\n dataKey=\"name\"\n width={0}\n flexGrow={1}\n flexShrink={0}\n />\n {additionalColumns}\n <Column\n className=\"item-list-button-col\"\n cellRenderer={itemButtonCellRenderer}\n columnData={{\n contentExplorerMode,\n itemButtonRenderer,\n selectedItems,\n }}\n dataKey=\"button\"\n width={30}\n />\n </TableComponent>\n </div>\n );\n};\n\nItemList.displayName = 'ItemList';\n\nItemList.propTypes = {\n additionalColumns: PropTypes.arrayOf(PropTypes.element),\n className: PropTypes.string,\n contentExplorerMode: ContentExplorerModePropType.isRequired,\n isResponsive: PropTypes.bool,\n items: ItemsPropType.isRequired,\n numItemsPerPage: PropTypes.number,\n numTotalItems: PropTypes.number,\n selectedItems: ItemsMapPropType.isRequired,\n onItemClick: PropTypes.func,\n onItemDoubleClick: PropTypes.func,\n onItemNameClick: PropTypes.func,\n onLoadMoreItems: PropTypes.func,\n headerHeight: PropTypes.number,\n headerRenderer: PropTypes.func,\n itemIconRenderer: PropTypes.func,\n itemNameLinkRenderer: PropTypes.func,\n itemButtonRenderer: PropTypes.func,\n itemRowRenderer: PropTypes.func,\n noItemsRenderer: PropTypes.func,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n rowHeight: PropTypes.number,\n};\n\nexport { ItemList as ItemListBase };\nexport default ItemList;\n"],"file":"ItemList.js"}
|
package/package.json
CHANGED
|
@@ -210,6 +210,11 @@ const ItemList = ({
|
|
|
210
210
|
};
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
+
if (!noItemsRenderer || items.length > 0) {
|
|
214
|
+
tableProps.headerHeight = headerHeight;
|
|
215
|
+
tableProps.headerRowRenderer = headerRenderer;
|
|
216
|
+
}
|
|
217
|
+
|
|
213
218
|
return (
|
|
214
219
|
<div
|
|
215
220
|
className={classNames('content-explorer-item-list table', className, {
|
|
@@ -221,8 +226,6 @@ const ItemList = ({
|
|
|
221
226
|
headerClassName="table-header-item"
|
|
222
227
|
width={width}
|
|
223
228
|
height={height}
|
|
224
|
-
headerHeight={headerHeight}
|
|
225
|
-
headerRowRenderer={headerRenderer}
|
|
226
229
|
rowHeight={rowHeight}
|
|
227
230
|
rowCount={items.length}
|
|
228
231
|
onRowClick={onItemClick}
|
|
@@ -293,24 +293,50 @@ describe('features/content-explorer/item-list/ItemList', () => {
|
|
|
293
293
|
});
|
|
294
294
|
|
|
295
295
|
describe('headerHeight', () => {
|
|
296
|
-
|
|
296
|
+
const items = [{ id: '1', name: 'item1' }];
|
|
297
|
+
test('should display header row with specified height when item list is not empty', () => {
|
|
297
298
|
const headerHeight = 30;
|
|
298
299
|
const wrapper = renderComponent({
|
|
299
300
|
headerHeight,
|
|
301
|
+
items,
|
|
300
302
|
});
|
|
301
303
|
|
|
302
304
|
const header = wrapper.find('.ReactVirtualized__Table__headerRow');
|
|
303
305
|
expect(header.props().style.height).toBe(headerHeight);
|
|
304
306
|
});
|
|
307
|
+
|
|
308
|
+
test('should not display header row with specified height when item list is empty and noItemsRenderer is present', () => {
|
|
309
|
+
const headerHeight = 30;
|
|
310
|
+
const noItemsRenderer = () => <></>;
|
|
311
|
+
const wrapper = renderComponent({
|
|
312
|
+
headerHeight,
|
|
313
|
+
noItemsRenderer,
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
const header = wrapper.find('.ReactVirtualized__Table__headerRow');
|
|
317
|
+
expect(header.props().style.height).not.toBe(headerHeight);
|
|
318
|
+
});
|
|
305
319
|
});
|
|
306
320
|
|
|
307
321
|
describe('headerRenderer', () => {
|
|
308
|
-
|
|
322
|
+
const items = [{ id: '1', name: 'item1' }];
|
|
323
|
+
test('should use headerRenderer when specified if item list is not empty', () => {
|
|
309
324
|
const wrapper = renderComponent({
|
|
310
325
|
headerRenderer: () => <div data-testid="customHeader">Custom Header</div>,
|
|
326
|
+
items,
|
|
311
327
|
});
|
|
312
328
|
const headerRow = wrapper.find("[data-testid='customHeader']");
|
|
313
329
|
expect(headerRow.length).toBe(1);
|
|
314
330
|
});
|
|
331
|
+
|
|
332
|
+
test('should not use headerRenderer when specified if item list is empty and noItemsRenderer is present', () => {
|
|
333
|
+
const noItemsRenderer = () => <></>;
|
|
334
|
+
const wrapper = renderComponent({
|
|
335
|
+
headerRenderer: () => <div data-testid="customHeader">Custom Header</div>,
|
|
336
|
+
noItemsRenderer,
|
|
337
|
+
});
|
|
338
|
+
const headerRow = wrapper.find("[data-testid='customHeader']");
|
|
339
|
+
expect(headerRow.length).not.toBe(1);
|
|
340
|
+
});
|
|
315
341
|
});
|
|
316
342
|
});
|