@deephaven/iris-grid 0.67.0 → 0.67.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/AdvancedFilterCreator.d.ts +6 -6
  2. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  3. package/dist/AdvancedFilterCreator.js.map +1 -1
  4. package/dist/AdvancedFilterCreatorFilterItem.d.ts +3 -3
  5. package/dist/AdvancedFilterCreatorFilterItem.d.ts.map +1 -1
  6. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValue.d.ts +6 -6
  8. package/dist/AdvancedFilterCreatorSelectValue.d.ts.map +1 -1
  9. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  10. package/dist/AdvancedFilterCreatorSelectValueList.d.ts +7 -7
  11. package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
  12. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  13. package/dist/ColumnHeaderGroup.d.ts +1 -1
  14. package/dist/ColumnHeaderGroup.d.ts.map +1 -1
  15. package/dist/ColumnHeaderGroup.js +1 -1
  16. package/dist/ColumnHeaderGroup.js.map +1 -1
  17. package/dist/ColumnStatistics.d.ts +3 -3
  18. package/dist/ColumnStatistics.d.ts.map +1 -1
  19. package/dist/ColumnStatistics.js.map +1 -1
  20. package/dist/CommonTypes.d.ts +5 -5
  21. package/dist/CommonTypes.d.ts.map +1 -1
  22. package/dist/CommonTypes.js.map +1 -1
  23. package/dist/CrossColumnSearch.d.ts +2 -2
  24. package/dist/CrossColumnSearch.d.ts.map +1 -1
  25. package/dist/CrossColumnSearch.js.map +1 -1
  26. package/dist/EmptyIrisGridModel.d.ts +19 -19
  27. package/dist/EmptyIrisGridModel.d.ts.map +1 -1
  28. package/dist/EmptyIrisGridModel.js.map +1 -1
  29. package/dist/GotoRow.js.map +1 -1
  30. package/dist/IrisGrid.d.ts +32 -32
  31. package/dist/IrisGrid.d.ts.map +1 -1
  32. package/dist/IrisGrid.js +4 -1
  33. package/dist/IrisGrid.js.map +1 -1
  34. package/dist/IrisGridCopyHandler.js.map +1 -1
  35. package/dist/IrisGridMetricCalculator.d.ts +4 -4
  36. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  37. package/dist/IrisGridMetricCalculator.js.map +1 -1
  38. package/dist/IrisGridModel.d.ts +20 -20
  39. package/dist/IrisGridModel.d.ts.map +1 -1
  40. package/dist/IrisGridModel.js.map +1 -1
  41. package/dist/IrisGridModelFactory.d.ts +2 -2
  42. package/dist/IrisGridModelFactory.d.ts.map +1 -1
  43. package/dist/IrisGridModelFactory.js.map +1 -1
  44. package/dist/IrisGridModelUpdater.d.ts +6 -6
  45. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  46. package/dist/IrisGridModelUpdater.js.map +1 -1
  47. package/dist/IrisGridPartitionSelector.d.ts +5 -5
  48. package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
  49. package/dist/IrisGridPartitionSelector.js.map +1 -1
  50. package/dist/IrisGridPartitionedTableModel.d.ts +8 -8
  51. package/dist/IrisGridPartitionedTableModel.d.ts.map +1 -1
  52. package/dist/IrisGridPartitionedTableModel.js.map +1 -1
  53. package/dist/IrisGridProxyModel.d.ts +26 -26
  54. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  55. package/dist/IrisGridProxyModel.js.map +1 -1
  56. package/dist/IrisGridRenderer.d.ts +2 -2
  57. package/dist/IrisGridRenderer.d.ts.map +1 -1
  58. package/dist/IrisGridRenderer.js.map +1 -1
  59. package/dist/IrisGridTableModel.d.ts +18 -18
  60. package/dist/IrisGridTableModel.d.ts.map +1 -1
  61. package/dist/IrisGridTableModel.js +8 -7
  62. package/dist/IrisGridTableModel.js.map +1 -1
  63. package/dist/IrisGridTableModelTemplate.d.ts +41 -41
  64. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  65. package/dist/IrisGridTableModelTemplate.js +10 -11
  66. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  67. package/dist/IrisGridTestUtils.d.ts +16 -16
  68. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  69. package/dist/IrisGridTestUtils.js +4 -2
  70. package/dist/IrisGridTestUtils.js.map +1 -1
  71. package/dist/IrisGridTreeTableModel.d.ts +13 -13
  72. package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
  73. package/dist/IrisGridTreeTableModel.js +16 -6
  74. package/dist/IrisGridTreeTableModel.js.map +1 -1
  75. package/dist/IrisGridUtils.d.ts +40 -40
  76. package/dist/IrisGridUtils.d.ts.map +1 -1
  77. package/dist/IrisGridUtils.js +17 -7
  78. package/dist/IrisGridUtils.js.map +1 -1
  79. package/dist/PartitionedGridModel.d.ts +5 -5
  80. package/dist/PartitionedGridModel.d.ts.map +1 -1
  81. package/dist/PartitionedGridModel.js.map +1 -1
  82. package/dist/TableViewportUpdater.d.ts +10 -10
  83. package/dist/TableViewportUpdater.d.ts.map +1 -1
  84. package/dist/TableViewportUpdater.js.map +1 -1
  85. package/dist/TreeTableViewportUpdater.d.ts +7 -7
  86. package/dist/TreeTableViewportUpdater.d.ts.map +1 -1
  87. package/dist/TreeTableViewportUpdater.js.map +1 -1
  88. package/dist/format-context-menus/DecimalFormatContextMenu.d.ts +1 -1
  89. package/dist/format-context-menus/DecimalFormatContextMenu.d.ts.map +1 -1
  90. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  91. package/dist/format-context-menus/FormatContextMenuUtils.js +2 -1
  92. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  93. package/dist/format-context-menus/IntegerFormatContextMenu.d.ts +1 -1
  94. package/dist/format-context-menus/IntegerFormatContextMenu.d.ts.map +1 -1
  95. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  96. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  97. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +17 -17
  98. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  99. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  100. package/dist/sidebar/ChartBuilder.d.ts +11 -11
  101. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  102. package/dist/sidebar/ChartBuilder.js.map +1 -1
  103. package/dist/sidebar/RollupRows.d.ts +8 -8
  104. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  105. package/dist/sidebar/RollupRows.js.map +1 -1
  106. package/dist/sidebar/SelectDistinctBuilder.d.ts +2 -2
  107. package/dist/sidebar/SelectDistinctBuilder.d.ts.map +1 -1
  108. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  109. package/dist/sidebar/TableCsvExporter.d.ts +3 -3
  110. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  111. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  112. package/dist/sidebar/TableSaver.d.ts +9 -9
  113. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  114. package/dist/sidebar/TableSaver.js.map +1 -1
  115. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +1 -1
  116. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
  117. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  118. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +1 -1
  119. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  120. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  121. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts +1 -1
  122. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
  123. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  124. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts +3 -3
  125. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts.map +1 -1
  126. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  127. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +3 -3
  128. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
  129. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  130. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +1 -1
  131. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
  132. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  133. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +5 -5
  134. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -1
  135. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  136. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +2 -2
  137. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -1
  138. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  139. package/package.json +16 -16
