@deephaven/iris-grid 0.67.1-beta.0 → 0.67.1-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.
Files changed (139) hide show
  1. package/dist/AdvancedFilterCreator.d.ts +6 -6
  2. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  3. package/dist/AdvancedFilterCreator.js.map +1 -1
  4. package/dist/AdvancedFilterCreatorFilterItem.d.ts +3 -3
  5. package/dist/AdvancedFilterCreatorFilterItem.d.ts.map +1 -1
  6. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValue.d.ts +6 -6
  8. package/dist/AdvancedFilterCreatorSelectValue.d.ts.map +1 -1
  9. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  10. package/dist/AdvancedFilterCreatorSelectValueList.d.ts +7 -7
  11. package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
  12. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  13. package/dist/ColumnHeaderGroup.d.ts +1 -1
  14. package/dist/ColumnHeaderGroup.d.ts.map +1 -1
  15. package/dist/ColumnHeaderGroup.js +1 -1
  16. package/dist/ColumnHeaderGroup.js.map +1 -1
  17. package/dist/ColumnStatistics.d.ts +3 -3
  18. package/dist/ColumnStatistics.d.ts.map +1 -1
  19. package/dist/ColumnStatistics.js.map +1 -1
  20. package/dist/CommonTypes.d.ts +5 -5
  21. package/dist/CommonTypes.d.ts.map +1 -1
  22. package/dist/CommonTypes.js.map +1 -1
  23. package/dist/CrossColumnSearch.d.ts +2 -2
  24. package/dist/CrossColumnSearch.d.ts.map +1 -1
  25. package/dist/CrossColumnSearch.js.map +1 -1
  26. package/dist/EmptyIrisGridModel.d.ts +19 -19
  27. package/dist/EmptyIrisGridModel.d.ts.map +1 -1
  28. package/dist/EmptyIrisGridModel.js.map +1 -1
  29. package/dist/GotoRow.js.map +1 -1
  30. package/dist/IrisGrid.d.ts +32 -32
  31. package/dist/IrisGrid.d.ts.map +1 -1
  32. package/dist/IrisGrid.js +4 -1
  33. package/dist/IrisGrid.js.map +1 -1
  34. package/dist/IrisGridCopyHandler.js.map +1 -1
  35. package/dist/IrisGridMetricCalculator.d.ts +4 -4
  36. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  37. package/dist/IrisGridMetricCalculator.js.map +1 -1
  38. package/dist/IrisGridModel.d.ts +20 -20
  39. package/dist/IrisGridModel.d.ts.map +1 -1
  40. package/dist/IrisGridModel.js.map +1 -1
  41. package/dist/IrisGridModelFactory.d.ts +2 -2
  42. package/dist/IrisGridModelFactory.d.ts.map +1 -1
  43. package/dist/IrisGridModelFactory.js.map +1 -1
  44. package/dist/IrisGridModelUpdater.d.ts +6 -6
  45. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  46. package/dist/IrisGridModelUpdater.js.map +1 -1
  47. package/dist/IrisGridPartitionSelector.d.ts +5 -5
  48. package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
  49. package/dist/IrisGridPartitionSelector.js.map +1 -1
  50. package/dist/IrisGridPartitionedTableModel.d.ts +8 -8
  51. package/dist/IrisGridPartitionedTableModel.d.ts.map +1 -1
  52. package/dist/IrisGridPartitionedTableModel.js.map +1 -1
  53. package/dist/IrisGridProxyModel.d.ts +26 -26
  54. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  55. package/dist/IrisGridProxyModel.js.map +1 -1
  56. package/dist/IrisGridRenderer.d.ts +2 -2
  57. package/dist/IrisGridRenderer.d.ts.map +1 -1
  58. package/dist/IrisGridRenderer.js.map +1 -1
  59. package/dist/IrisGridTableModel.d.ts +18 -18
  60. package/dist/IrisGridTableModel.d.ts.map +1 -1
  61. package/dist/IrisGridTableModel.js +8 -7
  62. package/dist/IrisGridTableModel.js.map +1 -1
  63. package/dist/IrisGridTableModelTemplate.d.ts +41 -41
  64. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  65. package/dist/IrisGridTableModelTemplate.js +10 -11
  66. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  67. package/dist/IrisGridTestUtils.d.ts +16 -16
  68. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  69. package/dist/IrisGridTestUtils.js +4 -2
  70. package/dist/IrisGridTestUtils.js.map +1 -1
  71. package/dist/IrisGridTreeTableModel.d.ts +13 -13
  72. package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
  73. package/dist/IrisGridTreeTableModel.js +16 -6
  74. package/dist/IrisGridTreeTableModel.js.map +1 -1
  75. package/dist/IrisGridUtils.d.ts +40 -40
  76. package/dist/IrisGridUtils.d.ts.map +1 -1
  77. package/dist/IrisGridUtils.js +17 -7
  78. package/dist/IrisGridUtils.js.map +1 -1
  79. package/dist/PartitionedGridModel.d.ts +5 -5
  80. package/dist/PartitionedGridModel.d.ts.map +1 -1
  81. package/dist/PartitionedGridModel.js.map +1 -1
  82. package/dist/TableViewportUpdater.d.ts +10 -10
  83. package/dist/TableViewportUpdater.d.ts.map +1 -1
  84. package/dist/TableViewportUpdater.js.map +1 -1
  85. package/dist/TreeTableViewportUpdater.d.ts +7 -7
  86. package/dist/TreeTableViewportUpdater.d.ts.map +1 -1
  87. package/dist/TreeTableViewportUpdater.js.map +1 -1
  88. package/dist/format-context-menus/DecimalFormatContextMenu.d.ts +1 -1
  89. package/dist/format-context-menus/DecimalFormatContextMenu.d.ts.map +1 -1
  90. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  91. package/dist/format-context-menus/FormatContextMenuUtils.js +2 -1
  92. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  93. package/dist/format-context-menus/IntegerFormatContextMenu.d.ts +1 -1
  94. package/dist/format-context-menus/IntegerFormatContextMenu.d.ts.map +1 -1
  95. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  96. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  97. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +17 -17
  98. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  99. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  100. package/dist/sidebar/ChartBuilder.d.ts +11 -11
  101. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  102. package/dist/sidebar/ChartBuilder.js.map +1 -1
  103. package/dist/sidebar/RollupRows.d.ts +8 -8
  104. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  105. package/dist/sidebar/RollupRows.js.map +1 -1
  106. package/dist/sidebar/SelectDistinctBuilder.d.ts +2 -2
  107. package/dist/sidebar/SelectDistinctBuilder.d.ts.map +1 -1
  108. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  109. package/dist/sidebar/TableCsvExporter.d.ts +3 -3
  110. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  111. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  112. package/dist/sidebar/TableSaver.d.ts +9 -9
  113. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  114. package/dist/sidebar/TableSaver.js.map +1 -1
  115. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +1 -1
  116. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
  117. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  118. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +1 -1
  119. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  120. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  121. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts +1 -1
  122. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
  123. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  124. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts +3 -3
  125. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts.map +1 -1
  126. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  127. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +3 -3
  128. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
  129. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  130. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +1 -1
  131. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
  132. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  133. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +5 -5
  134. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -1
  135. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  136. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +2 -2
  137. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -1
  138. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  139. package/package.json +16 -16
@@ -2,16 +2,16 @@ import React, { PureComponent } from 'react';
2
2
  import { OperatorValue as FilterOperatorValue, TypeValue as FilterTypeValue } from '@deephaven/filters';
3
3
  import { Formatter, TableUtils, SortDirection } from '@deephaven/jsapi-utils';
4
4
  import { CancelablePromise } from '@deephaven/utils';
5
- import type { Column, FilterCondition, Table } from '@deephaven/jsapi-types';
5
+ import type { dh } from '@deephaven/jsapi-types';
6
6
  import './AdvancedFilterCreator.scss';
7
7
  import IrisGridModel from './IrisGridModel';
8
8
  import { AdvancedFilterOptions } from './CommonTypes';
9
9
  type FilterChangeHandler = (selectedType: FilterTypeValue, value: string) => void;
