@deephaven/iris-grid 0.59.1-beta.0 → 0.59.1-beta.3

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 (67) hide show
  1. package/dist/EmptyIrisGridModel.d.ts +62 -0
  2. package/dist/EmptyIrisGridModel.d.ts.map +1 -0
  3. package/dist/EmptyIrisGridModel.js +168 -0
  4. package/dist/EmptyIrisGridModel.js.map +1 -0
  5. package/dist/IrisGrid.d.ts +17 -14
  6. package/dist/IrisGrid.d.ts.map +1 -1
  7. package/dist/IrisGrid.js +151 -146
  8. package/dist/IrisGrid.js.map +1 -1
  9. package/dist/IrisGridModel.d.ts +5 -4
  10. package/dist/IrisGridModel.d.ts.map +1 -1
  11. package/dist/IrisGridModel.js +2 -1
  12. package/dist/IrisGridModel.js.map +1 -1
  13. package/dist/IrisGridModelFactory.d.ts +2 -2
  14. package/dist/IrisGridModelFactory.d.ts.map +1 -1
  15. package/dist/IrisGridModelFactory.js +1 -1
  16. package/dist/IrisGridModelFactory.js.map +1 -1
  17. package/dist/IrisGridModelUpdater.d.ts +3 -1
  18. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  19. package/dist/IrisGridModelUpdater.js +8 -1
  20. package/dist/IrisGridModelUpdater.js.map +1 -1
  21. package/dist/IrisGridPartitionSelector.css +14 -36
  22. package/dist/IrisGridPartitionSelector.css.map +1 -1
  23. package/dist/IrisGridPartitionSelector.d.ts +39 -38
  24. package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
  25. package/dist/IrisGridPartitionSelector.js +253 -227
  26. package/dist/IrisGridPartitionSelector.js.map +1 -1
  27. package/dist/IrisGridPartitionedTableModel.d.ts +25 -0
  28. package/dist/IrisGridPartitionedTableModel.d.ts.map +1 -0
  29. package/dist/IrisGridPartitionedTableModel.js +74 -0
  30. package/dist/IrisGridPartitionedTableModel.js.map +1 -0
  31. package/dist/IrisGridProxyModel.d.ts +18 -4
  32. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  33. package/dist/IrisGridProxyModel.js +84 -5
  34. package/dist/IrisGridProxyModel.js.map +1 -1
  35. package/dist/IrisGridTableModel.d.ts +14 -4
  36. package/dist/IrisGridTableModel.d.ts.map +1 -1
  37. package/dist/IrisGridTableModel.js +96 -21
  38. package/dist/IrisGridTableModel.js.map +1 -1
  39. package/dist/IrisGridTableModelTemplate.d.ts +7 -7
  40. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  41. package/dist/IrisGridTableModelTemplate.js +1 -1
  42. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  43. package/dist/IrisGridTreeTableModel.js +2 -4
  44. package/dist/IrisGridTreeTableModel.js.map +1 -1
  45. package/dist/IrisGridUtils.d.ts +7 -7
  46. package/dist/IrisGridUtils.d.ts.map +1 -1
  47. package/dist/IrisGridUtils.js +33 -34
  48. package/dist/IrisGridUtils.js.map +1 -1
  49. package/dist/MissingPartitionError.d.ts +6 -0
  50. package/dist/MissingPartitionError.d.ts.map +1 -0
  51. package/dist/MissingPartitionError.js +14 -0
  52. package/dist/MissingPartitionError.js.map +1 -0
  53. package/dist/PartitionedGridModel.d.ts +38 -0
  54. package/dist/PartitionedGridModel.d.ts.map +1 -0
  55. package/dist/PartitionedGridModel.js +15 -0
  56. package/dist/PartitionedGridModel.js.map +1 -0
  57. package/dist/index.d.ts +3 -1
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +3 -1
  60. package/dist/index.js.map +1 -1
  61. package/package.json +16 -15
  62. package/dist/PartitionSelectorSearch.css +0 -23
  63. package/dist/PartitionSelectorSearch.css.map +0 -1
  64. package/dist/PartitionSelectorSearch.d.ts +0 -78
  65. package/dist/PartitionSelectorSearch.d.ts.map +0 -1
  66. package/dist/PartitionSelectorSearch.js +0 -343
  67. package/dist/PartitionSelectorSearch.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -5,15 +5,17 @@ export * from './sidebar';
5
5
  export * from './AdvancedFilterCreator';
6
6
  export * from './CommonTypes';
7
7
  export { default as ColumnHeaderGroup } from './ColumnHeaderGroup';
