@deephaven/grid 0.27.1-beta.3 → 0.28.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.
- package/dist/ExpandableGridModel.d.ts +12 -1
- package/dist/ExpandableGridModel.d.ts.map +1 -1
- package/dist/ExpandableGridModel.js.map +1 -1
- package/dist/Grid.d.ts +2 -1
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js +3 -1
- package/dist/Grid.js.map +1 -1
- package/dist/GridMetricCalculator.d.ts +9 -3
- package/dist/GridMetricCalculator.d.ts.map +1 -1
- package/dist/GridMetricCalculator.js +35 -8
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/MockTreeGridModel.d.ts +4 -1
- package/dist/MockTreeGridModel.d.ts.map +1 -1
- package/dist/MockTreeGridModel.js +11 -1
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts +1 -0
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +1 -0
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts +1 -0
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +1 -0
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +3 -2
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts +2 -0
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +15 -10
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockTreeGridModel.js","names":["MockGridModel","memoizeClear","MockTreeGridModel","constructor","rowCount","DEFAULT_ROW_COUNT","columnCount","DEFAULT_COLUMN_COUNT","children","Map","childRowCount","Math","ceil","max","MIN_CHILD_ROW_COUNT","DEFAULT_CHILD_ROW_COUNT_FACTOR","maxDepth","MAX_DEPTH","row","key","offsetRow","sortedEntries","sort","a","b","i","length","childRow","childModel","getCachedModelRowOffset","model","get","undefined","textForRowHeader","column","textForCell","depth","getCachedDepthForRow","isRowExpanded","has","depthForRow","getCachedTextForCell","getCachedTextForRowHeader","isRowMovable","hasExpandableRows","floatingBottomRowCount","isRowExpandable","getCachedIsRowExpandable","getCachedIsRowExpanded","setRowExpanded","isExpanded","originalChildRowCount","numRows","delete","child","numColumns","set"],"sources":["../src/MockTreeGridModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport MockGridModel from './MockGridModel';\nimport memoizeClear from './memoizeClear';\nimport ExpandableGridModel from './ExpandableGridModel';\nimport { ModelIndex } from './GridMetrics';\n\ntype ChildrenTreeMap = Map<ModelIndex, MockTreeGridModel>;\n\n/**\n * A class to mock a tree model so can test out tree models.\n * Whenever a row is expanded, it creates a child model for that row, which can then make a child for those rows, etc.\n */\nclass MockTreeGridModel extends MockGridModel implements ExpandableGridModel {\n static DEFAULT_ROW_COUNT = 1000000000;\n\n static DEFAULT_COLUMN_COUNT = 100;\n\n /** How many rows a child tree should have related to the parent. Eg. if parent has 10000 rows, child will have 100 */\n static DEFAULT_CHILD_ROW_COUNT_FACTOR = 0.01;\n\n static MIN_CHILD_ROW_COUNT = 10;\n\n static MAX_DEPTH = 10;\n\n private children: ChildrenTreeMap;\n\n private childRowCount: number;\n\n private maxDepth: number;\n\n constructor({\n rowCount = MockTreeGridModel.DEFAULT_ROW_COUNT,\n columnCount = MockTreeGridModel.DEFAULT_COLUMN_COUNT,\n children = new Map(),\n childRowCount = Math.ceil(\n Math.max(\n MockTreeGridModel.MIN_CHILD_ROW_COUNT,\n rowCount * MockTreeGridModel.DEFAULT_CHILD_ROW_COUNT_FACTOR\n )\n ),\n maxDepth = MockTreeGridModel.MAX_DEPTH,\n }: {\n children?: ChildrenTreeMap;\n columnCount?: number;\n rowCount?: number;\n childRowCount?: number;\n maxDepth?: number;\n } = {}) {\n super({ rowCount, columnCount });\n\n this.children = children;\n this.childRowCount = childRowCount;\n this.maxDepth = maxDepth;\n }\n\n textForCell(column: ModelIndex, row: ModelIndex): string {\n return this.getCachedTextForCell(this.children, column, row);\n }\n\n textForRowHeader(row: ModelIndex): string {\n return this.getCachedTextForRowHeader(this.children, row);\n }\n\n isRowMovable(row: ModelIndex): boolean {\n return false;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get floatingBottomRowCount(): number {\n return 0;\n }\n\n isRowExpandable(row: ModelIndex): boolean {\n return this.getCachedIsRowExpandable(this.children, row, this.maxDepth);\n }\n\n isRowExpanded(row: ModelIndex): boolean {\n return this.getCachedIsRowExpanded(this.children, row);\n }\n\n setRowExpanded(row: ModelIndex, isExpanded: boolean): void {\n const { key, offsetRow } = this.getCachedModelRowOffset(this.children, row);\n\n // We always set a new map so that our memoize functions work properly\n const children = new Map(this.children);\n if (key != null) {\n const model = this.children.get(key);\n if (model !== undefined) {\n const { rowCount: originalChildRowCount } = model;\n model.setRowExpanded(offsetRow, isExpanded);\n this.numRows += model.rowCount - originalChildRowCount;\n }\n } else if (!isExpanded) {\n const childModel = children.get(offsetRow);\n if (childModel !== undefined) {\n this.numRows -= childModel.rowCount;\n children.delete(offsetRow);\n }\n } else {\n const child = new MockTreeGridModel({\n rowCount: this.childRowCount,\n columnCount: this.numColumns,\n });\n children.set(offsetRow, child);\n this.numRows += child.rowCount;\n }\n\n this.children = children;\n }\n\n depthForRow(row: ModelIndex): number {\n return this.getCachedDepthForRow(this.children, row);\n }\n\n /**\n * Returns the map key and the offsetRow given the provided children and row index.\n * If the returned key is null, then this offset row is within this model.\n * Only returning the key instead of the model so that memoize doesn't cache a bunch of the children models after they've been deleted (collapsed).\n */\n getCachedModelRowOffset = memoizeClear(\n (\n children: ChildrenTreeMap,\n row: ModelIndex\n ): { key: ModelIndex | null; offsetRow: ModelIndex } => {\n let key = null;\n let offsetRow = row;\n // Need to iterate through the map in order... sort it first\n const sortedEntries = [...children].sort((a, b) => a[0] - b[0]);\n for (let i = 0; i < sortedEntries.length; i += 1) {\n const [childRow, childModel] = sortedEntries[i];\n if (offsetRow <= childRow) {\n break;\n }\n const childRowCount = childModel.rowCount;\n if (offsetRow <= childRow + childRowCount) {\n key = childRow;\n offsetRow = offsetRow - childRow - 1;\n break;\n }\n offsetRow -= childRowCount;\n }\n\n return { key, offsetRow };\n }\n );\n\n getCachedTextForRowHeader = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): string => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return `${key}.${model.textForRowHeader(offsetRow)}`;\n }\n }\n\n return `${offsetRow}`;\n }\n );\n\n getCachedTextForCell = memoizeClear(\n (\n children: ChildrenTreeMap,\n column: ModelIndex,\n row: ModelIndex\n ): string => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return `${key}.${model.textForCell(column, offsetRow)}`;\n }\n }\n\n return `${column},${offsetRow}`;\n }\n );\n\n getCachedIsRowExpandable = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex, maxDepth: number): boolean => {\n const depth = this.getCachedDepthForRow(children, row);\n\n return depth < maxDepth;\n }\n );\n\n getCachedIsRowExpanded = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): boolean => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return model.isRowExpanded(offsetRow);\n }\n }\n\n return children.has(offsetRow);\n }\n );\n\n getCachedDepthForRow = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): number => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return model.depthForRow(offsetRow) + 1;\n }\n }\n\n return 0;\n }\n );\n}\n\nexport default MockTreeGridModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MockTreeGridModel.js","names":["MockGridModel","memoizeClear","MockTreeGridModel","constructor","rowCount","DEFAULT_ROW_COUNT","columnCount","DEFAULT_COLUMN_COUNT","children","Map","childRowCount","Math","ceil","max","MIN_CHILD_ROW_COUNT","DEFAULT_CHILD_ROW_COUNT_FACTOR","maxDepth","MAX_DEPTH","row","key","offsetRow","sortedEntries","sort","a","b","i","length","childRow","childModel","getCachedModelRowOffset","model","get","undefined","textForRowHeader","column","textForCell","depth","getCachedDepthForRow","isRowExpanded","has","depthForRow","getCachedTextForCell","getCachedTextForRowHeader","isRowMovable","hasExpandableRows","isExpandAllAvailable","floatingBottomRowCount","isRowExpandable","getCachedIsRowExpandable","getCachedIsRowExpanded","setRowExpanded","isExpanded","expandDescendants","originalChildRowCount","numRows","delete","child","numColumns","set","expandAll","Error","collapseAll"],"sources":["../src/MockTreeGridModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport MockGridModel from './MockGridModel';\nimport memoizeClear from './memoizeClear';\nimport ExpandableGridModel from './ExpandableGridModel';\nimport { ModelIndex } from './GridMetrics';\n\ntype ChildrenTreeMap = Map<ModelIndex, MockTreeGridModel>;\n\n/**\n * A class to mock a tree model so can test out tree models.\n * Whenever a row is expanded, it creates a child model for that row, which can then make a child for those rows, etc.\n */\nclass MockTreeGridModel extends MockGridModel implements ExpandableGridModel {\n static DEFAULT_ROW_COUNT = 1000000000;\n\n static DEFAULT_COLUMN_COUNT = 100;\n\n /** How many rows a child tree should have related to the parent. Eg. if parent has 10000 rows, child will have 100 */\n static DEFAULT_CHILD_ROW_COUNT_FACTOR = 0.01;\n\n static MIN_CHILD_ROW_COUNT = 10;\n\n static MAX_DEPTH = 10;\n\n private children: ChildrenTreeMap;\n\n private childRowCount: number;\n\n private maxDepth: number;\n\n constructor({\n rowCount = MockTreeGridModel.DEFAULT_ROW_COUNT,\n columnCount = MockTreeGridModel.DEFAULT_COLUMN_COUNT,\n children = new Map(),\n childRowCount = Math.ceil(\n Math.max(\n MockTreeGridModel.MIN_CHILD_ROW_COUNT,\n rowCount * MockTreeGridModel.DEFAULT_CHILD_ROW_COUNT_FACTOR\n )\n ),\n maxDepth = MockTreeGridModel.MAX_DEPTH,\n }: {\n children?: ChildrenTreeMap;\n columnCount?: number;\n rowCount?: number;\n childRowCount?: number;\n maxDepth?: number;\n } = {}) {\n super({ rowCount, columnCount });\n\n this.children = children;\n this.childRowCount = childRowCount;\n this.maxDepth = maxDepth;\n }\n\n textForCell(column: ModelIndex, row: ModelIndex): string {\n return this.getCachedTextForCell(this.children, column, row);\n }\n\n textForRowHeader(row: ModelIndex): string {\n return this.getCachedTextForRowHeader(this.children, row);\n }\n\n isRowMovable(row: ModelIndex): boolean {\n return false;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get isExpandAllAvailable(): boolean {\n return false;\n }\n\n get floatingBottomRowCount(): number {\n return 0;\n }\n\n isRowExpandable(row: ModelIndex): boolean {\n return this.getCachedIsRowExpandable(this.children, row, this.maxDepth);\n }\n\n isRowExpanded(row: ModelIndex): boolean {\n return this.getCachedIsRowExpanded(this.children, row);\n }\n\n setRowExpanded(\n row: ModelIndex,\n isExpanded: boolean,\n expandDescendants = false\n ): void {\n const { key, offsetRow } = this.getCachedModelRowOffset(this.children, row);\n\n // We always set a new map so that our memoize functions work properly\n const children = new Map(this.children);\n if (key != null) {\n const model = this.children.get(key);\n if (model !== undefined) {\n const { rowCount: originalChildRowCount } = model;\n model.setRowExpanded(offsetRow, isExpanded, expandDescendants);\n this.numRows += model.rowCount - originalChildRowCount;\n }\n } else if (!isExpanded) {\n const childModel = children.get(offsetRow);\n if (childModel !== undefined) {\n this.numRows -= childModel.rowCount;\n children.delete(offsetRow);\n }\n } else {\n const child = new MockTreeGridModel({\n rowCount: this.childRowCount,\n columnCount: this.numColumns,\n });\n children.set(offsetRow, child);\n this.numRows += child.rowCount;\n }\n\n this.children = children;\n }\n\n expandAll(): void {\n throw new Error('Expand all not implemented.');\n }\n\n collapseAll(): void {\n throw new Error('Collapse all not implemented.');\n }\n\n depthForRow(row: ModelIndex): number {\n return this.getCachedDepthForRow(this.children, row);\n }\n\n /**\n * Returns the map key and the offsetRow given the provided children and row index.\n * If the returned key is null, then this offset row is within this model.\n * Only returning the key instead of the model so that memoize doesn't cache a bunch of the children models after they've been deleted (collapsed).\n */\n getCachedModelRowOffset = memoizeClear(\n (\n children: ChildrenTreeMap,\n row: ModelIndex\n ): { key: ModelIndex | null; offsetRow: ModelIndex } => {\n let key = null;\n let offsetRow = row;\n // Need to iterate through the map in order... sort it first\n const sortedEntries = [...children].sort((a, b) => a[0] - b[0]);\n for (let i = 0; i < sortedEntries.length; i += 1) {\n const [childRow, childModel] = sortedEntries[i];\n if (offsetRow <= childRow) {\n break;\n }\n const childRowCount = childModel.rowCount;\n if (offsetRow <= childRow + childRowCount) {\n key = childRow;\n offsetRow = offsetRow - childRow - 1;\n break;\n }\n offsetRow -= childRowCount;\n }\n\n return { key, offsetRow };\n }\n );\n\n getCachedTextForRowHeader = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): string => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return `${key}.${model.textForRowHeader(offsetRow)}`;\n }\n }\n\n return `${offsetRow}`;\n }\n );\n\n getCachedTextForCell = memoizeClear(\n (\n children: ChildrenTreeMap,\n column: ModelIndex,\n row: ModelIndex\n ): string => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return `${key}.${model.textForCell(column, offsetRow)}`;\n }\n }\n\n return `${column},${offsetRow}`;\n }\n );\n\n getCachedIsRowExpandable = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex, maxDepth: number): boolean => {\n const depth = this.getCachedDepthForRow(children, row);\n\n return depth < maxDepth;\n }\n );\n\n getCachedIsRowExpanded = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): boolean => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return model.isRowExpanded(offsetRow);\n }\n }\n\n return children.has(offsetRow);\n }\n );\n\n getCachedDepthForRow = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): number => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return model.depthForRow(offsetRow) + 1;\n }\n }\n\n return 0;\n }\n );\n}\n\nexport default MockTreeGridModel;\n"],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ declare class GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler
|
|
|
15
15
|
visibleSizesProperty: "visibleColumnWidths";
|
|
16
16
|
marginProperty: "rowHeaderWidth";
|
|
17
17
|
calculatedSizesProperty: "calculatedColumnWidths";
|
|
18
|
+
initialSizesProperty: "initialColumnWidths";
|
|
18
19
|
modelIndexesProperty: "modelColumns";
|
|
19
20
|
firstIndexProperty: "firstColumn";
|
|
20
21
|
treePaddingProperty: "treePaddingX";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridColumnSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,yBAAyB,EAAE,EAChC,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,cAAM,+BAAgC,SAAQ,yBAAyB;IACrE,MAAM,CAAC,kBAAkB,CACvB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,GACf,aAAa,GAAG,IAAI;IAiCvB,YAAY,SAAc;IAE1B,aAAa,SAAgB;IAE7B,aAAa,MAAgB;IAE7B,iBAAiB,qBAA+B;IAEhD,qBAAqB,oBAA8B;IAEnD,oBAAoB,wBAAkC;IAEtD,cAAc,mBAA6B;IAE3C,uBAAuB,2BAAqC;IAE5D,oBAAoB,iBAA2B;IAE/C,kBAAkB,gBAA0B;IAE5C,mBAAmB,iBAA2B;IAE9C,cAAc,oCAA8B;IAE5C,gBAAgB,sCAAgC;IAEhD,OAAO,CACL,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,IAAI;IAIP,SAAS,CACP,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,GACrB,IAAI;IAIP,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAOlE,YAAY,4DAAsD;CACnE;AAED,eAAe,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"GridColumnSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,yBAAyB,EAAE,EAChC,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,cAAM,+BAAgC,SAAQ,yBAAyB;IACrE,MAAM,CAAC,kBAAkB,CACvB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,GACf,aAAa,GAAG,IAAI;IAiCvB,YAAY,SAAc;IAE1B,aAAa,SAAgB;IAE7B,aAAa,MAAgB;IAE7B,iBAAiB,qBAA+B;IAEhD,qBAAqB,oBAA8B;IAEnD,oBAAoB,wBAAkC;IAEtD,cAAc,mBAA6B;IAE3C,uBAAuB,2BAAqC;IAE5D,oBAAoB,wBAAkC;IAEtD,oBAAoB,iBAA2B;IAE/C,kBAAkB,gBAA0B;IAE5C,mBAAmB,iBAA2B;IAE9C,cAAc,oCAA8B;IAE5C,gBAAgB,sCAAgC;IAEhD,OAAO,CACL,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,IAAI;IAIP,SAAS,CACP,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,GACrB,IAAI;IAIP,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAOlE,YAAY,4DAAsD;CACnE;AAED,eAAe,+BAA+B,CAAC"}
|
|
@@ -15,6 +15,7 @@ class GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {
|
|
|
15
15
|
_defineProperty(this, "visibleSizesProperty", 'visibleColumnWidths');
|
|
16
16
|
_defineProperty(this, "marginProperty", 'rowHeaderWidth');
|
|
17
17
|
_defineProperty(this, "calculatedSizesProperty", 'calculatedColumnWidths');
|
|
18
|
+
_defineProperty(this, "initialSizesProperty", 'initialColumnWidths');
|
|
18
19
|
_defineProperty(this, "modelIndexesProperty", 'modelColumns');
|
|
19
20
|
_defineProperty(this, "firstIndexProperty", 'firstColumn');
|
|
20
21
|
_defineProperty(this, "treePaddingProperty", 'treePaddingX');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridColumnSeparatorMouseHandler.js","names":["GridUtils","GridSeparatorMouseHandler","GridColumnSeparatorMouseHandler","getHiddenColumns","getNextShownColumn","getColumnSeparator","gridPoint","metrics","model","theme","allowColumnResize","x","y","columnHeaderDepth","modelColumns","separatorIndex","getColumnSeparatorIndex","columnIndex","get","index","depth","setSize","metricCalculator","modelIndex","size","setColumnWidth","resetSize","resetColumnWidth","updateSeparator","grid","separator","setState","draggingColumnSeparator","isDragging"],"sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport Grid from '../Grid';\nimport GridMetricCalculator from '../GridMetricCalculator';\nimport type { ModelIndex, GridMetrics } from '../GridMetrics';\nimport type GridModel from '../GridModel';\nimport type { GridTheme } from '../GridTheme';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridSeparatorMouseHandler, {\n GridSeparator,\n} from './GridSeparatorMouseHandler';\n\nclass GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getColumnSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null {\n if (!theme.allowColumnResize) {\n return null;\n }\n\n const { x, y, columnHeaderDepth } = gridPoint;\n\n const { modelColumns } = metrics;\n\n const separatorIndex = GridUtils.getColumnSeparatorIndex(\n x,\n y,\n metrics,\n theme\n );\n\n // TODO #695: Allow resizing of column groups as well. Right now just allow resizing from base columns\n if (\n separatorIndex == null ||\n columnHeaderDepth == null ||\n columnHeaderDepth > 0\n ) {\n return null;\n }\n\n const columnIndex = modelColumns.get(separatorIndex);\n if (columnIndex != null) {\n return { index: separatorIndex, depth: 0 };\n }\n\n return null;\n }\n\n hiddenCursor = 'e-resize';\n\n defaultCursor = 'col-resize';\n\n pointProperty = 'x' as const;\n\n userSizesProperty = 'userColumnWidths' as const;\n\n visibleOffsetProperty = 'visibleColumnXs' as const;\n\n visibleSizesProperty = 'visibleColumnWidths' as const;\n\n marginProperty = 'rowHeaderWidth' as const;\n\n calculatedSizesProperty = 'calculatedColumnWidths' as const;\n\n modelIndexesProperty = 'modelColumns' as const;\n\n firstIndexProperty = 'firstColumn' as const;\n\n treePaddingProperty = 'treePaddingX' as const;\n\n getHiddenItems = GridUtils.getHiddenColumns;\n\n getNextShownItem = GridUtils.getNextShownColumn;\n\n setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void {\n metricCalculator.setColumnWidth(modelIndex, size);\n }\n\n resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void {\n metricCalculator.resetColumnWidth(modelIndex);\n }\n\n updateSeparator(grid: Grid, separator: GridSeparator | null): void {\n grid.setState({\n draggingColumnSeparator: separator,\n isDragging: separator !== null,\n });\n }\n\n getSeparator = GridColumnSeparatorMouseHandler.getColumnSeparator;\n}\n\nexport default GridColumnSeparatorMouseHandler;\n"],"mappings":";;;AAAA;AAAA,OAMOA,SAAS;AAAA,OACTC,yBAAyB;AAIhC,MAAMC,+BAA+B,SAASD,yBAAyB,CAAC;EAAA;IAAA;IAAA,sCAuCvD,UAAU;IAAA,uCAET,YAAY;IAAA,uCAEZ,GAAG;IAAA,2CAEC,kBAAkB;IAAA,+CAEd,iBAAiB;IAAA,8CAElB,qBAAqB;IAAA,wCAE3B,gBAAgB;IAAA,iDAEP,wBAAwB;IAAA,8CAE3B,cAAc;IAAA,4CAEhB,aAAa;IAAA,6CAEZ,cAAc;IAAA,wCAEnBD,SAAS,CAACG,gBAAgB;IAAA,0CAExBH,SAAS,CAACI,kBAAkB;IAAA,sCAwBhCF,+BAA+B,CAACG,kBAAkB;EAAA;
|
|
1
|
+
{"version":3,"file":"GridColumnSeparatorMouseHandler.js","names":["GridUtils","GridSeparatorMouseHandler","GridColumnSeparatorMouseHandler","getHiddenColumns","getNextShownColumn","getColumnSeparator","gridPoint","metrics","model","theme","allowColumnResize","x","y","columnHeaderDepth","modelColumns","separatorIndex","getColumnSeparatorIndex","columnIndex","get","index","depth","setSize","metricCalculator","modelIndex","size","setColumnWidth","resetSize","resetColumnWidth","updateSeparator","grid","separator","setState","draggingColumnSeparator","isDragging"],"sources":["../../src/mouse-handlers/GridColumnSeparatorMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport Grid from '../Grid';\nimport GridMetricCalculator from '../GridMetricCalculator';\nimport type { ModelIndex, GridMetrics } from '../GridMetrics';\nimport type GridModel from '../GridModel';\nimport type { GridTheme } from '../GridTheme';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridSeparatorMouseHandler, {\n GridSeparator,\n} from './GridSeparatorMouseHandler';\n\nclass GridColumnSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getColumnSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null {\n if (!theme.allowColumnResize) {\n return null;\n }\n\n const { x, y, columnHeaderDepth } = gridPoint;\n\n const { modelColumns } = metrics;\n\n const separatorIndex = GridUtils.getColumnSeparatorIndex(\n x,\n y,\n metrics,\n theme\n );\n\n // TODO #695: Allow resizing of column groups as well. Right now just allow resizing from base columns\n if (\n separatorIndex == null ||\n columnHeaderDepth == null ||\n columnHeaderDepth > 0\n ) {\n return null;\n }\n\n const columnIndex = modelColumns.get(separatorIndex);\n if (columnIndex != null) {\n return { index: separatorIndex, depth: 0 };\n }\n\n return null;\n }\n\n hiddenCursor = 'e-resize';\n\n defaultCursor = 'col-resize';\n\n pointProperty = 'x' as const;\n\n userSizesProperty = 'userColumnWidths' as const;\n\n visibleOffsetProperty = 'visibleColumnXs' as const;\n\n visibleSizesProperty = 'visibleColumnWidths' as const;\n\n marginProperty = 'rowHeaderWidth' as const;\n\n calculatedSizesProperty = 'calculatedColumnWidths' as const;\n\n initialSizesProperty = 'initialColumnWidths' as const;\n\n modelIndexesProperty = 'modelColumns' as const;\n\n firstIndexProperty = 'firstColumn' as const;\n\n treePaddingProperty = 'treePaddingX' as const;\n\n getHiddenItems = GridUtils.getHiddenColumns;\n\n getNextShownItem = GridUtils.getNextShownColumn;\n\n setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void {\n metricCalculator.setColumnWidth(modelIndex, size);\n }\n\n resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void {\n metricCalculator.resetColumnWidth(modelIndex);\n }\n\n updateSeparator(grid: Grid, separator: GridSeparator | null): void {\n grid.setState({\n draggingColumnSeparator: separator,\n isDragging: separator !== null,\n });\n }\n\n getSeparator = GridColumnSeparatorMouseHandler.getColumnSeparator;\n}\n\nexport default GridColumnSeparatorMouseHandler;\n"],"mappings":";;;AAAA;AAAA,OAMOA,SAAS;AAAA,OACTC,yBAAyB;AAIhC,MAAMC,+BAA+B,SAASD,yBAAyB,CAAC;EAAA;IAAA;IAAA,sCAuCvD,UAAU;IAAA,uCAET,YAAY;IAAA,uCAEZ,GAAG;IAAA,2CAEC,kBAAkB;IAAA,+CAEd,iBAAiB;IAAA,8CAElB,qBAAqB;IAAA,wCAE3B,gBAAgB;IAAA,iDAEP,wBAAwB;IAAA,8CAE3B,qBAAqB;IAAA,8CAErB,cAAc;IAAA,4CAEhB,aAAa;IAAA,6CAEZ,cAAc;IAAA,wCAEnBD,SAAS,CAACG,gBAAgB;IAAA,0CAExBH,SAAS,CAACI,kBAAkB;IAAA,sCAwBhCF,+BAA+B,CAACG,kBAAkB;EAAA;EAxFjE,OAAOA,kBAAkB,CACvBC,SAAoB,EACpBC,OAAoB,EACpBC,KAAgB,EAChBC,KAAgB,EACM;IACtB,IAAI,CAACA,KAAK,CAACC,iBAAiB,EAAE;MAC5B,OAAO,IAAI;IACb;IAEA,IAAM;MAAEC,CAAC;MAAEC,CAAC;MAAEC;IAAkB,CAAC,GAAGP,SAAS;IAE7C,IAAM;MAAEQ;IAAa,CAAC,GAAGP,OAAO;IAEhC,IAAMQ,cAAc,GAAGf,SAAS,CAACgB,uBAAuB,CACtDL,CAAC,EACDC,CAAC,EACDL,OAAO,EACPE,KAAK,CACN;;IAED;IACA,IACEM,cAAc,IAAI,IAAI,IACtBF,iBAAiB,IAAI,IAAI,IACzBA,iBAAiB,GAAG,CAAC,EACrB;MACA,OAAO,IAAI;IACb;IAEA,IAAMI,WAAW,GAAGH,YAAY,CAACI,GAAG,CAACH,cAAc,CAAC;IACpD,IAAIE,WAAW,IAAI,IAAI,EAAE;MACvB,OAAO;QAAEE,KAAK,EAAEJ,cAAc;QAAEK,KAAK,EAAE;MAAE,CAAC;IAC5C;IAEA,OAAO,IAAI;EACb;EA8BAC,OAAO,CACLC,gBAAsC,EACtCC,UAAsB,EACtBC,IAAY,EACN;IACNF,gBAAgB,CAACG,cAAc,CAACF,UAAU,EAAEC,IAAI,CAAC;EACnD;EAEAE,SAAS,CACPJ,gBAAsC,EACtCC,UAAsB,EAChB;IACND,gBAAgB,CAACK,gBAAgB,CAACJ,UAAU,CAAC;EAC/C;EAEAK,eAAe,CAACC,IAAU,EAAEC,SAA+B,EAAQ;IACjED,IAAI,CAACE,QAAQ,CAAC;MACZC,uBAAuB,EAAEF,SAAS;MAClCG,UAAU,EAAEH,SAAS,KAAK;IAC5B,CAAC,CAAC;EACJ;AAGF;AAEA,eAAe5B,+BAA+B"}
|
|
@@ -15,6 +15,7 @@ declare class GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {
|
|
|
15
15
|
visibleSizesProperty: "visibleRowHeights";
|
|
16
16
|
marginProperty: "columnHeaderHeight";
|
|
17
17
|
calculatedSizesProperty: "calculatedRowHeights";
|
|
18
|
+
initialSizesProperty: "initialRowHeights";
|
|
18
19
|
modelIndexesProperty: "modelRows";
|
|
19
20
|
firstIndexProperty: "firstRow";
|
|
20
21
|
treePaddingProperty: "treePaddingY";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridRowSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowSeparatorMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,yBAAyB,EAAE,EAChC,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,cAAM,4BAA6B,SAAQ,yBAAyB;IAClE,MAAM,CAAC,eAAe,CACpB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,GACf,aAAa,GAAG,IAAI;IAYvB,YAAY,SAAc;IAE1B,aAAa,SAAgB;IAE7B,aAAa,MAAgB;IAE7B,iBAAiB,mBAA6B;IAE9C,qBAAqB,iBAA2B;IAEhD,oBAAoB,sBAAgC;IAEpD,cAAc,uBAAiC;IAE/C,uBAAuB,yBAAmC;IAE1D,oBAAoB,cAAwB;IAE5C,kBAAkB,aAAuB;IAEzC,mBAAmB,iBAA2B;IAE9C,cAAc,iCAA2B;IAEzC,gBAAgB,mCAA6B;IAE7C,OAAO,CACL,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,IAAI;IAIP,SAAS,CACP,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,GACrB,IAAI;IAIP,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAOlE,YAAY,sDAAgD;CAC7D;AAED,eAAe,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"GridRowSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowSeparatorMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,yBAAyB,EAAE,EAChC,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC,cAAM,4BAA6B,SAAQ,yBAAyB;IAClE,MAAM,CAAC,eAAe,CACpB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,GACf,aAAa,GAAG,IAAI;IAYvB,YAAY,SAAc;IAE1B,aAAa,SAAgB;IAE7B,aAAa,MAAgB;IAE7B,iBAAiB,mBAA6B;IAE9C,qBAAqB,iBAA2B;IAEhD,oBAAoB,sBAAgC;IAEpD,cAAc,uBAAiC;IAE/C,uBAAuB,yBAAmC;IAE1D,oBAAoB,sBAAgC;IAEpD,oBAAoB,cAAwB;IAE5C,kBAAkB,aAAuB;IAEzC,mBAAmB,iBAA2B;IAE9C,cAAc,iCAA2B;IAEzC,gBAAgB,mCAA6B;IAE7C,OAAO,CACL,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,IAAI;IAIP,SAAS,CACP,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,GACrB,IAAI;IAIP,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAOlE,YAAY,sDAAgD;CAC7D;AAED,eAAe,4BAA4B,CAAC"}
|
|
@@ -15,6 +15,7 @@ class GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {
|
|
|
15
15
|
_defineProperty(this, "visibleSizesProperty", 'visibleRowHeights');
|
|
16
16
|
_defineProperty(this, "marginProperty", 'columnHeaderHeight');
|
|
17
17
|
_defineProperty(this, "calculatedSizesProperty", 'calculatedRowHeights');
|
|
18
|
+
_defineProperty(this, "initialSizesProperty", 'initialRowHeights');
|
|
18
19
|
_defineProperty(this, "modelIndexesProperty", 'modelRows');
|
|
19
20
|
_defineProperty(this, "firstIndexProperty", 'firstRow');
|
|
20
21
|
_defineProperty(this, "treePaddingProperty", 'treePaddingY');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridRowSeparatorMouseHandler.js","names":["GridUtils","GridSeparatorMouseHandler","GridRowSeparatorMouseHandler","getHiddenRows","getNextShownRow","getRowSeparator","gridPoint","metrics","model","theme","allowRowResize","x","y","index","getRowSeparatorIndex","depth","setSize","metricCalculator","modelIndex","size","setRowHeight","resetSize","resetRowHeight","updateSeparator","grid","separator","setState","draggingRowSeparator","isDragging"],"sources":["../../src/mouse-handlers/GridRowSeparatorMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport Grid from '../Grid';\nimport GridMetricCalculator from '../GridMetricCalculator';\nimport type { ModelIndex, GridMetrics } from '../GridMetrics';\nimport type GridModel from '../GridModel';\nimport { GridTheme } from '../GridTheme';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridSeparatorMouseHandler, {\n GridSeparator,\n} from './GridSeparatorMouseHandler';\n\nclass GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getRowSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null {\n if (!theme.allowRowResize) {\n return null;\n }\n\n const { x, y } = gridPoint;\n\n const index = GridUtils.getRowSeparatorIndex(x, y, metrics, theme);\n\n return index != null ? { index, depth: 0 } : null;\n }\n\n hiddenCursor = 's-resize';\n\n defaultCursor = 'row-resize';\n\n pointProperty = 'y' as const;\n\n userSizesProperty = 'userRowHeights' as const;\n\n visibleOffsetProperty = 'visibleRowYs' as const;\n\n visibleSizesProperty = 'visibleRowHeights' as const;\n\n marginProperty = 'columnHeaderHeight' as const;\n\n calculatedSizesProperty = 'calculatedRowHeights' as const;\n\n modelIndexesProperty = 'modelRows' as const;\n\n firstIndexProperty = 'firstRow' as const;\n\n treePaddingProperty = 'treePaddingY' as const;\n\n getHiddenItems = GridUtils.getHiddenRows;\n\n getNextShownItem = GridUtils.getNextShownRow;\n\n setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void {\n metricCalculator.setRowHeight(modelIndex, size);\n }\n\n resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void {\n metricCalculator.resetRowHeight(modelIndex);\n }\n\n updateSeparator(grid: Grid, separator: GridSeparator | null): void {\n grid.setState({\n draggingRowSeparator: separator,\n isDragging: separator !== null,\n });\n }\n\n getSeparator = GridRowSeparatorMouseHandler.getRowSeparator;\n}\n\nexport default GridRowSeparatorMouseHandler;\n"],"mappings":";;;AAAA;AAAA,OAMOA,SAAS;AAAA,OACTC,yBAAyB;AAIhC,MAAMC,4BAA4B,SAASD,yBAAyB,CAAC;EAAA;IAAA;IAAA,sCAkBpD,UAAU;IAAA,uCAET,YAAY;IAAA,uCAEZ,GAAG;IAAA,2CAEC,gBAAgB;IAAA,+CAEZ,cAAc;IAAA,8CAEf,mBAAmB;IAAA,wCAEzB,oBAAoB;IAAA,iDAEX,sBAAsB;IAAA,8CAEzB,WAAW;IAAA,4CAEb,UAAU;IAAA,6CAET,cAAc;IAAA,wCAEnBD,SAAS,CAACG,aAAa;IAAA,0CAErBH,SAAS,CAACI,eAAe;IAAA,sCAwB7BF,4BAA4B,CAACG,eAAe;EAAA;
|
|
1
|
+
{"version":3,"file":"GridRowSeparatorMouseHandler.js","names":["GridUtils","GridSeparatorMouseHandler","GridRowSeparatorMouseHandler","getHiddenRows","getNextShownRow","getRowSeparator","gridPoint","metrics","model","theme","allowRowResize","x","y","index","getRowSeparatorIndex","depth","setSize","metricCalculator","modelIndex","size","setRowHeight","resetSize","resetRowHeight","updateSeparator","grid","separator","setState","draggingRowSeparator","isDragging"],"sources":["../../src/mouse-handlers/GridRowSeparatorMouseHandler.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport Grid from '../Grid';\nimport GridMetricCalculator from '../GridMetricCalculator';\nimport type { ModelIndex, GridMetrics } from '../GridMetrics';\nimport type GridModel from '../GridModel';\nimport { GridTheme } from '../GridTheme';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridSeparatorMouseHandler, {\n GridSeparator,\n} from './GridSeparatorMouseHandler';\n\nclass GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getRowSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null {\n if (!theme.allowRowResize) {\n return null;\n }\n\n const { x, y } = gridPoint;\n\n const index = GridUtils.getRowSeparatorIndex(x, y, metrics, theme);\n\n return index != null ? { index, depth: 0 } : null;\n }\n\n hiddenCursor = 's-resize';\n\n defaultCursor = 'row-resize';\n\n pointProperty = 'y' as const;\n\n userSizesProperty = 'userRowHeights' as const;\n\n visibleOffsetProperty = 'visibleRowYs' as const;\n\n visibleSizesProperty = 'visibleRowHeights' as const;\n\n marginProperty = 'columnHeaderHeight' as const;\n\n calculatedSizesProperty = 'calculatedRowHeights' as const;\n\n initialSizesProperty = 'initialRowHeights' as const;\n\n modelIndexesProperty = 'modelRows' as const;\n\n firstIndexProperty = 'firstRow' as const;\n\n treePaddingProperty = 'treePaddingY' as const;\n\n getHiddenItems = GridUtils.getHiddenRows;\n\n getNextShownItem = GridUtils.getNextShownRow;\n\n setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void {\n metricCalculator.setRowHeight(modelIndex, size);\n }\n\n resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void {\n metricCalculator.resetRowHeight(modelIndex);\n }\n\n updateSeparator(grid: Grid, separator: GridSeparator | null): void {\n grid.setState({\n draggingRowSeparator: separator,\n isDragging: separator !== null,\n });\n }\n\n getSeparator = GridRowSeparatorMouseHandler.getRowSeparator;\n}\n\nexport default GridRowSeparatorMouseHandler;\n"],"mappings":";;;AAAA;AAAA,OAMOA,SAAS;AAAA,OACTC,yBAAyB;AAIhC,MAAMC,4BAA4B,SAASD,yBAAyB,CAAC;EAAA;IAAA;IAAA,sCAkBpD,UAAU;IAAA,uCAET,YAAY;IAAA,uCAEZ,GAAG;IAAA,2CAEC,gBAAgB;IAAA,+CAEZ,cAAc;IAAA,8CAEf,mBAAmB;IAAA,wCAEzB,oBAAoB;IAAA,iDAEX,sBAAsB;IAAA,8CAEzB,mBAAmB;IAAA,8CAEnB,WAAW;IAAA,4CAEb,UAAU;IAAA,6CAET,cAAc;IAAA,wCAEnBD,SAAS,CAACG,aAAa;IAAA,0CAErBH,SAAS,CAACI,eAAe;IAAA,sCAwB7BF,4BAA4B,CAACG,eAAe;EAAA;EAnE3D,OAAOA,eAAe,CACpBC,SAAoB,EACpBC,OAAoB,EACpBC,KAAgB,EAChBC,KAAgB,EACM;IACtB,IAAI,CAACA,KAAK,CAACC,cAAc,EAAE;MACzB,OAAO,IAAI;IACb;IAEA,IAAM;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAGN,SAAS;IAE1B,IAAMO,KAAK,GAAGb,SAAS,CAACc,oBAAoB,CAACH,CAAC,EAAEC,CAAC,EAAEL,OAAO,EAAEE,KAAK,CAAC;IAElE,OAAOI,KAAK,IAAI,IAAI,GAAG;MAAEA,KAAK;MAAEE,KAAK,EAAE;IAAE,CAAC,GAAG,IAAI;EACnD;EA8BAC,OAAO,CACLC,gBAAsC,EACtCC,UAAsB,EACtBC,IAAY,EACN;IACNF,gBAAgB,CAACG,YAAY,CAACF,UAAU,EAAEC,IAAI,CAAC;EACjD;EAEAE,SAAS,CACPJ,gBAAsC,EACtCC,UAAsB,EAChB;IACND,gBAAgB,CAACK,cAAc,CAACJ,UAAU,CAAC;EAC7C;EAEAK,eAAe,CAACC,IAAU,EAAEC,SAA+B,EAAQ;IACjED,IAAI,CAACE,QAAQ,CAAC;MACZC,oBAAoB,EAAEF,SAAS;MAC/BG,UAAU,EAAEH,SAAS,KAAK;IAC5B,CAAC,CAAC;EACJ;AAGF;AAEA,eAAevB,4BAA4B"}
|
|
@@ -8,7 +8,7 @@ import { GridPoint } from '../GridUtils';
|
|
|
8
8
|
declare class GridRowTreeMouseHandler extends GridMouseHandler {
|
|
9
9
|
static isInTreeBox(gridPoint: GridPoint, grid: Grid): boolean;
|
|
10
10
|
onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
11
|
-
onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
11
|
+
onClick(gridPoint: GridPoint, grid: Grid, event: React.MouseEvent): EventHandlerResult;
|
|
12
12
|
}
|
|
13
13
|
export default GridRowTreeMouseHandler;
|
|
14
14
|
//# sourceMappingURL=GridRowTreeMouseHandler.d.ts.map
|
|
@@ -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,
|
|
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,6 +1,7 @@
|
|
|
1
1
|
/* eslint class-methods-use-this: "off" */
|
|
2
2
|
import { getOrThrow } from "../GridMetricCalculator.js";
|
|
3
3
|
import GridMouseHandler from "../GridMouseHandler.js";
|
|
4
|
+
import GridUtils from "../GridUtils.js";
|
|
4
5
|
/**
|
|
5
6
|
* Detect when the tree expand/collapse button is clicked
|
|
6
7
|
*/
|
|
@@ -40,13 +41,13 @@ class GridRowTreeMouseHandler extends GridMouseHandler {
|
|
|
40
41
|
onDown(gridPoint, grid) {
|
|
41
42
|
return GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid);
|
|
42
43
|
}
|
|
43
|
-
onClick(gridPoint, grid) {
|
|
44
|
+
onClick(gridPoint, grid, event) {
|
|
44
45
|
if (GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid)) {
|
|
45
46
|
var {
|
|
46
47
|
row
|
|
47
48
|
} = gridPoint;
|
|
48
49
|
if (row !== null) {
|
|
49
|
-
grid.toggleRowExpanded(row);
|
|
50
|
+
grid.toggleRowExpanded(row, GridUtils.isModifierKeyDown(event));
|
|
50
51
|
return true;
|
|
51
52
|
}
|
|
52
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridRowTreeMouseHandler.js","names":["getOrThrow","GridMouseHandler","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","toggleRowExpanded"],"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 { 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(gridPoint: GridPoint
|
|
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"}
|
|
@@ -12,6 +12,7 @@ export type VisibleOffsetProperty = 'visibleRowYs' | 'visibleColumnXs';
|
|
|
12
12
|
export type VisibleSizeProperty = 'visibleRowHeights' | 'visibleColumnWidths';
|
|
13
13
|
export type MarginProperty = 'columnHeaderHeight' | 'rowHeaderWidth';
|
|
14
14
|
export type CalculatedSizeProperty = 'calculatedRowHeights' | 'calculatedColumnWidths';
|
|
15
|
+
export type InitialSizeProperty = 'initialRowHeights' | 'initialColumnWidths';
|
|
15
16
|
export type ModelIndexesProperty = 'modelRows' | 'modelColumns';
|
|
16
17
|
export type FirstIndexProperty = 'firstRow' | 'firstColumn';
|
|
17
18
|
export type TreePaddingProperty = 'treePaddingX' | 'treePaddingY';
|
|
@@ -37,6 +38,7 @@ declare abstract class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
37
38
|
abstract visibleSizesProperty: VisibleSizeProperty;
|
|
38
39
|
abstract marginProperty: MarginProperty;
|
|
39
40
|
abstract calculatedSizesProperty: CalculatedSizeProperty;
|
|
41
|
+
abstract initialSizesProperty: InitialSizeProperty;
|
|
40
42
|
abstract modelIndexesProperty: ModelIndexesProperty;
|
|
41
43
|
abstract firstIndexProperty: FirstIndexProperty;
|
|
42
44
|
abstract treePaddingProperty: TreePaddingProperty;
|
|
@@ -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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"}
|
|
@@ -23,6 +23,7 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
23
23
|
_defineProperty(this, "visibleSizesProperty", void 0);
|
|
24
24
|
_defineProperty(this, "marginProperty", void 0);
|
|
25
25
|
_defineProperty(this, "calculatedSizesProperty", void 0);
|
|
26
|
+
_defineProperty(this, "initialSizesProperty", void 0);
|
|
26
27
|
_defineProperty(this, "modelIndexesProperty", void 0);
|
|
27
28
|
_defineProperty(this, "firstIndexProperty", void 0);
|
|
28
29
|
_defineProperty(this, "treePaddingProperty", void 0);
|
|
@@ -106,18 +107,14 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
106
107
|
var newSize = itemSize;
|
|
107
108
|
if (Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold) {
|
|
108
109
|
// Snapping behaviour to "natural" width
|
|
109
|
-
newSize =
|
|
110
|
+
newSize = calculatedSize;
|
|
110
111
|
} else if (targetSize !== undefined && itemSize > targetSize && (isResizingMultiple && hiddenIndex !== 0 || hiddenIndex > 0)) {
|
|
111
112
|
newSize = targetSize;
|
|
112
113
|
} else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {
|
|
113
114
|
// Snapping to hidden item
|
|
114
115
|
newSize = 0;
|
|
115
116
|
}
|
|
116
|
-
|
|
117
|
-
newSizes.set(_modelIndex, newSize);
|
|
118
|
-
} else {
|
|
119
|
-
newSizes.set(_modelIndex, null);
|
|
120
|
-
}
|
|
117
|
+
newSizes.set(_modelIndex, newSize);
|
|
121
118
|
if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {
|
|
122
119
|
if (hiddenIndex >= 0 && isResizingMultiple) {
|
|
123
120
|
var _this$targetSizes$get;
|
|
@@ -150,10 +147,12 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
150
147
|
}
|
|
151
148
|
}
|
|
152
149
|
newSizes.forEach((newSize, modelIndex) => {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
150
|
+
var _metricCalculator$thi;
|
|
151
|
+
var defaultSize = (_metricCalculator$thi = metricCalculator[this.initialSizesProperty].get(modelIndex)) !== null && _metricCalculator$thi !== void 0 ? _metricCalculator$thi : calculatedSizes.get(modelIndex);
|
|
152
|
+
if (newSize === defaultSize) {
|
|
156
153
|
this.resetSize(metricCalculator, modelIndex);
|
|
154
|
+
} else {
|
|
155
|
+
this.setSize(metricCalculator, modelIndex, newSize);
|
|
157
156
|
}
|
|
158
157
|
});
|
|
159
158
|
this.updateCursor(metrics, this.draggingIndex);
|
|
@@ -183,7 +182,13 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
183
182
|
if (separator != null) {
|
|
184
183
|
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
185
184
|
var _modelIndex2 = getOrThrow(modelIndexes, separator.index);
|
|
186
|
-
this.
|
|
185
|
+
var calculatedSize = getOrThrow(metrics[this.calculatedSizesProperty], _modelIndex2);
|
|
186
|
+
var defaultSize = metricCalculator[this.initialSizesProperty].get(_modelIndex2);
|
|
187
|
+
if (calculatedSize === defaultSize) {
|
|
188
|
+
this.resetSize(metricCalculator, _modelIndex2);
|
|
189
|
+
} else {
|
|
190
|
+
this.setSize(metricCalculator, _modelIndex2, calculatedSize);
|
|
191
|
+
}
|
|
187
192
|
grid.forceUpdate();
|
|
188
193
|
return true;
|
|
189
194
|
}
|
|
@@ -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","setSize","resetSize","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 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 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 | null> = 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: number | null = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = null;\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 if (newSize !== calculatedSize) {\n newSizes.set(modelIndex, newSize);\n } else {\n newSizes.set(modelIndex, null);\n }\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 if (newSize !== null) {\n this.setSize(metricCalculator, modelIndex, newSize);\n } else {\n this.resetSize(metricCalculator, modelIndex);\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 this.resetSize(metricCalculator, modelIndex);\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 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":";;;SAISA,UAAU;AAAA,OAEZC,gBAAgB;AAsBvB;AACA;AACA;AACA;AACA,MAAeC,yBAAyB,SAASD,gBAAgB,CAAC;EAAA;IAAA;IAAA;IAAA,uCAKtB,EAAE;IAAA,qCAGJ,EAAE;IAAA,qCAGO,IAAIE,GAAG,EAAE;IAAA,oCAEnC,CAAC;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAwDxB;;EAEAC,MAAM,CAACC,SAAoB,EAAEC,IAAU,EAAsB;IAC3D,IAAM;MAAEC;IAAQ,CAAC,GAAGD,IAAI;IACxB,IAAM;MAAEE;IAAM,CAAC,GAAGF,IAAI,CAACG,KAAK;IAC5B,IAAMC,KAAK,GAAGJ,IAAI,CAACK,QAAQ,EAAE;IAC7B,IAAI,CAACJ,OAAO,EAAE,MAAM,IAAIK,KAAK,CAAC,iBAAiB,CAAC;IAEhD,IAAMC,SAAS,GAAG,IAAI,CAACC,YAAY,CAACT,SAAS,EAAEE,OAAO,EAAEC,KAAK,EAAEE,KAAK,CAAC;IACrE,IAAIG,SAAS,IAAI,IAAI,EAAE;MACrB,IAAME,cAAc,GAAGF,SAAS,CAACG,KAAK;MAEtC,IAAI,CAACC,UAAU,GAAG,CAAC;MACnB,IAAI,CAACC,aAAa,GAAGH,cAAc;MACnC,IAAI,CAACI,aAAa,GAAG,CAACJ,cAAc,CAAC;MACrC,IAAI,CAACK,WAAW,GAAG,IAAI,CAACC,cAAc,CAACN,cAAc,EAAER,OAAO,CAAC,CAACe,OAAO,EAAE;MACzE,IAAI,CAACC,WAAW,CAACC,KAAK,EAAE;MAExB,IAAI,CAACC,aAAa,CAAClB,OAAO,EAAEQ,cAAc,CAAC;MAE3C,IAAI,CAACW,YAAY,CAACnB,OAAO,EAAEQ,cAAc,CAAC;MAE1C,IAAI,CAACY,eAAe,CAACrB,IAAI,EAAEO,SAAS,CAAC;MAErC,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAe,MAAM,CAACvB,SAAoB,EAAEC,IAAU,EAAsB;IAC3D,IAAM;MAAEC;IAAQ,CAAC,GAAGD,IAAI;IACxB,IAAM;MAAEE;IAAM,CAAC,GAAGF,IAAI,CAACG,KAAK;IAC5B,IAAMC,KAAK,GAAGJ,IAAI,CAACK,QAAQ,EAAE;IAC7B,IAAI,CAACJ,OAAO,EAAE,MAAM,IAAIK,KAAK,CAAC,iBAAiB,CAAC;IAEhD,IAAMC,SAAS,GAAG,IAAI,CAACC,YAAY,CAACT,SAAS,EAAEE,OAAO,EAAEC,KAAK,EAAEE,KAAK,CAAC;IAErE,IAAIG,SAAS,IAAI,IAAI,EAAE;MACrB,IAAI,CAACa,YAAY,CAACnB,OAAO,EAAEM,SAAS,CAACG,KAAK,CAAC;MAC3C,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAa,MAAM,CAACxB,SAAoB,EAAEC,IAAU,EAAsB;IAC3D,IAAI,IAAI,CAACY,aAAa,IAAI,IAAI,EAAE;MAC9B,OAAO,KAAK;IACd;IAEA,IAAMY,KAAK,GAAGzB,SAAS,CAAC,IAAI,CAAC0B,aAAa,CAAC;IAC3C,IAAM;MAAEC,gBAAgB;MAAEzB;IAAQ,CAAC,GAAGD,IAAI;IAC1C,IAAI,CAACC,OAAO,EAAE,MAAM,IAAIK,KAAK,CAAC,iBAAiB,CAAC;IAEhD,IAAMF,KAAK,GAAGJ,IAAI,CAACK,QAAQ,EAAE;IAE7B,IAAMsB,cAAc,GAAG1B,OAAO,CAAC,IAAI,CAAC2B,qBAAqB,CAAC;IAC1D,IAAMC,MAAM,GAAG5B,OAAO,CAAC,IAAI,CAAC6B,cAAc,CAAC;IAC3C,IAAMC,eAAe,GAAG9B,OAAO,CAAC,IAAI,CAAC+B,uBAAuB,CAAC;IAC7D,IAAMC,YAAY,GAAGhC,OAAO,CAAC,IAAI,CAACiC,oBAAoB,CAAC;IACvD,IAAMC,UAAU,GAAGlC,OAAO,CAAC,IAAI,CAACmC,kBAAkB,CAAC;IACnD,IAAMC,WAAW,GAAGpC,OAAO,CAAC,IAAI,CAACqC,mBAAmB,CAAC;;IAErD;IACA,IAAMC,QAAiC,GAAG,IAAI1C,GAAG,EAAE;;IAEnD;IACA,IAAI2C,WAA0B,GAAG,IAAI,CAAC3B,aAAa,CACjD,IAAI,CAACA,aAAa,CAAC4B,MAAM,GAAG,CAAC,CAC9B;IACD,OAAOD,WAAW,IAAI,IAAI,EAAE;MAC1B,IAAME,UAAU,GAAGhD,UAAU,CAACiC,cAAc,EAAEa,WAAW,CAAC;MAC1D,IAAMG,QAAQ,GAAGnB,KAAK,GAAGK,MAAM,GAAGa,UAAU,GAAG,IAAI,CAAC/B,UAAU;MAC9D,IAAMiC,WAAU,GAAGlD,UAAU,CAACuC,YAAY,EAAEO,WAAW,CAAC;MACxD,IAAMK,UAAU,GAAG,IAAI,CAAC5B,WAAW,CAAC6B,GAAG,CAACF,WAAU,CAAC;MACnD,IAAMG,kBAAkB,GAAG,IAAI,CAAClC,aAAa,CAAC4B,MAAM,GAAG,CAAC;MACxD,IAAMO,WAAW,GAAG,IAAI,CAAClC,WAAW,CAACmC,OAAO,CAACT,WAAW,CAAC;MACzD,IAAIU,cAAc,GAAGxD,UAAU,CAACqC,eAAe,EAAEa,WAAU,CAAC;MAC5D,IAAIJ,WAAW,KAAKL,UAAU,EAAE;QAC9Be,cAAc,IAAIb,WAAW;MAC/B;MACA,IAAIc,OAAO,GAAGR,QAAQ;MACtB,IACES,IAAI,CAACC,GAAG,CAACV,QAAQ,GAAGO,cAAc,CAAC,IAAI9C,KAAK,CAACkD,yBAAyB,EACtE;QACA;QACAH,OAAO,GAAGD,cAAc;MAC1B,CAAC,MAAM,IACLL,UAAU,KAAKU,SAAS,IACxBZ,QAAQ,GAAGE,UAAU,KACnBE,kBAAkB,IAAIC,WAAW,KAAK,CAAC,IAAKA,WAAW,GAAG,CAAC,CAAC,EAC9D;QACAG,OAAO,GAAGN,UAAU;MACtB,CAAC,MAAM,IAAIF,QAAQ,IAAIvC,KAAK,CAACoD,+BAA+B,EAAE;QAC5D;QACAL,OAAO,GAAG,CAAC;MACb;MAEAZ,QAAQ,CAACkB,GAAG,CAACb,WAAU,EAAEO,OAAO,CAAC;MAEjC,IAAIR,QAAQ,GAAG,CAACvC,KAAK,CAACkD,yBAAyB,IAAIH,OAAO,KAAK,CAAC,EAAE;QAChE,IAAIH,WAAW,IAAI,CAAC,IAAID,kBAAkB,EAAE;UAAA;UAC1C,IAAI,CAAClC,aAAa,CAAC6C,GAAG,EAAE;UACxB,IAAI,CAACC,gBAAgB,CAAC1D,OAAO,EAAEuC,WAAW,CAAC;UAC3CA,WAAW,GAAG,IAAI,CAAC3B,aAAa,CAAC,IAAI,CAACA,aAAa,CAAC4B,MAAM,GAAG,CAAC,CAAC;UAC/D,IAAI,CAAC9B,UAAU,6BACb,IAAI,CAACM,WAAW,CAAC6B,GAAG,CAACpD,UAAU,CAACuC,YAAY,EAAEO,WAAW,CAAC,CAAC,yEAAI,CAAC;QACpE,CAAC,MAAM;UACLA,WAAW,GAAG,IAAI,CAACoB,gBAAgB,CAACpB,WAAW,EAAEvC,OAAO,CAAC;UACzD,IAAIuC,WAAW,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC3B,aAAa,CAACgD,IAAI,CAACrB,WAAW,CAAC;YACpC,IAAI,CAACrB,aAAa,CAAClB,OAAO,EAAEuC,WAAW,CAAC;UAC1C;QACF;MACF,CAAC,MAAM,IACLK,UAAU,KAAKU,SAAS,IACxBZ,QAAQ,GAAGE,UAAU,GAAGzC,KAAK,CAACkD,yBAAyB,IACvDH,OAAO,KAAKN,UAAU,EACtB;QACA,IAAIG,WAAW,GAAG,CAAC,EAAE;UACnB,IAAI,CAACrC,UAAU,IAAIwC,OAAO;UAC1BX,WAAW,GAAG,IAAI,CAAC1B,WAAW,CAACkC,WAAW,GAAG,CAAC,CAAC;UAC/C,IAAI,CAACnC,aAAa,CAACgD,IAAI,CAACrB,WAAW,CAAC;UACpC,IAAI,CAACrB,aAAa,CAAClB,OAAO,EAAEuC,WAAW,CAAC;QAC1C,CAAC,MAAM,IAAIO,kBAAkB,EAAE;UAC7B,IAAI,CAAClC,aAAa,CAAC6C,GAAG,EAAE;UACxB,IAAI,CAACC,gBAAgB,CAAC1D,OAAO,EAAEuC,WAAW,CAAC;UAC3CA,WAAW,GAAG,IAAI,CAAC3B,aAAa,CAAC,IAAI,CAACA,aAAa,CAAC4B,MAAM,GAAG,CAAC,CAAC;QACjE,CAAC,MAAM;UACLD,WAAW,GAAG,IAAI;QACpB;MACF,CAAC,MAAM;QACLA,WAAW,GAAG,IAAI;MACpB;IACF;IAEAD,QAAQ,CAACuB,OAAO,CAAC,CAACX,OAAO,EAAEP,UAAU,KAAK;MAAA;MACxC,IAAMmB,WAAW,4BACfrC,gBAAgB,CAAC,IAAI,CAACsC,oBAAoB,CAAC,CAAClB,GAAG,CAACF,UAAU,CAAC,yEAC3Db,eAAe,CAACe,GAAG,CAACF,UAAU,CAAC;MAEjC,IAAIO,OAAO,KAAKY,WAAW,EAAE;QAC3B,IAAI,CAACE,SAAS,CAACvC,gBAAgB,EAAEkB,UAAU,CAAC;MAC9C,CAAC,MAAM;QACL,IAAI,CAACsB,OAAO,CAACxC,gBAAgB,EAAEkB,UAAU,EAAEO,OAAO,CAAC;MACrD;IACF,CAAC,CAAC;IAEF,IAAI,CAAC/B,YAAY,CAACnB,OAAO,EAAE,IAAI,CAACW,aAAa,CAAC;IAE9C,OAAO,IAAI;EACb;EAEAuD,IAAI,CAACpE,SAAoB,EAAEC,IAAU,EAAsB;IACzD,IAAI,IAAI,CAACY,aAAa,IAAI,IAAI,EAAE;MAC9B,IAAI,CAACA,aAAa,GAAG2C,SAAS;MAC9B,IAAI,CAAC1C,aAAa,GAAG,EAAE;MACvB,IAAI,CAACC,WAAW,GAAG,EAAE;MACrB,IAAI,CAACG,WAAW,CAACC,KAAK,EAAE;MAExB,IAAI,CAACG,eAAe,CAACrB,IAAI,EAAE,IAAI,CAAC;IAClC;IAEA,OAAO,KAAK;EACd;EAEAoE,aAAa,CAACrE,SAAoB,EAAEC,IAAU,EAAsB;IAClE,IAAM;MAAEC,OAAO;MAAEyB;IAAiB,CAAC,GAAG1B,IAAI;IAC1C,IAAM;MAAEE;IAAM,CAAC,GAAGF,IAAI,CAACG,KAAK;IAC5B,IAAMC,KAAK,GAAGJ,IAAI,CAACK,QAAQ,EAAE;IAC7B,IAAI,CAACJ,OAAO,EAAE,MAAM,IAAIK,KAAK,CAAC,iBAAiB,CAAC;IAEhD,IAAMC,SAAS,GAAG,IAAI,CAACC,YAAY,CAACT,SAAS,EAAEE,OAAO,EAAEC,KAAK,EAAEE,KAAK,CAAC;IAErE,IAAIG,SAAS,IAAI,IAAI,EAAE;MACrB,IAAM0B,YAAY,GAAGhC,OAAO,CAAC,IAAI,CAACiC,oBAAoB,CAAC;MACvD,IAAMU,YAAU,GAAGlD,UAAU,CAACuC,YAAY,EAAE1B,SAAS,CAACG,KAAK,CAAC;MAE5D,IAAMwC,cAAc,GAAGxD,UAAU,CAC/BO,OAAO,CAAC,IAAI,CAAC+B,uBAAuB,CAAC,EACrCY,YAAU,CACX;MACD,IAAMmB,WAAW,GAAGrC,gBAAgB,CAAC,IAAI,CAACsC,oBAAoB,CAAC,CAAClB,GAAG,CACjEF,YAAU,CACX;MAED,IAAIM,cAAc,KAAKa,WAAW,EAAE;QAClC,IAAI,CAACE,SAAS,CAACvC,gBAAgB,EAAEkB,YAAU,CAAC;MAC9C,CAAC,MAAM;QACL,IAAI,CAACsB,OAAO,CAACxC,gBAAgB,EAAEkB,YAAU,EAAEM,cAAc,CAAC;MAC5D;MAEAlD,IAAI,CAACqE,WAAW,EAAE;MAElB,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAjD,YAAY,CAACnB,OAAoB,EAAEqE,SAAuB,EAAQ;IAChE,IAAMC,YAAY,GAAGtE,OAAO,CAAC,IAAI,CAACuE,oBAAoB,CAAC;IACvD,IAAM7B,QAAQ,GAAGjD,UAAU,CAAC6E,YAAY,EAAED,SAAS,CAAC;IACpD,IAAI3B,QAAQ,KAAK,CAAC,EAAE;MAClB,IAAI,CAAC8B,MAAM,GAAG,IAAI,CAACC,YAAY;IACjC,CAAC,MAAM;MACL,IAAI,CAACD,MAAM,GAAG,IAAI,CAACE,aAAa;IAClC;EACF;EAEAxD,aAAa,CAAClB,OAAoB,EAAEqE,SAAuB,EAAQ;IACjE,IAAMrC,YAAY,GAAGhC,OAAO,CAAC,IAAI,CAACiC,oBAAoB,CAAC;IACvD,IAAM0C,SAAS,GAAG3E,OAAO,CAAC,IAAI,CAAC4E,iBAAiB,CAAC;IACjD,IAAM9C,eAAe,GAAG9B,OAAO,CAAC,IAAI,CAAC+B,uBAAuB,CAAC;IAC7D,IAAMK,WAAW,GAAGiC,SAAS,KAAK,CAAC,GAAGrE,OAAO,CAAC,IAAI,CAACqC,mBAAmB,CAAC,GAAG,CAAC;IAE3E,IAAMM,UAAU,GAAGlD,UAAU,CAACuC,YAAY,EAAEqC,SAAS,CAAC;IACtD,IAAIzB,UAAU,GAAG+B,SAAS,CAAC9B,GAAG,CAACF,UAAU,CAAC;IAC1C,IAAIC,UAAU,IAAI,IAAI,IAAIA,UAAU,KAAK,CAAC,EAAE;MAC1CA,UAAU,GAAGnD,UAAU,CAACqC,eAAe,EAAEa,UAAU,CAAC,GAAGP,WAAW;IACpE;IACA,IAAI,CAACpB,WAAW,CAACwC,GAAG,CAACb,UAAU,EAAEC,UAAU,CAAC;EAC9C;EAEAc,gBAAgB,CAAC1D,OAAoB,EAAEqE,SAAuB,EAAQ;IACpE,IAAMrC,YAAY,GAAGhC,OAAO,CAAC,IAAI,CAACiC,oBAAoB,CAAC;IACvD,IAAMU,UAAU,GAAGlD,UAAU,CAACuC,YAAY,EAAEqC,SAAS,CAAC;IACtD,IAAI,CAACrD,WAAW,CAAC6D,MAAM,CAAClC,UAAU,CAAC;EACrC;AACF;AAEA,eAAehD,yBAAyB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/grid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "Deephaven React grid component",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -25,13 +25,13 @@
|
|
|
25
25
|
"react": "^17.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@deephaven/tsconfig": "^0.
|
|
28
|
+
"@deephaven/tsconfig": "^0.28.0"
|
|
29
29
|
},
|
|
30
30
|
"files": [
|
|
31
31
|
"dist"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@deephaven/utils": "^0.
|
|
34
|
+
"@deephaven/utils": "^0.28.0",
|
|
35
35
|
"classnames": "^2.3.1",
|
|
36
36
|
"color-convert": "^2.0.1",
|
|
37
37
|
"event-target-shim": "^6.0.2",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "3fa4ad7365e6316bc5bf3b114fce1c77d5122200"
|
|
47
47
|
}
|