@deephaven/grid 0.31.2-beta.6 → 0.32.0

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 (45) hide show
  1. package/dist/Grid.d.ts +13 -4
  2. package/dist/Grid.d.ts.map +1 -1
  3. package/dist/Grid.js +77 -53
  4. package/dist/Grid.js.map +1 -1
  5. package/dist/GridMetricCalculator.d.ts +1 -9
  6. package/dist/GridMetricCalculator.d.ts.map +1 -1
  7. package/dist/GridMetricCalculator.js +4 -17
  8. package/dist/GridMetricCalculator.js.map +1 -1
  9. package/dist/GridModel.d.ts +10 -0
  10. package/dist/GridModel.d.ts.map +1 -1
  11. package/dist/GridModel.js +40 -4
  12. package/dist/GridModel.js.map +1 -1
  13. package/dist/GridRenderer.d.ts +14 -2
  14. package/dist/GridRenderer.d.ts.map +1 -1
  15. package/dist/GridRenderer.js +159 -18
  16. package/dist/GridRenderer.js.map +1 -1
  17. package/dist/GridTheme.d.ts +1 -0
  18. package/dist/GridTheme.d.ts.map +1 -1
  19. package/dist/GridTheme.js +1 -0
  20. package/dist/GridTheme.js.map +1 -1
  21. package/dist/GridUtils.d.ts +27 -0
  22. package/dist/GridUtils.d.ts.map +1 -1
  23. package/dist/GridUtils.js +39 -0
  24. package/dist/GridUtils.js.map +1 -1
  25. package/dist/MockGridModel.d.ts +8 -8
  26. package/dist/MockGridModel.d.ts.map +1 -1
  27. package/dist/MockGridModel.js.map +1 -1
  28. package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts.map +1 -1
  29. package/dist/mouse-handlers/GridRowMoveMouseHandler.js +1 -1
  30. package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
  31. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
  32. package/dist/mouse-handlers/GridRowTreeMouseHandler.js +1 -1
  33. package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
  34. package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
  35. package/dist/mouse-handlers/GridSeparatorMouseHandler.js +1 -1
  36. package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
  37. package/dist/mouse-handlers/GridTokenMouseHandler.d.ts +24 -0
  38. package/dist/mouse-handlers/GridTokenMouseHandler.d.ts.map +1 -0
  39. package/dist/mouse-handlers/GridTokenMouseHandler.js +143 -0
  40. package/dist/mouse-handlers/GridTokenMouseHandler.js.map +1 -0
  41. package/dist/mouse-handlers/index.d.ts +1 -0
  42. package/dist/mouse-handlers/index.d.ts.map +1 -1
  43. package/dist/mouse-handlers/index.js +1 -0
  44. package/dist/mouse-handlers/index.js.map +1 -1
  45. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"MockGridModel.d.ts","sourceRoot":"","sources":["../src/MockGridModel.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,EAAE,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,cAAM,aAAc,SAAQ,SAAU,YAAW,iBAAiB;IAChE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAE1B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAE7B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAE9B,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IAEjC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAE/B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAEhC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE5B,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;gBAErB,EACV,QAAqB,EACrB,WAAiB,EACjB,mBAAuB,EACvB,sBAA0B,EAC1B,uBAA2B,EAC3B,wBAA4B,EAC5B,UAAkB,EAClB,UAAe,GAChB;;;;;;;;;KAAK;IAaN,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED,IAAI,wBAAwB,IAAI,MAAM,CAErC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;IAIxD,YAAY,CACV,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,SAAS,GACf,SAAS;IAIZ,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,SAAI,GAAG,MAAM;IAI1D,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAIzC,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAInC,eAAe,CACnB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAOV,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnE,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;IAI7D,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAI3E,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAI1C,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"MockGridModel.d.ts","sourceRoot":"","sources":["../src/MockGridModel.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,EAAE,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,cAAM,aAAc,SAAQ,SAAU,YAAW,iBAAiB;IAChE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAE1B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAE7B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAE9B,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IAEjC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAE/B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAEhC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE5B,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC;gBAErB,EACV,QAAqB,EACrB,WAAiB,EACjB,mBAAuB,EACvB,sBAA0B,EAC1B,uBAA2B,EAC3B,wBAA4B,EAC5B,UAAkB,EAClB,UAAe,GAChB,GAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAClC,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;KACpB;IAaN,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,IAAI,uBAAuB,IAAI,MAAM,CAEpC;IAED,IAAI,wBAAwB,IAAI,MAAM,CAErC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;IAIxD,YAAY,CACV,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,SAAS,GACf,SAAS;IAIZ,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,SAAI,GAAG,MAAM;IAI1D,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAIzC,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAInC,eAAe,CACnB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAOV,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnE,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;IAI7D,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAI3E,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAI1C,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C;AAED,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MockGridModel.js","names":["GridModel","GridRange","MockGridModel","constructor","rowCount","columnCount","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","isEditable","editedData","numRows","numColumns","floatingTop","floatingBottom","floatingLeft","floatingRight","editable","textForCell","column","row","colorForCell","theme","textColor","textForColumnHeader","depth","textForRowHeader","textForRowFooter","setValueForCell","value","setValueForRanges","ranges","text","forEachCell","x","y","setValues","edits","i","length","edit","editValueForCell","isValidForCell","isEditableRange","range","delete","Error"],"sources":["../src/MockGridModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport EditableGridModel, { EditOperation } from './EditableGridModel';\nimport { ModelIndex } from './GridMetrics';\nimport GridModel from './GridModel';\nimport GridRange from './GridRange';\nimport { GridColor, GridTheme } from './GridTheme';\n\n/**\n * Mock model implementing GridModel for testing out grid functionality\n */\nclass MockGridModel extends GridModel implements EditableGridModel {\n protected numRows: number;\n\n protected numColumns: number;\n\n protected floatingTop: number;\n\n protected floatingBottom: number;\n\n protected floatingLeft: number;\n\n protected floatingRight: number;\n\n protected editable: boolean;\n\n protected editedData: string[][];\n\n constructor({\n rowCount = 1000000000,\n columnCount = 100,\n floatingTopRowCount = 0,\n floatingBottomRowCount = 0,\n floatingLeftColumnCount = 0,\n floatingRightColumnCount = 0,\n isEditable = false,\n editedData = [],\n } = {}) {\n super();\n\n this.numRows = rowCount;\n this.numColumns = columnCount;\n this.floatingTop = floatingTopRowCount;\n this.floatingBottom = floatingBottomRowCount;\n this.floatingLeft = floatingLeftColumnCount;\n this.floatingRight = floatingRightColumnCount;\n this.editable = isEditable;\n this.editedData = editedData;\n }\n\n get rowCount(): number {\n return this.numRows;\n }\n\n get columnCount(): number {\n return this.numColumns;\n }\n\n get floatingTopRowCount(): number {\n return this.floatingTop;\n }\n\n get floatingBottomRowCount(): number {\n return this.floatingBottom;\n }\n\n get floatingLeftColumnCount(): number {\n return this.floatingLeft;\n }\n\n get floatingRightColumnCount(): number {\n return this.floatingRight;\n }\n\n get isEditable(): boolean {\n return this.editable;\n }\n\n textForCell(column: ModelIndex, row: ModelIndex): string {\n return this.editedData[column]?.[row] ?? `${column},${row}`;\n }\n\n colorForCell(\n column: ModelIndex,\n row: ModelIndex,\n theme: GridTheme\n ): GridColor {\n return theme.textColor;\n }\n\n textForColumnHeader(column: ModelIndex, depth = 0): string {\n return `${column}`;\n }\n\n textForRowHeader(row: ModelIndex): string {\n return `${row}`;\n }\n\n textForRowFooter(row: ModelIndex): string {\n return `${row}`;\n }\n\n async setValueForCell(\n column: ModelIndex,\n row: ModelIndex,\n value: string\n ): Promise<void> {\n if (this.editedData[column] == null) {\n this.editedData[column] = [];\n }\n this.editedData[column][row] = `${value}`;\n }\n\n async setValueForRanges(ranges: GridRange[], text: string): Promise<void> {\n GridRange.forEachCell(ranges, (x, y) => {\n this.setValueForCell(x, y, text);\n });\n }\n\n async setValues(edits: EditOperation[]): Promise<void> {\n for (let i = 0; i < edits.length; i += 1) {\n const edit = edits[i];\n this.setValueForCell(\n edit.column ?? edit.x,\n edit.row ?? edit.y,\n edit.text\n );\n }\n }\n\n editValueForCell(column: ModelIndex, row: ModelIndex): string {\n return this.textForCell(column, row);\n }\n\n isValidForCell(column: ModelIndex, row: ModelIndex, value: string): boolean {\n return true;\n }\n\n isEditableRange(range: GridRange): boolean {\n return this.isEditable;\n }\n\n delete(ranges: GridRange[]): Promise<void> {\n throw new Error('Method not implemented.');\n }\n}\n\nexport default MockGridModel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"MockGridModel.js","names":["GridModel","GridRange","MockGridModel","constructor","rowCount","columnCount","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","isEditable","editedData","numRows","numColumns","floatingTop","floatingBottom","floatingLeft","floatingRight","editable","textForCell","column","row","colorForCell","theme","textColor","textForColumnHeader","depth","textForRowHeader","textForRowFooter","setValueForCell","value","setValueForRanges","ranges","text","forEachCell","x","y","setValues","edits","i","length","edit","editValueForCell","isValidForCell","isEditableRange","range","delete","Error"],"sources":["../src/MockGridModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport EditableGridModel, { EditOperation } from './EditableGridModel';\nimport { ModelIndex } from './GridMetrics';\nimport GridModel from './GridModel';\nimport GridRange from './GridRange';\nimport { GridColor, GridTheme } from './GridTheme';\n\n/**\n * Mock model implementing GridModel for testing out grid functionality\n */\nclass MockGridModel extends GridModel implements EditableGridModel {\n protected numRows: number;\n\n protected numColumns: number;\n\n protected floatingTop: number;\n\n protected floatingBottom: number;\n\n protected floatingLeft: number;\n\n protected floatingRight: number;\n\n protected editable: boolean;\n\n protected editedData: string[][];\n\n constructor({\n rowCount = 1000000000,\n columnCount = 100,\n floatingTopRowCount = 0,\n floatingBottomRowCount = 0,\n floatingLeftColumnCount = 0,\n floatingRightColumnCount = 0,\n isEditable = false,\n editedData = [],\n }: {\n rowCount?: number;\n columnCount?: number;\n floatingTopRowCount?: number;\n floatingBottomRowCount?: number;\n floatingLeftColumnCount?: number;\n floatingRightColumnCount?: number;\n isEditable?: boolean;\n editedData?: string[][];\n } = {}) {\n super();\n\n this.numRows = rowCount;\n this.numColumns = columnCount;\n this.floatingTop = floatingTopRowCount;\n this.floatingBottom = floatingBottomRowCount;\n this.floatingLeft = floatingLeftColumnCount;\n this.floatingRight = floatingRightColumnCount;\n this.editable = isEditable;\n this.editedData = editedData;\n }\n\n get rowCount(): number {\n return this.numRows;\n }\n\n get columnCount(): number {\n return this.numColumns;\n }\n\n get floatingTopRowCount(): number {\n return this.floatingTop;\n }\n\n get floatingBottomRowCount(): number {\n return this.floatingBottom;\n }\n\n get floatingLeftColumnCount(): number {\n return this.floatingLeft;\n }\n\n get floatingRightColumnCount(): number {\n return this.floatingRight;\n }\n\n get isEditable(): boolean {\n return this.editable;\n }\n\n textForCell(column: ModelIndex, row: ModelIndex): string {\n return this.editedData[column]?.[row] ?? `${column},${row}`;\n }\n\n colorForCell(\n column: ModelIndex,\n row: ModelIndex,\n theme: GridTheme\n ): GridColor {\n return theme.textColor;\n }\n\n textForColumnHeader(column: ModelIndex, depth = 0): string {\n return `${column}`;\n }\n\n textForRowHeader(row: ModelIndex): string {\n return `${row}`;\n }\n\n textForRowFooter(row: ModelIndex): string {\n return `${row}`;\n }\n\n async setValueForCell(\n column: ModelIndex,\n row: ModelIndex,\n value: string\n ): Promise<void> {\n if (this.editedData[column] == null) {\n this.editedData[column] = [];\n }\n this.editedData[column][row] = `${value}`;\n }\n\n async setValueForRanges(ranges: GridRange[], text: string): Promise<void> {\n GridRange.forEachCell(ranges, (x, y) => {\n this.setValueForCell(x, y, text);\n });\n }\n\n async setValues(edits: EditOperation[]): Promise<void> {\n for (let i = 0; i < edits.length; i += 1) {\n const edit = edits[i];\n this.setValueForCell(\n edit.column ?? edit.x,\n edit.row ?? edit.y,\n edit.text\n );\n }\n }\n\n editValueForCell(column: ModelIndex, row: ModelIndex): string {\n return this.textForCell(column, row);\n }\n\n isValidForCell(column: ModelIndex, row: ModelIndex, value: string): boolean {\n return true;\n }\n\n isEditableRange(range: GridRange): boolean {\n return this.isEditable;\n }\n\n delete(ranges: GridRange[]): Promise<void> {\n throw new Error('Method not implemented.');\n }\n}\n\nexport default MockGridModel;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridRowMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,cAAM,uBAAwB,SAAQ,gBAAgB;IACpD,MAAM,SAAU;IAEhB,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAgB5D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IA2F5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAa3D;AAED,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"GridRowMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,cAAM,uBAAwB,SAAQ,gBAAgB;IACpD,MAAM,SAAU;IAEhB,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAgB5D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IA2F5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAa3D;AAED,eAAe,uBAAuB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
3
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
- import { getOrThrow } from "../GridMetricCalculator.js";
4
+ import { getOrThrow } from '@deephaven/utils';
5
5
  import GridMouseHandler from "../GridMouseHandler.js";
6
6
  import GridUtils from "../GridUtils.js";
7
7
  class GridRowMoveMouseHandler extends GridMouseHandler {
@@ -1 +1 @@
1
- {"version":3,"file":"GridRowMoveMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridUtils","GridRowMoveMouseHandler","onDown","gridPoint","grid","model","props","x","y","row","metrics","Error","columnHeaderHeight","rowHeaderWidth","allRowYs","isRowMovable","rowY","draggingOffset","setState","draggingRowOffset","onDrag","draggingRow","state","mouseX","mouseY","getGridPointFromXY","isDragging","top","lastTop","bottom","bottomVisible","rowCount","allRowHeights","height","minY","topRow","maxY","bottomRow","movedRows","moveItem","minMoveY","maxMoveY","onUp","undefined"],"sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.ts"],"sourcesContent":["import { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridUtils, { GridPoint } from '../GridUtils';\n\nclass GridRowMoveMouseHandler extends GridMouseHandler {\n cursor = 'move';\n\n private draggingOffset?: number;\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n const { x, y, row } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { columnHeaderHeight, rowHeaderWidth, allRowYs } = metrics;\n\n if (x <= rowHeaderWidth && row !== null && model.isRowMovable(row)) {\n const rowY = getOrThrow(allRowYs, row);\n this.draggingOffset = y - rowY - columnHeaderHeight;\n grid.setState({ draggingRowOffset: this.draggingOffset });\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingOffset == null) {\n return false;\n }\n\n const { model } = grid.props;\n let { draggingRow } = grid.state;\n const { mouseX, mouseY } = grid.state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n if (draggingRow == null) {\n const { row } = grid.getGridPointFromXY(mouseX, mouseY);\n if (row != null && !model.isRowMovable(row)) {\n return false;\n }\n\n draggingRow = row;\n\n grid.setState({ draggingRow, isDragging: true });\n\n if (draggingRow == null) {\n return false;\n }\n }\n\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const {\n top,\n lastTop,\n bottom,\n bottomVisible,\n rowCount,\n columnHeaderHeight,\n allRowHeights,\n allRowYs,\n height,\n } = metrics;\n let minY = columnHeaderHeight;\n if (top < draggingRow) {\n const topRow = draggingRow - 1;\n minY =\n getOrThrow(allRowYs, topRow) +\n getOrThrow(allRowHeights, topRow) * 0.5 +\n columnHeaderHeight;\n }\n\n let maxY = height;\n if (draggingRow < bottom) {\n const bottomRow = draggingRow + 1;\n maxY =\n getOrThrow(allRowYs, bottomRow) +\n getOrThrow(allRowHeights, bottomRow) * 0.5 +\n columnHeaderHeight;\n }\n\n let { movedRows } = grid.state;\n if (\n mouseY < minY &&\n draggingRow > 0 &&\n model.isRowMovable(draggingRow - 1)\n ) {\n movedRows = GridUtils.moveItem(draggingRow, draggingRow - 1, movedRows);\n draggingRow -= 1;\n } else if (\n maxY < mouseY &&\n draggingRow < rowCount - 1 &&\n model.isRowMovable(draggingRow + 1)\n ) {\n movedRows = GridUtils.moveItem(draggingRow, draggingRow + 1, movedRows);\n draggingRow += 1;\n }\n grid.setState({ movedRows, draggingRow });\n\n const minMoveY = columnHeaderHeight + getOrThrow(allRowHeights, top) * 0.5;\n const maxMoveY =\n columnHeaderHeight +\n getOrThrow(allRowYs, bottomVisible) +\n getOrThrow(allRowHeights, bottomVisible) * 0.5;\n if (mouseY < minMoveY && top > 0) {\n grid.setState({ top: top - 1 });\n } else if (mouseY > maxMoveY && top < lastTop) {\n grid.setState({ top: top + 1 });\n }\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingOffset !== undefined) {\n this.draggingOffset = undefined;\n grid.setState({\n draggingRowOffset: null,\n draggingRow: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridRowMoveMouseHandler;\n"],"mappings":"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"}
1
+ {"version":3,"file":"GridRowMoveMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridUtils","GridRowMoveMouseHandler","onDown","gridPoint","grid","model","props","x","y","row","metrics","Error","columnHeaderHeight","rowHeaderWidth","allRowYs","isRowMovable","rowY","draggingOffset","setState","draggingRowOffset","onDrag","draggingRow","state","mouseX","mouseY","getGridPointFromXY","isDragging","top","lastTop","bottom","bottomVisible","rowCount","allRowHeights","height","minY","topRow","maxY","bottomRow","movedRows","moveItem","minMoveY","maxMoveY","onUp","undefined"],"sources":["../../src/mouse-handlers/GridRowMoveMouseHandler.ts"],"sourcesContent":["import { getOrThrow } from '@deephaven/utils';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridUtils, { GridPoint } from '../GridUtils';\n\nclass GridRowMoveMouseHandler extends GridMouseHandler {\n cursor = 'move';\n\n private draggingOffset?: number;\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n const { x, y, row } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { columnHeaderHeight, rowHeaderWidth, allRowYs } = metrics;\n\n if (x <= rowHeaderWidth && row !== null && model.isRowMovable(row)) {\n const rowY = getOrThrow(allRowYs, row);\n this.draggingOffset = y - rowY - columnHeaderHeight;\n grid.setState({ draggingRowOffset: this.draggingOffset });\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingOffset == null) {\n return false;\n }\n\n const { model } = grid.props;\n let { draggingRow } = grid.state;\n const { mouseX, mouseY } = grid.state;\n if (mouseX == null || mouseY == null) {\n return false;\n }\n\n if (draggingRow == null) {\n const { row } = grid.getGridPointFromXY(mouseX, mouseY);\n if (row != null && !model.isRowMovable(row)) {\n return false;\n }\n\n draggingRow = row;\n\n grid.setState({ draggingRow, isDragging: true });\n\n if (draggingRow == null) {\n return false;\n }\n }\n\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const {\n top,\n lastTop,\n bottom,\n bottomVisible,\n rowCount,\n columnHeaderHeight,\n allRowHeights,\n allRowYs,\n height,\n } = metrics;\n let minY = columnHeaderHeight;\n if (top < draggingRow) {\n const topRow = draggingRow - 1;\n minY =\n getOrThrow(allRowYs, topRow) +\n getOrThrow(allRowHeights, topRow) * 0.5 +\n columnHeaderHeight;\n }\n\n let maxY = height;\n if (draggingRow < bottom) {\n const bottomRow = draggingRow + 1;\n maxY =\n getOrThrow(allRowYs, bottomRow) +\n getOrThrow(allRowHeights, bottomRow) * 0.5 +\n columnHeaderHeight;\n }\n\n let { movedRows } = grid.state;\n if (\n mouseY < minY &&\n draggingRow > 0 &&\n model.isRowMovable(draggingRow - 1)\n ) {\n movedRows = GridUtils.moveItem(draggingRow, draggingRow - 1, movedRows);\n draggingRow -= 1;\n } else if (\n maxY < mouseY &&\n draggingRow < rowCount - 1 &&\n model.isRowMovable(draggingRow + 1)\n ) {\n movedRows = GridUtils.moveItem(draggingRow, draggingRow + 1, movedRows);\n draggingRow += 1;\n }\n grid.setState({ movedRows, draggingRow });\n\n const minMoveY = columnHeaderHeight + getOrThrow(allRowHeights, top) * 0.5;\n const maxMoveY =\n columnHeaderHeight +\n getOrThrow(allRowYs, bottomVisible) +\n getOrThrow(allRowHeights, bottomVisible) * 0.5;\n if (mouseY < minMoveY && top > 0) {\n grid.setState({ top: top - 1 });\n } else if (mouseY > maxMoveY && top < lastTop) {\n grid.setState({ top: top + 1 });\n }\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingOffset !== undefined) {\n this.draggingOffset = undefined;\n grid.setState({\n draggingRowOffset: null,\n draggingRow: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridRowMoveMouseHandler;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridRowTreeMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD;;GAEG;AACH,cAAM,uBAAwB,SAAQ,gBAAgB;IACpD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAuC7D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAI5D,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,UAAU,GACtB,kBAAkB;CAUtB;AAED,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"GridRowTreeMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD;;GAEG;AACH,cAAM,uBAAwB,SAAQ,gBAAgB;IACpD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAuC7D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAI5D,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,UAAU,GACtB,kBAAkB;CAUtB;AAED,eAAe,uBAAuB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /* eslint class-methods-use-this: "off" */
2
- import { getOrThrow } from "../GridMetricCalculator.js";
2
+ import { getOrThrow } from '@deephaven/utils';
3
3
  import GridMouseHandler from "../GridMouseHandler.js";
4
4
  import GridUtils from "../GridUtils.js";
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"GridRowTreeMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridUtils","GridRowTreeMouseHandler","isInTreeBox","gridPoint","grid","column","row","x","y","metrics","Error","gridX","gridY","firstColumn","allColumnXs","allColumnWidths","allRowHeights","allRowYs","visibleRowTreeBoxes","get","columnX","width","rowY","height","onDown","onClick","event","toggleRowExpanded","isModifierKeyDown"],"sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridUtils, { GridPoint } from '../GridUtils';\n\n/**\n * Detect when the tree expand/collapse button is clicked\n */\nclass GridRowTreeMouseHandler extends GridMouseHandler {\n static isInTreeBox(gridPoint: GridPoint, grid: Grid): boolean {\n const { column, row, x, y } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const {\n gridX,\n gridY,\n firstColumn,\n allColumnXs,\n allColumnWidths,\n allRowHeights,\n allRowYs,\n visibleRowTreeBoxes,\n } = metrics;\n\n if (\n column === firstColumn &&\n row != null &&\n visibleRowTreeBoxes.get(row) != null &&\n x > gridX &&\n y > gridY\n ) {\n const columnX = getOrThrow(allColumnXs, column);\n const width = getOrThrow(allColumnWidths, column);\n const rowY = getOrThrow(allRowYs, row);\n const height = getOrThrow(allRowHeights, row);\n if (\n x >= gridX + columnX &&\n x <= gridX + columnX + width &&\n y >= gridY + rowY &&\n y <= gridY + rowY + height\n ) {\n return true;\n }\n }\n return false;\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid);\n }\n\n onClick(\n gridPoint: GridPoint,\n grid: Grid,\n event: React.MouseEvent\n ): EventHandlerResult {\n if (GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid)) {\n const { row } = gridPoint;\n if (row !== null) {\n grid.toggleRowExpanded(row, GridUtils.isModifierKeyDown(event));\n return true;\n }\n }\n return false;\n }\n}\n\nexport default GridRowTreeMouseHandler;\n"],"mappings":"AAAA;AAAA,SAGSA,UAAU;AAAA,OACZC,gBAAgB;AAAA,OAChBC,SAAS;AAEhB;AACA;AACA;AACA,MAAMC,uBAAuB,SAASF,gBAAgB,CAAC;EACrD,OAAOG,WAAW,CAACC,SAAoB,EAAEC,IAAU,EAAW;IAC5D,IAAM;MAAEC,MAAM;MAAEC,GAAG;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAGL,SAAS;IACvC,IAAM;MAAEM;IAAQ,CAAC,GAAGL,IAAI;IACxB,IAAI,CAACK,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,iBAAiB,CAAC;IAEhD,IAAM;MACJC,KAAK;MACLC,KAAK;MACLC,WAAW;MACXC,WAAW;MACXC,eAAe;MACfC,aAAa;MACbC,QAAQ;MACRC;IACF,CAAC,GAAGT,OAAO;IAEX,IACEJ,MAAM,KAAKQ,WAAW,IACtBP,GAAG,IAAI,IAAI,IACXY,mBAAmB,CAACC,GAAG,CAACb,GAAG,CAAC,IAAI,IAAI,IACpCC,CAAC,GAAGI,KAAK,IACTH,CAAC,GAAGI,KAAK,EACT;MACA,IAAMQ,OAAO,GAAGtB,UAAU,CAACgB,WAAW,EAAET,MAAM,CAAC;MAC/C,IAAMgB,KAAK,GAAGvB,UAAU,CAACiB,eAAe,EAAEV,MAAM,CAAC;MACjD,IAAMiB,IAAI,GAAGxB,UAAU,CAACmB,QAAQ,EAAEX,GAAG,CAAC;MACtC,IAAMiB,MAAM,GAAGzB,UAAU,CAACkB,aAAa,EAAEV,GAAG,CAAC;MAC7C,IACEC,CAAC,IAAII,KAAK,GAAGS,OAAO,IACpBb,CAAC,IAAII,KAAK,GAAGS,OAAO,GAAGC,KAAK,IAC5Bb,CAAC,IAAII,KAAK,GAAGU,IAAI,IACjBd,CAAC,IAAII,KAAK,GAAGU,IAAI,GAAGC,MAAM,EAC1B;QACA,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;EAEAC,MAAM,CAACrB,SAAoB,EAAEC,IAAU,EAAsB;IAC3D,OAAOH,uBAAuB,CAACC,WAAW,CAACC,SAAS,EAAEC,IAAI,CAAC;EAC7D;EAEAqB,OAAO,CACLtB,SAAoB,EACpBC,IAAU,EACVsB,KAAuB,EACH;IACpB,IAAIzB,uBAAuB,CAACC,WAAW,CAACC,SAAS,EAAEC,IAAI,CAAC,EAAE;MACxD,IAAM;QAAEE;MAAI,CAAC,GAAGH,SAAS;MACzB,IAAIG,GAAG,KAAK,IAAI,EAAE;QAChBF,IAAI,CAACuB,iBAAiB,CAACrB,GAAG,EAAEN,SAAS,CAAC4B,iBAAiB,CAACF,KAAK,CAAC,CAAC;QAC/D,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAezB,uBAAuB"}
1
+ {"version":3,"file":"GridRowTreeMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridUtils","GridRowTreeMouseHandler","isInTreeBox","gridPoint","grid","column","row","x","y","metrics","Error","gridX","gridY","firstColumn","allColumnXs","allColumnWidths","allRowHeights","allRowYs","visibleRowTreeBoxes","get","columnX","width","rowY","height","onDown","onClick","event","toggleRowExpanded","isModifierKeyDown"],"sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { getOrThrow } from '@deephaven/utils';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport GridMouseHandler from '../GridMouseHandler';\nimport GridUtils, { GridPoint } from '../GridUtils';\n\n/**\n * Detect when the tree expand/collapse button is clicked\n */\nclass GridRowTreeMouseHandler extends GridMouseHandler {\n static isInTreeBox(gridPoint: GridPoint, grid: Grid): boolean {\n const { column, row, x, y } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const {\n gridX,\n gridY,\n firstColumn,\n allColumnXs,\n allColumnWidths,\n allRowHeights,\n allRowYs,\n visibleRowTreeBoxes,\n } = metrics;\n\n if (\n column === firstColumn &&\n row != null &&\n visibleRowTreeBoxes.get(row) != null &&\n x > gridX &&\n y > gridY\n ) {\n const columnX = getOrThrow(allColumnXs, column);\n const width = getOrThrow(allColumnWidths, column);\n const rowY = getOrThrow(allRowYs, row);\n const height = getOrThrow(allRowHeights, row);\n if (\n x >= gridX + columnX &&\n x <= gridX + columnX + width &&\n y >= gridY + rowY &&\n y <= gridY + rowY + height\n ) {\n return true;\n }\n }\n return false;\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid);\n }\n\n onClick(\n gridPoint: GridPoint,\n grid: Grid,\n event: React.MouseEvent\n ): EventHandlerResult {\n if (GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid)) {\n const { row } = gridPoint;\n if (row !== null) {\n grid.toggleRowExpanded(row, GridUtils.isModifierKeyDown(event));\n return true;\n }\n }\n return false;\n }\n}\n\nexport default GridRowTreeMouseHandler;\n"],"mappings":"AAAA;AACA,SAASA,UAAU,QAAQ,kBAAkB;AAAC,OAGvCC,gBAAgB;AAAA,OAChBC,SAAS;AAEhB;AACA;AACA;AACA,MAAMC,uBAAuB,SAASF,gBAAgB,CAAC;EACrD,OAAOG,WAAW,CAACC,SAAoB,EAAEC,IAAU,EAAW;IAC5D,IAAM;MAAEC,MAAM;MAAEC,GAAG;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAGL,SAAS;IACvC,IAAM;MAAEM;IAAQ,CAAC,GAAGL,IAAI;IACxB,IAAI,CAACK,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,iBAAiB,CAAC;IAEhD,IAAM;MACJC,KAAK;MACLC,KAAK;MACLC,WAAW;MACXC,WAAW;MACXC,eAAe;MACfC,aAAa;MACbC,QAAQ;MACRC;IACF,CAAC,GAAGT,OAAO;IAEX,IACEJ,MAAM,KAAKQ,WAAW,IACtBP,GAAG,IAAI,IAAI,IACXY,mBAAmB,CAACC,GAAG,CAACb,GAAG,CAAC,IAAI,IAAI,IACpCC,CAAC,GAAGI,KAAK,IACTH,CAAC,GAAGI,KAAK,EACT;MACA,IAAMQ,OAAO,GAAGtB,UAAU,CAACgB,WAAW,EAAET,MAAM,CAAC;MAC/C,IAAMgB,KAAK,GAAGvB,UAAU,CAACiB,eAAe,EAAEV,MAAM,CAAC;MACjD,IAAMiB,IAAI,GAAGxB,UAAU,CAACmB,QAAQ,EAAEX,GAAG,CAAC;MACtC,IAAMiB,MAAM,GAAGzB,UAAU,CAACkB,aAAa,EAAEV,GAAG,CAAC;MAC7C,IACEC,CAAC,IAAII,KAAK,GAAGS,OAAO,IACpBb,CAAC,IAAII,KAAK,GAAGS,OAAO,GAAGC,KAAK,IAC5Bb,CAAC,IAAII,KAAK,GAAGU,IAAI,IACjBd,CAAC,IAAII,KAAK,GAAGU,IAAI,GAAGC,MAAM,EAC1B;QACA,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;EAEAC,MAAM,CAACrB,SAAoB,EAAEC,IAAU,EAAsB;IAC3D,OAAOH,uBAAuB,CAACC,WAAW,CAACC,SAAS,EAAEC,IAAI,CAAC;EAC7D;EAEAqB,OAAO,CACLtB,SAAoB,EACpBC,IAAU,EACVsB,KAAuB,EACH;IACpB,IAAIzB,uBAAuB,CAACC,WAAW,CAACC,SAAS,EAAEC,IAAI,CAAC,EAAE;MACxD,IAAM;QAAEE;MAAI,CAAC,GAAGH,SAAS;MACzB,IAAIG,GAAG,KAAK,IAAI,EAAE;QAChBF,IAAI,CAACuB,iBAAiB,CAACrB,GAAG,EAAEN,SAAS,CAAC4B,iBAAiB,CAACF,KAAK,CAAC,CAAC;QAC/D,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;AACF;AAEA,eAAezB,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GridSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
3
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
- import { getOrThrow } from "../GridMetricCalculator.js";
4
+ import { getOrThrow } from '@deephaven/utils';
5
5
  import GridMouseHandler from "../GridMouseHandler.js";