8
+ export * from './PartitionedGridModel';
8
9
  export * from './IrisGrid';
9
10
  export { default as SHORTCUTS } from './IrisGridShortcuts';
10
11
  export { default as IrisGridModel } from './IrisGridModel';
11
12
  export { default as IrisGridTableModel } from './IrisGridTableModel';
12
13
  export * from './IrisGridTableModel';
14
+ export { default as IrisGridPartitionedTableModel } from './IrisGridPartitionedTableModel';
13
15
  export { default as IrisGridTreeTableModel } from './IrisGridTreeTableModel';
14
16
  export { default as IrisGridTableModelTemplate } from './IrisGridTableModelTemplate';
15
- export * from './IrisGridTableModelTemplate';
16
17
  export * from './IrisGridTreeTableModel';
18
+ export * from './IrisGridTableModelTemplate';
17
19
  export { default as IrisGridModelFactory } from './IrisGridModelFactory';
18
20
  export { createDefaultIrisGridTheme } from './IrisGridTheme';
19
21
  export type { IrisGridThemeType } from './IrisGridTheme';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACrF,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACrF,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -5,15 +5,17 @@ export * from "./sidebar/index.js";
5
5
  export * from "./AdvancedFilterCreator.js";
6
6
  export * from "./CommonTypes.js";
7
7
  export { default as ColumnHeaderGroup } from "./ColumnHeaderGroup.js";
8
+ export * from "./PartitionedGridModel.js";
8
9
  export * from "./IrisGrid.js";
9
10
  export { default as SHORTCUTS } from "./IrisGridShortcuts.js";
10
11
  export { default as IrisGridModel } from "./IrisGridModel.js";
11
12
  export { default as IrisGridTableModel } from "./IrisGridTableModel.js";
12
13
  export * from "./IrisGridTableModel.js";
14
+ export { default as IrisGridPartitionedTableModel } from "./IrisGridPartitionedTableModel.js";
13
15
  export { default as IrisGridTreeTableModel } from "./IrisGridTreeTableModel.js";
14
16
  export { default as IrisGridTableModelTemplate } from "./IrisGridTableModelTemplate.js";
15
- export * from "./IrisGridTableModelTemplate.js";
16
17
  export * from "./IrisGridTreeTableModel.js";
18
+ export * from "./IrisGridTableModelTemplate.js";
17
19
  export { default as IrisGridModelFactory } from "./IrisGridModelFactory.js";
18
20
  export { createDefaultIrisGridTheme } from "./IrisGridTheme.js";
