@deephaven/components 0.13.3-beta.2 → 0.13.5

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.
@@ -6,6 +6,7 @@ interface CheckboxProps {
6
6
  inputClassName?: string;
7
7
  isInvalid?: boolean;
8
8
  labelClassName?: string;
9
+ name?: string;
9
10
  onChange?: React.ChangeEventHandler<HTMLInputElement>;
10
11
  children?: React.ReactNode;
11
12
  'data-testid'?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,QAAA,MAAM,QAAQ,wFAiEb,CAAC;AAmDF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,QAAA,MAAM,QAAQ,wFAmEb,CAAC;AAuDF,eAAe,QAAQ,CAAC"}
package/dist/Checkbox.js CHANGED
@@ -16,6 +16,7 @@ var Checkbox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
16
16
  inputClassName,
17
17
  isInvalid,
18
18
  labelClassName,
19
+ name,
19
20
  onChange,
20
21
  'data-testid': dataTestId
21
22
  } = props;
@@ -49,6 +50,7 @@ var Checkbox = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
49
50
  }),
50
51
  disabled: disabled,
51
52
  id: id,
53
+ name: name,
52
54
  onChange: handleOnChange,
53
55
  "data-testid": dataTestId
54
56
  }), /*#__PURE__*/React.createElement("label", {
@@ -91,6 +93,9 @@ Checkbox.propTypes = {
91
93
  /** An extra class name for the label component */
92
94
  labelClassName: PropTypes.string,
93
95
 
96
+ /** Checkbox input name attribute */
97
+ name: PropTypes.string,
98
+
94
99
  /** Triggered when the input is checked/unchecked */
95
100
  onChange: PropTypes.func,
96
101
  'data-testid': PropTypes.string
@@ -102,6 +107,7 @@ Checkbox.defaultProps = {
102
107
  inputClassName: '',
103
108
  isInvalid: false,
104
109
  labelClassName: '',
110
+ name: undefined,
105
111
  onChange: undefined,
106
112
  'data-testid': undefined
107
113
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Checkbox.tsx"],"names":["React","useState","useEffect","useCallback","classNames","PropTypes","shortid","useForwardedRef","Checkbox","forwardRef","props","forwardedRef","checked","children","className","disabled","inputClassName","isInvalid","labelClassName","onChange","dataTestId","id","ref","setIndeterminateProperty","current","indeterminate","handleOnChange","event","displayName","propTypes","propName","checkedType","Error","node","isRequired","string","bool","func","defaultProps","undefined"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport { useForwardedRef } from '@deephaven/react-hooks';\n\ninterface CheckboxProps {\n checked: boolean | null;\n className?: string;\n disabled?: boolean;\n inputClassName?: string;\n isInvalid?: boolean;\n labelClassName?: string;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n children?: React.ReactNode;\n 'data-testid'?: string;\n}\n\n/**\n * A simple checkbox component. Automatically generates an id so htmlFor/id attributes are unique.\n */\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (props, forwardedRef) => {\n const {\n checked = false,\n children,\n className,\n disabled,\n inputClassName,\n isInvalid,\n labelClassName,\n onChange,\n 'data-testid': dataTestId,\n } = props;\n\n const [id] = useState(shortid());\n\n const ref = useForwardedRef<HTMLInputElement>(forwardedRef);\n\n useEffect(\n function setIndeterminateProperty() {\n if (ref.current) {\n // indeterminate is not actually an html attr, can only be set via JS\n ref.current.indeterminate = checked === null;\n }\n },\n [ref, checked]\n );\n\n const handleOnChange: React.ChangeEventHandler<HTMLInputElement> = useCallback(\n event => {\n if (ref.current) {\n // ref.current can be null in tests, doesn't impact behaviour\n ref.current.indeterminate = checked === null;\n }\n\n if (onChange) {\n onChange(event);\n }\n },\n [ref, checked, onChange]\n );\n\n return (\n <div className={classNames('custom-control custom-checkbox', className)}>\n <input\n type=\"checkbox\"\n ref={ref}\n checked={checked ?? false} // checked attr must always have a value to remain as a controlled component\n className={classNames('custom-control-input', inputClassName, {\n 'is-invalid': isInvalid,\n })}\n disabled={disabled}\n id={id}\n onChange={handleOnChange}\n data-testid={dataTestId}\n />\n <label\n className={classNames('custom-control-label', labelClassName)}\n htmlFor={id}\n >\n {children}\n </label>\n </div>\n );\n }\n);\n\n// Forward ref causes a false positive for display-name in eslint:\n// https://github.com/yannickcr/eslint-plugin-react/issues/2269\nCheckbox.displayName = 'Checkbox';\n\nCheckbox.propTypes = {\n /** Current value of the checkbox. */\n checked: (props, propName) => {\n const { [propName]: checkedType } = props;\n if (checkedType !== null && typeof checkedType !== 'boolean') {\n return new Error('Checked must be a boolean or null for indeterminate');\n }\n return null;\n },\n\n /** The node/text to put in the label of this checkbox */\n children: PropTypes.node.isRequired,\n\n /** An extra class name to add to the outer div component */\n className: PropTypes.string,\n\n /** An extra class for disabling the checkbox component */\n disabled: PropTypes.bool,\n\n /** An extra class name for the input component */\n inputClassName: PropTypes.string,\n\n /** Convenience for styling appropriately for an invalid value */\n isInvalid: PropTypes.bool,\n\n /** An extra class name for the label component */\n labelClassName: PropTypes.string,\n\n /** Triggered when the input is checked/unchecked */\n onChange: PropTypes.func,\n\n 'data-testid': PropTypes.string,\n};\n\nCheckbox.defaultProps = {\n checked: false,\n className: '',\n disabled: false,\n inputClassName: '',\n isInvalid: false,\n labelClassName: '',\n onChange: undefined,\n 'data-testid': undefined,\n};\n\nexport default Checkbox;\n"],"file":"Checkbox.js"}
1
+ {"version":3,"sources":["../src/Checkbox.tsx"],"names":["React","useState","useEffect","useCallback","classNames","PropTypes","shortid","useForwardedRef","Checkbox","forwardRef","props","forwardedRef","checked","children","className","disabled","inputClassName","isInvalid","labelClassName","name","onChange","dataTestId","id","ref","setIndeterminateProperty","current","indeterminate","handleOnChange","event","displayName","propTypes","propName","checkedType","Error","node","isRequired","string","bool","func","defaultProps","undefined"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,SAA1B,EAAqCC,WAArC,QAAwD,OAAxD;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,OAAP,MAAoB,SAApB;AACA,SAASC,eAAT,QAAgC,wBAAhC;;AAeA;AACA;AACA;AACA,IAAMC,QAAQ,gBAAGR,KAAK,CAACS,UAAN,CACf,CAACC,KAAD,EAAQC,YAAR,KAAyB;AACvB,MAAM;AACJC,IAAAA,OAAO,GAAG,KADN;AAEJC,IAAAA,QAFI;AAGJC,IAAAA,SAHI;AAIJC,IAAAA,QAJI;AAKJC,IAAAA,cALI;AAMJC,IAAAA,SANI;AAOJC,IAAAA,cAPI;AAQJC,IAAAA,IARI;AASJC,IAAAA,QATI;AAUJ,mBAAeC;AAVX,MAWFX,KAXJ;AAaA,MAAM,CAACY,EAAD,IAAOrB,QAAQ,CAACK,OAAO,EAAR,CAArB;AAEA,MAAMiB,GAAG,GAAGhB,eAAe,CAAmBI,YAAnB,CAA3B;AAEAT,EAAAA,SAAS,CACP,SAASsB,wBAAT,GAAoC;AAClC,QAAID,GAAG,CAACE,OAAR,EAAiB;AACf;AACAF,MAAAA,GAAG,CAACE,OAAJ,CAAYC,aAAZ,GAA4Bd,OAAO,KAAK,IAAxC;AACD;AACF,GANM,EAOP,CAACW,GAAD,EAAMX,OAAN,CAPO,CAAT;AAUA,MAAMe,cAA0D,GAAGxB,WAAW,CAC5EyB,KAAK,IAAI;AACP,QAAIL,GAAG,CAACE,OAAR,EAAiB;AACf;AACAF,MAAAA,GAAG,CAACE,OAAJ,CAAYC,aAAZ,GAA4Bd,OAAO,KAAK,IAAxC;AACD;;AAED,QAAIQ,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAACQ,KAAD,CAAR;AACD;AACF,GAV2E,EAW5E,CAACL,GAAD,EAAMX,OAAN,EAAeQ,QAAf,CAX4E,CAA9E;AAcA,sBACE;AAAK,IAAA,SAAS,EAAEhB,UAAU,CAAC,gCAAD,EAAmCU,SAAnC;AAA1B,kBACE;AACE,IAAA,IAAI,EAAC,UADP;AAEE,IAAA,GAAG,EAAES,GAFP;AAGE,IAAA,OAAO,EAAEX,OAAF,aAAEA,OAAF,cAAEA,OAAF,GAAa,KAHtB,CAG6B;AAH7B;AAIE,IAAA,SAAS,EAAER,UAAU,CAAC,sBAAD,EAAyBY,cAAzB,EAAyC;AAC5D,oBAAcC;AAD8C,KAAzC,CAJvB;AAOE,IAAA,QAAQ,EAAEF,QAPZ;AAQE,IAAA,EAAE,EAAEO,EARN;AASE,IAAA,IAAI,EAAEH,IATR;AAUE,IAAA,QAAQ,EAAEQ,cAVZ;AAWE,mBAAaN;AAXf,IADF,eAcE;AACE,IAAA,SAAS,EAAEjB,UAAU,CAAC,sBAAD,EAAyBc,cAAzB,CADvB;AAEE,IAAA,OAAO,EAAEI;AAFX,KAIGT,QAJH,CAdF,CADF;AAuBD,CAlEc,CAAjB,C,CAqEA;AACA;;AACAL,QAAQ,CAACqB,WAAT,GAAuB,UAAvB;AAEArB,QAAQ,CAACsB,SAAT,GAAqB;AACnB;AACAlB,EAAAA,OAAO,EAAE,CAACF,KAAD,EAAQqB,QAAR,KAAqB;AAC5B,QAAM;AAAE,OAACA,QAAD,GAAYC;AAAd,QAA8BtB,KAApC;;AACA,QAAIsB,WAAW,KAAK,IAAhB,IAAwB,OAAOA,WAAP,KAAuB,SAAnD,EAA8D;AAC5D,aAAO,IAAIC,KAAJ,CAAU,qDAAV,CAAP;AACD;;AACD,WAAO,IAAP;AACD,GARkB;;AAUnB;AACApB,EAAAA,QAAQ,EAAER,SAAS,CAAC6B,IAAV,CAAeC,UAXN;;AAanB;AACArB,EAAAA,SAAS,EAAET,SAAS,CAAC+B,MAdF;;AAgBnB;AACArB,EAAAA,QAAQ,EAAEV,SAAS,CAACgC,IAjBD;;AAmBnB;AACArB,EAAAA,cAAc,EAAEX,SAAS,CAAC+B,MApBP;;AAsBnB;AACAnB,EAAAA,SAAS,EAAEZ,SAAS,CAACgC,IAvBF;;AAyBnB;AACAnB,EAAAA,cAAc,EAAEb,SAAS,CAAC+B,MA1BP;;AA4BnB;AACAjB,EAAAA,IAAI,EAAEd,SAAS,CAAC+B,MA7BG;;AA+BnB;AACAhB,EAAAA,QAAQ,EAAEf,SAAS,CAACiC,IAhCD;AAkCnB,iBAAejC,SAAS,CAAC+B;AAlCN,CAArB;AAqCA5B,QAAQ,CAAC+B,YAAT,GAAwB;AACtB3B,EAAAA,OAAO,EAAE,KADa;AAEtBE,EAAAA,SAAS,EAAE,EAFW;AAGtBC,EAAAA,QAAQ,EAAE,KAHY;AAItBC,EAAAA,cAAc,EAAE,EAJM;AAKtBC,EAAAA,SAAS,EAAE,KALW;AAMtBC,EAAAA,cAAc,EAAE,EANM;AAOtBC,EAAAA,IAAI,EAAEqB,SAPgB;AAQtBpB,EAAAA,QAAQ,EAAEoB,SARY;AAStB,iBAAeA;AATO,CAAxB;AAYA,eAAehC,QAAf","sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport { useForwardedRef } from '@deephaven/react-hooks';\n\ninterface CheckboxProps {\n checked: boolean | null;\n className?: string;\n disabled?: boolean;\n inputClassName?: string;\n isInvalid?: boolean;\n labelClassName?: string;\n name?: string;\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n children?: React.ReactNode;\n 'data-testid'?: string;\n}\n\n/**\n * A simple checkbox component. Automatically generates an id so htmlFor/id attributes are unique.\n */\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (props, forwardedRef) => {\n const {\n checked = false,\n children,\n className,\n disabled,\n inputClassName,\n isInvalid,\n labelClassName,\n name,\n onChange,\n 'data-testid': dataTestId,\n } = props;\n\n const [id] = useState(shortid());\n\n const ref = useForwardedRef<HTMLInputElement>(forwardedRef);\n\n useEffect(\n function setIndeterminateProperty() {\n if (ref.current) {\n // indeterminate is not actually an html attr, can only be set via JS\n ref.current.indeterminate = checked === null;\n }\n },\n [ref, checked]\n );\n\n const handleOnChange: React.ChangeEventHandler<HTMLInputElement> = useCallback(\n event => {\n if (ref.current) {\n // ref.current can be null in tests, doesn't impact behaviour\n ref.current.indeterminate = checked === null;\n }\n\n if (onChange) {\n onChange(event);\n }\n },\n [ref, checked, onChange]\n );\n\n return (\n <div className={classNames('custom-control custom-checkbox', className)}>\n <input\n type=\"checkbox\"\n ref={ref}\n checked={checked ?? false} // checked attr must always have a value to remain as a controlled component\n className={classNames('custom-control-input', inputClassName, {\n 'is-invalid': isInvalid,\n })}\n disabled={disabled}\n id={id}\n name={name}\n onChange={handleOnChange}\n data-testid={dataTestId}\n />\n <label\n className={classNames('custom-control-label', labelClassName)}\n htmlFor={id}\n >\n {children}\n </label>\n </div>\n );\n }\n);\n\n// Forward ref causes a false positive for display-name in eslint:\n// https://github.com/yannickcr/eslint-plugin-react/issues/2269\nCheckbox.displayName = 'Checkbox';\n\nCheckbox.propTypes = {\n /** Current value of the checkbox. */\n checked: (props, propName) => {\n const { [propName]: checkedType } = props;\n if (checkedType !== null && typeof checkedType !== 'boolean') {\n return new Error('Checked must be a boolean or null for indeterminate');\n }\n return null;\n },\n\n /** The node/text to put in the label of this checkbox */\n children: PropTypes.node.isRequired,\n\n /** An extra class name to add to the outer div component */\n className: PropTypes.string,\n\n /** An extra class for disabling the checkbox component */\n disabled: PropTypes.bool,\n\n /** An extra class name for the input component */\n inputClassName: PropTypes.string,\n\n /** Convenience for styling appropriately for an invalid value */\n isInvalid: PropTypes.bool,\n\n /** An extra class name for the label component */\n labelClassName: PropTypes.string,\n\n /** Checkbox input name attribute */\n name: PropTypes.string,\n\n /** Triggered when the input is checked/unchecked */\n onChange: PropTypes.func,\n\n 'data-testid': PropTypes.string,\n};\n\nCheckbox.defaultProps = {\n checked: false,\n className: '',\n disabled: false,\n inputClassName: '',\n isInvalid: false,\n labelClassName: '',\n name: undefined,\n onChange: undefined,\n 'data-testid': undefined,\n};\n\nexport default Checkbox;\n"],"file":"Checkbox.js"}
@@ -62,7 +62,7 @@ declare class DraggableItemList<T> extends PureComponent<DraggableItemListProps<
62
62
  }): React.ReactNode;
63
63
  static renderTextItem({ text, badgeText, className, }: {
64
64
  text: string;
65
- badgeText?: string;
65
+ badgeText: string;
66
66
  className: string;
67
67
  }): JSX.Element;
68
68
  static renderItem<P extends DefaultListItem>({ item, isClone, selectedCount, }: DraggableRenderItemProps<P>): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableItemList.d.ts","sourceRoot":"","sources":["../src/DraggableItemList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DraggableItemList.d.ts","sourceRoot":"","sources":["../src/DraggableItemList.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/DraggableItemList.tsx"],"names":["React","PureComponent","classNames","memoize","Draggable","Droppable","FontAwesomeIcon","vsGripper","RangeUtils","ItemList","Tooltip","DraggableItemList","renderHandle","renderBadge","text","renderTextItem","badgeText","className","renderItem","item","isClone","selectedCount","displayValue","value","getDraggableId","draggablePrefix","itemIndex","getDraggableIndex","draggableId","parseInt","split","pop","constructor","props","isFocused","isSelected","isDragDisabled","style","provided","innerRef","draggableProps","dragHandleProps","max","CACHE_SIZE","getCachedDraggableItem","draggingItemClassName","items","offset","snapshot","rubric","state","index","source","handleSelectionChange","bind","itemList","createRef","selectItem","current","focusItem","scrollToItem","selectedRanges","setState","count","onSelectionChange","render","droppableId","isDoubleClickSelect","isDropDisabled","isMultiSelect","isStickyBottom","itemCount","onFocusChange","onSelect","onViewportChange","rowHeight","dataTestId","getCachedRenderClone","draggingFromThisWith","isDraggingOver","draggingOverWith","droppableProps","getCachedRenderDraggableItem","DEFAULT_ROW_HEIGHT","isDeselectOnClick","disableSelect","undefined"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoizee';\nimport { Draggable, Droppable, DraggableChildrenFn } from 'react-beautiful-dnd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGripper } from '@deephaven/icons';\nimport { RangeUtils, Range } from '@deephaven/utils';\nimport ItemList, {\n RenderItemProps,\n DefaultListItem,\n ItemListProps,\n} from './ItemList';\nimport { Tooltip } from './popper';\nimport './DraggableItemList.scss';\n\nexport type DraggableRenderItemProps<T> = RenderItemProps<T> & {\n isClone?: boolean;\n selectedCount?: number;\n};\n\ntype DraggableRenderItemFn<T> = (\n props: DraggableRenderItemProps<T>\n) => React.ReactNode;\n\ntype DraggableItemListProps<T> = Omit<\n ItemListProps<T>,\n 'overscanCount' | 'focusSelector' | 'isDragSelect'\n> & {\n className: string;\n draggingItemClassName: string;\n isDropDisabled: boolean;\n // Whether to allow dragging items from this list\n isDragDisabled: boolean;\n\n renderItem: DraggableRenderItemFn<T>;\n style: React.CSSProperties;\n\n // The prefix to add to all draggable item IDs\n draggablePrefix: string;\n // The ID to give the droppable list\n droppableId: string;\n\n 'data-testid'?: string;\n};\n\ntype DraggableItemListState = {\n selectedCount: number;\n};\n\n/**\n * Show a draggable item list. It _must_ be used within a `DragDropContext`.\n * This implementation uses react-beautiful-dnd for handling dragging and dropping of items.\n * We use ItemList to handle selection for multi drag and drop (not built in to react-beautiful-dnd).\n * One caveat with the use of react-beautiful-dnd is that it doesn't allow a drag to be initiated while\n * using a modifier key: https://github.com/atlassian/react-beautiful-dnd/issues/1678\n */\nclass DraggableItemList<T> extends PureComponent<\n DraggableItemListProps<T>,\n DraggableItemListState\n> {\n static DEFAULT_ROW_HEIGHT = 30;\n\n static defaultProps = {\n className: '',\n draggingItemClassName: '',\n offset: 0,\n items: [],\n rowHeight: DraggableItemList.DEFAULT_ROW_HEIGHT,\n isDeselectOnClick: true,\n isDoubleClickSelect: true,\n isDropDisabled: false,\n isDragDisabled: false,\n isMultiSelect: false,\n isStickyBottom: false,\n disableSelect: false,\n style: null,\n onFocusChange(): void {\n // no-op\n },\n onSelect(): void {\n // no-op\n },\n onSelectionChange(): void {\n // no-op\n },\n onViewportChange(): void {\n // no-op\n },\n renderItem: DraggableItemList.renderItem,\n selectedRanges: [],\n draggablePrefix: 'draggable-item',\n droppableId: 'droppable-item-list',\n 'data-testid': undefined,\n };\n\n static renderHandle(): JSX.Element {\n return (\n <div>\n <Tooltip>Drag to re-order</Tooltip>\n <FontAwesomeIcon icon={vsGripper} />\n </div>\n );\n }\n\n static renderBadge({ text }: { text?: string }): React.ReactNode {\n return text ? <span className=\"number-badge\">{text}</span> : null;\n }\n\n static renderTextItem({\n text,\n badgeText = '',\n className = '',\n }: {\n text: string;\n badgeText?: string;\n className: string;\n }): JSX.Element {\n return (\n <div\n className={classNames(\n 'item-list-item-content',\n 'draggable-item-list-item-content',\n className\n )}\n >\n <span className=\"title\">{text}</span>\n {DraggableItemList.renderBadge({ text: badgeText })}\n {DraggableItemList.renderHandle()}\n </div>\n );\n }\n\n static renderItem<P extends DefaultListItem>({\n item,\n isClone,\n selectedCount,\n }: DraggableRenderItemProps<P>): JSX.Element {\n const text = item && (item.displayValue || item.value || `${item}`);\n const badgeText = isClone ? `${selectedCount}` : '';\n const className = isClone ? 'item-list-item-clone' : '';\n return DraggableItemList.renderTextItem({ text, badgeText, className });\n }\n\n static getDraggableId(draggablePrefix: string, itemIndex: number): string {\n return `${draggablePrefix}/${itemIndex}`;\n }\n\n static getDraggableIndex(draggableId: string): number {\n return parseInt(draggableId.split('/').pop() || '', 10);\n }\n\n constructor(props: DraggableItemListProps<T>) {\n super(props);\n\n this.handleSelectionChange = this.handleSelectionChange.bind(this);\n\n this.itemList = React.createRef();\n\n this.state = {\n selectedCount: 0,\n };\n }\n\n itemList: React.RefObject<ItemList<T>>;\n\n selectItem(itemIndex: number): void {\n this.itemList.current?.selectItem(itemIndex);\n }\n\n focusItem(itemIndex: number): void {\n this.itemList.current?.focusItem(itemIndex);\n }\n\n scrollToItem(itemIndex: number): void {\n this.itemList.current?.scrollToItem(itemIndex);\n }\n\n getCachedDraggableItem = memoize(\n (\n draggablePrefix: string,\n renderItem: DraggableRenderItemFn<T>,\n item: T,\n itemIndex: number,\n isFocused: boolean,\n isSelected: boolean,\n isDragDisabled: boolean,\n style: React.CSSProperties\n ) => (\n <Draggable\n key={itemIndex}\n draggableId={DraggableItemList.getDraggableId(\n draggablePrefix,\n itemIndex\n )}\n index={itemIndex}\n isDragDisabled={isDragDisabled}\n >\n {provided => (\n <div\n role=\"menuitem\"\n className=\"draggable-item-list-item\"\n ref={provided.innerRef}\n tabIndex={-1}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.draggableProps}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.dragHandleProps}\n >\n {renderItem({\n item,\n itemIndex,\n isFocused,\n isSelected,\n style,\n isClone: false,\n })}\n </div>\n )}\n </Draggable>\n ),\n { max: ItemList.CACHE_SIZE }\n );\n\n handleSelectionChange(selectedRanges: Range[]): void {\n this.setState({ selectedCount: RangeUtils.count(selectedRanges) });\n\n const { onSelectionChange } = this.props;\n onSelectionChange(selectedRanges);\n }\n\n getCachedRenderDraggableItem = memoize(\n (\n draggablePrefix: string,\n isDragDisabled: boolean,\n renderItem: DraggableRenderItemFn<T>\n ) => ({\n item,\n itemIndex,\n isFocused,\n isSelected,\n style,\n }: RenderItemProps<T>) =>\n this.getCachedDraggableItem(\n draggablePrefix,\n renderItem,\n item,\n itemIndex,\n isFocused,\n isSelected,\n isDragDisabled,\n style\n ),\n { max: 1 }\n );\n\n getCachedRenderClone = memoize(\n (\n draggingItemClassName: string,\n items: T[],\n offset: number,\n renderItem: DraggableRenderItemFn<T>\n ): DraggableChildrenFn => (provided, snapshot, rubric) => {\n const { selectedCount } = this.state;\n const { index: itemIndex } = rubric.source;\n const item = items[itemIndex - offset];\n return (\n <div\n className={classNames(\n 'draggable-item-list-dragging-item-container',\n draggingItemClassName\n )}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.draggableProps}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.dragHandleProps}\n ref={provided.innerRef}\n >\n <div\n className={classNames(\n 'draggable-item-list-dragging-item',\n { 'two-dragged': selectedCount === 2 },\n { 'multiple-dragged': selectedCount > 2 }\n )}\n >\n {renderItem({\n item,\n itemIndex,\n isFocused: false,\n isSelected: true,\n style: {},\n isClone: true,\n selectedCount,\n })}\n </div>\n </div>\n );\n },\n { max: 1 }\n );\n\n render(): JSX.Element {\n const {\n className,\n draggablePrefix,\n draggingItemClassName,\n droppableId,\n isDoubleClickSelect,\n isDragDisabled,\n isDropDisabled,\n isMultiSelect,\n isStickyBottom,\n itemCount,\n items,\n offset,\n onFocusChange,\n onSelect,\n onViewportChange,\n renderItem,\n rowHeight,\n selectedRanges,\n style,\n 'data-testid': dataTestId,\n } = this.props;\n return (\n <Droppable\n isDropDisabled={isDropDisabled}\n droppableId={droppableId}\n mode=\"virtual\"\n renderClone={this.getCachedRenderClone(\n draggingItemClassName,\n items,\n offset,\n renderItem\n )}\n data-testid={dataTestId}\n >\n {(provided, snapshot) => (\n <div\n role=\"menu\"\n className={classNames('draggable-item-list', className, {\n 'is-drop-disabled': isDropDisabled,\n 'is-drag-disabled': isDragDisabled,\n 'is-dragging-from-this': snapshot.draggingFromThisWith,\n 'is-dragging-over': snapshot.isDraggingOver,\n 'is-dropping': snapshot.draggingOverWith,\n })}\n style={style}\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.droppableProps}\n >\n <ItemList\n focusSelector=\".draggable-item-list-item\"\n isDoubleClickSelect={isDoubleClickSelect}\n isDragSelect={false}\n isMultiSelect={isMultiSelect}\n isStickyBottom={isStickyBottom}\n itemCount={itemCount}\n items={items}\n onFocusChange={onFocusChange}\n onSelect={onSelect}\n onSelectionChange={this.handleSelectionChange}\n onViewportChange={onViewportChange}\n offset={offset}\n ref={this.itemList}\n renderItem={this.getCachedRenderDraggableItem(\n draggablePrefix,\n isDragDisabled,\n renderItem\n )}\n rowHeight={rowHeight}\n selectedRanges={selectedRanges}\n />\n </div>\n )}\n </Droppable>\n );\n }\n}\n\nexport default DraggableItemList;\n"],"file":"DraggableItemList.js"}
1
+ {"version":3,"sources":["../src/DraggableItemList.tsx"],"names":["React","PureComponent","classNames","memoize","Draggable","Droppable","FontAwesomeIcon","vsGripper","RangeUtils","ItemList","Tooltip","DraggableItemList","renderHandle","renderBadge","text","renderTextItem","badgeText","className","renderItem","item","isClone","selectedCount","displayValue","value","getDraggableId","draggablePrefix","itemIndex","getDraggableIndex","draggableId","parseInt","split","pop","constructor","props","isFocused","isSelected","isDragDisabled","style","provided","innerRef","draggableProps","dragHandleProps","max","CACHE_SIZE","getCachedDraggableItem","draggingItemClassName","items","offset","snapshot","rubric","state","index","source","handleSelectionChange","bind","itemList","createRef","selectItem","current","focusItem","scrollToItem","selectedRanges","setState","count","onSelectionChange","render","droppableId","isDoubleClickSelect","isDropDisabled","isMultiSelect","isStickyBottom","itemCount","onFocusChange","onSelect","onViewportChange","rowHeight","dataTestId","getCachedRenderClone","draggingFromThisWith","isDraggingOver","draggingOverWith","droppableProps","getCachedRenderDraggableItem","DEFAULT_ROW_HEIGHT","isDeselectOnClick","disableSelect","undefined"],"mappings":";;;;AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,OAAP,MAAoB,UAApB;AACA,SAASC,SAAT,EAAoBC,SAApB,QAA0D,qBAA1D;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SAASC,UAAT,QAAkC,kBAAlC;OACOC,Q;SAKEC,O;;;AAqCT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAN,SAAmCV,aAAnC,CAGE;AAoCmB,SAAZW,YAAY,GAAgB;AACjC,wBACE,8CACE,oBAAC,OAAD,2BADF,eAEE,oBAAC,eAAD;AAAiB,MAAA,IAAI,EAAEL;AAAvB,MAFF,CADF;AAMD;;AAEiB,SAAXM,WAAW,OAA+C;AAAA,QAA9C;AAAEC,MAAAA;AAAF,KAA8C;AAC/D,WAAOA,IAAI,gBAAG;AAAM,MAAA,SAAS,EAAC;AAAhB,OAAgCA,IAAhC,CAAH,GAAkD,IAA7D;AACD;;AAEoB,SAAdC,cAAc,QAQL;AAAA,QARM;AACpBD,MAAAA,IADoB;AAEpBE,MAAAA,SAAS,GAAG,EAFQ;AAGpBC,MAAAA,SAAS,GAAG;AAHQ,KAQN;AACd,wBACE;AACE,MAAA,SAAS,EAAEf,UAAU,CACnB,wBADmB,EAEnB,kCAFmB,EAGnBe,SAHmB;AADvB,oBAOE;AAAM,MAAA,SAAS,EAAC;AAAhB,OAAyBH,IAAzB,CAPF,EAQGH,iBAAiB,CAACE,WAAlB,CAA8B;AAAEC,MAAAA,IAAI,EAAEE;AAAR,KAA9B,CARH,EASGL,iBAAiB,CAACC,YAAlB,EATH,CADF;AAaD;;AAEgB,SAAVM,UAAU,QAI4B;AAAA,QAJA;AAC3CC,MAAAA,IAD2C;AAE3CC,MAAAA,OAF2C;AAG3CC,MAAAA;AAH2C,KAIA;AAC3C,QAAMP,IAAI,GAAGK,IAAI,KAAKA,IAAI,CAACG,YAAL,IAAqBH,IAAI,CAACI,KAA1B,cAAsCJ,IAAtC,CAAL,CAAjB;AACA,QAAMH,SAAS,GAAGI,OAAO,aAAMC,aAAN,IAAwB,EAAjD;AACA,QAAMJ,SAAS,GAAGG,OAAO,GAAG,sBAAH,GAA4B,EAArD;AACA,WAAOT,iBAAiB,CAACI,cAAlB,CAAiC;AAAED,MAAAA,IAAF;AAAQE,MAAAA,SAAR;AAAmBC,MAAAA;AAAnB,KAAjC,CAAP;AACD;;AAEoB,SAAdO,cAAc,CAACC,eAAD,EAA0BC,SAA1B,EAAqD;AACxE,qBAAUD,eAAV,cAA6BC,SAA7B;AACD;;AAEuB,SAAjBC,iBAAiB,CAACC,WAAD,EAA8B;AACpD,WAAOC,QAAQ,CAACD,WAAW,CAACE,KAAZ,CAAkB,GAAlB,EAAuBC,GAAvB,MAAgC,EAAjC,EAAqC,EAArC,CAAf;AACD;;AAEDC,EAAAA,WAAW,CAACC,KAAD,EAAmC;AAC5C,UAAMA,KAAN;;AAD4C;;AAAA,oDA0BrB9B,OAAO,CAC9B,CACEsB,eADF,EAEEP,UAFF,EAGEC,IAHF,EAIEO,SAJF,EAKEQ,SALF,EAMEC,UANF,EAOEC,cAPF,EAQEC,KARF,kBAUE,oBAAC,SAAD;AACE,MAAA,GAAG,EAAEX,SADP;AAEE,MAAA,WAAW,EAAEf,iBAAiB,CAACa,cAAlB,CACXC,eADW,EAEXC,SAFW,CAFf;AAME,MAAA,KAAK,EAAEA,SANT;AAOE,MAAA,cAAc,EAAEU;AAPlB,OASGE,QAAQ,iBACP;AACE,MAAA,IAAI,EAAC,UADP;AAEE,MAAA,SAAS,EAAC,0BAFZ;AAGE,MAAA,GAAG,EAAEA,QAAQ,CAACC,QAHhB;AAIE,MAAA,QAAQ,EAAE,CAAC,CAJb,CAKE;;AALF,OAMMD,QAAQ,CAACE,cANf,EAQMF,QAAQ,CAACG,eARf,GAUGvB,UAAU,CAAC;AACVC,MAAAA,IADU;AAEVO,MAAAA,SAFU;AAGVQ,MAAAA,SAHU;AAIVC,MAAAA,UAJU;AAKVE,MAAAA,KALU;AAMVjB,MAAAA,OAAO,EAAE;AANC,KAAD,CAVb,CAVJ,CAX4B,EA2C9B;AAAEsB,MAAAA,GAAG,EAAEjC,QAAQ,CAACkC;AAAhB,KA3C8B,CA1Bc;;AAAA,0DA+EfxC,OAAO,CACpC,CACEsB,eADF,EAEEW,cAFF,EAGElB,UAHF,KAIK;AAAA,UAAC;AACJC,QAAAA,IADI;AAEJO,QAAAA,SAFI;AAGJQ,QAAAA,SAHI;AAIJC,QAAAA,UAJI;AAKJE,QAAAA;AALI,OAAD;AAAA,aAOH,KAAKO,sBAAL,CACEnB,eADF,EAEEP,UAFF,EAGEC,IAHF,EAIEO,SAJF,EAKEQ,SALF,EAMEC,UANF,EAOEC,cAPF,EAQEC,KARF,CAPG;AAAA,KAL+B,EAsBpC;AAAEK,MAAAA,GAAG,EAAE;AAAP,KAtBoC,CA/EQ;;AAAA,kDAwGvBvC,OAAO,CAC5B,CACE0C,qBADF,EAEEC,KAFF,EAGEC,MAHF,EAIE7B,UAJF,KAK0B,CAACoB,QAAD,EAAWU,QAAX,EAAqBC,MAArB,KAAgC;AACxD,UAAM;AAAE5B,QAAAA;AAAF,UAAoB,KAAK6B,KAA/B;AACA,UAAM;AAAEC,QAAAA,KAAK,EAAEzB;AAAT,UAAuBuB,MAAM,CAACG,MAApC;AACA,UAAMjC,IAAI,GAAG2B,KAAK,CAACpB,SAAS,GAAGqB,MAAb,CAAlB;AACA,0BACE;AACE,QAAA,SAAS,EAAE7C,UAAU,CACnB,6CADmB,EAEnB2C,qBAFmB,CADvB,CAKE;;AALF,SAMMP,QAAQ,CAACE,cANf,EAQMF,QAAQ,CAACG,eARf;AASE,QAAA,GAAG,EAAEH,QAAQ,CAACC;AAThB,uBAWE;AACE,QAAA,SAAS,EAAErC,UAAU,CACnB,mCADmB,EAEnB;AAAE,yBAAemB,aAAa,KAAK;AAAnC,SAFmB,EAGnB;AAAE,8BAAoBA,aAAa,GAAG;AAAtC,SAHmB;AADvB,SAOGH,UAAU,CAAC;AACVC,QAAAA,IADU;AAEVO,QAAAA,SAFU;AAGVQ,QAAAA,SAAS,EAAE,KAHD;AAIVC,QAAAA,UAAU,EAAE,IAJF;AAKVE,QAAAA,KAAK,EAAE,EALG;AAMVjB,QAAAA,OAAO,EAAE,IANC;AAOVC,QAAAA;AAPU,OAAD,CAPb,CAXF,CADF;AA+BD,KAzC2B,EA0C5B;AAAEqB,MAAAA,GAAG,EAAE;AAAP,KA1C4B,CAxGgB;;AAG5C,SAAKW,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BC,IAA3B,CAAgC,IAAhC,CAA7B;AAEA,SAAKC,QAAL,gBAAgBvD,KAAK,CAACwD,SAAN,EAAhB;AAEA,SAAKN,KAAL,GAAa;AACX7B,MAAAA,aAAa,EAAE;AADJ,KAAb;AAGD;;AAIDoC,EAAAA,UAAU,CAAC/B,SAAD,EAA0B;AAAA;;AAClC,kCAAK6B,QAAL,CAAcG,OAAd,gFAAuBD,UAAvB,CAAkC/B,SAAlC;AACD;;AAEDiC,EAAAA,SAAS,CAACjC,SAAD,EAA0B;AAAA;;AACjC,mCAAK6B,QAAL,CAAcG,OAAd,kFAAuBC,SAAvB,CAAiCjC,SAAjC;AACD;;AAEDkC,EAAAA,YAAY,CAAClC,SAAD,EAA0B;AAAA;;AACpC,mCAAK6B,QAAL,CAAcG,OAAd,kFAAuBE,YAAvB,CAAoClC,SAApC;AACD;;AAgDD2B,EAAAA,qBAAqB,CAACQ,cAAD,EAAgC;AACnD,SAAKC,QAAL,CAAc;AAAEzC,MAAAA,aAAa,EAAEb,UAAU,CAACuD,KAAX,CAAiBF,cAAjB;AAAjB,KAAd;AAEA,QAAM;AAAEG,MAAAA;AAAF,QAAwB,KAAK/B,KAAnC;AACA+B,IAAAA,iBAAiB,CAACH,cAAD,CAAjB;AACD;;AAwEDI,EAAAA,MAAM,GAAgB;AACpB,QAAM;AACJhD,MAAAA,SADI;AAEJQ,MAAAA,eAFI;AAGJoB,MAAAA,qBAHI;AAIJqB,MAAAA,WAJI;AAKJC,MAAAA,mBALI;AAMJ/B,MAAAA,cANI;AAOJgC,MAAAA,cAPI;AAQJC,MAAAA,aARI;AASJC,MAAAA,cATI;AAUJC,MAAAA,SAVI;AAWJzB,MAAAA,KAXI;AAYJC,MAAAA,MAZI;AAaJyB,MAAAA,aAbI;AAcJC,MAAAA,QAdI;AAeJC,MAAAA,gBAfI;AAgBJxD,MAAAA,UAhBI;AAiBJyD,MAAAA,SAjBI;AAkBJd,MAAAA,cAlBI;AAmBJxB,MAAAA,KAnBI;AAoBJ,qBAAeuC;AApBX,QAqBF,KAAK3C,KArBT;AAsBA,wBACE,oBAAC,SAAD;AACE,MAAA,cAAc,EAAEmC,cADlB;AAEE,MAAA,WAAW,EAAEF,WAFf;AAGE,MAAA,IAAI,EAAC,SAHP;AAIE,MAAA,WAAW,EAAE,KAAKW,oBAAL,CACXhC,qBADW,EAEXC,KAFW,EAGXC,MAHW,EAIX7B,UAJW,CAJf;AAUE,qBAAa0D;AAVf,OAYG,CAACtC,QAAD,EAAWU,QAAX,kBACC;AACE,MAAA,IAAI,EAAC,MADP;AAEE,MAAA,SAAS,EAAE9C,UAAU,CAAC,qBAAD,EAAwBe,SAAxB,EAAmC;AACtD,4BAAoBmD,cADkC;AAEtD,4BAAoBhC,cAFkC;AAGtD,iCAAyBY,QAAQ,CAAC8B,oBAHoB;AAItD,4BAAoB9B,QAAQ,CAAC+B,cAJyB;AAKtD,uBAAe/B,QAAQ,CAACgC;AAL8B,OAAnC,CAFvB;AASE,MAAA,KAAK,EAAE3C,KATT;AAUE,MAAA,GAAG,EAAEC,QAAQ,CAACC,QAVhB,CAWE;;AAXF,OAYMD,QAAQ,CAAC2C,cAZf,gBAcE,oBAAC,QAAD;AACE,MAAA,aAAa,EAAC,2BADhB;AAEE,MAAA,mBAAmB,EAAEd,mBAFvB;AAGE,MAAA,YAAY,EAAE,KAHhB;AAIE,MAAA,aAAa,EAAEE,aAJjB;AAKE,MAAA,cAAc,EAAEC,cALlB;AAME,MAAA,SAAS,EAAEC,SANb;AAOE,MAAA,KAAK,EAAEzB,KAPT;AAQE,MAAA,aAAa,EAAE0B,aARjB;AASE,MAAA,QAAQ,EAAEC,QATZ;AAUE,MAAA,iBAAiB,EAAE,KAAKpB,qBAV1B;AAWE,MAAA,gBAAgB,EAAEqB,gBAXpB;AAYE,MAAA,MAAM,EAAE3B,MAZV;AAaE,MAAA,GAAG,EAAE,KAAKQ,QAbZ;AAcE,MAAA,UAAU,EAAE,KAAK2B,4BAAL,CACVzD,eADU,EAEVW,cAFU,EAGVlB,UAHU,CAdd;AAmBE,MAAA,SAAS,EAAEyD,SAnBb;AAoBE,MAAA,cAAc,EAAEd;AApBlB,MAdF,CAbJ,CADF;AAsDD;;AA9TD;;gBAHIlD,iB,wBAIwB,E;;gBAJxBA,iB,kBAMkB;AACpBM,EAAAA,SAAS,EAAE,EADS;AAEpB4B,EAAAA,qBAAqB,EAAE,EAFH;AAGpBE,EAAAA,MAAM,EAAE,CAHY;AAIpBD,EAAAA,KAAK,EAAE,EAJa;AAKpB6B,EAAAA,SAAS,EAAEhE,iBAAiB,CAACwE,kBALT;AAMpBC,EAAAA,iBAAiB,EAAE,IANC;AAOpBjB,EAAAA,mBAAmB,EAAE,IAPD;AAQpBC,EAAAA,cAAc,EAAE,KARI;AASpBhC,EAAAA,cAAc,EAAE,KATI;AAUpBiC,EAAAA,aAAa,EAAE,KAVK;AAWpBC,EAAAA,cAAc,EAAE,KAXI;AAYpBe,EAAAA,aAAa,EAAE,KAZK;AAapBhD,EAAAA,KAAK,EAAE,IAba;;AAcpBmC,EAAAA,aAAa,GAAS,CACpB;AACD,GAhBmB;;AAiBpBC,EAAAA,QAAQ,GAAS,CACf;AACD,GAnBmB;;AAoBpBT,EAAAA,iBAAiB,GAAS,CACxB;AACD,GAtBmB;;AAuBpBU,EAAAA,gBAAgB,GAAS,CACvB;AACD,GAzBmB;;AA0BpBxD,EAAAA,UAAU,EAAEP,iBAAiB,CAACO,UA1BV;AA2BpB2C,EAAAA,cAAc,EAAE,EA3BI;AA4BpBpC,EAAAA,eAAe,EAAE,gBA5BG;AA6BpByC,EAAAA,WAAW,EAAE,qBA7BO;AA8BpB,iBAAeoB;AA9BK,C;;AA8TxB,eAAe3E,iBAAf","sourcesContent":["import React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoizee';\nimport { Draggable, Droppable, DraggableChildrenFn } from 'react-beautiful-dnd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGripper } from '@deephaven/icons';\nimport { RangeUtils, Range } from '@deephaven/utils';\nimport ItemList, {\n RenderItemProps,\n DefaultListItem,\n ItemListProps,\n} from './ItemList';\nimport { Tooltip } from './popper';\nimport './DraggableItemList.scss';\n\nexport type DraggableRenderItemProps<T> = RenderItemProps<T> & {\n isClone?: boolean;\n selectedCount?: number;\n};\n\ntype DraggableRenderItemFn<T> = (\n props: DraggableRenderItemProps<T>\n) => React.ReactNode;\n\ntype DraggableItemListProps<T> = Omit<\n ItemListProps<T>,\n 'overscanCount' | 'focusSelector' | 'isDragSelect'\n> & {\n className: string;\n draggingItemClassName: string;\n isDropDisabled: boolean;\n // Whether to allow dragging items from this list\n isDragDisabled: boolean;\n\n renderItem: DraggableRenderItemFn<T>;\n style: React.CSSProperties;\n\n // The prefix to add to all draggable item IDs\n draggablePrefix: string;\n // The ID to give the droppable list\n droppableId: string;\n\n 'data-testid'?: string;\n};\n\ntype DraggableItemListState = {\n selectedCount: number;\n};\n\n/**\n * Show a draggable item list. It _must_ be used within a `DragDropContext`.\n * This implementation uses react-beautiful-dnd for handling dragging and dropping of items.\n * We use ItemList to handle selection for multi drag and drop (not built in to react-beautiful-dnd).\n * One caveat with the use of react-beautiful-dnd is that it doesn't allow a drag to be initiated while\n * using a modifier key: https://github.com/atlassian/react-beautiful-dnd/issues/1678\n */\nclass DraggableItemList<T> extends PureComponent<\n DraggableItemListProps<T>,\n DraggableItemListState\n> {\n static DEFAULT_ROW_HEIGHT = 30;\n\n static defaultProps = {\n className: '',\n draggingItemClassName: '',\n offset: 0,\n items: [],\n rowHeight: DraggableItemList.DEFAULT_ROW_HEIGHT,\n isDeselectOnClick: true,\n isDoubleClickSelect: true,\n isDropDisabled: false,\n isDragDisabled: false,\n isMultiSelect: false,\n isStickyBottom: false,\n disableSelect: false,\n style: null,\n onFocusChange(): void {\n // no-op\n },\n onSelect(): void {\n // no-op\n },\n onSelectionChange(): void {\n // no-op\n },\n onViewportChange(): void {\n // no-op\n },\n renderItem: DraggableItemList.renderItem,\n selectedRanges: [],\n draggablePrefix: 'draggable-item',\n droppableId: 'droppable-item-list',\n 'data-testid': undefined,\n };\n\n static renderHandle(): JSX.Element {\n return (\n <div>\n <Tooltip>Drag to re-order</Tooltip>\n <FontAwesomeIcon icon={vsGripper} />\n </div>\n );\n }\n\n static renderBadge({ text }: { text?: string }): React.ReactNode {\n return text ? <span className=\"number-badge\">{text}</span> : null;\n }\n\n static renderTextItem({\n text,\n badgeText = '',\n className = '',\n }: {\n text: string;\n badgeText: string;\n className: string;\n }): JSX.Element {\n return (\n <div\n className={classNames(\n 'item-list-item-content',\n 'draggable-item-list-item-content',\n className\n )}\n >\n <span className=\"title\">{text}</span>\n {DraggableItemList.renderBadge({ text: badgeText })}\n {DraggableItemList.renderHandle()}\n </div>\n );\n }\n\n static renderItem<P extends DefaultListItem>({\n item,\n isClone,\n selectedCount,\n }: DraggableRenderItemProps<P>): JSX.Element {\n const text = item && (item.displayValue || item.value || `${item}`);\n const badgeText = isClone ? `${selectedCount}` : '';\n const className = isClone ? 'item-list-item-clone' : '';\n return DraggableItemList.renderTextItem({ text, badgeText, className });\n }\n\n static getDraggableId(draggablePrefix: string, itemIndex: number): string {\n return `${draggablePrefix}/${itemIndex}`;\n }\n\n static getDraggableIndex(draggableId: string): number {\n return parseInt(draggableId.split('/').pop() || '', 10);\n }\n\n constructor(props: DraggableItemListProps<T>) {\n super(props);\n\n this.handleSelectionChange = this.handleSelectionChange.bind(this);\n\n this.itemList = React.createRef();\n\n this.state = {\n selectedCount: 0,\n };\n }\n\n itemList: React.RefObject<ItemList<T>>;\n\n selectItem(itemIndex: number): void {\n this.itemList.current?.selectItem(itemIndex);\n }\n\n focusItem(itemIndex: number): void {\n this.itemList.current?.focusItem(itemIndex);\n }\n\n scrollToItem(itemIndex: number): void {\n this.itemList.current?.scrollToItem(itemIndex);\n }\n\n getCachedDraggableItem = memoize(\n (\n draggablePrefix: string,\n renderItem: DraggableRenderItemFn<T>,\n item: T,\n itemIndex: number,\n isFocused: boolean,\n isSelected: boolean,\n isDragDisabled: boolean,\n style: React.CSSProperties\n ) => (\n <Draggable\n key={itemIndex}\n draggableId={DraggableItemList.getDraggableId(\n draggablePrefix,\n itemIndex\n )}\n index={itemIndex}\n isDragDisabled={isDragDisabled}\n >\n {provided => (\n <div\n role=\"menuitem\"\n className=\"draggable-item-list-item\"\n ref={provided.innerRef}\n tabIndex={-1}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.draggableProps}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.dragHandleProps}\n >\n {renderItem({\n item,\n itemIndex,\n isFocused,\n isSelected,\n style,\n isClone: false,\n })}\n </div>\n )}\n </Draggable>\n ),\n { max: ItemList.CACHE_SIZE }\n );\n\n handleSelectionChange(selectedRanges: Range[]): void {\n this.setState({ selectedCount: RangeUtils.count(selectedRanges) });\n\n const { onSelectionChange } = this.props;\n onSelectionChange(selectedRanges);\n }\n\n getCachedRenderDraggableItem = memoize(\n (\n draggablePrefix: string,\n isDragDisabled: boolean,\n renderItem: DraggableRenderItemFn<T>\n ) => ({\n item,\n itemIndex,\n isFocused,\n isSelected,\n style,\n }: RenderItemProps<T>) =>\n this.getCachedDraggableItem(\n draggablePrefix,\n renderItem,\n item,\n itemIndex,\n isFocused,\n isSelected,\n isDragDisabled,\n style\n ),\n { max: 1 }\n );\n\n getCachedRenderClone = memoize(\n (\n draggingItemClassName: string,\n items: T[],\n offset: number,\n renderItem: DraggableRenderItemFn<T>\n ): DraggableChildrenFn => (provided, snapshot, rubric) => {\n const { selectedCount } = this.state;\n const { index: itemIndex } = rubric.source;\n const item = items[itemIndex - offset];\n return (\n <div\n className={classNames(\n 'draggable-item-list-dragging-item-container',\n draggingItemClassName\n )}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.draggableProps}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.dragHandleProps}\n ref={provided.innerRef}\n >\n <div\n className={classNames(\n 'draggable-item-list-dragging-item',\n { 'two-dragged': selectedCount === 2 },\n { 'multiple-dragged': selectedCount > 2 }\n )}\n >\n {renderItem({\n item,\n itemIndex,\n isFocused: false,\n isSelected: true,\n style: {},\n isClone: true,\n selectedCount,\n })}\n </div>\n </div>\n );\n },\n { max: 1 }\n );\n\n render(): JSX.Element {\n const {\n className,\n draggablePrefix,\n draggingItemClassName,\n droppableId,\n isDoubleClickSelect,\n isDragDisabled,\n isDropDisabled,\n isMultiSelect,\n isStickyBottom,\n itemCount,\n items,\n offset,\n onFocusChange,\n onSelect,\n onViewportChange,\n renderItem,\n rowHeight,\n selectedRanges,\n style,\n 'data-testid': dataTestId,\n } = this.props;\n return (\n <Droppable\n isDropDisabled={isDropDisabled}\n droppableId={droppableId}\n mode=\"virtual\"\n renderClone={this.getCachedRenderClone(\n draggingItemClassName,\n items,\n offset,\n renderItem\n )}\n data-testid={dataTestId}\n >\n {(provided, snapshot) => (\n <div\n role=\"menu\"\n className={classNames('draggable-item-list', className, {\n 'is-drop-disabled': isDropDisabled,\n 'is-drag-disabled': isDragDisabled,\n 'is-dragging-from-this': snapshot.draggingFromThisWith,\n 'is-dragging-over': snapshot.isDraggingOver,\n 'is-dropping': snapshot.draggingOverWith,\n })}\n style={style}\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.droppableProps}\n >\n <ItemList\n focusSelector=\".draggable-item-list-item\"\n isDoubleClickSelect={isDoubleClickSelect}\n isDragSelect={false}\n isMultiSelect={isMultiSelect}\n isStickyBottom={isStickyBottom}\n itemCount={itemCount}\n items={items}\n onFocusChange={onFocusChange}\n onSelect={onSelect}\n onSelectionChange={this.handleSelectionChange}\n onViewportChange={onViewportChange}\n offset={offset}\n ref={this.itemList}\n renderItem={this.getCachedRenderDraggableItem(\n draggablePrefix,\n isDragDisabled,\n renderItem\n )}\n rowHeight={rowHeight}\n selectedRanges={selectedRanges}\n />\n </div>\n )}\n </Droppable>\n );\n }\n}\n\nexport default DraggableItemList;\n"],"file":"DraggableItemList.js"}
package/dist/Option.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  export declare type OptionProps = {
3
3
  children: React.ReactNode;
4
+ disabled?: boolean;
4
5
  value: string;
5
6
  'data-testid'?: string;
6
7
  };
7
- declare const Option: ({ children, value, "data-testid": dataTestId, }: OptionProps) => JSX.Element;
8
+ declare const Option: ({ children, disabled, value, "data-testid": dataTestId, }: OptionProps) => JSX.Element;
8
9
  export default Option;
9
10
  //# sourceMappingURL=Option.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../src/Option.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,oBAAY,WAAW,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,MAAM,oDAIT,WAAW,KAAG,WAIhB,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Option.d.ts","sourceRoot":"","sources":["../src/Option.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,oBAAY,WAAW,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,MAAM,8DAKT,WAAW,KAAG,WAIhB,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/dist/Option.js CHANGED
@@ -3,11 +3,13 @@ import React from 'react';
3
3
  var Option = _ref => {
4
4
  var {
5
5
  children,
6
+ disabled,
6
7
  value,
7
8
  'data-testid': dataTestId
8
9
  } = _ref;
9
10
  return /*#__PURE__*/React.createElement("option", {
10
11
  value: value,
12
+ disabled: disabled,
11
13
  "data-testid": dataTestId
12
14
  }, children);
13
15
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Option.tsx"],"names":["React","Option","children","value","dataTestId"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAQA,IAAMC,MAAM,GAAG;AAAA,MAAC;AACdC,IAAAA,QADc;AAEdC,IAAAA,KAFc;AAGd,mBAAeC;AAHD,GAAD;AAAA,sBAKb;AAAQ,IAAA,KAAK,EAAED,KAAf;AAAsB,mBAAaC;AAAnC,KACGF,QADH,CALa;AAAA,CAAf;;AAUA,eAAeD,MAAf","sourcesContent":["import React from 'react';\n\nexport type OptionProps = {\n children: React.ReactNode;\n value: string;\n 'data-testid'?: string;\n};\n\nconst Option = ({\n children,\n value,\n 'data-testid': dataTestId,\n}: OptionProps): JSX.Element => (\n <option value={value} data-testid={dataTestId}>\n {children}\n </option>\n);\n\nexport default Option;\n"],"file":"Option.js"}
1
+ {"version":3,"sources":["../src/Option.tsx"],"names":["React","Option","children","disabled","value","dataTestId"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AASA,IAAMC,MAAM,GAAG;AAAA,MAAC;AACdC,IAAAA,QADc;AAEdC,IAAAA,QAFc;AAGdC,IAAAA,KAHc;AAId,mBAAeC;AAJD,GAAD;AAAA,sBAMb;AAAQ,IAAA,KAAK,EAAED,KAAf;AAAsB,IAAA,QAAQ,EAAED,QAAhC;AAA0C,mBAAaE;AAAvD,KACGH,QADH,CANa;AAAA,CAAf;;AAWA,eAAeD,MAAf","sourcesContent":["import React from 'react';\n\nexport type OptionProps = {\n children: React.ReactNode;\n disabled?: boolean;\n value: string;\n 'data-testid'?: string;\n};\n\nconst Option = ({\n children,\n disabled,\n value,\n 'data-testid': dataTestId,\n}: OptionProps): JSX.Element => (\n <option value={value} disabled={disabled} data-testid={dataTestId}>\n {children}\n </option>\n);\n\nexport default Option;\n"],"file":"Option.js"}
package/dist/Select.d.ts CHANGED
@@ -1,13 +1,15 @@
1
1
  import React from 'react';
2
2
  export declare type SelectProps = {
3
3
  children: React.ReactNode;
4
+ onBlur?: React.FocusEventHandler<HTMLSelectElement>;
4
5
  onChange: (value: string) => void;
5
6
  className?: string;
6
7
  defaultValue?: string;
8
+ name?: string;
7
9
  value?: string;
8
10
  disabled?: boolean;
9
11
  'data-testid'?: string;
10
12
  };
11
- declare const Select: ({ children, onChange, className, defaultValue, value, disabled, "data-testid": dataTestId, }: SelectProps) => JSX.Element;
13
+ declare const Select: ({ children, onBlur, onChange, className, defaultValue, name, value, disabled, "data-testid": dataTestId, }: SelectProps) => JSX.Element;
12
14
  export default Select;
13
15
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../src/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAG3C,oBAAY,WAAW,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,MAAM,iGAQT,WAAW,KAAG,WAoBhB,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../src/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAG3C,oBAAY,WAAW,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,MAAM,+GAUT,WAAW,KAAG,WAsBhB,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/dist/Select.js CHANGED
@@ -4,9 +4,11 @@ import classNames from 'classnames';
4
4
  var Select = _ref => {
5
5
  var {
6
6
  children,
7
+ onBlur,
7
8
  onChange,
8
9
  className,
9
10
  defaultValue,
11
+ name,
10
12
  value,
11
13
  disabled,
12
14
  'data-testid': dataTestId
@@ -16,9 +18,11 @@ var Select = _ref => {
16
18
  }, [onChange]);
17
19
  return /*#__PURE__*/React.createElement("select", {
18
20
  className: classNames('custom-select', className),
21
+ onBlur: onBlur,
19
22
  onChange: handleChange,
20
23
  defaultValue: defaultValue,
21
24
  value: value,
25
+ name: name,
22
26
  disabled: disabled,
23
27
  "data-testid": dataTestId
24
28
  }, children);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Select.tsx"],"names":["React","useCallback","classNames","Select","children","onChange","className","defaultValue","value","disabled","dataTestId","handleChange","event","target"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,OAAOC,UAAP,MAAuB,YAAvB;;AAYA,IAAMC,MAAM,GAAG,QAQiB;AAAA,MARhB;AACdC,IAAAA,QADc;AAEdC,IAAAA,QAFc;AAGdC,IAAAA,SAHc;AAIdC,IAAAA,YAJc;AAKdC,IAAAA,KALc;AAMdC,IAAAA,QANc;AAOd,mBAAeC;AAPD,GAQgB;AAC9B,MAAMC,YAAY,GAAGV,WAAW,CAC9BW,KAAK,IAAI;AACPP,IAAAA,QAAQ,CAACO,KAAK,CAACC,MAAN,CAAaL,KAAd,CAAR;AACD,GAH6B,EAI9B,CAACH,QAAD,CAJ8B,CAAhC;AAOA,sBACE;AACE,IAAA,SAAS,EAAEH,UAAU,CAAC,eAAD,EAAkBI,SAAlB,CADvB;AAEE,IAAA,QAAQ,EAAEK,YAFZ;AAGE,IAAA,YAAY,EAAEJ,YAHhB;AAIE,IAAA,KAAK,EAAEC,KAJT;AAKE,IAAA,QAAQ,EAAEC,QALZ;AAME,mBAAaC;AANf,KAQGN,QARH,CADF;AAYD,CA5BD;;AA8BA,eAAeD,MAAf","sourcesContent":["import React, { useCallback } from 'react';\nimport classNames from 'classnames';\n\nexport type SelectProps = {\n children: React.ReactNode;\n onChange: (value: string) => void;\n className?: string;\n defaultValue?: string;\n value?: string;\n disabled?: boolean;\n 'data-testid'?: string;\n};\n\nconst Select = ({\n children,\n onChange,\n className,\n defaultValue,\n value,\n disabled,\n 'data-testid': dataTestId,\n}: SelectProps): JSX.Element => {\n const handleChange = useCallback(\n event => {\n onChange(event.target.value);\n },\n [onChange]\n );\n\n return (\n <select\n className={classNames('custom-select', className)}\n onChange={handleChange}\n defaultValue={defaultValue}\n value={value}\n disabled={disabled}\n data-testid={dataTestId}\n >\n {children}\n </select>\n );\n};\n\nexport default Select;\n"],"file":"Select.js"}
1
+ {"version":3,"sources":["../src/Select.tsx"],"names":["React","useCallback","classNames","Select","children","onBlur","onChange","className","defaultValue","name","value","disabled","dataTestId","handleChange","event","target"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,OAAOC,UAAP,MAAuB,YAAvB;;AAcA,IAAMC,MAAM,GAAG,QAUiB;AAAA,MAVhB;AACdC,IAAAA,QADc;AAEdC,IAAAA,MAFc;AAGdC,IAAAA,QAHc;AAIdC,IAAAA,SAJc;AAKdC,IAAAA,YALc;AAMdC,IAAAA,IANc;AAOdC,IAAAA,KAPc;AAQdC,IAAAA,QARc;AASd,mBAAeC;AATD,GAUgB;AAC9B,MAAMC,YAAY,GAAGZ,WAAW,CAC9Ba,KAAK,IAAI;AACPR,IAAAA,QAAQ,CAACQ,KAAK,CAACC,MAAN,CAAaL,KAAd,CAAR;AACD,GAH6B,EAI9B,CAACJ,QAAD,CAJ8B,CAAhC;AAOA,sBACE;AACE,IAAA,SAAS,EAAEJ,UAAU,CAAC,eAAD,EAAkBK,SAAlB,CADvB;AAEE,IAAA,MAAM,EAAEF,MAFV;AAGE,IAAA,QAAQ,EAAEQ,YAHZ;AAIE,IAAA,YAAY,EAAEL,YAJhB;AAKE,IAAA,KAAK,EAAEE,KALT;AAME,IAAA,IAAI,EAAED,IANR;AAOE,IAAA,QAAQ,EAAEE,QAPZ;AAQE,mBAAaC;AARf,KAUGR,QAVH,CADF;AAcD,CAhCD;;AAkCA,eAAeD,MAAf","sourcesContent":["import React, { useCallback } from 'react';\nimport classNames from 'classnames';\n\nexport type SelectProps = {\n children: React.ReactNode;\n onBlur?: React.FocusEventHandler<HTMLSelectElement>;\n onChange: (value: string) => void;\n className?: string;\n defaultValue?: string;\n name?: string;\n value?: string;\n disabled?: boolean;\n 'data-testid'?: string;\n};\n\nconst Select = ({\n children,\n onBlur,\n onChange,\n className,\n defaultValue,\n name,\n value,\n disabled,\n 'data-testid': dataTestId,\n}: SelectProps): JSX.Element => {\n const handleChange = useCallback(\n event => {\n onChange(event.target.value);\n },\n [onChange]\n );\n\n return (\n <select\n className={classNames('custom-select', className)}\n onBlur={onBlur}\n onChange={handleChange}\n defaultValue={defaultValue}\n value={value}\n name={name}\n disabled={disabled}\n data-testid={dataTestId}\n >\n {children}\n </select>\n );\n};\n\nexport default Select;\n"],"file":"Select.js"}
@@ -5,6 +5,9 @@
5
5
  border-radius: 4px;
6
6
  padding: 0.375rem 0 0.375rem;
7
7
  }
8
+ .select-value-list-scroll-pane.is-invalid {
9
+ border-color: rgba(249, 93, 132, 0.85);
10
+ }
8
11
 
9
12
  .select-value-list {
10
13
  position: relative;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../src/SelectValueList.scss","../scss/bootstrap_overrides.scss","../../../node_modules/bootstrap/scss/_variables.scss"],"names":[],"mappings":"AAEA;EACE;EACA;EACA;EACA,eCmHc;EDlHd;;;AAGF;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE,YCNG;;ADSL;EACE,aEmWsB;EFlWtB;EACA","file":"SelectValueList.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../src/SelectValueList.scss","../scss/bootstrap_overrides.scss","../../../node_modules/bootstrap/scss/_variables.scss"],"names":[],"mappings":"AAEA;EACE;EACA;EACA;EACA,eCmHc;EDlHd;;AAEA;EACE;;;AAIJ;EACE;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAEA;EACE,YCVG;;ADaL;EACE,aE+VsB;EF9VtB;EACA","file":"SelectValueList.css"}
@@ -1,13 +1,15 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import './SelectValueList.scss';
3
3
  import memoize from 'memoizee';
4
- export interface SelectItem<T> {
4
+ interface SelectItem<T> {
5
5
  value: T;
6
6
  displayValue?: string;
7
7
  isSelected: boolean;
8
8
  }
9
9
  declare type SelectValueListProps<T> = {
10
+ className?: string;
10
11
  disabled: boolean;
12
+ isInvalid?: boolean;
11
13
  itemCount: number;
12
14
  rowHeight: number;
13
15
  offset: number;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectValueList.d.ts","sourceRoot":"","sources":["../src/SelectValueList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,wBAAwB,CAAC;AAChC,OAAO,OAAO,MAAM,UAAU,CAAC;AAG/B,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC;IACT,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,aAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAElB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IACnD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,cAAM,eAAe,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,YAAY;;;;MAIjB;gBAEU,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAW1C,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,IAAI,IAAI;IAI1B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAEtC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,aAAa,eAEE,MAAM,OACZ,MAAM,SACJ,CAAC,gBACM,MAAM,GAAG,SAAS,aACrB,MAAM,cACL,OAAO,YACT,OAAO,KAChB,WAAW,iCAPD,MAAM,OACZ,MAAM,SACJ,CAAC,gBACM,MAAM,GAAG,SAAS,aACrB,MAAM,cACL,OAAO,YACT,OAAO,KAChB,WAAW,EAmBd;IAEF,cAAc,WAEH,WAAW,CAAC,CAAC,EAAE,aACX,MAAM,UACT,MAAM,YACJ,OAAO,KAChB,MAAM,SAAS,6BAJT,WAAW,CAAC,CAAC,EAAE,aACX,MAAM,UACT,MAAM,YACJ,OAAO,KAChB,MAAM,SAAS,EAqBlB;IAEF,YAAY,IAAI,IAAI;IAIpB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAYrC,kBAAkB,IAAI,IAAI;IAmB1B,MAAM,IAAI,GAAG,CAAC,OAAO;CA0CtB;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"SelectValueList.d.ts","sourceRoot":"","sources":["../src/SelectValueList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,wBAAwB,CAAC;AAEhC,OAAO,OAAO,MAAM,UAAU,CAAC;AAG/B,UAAU,UAAU,CAAC,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC;IACT,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,aAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAGlB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IACnD,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,cAAM,eAAe,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,CAAC,YAAY;;;;MAIjB;gBAEU,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAW1C,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,IAAI,IAAI;IAI1B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAEtC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,aAAa,eAEE,MAAM,OACZ,MAAM,SACJ,CAAC,gBACM,MAAM,GAAG,SAAS,aACrB,MAAM,cACL,OAAO,YACT,OAAO,KAChB,WAAW,iCAPD,MAAM,OACZ,MAAM,SACJ,CAAC,gBACM,MAAM,GAAG,SAAS,aACrB,MAAM,cACL,OAAO,YACT,OAAO,KAChB,WAAW,EAmBd;IAEF,cAAc,WAEH,WAAW,CAAC,CAAC,EAAE,aACX,MAAM,UACT,MAAM,YACJ,OAAO,KAChB,MAAM,SAAS,6BAJT,WAAW,CAAC,CAAC,EAAE,aACX,MAAM,UACT,MAAM,YACJ,OAAO,KAChB,MAAM,SAAS,EAqBlB;IAEF,YAAY,IAAI,IAAI;IAIpB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAYrC,kBAAkB,IAAI,IAAI;IAmB1B,MAAM,IAAI,GAAG,CAAC,OAAO;CAgDtB;AAED,eAAe,eAAe,CAAC"}
@@ -2,6 +2,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
2
2
 
3
3
  import React, { PureComponent } from 'react';
4
4
  import "./SelectValueList.css";
5
+ import classNames from 'classnames';
5
6
  import memoize from 'memoizee';
6
7
  import Checkbox from "./Checkbox.js";
7
8
 
@@ -121,7 +122,9 @@ class SelectValueList extends PureComponent {
121
122
 
122
123
  render() {
123
124
  var {
125
+ className,
124
126
  disabled,
127
+ isInvalid,
125
128
  items,
126
129
  itemCount,
127
130
  offset,
@@ -130,7 +133,9 @@ class SelectValueList extends PureComponent {
130
133
  } = this.props;
131
134
  var itemElements = this.getCachedItems(items, rowHeight, offset, disabled);
132
135
  return /*#__PURE__*/React.createElement("div", {
133
- className: "select-value-list-scroll-pane h-100 w-100",
136
+ className: classNames('select-value-list-scroll-pane h-100 w-100', {
137
+ 'is-invalid': isInvalid
138
+ }, className),
134
139
  onScroll: this.handleScroll,
135
140
  ref: this.list,
136
141
  "data-testid": dataTestId
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/SelectValueList.tsx"],"names":["React","PureComponent","memoize","Checkbox","SelectValueList","constructor","props","itemIndex","key","value","displayValue","rowHeight","isSelected","disabled","style","height","text","handleSelect","max","items","offset","itemElements","i","length","item","element","getCachedItem","push","handleScroll","bind","list","createRef","topRow","bottomRow","componentDidMount","sendViewportUpdate","componentDidUpdate","onSelect","visibleItemIndex","current","clientHeight","onViewportChange","top","scrollTop","bottom","Math","floor","ceil","render","itemCount","dataTestId","getCachedItems","position","left","undefined"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport './SelectValueList.scss';\nimport memoize from 'memoizee';\nimport Checkbox from './Checkbox';\n\nexport interface SelectItem<T> {\n value: T;\n displayValue?: string;\n isSelected: boolean;\n}\n\ntype SelectValueListProps<T> = {\n disabled: boolean;\n // Total item count\n itemCount: number;\n rowHeight: number;\n\n // Offset of the top item in the items array\n offset: number;\n items: SelectItem<T>[];\n\n onSelect(itemIndex: number, value: T | null): void;\n onViewportChange(topRow: number, bottomRow: number): void;\n\n 'data-testid'?: string;\n};\n\n/**\n * Select values from a long scrollable list.\n * Swaps items in and out for infinite scrolling\n */\nclass SelectValueList<T> extends PureComponent<SelectValueListProps<T>> {\n static defaultProps = {\n disabled: false,\n rowHeight: 21,\n 'data-testid': undefined,\n };\n\n constructor(props: SelectValueListProps<T>) {\n super(props);\n\n this.handleScroll = this.handleScroll.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n\n this.list = React.createRef();\n this.topRow = null;\n this.bottomRow = null;\n }\n\n componentDidMount(): void {\n this.sendViewportUpdate();\n }\n\n componentDidUpdate(): void {\n this.sendViewportUpdate();\n }\n\n list: React.RefObject<HTMLDivElement>;\n\n topRow: number | null;\n\n bottomRow: number | null;\n\n getCachedItem = memoize(\n (\n itemIndex: number,\n key: number,\n value: T,\n displayValue: string | undefined,\n rowHeight: number,\n isSelected: boolean,\n disabled: boolean\n ): JSX.Element => {\n const style = {\n height: rowHeight,\n };\n const text = displayValue != null ? displayValue : value;\n\n return (\n <li className=\"value-list-item\" style={style} key={key}>\n <Checkbox\n checked={isSelected}\n disabled={disabled}\n onChange={() => this.handleSelect(itemIndex)}\n >\n {text}\n </Checkbox>\n </li>\n );\n },\n { max: 1000 }\n );\n\n getCachedItems = memoize(\n (\n items: SelectItem<T>[],\n rowHeight: number,\n offset: number,\n disabled: boolean\n ): React.ReactNode => {\n const itemElements: JSX.Element[] = [];\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const { value, displayValue, isSelected } = item;\n const itemIndex = offset + i;\n const key = itemIndex;\n const element = this.getCachedItem(\n itemIndex,\n key,\n value,\n displayValue,\n rowHeight,\n isSelected,\n disabled\n );\n itemElements.push(element);\n }\n return itemElements;\n },\n { max: 1 }\n );\n\n handleScroll(): void {\n this.sendViewportUpdate();\n }\n\n handleSelect(itemIndex: number): void {\n const { items, offset, onSelect } = this.props;\n const visibleItemIndex = itemIndex - offset;\n if (visibleItemIndex >= 0 && visibleItemIndex < items.length) {\n const item = items[visibleItemIndex];\n const { value } = item;\n onSelect(itemIndex, value);\n } else {\n onSelect(itemIndex, null);\n }\n }\n\n sendViewportUpdate(): void {\n if (!this.list.current || this.list.current.clientHeight === 0) {\n return;\n }\n\n const { onViewportChange, rowHeight } = this.props;\n const top = this.list.current.scrollTop;\n const bottom = top + this.list.current.clientHeight;\n\n const topRow = Math.floor(top / rowHeight);\n const bottomRow = Math.ceil(bottom / rowHeight);\n\n if (this.topRow !== topRow || this.bottomRow !== bottomRow) {\n this.topRow = topRow;\n this.bottomRow = bottomRow;\n onViewportChange(topRow, bottomRow);\n }\n }\n\n render(): JSX.Element {\n const {\n disabled,\n items,\n itemCount,\n offset,\n rowHeight,\n 'data-testid': dataTestId,\n } = this.props;\n const itemElements = this.getCachedItems(\n items,\n rowHeight,\n offset,\n disabled\n );\n\n return (\n <div\n className=\"select-value-list-scroll-pane h-100 w-100\"\n onScroll={this.handleScroll}\n ref={this.list}\n data-testid={dataTestId}\n >\n <div\n className=\"select-value-list\"\n style={{ height: itemCount * rowHeight }}\n >\n <ol\n className=\"select-value-list-content\"\n style={{\n position: 'absolute',\n height: items.length * rowHeight,\n top: offset * rowHeight,\n left: 0,\n }}\n >\n {itemElements}\n </ol>\n </div>\n </div>\n );\n }\n}\n\nexport default SelectValueList;\n"],"file":"SelectValueList.js"}
1
+ {"version":3,"sources":["../src/SelectValueList.tsx"],"names":["React","PureComponent","classNames","memoize","Checkbox","SelectValueList","constructor","props","itemIndex","key","value","displayValue","rowHeight","isSelected","disabled","style","height","text","handleSelect","max","items","offset","itemElements","i","length","item","element","getCachedItem","push","handleScroll","bind","list","createRef","topRow","bottomRow","componentDidMount","sendViewportUpdate","componentDidUpdate","onSelect","visibleItemIndex","current","clientHeight","onViewportChange","top","scrollTop","bottom","Math","floor","ceil","render","className","isInvalid","itemCount","dataTestId","getCachedItems","position","left","undefined"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport './SelectValueList.scss';\nimport classNames from 'classnames';\nimport memoize from 'memoizee';\nimport Checkbox from './Checkbox';\n\ninterface SelectItem<T> {\n value: T;\n displayValue?: string;\n isSelected: boolean;\n}\n\ntype SelectValueListProps<T> = {\n className?: string;\n disabled: boolean;\n isInvalid?: boolean;\n // Total item count\n itemCount: number;\n rowHeight: number;\n\n // Offset of the top item in the items array\n offset: number;\n items: SelectItem<T>[];\n\n onSelect(itemIndex: number, value: T | null): void;\n onViewportChange(topRow: number, bottomRow: number): void;\n\n 'data-testid'?: string;\n};\n\n/**\n * Select values from a long scrollable list.\n * Swaps items in and out for infinite scrolling\n */\nclass SelectValueList<T> extends PureComponent<SelectValueListProps<T>> {\n static defaultProps = {\n disabled: false,\n rowHeight: 21,\n 'data-testid': undefined,\n };\n\n constructor(props: SelectValueListProps<T>) {\n super(props);\n\n this.handleScroll = this.handleScroll.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n\n this.list = React.createRef();\n this.topRow = null;\n this.bottomRow = null;\n }\n\n componentDidMount(): void {\n this.sendViewportUpdate();\n }\n\n componentDidUpdate(): void {\n this.sendViewportUpdate();\n }\n\n list: React.RefObject<HTMLDivElement>;\n\n topRow: number | null;\n\n bottomRow: number | null;\n\n getCachedItem = memoize(\n (\n itemIndex: number,\n key: number,\n value: T,\n displayValue: string | undefined,\n rowHeight: number,\n isSelected: boolean,\n disabled: boolean\n ): JSX.Element => {\n const style = {\n height: rowHeight,\n };\n const text = displayValue != null ? displayValue : value;\n\n return (\n <li className=\"value-list-item\" style={style} key={key}>\n <Checkbox\n checked={isSelected}\n disabled={disabled}\n onChange={() => this.handleSelect(itemIndex)}\n >\n {text}\n </Checkbox>\n </li>\n );\n },\n { max: 1000 }\n );\n\n getCachedItems = memoize(\n (\n items: SelectItem<T>[],\n rowHeight: number,\n offset: number,\n disabled: boolean\n ): React.ReactNode => {\n const itemElements: JSX.Element[] = [];\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const { value, displayValue, isSelected } = item;\n const itemIndex = offset + i;\n const key = itemIndex;\n const element = this.getCachedItem(\n itemIndex,\n key,\n value,\n displayValue,\n rowHeight,\n isSelected,\n disabled\n );\n itemElements.push(element);\n }\n return itemElements;\n },\n { max: 1 }\n );\n\n handleScroll(): void {\n this.sendViewportUpdate();\n }\n\n handleSelect(itemIndex: number): void {\n const { items, offset, onSelect } = this.props;\n const visibleItemIndex = itemIndex - offset;\n if (visibleItemIndex >= 0 && visibleItemIndex < items.length) {\n const item = items[visibleItemIndex];\n const { value } = item;\n onSelect(itemIndex, value);\n } else {\n onSelect(itemIndex, null);\n }\n }\n\n sendViewportUpdate(): void {\n if (!this.list.current || this.list.current.clientHeight === 0) {\n return;\n }\n\n const { onViewportChange, rowHeight } = this.props;\n const top = this.list.current.scrollTop;\n const bottom = top + this.list.current.clientHeight;\n\n const topRow = Math.floor(top / rowHeight);\n const bottomRow = Math.ceil(bottom / rowHeight);\n\n if (this.topRow !== topRow || this.bottomRow !== bottomRow) {\n this.topRow = topRow;\n this.bottomRow = bottomRow;\n onViewportChange(topRow, bottomRow);\n }\n }\n\n render(): JSX.Element {\n const {\n className,\n disabled,\n isInvalid,\n items,\n itemCount,\n offset,\n rowHeight,\n 'data-testid': dataTestId,\n } = this.props;\n const itemElements = this.getCachedItems(\n items,\n rowHeight,\n offset,\n disabled\n );\n\n return (\n <div\n className={classNames(\n 'select-value-list-scroll-pane h-100 w-100',\n { 'is-invalid': isInvalid },\n className\n )}\n onScroll={this.handleScroll}\n ref={this.list}\n data-testid={dataTestId}\n >\n <div\n className=\"select-value-list\"\n style={{ height: itemCount * rowHeight }}\n >\n <ol\n className=\"select-value-list-content\"\n style={{\n position: 'absolute',\n height: items.length * rowHeight,\n top: offset * rowHeight,\n left: 0,\n }}\n >\n {itemElements}\n </ol>\n </div>\n </div>\n );\n }\n}\n\nexport default SelectValueList;\n"],"file":"SelectValueList.js"}
package/dist/index.d.ts CHANGED
@@ -41,7 +41,6 @@ export { default as RadioItem } from './RadioItem';
41
41
  export { default as Select } from './Select';
42
42
  export { default as SearchInput } from './SearchInput';
43
43
  export { default as SelectValueList } from './SelectValueList';
44
- export * from './SelectValueList';
45
44
  export * from './shortcuts';
46
45
  export { default as SocketedButton } from './SocketedButton';
47
46
  export { default as ThemeExport } from './ThemeExport';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -36,7 +36,6 @@ export { default as RadioItem } from "./RadioItem.js";
36
36
  export { default as Select } from "./Select.js";
37
37
  export { default as SearchInput } from "./SearchInput.js";
38
38
  export { default as SelectValueList } from "./SelectValueList.js";
39
- export * from "./SelectValueList.js";
40
39
  export * from "./shortcuts/index.js";
41
40
  export { default as SocketedButton } from "./SocketedButton.js";
42
41
  export { default as ThemeExport } from "./ThemeExport.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["$","window","jQuery","default","AutoCompleteInput","AutoResizeTextarea","BasicModal","Button","ButtonGroup","ButtonOld","CardFlip","Collapse","Checkbox","ComboBox","CustomTimeSelect","DebouncedSearchInput","DeephavenSpinner","DraggableItemList","DragUtils","HierarchicalCheckboxMenu","ItemListItem","LoadingOverlay","LoadingSpinner","DropdownMenu","MaskedInput","Option","RadioGroup","RadioItem","Select","SearchInput","SelectValueList","SocketedButton","ThemeExport","TimeInput","TimeSlider","ToastNotification","UISwitch"],"mappings":"AAAA;AACA,OAAO,KAAKA,CAAZ,MAAmB,QAAnB;AASAC,MAAM,CAACD,CAAP,GAAWA,CAAX;AACAC,MAAM,CAACC,MAAP,GAAgBF,CAAhB;SAGSG,OAAO,IAAIC,iB;SACXD,OAAO,IAAIE,kB;SACXF,OAAO,IAAIG,U;SACXH,OAAO,IAAII,M;SACXJ,OAAO,IAAIK,W;SACXL,OAAO,IAAIM,S;SACXN,OAAO,IAAIO,Q;;SAEXP,OAAO,IAAIQ,Q;SACXR,OAAO,IAAIS,Q;SACXT,OAAO,IAAIU,Q;SACXV,OAAO,IAAIW,gB;SACXX,OAAO,IAAIY,oB;SACXZ,OAAO,IAAIa,gB;SACXb,OAAO,IAAIc,iB;;SAEXd,OAAO,IAAIe,S;SACXf,OAAO,IAAIgB,wB;;;SAGXhB,OAAO,IAAIiB,Y;SACXjB,OAAO,IAAIkB,c;SACXlB,OAAO,IAAImB,c;SACXnB,OAAO,IAAIoB,Y;;SAEXpB,OAAO,IAAIqB,W;;SAEXrB,OAAO,IAAIsB,M;;SAEXtB,OAAO,IAAIuB,U;SACXvB,OAAO,IAAIwB,S;SACXxB,OAAO,IAAIyB,M;SACXzB,OAAO,IAAI0B,W;SACX1B,OAAO,IAAI2B,e;;;SAGX3B,OAAO,IAAI4B,c;SACX5B,OAAO,IAAI6B,W;SACX7B,OAAO,IAAI8B,S;SACX9B,OAAO,IAAI+B,U;SACX/B,OAAO,IAAIgC,iB;SACXhC,OAAO,IAAIiC,Q","sourcesContent":["/** Shim for using jquery in frameworks included by react (such as bootstrap) */\nimport * as $ from 'jquery';\n\ndeclare global {\n interface Window {\n $: typeof $;\n jQuery: typeof $;\n }\n}\n\nwindow.$ = $;\nwindow.jQuery = $;\n\nexport type { Range } from '@deephaven/utils';\nexport { default as AutoCompleteInput } from './AutoCompleteInput';\nexport { default as AutoResizeTextarea } from './AutoResizeTextarea';\nexport { default as BasicModal } from './BasicModal';\nexport { default as Button } from './Button';\nexport { default as ButtonGroup } from './ButtonGroup';\nexport { default as ButtonOld } from './ButtonOld';\nexport { default as CardFlip } from './CardFlip';\nexport * from './context-actions';\nexport { default as Collapse } from './Collapse';\nexport { default as Checkbox } from './Checkbox';\nexport { default as ComboBox } from './ComboBox';\nexport { default as CustomTimeSelect } from './CustomTimeSelect';\nexport { default as DebouncedSearchInput } from './DebouncedSearchInput';\nexport { default as DeephavenSpinner } from './DeephavenSpinner';\nexport { default as DraggableItemList } from './DraggableItemList';\nexport * from './DraggableItemList';\nexport { default as DragUtils } from './DragUtils';\nexport { default as HierarchicalCheckboxMenu } from './HierarchicalCheckboxMenu';\nexport * from './HierarchicalCheckboxMenu';\nexport * from './ItemList';\nexport { default as ItemListItem } from './ItemListItem';\nexport { default as LoadingOverlay } from './LoadingOverlay';\nexport { default as LoadingSpinner } from './LoadingSpinner';\nexport { default as DropdownMenu } from './menu-actions';\nexport * from './menu-actions';\nexport { default as MaskedInput } from './MaskedInput';\nexport * from './navigation';\nexport { default as Option } from './Option';\nexport * from './popper';\nexport { default as RadioGroup } from './RadioGroup';\nexport { default as RadioItem } from './RadioItem';\nexport { default as Select } from './Select';\nexport { default as SearchInput } from './SearchInput';\nexport { default as SelectValueList } from './SelectValueList';\nexport * from './SelectValueList';\nexport * from './shortcuts';\nexport { default as SocketedButton } from './SocketedButton';\nexport { default as ThemeExport } from './ThemeExport';\nexport { default as TimeInput } from './TimeInput';\nexport { default as TimeSlider } from './TimeSlider';\nexport { default as ToastNotification } from './ToastNotification';\nexport { default as UISwitch } from './UISwitch';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["$","window","jQuery","default","AutoCompleteInput","AutoResizeTextarea","BasicModal","Button","ButtonGroup","ButtonOld","CardFlip","Collapse","Checkbox","ComboBox","CustomTimeSelect","DebouncedSearchInput","DeephavenSpinner","DraggableItemList","DragUtils","HierarchicalCheckboxMenu","ItemListItem","LoadingOverlay","LoadingSpinner","DropdownMenu","MaskedInput","Option","RadioGroup","RadioItem","Select","SearchInput","SelectValueList","SocketedButton","ThemeExport","TimeInput","TimeSlider","ToastNotification","UISwitch"],"mappings":"AAAA;AACA,OAAO,KAAKA,CAAZ,MAAmB,QAAnB;AASAC,MAAM,CAACD,CAAP,GAAWA,CAAX;AACAC,MAAM,CAACC,MAAP,GAAgBF,CAAhB;SAGSG,OAAO,IAAIC,iB;SACXD,OAAO,IAAIE,kB;SACXF,OAAO,IAAIG,U;SACXH,OAAO,IAAII,M;SACXJ,OAAO,IAAIK,W;SACXL,OAAO,IAAIM,S;SACXN,OAAO,IAAIO,Q;;SAEXP,OAAO,IAAIQ,Q;SACXR,OAAO,IAAIS,Q;SACXT,OAAO,IAAIU,Q;SACXV,OAAO,IAAIW,gB;SACXX,OAAO,IAAIY,oB;SACXZ,OAAO,IAAIa,gB;SACXb,OAAO,IAAIc,iB;;SAEXd,OAAO,IAAIe,S;SACXf,OAAO,IAAIgB,wB;;;SAGXhB,OAAO,IAAIiB,Y;SACXjB,OAAO,IAAIkB,c;SACXlB,OAAO,IAAImB,c;SACXnB,OAAO,IAAIoB,Y;;SAEXpB,OAAO,IAAIqB,W;;SAEXrB,OAAO,IAAIsB,M;;SAEXtB,OAAO,IAAIuB,U;SACXvB,OAAO,IAAIwB,S;SACXxB,OAAO,IAAIyB,M;SACXzB,OAAO,IAAI0B,W;SACX1B,OAAO,IAAI2B,e;;SAEX3B,OAAO,IAAI4B,c;SACX5B,OAAO,IAAI6B,W;SACX7B,OAAO,IAAI8B,S;SACX9B,OAAO,IAAI+B,U;SACX/B,OAAO,IAAIgC,iB;SACXhC,OAAO,IAAIiC,Q","sourcesContent":["/** Shim for using jquery in frameworks included by react (such as bootstrap) */\nimport * as $ from 'jquery';\n\ndeclare global {\n interface Window {\n $: typeof $;\n jQuery: typeof $;\n }\n}\n\nwindow.$ = $;\nwindow.jQuery = $;\n\nexport type { Range } from '@deephaven/utils';\nexport { default as AutoCompleteInput } from './AutoCompleteInput';\nexport { default as AutoResizeTextarea } from './AutoResizeTextarea';\nexport { default as BasicModal } from './BasicModal';\nexport { default as Button } from './Button';\nexport { default as ButtonGroup } from './ButtonGroup';\nexport { default as ButtonOld } from './ButtonOld';\nexport { default as CardFlip } from './CardFlip';\nexport * from './context-actions';\nexport { default as Collapse } from './Collapse';\nexport { default as Checkbox } from './Checkbox';\nexport { default as ComboBox } from './ComboBox';\nexport { default as CustomTimeSelect } from './CustomTimeSelect';\nexport { default as DebouncedSearchInput } from './DebouncedSearchInput';\nexport { default as DeephavenSpinner } from './DeephavenSpinner';\nexport { default as DraggableItemList } from './DraggableItemList';\nexport * from './DraggableItemList';\nexport { default as DragUtils } from './DragUtils';\nexport { default as HierarchicalCheckboxMenu } from './HierarchicalCheckboxMenu';\nexport * from './HierarchicalCheckboxMenu';\nexport * from './ItemList';\nexport { default as ItemListItem } from './ItemListItem';\nexport { default as LoadingOverlay } from './LoadingOverlay';\nexport { default as LoadingSpinner } from './LoadingSpinner';\nexport { default as DropdownMenu } from './menu-actions';\nexport * from './menu-actions';\nexport { default as MaskedInput } from './MaskedInput';\nexport * from './navigation';\nexport { default as Option } from './Option';\nexport * from './popper';\nexport { default as RadioGroup } from './RadioGroup';\nexport { default as RadioItem } from './RadioItem';\nexport { default as Select } from './Select';\nexport { default as SearchInput } from './SearchInput';\nexport { default as SelectValueList } from './SelectValueList';\nexport * from './shortcuts';\nexport { default as SocketedButton } from './SocketedButton';\nexport { default as ThemeExport } from './ThemeExport';\nexport { default as TimeInput } from './TimeInput';\nexport { default as TimeSlider } from './TimeSlider';\nexport { default as ToastNotification } from './ToastNotification';\nexport { default as UISwitch } from './UISwitch';\n"],"file":"index.js"}
@@ -38,6 +38,7 @@ declare class Tooltip extends Component<TooltipProps, TooltipState> {
38
38
  popperClassName: string;
39
39
  reshowTimeout: number;
40
40
  timeout: number;
41
+ referenceObject: null;
41
42
  onExited: () => void;
42
43
  'data-testid': undefined;
43
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/popper/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,MAAM,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIlE,aAAK,YAAY,GAAG,OAAO,OAAO,CAAC,YAAY,GAAG;IAChD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AACF,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,cAAM,OAAQ,SAAQ,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACzD,MAAM,CAAC,cAAc,SAAO;IAE5B,MAAM,CAAC,oBAAoB,SAAO;IAElC,MAAM,CAAC,sBAAsB,SAAO;IAEpC,MAAM,CAAC,iBAAiB,SAAK;IAE7B,MAAM,CAAC,cAAc,SAAc;IAEnC,MAAM,CAAC,YAAY;;;;;;wBAMH,IAAI;;MAElB;IAEF,MAAM,CAAC,YAAY,IAAI,IAAI;IAQ3B,MAAM,CAAC,WAAW,IAAI,IAAI;gBAId,KAAK,EAAE,YAAY;IAqB/B,iBAAiB,IAAI,IAAI;IASzB,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;IAa1E,oBAAoB,IAAI,IAAI;IAY5B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE3C,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAI3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,cAAc,IAAI,IAAI;IAYtB,aAAa,IAAI,IAAI;IAUrB,oBAAoB,IAAI,IAAI;IAM5B,mBAAmB,IAAI,IAAI;IAM3B,eAAe,IAAI,IAAI;IAIvB,WAAW,IAAI,IAAI;IAanB,gBAAgB,IAAI,IAAI;IAUxB,aAAa,IAAI,IAAI;IAIrB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IA+B9C,UAAU,IAAI,IAAI;IAclB,SAAS,IAAI,IAAI;IAOjB,IAAI,IAAI,IAAI;IAeZ,IAAI,IAAI,IAAI;IAKZ,MAAM,IAAI,IAAI;IAId,YAAY,IAAI,IAAI;IAMpB,kBAAkB,IAAI,IAAI;IAQ1B,MAAM,IAAI,GAAG,CAAC,OAAO;CA6BtB;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/popper/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,MAAM,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAIlE,aAAK,YAAY,GAAG,OAAO,OAAO,CAAC,YAAY,GAAG;IAChD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AACF,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,cAAM,OAAQ,SAAQ,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACzD,MAAM,CAAC,cAAc,SAAO;IAE5B,MAAM,CAAC,oBAAoB,SAAO;IAElC,MAAM,CAAC,sBAAsB,SAAO;IAEpC,MAAM,CAAC,iBAAiB,SAAK;IAE7B,MAAM,CAAC,cAAc,SAAc;IAEnC,MAAM,CAAC,YAAY;;;;;;;wBAOH,IAAI;;MAElB;IAEF,MAAM,CAAC,YAAY,IAAI,IAAI;IAQ3B,MAAM,CAAC,WAAW,IAAI,IAAI;gBAId,KAAK,EAAE,YAAY;IAqB/B,iBAAiB,IAAI,IAAI;IASzB,kBAAkB,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;IAa1E,oBAAoB,IAAI,IAAI;IAY5B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE3C,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAI3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,cAAc,IAAI,IAAI;IAYtB,aAAa,IAAI,IAAI;IAUrB,oBAAoB,IAAI,IAAI;IAM5B,mBAAmB,IAAI,IAAI;IAM3B,eAAe,IAAI,IAAI;IAIvB,WAAW,IAAI,IAAI;IAanB,gBAAgB,IAAI,IAAI;IAUxB,aAAa,IAAI,IAAI;IAIrB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IA+B9C,UAAU,IAAI,IAAI;IAclB,SAAS,IAAI,IAAI;IAOjB,IAAI,IAAI,IAAI;IAeZ,IAAI,IAAI,IAAI;IAKZ,MAAM,IAAI,IAAI;IAId,YAAY,IAAI,IAAI;IAMpB,kBAAkB,IAAI,IAAI;IAQ1B,MAAM,IAAI,GAAG,CAAC,OAAO;CA6BtB;AAED,eAAe,OAAO,CAAC"}
@@ -319,6 +319,7 @@ _defineProperty(Tooltip, "defaultProps", {
319
319
  popperClassName: '',
320
320
  reshowTimeout: Tooltip.defaultReshowTimeout,
321
321
  timeout: Tooltip.defaultTimeout,
322
+ referenceObject: null,
322
323
  onExited: () => undefined,
323
324
  'data-testid': undefined
324
325
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/popper/Tooltip.tsx"],"names":["React","Component","classNames","Log","Popper","log","module","Tooltip","handleHidden","shownTooltipCount","lastHiddenTime","Date","now","handleShown","constructor","props","handleMouseMove","bind","handleMouseLeave","handleWindowMouseMove","handleWheel","handleTimeout","handleExited","stopShowingTooltip","container","createRef","popper","parent","timer","state","isShown","componentDidMount","startListening","timeout","show","componentDidUpdate","prevProps","prevState","oldIsShown","componentWillUnmount","stopListening","stopListeningWindow","stopTimer","current","parentElement","error","addEventListener","removeEventListener","startListeningWindow","window","startTimer","element","matches","hide","interactive","event","mouseX","clientX","mouseY","clientY","popperRect","getBoundingClientRect","parentRect","left","width","top","height","reshowTimeout","timerTimeout","triggerReshowThreshold","setTimeout","clearTimeout","setState","update","scheduleUpdate","onExited","render","children","options","referenceObject","popperClassName","dataTestId","display","defaultReshowTimeout","defaultTimeout","undefined"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport Popper, { PopperOptions, ReferenceObject } from './Popper';\n\nconst log = Log.module('Tooltip');\n\ntype TooltipProps = typeof Tooltip.defaultProps & {\n children: React.ReactNode;\n interactive?: boolean;\n options?: PopperOptions;\n popperClassName?: string;\n reshowTimeout?: number;\n timeout?: number;\n referenceObject?: ReferenceObject | null;\n onExited?: () => void;\n 'data-testid'?: string;\n};\ninterface TooltipState {\n isShown: boolean;\n}\n\n/**\n * Component that can be added to an element to automatically display a tooltip.\n * Content is mounted lazily, so don't worry about complex tooltips!\n *\n * Usage:\n * <div className=\"parent-container\">\n * Hover this container to see a tooltip\n * <Tooltip>\n * <div>My tooltip content goes here!</div>\n * </Tooltip>\n * </div>\n */\nclass Tooltip extends Component<TooltipProps, TooltipState> {\n static defaultTimeout = 500;\n\n static defaultReshowTimeout = 100;\n\n static triggerReshowThreshold = 300;\n\n static shownTooltipCount = 0;\n\n static lastHiddenTime = Date.now();\n\n static defaultProps = {\n interactive: false,\n options: {},\n popperClassName: '',\n reshowTimeout: Tooltip.defaultReshowTimeout,\n timeout: Tooltip.defaultTimeout,\n onExited: (): void => undefined,\n 'data-testid': undefined,\n };\n\n static handleHidden(): void {\n Tooltip.shownTooltipCount -= 1;\n\n if (Tooltip.shownTooltipCount === 0) {\n Tooltip.lastHiddenTime = Date.now();\n }\n }\n\n static handleShown(): void {\n Tooltip.shownTooltipCount += 1;\n }\n\n constructor(props: TooltipProps) {\n super(props);\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowMouseMove = this.handleWindowMouseMove.bind(this);\n this.handleWheel = this.handleWheel.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.stopShowingTooltip = this.stopShowingTooltip.bind(this);\n\n this.container = React.createRef();\n this.popper = React.createRef();\n this.parent = null;\n this.timer = null;\n\n this.state = {\n isShown: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n\n const { timeout } = this.props;\n if (timeout === 0) {\n this.show();\n }\n }\n\n componentDidUpdate(prevProps: TooltipProps, prevState: TooltipState): void {\n const { isShown: oldIsShown } = prevState;\n const { isShown } = this.state;\n\n if (isShown !== oldIsShown) {\n if (isShown) {\n Tooltip.handleShown();\n } else {\n Tooltip.handleHidden();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.stopListeningWindow();\n this.stopTimer();\n\n const { isShown } = this.state;\n\n if (isShown) {\n Tooltip.handleHidden();\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n popper: React.RefObject<Popper>;\n\n parent: HTMLElement | null;\n\n // This is platform dependent of Node/DOM\n // Jest requires Node types\n timer: number | null;\n\n startListening(): void {\n if (!this.container.current || !this.container.current.parentElement) {\n log.error(\"Tooltip doesn't have a container or a parent set!\");\n return;\n }\n\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('mousemove', this.handleMouseMove);\n this.parent.addEventListener('mouseleave', this.handleMouseLeave);\n this.parent.addEventListener('mousedown', this.stopShowingTooltip);\n }\n\n stopListening(): void {\n if (!this.parent) {\n return;\n }\n\n this.parent.removeEventListener('mousemove', this.handleMouseMove);\n this.parent.removeEventListener('mouseleave', this.handleMouseLeave);\n this.parent.removeEventListener('mousedown', this.stopShowingTooltip);\n }\n\n startListeningWindow(): void {\n window.addEventListener('mousemove', this.handleWindowMouseMove, true);\n window.addEventListener('contextmenu', this.stopShowingTooltip, true);\n window.addEventListener('wheel', this.handleWheel);\n }\n\n stopListeningWindow(): void {\n window.removeEventListener('mousemove', this.handleWindowMouseMove, true);\n window.removeEventListener('contextmenu', this.stopShowingTooltip, true);\n window.removeEventListener('wheel', this.handleWheel);\n }\n\n handleMouseMove(): void {\n this.startTimer();\n }\n\n handleWheel(): void {\n const { isShown } = this.state;\n if (this.popper.current && this.parent && isShown) {\n if (\n !this.popper.current.element.matches(':hover') &&\n !this.parent.matches(':hover')\n ) {\n this.stopTimer();\n this.hide();\n }\n }\n }\n\n handleMouseLeave(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n const { interactive } = this.props;\n if (!interactive && isShown) {\n this.hide();\n }\n }\n\n handleTimeout(): void {\n this.show();\n }\n\n handleWindowMouseMove(event: MouseEvent): void {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { isShown } = this.state;\n\n if (!this.popper.current || !this.parent) {\n return;\n }\n const popperRect = this.popper.current.element.getBoundingClientRect();\n const parentRect = this.parent.getBoundingClientRect();\n\n if (\n mouseX >= popperRect.left &&\n mouseX <= popperRect.left + popperRect.width &&\n mouseY >= popperRect.top &&\n mouseY <= popperRect.top + popperRect.height\n ) {\n this.handleMouseMove();\n } else if (\n mouseX >= parentRect.left &&\n mouseX <= parentRect.left + parentRect.width &&\n mouseY >= parentRect.top &&\n mouseY <= parentRect.top + parentRect.height\n ) {\n this.handleMouseMove();\n } else if (isShown) {\n this.stopTimer();\n this.hide();\n }\n }\n\n startTimer(): void {\n this.stopTimer();\n\n const { timeout, reshowTimeout } = this.props;\n let timerTimeout = timeout;\n if (\n Tooltip.shownTooltipCount > 0 ||\n Date.now() - Tooltip.lastHiddenTime < Tooltip.triggerReshowThreshold\n ) {\n timerTimeout = reshowTimeout;\n }\n this.timer = window.setTimeout(this.handleTimeout, timerTimeout);\n }\n\n stopTimer(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n show(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n if (!isShown) {\n this.popper.current?.show();\n this.setState({ isShown: true });\n\n const { interactive } = this.props;\n if (interactive) {\n this.startListeningWindow();\n }\n }\n }\n\n hide(): void {\n this.popper.current?.hide();\n this.stopListeningWindow();\n }\n\n update(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleExited(): void {\n this.setState({ isShown: false });\n const { onExited } = this.props;\n onExited();\n }\n\n stopShowingTooltip(): void {\n const { isShown } = this.state;\n this.stopTimer();\n if (isShown) {\n this.hide();\n }\n }\n\n render(): JSX.Element {\n const {\n interactive,\n children,\n options,\n referenceObject,\n popperClassName,\n 'data-testid': dataTestId,\n } = this.props;\n const { isShown } = this.state;\n return (\n <div\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n <Popper\n className={classNames(popperClassName)}\n options={options}\n ref={this.popper}\n onExited={this.handleExited}\n interactive={interactive}\n referenceObject={referenceObject}\n >\n <div className=\"tooltip-content\"> {isShown && children}</div>\n </Popper>\n </div>\n );\n }\n}\n\nexport default Tooltip;\n"],"file":"Tooltip.js"}
1
+ {"version":3,"sources":["../../src/popper/Tooltip.tsx"],"names":["React","Component","classNames","Log","Popper","log","module","Tooltip","handleHidden","shownTooltipCount","lastHiddenTime","Date","now","handleShown","constructor","props","handleMouseMove","bind","handleMouseLeave","handleWindowMouseMove","handleWheel","handleTimeout","handleExited","stopShowingTooltip","container","createRef","popper","parent","timer","state","isShown","componentDidMount","startListening","timeout","show","componentDidUpdate","prevProps","prevState","oldIsShown","componentWillUnmount","stopListening","stopListeningWindow","stopTimer","current","parentElement","error","addEventListener","removeEventListener","startListeningWindow","window","startTimer","element","matches","hide","interactive","event","mouseX","clientX","mouseY","clientY","popperRect","getBoundingClientRect","parentRect","left","width","top","height","reshowTimeout","timerTimeout","triggerReshowThreshold","setTimeout","clearTimeout","setState","update","scheduleUpdate","onExited","render","children","options","referenceObject","popperClassName","dataTestId","display","defaultReshowTimeout","defaultTimeout","undefined"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport Popper, { PopperOptions, ReferenceObject } from './Popper';\n\nconst log = Log.module('Tooltip');\n\ntype TooltipProps = typeof Tooltip.defaultProps & {\n children: React.ReactNode;\n interactive?: boolean;\n options?: PopperOptions;\n popperClassName?: string;\n reshowTimeout?: number;\n timeout?: number;\n referenceObject?: ReferenceObject | null;\n onExited?: () => void;\n 'data-testid'?: string;\n};\ninterface TooltipState {\n isShown: boolean;\n}\n\n/**\n * Component that can be added to an element to automatically display a tooltip.\n * Content is mounted lazily, so don't worry about complex tooltips!\n *\n * Usage:\n * <div className=\"parent-container\">\n * Hover this container to see a tooltip\n * <Tooltip>\n * <div>My tooltip content goes here!</div>\n * </Tooltip>\n * </div>\n */\nclass Tooltip extends Component<TooltipProps, TooltipState> {\n static defaultTimeout = 500;\n\n static defaultReshowTimeout = 100;\n\n static triggerReshowThreshold = 300;\n\n static shownTooltipCount = 0;\n\n static lastHiddenTime = Date.now();\n\n static defaultProps = {\n interactive: false,\n options: {},\n popperClassName: '',\n reshowTimeout: Tooltip.defaultReshowTimeout,\n timeout: Tooltip.defaultTimeout,\n referenceObject: null,\n onExited: (): void => undefined,\n 'data-testid': undefined,\n };\n\n static handleHidden(): void {\n Tooltip.shownTooltipCount -= 1;\n\n if (Tooltip.shownTooltipCount === 0) {\n Tooltip.lastHiddenTime = Date.now();\n }\n }\n\n static handleShown(): void {\n Tooltip.shownTooltipCount += 1;\n }\n\n constructor(props: TooltipProps) {\n super(props);\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowMouseMove = this.handleWindowMouseMove.bind(this);\n this.handleWheel = this.handleWheel.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.stopShowingTooltip = this.stopShowingTooltip.bind(this);\n\n this.container = React.createRef();\n this.popper = React.createRef();\n this.parent = null;\n this.timer = null;\n\n this.state = {\n isShown: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n\n const { timeout } = this.props;\n if (timeout === 0) {\n this.show();\n }\n }\n\n componentDidUpdate(prevProps: TooltipProps, prevState: TooltipState): void {\n const { isShown: oldIsShown } = prevState;\n const { isShown } = this.state;\n\n if (isShown !== oldIsShown) {\n if (isShown) {\n Tooltip.handleShown();\n } else {\n Tooltip.handleHidden();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.stopListeningWindow();\n this.stopTimer();\n\n const { isShown } = this.state;\n\n if (isShown) {\n Tooltip.handleHidden();\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n popper: React.RefObject<Popper>;\n\n parent: HTMLElement | null;\n\n // This is platform dependent of Node/DOM\n // Jest requires Node types\n timer: number | null;\n\n startListening(): void {\n if (!this.container.current || !this.container.current.parentElement) {\n log.error(\"Tooltip doesn't have a container or a parent set!\");\n return;\n }\n\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('mousemove', this.handleMouseMove);\n this.parent.addEventListener('mouseleave', this.handleMouseLeave);\n this.parent.addEventListener('mousedown', this.stopShowingTooltip);\n }\n\n stopListening(): void {\n if (!this.parent) {\n return;\n }\n\n this.parent.removeEventListener('mousemove', this.handleMouseMove);\n this.parent.removeEventListener('mouseleave', this.handleMouseLeave);\n this.parent.removeEventListener('mousedown', this.stopShowingTooltip);\n }\n\n startListeningWindow(): void {\n window.addEventListener('mousemove', this.handleWindowMouseMove, true);\n window.addEventListener('contextmenu', this.stopShowingTooltip, true);\n window.addEventListener('wheel', this.handleWheel);\n }\n\n stopListeningWindow(): void {\n window.removeEventListener('mousemove', this.handleWindowMouseMove, true);\n window.removeEventListener('contextmenu', this.stopShowingTooltip, true);\n window.removeEventListener('wheel', this.handleWheel);\n }\n\n handleMouseMove(): void {\n this.startTimer();\n }\n\n handleWheel(): void {\n const { isShown } = this.state;\n if (this.popper.current && this.parent && isShown) {\n if (\n !this.popper.current.element.matches(':hover') &&\n !this.parent.matches(':hover')\n ) {\n this.stopTimer();\n this.hide();\n }\n }\n }\n\n handleMouseLeave(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n const { interactive } = this.props;\n if (!interactive && isShown) {\n this.hide();\n }\n }\n\n handleTimeout(): void {\n this.show();\n }\n\n handleWindowMouseMove(event: MouseEvent): void {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { isShown } = this.state;\n\n if (!this.popper.current || !this.parent) {\n return;\n }\n const popperRect = this.popper.current.element.getBoundingClientRect();\n const parentRect = this.parent.getBoundingClientRect();\n\n if (\n mouseX >= popperRect.left &&\n mouseX <= popperRect.left + popperRect.width &&\n mouseY >= popperRect.top &&\n mouseY <= popperRect.top + popperRect.height\n ) {\n this.handleMouseMove();\n } else if (\n mouseX >= parentRect.left &&\n mouseX <= parentRect.left + parentRect.width &&\n mouseY >= parentRect.top &&\n mouseY <= parentRect.top + parentRect.height\n ) {\n this.handleMouseMove();\n } else if (isShown) {\n this.stopTimer();\n this.hide();\n }\n }\n\n startTimer(): void {\n this.stopTimer();\n\n const { timeout, reshowTimeout } = this.props;\n let timerTimeout = timeout;\n if (\n Tooltip.shownTooltipCount > 0 ||\n Date.now() - Tooltip.lastHiddenTime < Tooltip.triggerReshowThreshold\n ) {\n timerTimeout = reshowTimeout;\n }\n this.timer = window.setTimeout(this.handleTimeout, timerTimeout);\n }\n\n stopTimer(): void {\n if (this.timer) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n show(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n if (!isShown) {\n this.popper.current?.show();\n this.setState({ isShown: true });\n\n const { interactive } = this.props;\n if (interactive) {\n this.startListeningWindow();\n }\n }\n }\n\n hide(): void {\n this.popper.current?.hide();\n this.stopListeningWindow();\n }\n\n update(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleExited(): void {\n this.setState({ isShown: false });\n const { onExited } = this.props;\n onExited();\n }\n\n stopShowingTooltip(): void {\n const { isShown } = this.state;\n this.stopTimer();\n if (isShown) {\n this.hide();\n }\n }\n\n render(): JSX.Element {\n const {\n interactive,\n children,\n options,\n referenceObject,\n popperClassName,\n 'data-testid': dataTestId,\n } = this.props;\n const { isShown } = this.state;\n return (\n <div\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n <Popper\n className={classNames(popperClassName)}\n options={options}\n ref={this.popper}\n onExited={this.handleExited}\n interactive={interactive}\n referenceObject={referenceObject}\n >\n <div className=\"tooltip-content\"> {isShown && children}</div>\n </Popper>\n </div>\n );\n }\n}\n\nexport default Tooltip;\n"],"file":"Tooltip.js"}
@@ -1,4 +1,3 @@
1
1
  export { default as Popper } from './Popper';
2
- export type { PopperOptions, ReferenceObject } from './Popper';
3
2
  export { default as Tooltip } from './Tooltip';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/popper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/popper/index.ts"],"names":["default","Popper","Tooltip"],"mappings":"SAASA,OAAO,IAAIC,M;SAEXD,OAAO,IAAIE,O","sourcesContent":["export { default as Popper } from './Popper';\nexport type { PopperOptions, ReferenceObject } from './Popper';\nexport { default as Tooltip } from './Tooltip';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/popper/index.ts"],"names":["default","Popper","Tooltip"],"mappings":"SAASA,OAAO,IAAIC,M;SACXD,OAAO,IAAIE,O","sourcesContent":["export { default as Popper } from './Popper';\nexport { default as Tooltip } from './Tooltip';\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/components",
3
- "version": "0.13.3-beta.2+0401b26",
3
+ "version": "0.13.5",
4
4
  "description": "Deephaven React component library",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -30,12 +30,12 @@
30
30
  "start": "cross-env NODE_ENV=development npm run watch"
31
31
  },
32
32
  "dependencies": {
33
- "@deephaven/icons": "^0.13.3-beta.2+0401b26",
34
- "@deephaven/log": "^0.13.3-beta.2+0401b26",
35
- "@deephaven/react-hooks": "^0.13.3-beta.2+0401b26",
36
- "@deephaven/utils": "^0.13.3-beta.2+0401b26",
37
- "@fortawesome/fontawesome-svg-core": "^6.1.1",
38
- "@fortawesome/react-fontawesome": "^0.1.18",
33
+ "@deephaven/icons": "^0.13.0",
34
+ "@deephaven/log": "^0.13.0",
35
+ "@deephaven/react-hooks": "^0.13.0",
36
+ "@deephaven/utils": "^0.13.0",
37
+ "@fortawesome/fontawesome-svg-core": "1.2.36",
38
+ "@fortawesome/react-fontawesome": "^0.1.15",
39
39
  "bootstrap": "4.6.1",
40
40
  "classnames": "^2.3.1",
41
41
  "event-target-shim": "^6.0.2",
@@ -57,8 +57,8 @@
57
57
  "react-dom": "^17.x"
58
58
  },
59
59
  "devDependencies": {
60
- "@deephaven/mocks": "^0.13.3-beta.2+0401b26",
61
- "@deephaven/tsconfig": "^0.13.3-beta.2+0401b26"
60
+ "@deephaven/mocks": "^0.13.0",
61
+ "@deephaven/tsconfig": "^0.13.0"
62
62
  },
63
63
  "files": [
64
64
  "dist",
@@ -70,5 +70,5 @@
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "gitHead": "0401b263817c8935c0285d98484ae594e65ab12b"
73
+ "gitHead": "1f0a13603448c8b065a69410451f1044cbba6704"
74
74
  }