@deephaven/iris-grid 0.49.1-beta.6 → 0.49.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,14 @@
1
1
  /// <reference types="lodash" />
2
2
  import React, { Component } from 'react';
3
3
  import { DropdownMenu } from '@deephaven/components';
4
- import type { dh as DhType, Table } from '@deephaven/jsapi-types';
4
+ import type { Column, dh as DhType, Table } from '@deephaven/jsapi-types';
5
5
  import PartitionSelectorSearch from './PartitionSelectorSearch';
6
6
  import './IrisGridPartitionSelector.scss';
7
- import { ColumnName } from './CommonTypes';
8
7
  interface IrisGridPartitionSelectorProps<T> {
9
8
  dh: DhType;
10
9
  getFormattedString: (value: T, type: string, name: string) => string;
11
10
  table: Table;
12
- columnName: ColumnName;
11
+ column: Column;
13
12
  partition: string;
14
13
  onAppend?: (partition: string) => void;
15
14
  onFetchAll: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridPartitionSelector.d.ts","sourceRoot":"","sources":["../src/IrisGridPartitionSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAC;AAI9D,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,kCAAkC,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,UAAU,8BAA8B,CAAC,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACrE,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC9D,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AACD,UAAU,8BAA8B;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,cAAM,yBAAyB,CAAC,CAAC,CAAE,SAAQ,SAAS,CAClD,8BAA8B,CAAC,CAAC,CAAC,EACjC,8BAA8B,CAC/B;IACC,MAAM,CAAC,YAAY;wBACH,IAAI;0BACF,IAAI;sBACR,IAAI;;MAEhB;gBAEU,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC;IAsBpD,oBAAoB,IAAI,IAAI;IAI5B,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAEhC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAElD,iBAAiB,IAAI,IAAI;IAQzB,gBAAgB,IAAI,IAAI;IAMxB,iBAAiB,IAAI,IAAI;IAMzB,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAUvE,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU9C,0BAA0B,IAAI,IAAI;IAMlC,kBAAkB,IAAI,IAAI;IAM1B,kBAAkB,IAAI,IAAI;IAM1B,cAAc,uCAAgB,IAAI,EAED;IAEjC,QAAQ,IAAI,IAAI;IAOhB,UAAU,IAAI,IAAI;IAQlB,YAAY,IAAI,IAAI;IASpB,MAAM,IAAI,GAAG,CAAC,OAAO;CAuEtB;AAED,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"IrisGridPartitionSelector.d.ts","sourceRoot":"","sources":["../src/IrisGridPartitionSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAC;AAI9D,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,kCAAkC,CAAC;AAM1C,UAAU,8BAA8B,CAAC,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACrE,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC9D,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AACD,UAAU,8BAA8B;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,cAAM,yBAAyB,CAAC,CAAC,CAAE,SAAQ,SAAS,CAClD,8BAA8B,CAAC,CAAC,CAAC,EACjC,8BAA8B,CAC/B;IACC,MAAM,CAAC,YAAY;wBACH,IAAI;0BACF,IAAI;sBACR,IAAI;;MAEhB;gBAEU,KAAK,EAAE,8BAA8B,CAAC,CAAC,CAAC;IAsBpD,oBAAoB,IAAI,IAAI;IAI5B,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAEhC,cAAc,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAElD,iBAAiB,IAAI,IAAI;IAQzB,gBAAgB,IAAI,IAAI;IAMxB,iBAAiB,IAAI,IAAI;IAMzB,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAgBvE,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAU9C,0BAA0B,IAAI,IAAI;IAMlC,kBAAkB,IAAI,IAAI;IAM1B,kBAAkB,IAAI,IAAI;IAM1B,cAAc,uCAAgB,IAAI,EAED;IAEjC,QAAQ,IAAI,IAAI;IAOhB,UAAU,IAAI,IAAI;IAQlB,YAAY,IAAI,IAAI;IASpB,MAAM,IAAI,GAAG,CAAC,OAAO;CA4EtB;AAED,eAAe,yBAAyB,CAAC"}
@@ -7,8 +7,10 @@ import { DropdownMenu, Tooltip } from '@deephaven/components';
7
7
  import { vsTriangleDown, vsClose } from '@deephaven/icons';
8
8
  import Log from '@deephaven/log';
9
9
  import debounce from 'lodash.debounce';
10
+ import { TableUtils } from '@deephaven/jsapi-utils';
10
11
  import PartitionSelectorSearch from "./PartitionSelectorSearch.js";
11
12
  import "./IrisGridPartitionSelector.css";
13
+ import IrisGridUtils from "./IrisGridUtils.js";
12
14
  import { jsx as _jsx } from "react/jsx-runtime";
13
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
14
16
  var log = Log.module('IrisGridPartitionSelector');
@@ -61,11 +63,14 @@ class IrisGridPartitionSelector extends Component {
61
63
  }
62
64
  handlePartitionChange(event) {
63
65
  log.debug2('handlePartitionChange');
66
+ var {
67
+ column
68
+ } = this.props;
64
69
  var {
65
70
  value: partition
66
71
  } = event.target;
67
72
  this.setState({
68
- partition
73
+ partition: TableUtils.isCharType(column.type) && partition.length > 0 ? partition.charCodeAt(0).toString() : partition
69
74
  });
70
75
  this.debounceUpdate();
71
76
  }
@@ -123,7 +128,7 @@ class IrisGridPartitionSelector extends Component {
123
128
  }
124
129
  render() {
125
130
  var {
126
- columnName,
131
+ column,
127
132
  dh,
128
133
  getFormattedString,
129
134
  onAppend,
@@ -148,13 +153,13 @@ class IrisGridPartitionSelector extends Component {
148
153
  children: [/*#__PURE__*/_jsx("div", {
149
154
  className: "status-message",
150
155
  children: /*#__PURE__*/_jsxs("span", {
151
- children: ["Filtering \"", columnName, "\" partition to"]
156
+ children: ["Filtering \"", column.name, "\" partition to"]
152
157
  })
153
158
  }), /*#__PURE__*/_jsxs("div", {
154
159
  className: "input-group",
155
160
  children: [/*#__PURE__*/_jsx("input", {
156
161
  type: "text",
157
- value: partition,
162
+ value: TableUtils.isCharType(column.type) && partition.toString().length > 0 ? String.fromCharCode(parseInt(partition, 10)) : IrisGridUtils.convertValueToText(partition, column.type),
158
163
  onChange: this.handlePartitionChange,
159
164
  className: "form-control input-partition"
160
165
  }), /*#__PURE__*/_jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridPartitionSelector.js","names":["React","Component","FontAwesomeIcon","DropdownMenu","Tooltip","vsTriangleDown","vsClose","Log","debounce","PartitionSelectorSearch","log","module","PARTITION_CHANGE_DEBOUNCE_MS","IrisGridPartitionSelector","constructor","props","sendUpdate","handleAppendClick","bind","handleCloseClick","handleIgnoreClick","handlePartitionChange","handlePartitionSelect","handlePartitionListResized","handleSearchOpened","handleSearchClosed","searchMenu","selectorSearch","partition","state","componentWillUnmount","debounceUpdate","cancel","debug2","onAppend","sendDone","sendFetchAll","event","value","target","setState","closeMenu","scheduleUpdate","table","applyFilter","focus","flush","onDone","onChange","onFetchAll","render","columnName","dh","getFormattedString","partitionSelectorSearch","menuElement","undefined"],"sources":["../src/IrisGridPartitionSelector.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsTriangleDown, vsClose } from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport debounce from 'lodash.debounce';\nimport type { dh as DhType, Table } from '@deephaven/jsapi-types';\nimport PartitionSelectorSearch from './PartitionSelectorSearch';\nimport './IrisGridPartitionSelector.scss';\nimport { ColumnName } from './CommonTypes';\n\nconst log = Log.module('IrisGridPartitionSelector');\n\nconst PARTITION_CHANGE_DEBOUNCE_MS = 250;\ninterface IrisGridPartitionSelectorProps<T> {\n dh: DhType;\n getFormattedString: (value: T, type: string, name: string) => string;\n table: Table;\n columnName: ColumnName;\n partition: string;\n onAppend?: (partition: string) => void;\n onFetchAll: () => void;\n onDone: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n onChange: (partition: string) => void;\n}\ninterface IrisGridPartitionSelectorState {\n partition: string;\n}\nclass IrisGridPartitionSelector<T> extends Component<\n IrisGridPartitionSelectorProps<T>,\n IrisGridPartitionSelectorState\n> {\n static defaultProps = {\n onChange: (): void => undefined,\n onFetchAll: (): void => undefined,\n onDone: (): void => undefined,\n partition: '',\n };\n\n constructor(props: IrisGridPartitionSelectorProps<T>) {\n super(props);\n\n this.handleAppendClick = this.handleAppendClick.bind(this);\n this.handleCloseClick = this.handleCloseClick.bind(this);\n this.handleIgnoreClick = this.handleIgnoreClick.bind(this);\n this.handlePartitionChange = this.handlePartitionChange.bind(this);\n this.handlePartitionSelect = this.handlePartitionSelect.bind(this);\n this.handlePartitionListResized =\n this.handlePartitionListResized.bind(this);\n this.handleSearchOpened = this.handleSearchOpened.bind(this);\n this.handleSearchClosed = this.handleSearchClosed.bind(this);\n\n this.searchMenu = null;\n this.selectorSearch = null;\n\n const { partition } = props;\n this.state = {\n partition,\n };\n }\n\n componentWillUnmount(): void {\n this.debounceUpdate.cancel();\n }\n\n searchMenu: DropdownMenu | null;\n\n selectorSearch: PartitionSelectorSearch<T> | null;\n\n handleAppendClick(): void {\n log.debug2('handleAppendClick');\n\n const { onAppend } = this.props;\n const { partition } = this.state;\n onAppend?.(partition);\n }\n\n handleCloseClick(): void {\n log.debug2('handleCloseClick');\n\n this.sendDone();\n }\n\n handleIgnoreClick(): void {\n log.debug2('handleIgnoreClick');\n\n this.sendFetchAll();\n }\n\n handlePartitionChange(event: React.ChangeEvent<HTMLInputElement>): void {\n log.debug2('handlePartitionChange');\n\n const { value: partition } = event.target;\n\n this.setState({ partition });\n\n this.debounceUpdate();\n }\n\n handlePartitionSelect(partition: string): void {\n if (this.searchMenu) {\n this.searchMenu.closeMenu();\n }\n\n this.setState({ partition }, () => {\n this.sendUpdate();\n });\n }\n\n handlePartitionListResized(): void {\n if (this.searchMenu) {\n this.searchMenu.scheduleUpdate();\n }\n }\n\n handleSearchClosed(): void {\n // Reset the table filter so it's ready next time user opens search\n const { table } = this.props;\n table.applyFilter([]);\n }\n\n handleSearchOpened(): void {\n if (this.selectorSearch) {\n this.selectorSearch.focus();\n }\n }\n\n debounceUpdate = debounce((): void => {\n this.sendUpdate();\n }, PARTITION_CHANGE_DEBOUNCE_MS);\n\n sendDone(): void {\n this.debounceUpdate.flush();\n\n const { onDone } = this.props;\n onDone();\n }\n\n sendUpdate(): void {\n log.debug2('sendUpdate');\n\n const { onChange } = this.props;\n const { partition } = this.state;\n onChange(partition);\n }\n\n sendFetchAll(): void {\n log.debug2('sendFetchAll');\n\n this.debounceUpdate.cancel();\n\n const { onFetchAll } = this.props;\n onFetchAll();\n }\n\n render(): JSX.Element {\n const { columnName, dh, getFormattedString, onAppend, onDone, table } =\n this.props;\n const { partition } = this.state;\n const partitionSelectorSearch = (\n <PartitionSelectorSearch\n dh={dh}\n key=\"search\"\n getFormattedString={getFormattedString}\n table={table}\n onSelect={this.handlePartitionSelect}\n onListResized={this.handlePartitionListResized}\n ref={selectorSearch => {\n this.selectorSearch = selectorSearch;\n }}\n />\n );\n return (\n <div className=\"iris-grid-partition-selector\">\n <div className=\"status-message\">\n <span>Filtering &quot;{columnName}&quot; partition to</span>\n </div>\n <div className=\"input-group\">\n <input\n type=\"text\"\n value={partition}\n onChange={this.handlePartitionChange}\n className=\"form-control input-partition\"\n />\n <div className=\"input-group-append\">\n <button type=\"button\" className=\"btn btn-outline-primary\">\n <FontAwesomeIcon icon={vsTriangleDown} />\n <Tooltip>Partitions</Tooltip>\n <DropdownMenu\n ref={searchMenu => {\n this.searchMenu = searchMenu;\n }}\n actions={[{ menuElement: partitionSelectorSearch }]}\n onMenuOpened={this.handleSearchOpened}\n onMenuClosed={this.handleSearchClosed}\n />\n </button>\n </div>\n </div>\n <div className=\"iris-grid-partition-selector-spacer\" />\n <button\n type=\"button\"\n className=\"btn btn-outline-primary btn-ignore\"\n onClick={this.handleIgnoreClick}\n >\n Ignore &amp; Fetch All\n </button>\n {onAppend !== undefined && (\n <button\n type=\"button\"\n className=\"btn btn-outline-primary btn-append\"\n onClick={this.handleAppendClick}\n >\n Append Command\n </button>\n )}\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-close\"\n onClick={onDone}\n >\n <FontAwesomeIcon icon={vsClose} />\n </button>\n </div>\n );\n }\n}\n\nexport default IrisGridPartitionSelector;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,YAAY,EAAEC,OAAO,QAAQ,uBAAuB;AAC7D,SAASC,cAAc,EAAEC,OAAO,QAAQ,kBAAkB;AAC1D,OAAOC,GAAG,MAAM,gBAAgB;AAChC,OAAOC,QAAQ,MAAM,iBAAiB;AAAC,OAEhCC,uBAAuB;AAAA;AAAA;AAAA;AAI9B,IAAMC,GAAG,GAAGH,GAAG,CAACI,MAAM,CAAC,2BAA2B,CAAC;AAEnD,IAAMC,4BAA4B,GAAG,GAAG;AAexC,MAAMC,yBAAyB,SAAYZ,SAAS,CAGlD;EAQAa,WAAW,CAACC,KAAwC,EAAE;IACpD,KAAK,CAACA,KAAK,CAAC;IAAC;IAAA;IAAA,wCAuFEP,QAAQ,CAAC,MAAY;MACpC,IAAI,CAACQ,UAAU,EAAE;IACnB,CAAC,EAAEJ,4BAA4B,CAAC;IAvF9B,IAAI,CAACK,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACC,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACD,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACE,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACF,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACG,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACH,IAAI,CAAC,IAAI,CAAC;IAClE,IAAI,CAACI,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACJ,IAAI,CAAC,IAAI,CAAC;IAClE,IAAI,CAACK,0BAA0B,GAC7B,IAAI,CAACA,0BAA0B,CAACL,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACM,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACN,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,CAACO,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACP,IAAI,CAAC,IAAI,CAAC;IAE5D,IAAI,CAACQ,UAAU,GAAG,IAAI;IACtB,IAAI,CAACC,cAAc,GAAG,IAAI;IAE1B,IAAM;MAAEC;IAAU,CAAC,GAAGb,KAAK;IAC3B,IAAI,CAACc,KAAK,GAAG;MACXD;IACF,CAAC;EACH;EAEAE,oBAAoB,GAAS;IAC3B,IAAI,CAACC,cAAc,CAACC,MAAM,EAAE;EAC9B;EAMAf,iBAAiB,GAAS;IACxBP,GAAG,CAACuB,MAAM,CAAC,mBAAmB,CAAC;IAE/B,IAAM;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACnB,KAAK;IAC/B,IAAM;MAAEa;IAAU,CAAC,GAAG,IAAI,CAACC,KAAK;IAChCK,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGN,SAAS,CAAC;EACvB;EAEAT,gBAAgB,GAAS;IACvBT,GAAG,CAACuB,MAAM,CAAC,kBAAkB,CAAC;IAE9B,IAAI,CAACE,QAAQ,EAAE;EACjB;EAEAf,iBAAiB,GAAS;IACxBV,GAAG,CAACuB,MAAM,CAAC,mBAAmB,CAAC;IAE/B,IAAI,CAACG,YAAY,EAAE;EACrB;EAEAf,qBAAqB,CAACgB,KAA0C,EAAQ;IACtE3B,GAAG,CAACuB,MAAM,CAAC,uBAAuB,CAAC;IAEnC,IAAM;MAAEK,KAAK,EAAEV;IAAU,CAAC,GAAGS,KAAK,CAACE,MAAM;IAEzC,IAAI,CAACC,QAAQ,CAAC;MAAEZ;IAAU,CAAC,CAAC;IAE5B,IAAI,CAACG,cAAc,EAAE;EACvB;EAEAT,qBAAqB,CAACM,SAAiB,EAAQ;IAC7C,IAAI,IAAI,CAACF,UAAU,EAAE;MACnB,IAAI,CAACA,UAAU,CAACe,SAAS,EAAE;IAC7B;IAEA,IAAI,CAACD,QAAQ,CAAC;MAAEZ;IAAU,CAAC,EAAE,MAAM;MACjC,IAAI,CAACZ,UAAU,EAAE;IACnB,CAAC,CAAC;EACJ;EAEAO,0BAA0B,GAAS;IACjC,IAAI,IAAI,CAACG,UAAU,EAAE;MACnB,IAAI,CAACA,UAAU,CAACgB,cAAc,EAAE;IAClC;EACF;EAEAjB,kBAAkB,GAAS;IACzB;IACA,IAAM;MAAEkB;IAAM,CAAC,GAAG,IAAI,CAAC5B,KAAK;IAC5B4B,KAAK,CAACC,WAAW,CAAC,EAAE,CAAC;EACvB;EAEApB,kBAAkB,GAAS;IACzB,IAAI,IAAI,CAACG,cAAc,EAAE;MACvB,IAAI,CAACA,cAAc,CAACkB,KAAK,EAAE;IAC7B;EACF;EAMAV,QAAQ,GAAS;IACf,IAAI,CAACJ,cAAc,CAACe,KAAK,EAAE;IAE3B,IAAM;MAAEC;IAAO,CAAC,GAAG,IAAI,CAAChC,KAAK;IAC7BgC,MAAM,EAAE;EACV;EAEA/B,UAAU,GAAS;IACjBN,GAAG,CAACuB,MAAM,CAAC,YAAY,CAAC;IAExB,IAAM;MAAEe;IAAS,CAAC,GAAG,IAAI,CAACjC,KAAK;IAC/B,IAAM;MAAEa;IAAU,CAAC,GAAG,IAAI,CAACC,KAAK;IAChCmB,QAAQ,CAACpB,SAAS,CAAC;EACrB;EAEAQ,YAAY,GAAS;IACnB1B,GAAG,CAACuB,MAAM,CAAC,cAAc,CAAC;IAE1B,IAAI,CAACF,cAAc,CAACC,MAAM,EAAE;IAE5B,IAAM;MAAEiB;IAAW,CAAC,GAAG,IAAI,CAAClC,KAAK;IACjCkC,UAAU,EAAE;EACd;EAEAC,MAAM,GAAgB;IACpB,IAAM;MAAEC,UAAU;MAAEC,EAAE;MAAEC,kBAAkB;MAAEnB,QAAQ;MAAEa,MAAM;MAAEJ;IAAM,CAAC,GACnE,IAAI,CAAC5B,KAAK;IACZ,IAAM;MAAEa;IAAU,CAAC,GAAG,IAAI,CAACC,KAAK;IAChC,IAAMyB,uBAAuB,gBAC3B,KAAC,uBAAuB;MACtB,EAAE,EAAEF,EAAG;MAEP,kBAAkB,EAAEC,kBAAmB;MACvC,KAAK,EAAEV,KAAM;MACb,QAAQ,EAAE,IAAI,CAACrB,qBAAsB;MACrC,aAAa,EAAE,IAAI,CAACC,0BAA2B;MAC/C,GAAG,EAAEI,cAAc,IAAI;QACrB,IAAI,CAACA,cAAc,GAAGA,cAAc;MACtC;IAAE,GAPE,QAAQ,CASf;IACD,oBACE;MAAK,SAAS,EAAC,8BAA8B;MAAA,wBAC3C;QAAK,SAAS,EAAC,gBAAgB;QAAA,uBAC7B;UAAA,WAAM,cAAgB,EAACwB,UAAU,EAAC,iBAAmB;QAAA;MAAO,EACxD,eACN;QAAK,SAAS,EAAC,aAAa;QAAA,wBAC1B;UACE,IAAI,EAAC,MAAM;UACX,KAAK,EAAEvB,SAAU;UACjB,QAAQ,EAAE,IAAI,CAACP,qBAAsB;UACrC,SAAS,EAAC;QAA8B,EACxC,eACF;UAAK,SAAS,EAAC,oBAAoB;UAAA,uBACjC;YAAQ,IAAI,EAAC,QAAQ;YAAC,SAAS,EAAC,yBAAyB;YAAA,wBACvD,KAAC,eAAe;cAAC,IAAI,EAAEhB;YAAe,EAAG,eACzC,KAAC,OAAO;cAAA,UAAC;YAAU,EAAU,eAC7B,KAAC,YAAY;cACX,GAAG,EAAEqB,UAAU,IAAI;gBACjB,IAAI,CAACA,UAAU,GAAGA,UAAU;cAC9B,CAAE;cACF,OAAO,EAAE,CAAC;gBAAE6B,WAAW,EAAED;cAAwB,CAAC,CAAE;cACpD,YAAY,EAAE,IAAI,CAAC9B,kBAAmB;cACtC,YAAY,EAAE,IAAI,CAACC;YAAmB,EACtC;UAAA;QACK,EACL;MAAA,EACF,eACN;QAAK,SAAS,EAAC;MAAqC,EAAG,eACvD;QACE,IAAI,EAAC,QAAQ;QACb,SAAS,EAAC,oCAAoC;QAC9C,OAAO,EAAE,IAAI,CAACL,iBAAkB;QAAA,UACjC;MAED,EAAS,EACRc,QAAQ,KAAKsB,SAAS,iBACrB;QACE,IAAI,EAAC,QAAQ;QACb,SAAS,EAAC,oCAAoC;QAC9C,OAAO,EAAE,IAAI,CAACvC,iBAAkB;QAAA,UACjC;MAED,EACD,eACD;QACE,IAAI,EAAC,QAAQ;QACb,SAAS,EAAC,sCAAsC;QAChD,OAAO,EAAE8B,MAAO;QAAA,uBAEhB,KAAC,eAAe;UAAC,IAAI,EAAEzC;QAAQ;MAAG,EAC3B;IAAA,EACL;EAEV;AACF;AAAC,gBAtMKO,yBAAyB,kBAIP;EACpBmC,QAAQ,EAAE,MAAYQ,SAAS;EAC/BP,UAAU,EAAE,MAAYO,SAAS;EACjCT,MAAM,EAAE,MAAYS,SAAS;EAC7B5B,SAAS,EAAE;AACb,CAAC;AA+LH,eAAef,yBAAyB"}
1
+ {"version":3,"file":"IrisGridPartitionSelector.js","names":["React","Component","FontAwesomeIcon","DropdownMenu","Tooltip","vsTriangleDown","vsClose","Log","debounce","TableUtils","PartitionSelectorSearch","IrisGridUtils","log","module","PARTITION_CHANGE_DEBOUNCE_MS","IrisGridPartitionSelector","constructor","props","sendUpdate","handleAppendClick","bind","handleCloseClick","handleIgnoreClick","handlePartitionChange","handlePartitionSelect","handlePartitionListResized","handleSearchOpened","handleSearchClosed","searchMenu","selectorSearch","partition","state","componentWillUnmount","debounceUpdate","cancel","debug2","onAppend","sendDone","sendFetchAll","event","column","value","target","setState","isCharType","type","length","charCodeAt","toString","closeMenu","scheduleUpdate","table","applyFilter","focus","flush","onDone","onChange","onFetchAll","render","dh","getFormattedString","partitionSelectorSearch","name","String","fromCharCode","parseInt","convertValueToText","menuElement","undefined"],"sources":["../src/IrisGridPartitionSelector.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsTriangleDown, vsClose } from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport debounce from 'lodash.debounce';\nimport type { Column, dh as DhType, Table } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport PartitionSelectorSearch from './PartitionSelectorSearch';\nimport './IrisGridPartitionSelector.scss';\nimport IrisGridUtils from './IrisGridUtils';\n\nconst log = Log.module('IrisGridPartitionSelector');\n\nconst PARTITION_CHANGE_DEBOUNCE_MS = 250;\ninterface IrisGridPartitionSelectorProps<T> {\n dh: DhType;\n getFormattedString: (value: T, type: string, name: string) => string;\n table: Table;\n column: Column;\n partition: string;\n onAppend?: (partition: string) => void;\n onFetchAll: () => void;\n onDone: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n onChange: (partition: string) => void;\n}\ninterface IrisGridPartitionSelectorState {\n partition: string;\n}\nclass IrisGridPartitionSelector<T> extends Component<\n IrisGridPartitionSelectorProps<T>,\n IrisGridPartitionSelectorState\n> {\n static defaultProps = {\n onChange: (): void => undefined,\n onFetchAll: (): void => undefined,\n onDone: (): void => undefined,\n partition: '',\n };\n\n constructor(props: IrisGridPartitionSelectorProps<T>) {\n super(props);\n\n this.handleAppendClick = this.handleAppendClick.bind(this);\n this.handleCloseClick = this.handleCloseClick.bind(this);\n this.handleIgnoreClick = this.handleIgnoreClick.bind(this);\n this.handlePartitionChange = this.handlePartitionChange.bind(this);\n this.handlePartitionSelect = this.handlePartitionSelect.bind(this);\n this.handlePartitionListResized =\n this.handlePartitionListResized.bind(this);\n this.handleSearchOpened = this.handleSearchOpened.bind(this);\n this.handleSearchClosed = this.handleSearchClosed.bind(this);\n\n this.searchMenu = null;\n this.selectorSearch = null;\n\n const { partition } = props;\n this.state = {\n partition,\n };\n }\n\n componentWillUnmount(): void {\n this.debounceUpdate.cancel();\n }\n\n searchMenu: DropdownMenu | null;\n\n selectorSearch: PartitionSelectorSearch<T> | null;\n\n handleAppendClick(): void {\n log.debug2('handleAppendClick');\n\n const { onAppend } = this.props;\n const { partition } = this.state;\n onAppend?.(partition);\n }\n\n handleCloseClick(): void {\n log.debug2('handleCloseClick');\n\n this.sendDone();\n }\n\n handleIgnoreClick(): void {\n log.debug2('handleIgnoreClick');\n\n this.sendFetchAll();\n }\n\n handlePartitionChange(event: React.ChangeEvent<HTMLInputElement>): void {\n log.debug2('handlePartitionChange');\n\n const { column } = this.props;\n const { value: partition } = event.target;\n\n this.setState({\n partition:\n TableUtils.isCharType(column.type) && partition.length > 0\n ? partition.charCodeAt(0).toString()\n : partition,\n });\n\n this.debounceUpdate();\n }\n\n handlePartitionSelect(partition: string): void {\n if (this.searchMenu) {\n this.searchMenu.closeMenu();\n }\n\n this.setState({ partition }, () => {\n this.sendUpdate();\n });\n }\n\n handlePartitionListResized(): void {\n if (this.searchMenu) {\n this.searchMenu.scheduleUpdate();\n }\n }\n\n handleSearchClosed(): void {\n // Reset the table filter so it's ready next time user opens search\n const { table } = this.props;\n table.applyFilter([]);\n }\n\n handleSearchOpened(): void {\n if (this.selectorSearch) {\n this.selectorSearch.focus();\n }\n }\n\n debounceUpdate = debounce((): void => {\n this.sendUpdate();\n }, PARTITION_CHANGE_DEBOUNCE_MS);\n\n sendDone(): void {\n this.debounceUpdate.flush();\n\n const { onDone } = this.props;\n onDone();\n }\n\n sendUpdate(): void {\n log.debug2('sendUpdate');\n\n const { onChange } = this.props;\n const { partition } = this.state;\n onChange(partition);\n }\n\n sendFetchAll(): void {\n log.debug2('sendFetchAll');\n\n this.debounceUpdate.cancel();\n\n const { onFetchAll } = this.props;\n onFetchAll();\n }\n\n render(): JSX.Element {\n const { column, dh, getFormattedString, onAppend, onDone, table } =\n this.props;\n const { partition } = this.state;\n const partitionSelectorSearch = (\n <PartitionSelectorSearch\n dh={dh}\n key=\"search\"\n getFormattedString={getFormattedString}\n table={table}\n onSelect={this.handlePartitionSelect}\n onListResized={this.handlePartitionListResized}\n ref={selectorSearch => {\n this.selectorSearch = selectorSearch;\n }}\n />\n );\n return (\n <div className=\"iris-grid-partition-selector\">\n <div className=\"status-message\">\n <span>Filtering &quot;{column.name}&quot; partition to</span>\n </div>\n <div className=\"input-group\">\n <input\n type=\"text\"\n value={\n TableUtils.isCharType(column.type) &&\n partition.toString().length > 0\n ? String.fromCharCode(parseInt(partition, 10))\n : IrisGridUtils.convertValueToText(partition, column.type)\n }\n onChange={this.handlePartitionChange}\n className=\"form-control input-partition\"\n />\n <div className=\"input-group-append\">\n <button type=\"button\" className=\"btn btn-outline-primary\">\n <FontAwesomeIcon icon={vsTriangleDown} />\n <Tooltip>Partitions</Tooltip>\n <DropdownMenu\n ref={searchMenu => {\n this.searchMenu = searchMenu;\n }}\n actions={[{ menuElement: partitionSelectorSearch }]}\n onMenuOpened={this.handleSearchOpened}\n onMenuClosed={this.handleSearchClosed}\n />\n </button>\n </div>\n </div>\n <div className=\"iris-grid-partition-selector-spacer\" />\n <button\n type=\"button\"\n className=\"btn btn-outline-primary btn-ignore\"\n onClick={this.handleIgnoreClick}\n >\n Ignore &amp; Fetch All\n </button>\n {onAppend !== undefined && (\n <button\n type=\"button\"\n className=\"btn btn-outline-primary btn-append\"\n onClick={this.handleAppendClick}\n >\n Append Command\n </button>\n )}\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-close\"\n onClick={onDone}\n >\n <FontAwesomeIcon icon={vsClose} />\n </button>\n </div>\n );\n }\n}\n\nexport default IrisGridPartitionSelector;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,YAAY,EAAEC,OAAO,QAAQ,uBAAuB;AAC7D,SAASC,cAAc,EAAEC,OAAO,QAAQ,kBAAkB;AAC1D,OAAOC,GAAG,MAAM,gBAAgB;AAChC,OAAOC,QAAQ,MAAM,iBAAiB;AAEtC,SAASC,UAAU,QAAQ,wBAAwB;AAAC,OAC7CC,uBAAuB;AAAA;AAAA,OAEvBC,aAAa;AAAA;AAAA;AAEpB,IAAMC,GAAG,GAAGL,GAAG,CAACM,MAAM,CAAC,2BAA2B,CAAC;AAEnD,IAAMC,4BAA4B,GAAG,GAAG;AAexC,MAAMC,yBAAyB,SAAYd,SAAS,CAGlD;EAQAe,WAAW,CAACC,KAAwC,EAAE;IACpD,KAAK,CAACA,KAAK,CAAC;IAAC;IAAA;IAAA,wCA6FET,QAAQ,CAAC,MAAY;MACpC,IAAI,CAACU,UAAU,EAAE;IACnB,CAAC,EAAEJ,4BAA4B,CAAC;IA7F9B,IAAI,CAACK,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACC,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACD,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACE,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACF,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACG,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACH,IAAI,CAAC,IAAI,CAAC;IAClE,IAAI,CAACI,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACJ,IAAI,CAAC,IAAI,CAAC;IAClE,IAAI,CAACK,0BAA0B,GAC7B,IAAI,CAACA,0BAA0B,CAACL,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACM,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACN,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,CAACO,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACP,IAAI,CAAC,IAAI,CAAC;IAE5D,IAAI,CAACQ,UAAU,GAAG,IAAI;IACtB,IAAI,CAACC,cAAc,GAAG,IAAI;IAE1B,IAAM;MAAEC;IAAU,CAAC,GAAGb,KAAK;IAC3B,IAAI,CAACc,KAAK,GAAG;MACXD;IACF,CAAC;EACH;EAEAE,oBAAoB,GAAS;IAC3B,IAAI,CAACC,cAAc,CAACC,MAAM,EAAE;EAC9B;EAMAf,iBAAiB,GAAS;IACxBP,GAAG,CAACuB,MAAM,CAAC,mBAAmB,CAAC;IAE/B,IAAM;MAAEC;IAAS,CAAC,GAAG,IAAI,CAACnB,KAAK;IAC/B,IAAM;MAAEa;IAAU,CAAC,GAAG,IAAI,CAACC,KAAK;IAChCK,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGN,SAAS,CAAC;EACvB;EAEAT,gBAAgB,GAAS;IACvBT,GAAG,CAACuB,MAAM,CAAC,kBAAkB,CAAC;IAE9B,IAAI,CAACE,QAAQ,EAAE;EACjB;EAEAf,iBAAiB,GAAS;IACxBV,GAAG,CAACuB,MAAM,CAAC,mBAAmB,CAAC;IAE/B,IAAI,CAACG,YAAY,EAAE;EACrB;EAEAf,qBAAqB,CAACgB,KAA0C,EAAQ;IACtE3B,GAAG,CAACuB,MAAM,CAAC,uBAAuB,CAAC;IAEnC,IAAM;MAAEK;IAAO,CAAC,GAAG,IAAI,CAACvB,KAAK;IAC7B,IAAM;MAAEwB,KAAK,EAAEX;IAAU,CAAC,GAAGS,KAAK,CAACG,MAAM;IAEzC,IAAI,CAACC,QAAQ,CAAC;MACZb,SAAS,EACPrB,UAAU,CAACmC,UAAU,CAACJ,MAAM,CAACK,IAAI,CAAC,IAAIf,SAAS,CAACgB,MAAM,GAAG,CAAC,GACtDhB,SAAS,CAACiB,UAAU,CAAC,CAAC,CAAC,CAACC,QAAQ,EAAE,GAClClB;IACR,CAAC,CAAC;IAEF,IAAI,CAACG,cAAc,EAAE;EACvB;EAEAT,qBAAqB,CAACM,SAAiB,EAAQ;IAC7C,IAAI,IAAI,CAACF,UAAU,EAAE;MACnB,IAAI,CAACA,UAAU,CAACqB,SAAS,EAAE;IAC7B;IAEA,IAAI,CAACN,QAAQ,CAAC;MAAEb;IAAU,CAAC,EAAE,MAAM;MACjC,IAAI,CAACZ,UAAU,EAAE;IACnB,CAAC,CAAC;EACJ;EAEAO,0BAA0B,GAAS;IACjC,IAAI,IAAI,CAACG,UAAU,EAAE;MACnB,IAAI,CAACA,UAAU,CAACsB,cAAc,EAAE;IAClC;EACF;EAEAvB,kBAAkB,GAAS;IACzB;IACA,IAAM;MAAEwB;IAAM,CAAC,GAAG,IAAI,CAAClC,KAAK;IAC5BkC,KAAK,CAACC,WAAW,CAAC,EAAE,CAAC;EACvB;EAEA1B,kBAAkB,GAAS;IACzB,IAAI,IAAI,CAACG,cAAc,EAAE;MACvB,IAAI,CAACA,cAAc,CAACwB,KAAK,EAAE;IAC7B;EACF;EAMAhB,QAAQ,GAAS;IACf,IAAI,CAACJ,cAAc,CAACqB,KAAK,EAAE;IAE3B,IAAM;MAAEC;IAAO,CAAC,GAAG,IAAI,CAACtC,KAAK;IAC7BsC,MAAM,EAAE;EACV;EAEArC,UAAU,GAAS;IACjBN,GAAG,CAACuB,MAAM,CAAC,YAAY,CAAC;IAExB,IAAM;MAAEqB;IAAS,CAAC,GAAG,IAAI,CAACvC,KAAK;IAC/B,IAAM;MAAEa;IAAU,CAAC,GAAG,IAAI,CAACC,KAAK;IAChCyB,QAAQ,CAAC1B,SAAS,CAAC;EACrB;EAEAQ,YAAY,GAAS;IACnB1B,GAAG,CAACuB,MAAM,CAAC,cAAc,CAAC;IAE1B,IAAI,CAACF,cAAc,CAACC,MAAM,EAAE;IAE5B,IAAM;MAAEuB;IAAW,CAAC,GAAG,IAAI,CAACxC,KAAK;IACjCwC,UAAU,EAAE;EACd;EAEAC,MAAM,GAAgB;IACpB,IAAM;MAAElB,MAAM;MAAEmB,EAAE;MAAEC,kBAAkB;MAAExB,QAAQ;MAAEmB,MAAM;MAAEJ;IAAM,CAAC,GAC/D,IAAI,CAAClC,KAAK;IACZ,IAAM;MAAEa;IAAU,CAAC,GAAG,IAAI,CAACC,KAAK;IAChC,IAAM8B,uBAAuB,gBAC3B,KAAC,uBAAuB;MACtB,EAAE,EAAEF,EAAG;MAEP,kBAAkB,EAAEC,kBAAmB;MACvC,KAAK,EAAET,KAAM;MACb,QAAQ,EAAE,IAAI,CAAC3B,qBAAsB;MACrC,aAAa,EAAE,IAAI,CAACC,0BAA2B;MAC/C,GAAG,EAAEI,cAAc,IAAI;QACrB,IAAI,CAACA,cAAc,GAAGA,cAAc;MACtC;IAAE,GAPE,QAAQ,CASf;IACD,oBACE;MAAK,SAAS,EAAC,8BAA8B;MAAA,wBAC3C;QAAK,SAAS,EAAC,gBAAgB;QAAA,uBAC7B;UAAA,WAAM,cAAgB,EAACW,MAAM,CAACsB,IAAI,EAAC,iBAAmB;QAAA;MAAO,EACzD,eACN;QAAK,SAAS,EAAC,aAAa;QAAA,wBAC1B;UACE,IAAI,EAAC,MAAM;UACX,KAAK,EACHrD,UAAU,CAACmC,UAAU,CAACJ,MAAM,CAACK,IAAI,CAAC,IAClCf,SAAS,CAACkB,QAAQ,EAAE,CAACF,MAAM,GAAG,CAAC,GAC3BiB,MAAM,CAACC,YAAY,CAACC,QAAQ,CAACnC,SAAS,EAAE,EAAE,CAAC,CAAC,GAC5CnB,aAAa,CAACuD,kBAAkB,CAACpC,SAAS,EAAEU,MAAM,CAACK,IAAI,CAC5D;UACD,QAAQ,EAAE,IAAI,CAACtB,qBAAsB;UACrC,SAAS,EAAC;QAA8B,EACxC,eACF;UAAK,SAAS,EAAC,oBAAoB;UAAA,uBACjC;YAAQ,IAAI,EAAC,QAAQ;YAAC,SAAS,EAAC,yBAAyB;YAAA,wBACvD,KAAC,eAAe;cAAC,IAAI,EAAElB;YAAe,EAAG,eACzC,KAAC,OAAO;cAAA,UAAC;YAAU,EAAU,eAC7B,KAAC,YAAY;cACX,GAAG,EAAEuB,UAAU,IAAI;gBACjB,IAAI,CAACA,UAAU,GAAGA,UAAU;cAC9B,CAAE;cACF,OAAO,EAAE,CAAC;gBAAEuC,WAAW,EAAEN;cAAwB,CAAC,CAAE;cACpD,YAAY,EAAE,IAAI,CAACnC,kBAAmB;cACtC,YAAY,EAAE,IAAI,CAACC;YAAmB,EACtC;UAAA;QACK,EACL;MAAA,EACF,eACN;QAAK,SAAS,EAAC;MAAqC,EAAG,eACvD;QACE,IAAI,EAAC,QAAQ;QACb,SAAS,EAAC,oCAAoC;QAC9C,OAAO,EAAE,IAAI,CAACL,iBAAkB;QAAA,UACjC;MAED,EAAS,EACRc,QAAQ,KAAKgC,SAAS,iBACrB;QACE,IAAI,EAAC,QAAQ;QACb,SAAS,EAAC,oCAAoC;QAC9C,OAAO,EAAE,IAAI,CAACjD,iBAAkB;QAAA,UACjC;MAED,EACD,eACD;QACE,IAAI,EAAC,QAAQ;QACb,SAAS,EAAC,sCAAsC;QAChD,OAAO,EAAEoC,MAAO;QAAA,uBAEhB,KAAC,eAAe;UAAC,IAAI,EAAEjD;QAAQ;MAAG,EAC3B;IAAA,EACL;EAEV;AACF;AAAC,gBAjNKS,yBAAyB,kBAIP;EACpByC,QAAQ,EAAE,MAAYY,SAAS;EAC/BX,UAAU,EAAE,MAAYW,SAAS;EACjCb,MAAM,EAAE,MAAYa,SAAS;EAC7BtC,SAAS,EAAE;AACb,CAAC;AA0MH,eAAef,yBAAyB"}
@@ -1,6 +1,7 @@
1
1
  /// <reference types="lodash" />
2
2
  import React, { Component } from 'react';
3
3
  import PropTypes from 'prop-types';
4
+ import { TableUtils } from '@deephaven/jsapi-utils';
4
5
  import type { dh as DhType, Table } from '@deephaven/jsapi-types';
5
6
  import { ItemList } from '@deephaven/components';
6
7
  import './PartitionSelectorSearch.scss';
@@ -57,10 +58,10 @@ declare class PartitionSelectorSearch<T> extends Component<PartitionSelectorSear
57
58
  itemList: ItemList<Item> | null;
58
59
  searchInput: HTMLInputElement | null;
59
60
  timer: null;
61
+ tableUtils: TableUtils;
60
62
  handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): boolean;
61
63
  handleListKeydown(event: React.KeyboardEvent<HTMLDivElement>): void;
62
64
  handleFilterChange(): void;
63
- handleInputFocus(): void;
64
65
  handleSelect(itemIndex: ModelIndex): void;
65
66
  handleTableUpdate(event: CustomEvent): void;
66
67
  handleTextChange(event: React.ChangeEvent<HTMLInputElement>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"PartitionSelectorSearch.d.ts","sourceRoot":"","sources":["../src/PartitionSelectorSearch.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAkB,MAAM,uBAAuB,CAAC;AAGjE,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,UAAU,IAAI;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,4BAA4B,CAAC,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACrE,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AACD,UAAU,4BAA4B;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AACD,cAAM,uBAAuB,CAAC,CAAC,CAAE,SAAQ,SAAS,CAChD,4BAA4B,CAAC,CAAC,CAAC,EAC/B,4BAA4B,CAC7B;IACC,MAAM,CAAC,iBAAiB,SAAM;IAE9B,MAAM,CAAC,YAAY;;wBAEH,IAAI;6BACC,IAAI;MACvB;IAEF,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;;;MAmBd;IAEF,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;gBAM5B,KAAK,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAyBlD,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAChB,SAAS,EAAE,4BAA4B,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,4BAA4B,GACtC,IAAI;IAWP,oBAAoB,IAAI,IAAI;IAM5B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEhC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAErC,KAAK,EAAE,IAAI,CAAC;IAEZ,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,OAAO;IAqCpE,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI;IAWnE,kBAAkB,IAAI,IAAI;IAQ1B,gBAAgB,IAAI,IAAI;IAMxB,YAAY,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAezC,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAsB3C,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAUlE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAW7D,oBAAoB,uCAAgB,IAAI,EAEb;IAE3B,KAAK,IAAI,IAAI;IAMb,cAAc,IAAI,IAAI;IAUtB,aAAa,IAAI,IAAI;IASrB,YAAY,IAAI,IAAI;IAsBpB,MAAM,IAAI,GAAG,CAAC,OAAO;CAwDtB;AAED,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"PartitionSelectorSearch.d.ts","sourceRoot":"","sources":["../src/PartitionSelectorSearch.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAkB,MAAM,uBAAuB,CAAC;AAGjE,OAAO,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,UAAU,IAAI;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,4BAA4B,CAAC,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACrE,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AACD,UAAU,4BAA4B;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AACD,cAAM,uBAAuB,CAAC,CAAC,CAAE,SAAQ,SAAS,CAChD,4BAA4B,CAAC,CAAC,CAAC,EAC/B,4BAA4B,CAC7B;IACC,MAAM,CAAC,iBAAiB,SAAM;IAE9B,MAAM,CAAC,YAAY;;wBAEH,IAAI;6BACC,IAAI;MACvB;IAEF,MAAM,CAAC,SAAS;;;;;;;;;;;;;;;;;MAmBd;IAEF,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;gBAM5B,KAAK,EAAE,4BAA4B,CAAC,CAAC,CAAC;IA2BlD,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAChB,SAAS,EAAE,4BAA4B,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,4BAA4B,GACtC,IAAI;IAWP,oBAAoB,IAAI,IAAI;IAM5B,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAEhC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAErC,KAAK,EAAE,IAAI,CAAC;IAEZ,UAAU,EAAE,UAAU,CAAC;IAEvB,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,OAAO;IAqCpE,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI;IAWnE,kBAAkB,IAAI,IAAI;IAQ1B,YAAY,CAAC,SAAS,EAAE,UAAU,GAAG,IAAI;IAezC,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAsB3C,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAelE,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAW7D,oBAAoB,uCAAgB,IAAI,EAEb;IAE3B,KAAK,IAAI,IAAI;IAMb,cAAc,IAAI,IAAI;IAUtB,aAAa,IAAI,IAAI;IASrB,YAAY,IAAI,IAAI;IAyBpB,MAAM,IAAI,GAAG,CAAC,OAAO;CA4DtB;AAED,eAAe,uBAAuB,CAAC"}
@@ -4,6 +4,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
4
4
  import React, { Component } from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import debounce from 'lodash.debounce';
7
+ import { TableUtils } from '@deephaven/jsapi-utils';
7
8
  import { ItemList, LoadingSpinner } from '@deephaven/components';
8
9
  import Log from '@deephaven/log';
9
10
  import { CanceledPromiseError } from '@deephaven/utils';
@@ -23,11 +24,11 @@ class PartitionSelectorSearch extends Component {
23
24
  _defineProperty(this, "itemList", void 0);
24
25
  _defineProperty(this, "searchInput", void 0);
25
26
  _defineProperty(this, "timer", void 0);
27
+ _defineProperty(this, "tableUtils", void 0);
26
28
  _defineProperty(this, "debounceUpdateFilter", debounce(() => {
27
29
  this.updateFilter();
28
30
  }, DEBOUNCE_UPDATE_FILTER));
29
31
  this.handleFilterChange = this.handleFilterChange.bind(this);
30
- this.handleInputFocus = this.handleInputFocus.bind(this);
31
32
  this.handleKeyDown = this.handleKeyDown.bind(this);
32
33
  this.handleListKeydown = this.handleListKeydown.bind(this);
33
34
  this.handleSelect = this.handleSelect.bind(this);
@@ -37,6 +38,10 @@ class PartitionSelectorSearch extends Component {
37
38
  this.itemList = null;
38
39
  this.searchInput = null;
39
40
  this.timer = null;
41
+ var {
42
+ dh
43
+ } = props;
44
+ this.tableUtils = new TableUtils(dh);
40
45
  this.state = {
41
46
  offset: 0,
42
47
  itemCount: 0,
@@ -126,11 +131,6 @@ class PartitionSelectorSearch extends Component {
126
131
  isLoading: true
127
132
  });
128
133
  }
129
- handleInputFocus() {
130
- if (this.itemList) {
131
- this.itemList.focusItem(0);
132
- }
133
- }
134
134
  handleSelect(itemIndex) {
135
135
  log.debug2('handleSelect', itemIndex);
136
136
  var {
@@ -181,12 +181,21 @@ class PartitionSelectorSearch extends Component {
181
181
  }
182
182
  handleTextChange(event) {
183
183
  log.debug2('handleTextChange');
184
+ var {
185
+ table
186
+ } = this.props;
184
187
  var {
185
188
  value: text
186
189
  } = event.target;
187
- this.setState({
188
- text
189
- });
190
+ if (text !== '' && TableUtils.isIntegerType(table.columns[0].type)) {
191
+ this.setState({
192
+ text: parseInt(text, 10).toString()
193
+ });
194
+ } else {
195
+ this.setState({
196
+ text
197
+ });
198
+ }
190
199
  this.debounceUpdateFilter();
191
200
  }
192
201
  handleViewportChange(topRow, bottomRow) {
@@ -224,7 +233,6 @@ class PartitionSelectorSearch extends Component {
224
233
  }
225
234
  updateFilter() {
226
235
  var {
227
- dh,
228
236
  initialPageSize,
229
237
  table
230
238
  } = this.props;
@@ -235,7 +243,10 @@ class PartitionSelectorSearch extends Component {
235
243
  var filters = [];
236
244
  if (filterText.length > 0) {
237
245
  var column = table.columns[0];
238
- var filter = column.filter().invoke('matches', dh.FilterValue.ofString("(?s)(?i).*\\Q".concat(filterText, "\\E.*")));
246
+ var filter = this.tableUtils.makeQuickFilterFromComponent(column, TableUtils.isStringType(column.type) ? "~".concat(filterText) : filterText);
247
+ if (!filter) {
248
+ throw new Error('Unable to create column filter for partition selector');
249
+ }
239
250
  filters.push(filter);
240
251
  }
241
252
  log.debug2('updateFilter', filters);
@@ -243,6 +254,9 @@ class PartitionSelectorSearch extends Component {
243
254
  table.setViewport(0, initialPageSize);
244
255
  }
245
256
  render() {
257
+ var {
258
+ table
259
+ } = this.props;
246
260
  var {
247
261
  isLoading,
248
262
  itemCount,
@@ -253,19 +267,19 @@ class PartitionSelectorSearch extends Component {
253
267
  var listHeight = Math.min(itemCount, PartitionSelectorSearch.MAX_VISIBLE_ITEMS) * ItemList.DEFAULT_ROW_HEIGHT +
254
268
  // Adjust for ListItem vertical padding - .375rem ~ 5.25px
255
269
  11;
270
+ var inputType = TableUtils.isNumberType(table.columns[0].type) ? 'number' : 'text';
256
271
  return /*#__PURE__*/_jsxs("div", {
257
272
  className: "iris-grid-partition-selector-search",
258
273
  children: [/*#__PURE__*/_jsx("div", {
259
274
  className: "search-container",
260
275
  children: /*#__PURE__*/_jsx("input", {
261
- type: "text",
276
+ type: inputType,
262
277
  ref: searchInput => {
263
278
  this.searchInput = searchInput;
264
279
  },
265
280
  value: text,
266
281
  placeholder: "Available Partitions",
267
282
  onChange: this.handleTextChange,
268
- onFocus: this.handleInputFocus,
269
283
  onKeyDown: this.handleKeyDown,
270
284
  className: "form-control input-partition"
271
285
  })
@@ -1 +1 @@
1
- {"version":3,"file":"PartitionSelectorSearch.js","names":["React","Component","PropTypes","debounce","ItemList","LoadingSpinner","Log","CanceledPromiseError","log","module","DEBOUNCE_UPDATE_FILTER","PartitionSelectorSearch","handleError","error","constructor","props","updateFilter","handleFilterChange","bind","handleInputFocus","handleKeyDown","handleListKeydown","handleSelect","handleTableUpdate","handleTextChange","handleViewportChange","itemList","searchInput","timer","state","offset","itemCount","items","text","isLoading","componentDidMount","startListening","componentDidUpdate","prevProps","prevState","onListResized","componentWillUnmount","debounceUpdateFilter","cancel","stopListening","event","key","selectedValue","length","value","trim","onSelect","stopPropagation","preventDefault","focusItem","focus","debug2","table","size","setState","itemIndex","offsetIndex","data","detail","getFormattedString","column","columns","r","rows","row","get","displayValue","type","name","push","target","topRow","bottomRow","delta","Math","max","top","bottom","setViewport","dh","initialPageSize","addEventListener","Table","EVENT_UPDATED","EVENT_FILTERCHANGED","removeEventListener","filterText","filters","filter","invoke","FilterValue","ofString","applyFilter","render","listHeight","min","MAX_VISIBLE_ITEMS","DEFAULT_ROW_HEIGHT","height","undefined","func","isRequired","shape","arrayOf","string","number"],"sources":["../src/PartitionSelectorSearch.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport type { dh as DhType, Table } from '@deephaven/jsapi-types';\nimport { ItemList, LoadingSpinner } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport { CanceledPromiseError } from '@deephaven/utils';\nimport './PartitionSelectorSearch.scss';\nimport { ModelIndex } from '@deephaven/grid';\n\nconst log = Log.module('PartitionSelectorSearch');\nconst DEBOUNCE_UPDATE_FILTER = 150;\n\ninterface Item {\n value: string;\n displayValue: string;\n}\n\ninterface PartitionSelectorSearchProps<T> {\n dh: DhType;\n getFormattedString: (value: T, type: string, name: string) => string;\n table: Table;\n initialPageSize: number;\n onSelect: (value: string) => void;\n onListResized: () => void;\n}\ninterface PartitionSelectorSearchState {\n offset: number;\n itemCount: number;\n items: Item[];\n text: string;\n isLoading: boolean;\n}\nclass PartitionSelectorSearch<T> extends Component<\n PartitionSelectorSearchProps<T>,\n PartitionSelectorSearchState\n> {\n static MAX_VISIBLE_ITEMS = 12;\n\n static defaultProps = {\n initialPageSize: 100,\n onSelect: (): void => undefined,\n onListResized: (): void => undefined,\n };\n\n static propTypes = {\n getFormattedString: PropTypes.func.isRequired,\n table: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n filter: PropTypes.func.isRequired,\n })\n ),\n size: PropTypes.number.isRequired,\n applyFilter: PropTypes.func.isRequired,\n setViewport: PropTypes.func.isRequired,\n }).isRequired,\n initialPageSize: PropTypes.number,\n onSelect: PropTypes.func,\n onListResized: PropTypes.func,\n };\n\n static handleError(error: unknown): void {\n if (!(error instanceof CanceledPromiseError)) {\n log.error(error);\n }\n }\n\n constructor(props: PartitionSelectorSearchProps<T>) {\n super(props);\n\n this.handleFilterChange = this.handleFilterChange.bind(this);\n this.handleInputFocus = this.handleInputFocus.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleListKeydown = this.handleListKeydown.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleTableUpdate = this.handleTableUpdate.bind(this);\n this.handleTextChange = this.handleTextChange.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n\n this.itemList = null;\n this.searchInput = null;\n this.timer = null;\n\n this.state = {\n offset: 0,\n itemCount: 0,\n items: [],\n text: '',\n isLoading: true,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n }\n\n componentDidUpdate(\n prevProps: PartitionSelectorSearchProps<T>,\n prevState: PartitionSelectorSearchState\n ): void {\n const { isLoading, itemCount } = this.state;\n const { onListResized } = this.props;\n if (\n itemCount !== prevState.itemCount ||\n isLoading !== prevState.isLoading\n ) {\n onListResized();\n }\n }\n\n componentWillUnmount(): void {\n this.debounceUpdateFilter.cancel();\n\n this.stopListening();\n }\n\n itemList: ItemList<Item> | null;\n\n searchInput: HTMLInputElement | null;\n\n timer: null;\n\n handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): boolean {\n if (this.itemList == null) {\n return false;\n }\n\n const { items, itemCount } = this.state;\n switch (event.key) {\n case 'Enter': {\n let selectedValue = null;\n if (items.length > 0) {\n selectedValue = items[0].value;\n } else {\n const { text } = this.state;\n selectedValue = text.trim();\n }\n\n if (selectedValue.length > 0) {\n const { onSelect } = this.props;\n onSelect(selectedValue);\n }\n\n event.stopPropagation();\n event.preventDefault();\n return true;\n }\n case 'ArrowDown':\n if (itemCount > 0) {\n this.itemList.focusItem(1);\n }\n event.stopPropagation();\n event.preventDefault();\n return true;\n default:\n return false;\n }\n }\n\n handleListKeydown(event: React.KeyboardEvent<HTMLDivElement>): void {\n switch (event.key) {\n case 'Escape':\n // Do nothing\n break;\n default:\n this.focus();\n break;\n }\n }\n\n handleFilterChange(): void {\n log.debug2('handleFilterChange');\n\n const { table } = this.props;\n const itemCount = table.size;\n this.setState({ itemCount, isLoading: true });\n }\n\n handleInputFocus(): void {\n if (this.itemList) {\n this.itemList.focusItem(0);\n }\n }\n\n handleSelect(itemIndex: ModelIndex): void {\n log.debug2('handleSelect', itemIndex);\n\n const { onSelect } = this.props;\n const { offset, items } = this.state;\n const offsetIndex = itemIndex - offset;\n if (offsetIndex < 0 || items.length <= offsetIndex) {\n log.error('No data for item', itemIndex);\n return;\n }\n\n const { value } = items[offsetIndex];\n onSelect(value);\n }\n\n handleTableUpdate(event: CustomEvent): void {\n const data = event.detail;\n const { offset } = data;\n\n const items = [] as Item[];\n const { getFormattedString, table } = this.props;\n const column = table.columns[0];\n for (let r = 0; r < data.rows.length; r += 1) {\n const row = data.rows[r];\n const value = row.get(column);\n const displayValue = getFormattedString(value, column.type, column.name);\n items.push({\n displayValue,\n value,\n });\n }\n\n const itemCount = table.size;\n log.debug2('handleTableUpdate', itemCount, offset, items.length);\n this.setState({ itemCount, items, offset, isLoading: false });\n }\n\n handleTextChange(event: React.ChangeEvent<HTMLInputElement>): void {\n log.debug2('handleTextChange');\n\n const { value: text } = event.target;\n\n this.setState({ text });\n\n this.debounceUpdateFilter();\n }\n\n handleViewportChange(topRow: number, bottomRow: number): void {\n log.debug2('handleViewportChange', topRow, bottomRow);\n\n const delta = Math.max(1, bottomRow - topRow);\n const top = Math.max(0, topRow - delta);\n const bottom = bottomRow + delta;\n\n const { table } = this.props;\n table.setViewport(top, bottom);\n }\n\n debounceUpdateFilter = debounce((): void => {\n this.updateFilter();\n }, DEBOUNCE_UPDATE_FILTER);\n\n focus(): void {\n if (this.searchInput) {\n this.searchInput.focus();\n }\n }\n\n startListening(): void {\n const { dh, initialPageSize, table } = this.props;\n table.addEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n table.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleFilterChange\n );\n table.setViewport(0, initialPageSize);\n }\n\n stopListening(): void {\n const { dh, table } = this.props;\n table.removeEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n table.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleFilterChange\n );\n }\n\n updateFilter(): void {\n const { dh, initialPageSize, table } = this.props;\n const { text } = this.state;\n const filterText = text.trim();\n const filters = [];\n if (filterText.length > 0) {\n const column = table.columns[0];\n const filter = column\n .filter()\n .invoke(\n 'matches',\n dh.FilterValue.ofString(`(?s)(?i).*\\\\Q${filterText}\\\\E.*`)\n );\n filters.push(filter);\n }\n\n log.debug2('updateFilter', filters);\n\n table.applyFilter(filters);\n table.setViewport(0, initialPageSize);\n }\n\n render(): JSX.Element {\n const { isLoading, itemCount, items, offset, text } = this.state;\n const listHeight =\n Math.min(itemCount, PartitionSelectorSearch.MAX_VISIBLE_ITEMS) *\n ItemList.DEFAULT_ROW_HEIGHT +\n // Adjust for ListItem vertical padding - .375rem ~ 5.25px\n 11;\n return (\n <div className=\"iris-grid-partition-selector-search\">\n <div className=\"search-container\">\n <input\n type=\"text\"\n ref={searchInput => {\n this.searchInput = searchInput;\n }}\n value={text}\n placeholder=\"Available Partitions\"\n onChange={this.handleTextChange}\n onFocus={this.handleInputFocus}\n onKeyDown={this.handleKeyDown}\n className=\"form-control input-partition\"\n />\n </div>\n {!isLoading && itemCount > 0 && (\n <div\n className=\"iris-grid-partition-selector-search-list\"\n onKeyDown={this.handleListKeydown}\n role=\"presentation\"\n style={{ height: listHeight }}\n >\n <ItemList\n ref={itemList => {\n this.itemList = itemList;\n }}\n itemCount={itemCount}\n items={items}\n offset={offset}\n onSelect={this.handleSelect}\n onViewportChange={this.handleViewportChange}\n />\n </div>\n )}\n {!isLoading && itemCount === 0 && (\n <div className=\"iris-grid-partition-selector-search-empty\">\n No results\n </div>\n )}\n {isLoading && (\n <div className=\"iris-grid-partition-selector-loading\">\n <LoadingSpinner />\n &nbsp;Loading...\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default PartitionSelectorSearch;\n"],"mappings":"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"}
1
+ {"version":3,"file":"PartitionSelectorSearch.js","names":["React","Component","PropTypes","debounce","TableUtils","ItemList","LoadingSpinner","Log","CanceledPromiseError","log","module","DEBOUNCE_UPDATE_FILTER","PartitionSelectorSearch","handleError","error","constructor","props","updateFilter","handleFilterChange","bind","handleKeyDown","handleListKeydown","handleSelect","handleTableUpdate","handleTextChange","handleViewportChange","itemList","searchInput","timer","dh","tableUtils","state","offset","itemCount","items","text","isLoading","componentDidMount","startListening","componentDidUpdate","prevProps","prevState","onListResized","componentWillUnmount","debounceUpdateFilter","cancel","stopListening","event","key","selectedValue","length","value","trim","onSelect","stopPropagation","preventDefault","focusItem","focus","debug2","table","size","setState","itemIndex","offsetIndex","data","detail","getFormattedString","column","columns","r","rows","row","get","displayValue","type","name","push","target","isIntegerType","parseInt","toString","topRow","bottomRow","delta","Math","max","top","bottom","setViewport","initialPageSize","addEventListener","Table","EVENT_UPDATED","EVENT_FILTERCHANGED","removeEventListener","filterText","filters","filter","makeQuickFilterFromComponent","isStringType","Error","applyFilter","render","listHeight","min","MAX_VISIBLE_ITEMS","DEFAULT_ROW_HEIGHT","inputType","isNumberType","height","undefined","func","isRequired","shape","arrayOf","string","number"],"sources":["../src/PartitionSelectorSearch.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport type { dh as DhType, Table } from '@deephaven/jsapi-types';\nimport { ItemList, LoadingSpinner } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport { CanceledPromiseError } from '@deephaven/utils';\nimport './PartitionSelectorSearch.scss';\nimport { ModelIndex } from '@deephaven/grid';\n\nconst log = Log.module('PartitionSelectorSearch');\nconst DEBOUNCE_UPDATE_FILTER = 150;\n\ninterface Item {\n value: string;\n displayValue: string;\n}\n\ninterface PartitionSelectorSearchProps<T> {\n dh: DhType;\n getFormattedString: (value: T, type: string, name: string) => string;\n table: Table;\n initialPageSize: number;\n onSelect: (value: string) => void;\n onListResized: () => void;\n}\ninterface PartitionSelectorSearchState {\n offset: number;\n itemCount: number;\n items: Item[];\n text: string;\n isLoading: boolean;\n}\nclass PartitionSelectorSearch<T> extends Component<\n PartitionSelectorSearchProps<T>,\n PartitionSelectorSearchState\n> {\n static MAX_VISIBLE_ITEMS = 12;\n\n static defaultProps = {\n initialPageSize: 100,\n onSelect: (): void => undefined,\n onListResized: (): void => undefined,\n };\n\n static propTypes = {\n getFormattedString: PropTypes.func.isRequired,\n table: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n filter: PropTypes.func.isRequired,\n })\n ),\n size: PropTypes.number.isRequired,\n applyFilter: PropTypes.func.isRequired,\n setViewport: PropTypes.func.isRequired,\n }).isRequired,\n initialPageSize: PropTypes.number,\n onSelect: PropTypes.func,\n onListResized: PropTypes.func,\n };\n\n static handleError(error: unknown): void {\n if (!(error instanceof CanceledPromiseError)) {\n log.error(error);\n }\n }\n\n constructor(props: PartitionSelectorSearchProps<T>) {\n super(props);\n\n this.handleFilterChange = this.handleFilterChange.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleListKeydown = this.handleListKeydown.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handleTableUpdate = this.handleTableUpdate.bind(this);\n this.handleTextChange = this.handleTextChange.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n\n this.itemList = null;\n this.searchInput = null;\n this.timer = null;\n\n const { dh } = props;\n this.tableUtils = new TableUtils(dh);\n\n this.state = {\n offset: 0,\n itemCount: 0,\n items: [],\n text: '',\n isLoading: true,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n }\n\n componentDidUpdate(\n prevProps: PartitionSelectorSearchProps<T>,\n prevState: PartitionSelectorSearchState\n ): void {\n const { isLoading, itemCount } = this.state;\n const { onListResized } = this.props;\n if (\n itemCount !== prevState.itemCount ||\n isLoading !== prevState.isLoading\n ) {\n onListResized();\n }\n }\n\n componentWillUnmount(): void {\n this.debounceUpdateFilter.cancel();\n\n this.stopListening();\n }\n\n itemList: ItemList<Item> | null;\n\n searchInput: HTMLInputElement | null;\n\n timer: null;\n\n tableUtils: TableUtils;\n\n handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): boolean {\n if (this.itemList == null) {\n return false;\n }\n\n const { items, itemCount } = this.state;\n switch (event.key) {\n case 'Enter': {\n let selectedValue = null;\n if (items.length > 0) {\n selectedValue = items[0].value;\n } else {\n const { text } = this.state;\n selectedValue = text.trim();\n }\n\n if (selectedValue.length > 0) {\n const { onSelect } = this.props;\n onSelect(selectedValue);\n }\n\n event.stopPropagation();\n event.preventDefault();\n return true;\n }\n case 'ArrowDown':\n if (itemCount > 0) {\n this.itemList.focusItem(1);\n }\n event.stopPropagation();\n event.preventDefault();\n return true;\n default:\n return false;\n }\n }\n\n handleListKeydown(event: React.KeyboardEvent<HTMLDivElement>): void {\n switch (event.key) {\n case 'Escape':\n // Do nothing\n break;\n default:\n this.focus();\n break;\n }\n }\n\n handleFilterChange(): void {\n log.debug2('handleFilterChange');\n\n const { table } = this.props;\n const itemCount = table.size;\n this.setState({ itemCount, isLoading: true });\n }\n\n handleSelect(itemIndex: ModelIndex): void {\n log.debug2('handleSelect', itemIndex);\n\n const { onSelect } = this.props;\n const { offset, items } = this.state;\n const offsetIndex = itemIndex - offset;\n if (offsetIndex < 0 || items.length <= offsetIndex) {\n log.error('No data for item', itemIndex);\n return;\n }\n\n const { value } = items[offsetIndex];\n onSelect(value);\n }\n\n handleTableUpdate(event: CustomEvent): void {\n const data = event.detail;\n const { offset } = data;\n\n const items = [] as Item[];\n const { getFormattedString, table } = this.props;\n const column = table.columns[0];\n for (let r = 0; r < data.rows.length; r += 1) {\n const row = data.rows[r];\n const value = row.get(column);\n const displayValue = getFormattedString(value, column.type, column.name);\n items.push({\n displayValue,\n value,\n });\n }\n\n const itemCount = table.size;\n log.debug2('handleTableUpdate', itemCount, offset, items.length);\n this.setState({ itemCount, items, offset, isLoading: false });\n }\n\n handleTextChange(event: React.ChangeEvent<HTMLInputElement>): void {\n log.debug2('handleTextChange');\n\n const { table } = this.props;\n const { value: text } = event.target;\n\n if (text !== '' && TableUtils.isIntegerType(table.columns[0].type)) {\n this.setState({ text: parseInt(text, 10).toString() });\n } else {\n this.setState({ text });\n }\n\n this.debounceUpdateFilter();\n }\n\n handleViewportChange(topRow: number, bottomRow: number): void {\n log.debug2('handleViewportChange', topRow, bottomRow);\n\n const delta = Math.max(1, bottomRow - topRow);\n const top = Math.max(0, topRow - delta);\n const bottom = bottomRow + delta;\n\n const { table } = this.props;\n table.setViewport(top, bottom);\n }\n\n debounceUpdateFilter = debounce((): void => {\n this.updateFilter();\n }, DEBOUNCE_UPDATE_FILTER);\n\n focus(): void {\n if (this.searchInput) {\n this.searchInput.focus();\n }\n }\n\n startListening(): void {\n const { dh, initialPageSize, table } = this.props;\n table.addEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n table.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleFilterChange\n );\n table.setViewport(0, initialPageSize);\n }\n\n stopListening(): void {\n const { dh, table } = this.props;\n table.removeEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n table.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleFilterChange\n );\n }\n\n updateFilter(): void {\n const { initialPageSize, table } = this.props;\n const { text } = this.state;\n const filterText = text.trim();\n const filters = [];\n if (filterText.length > 0) {\n const column = table.columns[0];\n const filter = this.tableUtils.makeQuickFilterFromComponent(\n column,\n TableUtils.isStringType(column.type) ? `~${filterText}` : filterText\n );\n if (!filter) {\n throw new Error(\n 'Unable to create column filter for partition selector'\n );\n }\n filters.push(filter);\n }\n\n log.debug2('updateFilter', filters);\n\n table.applyFilter(filters);\n table.setViewport(0, initialPageSize);\n }\n\n render(): JSX.Element {\n const { table } = this.props;\n const { isLoading, itemCount, items, offset, text } = this.state;\n\n const listHeight =\n Math.min(itemCount, PartitionSelectorSearch.MAX_VISIBLE_ITEMS) *\n ItemList.DEFAULT_ROW_HEIGHT +\n // Adjust for ListItem vertical padding - .375rem ~ 5.25px\n 11;\n const inputType = TableUtils.isNumberType(table.columns[0].type)\n ? 'number'\n : 'text';\n return (\n <div className=\"iris-grid-partition-selector-search\">\n <div className=\"search-container\">\n <input\n type={inputType}\n ref={searchInput => {\n this.searchInput = searchInput;\n }}\n value={text}\n placeholder=\"Available Partitions\"\n onChange={this.handleTextChange}\n onKeyDown={this.handleKeyDown}\n className=\"form-control input-partition\"\n />\n </div>\n {!isLoading && itemCount > 0 && (\n <div\n className=\"iris-grid-partition-selector-search-list\"\n onKeyDown={this.handleListKeydown}\n role=\"presentation\"\n style={{ height: listHeight }}\n >\n <ItemList\n ref={itemList => {\n this.itemList = itemList;\n }}\n itemCount={itemCount}\n items={items}\n offset={offset}\n onSelect={this.handleSelect}\n onViewportChange={this.handleViewportChange}\n />\n </div>\n )}\n {!isLoading && itemCount === 0 && (\n <div className=\"iris-grid-partition-selector-search-empty\">\n No results\n </div>\n )}\n {isLoading && (\n <div className=\"iris-grid-partition-selector-loading\">\n <LoadingSpinner />\n &nbsp;Loading...\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default PartitionSelectorSearch;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/iris-grid",
3
- "version": "0.49.1-beta.6+55926276",
3
+ "version": "0.49.1",
4
4
  "description": "Deephaven Iris Grid",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -31,17 +31,17 @@
31
31
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
32
32
  },
33
33
  "dependencies": {
34
- "@deephaven/components": "^0.49.1-beta.6+55926276",
35
- "@deephaven/console": "^0.49.1-beta.6+55926276",
36
- "@deephaven/filters": "^0.49.1-beta.6+55926276",
37
- "@deephaven/grid": "^0.49.1-beta.6+55926276",
38
- "@deephaven/icons": "^0.49.1-beta.6+55926276",
39
- "@deephaven/jsapi-types": "^0.49.1-beta.6+55926276",
40
- "@deephaven/jsapi-utils": "^0.49.1-beta.6+55926276",
41
- "@deephaven/log": "^0.49.1-beta.6+55926276",
42
- "@deephaven/react-hooks": "^0.49.1-beta.6+55926276",
43
- "@deephaven/storage": "^0.49.1-beta.6+55926276",
44
- "@deephaven/utils": "^0.49.1-beta.6+55926276",
34
+ "@deephaven/components": "^0.49.1",
35
+ "@deephaven/console": "^0.49.1",
36
+ "@deephaven/filters": "^0.49.0",
37
+ "@deephaven/grid": "^0.49.0",
38
+ "@deephaven/icons": "^0.49.0",
39
+ "@deephaven/jsapi-types": "^0.49.0",
40
+ "@deephaven/jsapi-utils": "^0.49.0",
41
+ "@deephaven/log": "^0.49.0",
42
+ "@deephaven/react-hooks": "^0.49.0",
43
+ "@deephaven/storage": "^0.49.0",
44
+ "@deephaven/utils": "^0.49.0",
45
45
  "@dnd-kit/core": "^6.0.5",
46
46
  "@dnd-kit/sortable": "^7.0.0",
47
47
  "@dnd-kit/utilities": "^3.2.0",
@@ -64,8 +64,8 @@
64
64
  "react-dom": "^17.x"
65
65
  },
66
66
  "devDependencies": {
67
- "@deephaven/jsapi-shim": "^0.49.1-beta.6+55926276",
68
- "@deephaven/mocks": "^0.49.1-beta.6+55926276"
67
+ "@deephaven/jsapi-shim": "^0.49.0",
68
+ "@deephaven/mocks": "^0.49.0"
69
69
  },
70
70
  "files": [
71
71
  "dist"
@@ -76,5 +76,5 @@
76
76
  "publishConfig": {
77
77
  "access": "public"
78
78
  },
79
- "gitHead": "55926276f8a3cb40a320235d1262467c9460bc95"
79
+ "gitHead": "d14b58ca26fc5bdae33c60673aba4732262cc1f3"
80
80
  }