@deephaven/components 0.106.1-beta.0 → 0.106.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoCompleteInput.d.ts","sourceRoot":"","sources":["../src/AutoCompleteInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,OAAO,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,0BAA0B,CAAC;AAIlC,aAAK,yBAAyB;IAC5B,EAAE,OAAO;IACT,IAAI,SAAS;CACd;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,sBAAsB;IAC9B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,sBAAsB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,kBAAkB,EAAE,CAAC;IACtC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,cAAM,iBAAkB,SAAQ,SAAS,CACvC,sBAAsB,EACtB,sBAAsB,CACvB;IACC,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;MAiBd;IAEF,MAAM,CAAC,YAAY;oBACL,IAAI;;;;;;;mBASL,IAAI;;;MAKf;IAEF,MAAM,CAAC,yBAAyB,mCAA6B;gBAEjD,KAAK,EAAE,sBAAsB;IA4CzC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAEhC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE7C,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE/C,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEzC,aAAa,IAAI,IAAI;IAQrB,wBAAwB,aACZ,kBAAkB,EAAE,SAAS,MAAM,wDAAnC,kBAAkB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"AutoCompleteInput.d.ts","sourceRoot":"","sources":["../src/AutoCompleteInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,9 @@ class AutoCompleteInput extends Component {
|
|
|
45
45
|
_defineProperty(this, "input", void 0);
|
|
46
46
|
_defineProperty(this, "getCachedFilteredOptions", memoize((options, input) => options.filter(
|
|
47
47
|
// supports partial match
|
|
48
|
-
option => option.title.toLowerCase().indexOf(input.toLowerCase()) >= 0)
|
|
48
|
+
option => option.title.toLowerCase().indexOf(input.toLowerCase()) >= 0), {
|
|
49
|
+
max: 1000
|
|
50
|
+
}));
|
|
49
51
|
var {
|
|
50
52
|
popperOptions
|
|
51
53
|
} = this.props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoCompleteInput.js","names":["React","Component","PropTypes","memoize","classNames","debounce","Popper","jsx","_jsx","jsxs","_jsxs","DEBOUNCE_DELAY","MENU_NAVIGATION_DIRECTION","AutoCompleteInput","constructor","props","_defineProperty","options","input","filter","option","title","toLowerCase","indexOf","popperOptions","_objectSpread","placement","modifiers","preventOverflow","enabled","state","filteredOptions","keyboardOptionIndex","menuIsOpen","inputWidth","invalid","handleMenuKeyDown","bind","handleMenuBlur","handleInputChange","handleInputKeyDown","handleInputBlur","handelInputFocus","handleInputClick","updateInputValue","handleOptionClick","handleMenuOpened","handleMenuExited","popper","createRef","cbContainer","menuContainer","setInputWidth","current","setState","getBoundingClientRect","width","getValueAndValidate","value","isValid","result","length","processFilterChange","fireOnChange","arguments","undefined","onChange","_this$popper$current","getCachedFilteredOptions","perfectMatch","closeMenu","scheduleUpdate","resetValue","handleResize","event","_this$input$current","key","stopPropagation","preventDefault","focus","navigateMenu","UP","DOWN","shiftKey","direction","newKeyboardOptionIndex","scrollOptionIntoView","onEnter","openMenu","target","_this$input$current2","relatedTarget","Element","element","contains","_this$input$current3","window","requestAnimationFrame","_this$popper$current2","show","_this$popper$current3","focusInput","_this$input$current4","hide","index","_this$menuContainer$c","children","item","scrollIntoView","behavior","block","renderMenuElement","className","ref","role","onKeyDown","style","onBlur","renderOptions","noMatchText","map","renderOption","concat","type","onClick","onFocus","render","inputPlaceholder","disabled","defaultTitle","spellCheck","dataTestId","placeholder","onEntered","onExited","arrayOf","shape","string","isRequired","func","bool"],"sources":["../src/AutoCompleteInput.tsx"],"sourcesContent":["/**\n * An Input component that pops and filters auto complete options as you type.\n *\n * props:\n * @param options :[{\n * title: 'option title for display',\n * value: 'option value' //option value\n * }]\n * @param popperOptions options for the Popper\n * @param onChange called when the value is changed from the pulldown\n * @param inputPlaceholder place holder for the input box\n * @param disabled disable both input & drop down\n * @param className an optional class name applied to the input element\n * @param defaultTitle the default title to display\n * @param spellCheck flag to disable spell checking, defaults to true\n * @param onEnter called when the Enter key is typed in the input element\n *\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'memoizee';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { type PopperOptions } from 'popper.js';\nimport { Popper } from './popper';\n\nimport './AutoCompleteInput.scss';\n\nconst DEBOUNCE_DELAY = 100;\n\nenum MENU_NAVIGATION_DIRECTION {\n UP = 'UP',\n DOWN = 'DOWN',\n}\n\ninterface AutoCompleteOption {\n title: string;\n value: string;\n}\n\ninterface AutoCompleteInputProps {\n options: AutoCompleteOption[];\n popperOptions: PopperOptions;\n onChange: (value: string, isValid: boolean) => void;\n inputPlaceholder: string;\n disabled: boolean;\n className: string;\n defaultTitle: string;\n spellCheck: boolean;\n onEnter: () => void;\n noMatchText: string;\n 'data-testid'?: string;\n}\n\ninterface AutoCompleteInputState {\n title: string;\n filteredOptions: AutoCompleteOption[];\n keyboardOptionIndex: number;\n menuIsOpen: boolean;\n inputWidth: number;\n invalid: boolean;\n popperOptions: PopperOptions;\n}\n\nclass AutoCompleteInput extends Component<\n AutoCompleteInputProps,\n AutoCompleteInputState\n> {\n static propTypes = {\n options: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n })\n ).isRequired,\n popperOptions: PropTypes.shape({}),\n onChange: PropTypes.func,\n inputPlaceholder: PropTypes.string,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n defaultTitle: PropTypes.string,\n spellCheck: PropTypes.bool,\n onEnter: PropTypes.func,\n noMatchText: PropTypes.string,\n 'data-testid': PropTypes.string,\n };\n\n static defaultProps = {\n onChange(): void {\n // no-op\n },\n inputPlaceholder: '',\n disabled: false,\n className: '',\n defaultTitle: '',\n popperOptions: null,\n spellCheck: true,\n onEnter(): void {\n // no-op\n },\n noMatchText: 'No matching items found',\n 'data-testid': undefined,\n };\n\n static MENU_NAVIGATION_DIRECTION = MENU_NAVIGATION_DIRECTION;\n\n constructor(props: AutoCompleteInputProps) {\n super(props);\n\n let { popperOptions } = this.props;\n popperOptions = {\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: { enabled: false },\n },\n ...popperOptions,\n };\n\n this.state = {\n title: '',\n filteredOptions: [],\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n invalid: false,\n popperOptions,\n };\n\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.handleMenuBlur = this.handleMenuBlur.bind(this);\n\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handelInputFocus = this.handelInputFocus.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n\n this.updateInputValue = debounce(this.updateInputValue, DEBOUNCE_DELAY);\n\n this.handleOptionClick = this.handleOptionClick.bind(this);\n\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n\n this.popper = React.createRef();\n this.cbContainer = React.createRef();\n this.menuContainer = React.createRef();\n this.input = React.createRef();\n }\n\n popper: React.RefObject<Popper>;\n\n cbContainer: React.RefObject<HTMLDivElement>;\n\n menuContainer: React.RefObject<HTMLDivElement>;\n\n input: React.RefObject<HTMLInputElement>;\n\n setInputWidth(): void {\n if (this.cbContainer.current) {\n this.setState({\n inputWidth: this.cbContainer.current.getBoundingClientRect().width,\n });\n }\n }\n\n getCachedFilteredOptions = memoize(\n (options: AutoCompleteOption[], input: string) =>\n options.filter(\n // supports partial match\n option => option.title.toLowerCase().indexOf(input.toLowerCase()) >= 0\n )\n );\n\n // validation needs to be an exact case-sensitve match on value\n getValueAndValidate(title: string): { value: string; isValid: boolean } {\n if (!title) {\n this.setState({ invalid: false });\n return { value: title, isValid: false };\n }\n\n // validate\n const { options } = this.props;\n const result = options.filter(\n option => option.title.toLowerCase() === title.toLowerCase()\n );\n if (result.length < 1) {\n this.setState({ invalid: true });\n return { value: title, isValid: false };\n }\n\n this.setState({ invalid: false });\n return { value: result[0].value, isValid: true };\n }\n\n // validate typed entries emit change event using value\n updateInputValue(title: string): void {\n const { menuIsOpen } = this.state;\n const { value, isValid } = this.getValueAndValidate(title);\n if (menuIsOpen) this.processFilterChange(title);\n this.fireOnChange(value, isValid);\n }\n\n fireOnChange(value: string, isValid = true): void {\n const { onChange } = this.props;\n onChange(value, isValid);\n }\n\n processFilterChange(filter: string): void {\n const { options } = this.props;\n const { menuIsOpen } = this.state;\n const filteredOptions = filter\n ? this.getCachedFilteredOptions(options, filter)\n : options;\n const perfectMatch =\n filteredOptions.length === 1 && filteredOptions[0].title === filter;\n this.setState({\n filteredOptions,\n keyboardOptionIndex: 0,\n });\n if (perfectMatch && menuIsOpen) {\n this.closeMenu();\n return;\n }\n this.popper.current?.scheduleUpdate(); // filtered options list can change size, may need to be repositioned\n }\n\n resetValue(): void {\n this.setState({ title: '' });\n this.fireOnChange('');\n }\n\n handleResize(): void {\n this.setInputWidth();\n }\n\n handleMenuKeyDown(event: React.KeyboardEvent): void {\n const { filteredOptions, keyboardOptionIndex } = this.state;\n const option = filteredOptions[keyboardOptionIndex];\n\n switch (event.key) {\n case 'Enter':\n case 'ArrowRight':\n event.stopPropagation();\n event.preventDefault();\n if (option != null) {\n this.setState({ title: option.title, invalid: false });\n this.fireOnChange(option.value);\n }\n this.closeMenu();\n this.input.current?.focus();\n break;\n case 'ArrowUp':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n case 'ArrowDown':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n if (event.shiftKey) {\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n }\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Escape':\n event.preventDefault();\n event.stopPropagation();\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n\n navigateMenu(direction: MENU_NAVIGATION_DIRECTION): void {\n const { filteredOptions, keyboardOptionIndex } = this.state;\n let newKeyboardOptionIndex = keyboardOptionIndex;\n if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP) {\n if (keyboardOptionIndex > 0) {\n newKeyboardOptionIndex =\n (newKeyboardOptionIndex - 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex,\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = filteredOptions.length - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex,\n });\n }\n } else if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN) {\n if (keyboardOptionIndex < filteredOptions.length) {\n newKeyboardOptionIndex =\n (newKeyboardOptionIndex + 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex,\n });\n }\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n }\n\n handleInputKeyDown(event: React.KeyboardEvent): void {\n const { onEnter } = this.props;\n const { menuIsOpen } = this.state;\n\n if (menuIsOpen) {\n this.handleMenuKeyDown(event);\n } else if (event.key === 'Enter') {\n onEnter();\n } else if (event.key === 'Escape') {\n this.resetValue();\n event.preventDefault();\n event.stopPropagation();\n } else if (\n !(\n event.key === 'ArrowRight' ||\n event.key === 'ArrowLeft' ||\n event.key === 'Tab' ||\n event.key === 'Shift'\n )\n ) {\n this.openMenu();\n }\n }\n\n handleInputChange(event: React.ChangeEvent<HTMLInputElement>): void {\n this.setState({ title: event.target.value });\n this.updateInputValue(event.target.value);\n }\n\n handleOptionClick(option: AutoCompleteOption): void {\n this.setState({ title: option.title, invalid: false });\n this.fireOnChange(option.value);\n this.closeMenu();\n this.input.current?.focus();\n }\n\n handelInputFocus(): void {\n const { menuIsOpen } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n\n handleInputClick(): void {\n const { menuIsOpen } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n\n handleInputBlur(event: React.FocusEvent<HTMLInputElement>): void {\n const { menuIsOpen } = this.state;\n if (\n menuIsOpen &&\n event.relatedTarget instanceof Element &&\n this.popper.current !== null &&\n this.popper.current.element.contains(event.relatedTarget)\n ) {\n return;\n }\n this.closeMenu(false);\n }\n\n handleMenuBlur(event: React.FocusEvent<HTMLDivElement>): void {\n // if blur event is caused by focusing on the input or focus on options don't close menu\n if (\n event.relatedTarget === this.input.current ||\n (event.relatedTarget instanceof Element &&\n this.popper.current !== null &&\n this.popper.current.element.contains(event.relatedTarget))\n ) {\n return;\n }\n this.closeMenu(false);\n }\n\n handleMenuOpened(): void {\n this.input.current?.focus();\n }\n\n handleMenuExited(): void {\n const { menuIsOpen } = this.state;\n if (menuIsOpen) {\n this.setState({ menuIsOpen: false, keyboardOptionIndex: 0 });\n }\n }\n\n openMenu(): void {\n const { title } = this.state;\n this.processFilterChange(title);\n this.setInputWidth();\n this.setState({ menuIsOpen: true });\n\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n this.popper.current?.show();\n });\n }\n\n closeMenu(focusInput = true): void {\n this.setState({ menuIsOpen: false, keyboardOptionIndex: 0 });\n if (focusInput) {\n this.input.current?.focus();\n }\n this.popper.current?.hide();\n }\n\n scrollOptionIntoView(index: number): void {\n if (this.menuContainer.current) {\n this.menuContainer.current.children.item(index)?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n }\n }\n\n renderMenuElement(): JSX.Element {\n const { inputWidth } = this.state;\n return (\n <div\n className={classNames('aci-options')}\n ref={this.menuContainer}\n role=\"presentation\"\n onKeyDown={this.handleMenuKeyDown}\n style={{ width: inputWidth }}\n onBlur={this.handleMenuBlur}\n >\n {this.renderOptions()}\n </div>\n );\n }\n\n renderOptions(): React.ReactNode {\n const { noMatchText } = this.props;\n const { title, filteredOptions } = this.state;\n\n if (title && filteredOptions.length === 0) {\n return <div className=\"no-match\">{noMatchText}</div>;\n }\n\n return filteredOptions.map((option, index) =>\n this.renderOption(option, index)\n );\n }\n\n renderOption(option: AutoCompleteOption, index: number): JSX.Element {\n const { keyboardOptionIndex } = this.state;\n const key = `option-${index}-${option.value}`;\n return (\n <button\n key={key}\n type=\"button\"\n className={classNames('aci-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index,\n })}\n onClick={() => this.handleOptionClick(option)}\n onFocus={() => this.setState({ keyboardOptionIndex: index })}\n >\n {option.title}\n </button>\n );\n }\n\n render(): JSX.Element {\n const {\n options,\n inputPlaceholder,\n disabled,\n className,\n defaultTitle,\n spellCheck,\n 'data-testid': dataTestId,\n } = this.props;\n const { title, menuIsOpen, popperOptions, invalid } = this.state;\n\n return (\n <div className=\"aci-container\" ref={this.cbContainer}>\n <input\n value={title || defaultTitle}\n className={classNames('form-control', className, 'aci-input', {\n 'is-invalid': invalid && !menuIsOpen,\n })}\n ref={this.input}\n onChange={this.handleInputChange}\n placeholder={inputPlaceholder || options[0].title}\n disabled={disabled}\n onFocus={this.handelInputFocus}\n onClick={this.handleInputClick}\n onBlur={this.handleInputBlur}\n onKeyDown={this.handleInputKeyDown}\n spellCheck={spellCheck}\n data-testid={dataTestId}\n />\n <Popper\n ref={this.popper}\n options={popperOptions}\n className={classNames('aci-options-popper interactive')}\n onEntered={this.handleMenuOpened}\n onExited={this.handleMenuExited}\n >\n {this.renderMenuElement()}\n </Popper>\n </div>\n );\n }\n}\n\nexport default AutoCompleteInput;\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,OAAO,MAAM,UAAU;AAC9B,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,QAAQ,MAAM,iBAAiB;AAAC,SAE9BC,MAAM;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAIf,IAAMC,cAAc,GAAG,GAAG;AAAC,IAEtBC,yBAAyB;AAAA,WAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;AAAA,GAAzBA,yBAAyB,KAAzBA,yBAAyB;AAkC9B,MAAMC,iBAAiB,SAASZ,SAAS,CAGvC;EAuCAa,WAAWA,CAACC,KAA6B,EAAE;IACzC,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,mCA2DYb,OAAO,CAChC,CAACc,OAA6B,EAAEC,KAAa,KAC3CD,OAAO,CAACE,MAAM;IACZ;IACAC,MAAM,IAAIA,MAAM,CAACC,KAAK,CAACC,WAAW,CAAC,CAAC,CAACC,OAAO,CAACL,KAAK,CAACI,WAAW,CAAC,CAAC,CAAC,IAAI,CACvE,CACJ,CAAC;IA/DC,IAAI;MAAEE;IAAc,CAAC,GAAG,IAAI,CAACT,KAAK;IAClCS,aAAa,GAAAC,aAAA;MACXC,SAAS,EAAE,YAAY;MACvBC,SAAS,EAAE;QACTC,eAAe,EAAE;UAAEC,OAAO,EAAE;QAAM;MACpC;IAAC,GACEL,aAAa,CACjB;IAED,IAAI,CAACM,KAAK,GAAG;MACXT,KAAK,EAAE,EAAE;MACTU,eAAe,EAAE,EAAE;MACnBC,mBAAmB,EAAE,CAAC;MACtBC,UAAU,EAAE,KAAK;MACjBC,UAAU,EAAE,GAAG;MACfC,OAAO,EAAE,KAAK;MACdX;IACF,CAAC;IAED,IAAI,CAACY,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACC,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACC,cAAc,GAAG,IAAI,CAACA,cAAc,CAACD,IAAI,CAAC,IAAI,CAAC;IAEpD,IAAI,CAACE,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACF,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACG,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACH,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,CAACI,eAAe,GAAG,IAAI,CAACA,eAAe,CAACJ,IAAI,CAAC,IAAI,CAAC;IACtD,IAAI,CAACK,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACL,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACM,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACN,IAAI,CAAC,IAAI,CAAC;IAExD,IAAI,CAACO,gBAAgB,GAAGvC,QAAQ,CAAC,IAAI,CAACuC,gBAAgB,EAAEjC,cAAc,CAAC;IAEvE,IAAI,CAACkC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACR,IAAI,CAAC,IAAI,CAAC;IAE1D,IAAI,CAACS,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACT,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACU,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACV,IAAI,CAAC,IAAI,CAAC;IAExD,IAAI,CAACW,MAAM,gBAAGhD,KAAK,CAACiD,SAAS,CAAC,CAAC;IAC/B,IAAI,CAACC,WAAW,gBAAGlD,KAAK,CAACiD,SAAS,CAAC,CAAC;IACpC,IAAI,CAACE,aAAa,gBAAGnD,KAAK,CAACiD,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC/B,KAAK,gBAAGlB,KAAK,CAACiD,SAAS,CAAC,CAAC;EAChC;EAUAG,aAAaA,CAAA,EAAS;IACpB,IAAI,IAAI,CAACF,WAAW,CAACG,OAAO,EAAE;MAC5B,IAAI,CAACC,QAAQ,CAAC;QACZpB,UAAU,EAAE,IAAI,CAACgB,WAAW,CAACG,OAAO,CAACE,qBAAqB,CAAC,CAAC,CAACC;MAC/D,CAAC,CAAC;IACJ;EACF;EAUA;EACAC,mBAAmBA,CAACpC,KAAa,EAAuC;IACtE,IAAI,CAACA,KAAK,EAAE;MACV,IAAI,CAACiC,QAAQ,CAAC;QAAEnB,OAAO,EAAE;MAAM,CAAC,CAAC;MACjC,OAAO;QAAEuB,KAAK,EAAErC,KAAK;QAAEsC,OAAO,EAAE;MAAM,CAAC;IACzC;;IAEA;IACA,IAAM;MAAE1C;IAAQ,CAAC,GAAG,IAAI,CAACF,KAAK;IAC9B,IAAM6C,MAAM,GAAG3C,OAAO,CAACE,MAAM,CAC3BC,MAAM,IAAIA,MAAM,CAACC,KAAK,CAACC,WAAW,CAAC,CAAC,KAAKD,KAAK,CAACC,WAAW,CAAC,CAC7D,CAAC;IACD,IAAIsC,MAAM,CAACC,MAAM,GAAG,CAAC,EAAE;MACrB,IAAI,CAACP,QAAQ,CAAC;QAAEnB,OAAO,EAAE;MAAK,CAAC,CAAC;MAChC,OAAO;QAAEuB,KAAK,EAAErC,KAAK;QAAEsC,OAAO,EAAE;MAAM,CAAC;IACzC;IAEA,IAAI,CAACL,QAAQ,CAAC;MAAEnB,OAAO,EAAE;IAAM,CAAC,CAAC;IACjC,OAAO;MAAEuB,KAAK,EAAEE,MAAM,CAAC,CAAC,CAAC,CAACF,KAAK;MAAEC,OAAO,EAAE;IAAK,CAAC;EAClD;;EAEA;EACAf,gBAAgBA,CAACvB,KAAa,EAAQ;IACpC,IAAM;MAAEY;IAAW,CAAC,GAAG,IAAI,CAACH,KAAK;IACjC,IAAM;MAAE4B,KAAK;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACF,mBAAmB,CAACpC,KAAK,CAAC;IAC1D,IAAIY,UAAU,EAAE,IAAI,CAAC6B,mBAAmB,CAACzC,KAAK,CAAC;IAC/C,IAAI,CAAC0C,YAAY,CAACL,KAAK,EAAEC,OAAO,CAAC;EACnC;EAEAI,YAAYA,CAACL,KAAa,EAAwB;IAAA,IAAtBC,OAAO,GAAAK,SAAA,CAAAH,MAAA,QAAAG,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,IAAI;IACxC,IAAM;MAAEE;IAAS,CAAC,GAAG,IAAI,CAACnD,KAAK;IAC/BmD,QAAQ,CAACR,KAAK,EAAEC,OAAO,CAAC;EAC1B;EAEAG,mBAAmBA,CAAC3C,MAAc,EAAQ;IAAA,IAAAgD,oBAAA;IACxC,IAAM;MAAElD;IAAQ,CAAC,GAAG,IAAI,CAACF,KAAK;IAC9B,IAAM;MAAEkB;IAAW,CAAC,GAAG,IAAI,CAACH,KAAK;IACjC,IAAMC,eAAe,GAAGZ,MAAM,GAC1B,IAAI,CAACiD,wBAAwB,CAACnD,OAAO,EAAEE,MAAM,CAAC,GAC9CF,OAAO;IACX,IAAMoD,YAAY,GAChBtC,eAAe,CAAC8B,MAAM,KAAK,CAAC,IAAI9B,eAAe,CAAC,CAAC,CAAC,CAACV,KAAK,KAAKF,MAAM;IACrE,IAAI,CAACmC,QAAQ,CAAC;MACZvB,eAAe;MACfC,mBAAmB,EAAE;IACvB,CAAC,CAAC;IACF,IAAIqC,YAAY,IAAIpC,UAAU,EAAE;MAC9B,IAAI,CAACqC,SAAS,CAAC,CAAC;MAChB;IACF;IACA,CAAAH,oBAAA,OAAI,CAACnB,MAAM,CAACK,OAAO,cAAAc,oBAAA,uBAAnBA,oBAAA,CAAqBI,cAAc,CAAC,CAAC,CAAC,CAAC;EACzC;;EAEAC,UAAUA,CAAA,EAAS;IACjB,IAAI,CAAClB,QAAQ,CAAC;MAAEjC,KAAK,EAAE;IAAG,CAAC,CAAC;IAC5B,IAAI,CAAC0C,YAAY,CAAC,EAAE,CAAC;EACvB;EAEAU,YAAYA,CAAA,EAAS;IACnB,IAAI,CAACrB,aAAa,CAAC,CAAC;EACtB;EAEAhB,iBAAiBA,CAACsC,KAA0B,EAAQ;IAAA,IAAAC,mBAAA;IAClD,IAAM;MAAE5C,eAAe;MAAEC;IAAoB,CAAC,GAAG,IAAI,CAACF,KAAK;IAC3D,IAAMV,MAAM,GAAGW,eAAe,CAACC,mBAAmB,CAAC;IAEnD,QAAQ0C,KAAK,CAACE,GAAG;MACf,KAAK,OAAO;MACZ,KAAK,YAAY;QACfF,KAAK,CAACG,eAAe,CAAC,CAAC;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtB,IAAI1D,MAAM,IAAI,IAAI,EAAE;UAClB,IAAI,CAACkC,QAAQ,CAAC;YAAEjC,KAAK,EAAED,MAAM,CAACC,KAAK;YAAEc,OAAO,EAAE;UAAM,CAAC,CAAC;UACtD,IAAI,CAAC4B,YAAY,CAAC3C,MAAM,CAACsC,KAAK,CAAC;QACjC;QACA,IAAI,CAACY,SAAS,CAAC,CAAC;QAChB,CAAAK,mBAAA,OAAI,CAACzD,KAAK,CAACmC,OAAO,cAAAsB,mBAAA,uBAAlBA,mBAAA,CAAoBI,KAAK,CAAC,CAAC;QAC3B;MACF,KAAK,SAAS;QACZL,KAAK,CAACG,eAAe,CAAC,CAAC;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtB,IAAI,CAACE,YAAY,CAACnE,iBAAiB,CAACD,yBAAyB,CAACqE,EAAE,CAAC;QACjE;MACF,KAAK,WAAW;QACdP,KAAK,CAACG,eAAe,CAAC,CAAC;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtB,IAAI,CAACE,YAAY,CAACnE,iBAAiB,CAACD,yBAAyB,CAACsE,IAAI,CAAC;QACnE;MACF,KAAK,KAAK;QACRR,KAAK,CAACG,eAAe,CAAC,CAAC;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtB,IAAIJ,KAAK,CAACS,QAAQ,EAAE;UAClB,IAAI,CAACH,YAAY,CAACnE,iBAAiB,CAACD,yBAAyB,CAACqE,EAAE,CAAC;UACjE;QACF;QACA,IAAI,CAACD,YAAY,CAACnE,iBAAiB,CAACD,yBAAyB,CAACsE,IAAI,CAAC;QACnE;MACF,KAAK,QAAQ;QACXR,KAAK,CAACI,cAAc,CAAC,CAAC;QACtBJ,KAAK,CAACG,eAAe,CAAC,CAAC;QACvB,IAAI,CAACP,SAAS,CAAC,CAAC;QAChB;MACF;QACE;IACJ;EACF;EAEAU,YAAYA,CAACI,SAAoC,EAAQ;IACvD,IAAM;MAAErD,eAAe;MAAEC;IAAoB,CAAC,GAAG,IAAI,CAACF,KAAK;IAC3D,IAAIuD,sBAAsB,GAAGrD,mBAAmB;IAChD,IAAIoD,SAAS,KAAKvE,iBAAiB,CAACD,yBAAyB,CAACqE,EAAE,EAAE;MAChE,IAAIjD,mBAAmB,GAAG,CAAC,EAAE;QAC3BqD,sBAAsB,GACpB,CAACA,sBAAsB,GAAG,CAAC,IAAItD,eAAe,CAAC8B,MAAM;QACvD,IAAI,CAACP,QAAQ,CAAC;UACZtB,mBAAmB,EAAEqD;QACvB,CAAC,CAAC;MACJ,CAAC,MAAM,IAAIrD,mBAAmB,KAAK,CAAC,EAAE;QACpCqD,sBAAsB,GAAGtD,eAAe,CAAC8B,MAAM,GAAG,CAAC;QACnD,IAAI,CAACP,QAAQ,CAAC;UACZtB,mBAAmB,EAAEqD;QACvB,CAAC,CAAC;MACJ;IACF,CAAC,MAAM,IAAID,SAAS,KAAKvE,iBAAiB,CAACD,yBAAyB,CAACsE,IAAI,EAAE;MACzE,IAAIlD,mBAAmB,GAAGD,eAAe,CAAC8B,MAAM,EAAE;QAChDwB,sBAAsB,GACpB,CAACA,sBAAsB,GAAG,CAAC,IAAItD,eAAe,CAAC8B,MAAM;QACvD,IAAI,CAACP,QAAQ,CAAC;UACZtB,mBAAmB,EAAEqD;QACvB,CAAC,CAAC;MACJ;IACF;IACA,IAAI,CAACC,oBAAoB,CAACD,sBAAsB,CAAC;EACnD;EAEA7C,kBAAkBA,CAACkC,KAA0B,EAAQ;IACnD,IAAM;MAAEa;IAAQ,CAAC,GAAG,IAAI,CAACxE,KAAK;IAC9B,IAAM;MAAEkB;IAAW,CAAC,GAAG,IAAI,CAACH,KAAK;IAEjC,IAAIG,UAAU,EAAE;MACd,IAAI,CAACG,iBAAiB,CAACsC,KAAK,CAAC;IAC/B,CAAC,MAAM,IAAIA,KAAK,CAACE,GAAG,KAAK,OAAO,EAAE;MAChCW,OAAO,CAAC,CAAC;IACX,CAAC,MAAM,IAAIb,KAAK,CAACE,GAAG,KAAK,QAAQ,EAAE;MACjC,IAAI,CAACJ,UAAU,CAAC,CAAC;MACjBE,KAAK,CAACI,cAAc,CAAC,CAAC;MACtBJ,KAAK,CAACG,eAAe,CAAC,CAAC;IACzB,CAAC,MAAM,IACL,EACEH,KAAK,CAACE,GAAG,KAAK,YAAY,IAC1BF,KAAK,CAACE,GAAG,KAAK,WAAW,IACzBF,KAAK,CAACE,GAAG,KAAK,KAAK,IACnBF,KAAK,CAACE,GAAG,KAAK,OAAO,CACtB,EACD;MACA,IAAI,CAACY,QAAQ,CAAC,CAAC;IACjB;EACF;EAEAjD,iBAAiBA,CAACmC,KAA0C,EAAQ;IAClE,IAAI,CAACpB,QAAQ,CAAC;MAAEjC,KAAK,EAAEqD,KAAK,CAACe,MAAM,CAAC/B;IAAM,CAAC,CAAC;IAC5C,IAAI,CAACd,gBAAgB,CAAC8B,KAAK,CAACe,MAAM,CAAC/B,KAAK,CAAC;EAC3C;EAEAb,iBAAiBA,CAACzB,MAA0B,EAAQ;IAAA,IAAAsE,oBAAA;IAClD,IAAI,CAACpC,QAAQ,CAAC;MAAEjC,KAAK,EAAED,MAAM,CAACC,KAAK;MAAEc,OAAO,EAAE;IAAM,CAAC,CAAC;IACtD,IAAI,CAAC4B,YAAY,CAAC3C,MAAM,CAACsC,KAAK,CAAC;IAC/B,IAAI,CAACY,SAAS,CAAC,CAAC;IAChB,CAAAoB,oBAAA,OAAI,CAACxE,KAAK,CAACmC,OAAO,cAAAqC,oBAAA,uBAAlBA,oBAAA,CAAoBX,KAAK,CAAC,CAAC;EAC7B;EAEArC,gBAAgBA,CAAA,EAAS;IACvB,IAAM;MAAET;IAAW,CAAC,GAAG,IAAI,CAACH,KAAK;IACjC,IAAI,CAACG,UAAU,EAAE;MACf,IAAI,CAACuD,QAAQ,CAAC,CAAC;IACjB;EACF;EAEA7C,gBAAgBA,CAAA,EAAS;IACvB,IAAM;MAAEV;IAAW,CAAC,GAAG,IAAI,CAACH,KAAK;IACjC,IAAI,CAACG,UAAU,EAAE;MACf,IAAI,CAACuD,QAAQ,CAAC,CAAC;IACjB;EACF;EAEA/C,eAAeA,CAACiC,KAAyC,EAAQ;IAC/D,IAAM;MAAEzC;IAAW,CAAC,GAAG,IAAI,CAACH,KAAK;IACjC,IACEG,UAAU,IACVyC,KAAK,CAACiB,aAAa,YAAYC,OAAO,IACtC,IAAI,CAAC5C,MAAM,CAACK,OAAO,KAAK,IAAI,IAC5B,IAAI,CAACL,MAAM,CAACK,OAAO,CAACwC,OAAO,CAACC,QAAQ,CAACpB,KAAK,CAACiB,aAAa,CAAC,EACzD;MACA;IACF;IACA,IAAI,CAACrB,SAAS,CAAC,KAAK,CAAC;EACvB;EAEAhC,cAAcA,CAACoC,KAAuC,EAAQ;IAC5D;IACA,IACEA,KAAK,CAACiB,aAAa,KAAK,IAAI,CAACzE,KAAK,CAACmC,OAAO,IACzCqB,KAAK,CAACiB,aAAa,YAAYC,OAAO,IACrC,IAAI,CAAC5C,MAAM,CAACK,OAAO,KAAK,IAAI,IAC5B,IAAI,CAACL,MAAM,CAACK,OAAO,CAACwC,OAAO,CAACC,QAAQ,CAACpB,KAAK,CAACiB,aAAa,CAAE,EAC5D;MACA;IACF;IACA,IAAI,CAACrB,SAAS,CAAC,KAAK,CAAC;EACvB;EAEAxB,gBAAgBA,CAAA,EAAS;IAAA,IAAAiD,oBAAA;IACvB,CAAAA,oBAAA,OAAI,CAAC7E,KAAK,CAACmC,OAAO,cAAA0C,oBAAA,uBAAlBA,oBAAA,CAAoBhB,KAAK,CAAC,CAAC;EAC7B;EAEAhC,gBAAgBA,CAAA,EAAS;IACvB,IAAM;MAAEd;IAAW,CAAC,GAAG,IAAI,CAACH,KAAK;IACjC,IAAIG,UAAU,EAAE;MACd,IAAI,CAACqB,QAAQ,CAAC;QAAErB,UAAU,EAAE,KAAK;QAAED,mBAAmB,EAAE;MAAE,CAAC,CAAC;IAC9D;EACF;EAEAwD,QAAQA,CAAA,EAAS;IACf,IAAM;MAAEnE;IAAM,CAAC,GAAG,IAAI,CAACS,KAAK;IAC5B,IAAI,CAACgC,mBAAmB,CAACzC,KAAK,CAAC;IAC/B,IAAI,CAAC+B,aAAa,CAAC,CAAC;IACpB,IAAI,CAACE,QAAQ,CAAC;MAAErB,UAAU,EAAE;IAAK,CAAC,CAAC;;IAEnC;IACA+D,MAAM,CAACC,qBAAqB,CAAC,MAAM;MAAA,IAAAC,qBAAA;MACjC,CAAAA,qBAAA,OAAI,CAAClD,MAAM,CAACK,OAAO,cAAA6C,qBAAA,uBAAnBA,qBAAA,CAAqBC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC;EACJ;EAEA7B,SAASA,CAAA,EAA0B;IAAA,IAAA8B,qBAAA;IAAA,IAAzBC,UAAU,GAAArC,SAAA,CAAAH,MAAA,QAAAG,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,IAAI;IACzB,IAAI,CAACV,QAAQ,CAAC;MAAErB,UAAU,EAAE,KAAK;MAAED,mBAAmB,EAAE;IAAE,CAAC,CAAC;IAC5D,IAAIqE,UAAU,EAAE;MAAA,IAAAC,oBAAA;MACd,CAAAA,oBAAA,OAAI,CAACpF,KAAK,CAACmC,OAAO,cAAAiD,oBAAA,uBAAlBA,oBAAA,CAAoBvB,KAAK,CAAC,CAAC;IAC7B;IACA,CAAAqB,qBAAA,OAAI,CAACpD,MAAM,CAACK,OAAO,cAAA+C,qBAAA,uBAAnBA,qBAAA,CAAqBG,IAAI,CAAC,CAAC;EAC7B;EAEAjB,oBAAoBA,CAACkB,KAAa,EAAQ;IACxC,IAAI,IAAI,CAACrD,aAAa,CAACE,OAAO,EAAE;MAAA,IAAAoD,qBAAA;MAC9B,CAAAA,qBAAA,OAAI,CAACtD,aAAa,CAACE,OAAO,CAACqD,QAAQ,CAACC,IAAI,CAACH,KAAK,CAAC,cAAAC,qBAAA,uBAA/CA,qBAAA,CAAiDG,cAAc,CAAC;QAC9DC,QAAQ,EAAE,QAAQ;QAClBC,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;EACF;EAEAC,iBAAiBA,CAAA,EAAgB;IAC/B,IAAM;MAAE7E;IAAW,CAAC,GAAG,IAAI,CAACJ,KAAK;IACjC,oBACEtB,IAAA;MACEwG,SAAS,EAAE5G,UAAU,CAAC,aAAa,CAAE;MACrC6G,GAAG,EAAE,IAAI,CAAC9D,aAAc;MACxB+D,IAAI,EAAC,cAAc;MACnBC,SAAS,EAAE,IAAI,CAAC/E,iBAAkB;MAClCgF,KAAK,EAAE;QAAE5D,KAAK,EAAEtB;MAAW,CAAE;MAC7BmF,MAAM,EAAE,IAAI,CAAC/E,cAAe;MAAAoE,QAAA,EAE3B,IAAI,CAACY,aAAa,CAAC;IAAC,CAClB,CAAC;EAEV;EAEAA,aAAaA,CAAA,EAAoB;IAC/B,IAAM;MAAEC;IAAY,CAAC,GAAG,IAAI,CAACxG,KAAK;IAClC,IAAM;MAAEM,KAAK;MAAEU;IAAgB,CAAC,GAAG,IAAI,CAACD,KAAK;IAE7C,IAAIT,KAAK,IAAIU,eAAe,CAAC8B,MAAM,KAAK,CAAC,EAAE;MACzC,oBAAOrD,IAAA;QAAKwG,SAAS,EAAC,UAAU;QAAAN,QAAA,EAAEa;MAAW,CAAM,CAAC;IACtD;IAEA,OAAOxF,eAAe,CAACyF,GAAG,CAAC,CAACpG,MAAM,EAAEoF,KAAK,KACvC,IAAI,CAACiB,YAAY,CAACrG,MAAM,EAAEoF,KAAK,CACjC,CAAC;EACH;EAEAiB,YAAYA,CAACrG,MAA0B,EAAEoF,KAAa,EAAe;IACnE,IAAM;MAAExE;IAAoB,CAAC,GAAG,IAAI,CAACF,KAAK;IAC1C,IAAM8C,GAAG,aAAA8C,MAAA,CAAalB,KAAK,OAAAkB,MAAA,CAAItG,MAAM,CAACsC,KAAK,CAAE;IAC7C,oBACElD,IAAA;MAEEmH,IAAI,EAAC,QAAQ;MACbX,SAAS,EAAE5G,UAAU,CAAC,gBAAgB,EAAE;QACtC,iBAAiB,EAAE4B,mBAAmB,KAAKwE;MAC7C,CAAC,CAAE;MACHoB,OAAO,EAAEA,CAAA,KAAM,IAAI,CAAC/E,iBAAiB,CAACzB,MAAM,CAAE;MAC9CyG,OAAO,EAAEA,CAAA,KAAM,IAAI,CAACvE,QAAQ,CAAC;QAAEtB,mBAAmB,EAAEwE;MAAM,CAAC,CAAE;MAAAE,QAAA,EAE5DtF,MAAM,CAACC;IAAK,GARRuD,GASC,CAAC;EAEb;EAEAkD,MAAMA,CAAA,EAAgB;IACpB,IAAM;MACJ7G,OAAO;MACP8G,gBAAgB;MAChBC,QAAQ;MACRhB,SAAS;MACTiB,YAAY;MACZC,UAAU;MACV,aAAa,EAAEC;IACjB,CAAC,GAAG,IAAI,CAACpH,KAAK;IACd,IAAM;MAAEM,KAAK;MAAEY,UAAU;MAAET,aAAa;MAAEW;IAAQ,CAAC,GAAG,IAAI,CAACL,KAAK;IAEhE,oBACEpB,KAAA;MAAKsG,SAAS,EAAC,eAAe;MAACC,GAAG,EAAE,IAAI,CAAC/D,WAAY;MAAAwD,QAAA,gBACnDlG,IAAA;QACEkD,KAAK,EAAErC,KAAK,IAAI4G,YAAa;QAC7BjB,SAAS,EAAE5G,UAAU,CAAC,cAAc,EAAE4G,SAAS,EAAE,WAAW,EAAE;UAC5D,YAAY,EAAE7E,OAAO,IAAI,CAACF;QAC5B,CAAC,CAAE;QACHgF,GAAG,EAAE,IAAI,CAAC/F,KAAM;QAChBgD,QAAQ,EAAE,IAAI,CAAC3B,iBAAkB;QACjC6F,WAAW,EAAEL,gBAAgB,IAAI9G,OAAO,CAAC,CAAC,CAAC,CAACI,KAAM;QAClD2G,QAAQ,EAAEA,QAAS;QACnBH,OAAO,EAAE,IAAI,CAACnF,gBAAiB;QAC/BkF,OAAO,EAAE,IAAI,CAACjF,gBAAiB;QAC/B0E,MAAM,EAAE,IAAI,CAAC5E,eAAgB;QAC7B0E,SAAS,EAAE,IAAI,CAAC3E,kBAAmB;QACnC0F,UAAU,EAAEA,UAAW;QACvB,eAAaC;MAAW,CACzB,CAAC,eACF3H,IAAA,CAACF,MAAM;QACL2G,GAAG,EAAE,IAAI,CAACjE,MAAO;QACjB/B,OAAO,EAAEO,aAAc;QACvBwF,SAAS,EAAE5G,UAAU,CAAC,gCAAgC,CAAE;QACxDiI,SAAS,EAAE,IAAI,CAACvF,gBAAiB;QACjCwF,QAAQ,EAAE,IAAI,CAACvF,gBAAiB;QAAA2D,QAAA,EAE/B,IAAI,CAACK,iBAAiB,CAAC;MAAC,CACnB,CAAC;IAAA,CACN,CAAC;EAEV;AACF;AAAC/F,eAAA,CAlcKH,iBAAiB,eAIF;EACjBI,OAAO,EAAEf,SAAS,CAACqI,OAAO,CACxBrI,SAAS,CAACsI,KAAK,CAAC;IACdnH,KAAK,EAAEnB,SAAS,CAACuI,MAAM,CAACC,UAAU;IAClChF,KAAK,EAAExD,SAAS,CAACuI,MAAM,CAACC;EAC1B,CAAC,CACH,CAAC,CAACA,UAAU;EACZlH,aAAa,EAAEtB,SAAS,CAACsI,KAAK,CAAC,CAAC,CAAC,CAAC;EAClCtE,QAAQ,EAAEhE,SAAS,CAACyI,IAAI;EACxBZ,gBAAgB,EAAE7H,SAAS,CAACuI,MAAM;EAClCT,QAAQ,EAAE9H,SAAS,CAAC0I,IAAI;EACxB5B,SAAS,EAAE9G,SAAS,CAACuI,MAAM;EAC3BR,YAAY,EAAE/H,SAAS,CAACuI,MAAM;EAC9BP,UAAU,EAAEhI,SAAS,CAAC0I,IAAI;EAC1BrD,OAAO,EAAErF,SAAS,CAACyI,IAAI;EACvBpB,WAAW,EAAErH,SAAS,CAACuI,MAAM;EAC7B,aAAa,EAAEvI,SAAS,CAACuI;AAC3B,CAAC;AAAAzH,eAAA,CArBGH,iBAAiB,kBAuBC;EACpBqD,QAAQA,CAAA,EAAS;IACf;EAAA,CACD;EACD6D,gBAAgB,EAAE,EAAE;EACpBC,QAAQ,EAAE,KAAK;EACfhB,SAAS,EAAE,EAAE;EACbiB,YAAY,EAAE,EAAE;EAChBzG,aAAa,EAAE,IAAI;EACnB0G,UAAU,EAAE,IAAI;EAChB3C,OAAOA,CAAA,EAAS;IACd;EAAA,CACD;EACDgC,WAAW,EAAE,yBAAyB;EACtC,aAAa,EAAEtD;AACjB,CAAC;AAAAjD,eAAA,CAtCGH,iBAAiB,+BAwCcD,yBAAyB;AA4Z9D,eAAeC,iBAAiB"}
|
|
1
|
+
{"version":3,"file":"AutoCompleteInput.js","names":["React","Component","PropTypes","memoize","classNames","debounce","Popper","jsx","_jsx","jsxs","_jsxs","DEBOUNCE_DELAY","MENU_NAVIGATION_DIRECTION","AutoCompleteInput","constructor","props","_defineProperty","options","input","filter","option","title","toLowerCase","indexOf","max","popperOptions","_objectSpread","placement","modifiers","preventOverflow","enabled","state","filteredOptions","keyboardOptionIndex","menuIsOpen","inputWidth","invalid","handleMenuKeyDown","bind","handleMenuBlur","handleInputChange","handleInputKeyDown","handleInputBlur","handelInputFocus","handleInputClick","updateInputValue","handleOptionClick","handleMenuOpened","handleMenuExited","popper","createRef","cbContainer","menuContainer","setInputWidth","current","setState","getBoundingClientRect","width","getValueAndValidate","value","isValid","result","length","processFilterChange","fireOnChange","arguments","undefined","onChange","_this$popper$current","getCachedFilteredOptions","perfectMatch","closeMenu","scheduleUpdate","resetValue","handleResize","event","_this$input$current","key","stopPropagation","preventDefault","focus","navigateMenu","UP","DOWN","shiftKey","direction","newKeyboardOptionIndex","scrollOptionIntoView","onEnter","openMenu","target","_this$input$current2","relatedTarget","Element","element","contains","_this$input$current3","window","requestAnimationFrame","_this$popper$current2","show","_this$popper$current3","focusInput","_this$input$current4","hide","index","_this$menuContainer$c","children","item","scrollIntoView","behavior","block","renderMenuElement","className","ref","role","onKeyDown","style","onBlur","renderOptions","noMatchText","map","renderOption","concat","type","onClick","onFocus","render","inputPlaceholder","disabled","defaultTitle","spellCheck","dataTestId","placeholder","onEntered","onExited","arrayOf","shape","string","isRequired","func","bool"],"sources":["../src/AutoCompleteInput.tsx"],"sourcesContent":["/**\n * An Input component that pops and filters auto complete options as you type.\n *\n * props:\n * @param options :[{\n * title: 'option title for display',\n * value: 'option value' //option value\n * }]\n * @param popperOptions options for the Popper\n * @param onChange called when the value is changed from the pulldown\n * @param inputPlaceholder place holder for the input box\n * @param disabled disable both input & drop down\n * @param className an optional class name applied to the input element\n * @param defaultTitle the default title to display\n * @param spellCheck flag to disable spell checking, defaults to true\n * @param onEnter called when the Enter key is typed in the input element\n *\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'memoizee';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { type PopperOptions } from 'popper.js';\nimport { Popper } from './popper';\n\nimport './AutoCompleteInput.scss';\n\nconst DEBOUNCE_DELAY = 100;\n\nenum MENU_NAVIGATION_DIRECTION {\n UP = 'UP',\n DOWN = 'DOWN',\n}\n\ninterface AutoCompleteOption {\n title: string;\n value: string;\n}\n\ninterface AutoCompleteInputProps {\n options: AutoCompleteOption[];\n popperOptions: PopperOptions;\n onChange: (value: string, isValid: boolean) => void;\n inputPlaceholder: string;\n disabled: boolean;\n className: string;\n defaultTitle: string;\n spellCheck: boolean;\n onEnter: () => void;\n noMatchText: string;\n 'data-testid'?: string;\n}\n\ninterface AutoCompleteInputState {\n title: string;\n filteredOptions: AutoCompleteOption[];\n keyboardOptionIndex: number;\n menuIsOpen: boolean;\n inputWidth: number;\n invalid: boolean;\n popperOptions: PopperOptions;\n}\n\nclass AutoCompleteInput extends Component<\n AutoCompleteInputProps,\n AutoCompleteInputState\n> {\n static propTypes = {\n options: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n })\n ).isRequired,\n popperOptions: PropTypes.shape({}),\n onChange: PropTypes.func,\n inputPlaceholder: PropTypes.string,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n defaultTitle: PropTypes.string,\n spellCheck: PropTypes.bool,\n onEnter: PropTypes.func,\n noMatchText: PropTypes.string,\n 'data-testid': PropTypes.string,\n };\n\n static defaultProps = {\n onChange(): void {\n // no-op\n },\n inputPlaceholder: '',\n disabled: false,\n className: '',\n defaultTitle: '',\n popperOptions: null,\n spellCheck: true,\n onEnter(): void {\n // no-op\n },\n noMatchText: 'No matching items found',\n 'data-testid': undefined,\n };\n\n static MENU_NAVIGATION_DIRECTION = MENU_NAVIGATION_DIRECTION;\n\n constructor(props: AutoCompleteInputProps) {\n super(props);\n\n let { popperOptions } = this.props;\n popperOptions = {\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: { enabled: false },\n },\n ...popperOptions,\n };\n\n this.state = {\n title: '',\n filteredOptions: [],\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n invalid: false,\n popperOptions,\n };\n\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.handleMenuBlur = this.handleMenuBlur.bind(this);\n\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handelInputFocus = this.handelInputFocus.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n\n this.updateInputValue = debounce(this.updateInputValue, DEBOUNCE_DELAY);\n\n this.handleOptionClick = this.handleOptionClick.bind(this);\n\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n\n this.popper = React.createRef();\n this.cbContainer = React.createRef();\n this.menuContainer = React.createRef();\n this.input = React.createRef();\n }\n\n popper: React.RefObject<Popper>;\n\n cbContainer: React.RefObject<HTMLDivElement>;\n\n menuContainer: React.RefObject<HTMLDivElement>;\n\n input: React.RefObject<HTMLInputElement>;\n\n setInputWidth(): void {\n if (this.cbContainer.current) {\n this.setState({\n inputWidth: this.cbContainer.current.getBoundingClientRect().width,\n });\n }\n }\n\n getCachedFilteredOptions = memoize(\n (options: AutoCompleteOption[], input: string) =>\n options.filter(\n // supports partial match\n option => option.title.toLowerCase().indexOf(input.toLowerCase()) >= 0\n ),\n { max: 1000 }\n );\n\n // validation needs to be an exact case-sensitve match on value\n getValueAndValidate(title: string): { value: string; isValid: boolean } {\n if (!title) {\n this.setState({ invalid: false });\n return { value: title, isValid: false };\n }\n\n // validate\n const { options } = this.props;\n const result = options.filter(\n option => option.title.toLowerCase() === title.toLowerCase()\n );\n if (result.length < 1) {\n this.setState({ invalid: true });\n return { value: title, isValid: false };\n }\n\n this.setState({ invalid: false });\n return { value: result[0].value, isValid: true };\n }\n\n // validate typed entries emit change event using value\n updateInputValue(title: string): void {\n const { menuIsOpen } = this.state;\n const { value, isValid } = this.getValueAndValidate(title);\n if (menuIsOpen) this.processFilterChange(title);\n this.fireOnChange(value, isValid);\n }\n\n fireOnChange(value: string, isValid = true): void {\n const { onChange } = this.props;\n onChange(value, isValid);\n }\n\n processFilterChange(filter: string): void {\n const { options } = this.props;\n const { menuIsOpen } = this.state;\n const filteredOptions = filter\n ? this.getCachedFilteredOptions(options, filter)\n : options;\n const perfectMatch =\n filteredOptions.length === 1 && filteredOptions[0].title === filter;\n this.setState({\n filteredOptions,\n keyboardOptionIndex: 0,\n });\n if (perfectMatch && menuIsOpen) {\n this.closeMenu();\n return;\n }\n this.popper.current?.scheduleUpdate(); // filtered options list can change size, may need to be repositioned\n }\n\n resetValue(): void {\n this.setState({ title: '' });\n this.fireOnChange('');\n }\n\n handleResize(): void {\n this.setInputWidth();\n }\n\n handleMenuKeyDown(event: React.KeyboardEvent): void {\n const { filteredOptions, keyboardOptionIndex } = this.state;\n const option = filteredOptions[keyboardOptionIndex];\n\n switch (event.key) {\n case 'Enter':\n case 'ArrowRight':\n event.stopPropagation();\n event.preventDefault();\n if (option != null) {\n this.setState({ title: option.title, invalid: false });\n this.fireOnChange(option.value);\n }\n this.closeMenu();\n this.input.current?.focus();\n break;\n case 'ArrowUp':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n case 'ArrowDown':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n if (event.shiftKey) {\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n }\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Escape':\n event.preventDefault();\n event.stopPropagation();\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n\n navigateMenu(direction: MENU_NAVIGATION_DIRECTION): void {\n const { filteredOptions, keyboardOptionIndex } = this.state;\n let newKeyboardOptionIndex = keyboardOptionIndex;\n if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP) {\n if (keyboardOptionIndex > 0) {\n newKeyboardOptionIndex =\n (newKeyboardOptionIndex - 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex,\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = filteredOptions.length - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex,\n });\n }\n } else if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN) {\n if (keyboardOptionIndex < filteredOptions.length) {\n newKeyboardOptionIndex =\n (newKeyboardOptionIndex + 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex,\n });\n }\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n }\n\n handleInputKeyDown(event: React.KeyboardEvent): void {\n const { onEnter } = this.props;\n const { menuIsOpen } = this.state;\n\n if (menuIsOpen) {\n this.handleMenuKeyDown(event);\n } else if (event.key === 'Enter') {\n onEnter();\n } else if (event.key === 'Escape') {\n this.resetValue();\n event.preventDefault();\n event.stopPropagation();\n } else if (\n !(\n event.key === 'ArrowRight' ||\n event.key === 'ArrowLeft' ||\n event.key === 'Tab' ||\n event.key === 'Shift'\n )\n ) {\n this.openMenu();\n }\n }\n\n handleInputChange(event: React.ChangeEvent<HTMLInputElement>): void {\n this.setState({ title: event.target.value });\n this.updateInputValue(event.target.value);\n }\n\n handleOptionClick(option: AutoCompleteOption): void {\n this.setState({ title: option.title, invalid: false });\n this.fireOnChange(option.value);\n this.closeMenu();\n this.input.current?.focus();\n }\n\n handelInputFocus(): void {\n const { menuIsOpen } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n\n handleInputClick(): void {\n const { menuIsOpen } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n\n handleInputBlur(event: React.FocusEvent<HTMLInputElement>): void {\n const { menuIsOpen } = this.state;\n if (\n menuIsOpen &&\n event.relatedTarget instanceof Element &&\n this.popper.current !== null &&\n this.popper.current.element.contains(event.relatedTarget)\n ) {\n return;\n }\n this.closeMenu(false);\n }\n\n handleMenuBlur(event: React.FocusEvent<HTMLDivElement>): void {\n // if blur event is caused by focusing on the input or focus on options don't close menu\n if (\n event.relatedTarget === this.input.current ||\n (event.relatedTarget instanceof Element &&\n this.popper.current !== null &&\n this.popper.current.element.contains(event.relatedTarget))\n ) {\n return;\n }\n this.closeMenu(false);\n }\n\n handleMenuOpened(): void {\n this.input.current?.focus();\n }\n\n handleMenuExited(): void {\n const { menuIsOpen } = this.state;\n if (menuIsOpen) {\n this.setState({ menuIsOpen: false, keyboardOptionIndex: 0 });\n }\n }\n\n openMenu(): void {\n const { title } = this.state;\n this.processFilterChange(title);\n this.setInputWidth();\n this.setState({ menuIsOpen: true });\n\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n this.popper.current?.show();\n });\n }\n\n closeMenu(focusInput = true): void {\n this.setState({ menuIsOpen: false, keyboardOptionIndex: 0 });\n if (focusInput) {\n this.input.current?.focus();\n }\n this.popper.current?.hide();\n }\n\n scrollOptionIntoView(index: number): void {\n if (this.menuContainer.current) {\n this.menuContainer.current.children.item(index)?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n }\n }\n\n renderMenuElement(): JSX.Element {\n const { inputWidth } = this.state;\n return (\n <div\n className={classNames('aci-options')}\n ref={this.menuContainer}\n role=\"presentation\"\n onKeyDown={this.handleMenuKeyDown}\n style={{ width: inputWidth }}\n onBlur={this.handleMenuBlur}\n >\n {this.renderOptions()}\n </div>\n );\n }\n\n renderOptions(): React.ReactNode {\n const { noMatchText } = this.props;\n const { title, filteredOptions } = this.state;\n\n if (title && filteredOptions.length === 0) {\n return <div className=\"no-match\">{noMatchText}</div>;\n }\n\n return filteredOptions.map((option, index) =>\n this.renderOption(option, index)\n );\n }\n\n renderOption(option: AutoCompleteOption, index: number): JSX.Element {\n const { keyboardOptionIndex } = this.state;\n const key = `option-${index}-${option.value}`;\n return (\n <button\n key={key}\n type=\"button\"\n className={classNames('aci-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index,\n })}\n onClick={() => this.handleOptionClick(option)}\n onFocus={() => this.setState({ keyboardOptionIndex: index })}\n >\n {option.title}\n </button>\n );\n }\n\n render(): JSX.Element {\n const {\n options,\n inputPlaceholder,\n disabled,\n className,\n defaultTitle,\n spellCheck,\n 'data-testid': dataTestId,\n } = this.props;\n const { title, menuIsOpen, popperOptions, invalid } = this.state;\n\n return (\n <div className=\"aci-container\" ref={this.cbContainer}>\n <input\n value={title || defaultTitle}\n className={classNames('form-control', className, 'aci-input', {\n 'is-invalid': invalid && !menuIsOpen,\n })}\n ref={this.input}\n onChange={this.handleInputChange}\n placeholder={inputPlaceholder || options[0].title}\n disabled={disabled}\n onFocus={this.handelInputFocus}\n onClick={this.handleInputClick}\n onBlur={this.handleInputBlur}\n onKeyDown={this.handleInputKeyDown}\n spellCheck={spellCheck}\n data-testid={dataTestId}\n />\n <Popper\n ref={this.popper}\n options={popperOptions}\n className={classNames('aci-options-popper interactive')}\n onEntered={this.handleMenuOpened}\n onExited={this.handleMenuExited}\n >\n {this.renderMenuElement()}\n </Popper>\n </div>\n );\n }\n}\n\nexport default AutoCompleteInput;\n"],"mappings":"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"}
|
package/dist/ItemList.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemList.d.ts","sourceRoot":"","sources":["../src/ItemList.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ItemList.d.ts","sourceRoot":"","sources":["../src/ItemList.tsx"],"names":[],"mappings":"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"}
|
package/dist/ItemList.js
CHANGED
|
@@ -79,6 +79,8 @@ export class ItemList extends PureComponent {
|
|
|
79
79
|
}, props)));
|
|
80
80
|
component.displayName = 'ItemListOuterElement';
|
|
81
81
|
return component;
|
|
82
|
+
}, {
|
|
83
|
+
max: 1000
|
|
82
84
|
}));
|
|
83
85
|
_defineProperty(this, "getInnerElement", memoize(() => {
|
|
84
86
|
var component = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx("div", _objectSpread({
|
|
@@ -88,12 +90,16 @@ export class ItemList extends PureComponent {
|
|
|
88
90
|
}, props)));
|
|
89
91
|
component.displayName = 'ItemListInnerElement';
|
|
90
92
|
return component;
|
|
93
|
+
}, {
|
|
94
|
+
max: 1000
|
|
91
95
|
}));
|
|
92
96
|
_defineProperty(this, "getItemData", memoize((items, selectedRanges, renderItem) => ({
|
|
93
97
|
items,
|
|
94
98
|
selectedRanges,
|
|
95
99
|
renderItem
|
|
96
|
-
})
|
|
100
|
+
}), {
|
|
101
|
+
max: 1000
|
|
102
|
+
}));
|
|
97
103
|
this.handleItemBlur = this.handleItemBlur.bind(this);
|
|
98
104
|
this.handleItemContextMenu = this.handleItemContextMenu.bind(this);
|
|
99
105
|
this.handleItemFocus = this.handleItemFocus.bind(this);
|
package/dist/ItemList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemList.js","names":["React","PureComponent","memoize","FixedSizeList","List","AutoSizer","Log","RangeUtils","ItemListItem","ContextActionUtils","jsx","_jsx","log","module","MIN_DRAG_DELTA","ItemList","renderItem","_ref","_ref2","_item$displayValue","item","className","children","displayValue","value","concat","constructor","props","_defineProperty","index","selectedRanges","isSelected","max","CACHE_SIZE","itemIndex","key","isFocused","style","disableSelect","content","onContextMenu","handleItemContextMenu","onDoubleClick","handleItemDoubleClick","onMouseDown","handleItemMouseDown","onFocus","handleItemFocus","onBlur","handleItemBlur","onMouseMove","handleItemMouseMove","onMouseUp","handleItemMouseUp","onKeyDown","component","forwardRef","ref","_objectSpread","tabIndex","role","displayName","items","bind","handleItemsRendered","handleWindowMouseUp","handleKeyDown","handleMouseLeave","handleScroll","handleResize","renderInnerElement","list","createRef","listContainer","isStickyBottom","state","focusIndex","mouseDownIndex","overscanStartIndex","height","isDragging","isStuckToBottom","scrollOffset","mouseX","mouseY","componentDidUpdate","prevProps","prevState","propSelectedRanges","itemCount","isListAtBottom","scrollToBottom","sendViewportUpdate","setSelectedRanges","onSelectionChange","onFocusChange","componentWillUnmount","window","removeEventListener","focus","_this$listContainer$c","current","restoreScrollPosition","_this$listContainer$c2","scrollTo","getElement","focusSelector","elements","querySelectorAll","elementIndex","focusItem","setState","element","HTMLElement","scrollToItem","scrollIntoView","block","e","isModifierDown","isModifierKeyDown","toggleSelect","shiftKey","isDoubleClickSelect","onSelect","_ref3","selectRange","target","indexOf","tagName","toLowerCase","button","length","selectItem","clientX","clientY","addEventListener","debug2","currentTarget","relatedTarget","contains","isDragSelect","isMultiSelect","mouseMoveX","Math","abs","mouseMoveY","getItemSelected","deselectAll","min","isDeselectOnClick","isShiftDown","resetMouseState","_ref4","_ref5","oldFocus","newFocus","stopPropagation","preventDefault","lastRange","_this$listContainer$c3","_ref6","scrollUpdateWasRequested","isDeselectable","arguments","undefined","deselectItem","deselectRange","range","validateRange","_ref7","_ref8","onViewportChange","rowHeight","topRow","floor","bottomRow","ceil","_ref9","offset","getCachedItem","render","overscanCount","dataTestId","onResize","_ref10","width","initialScrollOffset","itemSize","itemData","getItemData","onScroll","onItemsRendered","outerElementType","getOuterElement","outerRef","innerElementType","getInnerElement","DEFAULT_ROW_HEIGHT","DEFAULT_OVERSCAN"],"sources":["../src/ItemList.tsx"],"sourcesContent":["/* eslint-disable react/no-unstable-nested-components */\nimport React, { PureComponent } from 'react';\nimport memoize from 'memoizee';\nimport {\n FixedSizeList as List,\n type ListOnItemsRenderedProps,\n type ListOnScrollProps,\n} from 'react-window';\nimport AutoSizer, { type Size } from 'react-virtualized-auto-sizer';\nimport Log from '@deephaven/log';\nimport { RangeUtils, type Range } from '@deephaven/utils';\nimport ItemListItem from './ItemListItem';\nimport { ContextActionUtils } from './context-actions';\nimport './ItemList.scss';\n\nconst log = Log.module('ItemList');\nconst MIN_DRAG_DELTA = 5;\n\nexport interface DefaultListItem {\n value?: string;\n displayValue?: string;\n}\n\nexport type RenderItemProps<T> = {\n item: T;\n itemIndex: number;\n isFocused: boolean;\n isSelected: boolean;\n style: React.CSSProperties;\n};\n\nexport type RenderItemFn<T> = (props: RenderItemProps<T>) => React.ReactNode;\n\nexport type ItemDragEventHandler = (\n index: number,\n event: React.DragEvent<HTMLDivElement>\n) => void;\n\nexport type ItemListProps<T> = {\n // Total item count\n itemCount: number;\n rowHeight: number;\n // Offset of the top item in the items array\n offset: number;\n // Item object format expected by the default renderItem function\n // Can be anything as long as it's supported by the renderItem\n // Default renderItem will look for a `displayValue` property, fallback\n // to the `value` property, or stringify the object if neither are defined\n items: readonly T[];\n // Whether clicking a selected item should deselect in the item list or not. Defaults to true\n isDeselectOnClick: boolean;\n // Whether selection requires a double click or not\n isDoubleClickSelect: boolean;\n // Whether to allow dragging to change the selection after clicking\n isDragSelect: boolean;\n // Whether to allow multiple selections in this item list\n isMultiSelect: boolean;\n // Set to true if you want the list to scroll when new items are added and it's already at the bottom\n isStickyBottom: boolean;\n // Fired when an item gets focused\n onFocusChange: (index: number | null) => void;\n\n // Fired when an item is clicked. With multiple selection, fired on double click.\n onSelect: (index: number, event: React.SyntheticEvent) => void;\n onSelectionChange: (ranges: readonly Range[]) => void;\n onViewportChange: (topRow: number, bottomRow: number) => void;\n overscanCount: number;\n selectedRanges: readonly Range[];\n disableSelect: boolean;\n renderItem: RenderItemFn<T>;\n focusSelector: string;\n 'data-testid'?: string;\n};\n\ntype ItemListState = {\n focusIndex: number | null;\n mouseDownIndex: number | null;\n selectedRanges: readonly Range[];\n overscanStartIndex: number;\n height: number | null;\n isDragging: boolean;\n isStuckToBottom: boolean;\n scrollOffset: number | null;\n mouseX: number | null;\n mouseY: number | null;\n};\n\n/**\n * Show items in a long scrollable list.\n * Can be navigated via keyboard or mouse.\n */\nexport class ItemList<T> extends PureComponent<\n ItemListProps<T>,\n ItemListState\n> {\n static CACHE_SIZE = 1000;\n\n static DEFAULT_ROW_HEIGHT = 20;\n\n // By drawing an additional 10 items on each side, tab/keyboard navigation works better (as the next element exists)\n static DEFAULT_OVERSCAN = 10;\n\n static defaultProps = {\n offset: 0,\n items: [],\n rowHeight: ItemList.DEFAULT_ROW_HEIGHT,\n\n isDeselectOnClick: true,\n\n isDoubleClickSelect: false,\n\n isDragSelect: true,\n\n isMultiSelect: false,\n\n isStickyBottom: false,\n\n disableSelect: false,\n\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\n overscanCount: ItemList.DEFAULT_OVERSCAN,\n\n renderItem: ItemList.renderItem,\n selectedRanges: [],\n\n focusSelector: '.item-list-item',\n\n 'data-testid': undefined,\n };\n\n static renderItem<P extends DefaultListItem>({\n item,\n }: RenderItemProps<P>): JSX.Element {\n return (\n <div className=\"item-list-item-content\">\n {item != null && (item.displayValue ?? item.value ?? `${item}`)}\n </div>\n );\n }\n\n constructor(props: ItemListProps<T>) {\n super(props);\n\n this.handleItemBlur = this.handleItemBlur.bind(this);\n this.handleItemContextMenu = this.handleItemContextMenu.bind(this);\n this.handleItemFocus = this.handleItemFocus.bind(this);\n this.handleItemDoubleClick = this.handleItemDoubleClick.bind(this);\n this.handleItemMouseDown = this.handleItemMouseDown.bind(this);\n this.handleItemMouseMove = this.handleItemMouseMove.bind(this);\n this.handleItemMouseUp = this.handleItemMouseUp.bind(this);\n this.handleItemsRendered = this.handleItemsRendered.bind(this);\n this.handleWindowMouseUp = this.handleWindowMouseUp.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.renderInnerElement = this.renderInnerElement.bind(this);\n\n this.list = React.createRef();\n this.listContainer = React.createRef();\n\n const { isStickyBottom, selectedRanges } = props;\n\n this.state = {\n focusIndex: null,\n mouseDownIndex: null,\n selectedRanges,\n overscanStartIndex: 0,\n height: null,\n isDragging: false,\n isStuckToBottom: isStickyBottom,\n scrollOffset: null,\n mouseX: null,\n mouseY: null,\n };\n }\n\n componentDidUpdate(\n prevProps: ItemListProps<T>,\n prevState: ItemListState\n ): void {\n const { selectedRanges: propSelectedRanges, itemCount } = this.props;\n const {\n focusIndex,\n isStuckToBottom,\n scrollOffset,\n height,\n selectedRanges,\n } = this.state;\n if (isStuckToBottom && !this.isListAtBottom() && itemCount > 0) {\n this.scrollToBottom();\n }\n\n if (\n scrollOffset !== prevState.scrollOffset ||\n height !== prevState.height\n ) {\n this.sendViewportUpdate();\n }\n\n if (\n propSelectedRanges !== prevProps.selectedRanges &&\n propSelectedRanges !== selectedRanges\n ) {\n this.setSelectedRanges(propSelectedRanges);\n } else if (selectedRanges !== prevState.selectedRanges) {\n const { onSelectionChange } = this.props;\n onSelectionChange(selectedRanges);\n }\n\n if (focusIndex !== prevState.focusIndex) {\n const { onFocusChange } = this.props;\n onFocusChange(focusIndex);\n }\n }\n\n componentWillUnmount(): void {\n window.removeEventListener('mouseup', this.handleWindowMouseUp);\n }\n\n list: React.RefObject<List>;\n\n listContainer: React.RefObject<HTMLDivElement>;\n\n getItemSelected = memoize(\n (index: number, selectedRanges: readonly Range[]) =>\n RangeUtils.isSelected(selectedRanges, index),\n { max: ItemList.CACHE_SIZE }\n );\n\n getCachedItem = memoize(\n (\n itemIndex: number,\n key: number,\n item: T,\n isFocused: boolean,\n isSelected: boolean,\n renderItem: RenderItemFn<T>,\n style: React.CSSProperties,\n disableSelect: boolean\n ) => {\n const content = renderItem({\n item,\n itemIndex,\n isFocused,\n isSelected,\n style,\n });\n\n return (\n <ItemListItem\n onContextMenu={this.handleItemContextMenu}\n onDoubleClick={this.handleItemDoubleClick}\n onMouseDown={this.handleItemMouseDown}\n onFocus={this.handleItemFocus}\n onBlur={this.handleItemBlur}\n disableSelect={disableSelect}\n onMouseMove={this.handleItemMouseMove}\n onMouseUp={this.handleItemMouseUp}\n isFocused={isFocused}\n isSelected={isSelected}\n itemIndex={itemIndex}\n style={style}\n key={key}\n >\n {content}\n </ItemListItem>\n );\n },\n { max: ItemList.CACHE_SIZE }\n );\n\n getOuterElement = memoize((onKeyDown: React.KeyboardEventHandler) => {\n const component = React.forwardRef<HTMLDivElement>((props, ref) => (\n // We need to add the tabIndex to make sure it is focusable, otherwise we can't get key events\n <div\n ref={ref}\n tabIndex={-1}\n onKeyDown={onKeyDown}\n role=\"presentation\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n ));\n component.displayName = 'ItemListOuterElement';\n return component;\n });\n\n getInnerElement = memoize(() => {\n const component = React.forwardRef<HTMLDivElement>((props, ref) => (\n <div\n className=\"item-list-inner-element\"\n ref={ref}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n ));\n component.displayName = 'ItemListInnerElement';\n return component;\n });\n\n getItemData = memoize(\n (\n items: readonly T[],\n selectedRanges: readonly Range[],\n renderItem: RenderItemFn<T>\n ) => ({\n items,\n selectedRanges,\n renderItem,\n })\n );\n\n focus(): void {\n this.listContainer.current?.focus();\n }\n\n restoreScrollPosition(): void {\n const { scrollOffset } = this.state;\n if (scrollOffset != null) {\n // manually restore the scroll containers offset\n // virtual list doesn't restore scrolloffset in a re-render if it's the same\n this.listContainer.current?.scrollTo(0, scrollOffset);\n }\n }\n\n getElement(itemIndex: number): Element | null {\n if (this.listContainer.current == null) {\n return null;\n }\n\n const { focusSelector } = this.props;\n const { overscanStartIndex } = this.state;\n const elements = this.listContainer.current.querySelectorAll(focusSelector);\n const elementIndex = itemIndex - overscanStartIndex;\n return elements[elementIndex];\n }\n\n focusItem(itemIndex: number): void {\n const { disableSelect } = this.props;\n if (disableSelect) return;\n\n this.setState({ focusIndex: itemIndex });\n\n const element = this.getElement(itemIndex);\n if (element instanceof HTMLElement) {\n element.focus();\n }\n }\n\n scrollToItem(itemIndex: number): void {\n const element = this.getElement(itemIndex);\n if (element != null) {\n element.scrollIntoView({ block: 'center' });\n }\n }\n\n handleItemContextMenu(\n itemIndex: number,\n e: React.MouseEvent<HTMLDivElement>\n ): void {\n this.setState({ focusIndex: itemIndex });\n\n // Update the selection, but don't consume the mouse event - it will trigger the context menu\n const { selectedRanges } = this.state;\n const isSelected = RangeUtils.isSelected(selectedRanges, itemIndex);\n\n // When right-clicking, we want to maintain the current selection if the right click happened within the selection even if the modifier key isn't down\n const isModifierDown =\n isSelected || ContextActionUtils.isModifierKeyDown(e);\n this.toggleSelect(itemIndex, e.shiftKey, isModifierDown, false);\n }\n\n handleItemDoubleClick(itemIndex: number, e: React.MouseEvent): void {\n const { isDoubleClickSelect, onSelect } = this.props;\n\n if (isDoubleClickSelect) {\n this.setState(\n ({ selectedRanges }) => ({\n selectedRanges: RangeUtils.selectRange(selectedRanges, [\n itemIndex,\n itemIndex,\n ]),\n }),\n () => {\n onSelect(itemIndex, e);\n }\n );\n }\n }\n\n handleItemMouseDown(index: number, e: React.MouseEvent): void {\n const { selectedRanges } = this.state;\n\n if (\n e.target instanceof HTMLElement &&\n ['button', 'select', 'input', 'textarea'].indexOf(\n e.target.tagName.toLowerCase()\n ) !== -1\n ) {\n // allow these elements to do their own behaviours\n return;\n }\n\n if (e.button === 2 && selectedRanges.length === 0) {\n // allow right click to act as a selection if selection is empty\n this.focusItem(index);\n this.selectItem(index);\n return;\n }\n\n if (e.button != null && e.button !== 0) {\n return;\n }\n\n this.setState({\n mouseDownIndex: index,\n mouseX: e.clientX,\n mouseY: e.clientY,\n });\n\n window.addEventListener('mouseup', this.handleWindowMouseUp);\n\n // Leave selection until mouse up, to allow for dragging behaviour\n }\n\n handleItemBlur(itemIndex: number, e: React.FocusEvent): void {\n log.debug2('item blur', itemIndex, e.currentTarget, e.relatedTarget);\n if (\n !e.relatedTarget ||\n (this.listContainer.current &&\n e.relatedTarget instanceof HTMLElement &&\n !this.listContainer.current.contains(e.relatedTarget))\n ) {\n // Next focused element is outside of the ItemList\n this.setState({ focusIndex: null });\n }\n }\n\n handleItemFocus(itemIndex: number, e: React.FocusEvent): void {\n log.debug2('item focus', itemIndex, e.target);\n this.setState(state => {\n const { focusIndex } = state;\n if (focusIndex !== itemIndex) {\n return { focusIndex: itemIndex };\n }\n return null;\n });\n }\n\n handleItemMouseMove(itemIndex: number, e: React.MouseEvent): void {\n const { isDragSelect, isMultiSelect, disableSelect } = this.props;\n const { mouseDownIndex, selectedRanges, mouseX, mouseY } = this.state;\n\n if (mouseDownIndex == null || disableSelect) return;\n\n const mouseMoveX = Math.abs(e.clientX - (mouseX ?? 0));\n const mouseMoveY = Math.abs(e.clientY - (mouseY ?? 0));\n if (mouseMoveX > MIN_DRAG_DELTA && mouseMoveY > MIN_DRAG_DELTA) {\n this.setState({ isDragging: true });\n }\n if (isDragSelect || mouseDownIndex === itemIndex) {\n this.focusItem(itemIndex);\n\n if (isMultiSelect) {\n if (\n !isDragSelect &&\n !this.getItemSelected(itemIndex, selectedRanges) &&\n !ContextActionUtils.isModifierKeyDown(e)\n ) {\n // If there's already a selection and they select outside of that range while dragging without a modifier key, start a new selection with just the new item\n this.deselectAll();\n }\n this.selectRange([\n Math.min(mouseDownIndex, itemIndex),\n Math.max(mouseDownIndex, itemIndex),\n ]);\n } else {\n this.toggleSelect(\n itemIndex,\n e.shiftKey,\n ContextActionUtils.isModifierKeyDown(e),\n false\n );\n }\n }\n }\n\n handleItemMouseUp(index: number, e: React.MouseEvent): void {\n const { isDeselectOnClick, isDoubleClickSelect, onSelect } = this.props;\n const { mouseDownIndex, isDragging } = this.state;\n\n if (\n e.target instanceof HTMLElement &&\n ['button', 'select', 'input', 'textarea'].indexOf(\n e.target.tagName.toLowerCase()\n ) !== -1\n ) {\n return;\n }\n\n if (mouseDownIndex === index && !isDragging) {\n const isShiftDown = e.shiftKey;\n const isModifierDown = ContextActionUtils.isModifierKeyDown(e);\n this.focusItem(index);\n this.toggleSelect(index, isShiftDown, isModifierDown, isDeselectOnClick);\n\n if (!isDoubleClickSelect && !isShiftDown && !isModifierDown) {\n onSelect(index, e);\n }\n }\n\n this.resetMouseState();\n }\n\n handleItemsRendered({ overscanStartIndex }: ListOnItemsRenderedProps): void {\n this.setState({ overscanStartIndex });\n }\n\n handleResize({ height }: Size): void {\n this.setState({ height });\n }\n\n handleMouseLeave(): void {\n this.setState({ mouseDownIndex: null });\n }\n\n handleWindowMouseUp(): void {\n this.resetMouseState();\n window.removeEventListener('mouseup', this.handleWindowMouseUp);\n }\n\n handleKeyDown(e: React.KeyboardEvent): void {\n const { isMultiSelect, itemCount, onSelect } = this.props;\n const { focusIndex: oldFocus } = this.state;\n let newFocus = oldFocus;\n\n if (e.key === 'Enter' || e.key === ' ') {\n if (!isMultiSelect && newFocus != null) {\n this.setState({ selectedRanges: [[newFocus, newFocus]] }, () => {\n if (newFocus != null) {\n onSelect(newFocus, e);\n }\n });\n }\n return;\n }\n\n if (e.key === 'ArrowUp') {\n if (newFocus != null && newFocus >= 0) {\n newFocus = Math.max(0, newFocus - 1);\n } else {\n newFocus = itemCount - 1;\n }\n } else if (e.key === 'ArrowDown') {\n if (newFocus != null && newFocus >= 0) {\n newFocus = Math.min(newFocus + 1, itemCount - 1);\n } else {\n newFocus = 0;\n }\n } else {\n return;\n }\n\n if (oldFocus !== newFocus) {\n e.stopPropagation();\n e.preventDefault();\n\n this.focusItem(newFocus);\n\n const { selectedRanges } = this.state;\n if (e.shiftKey && selectedRanges.length > 0) {\n const lastRange = selectedRanges[selectedRanges.length - 1];\n this.selectRange([\n Math.min(newFocus, lastRange[0]),\n Math.max(newFocus, lastRange[1]),\n ]);\n } else {\n this.deselectAll();\n if (newFocus !== null) {\n this.selectItem(newFocus);\n } else {\n this.listContainer.current?.focus();\n }\n }\n\n this.scrollIntoView(newFocus);\n }\n }\n\n handleScroll({\n scrollUpdateWasRequested,\n scrollOffset,\n }: ListOnScrollProps): void {\n this.setState(state => {\n if (scrollUpdateWasRequested) {\n // The scroll was caused by scrollTo() or scrollToItem()\n // Don't re-calc isStuckToBottom\n return { scrollOffset } as ItemListState;\n }\n\n const { isStickyBottom } = this.props;\n const { height } = state;\n\n const isStuckToBottom =\n isStickyBottom && this.isListAtBottom({ scrollOffset, height });\n return { isStuckToBottom, scrollOffset } as ItemListState;\n });\n }\n\n resetMouseState(): void {\n this.setState({ mouseDownIndex: null, isDragging: false });\n }\n\n scrollToBottom(): void {\n const { itemCount } = this.props;\n if (this.list.current) {\n this.list.current.scrollToItem(itemCount);\n }\n }\n\n scrollIntoView(itemIndex: number): void {\n if (this.list.current) {\n this.list.current.scrollToItem(itemIndex);\n }\n }\n\n /**\n * @param index The index to toggle selection for\n * @param isShiftDown True if the shift modifier key is down\n * @param isModifierDown True if the meta modifier key is down\n * @param isDeselectable True if item should be deselected if already selected\n */\n toggleSelect(\n index: number,\n isShiftDown: boolean,\n isModifierDown: boolean,\n isDeselectable = true\n ): void {\n const { isMultiSelect } = this.props;\n const { selectedRanges } = this.state;\n\n if (isMultiSelect && isShiftDown && selectedRanges.length > 0) {\n const lastRange = selectedRanges[selectedRanges.length - 1];\n this.selectRange([\n Math.min(lastRange[0], index),\n Math.max(index, lastRange[1]),\n ]);\n } else if (\n isMultiSelect &&\n selectedRanges.length === 1 &&\n selectedRanges[0][0] === index &&\n selectedRanges[0][1] === index\n ) {\n if (isDeselectable) {\n this.deselectItem(index);\n }\n } else if (isMultiSelect && isModifierDown) {\n if (this.getItemSelected(index, selectedRanges)) {\n if (isDeselectable) {\n this.deselectItem(index);\n }\n } else {\n this.selectItem(index);\n }\n } else {\n this.deselectAll();\n this.selectItem(index);\n }\n }\n\n deselectAll(): void {\n const { itemCount } = this.props;\n this.deselectRange([0, itemCount]);\n }\n\n deselectItem(index: number): void {\n this.deselectRange([index, index]);\n }\n\n deselectRange(range: Range): void {\n RangeUtils.validateRange(range);\n\n this.setState(({ selectedRanges }) => ({\n selectedRanges: RangeUtils.deselectRange(selectedRanges, range),\n }));\n }\n\n selectItem(index: number): void {\n const { disableSelect } = this.props;\n if (disableSelect) return;\n\n this.selectRange([index, index]);\n }\n\n selectRange(range: Range): void {\n RangeUtils.validateRange(range);\n\n this.setState(({ selectedRanges }) => ({\n selectedRanges: RangeUtils.selectRange(selectedRanges, range),\n }));\n }\n\n setSelectedRanges(selectedRanges: readonly Range[]): void {\n this.setState({ selectedRanges });\n }\n\n sendViewportUpdate(): void {\n const { scrollOffset, height } = this.state;\n if (scrollOffset != null && height != null) {\n const { onViewportChange, rowHeight } = this.props;\n const topRow = Math.floor(scrollOffset / rowHeight);\n const bottomRow = topRow + Math.ceil(height / rowHeight);\n onViewportChange(topRow, bottomRow);\n }\n }\n\n isListAtBottom(\n {\n scrollOffset,\n height,\n }: Pick<ItemListState, 'scrollOffset' | 'height'> = this.state\n ): boolean {\n if (height == null || scrollOffset == null) {\n return false;\n }\n\n const { itemCount, rowHeight } = this.props;\n return scrollOffset + height >= itemCount * rowHeight;\n }\n\n renderInnerElement({\n index: itemIndex,\n style,\n }: {\n index: number;\n style: React.CSSProperties;\n }): React.ReactElement | null {\n const { items, offset, renderItem, disableSelect } = this.props;\n const { focusIndex, selectedRanges } = this.state;\n if (itemIndex < offset || itemIndex >= offset + items.length) {\n return null;\n }\n\n const item = items[itemIndex - offset];\n return this.getCachedItem(\n itemIndex,\n itemIndex,\n item,\n itemIndex === focusIndex && !disableSelect,\n this.getItemSelected(itemIndex, selectedRanges),\n renderItem,\n style,\n disableSelect\n );\n }\n\n render(): JSX.Element {\n const {\n items,\n itemCount,\n overscanCount,\n renderItem,\n rowHeight,\n 'data-testid': dataTestId,\n } = this.props;\n const { selectedRanges, isStuckToBottom } = this.state;\n return (\n <AutoSizer className=\"item-list-auto-sizer\" onResize={this.handleResize}>\n {({ width, height }) => (\n <List\n className=\"item-list-scroll-pane\"\n height={height}\n width={width}\n initialScrollOffset={isStuckToBottom ? itemCount * rowHeight : 0}\n itemCount={itemCount}\n itemSize={rowHeight}\n // This prop isn't actually used by us, it is passed to the render function by react-window\n // Used here to force a re-render of the List component.\n // Otherwise it doesn't know to call the render again when selection or renderItem changes\n itemData={this.getItemData(items, selectedRanges, renderItem)}\n onScroll={this.handleScroll}\n onItemsRendered={this.handleItemsRendered}\n ref={this.list}\n outerElementType={this.getOuterElement(this.handleKeyDown)}\n outerRef={this.listContainer}\n innerElementType={this.getInnerElement()}\n overscanCount={overscanCount}\n data-testid={dataTestId}\n >\n {this.renderInnerElement}\n </List>\n )}\n </AutoSizer>\n );\n }\n}\n\nexport default ItemList;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ItemList.js","names":["React","PureComponent","memoize","FixedSizeList","List","AutoSizer","Log","RangeUtils","ItemListItem","ContextActionUtils","jsx","_jsx","log","module","MIN_DRAG_DELTA","ItemList","renderItem","_ref","_ref2","_item$displayValue","item","className","children","displayValue","value","concat","constructor","props","_defineProperty","index","selectedRanges","isSelected","max","CACHE_SIZE","itemIndex","key","isFocused","style","disableSelect","content","onContextMenu","handleItemContextMenu","onDoubleClick","handleItemDoubleClick","onMouseDown","handleItemMouseDown","onFocus","handleItemFocus","onBlur","handleItemBlur","onMouseMove","handleItemMouseMove","onMouseUp","handleItemMouseUp","onKeyDown","component","forwardRef","ref","_objectSpread","tabIndex","role","displayName","items","bind","handleItemsRendered","handleWindowMouseUp","handleKeyDown","handleMouseLeave","handleScroll","handleResize","renderInnerElement","list","createRef","listContainer","isStickyBottom","state","focusIndex","mouseDownIndex","overscanStartIndex","height","isDragging","isStuckToBottom","scrollOffset","mouseX","mouseY","componentDidUpdate","prevProps","prevState","propSelectedRanges","itemCount","isListAtBottom","scrollToBottom","sendViewportUpdate","setSelectedRanges","onSelectionChange","onFocusChange","componentWillUnmount","window","removeEventListener","focus","_this$listContainer$c","current","restoreScrollPosition","_this$listContainer$c2","scrollTo","getElement","focusSelector","elements","querySelectorAll","elementIndex","focusItem","setState","element","HTMLElement","scrollToItem","scrollIntoView","block","e","isModifierDown","isModifierKeyDown","toggleSelect","shiftKey","isDoubleClickSelect","onSelect","_ref3","selectRange","target","indexOf","tagName","toLowerCase","button","length","selectItem","clientX","clientY","addEventListener","debug2","currentTarget","relatedTarget","contains","isDragSelect","isMultiSelect","mouseMoveX","Math","abs","mouseMoveY","getItemSelected","deselectAll","min","isDeselectOnClick","isShiftDown","resetMouseState","_ref4","_ref5","oldFocus","newFocus","stopPropagation","preventDefault","lastRange","_this$listContainer$c3","_ref6","scrollUpdateWasRequested","isDeselectable","arguments","undefined","deselectItem","deselectRange","range","validateRange","_ref7","_ref8","onViewportChange","rowHeight","topRow","floor","bottomRow","ceil","_ref9","offset","getCachedItem","render","overscanCount","dataTestId","onResize","_ref10","width","initialScrollOffset","itemSize","itemData","getItemData","onScroll","onItemsRendered","outerElementType","getOuterElement","outerRef","innerElementType","getInnerElement","DEFAULT_ROW_HEIGHT","DEFAULT_OVERSCAN"],"sources":["../src/ItemList.tsx"],"sourcesContent":["/* eslint-disable react/no-unstable-nested-components */\nimport React, { PureComponent } from 'react';\nimport memoize from 'memoizee';\nimport {\n FixedSizeList as List,\n type ListOnItemsRenderedProps,\n type ListOnScrollProps,\n} from 'react-window';\nimport AutoSizer, { type Size } from 'react-virtualized-auto-sizer';\nimport Log from '@deephaven/log';\nimport { RangeUtils, type Range } from '@deephaven/utils';\nimport ItemListItem from './ItemListItem';\nimport { ContextActionUtils } from './context-actions';\nimport './ItemList.scss';\n\nconst log = Log.module('ItemList');\nconst MIN_DRAG_DELTA = 5;\n\nexport interface DefaultListItem {\n value?: string;\n displayValue?: string;\n}\n\nexport type RenderItemProps<T> = {\n item: T;\n itemIndex: number;\n isFocused: boolean;\n isSelected: boolean;\n style: React.CSSProperties;\n};\n\nexport type RenderItemFn<T> = (props: RenderItemProps<T>) => React.ReactNode;\n\nexport type ItemDragEventHandler = (\n index: number,\n event: React.DragEvent<HTMLDivElement>\n) => void;\n\nexport type ItemListProps<T> = {\n // Total item count\n itemCount: number;\n rowHeight: number;\n // Offset of the top item in the items array\n offset: number;\n // Item object format expected by the default renderItem function\n // Can be anything as long as it's supported by the renderItem\n // Default renderItem will look for a `displayValue` property, fallback\n // to the `value` property, or stringify the object if neither are defined\n items: readonly T[];\n // Whether clicking a selected item should deselect in the item list or not. Defaults to true\n isDeselectOnClick: boolean;\n // Whether selection requires a double click or not\n isDoubleClickSelect: boolean;\n // Whether to allow dragging to change the selection after clicking\n isDragSelect: boolean;\n // Whether to allow multiple selections in this item list\n isMultiSelect: boolean;\n // Set to true if you want the list to scroll when new items are added and it's already at the bottom\n isStickyBottom: boolean;\n // Fired when an item gets focused\n onFocusChange: (index: number | null) => void;\n\n // Fired when an item is clicked. With multiple selection, fired on double click.\n onSelect: (index: number, event: React.SyntheticEvent) => void;\n onSelectionChange: (ranges: readonly Range[]) => void;\n onViewportChange: (topRow: number, bottomRow: number) => void;\n overscanCount: number;\n selectedRanges: readonly Range[];\n disableSelect: boolean;\n renderItem: RenderItemFn<T>;\n focusSelector: string;\n 'data-testid'?: string;\n};\n\ntype ItemListState = {\n focusIndex: number | null;\n mouseDownIndex: number | null;\n selectedRanges: readonly Range[];\n overscanStartIndex: number;\n height: number | null;\n isDragging: boolean;\n isStuckToBottom: boolean;\n scrollOffset: number | null;\n mouseX: number | null;\n mouseY: number | null;\n};\n\n/**\n * Show items in a long scrollable list.\n * Can be navigated via keyboard or mouse.\n */\nexport class ItemList<T> extends PureComponent<\n ItemListProps<T>,\n ItemListState\n> {\n static CACHE_SIZE = 1000;\n\n static DEFAULT_ROW_HEIGHT = 20;\n\n // By drawing an additional 10 items on each side, tab/keyboard navigation works better (as the next element exists)\n static DEFAULT_OVERSCAN = 10;\n\n static defaultProps = {\n offset: 0,\n items: [],\n rowHeight: ItemList.DEFAULT_ROW_HEIGHT,\n\n isDeselectOnClick: true,\n\n isDoubleClickSelect: false,\n\n isDragSelect: true,\n\n isMultiSelect: false,\n\n isStickyBottom: false,\n\n disableSelect: false,\n\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\n overscanCount: ItemList.DEFAULT_OVERSCAN,\n\n renderItem: ItemList.renderItem,\n selectedRanges: [],\n\n focusSelector: '.item-list-item',\n\n 'data-testid': undefined,\n };\n\n static renderItem<P extends DefaultListItem>({\n item,\n }: RenderItemProps<P>): JSX.Element {\n return (\n <div className=\"item-list-item-content\">\n {item != null && (item.displayValue ?? item.value ?? `${item}`)}\n </div>\n );\n }\n\n constructor(props: ItemListProps<T>) {\n super(props);\n\n this.handleItemBlur = this.handleItemBlur.bind(this);\n this.handleItemContextMenu = this.handleItemContextMenu.bind(this);\n this.handleItemFocus = this.handleItemFocus.bind(this);\n this.handleItemDoubleClick = this.handleItemDoubleClick.bind(this);\n this.handleItemMouseDown = this.handleItemMouseDown.bind(this);\n this.handleItemMouseMove = this.handleItemMouseMove.bind(this);\n this.handleItemMouseUp = this.handleItemMouseUp.bind(this);\n this.handleItemsRendered = this.handleItemsRendered.bind(this);\n this.handleWindowMouseUp = this.handleWindowMouseUp.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.renderInnerElement = this.renderInnerElement.bind(this);\n\n this.list = React.createRef();\n this.listContainer = React.createRef();\n\n const { isStickyBottom, selectedRanges } = props;\n\n this.state = {\n focusIndex: null,\n mouseDownIndex: null,\n selectedRanges,\n overscanStartIndex: 0,\n height: null,\n isDragging: false,\n isStuckToBottom: isStickyBottom,\n scrollOffset: null,\n mouseX: null,\n mouseY: null,\n };\n }\n\n componentDidUpdate(\n prevProps: ItemListProps<T>,\n prevState: ItemListState\n ): void {\n const { selectedRanges: propSelectedRanges, itemCount } = this.props;\n const {\n focusIndex,\n isStuckToBottom,\n scrollOffset,\n height,\n selectedRanges,\n } = this.state;\n if (isStuckToBottom && !this.isListAtBottom() && itemCount > 0) {\n this.scrollToBottom();\n }\n\n if (\n scrollOffset !== prevState.scrollOffset ||\n height !== prevState.height\n ) {\n this.sendViewportUpdate();\n }\n\n if (\n propSelectedRanges !== prevProps.selectedRanges &&\n propSelectedRanges !== selectedRanges\n ) {\n this.setSelectedRanges(propSelectedRanges);\n } else if (selectedRanges !== prevState.selectedRanges) {\n const { onSelectionChange } = this.props;\n onSelectionChange(selectedRanges);\n }\n\n if (focusIndex !== prevState.focusIndex) {\n const { onFocusChange } = this.props;\n onFocusChange(focusIndex);\n }\n }\n\n componentWillUnmount(): void {\n window.removeEventListener('mouseup', this.handleWindowMouseUp);\n }\n\n list: React.RefObject<List>;\n\n listContainer: React.RefObject<HTMLDivElement>;\n\n getItemSelected = memoize(\n (index: number, selectedRanges: readonly Range[]) =>\n RangeUtils.isSelected(selectedRanges, index),\n { max: ItemList.CACHE_SIZE }\n );\n\n getCachedItem = memoize(\n (\n itemIndex: number,\n key: number,\n item: T,\n isFocused: boolean,\n isSelected: boolean,\n renderItem: RenderItemFn<T>,\n style: React.CSSProperties,\n disableSelect: boolean\n ) => {\n const content = renderItem({\n item,\n itemIndex,\n isFocused,\n isSelected,\n style,\n });\n\n return (\n <ItemListItem\n onContextMenu={this.handleItemContextMenu}\n onDoubleClick={this.handleItemDoubleClick}\n onMouseDown={this.handleItemMouseDown}\n onFocus={this.handleItemFocus}\n onBlur={this.handleItemBlur}\n disableSelect={disableSelect}\n onMouseMove={this.handleItemMouseMove}\n onMouseUp={this.handleItemMouseUp}\n isFocused={isFocused}\n isSelected={isSelected}\n itemIndex={itemIndex}\n style={style}\n key={key}\n >\n {content}\n </ItemListItem>\n );\n },\n { max: ItemList.CACHE_SIZE }\n );\n\n getOuterElement = memoize(\n (onKeyDown: React.KeyboardEventHandler) => {\n const component = React.forwardRef<HTMLDivElement>((props, ref) => (\n // We need to add the tabIndex to make sure it is focusable, otherwise we can't get key events\n <div\n ref={ref}\n tabIndex={-1}\n onKeyDown={onKeyDown}\n role=\"presentation\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n ));\n component.displayName = 'ItemListOuterElement';\n return component;\n },\n { max: 1000 }\n );\n\n getInnerElement = memoize(\n () => {\n const component = React.forwardRef<HTMLDivElement>((props, ref) => (\n <div\n className=\"item-list-inner-element\"\n ref={ref}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n ));\n component.displayName = 'ItemListInnerElement';\n return component;\n },\n { max: 1000 }\n );\n\n getItemData = memoize(\n (\n items: readonly T[],\n selectedRanges: readonly Range[],\n renderItem: RenderItemFn<T>\n ) => ({\n items,\n selectedRanges,\n renderItem,\n }),\n { max: 1000 }\n );\n\n focus(): void {\n this.listContainer.current?.focus();\n }\n\n restoreScrollPosition(): void {\n const { scrollOffset } = this.state;\n if (scrollOffset != null) {\n // manually restore the scroll containers offset\n // virtual list doesn't restore scrolloffset in a re-render if it's the same\n this.listContainer.current?.scrollTo(0, scrollOffset);\n }\n }\n\n getElement(itemIndex: number): Element | null {\n if (this.listContainer.current == null) {\n return null;\n }\n\n const { focusSelector } = this.props;\n const { overscanStartIndex } = this.state;\n const elements = this.listContainer.current.querySelectorAll(focusSelector);\n const elementIndex = itemIndex - overscanStartIndex;\n return elements[elementIndex];\n }\n\n focusItem(itemIndex: number): void {\n const { disableSelect } = this.props;\n if (disableSelect) return;\n\n this.setState({ focusIndex: itemIndex });\n\n const element = this.getElement(itemIndex);\n if (element instanceof HTMLElement) {\n element.focus();\n }\n }\n\n scrollToItem(itemIndex: number): void {\n const element = this.getElement(itemIndex);\n if (element != null) {\n element.scrollIntoView({ block: 'center' });\n }\n }\n\n handleItemContextMenu(\n itemIndex: number,\n e: React.MouseEvent<HTMLDivElement>\n ): void {\n this.setState({ focusIndex: itemIndex });\n\n // Update the selection, but don't consume the mouse event - it will trigger the context menu\n const { selectedRanges } = this.state;\n const isSelected = RangeUtils.isSelected(selectedRanges, itemIndex);\n\n // When right-clicking, we want to maintain the current selection if the right click happened within the selection even if the modifier key isn't down\n const isModifierDown =\n isSelected || ContextActionUtils.isModifierKeyDown(e);\n this.toggleSelect(itemIndex, e.shiftKey, isModifierDown, false);\n }\n\n handleItemDoubleClick(itemIndex: number, e: React.MouseEvent): void {\n const { isDoubleClickSelect, onSelect } = this.props;\n\n if (isDoubleClickSelect) {\n this.setState(\n ({ selectedRanges }) => ({\n selectedRanges: RangeUtils.selectRange(selectedRanges, [\n itemIndex,\n itemIndex,\n ]),\n }),\n () => {\n onSelect(itemIndex, e);\n }\n );\n }\n }\n\n handleItemMouseDown(index: number, e: React.MouseEvent): void {\n const { selectedRanges } = this.state;\n\n if (\n e.target instanceof HTMLElement &&\n ['button', 'select', 'input', 'textarea'].indexOf(\n e.target.tagName.toLowerCase()\n ) !== -1\n ) {\n // allow these elements to do their own behaviours\n return;\n }\n\n if (e.button === 2 && selectedRanges.length === 0) {\n // allow right click to act as a selection if selection is empty\n this.focusItem(index);\n this.selectItem(index);\n return;\n }\n\n if (e.button != null && e.button !== 0) {\n return;\n }\n\n this.setState({\n mouseDownIndex: index,\n mouseX: e.clientX,\n mouseY: e.clientY,\n });\n\n window.addEventListener('mouseup', this.handleWindowMouseUp);\n\n // Leave selection until mouse up, to allow for dragging behaviour\n }\n\n handleItemBlur(itemIndex: number, e: React.FocusEvent): void {\n log.debug2('item blur', itemIndex, e.currentTarget, e.relatedTarget);\n if (\n !e.relatedTarget ||\n (this.listContainer.current &&\n e.relatedTarget instanceof HTMLElement &&\n !this.listContainer.current.contains(e.relatedTarget))\n ) {\n // Next focused element is outside of the ItemList\n this.setState({ focusIndex: null });\n }\n }\n\n handleItemFocus(itemIndex: number, e: React.FocusEvent): void {\n log.debug2('item focus', itemIndex, e.target);\n this.setState(state => {\n const { focusIndex } = state;\n if (focusIndex !== itemIndex) {\n return { focusIndex: itemIndex };\n }\n return null;\n });\n }\n\n handleItemMouseMove(itemIndex: number, e: React.MouseEvent): void {\n const { isDragSelect, isMultiSelect, disableSelect } = this.props;\n const { mouseDownIndex, selectedRanges, mouseX, mouseY } = this.state;\n\n if (mouseDownIndex == null || disableSelect) return;\n\n const mouseMoveX = Math.abs(e.clientX - (mouseX ?? 0));\n const mouseMoveY = Math.abs(e.clientY - (mouseY ?? 0));\n if (mouseMoveX > MIN_DRAG_DELTA && mouseMoveY > MIN_DRAG_DELTA) {\n this.setState({ isDragging: true });\n }\n if (isDragSelect || mouseDownIndex === itemIndex) {\n this.focusItem(itemIndex);\n\n if (isMultiSelect) {\n if (\n !isDragSelect &&\n !this.getItemSelected(itemIndex, selectedRanges) &&\n !ContextActionUtils.isModifierKeyDown(e)\n ) {\n // If there's already a selection and they select outside of that range while dragging without a modifier key, start a new selection with just the new item\n this.deselectAll();\n }\n this.selectRange([\n Math.min(mouseDownIndex, itemIndex),\n Math.max(mouseDownIndex, itemIndex),\n ]);\n } else {\n this.toggleSelect(\n itemIndex,\n e.shiftKey,\n ContextActionUtils.isModifierKeyDown(e),\n false\n );\n }\n }\n }\n\n handleItemMouseUp(index: number, e: React.MouseEvent): void {\n const { isDeselectOnClick, isDoubleClickSelect, onSelect } = this.props;\n const { mouseDownIndex, isDragging } = this.state;\n\n if (\n e.target instanceof HTMLElement &&\n ['button', 'select', 'input', 'textarea'].indexOf(\n e.target.tagName.toLowerCase()\n ) !== -1\n ) {\n return;\n }\n\n if (mouseDownIndex === index && !isDragging) {\n const isShiftDown = e.shiftKey;\n const isModifierDown = ContextActionUtils.isModifierKeyDown(e);\n this.focusItem(index);\n this.toggleSelect(index, isShiftDown, isModifierDown, isDeselectOnClick);\n\n if (!isDoubleClickSelect && !isShiftDown && !isModifierDown) {\n onSelect(index, e);\n }\n }\n\n this.resetMouseState();\n }\n\n handleItemsRendered({ overscanStartIndex }: ListOnItemsRenderedProps): void {\n this.setState({ overscanStartIndex });\n }\n\n handleResize({ height }: Size): void {\n this.setState({ height });\n }\n\n handleMouseLeave(): void {\n this.setState({ mouseDownIndex: null });\n }\n\n handleWindowMouseUp(): void {\n this.resetMouseState();\n window.removeEventListener('mouseup', this.handleWindowMouseUp);\n }\n\n handleKeyDown(e: React.KeyboardEvent): void {\n const { isMultiSelect, itemCount, onSelect } = this.props;\n const { focusIndex: oldFocus } = this.state;\n let newFocus = oldFocus;\n\n if (e.key === 'Enter' || e.key === ' ') {\n if (!isMultiSelect && newFocus != null) {\n this.setState({ selectedRanges: [[newFocus, newFocus]] }, () => {\n if (newFocus != null) {\n onSelect(newFocus, e);\n }\n });\n }\n return;\n }\n\n if (e.key === 'ArrowUp') {\n if (newFocus != null && newFocus >= 0) {\n newFocus = Math.max(0, newFocus - 1);\n } else {\n newFocus = itemCount - 1;\n }\n } else if (e.key === 'ArrowDown') {\n if (newFocus != null && newFocus >= 0) {\n newFocus = Math.min(newFocus + 1, itemCount - 1);\n } else {\n newFocus = 0;\n }\n } else {\n return;\n }\n\n if (oldFocus !== newFocus) {\n e.stopPropagation();\n e.preventDefault();\n\n this.focusItem(newFocus);\n\n const { selectedRanges } = this.state;\n if (e.shiftKey && selectedRanges.length > 0) {\n const lastRange = selectedRanges[selectedRanges.length - 1];\n this.selectRange([\n Math.min(newFocus, lastRange[0]),\n Math.max(newFocus, lastRange[1]),\n ]);\n } else {\n this.deselectAll();\n if (newFocus !== null) {\n this.selectItem(newFocus);\n } else {\n this.listContainer.current?.focus();\n }\n }\n\n this.scrollIntoView(newFocus);\n }\n }\n\n handleScroll({\n scrollUpdateWasRequested,\n scrollOffset,\n }: ListOnScrollProps): void {\n this.setState(state => {\n if (scrollUpdateWasRequested) {\n // The scroll was caused by scrollTo() or scrollToItem()\n // Don't re-calc isStuckToBottom\n return { scrollOffset } as ItemListState;\n }\n\n const { isStickyBottom } = this.props;\n const { height } = state;\n\n const isStuckToBottom =\n isStickyBottom && this.isListAtBottom({ scrollOffset, height });\n return { isStuckToBottom, scrollOffset } as ItemListState;\n });\n }\n\n resetMouseState(): void {\n this.setState({ mouseDownIndex: null, isDragging: false });\n }\n\n scrollToBottom(): void {\n const { itemCount } = this.props;\n if (this.list.current) {\n this.list.current.scrollToItem(itemCount);\n }\n }\n\n scrollIntoView(itemIndex: number): void {\n if (this.list.current) {\n this.list.current.scrollToItem(itemIndex);\n }\n }\n\n /**\n * @param index The index to toggle selection for\n * @param isShiftDown True if the shift modifier key is down\n * @param isModifierDown True if the meta modifier key is down\n * @param isDeselectable True if item should be deselected if already selected\n */\n toggleSelect(\n index: number,\n isShiftDown: boolean,\n isModifierDown: boolean,\n isDeselectable = true\n ): void {\n const { isMultiSelect } = this.props;\n const { selectedRanges } = this.state;\n\n if (isMultiSelect && isShiftDown && selectedRanges.length > 0) {\n const lastRange = selectedRanges[selectedRanges.length - 1];\n this.selectRange([\n Math.min(lastRange[0], index),\n Math.max(index, lastRange[1]),\n ]);\n } else if (\n isMultiSelect &&\n selectedRanges.length === 1 &&\n selectedRanges[0][0] === index &&\n selectedRanges[0][1] === index\n ) {\n if (isDeselectable) {\n this.deselectItem(index);\n }\n } else if (isMultiSelect && isModifierDown) {\n if (this.getItemSelected(index, selectedRanges)) {\n if (isDeselectable) {\n this.deselectItem(index);\n }\n } else {\n this.selectItem(index);\n }\n } else {\n this.deselectAll();\n this.selectItem(index);\n }\n }\n\n deselectAll(): void {\n const { itemCount } = this.props;\n this.deselectRange([0, itemCount]);\n }\n\n deselectItem(index: number): void {\n this.deselectRange([index, index]);\n }\n\n deselectRange(range: Range): void {\n RangeUtils.validateRange(range);\n\n this.setState(({ selectedRanges }) => ({\n selectedRanges: RangeUtils.deselectRange(selectedRanges, range),\n }));\n }\n\n selectItem(index: number): void {\n const { disableSelect } = this.props;\n if (disableSelect) return;\n\n this.selectRange([index, index]);\n }\n\n selectRange(range: Range): void {\n RangeUtils.validateRange(range);\n\n this.setState(({ selectedRanges }) => ({\n selectedRanges: RangeUtils.selectRange(selectedRanges, range),\n }));\n }\n\n setSelectedRanges(selectedRanges: readonly Range[]): void {\n this.setState({ selectedRanges });\n }\n\n sendViewportUpdate(): void {\n const { scrollOffset, height } = this.state;\n if (scrollOffset != null && height != null) {\n const { onViewportChange, rowHeight } = this.props;\n const topRow = Math.floor(scrollOffset / rowHeight);\n const bottomRow = topRow + Math.ceil(height / rowHeight);\n onViewportChange(topRow, bottomRow);\n }\n }\n\n isListAtBottom(\n {\n scrollOffset,\n height,\n }: Pick<ItemListState, 'scrollOffset' | 'height'> = this.state\n ): boolean {\n if (height == null || scrollOffset == null) {\n return false;\n }\n\n const { itemCount, rowHeight } = this.props;\n return scrollOffset + height >= itemCount * rowHeight;\n }\n\n renderInnerElement({\n index: itemIndex,\n style,\n }: {\n index: number;\n style: React.CSSProperties;\n }): React.ReactElement | null {\n const { items, offset, renderItem, disableSelect } = this.props;\n const { focusIndex, selectedRanges } = this.state;\n if (itemIndex < offset || itemIndex >= offset + items.length) {\n return null;\n }\n\n const item = items[itemIndex - offset];\n return this.getCachedItem(\n itemIndex,\n itemIndex,\n item,\n itemIndex === focusIndex && !disableSelect,\n this.getItemSelected(itemIndex, selectedRanges),\n renderItem,\n style,\n disableSelect\n );\n }\n\n render(): JSX.Element {\n const {\n items,\n itemCount,\n overscanCount,\n renderItem,\n rowHeight,\n 'data-testid': dataTestId,\n } = this.props;\n const { selectedRanges, isStuckToBottom } = this.state;\n return (\n <AutoSizer className=\"item-list-auto-sizer\" onResize={this.handleResize}>\n {({ width, height }) => (\n <List\n className=\"item-list-scroll-pane\"\n height={height}\n width={width}\n initialScrollOffset={isStuckToBottom ? itemCount * rowHeight : 0}\n itemCount={itemCount}\n itemSize={rowHeight}\n // This prop isn't actually used by us, it is passed to the render function by react-window\n // Used here to force a re-render of the List component.\n // Otherwise it doesn't know to call the render again when selection or renderItem changes\n itemData={this.getItemData(items, selectedRanges, renderItem)}\n onScroll={this.handleScroll}\n onItemsRendered={this.handleItemsRendered}\n ref={this.list}\n outerElementType={this.getOuterElement(this.handleKeyDown)}\n outerRef={this.listContainer}\n innerElementType={this.getInnerElement()}\n overscanCount={overscanCount}\n data-testid={dataTestId}\n >\n {this.renderInnerElement}\n </List>\n )}\n </AutoSizer>\n );\n }\n}\n\nexport default ItemList;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/components",
|
|
3
|
-
"version": "0.106.
|
|
3
|
+
"version": "0.106.2-beta.1+d44370b1",
|
|
4
4
|
"description": "Deephaven React component library",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@adobe/react-spectrum": "3.38.0",
|
|
28
|
-
"@deephaven/icons": "^0.106.
|
|
29
|
-
"@deephaven/log": "^0.106.
|
|
30
|
-
"@deephaven/react-hooks": "^0.106.
|
|
31
|
-
"@deephaven/utils": "^0.106.
|
|
28
|
+
"@deephaven/icons": "^0.106.2-beta.1+d44370b1",
|
|
29
|
+
"@deephaven/log": "^0.106.2-beta.1+d44370b1",
|
|
30
|
+
"@deephaven/react-hooks": "^0.106.2-beta.1+d44370b1",
|
|
31
|
+
"@deephaven/utils": "^0.106.2-beta.1+d44370b1",
|
|
32
32
|
"@fortawesome/fontawesome-svg-core": "^6.2.1",
|
|
33
33
|
"@fortawesome/react-fontawesome": "^0.2.0",
|
|
34
34
|
"@internationalized/date": "^3.5.5",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"react-is": ">=16.8.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@deephaven/mocks": "^0.106.
|
|
64
|
-
"@deephaven/test-utils": "^0.106.
|
|
63
|
+
"@deephaven/mocks": "^0.106.2-beta.1+d44370b1",
|
|
64
|
+
"@deephaven/test-utils": "^0.106.2-beta.1+d44370b1",
|
|
65
65
|
"react-redux": "^7.2.4"
|
|
66
66
|
},
|
|
67
67
|
"files": [
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"publishConfig": {
|
|
77
77
|
"access": "public"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "d44370b18b16f153403eaf95094e29755d673d4e"
|
|
80
80
|
}
|