@deephaven/iris-grid 1.7.2-beta.1 → 1.7.2-react-18-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/AdvancedFilterCreator.js +5 -7
  2. package/dist/AdvancedFilterCreator.js.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.js +6 -7
  4. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.js +1 -2
  6. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValueList.js +2 -3
  8. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  9. package/dist/ColumnHeaderGroup.js.map +1 -1
  10. package/dist/ColumnStatistics.d.ts +2 -2
  11. package/dist/ColumnStatistics.d.ts.map +1 -1
  12. package/dist/ColumnStatistics.js +2 -5
  13. package/dist/ColumnStatistics.js.map +1 -1
  14. package/dist/CommonTypes.js.map +1 -1
  15. package/dist/CrossColumnSearch.js +2 -4
  16. package/dist/CrossColumnSearch.js.map +1 -1
  17. package/dist/EmptyIrisGridModel.js.map +1 -1
  18. package/dist/FilterInputField.js +4 -5
  19. package/dist/FilterInputField.js.map +1 -1
  20. package/dist/GotoRow.js +4 -6
  21. package/dist/GotoRow.js.map +1 -1
  22. package/dist/IrisGrid.d.ts +33 -44
  23. package/dist/IrisGrid.d.ts.map +1 -1
  24. package/dist/IrisGrid.js +151 -170
  25. package/dist/IrisGrid.js.map +1 -1
  26. package/dist/IrisGridBottomBar.js.map +1 -1
  27. package/dist/IrisGridCacheUtils.js.map +1 -1
  28. package/dist/IrisGridCellOverflowModal.js +1 -2
  29. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  30. package/dist/IrisGridCellRendererUtils.js.map +1 -1
  31. package/dist/IrisGridCopyHandler.js +4 -6
  32. package/dist/IrisGridCopyHandler.js.map +1 -1
  33. package/dist/IrisGridDataBarCellRenderer.js.map +1 -1
  34. package/dist/IrisGridIcons.js.map +1 -1
  35. package/dist/IrisGridMetricCalculator.d.ts +1 -2
  36. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  37. package/dist/IrisGridMetricCalculator.js +3 -2
  38. package/dist/IrisGridMetricCalculator.js.map +1 -1
  39. package/dist/IrisGridModel.js.map +1 -1
  40. package/dist/IrisGridModelFactory.js.map +1 -1
  41. package/dist/IrisGridModelUpdater.js.map +1 -1
  42. package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
  43. package/dist/IrisGridPartitionSelector.js +6 -8
  44. package/dist/IrisGridPartitionSelector.js.map +1 -1
  45. package/dist/IrisGridPartitionedTableModel.js.map +1 -1
  46. package/dist/IrisGridProxyModel.js +6 -7
  47. package/dist/IrisGridProxyModel.js.map +1 -1
  48. package/dist/IrisGridRenderer.js +0 -1
  49. package/dist/IrisGridRenderer.js.map +1 -1
  50. package/dist/IrisGridShortcuts.js.map +1 -1
  51. package/dist/IrisGridTableModel.js +1 -2
  52. package/dist/IrisGridTableModel.js.map +1 -1
  53. package/dist/IrisGridTableModelTemplate.d.ts +1 -1
  54. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  55. package/dist/IrisGridTableModelTemplate.js +57 -61
  56. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  57. package/dist/IrisGridTestUtils.js.map +1 -1
  58. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  59. package/dist/IrisGridTheme.js.map +1 -1
  60. package/dist/IrisGridThemeProvider.js.map +1 -1
  61. package/dist/IrisGridTreeTableModel.js +12 -13
  62. package/dist/IrisGridTreeTableModel.js.map +1 -1
  63. package/dist/IrisGridUtils.js +56 -56
  64. package/dist/IrisGridUtils.js.map +1 -1
  65. package/dist/LazyIrisGrid.d.ts +55 -78
  66. package/dist/LazyIrisGrid.d.ts.map +1 -1
  67. package/dist/LazyIrisGrid.js.map +1 -1
  68. package/dist/MissingKeyError.js.map +1 -1
  69. package/dist/MissingPartitionError.js.map +1 -1
  70. package/dist/NoPastePermissionModal.js +1 -2
  71. package/dist/NoPastePermissionModal.js.map +1 -1
  72. package/dist/PartitionedGridModel.js.map +1 -1
  73. package/dist/PendingDataBottomBar.js +1 -2
  74. package/dist/PendingDataBottomBar.js.map +1 -1
  75. package/dist/ToastBottomBar.js.map +1 -1
  76. package/dist/declaration.d.js.map +1 -1
  77. package/dist/format-context-menus/CustomFormatAction.js +1 -2
  78. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  79. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  80. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  81. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  82. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  83. package/dist/format-context-menus/TextAlignmentFormatContextMenu.js +6 -4
  84. package/dist/format-context-menus/TextAlignmentFormatContextMenu.js.map +1 -1
  85. package/dist/format-context-menus/index.js.map +1 -1
  86. package/dist/index.js.map +1 -1
  87. package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
  88. package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
  89. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  90. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  91. package/dist/key-handlers/index.js.map +1 -1
  92. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  93. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  94. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.d.ts.map +1 -1
  95. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +5 -2
  96. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  97. package/dist/mousehandlers/IrisGridContextMenuHandler.js +1 -2
  98. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  99. package/dist/mousehandlers/IrisGridCopyCellMouseHandler.js.map +1 -1
  100. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  101. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  102. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
  103. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
  104. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  105. package/dist/mousehandlers/IrisGridTokenMouseHandler.js +1 -3
  106. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
  107. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  108. package/dist/mousehandlers/index.js.map +1 -1
  109. package/dist/sidebar/AdvancedSettings.js.map +1 -1
  110. package/dist/sidebar/AdvancedSettingsMenu.d.ts +1 -1
  111. package/dist/sidebar/AdvancedSettingsMenu.d.ts.map +1 -1
  112. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  113. package/dist/sidebar/AdvancedSettingsType.js +3 -3
  114. package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
  115. package/dist/sidebar/ChartBuilder.d.ts +2 -2
  116. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  117. package/dist/sidebar/ChartBuilder.js +1 -2
  118. package/dist/sidebar/ChartBuilder.js.map +1 -1
  119. package/dist/sidebar/CustomColumnBuilder.js +3 -5
  120. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  121. package/dist/sidebar/CustomColumnInput.js +1 -2
  122. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  123. package/dist/sidebar/DownloadServiceWorkerUtils.js +1 -1
  124. package/dist/sidebar/DownloadServiceWorkerUtils.js.map +1 -1
  125. package/dist/sidebar/InputEditor.js +8 -9
  126. package/dist/sidebar/InputEditor.js.map +1 -1
  127. package/dist/sidebar/OptionType.js +3 -3
  128. package/dist/sidebar/OptionType.js.map +1 -1
  129. package/dist/sidebar/RollupRows.js +7 -9
  130. package/dist/sidebar/RollupRows.js.map +1 -1
  131. package/dist/sidebar/SelectDistinctBuilder.js +1 -2
  132. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  133. package/dist/sidebar/TableCsvExporter.js +5 -7
  134. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  135. package/dist/sidebar/TableSaver.js +9 -10
  136. package/dist/sidebar/TableSaver.js.map +1 -1
  137. package/dist/sidebar/aggregations/AggregationEdit.js +4 -5
  138. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  139. package/dist/sidebar/aggregations/AggregationOperation.js +3 -3
  140. package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
  141. package/dist/sidebar/aggregations/AggregationUtils.js +0 -1
  142. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  143. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  144. package/dist/sidebar/aggregations/Aggregations.js +2 -4
  145. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  146. package/dist/sidebar/aggregations/index.js.map +1 -1
  147. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
  148. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +1 -3
  149. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  150. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  151. package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -3
  152. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  153. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +1 -2
  154. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  155. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  156. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +1 -2
  157. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  158. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +21 -21
  159. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  160. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
  161. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +1 -3
  162. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  163. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts.map +1 -1
  164. package/dist/sidebar/conditional-formatting/StyleEditor.js +2 -3
  165. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  166. package/dist/sidebar/icons/BarIcon.js +1 -2
  167. package/dist/sidebar/icons/BarIcon.js.map +1 -1
  168. package/dist/sidebar/icons/FormatColumnWhereIcon.js +1 -2
  169. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
  170. package/dist/sidebar/icons/FormatRowWhereIcon.js +1 -2
  171. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
  172. package/dist/sidebar/icons/HistogramIcon.js +1 -2
  173. package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
  174. package/dist/sidebar/icons/LineIcon.js +1 -2
  175. package/dist/sidebar/icons/LineIcon.js.map +1 -1
  176. package/dist/sidebar/icons/PieIcon.js +1 -2
  177. package/dist/sidebar/icons/PieIcon.js.map +1 -1
  178. package/dist/sidebar/icons/ScatterIcon.js +1 -2
  179. package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
  180. package/dist/sidebar/icons/index.js.map +1 -1
  181. package/dist/sidebar/index.js.map +1 -1
  182. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +2 -2
  183. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -1
  184. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +34 -36
  185. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  186. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +3 -3
  187. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  188. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +3 -5
  189. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
  190. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts.map +1 -1
  191. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +2 -4
  192. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
  193. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
  194. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +4 -4
  195. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
  196. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js +3 -6
  197. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -1
  198. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
  199. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +1 -2
  200. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
  201. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
  202. package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -1
  203. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +1 -2
  204. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -1
  205. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  206. package/package.json +17 -18
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTestUtils.js","names":["Formatter","IrisGridProxyModel","IrisGridTestUtils","valueForCell","rowIndex","columnIndex","formatValue","value","concat","undefined","constructor","dh","_defineProperty","makeColumn","name","type","arguments","length","DEFAULT_TYPE","index","Column","makeRollupTableConfig","RollupTableConfig","makeColumns","count","prefix","columns","i","push","makeUserColumnWidths","userColumnWidths","Map","set","toString","makeRow","row","Row","get","jest","fn","column","makeFilter","FilterCondition","makeSort","Sort","makeTable","size","sort","layoutHints","table","Table","copy","Promise","resolve","freeze","makeTreeTable","aggregatedColumns","groupedColumns","TreeTable","makeInputTable","keyColumns","InputTable","makeSubscription","TableViewportSubscription","makeModel","formatter","inputTable"],"sources":["../src/IrisGridTestUtils.ts"],"sourcesContent":["import { type GridRangeIndex, type ModelSizeMap } from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport IrisGridProxyModel from './IrisGridProxyModel';\n\nclass IrisGridTestUtils {\n static DEFAULT_TYPE = 'java.lang.String';\n\n static valueForCell(\n rowIndex: GridRangeIndex,\n columnIndex: GridRangeIndex,\n formatValue?: boolean\n ): string {\n let value = `${rowIndex},${columnIndex}`;\n if (formatValue !== undefined && formatValue) {\n value = `(${value})`;\n }\n return value;\n }\n\n private dh: typeof DhType;\n\n constructor(dh: typeof DhType) {\n this.dh = dh;\n }\n\n makeColumn(\n name?: string,\n type: string = IrisGridTestUtils.DEFAULT_TYPE,\n index = 0\n ): DhType.Column {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Column({ index, name, type });\n }\n\n makeRollupTableConfig(): DhType.RollupConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).RollupTableConfig();\n }\n\n makeColumns(count = 5, prefix = ''): DhType.Column[] {\n const columns = [];\n for (let i = 0; i < count; i += 1) {\n columns.push(\n this.makeColumn(`${prefix}${i}`, IrisGridTestUtils.DEFAULT_TYPE, i)\n );\n }\n return columns;\n }\n\n static makeUserColumnWidths(count = 5): ModelSizeMap {\n const userColumnWidths = new Map();\n for (let i = 0; i < count; i += 1) {\n userColumnWidths.set(i.toString(), 100);\n }\n return userColumnWidths;\n }\n\n makeRow(i: number): DhType.Row {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const row = new (this.dh as any).Row({ index: i, name: `${i}` });\n\n row.get = jest.fn(column =>\n IrisGridTestUtils.valueForCell(i, column.index)\n );\n\n return row;\n }\n\n makeFilter(): DhType.FilterCondition {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).FilterCondition();\n }\n\n makeSort(): DhType.Sort {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Sort();\n }\n\n makeTable({\n columns = this.makeColumns(),\n size = 1000000000,\n sort = [],\n layoutHints = {},\n }: {\n columns?: DhType.Column[];\n size?: number;\n sort?: readonly DhType.Sort[];\n layoutHints?: Partial<DhType.LayoutHints>;\n } = {}): DhType.Table {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).Table({ columns, size, sort });\n table.copy = jest.fn(() => Promise.resolve(table));\n table.freeze = jest.fn(() => Promise.resolve(table));\n table.layoutHints = layoutHints;\n return table;\n }\n\n makeTreeTable(\n columns = this.makeColumns(),\n aggregatedColumns: DhType.Column[] = [],\n groupedColumns: DhType.Column[] = [],\n size = 1000000000,\n sort = [],\n layoutHints?: Partial<DhType.LayoutHints>\n ): DhType.TreeTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).TreeTable({\n columns,\n aggregatedColumns,\n groupedColumns,\n size,\n sort,\n layoutHints,\n });\n table.copy = jest.fn(() => Promise.resolve(table));\n return table;\n }\n\n makeInputTable(keyColumns: DhType.Column[] = []): DhType.InputTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).InputTable(keyColumns);\n }\n\n makeSubscription(table = this.makeTable()): DhType.TableViewportSubscription {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).TableViewportSubscription({ table });\n }\n\n makeModel(\n table = this.makeTable(),\n formatter: Formatter | null = null,\n inputTable: DhType.InputTable | null = null\n ): IrisGridProxyModel {\n const { dh } = this;\n return new IrisGridProxyModel(\n dh,\n table,\n formatter ?? new Formatter(dh),\n inputTable\n );\n }\n}\n\nexport default IrisGridTestUtils;\n"],"mappings":";;;AAEA,SAASA,SAAS,QAAQ,wBAAwB;AAAC,OAC5CC,kBAAkB;AAEzB,MAAMC,iBAAiB,CAAC;EAGtB,OAAOC,YAAYA,CACjBC,QAAwB,EACxBC,WAA2B,EAC3BC,WAAqB,EACb;IACR,IAAIC,KAAK,MAAAC,MAAA,CAAMJ,QAAQ,OAAAI,MAAA,CAAIH,WAAW,CAAE;IACxC,IAAIC,WAAW,KAAKG,SAAS,IAAIH,WAAW,EAAE;MAC5CC,KAAK,OAAAC,MAAA,CAAOD,KAAK,MAAG;IACtB;IACA,OAAOA,KAAK;EACd;EAIAG,WAAWA,CAACC,EAAiB,EAAE;IAAAC,eAAA;IAC7B,IAAI,CAACD,EAAE,GAAGA,EAAE;EACd;EAEAE,UAAUA,CACRC,IAAa,EAGE;IAAA,IAFfC,IAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAGd,iBAAiB,CAACgB,YAAY;IAAA,IAC7CC,KAAK,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,CAAC;IAET;IACA,OAAO,IAAK,IAAI,CAACL,EAAE,CAASS,MAAM,CAAC;MAAED,KAAK;MAAEL,IAAI;MAAEC;IAAK,CAAC,CAAC;EAC3D;EAEAM,qBAAqBA,CAAA,EAAwB;IAC3C;IACA,OAAO,IAAK,IAAI,CAACV,EAAE,CAASW,iBAAiB,CAAC,CAAC;EACjD;EAEAC,WAAWA,CAAA,EAA0C;IAAA,IAAzCC,KAAK,GAAAR,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,CAAC;IAAA,IAAES,MAAM,GAAAT,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,EAAE;IAChC,IAAMU,OAAO,GAAG,EAAE;IAClB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,EAAEG,CAAC,IAAI,CAAC,EAAE;MACjCD,OAAO,CAACE,IAAI,CACV,IAAI,CAACf,UAAU,IAAAL,MAAA,CAAIiB,MAAM,EAAAjB,MAAA,CAAGmB,CAAC,GAAIzB,iBAAiB,CAACgB,YAAY,EAAES,CAAC,CACpE,CAAC;IACH;IACA,OAAOD,OAAO;EAChB;EAEA,OAAOG,oBAAoBA,CAAA,EAA0B;IAAA,IAAzBL,KAAK,GAAAR,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,CAAC;IACnC,IAAMc,gBAAgB,GAAG,IAAIC,GAAG,CAAC,CAAC;IAClC,KAAK,IAAIJ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,KAAK,EAAEG,CAAC,IAAI,CAAC,EAAE;MACjCG,gBAAgB,CAACE,GAAG,CAACL,CAAC,CAACM,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IACzC;IACA,OAAOH,gBAAgB;EACzB;EAEAI,OAAOA,CAACP,CAAS,EAAc;IAC7B;IACA,IAAMQ,GAAG,GAAG,IAAK,IAAI,CAACxB,EAAE,CAASyB,GAAG,CAAC;MAAEjB,KAAK,EAAEQ,CAAC;MAAEb,IAAI,KAAAN,MAAA,CAAKmB,CAAC;IAAG,CAAC,CAAC;IAEhEQ,GAAG,CAACE,GAAG,GAAGC,IAAI,CAACC,EAAE,CAACC,MAAM,IACtBtC,iBAAiB,CAACC,YAAY,CAACwB,CAAC,EAAEa,MAAM,CAACrB,KAAK,CAChD,CAAC;IAED,OAAOgB,GAAG;EACZ;EAEAM,UAAUA,CAAA,EAA2B;IACnC;IACA,OAAO,IAAK,IAAI,CAAC9B,EAAE,CAAS+B,eAAe,CAAC,CAAC;EAC/C;EAEAC,QAAQA,CAAA,EAAgB;IACtB;IACA,OAAO,IAAK,IAAI,CAAChC,EAAE,CAASiC,IAAI,CAAC,CAAC;EACpC;EAEAC,SAASA,CAAA,EAUa;IAAA,IAVZ;MACRnB,OAAO,GAAG,IAAI,CAACH,WAAW,CAAC,CAAC;MAC5BuB,IAAI,GAAG,UAAU;MACjBC,IAAI,GAAG,EAAE;MACTC,WAAW,GAAG,CAAC;IAMjB,CAAC,GAAAhC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,CAAC,CAAC;IACJ;IACA,IAAMiC,KAAK,GAAG,IAAK,IAAI,CAACtC,EAAE,CAASuC,KAAK,CAAC;MAAExB,OAAO;MAAEoB,IAAI;MAAEC;IAAK,CAAC,CAAC;IACjEE,KAAK,CAACE,IAAI,GAAGb,IAAI,CAACC,EAAE,CAAC,MAAMa,OAAO,CAACC,OAAO,CAACJ,KAAK,CAAC,CAAC;IAClDA,KAAK,CAACK,MAAM,GAAGhB,IAAI,CAACC,EAAE,CAAC,MAAMa,OAAO,CAACC,OAAO,CAACJ,KAAK,CAAC,CAAC;IACpDA,KAAK,CAACD,WAAW,GAAGA,WAAW;IAC/B,OAAOC,KAAK;EACd;EAEAM,aAAaA,CAAA,EAOO;IAAA,IANlB7B,OAAO,GAAAV,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI,CAACO,WAAW,CAAC,CAAC;IAAA,IAC5BiC,iBAAkC,GAAAxC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,EAAE;IAAA,IACvCyC,cAA+B,GAAAzC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,EAAE;IAAA,IACpC8B,IAAI,GAAA9B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,UAAU;IAAA,IACjB+B,IAAI,GAAA/B,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,EAAE;IAAA,IACTgC,WAAyC,GAAAhC,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAP,SAAA;IAEzC;IACA,IAAMwC,KAAK,GAAG,IAAK,IAAI,CAACtC,EAAE,CAAS+C,SAAS,CAAC;MAC3ChC,OAAO;MACP8B,iBAAiB;MACjBC,cAAc;MACdX,IAAI;MACJC,IAAI;MACJC;IACF,CAAC,CAAC;IACFC,KAAK,CAACE,IAAI,GAAGb,IAAI,CAACC,EAAE,CAAC,MAAMa,OAAO,CAACC,OAAO,CAACJ,KAAK,CAAC,CAAC;IAClD,OAAOA,KAAK;EACd;EAEAU,cAAcA,CAAA,EAAsD;IAAA,IAArDC,UAA2B,GAAA5C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,EAAE;IAC7C;IACA,OAAO,IAAK,IAAI,CAACL,EAAE,CAASkD,UAAU,CAACD,UAAU,CAAC;EACpD;EAEAE,gBAAgBA,CAAA,EAA6D;IAAA,IAA5Db,KAAK,GAAAjC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI,CAAC6B,SAAS,CAAC,CAAC;IACvC;IACA,OAAO,IAAK,IAAI,CAAClC,EAAE,CAASoD,yBAAyB,CAAC;MAAEd;IAAM,CAAC,CAAC;EAClE;EAEAe,SAASA,CAAA,EAIa;IAAA,IAHpBf,KAAK,GAAAjC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI,CAAC6B,SAAS,CAAC,CAAC;IAAA,IACxBoB,SAA2B,GAAAjD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI;IAAA,IAClCkD,UAAoC,GAAAlD,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAP,SAAA,GAAAO,SAAA,MAAG,IAAI;IAE3C,IAAM;MAAEL;IAAG,CAAC,GAAG,IAAI;IACnB,OAAO,IAAIV,kBAAkB,CAC3BU,EAAE,EACFsC,KAAK,EACLgB,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,IAAIjE,SAAS,CAACW,EAAE,CAAC,EAC9BuD,UACF,CAAC;EACH;AACF;AAACtD,eAAA,CAzIKV,iBAAiB,kBACC,kBAAkB;AA0I1C,eAAeA,iBAAiB"}
1
+ {"version":3,"file":"IrisGridTestUtils.js","names":["Formatter","IrisGridProxyModel","IrisGridTestUtils","valueForCell","rowIndex","columnIndex","formatValue","value","concat","undefined","constructor","dh","_defineProperty","makeColumn","name","type","arguments","length","DEFAULT_TYPE","index","Column","makeRollupTableConfig","RollupTableConfig","makeColumns","count","prefix","columns","i","push","makeUserColumnWidths","userColumnWidths","Map","set","toString","makeRow","row","Row","get","jest","fn","column","makeFilter","FilterCondition","makeSort","Sort","makeTable","size","sort","layoutHints","table","Table","copy","Promise","resolve","freeze","makeTreeTable","aggregatedColumns","groupedColumns","TreeTable","makeInputTable","keyColumns","InputTable","makeSubscription","TableViewportSubscription","makeModel","formatter","inputTable"],"sources":["../src/IrisGridTestUtils.ts"],"sourcesContent":["import { type GridRangeIndex, type ModelSizeMap } from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport IrisGridProxyModel from './IrisGridProxyModel';\n\nclass IrisGridTestUtils {\n static DEFAULT_TYPE = 'java.lang.String';\n\n static valueForCell(\n rowIndex: GridRangeIndex,\n columnIndex: GridRangeIndex,\n formatValue?: boolean\n ): string {\n let value = `${rowIndex},${columnIndex}`;\n if (formatValue !== undefined && formatValue) {\n value = `(${value})`;\n }\n return value;\n }\n\n private dh: typeof DhType;\n\n constructor(dh: typeof DhType) {\n this.dh = dh;\n }\n\n makeColumn(\n name?: string,\n type: string = IrisGridTestUtils.DEFAULT_TYPE,\n index = 0\n ): DhType.Column {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Column({ index, name, type });\n }\n\n makeRollupTableConfig(): DhType.RollupConfig {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).RollupTableConfig();\n }\n\n makeColumns(count = 5, prefix = ''): DhType.Column[] {\n const columns = [];\n for (let i = 0; i < count; i += 1) {\n columns.push(\n this.makeColumn(`${prefix}${i}`, IrisGridTestUtils.DEFAULT_TYPE, i)\n );\n }\n return columns;\n }\n\n static makeUserColumnWidths(count = 5): ModelSizeMap {\n const userColumnWidths = new Map();\n for (let i = 0; i < count; i += 1) {\n userColumnWidths.set(i.toString(), 100);\n }\n return userColumnWidths;\n }\n\n makeRow(i: number): DhType.Row {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const row = new (this.dh as any).Row({ index: i, name: `${i}` });\n\n row.get = jest.fn(column =>\n IrisGridTestUtils.valueForCell(i, column.index)\n );\n\n return row;\n }\n\n makeFilter(): DhType.FilterCondition {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).FilterCondition();\n }\n\n makeSort(): DhType.Sort {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).Sort();\n }\n\n makeTable({\n columns = this.makeColumns(),\n size = 1000000000,\n sort = [],\n layoutHints = {},\n }: {\n columns?: DhType.Column[];\n size?: number;\n sort?: readonly DhType.Sort[];\n layoutHints?: Partial<DhType.LayoutHints>;\n } = {}): DhType.Table {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).Table({ columns, size, sort });\n table.copy = jest.fn(() => Promise.resolve(table));\n table.freeze = jest.fn(() => Promise.resolve(table));\n table.layoutHints = layoutHints;\n return table;\n }\n\n makeTreeTable(\n columns = this.makeColumns(),\n aggregatedColumns: DhType.Column[] = [],\n groupedColumns: DhType.Column[] = [],\n size = 1000000000,\n sort = [],\n layoutHints?: Partial<DhType.LayoutHints>\n ): DhType.TreeTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const table = new (this.dh as any).TreeTable({\n columns,\n aggregatedColumns,\n groupedColumns,\n size,\n sort,\n layoutHints,\n });\n table.copy = jest.fn(() => Promise.resolve(table));\n return table;\n }\n\n makeInputTable(keyColumns: DhType.Column[] = []): DhType.InputTable {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).InputTable(keyColumns);\n }\n\n makeSubscription(table = this.makeTable()): DhType.TableViewportSubscription {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new (this.dh as any).TableViewportSubscription({ table });\n }\n\n makeModel(\n table = this.makeTable(),\n formatter: Formatter | null = null,\n inputTable: DhType.InputTable | null = null\n ): IrisGridProxyModel {\n const { dh } = this;\n return new IrisGridProxyModel(\n dh,\n table,\n formatter ?? new Formatter(dh),\n inputTable\n );\n }\n}\n\nexport default IrisGridTestUtils;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTextCellRenderer.js","names":["getOrThrow","GridUtils","TextCellRenderer","TableUtils","IrisGridCellRendererUtils","IrisGridTextCellRenderer","drawCellContent","context","state","column","row","_model$columns$modelC","metrics","model","modelColumns","modelRows","modelRow","modelColumn","get","undefined","value","valueForCell","isTextType","columns","type","originalFont","font","concat","getTextRenderMetrics","textMetrics","mouseX","mouseY","theme","mouseColumn","mouseRow","getGridPointFromXY","left","getCellOverflowButtonPosition","shouldRenderOverflowButton","width","gridX","x","NULL_POSITION","top","height","rowHeight","columnWidth","getCellInfoFromXY","gridWidth","verticalBarWidth","cellHorizontalPadding","iconSize","right","Math","min","buttonLeft","buttonTop","gridY","_model$textForCell","isStringType","text","textForCell","textWidth","fontWidthLower","fontWidthsLower","fontWidthUpper","fontWidthsUpper","save","truncatedText","getCachedTruncatedString","truncationCharForCell","restore","drawTreeMarker","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridTextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n type BoxCoordinates,\n type Coordinate,\n getOrThrow,\n type GridMetrics,\n GridUtils,\n TextCellRenderer,\n type VisibleIndex,\n} from '@deephaven/grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { type IrisGridRenderState } from './IrisGridRenderer';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\nimport type { IrisGridThemeType } from './IrisGridTheme';\n\nclass IrisGridTextCellRenderer extends TextCellRenderer {\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model } = state;\n const { modelColumns, modelRows } = metrics;\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) {\n return;\n }\n const value = model.valueForCell(modelColumn, modelRow);\n if (TableUtils.isTextType(model.columns[modelColumn]?.type)) {\n if (value === null || value === '') {\n const originalFont = context.font;\n context.font = `italic ${originalFont}`;\n super.drawCellContent(context, state, column, row);\n context.font = originalFont;\n return;\n }\n }\n super.drawCellContent(context, state, column, row);\n }\n\n // This will shrink the size the text may take when the overflow button is rendered\n // The text will truncate to a smaller width and won't overlap the button\n getTextRenderMetrics(\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): {\n width: number;\n x: Coordinate;\n y: Coordinate;\n } {\n const textMetrics = GridUtils.getTextRenderMetrics(state, column, row);\n\n const { mouseX, mouseY, metrics, theme } = state;\n\n if (mouseX == null || mouseY == null) {\n return textMetrics;\n }\n\n const { column: mouseColumn, row: mouseRow } = GridUtils.getGridPointFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (column === mouseColumn && row === mouseRow) {\n const { left } = this.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n if (this.shouldRenderOverflowButton(state) && left != null) {\n textMetrics.width = left - metrics.gridX - textMetrics.x;\n }\n }\n return textMetrics;\n }\n\n getCellOverflowButtonPosition(\n mouseX: Coordinate | null,\n mouseY: Coordinate | null,\n metrics: GridMetrics | undefined,\n theme: IrisGridThemeType\n ): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n const NULL_POSITION = { left: null, top: null, width: null, height: null };\n if (mouseX == null || mouseY == null || metrics == null) {\n return NULL_POSITION;\n }\n const { rowHeight, columnWidth, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (left == null || columnWidth == null || top == null) {\n return NULL_POSITION;\n }\n\n const { width: gridWidth, verticalBarWidth } = metrics;\n const { cellHorizontalPadding, iconSize } = theme;\n\n const width = iconSize + 2 * cellHorizontalPadding;\n const height = rowHeight;\n // Right edge of column or of visible grid, whichever is smaller\n const right = Math.min(\n metrics.gridX + left + columnWidth,\n gridWidth - verticalBarWidth\n );\n const buttonLeft = right - width;\n const buttonTop = metrics.gridY + top;\n\n return { left: buttonLeft, top: buttonTop, width, height };\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n const { context, mouseX, mouseY, metrics, model, theme } = state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n const { row, column, modelRow, modelColumn } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (\n row == null ||\n column == null ||\n modelRow == null ||\n modelColumn == null ||\n !TableUtils.isStringType(model.columns[modelColumn].type)\n ) {\n return false;\n }\n\n const text = model.textForCell(modelColumn, modelRow) ?? '';\n const { width: textWidth } = GridUtils.getTextRenderMetrics(\n state,\n column,\n row\n );\n const fontWidthLower = metrics.fontWidthsLower.get(theme.font);\n const fontWidthUpper = metrics.fontWidthsUpper.get(theme.font);\n\n context.save();\n context.font = theme.font;\n\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n model.truncationCharForCell(modelColumn, modelRow)\n );\n context.restore();\n\n return text !== '' && truncatedText !== text;\n }\n\n drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n IrisGridCellRendererUtils.drawTreeMarker(\n context,\n state,\n columnX,\n rowY,\n treeBox,\n color,\n isExpanded\n );\n }\n}\n\nexport default IrisGridTextCellRenderer;\n"],"mappings":"AAAA;AACA,SAGEA,UAAU,EAEVC,SAAS,EACTC,gBAAgB,QAEX,iBAAiB;AACxB,SAASC,UAAU,QAAQ,wBAAwB;AAAC,OAE7CC,yBAAyB;AAGhC,MAAMC,wBAAwB,SAASH,gBAAgB,CAAC;EACtDI,eAAeA,CACbC,OAAiC,EACjCC,KAA0B,EAC1BC,MAAoB,EACpBC,GAAiB,EACX;IAAA,IAAAC,qBAAA;IACN,IAAM;MAAEC,OAAO;MAAEC;IAAM,CAAC,GAAGL,KAAK;IAChC,IAAM;MAAEM,YAAY;MAAEC;IAAU,CAAC,GAAGH,OAAO;IAC3C,IAAMI,QAAQ,GAAGhB,UAAU,CAACe,SAAS,EAAEL,GAAG,CAAC;IAC3C,IAAMO,WAAW,GAAGH,YAAY,CAACI,GAAG,CAACT,MAAM,CAAC;IAC5C,IAAIQ,WAAW,KAAKE,SAAS,EAAE;MAC7B;IACF;IACA,IAAMC,KAAK,GAAGP,KAAK,CAACQ,YAAY,CAACJ,WAAW,EAAED,QAAQ,CAAC;IACvD,IAAIb,UAAU,CAACmB,UAAU,EAAAX,qBAAA,GAACE,KAAK,CAACU,OAAO,CAACN,WAAW,CAAC,cAAAN,qBAAA,uBAA1BA,qBAAA,CAA4Ba,IAAI,CAAC,EAAE;MAC3D,IAAIJ,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;QAClC,IAAMK,YAAY,GAAGlB,OAAO,CAACmB,IAAI;QACjCnB,OAAO,CAACmB,IAAI,aAAAC,MAAA,CAAaF,YAAY,CAAE;QACvC,KAAK,CAACnB,eAAe,CAACC,OAAO,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,CAAC;QAClDH,OAAO,CAACmB,IAAI,GAAGD,YAAY;QAC3B;MACF;IACF;IACA,KAAK,CAACnB,eAAe,CAACC,OAAO,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,CAAC;EACpD;;EAEA;EACA;EACAkB,oBAAoBA,CAClBpB,KAA0B,EAC1BC,MAAoB,EACpBC,GAAiB,EAKjB;IACA,IAAMmB,WAAW,GAAG5B,SAAS,CAAC2B,oBAAoB,CAACpB,KAAK,EAAEC,MAAM,EAAEC,GAAG,CAAC;IAEtE,IAAM;MAAEoB,MAAM;MAAEC,MAAM;MAAEnB,OAAO;MAAEoB;IAAM,CAAC,GAAGxB,KAAK;IAEhD,IAAIsB,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;MACpC,OAAOF,WAAW;IACpB;IAEA,IAAM;MAAEpB,MAAM,EAAEwB,WAAW;MAAEvB,GAAG,EAAEwB;IAAS,CAAC,GAAGjC,SAAS,CAACkC,kBAAkB,CACzEL,MAAM,EACNC,MAAM,EACNnB,OACF,CAAC;IAED,IAAIH,MAAM,KAAKwB,WAAW,IAAIvB,GAAG,KAAKwB,QAAQ,EAAE;MAC9C,IAAM;QAAEE;MAAK,CAAC,GAAG,IAAI,CAACC,6BAA6B,CACjDP,MAAM,EACNC,MAAM,EACNnB,OAAO,EACPoB,KACF,CAAC;MACD,IAAI,IAAI,CAACM,0BAA0B,CAAC9B,KAAK,CAAC,IAAI4B,IAAI,IAAI,IAAI,EAAE;QAC1DP,WAAW,CAACU,KAAK,GAAGH,IAAI,GAAGxB,OAAO,CAAC4B,KAAK,GAAGX,WAAW,CAACY,CAAC;MAC1D;IACF;IACA,OAAOZ,WAAW;EACpB;EAEAQ,6BAA6BA,CAC3BP,MAAyB,EACzBC,MAAyB,EACzBnB,OAAgC,EAChCoB,KAAwB,EAMxB;IACA,IAAMU,aAAa,GAAG;MAAEN,IAAI,EAAE,IAAI;MAAEO,GAAG,EAAE,IAAI;MAAEJ,KAAK,EAAE,IAAI;MAAEK,MAAM,EAAE;IAAK,CAAC;IAC1E,IAAId,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,IAAInB,OAAO,IAAI,IAAI,EAAE;MACvD,OAAO8B,aAAa;IACtB;IACA,IAAM;MAAEG,SAAS;MAAEC,WAAW;MAAEV,IAAI;MAAEO;IAAI,CAAC,GAAG1C,SAAS,CAAC8C,iBAAiB,CACvEjB,MAAM,EACNC,MAAM,EACNnB,OACF,CAAC;IAED,IAAIwB,IAAI,IAAI,IAAI,IAAIU,WAAW,IAAI,IAAI,IAAIH,GAAG,IAAI,IAAI,EAAE;MACtD,OAAOD,aAAa;IACtB;IAEA,IAAM;MAAEH,KAAK,EAAES,SAAS;MAAEC;IAAiB,CAAC,GAAGrC,OAAO;IACtD,IAAM;MAAEsC,qBAAqB;MAAEC;IAAS,CAAC,GAAGnB,KAAK;IAEjD,IAAMO,KAAK,GAAGY,QAAQ,GAAG,CAAC,GAAGD,qBAAqB;IAClD,IAAMN,MAAM,GAAGC,SAAS;IACxB;IACA,IAAMO,KAAK,GAAGC,IAAI,CAACC,GAAG,CACpB1C,OAAO,CAAC4B,KAAK,GAAGJ,IAAI,GAAGU,WAAW,EAClCE,SAAS,GAAGC,gBACd,CAAC;IACD,IAAMM,UAAU,GAAGH,KAAK,GAAGb,KAAK;IAChC,IAAMiB,SAAS,GAAG5C,OAAO,CAAC6C,KAAK,GAAGd,GAAG;IAErC,OAAO;MAAEP,IAAI,EAAEmB,UAAU;MAAEZ,GAAG,EAAEa,SAAS;MAAEjB,KAAK;MAAEK;IAAO,CAAC;EAC5D;EAEAN,0BAA0BA,CAAC9B,KAA0B,EAAW;IAAA,IAAAkD,kBAAA;IAC9D,IAAM;MAAEnD,OAAO;MAAEuB,MAAM;MAAEC,MAAM;MAAEnB,OAAO;MAAEC,KAAK;MAAEmB;IAAM,CAAC,GAAGxB,KAAK;IAChE,IAAIsB,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;MACpC,OAAO,KAAK;IACd;IAEA,IAAM;MAAErB,GAAG;MAAED,MAAM;MAAEO,QAAQ;MAAEC;IAAY,CAAC,GAAGhB,SAAS,CAAC8C,iBAAiB,CACxEjB,MAAM,EACNC,MAAM,EACNnB,OACF,CAAC;IAED,IACEF,GAAG,IAAI,IAAI,IACXD,MAAM,IAAI,IAAI,IACdO,QAAQ,IAAI,IAAI,IAChBC,WAAW,IAAI,IAAI,IACnB,CAACd,UAAU,CAACwD,YAAY,CAAC9C,KAAK,CAACU,OAAO,CAACN,WAAW,CAAC,CAACO,IAAI,CAAC,EACzD;MACA,OAAO,KAAK;IACd;IAEA,IAAMoC,IAAI,IAAAF,kBAAA,GAAG7C,KAAK,CAACgD,WAAW,CAAC5C,WAAW,EAAED,QAAQ,CAAC,cAAA0C,kBAAA,cAAAA,kBAAA,GAAI,EAAE;IAC3D,IAAM;MAAEnB,KAAK,EAAEuB;IAAU,CAAC,GAAG7D,SAAS,CAAC2B,oBAAoB,CACzDpB,KAAK,EACLC,MAAM,EACNC,GACF,CAAC;IACD,IAAMqD,cAAc,GAAGnD,OAAO,CAACoD,eAAe,CAAC9C,GAAG,CAACc,KAAK,CAACN,IAAI,CAAC;IAC9D,IAAMuC,cAAc,GAAGrD,OAAO,CAACsD,eAAe,CAAChD,GAAG,CAACc,KAAK,CAACN,IAAI,CAAC;IAE9DnB,OAAO,CAAC4D,IAAI,CAAC,CAAC;IACd5D,OAAO,CAACmB,IAAI,GAAGM,KAAK,CAACN,IAAI;IAEzB,IAAM0C,aAAa,GAAG,IAAI,CAACC,wBAAwB,CACjD9D,OAAO,EACPqD,IAAI,EACJE,SAAS,EACTC,cAAc,EACdE,cAAc,EACdpD,KAAK,CAACyD,qBAAqB,CAACrD,WAAW,EAAED,QAAQ,CACnD,CAAC;IACDT,OAAO,CAACgE,OAAO,CAAC,CAAC;IAEjB,OAAOX,IAAI,KAAK,EAAE,IAAIQ,aAAa,KAAKR,IAAI;EAC9C;EAEAY,cAAcA,CACZjE,OAAiC,EACjCC,KAA0B,EAC1BiE,OAAmB,EACnBC,IAAgB,EAChBC,OAAuB,EACvBC,KAAa,EACbC,UAAmB,EACb;IACNzE,yBAAyB,CAACoE,cAAc,CACtCjE,OAAO,EACPC,KAAK,EACLiE,OAAO,EACPC,IAAI,EACJC,OAAO,EACPC,KAAK,EACLC,UACF,CAAC;EACH;AACF;AAEA,eAAexE,wBAAwB"}
1
+ {"version":3,"file":"IrisGridTextCellRenderer.js","names":["getOrThrow","GridUtils","TextCellRenderer","TableUtils","IrisGridCellRendererUtils","IrisGridTextCellRenderer","drawCellContent","context","state","column","row","_model$columns$modelC","metrics","model","modelColumns","modelRows","modelRow","modelColumn","get","undefined","value","valueForCell","isTextType","columns","type","originalFont","font","concat","getTextRenderMetrics","textMetrics","mouseX","mouseY","theme","mouseColumn","mouseRow","getGridPointFromXY","left","getCellOverflowButtonPosition","shouldRenderOverflowButton","width","gridX","x","NULL_POSITION","top","height","rowHeight","columnWidth","getCellInfoFromXY","gridWidth","verticalBarWidth","cellHorizontalPadding","iconSize","right","Math","min","buttonLeft","buttonTop","gridY","_model$textForCell","isStringType","text","textForCell","textWidth","fontWidthLower","fontWidthsLower","fontWidthUpper","fontWidthsUpper","save","truncatedText","getCachedTruncatedString","truncationCharForCell","restore","drawTreeMarker","columnX","rowY","treeBox","color","isExpanded"],"sources":["../src/IrisGridTextCellRenderer.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport {\n type BoxCoordinates,\n type Coordinate,\n getOrThrow,\n type GridMetrics,\n GridUtils,\n TextCellRenderer,\n type VisibleIndex,\n} from '@deephaven/grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { type IrisGridRenderState } from './IrisGridRenderer';\nimport IrisGridCellRendererUtils from './IrisGridCellRendererUtils';\nimport type { IrisGridThemeType } from './IrisGridTheme';\n\nclass IrisGridTextCellRenderer extends TextCellRenderer {\n drawCellContent(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): void {\n const { metrics, model } = state;\n const { modelColumns, modelRows } = metrics;\n const modelRow = getOrThrow(modelRows, row);\n const modelColumn = modelColumns.get(column);\n if (modelColumn === undefined) {\n return;\n }\n const value = model.valueForCell(modelColumn, modelRow);\n if (TableUtils.isTextType(model.columns[modelColumn]?.type)) {\n if (value === null || value === '') {\n const originalFont = context.font;\n context.font = `italic ${originalFont}`;\n super.drawCellContent(context, state, column, row);\n context.font = originalFont;\n return;\n }\n }\n super.drawCellContent(context, state, column, row);\n }\n\n // This will shrink the size the text may take when the overflow button is rendered\n // The text will truncate to a smaller width and won't overlap the button\n getTextRenderMetrics(\n state: IrisGridRenderState,\n column: VisibleIndex,\n row: VisibleIndex\n ): {\n width: number;\n x: Coordinate;\n y: Coordinate;\n } {\n const textMetrics = GridUtils.getTextRenderMetrics(state, column, row);\n\n const { mouseX, mouseY, metrics, theme } = state;\n\n if (mouseX == null || mouseY == null) {\n return textMetrics;\n }\n\n const { column: mouseColumn, row: mouseRow } = GridUtils.getGridPointFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (column === mouseColumn && row === mouseRow) {\n const { left } = this.getCellOverflowButtonPosition(\n mouseX,\n mouseY,\n metrics,\n theme\n );\n if (this.shouldRenderOverflowButton(state) && left != null) {\n textMetrics.width = left - metrics.gridX - textMetrics.x;\n }\n }\n return textMetrics;\n }\n\n getCellOverflowButtonPosition(\n mouseX: Coordinate | null,\n mouseY: Coordinate | null,\n metrics: GridMetrics | undefined,\n theme: IrisGridThemeType\n ): {\n left: Coordinate | null;\n top: Coordinate | null;\n width: number | null;\n height: number | null;\n } {\n const NULL_POSITION = { left: null, top: null, width: null, height: null };\n if (mouseX == null || mouseY == null || metrics == null) {\n return NULL_POSITION;\n }\n const { rowHeight, columnWidth, left, top } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (left == null || columnWidth == null || top == null) {\n return NULL_POSITION;\n }\n\n const { width: gridWidth, verticalBarWidth } = metrics;\n const { cellHorizontalPadding, iconSize } = theme;\n\n const width = iconSize + 2 * cellHorizontalPadding;\n const height = rowHeight;\n // Right edge of column or of visible grid, whichever is smaller\n const right = Math.min(\n metrics.gridX + left + columnWidth,\n gridWidth - verticalBarWidth\n );\n const buttonLeft = right - width;\n const buttonTop = metrics.gridY + top;\n\n return { left: buttonLeft, top: buttonTop, width, height };\n }\n\n shouldRenderOverflowButton(state: IrisGridRenderState): boolean {\n const { context, mouseX, mouseY, metrics, model, theme } = state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n const { row, column, modelRow, modelColumn } = GridUtils.getCellInfoFromXY(\n mouseX,\n mouseY,\n metrics\n );\n\n if (\n row == null ||\n column == null ||\n modelRow == null ||\n modelColumn == null ||\n !TableUtils.isStringType(model.columns[modelColumn].type)\n ) {\n return false;\n }\n\n const text = model.textForCell(modelColumn, modelRow) ?? '';\n const { width: textWidth } = GridUtils.getTextRenderMetrics(\n state,\n column,\n row\n );\n const fontWidthLower = metrics.fontWidthsLower.get(theme.font);\n const fontWidthUpper = metrics.fontWidthsUpper.get(theme.font);\n\n context.save();\n context.font = theme.font;\n\n const truncatedText = this.getCachedTruncatedString(\n context,\n text,\n textWidth,\n fontWidthLower,\n fontWidthUpper,\n model.truncationCharForCell(modelColumn, modelRow)\n );\n context.restore();\n\n return text !== '' && truncatedText !== text;\n }\n\n drawTreeMarker(\n context: CanvasRenderingContext2D,\n state: IrisGridRenderState,\n columnX: Coordinate,\n rowY: Coordinate,\n treeBox: BoxCoordinates,\n color: string,\n isExpanded: boolean\n ): void {\n IrisGridCellRendererUtils.drawTreeMarker(\n context,\n state,\n columnX,\n rowY,\n treeBox,\n color,\n isExpanded\n );\n }\n}\n\nexport default IrisGridTextCellRenderer;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTheme.js","names":["getExpressionRanges","resolveCssVariablesInRecord","GridTheme","Log","ColorUtils","IrisGridThemeRaw","log","module","createDefaultIrisGridTheme","_IrisGridTheme$rowBa","IrisGridTheme","map","_ref","start","end","normalizeCssColor","substring","join","debug2","Object","freeze","_objectSpread","backgroundColor","white","black","font","filterBarFont","headerBackgroundColor","headerColor","headerSeparatorColor","headerSeparatorHoverColor","headerHiddenSeparatorHoverColor","headerSortBarColor","headerReverseBarColor","headerBarCasingColor","headerFont","rowBackgroundColors","rowHoverBackgroundColor","selectionColor","selectionOutlineColor","selectionOutlineCasingColor","selectedRowHoverBackgroundColor","scrollBarBackgroundColor","scrollBarHoverBackgroundColor","scrollBarCasingColor","scrollBarCornerColor","scrollBarColor","scrollBarHoverColor","scrollBarActiveColor","scrollBarSelectionTickColor","scrollBarActiveSelectionTickColor","textColor","hyperlinkColor","positiveNumberColor","negativeNumberColor","zeroNumberColor","dateColor","pendingTextColor","errorTextColor","nullStringColor","filterBarActiveBackgroundColor","filterBarExpandedBackgroundColor","filterBarExpandedActiveBackgroundColor","filterBarExpandedActiveCellBackgroundColor","filterBarSeparatorColor","filterBarActiveColor","filterBarErrorColor","filterIconColor","scrimColor","contextMenuSortIconColor","contextMenuReverseIconColor","allowRowResize","autoSelectRow","gridColumnColor","gridRowColor","groupedColumnDividerColor","columnHoverBackgroundColor","headerHorizontalPadding","scrollBarSize","scrollBarHoverSize","minScrollHandleSize","rowHeight","parseInt","columnWidth","rowHeaderWidth","rowFooterWidth","columnHeaderHeight","filterBarHeight","filterBarCollapsedHeight","sortHeaderBarHeight","reverseHeaderBarHeight","filterBarHorizontalPadding","iconSize","activeCellSelectionBorderWidth","shadowAlpha","parseFloat","scrimBlurSize","minScrimTransitionTime","maxScrimTransitionTime","scrollSnapToRow","linkerColumnHoverBackgroundColor","treeLineColor","treeMarkerColor","treeMarkerHoverColor","floatingGridColumnColor","floatingGridRowColor","floatingRowBackgroundColors","floatingDividerInnerColor","floatingDividerOuterColor","overflowButtonColor","overflowButtonHoverColor","zeroLineColor","positiveBarColor","negativeBarColor","markerBarColor","density","compact","cellHorizontalPadding","minColumnWidth","spacious"],"sources":["../src/IrisGridTheme.ts"],"sourcesContent":["import {\n getExpressionRanges,\n resolveCssVariablesInRecord,\n} from '@deephaven/components';\nimport type { GridThemeType } from '@deephaven/grid';\nimport { GridTheme } from '@deephaven/grid';\nimport Log from '@deephaven/log';\nimport {\n type GridColor,\n type NullableGridColor,\n} from '@deephaven/grid/src/GridTheme';\nimport { ColorUtils } from '@deephaven/utils';\nimport IrisGridThemeRaw from './IrisGridTheme.module.scss';\n\nconst log = Log.module('IrisGridTheme');\n\nexport type IrisGridThemeType = GridThemeType & {\n filterBarFont: string;\n filterBarCollapsedHeight: number;\n filterBarHeight: number;\n reverseHeaderBarHeight: number;\n filterIconColor: string;\n filterBarActiveColor: GridColor;\n contextMenuSortIconColor: GridColor;\n contextMenuReverseIconColor: GridColor;\n minScrimTransitionTime: number;\n maxScrimTransitionTime: number;\n nullStringColor: GridColor;\n pendingTextColor: GridColor;\n dateColor: GridColor;\n positiveNumberColor: GridColor;\n negativeNumberColor: GridColor;\n zeroNumberColor: GridColor;\n errorTextColor: GridColor;\n groupedColumnDividerColor: GridColor;\n linkerColumnHoverBackgroundColor: GridColor;\n scrimBlurSize: number;\n scrimColor: GridColor;\n headerReverseBarColor: GridColor;\n sortHeaderBarHeight: number;\n headerSortBarColor: GridColor;\n headerBarCasingColor: GridColor;\n filterBarExpandedActiveBackgroundColor: GridColor;\n filterBarExpandedBackgroundColor: GridColor;\n filterBarSeparatorColor: GridColor;\n filterBarExpandedActiveCellBackgroundColor: GridColor;\n filterBarErrorColor: GridColor;\n filterBarHorizontalPadding: number;\n filterBarActiveBackgroundColor: GridColor;\n overflowButtonColor: GridColor;\n overflowButtonHoverColor: GridColor;\n floatingGridRowColor: NullableGridColor;\n iconSize: number;\n density: {\n compact: Partial<Omit<IrisGridThemeType, 'density'>>;\n spacious: Partial<Omit<IrisGridThemeType, 'density'>>;\n };\n};\n\n/**\n * Derive default Iris grid theme from IrisGridThemeRaw. Note that CSS variables\n * contained in IrisGridThemeRaw are resolved to their actual values. This means\n * that the returned theme is statically defined based on the CSS variable values\n * at the time this function is called. They will not automatically update if the\n * CSS variables change.\n */\nexport function createDefaultIrisGridTheme(): IrisGridThemeType {\n const IrisGridTheme = resolveCssVariablesInRecord(IrisGridThemeRaw);\n // row-background-colors is a space-separated list of colors, so we need to\n // normalize each color expression in the list individually\n IrisGridTheme['row-background-colors'] = getExpressionRanges(\n IrisGridTheme['row-background-colors'] ?? ''\n )\n .map(([start, end]) =>\n ColorUtils.normalizeCssColor(\n IrisGridTheme['row-background-colors'].substring(start, end + 1)\n )\n )\n .join(' ');\n\n log.debug2('Iris grid theme:', IrisGridThemeRaw);\n log.debug2('Iris grid theme derived:', IrisGridTheme);\n\n return Object.freeze({\n ...GridTheme,\n backgroundColor: IrisGridTheme['grid-bg'],\n white: IrisGridTheme.white,\n black: IrisGridTheme.black,\n font: IrisGridTheme.font,\n filterBarFont: IrisGridTheme.font,\n headerBackgroundColor: IrisGridTheme['header-bg'],\n headerColor: IrisGridTheme['header-color'],\n headerSeparatorColor: IrisGridTheme['header-separator-color'],\n headerSeparatorHoverColor: IrisGridTheme['header-separator-hover-color'],\n headerHiddenSeparatorHoverColor:\n IrisGridTheme['header-hidden-separator-hover-color'],\n headerSortBarColor: IrisGridTheme['header-sort-bar-color'],\n headerReverseBarColor: IrisGridTheme['header-reverse-bar-color'],\n headerBarCasingColor: IrisGridTheme['header-bar-casing-color'],\n headerFont: IrisGridTheme['header-font'],\n rowBackgroundColors: IrisGridTheme['row-background-colors'],\n rowHoverBackgroundColor: IrisGridTheme['row-hover-bg'],\n selectionColor: IrisGridTheme['selection-color'],\n selectionOutlineColor: IrisGridTheme['selection-outline-color'],\n selectionOutlineCasingColor:\n IrisGridTheme['selection-outline-casing-color'],\n selectedRowHoverBackgroundColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarBackgroundColor: IrisGridTheme['scroll-bar-bg'],\n scrollBarHoverBackgroundColor: IrisGridTheme['scroll-bar-hover-bg'],\n scrollBarCasingColor: IrisGridTheme['scroll-bar-casing-color'],\n scrollBarCornerColor: IrisGridTheme['scroll-bar-corner-color'],\n scrollBarColor: IrisGridTheme['scroll-bar-color'],\n scrollBarHoverColor: IrisGridTheme['scroll-bar-hover-color'],\n scrollBarActiveColor: IrisGridTheme['scroll-bar-active-color'],\n scrollBarSelectionTickColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarActiveSelectionTickColor:\n IrisGridTheme['scroll-bar-active-selection-tick-color'],\n textColor: IrisGridTheme['text-color'],\n hyperlinkColor: IrisGridTheme['hyperlink-color'],\n positiveNumberColor: IrisGridTheme['positive-number-color'],\n negativeNumberColor: IrisGridTheme['negative-number-color'],\n zeroNumberColor: IrisGridTheme['zero-number-color'],\n dateColor: IrisGridTheme['date-color'],\n pendingTextColor: IrisGridTheme['pending-text-color'],\n errorTextColor: IrisGridTheme['error-text-color'],\n nullStringColor: IrisGridTheme['null-string-color'],\n filterBarActiveBackgroundColor: IrisGridTheme['filter-bar-active-bg'],\n filterBarExpandedBackgroundColor: IrisGridTheme['filter-bar-expanded-bg'],\n filterBarExpandedActiveBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-bg'],\n filterBarExpandedActiveCellBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-cell-bg'],\n filterBarSeparatorColor: IrisGridTheme['filter-bar-separator-color'],\n filterBarActiveColor: IrisGridTheme['filter-bar-active-color'],\n filterBarErrorColor: IrisGridTheme['filter-bar-error-color'],\n filterIconColor: IrisGridTheme['filter-icon-color'],\n scrimColor: IrisGridTheme['scrim-color'],\n contextMenuSortIconColor: IrisGridTheme['context-menu-sort-icon-color'],\n contextMenuReverseIconColor:\n IrisGridTheme['context-menu-reverse-icon-color'],\n\n allowRowResize: false,\n autoSelectRow: true,\n gridColumnColor: null,\n gridRowColor: null,\n groupedColumnDividerColor: IrisGridTheme['grouped-column-divider-color'],\n columnHoverBackgroundColor: null,\n headerHorizontalPadding: 12,\n scrollBarSize: 13,\n scrollBarHoverSize: 16, // system default scrollbar width is 17\n minScrollHandleSize: 24,\n rowHeight: parseInt(IrisGridTheme['row-height'], 10) || 19, // IrisGrid test breaks without the fallback value\n columnWidth: 100,\n rowHeaderWidth: 0,\n rowFooterWidth: 90,\n columnHeaderHeight: parseInt(IrisGridTheme['header-height'], 10) || 30,\n filterBarHeight: 30, // includes 1px casing at bottom\n filterBarCollapsedHeight: 5, // includes 1px casing at bottom\n sortHeaderBarHeight: 2,\n reverseHeaderBarHeight: 4,\n filterBarHorizontalPadding: 4,\n iconSize: 16,\n\n activeCellSelectionBorderWidth:\n parseInt(IrisGridTheme['active-cell-selection-border-width'], 10) || 2,\n\n shadowAlpha: parseFloat(IrisGridTheme['row-shadow-alpha']) || 0.15,\n\n // Amount of blur to apply to the bottom of the scrim while animating in\n scrimBlurSize: 25,\n minScrimTransitionTime: 150,\n maxScrimTransitionTime: 350,\n\n scrollSnapToRow: true,\n\n linkerColumnHoverBackgroundColor: IrisGridTheme['linker-column-hover-bg'],\n\n treeLineColor: IrisGridTheme['tree-line-color'],\n treeMarkerColor: IrisGridTheme['tree-marker-color'],\n treeMarkerHoverColor: IrisGridTheme['tree-marker-hover-color'],\n\n floatingGridColumnColor: null,\n floatingGridRowColor: IrisGridTheme['floating-grid-row-color'],\n floatingRowBackgroundColors:\n IrisGridTheme['floating-row-background-colors'],\n floatingDividerInnerColor: IrisGridTheme['floating-divider-inner-color'],\n floatingDividerOuterColor: IrisGridTheme['floating-divider-outer-color'],\n\n overflowButtonColor: IrisGridTheme['overflow-button-color'],\n overflowButtonHoverColor: IrisGridTheme['overflow-button-hover-color'],\n\n zeroLineColor: IrisGridTheme['zero-line-color'],\n positiveBarColor: IrisGridTheme['positive-bar-color'],\n negativeBarColor: IrisGridTheme['negative-bar-color'],\n markerBarColor: IrisGridTheme['marker-bar-color'],\n\n density: {\n compact: {\n cellHorizontalPadding: 5, // Same as regular set in GridTheme\n headerHorizontalPadding: 10,\n minColumnWidth: 10,\n rowHeight: 16,\n font: '11px Fira Sans, sans-serif',\n iconSize: 14,\n columnHeaderHeight: 26,\n },\n spacious: {\n cellHorizontalPadding: 7,\n headerHorizontalPadding: 15,\n rowHeight: 28,\n },\n },\n } satisfies IrisGridThemeType);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridTheme.js","names":["getExpressionRanges","resolveCssVariablesInRecord","GridTheme","Log","ColorUtils","IrisGridThemeRaw","log","module","createDefaultIrisGridTheme","_IrisGridTheme$rowBa","IrisGridTheme","map","_ref","start","end","normalizeCssColor","substring","join","debug2","Object","freeze","_objectSpread","backgroundColor","white","black","font","filterBarFont","headerBackgroundColor","headerColor","headerSeparatorColor","headerSeparatorHoverColor","headerHiddenSeparatorHoverColor","headerSortBarColor","headerReverseBarColor","headerBarCasingColor","headerFont","rowBackgroundColors","rowHoverBackgroundColor","selectionColor","selectionOutlineColor","selectionOutlineCasingColor","selectedRowHoverBackgroundColor","scrollBarBackgroundColor","scrollBarHoverBackgroundColor","scrollBarCasingColor","scrollBarCornerColor","scrollBarColor","scrollBarHoverColor","scrollBarActiveColor","scrollBarSelectionTickColor","scrollBarActiveSelectionTickColor","textColor","hyperlinkColor","positiveNumberColor","negativeNumberColor","zeroNumberColor","dateColor","pendingTextColor","errorTextColor","nullStringColor","filterBarActiveBackgroundColor","filterBarExpandedBackgroundColor","filterBarExpandedActiveBackgroundColor","filterBarExpandedActiveCellBackgroundColor","filterBarSeparatorColor","filterBarActiveColor","filterBarErrorColor","filterIconColor","scrimColor","contextMenuSortIconColor","contextMenuReverseIconColor","allowRowResize","autoSelectRow","gridColumnColor","gridRowColor","groupedColumnDividerColor","columnHoverBackgroundColor","headerHorizontalPadding","scrollBarSize","scrollBarHoverSize","minScrollHandleSize","rowHeight","parseInt","columnWidth","rowHeaderWidth","rowFooterWidth","columnHeaderHeight","filterBarHeight","filterBarCollapsedHeight","sortHeaderBarHeight","reverseHeaderBarHeight","filterBarHorizontalPadding","iconSize","activeCellSelectionBorderWidth","shadowAlpha","parseFloat","scrimBlurSize","minScrimTransitionTime","maxScrimTransitionTime","scrollSnapToRow","linkerColumnHoverBackgroundColor","treeLineColor","treeMarkerColor","treeMarkerHoverColor","floatingGridColumnColor","floatingGridRowColor","floatingRowBackgroundColors","floatingDividerInnerColor","floatingDividerOuterColor","overflowButtonColor","overflowButtonHoverColor","zeroLineColor","positiveBarColor","negativeBarColor","markerBarColor","density","compact","cellHorizontalPadding","minColumnWidth","spacious"],"sources":["../src/IrisGridTheme.ts"],"sourcesContent":["import {\n getExpressionRanges,\n resolveCssVariablesInRecord,\n} from '@deephaven/components';\nimport type { GridThemeType } from '@deephaven/grid';\nimport { GridTheme } from '@deephaven/grid';\nimport Log from '@deephaven/log';\nimport {\n type GridColor,\n type NullableGridColor,\n} from '@deephaven/grid/src/GridTheme';\nimport { ColorUtils } from '@deephaven/utils';\nimport IrisGridThemeRaw from './IrisGridTheme.module.scss';\n\nconst log = Log.module('IrisGridTheme');\n\nexport type IrisGridThemeType = GridThemeType & {\n filterBarFont: string;\n filterBarCollapsedHeight: number;\n filterBarHeight: number;\n reverseHeaderBarHeight: number;\n filterIconColor: string;\n filterBarActiveColor: GridColor;\n contextMenuSortIconColor: GridColor;\n contextMenuReverseIconColor: GridColor;\n minScrimTransitionTime: number;\n maxScrimTransitionTime: number;\n nullStringColor: GridColor;\n pendingTextColor: GridColor;\n dateColor: GridColor;\n positiveNumberColor: GridColor;\n negativeNumberColor: GridColor;\n zeroNumberColor: GridColor;\n errorTextColor: GridColor;\n groupedColumnDividerColor: GridColor;\n linkerColumnHoverBackgroundColor: GridColor;\n scrimBlurSize: number;\n scrimColor: GridColor;\n headerReverseBarColor: GridColor;\n sortHeaderBarHeight: number;\n headerSortBarColor: GridColor;\n headerBarCasingColor: GridColor;\n filterBarExpandedActiveBackgroundColor: GridColor;\n filterBarExpandedBackgroundColor: GridColor;\n filterBarSeparatorColor: GridColor;\n filterBarExpandedActiveCellBackgroundColor: GridColor;\n filterBarErrorColor: GridColor;\n filterBarHorizontalPadding: number;\n filterBarActiveBackgroundColor: GridColor;\n overflowButtonColor: GridColor;\n overflowButtonHoverColor: GridColor;\n floatingGridRowColor: NullableGridColor;\n iconSize: number;\n density: {\n compact: Partial<Omit<IrisGridThemeType, 'density'>>;\n spacious: Partial<Omit<IrisGridThemeType, 'density'>>;\n };\n};\n\n/**\n * Derive default Iris grid theme from IrisGridThemeRaw. Note that CSS variables\n * contained in IrisGridThemeRaw are resolved to their actual values. This means\n * that the returned theme is statically defined based on the CSS variable values\n * at the time this function is called. They will not automatically update if the\n * CSS variables change.\n */\nexport function createDefaultIrisGridTheme(): IrisGridThemeType {\n const IrisGridTheme = resolveCssVariablesInRecord(IrisGridThemeRaw);\n // row-background-colors is a space-separated list of colors, so we need to\n // normalize each color expression in the list individually\n IrisGridTheme['row-background-colors'] = getExpressionRanges(\n IrisGridTheme['row-background-colors'] ?? ''\n )\n .map(([start, end]) =>\n ColorUtils.normalizeCssColor(\n IrisGridTheme['row-background-colors'].substring(start, end + 1)\n )\n )\n .join(' ');\n\n log.debug2('Iris grid theme:', IrisGridThemeRaw);\n log.debug2('Iris grid theme derived:', IrisGridTheme);\n\n return Object.freeze({\n ...GridTheme,\n backgroundColor: IrisGridTheme['grid-bg'],\n white: IrisGridTheme.white,\n black: IrisGridTheme.black,\n font: IrisGridTheme.font,\n filterBarFont: IrisGridTheme.font,\n headerBackgroundColor: IrisGridTheme['header-bg'],\n headerColor: IrisGridTheme['header-color'],\n headerSeparatorColor: IrisGridTheme['header-separator-color'],\n headerSeparatorHoverColor: IrisGridTheme['header-separator-hover-color'],\n headerHiddenSeparatorHoverColor:\n IrisGridTheme['header-hidden-separator-hover-color'],\n headerSortBarColor: IrisGridTheme['header-sort-bar-color'],\n headerReverseBarColor: IrisGridTheme['header-reverse-bar-color'],\n headerBarCasingColor: IrisGridTheme['header-bar-casing-color'],\n headerFont: IrisGridTheme['header-font'],\n rowBackgroundColors: IrisGridTheme['row-background-colors'],\n rowHoverBackgroundColor: IrisGridTheme['row-hover-bg'],\n selectionColor: IrisGridTheme['selection-color'],\n selectionOutlineColor: IrisGridTheme['selection-outline-color'],\n selectionOutlineCasingColor:\n IrisGridTheme['selection-outline-casing-color'],\n selectedRowHoverBackgroundColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarBackgroundColor: IrisGridTheme['scroll-bar-bg'],\n scrollBarHoverBackgroundColor: IrisGridTheme['scroll-bar-hover-bg'],\n scrollBarCasingColor: IrisGridTheme['scroll-bar-casing-color'],\n scrollBarCornerColor: IrisGridTheme['scroll-bar-corner-color'],\n scrollBarColor: IrisGridTheme['scroll-bar-color'],\n scrollBarHoverColor: IrisGridTheme['scroll-bar-hover-color'],\n scrollBarActiveColor: IrisGridTheme['scroll-bar-active-color'],\n scrollBarSelectionTickColor: IrisGridTheme['selected-row-hover-bg'],\n scrollBarActiveSelectionTickColor:\n IrisGridTheme['scroll-bar-active-selection-tick-color'],\n textColor: IrisGridTheme['text-color'],\n hyperlinkColor: IrisGridTheme['hyperlink-color'],\n positiveNumberColor: IrisGridTheme['positive-number-color'],\n negativeNumberColor: IrisGridTheme['negative-number-color'],\n zeroNumberColor: IrisGridTheme['zero-number-color'],\n dateColor: IrisGridTheme['date-color'],\n pendingTextColor: IrisGridTheme['pending-text-color'],\n errorTextColor: IrisGridTheme['error-text-color'],\n nullStringColor: IrisGridTheme['null-string-color'],\n filterBarActiveBackgroundColor: IrisGridTheme['filter-bar-active-bg'],\n filterBarExpandedBackgroundColor: IrisGridTheme['filter-bar-expanded-bg'],\n filterBarExpandedActiveBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-bg'],\n filterBarExpandedActiveCellBackgroundColor:\n IrisGridTheme['filter-bar-expanded-active-cell-bg'],\n filterBarSeparatorColor: IrisGridTheme['filter-bar-separator-color'],\n filterBarActiveColor: IrisGridTheme['filter-bar-active-color'],\n filterBarErrorColor: IrisGridTheme['filter-bar-error-color'],\n filterIconColor: IrisGridTheme['filter-icon-color'],\n scrimColor: IrisGridTheme['scrim-color'],\n contextMenuSortIconColor: IrisGridTheme['context-menu-sort-icon-color'],\n contextMenuReverseIconColor:\n IrisGridTheme['context-menu-reverse-icon-color'],\n\n allowRowResize: false,\n autoSelectRow: true,\n gridColumnColor: null,\n gridRowColor: null,\n groupedColumnDividerColor: IrisGridTheme['grouped-column-divider-color'],\n columnHoverBackgroundColor: null,\n headerHorizontalPadding: 12,\n scrollBarSize: 13,\n scrollBarHoverSize: 16, // system default scrollbar width is 17\n minScrollHandleSize: 24,\n rowHeight: parseInt(IrisGridTheme['row-height'], 10) || 19, // IrisGrid test breaks without the fallback value\n columnWidth: 100,\n rowHeaderWidth: 0,\n rowFooterWidth: 90,\n columnHeaderHeight: parseInt(IrisGridTheme['header-height'], 10) || 30,\n filterBarHeight: 30, // includes 1px casing at bottom\n filterBarCollapsedHeight: 5, // includes 1px casing at bottom\n sortHeaderBarHeight: 2,\n reverseHeaderBarHeight: 4,\n filterBarHorizontalPadding: 4,\n iconSize: 16,\n\n activeCellSelectionBorderWidth:\n parseInt(IrisGridTheme['active-cell-selection-border-width'], 10) || 2,\n\n shadowAlpha: parseFloat(IrisGridTheme['row-shadow-alpha']) || 0.15,\n\n // Amount of blur to apply to the bottom of the scrim while animating in\n scrimBlurSize: 25,\n minScrimTransitionTime: 150,\n maxScrimTransitionTime: 350,\n\n scrollSnapToRow: true,\n\n linkerColumnHoverBackgroundColor: IrisGridTheme['linker-column-hover-bg'],\n\n treeLineColor: IrisGridTheme['tree-line-color'],\n treeMarkerColor: IrisGridTheme['tree-marker-color'],\n treeMarkerHoverColor: IrisGridTheme['tree-marker-hover-color'],\n\n floatingGridColumnColor: null,\n floatingGridRowColor: IrisGridTheme['floating-grid-row-color'],\n floatingRowBackgroundColors:\n IrisGridTheme['floating-row-background-colors'],\n floatingDividerInnerColor: IrisGridTheme['floating-divider-inner-color'],\n floatingDividerOuterColor: IrisGridTheme['floating-divider-outer-color'],\n\n overflowButtonColor: IrisGridTheme['overflow-button-color'],\n overflowButtonHoverColor: IrisGridTheme['overflow-button-hover-color'],\n\n zeroLineColor: IrisGridTheme['zero-line-color'],\n positiveBarColor: IrisGridTheme['positive-bar-color'],\n negativeBarColor: IrisGridTheme['negative-bar-color'],\n markerBarColor: IrisGridTheme['marker-bar-color'],\n\n density: {\n compact: {\n cellHorizontalPadding: 5, // Same as regular set in GridTheme\n headerHorizontalPadding: 10,\n minColumnWidth: 10,\n rowHeight: 16,\n font: '11px Fira Sans, sans-serif',\n iconSize: 14,\n columnHeaderHeight: 26,\n },\n spacious: {\n cellHorizontalPadding: 7,\n headerHorizontalPadding: 15,\n rowHeight: 28,\n },\n },\n } satisfies IrisGridThemeType);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridThemeProvider.js","names":["useTheme","createContext","useMemo","createDefaultIrisGridTheme","jsx","_jsx","IrisGridThemeContext","theme","density","displayName","IrisGridThemeProvider","_ref","children","activeThemes","gridTheme","contextValue","Provider","value"],"sources":["../src/IrisGridThemeProvider.tsx"],"sourcesContent":["import { useTheme } from '@deephaven/components';\nimport { createContext, type ReactNode, useMemo } from 'react';\nimport {\n createDefaultIrisGridTheme,\n type IrisGridThemeType,\n} from './IrisGridTheme';\n\n/**\n * The context value for the IrisGridThemeProvider.\n * This must be a full object and not a partial so that we\n * can createDefaultIrisGridTheme once, and not per grid.\n */\nexport type IrisGridThemeContextValue = IrisGridThemeType;\n\nexport const IrisGridThemeContext = createContext<{\n theme: IrisGridThemeContextValue | null;\n density: 'compact' | 'regular' | 'spacious';\n}>({ theme: null, density: 'regular' });\nIrisGridThemeContext.displayName = 'IrisGridThemeContext';\n\nexport interface IrisGridThemeProviderProps {\n children: ReactNode;\n /* The density of the grid. Defaults to regular */\n density?: 'compact' | 'regular' | 'spacious';\n}\n\nexport function IrisGridThemeProvider({\n children,\n density = 'regular',\n}: IrisGridThemeProviderProps): JSX.Element {\n const { activeThemes } = useTheme();\n\n const gridTheme = useMemo(\n () => createDefaultIrisGridTheme(),\n // When the theme changes, we need to update the grid theme which reads CSS variables to JS\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeThemes]\n );\n\n const contextValue = useMemo(\n () => ({ theme: gridTheme, density }),\n [gridTheme, density]\n );\n\n return (\n <IrisGridThemeContext.Provider value={contextValue}>\n {children}\n </IrisGridThemeContext.Provider>\n );\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,aAAa,EAAkBC,OAAO,QAAQ,OAAO;AAAC,SAE7DC,0BAA0B;AAI5B;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA;AAOA,OAAO,IAAMC,oBAAoB,gBAAGL,aAAa,CAG9C;EAAEM,KAAK,EAAE,IAAI;EAAEC,OAAO,EAAE;AAAU,CAAC,CAAC;AACvCF,oBAAoB,CAACG,WAAW,GAAG,sBAAsB;AAQzD,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAGO;EAAA,IAHN;IACpCC,QAAQ;IACRJ,OAAO,GAAG;EACgB,CAAC,GAAAG,IAAA;EAC3B,IAAM;IAAEE;EAAa,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAEnC,IAAMc,SAAS,GAAGZ,OAAO,CACvB,MAAMC,0BAA0B,CAAC,CAAC;EAClC;EACA;EACA,CAACU,YAAY,CACf,CAAC;EAED,IAAME,YAAY,GAAGb,OAAO,CAC1B,OAAO;IAAEK,KAAK,EAAEO,SAAS;IAAEN;EAAQ,CAAC,CAAC,EACrC,CAACM,SAAS,EAAEN,OAAO,CACrB,CAAC;EAED,oBACEH,IAAA,CAACC,oBAAoB,CAACU,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAH,QAAA,EAChDA;EAAQ,CACoB,CAAC;AAEpC"}
1
+ {"version":3,"file":"IrisGridThemeProvider.js","names":["useTheme","createContext","useMemo","createDefaultIrisGridTheme","jsx","_jsx","IrisGridThemeContext","theme","density","displayName","IrisGridThemeProvider","_ref","children","activeThemes","gridTheme","contextValue","Provider","value"],"sources":["../src/IrisGridThemeProvider.tsx"],"sourcesContent":["import { useTheme } from '@deephaven/components';\nimport { createContext, type ReactNode, useMemo } from 'react';\nimport {\n createDefaultIrisGridTheme,\n type IrisGridThemeType,\n} from './IrisGridTheme';\n\n/**\n * The context value for the IrisGridThemeProvider.\n * This must be a full object and not a partial so that we\n * can createDefaultIrisGridTheme once, and not per grid.\n */\nexport type IrisGridThemeContextValue = IrisGridThemeType;\n\nexport const IrisGridThemeContext = createContext<{\n theme: IrisGridThemeContextValue | null;\n density: 'compact' | 'regular' | 'spacious';\n}>({ theme: null, density: 'regular' });\nIrisGridThemeContext.displayName = 'IrisGridThemeContext';\n\nexport interface IrisGridThemeProviderProps {\n children: ReactNode;\n /* The density of the grid. Defaults to regular */\n density?: 'compact' | 'regular' | 'spacious';\n}\n\nexport function IrisGridThemeProvider({\n children,\n density = 'regular',\n}: IrisGridThemeProviderProps): JSX.Element {\n const { activeThemes } = useTheme();\n\n const gridTheme = useMemo(\n () => createDefaultIrisGridTheme(),\n // When the theme changes, we need to update the grid theme which reads CSS variables to JS\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeThemes]\n );\n\n const contextValue = useMemo(\n () => ({ theme: gridTheme, density }),\n [gridTheme, density]\n );\n\n return (\n <IrisGridThemeContext.Provider value={contextValue}>\n {children}\n </IrisGridThemeContext.Provider>\n );\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,aAAa,EAAkBC,OAAO,QAAQ,OAAO;AAAC,SAE7DC,0BAA0B;AAI5B;AACA;AACA;AACA;AACA;AAJA,SAAAC,GAAA,IAAAC,IAAA;AAOA,OAAO,IAAMC,oBAAoB,gBAAGL,aAAa,CAG9C;EAAEM,KAAK,EAAE,IAAI;EAAEC,OAAO,EAAE;AAAU,CAAC,CAAC;AACvCF,oBAAoB,CAACG,WAAW,GAAG,sBAAsB;AAQzD,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAGO;EAAA,IAHN;IACpCC,QAAQ;IACRJ,OAAO,GAAG;EACgB,CAAC,GAAAG,IAAA;EAC3B,IAAM;IAAEE;EAAa,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAEnC,IAAMc,SAAS,GAAGZ,OAAO,CACvB,MAAMC,0BAA0B,CAAC,CAAC;EAClC;EACA;EACA,CAACU,YAAY,CACf,CAAC;EAED,IAAME,YAAY,GAAGb,OAAO,CAC1B,OAAO;IAAEK,KAAK,EAAEO,SAAS;IAAEN;EAAQ,CAAC,CAAC,EACrC,CAACM,SAAS,EAAEN,OAAO,CACrB,CAAC;EAED,oBACEH,IAAA,CAACC,oBAAoB,CAACU,QAAQ;IAACC,KAAK,EAAEF,YAAa;IAAAH,QAAA,EAChDA;EAAQ,CACoB,CAAC;AAEpC","ignoreList":[]}
@@ -62,13 +62,12 @@ export function isIrisGridTreeTableModel(tableModel) {
62
62
  return tableModel.showExtraGroupColumn != null;
63
63
  }
64
64
  class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
65
- /** We keep a virtual column at the front that tracks the "group" that is expanded */
66
-
67
65
  constructor(dh, table) {
68
66
  var formatter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Formatter(dh);
69
67
  var inputTable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
70
68
  var columnAlignmentMap = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : new Map();
71
69
  super(dh, table, formatter, inputTable, columnAlignmentMap);
70
+ /** We keep a virtual column at the front that tracks the "group" that is expanded */
72
71
  _defineProperty(this, "virtualColumns", void 0);
73
72
  _defineProperty(this, "showExtraGroupCol", true);
74
73
  _defineProperty(this, "getCachedColumns", memoize((virtualColumns, tableColumns) => [...virtualColumns, ...tableColumns]));
@@ -116,10 +115,10 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
116
115
  if (row != null && column != null) {
117
116
  if (!row.hasChildren && column.constituentType != null) {
118
117
  var _this$columns$x;
119
- var _value = this.valueForCell(x, y);
120
- var text = this.displayString(_value, column.constituentType, column.name);
118
+ var value = this.valueForCell(x, y);
119
+ var text = this.displayString(value, column.constituentType, column.name);
121
120
  if (TableUtils.isTextType((_this$columns$x = this.columns[x]) === null || _this$columns$x === void 0 ? void 0 : _this$columns$x.type)) {
122
- if (_value === null) {
121
+ if (value === null) {
123
122
  return this.formatter.showNullStrings ? 'null' : '';
124
123
  }
125
124
  if (text === '') {
@@ -141,9 +140,9 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
141
140
  if (data) {
142
141
  var {
143
142
  format,
144
- value: _value2
143
+ value
145
144
  } = data;
146
- if (_value2 == null || _value2 === '') {
145
+ if (value == null || value === '') {
147
146
  assertNotNull(theme.nullStringColor);
148
147
  return theme.nullStringColor;
149
148
  }
@@ -152,17 +151,17 @@ class IrisGridTreeTableModel extends IrisGridTableModelTemplate {
152
151
  }
153
152
 
154
153
  // Fallback to formatting based on the value/type of the cell
155
- if (_value2 != null) {
156
- var _column = this.sourceColumn(x, y);
154
+ if (value != null) {
155
+ var column = this.sourceColumn(x, y);
157
156
  var row = this.row(y);
158
157
  assertNotNull(row);
159
- var columnTypeForFormatting = _column.type;
158
+ var columnTypeForFormatting = column.type;
160
159
 
161
160
  // For tree table leaf nodes, use the constituent type for formatting
162
- if (isUITreeRow(row) && row.hasChildren === false && _column.constituentType != null) {
163
- columnTypeForFormatting = _column.constituentType;
161
+ if (isUITreeRow(row) && row.hasChildren === false && column.constituentType != null) {
162
+ columnTypeForFormatting = column.constituentType;
164
163
  }
165
- return IrisGridUtils.colorForValue(theme, columnTypeForFormatting, _column.name, _value2);
164
+ return IrisGridUtils.colorForValue(theme, columnTypeForFormatting, column.name, value);
166
165
  }
167
166
  }
168
167
  return theme.textColor;
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","Log","Formatter","TableUtils","assertNotNull","EMPTY_ARRAY","EventShimCustomEvent","IrisGridTableModelTemplate","IrisGridModel","IrisGridUtils","log","module","VirtualGroupColumn","Object","freeze","name","displayName","type","dataType","STRING","constituentType","isPartitionColumn","isSortable","isProxy","description","index","filter","Error","sort","formatColor","get","getFormat","formatNumber","formatDate","isUITreeRow","row","hasChildren","isExpanded","depth","isLayoutTreeTable","table","layoutHints","undefined","isIrisGridTreeTableModel","tableModel","showExtraGroupColumn","IrisGridTreeTableModel","constructor","dh","formatter","arguments","length","inputTable","columnAlignmentMap","Map","_defineProperty","virtualColumns","tableColumns","tableGroupedColumns","columns","isAggregatedColumnsAvailable","aggregatedColumns","groupedColumns","Set","c","includes","map","c1","findIndex","c2","showExtraGroupCol","updateVirtualColumns","dispatchEvent","EVENT","COLUMNS_CHANGED","detail","applyBufferedViewport","viewportTop","viewportBottom","viewportColumns","setViewport","textForCell","x","y","column","sourceColumn","_this$columns$x","value","valueForCell","text","displayString","isTextType","showNullStrings","showEmptyStrings","getCachedGroupedColumnSet","has","colorForCell","theme","data","dataForCell","format","nullStringColor","color","columnTypeForFormatting","colorForValue","textColor","textAlignForCell","_this$columnAlignment","userTextAlignment","typeForFormatting","textAlignForValue","extractViewportRow","extractedRow","modifiedData","i","key","cellData","warn","set","_objectSpread","snapshot","ranges","includeHeaders","_arguments","_this","_asyncToGenerator","_this$viewport$column","formatValue","viewport","viewportData","result","push","viewportRange","offset","rows","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","_viewportRow$data$get","getCachedColumns","getCachedGroupColumns","sourceForCell","depthForRow","getClearFilterRange","hasExpandableRows","isExpandAllAvailable","expandAll","isChartBuilderAvailable","isOrganizeColumnsAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","isColumnMovable","isRowExpandable","_row$hasChildren","isRowExpanded","_row$isExpanded","setRowExpanded","expandDescendants","setExpanded","collapseAll","_row$depth","updateFrozenColumns"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport {\n type BoundedAxisRange,\n type ExpandableGridModel,\n type GridCell,\n GridRange,\n type ModelIndex,\n} from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport {\n assertNotNull,\n EMPTY_ARRAY,\n EventShimCustomEvent,\n} from '@deephaven/utils';\nimport { type UIRow, type ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport IrisGridModel, { type DisplayColumn } from './IrisGridModel';\nimport { type IrisGridThemeType } from './IrisGridTheme';\nimport IrisGridUtils from './IrisGridUtils';\n\nconst log = Log.module('IrisGridTreeTableModel');\n\nconst VirtualGroupColumn = Object.freeze({\n name: '__DH_UI_GROUP__',\n displayName: 'Group',\n type: TableUtils.dataType.STRING,\n constituentType: TableUtils.dataType.STRING,\n isPartitionColumn: false,\n isSortable: false,\n isProxy: true,\n description: 'Key column',\n index: -1,\n filter: () => {\n throw new Error('Filter not implemented for virtual column');\n },\n sort: () => {\n throw new Error('Sort not implemented for virtual column');\n },\n formatColor: () => {\n throw new Error('Color not implemented for virtual column');\n },\n get: () => {\n throw new Error('get not implemented for virtual column');\n },\n getFormat: () => {\n throw new Error('getFormat not implemented for virtual column');\n },\n formatNumber: () => {\n throw new Error('formatNumber not implemented for virtual column');\n },\n formatDate: () => {\n throw new Error('formatDate not implemented for virtual column');\n },\n});\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\n\n/**\n * Check if a row is a UITreeRow\n * @param row The row to check\n * @returns True if the row is a UITreeRow and false otherwise\n */\nexport function isUITreeRow(row: unknown): row is UITreeRow {\n return (\n row != null &&\n typeof row === 'object' &&\n 'hasChildren' in row &&\n 'isExpanded' in row &&\n 'depth' in row &&\n typeof row.hasChildren === 'boolean' &&\n typeof row.isExpanded === 'boolean' &&\n typeof row.depth === 'number'\n );\n}\n\ntype LayoutTreeTable = DhType.TreeTable & {\n layoutHints?: null | DhType.LayoutHints;\n};\n\nfunction isLayoutTreeTable(table: DhType.TreeTable): table is LayoutTreeTable {\n return (table as LayoutTreeTable).layoutHints !== undefined;\n}\n\nexport function isIrisGridTreeTableModel(\n tableModel: IrisGridModel\n): tableModel is IrisGridTreeTableModel {\n return (tableModel as IrisGridTreeTableModel).showExtraGroupColumn != null;\n}\n\nclass IrisGridTreeTableModel\n extends IrisGridTableModelTemplate<DhType.TreeTable, UITreeRow>\n implements ExpandableGridModel\n{\n /** We keep a virtual column at the front that tracks the \"group\" that is expanded */\n private virtualColumns: DisplayColumn[];\n\n private showExtraGroupCol = true;\n\n constructor(\n dh: typeof DhType,\n table: DhType.TreeTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null,\n columnAlignmentMap = new Map<string, CanvasTextAlign>()\n ) {\n super(dh, table, formatter, inputTable, columnAlignmentMap);\n\n this.virtualColumns =\n this.showExtraGroupColumn && table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n }\n\n get showExtraGroupColumn(): boolean {\n return this.showExtraGroupCol;\n }\n\n set showExtraGroupColumn(showExtraGroupCol: boolean) {\n if (this.showExtraGroupCol === showExtraGroupCol) {\n return;\n }\n this.showExtraGroupCol = showExtraGroupCol;\n this.updateVirtualColumns();\n }\n\n updateVirtualColumns(): void {\n this.virtualColumns =\n this.showExtraGroupColumn && this.table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: this.columns,\n })\n );\n }\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: DhType.Column[]\n ): void {\n const viewportColumns = [\n // Need to always fetch the grouped columns so we always have key data for the rows\n // Used to display our virtual key column\n ...this.table.groupedColumns,\n ...columns.filter(\n c =>\n !this.virtualColumns.includes(c) && !this.groupedColumns.includes(c)\n ),\n ];\n this.table.setViewport(viewportTop, viewportBottom, viewportColumns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n if (row != null && column != null) {\n if (!row.hasChildren && column.constituentType != null) {\n const value = this.valueForCell(x, y);\n const text = this.displayString(\n value,\n column.constituentType,\n column.name\n );\n\n if (TableUtils.isTextType(this.columns[x]?.type)) {\n if (value === null) {\n return this.formatter.showNullStrings ? 'null' : '';\n }\n\n if (text === '') {\n return this.formatter.showEmptyStrings ? 'empty' : '';\n }\n }\n\n return text;\n }\n\n // Show empty string instead of null in rollup grouping columns (issue #1483)\n if (\n row.hasChildren &&\n row.depth <= x + 1 &&\n this.valueForCell(x, y) === null &&\n this.getCachedGroupedColumnSet(this.groupedColumns).has(x)\n ) {\n return '';\n }\n }\n\n return super.textForCell(x, y);\n }\n\n colorForCell(x: ModelIndex, y: ModelIndex, theme: IrisGridThemeType): string {\n const data = this.dataForCell(x, y);\n if (data) {\n const { format, value } = data;\n if (value == null || value === '') {\n assertNotNull(theme.nullStringColor);\n return theme.nullStringColor;\n }\n if (format?.color != null && format.color !== '') {\n return format.color;\n }\n\n // Fallback to formatting based on the value/type of the cell\n if (value != null) {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n assertNotNull(row);\n\n let columnTypeForFormatting = column.type;\n\n // For tree table leaf nodes, use the constituent type for formatting\n if (\n isUITreeRow(row) &&\n row.hasChildren === false &&\n column.constituentType != null\n ) {\n columnTypeForFormatting = column.constituentType;\n }\n\n return IrisGridUtils.colorForValue(\n theme,\n columnTypeForFormatting,\n column.name,\n value\n );\n }\n }\n\n return theme.textColor;\n }\n\n textAlignForCell(x: ModelIndex, y: ModelIndex): CanvasTextAlign {\n const column = this.sourceColumn(x, y);\n\n const userTextAlignment = this.columnAlignmentMap?.get(column.name);\n if (userTextAlignment != null) {\n return userTextAlignment;\n }\n\n const row = this.row(y);\n let typeForFormatting = column.type;\n\n // For tree table leaf nodes, use the constituent type for formatting\n if (\n isUITreeRow(row) &&\n row.hasChildren === false &&\n column.constituentType != null\n ) {\n typeForFormatting = column.constituentType;\n }\n\n return IrisGridUtils.textAlignForValue(typeForFormatting, column.name);\n }\n\n extractViewportRow(row: DhType.TreeRow, columns: DhType.Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n const extractedRow = super.extractViewportRow(row, columns);\n const modifiedData = new Map(extractedRow.data);\n if (hasChildren) {\n for (let i = 0; i < this.virtualColumns.length; i += 1) {\n const key = i + (depth - 1) + (this.virtualColumns.length - 1);\n const cellData = modifiedData.get(key);\n if (cellData == null) {\n log.warn('Missing key data for virtual column', i, depth, key, row);\n } else {\n modifiedData.set(i, cellData);\n }\n }\n }\n\n return {\n ...extractedRow,\n data: modifiedData,\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue: (value: unknown, column: DhType.Column) => unknown = value =>\n value\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const columns = this.viewport.columns ?? this.columns;\n const result = [];\n\n if (includeHeaders != null && includeHeaders) {\n result.push(columns.map(c => c.name));\n }\n\n const viewportRange = new GridRange(\n 0,\n this.viewportData.offset,\n columns.length,\n this.viewportData.offset + this.viewportData.rows.length - 1\n );\n\n for (let i = 0; i < ranges.length; i += 1) {\n const intersection = GridRange.intersection(viewportRange, ranges[i]);\n\n assertNotNull(intersection);\n assertNotNull(intersection.startRow);\n assertNotNull(intersection.endRow);\n\n for (let r = intersection.startRow; r <= intersection.endRow; r += 1) {\n const resultRow = [];\n const viewportRow =\n this.viewportData.rows[r - this.viewportData.offset];\n assertNotNull(intersection.startColumn);\n assertNotNull(intersection.endColumn);\n for (\n let c = intersection.startColumn;\n c <= intersection.endColumn;\n c += 1\n ) {\n resultRow.push(\n formatValue(viewportRow.data.get(c)?.value, this.columns[c])\n );\n }\n result.push(resultRow);\n }\n }\n\n return result;\n }\n\n get columns(): DhType.Column[] {\n return this.getCachedColumns(this.virtualColumns, super.columns);\n }\n\n get aggregatedColumns(): readonly DhType.Column[] {\n return this.isAggregatedColumnsAvailable\n ? this.table.aggregatedColumns\n : EMPTY_ARRAY;\n }\n\n get groupedColumns(): readonly DhType.Column[] {\n return this.getCachedGroupColumns(\n this.virtualColumns,\n this.table.groupedColumns\n );\n }\n\n sourceForCell(column: ModelIndex, row: ModelIndex): GridCell {\n if (column >= this.virtualColumns.length) {\n return { column, row };\n }\n const depth = this.depthForRow(row);\n return { column: column + depth, row };\n }\n\n sourceColumn(column: ModelIndex, row: ModelIndex): DhType.Column {\n if (column >= this.virtualColumns.length) {\n return super.sourceColumn(column, row);\n }\n\n const depth = this.depthForRow(row);\n return this.columns[column + depth];\n }\n\n getClearFilterRange(column: ModelIndex): BoundedAxisRange | null {\n if (column >= this.virtualColumns.length) {\n return super.getClearFilterRange(column);\n }\n // Source for the proxied column could be any of the grouped columns.\n // Return the range of columns matching the grouped columns.\n return [this.virtualColumns.length, this.groupedColumns.length];\n }\n\n get layoutHints(): DhType.LayoutHints | null | undefined {\n if (isLayoutTreeTable(this.table)) {\n return this.table.layoutHints;\n }\n return undefined;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isAggregatedColumnsAvailable(): boolean {\n return (\n // aggregatedColumns are not available in the Legacy API\n // and Core API before v0.39.4\n this.table.aggregatedColumns !== undefined\n );\n }\n\n get isExpandAllAvailable(): boolean {\n return this.table.expandAll !== undefined;\n }\n\n get isChartBuilderAvailable(): boolean {\n return false;\n }\n\n get isOrganizeColumnsAvailable(): boolean {\n return true;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return false;\n }\n\n get isReversible(): boolean {\n return false;\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(\n this.columns,\n this.isAggregatedColumnsAvailable,\n this.aggregatedColumns,\n this.groupedColumns,\n this.virtualColumns\n ).has(columnIndex);\n }\n\n isColumnMovable(column: ModelIndex): boolean {\n return column >= this.groupedColumns.length;\n }\n\n isRowExpandable(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.hasChildren ?? false;\n }\n\n isRowExpanded(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.isExpanded ?? false;\n }\n\n setRowExpanded(\n y: ModelIndex,\n isExpanded: boolean,\n expandDescendants = false\n ): void {\n if (this.isExpandAllAvailable) {\n this.table.setExpanded(y, isExpanded, expandDescendants);\n } else {\n this.table.setExpanded(y, isExpanded);\n }\n }\n\n expandAll(): void {\n if (this.table.expandAll != null) {\n this.table.expandAll();\n }\n }\n\n collapseAll(): void {\n if (this.table.collapseAll != null) {\n this.table.collapseAll();\n }\n }\n\n depthForRow(y: ModelIndex): ModelIndex {\n const row = this.row(y);\n return (row?.depth ?? 1) - 1;\n }\n\n getCachedColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableColumns]\n );\n\n getCachedGroupColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableGroupedColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableGroupedColumns]\n );\n\n getCachedFilterableColumnSet = memoize(\n (\n columns: readonly DhType.Column[],\n isAggregatedColumnsAvailable: boolean,\n aggregatedColumns: readonly DhType.Column[],\n groupedColumns: readonly DhType.Column[],\n virtualColumns: readonly DhType.Column[]\n ) => {\n if (isAggregatedColumnsAvailable) {\n return new Set(\n // Virtual and aggregated columns are not filterable\n columns\n .filter(\n c => !virtualColumns.includes(c) && !aggregatedColumns.includes(c)\n )\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n );\n }\n // For compatibility with the Enterprise JSAPI,\n // only groupedColumns are filterable on rollup tables\n // if aggregatedColumns API is not available.\n return new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns)\n .filter(c => !virtualColumns.includes(c))\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n );\n }\n );\n\n getCachedGroupedColumnSet = memoize(\n (groupedColumns: readonly DhType.Column[]) =>\n new Set(\n groupedColumns.map(c1 =>\n this.columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n\n updateFrozenColumns(columns: ColumnName[]): void {\n if (columns.length > 0) {\n throw new Error('Cannot freeze columns on a tree table');\n }\n }\n}\n\nexport default IrisGridTreeTableModel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridTreeTableModel.js","names":["memoize","GridRange","Log","Formatter","TableUtils","assertNotNull","EMPTY_ARRAY","EventShimCustomEvent","IrisGridTableModelTemplate","IrisGridModel","IrisGridUtils","log","module","VirtualGroupColumn","Object","freeze","name","displayName","type","dataType","STRING","constituentType","isPartitionColumn","isSortable","isProxy","description","index","filter","Error","sort","formatColor","get","getFormat","formatNumber","formatDate","isUITreeRow","row","hasChildren","isExpanded","depth","isLayoutTreeTable","table","layoutHints","undefined","isIrisGridTreeTableModel","tableModel","showExtraGroupColumn","IrisGridTreeTableModel","constructor","dh","formatter","arguments","length","inputTable","columnAlignmentMap","Map","_defineProperty","virtualColumns","tableColumns","tableGroupedColumns","columns","isAggregatedColumnsAvailable","aggregatedColumns","groupedColumns","Set","c","includes","map","c1","findIndex","c2","showExtraGroupCol","updateVirtualColumns","dispatchEvent","EVENT","COLUMNS_CHANGED","detail","applyBufferedViewport","viewportTop","viewportBottom","viewportColumns","setViewport","textForCell","x","y","column","sourceColumn","_this$columns$x","value","valueForCell","text","displayString","isTextType","showNullStrings","showEmptyStrings","getCachedGroupedColumnSet","has","colorForCell","theme","data","dataForCell","format","nullStringColor","color","columnTypeForFormatting","colorForValue","textColor","textAlignForCell","_this$columnAlignment","userTextAlignment","typeForFormatting","textAlignForValue","extractViewportRow","extractedRow","modifiedData","i","key","cellData","warn","set","_objectSpread","snapshot","ranges","includeHeaders","_arguments","_this","_asyncToGenerator","_this$viewport$column","formatValue","viewport","viewportData","result","push","viewportRange","offset","rows","intersection","startRow","endRow","r","resultRow","viewportRow","startColumn","endColumn","_viewportRow$data$get","getCachedColumns","getCachedGroupColumns","sourceForCell","depthForRow","getClearFilterRange","hasExpandableRows","isExpandAllAvailable","expandAll","isChartBuilderAvailable","isOrganizeColumnsAvailable","isSelectDistinctAvailable","isReversible","isFilterable","columnIndex","getCachedFilterableColumnSet","isColumnMovable","isRowExpandable","_row$hasChildren","isRowExpanded","_row$isExpanded","setRowExpanded","expandDescendants","setExpanded","collapseAll","_row$depth","updateFrozenColumns"],"sources":["../src/IrisGridTreeTableModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoize-one';\nimport {\n type BoundedAxisRange,\n type ExpandableGridModel,\n type GridCell,\n GridRange,\n type ModelIndex,\n} from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport {\n assertNotNull,\n EMPTY_ARRAY,\n EventShimCustomEvent,\n} from '@deephaven/utils';\nimport { type UIRow, type ColumnName } from './CommonTypes';\nimport IrisGridTableModelTemplate from './IrisGridTableModelTemplate';\nimport IrisGridModel, { type DisplayColumn } from './IrisGridModel';\nimport { type IrisGridThemeType } from './IrisGridTheme';\nimport IrisGridUtils from './IrisGridUtils';\n\nconst log = Log.module('IrisGridTreeTableModel');\n\nconst VirtualGroupColumn = Object.freeze({\n name: '__DH_UI_GROUP__',\n displayName: 'Group',\n type: TableUtils.dataType.STRING,\n constituentType: TableUtils.dataType.STRING,\n isPartitionColumn: false,\n isSortable: false,\n isProxy: true,\n description: 'Key column',\n index: -1,\n filter: () => {\n throw new Error('Filter not implemented for virtual column');\n },\n sort: () => {\n throw new Error('Sort not implemented for virtual column');\n },\n formatColor: () => {\n throw new Error('Color not implemented for virtual column');\n },\n get: () => {\n throw new Error('get not implemented for virtual column');\n },\n getFormat: () => {\n throw new Error('getFormat not implemented for virtual column');\n },\n formatNumber: () => {\n throw new Error('formatNumber not implemented for virtual column');\n },\n formatDate: () => {\n throw new Error('formatDate not implemented for virtual column');\n },\n});\n\nexport interface UITreeRow extends UIRow {\n isExpanded: boolean;\n hasChildren: boolean;\n depth: number;\n}\n\n/**\n * Check if a row is a UITreeRow\n * @param row The row to check\n * @returns True if the row is a UITreeRow and false otherwise\n */\nexport function isUITreeRow(row: unknown): row is UITreeRow {\n return (\n row != null &&\n typeof row === 'object' &&\n 'hasChildren' in row &&\n 'isExpanded' in row &&\n 'depth' in row &&\n typeof row.hasChildren === 'boolean' &&\n typeof row.isExpanded === 'boolean' &&\n typeof row.depth === 'number'\n );\n}\n\ntype LayoutTreeTable = DhType.TreeTable & {\n layoutHints?: null | DhType.LayoutHints;\n};\n\nfunction isLayoutTreeTable(table: DhType.TreeTable): table is LayoutTreeTable {\n return (table as LayoutTreeTable).layoutHints !== undefined;\n}\n\nexport function isIrisGridTreeTableModel(\n tableModel: IrisGridModel\n): tableModel is IrisGridTreeTableModel {\n return (tableModel as IrisGridTreeTableModel).showExtraGroupColumn != null;\n}\n\nclass IrisGridTreeTableModel\n extends IrisGridTableModelTemplate<DhType.TreeTable, UITreeRow>\n implements ExpandableGridModel\n{\n /** We keep a virtual column at the front that tracks the \"group\" that is expanded */\n private virtualColumns: DisplayColumn[];\n\n private showExtraGroupCol = true;\n\n constructor(\n dh: typeof DhType,\n table: DhType.TreeTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null,\n columnAlignmentMap = new Map<string, CanvasTextAlign>()\n ) {\n super(dh, table, formatter, inputTable, columnAlignmentMap);\n\n this.virtualColumns =\n this.showExtraGroupColumn && table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n }\n\n get showExtraGroupColumn(): boolean {\n return this.showExtraGroupCol;\n }\n\n set showExtraGroupColumn(showExtraGroupCol: boolean) {\n if (this.showExtraGroupCol === showExtraGroupCol) {\n return;\n }\n this.showExtraGroupCol = showExtraGroupCol;\n this.updateVirtualColumns();\n }\n\n updateVirtualColumns(): void {\n this.virtualColumns =\n this.showExtraGroupColumn && this.table.groupedColumns.length > 1\n ? [VirtualGroupColumn]\n : [];\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: this.columns,\n })\n );\n }\n\n applyBufferedViewport(\n viewportTop: number,\n viewportBottom: number,\n columns: DhType.Column[]\n ): void {\n const viewportColumns = [\n // Need to always fetch the grouped columns so we always have key data for the rows\n // Used to display our virtual key column\n ...this.table.groupedColumns,\n ...columns.filter(\n c =>\n !this.virtualColumns.includes(c) && !this.groupedColumns.includes(c)\n ),\n ];\n this.table.setViewport(viewportTop, viewportBottom, viewportColumns);\n }\n\n textForCell(x: ModelIndex, y: ModelIndex): string {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n if (row != null && column != null) {\n if (!row.hasChildren && column.constituentType != null) {\n const value = this.valueForCell(x, y);\n const text = this.displayString(\n value,\n column.constituentType,\n column.name\n );\n\n if (TableUtils.isTextType(this.columns[x]?.type)) {\n if (value === null) {\n return this.formatter.showNullStrings ? 'null' : '';\n }\n\n if (text === '') {\n return this.formatter.showEmptyStrings ? 'empty' : '';\n }\n }\n\n return text;\n }\n\n // Show empty string instead of null in rollup grouping columns (issue #1483)\n if (\n row.hasChildren &&\n row.depth <= x + 1 &&\n this.valueForCell(x, y) === null &&\n this.getCachedGroupedColumnSet(this.groupedColumns).has(x)\n ) {\n return '';\n }\n }\n\n return super.textForCell(x, y);\n }\n\n colorForCell(x: ModelIndex, y: ModelIndex, theme: IrisGridThemeType): string {\n const data = this.dataForCell(x, y);\n if (data) {\n const { format, value } = data;\n if (value == null || value === '') {\n assertNotNull(theme.nullStringColor);\n return theme.nullStringColor;\n }\n if (format?.color != null && format.color !== '') {\n return format.color;\n }\n\n // Fallback to formatting based on the value/type of the cell\n if (value != null) {\n const column = this.sourceColumn(x, y);\n const row = this.row(y);\n assertNotNull(row);\n\n let columnTypeForFormatting = column.type;\n\n // For tree table leaf nodes, use the constituent type for formatting\n if (\n isUITreeRow(row) &&\n row.hasChildren === false &&\n column.constituentType != null\n ) {\n columnTypeForFormatting = column.constituentType;\n }\n\n return IrisGridUtils.colorForValue(\n theme,\n columnTypeForFormatting,\n column.name,\n value\n );\n }\n }\n\n return theme.textColor;\n }\n\n textAlignForCell(x: ModelIndex, y: ModelIndex): CanvasTextAlign {\n const column = this.sourceColumn(x, y);\n\n const userTextAlignment = this.columnAlignmentMap?.get(column.name);\n if (userTextAlignment != null) {\n return userTextAlignment;\n }\n\n const row = this.row(y);\n let typeForFormatting = column.type;\n\n // For tree table leaf nodes, use the constituent type for formatting\n if (\n isUITreeRow(row) &&\n row.hasChildren === false &&\n column.constituentType != null\n ) {\n typeForFormatting = column.constituentType;\n }\n\n return IrisGridUtils.textAlignForValue(typeForFormatting, column.name);\n }\n\n extractViewportRow(row: DhType.TreeRow, columns: DhType.Column[]): UITreeRow {\n const { isExpanded, hasChildren, depth } = row;\n const extractedRow = super.extractViewportRow(row, columns);\n const modifiedData = new Map(extractedRow.data);\n if (hasChildren) {\n for (let i = 0; i < this.virtualColumns.length; i += 1) {\n const key = i + (depth - 1) + (this.virtualColumns.length - 1);\n const cellData = modifiedData.get(key);\n if (cellData == null) {\n log.warn('Missing key data for virtual column', i, depth, key, row);\n } else {\n modifiedData.set(i, cellData);\n }\n }\n }\n\n return {\n ...extractedRow,\n data: modifiedData,\n isExpanded,\n hasChildren,\n depth,\n };\n }\n\n async snapshot(\n ranges: GridRange[],\n includeHeaders?: boolean,\n formatValue: (value: unknown, column: DhType.Column) => unknown = value =>\n value\n ): Promise<unknown[][]> {\n assertNotNull(this.viewport);\n assertNotNull(this.viewportData);\n const columns = this.viewport.columns ?? this.columns;\n const result = [];\n\n if (includeHeaders != null && includeHeaders) {\n result.push(columns.map(c => c.name));\n }\n\n const viewportRange = new GridRange(\n 0,\n this.viewportData.offset,\n columns.length,\n this.viewportData.offset + this.viewportData.rows.length - 1\n );\n\n for (let i = 0; i < ranges.length; i += 1) {\n const intersection = GridRange.intersection(viewportRange, ranges[i]);\n\n assertNotNull(intersection);\n assertNotNull(intersection.startRow);\n assertNotNull(intersection.endRow);\n\n for (let r = intersection.startRow; r <= intersection.endRow; r += 1) {\n const resultRow = [];\n const viewportRow =\n this.viewportData.rows[r - this.viewportData.offset];\n assertNotNull(intersection.startColumn);\n assertNotNull(intersection.endColumn);\n for (\n let c = intersection.startColumn;\n c <= intersection.endColumn;\n c += 1\n ) {\n resultRow.push(\n formatValue(viewportRow.data.get(c)?.value, this.columns[c])\n );\n }\n result.push(resultRow);\n }\n }\n\n return result;\n }\n\n get columns(): DhType.Column[] {\n return this.getCachedColumns(this.virtualColumns, super.columns);\n }\n\n get aggregatedColumns(): readonly DhType.Column[] {\n return this.isAggregatedColumnsAvailable\n ? this.table.aggregatedColumns\n : EMPTY_ARRAY;\n }\n\n get groupedColumns(): readonly DhType.Column[] {\n return this.getCachedGroupColumns(\n this.virtualColumns,\n this.table.groupedColumns\n );\n }\n\n sourceForCell(column: ModelIndex, row: ModelIndex): GridCell {\n if (column >= this.virtualColumns.length) {\n return { column, row };\n }\n const depth = this.depthForRow(row);\n return { column: column + depth, row };\n }\n\n sourceColumn(column: ModelIndex, row: ModelIndex): DhType.Column {\n if (column >= this.virtualColumns.length) {\n return super.sourceColumn(column, row);\n }\n\n const depth = this.depthForRow(row);\n return this.columns[column + depth];\n }\n\n getClearFilterRange(column: ModelIndex): BoundedAxisRange | null {\n if (column >= this.virtualColumns.length) {\n return super.getClearFilterRange(column);\n }\n // Source for the proxied column could be any of the grouped columns.\n // Return the range of columns matching the grouped columns.\n return [this.virtualColumns.length, this.groupedColumns.length];\n }\n\n get layoutHints(): DhType.LayoutHints | null | undefined {\n if (isLayoutTreeTable(this.table)) {\n return this.table.layoutHints;\n }\n return undefined;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isAggregatedColumnsAvailable(): boolean {\n return (\n // aggregatedColumns are not available in the Legacy API\n // and Core API before v0.39.4\n this.table.aggregatedColumns !== undefined\n );\n }\n\n get isExpandAllAvailable(): boolean {\n return this.table.expandAll !== undefined;\n }\n\n get isChartBuilderAvailable(): boolean {\n return false;\n }\n\n get isOrganizeColumnsAvailable(): boolean {\n return true;\n }\n\n get isSelectDistinctAvailable(): boolean {\n return false;\n }\n\n get isReversible(): boolean {\n return false;\n }\n\n isFilterable(columnIndex: ModelIndex): boolean {\n return this.getCachedFilterableColumnSet(\n this.columns,\n this.isAggregatedColumnsAvailable,\n this.aggregatedColumns,\n this.groupedColumns,\n this.virtualColumns\n ).has(columnIndex);\n }\n\n isColumnMovable(column: ModelIndex): boolean {\n return column >= this.groupedColumns.length;\n }\n\n isRowExpandable(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.hasChildren ?? false;\n }\n\n isRowExpanded(y: ModelIndex): boolean {\n const row = this.row(y);\n return row?.isExpanded ?? false;\n }\n\n setRowExpanded(\n y: ModelIndex,\n isExpanded: boolean,\n expandDescendants = false\n ): void {\n if (this.isExpandAllAvailable) {\n this.table.setExpanded(y, isExpanded, expandDescendants);\n } else {\n this.table.setExpanded(y, isExpanded);\n }\n }\n\n expandAll(): void {\n if (this.table.expandAll != null) {\n this.table.expandAll();\n }\n }\n\n collapseAll(): void {\n if (this.table.collapseAll != null) {\n this.table.collapseAll();\n }\n }\n\n depthForRow(y: ModelIndex): ModelIndex {\n const row = this.row(y);\n return (row?.depth ?? 1) - 1;\n }\n\n getCachedColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableColumns]\n );\n\n getCachedGroupColumns = memoize(\n (\n virtualColumns: readonly DhType.Column[],\n tableGroupedColumns: readonly DhType.Column[]\n ) => [...virtualColumns, ...tableGroupedColumns]\n );\n\n getCachedFilterableColumnSet = memoize(\n (\n columns: readonly DhType.Column[],\n isAggregatedColumnsAvailable: boolean,\n aggregatedColumns: readonly DhType.Column[],\n groupedColumns: readonly DhType.Column[],\n virtualColumns: readonly DhType.Column[]\n ) => {\n if (isAggregatedColumnsAvailable) {\n return new Set(\n // Virtual and aggregated columns are not filterable\n columns\n .filter(\n c => !virtualColumns.includes(c) && !aggregatedColumns.includes(c)\n )\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n );\n }\n // For compatibility with the Enterprise JSAPI,\n // only groupedColumns are filterable on rollup tables\n // if aggregatedColumns API is not available.\n return new Set(\n (groupedColumns?.length > 0 ? groupedColumns : columns)\n .filter(c => !virtualColumns.includes(c))\n .map(c1 => columns.findIndex(c2 => c1.name === c2.name))\n );\n }\n );\n\n getCachedGroupedColumnSet = memoize(\n (groupedColumns: readonly DhType.Column[]) =>\n new Set(\n groupedColumns.map(c1 =>\n this.columns.findIndex(c2 => c1.name === c2.name)\n )\n )\n );\n\n updateFrozenColumns(columns: ColumnName[]): void {\n if (columns.length > 0) {\n throw new Error('Cannot freeze columns on a tree table');\n }\n }\n}\n\nexport default IrisGridTreeTableModel;\n"],"mappings":";;;;;;;AAAA;AACA,OAAOA,OAAO,MAAM,aAAa;AACjC,SAIEC,SAAS,QAEJ,iBAAiB;AAExB,OAAOC,GAAG,MAAM,gBAAgB;AAChC,SAASC,SAAS,EAAEC,UAAU,QAAQ,wBAAwB;AAC9D,SACEC,aAAa,EACbC,WAAW,EACXC,oBAAoB,QACf,kBAAkB;AAAC,OAEnBC,0BAA0B;AAAA,OAC1BC,aAAa;AAAA,OAEbC,aAAa;AAEpB,IAAMC,GAAG,GAAGT,GAAG,CAACU,MAAM,CAAC,wBAAwB,CAAC;AAEhD,IAAMC,kBAAkB,GAAGC,MAAM,CAACC,MAAM,CAAC;EACvCC,IAAI,EAAE,iBAAiB;EACvBC,WAAW,EAAE,OAAO;EACpBC,IAAI,EAAEd,UAAU,CAACe,QAAQ,CAACC,MAAM;EAChCC,eAAe,EAAEjB,UAAU,CAACe,QAAQ,CAACC,MAAM;EAC3CE,iBAAiB,EAAE,KAAK;EACxBC,UAAU,EAAE,KAAK;EACjBC,OAAO,EAAE,IAAI;EACbC,WAAW,EAAE,YAAY;EACzBC,KAAK,EAAE,CAAC,CAAC;EACTC,MAAM,EAAEA,CAAA,KAAM;IACZ,MAAM,IAAIC,KAAK,CAAC,2CAA2C,CAAC;EAC9D,CAAC;EACDC,IAAI,EAAEA,CAAA,KAAM;IACV,MAAM,IAAID,KAAK,CAAC,yCAAyC,CAAC;EAC5D,CAAC;EACDE,WAAW,EAAEA,CAAA,KAAM;IACjB,MAAM,IAAIF,KAAK,CAAC,0CAA0C,CAAC;EAC7D,CAAC;EACDG,GAAG,EAAEA,CAAA,KAAM;IACT,MAAM,IAAIH,KAAK,CAAC,wCAAwC,CAAC;EAC3D,CAAC;EACDI,SAAS,EAAEA,CAAA,KAAM;IACf,MAAM,IAAIJ,KAAK,CAAC,8CAA8C,CAAC;EACjE,CAAC;EACDK,YAAY,EAAEA,CAAA,KAAM;IAClB,MAAM,IAAIL,KAAK,CAAC,iDAAiD,CAAC;EACpE,CAAC;EACDM,UAAU,EAAEA,CAAA,KAAM;IAChB,MAAM,IAAIN,KAAK,CAAC,+CAA+C,CAAC;EAClE;AACF,CAAC,CAAC;AAQF;AACA;AACA;AACA;AACA;AACA,OAAO,SAASO,WAAWA,CAACC,GAAY,EAAoB;EAC1D,OACEA,GAAG,IAAI,IAAI,IACX,OAAOA,GAAG,KAAK,QAAQ,IACvB,aAAa,IAAIA,GAAG,IACpB,YAAY,IAAIA,GAAG,IACnB,OAAO,IAAIA,GAAG,IACd,OAAOA,GAAG,CAACC,WAAW,KAAK,SAAS,IACpC,OAAOD,GAAG,CAACE,UAAU,KAAK,SAAS,IACnC,OAAOF,GAAG,CAACG,KAAK,KAAK,QAAQ;AAEjC;AAMA,SAASC,iBAAiBA,CAACC,KAAuB,EAA4B;EAC5E,OAAQA,KAAK,CAAqBC,WAAW,KAAKC,SAAS;AAC7D;AAEA,OAAO,SAASC,wBAAwBA,CACtCC,UAAyB,EACa;EACtC,OAAQA,UAAU,CAA4BC,oBAAoB,IAAI,IAAI;AAC5E;AAEA,MAAMC,sBAAsB,SAClBvC,0BAA0B,CAEpC;EAMEwC,WAAWA,CACTC,EAAiB,EACjBR,KAAuB,EAIvB;IAAA,IAHAS,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,IAAIhD,SAAS,CAAC8C,EAAE,CAAC;IAAA,IAC7BI,UAAoC,GAAAF,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,IAAI;IAAA,IAC3CG,kBAAkB,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,IAAII,GAAG,CAA0B,CAAC;IAEvD,KAAK,CAACN,EAAE,EAAER,KAAK,EAAES,SAAS,EAAEG,UAAU,EAAEC,kBAAkB,CAAC;IAZ7D;IAAAE,eAAA;IAAAA,eAAA,4BAG4B,IAAI;IAAAA,eAAA,2BAoXbxD,OAAO,CACxB,CACEyD,cAAwC,EACxCC,YAAsC,KACnC,CAAC,GAAGD,cAAc,EAAE,GAAGC,YAAY,CAC1C,CAAC;IAAAF,eAAA,gCAEuBxD,OAAO,CAC7B,CACEyD,cAAwC,EACxCE,mBAA6C,KAC1C,CAAC,GAAGF,cAAc,EAAE,GAAGE,mBAAmB,CACjD,CAAC;IAAAH,eAAA,uCAE8BxD,OAAO,CACpC,CACE4D,OAAiC,EACjCC,4BAAqC,EACrCC,iBAA2C,EAC3CC,cAAwC,EACxCN,cAAwC,KACrC;MACH,IAAII,4BAA4B,EAAE;QAChC,OAAO,IAAIG,GAAG;QACZ;QACAJ,OAAO,CACJjC,MAAM,CACLsC,CAAC,IAAI,CAACR,cAAc,CAACS,QAAQ,CAACD,CAAC,CAAC,IAAI,CAACH,iBAAiB,CAACI,QAAQ,CAACD,CAAC,CACnE,CAAC,CACAE,GAAG,CAACC,EAAE,IAAIR,OAAO,CAACS,SAAS,CAACC,EAAE,IAAIF,EAAE,CAACpD,IAAI,KAAKsD,EAAE,CAACtD,IAAI,CAAC,CAC3D,CAAC;MACH;MACA;MACA;MACA;MACA,OAAO,IAAIgD,GAAG,CACZ,CAAC,CAAAD,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEX,MAAM,IAAG,CAAC,GAAGW,cAAc,GAAGH,OAAO,EACnDjC,MAAM,CAACsC,CAAC,IAAI,CAACR,cAAc,CAACS,QAAQ,CAACD,CAAC,CAAC,CAAC,CACxCE,GAAG,CAACC,EAAE,IAAIR,OAAO,CAACS,SAAS,CAACC,EAAE,IAAIF,EAAE,CAACpD,IAAI,KAAKsD,EAAE,CAACtD,IAAI,CAAC,CAC3D,CAAC;IACH,CACF,CAAC;IAAAwC,eAAA,oCAE2BxD,OAAO,CAChC+D,cAAwC,IACvC,IAAIC,GAAG,CACLD,cAAc,CAACI,GAAG,CAACC,EAAE,IACnB,IAAI,CAACR,OAAO,CAACS,SAAS,CAACC,EAAE,IAAIF,EAAE,CAACpD,IAAI,KAAKsD,EAAE,CAACtD,IAAI,CAClD,CACF,CACJ,CAAC;IA3ZC,IAAI,CAACyC,cAAc,GACjB,IAAI,CAACX,oBAAoB,IAAIL,KAAK,CAACsB,cAAc,CAACX,MAAM,GAAG,CAAC,GACxD,CAACvC,kBAAkB,CAAC,GACpB,EAAE;EACV;EAEA,IAAIiC,oBAAoBA,CAAA,EAAY;IAClC,OAAO,IAAI,CAACyB,iBAAiB;EAC/B;EAEA,IAAIzB,oBAAoBA,CAACyB,iBAA0B,EAAE;IACnD,IAAI,IAAI,CAACA,iBAAiB,KAAKA,iBAAiB,EAAE;MAChD;IACF;IACA,IAAI,CAACA,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACC,oBAAoB,CAAC,CAAC;EAC7B;EAEAA,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,CAACf,cAAc,GACjB,IAAI,CAACX,oBAAoB,IAAI,IAAI,CAACL,KAAK,CAACsB,cAAc,CAACX,MAAM,GAAG,CAAC,GAC7D,CAACvC,kBAAkB,CAAC,GACpB,EAAE;IACR,IAAI,CAAC4D,aAAa,CAChB,IAAIlE,oBAAoB,CAACE,aAAa,CAACiE,KAAK,CAACC,eAAe,EAAE;MAC5DC,MAAM,EAAE,IAAI,CAAChB;IACf,CAAC,CACH,CAAC;EACH;EAEAiB,qBAAqBA,CACnBC,WAAmB,EACnBC,cAAsB,EACtBnB,OAAwB,EAClB;IACN,IAAMoB,eAAe,GAAG;IACtB;IACA;IACA,GAAG,IAAI,CAACvC,KAAK,CAACsB,cAAc,EAC5B,GAAGH,OAAO,CAACjC,MAAM,CACfsC,CAAC,IACC,CAAC,IAAI,CAACR,cAAc,CAACS,QAAQ,CAACD,CAAC,CAAC,IAAI,CAAC,IAAI,CAACF,cAAc,CAACG,QAAQ,CAACD,CAAC,CACvE,CAAC,CACF;IACD,IAAI,CAACxB,KAAK,CAACwC,WAAW,CAACH,WAAW,EAAEC,cAAc,EAAEC,eAAe,CAAC;EACtE;EAEAE,WAAWA,CAACC,CAAa,EAAEC,CAAa,EAAU;IAChD,IAAMC,MAAM,GAAG,IAAI,CAACC,YAAY,CAACH,CAAC,EAAEC,CAAC,CAAC;IACtC,IAAMhD,GAAG,GAAG,IAAI,CAACA,GAAG,CAACgD,CAAC,CAAC;IACvB,IAAIhD,GAAG,IAAI,IAAI,IAAIiD,MAAM,IAAI,IAAI,EAAE;MACjC,IAAI,CAACjD,GAAG,CAACC,WAAW,IAAIgD,MAAM,CAAChE,eAAe,IAAI,IAAI,EAAE;QAAA,IAAAkE,eAAA;QACtD,IAAMC,KAAK,GAAG,IAAI,CAACC,YAAY,CAACN,CAAC,EAAEC,CAAC,CAAC;QACrC,IAAMM,IAAI,GAAG,IAAI,CAACC,aAAa,CAC7BH,KAAK,EACLH,MAAM,CAAChE,eAAe,EACtBgE,MAAM,CAACrE,IACT,CAAC;QAED,IAAIZ,UAAU,CAACwF,UAAU,EAAAL,eAAA,GAAC,IAAI,CAAC3B,OAAO,CAACuB,CAAC,CAAC,cAAAI,eAAA,uBAAfA,eAAA,CAAiBrE,IAAI,CAAC,EAAE;UAChD,IAAIsE,KAAK,KAAK,IAAI,EAAE;YAClB,OAAO,IAAI,CAACtC,SAAS,CAAC2C,eAAe,GAAG,MAAM,GAAG,EAAE;UACrD;UAEA,IAAIH,IAAI,KAAK,EAAE,EAAE;YACf,OAAO,IAAI,CAACxC,SAAS,CAAC4C,gBAAgB,GAAG,OAAO,GAAG,EAAE;UACvD;QACF;QAEA,OAAOJ,IAAI;MACb;;MAEA;MACA,IACEtD,GAAG,CAACC,WAAW,IACfD,GAAG,CAACG,KAAK,IAAI4C,CAAC,GAAG,CAAC,IAClB,IAAI,CAACM,YAAY,CAACN,CAAC,EAAEC,CAAC,CAAC,KAAK,IAAI,IAChC,IAAI,CAACW,yBAAyB,CAAC,IAAI,CAAChC,cAAc,CAAC,CAACiC,GAAG,CAACb,CAAC,CAAC,EAC1D;QACA,OAAO,EAAE;MACX;IACF;IAEA,OAAO,KAAK,CAACD,WAAW,CAACC,CAAC,EAAEC,CAAC,CAAC;EAChC;EAEAa,YAAYA,CAACd,CAAa,EAAEC,CAAa,EAAEc,KAAwB,EAAU;IAC3E,IAAMC,IAAI,GAAG,IAAI,CAACC,WAAW,CAACjB,CAAC,EAAEC,CAAC,CAAC;IACnC,IAAIe,IAAI,EAAE;MACR,IAAM;QAAEE,MAAM;QAAEb;MAAM,CAAC,GAAGW,IAAI;MAC9B,IAAIX,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;QACjCnF,aAAa,CAAC6F,KAAK,CAACI,eAAe,CAAC;QACpC,OAAOJ,KAAK,CAACI,eAAe;MAC9B;MACA,IAAI,CAAAD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEE,KAAK,KAAI,IAAI,IAAIF,MAAM,CAACE,KAAK,KAAK,EAAE,EAAE;QAChD,OAAOF,MAAM,CAACE,KAAK;MACrB;;MAEA;MACA,IAAIf,KAAK,IAAI,IAAI,EAAE;QACjB,IAAMH,MAAM,GAAG,IAAI,CAACC,YAAY,CAACH,CAAC,EAAEC,CAAC,CAAC;QACtC,IAAMhD,GAAG,GAAG,IAAI,CAACA,GAAG,CAACgD,CAAC,CAAC;QACvB/E,aAAa,CAAC+B,GAAG,CAAC;QAElB,IAAIoE,uBAAuB,GAAGnB,MAAM,CAACnE,IAAI;;QAEzC;QACA,IACEiB,WAAW,CAACC,GAAG,CAAC,IAChBA,GAAG,CAACC,WAAW,KAAK,KAAK,IACzBgD,MAAM,CAAChE,eAAe,IAAI,IAAI,EAC9B;UACAmF,uBAAuB,GAAGnB,MAAM,CAAChE,eAAe;QAClD;QAEA,OAAOX,aAAa,CAAC+F,aAAa,CAChCP,KAAK,EACLM,uBAAuB,EACvBnB,MAAM,CAACrE,IAAI,EACXwE,KACF,CAAC;MACH;IACF;IAEA,OAAOU,KAAK,CAACQ,SAAS;EACxB;EAEAC,gBAAgBA,CAACxB,CAAa,EAAEC,CAAa,EAAmB;IAAA,IAAAwB,qBAAA;IAC9D,IAAMvB,MAAM,GAAG,IAAI,CAACC,YAAY,CAACH,CAAC,EAAEC,CAAC,CAAC;IAEtC,IAAMyB,iBAAiB,IAAAD,qBAAA,GAAG,IAAI,CAACtD,kBAAkB,cAAAsD,qBAAA,uBAAvBA,qBAAA,CAAyB7E,GAAG,CAACsD,MAAM,CAACrE,IAAI,CAAC;IACnE,IAAI6F,iBAAiB,IAAI,IAAI,EAAE;MAC7B,OAAOA,iBAAiB;IAC1B;IAEA,IAAMzE,GAAG,GAAG,IAAI,CAACA,GAAG,CAACgD,CAAC,CAAC;IACvB,IAAI0B,iBAAiB,GAAGzB,MAAM,CAACnE,IAAI;;IAEnC;IACA,IACEiB,WAAW,CAACC,GAAG,CAAC,IAChBA,GAAG,CAACC,WAAW,KAAK,KAAK,IACzBgD,MAAM,CAAChE,eAAe,IAAI,IAAI,EAC9B;MACAyF,iBAAiB,GAAGzB,MAAM,CAAChE,eAAe;IAC5C;IAEA,OAAOX,aAAa,CAACqG,iBAAiB,CAACD,iBAAiB,EAAEzB,MAAM,CAACrE,IAAI,CAAC;EACxE;EAEAgG,kBAAkBA,CAAC5E,GAAmB,EAAEwB,OAAwB,EAAa;IAC3E,IAAM;MAAEtB,UAAU;MAAED,WAAW;MAAEE;IAAM,CAAC,GAAGH,GAAG;IAC9C,IAAM6E,YAAY,GAAG,KAAK,CAACD,kBAAkB,CAAC5E,GAAG,EAAEwB,OAAO,CAAC;IAC3D,IAAMsD,YAAY,GAAG,IAAI3D,GAAG,CAAC0D,YAAY,CAACd,IAAI,CAAC;IAC/C,IAAI9D,WAAW,EAAE;MACf,KAAK,IAAI8E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAC1D,cAAc,CAACL,MAAM,EAAE+D,CAAC,IAAI,CAAC,EAAE;QACtD,IAAMC,GAAG,GAAGD,CAAC,IAAI5E,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAACkB,cAAc,CAACL,MAAM,GAAG,CAAC,CAAC;QAC9D,IAAMiE,QAAQ,GAAGH,YAAY,CAACnF,GAAG,CAACqF,GAAG,CAAC;QACtC,IAAIC,QAAQ,IAAI,IAAI,EAAE;UACpB1G,GAAG,CAAC2G,IAAI,CAAC,qCAAqC,EAAEH,CAAC,EAAE5E,KAAK,EAAE6E,GAAG,EAAEhF,GAAG,CAAC;QACrE,CAAC,MAAM;UACL8E,YAAY,CAACK,GAAG,CAACJ,CAAC,EAAEE,QAAQ,CAAC;QAC/B;MACF;IACF;IAEA,OAAAG,aAAA,CAAAA,aAAA,KACKP,YAAY;MACfd,IAAI,EAAEe,YAAY;MAClB5E,UAAU;MACVD,WAAW;MACXE;IAAK;EAET;EAEMkF,QAAQA,CACZC,MAAmB,EACnBC,cAAwB,EAGF;IAAA,IAAAC,UAAA,GAAAzE,SAAA;MAAA0E,KAAA;IAAA,OAAAC,iBAAA;MAAA,IAAAC,qBAAA;MAAA,IAFtBC,WAA+D,GAAAJ,UAAA,CAAAxE,MAAA,QAAAwE,UAAA,QAAAjF,SAAA,GAAAiF,UAAA,MAAGpC,KAAK,IACrEA,KAAK;MAEPnF,aAAa,CAACwH,KAAI,CAACI,QAAQ,CAAC;MAC5B5H,aAAa,CAACwH,KAAI,CAACK,YAAY,CAAC;MAChC,IAAMtE,OAAO,IAAAmE,qBAAA,GAAGF,KAAI,CAACI,QAAQ,CAACrE,OAAO,cAAAmE,qBAAA,cAAAA,qBAAA,GAAIF,KAAI,CAACjE,OAAO;MACrD,IAAMuE,MAAM,GAAG,EAAE;MAEjB,IAAIR,cAAc,IAAI,IAAI,IAAIA,cAAc,EAAE;QAC5CQ,MAAM,CAACC,IAAI,CAACxE,OAAO,CAACO,GAAG,CAACF,CAAC,IAAIA,CAAC,CAACjD,IAAI,CAAC,CAAC;MACvC;MAEA,IAAMqH,aAAa,GAAG,IAAIpI,SAAS,CACjC,CAAC,EACD4H,KAAI,CAACK,YAAY,CAACI,MAAM,EACxB1E,OAAO,CAACR,MAAM,EACdyE,KAAI,CAACK,YAAY,CAACI,MAAM,GAAGT,KAAI,CAACK,YAAY,CAACK,IAAI,CAACnF,MAAM,GAAG,CAC7D,CAAC;MAED,KAAK,IAAI+D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGO,MAAM,CAACtE,MAAM,EAAE+D,CAAC,IAAI,CAAC,EAAE;QACzC,IAAMqB,YAAY,GAAGvI,SAAS,CAACuI,YAAY,CAACH,aAAa,EAAEX,MAAM,CAACP,CAAC,CAAC,CAAC;QAErE9G,aAAa,CAACmI,YAAY,CAAC;QAC3BnI,aAAa,CAACmI,YAAY,CAACC,QAAQ,CAAC;QACpCpI,aAAa,CAACmI,YAAY,CAACE,MAAM,CAAC;QAElC,KAAK,IAAIC,CAAC,GAAGH,YAAY,CAACC,QAAQ,EAAEE,CAAC,IAAIH,YAAY,CAACE,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;UACpE,IAAMC,SAAS,GAAG,EAAE;UACpB,IAAMC,WAAW,GACfhB,KAAI,CAACK,YAAY,CAACK,IAAI,CAACI,CAAC,GAAGd,KAAI,CAACK,YAAY,CAACI,MAAM,CAAC;UACtDjI,aAAa,CAACmI,YAAY,CAACM,WAAW,CAAC;UACvCzI,aAAa,CAACmI,YAAY,CAACO,SAAS,CAAC;UACrC,KACE,IAAI9E,CAAC,GAAGuE,YAAY,CAACM,WAAW,EAChC7E,CAAC,IAAIuE,YAAY,CAACO,SAAS,EAC3B9E,CAAC,IAAI,CAAC,EACN;YAAA,IAAA+E,qBAAA;YACAJ,SAAS,CAACR,IAAI,CACZJ,WAAW,EAAAgB,qBAAA,GAACH,WAAW,CAAC1C,IAAI,CAACpE,GAAG,CAACkC,CAAC,CAAC,cAAA+E,qBAAA,uBAAvBA,qBAAA,CAAyBxD,KAAK,EAAEqC,KAAI,CAACjE,OAAO,CAACK,CAAC,CAAC,CAC7D,CAAC;UACH;UACAkE,MAAM,CAACC,IAAI,CAACQ,SAAS,CAAC;QACxB;MACF;MAEA,OAAOT,MAAM;IAAC;EAChB;EAEA,IAAIvE,OAAOA,CAAA,EAAoB;IAC7B,OAAO,IAAI,CAACqF,gBAAgB,CAAC,IAAI,CAACxF,cAAc,EAAE,KAAK,CAACG,OAAO,CAAC;EAClE;EAEA,IAAIE,iBAAiBA,CAAA,EAA6B;IAChD,OAAO,IAAI,CAACD,4BAA4B,GACpC,IAAI,CAACpB,KAAK,CAACqB,iBAAiB,GAC5BxD,WAAW;EACjB;EAEA,IAAIyD,cAAcA,CAAA,EAA6B;IAC7C,OAAO,IAAI,CAACmF,qBAAqB,CAC/B,IAAI,CAACzF,cAAc,EACnB,IAAI,CAAChB,KAAK,CAACsB,cACb,CAAC;EACH;EAEAoF,aAAaA,CAAC9D,MAAkB,EAAEjD,GAAe,EAAY;IAC3D,IAAIiD,MAAM,IAAI,IAAI,CAAC5B,cAAc,CAACL,MAAM,EAAE;MACxC,OAAO;QAAEiC,MAAM;QAAEjD;MAAI,CAAC;IACxB;IACA,IAAMG,KAAK,GAAG,IAAI,CAAC6G,WAAW,CAAChH,GAAG,CAAC;IACnC,OAAO;MAAEiD,MAAM,EAAEA,MAAM,GAAG9C,KAAK;MAAEH;IAAI,CAAC;EACxC;EAEAkD,YAAYA,CAACD,MAAkB,EAAEjD,GAAe,EAAiB;IAC/D,IAAIiD,MAAM,IAAI,IAAI,CAAC5B,cAAc,CAACL,MAAM,EAAE;MACxC,OAAO,KAAK,CAACkC,YAAY,CAACD,MAAM,EAAEjD,GAAG,CAAC;IACxC;IAEA,IAAMG,KAAK,GAAG,IAAI,CAAC6G,WAAW,CAAChH,GAAG,CAAC;IACnC,OAAO,IAAI,CAACwB,OAAO,CAACyB,MAAM,GAAG9C,KAAK,CAAC;EACrC;EAEA8G,mBAAmBA,CAAChE,MAAkB,EAA2B;IAC/D,IAAIA,MAAM,IAAI,IAAI,CAAC5B,cAAc,CAACL,MAAM,EAAE;MACxC,OAAO,KAAK,CAACiG,mBAAmB,CAAChE,MAAM,CAAC;IAC1C;IACA;IACA;IACA,OAAO,CAAC,IAAI,CAAC5B,cAAc,CAACL,MAAM,EAAE,IAAI,CAACW,cAAc,CAACX,MAAM,CAAC;EACjE;EAEA,IAAIV,WAAWA,CAAA,EAA0C;IACvD,IAAIF,iBAAiB,CAAC,IAAI,CAACC,KAAK,CAAC,EAAE;MACjC,OAAO,IAAI,CAACA,KAAK,CAACC,WAAW;IAC/B;IACA,OAAOC,SAAS;EAClB;EAEA,IAAI2G,iBAAiBA,CAAA,EAAY;IAC/B,OAAO,IAAI;EACb;EAEA,IAAIzF,4BAA4BA,CAAA,EAAY;IAC1C;MACE;MACA;MACA,IAAI,CAACpB,KAAK,CAACqB,iBAAiB,KAAKnB;IAAS;EAE9C;EAEA,IAAI4G,oBAAoBA,CAAA,EAAY;IAClC,OAAO,IAAI,CAAC9G,KAAK,CAAC+G,SAAS,KAAK7G,SAAS;EAC3C;EAEA,IAAI8G,uBAAuBA,CAAA,EAAY;IACrC,OAAO,KAAK;EACd;EAEA,IAAIC,0BAA0BA,CAAA,EAAY;IACxC,OAAO,IAAI;EACb;EAEA,IAAIC,yBAAyBA,CAAA,EAAY;IACvC,OAAO,KAAK;EACd;EAEA,IAAIC,YAAYA,CAAA,EAAY;IAC1B,OAAO,KAAK;EACd;EAEAC,YAAYA,CAACC,WAAuB,EAAW;IAC7C,OAAO,IAAI,CAACC,4BAA4B,CACtC,IAAI,CAACnG,OAAO,EACZ,IAAI,CAACC,4BAA4B,EACjC,IAAI,CAACC,iBAAiB,EACtB,IAAI,CAACC,cAAc,EACnB,IAAI,CAACN,cACP,CAAC,CAACuC,GAAG,CAAC8D,WAAW,CAAC;EACpB;EAEAE,eAAeA,CAAC3E,MAAkB,EAAW;IAC3C,OAAOA,MAAM,IAAI,IAAI,CAACtB,cAAc,CAACX,MAAM;EAC7C;EAEA6G,eAAeA,CAAC7E,CAAa,EAAW;IAAA,IAAA8E,gBAAA;IACtC,IAAM9H,GAAG,GAAG,IAAI,CAACA,GAAG,CAACgD,CAAC,CAAC;IACvB,QAAA8E,gBAAA,GAAO9H,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEC,WAAW,cAAA6H,gBAAA,cAAAA,gBAAA,GAAI,KAAK;EAClC;EAEAC,aAAaA,CAAC/E,CAAa,EAAW;IAAA,IAAAgF,eAAA;IACpC,IAAMhI,GAAG,GAAG,IAAI,CAACA,GAAG,CAACgD,CAAC,CAAC;IACvB,QAAAgF,eAAA,GAAOhI,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEE,UAAU,cAAA8H,eAAA,cAAAA,eAAA,GAAI,KAAK;EACjC;EAEAC,cAAcA,CACZjF,CAAa,EACb9C,UAAmB,EAEb;IAAA,IADNgI,iBAAiB,GAAAnH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAR,SAAA,GAAAQ,SAAA,MAAG,KAAK;IAEzB,IAAI,IAAI,CAACoG,oBAAoB,EAAE;MAC7B,IAAI,CAAC9G,KAAK,CAAC8H,WAAW,CAACnF,CAAC,EAAE9C,UAAU,EAAEgI,iBAAiB,CAAC;IAC1D,CAAC,MAAM;MACL,IAAI,CAAC7H,KAAK,CAAC8H,WAAW,CAACnF,CAAC,EAAE9C,UAAU,CAAC;IACvC;EACF;EAEAkH,SAASA,CAAA,EAAS;IAChB,IAAI,IAAI,CAAC/G,KAAK,CAAC+G,SAAS,IAAI,IAAI,EAAE;MAChC,IAAI,CAAC/G,KAAK,CAAC+G,SAAS,CAAC,CAAC;IACxB;EACF;EAEAgB,WAAWA,CAAA,EAAS;IAClB,IAAI,IAAI,CAAC/H,KAAK,CAAC+H,WAAW,IAAI,IAAI,EAAE;MAClC,IAAI,CAAC/H,KAAK,CAAC+H,WAAW,CAAC,CAAC;IAC1B;EACF;EAEApB,WAAWA,CAAChE,CAAa,EAAc;IAAA,IAAAqF,UAAA;IACrC,IAAMrI,GAAG,GAAG,IAAI,CAACA,GAAG,CAACgD,CAAC,CAAC;IACvB,OAAO,EAAAqF,UAAA,GAACrI,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEG,KAAK,cAAAkI,UAAA,cAAAA,UAAA,GAAI,CAAC,IAAI,CAAC;EAC9B;EAsDAC,mBAAmBA,CAAC9G,OAAqB,EAAQ;IAC/C,IAAIA,OAAO,CAACR,MAAM,GAAG,CAAC,EAAE;MACtB,MAAM,IAAIxB,KAAK,CAAC,uCAAuC,CAAC;IAC1D;EACF;AACF;AAEA,eAAemB,sBAAsB","ignoreList":[]}