@deephaven/iris-grid 0.8.2-beta.5 → 0.9.1-alpha.9

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 (126) hide show
  1. package/dist/AdvancedFilterCreator.d.ts +2 -2
  2. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.d.ts +30 -31
  4. package/dist/AdvancedFilterCreatorFilterItem.d.ts.map +1 -1
  5. package/dist/AdvancedFilterCreatorFilterItem.js +21 -28
  6. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValueList.d.ts +1 -1
  8. package/dist/CrossColumnSearch.d.ts +1 -1
  9. package/dist/CrossColumnSearch.d.ts.map +1 -1
  10. package/dist/DateUtils.d.ts +46 -44
  11. package/dist/DateUtils.d.ts.map +1 -1
  12. package/dist/DateUtils.js +37 -32
  13. package/dist/DateUtils.js.map +1 -1
  14. package/dist/Formatter.d.ts +37 -35
  15. package/dist/Formatter.d.ts.map +1 -1
  16. package/dist/Formatter.js +57 -37
  17. package/dist/Formatter.js.map +1 -1
  18. package/dist/FormatterUtils.d.ts +12 -8
  19. package/dist/FormatterUtils.d.ts.map +1 -1
  20. package/dist/FormatterUtils.js.map +1 -1
  21. package/dist/IrisGrid.d.ts +15 -12
  22. package/dist/IrisGrid.d.ts.map +1 -1
  23. package/dist/IrisGrid.js +24 -13
  24. package/dist/IrisGrid.js.map +1 -1
  25. package/dist/IrisGridMetricCalculator.d.ts +16 -2
  26. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  27. package/dist/IrisGridMetricCalculator.js +4 -3
  28. package/dist/IrisGridMetricCalculator.js.map +1 -1
  29. package/dist/IrisGridModel.d.ts +23 -23
  30. package/dist/IrisGridModel.d.ts.map +1 -1
  31. package/dist/IrisGridModelFactory.d.ts +1 -1
  32. package/dist/IrisGridModelFactory.d.ts.map +1 -1
  33. package/dist/IrisGridProxyModel.d.ts +2 -2
  34. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  35. package/dist/IrisGridTableModel.d.ts +5 -5
  36. package/dist/IrisGridTableModel.d.ts.map +1 -1
  37. package/dist/IrisGridTestUtils.d.ts +1 -1
  38. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  39. package/dist/IrisGridTheme.d.ts +5 -75
  40. package/dist/IrisGridTheme.d.ts.map +1 -1
  41. package/dist/IrisGridTheme.js +2 -1
  42. package/dist/IrisGridTheme.js.map +1 -1
  43. package/dist/IrisGridUtils.d.ts +28 -28
  44. package/dist/IrisGridUtils.d.ts.map +1 -1
  45. package/dist/TableUtils.d.ts +127 -114
  46. package/dist/TableUtils.d.ts.map +1 -1
  47. package/dist/TableUtils.js +76 -69
  48. package/dist/TableUtils.js.map +1 -1
  49. package/dist/declaration.d.js +2 -0
  50. package/dist/declaration.d.js.map +1 -0
  51. package/dist/filters/FilterOperator.d.ts +5 -5
  52. package/dist/filters/FilterOperator.d.ts.map +1 -1
  53. package/dist/filters/FilterOperator.js +1 -3
  54. package/dist/filters/FilterOperator.js.map +1 -1
  55. package/dist/filters/FilterType.d.ts +23 -23
  56. package/dist/filters/FilterType.d.ts.map +1 -1
  57. package/dist/filters/FilterType.js +1 -3
  58. package/dist/filters/FilterType.js.map +1 -1
  59. package/dist/filters/index.d.ts +2 -2
  60. package/dist/filters/index.d.ts.map +1 -1
  61. package/dist/filters/index.js +2 -2
  62. package/dist/filters/index.js.map +1 -1
  63. package/dist/format-context-menus/CustomFormatAction.d.ts +27 -39
  64. package/dist/format-context-menus/CustomFormatAction.d.ts.map +1 -1
  65. package/dist/format-context-menus/CustomFormatAction.js +24 -23
  66. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  67. package/dist/format-context-menus/DateTimeFormatContextMenu.d.ts +8 -5
  68. package/dist/format-context-menus/DateTimeFormatContextMenu.d.ts.map +1 -1
  69. package/dist/format-context-menus/DateTimeFormatContextMenu.js +3 -3
  70. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  71. package/dist/format-context-menus/DecimalFormatContextMenu.d.ts +7 -5
  72. package/dist/format-context-menus/DecimalFormatContextMenu.d.ts.map +1 -1
  73. package/dist/format-context-menus/DecimalFormatContextMenu.js +3 -3
  74. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  75. package/dist/format-context-menus/FormatContextMenuUtils.d.ts +28 -27
  76. package/dist/format-context-menus/FormatContextMenuUtils.d.ts.map +1 -1
  77. package/dist/format-context-menus/FormatContextMenuUtils.js +12 -10
  78. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  79. package/dist/format-context-menus/IntegerFormatContextMenu.d.ts +7 -5
  80. package/dist/format-context-menus/IntegerFormatContextMenu.d.ts.map +1 -1
  81. package/dist/format-context-menus/IntegerFormatContextMenu.js +3 -3
  82. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  83. package/dist/format-context-menus/index.d.ts +3 -3
  84. package/dist/format-context-menus/index.d.ts.map +1 -1
  85. package/dist/format-context-menus/index.js.map +1 -1
  86. package/dist/formatters/BooleanColumnFormatter.d.ts +4 -4
  87. package/dist/formatters/BooleanColumnFormatter.d.ts.map +1 -1
  88. package/dist/formatters/BooleanColumnFormatter.js.map +1 -1
  89. package/dist/formatters/CharColumnFormatter.d.ts +4 -4
  90. package/dist/formatters/CharColumnFormatter.d.ts.map +1 -1
  91. package/dist/formatters/CharColumnFormatter.js.map +1 -1
  92. package/dist/formatters/DateTimeColumnFormatter.d.ts +6 -5
  93. package/dist/formatters/DateTimeColumnFormatter.d.ts.map +1 -1
  94. package/dist/formatters/DateTimeColumnFormatter.js.map +1 -1
  95. package/dist/formatters/DecimalColumnFormatter.d.ts +2 -2
  96. package/dist/formatters/DecimalColumnFormatter.d.ts.map +1 -1
  97. package/dist/formatters/DecimalColumnFormatter.js.map +1 -1
  98. package/dist/formatters/DefaultColumnFormatter.d.ts +4 -4
  99. package/dist/formatters/DefaultColumnFormatter.d.ts.map +1 -1
  100. package/dist/formatters/DefaultColumnFormatter.js.map +1 -1
  101. package/dist/formatters/IntegerColumnFormatter.d.ts +2 -2
  102. package/dist/formatters/IntegerColumnFormatter.d.ts.map +1 -1
  103. package/dist/formatters/IntegerColumnFormatter.js.map +1 -1
  104. package/dist/formatters/index.d.ts +1 -0
  105. package/dist/formatters/index.d.ts.map +1 -1
  106. package/dist/formatters/index.js +1 -0
  107. package/dist/formatters/index.js.map +1 -1
  108. package/dist/index.d.ts +14 -11
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +1 -0
  111. package/dist/index.js.map +1 -1
  112. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +17 -8
  113. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  114. package/dist/sidebar/ChartBuilder.d.ts +1 -1
  115. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  116. package/dist/sidebar/TableCsvExporter.d.ts +1 -1
  117. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  118. package/dist/sidebar/VisibilityOrderingBuilder.d.ts +1 -1
  119. package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
  120. package/dist/sidebar/aggregations/AggregationEdit.d.ts +2 -4
  121. package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
  122. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  123. package/dist/sidebar/aggregations/AggregationUtils.d.ts +1 -4
  124. package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
  125. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  126. package/package.json +12 -13
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sidebar/aggregations/AggregationEdit.tsx"],"names":["React","useCallback","useMemo","useRef","useState","classNames","CSSTransition","Button","Checkbox","ItemList","ThemeExport","dhSortAlphaDown","dhSortAlphaUp","filterValidColumns","TableUtils","SortType","DEFAULT_ROW_HEIGHT","AggregationEdit","aggregation","columns","onChange","top","setTop","bottom","setBottom","sort","setSort","NONE","invert","selected","list","isSelected","name","includes","validColumns","filteredColumns","operation","sortColumns","ASCENDING","items","slice","map","c","value","displayValue","handleSelect","itemIndex","selectedIndex","indexOf","newSelected","newInvert","splice","push","length","handleReset","handleViewportChange","newTop","newBottom","toggleAll","checked","isModified","transitionSlowMs","active","DESCENDING","item"],"mappings":";;;;;;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,OAA7B,EAAsCC,MAAtC,EAA8CC,QAA9C,QAA8D,OAA9D;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,aAAT,QAA8B,wBAA9B;AACA,SAASC,MAAT,EAAiBC,QAAjB,EAA2BC,QAA3B,EAAqCC,WAArC,QAAwD,uBAAxD;AACA,SAASC,eAAT,EAA0BC,aAA1B,QAA+C,kBAA/C;SAESC,kB;;OAEFC,U;IAaFC,Q;;WAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;AAAAA,EAAAA,Q,CAAAA,Q;GAAAA,Q,KAAAA,Q;;AAML,IAAMC,kBAAkB,GAAG,EAA3B;;AAEA,IAAMC,eAAe,GAAG,QAIiB;AAAA,MAJhB;AACvBC,IAAAA,WADuB;AAEvBC,IAAAA,OAFuB;AAGvBC,IAAAA;AAHuB,GAIgB;AACvC,MAAM,CAACC,GAAD,EAAMC,MAAN,IAAgBlB,QAAQ,CAAC,CAAC,CAAF,CAA9B;AACA,MAAM,CAACmB,MAAD,EAASC,SAAT,IAAsBpB,QAAQ,CAAC,CAAC,CAAF,CAApC;AACA,MAAM,CAACqB,IAAD,EAAOC,OAAP,IAAkBtB,QAAQ,CAACW,QAAQ,CAACY,IAAV,CAAhC;AACA,MAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAuBX,WAA7B;AACA,MAAMY,IAAI,GAAG3B,MAAM,CAAgC,IAAhC,CAAnB;AAEA,MAAM4B,UAAU,GAAG9B,WAAW,CAC5B+B,IAAI,IAAKH,QAAQ,CAACI,QAAT,CAAkBD,IAAlB,IAA0B,CAACJ,MAA3B,GAAoCA,MADjB,EAE5B,CAACA,MAAD,EAASC,QAAT,CAF4B,CAA9B;AAKA,MAAMK,YAAY,GAAGhC,OAAO,CAAC,MAAM;AACjC,QAAIiC,eAAe,GAAGtB,kBAAkB,CAACM,OAAD,EAAUD,WAAW,CAACkB,SAAtB,CAAxC;;AACA,QAAIX,IAAI,KAAKV,QAAQ,CAACY,IAAtB,EAA4B;AAC1BQ,MAAAA,eAAe,GAAGrB,UAAU,CAACuB,WAAX,CAChBF,eADgB,EAEhBV,IAAI,KAAKV,QAAQ,CAACuB,SAFF,CAAlB;AAID;;AACD,WAAOH,eAAP;AACD,GAT2B,EASzB,CAAChB,OAAD,EAAUD,WAAW,CAACkB,SAAtB,EAAiCX,IAAjC,CATyB,CAA5B;AAWA,MAAMc,KAAK,GAAGrC,OAAO,CACnB,MACEmB,GAAG,IAAI,CAAP,GACIa,YAAY,CAACM,KAAb,CAAmBnB,GAAnB,EAAwBE,MAAM,GAAG,CAAjC,EAAoCkB,GAApC,CAAwCC,CAAC,KAAK;AAC5CC,IAAAA,KAAK,EAAED,CAAC,CAACV,IADmC;AAE5CY,IAAAA,YAAY,EAAEF,CAAC,CAACV,IAF4B;AAG5CD,IAAAA,UAAU,EAAEA,UAAU,CAACW,CAAC,CAACV,IAAH;AAHsB,GAAL,CAAzC,CADJ,GAMI,EARa,EASnB,CAACE,YAAD,EAAeH,UAAf,EAA2BR,MAA3B,EAAmCF,GAAnC,CATmB,CAArB;AAYA,MAAMwB,YAAY,GAAG5C,WAAW,CAC9B6C,SAAS,IAAI;AACX,QAAM;AAAEd,MAAAA;AAAF,QAAWE,YAAY,CAACY,SAAD,CAA7B;AACA,QAAMC,aAAa,GAAGlB,QAAQ,CAACmB,OAAT,CAAiBhB,IAAjB,CAAtB;AACA,QAAIiB,WAAW,GAAG,CAAC,GAAGpB,QAAJ,CAAlB;AACA,QAAIqB,SAAS,GAAGtB,MAAhB;;AACA,QAAImB,aAAa,IAAI,CAArB,EAAwB;AACtBE,MAAAA,WAAW,CAACE,MAAZ,CAAmBJ,aAAnB,EAAkC,CAAlC;AACD,KAFD,MAEO;AACLE,MAAAA,WAAW,CAACG,IAAZ,CAAiBpB,IAAjB;;AACA,UAAIiB,WAAW,CAACI,MAAZ,KAAuBnB,YAAY,CAACmB,MAAxC,EAAgD;AAC9C;AACAJ,QAAAA,WAAW,GAAG,EAAd;AACAC,QAAAA,SAAS,GAAG,CAACtB,MAAb;AACD;AACF;;AAEDR,IAAAA,QAAQ,iCAAMF,WAAN;AAAmBW,MAAAA,QAAQ,EAAEoB,WAA7B;AAA0CrB,MAAAA,MAAM,EAAEsB;AAAlD,OAAR;AACD,GAlB6B,EAmB9B,CAAChC,WAAD,EAAcU,MAAd,EAAsBM,YAAtB,EAAoCL,QAApC,EAA8CT,QAA9C,CAnB8B,CAAhC;AAsBA,MAAMkC,WAAW,GAAGrD,WAAW,CAAC,MAAM;AACpCyB,IAAAA,OAAO,CAACX,QAAQ,CAACY,IAAV,CAAP;AACAP,IAAAA,QAAQ,iCAAMF,WAAN;AAAmBW,MAAAA,QAAQ,EAAE,EAA7B;AAAiCD,MAAAA,MAAM,EAAE;AAAzC,OAAR;AACD,GAH8B,EAG5B,CAACV,WAAD,EAAcE,QAAd,CAH4B,CAA/B;AAKA,MAAMmC,oBAAoB,GAAGtD,WAAW,CACtC,CAACuD,MAAD,EAASC,SAAT,KAAuB;AACrBnC,IAAAA,MAAM,CAACkC,MAAD,CAAN;AACAhC,IAAAA,SAAS,CAACiC,SAAD,CAAT;AACD,GAJqC,EAKtC,CAACnC,MAAD,EAASE,SAAT,CALsC,CAAxC;AAQA,MAAMkC,SAAS,GAAGzD,WAAW,CAAC,MAAM;AAClC,QAAI4B,QAAQ,CAACwB,MAAT,KAAoB,CAAxB,EAA2B;AACzBjC,MAAAA,QAAQ,iCAAMF,WAAN;AAAmBU,QAAAA,MAAM,EAAE,CAACA;AAA5B,SAAR;AACD,KAFD,MAEO;AACLR,MAAAA,QAAQ,iCAAMF,WAAN;AAAmBW,QAAAA,QAAQ,EAAE,EAA7B;AAAiCD,QAAAA,MAAM,EAAE;AAAzC,SAAR;AACD;AACF,GAN4B,EAM1B,CAACV,WAAD,EAAcU,MAAd,EAAsBR,QAAtB,EAAgCS,QAAhC,CAN0B,CAA7B;AAQA,MAAM8B,OAAO,GAAG9B,QAAQ,CAACwB,MAAT,KAAoB,CAApB,GAAwBzB,MAAxB,GAAiC,IAAjD;AACA,MAAMgC,UAAU,GAAG/B,QAAQ,CAACwB,MAAT,KAAoB,CAApB,IAAyB,CAACzB,MAA1B,IAAoCH,IAAI,KAAKV,QAAQ,CAACY,IAAzE;AAEA,sBACE;AAAK,IAAA,IAAI,EAAC,MAAV;AAAiB,IAAA,SAAS,EAAC;AAA3B,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,QAAD;AAAU,IAAA,OAAO,EAAEgC,OAAnB;AAA4B,IAAA,QAAQ,EAAED;AAAtC,kBADF,eAIE;AAAK,IAAA,SAAS,EAAC;AAAf,IAJF,eAKE,oBAAC,aAAD;AACE,IAAA,EAAE,EAAEE,UADN;AAEE,IAAA,OAAO,EAAElD,WAAW,CAACmD,gBAFvB;AAGE,IAAA,UAAU,EAAC,MAHb;AAIE,IAAA,YAAY,MAJd;AAKE,IAAA,aAAa;AALf,kBAOE,oBAAC,MAAD;AAAQ,IAAA,IAAI,EAAC,OAAb;AAAqB,IAAA,SAAS,EAAC,WAA/B;AAA2C,IAAA,OAAO,EAAEP;AAApD,aAPF,CALF,eAgBE,oBAAC,MAAD;AACE,IAAA,IAAI,EAAC,OADP;AAEE,IAAA,SAAS,EAAEjD,UAAU,CAAC;AACpByD,MAAAA,MAAM,EAAErC,IAAI,KAAKV,QAAQ,CAACuB;AADN,KAAD,CAFvB;AAKE,IAAA,IAAI,EAAE3B,eALR;AAME,IAAA,OAAO,EAAC,gBANV;AAOE,IAAA,OAAO,EAAE,MAAMe,OAAO,CAACX,QAAQ,CAACuB,SAAV;AAPxB,IAhBF,eAyBE,oBAAC,MAAD;AACE,IAAA,IAAI,EAAC,OADP;AAEE,IAAA,SAAS,EAAEjC,UAAU,CAAC;AACpByD,MAAAA,MAAM,EAAErC,IAAI,KAAKV,QAAQ,CAACgD;AADN,KAAD,CAFvB;AAKE,IAAA,IAAI,EAAEnD,aALR;AAME,IAAA,OAAO,EAAC,iBANV;AAOE,IAAA,OAAO,EAAE,MAAMc,OAAO,CAACX,QAAQ,CAACgD,UAAV;AAPxB,IAzBF,CADF,CADF,eAsCE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAE7B,YAAY,CAACmB,MAD1B;AAEE,IAAA,KAAK,EAAEd,KAFT;AAGE,IAAA,MAAM,EAAElB,GAHV;AAIE,IAAA,UAAU,EAAE;AAAA,UAAC;AAAE2C,QAAAA;AAAF,OAAD;AAAA,0BACV,oBAAC,QAAD;AAAU,QAAA,OAAO,EAAEjC,UAAU,CAACiC,IAAI,CAACrB,KAAN;AAA7B,SACGqB,IAAI,CAACpB,YADR,CADU;AAAA,KAJd;AASE,IAAA,QAAQ,EAAEC,YATZ;AAUE,IAAA,gBAAgB,EAAEU,oBAVpB;AAWE,IAAA,SAAS,EAAEvC,kBAXb;AAYE,IAAA,aAAa,EAAC,OAZhB;AAaE,IAAA,GAAG,EAAEc;AAbP,IADF,CAtCF,CADF;AA0DD,CA/ID;;AAiJA,eAAeb,eAAf","sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { Button, Checkbox, ItemList, ThemeExport } from '@deephaven/components';\nimport { dhSortAlphaDown, dhSortAlphaUp } from '@deephaven/icons';\nimport { Aggregation } from './Aggregations';\nimport { filterValidColumns } from './AggregationUtils';\nimport './AggregationEdit.scss';\nimport TableUtils from '../../TableUtils';\n\ninterface AggregationEditItem {\n value: string;\n displayValue: string;\n}\n\nexport type AggregationEditProps = {\n aggregation: Aggregation;\n columns: { name: string; type: string }[];\n onChange: (aggregation: Aggregation) => void;\n};\n\nenum SortType {\n NONE,\n ASCENDING,\n DESCENDING,\n}\n\nconst DEFAULT_ROW_HEIGHT = 30;\n\nconst AggregationEdit = ({\n aggregation,\n columns,\n onChange,\n}: AggregationEditProps): JSX.Element => {\n const [top, setTop] = useState(-1);\n const [bottom, setBottom] = useState(-1);\n const [sort, setSort] = useState(SortType.NONE);\n const { invert, selected } = aggregation;\n const list = useRef<ItemList<AggregationEditItem>>(null);\n\n const isSelected = useCallback(\n name => (selected.includes(name) ? !invert : invert),\n [invert, selected]\n );\n\n const validColumns = useMemo(() => {\n let filteredColumns = filterValidColumns(columns, aggregation.operation);\n if (sort !== SortType.NONE) {\n filteredColumns = TableUtils.sortColumns(\n filteredColumns,\n sort === SortType.ASCENDING\n );\n }\n return filteredColumns;\n }, [columns, aggregation.operation, sort]);\n\n const items = useMemo(\n () =>\n top >= 0\n ? validColumns.slice(top, bottom + 1).map(c => ({\n value: c.name,\n displayValue: c.name,\n isSelected: isSelected(c.name),\n }))\n : [],\n [validColumns, isSelected, bottom, top]\n );\n\n const handleSelect = useCallback(\n itemIndex => {\n const { name } = validColumns[itemIndex];\n const selectedIndex = selected.indexOf(name);\n let newSelected = [...selected];\n let newInvert = invert;\n if (selectedIndex >= 0) {\n newSelected.splice(selectedIndex, 1);\n } else {\n newSelected.push(name);\n if (newSelected.length === validColumns.length) {\n // Every item is either selected or deselected, flip the inversion bit\n newSelected = [];\n newInvert = !invert;\n }\n }\n\n onChange({ ...aggregation, selected: newSelected, invert: newInvert });\n },\n [aggregation, invert, validColumns, selected, onChange]\n );\n\n const handleReset = useCallback(() => {\n setSort(SortType.NONE);\n onChange({ ...aggregation, selected: [], invert: true });\n }, [aggregation, onChange]);\n\n const handleViewportChange = useCallback(\n (newTop, newBottom) => {\n setTop(newTop);\n setBottom(newBottom);\n },\n [setTop, setBottom]\n );\n\n const toggleAll = useCallback(() => {\n if (selected.length === 0) {\n onChange({ ...aggregation, invert: !invert });\n } else {\n onChange({ ...aggregation, selected: [], invert: true });\n }\n }, [aggregation, invert, onChange, selected]);\n\n const checked = selected.length === 0 ? invert : null;\n const isModified = selected.length !== 0 || !invert || sort !== SortType.NONE;\n\n return (\n <div role=\"menu\" className=\"aggregation-edit\">\n <div className=\"top-menu\">\n <div className=\"form-inline\">\n <Checkbox checked={checked} onChange={toggleAll}>\n Toggle All\n </Checkbox>\n <div className=\"spacer\" />\n <CSSTransition\n in={isModified}\n timeout={ThemeExport.transitionSlowMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <Button kind=\"ghost\" className=\"btn-reset\" onClick={handleReset}>\n Reset\n </Button>\n </CSSTransition>\n <Button\n kind=\"ghost\"\n className={classNames({\n active: sort === SortType.ASCENDING,\n })}\n icon={dhSortAlphaDown}\n tooltip=\"Sort ascending\"\n onClick={() => setSort(SortType.ASCENDING)}\n />\n <Button\n kind=\"ghost\"\n className={classNames({\n active: sort === SortType.DESCENDING,\n })}\n icon={dhSortAlphaUp}\n tooltip=\"Sort descending\"\n onClick={() => setSort(SortType.DESCENDING)}\n />\n </div>\n </div>\n <div className=\"aggregation-edit-item-list\">\n <ItemList\n itemCount={validColumns.length}\n items={items}\n offset={top}\n renderItem={({ item }) => (\n <Checkbox checked={isSelected(item.value)}>\n {item.displayValue}\n </Checkbox>\n )}\n onSelect={handleSelect}\n onViewportChange={handleViewportChange}\n rowHeight={DEFAULT_ROW_HEIGHT}\n focusSelector=\"input\"\n ref={list}\n />\n </div>\n </div>\n );\n};\n\nexport default AggregationEdit;\n"],"file":"AggregationEdit.js"}
1
+ {"version":3,"sources":["../../../src/sidebar/aggregations/AggregationEdit.tsx"],"names":["React","useCallback","useMemo","useRef","useState","classNames","CSSTransition","Button","Checkbox","ItemList","ThemeExport","dhSortAlphaDown","dhSortAlphaUp","filterValidColumns","TableUtils","SortType","DEFAULT_ROW_HEIGHT","AggregationEdit","aggregation","columns","onChange","top","setTop","bottom","setBottom","sort","setSort","NONE","invert","selected","list","isSelected","name","includes","validColumns","filteredColumns","operation","sortColumns","ASCENDING","items","slice","map","c","value","displayValue","handleSelect","itemIndex","selectedIndex","indexOf","newSelected","newInvert","splice","push","length","handleReset","handleViewportChange","newTop","newBottom","toggleAll","checked","isModified","transitionSlowMs","active","DESCENDING","item"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { Button, Checkbox, ItemList, ThemeExport } from '@deephaven/components';\nimport { dhSortAlphaDown, dhSortAlphaUp } from '@deephaven/icons';\nimport type { Column } from '@deephaven/jsapi-shim';\nimport { Aggregation } from './Aggregations';\nimport { filterValidColumns } from './AggregationUtils';\nimport './AggregationEdit.scss';\nimport TableUtils from '../../TableUtils';\n\ninterface AggregationEditItem {\n value: string;\n displayValue: string;\n}\n\nexport type AggregationEditProps = {\n aggregation: Aggregation;\n columns: Column[];\n onChange: (aggregation: Aggregation) => void;\n};\n\nenum SortType {\n NONE,\n ASCENDING,\n DESCENDING,\n}\n\nconst DEFAULT_ROW_HEIGHT = 30;\n\nconst AggregationEdit = ({\n aggregation,\n columns,\n onChange,\n}: AggregationEditProps): JSX.Element => {\n const [top, setTop] = useState(-1);\n const [bottom, setBottom] = useState(-1);\n const [sort, setSort] = useState(SortType.NONE);\n const { invert, selected } = aggregation;\n const list = useRef<ItemList<AggregationEditItem>>(null);\n\n const isSelected = useCallback(\n name => (selected.includes(name) ? !invert : invert),\n [invert, selected]\n );\n\n const validColumns = useMemo(() => {\n let filteredColumns = filterValidColumns(columns, aggregation.operation);\n if (sort !== SortType.NONE) {\n filteredColumns = TableUtils.sortColumns(\n filteredColumns,\n sort === SortType.ASCENDING\n );\n }\n return filteredColumns;\n }, [columns, aggregation.operation, sort]);\n\n const items = useMemo(\n () =>\n top >= 0\n ? validColumns.slice(top, bottom + 1).map(c => ({\n value: c.name,\n displayValue: c.name,\n isSelected: isSelected(c.name),\n }))\n : [],\n [validColumns, isSelected, bottom, top]\n );\n\n const handleSelect = useCallback(\n itemIndex => {\n const { name } = validColumns[itemIndex];\n const selectedIndex = selected.indexOf(name);\n let newSelected = [...selected];\n let newInvert = invert;\n if (selectedIndex >= 0) {\n newSelected.splice(selectedIndex, 1);\n } else {\n newSelected.push(name);\n if (newSelected.length === validColumns.length) {\n // Every item is either selected or deselected, flip the inversion bit\n newSelected = [];\n newInvert = !invert;\n }\n }\n\n onChange({ ...aggregation, selected: newSelected, invert: newInvert });\n },\n [aggregation, invert, validColumns, selected, onChange]\n );\n\n const handleReset = useCallback(() => {\n setSort(SortType.NONE);\n onChange({ ...aggregation, selected: [], invert: true });\n }, [aggregation, onChange]);\n\n const handleViewportChange = useCallback(\n (newTop, newBottom) => {\n setTop(newTop);\n setBottom(newBottom);\n },\n [setTop, setBottom]\n );\n\n const toggleAll = useCallback(() => {\n if (selected.length === 0) {\n onChange({ ...aggregation, invert: !invert });\n } else {\n onChange({ ...aggregation, selected: [], invert: true });\n }\n }, [aggregation, invert, onChange, selected]);\n\n const checked = selected.length === 0 ? invert : null;\n const isModified = selected.length !== 0 || !invert || sort !== SortType.NONE;\n\n return (\n <div role=\"menu\" className=\"aggregation-edit\">\n <div className=\"top-menu\">\n <div className=\"form-inline\">\n <Checkbox checked={checked} onChange={toggleAll}>\n Toggle All\n </Checkbox>\n <div className=\"spacer\" />\n <CSSTransition\n in={isModified}\n timeout={ThemeExport.transitionSlowMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <Button kind=\"ghost\" className=\"btn-reset\" onClick={handleReset}>\n Reset\n </Button>\n </CSSTransition>\n <Button\n kind=\"ghost\"\n className={classNames({\n active: sort === SortType.ASCENDING,\n })}\n icon={dhSortAlphaDown}\n tooltip=\"Sort ascending\"\n onClick={() => setSort(SortType.ASCENDING)}\n />\n <Button\n kind=\"ghost\"\n className={classNames({\n active: sort === SortType.DESCENDING,\n })}\n icon={dhSortAlphaUp}\n tooltip=\"Sort descending\"\n onClick={() => setSort(SortType.DESCENDING)}\n />\n </div>\n </div>\n <div className=\"aggregation-edit-item-list\">\n <ItemList\n itemCount={validColumns.length}\n items={items}\n offset={top}\n renderItem={({ item }) => (\n <Checkbox checked={isSelected(item.value)}>\n {item.displayValue}\n </Checkbox>\n )}\n onSelect={handleSelect}\n onViewportChange={handleViewportChange}\n rowHeight={DEFAULT_ROW_HEIGHT}\n focusSelector=\"input\"\n ref={list}\n />\n </div>\n </div>\n );\n};\n\nexport default AggregationEdit;\n"],"file":"AggregationEdit.js"}
@@ -1,3 +1,4 @@
1
+ import type { Column } from '@deephaven/jsapi-shim';
1
2
  import AggregationOperation from './AggregationOperation';
2
3
  /**
3
4
  * Check if an operation requires a rollup/table grouping
@@ -11,10 +12,6 @@ export declare const isRollupOperation: (type: AggregationOperation) => boolean;
11
12
  * @param columnType The column type to check against
12
13
  */
13
14
  export declare const isValidOperation: (operationType: AggregationOperation, columnType: string) => boolean;
14
- declare type Column = {
15
- type: string;
16
- name: string;
17
- };
18
15
  export declare const filterValidColumns: (columns: Column[], operationType: AggregationOperation) => Column[];
19
16
  export declare const getOperationColumnNames: (columns: Column[], operationType: AggregationOperation, selected: string[], invert: boolean) => string[];
20
17
  declare const _default: {
@@ -1 +1 @@
1
- {"version":3,"file":"AggregationUtils.d.ts","sourceRoot":"","sources":["../../../src/sidebar/aggregations/AggregationUtils.ts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,SAAU,oBAAoB,KAAG,OAM9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,kBACZ,oBAAoB,cACvB,MAAM,KACjB,OA0BF,CAAC;AAEF,aAAK,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7C,eAAO,MAAM,kBAAkB,YACpB,MAAM,EAAE,iBACF,oBAAoB,KAClC,MAAM,EAAkE,CAAC;AAE5E,eAAO,MAAM,uBAAuB,YACzB,MAAM,EAAE,iBACF,oBAAoB,YACzB,MAAM,EAAE,UACV,OAAO,KACd,MAAM,EAGwD,CAAC;;;;;;AAElE,wBAIE"}
1
+ {"version":3,"file":"AggregationUtils.d.ts","sourceRoot":"","sources":["../../../src/sidebar/aggregations/AggregationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,SAAU,oBAAoB,KAAG,OAM9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,kBACZ,oBAAoB,cACvB,MAAM,KACjB,OA0BF,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,MAAM,EAAE,iBACF,oBAAoB,KAClC,MAAM,EAAkE,CAAC;AAE5E,eAAO,MAAM,uBAAuB,YACzB,MAAM,EAAE,iBACF,oBAAoB,YACzB,MAAM,EAAE,UACV,OAAO,KACd,MAAM,EAGwD,CAAC;;;;;;AAElE,wBAIE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sidebar/aggregations/AggregationUtils.ts"],"names":["TableUtils","AggregationOperation","isRollupOperation","type","isValidOperation","operationType","columnType","COUNT","FIRST","LAST","COUNT_DISTINCT","DISTINCT","UNIQUE","MIN","MAX","isNumberType","isDateType","isTextType","SUM","ABS_SUM","VAR","AVG","STD","SKIP","filterValidColumns","columns","filter","c","getOperationColumnNames","selected","invert","map","name","includes"],"mappings":"OAAOA,U;OACAC,oB;AAEP;AACA;AACA;AACA;AACA;;AACA,OAAO,IAAMC,iBAAiB,GAAIC,IAAD,IAAyC;AACxE,UAAQA,IAAR;AACE;AACA;AACE,aAAO,KAAP;AAHJ;AAKD,CANM;AAQP;AACA;AACA;AACA;AACA;;AACA,OAAO,IAAMC,gBAAgB,GAAG,CAC9BC,aAD8B,EAE9BC,UAF8B,KAGlB;AACZ,UAAQD,aAAR;AACE,SAAKJ,oBAAoB,CAACM,KAA1B;AACA,SAAKN,oBAAoB,CAACO,KAA1B;AACA,SAAKP,oBAAoB,CAACQ,IAA1B;AACA,SAAKR,oBAAoB,CAACS,cAA1B;AACA,SAAKT,oBAAoB,CAACU,QAA1B;AACA,SAAKV,oBAAoB,CAACW,MAA1B;AACE,aAAO,IAAP;;AACF,SAAKX,oBAAoB,CAACY,GAA1B;AACA,SAAKZ,oBAAoB,CAACa,GAA1B;AACE,aACEd,UAAU,CAACe,YAAX,CAAwBT,UAAxB,KACAN,UAAU,CAACgB,UAAX,CAAsBV,UAAtB,CADA,IAEAN,UAAU,CAACiB,UAAX,CAAsBX,UAAtB,CAHF;;AAKF,SAAKL,oBAAoB,CAACiB,GAA1B;AACA,SAAKjB,oBAAoB,CAACkB,OAA1B;AACA,SAAKlB,oBAAoB,CAACmB,GAA1B;AACA,SAAKnB,oBAAoB,CAACoB,GAA1B;AACA,SAAKpB,oBAAoB,CAACqB,GAA1B;AACE,aAAOtB,UAAU,CAACe,YAAX,CAAwBT,UAAxB,CAAP;;AACF,SAAKL,oBAAoB,CAACsB,IAA1B;AACE,aAAO,KAAP;AACF;AAvBF;AAyBD,CA7BM;AAgCP,OAAO,IAAMC,kBAAkB,GAAG,CAChCC,OADgC,EAEhCpB,aAFgC,KAGnBoB,OAAO,CAACC,MAAR,CAAeC,CAAC,IAAIvB,gBAAgB,CAACC,aAAD,EAAgBsB,CAAC,CAACxB,IAAlB,CAApC,CAHR;AAKP,OAAO,IAAMyB,uBAAuB,GAAG,CACrCH,OADqC,EAErCpB,aAFqC,EAGrCwB,QAHqC,EAIrCC,MAJqC,KAMrCN,kBAAkB,CAACC,OAAD,EAAUpB,aAAV,CAAlB,CACG0B,GADH,CACO;AAAA,MAAC;AAAEC,IAAAA;AAAF,GAAD;AAAA,SAAcA,IAAd;AAAA,CADP,EAEGN,MAFH,CAEUM,IAAI,IAAKH,QAAQ,CAACI,QAAT,CAAkBD,IAAlB,IAA0B,CAACF,MAA3B,GAAoCA,MAFvD,CANK;AAUP,eAAe;AACb5B,EAAAA,iBADa;AAEbsB,EAAAA,kBAFa;AAGbI,EAAAA;AAHa,CAAf","sourcesContent":["import TableUtils from '../../TableUtils';\nimport AggregationOperation from './AggregationOperation';\n\n/**\n * Check if an operation requires a rollup/table grouping\n * @param type The operation to check\n * @returns True if this operation applies to the whole table, false if applies to columns\n */\nexport const isRollupOperation = (type: AggregationOperation): boolean => {\n switch (type) {\n // currently no rollup only operations, but there has been in the past\n default:\n return false;\n }\n};\n\n/**\n * Check if an operation is valid against the given column type\n * @param operationType The operation to check\n * @param columnType The column type to check against\n */\nexport const isValidOperation = (\n operationType: AggregationOperation,\n columnType: string\n): boolean => {\n switch (operationType) {\n case AggregationOperation.COUNT:\n case AggregationOperation.FIRST:\n case AggregationOperation.LAST:\n case AggregationOperation.COUNT_DISTINCT:\n case AggregationOperation.DISTINCT:\n case AggregationOperation.UNIQUE:\n return true;\n case AggregationOperation.MIN:\n case AggregationOperation.MAX:\n return (\n TableUtils.isNumberType(columnType) ||\n TableUtils.isDateType(columnType) ||\n TableUtils.isTextType(columnType)\n );\n case AggregationOperation.SUM:\n case AggregationOperation.ABS_SUM:\n case AggregationOperation.VAR:\n case AggregationOperation.AVG:\n case AggregationOperation.STD:\n return TableUtils.isNumberType(columnType);\n case AggregationOperation.SKIP:\n return false;\n // No default case - if AggregationOperation is added, we'll get a compile time error\n }\n};\n\ntype Column = { type: string; name: string };\nexport const filterValidColumns = (\n columns: Column[],\n operationType: AggregationOperation\n): Column[] => columns.filter(c => isValidOperation(operationType, c.type));\n\nexport const getOperationColumnNames = (\n columns: Column[],\n operationType: AggregationOperation,\n selected: string[],\n invert: boolean\n): string[] =>\n filterValidColumns(columns, operationType)\n .map(({ name }) => name)\n .filter(name => (selected.includes(name) ? !invert : invert));\n\nexport default {\n isRollupOperation,\n filterValidColumns,\n getOperationColumnNames,\n};\n"],"file":"AggregationUtils.js"}
1
+ {"version":3,"sources":["../../../src/sidebar/aggregations/AggregationUtils.ts"],"names":["TableUtils","AggregationOperation","isRollupOperation","type","isValidOperation","operationType","columnType","COUNT","FIRST","LAST","COUNT_DISTINCT","DISTINCT","UNIQUE","MIN","MAX","isNumberType","isDateType","isTextType","SUM","ABS_SUM","VAR","AVG","STD","SKIP","filterValidColumns","columns","filter","c","getOperationColumnNames","selected","invert","map","name","includes"],"mappings":"OACOA,U;OACAC,oB;AAEP;AACA;AACA;AACA;AACA;;AACA,OAAO,IAAMC,iBAAiB,GAAIC,IAAD,IAAyC;AACxE,UAAQA,IAAR;AACE;AACA;AACE,aAAO,KAAP;AAHJ;AAKD,CANM;AAQP;AACA;AACA;AACA;AACA;;AACA,OAAO,IAAMC,gBAAgB,GAAG,CAC9BC,aAD8B,EAE9BC,UAF8B,KAGlB;AACZ,UAAQD,aAAR;AACE,SAAKJ,oBAAoB,CAACM,KAA1B;AACA,SAAKN,oBAAoB,CAACO,KAA1B;AACA,SAAKP,oBAAoB,CAACQ,IAA1B;AACA,SAAKR,oBAAoB,CAACS,cAA1B;AACA,SAAKT,oBAAoB,CAACU,QAA1B;AACA,SAAKV,oBAAoB,CAACW,MAA1B;AACE,aAAO,IAAP;;AACF,SAAKX,oBAAoB,CAACY,GAA1B;AACA,SAAKZ,oBAAoB,CAACa,GAA1B;AACE,aACEd,UAAU,CAACe,YAAX,CAAwBT,UAAxB,KACAN,UAAU,CAACgB,UAAX,CAAsBV,UAAtB,CADA,IAEAN,UAAU,CAACiB,UAAX,CAAsBX,UAAtB,CAHF;;AAKF,SAAKL,oBAAoB,CAACiB,GAA1B;AACA,SAAKjB,oBAAoB,CAACkB,OAA1B;AACA,SAAKlB,oBAAoB,CAACmB,GAA1B;AACA,SAAKnB,oBAAoB,CAACoB,GAA1B;AACA,SAAKpB,oBAAoB,CAACqB,GAA1B;AACE,aAAOtB,UAAU,CAACe,YAAX,CAAwBT,UAAxB,CAAP;;AACF,SAAKL,oBAAoB,CAACsB,IAA1B;AACE,aAAO,KAAP;AACF;AAvBF;AAyBD,CA7BM;AA+BP,OAAO,IAAMC,kBAAkB,GAAG,CAChCC,OADgC,EAEhCpB,aAFgC,KAGnBoB,OAAO,CAACC,MAAR,CAAeC,CAAC,IAAIvB,gBAAgB,CAACC,aAAD,EAAgBsB,CAAC,CAACxB,IAAlB,CAApC,CAHR;AAKP,OAAO,IAAMyB,uBAAuB,GAAG,CACrCH,OADqC,EAErCpB,aAFqC,EAGrCwB,QAHqC,EAIrCC,MAJqC,KAMrCN,kBAAkB,CAACC,OAAD,EAAUpB,aAAV,CAAlB,CACG0B,GADH,CACO;AAAA,MAAC;AAAEC,IAAAA;AAAF,GAAD;AAAA,SAAcA,IAAd;AAAA,CADP,EAEGN,MAFH,CAEUM,IAAI,IAAKH,QAAQ,CAACI,QAAT,CAAkBD,IAAlB,IAA0B,CAACF,MAA3B,GAAoCA,MAFvD,CANK;AAUP,eAAe;AACb5B,EAAAA,iBADa;AAEbsB,EAAAA,kBAFa;AAGbI,EAAAA;AAHa,CAAf","sourcesContent":["import type { Column } from '@deephaven/jsapi-shim';\nimport TableUtils from '../../TableUtils';\nimport AggregationOperation from './AggregationOperation';\n\n/**\n * Check if an operation requires a rollup/table grouping\n * @param type The operation to check\n * @returns True if this operation applies to the whole table, false if applies to columns\n */\nexport const isRollupOperation = (type: AggregationOperation): boolean => {\n switch (type) {\n // currently no rollup only operations, but there has been in the past\n default:\n return false;\n }\n};\n\n/**\n * Check if an operation is valid against the given column type\n * @param operationType The operation to check\n * @param columnType The column type to check against\n */\nexport const isValidOperation = (\n operationType: AggregationOperation,\n columnType: string\n): boolean => {\n switch (operationType) {\n case AggregationOperation.COUNT:\n case AggregationOperation.FIRST:\n case AggregationOperation.LAST:\n case AggregationOperation.COUNT_DISTINCT:\n case AggregationOperation.DISTINCT:\n case AggregationOperation.UNIQUE:\n return true;\n case AggregationOperation.MIN:\n case AggregationOperation.MAX:\n return (\n TableUtils.isNumberType(columnType) ||\n TableUtils.isDateType(columnType) ||\n TableUtils.isTextType(columnType)\n );\n case AggregationOperation.SUM:\n case AggregationOperation.ABS_SUM:\n case AggregationOperation.VAR:\n case AggregationOperation.AVG:\n case AggregationOperation.STD:\n return TableUtils.isNumberType(columnType);\n case AggregationOperation.SKIP:\n return false;\n // No default case - if AggregationOperation is added, we'll get a compile time error\n }\n};\n\nexport const filterValidColumns = (\n columns: Column[],\n operationType: AggregationOperation\n): Column[] => columns.filter(c => isValidOperation(operationType, c.type));\n\nexport const getOperationColumnNames = (\n columns: Column[],\n operationType: AggregationOperation,\n selected: string[],\n invert: boolean\n): string[] =>\n filterValidColumns(columns, operationType)\n .map(({ name }) => name)\n .filter(name => (selected.includes(name) ? !invert : invert));\n\nexport default {\n isRollupOperation,\n filterValidColumns,\n getOperationColumnNames,\n};\n"],"file":"AggregationUtils.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/iris-grid",
3
- "version": "0.8.2-beta.5+45a1e78",
3
+ "version": "0.9.1-alpha.9+a5369f1",
4
4
  "description": "Deephaven Iris Grid",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -34,11 +34,11 @@
34
34
  "start": "cross-env NODE_ENV=development npm run watch"
35
35
  },
36
36
  "dependencies": {
37
- "@deephaven/grid": "^0.8.2-beta.5+45a1e78",
38
- "@deephaven/icons": "^0.8.2-beta.5+45a1e78",
39
- "@deephaven/jsapi-shim": "^0.8.2-beta.5+45a1e78",
40
- "@deephaven/react-hooks": "^0.8.2-beta.5+45a1e78",
41
- "@deephaven/utils": "^0.8.2-beta.5+45a1e78",
37
+ "@deephaven/grid": "^0.9.1-alpha.9+a5369f1",
38
+ "@deephaven/icons": "^0.9.1-alpha.9+a5369f1",
39
+ "@deephaven/jsapi-shim": "^0.9.1-alpha.9+a5369f1",
40
+ "@deephaven/react-hooks": "^0.9.1-alpha.9+a5369f1",
41
+ "@deephaven/utils": "^0.9.1-alpha.9+a5369f1",
42
42
  "@fortawesome/react-fontawesome": "^0.1.12",
43
43
  "classnames": "^2.3.1",
44
44
  "deep-equal": "^2.0.4",
@@ -61,10 +61,10 @@
61
61
  },
62
62
  "devDependencies": {
63
63
  "@babel/cli": "^7.16.0",
64
- "@deephaven/components": "^0.8.2-beta.5+45a1e78",
65
- "@deephaven/log": "^0.8.2-beta.5+45a1e78",
66
- "@deephaven/mocks": "^0.8.2-beta.5+45a1e78",
67
- "@deephaven/tsconfig": "^0.8.2-beta.5+45a1e78",
64
+ "@deephaven/components": "^0.9.1-alpha.9+a5369f1",
65
+ "@deephaven/log": "^0.9.1-alpha.9+a5369f1",
66
+ "@deephaven/mocks": "^0.9.1-alpha.9+a5369f1",
67
+ "@deephaven/tsconfig": "^0.9.1-alpha.9+a5369f1",
68
68
  "@svgr/cli": "^5.5.0",
69
69
  "@types/react": "^16.14.8",
70
70
  "@types/react-dom": "^16.9.13",
@@ -74,8 +74,7 @@
74
74
  "npm-run-all": "^4.1.5",
75
75
  "react": "^16.14.0",
76
76
  "rimraf": "^3.0.2",
77
- "sass": "1.32.13",
78
- "typescript": "~4.3.2"
77
+ "sass": "1.32.13"
79
78
  },
80
79
  "files": [
81
80
  "dist"
@@ -86,5 +85,5 @@
86
85
  "publishConfig": {
87
86
  "access": "public"
88
87
  },
89
- "gitHead": "45a1e787f47540545e2e3d8649dfc67b7bb85237"
88
+ "gitHead": "a5369f13b4b006c63889c4228ac17bd3566eace2"
90
89
  }