6
6
  /**
7
7
  * Abstract class that should be extended for column/row behaviour
@@ -1 +1 @@
1
- {"version":3,"file":"GridSeparatorMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridSeparatorMouseHandler","Map","onDown","gridPoint","grid","metrics","model","props","theme","getTheme","Error","separator","getSeparator","separatorIndex","index","dragOffset","draggingIndex","resizingItems","hiddenItems","getHiddenItems","reverse","targetSizes","clear","addTargetSize","updateCursor","updateSeparator","onMove","onDrag","point","pointProperty","metricCalculator","visibleOffsets","visibleOffsetProperty","margin","marginProperty","calculatedSizes","calculatedSizesProperty","modelIndexes","modelIndexesProperty","firstIndex","firstIndexProperty","treePadding","treePaddingProperty","newSizes","resizeIndex","length","itemOffset","itemSize","modelIndex","targetSize","get","isResizingMultiple","hiddenIndex","indexOf","calculatedSize","newSize","Math","abs","headerResizeSnapThreshold","undefined","headerResizeHiddenSnapThreshold","set","pop","removeTargetSize","getNextShownItem","push","forEach","defaultSize","initialSizesProperty","resetSize","setSize","onUp","onDoubleClick","forceUpdate","itemIndex","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty","delete"],"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"sourcesContent":["import type Grid from '../Grid';\nimport type { GridMetricCalculator } from '../GridMetricCalculator';\nimport type GridModel from '../GridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMetrics, { ModelIndex, VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport type { GridTheme } from '../GridTheme';\nimport type { GridPoint } from '../GridUtils';\n\n// The different properties that can be used by implementing classes, whether for rows or columns\nexport type PointProperty = 'x' | 'y';\nexport type UserSizeProperty = 'userRowHeights' | 'userColumnWidths';\nexport type VisibleOffsetProperty = 'visibleRowYs' | 'visibleColumnXs';\nexport type VisibleSizeProperty = 'visibleRowHeights' | 'visibleColumnWidths';\nexport type MarginProperty = 'columnHeaderHeight' | 'rowHeaderWidth';\nexport type CalculatedSizeProperty =\n | 'calculatedRowHeights'\n | 'calculatedColumnWidths';\nexport type InitialSizeProperty = 'initialRowHeights' | 'initialColumnWidths';\nexport type ModelIndexesProperty = 'modelRows' | 'modelColumns';\nexport type FirstIndexProperty = 'firstRow' | 'firstColumn';\nexport type TreePaddingProperty = 'treePaddingX' | 'treePaddingY';\nexport interface GridSeparator {\n index: VisibleIndex;\n depth: number;\n}\n\n/**\n * Abstract class that should be extended for column/row behaviour\n * Override the necessary functions/properties\n */\nabstract class GridSeparatorMouseHandler extends GridMouseHandler {\n // The index where dragging the column separator started\n protected draggingIndex?: VisibleIndex;\n\n // The columns in the order they're being resized\n protected resizingItems: VisibleIndex[] = [];\n\n // Columns that were hidden under the separator when starting a drag\n protected hiddenItems: VisibleIndex[] = [];\n\n // The target width of the columns being resized\n protected targetSizes: Map<ModelIndex, number> = new Map();\n\n protected dragOffset = 0;\n\n // Override/Implement these properties/functions\n abstract hiddenCursor: string;\n\n abstract defaultCursor: string;\n\n abstract pointProperty: PointProperty;\n\n abstract userSizesProperty: UserSizeProperty;\n\n abstract visibleOffsetProperty: VisibleOffsetProperty;\n\n abstract visibleSizesProperty: VisibleSizeProperty;\n\n abstract marginProperty: MarginProperty;\n\n abstract calculatedSizesProperty: CalculatedSizeProperty;\n\n abstract initialSizesProperty: InitialSizeProperty;\n\n abstract modelIndexesProperty: ModelIndexesProperty;\n\n abstract firstIndexProperty: FirstIndexProperty;\n\n abstract treePaddingProperty: TreePaddingProperty;\n\n abstract getHiddenItems(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex[];\n\n abstract getNextShownItem(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex | null;\n\n abstract setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void;\n\n abstract resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void;\n\n abstract updateSeparator(grid: Grid, separator: GridSeparator | null): void;\n\n abstract getSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null;\n // End of overrides\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n if (separator != null) {\n const separatorIndex = separator.index;\n\n this.dragOffset = 0;\n this.draggingIndex = separatorIndex;\n this.resizingItems = [separatorIndex];\n this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();\n this.targetSizes.clear();\n\n this.addTargetSize(metrics, separatorIndex);\n\n this.updateCursor(metrics, separatorIndex);\n\n this.updateSeparator(grid, separator);\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n this.updateCursor(metrics, separator.index);\n return true;\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex == null) {\n return false;\n }\n\n const point = gridPoint[this.pointProperty];\n const { metricCalculator, metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const theme = grid.getTheme();\n\n const visibleOffsets = metrics[this.visibleOffsetProperty];\n const margin = metrics[this.marginProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const modelIndexes = metrics[this.modelIndexesProperty];\n const firstIndex = metrics[this.firstIndexProperty];\n const treePadding = metrics[this.treePaddingProperty];\n\n // New sizes are batched and applied after the loop to avoid updating state while calculating next step\n const newSizes: Map<ModelIndex, number> = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex: number | null = this.resizingItems[\n this.resizingItems.length - 1\n ];\n while (resizeIndex != null) {\n const itemOffset = getOrThrow(visibleOffsets, resizeIndex);\n const itemSize = point - margin - itemOffset - this.dragOffset;\n const modelIndex = getOrThrow(modelIndexes, resizeIndex);\n const targetSize = this.targetSizes.get(modelIndex);\n const isResizingMultiple = this.resizingItems.length > 1;\n const hiddenIndex = this.hiddenItems.indexOf(resizeIndex);\n let calculatedSize = getOrThrow(calculatedSizes, modelIndex);\n if (resizeIndex === firstIndex) {\n calculatedSize += treePadding;\n }\n let newSize = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = calculatedSize;\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize &&\n ((isResizingMultiple && hiddenIndex !== 0) || hiddenIndex > 0)\n ) {\n newSize = targetSize;\n } else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {\n // Snapping to hidden item\n newSize = 0;\n }\n\n newSizes.set(modelIndex, newSize);\n\n if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {\n if (hiddenIndex >= 0 && isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n this.dragOffset -=\n this.targetSizes.get(getOrThrow(modelIndexes, resizeIndex)) ?? 0;\n } else {\n resizeIndex = this.getNextShownItem(resizeIndex, metrics);\n if (resizeIndex !== null) {\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n }\n }\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize + theme.headerResizeSnapThreshold &&\n newSize === targetSize\n ) {\n if (hiddenIndex > 0) {\n this.dragOffset += newSize;\n resizeIndex = this.hiddenItems[hiddenIndex - 1];\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n } else if (isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n } else {\n resizeIndex = null;\n }\n } else {\n resizeIndex = null;\n }\n }\n\n newSizes.forEach((newSize, modelIndex) => {\n const defaultSize =\n metricCalculator[this.initialSizesProperty].get(modelIndex) ??\n calculatedSizes.get(modelIndex);\n\n if (newSize === defaultSize) {\n this.resetSize(metricCalculator, modelIndex);\n } else {\n this.setSize(metricCalculator, modelIndex, newSize);\n }\n });\n\n this.updateCursor(metrics, this.draggingIndex);\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex != null) {\n this.draggingIndex = undefined;\n this.resizingItems = [];\n this.hiddenItems = [];\n this.targetSizes.clear();\n\n this.updateSeparator(grid, null);\n }\n\n return false;\n }\n\n onDoubleClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics, metricCalculator } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, separator.index);\n\n const calculatedSize = getOrThrow(\n metrics[this.calculatedSizesProperty],\n modelIndex\n );\n const defaultSize = metricCalculator[this.initialSizesProperty].get(\n modelIndex\n );\n\n if (calculatedSize === defaultSize) {\n this.resetSize(metricCalculator, modelIndex);\n } else {\n this.setSize(metricCalculator, modelIndex, calculatedSize);\n }\n\n grid.forceUpdate();\n\n return true;\n }\n return false;\n }\n\n updateCursor(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const visibleSizes = metrics[this.visibleSizesProperty];\n const itemSize = getOrThrow(visibleSizes, itemIndex);\n if (itemSize === 0) {\n this.cursor = this.hiddenCursor;\n } else {\n this.cursor = this.defaultCursor;\n }\n }\n\n addTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const userSizes = metrics[this.userSizesProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;\n\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n let targetSize = userSizes.get(modelIndex);\n if (targetSize == null || targetSize === 0) {\n targetSize = getOrThrow(calculatedSizes, modelIndex) + treePadding;\n }\n this.targetSizes.set(modelIndex, targetSize);\n }\n\n removeTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n this.targetSizes.delete(modelIndex);\n }\n}\n\nexport default GridSeparatorMouseHandler;\n"],"mappings":"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"}
1
+ {"version":3,"file":"GridSeparatorMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridSeparatorMouseHandler","Map","onDown","gridPoint","grid","metrics","model","props","theme","getTheme","Error","separator","getSeparator","separatorIndex","index","dragOffset","draggingIndex","resizingItems","hiddenItems","getHiddenItems","reverse","targetSizes","clear","addTargetSize","updateCursor","updateSeparator","onMove","onDrag","point","pointProperty","metricCalculator","visibleOffsets","visibleOffsetProperty","margin","marginProperty","calculatedSizes","calculatedSizesProperty","modelIndexes","modelIndexesProperty","firstIndex","firstIndexProperty","treePadding","treePaddingProperty","newSizes","resizeIndex","length","itemOffset","itemSize","modelIndex","targetSize","get","isResizingMultiple","hiddenIndex","indexOf","calculatedSize","newSize","Math","abs","headerResizeSnapThreshold","undefined","headerResizeHiddenSnapThreshold","set","pop","removeTargetSize","getNextShownItem","push","forEach","defaultSize","initialSizesProperty","resetSize","setSize","onUp","onDoubleClick","forceUpdate","itemIndex","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty","delete"],"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"sourcesContent":["import { getOrThrow } from '@deephaven/utils';\nimport type Grid from '../Grid';\nimport type { GridMetricCalculator } from '../GridMetricCalculator';\nimport type GridModel from '../GridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport GridMetrics, { ModelIndex, VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport type { GridTheme } from '../GridTheme';\nimport type { GridPoint } from '../GridUtils';\n\n// The different properties that can be used by implementing classes, whether for rows or columns\nexport type PointProperty = 'x' | 'y';\nexport type UserSizeProperty = 'userRowHeights' | 'userColumnWidths';\nexport type VisibleOffsetProperty = 'visibleRowYs' | 'visibleColumnXs';\nexport type VisibleSizeProperty = 'visibleRowHeights' | 'visibleColumnWidths';\nexport type MarginProperty = 'columnHeaderHeight' | 'rowHeaderWidth';\nexport type CalculatedSizeProperty =\n | 'calculatedRowHeights'\n | 'calculatedColumnWidths';\nexport type InitialSizeProperty = 'initialRowHeights' | 'initialColumnWidths';\nexport type ModelIndexesProperty = 'modelRows' | 'modelColumns';\nexport type FirstIndexProperty = 'firstRow' | 'firstColumn';\nexport type TreePaddingProperty = 'treePaddingX' | 'treePaddingY';\nexport interface GridSeparator {\n index: VisibleIndex;\n depth: number;\n}\n\n/**\n * Abstract class that should be extended for column/row behaviour\n * Override the necessary functions/properties\n */\nabstract class GridSeparatorMouseHandler extends GridMouseHandler {\n // The index where dragging the column separator started\n protected draggingIndex?: VisibleIndex;\n\n // The columns in the order they're being resized\n protected resizingItems: VisibleIndex[] = [];\n\n // Columns that were hidden under the separator when starting a drag\n protected hiddenItems: VisibleIndex[] = [];\n\n // The target width of the columns being resized\n protected targetSizes: Map<ModelIndex, number> = new Map();\n\n protected dragOffset = 0;\n\n // Override/Implement these properties/functions\n abstract hiddenCursor: string;\n\n abstract defaultCursor: string;\n\n abstract pointProperty: PointProperty;\n\n abstract userSizesProperty: UserSizeProperty;\n\n abstract visibleOffsetProperty: VisibleOffsetProperty;\n\n abstract visibleSizesProperty: VisibleSizeProperty;\n\n abstract marginProperty: MarginProperty;\n\n abstract calculatedSizesProperty: CalculatedSizeProperty;\n\n abstract initialSizesProperty: InitialSizeProperty;\n\n abstract modelIndexesProperty: ModelIndexesProperty;\n\n abstract firstIndexProperty: FirstIndexProperty;\n\n abstract treePaddingProperty: TreePaddingProperty;\n\n abstract getHiddenItems(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex[];\n\n abstract getNextShownItem(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex | null;\n\n abstract setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void;\n\n abstract resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void;\n\n abstract updateSeparator(grid: Grid, separator: GridSeparator | null): void;\n\n abstract getSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null;\n // End of overrides\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n if (separator != null) {\n const separatorIndex = separator.index;\n\n this.dragOffset = 0;\n this.draggingIndex = separatorIndex;\n this.resizingItems = [separatorIndex];\n this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();\n this.targetSizes.clear();\n\n this.addTargetSize(metrics, separatorIndex);\n\n this.updateCursor(metrics, separatorIndex);\n\n this.updateSeparator(grid, separator);\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n this.updateCursor(metrics, separator.index);\n return true;\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex == null) {\n return false;\n }\n\n const point = gridPoint[this.pointProperty];\n const { metricCalculator, metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const theme = grid.getTheme();\n\n const visibleOffsets = metrics[this.visibleOffsetProperty];\n const margin = metrics[this.marginProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const modelIndexes = metrics[this.modelIndexesProperty];\n const firstIndex = metrics[this.firstIndexProperty];\n const treePadding = metrics[this.treePaddingProperty];\n\n // New sizes are batched and applied after the loop to avoid updating state while calculating next step\n const newSizes: Map<ModelIndex, number> = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex: number | null = this.resizingItems[\n this.resizingItems.length - 1\n ];\n while (resizeIndex != null) {\n const itemOffset = getOrThrow(visibleOffsets, resizeIndex);\n const itemSize = point - margin - itemOffset - this.dragOffset;\n const modelIndex = getOrThrow(modelIndexes, resizeIndex);\n const targetSize = this.targetSizes.get(modelIndex);\n const isResizingMultiple = this.resizingItems.length > 1;\n const hiddenIndex = this.hiddenItems.indexOf(resizeIndex);\n let calculatedSize = getOrThrow(calculatedSizes, modelIndex);\n if (resizeIndex === firstIndex) {\n calculatedSize += treePadding;\n }\n let newSize = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = calculatedSize;\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize &&\n ((isResizingMultiple && hiddenIndex !== 0) || hiddenIndex > 0)\n ) {\n newSize = targetSize;\n } else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {\n // Snapping to hidden item\n newSize = 0;\n }\n\n newSizes.set(modelIndex, newSize);\n\n if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {\n if (hiddenIndex >= 0 && isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n this.dragOffset -=\n this.targetSizes.get(getOrThrow(modelIndexes, resizeIndex)) ?? 0;\n } else {\n resizeIndex = this.getNextShownItem(resizeIndex, metrics);\n if (resizeIndex !== null) {\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n }\n }\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize + theme.headerResizeSnapThreshold &&\n newSize === targetSize\n ) {\n if (hiddenIndex > 0) {\n this.dragOffset += newSize;\n resizeIndex = this.hiddenItems[hiddenIndex - 1];\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n } else if (isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n } else {\n resizeIndex = null;\n }\n } else {\n resizeIndex = null;\n }\n }\n\n newSizes.forEach((newSize, modelIndex) => {\n const defaultSize =\n metricCalculator[this.initialSizesProperty].get(modelIndex) ??\n calculatedSizes.get(modelIndex);\n\n if (newSize === defaultSize) {\n this.resetSize(metricCalculator, modelIndex);\n } else {\n this.setSize(metricCalculator, modelIndex, newSize);\n }\n });\n\n this.updateCursor(metrics, this.draggingIndex);\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex != null) {\n this.draggingIndex = undefined;\n this.resizingItems = [];\n this.hiddenItems = [];\n this.targetSizes.clear();\n\n this.updateSeparator(grid, null);\n }\n\n return false;\n }\n\n onDoubleClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics, metricCalculator } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, separator.index);\n\n const calculatedSize = getOrThrow(\n metrics[this.calculatedSizesProperty],\n modelIndex\n );\n const defaultSize = metricCalculator[this.initialSizesProperty].get(\n modelIndex\n );\n\n if (calculatedSize === defaultSize) {\n this.resetSize(metricCalculator, modelIndex);\n } else {\n this.setSize(metricCalculator, modelIndex, calculatedSize);\n }\n\n grid.forceUpdate();\n\n return true;\n }\n return false;\n }\n\n updateCursor(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const visibleSizes = metrics[this.visibleSizesProperty];\n const itemSize = getOrThrow(visibleSizes, itemIndex);\n if (itemSize === 0) {\n this.cursor = this.hiddenCursor;\n } else {\n this.cursor = this.defaultCursor;\n }\n }\n\n addTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const userSizes = metrics[this.userSizesProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;\n\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n let targetSize = userSizes.get(modelIndex);\n if (targetSize == null || targetSize === 0) {\n targetSize = getOrThrow(calculatedSizes, modelIndex) + treePadding;\n }\n this.targetSizes.set(modelIndex, targetSize);\n }\n\n removeTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n this.targetSizes.delete(modelIndex);\n }\n}\n\nexport default GridSeparatorMouseHandler;\n"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { EventHandlerResult } from '../EventHandlerResult';
2
+ import Grid from '../Grid';
3
+ import GridMouseHandler, { GridMouseEvent } from '../GridMouseHandler';
4
+ import { GridPoint } from '../GridUtils';
5
+ declare class GridTokenMouseHandler extends GridMouseHandler {
6
+ timeoutId?: ReturnType<typeof setTimeout>;
7
+ private isHold;
8
+ private isDown;
9
+ private currentLinkBox?;
10
+ private static HOLD_LENGTH;
11
+ isHoveringLink(gridPoint: GridPoint, grid: Grid): boolean;
12
+ /**
13
+ * Set the cursor to pointer when hovering over a link
14
+ * @param gridPoint Mouse position information
15
+ * @param grid The grid
16
+ * @returns False
17
+ */
18
+ private setCursor;
19
+ onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
20
+ onDown(gridPoint: GridPoint, grid: Grid, event: GridMouseEvent): EventHandlerResult;
21
+ onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
22
+ }
23
+ export default GridTokenMouseHandler;
24
+ //# sourceMappingURL=GridTokenMouseHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GridTokenMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridTokenMouseHandler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,gBAAgB,EAAE,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAkB,EAAE,SAAS,EAAyB,MAAM,cAAc,CAAC;AAE3E,cAAM,qBAAsB,SAAQ,gBAAgB;IAClD,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE1C,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,cAAc,CAAC,CAAW;IAElC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAQ;IAElC,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IA2CzD;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IASjB,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAI5D,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IAwCrB,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAyB9D;AAED,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,143 @@
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
+ /* eslint class-methods-use-this: "off" */
5
+ import { isEditableGridModel } from "../EditableGridModel.js";
6
+ import GridMouseHandler from "../GridMouseHandler.js";
7
+ import GridRange from "../GridRange.js";
8
+ import GridUtils, { isLinkToken } from "../GridUtils.js";
9
+ class GridTokenMouseHandler extends GridMouseHandler {
10
+ constructor() {
11
+ super(...arguments);
12
+ _defineProperty(this, "timeoutId", void 0);
13
+ _defineProperty(this, "isHold", false);
14
+ _defineProperty(this, "isDown", false);
15
+ _defineProperty(this, "currentLinkBox", void 0);
16
+ }
17
+ isHoveringLink(gridPoint, grid) {
18
+ var {
19
+ column,
20
+ row,
21
+ x,
22
+ y
23
+ } = gridPoint;
24
+ var {
25
+ renderer,
26
+ metrics
27
+ } = grid;
28
+ if (column == null || row == null || metrics == null) {
29
+ this.currentLinkBox = undefined;
30
+ return false;
31
+ }
32
+ if (this.currentLinkBox != null) {
33
+ var {
34
+ x1: left,
35
+ y1: top,
36
+ x2: right,
37
+ y2: bottom
38
+ } = this.currentLinkBox;
39
+ if (x >= left && x <= right && y >= top && y <= bottom) {
40
+ return true;
41
+ }
42
+ }
43
+ var renderState = grid.updateRenderState();
44
+ var tokensInCell = renderer.getTokenBoxesForVisibleCell(column, row, renderState);
45
+
46
+ // Loop through each link and check if cursor is in bounds
47
+ for (var i = 0; i < tokensInCell.length; i += 1) {
48
+ if (isLinkToken(tokensInCell[i].token)) {
49
+ var translatedTokenBox = GridUtils.translateTokenBox(tokensInCell[i], metrics);
50
+ var {
51
+ x1: _left,
52
+ x2: _right,
53
+ y1: _top,
54
+ y2: _bottom
55
+ } = translatedTokenBox;
56
+ if (x >= _left && x <= _right && y >= _top && y <= _bottom) {
57
+ this.currentLinkBox = translatedTokenBox;
58
+ return true;
59
+ }
60
+ }
61
+ }
62
+
63
+ // If this point is reached, that means the cursor was not hovering any of the links or there are no links
64
+ this.currentLinkBox = undefined;
65
+ return false;
66
+ }
67
+
68
+ /**
69
+ * Set the cursor to pointer when hovering over a link
70
+ * @param gridPoint Mouse position information
71
+ * @param grid The grid
72
+ * @returns False
73
+ */
74
+ setCursor(gridPoint, grid) {
75
+ if (this.isHoveringLink(gridPoint, grid)) {
76
+ this.cursor = 'pointer';
77
+ } else {
78
+ this.cursor = null;
79
+ }
80
+ return false;
81
+ }
82
+ onMove(gridPoint, grid) {
83
+ return this.setCursor(gridPoint, grid);
84
+ }
85
+ onDown(gridPoint, grid, event) {
86
+ var isUserHoveringLink = this.isHoveringLink(gridPoint, grid);
87
+
88
+ // If a modifier key or shift is down, we don't want to handle it and set isDown to false so onUp won't handle it either
89
+ if (GridUtils.isModifierKeyDown(event) || event.shiftKey || !isUserHoveringLink) {
90
+ return false;
91
+ }
92
+ this.isDown = true;
93
+ if (this.timeoutId != null) {
94
+ clearTimeout(this.timeoutId);
95
+ }
96
+ this.isHold = false;
97
+ this.timeoutId = setTimeout(() => {
98
+ this.isHold = true;
99
+ var {
100
+ column,
101
+ row
102
+ } = gridPoint;
103
+ var {
104
+ model
105
+ } = grid.props;
106
+
107
+ // After 1 second, select the row and if it is an input table, start editing
108
+ grid.clearSelectedRanges();
109
+ grid.focus();
110
+ grid.moveCursorToPosition(column, row);
111
+ if (isEditableGridModel(model) && column != null && row != null && model.isEditableRange(GridRange.makeCell(column, row))) {
112
+ grid.startEditing(column, row);
113
+ }
114
+ }, GridTokenMouseHandler.HOLD_LENGTH);
115
+ return true;
116
+ }
117
+ onClick(gridPoint, grid) {
118
+ var isUserHoveringLink = this.isHoveringLink(gridPoint, grid);
119
+ if (!isUserHoveringLink || !this.isDown || this.currentLinkBox == null) {
120
+ this.isDown = false;
121
+ this.isHold = false;
122
+ return false;
123
+ }
124
+
125
+ // User is hovering a link, isDown is true
126
+ // If isHold is true, then the select already happened so onUp shouldn't do anything
127
+ if (!this.isHold) {
128
+ var _this$currentLinkBox;
129
+ // Cancel the timeout and open a new tab with the link
130
+ if (this.timeoutId != null) {
131
+ clearTimeout(this.timeoutId);
132
+ }
133
+ this.timeoutId = undefined;
134
+ grid.props.onTokenClicked((_this$currentLinkBox = this.currentLinkBox) === null || _this$currentLinkBox === void 0 ? void 0 : _this$currentLinkBox.token);
135
+ }
136
+ this.isHold = false;
137
+ this.isDown = false;
138
+ return true;
139
+ }
140
+ }
141
+ _defineProperty(GridTokenMouseHandler, "HOLD_LENGTH", 1000);
142
+ export default GridTokenMouseHandler;
143
+ //# sourceMappingURL=GridTokenMouseHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GridTokenMouseHandler.js","names":["isEditableGridModel","GridMouseHandler","GridRange","GridUtils","isLinkToken","GridTokenMouseHandler","isHoveringLink","gridPoint","grid","column","row","x","y","renderer","metrics","currentLinkBox","undefined","x1","left","y1","top","x2","right","y2","bottom","renderState","updateRenderState","tokensInCell","getTokenBoxesForVisibleCell","i","length","token","translatedTokenBox","translateTokenBox","setCursor","cursor","onMove","onDown","event","isUserHoveringLink","isModifierKeyDown","shiftKey","isDown","timeoutId","clearTimeout","isHold","setTimeout","model","props","clearSelectedRanges","focus","moveCursorToPosition","isEditableRange","makeCell","startEditing","HOLD_LENGTH","onClick","onTokenClicked"],"sources":["../../src/mouse-handlers/GridTokenMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n\nimport { isEditableGridModel } from '../EditableGridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport GridMouseHandler, { GridMouseEvent } from '../GridMouseHandler';\nimport GridRange from '../GridRange';\nimport GridUtils, { GridPoint, isLinkToken, TokenBox } from '../GridUtils';\n\nclass GridTokenMouseHandler extends GridMouseHandler {\n timeoutId?: ReturnType<typeof setTimeout>;\n\n private isHold = false;\n\n private isDown = false;\n\n // Stores the current hovered token box if it exists with translated coordinates\n private currentLinkBox?: TokenBox;\n\n private static HOLD_LENGTH = 1000;\n\n isHoveringLink(gridPoint: GridPoint, grid: Grid): boolean {\n const { column, row, x, y } = gridPoint;\n const { renderer, metrics } = grid;\n\n if (column == null || row == null || metrics == null) {\n this.currentLinkBox = undefined;\n return false;\n }\n\n if (this.currentLinkBox != null) {\n const { x1: left, y1: top, x2: right, y2: bottom } = this.currentLinkBox;\n if (x >= left && x <= right && y >= top && y <= bottom) {\n return true;\n }\n }\n\n const renderState = grid.updateRenderState();\n const tokensInCell = renderer.getTokenBoxesForVisibleCell(\n column,\n row,\n renderState\n );\n\n // Loop through each link and check if cursor is in bounds\n for (let i = 0; i < tokensInCell.length; i += 1) {\n if (isLinkToken(tokensInCell[i].token)) {\n const translatedTokenBox = GridUtils.translateTokenBox(\n tokensInCell[i],\n metrics\n );\n const { x1: left, x2: right, y1: top, y2: bottom } = translatedTokenBox;\n if (x >= left && x <= right && y >= top && y <= bottom) {\n this.currentLinkBox = translatedTokenBox;\n return true;\n }\n }\n }\n\n // If this point is reached, that means the cursor was not hovering any of the links or there are no links\n this.currentLinkBox = undefined;\n return false;\n }\n\n /**\n * Set the cursor to pointer when hovering over a link\n * @param gridPoint Mouse position information\n * @param grid The grid\n * @returns False\n */\n private setCursor(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.isHoveringLink(gridPoint, grid)) {\n this.cursor = 'pointer';\n } else {\n this.cursor = null;\n }\n return false;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.setCursor(gridPoint, grid);\n }\n\n onDown(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n const isUserHoveringLink = this.isHoveringLink(gridPoint, grid);\n\n // If a modifier key or shift is down, we don't want to handle it and set isDown to false so onUp won't handle it either\n if (\n GridUtils.isModifierKeyDown(event) ||\n event.shiftKey ||\n !isUserHoveringLink\n ) {\n return false;\n }\n\n this.isDown = true;\n\n if (this.timeoutId != null) {\n clearTimeout(this.timeoutId);\n }\n this.isHold = false;\n this.timeoutId = setTimeout(() => {\n this.isHold = true;\n const { column, row } = gridPoint;\n const { model } = grid.props;\n\n // After 1 second, select the row and if it is an input table, start editing\n grid.clearSelectedRanges();\n grid.focus();\n grid.moveCursorToPosition(column, row);\n if (\n isEditableGridModel(model) &&\n column != null &&\n row != null &&\n model.isEditableRange(GridRange.makeCell(column, row))\n ) {\n grid.startEditing(column, row);\n }\n }, GridTokenMouseHandler.HOLD_LENGTH);\n\n return true;\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const isUserHoveringLink = this.isHoveringLink(gridPoint, grid);\n\n if (!isUserHoveringLink || !this.isDown || this.currentLinkBox == null) {\n this.isDown = false;\n this.isHold = false;\n return false;\n }\n\n // User is hovering a link, isDown is true\n // If isHold is true, then the select already happened so onUp shouldn't do anything\n if (!this.isHold) {\n // Cancel the timeout and open a new tab with the link\n if (this.timeoutId != null) {\n clearTimeout(this.timeoutId);\n }\n this.timeoutId = undefined;\n grid.props.onTokenClicked(this.currentLinkBox?.token);\n }\n\n this.isHold = false;\n this.isDown = false;\n\n return true;\n }\n}\n\nexport default GridTokenMouseHandler;\n"],"mappings":"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"}
@@ -8,5 +8,6 @@ export { default as GridRowTreeMouseHandler } from './GridRowTreeMouseHandler';
8
8
  export { default as GridScrollBarCornerMouseHandler } from './GridScrollBarCornerMouseHandler';
9
9
  export { default as GridVerticalScrollBarMouseHandler } from './GridVerticalScrollBarMouseHandler';
10
10
  export { default as EditMouseHandler } from './EditMouseHandler';
11
+ export { default as GridTokenMouseHandler } from './GridTokenMouseHandler';
11
12
  export * from './GridSeparatorMouseHandler';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AACvG,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AACvG,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,cAAc,6BAA6B,CAAC"}
@@ -8,5 +8,6 @@ export { default as GridRowTreeMouseHandler } from "./GridRowTreeMouseHandler.js
8
8
  export { default as GridScrollBarCornerMouseHandler } from "./GridScrollBarCornerMouseHandler.js";
9
9
  export { default as GridVerticalScrollBarMouseHandler } from "./GridVerticalScrollBarMouseHandler.js";
10
10
  export { default as EditMouseHandler } from "./EditMouseHandler.js";
11
+ export { default as GridTokenMouseHandler } from "./GridTokenMouseHandler.js";
11
12
  export * from "./GridSeparatorMouseHandler.js";
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","GridSelectionMouseHandler","GridColumnMoveMouseHandler","GridColumnSeparatorMouseHandler","GridHorizontalScrollBarMouseHandler","GridRowMoveMouseHandler","GridRowSeparatorMouseHandler","GridRowTreeMouseHandler","GridScrollBarCornerMouseHandler","GridVerticalScrollBarMouseHandler","EditMouseHandler"],"sources":["../../src/mouse-handlers/index.ts"],"sourcesContent":["export { default as GridSelectionMouseHandler } from './GridSelectionMouseHandler';\nexport { default as GridColumnMoveMouseHandler } from './GridColumnMoveMouseHandler';\nexport { default as GridColumnSeparatorMouseHandler } from './GridColumnSeparatorMouseHandler';\nexport { default as GridHorizontalScrollBarMouseHandler } from './GridHorizontalScrollBarMouseHandler';\nexport { default as GridRowMoveMouseHandler } from './GridRowMoveMouseHandler';\nexport { default as GridRowSeparatorMouseHandler } from './GridRowSeparatorMouseHandler';\nexport { default as GridRowTreeMouseHandler } from './GridRowTreeMouseHandler';\nexport { default as GridScrollBarCornerMouseHandler } from './GridScrollBarCornerMouseHandler';\nexport { default as GridVerticalScrollBarMouseHandler } from './GridVerticalScrollBarMouseHandler';\nexport { default as EditMouseHandler } from './EditMouseHandler';\nexport * from './GridSeparatorMouseHandler';\n"],"mappings":"SAASA,OAAO,IAAIC,yBAAyB;AAAA,SACpCD,OAAO,IAAIE,0BAA0B;AAAA,SACrCF,OAAO,IAAIG,+BAA+B;AAAA,SAC1CH,OAAO,IAAII,mCAAmC;AAAA,SAC9CJ,OAAO,IAAIK,uBAAuB;AAAA,SAClCL,OAAO,IAAIM,4BAA4B;AAAA,SACvCN,OAAO,IAAIO,uBAAuB;AAAA,SAClCP,OAAO,IAAIQ,+BAA+B;AAAA,SAC1CR,OAAO,IAAIS,iCAAiC;AAAA,SAC5CT,OAAO,IAAIU,gBAAgB;AAAA"}
1
+ {"version":3,"file":"index.js","names":["default","GridSelectionMouseHandler","GridColumnMoveMouseHandler","GridColumnSeparatorMouseHandler","GridHorizontalScrollBarMouseHandler","GridRowMoveMouseHandler","GridRowSeparatorMouseHandler","GridRowTreeMouseHandler","GridScrollBarCornerMouseHandler","GridVerticalScrollBarMouseHandler","EditMouseHandler","GridTokenMouseHandler"],"sources":["../../src/mouse-handlers/index.ts"],"sourcesContent":["export { default as GridSelectionMouseHandler } from './GridSelectionMouseHandler';\nexport { default as GridColumnMoveMouseHandler } from './GridColumnMoveMouseHandler';\nexport { default as GridColumnSeparatorMouseHandler } from './GridColumnSeparatorMouseHandler';\nexport { default as GridHorizontalScrollBarMouseHandler } from './GridHorizontalScrollBarMouseHandler';\nexport { default as GridRowMoveMouseHandler } from './GridRowMoveMouseHandler';\nexport { default as GridRowSeparatorMouseHandler } from './GridRowSeparatorMouseHandler';\nexport { default as GridRowTreeMouseHandler } from './GridRowTreeMouseHandler';\nexport { default as GridScrollBarCornerMouseHandler } from './GridScrollBarCornerMouseHandler';\nexport { default as GridVerticalScrollBarMouseHandler } from './GridVerticalScrollBarMouseHandler';\nexport { default as EditMouseHandler } from './EditMouseHandler';\nexport { default as GridTokenMouseHandler } from './GridTokenMouseHandler';\nexport * from './GridSeparatorMouseHandler';\n"],"mappings":"SAASA,OAAO,IAAIC,yBAAyB;AAAA,SACpCD,OAAO,IAAIE,0BAA0B;AAAA,SACrCF,OAAO,IAAIG,+BAA+B;AAAA,SAC1CH,OAAO,IAAII,mCAAmC;AAAA,SAC9CJ,OAAO,IAAIK,uBAAuB;AAAA,SAClCL,OAAO,IAAIM,4BAA4B;AAAA,SACvCN,OAAO,IAAIO,uBAAuB;AAAA,SAClCP,OAAO,IAAIQ,+BAA+B;AAAA,SAC1CR,OAAO,IAAIS,iCAAiC;AAAA,SAC5CT,OAAO,IAAIU,gBAAgB;AAAA,SAC3BV,OAAO,IAAIW,qBAAqB;AAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/grid",
3
- "version": "0.31.2-beta.6+a55308d",
3
+ "version": "0.32.0",
4
4
  "description": "Deephaven React grid component",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -25,16 +25,17 @@
25
25
  "react": "^17.0.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@deephaven/tsconfig": "^0.31.2-beta.6+a55308d"
28
+ "@deephaven/tsconfig": "^0.32.0"
29
29
  },
30
30
  "files": [
31
31
  "dist"
32
32
  ],
33
33
  "dependencies": {
34
- "@deephaven/utils": "^0.31.2-beta.6+a55308d",
34
+ "@deephaven/utils": "^0.32.0",
35
35
  "classnames": "^2.3.1",
36
36
  "color-convert": "^2.0.1",
37
37
  "event-target-shim": "^6.0.2",
38
+ "linkifyjs": "^4.1.0",
38
39
  "lodash.clamp": "^4.0.3",
39
40
  "memoize-one": "^5.1.1",
40
41
  "memoizee": "^0.4.15",
@@ -43,5 +44,5 @@
43
44
  "publishConfig": {
44
45
  "access": "public"
45
46
  },
46
- "gitHead": "a55308d736e98a730e4512a5b3c199f693d2a62b"
47
+ "gitHead": "a60bda5c1eae60835987b3ced6d0d8f61ea23f19"
47
48
  }