@@ -1 +1 @@
1
- {"version":3,"file":"TableViewportUpdater.d.ts","sourceRoot":"","sources":["../src/TableViewportUpdater.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAa,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EACf,IAAI,EACJ,KAAK,EACL,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C;;;GAGG;AAEH,UAAU,yBAAyB;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,yBAAyB,KAAK,IAAI,CAAC;CACpE;AAED,cAAM,oBAAqB,SAAQ,aAAa,CAC9C,yBAAyB,EACzB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IAEC,MAAM,CAAC,gBAAgB,SAAK;IAE5B,MAAM,CAAC,mBAAmB,SAAK;IAE/B,MAAM,CAAC,YAAY;;;;;;8BAMG,IAAI;;;;;MAKxB;IAEF,iBAAiB,IAAI,IAAI;IAkBzB,kBAAkB,CAAC,SAAS,EAAE,yBAAyB,GAAG,IAAI;IA2C9D,oBAAoB,IAAI,IAAI;IAI5B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAGzC,mBAAmB,UAAmB,KAAK,OAAO,MAAM,UAAU,MAAM,cASrE;IAGH,kBAAkB,UAEP,KAAK,QACN,MAAM,SACL,MAAM,gBACC,aAAa,EAAE,qBAyB/B;IAEF,iBAAiB,IAAI,IAAI;IAazB,cAAc,uCAEL,MAAM,UACH,MAAM,QACR,MAAM,SACL,MAAM,eACA,MAAM,EAAE,KACpB,IAAI,EA4CP;IAEF,MAAM,IAAI,IAAI;CAGf;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"TableViewportUpdater.d.ts","sourceRoot":"","sources":["../src/TableViewportUpdater.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAa,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAM3C;;;GAGG;AAEH,UAAU,yBAAyB;IACjC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,EAAE,CAAC,eAAe,EAAE,CAAC;IAC9B,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACjB,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,cAAc,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,yBAAyB,KAAK,IAAI,CAAC;CACvE;AAED,cAAM,oBAAqB,SAAQ,aAAa,CAC9C,yBAAyB,EACzB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IAEC,MAAM,CAAC,gBAAgB,SAAK;IAE5B,MAAM,CAAC,mBAAmB,SAAK;IAE/B,MAAM,CAAC,YAAY;;;;;;8BAMG,IAAI;;;;;MAKxB;IAEF,iBAAiB,IAAI,IAAI;IAkBzB,kBAAkB,CAAC,SAAS,EAAE,yBAAyB,GAAG,IAAI;IA2C9D,oBAAoB,IAAI,IAAI;IAI5B,YAAY,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC;IAG5C,mBAAmB,UACT,GAAG,KAAK,OAAO,MAAM,UAAU,MAAM,cAU7C;IAGF,kBAAkB,UAEP,GAAG,KAAK,QACT,MAAM,SACL,MAAM,gBACC,aAAa,EAAE,wBAyB/B;IAEF,iBAAiB,IAAI,IAAI;IAazB,cAAc,uCAEL,MAAM,UACH,MAAM,QACR,MAAM,SACL,MAAM,eACA,GAAG,MAAM,EAAE,KACvB,IAAI,EA4CP;IAEF,MAAM,IAAI,IAAI;CAGf;AAED,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableViewportUpdater.js","names":["PureComponent","memoize","throttle","GridUtils","Log","log","module","UPDATE_THROTTLE","TableViewportUpdater","constructor","arguments","_defineProperty","table","top","bottom","viewHeight","viewportTop","Math","max","ROW_BUFFER_PAGES","viewportBottom","left","right","movedColumns","viewWidth","viewportLeft","COLUMN_BUFFER_PAGES","viewportRight","min","columns","length","i","modelIndex","getModelIndex","push","viewColumns","error","debug2","props","getViewportRowRange","getViewportColumns","subscription","setViewport","onSubscription","componentDidMount","filters","sorts","customColumns","applyFilter","applySort","applyCustomColumns","updateViewport","componentDidUpdate","prevProps","isFilterChanged","isSortChanged","isCustomColumnsChanged","isTableChanged","closeSubscription","debug","componentWillUnmount","close","undefined","cancel","render"],"sources":["../src/TableViewportUpdater.tsx"],"sourcesContent":["import { PureComponent } from 'react';\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport { GridUtils, MoveOperation } from '@deephaven/grid';\nimport type {\n Column,\n FilterCondition,\n Sort,\n Table,\n TableViewportSubscription,\n} from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { ColumnName } from './CommonTypes';\n\nconst log = Log.module('TableViewportUpdater');\n\nconst UPDATE_THROTTLE = 150;\n\n/**\n * Updates the viewport for an Iris table, for use in a scroll pane.\n * Automatically throttles the viewport requests and buffers above and below.\n */\n\ninterface TableViewportUpdaterProps {\n table: Table;\n top: number;\n bottom: number;\n left: number;\n right: number;\n columns: Column[];\n filters: FilterCondition[];\n sorts: Sort[];\n customColumns: ColumnName[];\n movedColumns: MoveOperation[];\n onSubscription: (subscription?: TableViewportSubscription) => void;\n}\n\nclass TableViewportUpdater extends PureComponent<\n TableViewportUpdaterProps,\n Record<string, never>\n> {\n // Number of pages to buffer for rows/columns\n static ROW_BUFFER_PAGES = 3;\n\n static COLUMN_BUFFER_PAGES = 1;\n\n static defaultProps = {\n top: 0,\n bottom: 0,\n left: null,\n right: null,\n columns: null,\n onSubscription: (): void => undefined,\n filters: [],\n sorts: [],\n customColumns: [],\n movedColumns: [],\n };\n\n componentDidMount(): void {\n const {\n top,\n bottom,\n left,\n right,\n table,\n filters,\n sorts,\n columns,\n customColumns,\n } = this.props;\n table.applyFilter(filters);\n table.applySort(sorts);\n table.applyCustomColumns(customColumns);\n this.updateViewport(top, bottom, left, right, columns);\n }\n\n componentDidUpdate(prevProps: TableViewportUpdaterProps): void {\n const {\n top,\n bottom,\n left,\n right,\n table,\n filters,\n sorts,\n customColumns,\n columns,\n } = this.props;\n const isFilterChanged = filters !== prevProps.filters;\n const isSortChanged = sorts !== prevProps.sorts;\n const isCustomColumnsChanged = customColumns !== prevProps.customColumns;\n const isTableChanged = table !== prevProps.table;\n if (\n isFilterChanged ||\n isSortChanged ||\n isCustomColumnsChanged ||\n isTableChanged\n ) {\n this.closeSubscription();\n }\n\n if (isFilterChanged || isTableChanged) {\n log.debug('update table filter', filters);\n table.applyFilter(filters);\n }\n\n if (isSortChanged || isTableChanged) {\n log.debug('update table sort', sorts);\n table.applySort(sorts);\n }\n\n if (isCustomColumnsChanged || isTableChanged) {\n log.debug('update table custom columns', customColumns);\n table.applyCustomColumns(customColumns);\n }\n\n this.updateViewport(top, bottom, left, right, columns);\n }\n\n componentWillUnmount(): void {\n this.closeSubscription();\n }\n\n subscription?: TableViewportSubscription;\n\n // eslint-disable-next-line class-methods-use-this\n getViewportRowRange = memoize((table: Table, top: number, bottom: number) => {\n const viewHeight = bottom - top;\n const viewportTop = Math.max(\n 0,\n top - viewHeight * TableViewportUpdater.ROW_BUFFER_PAGES\n );\n const viewportBottom =\n bottom + viewHeight * TableViewportUpdater.ROW_BUFFER_PAGES;\n return [viewportTop, viewportBottom];\n });\n\n // eslint-disable-next-line class-methods-use-this\n getViewportColumns = memoize(\n (\n table: Table,\n left: number,\n right: number,\n movedColumns: MoveOperation[]\n ) => {\n if (left == null || right == null) {\n return null;\n }\n\n const viewWidth = right - left;\n const viewportLeft = Math.max(\n 0,\n left - viewWidth * TableViewportUpdater.COLUMN_BUFFER_PAGES\n );\n const viewportRight = Math.min(\n right + viewWidth * TableViewportUpdater.COLUMN_BUFFER_PAGES,\n table.columns.length - 1\n );\n\n // Need to get all the columns from the table model now\n const columns = [];\n for (let i = viewportLeft; i <= viewportRight; i += 1) {\n const modelIndex = GridUtils.getModelIndex(i, movedColumns);\n columns.push(table.columns[modelIndex]);\n }\n\n return columns;\n }\n );\n\n closeSubscription(): void {\n log.debug2('closeSubscription', this.subscription);\n if (this.subscription) {\n this.subscription.close();\n this.subscription = undefined;\n\n const { onSubscription } = this.props;\n onSubscription();\n }\n\n this.updateViewport.cancel();\n }\n\n updateViewport = throttle(\n (\n top: number,\n bottom: number,\n left: number,\n right: number,\n viewColumns: Column[]\n ): void => {\n if (bottom < top) {\n log.error('Invalid viewport', top, bottom);\n return;\n }\n\n if (top === 0 && bottom === 0) {\n log.debug2('Ignoring 0-0 viewport');\n return;\n }\n\n const { movedColumns, table } = this.props;\n const [viewportTop, viewportBottom] = this.getViewportRowRange(\n table,\n top,\n bottom\n );\n const columns =\n viewColumns ??\n this.getViewportColumns(table, left, right, movedColumns);\n log.debug2(\n 'Setting Viewport Top:',\n viewportTop,\n 'Bottom:',\n viewportBottom,\n 'Columns:',\n columns\n );\n if (this.subscription == null) {\n log.debug2('updateViewport creating new subscription');\n this.subscription = table.setViewport(\n viewportTop,\n viewportBottom,\n columns\n );\n\n const { onSubscription } = this.props;\n onSubscription(this.subscription);\n } else {\n log.debug2('updateViewport using existing subscription');\n this.subscription.setViewport(viewportTop, viewportBottom, columns);\n }\n },\n UPDATE_THROTTLE\n );\n\n render(): null {\n return null;\n }\n}\n\nexport default TableViewportUpdater;\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableViewportUpdater.js","names":["PureComponent","memoize","throttle","GridUtils","Log","log","module","UPDATE_THROTTLE","TableViewportUpdater","constructor","arguments","_defineProperty","table","top","bottom","viewHeight","viewportTop","Math","max","ROW_BUFFER_PAGES","viewportBottom","left","right","movedColumns","viewWidth","viewportLeft","COLUMN_BUFFER_PAGES","viewportRight","min","columns","length","i","modelIndex","getModelIndex","push","viewColumns","error","debug2","props","getViewportRowRange","getViewportColumns","subscription","setViewport","onSubscription","componentDidMount","filters","sorts","customColumns","applyFilter","applySort","applyCustomColumns","updateViewport","componentDidUpdate","prevProps","isFilterChanged","isSortChanged","isCustomColumnsChanged","isTableChanged","closeSubscription","debug","componentWillUnmount","close","undefined","cancel","render"],"sources":["../src/TableViewportUpdater.tsx"],"sourcesContent":["import { PureComponent } from 'react';\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport { GridUtils, MoveOperation } from '@deephaven/grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { ColumnName } from './CommonTypes';\n\nconst log = Log.module('TableViewportUpdater');\n\nconst UPDATE_THROTTLE = 150;\n\n/**\n * Updates the viewport for an Iris table, for use in a scroll pane.\n * Automatically throttles the viewport requests and buffers above and below.\n */\n\ninterface TableViewportUpdaterProps {\n table: dh.Table;\n top: number;\n bottom: number;\n left: number;\n right: number;\n columns: dh.Column[];\n filters: dh.FilterCondition[];\n sorts: dh.Sort[];\n customColumns: ColumnName[];\n movedColumns: MoveOperation[];\n onSubscription: (subscription?: dh.TableViewportSubscription) => void;\n}\n\nclass TableViewportUpdater extends PureComponent<\n TableViewportUpdaterProps,\n Record<string, never>\n> {\n // Number of pages to buffer for rows/columns\n static ROW_BUFFER_PAGES = 3;\n\n static COLUMN_BUFFER_PAGES = 1;\n\n static defaultProps = {\n top: 0,\n bottom: 0,\n left: null,\n right: null,\n columns: null,\n onSubscription: (): void => undefined,\n filters: [],\n sorts: [],\n customColumns: [],\n movedColumns: [],\n };\n\n componentDidMount(): void {\n const {\n top,\n bottom,\n left,\n right,\n table,\n filters,\n sorts,\n columns,\n customColumns,\n } = this.props;\n table.applyFilter(filters);\n table.applySort(sorts);\n table.applyCustomColumns(customColumns);\n this.updateViewport(top, bottom, left, right, columns);\n }\n\n componentDidUpdate(prevProps: TableViewportUpdaterProps): void {\n const {\n top,\n bottom,\n left,\n right,\n table,\n filters,\n sorts,\n customColumns,\n columns,\n } = this.props;\n const isFilterChanged = filters !== prevProps.filters;\n const isSortChanged = sorts !== prevProps.sorts;\n const isCustomColumnsChanged = customColumns !== prevProps.customColumns;\n const isTableChanged = table !== prevProps.table;\n if (\n isFilterChanged ||\n isSortChanged ||\n isCustomColumnsChanged ||\n isTableChanged\n ) {\n this.closeSubscription();\n }\n\n if (isFilterChanged || isTableChanged) {\n log.debug('update table filter', filters);\n table.applyFilter(filters);\n }\n\n if (isSortChanged || isTableChanged) {\n log.debug('update table sort', sorts);\n table.applySort(sorts);\n }\n\n if (isCustomColumnsChanged || isTableChanged) {\n log.debug('update table custom columns', customColumns);\n table.applyCustomColumns(customColumns);\n }\n\n this.updateViewport(top, bottom, left, right, columns);\n }\n\n componentWillUnmount(): void {\n this.closeSubscription();\n }\n\n subscription?: dh.TableViewportSubscription;\n\n // eslint-disable-next-line class-methods-use-this\n getViewportRowRange = memoize(\n (table: dh.Table, top: number, bottom: number) => {\n const viewHeight = bottom - top;\n const viewportTop = Math.max(\n 0,\n top - viewHeight * TableViewportUpdater.ROW_BUFFER_PAGES\n );\n const viewportBottom =\n bottom + viewHeight * TableViewportUpdater.ROW_BUFFER_PAGES;\n return [viewportTop, viewportBottom];\n }\n );\n\n // eslint-disable-next-line class-methods-use-this\n getViewportColumns = memoize(\n (\n table: dh.Table,\n left: number,\n right: number,\n movedColumns: MoveOperation[]\n ) => {\n if (left == null || right == null) {\n return null;\n }\n\n const viewWidth = right - left;\n const viewportLeft = Math.max(\n 0,\n left - viewWidth * TableViewportUpdater.COLUMN_BUFFER_PAGES\n );\n const viewportRight = Math.min(\n right + viewWidth * TableViewportUpdater.COLUMN_BUFFER_PAGES,\n table.columns.length - 1\n );\n\n // Need to get all the columns from the table model now\n const columns = [];\n for (let i = viewportLeft; i <= viewportRight; i += 1) {\n const modelIndex = GridUtils.getModelIndex(i, movedColumns);\n columns.push(table.columns[modelIndex]);\n }\n\n return columns;\n }\n );\n\n closeSubscription(): void {\n log.debug2('closeSubscription', this.subscription);\n if (this.subscription) {\n this.subscription.close();\n this.subscription = undefined;\n\n const { onSubscription } = this.props;\n onSubscription();\n }\n\n this.updateViewport.cancel();\n }\n\n updateViewport = throttle(\n (\n top: number,\n bottom: number,\n left: number,\n right: number,\n viewColumns: dh.Column[]\n ): void => {\n if (bottom < top) {\n log.error('Invalid viewport', top, bottom);\n return;\n }\n\n if (top === 0 && bottom === 0) {\n log.debug2('Ignoring 0-0 viewport');\n return;\n }\n\n const { movedColumns, table } = this.props;\n const [viewportTop, viewportBottom] = this.getViewportRowRange(\n table,\n top,\n bottom\n );\n const columns =\n viewColumns ??\n this.getViewportColumns(table, left, right, movedColumns);\n log.debug2(\n 'Setting Viewport Top:',\n viewportTop,\n 'Bottom:',\n viewportBottom,\n 'Columns:',\n columns\n );\n if (this.subscription == null) {\n log.debug2('updateViewport creating new subscription');\n this.subscription = table.setViewport(\n viewportTop,\n viewportBottom,\n columns\n );\n\n const { onSubscription } = this.props;\n onSubscription(this.subscription);\n } else {\n log.debug2('updateViewport using existing subscription');\n this.subscription.setViewport(viewportTop, viewportBottom, columns);\n }\n },\n UPDATE_THROTTLE\n );\n\n render(): null {\n return null;\n }\n}\n\nexport default TableViewportUpdater;\n"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  /// <reference types="lodash" />
2
2
  import { PureComponent } from 'react';
3
- import type { dh as DhType, EventListener, FilterCondition, RemoverFn, Sort, Table, ViewportData } from '@deephaven/jsapi-types';
3
+ import type { dh as DhType } from '@deephaven/jsapi-types';
4
4
  interface TreeTableViewportUpdaterProps {
5
- dh: DhType;
6
- table: Table;
5
+ dh: typeof DhType;
6
+ table: DhType.Table;
7
7
  top: number;
8
8
  bottom: number;
9
- filters: FilterCondition[];
10
- sorts: Sort[];
9
+ filters: DhType.FilterCondition[];
10
+ sorts: DhType.Sort[];
11
11
  updateInterval: number;
12
- onViewportUpdate: EventListener<ViewportData>;
12
+ onViewportUpdate: (e: CustomEvent<DhType.ViewportData>) => void;
13
13
  }
14
14
  /**
15
15
  * Updates the viewport of a TreeTable for use in a scroll pane.
@@ -29,7 +29,7 @@ declare class TreeTableViewportUpdater extends PureComponent<TreeTableViewportUp
29
29
  componentDidMount(): void;
30
30
  componentDidUpdate(prevProps: TreeTableViewportUpdaterProps): void;
31
31
  componentWillUnmount(): void;
32
- listenerCleanup: RemoverFn | null;
32
+ listenerCleanup: (() => void) | null;
33
33
  updateViewport: import("lodash").DebouncedFunc<(top: number, bottom: number) => void>;
34
34
  render(): null;
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TreeTableViewportUpdater.d.ts","sourceRoot":"","sources":["../src/TreeTableViewportUpdater.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EACV,EAAE,IAAI,MAAM,EACZ,aAAa,EACb,eAAe,EACf,SAAS,EACT,IAAI,EACJ,KAAK,EACL,YAAY,EACb,MAAM,wBAAwB,CAAC;AAOhC,UAAU,6BAA6B;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CAC/C;AAED;;;GAGG;AACH,cAAM,wBAAyB,SAAQ,aAAa,CAClD,6BAA6B,EAC7B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACC,MAAM,CAAC,eAAe,SAAQ;IAE9B,MAAM,CAAC,YAAY;;;gCAGK,IAAI;;;;MAI1B;gBAEU,KAAK,EAAE,6BAA6B;IAMhD,iBAAiB,IAAI,IAAI;IAQzB,kBAAkB,CAAC,SAAS,EAAE,6BAA6B,GAAG,IAAI;IAelE,oBAAoB,IAAI,IAAI;IAO5B,eAAe,EAAE,SAAS,GAAG,IAAI,CAAC;IAElC,cAAc,uCAAkB,MAAM,UAAU,MAAM,KAAG,IAAI,EAgCzC;IAEpB,MAAM,IAAI,IAAI;CAGf;AAED,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"TreeTableViewportUpdater.d.ts","sourceRoot":"","sources":["../src/TreeTableViewportUpdater.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAO3D,UAAU,6BAA6B;IACrC,EAAE,EAAE,OAAO,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;CACjE;AAED;;;GAGG;AACH,cAAM,wBAAyB,SAAQ,aAAa,CAClD,6BAA6B,EAC7B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACC,MAAM,CAAC,eAAe,SAAQ;IAE9B,MAAM,CAAC,YAAY;;;gCAGK,IAAI;;;;MAI1B;gBAEU,KAAK,EAAE,6BAA6B;IAMhD,iBAAiB,IAAI,IAAI;IAQzB,kBAAkB,CAAC,SAAS,EAAE,6BAA6B,GAAG,IAAI;IAelE,oBAAoB,IAAI,IAAI;IAO5B,eAAe,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAErC,cAAc,uCAAkB,MAAM,UAAU,MAAM,KAAG,IAAI,EAgCzC;IAEpB,MAAM,IAAI,IAAI;CAGf;AAED,eAAe,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeTableViewportUpdater.js","names":["PureComponent","throttle","Log","log","module","UPDATE_THROTTLE","TreeTableViewportUpdater","constructor","props","_defineProperty","top","bottom","error","debug2","table","updateInterval","viewSize","viewportTop","Math","max","viewportBottom","listenerCleanup","dh","onViewportUpdate","addEventListener","TreeTable","EVENT_UPDATED","setViewport","undefined","componentDidMount","filters","sorts","debug","applyFilter","applySort","updateViewport","componentDidUpdate","prevProps","componentWillUnmount","cancel","render","UPDATE_INTERVAL"],"sources":["../src/TreeTableViewportUpdater.tsx"],"sourcesContent":["import { PureComponent } from 'react';\nimport throttle from 'lodash.throttle';\nimport type {\n dh as DhType,\n EventListener,\n FilterCondition,\n RemoverFn,\n Sort,\n Table,\n ViewportData,\n} from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('TreeTableViewportUpdater');\n\nconst UPDATE_THROTTLE = 150;\n\ninterface TreeTableViewportUpdaterProps {\n dh: DhType;\n table: Table;\n top: number;\n bottom: number;\n filters: FilterCondition[];\n sorts: Sort[];\n updateInterval: number;\n onViewportUpdate: EventListener<ViewportData>;\n}\n\n/**\n * Updates the viewport of a TreeTable for use in a scroll pane.\n * Automatically throttles the viewport requests and buffers above and below.\n */\nclass TreeTableViewportUpdater extends PureComponent<\n TreeTableViewportUpdaterProps,\n Record<string, never>\n> {\n static UPDATE_INTERVAL = 1000;\n\n static defaultProps = {\n top: 0,\n bottom: 0,\n onViewportUpdate: (): void => undefined,\n filters: [],\n sorts: [],\n updateInterval: TreeTableViewportUpdater.UPDATE_INTERVAL,\n };\n\n constructor(props: TreeTableViewportUpdaterProps) {\n super(props);\n\n this.listenerCleanup = null;\n }\n\n componentDidMount(): void {\n const { top, bottom, table, filters, sorts } = this.props;\n log.debug('componentDidMount', this.props);\n table.applyFilter(filters);\n table.applySort(sorts);\n this.updateViewport(top, bottom);\n }\n\n componentDidUpdate(prevProps: TreeTableViewportUpdaterProps): void {\n const { top, bottom, table, filters, sorts } = this.props;\n if (filters !== prevProps.filters) {\n log.debug('update table filter', filters);\n table.applyFilter(filters);\n }\n\n if (sorts !== prevProps.sorts) {\n log.debug('update table sort', sorts);\n table.applySort(sorts);\n }\n\n this.updateViewport(top, bottom);\n }\n\n componentWillUnmount(): void {\n this.updateViewport.cancel();\n if (this.listenerCleanup) {\n this.listenerCleanup();\n }\n }\n\n listenerCleanup: RemoverFn | null;\n\n updateViewport = throttle((top: number, bottom: number): void => {\n if (bottom < top) {\n log.error('Invalid viewport', top, bottom);\n return;\n }\n\n if (top === 0 && bottom === 0) {\n log.debug2('Ignoring 0-0 viewport');\n return;\n }\n\n const { table, updateInterval } = this.props;\n const viewSize = bottom - top;\n const viewportTop = Math.max(0, top - viewSize * 3);\n const viewportBottom = bottom + viewSize * 3 + 1;\n log.debug2(\n 'Setting Viewport Top:',\n viewportTop,\n 'Bottom:',\n viewportBottom,\n table\n );\n\n if (!this.listenerCleanup) {\n const { dh, onViewportUpdate } = this.props;\n this.listenerCleanup = table.addEventListener(\n dh.TreeTable.EVENT_UPDATED,\n onViewportUpdate\n );\n }\n\n table.setViewport(viewportTop, viewportBottom, undefined, updateInterval);\n }, UPDATE_THROTTLE);\n\n render(): null {\n return null;\n }\n}\n\nexport default TreeTableViewportUpdater;\n"],"mappings":"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"}
1
+ {"version":3,"file":"TreeTableViewportUpdater.js","names":["PureComponent","throttle","Log","log","module","UPDATE_THROTTLE","TreeTableViewportUpdater","constructor","props","_defineProperty","top","bottom","error","debug2","table","updateInterval","viewSize","viewportTop","Math","max","viewportBottom","listenerCleanup","dh","onViewportUpdate","addEventListener","TreeTable","EVENT_UPDATED","setViewport","undefined","componentDidMount","filters","sorts","debug","applyFilter","applySort","updateViewport","componentDidUpdate","prevProps","componentWillUnmount","cancel","render","UPDATE_INTERVAL"],"sources":["../src/TreeTableViewportUpdater.tsx"],"sourcesContent":["import { PureComponent } from 'react';\nimport throttle from 'lodash.throttle';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('TreeTableViewportUpdater');\n\nconst UPDATE_THROTTLE = 150;\n\ninterface TreeTableViewportUpdaterProps {\n dh: typeof DhType;\n table: DhType.Table;\n top: number;\n bottom: number;\n filters: DhType.FilterCondition[];\n sorts: DhType.Sort[];\n updateInterval: number;\n onViewportUpdate: (e: CustomEvent<DhType.ViewportData>) => void;\n}\n\n/**\n * Updates the viewport of a TreeTable for use in a scroll pane.\n * Automatically throttles the viewport requests and buffers above and below.\n */\nclass TreeTableViewportUpdater extends PureComponent<\n TreeTableViewportUpdaterProps,\n Record<string, never>\n> {\n static UPDATE_INTERVAL = 1000;\n\n static defaultProps = {\n top: 0,\n bottom: 0,\n onViewportUpdate: (): void => undefined,\n filters: [],\n sorts: [],\n updateInterval: TreeTableViewportUpdater.UPDATE_INTERVAL,\n };\n\n constructor(props: TreeTableViewportUpdaterProps) {\n super(props);\n\n this.listenerCleanup = null;\n }\n\n componentDidMount(): void {\n const { top, bottom, table, filters, sorts } = this.props;\n log.debug('componentDidMount', this.props);\n table.applyFilter(filters);\n table.applySort(sorts);\n this.updateViewport(top, bottom);\n }\n\n componentDidUpdate(prevProps: TreeTableViewportUpdaterProps): void {\n const { top, bottom, table, filters, sorts } = this.props;\n if (filters !== prevProps.filters) {\n log.debug('update table filter', filters);\n table.applyFilter(filters);\n }\n\n if (sorts !== prevProps.sorts) {\n log.debug('update table sort', sorts);\n table.applySort(sorts);\n }\n\n this.updateViewport(top, bottom);\n }\n\n componentWillUnmount(): void {\n this.updateViewport.cancel();\n if (this.listenerCleanup) {\n this.listenerCleanup();\n }\n }\n\n listenerCleanup: (() => void) | null;\n\n updateViewport = throttle((top: number, bottom: number): void => {\n if (bottom < top) {\n log.error('Invalid viewport', top, bottom);\n return;\n }\n\n if (top === 0 && bottom === 0) {\n log.debug2('Ignoring 0-0 viewport');\n return;\n }\n\n const { table, updateInterval } = this.props;\n const viewSize = bottom - top;\n const viewportTop = Math.max(0, top - viewSize * 3);\n const viewportBottom = bottom + viewSize * 3 + 1;\n log.debug2(\n 'Setting Viewport Top:',\n viewportTop,\n 'Bottom:',\n viewportBottom,\n table\n );\n\n if (!this.listenerCleanup) {\n const { dh, onViewportUpdate } = this.props;\n this.listenerCleanup = table.addEventListener(\n dh.TreeTable.EVENT_UPDATED,\n onViewportUpdate\n );\n }\n\n table.setViewport(viewportTop, viewportBottom, undefined, updateInterval);\n }, UPDATE_THROTTLE);\n\n render(): null {\n return null;\n }\n}\n\nexport default TreeTableViewportUpdater;\n"],"mappings":"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"}
@@ -13,7 +13,7 @@ declare class DecimalFormatContextMenu {
13
13
  * @param onCustomFormatChange Callback to call when the custom format is changed
14
14
  * @returns Array of formatting options for the context menu
15
15
  */
16
- static getOptions(dh: DhType, selectedFormat: DecimalColumnFormat, onCustomFormatChange: (value: DecimalColumnFormat | null) => void): FormatContextMenuOption[];
16
+ static getOptions(dh: typeof DhType, selectedFormat: DecimalColumnFormat, onCustomFormatChange: (value: DecimalColumnFormat | null) => void): FormatContextMenuOption[];
17
17
  }
18
18
  export default DecimalFormatContextMenu;
19
19
  //# sourceMappingURL=DecimalFormatContextMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DecimalFormatContextMenu.d.ts","sourceRoot":"","sources":["../../src/format-context-menus/DecimalFormatContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAA+B,EAC7B,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,cAAM,wBAAwB;IAC5B,MAAM,CAAC,YAAY,SAAM;IAEzB,MAAM,CAAC,WAAW,SAAM;IAExB,MAAM,CAAC,gBAAgB,SAAM;IAE7B,MAAM,CAAC,WAAW,SAAM;IAExB;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CACf,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,mBAAmB,EACnC,oBAAoB,EAAE,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,GAChE,uBAAuB,EAAE;CA2E7B;AAED,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"DecimalFormatContextMenu.d.ts","sourceRoot":"","sources":["../../src/format-context-menus/DecimalFormatContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAA+B,EAC7B,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,cAAM,wBAAwB;IAC5B,MAAM,CAAC,YAAY,SAAM;IAEzB,MAAM,CAAC,WAAW,SAAM;IAExB,MAAM,CAAC,gBAAgB,SAAM;IAE7B,MAAM,CAAC,WAAW,SAAM;IAExB;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CACf,EAAE,EAAE,OAAO,MAAM,EACjB,cAAc,EAAE,mBAAmB,EACnC,oBAAoB,EAAE,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,GAChE,uBAAuB,EAAE;CA2E7B;AAED,eAAe,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DecimalFormatContextMenu.js","names":["DecimalColumnFormatter","FormatContextMenuUtils","DecimalFormatContextMenu","getOptions","dh","selectedFormat","onCustomFormatChange","formatItems","format","FORMAT_PERCENT","group","presetGroup","FORMAT_BASIS_POINTS","FORMAT_MILLIONS","FORMAT_SCIENTIFIC_NOTATION","FORMAT_ROUND","presetRoundGroup","FORMAT_ROUND_TWO_DECIMALS","FORMAT_ROUND_FOUR_DECIMALS","defaultFormatOption","makeOption","defaultGroup","isDefaultSelected","presetFormatOptions","map","item","label","isSameFormat","isCustomSelected","customFormat","makeCustomFormat","customFormatOption","makeCustomFormatOption","customGroup","DEFAULT_FORMAT_STRING","formatString","newCustomFormat","isValid","_defineProperty"],"sources":["../../src/format-context-menus/DecimalFormatContextMenu.ts"],"sourcesContent":["import {\n DecimalColumnFormat,\n DecimalColumnFormatter,\n} from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport FormatContextMenuUtils, {\n FormatContextMenuOption,\n} from './FormatContextMenuUtils';\n\nclass DecimalFormatContextMenu {\n static defaultGroup = 10;\n\n static presetGroup = 20;\n\n static presetRoundGroup = 30;\n\n static customGroup = 40;\n\n /**\n * Creates list of formatting options for Decimal context menu\n * @param dh JSAPI instance\n * @param selectedFormat Selected format object, null for no selected format\n * @param onCustomFormatChange Callback to call when the custom format is changed\n * @returns Array of formatting options for the context menu\n */\n static getOptions(\n dh: DhType,\n selectedFormat: DecimalColumnFormat,\n onCustomFormatChange: (value: DecimalColumnFormat | null) => void\n ): FormatContextMenuOption[] {\n const formatItems = [\n {\n format: DecimalColumnFormatter.FORMAT_PERCENT,\n group: DecimalFormatContextMenu.presetGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_BASIS_POINTS,\n group: DecimalFormatContextMenu.presetGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_MILLIONS,\n group: DecimalFormatContextMenu.presetGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_SCIENTIFIC_NOTATION,\n group: DecimalFormatContextMenu.presetGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_ROUND,\n group: DecimalFormatContextMenu.presetRoundGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_ROUND_TWO_DECIMALS,\n group: DecimalFormatContextMenu.presetRoundGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_ROUND_FOUR_DECIMALS,\n group: DecimalFormatContextMenu.presetRoundGroup,\n },\n ];\n\n const defaultFormatOption = FormatContextMenuUtils.makeOption(\n 'Default',\n null,\n DecimalFormatContextMenu.defaultGroup,\n FormatContextMenuUtils.isDefaultSelected(selectedFormat)\n );\n\n const presetFormatOptions = formatItems.map(item =>\n FormatContextMenuUtils.makeOption(\n item.format.label,\n item.format,\n item.group,\n DecimalColumnFormatter.isSameFormat(item.format, selectedFormat)\n )\n );\n\n const isCustomSelected =\n FormatContextMenuUtils.isCustomSelected(selectedFormat);\n\n const customFormat = isCustomSelected\n ? selectedFormat\n : DecimalColumnFormatter.makeCustomFormat();\n\n const customFormatOption = FormatContextMenuUtils.makeCustomFormatOption(\n customFormat,\n DecimalFormatContextMenu.customGroup,\n DecimalColumnFormatter.DEFAULT_FORMAT_STRING,\n isCustomSelected,\n formatString => {\n if (formatString != null) {\n const newCustomFormat =\n DecimalColumnFormatter.makeCustomFormat(formatString);\n if (DecimalColumnFormatter.isValid(dh, newCustomFormat)) {\n onCustomFormatChange(newCustomFormat);\n }\n } else {\n onCustomFormatChange(null);\n }\n }\n );\n\n return [defaultFormatOption, ...presetFormatOptions, customFormatOption];\n }\n}\n\nexport default DecimalFormatContextMenu;\n"],"mappings":";;;AAAA,SAEEA,sBAAsB,QACjB,wBAAwB;AAAC,OAEzBC,sBAAsB;AAI7B,MAAMC,wBAAwB,CAAC;EAS7B;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,UAAUA,CACfC,EAAU,EACVC,cAAmC,EACnCC,oBAAiE,EACtC;IAC3B,IAAMC,WAAW,GAAG,CAClB;MACEC,MAAM,EAAER,sBAAsB,CAACS,cAAc;MAC7CC,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACY,mBAAmB;MAClDF,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACa,eAAe;MAC9CH,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACc,0BAA0B;MACzDJ,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACe,YAAY;MAC3CL,KAAK,EAAER,wBAAwB,CAACc;IAClC,CAAC,EACD;MACER,MAAM,EAAER,sBAAsB,CAACiB,yBAAyB;MACxDP,KAAK,EAAER,wBAAwB,CAACc;IAClC,CAAC,EACD;MACER,MAAM,EAAER,sBAAsB,CAACkB,0BAA0B;MACzDR,KAAK,EAAER,wBAAwB,CAACc;IAClC,CAAC,CACF;IAED,IAAMG,mBAAmB,GAAGlB,sBAAsB,CAACmB,UAAU,CAC3D,SAAS,EACT,IAAI,EACJlB,wBAAwB,CAACmB,YAAY,EACrCpB,sBAAsB,CAACqB,iBAAiB,CAACjB,cAAc,CACzD,CAAC;IAED,IAAMkB,mBAAmB,GAAGhB,WAAW,CAACiB,GAAG,CAACC,IAAI,IAC9CxB,sBAAsB,CAACmB,UAAU,CAC/BK,IAAI,CAACjB,MAAM,CAACkB,KAAK,EACjBD,IAAI,CAACjB,MAAM,EACXiB,IAAI,CAACf,KAAK,EACVV,sBAAsB,CAAC2B,YAAY,CAACF,IAAI,CAACjB,MAAM,EAAEH,cAAc,CACjE,CACF,CAAC;IAED,IAAMuB,gBAAgB,GACpB3B,sBAAsB,CAAC2B,gBAAgB,CAACvB,cAAc,CAAC;IAEzD,IAAMwB,YAAY,GAAGD,gBAAgB,GACjCvB,cAAc,GACdL,sBAAsB,CAAC8B,gBAAgB,CAAC,CAAC;IAE7C,IAAMC,kBAAkB,GAAG9B,sBAAsB,CAAC+B,sBAAsB,CACtEH,YAAY,EACZ3B,wBAAwB,CAAC+B,WAAW,EACpCjC,sBAAsB,CAACkC,qBAAqB,EAC5CN,gBAAgB,EAChBO,YAAY,IAAI;MACd,IAAIA,YAAY,IAAI,IAAI,EAAE;QACxB,IAAMC,eAAe,GACnBpC,sBAAsB,CAAC8B,gBAAgB,CAACK,YAAY,CAAC;QACvD,IAAInC,sBAAsB,CAACqC,OAAO,CAACjC,EAAE,EAAEgC,eAAe,CAAC,EAAE;UACvD9B,oBAAoB,CAAC8B,eAAe,CAAC;QACvC;MACF,CAAC,MAAM;QACL9B,oBAAoB,CAAC,IAAI,CAAC;MAC5B;IACF,CACF,CAAC;IAED,OAAO,CAACa,mBAAmB,EAAE,GAAGI,mBAAmB,EAAEQ,kBAAkB,CAAC;EAC1E;AACF;AAACO,eAAA,CA/FKpC,wBAAwB,kBACN,EAAE;AAAAoC,eAAA,CADpBpC,wBAAwB,iBAGP,EAAE;AAAAoC,eAAA,CAHnBpC,wBAAwB,sBAKF,EAAE;AAAAoC,eAAA,CALxBpC,wBAAwB,iBAOP,EAAE;AA0FzB,eAAeA,wBAAwB"}
1
+ {"version":3,"file":"DecimalFormatContextMenu.js","names":["DecimalColumnFormatter","FormatContextMenuUtils","DecimalFormatContextMenu","getOptions","dh","selectedFormat","onCustomFormatChange","formatItems","format","FORMAT_PERCENT","group","presetGroup","FORMAT_BASIS_POINTS","FORMAT_MILLIONS","FORMAT_SCIENTIFIC_NOTATION","FORMAT_ROUND","presetRoundGroup","FORMAT_ROUND_TWO_DECIMALS","FORMAT_ROUND_FOUR_DECIMALS","defaultFormatOption","makeOption","defaultGroup","isDefaultSelected","presetFormatOptions","map","item","label","isSameFormat","isCustomSelected","customFormat","makeCustomFormat","customFormatOption","makeCustomFormatOption","customGroup","DEFAULT_FORMAT_STRING","formatString","newCustomFormat","isValid","_defineProperty"],"sources":["../../src/format-context-menus/DecimalFormatContextMenu.ts"],"sourcesContent":["import {\n DecimalColumnFormat,\n DecimalColumnFormatter,\n} from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport FormatContextMenuUtils, {\n FormatContextMenuOption,\n} from './FormatContextMenuUtils';\n\nclass DecimalFormatContextMenu {\n static defaultGroup = 10;\n\n static presetGroup = 20;\n\n static presetRoundGroup = 30;\n\n static customGroup = 40;\n\n /**\n * Creates list of formatting options for Decimal context menu\n * @param dh JSAPI instance\n * @param selectedFormat Selected format object, null for no selected format\n * @param onCustomFormatChange Callback to call when the custom format is changed\n * @returns Array of formatting options for the context menu\n */\n static getOptions(\n dh: typeof DhType,\n selectedFormat: DecimalColumnFormat,\n onCustomFormatChange: (value: DecimalColumnFormat | null) => void\n ): FormatContextMenuOption[] {\n const formatItems = [\n {\n format: DecimalColumnFormatter.FORMAT_PERCENT,\n group: DecimalFormatContextMenu.presetGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_BASIS_POINTS,\n group: DecimalFormatContextMenu.presetGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_MILLIONS,\n group: DecimalFormatContextMenu.presetGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_SCIENTIFIC_NOTATION,\n group: DecimalFormatContextMenu.presetGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_ROUND,\n group: DecimalFormatContextMenu.presetRoundGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_ROUND_TWO_DECIMALS,\n group: DecimalFormatContextMenu.presetRoundGroup,\n },\n {\n format: DecimalColumnFormatter.FORMAT_ROUND_FOUR_DECIMALS,\n group: DecimalFormatContextMenu.presetRoundGroup,\n },\n ];\n\n const defaultFormatOption = FormatContextMenuUtils.makeOption(\n 'Default',\n null,\n DecimalFormatContextMenu.defaultGroup,\n FormatContextMenuUtils.isDefaultSelected(selectedFormat)\n );\n\n const presetFormatOptions = formatItems.map(item =>\n FormatContextMenuUtils.makeOption(\n item.format.label,\n item.format,\n item.group,\n DecimalColumnFormatter.isSameFormat(item.format, selectedFormat)\n )\n );\n\n const isCustomSelected =\n FormatContextMenuUtils.isCustomSelected(selectedFormat);\n\n const customFormat = isCustomSelected\n ? selectedFormat\n : DecimalColumnFormatter.makeCustomFormat();\n\n const customFormatOption = FormatContextMenuUtils.makeCustomFormatOption(\n customFormat,\n DecimalFormatContextMenu.customGroup,\n DecimalColumnFormatter.DEFAULT_FORMAT_STRING,\n isCustomSelected,\n formatString => {\n if (formatString != null) {\n const newCustomFormat =\n DecimalColumnFormatter.makeCustomFormat(formatString);\n if (DecimalColumnFormatter.isValid(dh, newCustomFormat)) {\n onCustomFormatChange(newCustomFormat);\n }\n } else {\n onCustomFormatChange(null);\n }\n }\n );\n\n return [defaultFormatOption, ...presetFormatOptions, customFormatOption];\n }\n}\n\nexport default DecimalFormatContextMenu;\n"],"mappings":";;;AAAA,SAEEA,sBAAsB,QACjB,wBAAwB;AAAC,OAEzBC,sBAAsB;AAI7B,MAAMC,wBAAwB,CAAC;EAS7B;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,UAAUA,CACfC,EAAiB,EACjBC,cAAmC,EACnCC,oBAAiE,EACtC;IAC3B,IAAMC,WAAW,GAAG,CAClB;MACEC,MAAM,EAAER,sBAAsB,CAACS,cAAc;MAC7CC,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACY,mBAAmB;MAClDF,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACa,eAAe;MAC9CH,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACc,0BAA0B;MACzDJ,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACe,YAAY;MAC3CL,KAAK,EAAER,wBAAwB,CAACc;IAClC,CAAC,EACD;MACER,MAAM,EAAER,sBAAsB,CAACiB,yBAAyB;MACxDP,KAAK,EAAER,wBAAwB,CAACc;IAClC,CAAC,EACD;MACER,MAAM,EAAER,sBAAsB,CAACkB,0BAA0B;MACzDR,KAAK,EAAER,wBAAwB,CAACc;IAClC,CAAC,CACF;IAED,IAAMG,mBAAmB,GAAGlB,sBAAsB,CAACmB,UAAU,CAC3D,SAAS,EACT,IAAI,EACJlB,wBAAwB,CAACmB,YAAY,EACrCpB,sBAAsB,CAACqB,iBAAiB,CAACjB,cAAc,CACzD,CAAC;IAED,IAAMkB,mBAAmB,GAAGhB,WAAW,CAACiB,GAAG,CAACC,IAAI,IAC9CxB,sBAAsB,CAACmB,UAAU,CAC/BK,IAAI,CAACjB,MAAM,CAACkB,KAAK,EACjBD,IAAI,CAACjB,MAAM,EACXiB,IAAI,CAACf,KAAK,EACVV,sBAAsB,CAAC2B,YAAY,CAACF,IAAI,CAACjB,MAAM,EAAEH,cAAc,CACjE,CACF,CAAC;IAED,IAAMuB,gBAAgB,GACpB3B,sBAAsB,CAAC2B,gBAAgB,CAACvB,cAAc,CAAC;IAEzD,IAAMwB,YAAY,GAAGD,gBAAgB,GACjCvB,cAAc,GACdL,sBAAsB,CAAC8B,gBAAgB,CAAC,CAAC;IAE7C,IAAMC,kBAAkB,GAAG9B,sBAAsB,CAAC+B,sBAAsB,CACtEH,YAAY,EACZ3B,wBAAwB,CAAC+B,WAAW,EACpCjC,sBAAsB,CAACkC,qBAAqB,EAC5CN,gBAAgB,EAChBO,YAAY,IAAI;MACd,IAAIA,YAAY,IAAI,IAAI,EAAE;QACxB,IAAMC,eAAe,GACnBpC,sBAAsB,CAAC8B,gBAAgB,CAACK,YAAY,CAAC;QACvD,IAAInC,sBAAsB,CAACqC,OAAO,CAACjC,EAAE,EAAEgC,eAAe,CAAC,EAAE;UACvD9B,oBAAoB,CAAC8B,eAAe,CAAC;QACvC;MACF,CAAC,MAAM;QACL9B,oBAAoB,CAAC,IAAI,CAAC;MAC5B;IACF,CACF,CAAC;IAED,OAAO,CAACa,mBAAmB,EAAE,GAAGI,mBAAmB,EAAEQ,kBAAkB,CAAC;EAC1E;AACF;AAACO,eAAA,CA/FKpC,wBAAwB,kBACN,EAAE;AAAAoC,eAAA,CADpBpC,wBAAwB,iBAGP,EAAE;AAAAoC,eAAA,CAHnBpC,wBAAwB,sBAKF,EAAE;AAAAoC,eAAA,CALxBpC,wBAAwB,iBAOP,EAAE;AA0FzB,eAAeA,wBAAwB"}
@@ -45,6 +45,7 @@ class FormatContextMenuUtils {
45
45
  * @param onChange Input element onChange callback
46
46
  */
47
47
  static makeCustomFormatOption(format, group, placeholder, isSelected, onChange) {
48
+ var _format$formatString;
48
49
  return {
49
50
  title: format.label,
50
51
  description: format.label,
@@ -52,7 +53,7 @@ class FormatContextMenuUtils {
52
53
  group,
53
54
  isSelected,
54
55
  menuElement: /*#__PURE__*/_jsx(CustomFormatAction, {
55
- formatString: format.formatString,
56
+ formatString: (_format$formatString = format.formatString) !== null && _format$formatString !== void 0 ? _format$formatString : undefined,
56
57
  title: format.label,
57
58
  placeholder: placeholder,
58
59
  onChange: onChange
@@ -1 +1 @@
1
- {"version":3,"file":"FormatContextMenuUtils.js","names":["React","TableColumnFormatter","CustomFormatAction","jsx","_jsx","FormatContextMenuUtils","isDefaultSelected","selectedFormat","TYPE_CONTEXT_CUSTOM","TYPE_CONTEXT_PRESET","includes","type","isCustomSelected","makeOption","title","format","group","isSelected","description","makeCustomFormatOption","placeholder","onChange","label","menuElement","formatString"],"sources":["../../src/format-context-menus/FormatContextMenuUtils.tsx"],"sourcesContent":["import React from 'react';\nimport {\n TableColumnFormat,\n TableColumnFormatter,\n} from '@deephaven/jsapi-utils';\nimport CustomFormatAction from './CustomFormatAction';\n\nexport interface FormatContextMenuOption {\n title: string;\n description: string;\n group: number;\n format: TableColumnFormat | null;\n isSelected: boolean;\n}\n\nexport interface CustomFormatOption extends FormatContextMenuOption {\n menuElement: React.ReactElement;\n}\n\nclass FormatContextMenuUtils {\n /**\n * Returns true if default option should be active in the context menu\n * @param selectedFormat selected format object or null\n */\n static isDefaultSelected(selectedFormat: TableColumnFormat | null): boolean {\n return (\n !selectedFormat ||\n ![\n TableColumnFormatter.TYPE_CONTEXT_CUSTOM,\n TableColumnFormatter.TYPE_CONTEXT_PRESET,\n ].includes(selectedFormat.type)\n );\n }\n\n /**\n * Returns true if custom format option should be active in the context menu\n * @param selectedFormat selected format object or null\n */\n static isCustomSelected(selectedFormat: TableColumnFormat): boolean {\n return (\n selectedFormat != null &&\n selectedFormat.type === TableColumnFormatter.TYPE_CONTEXT_CUSTOM\n );\n }\n\n /**\n * Creates context menu option\n * @param title Context menu title\n * @param format Format object\n * @param group Context menu group\n * @param isSelected Is current option selected\n */\n static makeOption(\n title: string,\n format: TableColumnFormat | null,\n group: number,\n isSelected: boolean\n ): FormatContextMenuOption {\n return {\n title,\n description: title,\n group,\n format,\n isSelected,\n };\n }\n\n /**\n * Creates context menu option with an input element\n * @param format Format object\n * @param group Context menu group\n * @param placeholder Input element placeholder\n * @param isSelected Is current option selected\n * @param onChange Input element onChange callback\n */\n static makeCustomFormatOption(\n format: TableColumnFormat,\n group: number,\n placeholder: string,\n isSelected: boolean,\n onChange: (value: string | null) => void\n ): CustomFormatOption {\n return {\n title: format.label,\n description: format.label,\n format,\n group,\n isSelected,\n menuElement: (\n <CustomFormatAction\n formatString={format.formatString}\n title={format.label}\n placeholder={placeholder}\n onChange={onChange}\n />\n ),\n };\n }\n}\n\nexport default FormatContextMenuUtils;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAEEC,oBAAoB,QACf,wBAAwB;AAAC,OACzBC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAczB,MAAMC,sBAAsB,CAAC;EAC3B;AACF;AACA;AACA;EACE,OAAOC,iBAAiBA,CAACC,cAAwC,EAAW;IAC1E,OACE,CAACA,cAAc,IACf,CAAC,CACCN,oBAAoB,CAACO,mBAAmB,EACxCP,oBAAoB,CAACQ,mBAAmB,CACzC,CAACC,QAAQ,CAACH,cAAc,CAACI,IAAI,CAAC;EAEnC;;EAEA;AACF;AACA;AACA;EACE,OAAOC,gBAAgBA,CAACL,cAAiC,EAAW;IAClE,OACEA,cAAc,IAAI,IAAI,IACtBA,cAAc,CAACI,IAAI,KAAKV,oBAAoB,CAACO,mBAAmB;EAEpE;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOK,UAAUA,CACfC,KAAa,EACbC,MAAgC,EAChCC,KAAa,EACbC,UAAmB,EACM;IACzB,OAAO;MACLH,KAAK;MACLI,WAAW,EAAEJ,KAAK;MAClBE,KAAK;MACLD,MAAM;MACNE;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOE,sBAAsBA,CAC3BJ,MAAyB,EACzBC,KAAa,EACbI,WAAmB,EACnBH,UAAmB,EACnBI,QAAwC,EACpB;IACpB,OAAO;MACLP,KAAK,EAAEC,MAAM,CAACO,KAAK;MACnBJ,WAAW,EAAEH,MAAM,CAACO,KAAK;MACzBP,MAAM;MACNC,KAAK;MACLC,UAAU;MACVM,WAAW,eACTnB,IAAA,CAACF,kBAAkB;QACjBsB,YAAY,EAAET,MAAM,CAACS,YAAa;QAClCV,KAAK,EAAEC,MAAM,CAACO,KAAM;QACpBF,WAAW,EAAEA,WAAY;QACzBC,QAAQ,EAAEA;MAAS,CACpB;IAEL,CAAC;EACH;AACF;AAEA,eAAehB,sBAAsB"}
1
+ {"version":3,"file":"FormatContextMenuUtils.js","names":["React","TableColumnFormatter","CustomFormatAction","jsx","_jsx","FormatContextMenuUtils","isDefaultSelected","selectedFormat","TYPE_CONTEXT_CUSTOM","TYPE_CONTEXT_PRESET","includes","type","isCustomSelected","makeOption","title","format","group","isSelected","description","makeCustomFormatOption","placeholder","onChange","_format$formatString","label","menuElement","formatString","undefined"],"sources":["../../src/format-context-menus/FormatContextMenuUtils.tsx"],"sourcesContent":["import React from 'react';\nimport {\n TableColumnFormat,\n TableColumnFormatter,\n} from '@deephaven/jsapi-utils';\nimport CustomFormatAction from './CustomFormatAction';\n\nexport interface FormatContextMenuOption {\n title: string;\n description: string;\n group: number;\n format: TableColumnFormat | null;\n isSelected: boolean;\n}\n\nexport interface CustomFormatOption extends FormatContextMenuOption {\n menuElement: React.ReactElement;\n}\n\nclass FormatContextMenuUtils {\n /**\n * Returns true if default option should be active in the context menu\n * @param selectedFormat selected format object or null\n */\n static isDefaultSelected(selectedFormat: TableColumnFormat | null): boolean {\n return (\n !selectedFormat ||\n ![\n TableColumnFormatter.TYPE_CONTEXT_CUSTOM,\n TableColumnFormatter.TYPE_CONTEXT_PRESET,\n ].includes(selectedFormat.type)\n );\n }\n\n /**\n * Returns true if custom format option should be active in the context menu\n * @param selectedFormat selected format object or null\n */\n static isCustomSelected(selectedFormat: TableColumnFormat): boolean {\n return (\n selectedFormat != null &&\n selectedFormat.type === TableColumnFormatter.TYPE_CONTEXT_CUSTOM\n );\n }\n\n /**\n * Creates context menu option\n * @param title Context menu title\n * @param format Format object\n * @param group Context menu group\n * @param isSelected Is current option selected\n */\n static makeOption(\n title: string,\n format: TableColumnFormat | null,\n group: number,\n isSelected: boolean\n ): FormatContextMenuOption {\n return {\n title,\n description: title,\n group,\n format,\n isSelected,\n };\n }\n\n /**\n * Creates context menu option with an input element\n * @param format Format object\n * @param group Context menu group\n * @param placeholder Input element placeholder\n * @param isSelected Is current option selected\n * @param onChange Input element onChange callback\n */\n static makeCustomFormatOption(\n format: TableColumnFormat,\n group: number,\n placeholder: string,\n isSelected: boolean,\n onChange: (value: string | null) => void\n ): CustomFormatOption {\n return {\n title: format.label,\n description: format.label,\n format,\n group,\n isSelected,\n menuElement: (\n <CustomFormatAction\n formatString={format.formatString ?? undefined}\n title={format.label}\n placeholder={placeholder}\n onChange={onChange}\n />\n ),\n };\n }\n}\n\nexport default FormatContextMenuUtils;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAEEC,oBAAoB,QACf,wBAAwB;AAAC,OACzBC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAczB,MAAMC,sBAAsB,CAAC;EAC3B;AACF;AACA;AACA;EACE,OAAOC,iBAAiBA,CAACC,cAAwC,EAAW;IAC1E,OACE,CAACA,cAAc,IACf,CAAC,CACCN,oBAAoB,CAACO,mBAAmB,EACxCP,oBAAoB,CAACQ,mBAAmB,CACzC,CAACC,QAAQ,CAACH,cAAc,CAACI,IAAI,CAAC;EAEnC;;EAEA;AACF;AACA;AACA;EACE,OAAOC,gBAAgBA,CAACL,cAAiC,EAAW;IAClE,OACEA,cAAc,IAAI,IAAI,IACtBA,cAAc,CAACI,IAAI,KAAKV,oBAAoB,CAACO,mBAAmB;EAEpE;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOK,UAAUA,CACfC,KAAa,EACbC,MAAgC,EAChCC,KAAa,EACbC,UAAmB,EACM;IACzB,OAAO;MACLH,KAAK;MACLI,WAAW,EAAEJ,KAAK;MAClBE,KAAK;MACLD,MAAM;MACNE;IACF,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOE,sBAAsBA,CAC3BJ,MAAyB,EACzBC,KAAa,EACbI,WAAmB,EACnBH,UAAmB,EACnBI,QAAwC,EACpB;IAAA,IAAAC,oBAAA;IACpB,OAAO;MACLR,KAAK,EAAEC,MAAM,CAACQ,KAAK;MACnBL,WAAW,EAAEH,MAAM,CAACQ,KAAK;MACzBR,MAAM;MACNC,KAAK;MACLC,UAAU;MACVO,WAAW,eACTpB,IAAA,CAACF,kBAAkB;QACjBuB,YAAY,GAAAH,oBAAA,GAAEP,MAAM,CAACU,YAAY,cAAAH,oBAAA,cAAAA,oBAAA,GAAII,SAAU;QAC/CZ,KAAK,EAAEC,MAAM,CAACQ,KAAM;QACpBH,WAAW,EAAEA,WAAY;QACzBC,QAAQ,EAAEA;MAAS,CACpB;IAEL,CAAC;EACH;AACF;AAEA,eAAehB,sBAAsB"}
@@ -12,7 +12,7 @@ declare class IntegerFormatContextMenu {
12
12
  * @param onCustomFormatChange Callback to call when the custom format is changed
13
13
  * @returns Array of formatting options for the context menu
14
14
  */
15
- static getOptions(dh: DhType, selectedFormat: IntegerColumnFormat, onCustomFormatChange: (value: IntegerColumnFormat | null) => void): FormatContextMenuOption[];
15
+ static getOptions(dh: typeof DhType, selectedFormat: IntegerColumnFormat, onCustomFormatChange: (value: IntegerColumnFormat | null) => void): FormatContextMenuOption[];
16
16
  }
17
17
  export default IntegerFormatContextMenu;
18
18
  //# sourceMappingURL=IntegerFormatContextMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IntegerFormatContextMenu.d.ts","sourceRoot":"","sources":["../../src/format-context-menus/IntegerFormatContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAA+B,EAC7B,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,cAAM,wBAAwB;IAC5B,MAAM,CAAC,YAAY,SAAM;IAEzB,MAAM,CAAC,WAAW,SAAM;IAExB,MAAM,CAAC,WAAW,SAAM;IAExB;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CACf,EAAE,EAAE,MAAM,EACV,cAAc,EAAE,mBAAmB,EACnC,oBAAoB,EAAE,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,GAChE,uBAAuB,EAAE;CAuD7B;AAED,eAAe,wBAAwB,CAAC"}
1
+ {"version":3,"file":"IntegerFormatContextMenu.d.ts","sourceRoot":"","sources":["../../src/format-context-menus/IntegerFormatContextMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAA+B,EAC7B,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AAElC,cAAM,wBAAwB;IAC5B,MAAM,CAAC,YAAY,SAAM;IAEzB,MAAM,CAAC,WAAW,SAAM;IAExB,MAAM,CAAC,WAAW,SAAM;IAExB;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CACf,EAAE,EAAE,OAAO,MAAM,EACjB,cAAc,EAAE,mBAAmB,EACnC,oBAAoB,EAAE,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,GAChE,uBAAuB,EAAE;CAuD7B;AAED,eAAe,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"IntegerFormatContextMenu.js","names":["IntegerColumnFormatter","FormatContextMenuUtils","IntegerFormatContextMenu","getOptions","dh","selectedFormat","onCustomFormatChange","formatItems","format","FORMAT_MILLIONS","group","presetGroup","FORMAT_SCIENTIFIC_NOTATION","defaultFormatOption","makeOption","defaultGroup","isDefaultSelected","presetFormatOptions","map","item","label","isSameFormat","isCustomSelected","customFormat","makeCustomFormat","customFormatOption","makeCustomFormatOption","customGroup","DEFAULT_FORMAT_STRING","formatString","newCustomFormat","isValid","_defineProperty"],"sources":["../../src/format-context-menus/IntegerFormatContextMenu.ts"],"sourcesContent":["import {\n IntegerColumnFormat,\n IntegerColumnFormatter,\n} from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport FormatContextMenuUtils, {\n FormatContextMenuOption,\n} from './FormatContextMenuUtils';\n\nclass IntegerFormatContextMenu {\n static defaultGroup = 10;\n\n static presetGroup = 20;\n\n static customGroup = 30;\n\n /**\n * Creates list of formatting options for Integer context menu\n * @param dh JSAPI instance\n * @param selectedFormat Selected format object, null for no selected format\n * @param onCustomFormatChange Callback to call when the custom format is changed\n * @returns Array of formatting options for the context menu\n */\n static getOptions(\n dh: DhType,\n selectedFormat: IntegerColumnFormat,\n onCustomFormatChange: (value: IntegerColumnFormat | null) => void\n ): FormatContextMenuOption[] {\n const formatItems = [\n {\n format: IntegerColumnFormatter.FORMAT_MILLIONS,\n group: IntegerFormatContextMenu.presetGroup,\n },\n {\n format: IntegerColumnFormatter.FORMAT_SCIENTIFIC_NOTATION,\n group: IntegerFormatContextMenu.presetGroup,\n },\n ];\n\n const defaultFormatOption = FormatContextMenuUtils.makeOption(\n 'Default',\n null,\n IntegerFormatContextMenu.defaultGroup,\n FormatContextMenuUtils.isDefaultSelected(selectedFormat)\n );\n\n const presetFormatOptions = formatItems.map(item =>\n FormatContextMenuUtils.makeOption(\n item.format.label,\n item.format,\n item.group,\n IntegerColumnFormatter.isSameFormat(item.format, selectedFormat)\n )\n );\n\n const isCustomSelected =\n FormatContextMenuUtils.isCustomSelected(selectedFormat);\n\n const customFormat = isCustomSelected\n ? selectedFormat\n : IntegerColumnFormatter.makeCustomFormat();\n\n const customFormatOption = FormatContextMenuUtils.makeCustomFormatOption(\n customFormat,\n IntegerFormatContextMenu.customGroup,\n IntegerColumnFormatter.DEFAULT_FORMAT_STRING,\n isCustomSelected,\n formatString => {\n if (formatString != null) {\n const newCustomFormat =\n IntegerColumnFormatter.makeCustomFormat(formatString);\n if (IntegerColumnFormatter.isValid(dh, newCustomFormat)) {\n onCustomFormatChange(newCustomFormat);\n }\n } else {\n onCustomFormatChange(null);\n }\n }\n );\n\n return [defaultFormatOption, ...presetFormatOptions, customFormatOption];\n }\n}\n\nexport default IntegerFormatContextMenu;\n"],"mappings":";;;AAAA,SAEEA,sBAAsB,QACjB,wBAAwB;AAAC,OAEzBC,sBAAsB;AAI7B,MAAMC,wBAAwB,CAAC;EAO7B;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,UAAUA,CACfC,EAAU,EACVC,cAAmC,EACnCC,oBAAiE,EACtC;IAC3B,IAAMC,WAAW,GAAG,CAClB;MACEC,MAAM,EAAER,sBAAsB,CAACS,eAAe;MAC9CC,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACY,0BAA0B;MACzDF,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,CACF;IAED,IAAME,mBAAmB,GAAGZ,sBAAsB,CAACa,UAAU,CAC3D,SAAS,EACT,IAAI,EACJZ,wBAAwB,CAACa,YAAY,EACrCd,sBAAsB,CAACe,iBAAiB,CAACX,cAAc,CACzD,CAAC;IAED,IAAMY,mBAAmB,GAAGV,WAAW,CAACW,GAAG,CAACC,IAAI,IAC9ClB,sBAAsB,CAACa,UAAU,CAC/BK,IAAI,CAACX,MAAM,CAACY,KAAK,EACjBD,IAAI,CAACX,MAAM,EACXW,IAAI,CAACT,KAAK,EACVV,sBAAsB,CAACqB,YAAY,CAACF,IAAI,CAACX,MAAM,EAAEH,cAAc,CACjE,CACF,CAAC;IAED,IAAMiB,gBAAgB,GACpBrB,sBAAsB,CAACqB,gBAAgB,CAACjB,cAAc,CAAC;IAEzD,IAAMkB,YAAY,GAAGD,gBAAgB,GACjCjB,cAAc,GACdL,sBAAsB,CAACwB,gBAAgB,CAAC,CAAC;IAE7C,IAAMC,kBAAkB,GAAGxB,sBAAsB,CAACyB,sBAAsB,CACtEH,YAAY,EACZrB,wBAAwB,CAACyB,WAAW,EACpC3B,sBAAsB,CAAC4B,qBAAqB,EAC5CN,gBAAgB,EAChBO,YAAY,IAAI;MACd,IAAIA,YAAY,IAAI,IAAI,EAAE;QACxB,IAAMC,eAAe,GACnB9B,sBAAsB,CAACwB,gBAAgB,CAACK,YAAY,CAAC;QACvD,IAAI7B,sBAAsB,CAAC+B,OAAO,CAAC3B,EAAE,EAAE0B,eAAe,CAAC,EAAE;UACvDxB,oBAAoB,CAACwB,eAAe,CAAC;QACvC;MACF,CAAC,MAAM;QACLxB,oBAAoB,CAAC,IAAI,CAAC;MAC5B;IACF,CACF,CAAC;IAED,OAAO,CAACO,mBAAmB,EAAE,GAAGI,mBAAmB,EAAEQ,kBAAkB,CAAC;EAC1E;AACF;AAACO,eAAA,CAzEK9B,wBAAwB,kBACN,EAAE;AAAA8B,eAAA,CADpB9B,wBAAwB,iBAGP,EAAE;AAAA8B,eAAA,CAHnB9B,wBAAwB,iBAKP,EAAE;AAsEzB,eAAeA,wBAAwB"}
1
+ {"version":3,"file":"IntegerFormatContextMenu.js","names":["IntegerColumnFormatter","FormatContextMenuUtils","IntegerFormatContextMenu","getOptions","dh","selectedFormat","onCustomFormatChange","formatItems","format","FORMAT_MILLIONS","group","presetGroup","FORMAT_SCIENTIFIC_NOTATION","defaultFormatOption","makeOption","defaultGroup","isDefaultSelected","presetFormatOptions","map","item","label","isSameFormat","isCustomSelected","customFormat","makeCustomFormat","customFormatOption","makeCustomFormatOption","customGroup","DEFAULT_FORMAT_STRING","formatString","newCustomFormat","isValid","_defineProperty"],"sources":["../../src/format-context-menus/IntegerFormatContextMenu.ts"],"sourcesContent":["import {\n IntegerColumnFormat,\n IntegerColumnFormatter,\n} from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport FormatContextMenuUtils, {\n FormatContextMenuOption,\n} from './FormatContextMenuUtils';\n\nclass IntegerFormatContextMenu {\n static defaultGroup = 10;\n\n static presetGroup = 20;\n\n static customGroup = 30;\n\n /**\n * Creates list of formatting options for Integer context menu\n * @param dh JSAPI instance\n * @param selectedFormat Selected format object, null for no selected format\n * @param onCustomFormatChange Callback to call when the custom format is changed\n * @returns Array of formatting options for the context menu\n */\n static getOptions(\n dh: typeof DhType,\n selectedFormat: IntegerColumnFormat,\n onCustomFormatChange: (value: IntegerColumnFormat | null) => void\n ): FormatContextMenuOption[] {\n const formatItems = [\n {\n format: IntegerColumnFormatter.FORMAT_MILLIONS,\n group: IntegerFormatContextMenu.presetGroup,\n },\n {\n format: IntegerColumnFormatter.FORMAT_SCIENTIFIC_NOTATION,\n group: IntegerFormatContextMenu.presetGroup,\n },\n ];\n\n const defaultFormatOption = FormatContextMenuUtils.makeOption(\n 'Default',\n null,\n IntegerFormatContextMenu.defaultGroup,\n FormatContextMenuUtils.isDefaultSelected(selectedFormat)\n );\n\n const presetFormatOptions = formatItems.map(item =>\n FormatContextMenuUtils.makeOption(\n item.format.label,\n item.format,\n item.group,\n IntegerColumnFormatter.isSameFormat(item.format, selectedFormat)\n )\n );\n\n const isCustomSelected =\n FormatContextMenuUtils.isCustomSelected(selectedFormat);\n\n const customFormat = isCustomSelected\n ? selectedFormat\n : IntegerColumnFormatter.makeCustomFormat();\n\n const customFormatOption = FormatContextMenuUtils.makeCustomFormatOption(\n customFormat,\n IntegerFormatContextMenu.customGroup,\n IntegerColumnFormatter.DEFAULT_FORMAT_STRING,\n isCustomSelected,\n formatString => {\n if (formatString != null) {\n const newCustomFormat =\n IntegerColumnFormatter.makeCustomFormat(formatString);\n if (IntegerColumnFormatter.isValid(dh, newCustomFormat)) {\n onCustomFormatChange(newCustomFormat);\n }\n } else {\n onCustomFormatChange(null);\n }\n }\n );\n\n return [defaultFormatOption, ...presetFormatOptions, customFormatOption];\n }\n}\n\nexport default IntegerFormatContextMenu;\n"],"mappings":";;;AAAA,SAEEA,sBAAsB,QACjB,wBAAwB;AAAC,OAEzBC,sBAAsB;AAI7B,MAAMC,wBAAwB,CAAC;EAO7B;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOC,UAAUA,CACfC,EAAiB,EACjBC,cAAmC,EACnCC,oBAAiE,EACtC;IAC3B,IAAMC,WAAW,GAAG,CAClB;MACEC,MAAM,EAAER,sBAAsB,CAACS,eAAe;MAC9CC,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,EACD;MACEH,MAAM,EAAER,sBAAsB,CAACY,0BAA0B;MACzDF,KAAK,EAAER,wBAAwB,CAACS;IAClC,CAAC,CACF;IAED,IAAME,mBAAmB,GAAGZ,sBAAsB,CAACa,UAAU,CAC3D,SAAS,EACT,IAAI,EACJZ,wBAAwB,CAACa,YAAY,EACrCd,sBAAsB,CAACe,iBAAiB,CAACX,cAAc,CACzD,CAAC;IAED,IAAMY,mBAAmB,GAAGV,WAAW,CAACW,GAAG,CAACC,IAAI,IAC9ClB,sBAAsB,CAACa,UAAU,CAC/BK,IAAI,CAACX,MAAM,CAACY,KAAK,EACjBD,IAAI,CAACX,MAAM,EACXW,IAAI,CAACT,KAAK,EACVV,sBAAsB,CAACqB,YAAY,CAACF,IAAI,CAACX,MAAM,EAAEH,cAAc,CACjE,CACF,CAAC;IAED,IAAMiB,gBAAgB,GACpBrB,sBAAsB,CAACqB,gBAAgB,CAACjB,cAAc,CAAC;IAEzD,IAAMkB,YAAY,GAAGD,gBAAgB,GACjCjB,cAAc,GACdL,sBAAsB,CAACwB,gBAAgB,CAAC,CAAC;IAE7C,IAAMC,kBAAkB,GAAGxB,sBAAsB,CAACyB,sBAAsB,CACtEH,YAAY,EACZrB,wBAAwB,CAACyB,WAAW,EACpC3B,sBAAsB,CAAC4B,qBAAqB,EAC5CN,gBAAgB,EAChBO,YAAY,IAAI;MACd,IAAIA,YAAY,IAAI,IAAI,EAAE;QACxB,IAAMC,eAAe,GACnB9B,sBAAsB,CAACwB,gBAAgB,CAACK,YAAY,CAAC;QACvD,IAAI7B,sBAAsB,CAAC+B,OAAO,CAAC3B,EAAE,EAAE0B,eAAe,CAAC,EAAE;UACvDxB,oBAAoB,CAACwB,eAAe,CAAC;QACvC;MACF,CAAC,MAAM;QACLxB,oBAAoB,CAAC,IAAI,CAAC;MAC5B;IACF,CACF,CAAC;IAED,OAAO,CAACO,mBAAmB,EAAE,GAAGI,mBAAmB,EAAEQ,kBAAkB,CAAC;EAC1E;AACF;AAACO,eAAA,CAzEK9B,wBAAwB,kBACN,EAAE;AAAA8B,eAAA,CADpB9B,wBAAwB,iBAGP,EAAE;AAAA8B,eAAA,CAHnB9B,wBAAwB,iBAKP,EAAE;AAsEzB,eAAeA,wBAAwB"}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridColumnSelectMouseHandler.js","names":["GridMouseHandler","IrisGridColumnSelectMouseHandler","constructor","irisGrid","_defineProperty","cursor","isActive","isSelectingColumn","props","isValidColumn","tableColumn","isProxy","columnSelectionValidator","updateColumnSelectionStatus","getTableColumn","columnIndex","model","modelColumn","getModelColumn","columns","onMove","gridPoint","columnAllowedCursor","columnNotAllowedCursor","column","setState","hoverSelectColumn","onWheel","preventDefault","stopPropagation","onLeave","onDown","onClick","selectColumn"],"sources":["../../src/mousehandlers/IrisGridColumnSelectMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport {\n GridMouseHandler,\n GridPoint,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport type { Column } from '@deephaven/jsapi-types';\nimport type IrisGrid from '../IrisGrid';\nimport { DisplayColumn } from '../IrisGridModel';\n\n/**\n * Handles interaction with tables when the Linker tool is active\n */\nclass IrisGridColumnSelectMouseHandler extends GridMouseHandler {\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n this.cursor = null;\n }\n\n private irisGrid: IrisGrid;\n\n private isActive(): boolean {\n const { isSelectingColumn } = this.irisGrid.props;\n return isSelectingColumn;\n }\n\n private isValidColumn(tableColumn: DisplayColumn | null): boolean {\n if (tableColumn == null || tableColumn.isProxy === true) {\n return false;\n }\n\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator != null) {\n return columnSelectionValidator(tableColumn);\n }\n return true;\n }\n\n private updateColumnSelectionStatus(): void {\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator != null) {\n columnSelectionValidator(null);\n }\n }\n\n private getTableColumn(columnIndex: number | null): Column | null {\n if (columnIndex == null) {\n return null;\n }\n\n const { model } = this.irisGrid.props;\n const modelColumn = this.irisGrid.getModelColumn(columnIndex);\n if (modelColumn == null) {\n return null;\n }\n\n return model.columns[modelColumn];\n }\n\n onMove(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { columnAllowedCursor, columnNotAllowedCursor } = this.irisGrid.props;\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n\n if (this.isValidColumn(tableColumn)) {\n this.cursor = columnAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: column });\n } else {\n this.cursor = columnNotAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n return true;\n }\n\n // keeps linker cursor state during wheel event\n onWheel(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { columnAllowedCursor, columnNotAllowedCursor } = this.irisGrid.props;\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n\n if (this.isValidColumn(tableColumn)) {\n this.cursor = columnAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: column });\n } else {\n this.cursor = columnNotAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n // don't block wheel event from scrolling\n return { preventDefault: false, stopPropagation: false };\n }\n\n onLeave(): EventHandlerResult {\n if (this.isActive()) {\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n this.updateColumnSelectionStatus();\n\n return false;\n }\n\n onDown(): EventHandlerResult {\n return this.isActive();\n }\n\n onClick(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n if (tableColumn != null && this.isValidColumn(tableColumn)) {\n this.irisGrid.selectColumn(tableColumn);\n }\n\n return true;\n }\n}\n\nexport default IrisGridColumnSelectMouseHandler;\n"],"mappings":";;;AAAA;AACA,SACEA,gBAAgB,QAGX,iBAAiB;AAKxB;AACA;AACA;AACA,MAAMC,gCAAgC,SAASD,gBAAgB,CAAC;EAC9DE,WAAWA,CAACC,QAAkB,EAAE;IAC9B,KAAK,CAAC,CAAC;IAACC,eAAA;IAER,IAAI,CAACD,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACE,MAAM,GAAG,IAAI;EACpB;EAIQC,QAAQA,CAAA,EAAY;IAC1B,IAAM;MAAEC;IAAkB,CAAC,GAAG,IAAI,CAACJ,QAAQ,CAACK,KAAK;IACjD,OAAOD,iBAAiB;EAC1B;EAEQE,aAAaA,CAACC,WAAiC,EAAW;IAChE,IAAIA,WAAW,IAAI,IAAI,IAAIA,WAAW,CAACC,OAAO,KAAK,IAAI,EAAE;MACvD,OAAO,KAAK;IACd;IAEA,IAAM;MAAEC;IAAyB,CAAC,GAAG,IAAI,CAACT,QAAQ,CAACK,KAAK;IACxD,IAAII,wBAAwB,IAAI,IAAI,EAAE;MACpC,OAAOA,wBAAwB,CAACF,WAAW,CAAC;IAC9C;IACA,OAAO,IAAI;EACb;EAEQG,2BAA2BA,CAAA,EAAS;IAC1C,IAAM;MAAED;IAAyB,CAAC,GAAG,IAAI,CAACT,QAAQ,CAACK,KAAK;IACxD,IAAII,wBAAwB,IAAI,IAAI,EAAE;MACpCA,wBAAwB,CAAC,IAAI,CAAC;IAChC;EACF;EAEQE,cAAcA,CAACC,WAA0B,EAAiB;IAChE,IAAIA,WAAW,IAAI,IAAI,EAAE;MACvB,OAAO,IAAI;IACb;IAEA,IAAM;MAAEC;IAAM,CAAC,GAAG,IAAI,CAACb,QAAQ,CAACK,KAAK;IACrC,IAAMS,WAAW,GAAG,IAAI,CAACd,QAAQ,CAACe,cAAc,CAACH,WAAW,CAAC;IAC7D,IAAIE,WAAW,IAAI,IAAI,EAAE;MACvB,OAAO,IAAI;IACb;IAEA,OAAOD,KAAK,CAACG,OAAO,CAACF,WAAW,CAAC;EACnC;EAEAG,MAAMA,CAACC,SAAoB,EAAsB;IAC/C,IAAI,CAAC,IAAI,CAACf,QAAQ,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,IAAM;MAAEgB,mBAAmB;MAAEC;IAAuB,CAAC,GAAG,IAAI,CAACpB,QAAQ,CAACK,KAAK;IAC3E,IAAM;MAAEgB;IAAO,CAAC,GAAGH,SAAS;IAC5B,IAAMX,WAAW,GAAG,IAAI,CAACI,cAAc,CAACU,MAAM,CAAC;IAE/C,IAAI,IAAI,CAACf,aAAa,CAACC,WAAW,CAAC,EAAE;MACnC,IAAI,CAACL,MAAM,GAAGiB,mBAAmB;MACjC,IAAI,CAACnB,QAAQ,CAACsB,QAAQ,CAAC;QAAEC,iBAAiB,EAAEF;MAAO,CAAC,CAAC;IACvD,CAAC,MAAM;MACL,IAAI,CAACnB,MAAM,GAAGkB,sBAAsB;MACpC,IAAI,CAACpB,QAAQ,CAACsB,QAAQ,CAAC;QAAEC,iBAAiB,EAAE;MAAK,CAAC,CAAC;IACrD;IAEA,OAAO,IAAI;EACb;;EAEA;EACAC,OAAOA,CAACN,SAAoB,EAAsB;IAChD,IAAI,CAAC,IAAI,CAACf,QAAQ,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,IAAM;MAAEgB,mBAAmB;MAAEC;IAAuB,CAAC,GAAG,IAAI,CAACpB,QAAQ,CAACK,KAAK;IAC3E,IAAM;MAAEgB;IAAO,CAAC,GAAGH,SAAS;IAC5B,IAAMX,WAAW,GAAG,IAAI,CAACI,cAAc,CAACU,MAAM,CAAC;IAE/C,IAAI,IAAI,CAACf,aAAa,CAACC,WAAW,CAAC,EAAE;MACnC,IAAI,CAACL,MAAM,GAAGiB,mBAAmB;MACjC,IAAI,CAACnB,QAAQ,CAACsB,QAAQ,CAAC;QAAEC,iBAAiB,EAAEF;MAAO,CAAC,CAAC;IACvD,CAAC,MAAM;MACL,IAAI,CAACnB,MAAM,GAAGkB,sBAAsB;MACpC,IAAI,CAACpB,QAAQ,CAACsB,QAAQ,CAAC;QAAEC,iBAAiB,EAAE;MAAK,CAAC,CAAC;IACrD;;IAEA;IACA,OAAO;MAAEE,cAAc,EAAE,KAAK;MAAEC,eAAe,EAAE;IAAM,CAAC;EAC1D;EAEAC,OAAOA,CAAA,EAAuB;IAC5B,IAAI,IAAI,CAACxB,QAAQ,CAAC,CAAC,EAAE;MACnB,IAAI,CAACH,QAAQ,CAACsB,QAAQ,CAAC;QAAEC,iBAAiB,EAAE;MAAK,CAAC,CAAC;IACrD;IAEA,IAAI,CAACb,2BAA2B,CAAC,CAAC;IAElC,OAAO,KAAK;EACd;EAEAkB,MAAMA,CAAA,EAAuB;IAC3B,OAAO,IAAI,CAACzB,QAAQ,CAAC,CAAC;EACxB;EAEA0B,OAAOA,CAACX,SAAoB,EAAsB;IAChD,IAAI,CAAC,IAAI,CAACf,QAAQ,CAAC,CAAC,EAAE;MACpB,OAAO,KAAK;IACd;IAEA,IAAM;MAAEkB;IAAO,CAAC,GAAGH,SAAS;IAC5B,IAAMX,WAAW,GAAG,IAAI,CAACI,cAAc,CAACU,MAAM,CAAC;IAC/C,IAAId,WAAW,IAAI,IAAI,IAAI,IAAI,CAACD,aAAa,CAACC,WAAW,CAAC,EAAE;MAC1D,IAAI,CAACP,QAAQ,CAAC8B,YAAY,CAACvB,WAAW,CAAC;IACzC;IAEA,OAAO,IAAI;EACb;AACF;AAEA,eAAeT,gCAAgC"}
1
+ {"version":3,"file":"IrisGridColumnSelectMouseHandler.js","names":["GridMouseHandler","IrisGridColumnSelectMouseHandler","constructor","irisGrid","_defineProperty","cursor","isActive","isSelectingColumn","props","isValidColumn","tableColumn","isProxy","columnSelectionValidator","updateColumnSelectionStatus","getTableColumn","columnIndex","model","modelColumn","getModelColumn","columns","onMove","gridPoint","columnAllowedCursor","columnNotAllowedCursor","column","setState","hoverSelectColumn","onWheel","preventDefault","stopPropagation","onLeave","onDown","onClick","selectColumn"],"sources":["../../src/mousehandlers/IrisGridColumnSelectMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport {\n GridMouseHandler,\n GridPoint,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport type IrisGrid from '../IrisGrid';\nimport { DisplayColumn } from '../IrisGridModel';\n\n/**\n * Handles interaction with tables when the Linker tool is active\n */\nclass IrisGridColumnSelectMouseHandler extends GridMouseHandler {\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n this.cursor = null;\n }\n\n private irisGrid: IrisGrid;\n\n private isActive(): boolean {\n const { isSelectingColumn } = this.irisGrid.props;\n return isSelectingColumn;\n }\n\n private isValidColumn(tableColumn: DisplayColumn | null): boolean {\n if (tableColumn == null || tableColumn.isProxy === true) {\n return false;\n }\n\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator != null) {\n return columnSelectionValidator(tableColumn);\n }\n return true;\n }\n\n private updateColumnSelectionStatus(): void {\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator != null) {\n columnSelectionValidator(null);\n }\n }\n\n private getTableColumn(columnIndex: number | null): dh.Column | null {\n if (columnIndex == null) {\n return null;\n }\n\n const { model } = this.irisGrid.props;\n const modelColumn = this.irisGrid.getModelColumn(columnIndex);\n if (modelColumn == null) {\n return null;\n }\n\n return model.columns[modelColumn];\n }\n\n onMove(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { columnAllowedCursor, columnNotAllowedCursor } = this.irisGrid.props;\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n\n if (this.isValidColumn(tableColumn)) {\n this.cursor = columnAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: column });\n } else {\n this.cursor = columnNotAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n return true;\n }\n\n // keeps linker cursor state during wheel event\n onWheel(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { columnAllowedCursor, columnNotAllowedCursor } = this.irisGrid.props;\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n\n if (this.isValidColumn(tableColumn)) {\n this.cursor = columnAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: column });\n } else {\n this.cursor = columnNotAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n // don't block wheel event from scrolling\n return { preventDefault: false, stopPropagation: false };\n }\n\n onLeave(): EventHandlerResult {\n if (this.isActive()) {\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n this.updateColumnSelectionStatus();\n\n return false;\n }\n\n onDown(): EventHandlerResult {\n return this.isActive();\n }\n\n onClick(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n if (tableColumn != null && this.isValidColumn(tableColumn)) {\n this.irisGrid.selectColumn(tableColumn);\n }\n\n return true;\n }\n}\n\nexport default IrisGridColumnSelectMouseHandler;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ContextAction } from '@deephaven/components';
3
3
  import { EventHandlerResult, Grid, GridMouseHandler, GridPoint, ModelIndex } from '@deephaven/grid';
4
- import type { Column, dh as DhType, FilterCondition, FilterValue, Sort } from '@deephaven/jsapi-types';
4
+ import type { dh as DhType } from '@deephaven/jsapi-types';
5
5
  import { DateTimeColumnFormatter, TableColumnFormat, SortDirection } from '@deephaven/jsapi-utils';
6
6
  import type { DebouncedFunc } from 'lodash';
7
7
  import './IrisGridContextMenuHandler.scss';
@@ -32,7 +32,7 @@ declare class IrisGridContextMenuHandler extends GridMouseHandler {
32
32
  * @param newColumnFilter
33
33
  * @param operator
34
34
  */
35
- static getQuickFilterCondition(columnFilter: FilterCondition | null | undefined, newColumnFilter: FilterCondition, operator?: '&&' | '||' | null): FilterCondition;
35
+ static getQuickFilterCondition(columnFilter: DhType.FilterCondition | null | undefined, newColumnFilter: DhType.FilterCondition, operator?: '&&' | '||' | null): DhType.FilterCondition;
36
36
  /**
37
37
  * combines filter text with operator if declared
38
38
  * @param filterText
@@ -47,9 +47,9 @@ declare class IrisGridContextMenuHandler extends GridMouseHandler {
47
47
  static getRowOptionFormatted(command: string, cellValue: string, len?: number): string;
48
48
  irisGrid: IrisGrid;
49
49
  debouncedUpdateCustomFormat: DebouncedFunc<(modelIndex: number, selectedFormat: TableColumnFormat | null) => void>;
50
- constructor(irisGrid: IrisGrid, dh: DhType);
50
+ constructor(irisGrid: IrisGrid, dh: typeof DhType);
51
51
  componentWillUnmount(): void;
52
- dh: DhType;
52
+ dh: typeof DhType;
53
53
  getHeaderActions(modelIndex: ModelIndex, gridPoint: GridPoint): ContextAction[];
54
54
  getCellActions(modelColumn: ModelIndex, grid: Grid, gridPoint: GridPoint): ContextAction[];
55
55
  getCellFilterActions(modelColumn: ModelIndex, grid: Grid, gridPoint: GridPoint): Promise<ContextAction[]>;
@@ -58,20 +58,20 @@ declare class IrisGridContextMenuHandler extends GridMouseHandler {
58
58
  * @param column The column to make the filter for
59
59
  * @param value The value to get the equality filter for
60
60
  */
61
- getNumberValueEqualsFilter(column: Column, value: number): FilterCondition;
62
- getFilterValueForNumberOrChar(columnType: string, value: unknown): FilterValue;
61
+ getNumberValueEqualsFilter(column: DhType.Column, value: number): DhType.FilterCondition;
62
+ getFilterValueForNumberOrChar(columnType: string, value: unknown): DhType.FilterValue;
63
63
  onContextMenu(gridPoint: GridPoint, grid: Grid, event: React.MouseEvent<Element, MouseEvent>): EventHandlerResult;
64
- dateFormatActions(column: Column): ContextAction[];
65
- numberFormatActions(column: Column): ContextAction[] | null;
66
- stringFilterActions(column: Column, snapshotValues: Set<string>, quickFilter?: QuickFilter, operator?: '&&' | '||' | null): ContextAction[];
67
- numberFilterActions(column: Column, snapshotValues: Set<number>, quickFilter?: QuickFilter | null, operator?: '&&' | '||' | null): ContextAction[];
68
- booleanFilterActions(column: Column, valueText: string | null, quickFilter?: QuickFilter | null, operator?: '&&' | '||' | null): ContextAction[];
69
- dateFilterActions(column: Column, snapshotValues: Set<unknown>, dateFilterFormatter: DateTimeColumnFormatter, previewFilterFormatter: DateTimeColumnFormatter, quickFilter?: QuickFilter | null, operator?: '&&' | '||' | null): ContextAction[];
70
- emptyStringFilterActions(column: Column, quickFilter?: QuickFilter, operator?: '&&' | '||' | null): ContextAction[];
71
- nullFilterActions(column: Column, quickFilter?: QuickFilter, operator?: '&&' | '||' | null): ContextAction[];
72
- sortByActions(column: Column, modelColumn: ModelIndex, columnSort: Sort | null): ContextAction[];
73
- additionalSortActions(column: Column, columnIndex: ModelIndex): ContextAction[];
74
- checkColumnSort(columnSort?: Sort | null, direction?: SortDirection, isAbs?: boolean): boolean;
64
+ dateFormatActions(column: DhType.Column): ContextAction[];
65
+ numberFormatActions(column: DhType.Column): ContextAction[] | null;
66
+ stringFilterActions(column: DhType.Column, snapshotValues: Set<string>, quickFilter?: QuickFilter, operator?: '&&' | '||' | null): ContextAction[];
67
+ numberFilterActions(column: DhType.Column, snapshotValues: Set<number>, quickFilter?: QuickFilter | null, operator?: '&&' | '||' | null): ContextAction[];
68
+ booleanFilterActions(column: DhType.Column, valueText: string | null, quickFilter?: QuickFilter | null, operator?: '&&' | '||' | null): ContextAction[];
69
+ dateFilterActions(column: DhType.Column, snapshotValues: Set<unknown>, dateFilterFormatter: DateTimeColumnFormatter, previewFilterFormatter: DateTimeColumnFormatter, quickFilter?: QuickFilter | null, operator?: '&&' | '||' | null): ContextAction[];
70
+ emptyStringFilterActions(column: DhType.Column, quickFilter?: QuickFilter, operator?: '&&' | '||' | null): ContextAction[];
71
+ nullFilterActions(column: DhType.Column, quickFilter?: QuickFilter, operator?: '&&' | '||' | null): ContextAction[];
72
+ sortByActions(column: DhType.Column, modelColumn: ModelIndex, columnSort: DhType.Sort | null): ContextAction[];
73
+ additionalSortActions(column: DhType.Column, columnIndex: ModelIndex): ContextAction[];
74
+ checkColumnSort(columnSort?: DhType.Sort | null, direction?: SortDirection, isAbs?: boolean): boolean;
75
75
  }
76
76
  export default IrisGridContextMenuHandler;
77
77
  //# sourceMappingURL=IrisGridContextMenuHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridContextMenuHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridContextMenuHandler.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridContextMenuHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridContextMenuHandler.tsx"],"names":[],"mappings":"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"}