@deephaven/iris-grid 1.2.1-plotly-rc.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/dist/AdvancedFilterCreator.css.map +1 -1
  2. package/dist/AdvancedFilterCreator.js.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.css.map +1 -1
  4. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.css.map +1 -1
  6. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  8. package/dist/ColumnHeaderGroup.js.map +1 -1
  9. package/dist/ColumnStatistics.css.map +1 -1
  10. package/dist/ColumnStatistics.js.map +1 -1
  11. package/dist/CommonTypes.js.map +1 -1
  12. package/dist/CrossColumnSearch.css.map +1 -1
  13. package/dist/CrossColumnSearch.js.map +1 -1
  14. package/dist/EmptyIrisGridModel.js.map +1 -1
  15. package/dist/FilterInputField.css.map +1 -1
  16. package/dist/FilterInputField.js.map +1 -1
  17. package/dist/GotoRow.css.map +1 -1
  18. package/dist/GotoRow.js.map +1 -1
  19. package/dist/IrisGrid.css.map +1 -1
  20. package/dist/IrisGrid.js.map +1 -1
  21. package/dist/IrisGridBottomBar.css.map +1 -1
  22. package/dist/IrisGridBottomBar.js.map +1 -1
  23. package/dist/IrisGridCacheUtils.js.map +1 -1
  24. package/dist/IrisGridCellOverflowModal.css.map +1 -1
  25. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  26. package/dist/IrisGridCellRendererUtils.js.map +1 -1
  27. package/dist/IrisGridCopyHandler.css.map +1 -1
  28. package/dist/IrisGridCopyHandler.js.map +1 -1
  29. package/dist/IrisGridDataBarCellRenderer.js.map +1 -1
  30. package/dist/IrisGridIcons.js.map +1 -1
  31. package/dist/IrisGridMetricCalculator.js.map +1 -1
  32. package/dist/IrisGridModel.js.map +1 -1
  33. package/dist/IrisGridModelFactory.js.map +1 -1
  34. package/dist/IrisGridModelUpdater.js.map +1 -1
  35. package/dist/IrisGridPartitionSelector.css.map +1 -1
  36. package/dist/IrisGridPartitionSelector.js.map +1 -1
  37. package/dist/IrisGridPartitionedTableModel.js.map +1 -1
  38. package/dist/IrisGridProxyModel.js.map +1 -1
  39. package/dist/IrisGridRenderer.js.map +1 -1
  40. package/dist/IrisGridShortcuts.js.map +1 -1
  41. package/dist/IrisGridTableModel.js.map +1 -1
  42. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  43. package/dist/IrisGridTestUtils.js.map +1 -1
  44. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  45. package/dist/IrisGridTheme.js.map +1 -1
  46. package/dist/IrisGridTheme.module.css.map +1 -1
  47. package/dist/IrisGridThemeProvider.js.map +1 -1
  48. package/dist/IrisGridTreeTableModel.js.map +1 -1
  49. package/dist/IrisGridUtils.js.map +1 -1
  50. package/dist/LazyIrisGrid.js.map +1 -1
  51. package/dist/MissingKeyError.js.map +1 -1
  52. package/dist/MissingPartitionError.js.map +1 -1
  53. package/dist/NoPastePermissionModal.js.map +1 -1
  54. package/dist/PartitionedGridModel.js.map +1 -1
  55. package/dist/PendingDataBottomBar.css.map +1 -1
  56. package/dist/PendingDataBottomBar.js.map +1 -1
  57. package/dist/ToastBottomBar.js.map +1 -1
  58. package/dist/declaration.d.js.map +1 -1
  59. package/dist/format-context-menus/CustomFormatAction.css.map +1 -1
  60. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  61. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  62. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  63. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  64. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  65. package/dist/format-context-menus/index.js.map +1 -1
  66. package/dist/index.js.map +1 -1
  67. package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
  68. package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
  69. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  70. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  71. package/dist/key-handlers/index.js.map +1 -1
  72. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  73. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  74. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  75. package/dist/mousehandlers/IrisGridContextMenuHandler.css.map +1 -1
  76. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  77. package/dist/mousehandlers/IrisGridCopyCellMouseHandler.js.map +1 -1
  78. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  79. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  80. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
  81. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
  82. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  83. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
  84. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  85. package/dist/mousehandlers/index.js.map +1 -1
  86. package/dist/sidebar/AdvancedSettings.js.map +1 -1
  87. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  88. package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
  89. package/dist/sidebar/ChartBuilder.css.map +1 -1
  90. package/dist/sidebar/ChartBuilder.js.map +1 -1
  91. package/dist/sidebar/CustomColumnBuilder.css.map +1 -1
  92. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  93. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  94. package/dist/sidebar/DownloadServiceWorkerUtils.js.map +1 -1
  95. package/dist/sidebar/InputEditor.css.map +1 -1
  96. package/dist/sidebar/InputEditor.js.map +1 -1
  97. package/dist/sidebar/OptionType.js.map +1 -1
  98. package/dist/sidebar/RollupRows.css.map +1 -1
  99. package/dist/sidebar/RollupRows.js.map +1 -1
  100. package/dist/sidebar/SelectDistinctBuilder.css.map +1 -1
  101. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  102. package/dist/sidebar/TableCsvExporter.css.map +1 -1
  103. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  104. package/dist/sidebar/TableSaver.js.map +1 -1
  105. package/dist/sidebar/aggregations/AggregationEdit.css.map +1 -1
  106. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  107. package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
  108. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  109. package/dist/sidebar/aggregations/Aggregations.css.map +1 -1
  110. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  111. package/dist/sidebar/aggregations/index.js.map +1 -1
  112. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  113. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  114. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.css.map +1 -1
  115. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  116. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  117. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css.map +1 -1
  118. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  119. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  120. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  121. package/dist/sidebar/conditional-formatting/StyleEditor.css.map +1 -1
  122. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  123. package/dist/sidebar/icons/BarIcon.js.map +1 -1
  124. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
  125. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
  126. package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
  127. package/dist/sidebar/icons/LineIcon.js.map +1 -1
  128. package/dist/sidebar/icons/PieIcon.js.map +1 -1
  129. package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
  130. package/dist/sidebar/icons/index.js.map +1 -1
  131. package/dist/sidebar/index.js.map +1 -1
  132. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.css.map +1 -1
  133. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  134. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  135. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.css.map +1 -1
  136. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
  137. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
  138. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
  139. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
  140. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -1
  141. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
  142. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.css.map +1 -1
  143. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
  144. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
  145. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -1
  146. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  147. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"FilterInputField.js","names":["React","PureComponent","classNames","debounce","vsFilter","dhFilterFilled","FontAwesomeIcon","Button","jsx","_jsx","jsxs","_jsxs","FilterInputField","constructor","props","_defineProperty","debounceMs","debouncedSendUpdate","sendUpdate","bind","handleCancel","handleChange","handleCommit","handleFocus","handleBlur","handleKeyDown","handleContextMenu","inputField","value","initialValue","state","isChanged","componentDidMount","_this$inputField","focus","componentDidUpdate","prevProps","flush","componentWillUnmount","cancel","setValue","setState","_this$inputField2","event","target","onDone","setGridFocus","arguments","length","undefined","defocusInput","_this$inputField3","select","relatedTarget","classList","contains","handleTab","backward","onTab","key","stopPropagation","preventDefault","shiftKey","onContextMenu","onChange","render","className","style","isAdvancedFilterSet","onAdvancedFiltersTriggered","children","ref","type","onBlur","onFocus","onKeyDown","autoComplete","autoCorrect","autoCapitalize","spellCheck","kind","onClick","icon"],"sources":["../src/FilterInputField.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n PureComponent,\n type ReactElement,\n} from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { vsFilter, dhFilterFilled } from '@deephaven/icons';\nimport './FilterInputField.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { DebouncedFunc } from 'lodash';\nimport { Button } from '@deephaven/components';\n\ninterface FilterInputFieldProps {\n className: string;\n style: React.CSSProperties;\n value: string;\n isAdvancedFilterSet: boolean;\n onAdvancedFiltersTriggered: React.MouseEventHandler<HTMLButtonElement>;\n onChange: (value: string) => void;\n onDone: (setGridFocus?: boolean, defocusInput?: boolean) => void;\n onTab: (backward: boolean) => void;\n onContextMenu: React.MouseEventHandler<HTMLInputElement | HTMLButtonElement>;\n debounceMs: number;\n}\ninterface FilterInputFieldState {\n isChanged: boolean;\n value: string;\n}\n/**\n * An input field showing a input field and button.\n * Debounces changes.\n */\nclass FilterInputField extends PureComponent<\n FilterInputFieldProps,\n FilterInputFieldState\n> {\n static defaultProps = {\n style: {},\n className: '',\n value: '',\n isAdvancedFilterSet: false,\n onAdvancedFiltersTriggered: (): void => undefined,\n onChange: (): void => undefined,\n onDone: (): void => undefined,\n onTab: (): void => undefined,\n onContextMenu: (): void => undefined,\n debounceMs: 150,\n };\n\n constructor(props: FilterInputFieldProps) {\n super(props);\n\n const { debounceMs } = props;\n\n this.debouncedSendUpdate = debounce(this.sendUpdate.bind(this), debounceMs);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleCommit = this.handleCommit.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n\n this.inputField = null;\n\n const { value } = props;\n this.initialValue = value;\n this.state = {\n isChanged: false,\n value,\n };\n }\n\n componentDidMount(): void {\n this.inputField?.focus();\n }\n\n componentDidUpdate(prevProps: FilterInputFieldProps): void {\n const { debounceMs } = this.props;\n if (prevProps.debounceMs !== debounceMs) {\n this.debouncedSendUpdate.flush();\n this.debouncedSendUpdate = debounce(\n this.sendUpdate.bind(this),\n debounceMs\n );\n }\n }\n\n componentWillUnmount(): void {\n this.debouncedSendUpdate.cancel();\n }\n\n inputField: HTMLInputElement | null;\n\n initialValue: string;\n\n debouncedSendUpdate: DebouncedFunc<(value: string) => void>;\n\n // clear filters needs to be able to reset the value externally\n // and due to the way this component handles its own debouncing\n // this was easier than moving state up.\n setValue(value: string): void {\n this.initialValue = value;\n this.setState({ value });\n }\n\n focus(): void {\n this.inputField?.focus();\n }\n\n handleChange(event: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n this.setState({ value, isChanged: true });\n\n this.debouncedSendUpdate(value);\n }\n\n handleCancel(): void {\n this.debouncedSendUpdate.cancel();\n const { initialValue } = this;\n const { isChanged } = this.state;\n if (isChanged) {\n this.sendUpdate(initialValue);\n }\n\n const { onDone } = this.props;\n onDone();\n }\n\n handleCommit(setGridFocus = true, defocusInput = true): void {\n this.debouncedSendUpdate.flush();\n\n const { onDone } = this.props;\n onDone(setGridFocus, defocusInput);\n }\n\n handleFocus(): void {\n this.inputField?.select();\n }\n\n handleBlur(event: React.FocusEvent<HTMLInputElement>): void {\n const { relatedTarget } = event;\n // handleCommit results in a call that steals focus\n if (\n relatedTarget != null &&\n relatedTarget.classList.contains('context-menu-container')\n ) {\n // input blurred by calling context-menu\n // don't set grid focus, but do null column focus\n this.handleCommit(false, true);\n } else if (\n relatedTarget != null &&\n relatedTarget.classList.contains('advanced-filter-button')\n ) {\n // blurred by clicking an advanced filter button\n // don't set grid focus, maintain focusedFilterBarColumn state\n this.handleCommit(false, false);\n } else {\n // clear both, blurred elsewhere\n this.handleCommit(true, true);\n }\n }\n\n handleTab(backward = false): void {\n this.debouncedSendUpdate.flush();\n\n const { onTab } = this.props;\n onTab(backward);\n }\n\n handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void {\n switch (event.key) {\n case 'Escape':\n event.stopPropagation();\n event.preventDefault();\n this.handleCancel();\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n this.handleCommit();\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n this.handleTab(event.shiftKey);\n break;\n default:\n break;\n }\n }\n\n handleContextMenu(\n event: React.MouseEvent<HTMLInputElement | HTMLButtonElement>\n ): void {\n const { onContextMenu } = this.props;\n onContextMenu(event);\n }\n\n sendUpdate(value: string): void {\n const { onChange } = this.props;\n onChange(value);\n }\n\n render(): ReactElement {\n const {\n className,\n style,\n isAdvancedFilterSet,\n onAdvancedFiltersTriggered,\n } = this.props;\n const { value } = this.state;\n return (\n <div\n style={style}\n className=\"iris-grid-input-autosized-wrapper\"\n data-value={value} // used by css based autosizer\n >\n <input\n ref={inputField => {\n this.inputField = inputField;\n }}\n className={classNames('iris-grid-input-field', className)}\n type=\"text\"\n value={value}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onContextMenu={this.handleContextMenu}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n />\n <div className=\"advanced-filter-button-container\">\n <Button\n kind=\"ghost\"\n className={classNames('btn-link-icon advanced-filter-button', {\n 'filter-set': isAdvancedFilterSet,\n })}\n onClick={onAdvancedFiltersTriggered}\n onContextMenu={this.handleContextMenu}\n >\n <div className=\"fa-layers \">\n <FontAwesomeIcon icon={dhFilterFilled} className=\"filter-solid\" />\n <FontAwesomeIcon icon={vsFilter} className=\"filter-light\" />\n </div>\n </Button>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterInputField;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FilterInputField.js","names":["React","PureComponent","classNames","debounce","vsFilter","dhFilterFilled","FontAwesomeIcon","Button","jsx","_jsx","jsxs","_jsxs","FilterInputField","constructor","props","_defineProperty","debounceMs","debouncedSendUpdate","sendUpdate","bind","handleCancel","handleChange","handleCommit","handleFocus","handleBlur","handleKeyDown","handleContextMenu","inputField","value","initialValue","state","isChanged","componentDidMount","_this$inputField","focus","componentDidUpdate","prevProps","flush","componentWillUnmount","cancel","setValue","setState","_this$inputField2","event","target","onDone","setGridFocus","arguments","length","undefined","defocusInput","_this$inputField3","select","relatedTarget","classList","contains","handleTab","backward","onTab","key","stopPropagation","preventDefault","shiftKey","onContextMenu","onChange","render","className","style","isAdvancedFilterSet","onAdvancedFiltersTriggered","children","ref","type","onBlur","onFocus","onKeyDown","autoComplete","autoCorrect","autoCapitalize","spellCheck","kind","onClick","icon"],"sources":["../src/FilterInputField.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n PureComponent,\n type ReactElement,\n} from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { vsFilter, dhFilterFilled } from '@deephaven/icons';\nimport './FilterInputField.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { DebouncedFunc } from 'lodash';\nimport { Button } from '@deephaven/components';\n\ninterface FilterInputFieldProps {\n className: string;\n style: React.CSSProperties;\n value: string;\n isAdvancedFilterSet: boolean;\n onAdvancedFiltersTriggered: React.MouseEventHandler<HTMLButtonElement>;\n onChange: (value: string) => void;\n onDone: (setGridFocus?: boolean, defocusInput?: boolean) => void;\n onTab: (backward: boolean) => void;\n onContextMenu: React.MouseEventHandler<HTMLInputElement | HTMLButtonElement>;\n debounceMs: number;\n}\ninterface FilterInputFieldState {\n isChanged: boolean;\n value: string;\n}\n/**\n * An input field showing a input field and button.\n * Debounces changes.\n */\nclass FilterInputField extends PureComponent<\n FilterInputFieldProps,\n FilterInputFieldState\n> {\n static defaultProps = {\n style: {},\n className: '',\n value: '',\n isAdvancedFilterSet: false,\n onAdvancedFiltersTriggered: (): void => undefined,\n onChange: (): void => undefined,\n onDone: (): void => undefined,\n onTab: (): void => undefined,\n onContextMenu: (): void => undefined,\n debounceMs: 150,\n };\n\n constructor(props: FilterInputFieldProps) {\n super(props);\n\n const { debounceMs } = props;\n\n this.debouncedSendUpdate = debounce(this.sendUpdate.bind(this), debounceMs);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleCommit = this.handleCommit.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n\n this.inputField = null;\n\n const { value } = props;\n this.initialValue = value;\n this.state = {\n isChanged: false,\n value,\n };\n }\n\n componentDidMount(): void {\n this.inputField?.focus();\n }\n\n componentDidUpdate(prevProps: FilterInputFieldProps): void {\n const { debounceMs } = this.props;\n if (prevProps.debounceMs !== debounceMs) {\n this.debouncedSendUpdate.flush();\n this.debouncedSendUpdate = debounce(\n this.sendUpdate.bind(this),\n debounceMs\n );\n }\n }\n\n componentWillUnmount(): void {\n this.debouncedSendUpdate.cancel();\n }\n\n inputField: HTMLInputElement | null;\n\n initialValue: string;\n\n debouncedSendUpdate: DebouncedFunc<(value: string) => void>;\n\n // clear filters needs to be able to reset the value externally\n // and due to the way this component handles its own debouncing\n // this was easier than moving state up.\n setValue(value: string): void {\n this.initialValue = value;\n this.setState({ value });\n }\n\n focus(): void {\n this.inputField?.focus();\n }\n\n handleChange(event: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n this.setState({ value, isChanged: true });\n\n this.debouncedSendUpdate(value);\n }\n\n handleCancel(): void {\n this.debouncedSendUpdate.cancel();\n const { initialValue } = this;\n const { isChanged } = this.state;\n if (isChanged) {\n this.sendUpdate(initialValue);\n }\n\n const { onDone } = this.props;\n onDone();\n }\n\n handleCommit(setGridFocus = true, defocusInput = true): void {\n this.debouncedSendUpdate.flush();\n\n const { onDone } = this.props;\n onDone(setGridFocus, defocusInput);\n }\n\n handleFocus(): void {\n this.inputField?.select();\n }\n\n handleBlur(event: React.FocusEvent<HTMLInputElement>): void {\n const { relatedTarget } = event;\n // handleCommit results in a call that steals focus\n if (\n relatedTarget != null &&\n relatedTarget.classList.contains('context-menu-container')\n ) {\n // input blurred by calling context-menu\n // don't set grid focus, but do null column focus\n this.handleCommit(false, true);\n } else if (\n relatedTarget != null &&\n relatedTarget.classList.contains('advanced-filter-button')\n ) {\n // blurred by clicking an advanced filter button\n // don't set grid focus, maintain focusedFilterBarColumn state\n this.handleCommit(false, false);\n } else {\n // clear both, blurred elsewhere\n this.handleCommit(true, true);\n }\n }\n\n handleTab(backward = false): void {\n this.debouncedSendUpdate.flush();\n\n const { onTab } = this.props;\n onTab(backward);\n }\n\n handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void {\n switch (event.key) {\n case 'Escape':\n event.stopPropagation();\n event.preventDefault();\n this.handleCancel();\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n this.handleCommit();\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n this.handleTab(event.shiftKey);\n break;\n default:\n break;\n }\n }\n\n handleContextMenu(\n event: React.MouseEvent<HTMLInputElement | HTMLButtonElement>\n ): void {\n const { onContextMenu } = this.props;\n onContextMenu(event);\n }\n\n sendUpdate(value: string): void {\n const { onChange } = this.props;\n onChange(value);\n }\n\n render(): ReactElement {\n const {\n className,\n style,\n isAdvancedFilterSet,\n onAdvancedFiltersTriggered,\n } = this.props;\n const { value } = this.state;\n return (\n <div\n style={style}\n className=\"iris-grid-input-autosized-wrapper\"\n data-value={value} // used by css based autosizer\n >\n <input\n ref={inputField => {\n this.inputField = inputField;\n }}\n className={classNames('iris-grid-input-field', className)}\n type=\"text\"\n value={value}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onContextMenu={this.handleContextMenu}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n />\n <div className=\"advanced-filter-button-container\">\n <Button\n kind=\"ghost\"\n className={classNames('btn-link-icon advanced-filter-button', {\n 'filter-set': isAdvancedFilterSet,\n })}\n onClick={onAdvancedFiltersTriggered}\n onContextMenu={this.handleContextMenu}\n >\n <div className=\"fa-layers \">\n <FontAwesomeIcon icon={dhFilterFilled} className=\"filter-solid\" />\n <FontAwesomeIcon icon={vsFilter} className=\"filter-light\" />\n </div>\n </Button>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterInputField;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss","../src/GotoRow.scss","../../../node_modules/@deephaven/components/scss/new_variables.scss"],"names":[],"mappings":"AAAA;AC6LA;AC3LA;EACE;;;AAGF;EACE,kBD4BW;EC3BX;EACA;;AAEA;EACE;EACA,SCRO;EDSP;EACA;EACA,KCXO;;ADcT;EACE;EACA;EACA,KCjBO;EDkBP;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAEF;EACE;;AAEF;EACE,ODzBO;;AC2BT;EACE","file":"GotoRow.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-input-disabled-fg);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '@deephaven/components/scss/custom.scss';\n\n.iris-grid-bottom-bar.goto-row {\n height: auto;\n}\n\n.goto-row {\n background-color: $content-bg;\n border-top: $border-width solid $black;\n display: block;\n\n .goto-row-row {\n display: flex;\n padding: $spacer-2;\n justify-content: space-between;\n align-items: flex-start;\n gap: $spacer-2;\n }\n\n .goto-row-wrapper {\n display: flex;\n align-items: center;\n gap: $spacer-2;\n flex-wrap: wrap;\n }\n\n .goto-row-text {\n min-width: 10ch;\n margin: 0;\n font-size: 14px;\n }\n\n .goto-row-close {\n display: flex;\n }\n\n input {\n max-width: calc($input-padding-x + 12ch + $input-padding-x);\n }\n select {\n max-width: calc($input-padding-x + 25ch + $input-padding-x);\n }\n .is-inactive {\n color: $gray-400;\n }\n .goto-value-date-time-input {\n min-width: 30ch;\n }\n}\n","@use 'sass:math';\n\n//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size:\n $ant-size $ant-thickness,\n $ant-size $ant-thickness,\n $ant-thickness $ant-size,\n $ant-thickness $ant-size;\n background-position:\n 0 top,\n 0 bottom,\n left 0,\n right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 12%;\n$hover-bg-transparency: 14%;\n$active-bg-transparency: 28%;\n$exception-transparency: 28%;\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss","../src/GotoRow.scss","../../../node_modules/@deephaven/components/scss/new_variables.scss"],"names":[],"mappings":"AAAA;AC6LA;AC3LA;EACE;;;AAGF;EACE,kBD4BW;EC3BX;EACA;;AAEA;EACE;EACA,SCRO;EDSP;EACA;EACA,KCXO;;ADcT;EACE;EACA;EACA,KCjBO;EDkBP;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAEF;EACE;;AAEF;EACE,ODzBO;;AC2BT;EACE","file":"GotoRow.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-text-disabled);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '@deephaven/components/scss/custom.scss';\n\n.iris-grid-bottom-bar.goto-row {\n height: auto;\n}\n\n.goto-row {\n background-color: $content-bg;\n border-top: $border-width solid $black;\n display: block;\n\n .goto-row-row {\n display: flex;\n padding: $spacer-2;\n justify-content: space-between;\n align-items: flex-start;\n gap: $spacer-2;\n }\n\n .goto-row-wrapper {\n display: flex;\n align-items: center;\n gap: $spacer-2;\n flex-wrap: wrap;\n }\n\n .goto-row-text {\n min-width: 10ch;\n margin: 0;\n font-size: 14px;\n }\n\n .goto-row-close {\n display: flex;\n }\n\n input {\n max-width: calc($input-padding-x + 12ch + $input-padding-x);\n }\n select {\n max-width: calc($input-padding-x + 25ch + $input-padding-x);\n }\n .is-inactive {\n color: $gray-400;\n }\n .goto-value-date-time-input {\n min-width: 30ch;\n }\n}\n","@use 'sass:math';\n\n//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size:\n $ant-size $ant-thickness,\n $ant-size $ant-thickness,\n $ant-thickness $ant-size,\n $ant-thickness $ant-size;\n background-position:\n 0 top,\n 0 bottom,\n left 0,\n right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 12%;\n$hover-bg-transparency: 14%;\n$active-bg-transparency: 28%;\n$exception-transparency: 28%;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GotoRow.js","names":["FontAwesomeIcon","vsClose","vsArrowUp","vsArrowDown","React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","Type","FilterType","Button","DateTimeInput","Select","TableUtils","classNames","nanoid","IrisGridBottomBar","isIrisGridTableModelTemplate","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_FORMAT_STRING","GotoRow","_ref","ref","gotoRow","gotoRowError","gotoValueError","onGotoRowSubmit","isShown","onEntering","onEntered","onExiting","onExited","model","onGotoRowNumberChanged","onClose","gotoValueSelectedColumnName","gotoValue","gotoValueFilter","onGotoValueSelectedColumnNameChanged","onGotoValueSelectedFilterChanged","onGotoValueChanged","onGotoValueSubmit","gotoRowInputRef","gotoValueInputRef","isGotoRowActive","setIsGotoRowActive","columns","table","dh","rowCount","gotoRowInputId","concat","handleGotoValueNumberKeyDown","e","key","stopPropagation","preventDefault","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","onGotoValueInputChanged","handleGotoValueKeySubmit","shiftKey","index","getColumnIndexByName","selectedColumn","columnType","type","normalizedType","getNormalizedType","value","focus","_gotoRowInputRef$curr","current","select","selectInput","document","activeElement","_gotoRowInputRef$curr2","_gotoValueInputRef$cu","renderValueInput","dataType","DECIMAL","INT","className","children","onKeyDown","placeholder","onChange","target","toLowerCase","test","DATETIME","defaultValue","onSubmit","STRING","eventTargetValue","eqIgnoreCase","containsIgnoreCase","eq","contains","BOOLEAN","onClick","onFocus","role","htmlFor","event","id","i18n","NumberFormat","format","kind","icon","style","marginRight","isSeekRowAvailable","columnName","map","column","name","tooltip","disabled","displayName"],"sources":["../src/GotoRow.tsx"],"sourcesContent":["import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsClose, vsArrowUp, vsArrowDown } from '@deephaven/icons';\nimport React, {\n type ChangeEvent,\n type KeyboardEvent,\n type ReactElement,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n Type as FilterType,\n type TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { Button, DateTimeInput, Select } from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport classNames from 'classnames';\nimport './GotoRow.scss';\nimport { nanoid } from 'nanoid';\nimport type IrisGridModel from './IrisGridModel';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport { type ColumnName } from './CommonTypes';\nimport { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\n\nconst DEFAULT_FORMAT_STRING = '###,##0';\n\ninterface GotoRowProps {\n gotoRow: string;\n gotoRowError: string;\n gotoValueError: string;\n onGotoRowSubmit: () => void;\n model: IrisGridModel;\n onGotoRowNumberChanged: (event: ChangeEvent<HTMLInputElement>) => void;\n onClose: () => void;\n isShown: boolean;\n onEntering: () => void;\n onEntered: () => void;\n onExiting: () => void;\n onExited: () => void;\n\n gotoValueSelectedColumnName: ColumnName;\n gotoValue: string;\n gotoValueFilter: FilterTypeValue;\n onGotoValueSelectedColumnNameChanged: (columnName: ColumnName) => void;\n onGotoValueSelectedFilterChanged: (filter: FilterTypeValue) => void;\n onGotoValueChanged: (input: string) => void;\n onGotoValueSubmit: (isBackward?: boolean) => void;\n}\n\nexport type GotoRowElement = { focus: () => void };\n\nconst GotoRow = forwardRef<GotoRowElement, GotoRowProps>(\n (\n {\n gotoRow,\n gotoRowError,\n gotoValueError,\n onGotoRowSubmit,\n isShown,\n onEntering,\n onEntered,\n onExiting,\n onExited,\n model,\n onGotoRowNumberChanged,\n onClose,\n gotoValueSelectedColumnName,\n gotoValue,\n gotoValueFilter,\n onGotoValueSelectedColumnNameChanged,\n onGotoValueSelectedFilterChanged,\n onGotoValueChanged,\n onGotoValueSubmit,\n }: GotoRowProps,\n ref\n ): ReactElement => {\n const gotoRowInputRef = useRef<HTMLInputElement>(null);\n const gotoValueInputRef = useRef<HTMLInputElement>(null);\n\n const [isGotoRowActive, setIsGotoRowActive] = useState(false);\n let columns: dh.Column[] = [];\n\n if (isIrisGridTableModelTemplate(model)) {\n ({ columns } = model.table);\n }\n\n const { dh, rowCount } = model;\n\n const gotoRowInputId = useMemo(() => `goto-row-input-${nanoid()}`, []);\n\n const handleGotoValueNumberKeyDown = (\n e: KeyboardEvent<HTMLInputElement>\n ): void => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit();\n } else if (\n (e.key === 'Backspace' || e.key === 'Delete') &&\n (gotoValue === `${Number.POSITIVE_INFINITY}` ||\n gotoValue === `${Number.NEGATIVE_INFINITY}`)\n ) {\n onGotoValueInputChanged('');\n }\n };\n\n const handleGotoValueKeySubmit = (\n e: KeyboardEvent<HTMLInputElement>\n ): void => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit(e.shiftKey);\n }\n };\n\n const index = model.getColumnIndexByName(gotoValueSelectedColumnName);\n\n const selectedColumn = columns[index ?? 0];\n\n const columnType = selectedColumn?.type;\n\n const normalizedType = TableUtils.getNormalizedType(columnType);\n const onGotoValueInputChanged = (value?: string): void => {\n onGotoValueChanged(value ?? '');\n };\n useImperativeHandle(ref, () => ({\n focus(): void {\n setIsGotoRowActive(true);\n gotoRowInputRef.current?.select();\n },\n }));\n const selectInput = (): void => {\n // when row changes without focus (i.e. via context menu), re-select input\n if (\n isGotoRowActive &&\n document.activeElement !== gotoRowInputRef.current\n ) {\n gotoRowInputRef.current?.select();\n } else if (\n !isGotoRowActive &&\n document.activeElement !== gotoValueInputRef.current\n ) {\n gotoValueInputRef.current?.select();\n }\n };\n useEffect(selectInput, [isGotoRowActive]);\n\n const renderValueInput = (): JSX.Element => {\n switch (normalizedType) {\n case TableUtils.dataType.DECIMAL:\n case TableUtils.dataType.INT:\n return (\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueNumberKeyDown}\n placeholder=\"value\"\n onChange={e => {\n const value = e.target.value.toLowerCase();\n // regex tests for\n if (/^-?[0-9]*\\.?[0-9]*$/.test(e.target.value)) {\n onGotoValueInputChanged(e.target.value);\n } else if (value === '-i' || value === '-infinity') {\n onGotoValueInputChanged(`${Number.NEGATIVE_INFINITY}`);\n } else if (value === 'i' || value === 'infinity') {\n onGotoValueInputChanged(`${Number.POSITIVE_INFINITY}`);\n }\n }}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n );\n case TableUtils.dataType.DATETIME:\n return (\n <div className=\"goto-value-date-time-input\">\n <DateTimeInput\n ref={gotoValueInputRef}\n className={classNames(\n 'form-control',\n 'goto-value-date-time-input',\n {\n 'is-invalid': gotoValueError !== '',\n }\n )}\n defaultValue={gotoValue}\n onChange={onGotoValueInputChanged}\n onSubmit={handleGotoValueKeySubmit}\n aria-label=\"Value Input\"\n />\n </div>\n );\n case TableUtils.dataType.STRING:\n return (\n <>\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n onGotoValueSelectedFilterChanged(\n eventTargetValue as FilterTypeValue\n );\n }}\n value={gotoValueFilter}\n aria-label=\"filter-type-select\"\n >\n <option\n key={FilterType.eqIgnoreCase}\n value={FilterType.eqIgnoreCase}\n >\n Equals (case-insensitive)\n </option>\n <option\n key={FilterType.containsIgnoreCase}\n value={FilterType.containsIgnoreCase}\n >\n Contains (case-insensitive)\n </option>\n <option key={FilterType.eq} value={FilterType.eq}>\n Equals\n </option>\n <option key={FilterType.contains} value={FilterType.contains}>\n Contains\n </option>\n </Select>\n </div>\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueKeySubmit}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n </>\n );\n case TableUtils.dataType.BOOLEAN:\n return (\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n onGotoValueInputChanged(eventTargetValue);\n }}\n value={gotoValue}\n aria-label=\"Value Input\"\n >\n <option aria-label=\"null value\" key=\"null\" value=\"\" />\n <option key=\"true\" value=\"true\">\n true\n </option>\n <option key=\"false\" value=\"false\">\n false\n </option>\n </Select>\n </div>\n );\n default:\n return (\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className=\"form-control\"\n onKeyDown={handleGotoValueKeySubmit}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n );\n }\n };\n return (\n <IrisGridBottomBar\n isShown={isShown}\n className={classNames('goto-row')}\n onEntering={onEntering}\n onEntered={() => {\n onEntered();\n selectInput();\n }}\n onExiting={onExiting}\n onExited={onExited}\n >\n <>\n <div className=\"goto-row-row\">\n <div\n className={classNames('goto-row-wrapper', {\n 'is-inactive': !isGotoRowActive,\n })}\n onClick={() => setIsGotoRowActive(true)}\n onFocus={() => setIsGotoRowActive(true)}\n role=\"group\"\n >\n <label className=\"goto-row-text\" htmlFor={gotoRowInputId}>\n Go to row\n </label>\n <div className=\"goto-row-input\">\n <input\n ref={gotoRowInputRef}\n data-testid=\"goto-row-input\"\n type=\"number\"\n onKeyDown={e => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoRowSubmit();\n }\n }}\n className={classNames('form-control', {\n 'is-invalid': gotoRowError !== '',\n })}\n placeholder=\"Row number\"\n onChange={event => {\n onGotoRowNumberChanged(event);\n }}\n value={gotoRow}\n id={gotoRowInputId}\n />\n </div>\n <div className=\"goto-row-text\">\n of{' '}\n {dh.i18n.NumberFormat.format(DEFAULT_FORMAT_STRING, rowCount)}\n </div>\n {gotoRowError && (\n <div className=\"text-danger\">{gotoRowError}</div>\n )}\n </div>\n <div className=\"goto-row-close\">\n <Button kind=\"ghost\" onClick={onClose}>\n <FontAwesomeIcon icon={vsClose} style={{ marginRight: '0' }} />\n </Button>\n </div>\n </div>\n {model.isSeekRowAvailable && (\n <div className=\"goto-row-row\">\n <div\n className={classNames('goto-row-wrapper', {\n 'is-inactive': isGotoRowActive,\n })}\n onClick={() => setIsGotoRowActive(false)}\n onFocus={() => setIsGotoRowActive(false)}\n role=\"group\"\n >\n <div className=\"goto-row-text\">Go to value</div>\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n const columnName = eventTargetValue;\n onGotoValueSelectedColumnNameChanged(columnName);\n }}\n value={gotoValueSelectedColumnName}\n aria-label=\"column-name-select\"\n id=\"column-name-select\"\n >\n {columns.map(column => (\n <option key={column.name} value={column.name}>\n {column.name}\n </option>\n ))}\n </Select>\n </div>\n\n {renderValueInput()}\n\n <div>\n <Button\n tooltip=\"Previous match\"\n icon={vsArrowUp}\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(true);\n }}\n />\n <Button\n tooltip=\"Next match\"\n icon={vsArrowDown}\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(false);\n }}\n />\n </div>\n {gotoValueError && (\n <div className=\"text-danger\">{gotoValueError}</div>\n )}\n </div>\n </div>\n )}\n </>\n </IrisGridBottomBar>\n );\n }\n);\nGotoRow.displayName = 'GotoRow';\n\nexport default GotoRow;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"GotoRow.js","names":["FontAwesomeIcon","vsClose","vsArrowUp","vsArrowDown","React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","Type","FilterType","Button","DateTimeInput","Select","TableUtils","classNames","nanoid","IrisGridBottomBar","isIrisGridTableModelTemplate","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_FORMAT_STRING","GotoRow","_ref","ref","gotoRow","gotoRowError","gotoValueError","onGotoRowSubmit","isShown","onEntering","onEntered","onExiting","onExited","model","onGotoRowNumberChanged","onClose","gotoValueSelectedColumnName","gotoValue","gotoValueFilter","onGotoValueSelectedColumnNameChanged","onGotoValueSelectedFilterChanged","onGotoValueChanged","onGotoValueSubmit","gotoRowInputRef","gotoValueInputRef","isGotoRowActive","setIsGotoRowActive","columns","table","dh","rowCount","gotoRowInputId","concat","handleGotoValueNumberKeyDown","e","key","stopPropagation","preventDefault","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","onGotoValueInputChanged","handleGotoValueKeySubmit","shiftKey","index","getColumnIndexByName","selectedColumn","columnType","type","normalizedType","getNormalizedType","value","focus","_gotoRowInputRef$curr","current","select","selectInput","document","activeElement","_gotoRowInputRef$curr2","_gotoValueInputRef$cu","renderValueInput","dataType","DECIMAL","INT","className","children","onKeyDown","placeholder","onChange","target","toLowerCase","test","DATETIME","defaultValue","onSubmit","STRING","eventTargetValue","eqIgnoreCase","containsIgnoreCase","eq","contains","BOOLEAN","onClick","onFocus","role","htmlFor","event","id","i18n","NumberFormat","format","kind","icon","style","marginRight","isSeekRowAvailable","columnName","map","column","name","tooltip","disabled","displayName"],"sources":["../src/GotoRow.tsx"],"sourcesContent":["import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsClose, vsArrowUp, vsArrowDown } from '@deephaven/icons';\nimport React, {\n type ChangeEvent,\n type KeyboardEvent,\n type ReactElement,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n Type as FilterType,\n type TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { Button, DateTimeInput, Select } from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport classNames from 'classnames';\nimport './GotoRow.scss';\nimport { nanoid } from 'nanoid';\nimport type IrisGridModel from './IrisGridModel';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport { type ColumnName } from './CommonTypes';\nimport { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\n\nconst DEFAULT_FORMAT_STRING = '###,##0';\n\ninterface GotoRowProps {\n gotoRow: string;\n gotoRowError: string;\n gotoValueError: string;\n onGotoRowSubmit: () => void;\n model: IrisGridModel;\n onGotoRowNumberChanged: (event: ChangeEvent<HTMLInputElement>) => void;\n onClose: () => void;\n isShown: boolean;\n onEntering: () => void;\n onEntered: () => void;\n onExiting: () => void;\n onExited: () => void;\n\n gotoValueSelectedColumnName: ColumnName;\n gotoValue: string;\n gotoValueFilter: FilterTypeValue;\n onGotoValueSelectedColumnNameChanged: (columnName: ColumnName) => void;\n onGotoValueSelectedFilterChanged: (filter: FilterTypeValue) => void;\n onGotoValueChanged: (input: string) => void;\n onGotoValueSubmit: (isBackward?: boolean) => void;\n}\n\nexport type GotoRowElement = { focus: () => void };\n\nconst GotoRow = forwardRef<GotoRowElement, GotoRowProps>(\n (\n {\n gotoRow,\n gotoRowError,\n gotoValueError,\n onGotoRowSubmit,\n isShown,\n onEntering,\n onEntered,\n onExiting,\n onExited,\n model,\n onGotoRowNumberChanged,\n onClose,\n gotoValueSelectedColumnName,\n gotoValue,\n gotoValueFilter,\n onGotoValueSelectedColumnNameChanged,\n onGotoValueSelectedFilterChanged,\n onGotoValueChanged,\n onGotoValueSubmit,\n }: GotoRowProps,\n ref\n ): ReactElement => {\n const gotoRowInputRef = useRef<HTMLInputElement>(null);\n const gotoValueInputRef = useRef<HTMLInputElement>(null);\n\n const [isGotoRowActive, setIsGotoRowActive] = useState(false);\n let columns: dh.Column[] = [];\n\n if (isIrisGridTableModelTemplate(model)) {\n ({ columns } = model.table);\n }\n\n const { dh, rowCount } = model;\n\n const gotoRowInputId = useMemo(() => `goto-row-input-${nanoid()}`, []);\n\n const handleGotoValueNumberKeyDown = (\n e: KeyboardEvent<HTMLInputElement>\n ): void => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit();\n } else if (\n (e.key === 'Backspace' || e.key === 'Delete') &&\n (gotoValue === `${Number.POSITIVE_INFINITY}` ||\n gotoValue === `${Number.NEGATIVE_INFINITY}`)\n ) {\n onGotoValueInputChanged('');\n }\n };\n\n const handleGotoValueKeySubmit = (\n e: KeyboardEvent<HTMLInputElement>\n ): void => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit(e.shiftKey);\n }\n };\n\n const index = model.getColumnIndexByName(gotoValueSelectedColumnName);\n\n const selectedColumn = columns[index ?? 0];\n\n const columnType = selectedColumn?.type;\n\n const normalizedType = TableUtils.getNormalizedType(columnType);\n const onGotoValueInputChanged = (value?: string): void => {\n onGotoValueChanged(value ?? '');\n };\n useImperativeHandle(ref, () => ({\n focus(): void {\n setIsGotoRowActive(true);\n gotoRowInputRef.current?.select();\n },\n }));\n const selectInput = (): void => {\n // when row changes without focus (i.e. via context menu), re-select input\n if (\n isGotoRowActive &&\n document.activeElement !== gotoRowInputRef.current\n ) {\n gotoRowInputRef.current?.select();\n } else if (\n !isGotoRowActive &&\n document.activeElement !== gotoValueInputRef.current\n ) {\n gotoValueInputRef.current?.select();\n }\n };\n useEffect(selectInput, [isGotoRowActive]);\n\n const renderValueInput = (): JSX.Element => {\n switch (normalizedType) {\n case TableUtils.dataType.DECIMAL:\n case TableUtils.dataType.INT:\n return (\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueNumberKeyDown}\n placeholder=\"value\"\n onChange={e => {\n const value = e.target.value.toLowerCase();\n // regex tests for\n if (/^-?[0-9]*\\.?[0-9]*$/.test(e.target.value)) {\n onGotoValueInputChanged(e.target.value);\n } else if (value === '-i' || value === '-infinity') {\n onGotoValueInputChanged(`${Number.NEGATIVE_INFINITY}`);\n } else if (value === 'i' || value === 'infinity') {\n onGotoValueInputChanged(`${Number.POSITIVE_INFINITY}`);\n }\n }}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n );\n case TableUtils.dataType.DATETIME:\n return (\n <div className=\"goto-value-date-time-input\">\n <DateTimeInput\n ref={gotoValueInputRef}\n className={classNames(\n 'form-control',\n 'goto-value-date-time-input',\n {\n 'is-invalid': gotoValueError !== '',\n }\n )}\n defaultValue={gotoValue}\n onChange={onGotoValueInputChanged}\n onSubmit={handleGotoValueKeySubmit}\n aria-label=\"Value Input\"\n />\n </div>\n );\n case TableUtils.dataType.STRING:\n return (\n <>\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n onGotoValueSelectedFilterChanged(\n eventTargetValue as FilterTypeValue\n );\n }}\n value={gotoValueFilter}\n aria-label=\"filter-type-select\"\n >\n <option\n key={FilterType.eqIgnoreCase}\n value={FilterType.eqIgnoreCase}\n >\n Equals (case-insensitive)\n </option>\n <option\n key={FilterType.containsIgnoreCase}\n value={FilterType.containsIgnoreCase}\n >\n Contains (case-insensitive)\n </option>\n <option key={FilterType.eq} value={FilterType.eq}>\n Equals\n </option>\n <option key={FilterType.contains} value={FilterType.contains}>\n Contains\n </option>\n </Select>\n </div>\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueKeySubmit}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n </>\n );\n case TableUtils.dataType.BOOLEAN:\n return (\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n onGotoValueInputChanged(eventTargetValue);\n }}\n value={gotoValue}\n aria-label=\"Value Input\"\n >\n <option aria-label=\"null value\" key=\"null\" value=\"\" />\n <option key=\"true\" value=\"true\">\n true\n </option>\n <option key=\"false\" value=\"false\">\n false\n </option>\n </Select>\n </div>\n );\n default:\n return (\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className=\"form-control\"\n onKeyDown={handleGotoValueKeySubmit}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n );\n }\n };\n return (\n <IrisGridBottomBar\n isShown={isShown}\n className={classNames('goto-row')}\n onEntering={onEntering}\n onEntered={() => {\n onEntered();\n selectInput();\n }}\n onExiting={onExiting}\n onExited={onExited}\n >\n <>\n <div className=\"goto-row-row\">\n <div\n className={classNames('goto-row-wrapper', {\n 'is-inactive': !isGotoRowActive,\n })}\n onClick={() => setIsGotoRowActive(true)}\n onFocus={() => setIsGotoRowActive(true)}\n role=\"group\"\n >\n <label className=\"goto-row-text\" htmlFor={gotoRowInputId}>\n Go to row\n </label>\n <div className=\"goto-row-input\">\n <input\n ref={gotoRowInputRef}\n data-testid=\"goto-row-input\"\n type=\"number\"\n onKeyDown={e => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoRowSubmit();\n }\n }}\n className={classNames('form-control', {\n 'is-invalid': gotoRowError !== '',\n })}\n placeholder=\"Row number\"\n onChange={event => {\n onGotoRowNumberChanged(event);\n }}\n value={gotoRow}\n id={gotoRowInputId}\n />\n </div>\n <div className=\"goto-row-text\">\n of{' '}\n {dh.i18n.NumberFormat.format(DEFAULT_FORMAT_STRING, rowCount)}\n </div>\n {gotoRowError && (\n <div className=\"text-danger\">{gotoRowError}</div>\n )}\n </div>\n <div className=\"goto-row-close\">\n <Button kind=\"ghost\" onClick={onClose}>\n <FontAwesomeIcon icon={vsClose} style={{ marginRight: '0' }} />\n </Button>\n </div>\n </div>\n {model.isSeekRowAvailable && (\n <div className=\"goto-row-row\">\n <div\n className={classNames('goto-row-wrapper', {\n 'is-inactive': isGotoRowActive,\n })}\n onClick={() => setIsGotoRowActive(false)}\n onFocus={() => setIsGotoRowActive(false)}\n role=\"group\"\n >\n <div className=\"goto-row-text\">Go to value</div>\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n const columnName = eventTargetValue;\n onGotoValueSelectedColumnNameChanged(columnName);\n }}\n value={gotoValueSelectedColumnName}\n aria-label=\"column-name-select\"\n id=\"column-name-select\"\n >\n {columns.map(column => (\n <option key={column.name} value={column.name}>\n {column.name}\n </option>\n ))}\n </Select>\n </div>\n\n {renderValueInput()}\n\n <div>\n <Button\n tooltip=\"Previous match\"\n icon={vsArrowUp}\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(true);\n }}\n />\n <Button\n tooltip=\"Next match\"\n icon={vsArrowDown}\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(false);\n }}\n />\n </div>\n {gotoValueError && (\n <div className=\"text-danger\">{gotoValueError}</div>\n )}\n </div>\n </div>\n )}\n </>\n </IrisGridBottomBar>\n );\n }\n);\nGotoRow.displayName = 'GotoRow';\n\nexport default GotoRow;\n"],"mappings":"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"}