19
21
  export * from "./IrisGridThemeProvider.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["IrisGrid","default","ColumnHeaderGroup","SHORTCUTS","IrisGridModel","IrisGridTableModel","IrisGridTreeTableModel","IrisGridTableModelTemplate","IrisGridModelFactory","createDefaultIrisGridTheme","IrisGridTestUtils","IrisGridUtils","TableViewportUpdater","TreeTableViewportUpdater"],"sources":["../src/index.ts"],"sourcesContent":["import IrisGrid from './IrisGrid';\n\nexport default IrisGrid;\nexport { IrisGrid };\nexport * from './sidebar';\nexport * from './AdvancedFilterCreator';\nexport * from './CommonTypes';\nexport { default as ColumnHeaderGroup } from './ColumnHeaderGroup';\nexport * from './IrisGrid';\nexport { default as SHORTCUTS } from './IrisGridShortcuts';\nexport { default as IrisGridModel } from './IrisGridModel';\nexport { default as IrisGridTableModel } from './IrisGridTableModel';\nexport * from './IrisGridTableModel';\nexport { default as IrisGridTreeTableModel } from './IrisGridTreeTableModel';\nexport { default as IrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nexport * from './IrisGridTableModelTemplate';\nexport * from './IrisGridTreeTableModel';\nexport { default as IrisGridModelFactory } from './IrisGridModelFactory';\nexport { createDefaultIrisGridTheme } from './IrisGridTheme';\nexport type { IrisGridThemeType } from './IrisGridTheme';\nexport * from './IrisGridThemeProvider';\nexport { default as IrisGridTestUtils } from './IrisGridTestUtils';\nexport { default as IrisGridUtils } from './IrisGridUtils';\nexport * from './IrisGridUtils';\nexport * from './IrisGridMetricCalculator';\nexport * from './IrisGridRenderer';\nexport { default as TableViewportUpdater } from './TableViewportUpdater';\nexport { default as TreeTableViewportUpdater } from './TreeTableViewportUpdater';\n"],"mappings":"OAAOA,QAAQ;AAEf,eAAeA,QAAQ;AACvB,SAASA,QAAQ;AAAG;AAAA;AAAA;AAAA,SAIXC,OAAO,IAAIC,iBAAiB;AAAA;AAAA,SAE5BD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,aAAa;AAAA,SACxBH,OAAO,IAAII,kBAAkB;AAAA;AAAA,SAE7BJ,OAAO,IAAIK,sBAAsB;AAAA,SACjCL,OAAO,IAAIM,0BAA0B;AAAA;AAAA;AAAA,SAGrCN,OAAO,IAAIO,oBAAoB;AAAA,SAC/BC,0BAA0B;AAAA;AAAA,SAG1BR,OAAO,IAAIS,iBAAiB;AAAA,SAC5BT,OAAO,IAAIU,aAAa;AAAA;AAAA;AAAA;AAAA,SAIxBV,OAAO,IAAIW,oBAAoB;AAAA,SAC/BX,OAAO,IAAIY,wBAAwB"}
1
+ {"version":3,"file":"index.js","names":["IrisGrid","default","ColumnHeaderGroup","SHORTCUTS","IrisGridModel","IrisGridTableModel","IrisGridPartitionedTableModel","IrisGridTreeTableModel","IrisGridTableModelTemplate","IrisGridModelFactory","createDefaultIrisGridTheme","IrisGridTestUtils","IrisGridUtils","TableViewportUpdater","TreeTableViewportUpdater"],"sources":["../src/index.ts"],"sourcesContent":["import IrisGrid from './IrisGrid';\n\nexport default IrisGrid;\nexport { IrisGrid };\nexport * from './sidebar';\nexport * from './AdvancedFilterCreator';\nexport * from './CommonTypes';\nexport { default as ColumnHeaderGroup } from './ColumnHeaderGroup';\nexport * from './PartitionedGridModel';\nexport * from './IrisGrid';\nexport { default as SHORTCUTS } from './IrisGridShortcuts';\nexport { default as IrisGridModel } from './IrisGridModel';\nexport { default as IrisGridTableModel } from './IrisGridTableModel';\nexport * from './IrisGridTableModel';\nexport { default as IrisGridPartitionedTableModel } from './IrisGridPartitionedTableModel';\nexport { default as IrisGridTreeTableModel } from './IrisGridTreeTableModel';\nexport { default as IrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nexport * from './IrisGridTreeTableModel';\nexport * from './IrisGridTableModelTemplate';\nexport { default as IrisGridModelFactory } from './IrisGridModelFactory';\nexport { createDefaultIrisGridTheme } from './IrisGridTheme';\nexport type { IrisGridThemeType } from './IrisGridTheme';\nexport * from './IrisGridThemeProvider';\nexport { default as IrisGridTestUtils } from './IrisGridTestUtils';\nexport { default as IrisGridUtils } from './IrisGridUtils';\nexport * from './IrisGridUtils';\nexport * from './IrisGridMetricCalculator';\nexport * from './IrisGridRenderer';\nexport { default as TableViewportUpdater } from './TableViewportUpdater';\nexport { default as TreeTableViewportUpdater } from './TreeTableViewportUpdater';\n"],"mappings":"OAAOA,QAAQ;AAEf,eAAeA,QAAQ;AACvB,SAASA,QAAQ;AAAG;AAAA;AAAA;AAAA,SAIXC,OAAO,IAAIC,iBAAiB;AAAA;AAAA;AAAA,SAG5BD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,aAAa;AAAA,SACxBH,OAAO,IAAII,kBAAkB;AAAA;AAAA,SAE7BJ,OAAO,IAAIK,6BAA6B;AAAA,SACxCL,OAAO,IAAIM,sBAAsB;AAAA,SACjCN,OAAO,IAAIO,0BAA0B;AAAA;AAAA;AAAA,SAGrCP,OAAO,IAAIQ,oBAAoB;AAAA,SAC/BC,0BAA0B;AAAA;AAAA,SAG1BT,OAAO,IAAIU,iBAAiB;AAAA,SAC5BV,OAAO,IAAIW,aAAa;AAAA;AAAA;AAAA;AAAA,SAIxBX,OAAO,IAAIY,oBAAoB;AAAA,SAC/BZ,OAAO,IAAIa,wBAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/iris-grid",
3
- "version": "0.59.1-beta.0+9d2fcaeb",
3
+ "version": "0.59.1-beta.3+e8b9f121",
4
4
  "description": "Deephaven Iris Grid",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -31,17 +31,18 @@
31
31
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
32
32
  },
33
33
  "dependencies": {
34
- "@deephaven/components": "^0.59.1-beta.0+9d2fcaeb",
35
- "@deephaven/console": "^0.59.1-beta.0+9d2fcaeb",
36
- "@deephaven/filters": "^0.59.1-beta.0+9d2fcaeb",
37
- "@deephaven/grid": "^0.59.1-beta.0+9d2fcaeb",
38
- "@deephaven/icons": "^0.59.1-beta.0+9d2fcaeb",
39
- "@deephaven/jsapi-types": "^0.59.1-beta.0+9d2fcaeb",
40
- "@deephaven/jsapi-utils": "^0.59.1-beta.0+9d2fcaeb",
41
- "@deephaven/log": "^0.59.1-beta.0+9d2fcaeb",
42
- "@deephaven/react-hooks": "^0.59.1-beta.0+9d2fcaeb",
43
- "@deephaven/storage": "^0.59.1-beta.0+9d2fcaeb",
44
- "@deephaven/utils": "^0.59.1-beta.0+9d2fcaeb",
34
+ "@deephaven/components": "^0.59.1-beta.3+e8b9f121",
35
+ "@deephaven/console": "^0.59.1-beta.3+e8b9f121",
36
+ "@deephaven/filters": "^0.59.1-beta.3+e8b9f121",
37
+ "@deephaven/grid": "^0.59.1-beta.3+e8b9f121",
38
+ "@deephaven/icons": "^0.59.1-beta.3+e8b9f121",
39
+ "@deephaven/jsapi-components": "^0.59.1-beta.3+e8b9f121",
40
+ "@deephaven/jsapi-types": "^0.59.1-beta.3+e8b9f121",
41
+ "@deephaven/jsapi-utils": "^0.59.1-beta.3+e8b9f121",
42
+ "@deephaven/log": "^0.59.1-beta.3+e8b9f121",
43
+ "@deephaven/react-hooks": "^0.59.1-beta.3+e8b9f121",
44
+ "@deephaven/storage": "^0.59.1-beta.3+e8b9f121",
45
+ "@deephaven/utils": "^0.59.1-beta.3+e8b9f121",
45
46
  "@dnd-kit/core": "^6.0.5",
46
47
  "@dnd-kit/sortable": "^7.0.0",
47
48
  "@dnd-kit/utilities": "^3.2.0",
@@ -64,8 +65,8 @@
64
65
  "react-dom": "^17.x"
65
66
  },
66
67
  "devDependencies": {
67
- "@deephaven/jsapi-shim": "^0.59.1-beta.0+9d2fcaeb",
68
- "@deephaven/mocks": "^0.59.1-beta.0+9d2fcaeb"
68
+ "@deephaven/jsapi-shim": "^0.59.1-beta.3+e8b9f121",
69
+ "@deephaven/mocks": "^0.59.1-beta.3+e8b9f121"
69
70
  },
70
71
  "files": [
71
72
  "dist"
@@ -76,5 +77,5 @@
76
77
  "publishConfig": {
77
78
  "access": "public"
78
79
  },
79
- "gitHead": "9d2fcaeb5b6ffd624df9eab1cfea6ce0a183a803"
80
+ "gitHead": "e8b9f121afaeb2c3dd6484a05ca1966a1d769260"
80
81
  }
@@ -1,23 +0,0 @@
1
- /* stylelint-disable scss/at-import-no-partial-leading-underscore */
2
- /* stylelint-disable-next-line number-max-precision */
3
- .iris-grid-partition-selector-search .iris-grid-partition-selector-search-list .item-list-scroll-pane {
4
- border: none;
5
- }
6
- .iris-grid-partition-selector-search .iris-grid-partition-selector-search-empty {
7
- color: var(--dh-color-gray-600);
8
- padding: 0.42145rem 0.75rem;
9
- text-align: center;
10
- }
11
- .iris-grid-partition-selector-search .iris-grid-partition-selector-loading {
12
- color: var(--dh-color-gray-600);
13
- padding: 0.42145rem 0.75rem;
14
- text-align: center;
15
- }
16
- .iris-grid-partition-selector-search .search-container {
17
- padding: 0.25rem 0.5rem;
18
- }
19
- .iris-grid-partition-selector-search .search-container .form-control {
20
- background-color: var(--dh-color-gray-500);
21
- }
22
-
23
- /*# sourceMappingURL=PartitionSelectorSearch.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../node_modules/@deephaven/components/scss/custom.scss","../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss","../src/PartitionSelectorSearch.scss"],"names":[],"mappings":"AAAA;ACyLA;ACrLI;EACE;;AAGJ;EACE,ODSO;ECRP;EACA;;AAEF;EACE,ODIO;ECHP;EACA;;AAEF;EACE;;AACA;EACE,kBDFK","file":"PartitionSelectorSearch.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: hsla(var(--dh-color-accent-hsl), 0.35);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-input-disabled-fg);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '@deephaven/components/scss/custom.scss';\n$partition-selector-search-input-bg: $gray-500;\n.iris-grid-partition-selector-search {\n .iris-grid-partition-selector-search-list {\n .item-list-scroll-pane {\n border: none;\n }\n }\n .iris-grid-partition-selector-search-empty {\n color: $text-muted;\n padding: $input-padding-y $input-btn-padding-x;\n text-align: center;\n }\n .iris-grid-partition-selector-loading {\n color: $text-muted;\n padding: $input-padding-y $input-btn-padding-x;\n text-align: center;\n }\n .search-container {\n padding: $tooltip-padding-y $tooltip-padding-x;\n .form-control {\n background-color: $partition-selector-search-input-bg;\n }\n }\n}\n"]}
@@ -1,78 +0,0 @@
1
- /// <reference types="lodash" />
2
- import React, { Component } from 'react';
3
- import PropTypes from 'prop-types';
4
- import { TableUtils } from '@deephaven/jsapi-utils';
5
- import type { Column, dh as DhType, Table } from '@deephaven/jsapi-types';
6
- import { ItemList } from '@deephaven/components';
7
- import './PartitionSelectorSearch.scss';
8
- import { ModelIndex } from '@deephaven/grid';
9
- interface Item {
10
- value: string;
11
- displayValue: string;
12
- }
13
- interface PartitionSelectorSearchProps<T> {
14
- column: Column;
15
- dh: DhType;
16
- getFormattedString: (value: T, type: string, name: string) => string;
17
- table: Table;
18
- initialPageSize: number;
19
- onSelect: (value: string) => void;
20
- onListResized: () => void;
21
- }
22
- interface PartitionSelectorSearchState {
23
- offset: number;
24
- itemCount: number;
25
- items: Item[];
26
- text: string;
27
- isLoading: boolean;
28
- }
29
- declare class PartitionSelectorSearch<T> extends Component<PartitionSelectorSearchProps<T>, PartitionSelectorSearchState> {
30
- static MAX_VISIBLE_ITEMS: number;
31
- static defaultProps: {
32
- initialPageSize: number;
33
- onSelect: () => void;
34
- onListResized: () => void;
35
- };
36
- static propTypes: {
37
- getFormattedString: PropTypes.Validator<(...args: any[]) => any>;
38
- table: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
39
- addEventListener: PropTypes.Validator<(...args: any[]) => any>;
40
- removeEventListener: PropTypes.Validator<(...args: any[]) => any>;
41
- columns: PropTypes.Requireable<(PropTypes.InferProps<{
42
- name: PropTypes.Validator<string>;
43
- type: PropTypes.Validator<string>;
44
- filter: PropTypes.Validator<(...args: any[]) => any>;
45
- }> | null | undefined)[]>;
46
- size: PropTypes.Validator<number>;
47
- applyFilter: PropTypes.Validator<(...args: any[]) => any>;
48
- setViewport: PropTypes.Validator<(...args: any[]) => any>;
49
- }>>>;
50
- initialPageSize: PropTypes.Requireable<number>;
51
- onSelect: PropTypes.Requireable<(...args: any[]) => any>;
52
- onListResized: PropTypes.Requireable<(...args: any[]) => any>;
53
- };
54
- static handleError(error: unknown): void;
55
- constructor(props: PartitionSelectorSearchProps<T>);
56
- componentDidMount(): void;
57
- componentDidUpdate(prevProps: PartitionSelectorSearchProps<T>, prevState: PartitionSelectorSearchState): void;
58
- componentWillUnmount(): void;
59
- itemList: ItemList<Item> | null;
60
- searchInput: HTMLInputElement | null;
61
- timer: null;
62
- tableUtils: TableUtils;
63
- handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): boolean;
64
- handleListKeydown(event: React.KeyboardEvent<HTMLDivElement>): void;
65
- handleFilterChange(): void;
66
- handleSelect(itemIndex: ModelIndex): void;
67
- handleTableUpdate(event: CustomEvent): void;
68
- handleTextChange(event: React.ChangeEvent<HTMLInputElement>): void;
69
- handleViewportChange(topRow: number, bottomRow: number): void;
70
- debounceUpdateFilter: import("lodash").DebouncedFunc<() => void>;
71
- focus(): void;
72
- startListening(): void;
73
- stopListening(): void;
74
- updateFilter(): void;
75
- render(): JSX.Element;
76
- }
77
- export default PartitionSelectorSearch;
78
- //# sourceMappingURL=PartitionSelectorSearch.d.ts.map
@@ -1 +0,0 @@
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,MAAM,EAAE,EAAE,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC1E,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,MAAM,EAAE,MAAM,CAAC;IACf,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;IAwBpB,MAAM,IAAI,GAAG,CAAC,OAAO;CA0DtB;AAED,eAAe,uBAAuB,CAAC"}
@@ -1,343 +0,0 @@
1
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
- import React, { Component } from 'react';
5
- import PropTypes from 'prop-types';
6
- import debounce from 'lodash.debounce';
7
- import { TableUtils } from '@deephaven/jsapi-utils';
8
- import { ItemList, LoadingSpinner } from '@deephaven/components';
9
- import Log from '@deephaven/log';
10
- import { CanceledPromiseError } from '@deephaven/utils';
11
- import "./PartitionSelectorSearch.css";
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- import { jsxs as _jsxs } from "react/jsx-runtime";
14
- var log = Log.module('PartitionSelectorSearch');
15
- var DEBOUNCE_UPDATE_FILTER = 150;
16
- class PartitionSelectorSearch extends Component {
17
- static handleError(error) {
18
- if (!(error instanceof CanceledPromiseError)) {
19
- log.error(error);
20
- }
21
- }
22
- constructor(props) {
23
- super(props);
24
- _defineProperty(this, "itemList", void 0);
25
- _defineProperty(this, "searchInput", void 0);
26
- _defineProperty(this, "timer", void 0);
27
- _defineProperty(this, "tableUtils", void 0);
28
- _defineProperty(this, "debounceUpdateFilter", debounce(() => {
29
- this.updateFilter();
30
- }, DEBOUNCE_UPDATE_FILTER));
31
- this.handleFilterChange = this.handleFilterChange.bind(this);
32
- this.handleKeyDown = this.handleKeyDown.bind(this);
33
- this.handleListKeydown = this.handleListKeydown.bind(this);
34
- this.handleSelect = this.handleSelect.bind(this);
35
- this.handleTableUpdate = this.handleTableUpdate.bind(this);
36
- this.handleTextChange = this.handleTextChange.bind(this);
37
- this.handleViewportChange = this.handleViewportChange.bind(this);
38
- this.itemList = null;
39
- this.searchInput = null;
40
- this.timer = null;
41
- var {
42
- dh
43
- } = props;
44
- this.tableUtils = new TableUtils(dh);
45
- this.state = {
46
- offset: 0,
47
- itemCount: 0,
48
- items: [],
49
- text: '',
50
- isLoading: true
51
- };
52
- }
53
- componentDidMount() {
54
- this.startListening();
55
- }
56
- componentDidUpdate(prevProps, prevState) {
57
- var {
58
- isLoading,
59
- itemCount
60
- } = this.state;
61
- var {
62
- onListResized
63
- } = this.props;
64
- if (itemCount !== prevState.itemCount || isLoading !== prevState.isLoading) {
65
- onListResized();
66
- }
67
- }
68
- componentWillUnmount() {
69
- this.debounceUpdateFilter.cancel();
70
- this.stopListening();
71
- }
72
- handleKeyDown(event) {
73
- if (this.itemList == null) {
74
- return false;
75
- }
76
- var {
77
- items,
78
- itemCount
79
- } = this.state;
80
- switch (event.key) {
81
- case 'Enter':
82
- {
83
- var selectedValue = null;
84
- if (items.length > 0) {
85
- selectedValue = items[0].value;
86
- } else {
87
- var {
88
- text
89
- } = this.state;
90
- selectedValue = text.trim();
91
- }
92
- if (selectedValue.length > 0) {
93
- var {
94
- onSelect
95
- } = this.props;
96
- onSelect(selectedValue);
97
- }
98
- event.stopPropagation();
99
- event.preventDefault();
100
- return true;
101
- }
102
- case 'ArrowDown':
103
- if (itemCount > 0) {
104
- this.itemList.focusItem(1);
105
- }
106
- event.stopPropagation();
107
- event.preventDefault();
108
- return true;
109
- default:
110
- return false;
111
- }
112
- }
113
- handleListKeydown(event) {
114
- switch (event.key) {
115
- case 'Escape':
116
- // Do nothing
117
- break;
118
- default:
119
- this.focus();
120
- break;
121
- }
122
- }
123
- handleFilterChange() {
124
- log.debug2('handleFilterChange');
125
- var {
126
- table
127
- } = this.props;
128
- var itemCount = table.size;
129
- this.setState({
130
- itemCount,
131
- isLoading: true
132
- });
133
- }
134
- handleSelect(itemIndex) {
135
- log.debug2('handleSelect', itemIndex);
136
- var {
137
- onSelect
138
- } = this.props;
139
- var {
140
- offset,
141
- items
142
- } = this.state;
143
- var offsetIndex = itemIndex - offset;
144
- if (offsetIndex < 0 || items.length <= offsetIndex) {
145
- log.error('No data for item', itemIndex);
146
- return;
147
- }
148
- var {
149
- value
150
- } = items[offsetIndex];
151
- onSelect(value);
152
- }
153
- handleTableUpdate(event) {
154
- var {
155
- column
156
- } = this.props;
157
- var data = event.detail;
158
- var {
159
- offset,
160
- rows
161
- } = data;
162
- var items = [];
163
- var {
164
- getFormattedString,
165
- table
166
- } = this.props;
167
- for (var r = 0; r < rows.length; r += 1) {
168
- var row = rows[r];
169
- var _value = row.get(column);
170
- var displayValue = getFormattedString(_value, column.type, column.name);
171
- items.push({
172
- displayValue,
173
- value: _value
174
- });
175
- }
176
- var itemCount = table.size;
177
- log.debug2('handleTableUpdate', itemCount, offset, items.length);
178
- this.setState({
179
- itemCount,
180
- items,
181
- offset,
182
- isLoading: false
183
- });
184
- }
185
- handleTextChange(event) {
186
- log.debug2('handleTextChange');
187
- var {
188
- column
189
- } = this.props;
190
- var {
191
- value: text
192
- } = event.target;
193
- if (text !== '' && TableUtils.isIntegerType(column.type)) {
194
- this.setState({
195
- text: parseInt(text, 10).toString()
196
- });
197
- } else {
198
- this.setState({
199
- text
200
- });
201
- }
202
- this.debounceUpdateFilter();
203
- }
204
- handleViewportChange(topRow, bottomRow) {
205
- log.debug2('handleViewportChange', topRow, bottomRow);
206
- var delta = Math.max(1, bottomRow - topRow);
207
- var top = Math.max(0, topRow - delta);
208
- var bottom = bottomRow + delta;
209
- var {
210
- table
211
- } = this.props;
212
- table.setViewport(top, bottom);
213
- }
214
- focus() {
215
- if (this.searchInput) {
216
- this.searchInput.focus();
217
- }
218
- }
219
- startListening() {
220
- var {
221
- dh,
222
- initialPageSize,
223
- table
224
- } = this.props;
225
- table.addEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);
226
- table.addEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleFilterChange);
227
- table.setViewport(0, initialPageSize);
228
- }
229
- stopListening() {
230
- var {
231
- dh,
232
- table
233
- } = this.props;
234
- table.removeEventListener(dh.Table.EVENT_UPDATED, this.handleTableUpdate);
235
- table.removeEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleFilterChange);
236
- }
237
- updateFilter() {
238
- var {
239
- column,
240
- initialPageSize,
241
- table
242
- } = this.props;
243
- var {
244
- text
245
- } = this.state;
246
- var filterText = text.trim();
247
- var filters = [];
248
- if (filterText.length > 0) {
249
- var filter = this.tableUtils.makeQuickFilterFromComponent(column, TableUtils.isStringType(column.type) ? "~".concat(filterText) : filterText);
250
- if (!filter) {
251
- throw new Error('Unable to create column filter for partition selector');
252
- }
253
- filters.push(filter);
254
- }
255
- log.debug2('updateFilter', filters);
256
- table.applyFilter(filters);
257
- table.setViewport(0, initialPageSize);
258
- }
259
- render() {
260
- var {
261
- column
262
- } = this.props;
263
- var {
264
- isLoading,
265
- itemCount,
266
- items,
267
- offset,
268
- text
269
- } = this.state;
270
- var listHeight = Math.min(itemCount, PartitionSelectorSearch.MAX_VISIBLE_ITEMS) * ItemList.DEFAULT_ROW_HEIGHT +
271
- // Adjust for ListItem vertical padding - .375rem ~ 5.25px
272
- 11;
273
- var inputType = TableUtils.isNumberType(column.type) ? 'number' : 'text';
274
- return /*#__PURE__*/_jsxs("div", {
275
- className: "iris-grid-partition-selector-search",
276
- children: [/*#__PURE__*/_jsx("div", {
277
- className: "search-container",
278
- children: /*#__PURE__*/_jsx("input", {
279
- type: inputType,
280
- ref: searchInput => {
281
- this.searchInput = searchInput;
282
- },
283
- value: text,
284
- placeholder: "Available Partitions",
285
- onChange: this.handleTextChange,
286
- onKeyDown: this.handleKeyDown,
287
- className: "form-control input-partition"
288
- })
289
- }), !isLoading && itemCount > 0 && /*#__PURE__*/_jsx("div", {
290
- className: "iris-grid-partition-selector-search-list",
291
- onKeyDown: this.handleListKeydown,
292
- role: "presentation",
293
- style: {
294
- height: listHeight
295
- },
296
- children: /*#__PURE__*/_jsx(ItemList, {
297
- ref: itemList => {
298
- this.itemList = itemList;
299
- },
300
- itemCount: itemCount,
301
- items: items,
302
- offset: offset,
303
- onSelect: this.handleSelect,
304
- onViewportChange: this.handleViewportChange
305
- })
306
- }), !isLoading && itemCount === 0 && /*#__PURE__*/_jsx("div", {
307
- className: "iris-grid-partition-selector-search-empty",
308
- children: "No results"
309
- }), isLoading && /*#__PURE__*/_jsxs("div", {
310
- className: "iris-grid-partition-selector-loading",
311
- children: [/*#__PURE__*/_jsx(LoadingSpinner, {
312
- className: "loading-spinner-vertical-align"
313
- }), "\xA0Loading..."]
314
- })]
315
- });
316
- }
317
- }
318
- _defineProperty(PartitionSelectorSearch, "MAX_VISIBLE_ITEMS", 12);
319
- _defineProperty(PartitionSelectorSearch, "defaultProps", {
320
- initialPageSize: 100,
321
- onSelect: () => undefined,
322
- onListResized: () => undefined
323
- });
324
- _defineProperty(PartitionSelectorSearch, "propTypes", {
325
- getFormattedString: PropTypes.func.isRequired,
326
- table: PropTypes.shape({
327
- addEventListener: PropTypes.func.isRequired,
328
- removeEventListener: PropTypes.func.isRequired,
329
- columns: PropTypes.arrayOf(PropTypes.shape({
330
- name: PropTypes.string.isRequired,
331
- type: PropTypes.string.isRequired,
332
- filter: PropTypes.func.isRequired
333
- })),
334
- size: PropTypes.number.isRequired,
335
- applyFilter: PropTypes.func.isRequired,
336
- setViewport: PropTypes.func.isRequired
337
- }).isRequired,
338
- initialPageSize: PropTypes.number,
339
- onSelect: PropTypes.func,
340
- onListResized: PropTypes.func
341
- });
342
- export default PartitionSelectorSearch;
343
- //# sourceMappingURL=PartitionSelectorSearch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PartitionSelectorSearch.js","names":["React","Component","PropTypes","debounce","TableUtils","ItemList","LoadingSpinner","Log","CanceledPromiseError","jsx","_jsx","jsxs","_jsxs","log","module","DEBOUNCE_UPDATE_FILTER","PartitionSelectorSearch","handleError","error","constructor","props","_defineProperty","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","column","data","detail","rows","getFormattedString","r","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","concat","Error","applyFilter","render","listHeight","min","MAX_VISIBLE_ITEMS","DEFAULT_ROW_HEIGHT","inputType","isNumberType","className","children","ref","placeholder","onChange","onKeyDown","role","style","height","onViewportChange","undefined","func","isRequired","shape","columns","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 { Column, 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 column: Column;\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 { column } = this.props;\n const data = event.detail;\n const { offset, rows } = data;\n\n const items = [] as Item[];\n const { getFormattedString, table } = this.props;\n for (let r = 0; r < rows.length; r += 1) {\n const row = 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 { column } = this.props;\n const { value: text } = event.target;\n\n if (text !== '' && TableUtils.isIntegerType(column.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 { column, initialPageSize, table } = this.props;\n const { text } = this.state;\n const filterText = text.trim();\n const filters = [];\n if (filterText.length > 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 { column } = 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(column.type) ? 'number' : '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 className=\"loading-spinner-vertical-align\" />\n &nbsp;Loading...\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default PartitionSelectorSearch;\n"],"mappings":"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"}