10
10
  interface AdvancedFilterCreatorProps {
11
11
  model: IrisGridModel;
12
- column: Column;
13
- onFilterChange: (column: Column, filter: FilterCondition | null, options: AdvancedFilterOptions) => void;
14
- onSortChange: (column: Column, direction: SortDirection, addToExisting?: boolean) => void;
12
+ column: dh.Column;
13
+ onFilterChange: (column: dh.Column, filter: dh.FilterCondition | null, options: AdvancedFilterOptions) => void;
14
+ onSortChange: (column: dh.Column, direction: SortDirection, addToExisting?: boolean) => void;
15
15
  onDone: () => void;
16
16
  options: AdvancedFilterOptions;
17
17
  sortDirection: SortDirection;
@@ -29,7 +29,7 @@ interface AdvancedFilterCreatorState {
29
29
  invertSelection: boolean;
30
30
  selectedValues: unknown[];
31
31
  valuesTableError: null;
32
- valuesTable?: Table;
32
+ valuesTable?: dh.Table;
33
33
  isSortable: boolean;
34
34
  }
35
35
  declare class AdvancedFilterCreator extends PureComponent<AdvancedFilterCreatorProps, AdvancedFilterCreatorState> {
@@ -49,7 +49,7 @@ declare class AdvancedFilterCreator extends PureComponent<AdvancedFilterCreatorP
49
49
  componentWillUnmount(): void;
50
50
  focusTrapContainer: React.RefObject<HTMLFormElement>;
51
51
  debounceTimeout?: ReturnType<typeof setTimeout>;
52
- valuesTablePromise?: CancelablePromise<Table>;
52
+ valuesTablePromise?: CancelablePromise<dh.Table>;
53
53
  getFilterChangeHandler(index: number): FilterChangeHandler;
54
54
  getFilterDeleteHandler(index: number): () => void;
55
55
  getFilterTypes: (columnType: string) => FilterTypeValue[];
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreator.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreator.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AdvancedFilterCreator.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreator.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreator.js","names":["React","PureComponent","classNames","FontAwesomeIcon","memoize","Operator","FilterOperator","assertOperatorValue","assertFilterOperatorValue","dhSortAmountDown","dhNewCircleLargeFilled","TableUtils","Button","ContextActionUtils","Log","assertNotNull","PromiseUtils","shortid","AdvancedFilterCreatorFilterItem","AdvancedFilterCreatorSelectValue","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","AdvancedFilterCreator","makeFilterItem","key","constructor","props","_options$filterItems$","_options$filterItems","_defineProperty","columnType","getFilterTypes","handleAddAnd","bind","handleAddOr","handleChangeFilterOperator","handleDone","handleFilterChange","handleFilterDelete","handleSelectValueChange","handleReset","handleSortDown","handleSortUp","handleSubmit","handleFocusTrapStart","handleFocusTrapEnd","handleUpdateTimeout","focusTrapContainer","createRef","model","column","options","filterOperators","invertSelection","selectedValues","filterItems","map","_ref","selectedType","value","length","push","columnIndex","getColumnIndexByName","name","isSortable","isColumnSortable","state","valuesTableError","valuesTable","undefined","componentDidMount","initValuesTable","componentWillUnmount","debounceTimeout","clearTimeout","sendUpdate","valuesTablePromise","cancel","getFilterChangeHandler","index","getFilterDeleteHandler","isValuesTableAvailable","debug","makeCancelableTablePromise","then","_valuesTable$columns$","columns","sort","asc","applySort","setState","catch","error","isCanceled","_this$focusTrapContai","_this$focusTrapContai2","current","querySelector","focus","_this$focusTrapContai3","_this$focusTrapContai4","inputs","querySelectorAll","element","concat","and","or","operator","startUpdateTimer","filterIndex","splice","event","addToExisting","isModifierKeyDown","sortTable","sortDirection","descending","ascending","stopUpdateTimer","preventDefault","onDone","shouldShowAddFilter","filterItem","direction","arguments","onSortChange","setTimeout","debounceFilterUpdate","onFilterChange","tableUtils","formatter","items","filter","_ref2","operators","i","slice","makeAdvancedFilter","timeZone","render","_this","dh","isBoolean","isBooleanType","type","isDateType","filterTypes","substring","lastIndexOf","filterItemElements","_loop","onChange","onDelete","filterOperator","isAndFilter","operatorElement","className","children","kind","active","onClick","showAddFilterItem","addFilterItem","hidden","icon","disabled","tooltip","role","tabIndex","onFocus","onSubmit","ref","rotation","table","showSearch"],"sources":["../src/AdvancedFilterCreator.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n// disabled for tab-index on focus traps, which are intentionally non-interactive\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport memoize from 'memoize-one';\nimport {\n Operator as FilterOperator,\n OperatorValue as FilterOperatorValue,\n TypeValue as FilterTypeValue,\n assertOperatorValue as assertFilterOperatorValue,\n} from '@deephaven/filters';\nimport { dhSortAmountDown, dhNewCircleLargeFilled } from '@deephaven/icons';\nimport {\n Formatter,\n TableUtils,\n SortDirection,\n FilterItem,\n} from '@deephaven/jsapi-utils';\nimport { Button, ContextActionUtils } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport {\n assertNotNull,\n CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport type { Column, FilterCondition, Table } from '@deephaven/jsapi-types';\nimport shortid from 'shortid';\nimport AdvancedFilterCreatorFilterItem from './AdvancedFilterCreatorFilterItem';\nimport AdvancedFilterCreatorSelectValue from './AdvancedFilterCreatorSelectValue';\nimport './AdvancedFilterCreator.scss';\nimport IrisGridModel from './IrisGridModel';\nimport { AdvancedFilterOptions } from './CommonTypes';\n\nconst log = Log.module('AdvancedFilterCreator');\n\ntype FilterChangeHandler = (\n selectedType: FilterTypeValue,\n value: string\n) => void;\n\ninterface AdvancedFilterCreatorProps {\n model: IrisGridModel;\n column: Column;\n onFilterChange: (\n column: Column,\n filter: FilterCondition | null,\n options: AdvancedFilterOptions\n ) => void;\n onSortChange: (\n column: Column,\n direction: SortDirection,\n addToExisting?: boolean\n ) => void;\n onDone: () => void;\n options: AdvancedFilterOptions;\n sortDirection: SortDirection;\n formatter: Formatter;\n tableUtils: TableUtils;\n}\n\ninterface AdvancedFilterItem {\n selectedType?: FilterTypeValue;\n value?: string;\n key: string;\n}\n\ninterface AdvancedFilterCreatorState {\n // Filter items\n filterItems: AdvancedFilterItem[];\n\n // And/Or between the filter items\n filterOperators: FilterOperatorValue[];\n\n invertSelection: boolean;\n\n selectedValues: unknown[];\n\n valuesTableError: null;\n valuesTable?: Table;\n\n isSortable: boolean;\n}\n\nclass AdvancedFilterCreator extends PureComponent<\n AdvancedFilterCreatorProps,\n AdvancedFilterCreatorState\n> {\n static debounceFilterUpdate = 250;\n\n static defaultProps = {\n options: {\n filterItems: null,\n filterOperators: null,\n invertSelection: true,\n selectedValues: [],\n },\n sortDirection: null,\n };\n\n static makeFilterItem(): AdvancedFilterItem {\n return { key: shortid() };\n }\n\n constructor(props: AdvancedFilterCreatorProps) {\n super(props);\n\n this.handleAddAnd = this.handleAddAnd.bind(this);\n this.handleAddOr = this.handleAddOr.bind(this);\n this.handleChangeFilterOperator =\n this.handleChangeFilterOperator.bind(this);\n this.handleDone = this.handleDone.bind(this);\n this.handleFilterChange = this.handleFilterChange.bind(this);\n this.handleFilterDelete = this.handleFilterDelete.bind(this);\n this.handleSelectValueChange = this.handleSelectValueChange.bind(this);\n this.handleReset = this.handleReset.bind(this);\n this.handleSortDown = this.handleSortDown.bind(this);\n this.handleSortUp = this.handleSortUp.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleFocusTrapStart = this.handleFocusTrapStart.bind(this);\n this.handleFocusTrapEnd = this.handleFocusTrapEnd.bind(this);\n this.handleUpdateTimeout = this.handleUpdateTimeout.bind(this);\n\n this.focusTrapContainer = React.createRef();\n\n const { model, column, options } = props;\n let { filterOperators, invertSelection, selectedValues } = options;\n\n // can be null or an empty array\n const filterItems: AdvancedFilterItem[] =\n options.filterItems?.map(({ selectedType, value }) => ({\n selectedType,\n value,\n key: shortid(),\n })) ?? [];\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n if (filterOperators == null) {\n filterOperators = [];\n }\n if (invertSelection == null) {\n invertSelection = true;\n }\n if (selectedValues == null) {\n selectedValues = [];\n }\n\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n const isSortable = model.isColumnSortable(columnIndex);\n\n this.state = {\n // Filter items\n filterItems,\n\n // And/Or between the filter items\n filterOperators,\n\n invertSelection,\n\n selectedValues,\n\n valuesTableError: null,\n valuesTable: undefined,\n\n isSortable,\n };\n }\n\n componentDidMount(): void {\n this.initValuesTable();\n }\n\n componentWillUnmount(): void {\n if (this.debounceTimeout != null) {\n clearTimeout(this.debounceTimeout);\n this.sendUpdate();\n }\n if (this.valuesTablePromise != null) {\n this.valuesTablePromise.cancel();\n }\n }\n\n focusTrapContainer: React.RefObject<HTMLFormElement>;\n\n debounceTimeout?: ReturnType<typeof setTimeout>;\n\n valuesTablePromise?: CancelablePromise<Table>;\n\n getFilterChangeHandler(index: number): FilterChangeHandler {\n return this.handleFilterChange.bind(this, index);\n }\n\n getFilterDeleteHandler(index: number): () => void {\n return this.handleFilterDelete.bind(this, index);\n }\n\n getFilterTypes = memoize((columnType: string): FilterTypeValue[] =>\n TableUtils.getFilterTypes(columnType)\n );\n\n initValuesTable(): void {\n const { model, column } = this.props;\n if (!model.isValuesTableAvailable) {\n log.debug('No values table for this model, just ignore');\n return;\n }\n\n this.valuesTablePromise = TableUtils.makeCancelableTablePromise(\n model.valuesTable(column)\n );\n this.valuesTablePromise\n .then(valuesTable => {\n if (valuesTable.columns[0].isSortable ?? true) {\n const sort = valuesTable.columns[0].sort().asc();\n valuesTable.applySort([sort]);\n }\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n log.error('Unable to open values table', error);\n this.setState({ valuesTableError: error });\n });\n }\n\n handleFocusTrapEnd(): void {\n (\n this.focusTrapContainer?.current?.querySelector(\n 'button,select,input,textarea'\n ) as HTMLElement\n ).focus();\n }\n\n handleFocusTrapStart(): void {\n const inputs = this.focusTrapContainer?.current?.querySelectorAll(\n 'button,select,input,textarea'\n );\n if (inputs && inputs.length > 0) {\n const element = inputs[inputs.length - 1] as HTMLElement;\n element.focus();\n }\n }\n\n handleAddAnd(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.and);\n this.setState({ filterItems, filterOperators });\n }\n\n handleAddOr(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.or);\n this.setState({ filterItems, filterOperators });\n }\n\n handleChangeFilterOperator(index: number, operator: string): void {\n let { filterOperators } = this.state;\n filterOperators = [...filterOperators];\n\n assertFilterOperatorValue(operator);\n\n filterOperators[index] = operator;\n\n this.setState({ filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleFilterChange(\n filterIndex: number,\n selectedType: FilterTypeValue,\n value: string\n ): void {\n let { filterItems } = this.state;\n filterItems = [...filterItems];\n const { key } = filterItems[filterIndex];\n filterItems[filterIndex] = { key, selectedType, value };\n\n this.setState({ filterItems });\n\n this.startUpdateTimer();\n }\n\n handleFilterDelete(filterIndex: number): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = [...filterItems];\n filterOperators = [...filterOperators];\n if (filterIndex < filterItems.length) {\n filterItems.splice(filterIndex, 1);\n }\n\n if (filterIndex < filterOperators.length) {\n filterOperators.splice(filterIndex, 1);\n } else if (filterIndex === filterOperators.length) {\n // When deleting the last filter item, we also need to remove the last filter operator\n filterOperators.splice(filterOperators.length - 1, 1);\n }\n\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n\n this.setState({ filterItems, filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleSelectValueChange(\n selectedValues: unknown[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n this.startUpdateTimer();\n }\n\n handleReset(): void {\n log.debug('Resetting Advanced Filter');\n\n this.setState({\n filterItems: [AdvancedFilterCreator.makeFilterItem()],\n filterOperators: [],\n selectedValues: [],\n invertSelection: true,\n });\n\n this.startUpdateTimer();\n }\n\n handleSortDown(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.descending, addToExisting);\n }\n\n handleSortUp(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.ascending, addToExisting);\n }\n\n handleSubmit(event: React.FormEvent<HTMLFormElement>): void {\n log.debug('Submitting Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n event.preventDefault();\n }\n\n handleDone(event: React.MouseEvent<HTMLButtonElement>): void {\n log.debug('Submitting and Closing Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n const { onDone } = this.props;\n onDone();\n\n event.preventDefault();\n }\n\n handleUpdateTimeout(): void {\n this.debounceTimeout = undefined;\n this.sendUpdate();\n }\n\n /**\n * Convenience function to check if the previous filter has been inputted, and\n * we should show the add filter buttons (+ AND OR)\n * @returns true If the add filter buttons should be shown, false otherwise\n */\n shouldShowAddFilter(): boolean {\n const { filterItems } = this.state;\n if (filterItems.length === 0) {\n return false;\n }\n\n const filterItem = filterItems[filterItems.length - 1];\n const { selectedType, value } = filterItem;\n\n return (\n selectedType != null &&\n selectedType.length > 0 &&\n value != null &&\n value.length > 0\n );\n }\n\n /**\n * Sorts the table in the specified direction. If already sorted in that direction, remove it.\n * @param direction The sort direction, ASC or DESC\n * @param addToExisting Add to the existing sort, or replace the existing table sort\n */\n sortTable(direction: SortDirection, addToExisting = false): void {\n const { column, onSortChange } = this.props;\n const { isSortable } = this.state;\n if (isSortable) {\n onSortChange(column, direction, addToExisting);\n }\n }\n\n startUpdateTimer(): void {\n this.stopUpdateTimer();\n\n this.debounceTimeout = setTimeout(\n this.handleUpdateTimeout,\n AdvancedFilterCreator.debounceFilterUpdate\n );\n }\n\n stopUpdateTimer(): void {\n if (this.debounceTimeout !== undefined) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = undefined;\n }\n }\n\n sendUpdate(): void {\n const { filterItems, filterOperators, invertSelection, selectedValues } =\n this.state;\n const { column, onFilterChange, model, tableUtils } = this.props;\n const { formatter } = model;\n\n const items = filterItems.filter(\n ({ selectedType, value }) =>\n selectedType != null && value != null && value !== ''\n ) as FilterItem[];\n\n const operators = filterOperators\n .filter(\n (operator, i) =>\n operator != null &&\n filterItems[i].selectedType != null &&\n filterItems[i].value != null &&\n filterItems[i].value !== ''\n )\n .slice(0, items.length - 1);\n // slice last operator, user may have set an operator but not a value\n\n const options = {\n filterItems: items,\n filterOperators: operators,\n invertSelection,\n selectedValues,\n };\n\n const filter = tableUtils.makeAdvancedFilter(\n column,\n options,\n formatter.timeZone\n );\n\n onFilterChange(column, filter, options);\n }\n\n render(): JSX.Element {\n const { column, model, sortDirection, formatter, tableUtils } = this.props;\n const {\n filterItems,\n filterOperators,\n invertSelection,\n selectedValues,\n valuesTable,\n valuesTableError,\n isSortable,\n } = this.state;\n const { dh, isValuesTableAvailable } = model;\n const isBoolean = TableUtils.isBooleanType(column.type);\n const isDateType = TableUtils.isDateType(column.type);\n const filterTypes = this.getFilterTypes(column.type);\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const filterItemElements = [];\n if (!isBoolean && filterTypes.length) {\n for (let i = 0; i < filterItems.length; i += 1) {\n const filterItem = filterItems[i];\n const { key, selectedType, value } = filterItem;\n\n const element = (\n <AdvancedFilterCreatorFilterItem\n key={key}\n column={column}\n filterTypes={filterTypes}\n onChange={this.getFilterChangeHandler(i)}\n onDelete={this.getFilterDeleteHandler(i)}\n selectedType={selectedType}\n value={value}\n formatter={formatter}\n tableUtils={tableUtils}\n />\n );\n filterItemElements.push(element);\n\n if (i < filterOperators.length) {\n const filterOperator = filterOperators[i];\n const isAndFilter = filterOperator === FilterOperator.and;\n const operatorElement = (\n <div\n key={`filterOperator${key}`}\n className=\"form-row justify-content-end advanced-filter-creator-filter-operator\"\n >\n <Button\n kind=\"ghost\"\n className={classNames('filter-operator', {\n active: isAndFilter,\n })}\n onClick={() =>\n this.handleChangeFilterOperator(i, FilterOperator.and)\n }\n >\n AND\n </Button>\n <Button\n kind=\"ghost\"\n className={classNames('filter-operator', {\n active: !isAndFilter,\n })}\n onClick={() =>\n this.handleChangeFilterOperator(i, FilterOperator.or)\n }\n >\n OR\n </Button>\n </div>\n );\n filterItemElements.push(operatorElement);\n }\n }\n }\n const showAddFilterItem = this.shouldShowAddFilter();\n const addFilterItem = (\n <div\n key=\"addFilterItem\"\n className={classNames('form-row justify-content-end add-filter-item', {\n hidden: !showAddFilterItem,\n })}\n >\n <span className=\"text-muted\">\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n </span>\n <Button\n kind=\"ghost\"\n className=\"btn-filter-item\"\n onClick={this.handleAddAnd}\n disabled={!showAddFilterItem}\n tooltip=\"Add filter with AND\"\n >\n AND\n </Button>\n <Button\n kind=\"ghost\"\n className=\"btn-filter-item\"\n onClick={this.handleAddOr}\n disabled={!showAddFilterItem}\n tooltip=\"Add filter with OR\"\n >\n OR\n </Button>\n </div>\n );\n filterItemElements.push(addFilterItem);\n\n return (\n <div className=\"advanced-filter-creator\" role=\"presentation\">\n <div tabIndex={0} onFocus={this.handleFocusTrapStart} />\n <form onSubmit={this.handleSubmit} ref={this.focusTrapContainer}>\n <div className=\"title-bar\">\n <h6 className=\"advanced-filter-title\">Advanced Filters</h6>\n <div className=\"advanced-filter-menu-buttons\">\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: sortDirection === TableUtils.sortDirection.descending,\n })}\n onClick={this.handleSortDown}\n icon={dhSortAmountDown}\n tooltip={\n isSortable ? `Sort ${column.name} Descending` : 'Not sortable'\n }\n disabled={!isSortable}\n />\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: sortDirection === TableUtils.sortDirection.ascending,\n })}\n onClick={this.handleSortUp}\n icon={\n <FontAwesomeIcon icon={dhSortAmountDown} rotation={180} />\n }\n tooltip={\n isSortable ? `Sort ${column.name} Ascending` : 'Not sortable'\n }\n disabled={!isSortable}\n />\n </div>\n </div>\n <hr />\n <div className=\"advanced-filter-column-name\">\n {column.name}&nbsp;\n <span className=\"column-type\">({columnType})</span>\n </div>\n {filterItemElements}\n {isValuesTableAvailable && valuesTableError == null && (\n <>\n {!isBoolean && <hr />}\n <div className=\"form-group\">\n <AdvancedFilterCreatorSelectValue\n dh={dh}\n table={valuesTable}\n onChange={this.handleSelectValueChange}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n showSearch={!isDateType}\n timeZone={formatter.timeZone}\n />\n </div>\n </>\n )}\n <div className=\"form-row justify-content-end\">\n <Button\n kind=\"secondary\"\n className=\"mr-2\"\n onClick={this.handleReset}\n >\n Reset\n </Button>\n <Button kind=\"primary\" onClick={this.handleDone}>\n Done\n </Button>\n </div>\n </form>\n <div tabIndex={0} onFocus={this.handleFocusTrapEnd} />\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreator;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AdvancedFilterCreator.js","names":["React","PureComponent","classNames","FontAwesomeIcon","memoize","Operator","FilterOperator","assertOperatorValue","assertFilterOperatorValue","dhSortAmountDown","dhNewCircleLargeFilled","TableUtils","Button","ContextActionUtils","Log","assertNotNull","PromiseUtils","shortid","AdvancedFilterCreatorFilterItem","AdvancedFilterCreatorSelectValue","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","AdvancedFilterCreator","makeFilterItem","key","constructor","props","_options$filterItems$","_options$filterItems","_defineProperty","columnType","getFilterTypes","handleAddAnd","bind","handleAddOr","handleChangeFilterOperator","handleDone","handleFilterChange","handleFilterDelete","handleSelectValueChange","handleReset","handleSortDown","handleSortUp","handleSubmit","handleFocusTrapStart","handleFocusTrapEnd","handleUpdateTimeout","focusTrapContainer","createRef","model","column","options","filterOperators","invertSelection","selectedValues","filterItems","map","_ref","selectedType","value","length","push","columnIndex","getColumnIndexByName","name","isSortable","isColumnSortable","state","valuesTableError","valuesTable","undefined","componentDidMount","initValuesTable","componentWillUnmount","debounceTimeout","clearTimeout","sendUpdate","valuesTablePromise","cancel","getFilterChangeHandler","index","getFilterDeleteHandler","isValuesTableAvailable","debug","makeCancelableTablePromise","then","_valuesTable$columns$","columns","sort","asc","applySort","setState","catch","error","isCanceled","_this$focusTrapContai","_this$focusTrapContai2","current","querySelector","focus","_this$focusTrapContai3","_this$focusTrapContai4","inputs","querySelectorAll","element","concat","and","or","operator","startUpdateTimer","filterIndex","splice","event","addToExisting","isModifierKeyDown","sortTable","sortDirection","descending","ascending","stopUpdateTimer","preventDefault","onDone","shouldShowAddFilter","filterItem","direction","arguments","onSortChange","setTimeout","debounceFilterUpdate","onFilterChange","tableUtils","formatter","items","filter","_ref2","operators","i","slice","makeAdvancedFilter","timeZone","render","_this","dh","isBoolean","isBooleanType","type","isDateType","filterTypes","substring","lastIndexOf","filterItemElements","_loop","onChange","onDelete","filterOperator","isAndFilter","operatorElement","className","children","kind","active","onClick","showAddFilterItem","addFilterItem","hidden","icon","disabled","tooltip","role","tabIndex","onFocus","onSubmit","ref","rotation","table","showSearch"],"sources":["../src/AdvancedFilterCreator.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n// disabled for tab-index on focus traps, which are intentionally non-interactive\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport memoize from 'memoize-one';\nimport {\n Operator as FilterOperator,\n OperatorValue as FilterOperatorValue,\n TypeValue as FilterTypeValue,\n assertOperatorValue as assertFilterOperatorValue,\n} from '@deephaven/filters';\nimport { dhSortAmountDown, dhNewCircleLargeFilled } from '@deephaven/icons';\nimport {\n Formatter,\n TableUtils,\n SortDirection,\n FilterItem,\n} from '@deephaven/jsapi-utils';\nimport { Button, ContextActionUtils } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport {\n assertNotNull,\n CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport type { dh } from '@deephaven/jsapi-types';\nimport shortid from 'shortid';\nimport AdvancedFilterCreatorFilterItem from './AdvancedFilterCreatorFilterItem';\nimport AdvancedFilterCreatorSelectValue from './AdvancedFilterCreatorSelectValue';\nimport './AdvancedFilterCreator.scss';\nimport IrisGridModel from './IrisGridModel';\nimport { AdvancedFilterOptions } from './CommonTypes';\n\nconst log = Log.module('AdvancedFilterCreator');\n\ntype FilterChangeHandler = (\n selectedType: FilterTypeValue,\n value: string\n) => void;\n\ninterface AdvancedFilterCreatorProps {\n model: IrisGridModel;\n column: dh.Column;\n onFilterChange: (\n column: dh.Column,\n filter: dh.FilterCondition | null,\n options: AdvancedFilterOptions\n ) => void;\n onSortChange: (\n column: dh.Column,\n direction: SortDirection,\n addToExisting?: boolean\n ) => void;\n onDone: () => void;\n options: AdvancedFilterOptions;\n sortDirection: SortDirection;\n formatter: Formatter;\n tableUtils: TableUtils;\n}\n\ninterface AdvancedFilterItem {\n selectedType?: FilterTypeValue;\n value?: string;\n key: string;\n}\n\ninterface AdvancedFilterCreatorState {\n // Filter items\n filterItems: AdvancedFilterItem[];\n\n // And/Or between the filter items\n filterOperators: FilterOperatorValue[];\n\n invertSelection: boolean;\n\n selectedValues: unknown[];\n\n valuesTableError: null;\n valuesTable?: dh.Table;\n\n isSortable: boolean;\n}\n\nclass AdvancedFilterCreator extends PureComponent<\n AdvancedFilterCreatorProps,\n AdvancedFilterCreatorState\n> {\n static debounceFilterUpdate = 250;\n\n static defaultProps = {\n options: {\n filterItems: null,\n filterOperators: null,\n invertSelection: true,\n selectedValues: [],\n },\n sortDirection: null,\n };\n\n static makeFilterItem(): AdvancedFilterItem {\n return { key: shortid() };\n }\n\n constructor(props: AdvancedFilterCreatorProps) {\n super(props);\n\n this.handleAddAnd = this.handleAddAnd.bind(this);\n this.handleAddOr = this.handleAddOr.bind(this);\n this.handleChangeFilterOperator =\n this.handleChangeFilterOperator.bind(this);\n this.handleDone = this.handleDone.bind(this);\n this.handleFilterChange = this.handleFilterChange.bind(this);\n this.handleFilterDelete = this.handleFilterDelete.bind(this);\n this.handleSelectValueChange = this.handleSelectValueChange.bind(this);\n this.handleReset = this.handleReset.bind(this);\n this.handleSortDown = this.handleSortDown.bind(this);\n this.handleSortUp = this.handleSortUp.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleFocusTrapStart = this.handleFocusTrapStart.bind(this);\n this.handleFocusTrapEnd = this.handleFocusTrapEnd.bind(this);\n this.handleUpdateTimeout = this.handleUpdateTimeout.bind(this);\n\n this.focusTrapContainer = React.createRef();\n\n const { model, column, options } = props;\n let { filterOperators, invertSelection, selectedValues } = options;\n\n // can be null or an empty array\n const filterItems: AdvancedFilterItem[] =\n options.filterItems?.map(({ selectedType, value }) => ({\n selectedType,\n value,\n key: shortid(),\n })) ?? [];\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n if (filterOperators == null) {\n filterOperators = [];\n }\n if (invertSelection == null) {\n invertSelection = true;\n }\n if (selectedValues == null) {\n selectedValues = [];\n }\n\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n const isSortable = model.isColumnSortable(columnIndex);\n\n this.state = {\n // Filter items\n filterItems,\n\n // And/Or between the filter items\n filterOperators,\n\n invertSelection,\n\n selectedValues,\n\n valuesTableError: null,\n valuesTable: undefined,\n\n isSortable,\n };\n }\n\n componentDidMount(): void {\n this.initValuesTable();\n }\n\n componentWillUnmount(): void {\n if (this.debounceTimeout != null) {\n clearTimeout(this.debounceTimeout);\n this.sendUpdate();\n }\n if (this.valuesTablePromise != null) {\n this.valuesTablePromise.cancel();\n }\n }\n\n focusTrapContainer: React.RefObject<HTMLFormElement>;\n\n debounceTimeout?: ReturnType<typeof setTimeout>;\n\n valuesTablePromise?: CancelablePromise<dh.Table>;\n\n getFilterChangeHandler(index: number): FilterChangeHandler {\n return this.handleFilterChange.bind(this, index);\n }\n\n getFilterDeleteHandler(index: number): () => void {\n return this.handleFilterDelete.bind(this, index);\n }\n\n getFilterTypes = memoize((columnType: string): FilterTypeValue[] =>\n TableUtils.getFilterTypes(columnType)\n );\n\n initValuesTable(): void {\n const { model, column } = this.props;\n if (!model.isValuesTableAvailable) {\n log.debug('No values table for this model, just ignore');\n return;\n }\n\n this.valuesTablePromise = TableUtils.makeCancelableTablePromise(\n model.valuesTable(column)\n );\n this.valuesTablePromise\n .then(valuesTable => {\n if (valuesTable.columns[0].isSortable ?? true) {\n const sort = valuesTable.columns[0].sort().asc();\n valuesTable.applySort([sort]);\n }\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n log.error('Unable to open values table', error);\n this.setState({ valuesTableError: error });\n });\n }\n\n handleFocusTrapEnd(): void {\n (\n this.focusTrapContainer?.current?.querySelector(\n 'button,select,input,textarea'\n ) as HTMLElement\n ).focus();\n }\n\n handleFocusTrapStart(): void {\n const inputs = this.focusTrapContainer?.current?.querySelectorAll(\n 'button,select,input,textarea'\n );\n if (inputs && inputs.length > 0) {\n const element = inputs[inputs.length - 1] as HTMLElement;\n element.focus();\n }\n }\n\n handleAddAnd(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.and);\n this.setState({ filterItems, filterOperators });\n }\n\n handleAddOr(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.or);\n this.setState({ filterItems, filterOperators });\n }\n\n handleChangeFilterOperator(index: number, operator: string): void {\n let { filterOperators } = this.state;\n filterOperators = [...filterOperators];\n\n assertFilterOperatorValue(operator);\n\n filterOperators[index] = operator;\n\n this.setState({ filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleFilterChange(\n filterIndex: number,\n selectedType: FilterTypeValue,\n value: string\n ): void {\n let { filterItems } = this.state;\n filterItems = [...filterItems];\n const { key } = filterItems[filterIndex];\n filterItems[filterIndex] = { key, selectedType, value };\n\n this.setState({ filterItems });\n\n this.startUpdateTimer();\n }\n\n handleFilterDelete(filterIndex: number): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = [...filterItems];\n filterOperators = [...filterOperators];\n if (filterIndex < filterItems.length) {\n filterItems.splice(filterIndex, 1);\n }\n\n if (filterIndex < filterOperators.length) {\n filterOperators.splice(filterIndex, 1);\n } else if (filterIndex === filterOperators.length) {\n // When deleting the last filter item, we also need to remove the last filter operator\n filterOperators.splice(filterOperators.length - 1, 1);\n }\n\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n\n this.setState({ filterItems, filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleSelectValueChange(\n selectedValues: unknown[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n this.startUpdateTimer();\n }\n\n handleReset(): void {\n log.debug('Resetting Advanced Filter');\n\n this.setState({\n filterItems: [AdvancedFilterCreator.makeFilterItem()],\n filterOperators: [],\n selectedValues: [],\n invertSelection: true,\n });\n\n this.startUpdateTimer();\n }\n\n handleSortDown(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.descending, addToExisting);\n }\n\n handleSortUp(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.ascending, addToExisting);\n }\n\n handleSubmit(event: React.FormEvent<HTMLFormElement>): void {\n log.debug('Submitting Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n event.preventDefault();\n }\n\n handleDone(event: React.MouseEvent<HTMLButtonElement>): void {\n log.debug('Submitting and Closing Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n const { onDone } = this.props;\n onDone();\n\n event.preventDefault();\n }\n\n handleUpdateTimeout(): void {\n this.debounceTimeout = undefined;\n this.sendUpdate();\n }\n\n /**\n * Convenience function to check if the previous filter has been inputted, and\n * we should show the add filter buttons (+ AND OR)\n * @returns true If the add filter buttons should be shown, false otherwise\n */\n shouldShowAddFilter(): boolean {\n const { filterItems } = this.state;\n if (filterItems.length === 0) {\n return false;\n }\n\n const filterItem = filterItems[filterItems.length - 1];\n const { selectedType, value } = filterItem;\n\n return (\n selectedType != null &&\n selectedType.length > 0 &&\n value != null &&\n value.length > 0\n );\n }\n\n /**\n * Sorts the table in the specified direction. If already sorted in that direction, remove it.\n * @param direction The sort direction, ASC or DESC\n * @param addToExisting Add to the existing sort, or replace the existing table sort\n */\n sortTable(direction: SortDirection, addToExisting = false): void {\n const { column, onSortChange } = this.props;\n const { isSortable } = this.state;\n if (isSortable) {\n onSortChange(column, direction, addToExisting);\n }\n }\n\n startUpdateTimer(): void {\n this.stopUpdateTimer();\n\n this.debounceTimeout = setTimeout(\n this.handleUpdateTimeout,\n AdvancedFilterCreator.debounceFilterUpdate\n );\n }\n\n stopUpdateTimer(): void {\n if (this.debounceTimeout !== undefined) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = undefined;\n }\n }\n\n sendUpdate(): void {\n const { filterItems, filterOperators, invertSelection, selectedValues } =\n this.state;\n const { column, onFilterChange, model, tableUtils } = this.props;\n const { formatter } = model;\n\n const items = filterItems.filter(\n ({ selectedType, value }) =>\n selectedType != null && value != null && value !== ''\n ) as FilterItem[];\n\n const operators = filterOperators\n .filter(\n (operator, i) =>\n operator != null &&\n filterItems[i].selectedType != null &&\n filterItems[i].value != null &&\n filterItems[i].value !== ''\n )\n .slice(0, items.length - 1);\n // slice last operator, user may have set an operator but not a value\n\n const options = {\n filterItems: items,\n filterOperators: operators,\n invertSelection,\n selectedValues,\n };\n\n const filter = tableUtils.makeAdvancedFilter(\n column,\n options,\n formatter.timeZone\n );\n\n onFilterChange(column, filter, options);\n }\n\n render(): JSX.Element {\n const { column, model, sortDirection, formatter, tableUtils } = this.props;\n const {\n filterItems,\n filterOperators,\n invertSelection,\n selectedValues,\n valuesTable,\n valuesTableError,\n isSortable,\n } = this.state;\n const { dh, isValuesTableAvailable } = model;\n const isBoolean = TableUtils.isBooleanType(column.type);\n const isDateType = TableUtils.isDateType(column.type);\n const filterTypes = this.getFilterTypes(column.type);\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const filterItemElements = [];\n if (!isBoolean && filterTypes.length) {\n for (let i = 0; i < filterItems.length; i += 1) {\n const filterItem = filterItems[i];\n const { key, selectedType, value } = filterItem;\n\n const element = (\n <AdvancedFilterCreatorFilterItem\n key={key}\n column={column}\n filterTypes={filterTypes}\n onChange={this.getFilterChangeHandler(i)}\n onDelete={this.getFilterDeleteHandler(i)}\n selectedType={selectedType}\n value={value}\n formatter={formatter}\n tableUtils={tableUtils}\n />\n );\n filterItemElements.push(element);\n\n if (i < filterOperators.length) {\n const filterOperator = filterOperators[i];\n const isAndFilter = filterOperator === FilterOperator.and;\n const operatorElement = (\n <div\n key={`filterOperator${key}`}\n className=\"form-row justify-content-end advanced-filter-creator-filter-operator\"\n >\n <Button\n kind=\"ghost\"\n className={classNames('filter-operator', {\n active: isAndFilter,\n })}\n onClick={() =>\n this.handleChangeFilterOperator(i, FilterOperator.and)\n }\n >\n AND\n </Button>\n <Button\n kind=\"ghost\"\n className={classNames('filter-operator', {\n active: !isAndFilter,\n })}\n onClick={() =>\n this.handleChangeFilterOperator(i, FilterOperator.or)\n }\n >\n OR\n </Button>\n </div>\n );\n filterItemElements.push(operatorElement);\n }\n }\n }\n const showAddFilterItem = this.shouldShowAddFilter();\n const addFilterItem = (\n <div\n key=\"addFilterItem\"\n className={classNames('form-row justify-content-end add-filter-item', {\n hidden: !showAddFilterItem,\n })}\n >\n <span className=\"text-muted\">\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n </span>\n <Button\n kind=\"ghost\"\n className=\"btn-filter-item\"\n onClick={this.handleAddAnd}\n disabled={!showAddFilterItem}\n tooltip=\"Add filter with AND\"\n >\n AND\n </Button>\n <Button\n kind=\"ghost\"\n className=\"btn-filter-item\"\n onClick={this.handleAddOr}\n disabled={!showAddFilterItem}\n tooltip=\"Add filter with OR\"\n >\n OR\n </Button>\n </div>\n );\n filterItemElements.push(addFilterItem);\n\n return (\n <div className=\"advanced-filter-creator\" role=\"presentation\">\n <div tabIndex={0} onFocus={this.handleFocusTrapStart} />\n <form onSubmit={this.handleSubmit} ref={this.focusTrapContainer}>\n <div className=\"title-bar\">\n <h6 className=\"advanced-filter-title\">Advanced Filters</h6>\n <div className=\"advanced-filter-menu-buttons\">\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: sortDirection === TableUtils.sortDirection.descending,\n })}\n onClick={this.handleSortDown}\n icon={dhSortAmountDown}\n tooltip={\n isSortable ? `Sort ${column.name} Descending` : 'Not sortable'\n }\n disabled={!isSortable}\n />\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: sortDirection === TableUtils.sortDirection.ascending,\n })}\n onClick={this.handleSortUp}\n icon={\n <FontAwesomeIcon icon={dhSortAmountDown} rotation={180} />\n }\n tooltip={\n isSortable ? `Sort ${column.name} Ascending` : 'Not sortable'\n }\n disabled={!isSortable}\n />\n </div>\n </div>\n <hr />\n <div className=\"advanced-filter-column-name\">\n {column.name}&nbsp;\n <span className=\"column-type\">({columnType})</span>\n </div>\n {filterItemElements}\n {isValuesTableAvailable && valuesTableError == null && (\n <>\n {!isBoolean && <hr />}\n <div className=\"form-group\">\n <AdvancedFilterCreatorSelectValue\n dh={dh}\n table={valuesTable}\n onChange={this.handleSelectValueChange}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n showSearch={!isDateType}\n timeZone={formatter.timeZone}\n />\n </div>\n </>\n )}\n <div className=\"form-row justify-content-end\">\n <Button\n kind=\"secondary\"\n className=\"mr-2\"\n onClick={this.handleReset}\n >\n Reset\n </Button>\n <Button kind=\"primary\" onClick={this.handleDone}>\n Done\n </Button>\n </div>\n </form>\n <div tabIndex={0} onFocus={this.handleFocusTrapEnd} />\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreator;\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import { TypeValue as FilterTypeValue } from '@deephaven/filters';
3
- import type { Column } from '@deephaven/jsapi-types';
3
+ import type { dh } from '@deephaven/jsapi-types';
4
4
  import { AdvancedFilterItemType, Formatter, TableUtils } from '@deephaven/jsapi-utils';
5
5
  import './AdvancedFilterCreatorFilterItem.scss';
6
6
  export interface AdvancedFilterCreatorFilterItemProps {
7
- column: Column;
7
+ column: dh.Column;
8
8
  filterTypes: FilterTypeValue[];
9
9
  onChange: (type: FilterTypeValue, value: string) => void;
10
10
  onDelete: () => void;
@@ -23,7 +23,7 @@ export declare class AdvancedFilterCreatorFilterItem extends PureComponent<Advan
23
23
  handleTypeChange(eventTargetValue: string): void;
24
24
  handleValueChange(event: React.ChangeEvent<HTMLInputElement>): void;
25
25
  handleDelete(): void;
26
- getCachedIsValid: (column: Column, operation: FilterTypeValue, value: string, timeZone: string, tableUtils: TableUtils) => boolean;
26
+ getCachedIsValid: (column: dh.Column, operation: FilterTypeValue, value: string, timeZone: string, tableUtils: TableUtils) => boolean;
27
27
  render(): JSX.Element;
28
28
  }
29
29
  export default AdvancedFilterCreatorFilterItem;
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreatorFilterItem.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreatorFilterItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAKL,SAAS,IAAI,eAAe,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,sBAAsB,EACtB,SAAS,EACT,UAAU,EACX,MAAM,wBAAwB,CAAC;AAIhC,OAAO,wCAAwC,CAAC;AAIhD,MAAM,WAAW,oCAAoC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,MAAM,oCAAoC,GAAG,sBAAsB,CAAC;AAE1E,qBAAa,+BAAgC,SAAQ,aAAa,CAChE,oCAAoC,EACpC,oCAAoC,CACrC;IACC,MAAM,CAAC,iBAAiB,CACtB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,eAAe,GAC1B,MAAM;gBAwBG,KAAK,EAAE,oCAAoC;IAgBvD,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,oCAAoC,GAAG,IAAI;IAUzE,YAAY,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEvC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAahD,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAanE,YAAY,IAAI,IAAI;IAOpB,gBAAgB,WAEJ,MAAM,aACH,eAAe,SACnB,MAAM,YACH,MAAM,cACJ,UAAU,KACrB,OAAO,CAgBV;IAEF,MAAM,IAAI,GAAG,CAAC,OAAO;CAmEtB;AAED,eAAe,+BAA+B,CAAC"}
1
+ {"version":3,"file":"AdvancedFilterCreatorFilterItem.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreatorFilterItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAKL,SAAS,IAAI,eAAe,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,sBAAsB,EACtB,SAAS,EACT,UAAU,EACX,MAAM,wBAAwB,CAAC;AAIhC,OAAO,wCAAwC,CAAC;AAIhD,MAAM,WAAW,oCAAoC;IACnD,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC;IAClB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,MAAM,oCAAoC,GAAG,sBAAsB,CAAC;AAE1E,qBAAa,+BAAgC,SAAQ,aAAa,CAChE,oCAAoC,EACpC,oCAAoC,CACrC;IACC,MAAM,CAAC,iBAAiB,CACtB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,eAAe,GAC1B,MAAM;gBAwBG,KAAK,EAAE,oCAAoC;IAgBvD,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,oCAAoC,GAAG,IAAI;IAUzE,YAAY,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEvC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IAahD,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAanE,YAAY,IAAI,IAAI;IAOpB,gBAAgB,WAEJ,GAAG,MAAM,aACN,eAAe,SACnB,MAAM,YACH,MAAM,cACJ,UAAU,KACrB,OAAO,CAgBV;IAEF,MAAM,IAAI,GAAG,CAAC,OAAO;CAmEtB;AAED,eAAe,+BAA+B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreatorFilterItem.js","names":["React","PureComponent","Button","Select","getLabelForBooleanFilter","getLabelForDateFilter","getLabelForNumberFilter","getLabelForTextFilter","vsTrash","TableUtils","Log","classNames","memoizeOne","jsx","_jsx","jsxs","_jsxs","log","module","AdvancedFilterCreatorFilterItem","getLabelForFilter","columnType","filterType","isNumberType","isCharType","isTextType","isDateType","isBooleanType","Error","concat","e","warn","constructor","props","_defineProperty","column","operation","value","timeZone","tableUtils","makeAdvancedValueFilter","handleDelete","bind","handleTypeChange","handleValueChange","typeDropdown","filterTypes","selectedType","state","componentDidMount","_this$typeDropdown","focus","componentDidUpdate","prevProps","undefined","setState","eventTargetValue","debug2","onChange","length","event","target","debug","onDelete","render","formatter","showValueInput","type","typeOptionElements","isValid","getCachedIsValid","i","label","element","children","push","className","ref","error","placeholder","kind","onClick","icon","tooltip"],"sources":["../src/AdvancedFilterCreatorFilterItem.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport { Button, Select } from '@deephaven/components';\nimport {\n getLabelForBooleanFilter,\n getLabelForDateFilter,\n getLabelForNumberFilter,\n getLabelForTextFilter,\n TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { vsTrash } from '@deephaven/icons';\nimport type { Column } from '@deephaven/jsapi-types';\nimport {\n AdvancedFilterItemType,\n Formatter,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport classNames from 'classnames';\nimport memoizeOne from 'memoize-one';\nimport './AdvancedFilterCreatorFilterItem.scss';\n\nconst log = Log.module('AdvancedFilterCreatorFilterItem');\n\nexport interface AdvancedFilterCreatorFilterItemProps {\n column: Column;\n filterTypes: FilterTypeValue[];\n onChange: (type: FilterTypeValue, value: string) => void;\n onDelete: () => void;\n selectedType?: FilterTypeValue;\n value?: string;\n formatter: Formatter;\n tableUtils: TableUtils;\n}\n\nexport type AdvancedFilterCreatorFilterItemState = AdvancedFilterItemType;\n\nexport class AdvancedFilterCreatorFilterItem extends PureComponent<\n AdvancedFilterCreatorFilterItemProps,\n AdvancedFilterCreatorFilterItemState\n> {\n static getLabelForFilter(\n columnType: string,\n filterType: FilterTypeValue\n ): string {\n try {\n if (\n TableUtils.isNumberType(columnType) ||\n TableUtils.isCharType(columnType)\n ) {\n return getLabelForNumberFilter(filterType);\n }\n if (TableUtils.isTextType(columnType)) {\n return getLabelForTextFilter(filterType);\n }\n if (TableUtils.isDateType(columnType)) {\n return getLabelForDateFilter(filterType);\n }\n if (TableUtils.isBooleanType(columnType)) {\n return getLabelForBooleanFilter(filterType);\n }\n throw new Error(`Unrecognized column type: ${columnType}`);\n } catch (e) {\n log.warn(e);\n return '';\n }\n }\n\n constructor(props: AdvancedFilterCreatorFilterItemProps) {\n super(props);\n\n this.handleDelete = this.handleDelete.bind(this);\n this.handleTypeChange = this.handleTypeChange.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.typeDropdown = null;\n\n const { value = '', filterTypes, selectedType = filterTypes[0] } = props;\n\n this.state = {\n selectedType,\n value,\n };\n }\n\n componentDidMount(): void {\n this.typeDropdown?.focus();\n }\n\n componentDidUpdate(prevProps: AdvancedFilterCreatorFilterItemProps): void {\n const { value, selectedType } = this.props;\n if (selectedType !== undefined && prevProps.selectedType !== selectedType) {\n this.setState({ selectedType });\n }\n if (value !== undefined && prevProps.value !== value) {\n this.setState({ value });\n }\n }\n\n typeDropdown: HTMLSelectElement | null;\n\n handleTypeChange(eventTargetValue: string): void {\n const selectedType = eventTargetValue as FilterTypeValue;\n log.debug2('typeChange', selectedType);\n this.setState({ selectedType });\n\n const { onChange } = this.props;\n const { value } = this.state;\n if (value != null && value.length > 0) {\n // Don't send an update unless there's already a value entered\n onChange(selectedType, value);\n }\n }\n\n handleValueChange(event: React.ChangeEvent<HTMLInputElement>): void {\n log.debug2('valueChange');\n const { value } = event.target;\n this.setState({ value });\n\n const { onChange } = this.props;\n const { selectedType } = this.state;\n if (selectedType != null) {\n // Don't send an update unless they've already selected a type\n onChange(selectedType, value);\n }\n }\n\n handleDelete(): void {\n log.debug('delete');\n\n const { onDelete } = this.props;\n onDelete();\n }\n\n getCachedIsValid = memoizeOne(\n (\n column: Column,\n operation: FilterTypeValue,\n value: string,\n timeZone: string,\n tableUtils: TableUtils\n ): boolean => {\n try {\n // We don't want to show an error for an empty value\n return (\n !value ||\n tableUtils.makeAdvancedValueFilter(\n column,\n operation,\n value,\n timeZone\n ) != null\n );\n } catch (e) {\n return false;\n }\n }\n );\n\n render(): JSX.Element {\n const { column, filterTypes, formatter, tableUtils } = this.props;\n const { selectedType, value } = this.state;\n const showValueInput = !TableUtils.isBooleanType(column.type);\n const typeOptionElements = [];\n const isValid = this.getCachedIsValid(\n column,\n selectedType,\n value,\n formatter.timeZone,\n tableUtils\n );\n for (let i = 0; i < filterTypes.length; i += 1) {\n const type = filterTypes[i];\n const label = AdvancedFilterCreatorFilterItem.getLabelForFilter(\n column.type,\n type\n );\n const element = (\n <option key={type} value={type}>\n {label}\n </option>\n );\n typeOptionElements.push(element);\n }\n\n return (\n <div className=\"advanced-filter-creator-filter-item\">\n <div className=\"form-row\">\n <div className=\"form-group col\">\n <Select\n className=\"form-control\"\n value={selectedType}\n onChange={this.handleTypeChange}\n ref={typeDropdown => {\n this.typeDropdown = typeDropdown;\n }}\n >\n {typeOptionElements}\n </Select>\n </div>\n {showValueInput && (\n <div className=\"form-group col\">\n <div className=\"input-group\">\n <input\n type=\"text\"\n className={classNames('form-control', { error: !isValid })}\n placeholder=\"Enter value\"\n value={value}\n onChange={this.handleValueChange}\n />\n </div>\n </div>\n )}\n <div className=\"form-group col-1 px-0\">\n <Button\n kind=\"ghost\"\n className=\"w-100 h-100 p-0 m-0\"\n onClick={this.handleDelete}\n icon={vsTrash}\n tooltip=\"Remove Filter\"\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorFilterItem;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AdvancedFilterCreatorFilterItem.js","names":["React","PureComponent","Button","Select","getLabelForBooleanFilter","getLabelForDateFilter","getLabelForNumberFilter","getLabelForTextFilter","vsTrash","TableUtils","Log","classNames","memoizeOne","jsx","_jsx","jsxs","_jsxs","log","module","AdvancedFilterCreatorFilterItem","getLabelForFilter","columnType","filterType","isNumberType","isCharType","isTextType","isDateType","isBooleanType","Error","concat","e","warn","constructor","props","_defineProperty","column","operation","value","timeZone","tableUtils","makeAdvancedValueFilter","handleDelete","bind","handleTypeChange","handleValueChange","typeDropdown","filterTypes","selectedType","state","componentDidMount","_this$typeDropdown","focus","componentDidUpdate","prevProps","undefined","setState","eventTargetValue","debug2","onChange","length","event","target","debug","onDelete","render","formatter","showValueInput","type","typeOptionElements","isValid","getCachedIsValid","i","label","element","children","push","className","ref","error","placeholder","kind","onClick","icon","tooltip"],"sources":["../src/AdvancedFilterCreatorFilterItem.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport { Button, Select } from '@deephaven/components';\nimport {\n getLabelForBooleanFilter,\n getLabelForDateFilter,\n getLabelForNumberFilter,\n getLabelForTextFilter,\n TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { vsTrash } from '@deephaven/icons';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n AdvancedFilterItemType,\n Formatter,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport classNames from 'classnames';\nimport memoizeOne from 'memoize-one';\nimport './AdvancedFilterCreatorFilterItem.scss';\n\nconst log = Log.module('AdvancedFilterCreatorFilterItem');\n\nexport interface AdvancedFilterCreatorFilterItemProps {\n column: dh.Column;\n filterTypes: FilterTypeValue[];\n onChange: (type: FilterTypeValue, value: string) => void;\n onDelete: () => void;\n selectedType?: FilterTypeValue;\n value?: string;\n formatter: Formatter;\n tableUtils: TableUtils;\n}\n\nexport type AdvancedFilterCreatorFilterItemState = AdvancedFilterItemType;\n\nexport class AdvancedFilterCreatorFilterItem extends PureComponent<\n AdvancedFilterCreatorFilterItemProps,\n AdvancedFilterCreatorFilterItemState\n> {\n static getLabelForFilter(\n columnType: string,\n filterType: FilterTypeValue\n ): string {\n try {\n if (\n TableUtils.isNumberType(columnType) ||\n TableUtils.isCharType(columnType)\n ) {\n return getLabelForNumberFilter(filterType);\n }\n if (TableUtils.isTextType(columnType)) {\n return getLabelForTextFilter(filterType);\n }\n if (TableUtils.isDateType(columnType)) {\n return getLabelForDateFilter(filterType);\n }\n if (TableUtils.isBooleanType(columnType)) {\n return getLabelForBooleanFilter(filterType);\n }\n throw new Error(`Unrecognized column type: ${columnType}`);\n } catch (e) {\n log.warn(e);\n return '';\n }\n }\n\n constructor(props: AdvancedFilterCreatorFilterItemProps) {\n super(props);\n\n this.handleDelete = this.handleDelete.bind(this);\n this.handleTypeChange = this.handleTypeChange.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.typeDropdown = null;\n\n const { value = '', filterTypes, selectedType = filterTypes[0] } = props;\n\n this.state = {\n selectedType,\n value,\n };\n }\n\n componentDidMount(): void {\n this.typeDropdown?.focus();\n }\n\n componentDidUpdate(prevProps: AdvancedFilterCreatorFilterItemProps): void {\n const { value, selectedType } = this.props;\n if (selectedType !== undefined && prevProps.selectedType !== selectedType) {\n this.setState({ selectedType });\n }\n if (value !== undefined && prevProps.value !== value) {\n this.setState({ value });\n }\n }\n\n typeDropdown: HTMLSelectElement | null;\n\n handleTypeChange(eventTargetValue: string): void {\n const selectedType = eventTargetValue as FilterTypeValue;\n log.debug2('typeChange', selectedType);\n this.setState({ selectedType });\n\n const { onChange } = this.props;\n const { value } = this.state;\n if (value != null && value.length > 0) {\n // Don't send an update unless there's already a value entered\n onChange(selectedType, value);\n }\n }\n\n handleValueChange(event: React.ChangeEvent<HTMLInputElement>): void {\n log.debug2('valueChange');\n const { value } = event.target;\n this.setState({ value });\n\n const { onChange } = this.props;\n const { selectedType } = this.state;\n if (selectedType != null) {\n // Don't send an update unless they've already selected a type\n onChange(selectedType, value);\n }\n }\n\n handleDelete(): void {\n log.debug('delete');\n\n const { onDelete } = this.props;\n onDelete();\n }\n\n getCachedIsValid = memoizeOne(\n (\n column: dh.Column,\n operation: FilterTypeValue,\n value: string,\n timeZone: string,\n tableUtils: TableUtils\n ): boolean => {\n try {\n // We don't want to show an error for an empty value\n return (\n !value ||\n tableUtils.makeAdvancedValueFilter(\n column,\n operation,\n value,\n timeZone\n ) != null\n );\n } catch (e) {\n return false;\n }\n }\n );\n\n render(): JSX.Element {\n const { column, filterTypes, formatter, tableUtils } = this.props;\n const { selectedType, value } = this.state;\n const showValueInput = !TableUtils.isBooleanType(column.type);\n const typeOptionElements = [];\n const isValid = this.getCachedIsValid(\n column,\n selectedType,\n value,\n formatter.timeZone,\n tableUtils\n );\n for (let i = 0; i < filterTypes.length; i += 1) {\n const type = filterTypes[i];\n const label = AdvancedFilterCreatorFilterItem.getLabelForFilter(\n column.type,\n type\n );\n const element = (\n <option key={type} value={type}>\n {label}\n </option>\n );\n typeOptionElements.push(element);\n }\n\n return (\n <div className=\"advanced-filter-creator-filter-item\">\n <div className=\"form-row\">\n <div className=\"form-group col\">\n <Select\n className=\"form-control\"\n value={selectedType}\n onChange={this.handleTypeChange}\n ref={typeDropdown => {\n this.typeDropdown = typeDropdown;\n }}\n >\n {typeOptionElements}\n </Select>\n </div>\n {showValueInput && (\n <div className=\"form-group col\">\n <div className=\"input-group\">\n <input\n type=\"text\"\n className={classNames('form-control', { error: !isValid })}\n placeholder=\"Enter value\"\n value={value}\n onChange={this.handleValueChange}\n />\n </div>\n </div>\n )}\n <div className=\"form-group col-1 px-0\">\n <Button\n kind=\"ghost\"\n className=\"w-100 h-100 p-0 m-0\"\n onClick={this.handleDelete}\n icon={vsTrash}\n tooltip=\"Remove Filter\"\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorFilterItem;\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import { Formatter, TableUtils } from '@deephaven/jsapi-utils';
3
- import type { dh as DhType, FilterCondition, Table } from '@deephaven/jsapi-types';
3
+ import type { dh as DhType } from '@deephaven/jsapi-types';
4
4
  import './AdvancedFilterCreatorSelectValue.scss';
5
5
  import { ColumnName } from './CommonTypes';
6
6
  interface AdvancedFilterCreatorSelectValueProps<T> {
7
- dh: DhType;
7
+ dh: typeof DhType;
8
8
  invertSelection: boolean;
9
9
  selectedValues: (T | null)[];
10
- table?: Table;
10
+ table?: DhType.Table;
11
11
  formatter: Formatter;
12
12
  onChange: (selectedValues: (T | null)[], invertSelection: boolean) => void;
13
13
  showSearch: boolean;
@@ -15,11 +15,11 @@ interface AdvancedFilterCreatorSelectValueProps<T> {
15
15
  }
16
16
  interface AdvancedFilterCreatorSelectValueState<T> {
17
17
  error?: string;
18
- filters: FilterCondition[];
18
+ filters: DhType.FilterCondition[];
19
19
  invertSelection: boolean;
20
20
  selectedValues: (T | null)[];
21
21
  searchText: string;
22
- table?: Table;
22
+ table?: DhType.Table;
23
23
  }
24
24
  declare class AdvancedFilterCreatorSelectValue<T = unknown> extends PureComponent<AdvancedFilterCreatorSelectValueProps<T>, AdvancedFilterCreatorSelectValueState<T>> {
25
25
  static searchDebounceTime: number;
@@ -33,7 +33,7 @@ declare class AdvancedFilterCreatorSelectValue<T = unknown> extends PureComponen
33
33
  componentDidMount(): void;
34
34
  componentDidUpdate(prevProps: AdvancedFilterCreatorSelectValueProps<T>, prevState: AdvancedFilterCreatorSelectValueState<T>): void;
35
35
  componentWillUnmount(): void;
36
- searchTablePromise?: Promise<Table>;
36
+ searchTablePromise?: Promise<DhType.Table>;
37
37
  tableUtils: TableUtils;
38
38
  updateFilterTimer?: ReturnType<typeof setTimeout>;
39
39
  getColumnName(): ColumnName;
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreatorSelectValue.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreatorSelectValue.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EACV,EAAE,IAAI,MAAM,EACZ,eAAe,EACf,KAAK,EACN,MAAM,wBAAwB,CAAC;AAGhC,OAAO,yCAAyC,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,UAAU,qCAAqC,CAAC,CAAC;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3E,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,qCAAqC,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,cAAM,gCAAgC,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,aAAa,CACvE,qCAAqC,CAAC,CAAC,CAAC,EACxC,qCAAqC,CAAC,CAAC,CAAC,CACzC;IACC,MAAM,CAAC,kBAAkB,SAAO;IAEhC,MAAM,CAAC,YAAY;;;wBAGH,IAAI;;MAElB;gBAEU,KAAK,EAAE,qCAAqC,CAAC,CAAC,CAAC;IAqB3D,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAChB,SAAS,EAAE,qCAAqC,CAAC,CAAC,CAAC,EACnD,SAAS,EAAE,qCAAqC,CAAC,CAAC,CAAC,GAClD,IAAI;IA8BP,oBAAoB,IAAI,IAAI;IAU5B,kBAAkB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpC,UAAU,EAAE,UAAU,CAAC;IAEvB,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAElD,aAAa,IAAI,UAAU;IAQ3B,uBAAuB,IAAI,MAAM,GAAG,IAAI;IAYxC,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAqBtC,eAAe,IAAI,IAAI;IAkBvB,gBAAgB,CACd,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAC5B,eAAe,EAAE,OAAO,GACvB,IAAI;IAOP,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAKpE,oBAAoB,IAAI,IAAI;IAI5B,mBAAmB,IAAI,IAAI;IAI3B,yBAAyB,IAAI,IAAI;IAKjC,cAAc,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI;IAS9C,sBAAsB,IAAI,IAAI;IAS9B,qBAAqB,IAAI,IAAI;IAO7B,iBAAiB,IAAI,IAAI;IAsCzB,MAAM,IAAI,KAAK,CAAC,YAAY;CAgE7B;AAED,eAAe,gCAAgC,CAAC"}
1
+ {"version":3,"file":"AdvancedFilterCreatorSelectValue.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreatorSelectValue.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,yCAAyC,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,UAAU,qCAAqC,CAAC,CAAC;IAC/C,EAAE,EAAE,OAAO,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3E,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,qCAAqC,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;CACtB;AAED,cAAM,gCAAgC,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,aAAa,CACvE,qCAAqC,CAAC,CAAC,CAAC,EACxC,qCAAqC,CAAC,CAAC,CAAC,CACzC;IACC,MAAM,CAAC,kBAAkB,SAAO;IAEhC,MAAM,CAAC,YAAY;;;wBAGH,IAAI;;MAElB;gBAEU,KAAK,EAAE,qCAAqC,CAAC,CAAC,CAAC;IAqB3D,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAChB,SAAS,EAAE,qCAAqC,CAAC,CAAC,CAAC,EACnD,SAAS,EAAE,qCAAqC,CAAC,CAAC,CAAC,GAClD,IAAI;IA8BP,oBAAoB,IAAI,IAAI;IAU5B,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3C,UAAU,EAAE,UAAU,CAAC;IAEvB,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAElD,aAAa,IAAI,UAAU;IAQ3B,uBAAuB,IAAI,MAAM,GAAG,IAAI;IAYxC,qBAAqB,IAAI,MAAM,GAAG,IAAI;IAqBtC,eAAe,IAAI,IAAI;IAkBvB,gBAAgB,CACd,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAC5B,eAAe,EAAE,OAAO,GACvB,IAAI;IAOP,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAKpE,oBAAoB,IAAI,IAAI;IAI5B,mBAAmB,IAAI,IAAI;IAI3B,yBAAyB,IAAI,IAAI;IAKjC,cAAc,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI;IAS9C,sBAAsB,IAAI,IAAI;IAS9B,qBAAqB,IAAI,IAAI;IAO7B,iBAAiB,IAAI,IAAI;IAsCzB,MAAM,IAAI,KAAK,CAAC,YAAY;CAgE7B;AAED,eAAe,gCAAgC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreatorSelectValue.js","names":["React","PureComponent","CSSTransition","classNames","TableUtils","Button","AdvancedFilterCreatorSelectValueList","jsx","_jsx","jsxs","_jsxs","AdvancedFilterCreatorSelectValue","constructor","props","_defineProperty","handleSelectAllClick","bind","handleClearAllClick","handleListChange","handleSearchChange","handleUpdateFilterTimeout","dh","invertSelection","selectedValues","tableUtils","state","filters","searchText","componentDidMount","initSearchTable","componentDidUpdate","prevProps","prevState","table","setState","searchTable","close","startUpdateFilterTimer","componentWillUnmount","searchTablePromise","undefined","stopUpdateFilterTimer","getColumnName","columns","name","getDisplayedValuesCount","totalSize","length","getDisplayedValueText","count","formatter","formattedCount","getFormattedString","formattedTableSize","prefix","concat","copy","then","onChange","event","target","value","resetSelection","updateFilterTimer","updateTableFilter","setTimeout","searchDebounceTime","clearTimeout","timeZone","column","error","filter","isCharType","type","makeQuickFilter","isTextType","push","render","showSearch","columnName","displayedValuesText","placeholderText","className","children","htmlFor","id","placeholder","kind","onClick","in","timeout","mountOnEnter","unmountOnExit"],"sources":["../src/AdvancedFilterCreatorSelectValue.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport classNames from 'classnames';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport type {\n dh as DhType,\n FilterCondition,\n Table,\n} from '@deephaven/jsapi-types';\nimport { Button } from '@deephaven/components';\nimport AdvancedFilterCreatorSelectValueList from './AdvancedFilterCreatorSelectValueList';\nimport './AdvancedFilterCreatorSelectValue.scss';\nimport { ColumnName } from './CommonTypes';\n\ninterface AdvancedFilterCreatorSelectValueProps<T> {\n dh: DhType;\n invertSelection: boolean;\n selectedValues: (T | null)[];\n table?: Table;\n formatter: Formatter;\n onChange: (selectedValues: (T | null)[], invertSelection: boolean) => void;\n showSearch: boolean;\n timeZone: string;\n}\n\ninterface AdvancedFilterCreatorSelectValueState<T> {\n error?: string;\n filters: FilterCondition[];\n invertSelection: boolean;\n selectedValues: (T | null)[];\n searchText: string;\n table?: Table;\n}\n\nclass AdvancedFilterCreatorSelectValue<T = unknown> extends PureComponent<\n AdvancedFilterCreatorSelectValueProps<T>,\n AdvancedFilterCreatorSelectValueState<T>\n> {\n static searchDebounceTime = 250;\n\n static defaultProps = {\n invertSelection: true,\n selectedValues: [],\n onChange: (): void => undefined,\n showSearch: true,\n };\n\n constructor(props: AdvancedFilterCreatorSelectValueProps<T>) {\n super(props);\n\n this.handleSelectAllClick = this.handleSelectAllClick.bind(this);\n this.handleClearAllClick = this.handleClearAllClick.bind(this);\n this.handleListChange = this.handleListChange.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleUpdateFilterTimeout = this.handleUpdateFilterTimeout.bind(this);\n\n const { dh, invertSelection, selectedValues } = props;\n\n this.tableUtils = new TableUtils(dh);\n\n this.state = {\n filters: [],\n invertSelection,\n selectedValues,\n searchText: '',\n };\n }\n\n componentDidMount(): void {\n this.initSearchTable();\n }\n\n componentDidUpdate(\n prevProps: AdvancedFilterCreatorSelectValueProps<T>,\n prevState: AdvancedFilterCreatorSelectValueState<T>\n ): void {\n const { invertSelection, selectedValues, table } = this.props;\n if (prevProps.table !== table) {\n this.initSearchTable();\n }\n\n if (prevProps.invertSelection !== invertSelection) {\n this.setState({ invertSelection });\n }\n\n if (prevProps.selectedValues !== selectedValues) {\n this.setState({ selectedValues });\n }\n\n const { table: searchTable, searchText } = this.state;\n\n if (searchTable !== prevState.table) {\n if (prevState.table != null) {\n prevState.table.close();\n }\n if (searchTable != null) {\n this.startUpdateFilterTimer();\n }\n }\n\n if (searchText !== prevState.searchText) {\n this.startUpdateFilterTimer();\n }\n }\n\n componentWillUnmount(): void {\n const { table } = this.state;\n if (table != null) {\n table.close();\n }\n this.searchTablePromise = undefined;\n\n this.stopUpdateFilterTimer();\n }\n\n searchTablePromise?: Promise<Table>;\n\n tableUtils: TableUtils;\n\n updateFilterTimer?: ReturnType<typeof setTimeout>;\n\n getColumnName(): ColumnName {\n const { table } = this.props;\n if (table != null) {\n return table.columns[0].name;\n }\n return '';\n }\n\n getDisplayedValuesCount(): number | null {\n const { invertSelection, selectedValues, table } = this.state;\n if (table == null) {\n return null;\n }\n\n if (invertSelection) {\n return table.totalSize - selectedValues.length;\n }\n return selectedValues.length;\n }\n\n getDisplayedValueText(): string | null {\n const count = this.getDisplayedValuesCount();\n const { table } = this.state;\n\n const { formatter } = this.props;\n\n if (count != null && table != null) {\n const formattedCount = formatter.getFormattedString(count, 'long');\n const formattedTableSize = formatter.getFormattedString(\n table.totalSize,\n 'long'\n );\n let prefix = '';\n if (count < 1000000) {\n prefix = 'Displaying ';\n }\n return `${prefix}${formattedCount} of ${formattedTableSize}`;\n }\n return null;\n }\n\n initSearchTable(): void {\n const { table } = this.props;\n if (table == null) {\n return;\n }\n\n const searchTablePromise = table.copy();\n this.searchTablePromise = searchTablePromise;\n this.searchTablePromise.then(searchTable => {\n if (this.searchTablePromise === searchTablePromise) {\n this.setState({ table: searchTable });\n this.searchTablePromise = undefined;\n } else {\n searchTable.close();\n }\n });\n }\n\n handleListChange(\n selectedValues: (T | null)[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n handleSearchChange(event: React.ChangeEvent<HTMLInputElement>): void {\n const searchText = event.target.value;\n this.setState({ searchText });\n }\n\n handleSelectAllClick(): void {\n this.resetSelection(true);\n }\n\n handleClearAllClick(): void {\n this.resetSelection(false);\n }\n\n handleUpdateFilterTimeout(): void {\n this.updateFilterTimer = undefined;\n this.updateTableFilter();\n }\n\n resetSelection(invertSelection: boolean): void {\n const selectedValues: T[] = [];\n\n this.setState({ invertSelection, selectedValues });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n startUpdateFilterTimer(): void {\n this.stopUpdateFilterTimer();\n\n this.updateFilterTimer = setTimeout(\n this.handleUpdateFilterTimeout,\n AdvancedFilterCreatorSelectValue.searchDebounceTime\n );\n }\n\n stopUpdateFilterTimer(): void {\n if (this.updateFilterTimer != null) {\n clearTimeout(this.updateFilterTimer);\n this.updateFilterTimer = undefined;\n }\n }\n\n updateTableFilter(): void {\n const { table, searchText } = this.state;\n const { timeZone } = this.props;\n const { tableUtils } = this;\n const column = table?.columns[0];\n const filters = [];\n if (column == null) {\n return;\n }\n let error;\n if (searchText.length > 0) {\n let filter = null;\n if (TableUtils.isCharType(column.type)) {\n // Just exact match for char\n filter = tableUtils.makeQuickFilter(column, searchText);\n } else if (TableUtils.isTextType(column.type)) {\n // case insensitive & contains search text\n filter = tableUtils.makeQuickFilter(column, `~${searchText}`, timeZone);\n } else {\n // greater than or equal search for everything else\n // we may want to be smarter with some other types (like dates)\n filter = tableUtils.makeQuickFilter(\n column,\n `>=${searchText}`,\n timeZone\n );\n }\n\n if (filter != null) {\n filters.push(filter);\n } else {\n error = 'Invalid search text';\n }\n }\n\n this.setState({ filters, error });\n }\n\n render(): React.ReactElement {\n const {\n error,\n filters,\n invertSelection,\n selectedValues,\n searchText,\n table,\n } = this.state;\n const { dh, formatter, showSearch } = this.props;\n const columnName = this.getColumnName();\n const displayedValuesText = this.getDisplayedValueText();\n const placeholderText = columnName ? `Find ${columnName}...` : '';\n\n return (\n <div className=\"advanced-filter-creator-select-value\">\n <div className={showSearch ? 'form-group' : ''}>\n <label htmlFor=\"advanced-filter-creator-select-value-input\">\n Select Values\n </label>\n {showSearch && (\n <input\n type=\"text\"\n className={classNames('form-control', {\n 'is-invalid': error != null,\n })}\n id=\"advanced-filter-creator-select-value-input\"\n placeholder={placeholderText}\n value={searchText}\n onChange={this.handleSearchChange}\n />\n )}\n </div>\n <AdvancedFilterCreatorSelectValueList\n dh={dh}\n table={table}\n filters={filters}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n onChange={this.handleListChange}\n />\n <div className=\"advanced-filter-creator-select-meta-row\">\n <div>\n <Button kind=\"ghost\" onClick={this.handleSelectAllClick}>\n Select All\n </Button>\n <Button kind=\"ghost\" onClick={this.handleClearAllClick}>\n Clear\n </Button>\n </div>\n <CSSTransition\n in={displayedValuesText != null}\n timeout={250}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <div className=\"row-count-info\">{displayedValuesText}</div>\n </CSSTransition>\n </div>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorSelectValue;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AdvancedFilterCreatorSelectValue.js","names":["React","PureComponent","CSSTransition","classNames","TableUtils","Button","AdvancedFilterCreatorSelectValueList","jsx","_jsx","jsxs","_jsxs","AdvancedFilterCreatorSelectValue","constructor","props","_defineProperty","handleSelectAllClick","bind","handleClearAllClick","handleListChange","handleSearchChange","handleUpdateFilterTimeout","dh","invertSelection","selectedValues","tableUtils","state","filters","searchText","componentDidMount","initSearchTable","componentDidUpdate","prevProps","prevState","table","setState","searchTable","close","startUpdateFilterTimer","componentWillUnmount","searchTablePromise","undefined","stopUpdateFilterTimer","getColumnName","columns","name","getDisplayedValuesCount","totalSize","length","getDisplayedValueText","count","formatter","formattedCount","getFormattedString","formattedTableSize","prefix","concat","copy","then","onChange","event","target","value","resetSelection","updateFilterTimer","updateTableFilter","setTimeout","searchDebounceTime","clearTimeout","timeZone","column","error","filter","isCharType","type","makeQuickFilter","isTextType","push","render","showSearch","columnName","displayedValuesText","placeholderText","className","children","htmlFor","id","placeholder","kind","onClick","in","timeout","mountOnEnter","unmountOnExit"],"sources":["../src/AdvancedFilterCreatorSelectValue.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport classNames from 'classnames';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { Button } from '@deephaven/components';\nimport AdvancedFilterCreatorSelectValueList from './AdvancedFilterCreatorSelectValueList';\nimport './AdvancedFilterCreatorSelectValue.scss';\nimport { ColumnName } from './CommonTypes';\n\ninterface AdvancedFilterCreatorSelectValueProps<T> {\n dh: typeof DhType;\n invertSelection: boolean;\n selectedValues: (T | null)[];\n table?: DhType.Table;\n formatter: Formatter;\n onChange: (selectedValues: (T | null)[], invertSelection: boolean) => void;\n showSearch: boolean;\n timeZone: string;\n}\n\ninterface AdvancedFilterCreatorSelectValueState<T> {\n error?: string;\n filters: DhType.FilterCondition[];\n invertSelection: boolean;\n selectedValues: (T | null)[];\n searchText: string;\n table?: DhType.Table;\n}\n\nclass AdvancedFilterCreatorSelectValue<T = unknown> extends PureComponent<\n AdvancedFilterCreatorSelectValueProps<T>,\n AdvancedFilterCreatorSelectValueState<T>\n> {\n static searchDebounceTime = 250;\n\n static defaultProps = {\n invertSelection: true,\n selectedValues: [],\n onChange: (): void => undefined,\n showSearch: true,\n };\n\n constructor(props: AdvancedFilterCreatorSelectValueProps<T>) {\n super(props);\n\n this.handleSelectAllClick = this.handleSelectAllClick.bind(this);\n this.handleClearAllClick = this.handleClearAllClick.bind(this);\n this.handleListChange = this.handleListChange.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleUpdateFilterTimeout = this.handleUpdateFilterTimeout.bind(this);\n\n const { dh, invertSelection, selectedValues } = props;\n\n this.tableUtils = new TableUtils(dh);\n\n this.state = {\n filters: [],\n invertSelection,\n selectedValues,\n searchText: '',\n };\n }\n\n componentDidMount(): void {\n this.initSearchTable();\n }\n\n componentDidUpdate(\n prevProps: AdvancedFilterCreatorSelectValueProps<T>,\n prevState: AdvancedFilterCreatorSelectValueState<T>\n ): void {\n const { invertSelection, selectedValues, table } = this.props;\n if (prevProps.table !== table) {\n this.initSearchTable();\n }\n\n if (prevProps.invertSelection !== invertSelection) {\n this.setState({ invertSelection });\n }\n\n if (prevProps.selectedValues !== selectedValues) {\n this.setState({ selectedValues });\n }\n\n const { table: searchTable, searchText } = this.state;\n\n if (searchTable !== prevState.table) {\n if (prevState.table != null) {\n prevState.table.close();\n }\n if (searchTable != null) {\n this.startUpdateFilterTimer();\n }\n }\n\n if (searchText !== prevState.searchText) {\n this.startUpdateFilterTimer();\n }\n }\n\n componentWillUnmount(): void {\n const { table } = this.state;\n if (table != null) {\n table.close();\n }\n this.searchTablePromise = undefined;\n\n this.stopUpdateFilterTimer();\n }\n\n searchTablePromise?: Promise<DhType.Table>;\n\n tableUtils: TableUtils;\n\n updateFilterTimer?: ReturnType<typeof setTimeout>;\n\n getColumnName(): ColumnName {\n const { table } = this.props;\n if (table != null) {\n return table.columns[0].name;\n }\n return '';\n }\n\n getDisplayedValuesCount(): number | null {\n const { invertSelection, selectedValues, table } = this.state;\n if (table == null) {\n return null;\n }\n\n if (invertSelection) {\n return table.totalSize - selectedValues.length;\n }\n return selectedValues.length;\n }\n\n getDisplayedValueText(): string | null {\n const count = this.getDisplayedValuesCount();\n const { table } = this.state;\n\n const { formatter } = this.props;\n\n if (count != null && table != null) {\n const formattedCount = formatter.getFormattedString(count, 'long');\n const formattedTableSize = formatter.getFormattedString(\n table.totalSize,\n 'long'\n );\n let prefix = '';\n if (count < 1000000) {\n prefix = 'Displaying ';\n }\n return `${prefix}${formattedCount} of ${formattedTableSize}`;\n }\n return null;\n }\n\n initSearchTable(): void {\n const { table } = this.props;\n if (table == null) {\n return;\n }\n\n const searchTablePromise = table.copy();\n this.searchTablePromise = searchTablePromise;\n this.searchTablePromise.then(searchTable => {\n if (this.searchTablePromise === searchTablePromise) {\n this.setState({ table: searchTable });\n this.searchTablePromise = undefined;\n } else {\n searchTable.close();\n }\n });\n }\n\n handleListChange(\n selectedValues: (T | null)[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n handleSearchChange(event: React.ChangeEvent<HTMLInputElement>): void {\n const searchText = event.target.value;\n this.setState({ searchText });\n }\n\n handleSelectAllClick(): void {\n this.resetSelection(true);\n }\n\n handleClearAllClick(): void {\n this.resetSelection(false);\n }\n\n handleUpdateFilterTimeout(): void {\n this.updateFilterTimer = undefined;\n this.updateTableFilter();\n }\n\n resetSelection(invertSelection: boolean): void {\n const selectedValues: T[] = [];\n\n this.setState({ invertSelection, selectedValues });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n startUpdateFilterTimer(): void {\n this.stopUpdateFilterTimer();\n\n this.updateFilterTimer = setTimeout(\n this.handleUpdateFilterTimeout,\n AdvancedFilterCreatorSelectValue.searchDebounceTime\n );\n }\n\n stopUpdateFilterTimer(): void {\n if (this.updateFilterTimer != null) {\n clearTimeout(this.updateFilterTimer);\n this.updateFilterTimer = undefined;\n }\n }\n\n updateTableFilter(): void {\n const { table, searchText } = this.state;\n const { timeZone } = this.props;\n const { tableUtils } = this;\n const column = table?.columns[0];\n const filters = [];\n if (column == null) {\n return;\n }\n let error;\n if (searchText.length > 0) {\n let filter = null;\n if (TableUtils.isCharType(column.type)) {\n // Just exact match for char\n filter = tableUtils.makeQuickFilter(column, searchText);\n } else if (TableUtils.isTextType(column.type)) {\n // case insensitive & contains search text\n filter = tableUtils.makeQuickFilter(column, `~${searchText}`, timeZone);\n } else {\n // greater than or equal search for everything else\n // we may want to be smarter with some other types (like dates)\n filter = tableUtils.makeQuickFilter(\n column,\n `>=${searchText}`,\n timeZone\n );\n }\n\n if (filter != null) {\n filters.push(filter);\n } else {\n error = 'Invalid search text';\n }\n }\n\n this.setState({ filters, error });\n }\n\n render(): React.ReactElement {\n const {\n error,\n filters,\n invertSelection,\n selectedValues,\n searchText,\n table,\n } = this.state;\n const { dh, formatter, showSearch } = this.props;\n const columnName = this.getColumnName();\n const displayedValuesText = this.getDisplayedValueText();\n const placeholderText = columnName ? `Find ${columnName}...` : '';\n\n return (\n <div className=\"advanced-filter-creator-select-value\">\n <div className={showSearch ? 'form-group' : ''}>\n <label htmlFor=\"advanced-filter-creator-select-value-input\">\n Select Values\n </label>\n {showSearch && (\n <input\n type=\"text\"\n className={classNames('form-control', {\n 'is-invalid': error != null,\n })}\n id=\"advanced-filter-creator-select-value-input\"\n placeholder={placeholderText}\n value={searchText}\n onChange={this.handleSearchChange}\n />\n )}\n </div>\n <AdvancedFilterCreatorSelectValueList\n dh={dh}\n table={table}\n filters={filters}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n onChange={this.handleListChange}\n />\n <div className=\"advanced-filter-creator-select-meta-row\">\n <div>\n <Button kind=\"ghost\" onClick={this.handleSelectAllClick}>\n Select All\n </Button>\n <Button kind=\"ghost\" onClick={this.handleClearAllClick}>\n Clear\n </Button>\n </div>\n <CSSTransition\n in={displayedValuesText != null}\n timeout={250}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <div className=\"row-count-info\">{displayedValuesText}</div>\n </CSSTransition>\n </div>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorSelectValue;\n"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { PureComponent, ReactElement } from 'react';
2
- import type { dh as DhType, FilterCondition, Table } from '@deephaven/jsapi-types';
2
+ import type { dh as DhType } from '@deephaven/jsapi-types';
3
3
  import { Formatter } from '@deephaven/jsapi-utils';
4
4
  import { SelectValueList, SelectItem } from '@deephaven/components';
5
5
  interface AdvancedFilterCreatorSelectValueListProps<T> {
6
- dh: DhType;
6
+ dh: typeof DhType;
7
7
  selectedValues: (T | null)[];
8
- table?: Table;
9
- filters: FilterCondition[];
8
+ table?: DhType.Table;
9
+ filters: DhType.FilterCondition[];
10
10
  invertSelection: boolean;
11
11
  onChange: (selectedValues: (T | null)[], invertSelection: boolean) => void;
12
12
  formatter: Formatter;
@@ -38,15 +38,15 @@ declare class AdvancedFilterCreatorSelectValueList<T = unknown> extends PureComp
38
38
  componentDidMount(): void;
39
39
  componentDidUpdate(prevProps: AdvancedFilterCreatorSelectValueListProps<T>): void;
40
40
  componentWillUnmount(): void;
41
- dh: DhType;
41
+ dh: typeof DhType;
42
42
  list: SelectValueList<T> | null;
43
43
  handleSelect(itemIndex: number, value: T | null): void;
44
44
  handleViewportChange(top: number, bottom: number): void;
45
45
  handleSelectionUpdate(): void;
46
46
  handleTableUpdate(event: CustomEvent): void;
47
47
  isValueSelected(value: T): boolean;
48
- startListening(table: Table): void;
49
- stopListening(table: Table): void;
48
+ startListening(table: DhType.Table): void;
49
+ stopListening(table: DhType.Table): void;
50
50
  resetViewport(): void;
51
51
  updateItemSelection(): void;
52
52
  updateViewport(top: number, bottom: number, isLoading?: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreatorSelectValueList.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreatorSelectValueList.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EACV,EAAE,IAAI,MAAM,EACZ,eAAe,EACf,KAAK,EACN,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAEL,eAAe,EACf,UAAU,EACX,MAAM,uBAAuB,CAAC;AAK/B,UAAU,yCAAyC,CAAC,CAAC;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3E,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,UAAU,yCAAyC,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;CACpB;AACD;;;GAGG;AACH,cAAM,oCAAoC,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,aAAa,CAC3E,yCAAyC,CAAC,CAAC,CAAC,EAC5C,yCAAyC,CAAC,CAAC,CAAC,CAC7C;IACC,MAAM,CAAC,YAAY;;;wBAGH,IAAI;MAClB;IAEF;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;gBAkB7C,KAAK,EAAE,yCAAyC,CAAC,CAAC,CAAC;IAsB/D,iBAAiB,IAAI,IAAI;IAKzB,kBAAkB,CAChB,SAAS,EAAE,yCAAyC,CAAC,CAAC,CAAC,GACtD,IAAI;IAsBP,oBAAoB,IAAI,IAAI;IAK5B,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEhC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAiCtD,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIvD,qBAAqB,IAAI,IAAI;IAI7B,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAqC3C,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAalC,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAIlC,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAOjC,aAAa,IAAI,IAAI;IAMrB,mBAAmB,IAAI,IAAI;IAc3B,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,IAAI;IAkBpE,MAAM,IAAI,YAAY;CA6BvB;AAED,eAAe,oCAAoC,CAAC"}
1
+ {"version":3,"file":"AdvancedFilterCreatorSelectValueList.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreatorSelectValueList.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAEL,eAAe,EACf,UAAU,EACX,MAAM,uBAAuB,CAAC;AAK/B,UAAU,yCAAyC,CAAC,CAAC;IACnD,EAAE,EAAE,OAAO,MAAM,CAAC;IAClB,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3E,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,UAAU,yCAAyC,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;CACpB;AACD;;;GAGG;AACH,cAAM,oCAAoC,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,aAAa,CAC3E,yCAAyC,CAAC,CAAC,CAAC,EAC5C,yCAAyC,CAAC,CAAC,CAAC,CAC7C;IACC,MAAM,CAAC,YAAY;;;wBAGH,IAAI;MAClB;IAEF;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM;gBAkB7C,KAAK,EAAE,yCAAyC,CAAC,CAAC,CAAC;IAsB/D,iBAAiB,IAAI,IAAI;IAKzB,kBAAkB,CAChB,SAAS,EAAE,yCAAyC,CAAC,CAAC,CAAC,GACtD,IAAI;IAsBP,oBAAoB,IAAI,IAAI;IAK5B,EAAE,EAAE,OAAO,MAAM,CAAC;IAElB,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEhC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAiCtD,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAIvD,qBAAqB,IAAI,IAAI;IAI7B,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAqC3C,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;IAalC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI;IAIzC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,IAAI;IAOxC,aAAa,IAAI,IAAI;IAMrB,mBAAmB,IAAI,IAAI;IAc3B,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,IAAI;IAkBpE,MAAM,IAAI,YAAY;CA6BvB;AAED,eAAe,oCAAoC,CAAC"}