/*! Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. */ import * as React from 'react'; import Screener from 'screener-storybook/src/screener'; import { storiesOf } from '@storybook/react'; import { FabricDecorator } from '../utilities'; import { DetailsList, DetailsListLayoutMode, IDetailsHeaderProps, Selection, IColumn, ConstrainMode, IDetailsFooterProps, DetailsRow, IDetailsRowCheckProps, DetailsRowCheck, } from 'office-ui-fabric-react/lib/DetailsList'; import { IRenderFunction } from 'office-ui-fabric-react/lib/Utilities'; import { TooltipHost, ITooltipHostProps } from 'office-ui-fabric-react/lib/Tooltip'; import { ScrollablePane, ScrollbarVisibility } from 'office-ui-fabric-react/lib/ScrollablePane'; import { Sticky, StickyPositionType } from 'office-ui-fabric-react/lib/Sticky'; import { MarqueeSelection } from 'office-ui-fabric-react/lib/MarqueeSelection'; import { SelectionMode } from 'office-ui-fabric-react/lib/utilities/selection/index'; import { Fabric } from 'office-ui-fabric-react/lib/Fabric'; import { getTheme } from 'office-ui-fabric-react/lib/Styling'; import { createGroups } from '@uifabric/example-data'; import { mergeStyleSets } from 'office-ui-fabric-react/lib/Styling'; const columnMidWidth = 200; const columnMaxWidth = 300; const _columns: IColumn[] = [ { key: 'column1', name: 'Test 1', fieldName: 'test1', minWidth: columnMidWidth, maxWidth: columnMaxWidth, isResizable: true, ariaLabel: 'Operations for name', }, { key: 'column2', name: 'Test 2', fieldName: 'test2', minWidth: columnMidWidth, maxWidth: columnMaxWidth, isResizable: true, ariaLabel: 'Operations for value', }, { key: 'column3', name: 'Test 3', fieldName: 'test3', minWidth: columnMidWidth, maxWidth: columnMaxWidth, isResizable: true, ariaLabel: 'Operations for value', }, { key: 'column4', name: 'Test 4', fieldName: 'test4', minWidth: columnMidWidth, maxWidth: columnMaxWidth, isResizable: true, ariaLabel: 'Operations for value', }, { key: 'column5', name: 'Test 5', fieldName: 'test5', minWidth: columnMidWidth, maxWidth: columnMaxWidth, isResizable: true, ariaLabel: 'Operations for value', }, { key: 'column6', name: 'Test 6', fieldName: 'test6', minWidth: columnMidWidth, maxWidth: columnMaxWidth, isResizable: true, ariaLabel: 'Operations for value', }, ]; interface IItem { key: number; test1: string; test2: string; test3: string; test4: string; test5: string; test6: string; } const _groups = createGroups(100, 0, 0, 1, 0, '', true); const classNames = mergeStyleSets({ wrapper: { height: '80vh', position: 'relative', maxHeight: 'inherit', width: '800px', }, footerDetailsRow: { display: 'inline-block', }, detailsListContent: { padding: '0 64px', }, }); class ScrollablePaneDetailsListStory extends React.Component<{}, {}> { private _selection: Selection; private readonly _items: IItem[]; constructor(props: {}) { super(props); this._items = []; let rowData = ''; for (let i = 0; i < 100; i++) { rowData = 'row ' + (i + 1).toString() + ', column '; this._items.push({ key: i, test1: rowData + '1', test2: rowData + '2', test3: rowData + '3', test4: rowData + '4', test5: rowData + '5', test6: rowData + '6', }); } this._selection = new Selection(); } public render(): JSX.Element { return (
{/* providing backgroundColor as no parent element for the test has this property defined */}

Item List

); } } function onRenderDetailsHeader( props: IDetailsHeaderProps, defaultRender?: IRenderFunction, ): JSX.Element { return ( {defaultRender!({ ...props, onRenderColumnHeaderTooltip: (tooltipHostProps: ITooltipHostProps) => ( ), })} ); } function onRenderDetailsFooter(props: IDetailsFooterProps): JSX.Element { return (
); } function _onRenderCheckForFooterRow( props: IDetailsRowCheckProps, DefaultRender: React.ComponentType = DetailsRowCheck, ): JSX.Element { return ; } const getElement = "document.getElementsByClassName('ms-ScrollablePane--contentContainer')[0]"; const cropTo = { cropTo: '.testWrapper' }; storiesOf('ScrollablePane Grouped Details List', module) .addDecorator(FabricDecorator) .addDecorator(story => ( {story()} )) .addStory('ScrollablePane scrollbars visibility', () => );