@omegagrid/grid 0.8.4 → 0.9.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.
@@ -1 +1 @@
1
- {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/ui/group.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom, Layout, ComponentId, Plugins, VerticalPosition, log } from '@omegagrid/core';\nimport { TabSplitContainer, TabEvent, TabSplitContainerModel } from '@omegagrid/tabs';\nimport { GridModel, GridSource, Options } from '@omegagrid/grid-core';\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { GroupModel } from '@omegagrid/grid-core';\nimport { Grid } from './grid';\nimport { GroupModelSource } from '../types';\nimport { Commands, CommandWindow } from '@omegagrid/commands';\nimport { createRef, ref } from 'lit-html/directives/ref.js';\nimport { createGroupCommands } from '../commands/groupCommands';\nimport { GridEvent } from './grid.events';\n\nconst emptyGridSource: GridSource = {\n\toptions: {rows: 100, columns: 20, editable: true}\n};\n\nconst createEmptyModel = () => new GridModel(emptyGridSource);\n\nexport type GroupOptions = {\n\tcommandWindow?: boolean;\n\tshowHiddenTabs?: boolean;\n\tgrid?: Options;\n}\n\nconst DEFAULT_OPTIONS: GroupOptions = {\n\tcommandWindow: true,\n\tshowHiddenTabs: false,\n}\n\nexport class GridGroupEvent extends Event {\n\tconstructor(type: string) {\n\t\tsuper(`gridgroup.${type}`);\n\t}\n}\n\n@customElement('og-gridgroup')\nexport class GridGroup extends LitElement implements Layout {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\tog-tabsplitcontainer {\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\t@property({type: Object})\n\toptions = DEFAULT_OPTIONS;\n\n\t@property({type: Object})\n\tmodel: GroupModel;\n\n\t@property({type: Object})\n\tcontainerModel: TabSplitContainerModel;\n\n\t@property({type: Boolean})\n\tdesignMode = false;\n\n\t@property({type: Number})\n\tzoom = 1;\n\n\t@property({type: String, reflect: true})\n\ttabPosition: VerticalPosition = 'top';\n\n\t@property({type: Object})\n\tlogger: log.Logger = new log.Logger('ΩgridGroup')\n\n\t@state()\n\tgrids = new Map<string, Grid>();\n\t\n\t@query('og-tabsplitcontainer')\n\tcontainer: TabSplitContainer;\n\n\tprivate commandWindowRef = createRef<CommandWindow>();\n\tget commandWindow() { return this.commandWindowRef.value }\n\t\n\tprivate _activeGrid: Grid;\n\tget activeGrid() { return this._activeGrid }\n\t\n\tprivate _commands = new Commands(createGroupCommands(this));\n\treadonly plugins = new Plugins(this);\n\n\tget commands() { return this.activeGrid ? this._commands.merge(this.activeGrid.commands) : this._commands }\n\n\tprivate _formulaModeGrid: Grid = null;\n\tget formulaModeGrid() { return this._formulaModeGrid }\n\tget isFormulaMode() { return this.formulaModeGrid != null }\n\n\t_isLoaded = false;\n\n\n\t/** Returns grid data models in order they are displayed within the layout */\n\tget gridModels() {\n\t\tconst ord = new Map<string, number>();\n\t\tthis.containerModel.walk(tab => {\n\t\t\tconst m = this.model.get(tab.id as string);\n\t\t\tif (m) ord.set(m.name, ord.size);\n\t\t});\n\t\treturn Array.from(this.model.models).sort(\n\t\t\t(a, b) => (ord.get(a[0]) ?? 0) - (ord.get(b[0]) ?? 0)\n\t\t).map(([_, m]) => m);\n\t}\n\n\tstartFormulaMode(grid: Grid) {\n\t\tthis._formulaModeGrid = grid;\n\t}\n\n\tendFormulaMode() {\n\t\tif (!this.isFormulaMode) return;\n\t\tthis._formulaModeGrid = null;\n\t\tthis.grids.forEach(grid => grid.editing.endFormulaMode(false));\n\t}\n\n\tactivateGrid(name: string, dispatchEvent = true) {\n\t\tconst grid = this.grids.get(name)\n\t\tif (!grid) return;\n\t\tif (this.activeGrid?.model?.name == name) return;\n\t\tif (this.activeGrid && dispatchEvent) this.dispatchEvent(new GridGroupEvent('deactivate'));\n\t\tthis._activeGrid = grid;\n\t\tthis.container.activate(name);\n\t\tsetTimeout(() => grid.focus(), 100);\n\t\tif (dispatchEvent) this.dispatchEvent(new GridGroupEvent('activate'));\n\t}\n\n\tpreviewZoom(zoom: number) {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.table.previewZoom(zoom);\n\t\t});\n\t}\n\n\tupdateZoom() {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.zoom = this.zoom;\n\t\t});\n\t}\n\n\thideSelectors() {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.selecting.hideSelector();\n\t\t});\n\t}\n\n\tshowSelectors() {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.selecting.showSelector();\n\t\t});\n\t}\n\n\trenameSheet(oldName: string, newName: string) {\n\t\tif (this.model.has(newName)) throw new Error(`Sheet '${newName}' already exists`);\n\t\tif (this.grids.has(oldName)) {\n\t\t\tthis.grids.set(newName, this.grids.get(oldName));\n\t\t\tthis.grids.delete(oldName);\n\t\t}\n\t\tthis.model.rename(oldName, newName);\n\t\tthis.container.model.updateTab(oldName, {id: newName, title: newName});\n\t\tthis.updateTabs();\n\t}\n\n\tupdateTabs() {\n\t\t// sync tabs with model\n\t\tthis.containerModel.walk(tab => {\n\t\t\tconst m = this.model.get(tab.id as string);\n\t\t\tif (!m) return;\n\t\t\ttab.id = m.name;\n\t\t\ttab.color = m.tab?.color;\n\t\t\ttab.hidden = !this.options.showHiddenTabs && m.tab?.hidden;\n\t\t\ttab.icon = m.tab?.hidden ? 'eye-slash' : null;\n\t\t});\n\t\tthis.container?.updateTabs();\n\t}\n\n\tupdateContainer() {\n\t\tthis.container?.splitContainer?.requestUpdate();\n\t}\n\n\tupdateCommands() {\n\t\tif (this.commandWindow) this.commandWindow.commands = this.commands;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.model = new GroupModel();\n\t\tthis.model.add(createEmptyModel());\n\t\tthis.containerModel = new TabSplitContainerModel({\n\t\t\titems: [{\n\t\t\t\tsize: null,\n\t\t\t\ttabs: Array.from(this.model.models).map(([name]) => ({\n\t\t\t\t\tid: name,\n\t\t\t\t\ttitle: name\n\t\t\t\t}))\n\t\t\t}]\n\t\t});\n\n\t\tthis.addEventListener('grid.selector.select', this._onGridSelect);\n\t\tthis.addEventListener('grid.object.activate', this._onGridSelect);\n\t}\n\n\tdeleteModel(name: string) {\n\t\tthis.model.remove(name);\n\t\tthis.containerModel.removeTab(name);\n\t\tthis.updateContainer();\n\t}\n\n\tduplicateModel(name: string) {\n\t\tconst model = this.model.duplicate(name);\n\t\tthis.containerModel.addTab({id: model.name, title: model.name}, name);\n\t\tthis.updateContainer();\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.tabIndex = 0;\n\t}\n\n\tlayout() {\n\t\tthis.container?.layout();\n\t}\n\n\tsetSourceData(sourceData: GroupModelSource) {\n\t\tthis.grids.clear();\n\t\tthis.model = new GroupModel(sourceData);\n\t\t//sourceData.models.forEach(src => this.model.get(src.name).tabColor = src.tabColor);\n\t\tthis.containerModel = new TabSplitContainerModel(sourceData.layout);\n\n\t\tif (this.model.errors.length && this.logger) {\n\t\t\tthis.model.errors.forEach(e => this.logger.error(e.message));\n\t\t}\n\n\t\tthis.fixLayout();\n\t}\n\n\tgetSourceData() {\n\t\tconst data = this.model.getSourceData() as GroupModelSource;\n\t\tdata.layout = this.containerModel.getSourceData();\n\t\treturn data;\n\t}\n\n\twillUpdate(props: Map<PropertyKey, undefined>) {\n\t\tif (props.has('zoom')) this.updateZoom();\n\t\tif (!this.model) this.model = new GroupModel();\n\t\tthis.updateTabs();\n\t}\n\n\tgetGrid(name: string) {\n\t\treturn this.grids.get(name);\n\t}\n\n\tgetGridByModel(model: GridModel) {\n\t\treturn this.getGrid(model.name);\n\t}\n\n\t_onGridSelect = (e: GridEvent) => {\n\t\tif (!e.grid) return;\n\t\tif (this.isFormulaMode) return;\n\t\tthis.activateGrid(e.grid.model.name, true);\t\t\n\t\tthis.updateCommands();\n\t}\n\n\tcreateGrid = (id: ComponentId) => new Promise<Grid>(resolve => {\n\t\tconst name = id as string;\n\t\tlet grid = this.grids.get(name);\n\t\tif (grid) {\n\t\t\tresolve(grid);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tconst model = this.model.has(name) ? this.model.get(name) : this.model.add(createEmptyModel());\n\t\tmodel.options.commandWindow = false;\n\t\tgrid = dom.createElement<Grid>('og-grid');\n\t\tgrid.style.height = '100%';\n\t\tgrid.model = model;\n\t\tgrid.options = model.options;\n\t\tgrid.group = this;\n\t\tgrid.zoom = this.zoom;\n\t\tthis.grids.set(model.name, grid);\n\t\tresolve(grid);\n\t});\n\n\t_onTabSelect = (e: TabEvent) => {\n\t\tif (e.tab && this._isLoaded) {\n\t\t\tconst grid = this.grids.get(e.tab.id as string);\n\t\t\tif (this._activeGrid != grid) {\n\t\t\t\tthis.activateGrid(grid.model.name, true);\n\t\t\t\tsetTimeout(() => this._activeGrid.focus(), 100); // TODO - figure out how to do this without timeout\n\t\t\t\tthis.updateCommands();\n\t\t\t}\n\t\t}\n\t};\n\n\t_onTabAdd = (e: TabEvent) => {\n\t\tconst model = this.model.add(createEmptyModel());\n\t\tif (!e.tabs?.container) return;\n\t\te.tabs.container.open({id: model.name, title: model.name});\n\t};\n\n\tregisterCommands() {\n\t\tthis.commands.removeSection('grid');\n\t\tif (this.activeGrid) this.activeGrid.commands.sections.forEach(c => this.commands.registerSection(c));\n\t}\n\n\t_onCommandsOpen = () => {\n\t\tthis.commandWindow.commands = this.commands;\n\t\tthis.commandWindow.requestUpdate();\n\t}\n\t\n\t_onContainerLoad = () => {\n\t\tthis._isLoaded = true;\n\t\t// wait for grid to be connected\n\t\tif (this.gridModels.length) this.activateGrid(this.gridModels[0].name, true);\n\t}\n\n\trender = () => html`\n\t\t<og-tabsplitcontainer\n\t\t\t?singleActive=\"${true}\"\n\t\t\t?addButton=\"${true}\"\n\t\t\t?closable=\"${false}\"\n\t\t\t.tabPosition=\"${this.tabPosition}\"\n\t\t\t@tab.select=\"${this._onTabSelect}\"\n\t\t\t@tab.add=\"${this._onTabAdd}\"\n\t\t\t@load=\"${this._onContainerLoad}\"\n\t\t\t.createComponent=\"${this.createGrid}\"\n\t\t\t.model=\"${this.containerModel}\">\n\t\t</og-tabsplitcontainer>\n\n\t\t${this.options.commandWindow ? html`\n\t\t\t<og-commands ${ref(this.commandWindowRef)}\n\t\t\t\tstyle=\"display: none\"\n\t\t\t\t.commands=\"${this.commands}\"\n\t\t\t\t.target=\"${this}\"\n\t\t\t\t@command.open=\"${this._onCommandsOpen}\">\n\t\t\t</og-commands>\n\t\t` : ''}\n\t`;\n\n\t/**\n\t * Adds tabs for grid models missing in layout definition.\n\t */\n\tfixLayout() {\n\t\tconst modelNames = new Set<string>();\n\t\tthis.model.models.forEach((_, name) => modelNames.add(name));\n\t\tlet defaultContainer: TabSplitContainerModel = null;\n\t\tthis.containerModel.walk((item, container) => {\n\t\t\tif (defaultContainer == null) defaultContainer = container;\n\t\t\tmodelNames.delete(item.id as string);\n\t\t});\n\t\tdefaultContainer = defaultContainer || this.containerModel;\n\t\tdefaultContainer.items = defaultContainer.items || [];\n\t\tif (!defaultContainer.items.length) defaultContainer.items.push({});\n\t\tif (!defaultContainer.items[0].tabs) defaultContainer.items[0].tabs = [];\n\n\t\tconst containerItem = defaultContainer.items.find(item => item.container == null && item.tabs != null);\n\t\tmodelNames.forEach(name => containerItem.tabs.push({id: name, title: name}));\n\t}\n\n}"]}
1
+ {"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/ui/group.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom, Layout, ComponentId, Plugins, VerticalPosition, log } from '@omegagrid/core';\nimport { TabSplitContainer, TabEvent, TabSplitContainerModel } from '@omegagrid/tabs';\nimport { GridModel, GridSource, Options } from '@omegagrid/grid-core';\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { GroupModel } from '@omegagrid/grid-core';\nimport { Grid } from './grid';\nimport { GroupModelSource } from '../types';\nimport { Commands, CommandWindow } from '@omegagrid/commands';\nimport { createRef, ref } from 'lit-html/directives/ref.js';\nimport { createGroupCommands } from '../commands/groupCommands';\nimport { GridEvent } from './grid.events';\n\nconst emptyGridSource: GridSource = {\n\toptions: {rows: 100, columns: 20, editable: true}\n};\n\nconst createEmptyModel = () => new GridModel(emptyGridSource);\n\nexport type GroupOptions = {\n\tcommandWindow?: boolean;\n\tshowHiddenTabs?: boolean;\n\tgrid?: Options;\n}\n\nconst DEFAULT_OPTIONS: GroupOptions = {\n\tcommandWindow: true,\n\tshowHiddenTabs: false,\n}\n\nexport class GridGroupEvent extends Event {\n\tconstructor(type: string) {\n\t\tsuper(`gridgroup.${type}`);\n\t}\n}\n\n@customElement('og-gridgroup')\nexport class GridGroup extends LitElement implements Layout {\n\n\tstatic styles = css`\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\tog-tabsplitcontainer {\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\t@property({type: Object})\n\toptions = DEFAULT_OPTIONS;\n\n\t@property({type: Object})\n\tmodel: GroupModel;\n\n\t@property({type: Object})\n\tcontainerModel: TabSplitContainerModel;\n\n\t@property({type: Boolean})\n\tdesignMode = false;\n\n\t@property({type: Number})\n\tzoom = 1;\n\n\t@property({type: String, reflect: true})\n\ttabPosition: VerticalPosition = 'top';\n\n\t@property({type: Object})\n\tlogger: log.Logger = new log.Logger('ΩgridGroup')\n\n\t@state()\n\tgrids = new Map<string, Grid>();\n\t\n\t@query('og-tabsplitcontainer')\n\tcontainer: TabSplitContainer;\n\n\tprivate commandWindowRef = createRef<CommandWindow>();\n\tget commandWindow() { return this.commandWindowRef.value }\n\t\n\tprivate _activeGrid: Grid;\n\tget activeGrid() { return this._activeGrid }\n\t\n\treadonly plugins = new Plugins(this);\n\n\tprivate _formulaModeGrid: Grid = null;\n\tget formulaModeGrid() { return this._formulaModeGrid }\n\tget isFormulaMode() { return this.formulaModeGrid != null }\n\n\t_isLoaded = false;\n\n\n\t/** Returns grid data models in order they are displayed within the layout */\n\tget gridModels() {\n\t\tconst ord = new Map<string, number>();\n\t\tthis.containerModel.walk(tab => {\n\t\t\tconst m = this.model.get(tab.id as string);\n\t\t\tif (m) ord.set(m.name, ord.size);\n\t\t});\n\t\treturn Array.from(this.model.models).sort(\n\t\t\t(a, b) => (ord.get(a[0]) ?? 0) - (ord.get(b[0]) ?? 0)\n\t\t).map(([_, m]) => m);\n\t}\n\n\tstartFormulaMode(grid: Grid) {\n\t\tthis._formulaModeGrid = grid;\n\t}\n\n\tendFormulaMode() {\n\t\tif (!this.isFormulaMode) return;\n\t\tthis._formulaModeGrid = null;\n\t\tthis.grids.forEach(grid => grid.editing.endFormulaMode(false));\n\t}\n\n\tactivateGrid(name: string, dispatchEvent = true) {\n\t\tconst grid = this.grids.get(name)\n\t\tif (!grid) return;\n\t\tif (this.activeGrid?.model?.name == name) return;\n\t\tif (this.activeGrid && dispatchEvent) this.dispatchEvent(new GridGroupEvent('deactivate'));\n\t\tthis._activeGrid = grid;\n\t\tthis.container.activate(name);\n\t\tsetTimeout(() => grid.focus(), 100);\n\t\tif (dispatchEvent) this.dispatchEvent(new GridGroupEvent('activate'));\n\t}\n\n\tpreviewZoom(zoom: number) {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.table.previewZoom(zoom);\n\t\t});\n\t}\n\n\tupdateZoom() {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.zoom = this.zoom;\n\t\t});\n\t}\n\n\thideSelectors() {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.selecting.hideSelector();\n\t\t});\n\t}\n\n\tshowSelectors() {\n\t\tthis.grids.forEach(grid => {\n\t\t\tif (grid.isConnected) grid.selecting.showSelector();\n\t\t});\n\t}\n\n\trenameSheet(oldName: string, newName: string) {\n\t\tif (this.model.has(newName)) throw new Error(`Sheet '${newName}' already exists`);\n\t\tif (this.grids.has(oldName)) {\n\t\t\tthis.grids.set(newName, this.grids.get(oldName));\n\t\t\tthis.grids.delete(oldName);\n\t\t}\n\t\tthis.model.rename(oldName, newName);\n\t\tthis.container.model.updateTab(oldName, {id: newName, title: newName});\n\t\tthis.updateTabs();\n\t}\n\n\tupdateTabs() {\n\t\t// sync tabs with model\n\t\tthis.containerModel.walk(tab => {\n\t\t\tconst m = this.model.get(tab.id as string);\n\t\t\tif (!m) return;\n\t\t\ttab.id = m.name;\n\t\t\ttab.color = m.tab?.color;\n\t\t\ttab.hidden = !this.options.showHiddenTabs && m.tab?.hidden;\n\t\t\ttab.icon = m.tab?.hidden ? 'eye-slash' : null;\n\t\t});\n\t\tthis.container?.updateTabs();\n\t}\n\n\tupdateContainer() {\n\t\tthis.container?.splitContainer?.requestUpdate();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.model = new GroupModel();\n\t\tthis.model.add(createEmptyModel());\n\t\tthis.containerModel = new TabSplitContainerModel({\n\t\t\titems: [{\n\t\t\t\tsize: null,\n\t\t\t\ttabs: Array.from(this.model.models).map(([name]) => ({\n\t\t\t\t\tid: name,\n\t\t\t\t\ttitle: name\n\t\t\t\t}))\n\t\t\t}]\n\t\t});\n\n\t\tthis.addEventListener('grid.selector.select', this._onGridSelect);\n\t\tthis.addEventListener('grid.object.activate', this._onGridSelect);\n\t}\n\n\tdeleteModel(name: string) {\n\t\tthis.model.remove(name);\n\t\tthis.containerModel.removeTab(name);\n\t\tthis.updateContainer();\n\t}\n\n\tduplicateModel(name: string) {\n\t\tconst model = this.model.duplicate(name);\n\t\tthis.containerModel.addTab({id: model.name, title: model.name}, name);\n\t\tthis.updateContainer();\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.tabIndex = 0;\n\t}\n\n\tlayout() {\n\t\tthis.container?.layout();\n\t}\n\n\tsetSourceData(sourceData: GroupModelSource) {\n\t\tthis.grids.clear();\n\t\tthis.model = new GroupModel(sourceData);\n\t\t//sourceData.models.forEach(src => this.model.get(src.name).tabColor = src.tabColor);\n\t\tthis.containerModel = new TabSplitContainerModel(sourceData.layout);\n\n\t\tif (this.model.errors.length && this.logger) {\n\t\t\tthis.model.errors.forEach(e => this.logger.error(e.message));\n\t\t}\n\n\t\tthis.fixLayout();\n\t}\n\n\tgetSourceData() {\n\t\tconst data = this.model.getSourceData() as GroupModelSource;\n\t\tdata.layout = this.containerModel.getSourceData();\n\t\treturn data;\n\t}\n\n\twillUpdate(props: Map<PropertyKey, undefined>) {\n\t\tif (props.has('zoom')) this.updateZoom();\n\t\tif (!this.model) this.model = new GroupModel();\n\t\tthis.updateTabs();\n\t}\n\n\tgetGrid(name: string) {\n\t\treturn this.grids.get(name);\n\t}\n\n\tgetGridByModel(model: GridModel) {\n\t\treturn this.getGrid(model.name);\n\t}\n\n\t_onGridSelect = (e: GridEvent) => {\n\t\tif (!e.grid) return;\n\t\tif (this.isFormulaMode) return;\n\t\tthis.activateGrid(e.grid.model.name, true);\n\t}\n\n\tcreateGrid = (id: ComponentId) => new Promise<Grid>(resolve => {\n\t\tconst name = id as string;\n\t\tlet grid = this.grids.get(name);\n\t\tif (grid) {\n\t\t\tresolve(grid);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tconst model = this.model.has(name) ? this.model.get(name) : this.model.add(createEmptyModel());\n\t\tmodel.options.commandWindow = false;\n\t\tgrid = dom.createElement<Grid>('og-grid');\n\t\tgrid.style.height = '100%';\n\t\tgrid.model = model;\n\t\tgrid.options = model.options;\n\t\tgrid.group = this;\n\t\tgrid.zoom = this.zoom;\n\t\tthis.grids.set(model.name, grid);\n\t\tresolve(grid);\n\t});\n\n\t_onTabSelect = (e: TabEvent) => {\n\t\tif (e.tab && this._isLoaded) {\n\t\t\tconst grid = this.grids.get(e.tab.id as string);\n\t\t\tif (this._activeGrid != grid) {\n\t\t\t\tthis.activateGrid(grid.model.name, true);\n\t\t\t\tsetTimeout(() => this._activeGrid.focus(), 100); // TODO - figure out how to do this without timeout\n\t\t\t}\n\t\t}\n\t};\n\n\t_onTabAdd = (e: TabEvent) => {\n\t\tconst model = this.model.add(createEmptyModel());\n\t\tif (!e.tabs?.container) return;\n\t\te.tabs.container.open({id: model.name, title: model.name});\n\t};\n\t\n\t_onContainerLoad = () => {\n\t\tthis._isLoaded = true;\n\t\t// wait for grid to be connected\n\t\tif (this.gridModels.length) this.activateGrid(this.gridModels[0].name, true);\n\t}\n\n\trender = () => html`\n\t\t<og-tabsplitcontainer\n\t\t\t?singleActive=\"${true}\"\n\t\t\t?addButton=\"${true}\"\n\t\t\t?closable=\"${false}\"\n\t\t\t.tabPosition=\"${this.tabPosition}\"\n\t\t\t@tab.select=\"${this._onTabSelect}\"\n\t\t\t@tab.add=\"${this._onTabAdd}\"\n\t\t\t@load=\"${this._onContainerLoad}\"\n\t\t\t.createComponent=\"${this.createGrid}\"\n\t\t\t.model=\"${this.containerModel}\">\n\t\t</og-tabsplitcontainer>\n\t`;\n\n\t/**\n\t * Adds tabs for grid models missing in layout definition.\n\t */\n\tfixLayout() {\n\t\tconst modelNames = new Set<string>();\n\t\tthis.model.models.forEach((_, name) => modelNames.add(name));\n\t\tlet defaultContainer: TabSplitContainerModel = null;\n\t\tthis.containerModel.walk((item, container) => {\n\t\t\tif (defaultContainer == null) defaultContainer = container;\n\t\t\tmodelNames.delete(item.id as string);\n\t\t});\n\t\tdefaultContainer = defaultContainer || this.containerModel;\n\t\tdefaultContainer.items = defaultContainer.items || [];\n\t\tif (!defaultContainer.items.length) defaultContainer.items.push({});\n\t\tif (!defaultContainer.items[0].tabs) defaultContainer.items[0].tabs = [];\n\n\t\tconst containerItem = defaultContainer.items.find(item => item.container == null && item.tabs != null);\n\t\tmodelNames.forEach(name => containerItem.tabs.push({id: name, title: name}));\n\t}\n\n}"]}
@@ -39,6 +39,7 @@ export declare class Selector extends LitElement {
39
39
  get isSelectorOperationActive(): boolean;
40
40
  get table(): import("./table").Table;
41
41
  index: number;
42
+ grid: Grid;
42
43
  autofill: boolean;
43
44
  movable: boolean;
44
45
  resizable: boolean;
@@ -48,7 +49,6 @@ export declare class Selector extends LitElement {
48
49
  animated: boolean;
49
50
  selection: CellRange;
50
51
  activeCellRange: CellRange;
51
- grid: Grid;
52
52
  handleElm: HTMLDivElement;
53
53
  svgAnimation: SVGElement;
54
54
  moveHandleLeftElm: HTMLDivElement;
@@ -88,6 +88,7 @@ export declare class Selector extends LitElement {
88
88
  render: () => import("lit-html").TemplateResult<1>;
89
89
  startAnimation(): void;
90
90
  stopAnimation(): void;
91
+ connectedCallback(): void;
91
92
  disconnectedCallback(): void;
92
93
  willUpdate(): void;
93
94
  updated(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/ui/selector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/ui/selector.ts"],"names":[],"mappings":"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"}
@@ -346,6 +346,10 @@ let Selector = class Selector extends LitElement {
346
346
  window.clearInterval(this._animationTimer);
347
347
  this._animationTimer = null;
348
348
  }
349
+ connectedCallback() {
350
+ super.connectedCallback();
351
+ this.grid = dom.findParent(this, 'og-grid');
352
+ }
349
353
  disconnectedCallback() {
350
354
  this.stopAnimation();
351
355
  }
@@ -457,9 +461,6 @@ __decorate([
457
461
  __decorate([
458
462
  property({ type: Object })
459
463
  ], Selector.prototype, "activeCellRange", void 0);
460
- __decorate([
461
- property({ type: Object })
462
- ], Selector.prototype, "grid", void 0);
463
464
  __decorate([
464
465
  query('#handle')
465
466
  ], Selector.prototype, "handleElm", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/ui/selector.ts"],"names":[],"mappings":"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","sourcesContent":["import constants from '../constants';\nimport { DiagonalDirection, Direction, DirectionalPosition, dom } from \"@omegagrid/core\";\nimport { CellRange } from \"@omegagrid/grid-core\";\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { TableCell } from \"./table\";\nimport { style } from './selector.style';\nimport { Grid } from './grid';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { GridEvent } from './grid.events';\n\nexport class SelectorEvent extends GridEvent {\n\n\tselector: Selector;\n\n\tconstructor(type: string, args?: Partial<SelectorEvent>) {\n\t\tsuper(`selector.${type}`, args);\n\t}\n}\n\nexport class SelectorMoveEvent extends SelectorEvent {\n\tfromRange: CellRange;\n\ttoRange: CellRange;\n\tconstructor(args?: Partial<SelectorMoveEvent>) {\n\t\tsuper('move', args);\n\t}\n}\n\n@customElement('og-selector')\nexport class Selector extends LitElement {\n\n\tstatic styles = [style];\n\n\tprivate topLeftCell?: TableCell;\n\tprivate topRightCell?: TableCell;\n\tprivate bottomLeftCell?: TableCell;\n\tprivate bottomRightCell?: TableCell;\n\tprivate activeCell?: TableCell;\n\tprivate autofillSelector: HTMLDivElement;\n\tprivate moveSelector: Selector;\n\tprivate baseCell: CellRange;\n\n\tprivate _animationTimer: number = null;\n\n\tprivate _autofillDirection: Direction;\n\tget autofillDirection() { return this._autofillDirection }\n\t\n\tprivate _autofillRange: CellRange;\n\tget autofillRange() { return this._autofillRange }\n\n\tprivate _autofilling = false;\n\tget isAutofilling() { return this._autofilling }\n\n\tprivate _moving = false;\n\tget isMoving() { return this._moving }\n\n\tprivate _resizing = false;\n\tprivate _resizingDirection: DiagonalDirection;\n\tget isResizing() { return this._resizing }\n\n\tprivate _selecting = false;\n\tget isSelecting() { return this._selecting }\n\n\tget isSelectorOperationActive() { return this._resizing || this._moving || this._autofilling || this._selecting}\n\n\tget table() { return this.grid?.table }\n\n\tindex: number;\n\n\t@property({type: Boolean})\n\tautofill: boolean;\n\n\t@property({type: Boolean, reflect: true})\n\tmovable: boolean;\n\n\t@property({type: Boolean, reflect: true})\n\tresizable: boolean;\n\n\t@property({type: Boolean, reflect: true})\n\tsubselector = false;\n\n\t@property({type: String})\n\tcolor: string;\n\n\t@property({type: Number})\n\tborderWidth: number = constants.SELECTOR_BORDER_WIDTH;\n\n\t@property({type: Boolean, reflect: true})\n\tanimated = false;\n\n\t@property({type: Object})\n\tselection: CellRange;\n\n\t@property({type: Object})\n\tactiveCellRange: CellRange;\n\n\t@property({type: Object})\n\tgrid: Grid;\n\n\t@query('#handle')\n\thandleElm: HTMLDivElement;\n\n\t@query('#svgAnimation')\n\tsvgAnimation: SVGElement;\n\n\t@query('#handle-left')\n\tmoveHandleLeftElm: HTMLDivElement;\n\n\t@query('#handle-top')\n\tmoveHandleTopElm: HTMLDivElement;\n\n\t@query('#handle-right')\n\tmoveHandleRightElm: HTMLDivElement;\n\n\t@query('#handle-bottom')\n\tmoveHandleBottomElm: HTMLDivElement;\n\t\n\t@query('#subselector')\n\tsubselectorElm: HTMLDivElement;\n\n\tprivate _isVisible = false;\n\tget isVisible() { return this._isVisible }\n\n\thide = () => {\n\t\tthis._isVisible = false;\n\t\tdom.hideElement(this);\n\t\tthis.stopSelectorOperations();\n\t\tthis.stopAnimation();\n\t};\n\tshow = () => {\n\t\tthis._isVisible = true;\n\t\tdom.showElement(this);\n\t\tthis.startAnimation();\n\t}\n\n\n\t// #region Autofill\n\n\thighlightAutofillRange() {\n\t\tconst tlCell = this.table.getCellByModelIndex(this._autofillRange.c1, this._autofillRange.r1);\n\t\tconst trCell = this.table.getCellByModelIndex(this._autofillRange.c2, this._autofillRange.r1);\n\t\tconst brCell = this.table.getCellByModelIndex(this._autofillRange.c2, this._autofillRange.r2);\n\t\tconst blCell = this.table.getCellByModelIndex(this._autofillRange.c1, this._autofillRange.r2);\n\n\t\tlet left = -100;\n\t\tlet top = -100;\n\t\tlet right = this.table.offsetWidth + 100;\n\t\tlet bottom = this.table.offsetHeight + 100;\n\n\t\tif (tlCell) {\n\t\t\tconst offset = dom.getElementOffset(tlCell, this.table);\n\t\t\ttop = offset.top;\n\t\t\tleft = offset.left;\n\t\t}\n\t\tif (trCell) {\n\t\t\tconst offset = dom.getElementOffset(trCell, this.table);\n\t\t\ttop = offset.top;\n\t\t\tright = offset.left + brCell.offsetWidth;\n\t\t}\n\t\tif (blCell) {\n\t\t\tconst offset = dom.getElementOffset(blCell, this.table);\n\t\t\tbottom = offset.top + blCell.offsetHeight;\n\t\t\tleft = offset.left;\n\t\t}\n\t\tif (brCell) {\n\t\t\tconst offset = dom.getElementOffset(brCell, this.table);\n\t\t\tbottom = offset.top + brCell.offsetHeight;\n\t\t\tright = offset.left + brCell.offsetWidth;\n\t\t}\n\n\t\tdom.setPosition(this.autofillSelector, {l: left, t: top});\n\t\tdom.setSize(this.autofillSelector, {w: right - left, h: bottom - top});\n\t\tdom.showElement(this.autofillSelector);\n\t}\n\n\tcreateAutofillSelector() {\n\t\tconst selector = dom.createElement<HTMLDivElement>('div');\n\t\tselector.className = 'autofill';\n\t\tselector.style.border = '1px solid var(--og-accent-color)';\n\t\tselector.style.zIndex = '100';\n\t\tselector.style.pointerEvents = 'none';\n\t\treturn selector;\n\t}\n\n\tstopAutofilling(dispatchEvent = true) {\n\t\tif (!this.isAutofilling) return;\n\t\tthis._autofilling = false;\n\t\tif (dispatchEvent) this.dispatchEvent(new SelectorEvent('autofill', {selector: this, grid: this.grid}));\n\t\t//this.autofillRange = null;\n\t\tthis.autofillSelector.remove();\n\t}\n\n\tupdateAutofilling(c: number, r: number) {\n\t\tconst { c1, r1, c2, r2 } = this.selection;\n\t\tthis._autofillRange = null;\n\t\t// down autofill\n\t\tif (r > r2 && c - c2 <= r - r2) {\n\t\t\tthis._autofillDirection = 'down';\n\t\t\tthis._autofillRange = new CellRange(c1, r2 + 1, c2, r);\n\t\t}\n\t\t// up autofill\n\t\telse if (r < r1 && c1 - c <= r1 - r) {\n\t\t\tthis._autofillDirection = 'up';\n\t\t\tthis._autofillRange = new CellRange(c1, r, c2, r1 - 1);\n\t\t}\n\t\t// right autofill\n\t\telse if (c > c2 && c - c2 > r - r2) {\n\t\t\tthis._autofillDirection = 'right';\n\t\t\tthis._autofillRange = new CellRange(c2 + 1, r1, c, r2);\n\t\t}\n\t\t// left autofill\n\t\telse if (c < c1 && c1 - c > r1 - r) {\n\t\t\tthis._autofillDirection = 'left';\n\t\t\tthis._autofillRange = new CellRange(c, r1, c1 - 1, r2);\n\t\t}\n\n\t\tif (this._autofillRange) this.highlightAutofillRange();\n\t}\n\n\t// #endregion\n\n\n\t// #region Selector moving\n\n\tgetMoveSelector() {\n\t\tif (!this.moveSelector) {\n\t\t\tthis.moveSelector = dom.createElement<Selector>('og-selector');\n\t\t\tthis.moveSelector.grid = this.grid;\n\t\t\tthis.moveSelector.style.borderStyle = 'dotted';\n\t\t\tthis.moveSelector.subselector = false;\n\t\t\tthis.moveSelector.selection = this.selection.clone();\n\t\t\tthis.grid.shadowRoot.appendChild(this.moveSelector);\n\t\t}\n\t\treturn this.moveSelector;\n\t}\n\n\tstartMoving(baseCell: CellRange) {\n\t\tthis.baseCell = baseCell;\n\t\tthis._moving = true;\n\t}\n\n\tupdateMoving(c: number, r: number) {\n\t\tc = this.selection.isRow ? 0 : c - this.baseCell.c1;\n\t\tr = this.selection.isColumn ? 0 : r - this.baseCell.r1;\n\t\tconst moveSelector = this.getMoveSelector();\n\t\tmoveSelector.selection.setCoords(\n\t\t\tthis.selection.c1 + c,\n\t\t\tthis.selection.r1 + r,\n\t\t\tthis.selection.c2 + c,\n\t\t\tthis.selection.r2 + r\n\t\t);\n\t\tmoveSelector.select(moveSelector.selection);\n\t\tdom.showElement(this.moveSelector);\n\t}\n\n\tstopMoving(dispatchEvent = true) {\n\t\tif (!this._moving) return;\n\t\tthis._moving = false;\n\t\tdom.hideElement(this.moveSelector);\n\t\tif (this.moveSelector) {\n\t\t\tconst fromRange = this.selection.clone();\n\t\t\tconst toRange = this.moveSelector.selection.clone();\n\t\t\tif (!fromRange.equals(toRange)) {\n\t\t\t\tthis.selection = toRange;\n\t\t\t\tif (dispatchEvent) this.dispatchEvent(new SelectorMoveEvent({fromRange, toRange, selector: this, grid: this.grid}));\n\t\t\t}\n\t\t}\n\t}\n\n\t// #endregion\n\n\n\t// #region Selector resizing\n\n\tstartResizing(direction: DiagonalDirection) {\n\t\tthis._resizing = true;\n\t\tthis._resizingDirection = direction;\n\t}\n\n\tupdateResizing(c: number, r: number) {\n\t\tconst { c1, r1, c2, r2 } = this.selection;\n\t\tconst range = this.selection.clone();\n\t\tswitch (this._resizingDirection) {\n\t\t\tcase 'nw':\n\t\t\t\tif (r <= r2 && c <= c2) {\n\t\t\t\t\trange.r1 = r;\n\t\t\t\t\trange.c1 = c;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'ne':\n\t\t\t\tif (r <= r2 && c >= c1) {\n\t\t\t\t\trange.r1 = r;\n\t\t\t\t\trange.c2 = c;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'sw':\n\t\t\t\tif (r >= r1 && c <= c2) {\n\t\t\t\t\trange.r2 = r;\n\t\t\t\t\trange.c1 = c;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'se':\n\t\t\t\tif (r >= r1 && c >= c1) {\n\t\t\t\t\trange.r2 = r;\n\t\t\t\t\trange.c2 = c;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\t\n\t\tif (!this.selection.equals(range)) {\n\t\t\tthis.selection.r1 = range.r1;\n\t\t\tthis.selection.r2 = range.r2;\n\t\t\tthis.selection.c1 = range.c1;\n\t\t\tthis.selection.c2 = range.c2;\n\t\t\tthis.updatePosition();\n\t\t}\n\t}\n\n\tstopResizing(dispatchEvent = true) {\n\t\tif (!this._resizing) return;\n\t\tthis._resizing = false;\n\t\tif (dispatchEvent) this.dispatchEvent(new SelectorEvent('resize', {selector: this, grid: this.grid}));\n\t}\n\n\t// #endregion\n\n\n\t// #region Selecting\n\n\tstartSelecting(baseCell: CellRange) {\n\t\tthis.baseCell = baseCell;\n\t\tthis._selecting = true;\n\t\tthis.select(baseCell);\n\t}\n\n\tselect(selection: CellRange, dispatchEvent = true) {\n\t\tthis.selection = selection.clone();\n\t\tif (dispatchEvent) this.dispatchEvent(new SelectorEvent('select', {selector: this, grid: this.grid}));\n\t}\n\n\tstopSelecting(_dispatchEvent = true) {\n\t\tthis._selecting = false;\n\t\tthis.baseCell = null;\n\t}\n\n\t// #endregion\n\n\t/**\n\t * Updates selector state after table moving events\n\t * @param c column index\n\t * @param r row index\n\t */\n\tupdateMovingOperations(c: number, r: number) {\n\t\tif (this.isAutofilling) this.updateAutofilling(c, r);\n\t\tif (this.isMoving) this.updateMoving(c, r);\n\t\tif (this.isResizing) this.updateResizing(c, r);\n\t}\n\n\tstopSelectorOperations(dispatchEvent = true) {\n\t\tthis.stopAutofilling(dispatchEvent);\n\t\tthis.stopMoving(dispatchEvent);\n\t\tthis.stopResizing(dispatchEvent);\n\t\tthis.stopSelecting(dispatchEvent);\n\t}\n\n\t_onMoveHandleMouseDown = (e: PointerEvent, _side: DirectionalPosition) => {\n\t\tconst x = e.offsetX + (e.target as HTMLElement).offsetLeft + this.offsetLeft - this.table.totalHeaderWidth;\n\t\tconst y = e.offsetY + (e.target as HTMLElement).offsetTop + this.offsetTop - this.table.thead.clientHeight;\n\t\tlet i = -1, h = 0, w = 0;\n\t\twhile (h < y && this.table.bRows[++i]) {\n\t\t\th += this.table.bRows[i].clientHeight;\n\t\t}\n\t\tconst row = this.table.bRows[i];\n\t\tif (row) {\n\t\t\ti = -1;\n\t\t\twhile (w < x && row.children[++i]) {\n\t\t\t\tw += row.children[i].tagName == 'TD' ? row.children[i].clientWidth : 0;\n\t\t\t}\n\t\t\tconst cell = row.children[Math.max(i, 0)] as TableCell;\n\t\t\tconst { r, c } = cell;\n\t\t\tthis.startMoving(new CellRange(c, r));\n\t\t}\n\t};\n\n\t_onResizeHandleMouseDown = (e: PointerEvent, direction: DiagonalDirection) => {\n\t\te.stopImmediatePropagation();\n\t\tthis.startResizing(direction);\n\t}\n\n\t_onHandleMouseUp = (e: PointerEvent) => {\n\t\tif (e.button != 0) return;\n\t\tthis.stopMoving();\n\t\tthis.stopResizing();\n\t}\n\n\t_onHandleMouseDown = () => {\n\t\tthis._autofilling = true;\n\t\tthis.autofillSelector = this.autofillSelector ?? this.createAutofillSelector();\n\t\tdom.hideElement(this.autofillSelector);\n\t\tdom.appendElement(this.grid.shadowRoot, this.autofillSelector);\n\t}\n\n\trender = () => html`\n\t\t${this.subselector ? html`<div id=\"subselector\"></div>` : ''}\n\t\t${this.resizable ? html`\n\t\t\t<div id=\"handle-nw\" class=\"handle-resize\" style=\"${styleMap({backgroundColor: this.color})}\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onResizeHandleMouseDown(e, 'nw')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-ne\" class=\"handle-resize\" style=\"${styleMap({backgroundColor: this.color})}\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onResizeHandleMouseDown(e, 'ne')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-sw\" class=\"handle-resize\" style=\"${styleMap({backgroundColor: this.color})}\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onResizeHandleMouseDown(e, 'sw')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-se\" class=\"handle-resize\" style=\"${styleMap({backgroundColor: this.color})}\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onResizeHandleMouseDown(e, 'se')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t` : (this.autofill ? html`\n\t\t\t<div id=\"handle\" @pointerdown=\"${this._onHandleMouseDown}\"></div>\n\t\t` : '')}\n\t\t\n\t\t${this.movable ? html`\n\t\t\t<div id=\"handle-top\" class=\"handle-move\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onMoveHandleMouseDown(e, 'top')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-right\" class=\"handle-move\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onMoveHandleMouseDown(e, 'right')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-bottom\" class=\"handle-move\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onMoveHandleMouseDown(e, 'bottom')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-left\" class=\"handle-move\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onMoveHandleMouseDown(e, 'left')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t` : ''}\n\t\t${this.animated ? html`\n\t\t\t<svg id=\"svgAnimation\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t<rect width=\"100%\" height=\"100%\" fill=\"none\" stroke-width=\"4\" stroke-dasharray=\"6,14\" stroke-dashoffset=\"0\" stroke-linecap=\"square\" />\n\t\t\t</svg>\n\t\t` : ''}\n\t`;\n\n\tstartAnimation() {\n\t\tif (!this.animated || this._animationTimer != null || !this.isVisible) return;\n\t\tlet dashOffset = 0;\n\t\tthis._animationTimer = window.setInterval(() => {\n\t\t\tdashOffset += 2;\n\t\t\tdashOffset = dashOffset == 20 ? 0 : dashOffset;\n\t\t\tthis.svgAnimation.firstElementChild.setAttribute('stroke-dashoffset', dashOffset.toString())\n\t\t}, 50);\n\t}\n\n\tstopAnimation() {\n\t\tif (this._animationTimer != null) window.clearInterval(this._animationTimer);\n\t\tthis._animationTimer = null;\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.stopAnimation();\n\t}\n\n\twillUpdate() {\n\t\tif (this.color) this.style.borderColor = this.color;\n\t}\n\t\n\tupdated() {\n\t\tthis.updatePosition();\n\t\tif (!this.animated && this._animationTimer != null) this.stopAnimation();\n\t\telse if (this.animated && this._animationTimer == null) this.startAnimation();\n\t}\n\n\tupdatePosition() {\n\t\tif (!this.table?.model) return;\n\t\t\n\t\tconst zoom = this.table.zoom;\n\t\tdom.zoomElement(this, zoom);\n\t\t\n\t\tlet top = -1000, left = -1000, width = 0, height = 0;\n\t\tlet subTop = -1000, subLeft = -1000, subWidth = 0, subHeight = 0;\n\t\tconst options = this.table.model.options;\n\n\t\tif (this.selection) {\n\t\t\tconst cMin = Math.min(this.selection.c1, this.selection.c2);\n\t\t\tconst cMax = Math.max(this.selection.c1, this.selection.c2);\n\t\t\tconst rMin = Math.min(this.selection.r1, this.selection.r2);\n\t\t\tconst rMax = Math.max(this.selection.r1, this.selection.r2);\n\n\t\t\tthis.topLeftCell = this.table.getCellByModelIndex(cMin, rMin);\n\t\t\tthis.topRightCell = this.table.getCellByModelIndex(cMax, rMin);\n\t\t\tthis.bottomLeftCell = this.table.getCellByModelIndex(cMin, rMax);\n\t\t\tthis.bottomRightCell = this.table.getCellByModelIndex(cMax, rMax);\n\n\t\t\tif (this.topLeftCell || this.topRightCell || this.bottomLeftCell || this.bottomRightCell) {\n\t\t\t\tdom.setBorderWidth(this, {\n\t\t\t\t\tr: this.topRightCell || this.bottomRightCell ? this.borderWidth : 0,\n\t\t\t\t\tb: this.bottomRightCell || this.bottomLeftCell ? this.borderWidth : 0,\n\t\t\t\t\tl: this.topLeftCell || this.bottomLeftCell ? this.borderWidth : 0,\n\t\t\t\t\tt: this.topRightCell || this.topLeftCell ? this.borderWidth : 0\n\t\t\t\t});\n\n\t\t\t\ttop = this.topLeftCell || this.topRightCell\n\t\t\t\t\t? dom.getElementOffset(this.topLeftCell || this.topRightCell, this.table).top\n\t\t\t\t\t: dom.getElementOffset(this.table.getCellByGridIndex(0, options.freezeTop), this.table).top;\n\t\t\t\t\t\n\t\t\t\theight = (this.bottomRightCell || this.bottomLeftCell\n\t\t\t\t\t? dom.getElementOffset(this.bottomRightCell || this.bottomLeftCell, this.table).top - top + (this.bottomRightCell || this.bottomLeftCell).offsetHeight\n\t\t\t\t\t: (rMax <= this.table.rowOffset\n\t\t\t\t\t\t? (dom.getElementOffset(this.table.getCellByGridIndex(0, options.freezeTop), this.table).top - top)\n\t\t\t\t\t\t: this.table.offsetHeight - top)) + 1;\n\t\t\t\t\t\n\t\t\t\tleft = this.topLeftCell || this.bottomLeftCell \n\t\t\t\t\t? dom.getElementOffset(this.topLeftCell || this.bottomLeftCell, this.table).left \n\t\t\t\t\t: dom.getElementOffset(this.table.getCellByGridIndex(options.freezeLeft, 0), this.table).left;\n\t\t\t\t\n\t\t\t\twidth = (this.topRightCell || this.bottomRightCell\n\t\t\t\t\t? dom.getElementOffset(this.topRightCell || this.bottomRightCell, this.table).left - left + (this.topRightCell || this.bottomRightCell).offsetWidth\n\t\t\t\t\t: (cMax <= this.table.colOffset\n\t\t\t\t\t\t? (dom.getElementOffset(this.table.getCellByGridIndex(options.freezeLeft, 0), this.table).left - left)\n\t\t\t\t\t\t: this.table.offsetWidth - left)) + 1;\n\t\t\t\t\n\t\t\t\tif (this.activeCellRange) {\n\t\t\t\t\tthis.activeCell = this.table.getCellByModelIndex(cMin + this.activeCellRange.c1, rMin + this.activeCellRange.r1);\n\t\t\t\t\tif (this.activeCell) {\n\t\t\t\t\t\tconst subOffset = dom.getElementOffset(this.activeCell, this.table);\n\t\t\t\t\t\tsubLeft = subOffset.left - left;\n\t\t\t\t\t\tsubTop = subOffset.top - top;\n\t\t\t\t\t\tsubWidth = this.activeCell.offsetWidth;\n\t\t\t\t\t\tsubHeight = this.activeCell.offsetHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdom.setPosition(this, {l: left * zoom, t: top * zoom});\n\t\tdom.setSize(this, {w: width, h: height});\n\n\t\tif (this.subselectorElm) {\n\t\t\tif (this.activeCellRange) {\n\t\t\t\tdom.setPosition(this.subselectorElm, {l: subLeft - constants.SELECTOR_BORDER_WIDTH, t: subTop - constants.SELECTOR_BORDER_WIDTH});\n\t\t\t\tdom.setSize(this.subselectorElm, {w: subWidth - 1, h: subHeight - 1});\n\t\t\t} else {\n\t\t\t\tdom.hideElement(this.subselectorElm);\n\t\t\t}\n\t\t}\n\n\t\tif (this.svgAnimation) {\n\t\t\tthis.svgAnimation.setAttribute('width', (this.clientWidth + 4).toString());\n\t\t\tthis.svgAnimation.setAttribute('height', (this.clientHeight + 4).toString());\n\t\t}\n\t}\n\n}"]}
1
+ {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/ui/selector.ts"],"names":[],"mappings":"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","sourcesContent":["import constants from '../constants';\nimport { DiagonalDirection, Direction, DirectionalPosition, dom } from \"@omegagrid/core\";\nimport { CellRange } from \"@omegagrid/grid-core\";\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { TableCell } from \"./table\";\nimport { style } from './selector.style';\nimport { Grid } from './grid';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { GridEvent } from './grid.events';\n\nexport class SelectorEvent extends GridEvent {\n\n\tselector: Selector;\n\n\tconstructor(type: string, args?: Partial<SelectorEvent>) {\n\t\tsuper(`selector.${type}`, args);\n\t}\n}\n\nexport class SelectorMoveEvent extends SelectorEvent {\n\tfromRange: CellRange;\n\ttoRange: CellRange;\n\tconstructor(args?: Partial<SelectorMoveEvent>) {\n\t\tsuper('move', args);\n\t}\n}\n\n@customElement('og-selector')\nexport class Selector extends LitElement {\n\n\tstatic styles = [style];\n\n\tprivate topLeftCell?: TableCell;\n\tprivate topRightCell?: TableCell;\n\tprivate bottomLeftCell?: TableCell;\n\tprivate bottomRightCell?: TableCell;\n\tprivate activeCell?: TableCell;\n\tprivate autofillSelector: HTMLDivElement;\n\tprivate moveSelector: Selector;\n\tprivate baseCell: CellRange;\n\n\tprivate _animationTimer: number = null;\n\n\tprivate _autofillDirection: Direction;\n\tget autofillDirection() { return this._autofillDirection }\n\t\n\tprivate _autofillRange: CellRange;\n\tget autofillRange() { return this._autofillRange }\n\n\tprivate _autofilling = false;\n\tget isAutofilling() { return this._autofilling }\n\n\tprivate _moving = false;\n\tget isMoving() { return this._moving }\n\n\tprivate _resizing = false;\n\tprivate _resizingDirection: DiagonalDirection;\n\tget isResizing() { return this._resizing }\n\n\tprivate _selecting = false;\n\tget isSelecting() { return this._selecting }\n\n\tget isSelectorOperationActive() { return this._resizing || this._moving || this._autofilling || this._selecting}\n\n\tget table() { return this.grid?.table }\n\n\tindex: number;\n\tgrid: Grid;\n\n\t@property({type: Boolean})\n\tautofill: boolean;\n\n\t@property({type: Boolean, reflect: true})\n\tmovable: boolean;\n\n\t@property({type: Boolean, reflect: true})\n\tresizable: boolean;\n\n\t@property({type: Boolean, reflect: true})\n\tsubselector = false;\n\n\t@property({type: String})\n\tcolor: string;\n\n\t@property({type: Number})\n\tborderWidth: number = constants.SELECTOR_BORDER_WIDTH;\n\n\t@property({type: Boolean, reflect: true})\n\tanimated = false;\n\n\t@property({type: Object})\n\tselection: CellRange;\n\n\t@property({type: Object})\n\tactiveCellRange: CellRange;\n\n\t@query('#handle')\n\thandleElm: HTMLDivElement;\n\n\t@query('#svgAnimation')\n\tsvgAnimation: SVGElement;\n\n\t@query('#handle-left')\n\tmoveHandleLeftElm: HTMLDivElement;\n\n\t@query('#handle-top')\n\tmoveHandleTopElm: HTMLDivElement;\n\n\t@query('#handle-right')\n\tmoveHandleRightElm: HTMLDivElement;\n\n\t@query('#handle-bottom')\n\tmoveHandleBottomElm: HTMLDivElement;\n\t\n\t@query('#subselector')\n\tsubselectorElm: HTMLDivElement;\n\n\tprivate _isVisible = false;\n\tget isVisible() { return this._isVisible }\n\n\thide = () => {\n\t\tthis._isVisible = false;\n\t\tdom.hideElement(this);\n\t\tthis.stopSelectorOperations();\n\t\tthis.stopAnimation();\n\t};\n\tshow = () => {\n\t\tthis._isVisible = true;\n\t\tdom.showElement(this);\n\t\tthis.startAnimation();\n\t}\n\n\n\t// #region Autofill\n\n\thighlightAutofillRange() {\n\t\tconst tlCell = this.table.getCellByModelIndex(this._autofillRange.c1, this._autofillRange.r1);\n\t\tconst trCell = this.table.getCellByModelIndex(this._autofillRange.c2, this._autofillRange.r1);\n\t\tconst brCell = this.table.getCellByModelIndex(this._autofillRange.c2, this._autofillRange.r2);\n\t\tconst blCell = this.table.getCellByModelIndex(this._autofillRange.c1, this._autofillRange.r2);\n\n\t\tlet left = -100;\n\t\tlet top = -100;\n\t\tlet right = this.table.offsetWidth + 100;\n\t\tlet bottom = this.table.offsetHeight + 100;\n\n\t\tif (tlCell) {\n\t\t\tconst offset = dom.getElementOffset(tlCell, this.table);\n\t\t\ttop = offset.top;\n\t\t\tleft = offset.left;\n\t\t}\n\t\tif (trCell) {\n\t\t\tconst offset = dom.getElementOffset(trCell, this.table);\n\t\t\ttop = offset.top;\n\t\t\tright = offset.left + brCell.offsetWidth;\n\t\t}\n\t\tif (blCell) {\n\t\t\tconst offset = dom.getElementOffset(blCell, this.table);\n\t\t\tbottom = offset.top + blCell.offsetHeight;\n\t\t\tleft = offset.left;\n\t\t}\n\t\tif (brCell) {\n\t\t\tconst offset = dom.getElementOffset(brCell, this.table);\n\t\t\tbottom = offset.top + brCell.offsetHeight;\n\t\t\tright = offset.left + brCell.offsetWidth;\n\t\t}\n\n\t\tdom.setPosition(this.autofillSelector, {l: left, t: top});\n\t\tdom.setSize(this.autofillSelector, {w: right - left, h: bottom - top});\n\t\tdom.showElement(this.autofillSelector);\n\t}\n\n\tcreateAutofillSelector() {\n\t\tconst selector = dom.createElement<HTMLDivElement>('div');\n\t\tselector.className = 'autofill';\n\t\tselector.style.border = '1px solid var(--og-accent-color)';\n\t\tselector.style.zIndex = '100';\n\t\tselector.style.pointerEvents = 'none';\n\t\treturn selector;\n\t}\n\n\tstopAutofilling(dispatchEvent = true) {\n\t\tif (!this.isAutofilling) return;\n\t\tthis._autofilling = false;\n\t\tif (dispatchEvent) this.dispatchEvent(new SelectorEvent('autofill', {selector: this, grid: this.grid}));\n\t\t//this.autofillRange = null;\n\t\tthis.autofillSelector.remove();\n\t}\n\n\tupdateAutofilling(c: number, r: number) {\n\t\tconst { c1, r1, c2, r2 } = this.selection;\n\t\tthis._autofillRange = null;\n\t\t// down autofill\n\t\tif (r > r2 && c - c2 <= r - r2) {\n\t\t\tthis._autofillDirection = 'down';\n\t\t\tthis._autofillRange = new CellRange(c1, r2 + 1, c2, r);\n\t\t}\n\t\t// up autofill\n\t\telse if (r < r1 && c1 - c <= r1 - r) {\n\t\t\tthis._autofillDirection = 'up';\n\t\t\tthis._autofillRange = new CellRange(c1, r, c2, r1 - 1);\n\t\t}\n\t\t// right autofill\n\t\telse if (c > c2 && c - c2 > r - r2) {\n\t\t\tthis._autofillDirection = 'right';\n\t\t\tthis._autofillRange = new CellRange(c2 + 1, r1, c, r2);\n\t\t}\n\t\t// left autofill\n\t\telse if (c < c1 && c1 - c > r1 - r) {\n\t\t\tthis._autofillDirection = 'left';\n\t\t\tthis._autofillRange = new CellRange(c, r1, c1 - 1, r2);\n\t\t}\n\n\t\tif (this._autofillRange) this.highlightAutofillRange();\n\t}\n\n\t// #endregion\n\n\n\t// #region Selector moving\n\n\tgetMoveSelector() {\n\t\tif (!this.moveSelector) {\n\t\t\tthis.moveSelector = dom.createElement<Selector>('og-selector');\n\t\t\tthis.moveSelector.grid = this.grid;\n\t\t\tthis.moveSelector.style.borderStyle = 'dotted';\n\t\t\tthis.moveSelector.subselector = false;\n\t\t\tthis.moveSelector.selection = this.selection.clone();\n\t\t\tthis.grid.shadowRoot.appendChild(this.moveSelector);\n\t\t}\n\t\treturn this.moveSelector;\n\t}\n\n\tstartMoving(baseCell: CellRange) {\n\t\tthis.baseCell = baseCell;\n\t\tthis._moving = true;\n\t}\n\n\tupdateMoving(c: number, r: number) {\n\t\tc = this.selection.isRow ? 0 : c - this.baseCell.c1;\n\t\tr = this.selection.isColumn ? 0 : r - this.baseCell.r1;\n\t\tconst moveSelector = this.getMoveSelector();\n\t\tmoveSelector.selection.setCoords(\n\t\t\tthis.selection.c1 + c,\n\t\t\tthis.selection.r1 + r,\n\t\t\tthis.selection.c2 + c,\n\t\t\tthis.selection.r2 + r\n\t\t);\n\t\tmoveSelector.select(moveSelector.selection);\n\t\tdom.showElement(this.moveSelector);\n\t}\n\n\tstopMoving(dispatchEvent = true) {\n\t\tif (!this._moving) return;\n\t\tthis._moving = false;\n\t\tdom.hideElement(this.moveSelector);\n\t\tif (this.moveSelector) {\n\t\t\tconst fromRange = this.selection.clone();\n\t\t\tconst toRange = this.moveSelector.selection.clone();\n\t\t\tif (!fromRange.equals(toRange)) {\n\t\t\t\tthis.selection = toRange;\n\t\t\t\tif (dispatchEvent) this.dispatchEvent(new SelectorMoveEvent({fromRange, toRange, selector: this, grid: this.grid}));\n\t\t\t}\n\t\t}\n\t}\n\n\t// #endregion\n\n\n\t// #region Selector resizing\n\n\tstartResizing(direction: DiagonalDirection) {\n\t\tthis._resizing = true;\n\t\tthis._resizingDirection = direction;\n\t}\n\n\tupdateResizing(c: number, r: number) {\n\t\tconst { c1, r1, c2, r2 } = this.selection;\n\t\tconst range = this.selection.clone();\n\t\tswitch (this._resizingDirection) {\n\t\t\tcase 'nw':\n\t\t\t\tif (r <= r2 && c <= c2) {\n\t\t\t\t\trange.r1 = r;\n\t\t\t\t\trange.c1 = c;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'ne':\n\t\t\t\tif (r <= r2 && c >= c1) {\n\t\t\t\t\trange.r1 = r;\n\t\t\t\t\trange.c2 = c;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'sw':\n\t\t\t\tif (r >= r1 && c <= c2) {\n\t\t\t\t\trange.r2 = r;\n\t\t\t\t\trange.c1 = c;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'se':\n\t\t\t\tif (r >= r1 && c >= c1) {\n\t\t\t\t\trange.r2 = r;\n\t\t\t\t\trange.c2 = c;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\t\n\t\tif (!this.selection.equals(range)) {\n\t\t\tthis.selection.r1 = range.r1;\n\t\t\tthis.selection.r2 = range.r2;\n\t\t\tthis.selection.c1 = range.c1;\n\t\t\tthis.selection.c2 = range.c2;\n\t\t\tthis.updatePosition();\n\t\t}\n\t}\n\n\tstopResizing(dispatchEvent = true) {\n\t\tif (!this._resizing) return;\n\t\tthis._resizing = false;\n\t\tif (dispatchEvent) this.dispatchEvent(new SelectorEvent('resize', {selector: this, grid: this.grid}));\n\t}\n\n\t// #endregion\n\n\n\t// #region Selecting\n\n\tstartSelecting(baseCell: CellRange) {\n\t\tthis.baseCell = baseCell;\n\t\tthis._selecting = true;\n\t\tthis.select(baseCell);\n\t}\n\n\tselect(selection: CellRange, dispatchEvent = true) {\n\t\tthis.selection = selection.clone();\n\t\tif (dispatchEvent) this.dispatchEvent(new SelectorEvent('select', {selector: this, grid: this.grid}));\n\t}\n\n\tstopSelecting(_dispatchEvent = true) {\n\t\tthis._selecting = false;\n\t\tthis.baseCell = null;\n\t}\n\n\t// #endregion\n\n\t/**\n\t * Updates selector state after table moving events\n\t * @param c column index\n\t * @param r row index\n\t */\n\tupdateMovingOperations(c: number, r: number) {\n\t\tif (this.isAutofilling) this.updateAutofilling(c, r);\n\t\tif (this.isMoving) this.updateMoving(c, r);\n\t\tif (this.isResizing) this.updateResizing(c, r);\n\t}\n\n\tstopSelectorOperations(dispatchEvent = true) {\n\t\tthis.stopAutofilling(dispatchEvent);\n\t\tthis.stopMoving(dispatchEvent);\n\t\tthis.stopResizing(dispatchEvent);\n\t\tthis.stopSelecting(dispatchEvent);\n\t}\n\n\t_onMoveHandleMouseDown = (e: PointerEvent, _side: DirectionalPosition) => {\n\t\tconst x = e.offsetX + (e.target as HTMLElement).offsetLeft + this.offsetLeft - this.table.totalHeaderWidth;\n\t\tconst y = e.offsetY + (e.target as HTMLElement).offsetTop + this.offsetTop - this.table.thead.clientHeight;\n\t\tlet i = -1, h = 0, w = 0;\n\t\twhile (h < y && this.table.bRows[++i]) {\n\t\t\th += this.table.bRows[i].clientHeight;\n\t\t}\n\t\tconst row = this.table.bRows[i];\n\t\tif (row) {\n\t\t\ti = -1;\n\t\t\twhile (w < x && row.children[++i]) {\n\t\t\t\tw += row.children[i].tagName == 'TD' ? row.children[i].clientWidth : 0;\n\t\t\t}\n\t\t\tconst cell = row.children[Math.max(i, 0)] as TableCell;\n\t\t\tconst { r, c } = cell;\n\t\t\tthis.startMoving(new CellRange(c, r));\n\t\t}\n\t};\n\n\t_onResizeHandleMouseDown = (e: PointerEvent, direction: DiagonalDirection) => {\n\t\te.stopImmediatePropagation();\n\t\tthis.startResizing(direction);\n\t}\n\n\t_onHandleMouseUp = (e: PointerEvent) => {\n\t\tif (e.button != 0) return;\n\t\tthis.stopMoving();\n\t\tthis.stopResizing();\n\t}\n\n\t_onHandleMouseDown = () => {\n\t\tthis._autofilling = true;\n\t\tthis.autofillSelector = this.autofillSelector ?? this.createAutofillSelector();\n\t\tdom.hideElement(this.autofillSelector);\n\t\tdom.appendElement(this.grid.shadowRoot, this.autofillSelector);\n\t}\n\n\trender = () => html`\n\t\t${this.subselector ? html`<div id=\"subselector\"></div>` : ''}\n\t\t${this.resizable ? html`\n\t\t\t<div id=\"handle-nw\" class=\"handle-resize\" style=\"${styleMap({backgroundColor: this.color})}\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onResizeHandleMouseDown(e, 'nw')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-ne\" class=\"handle-resize\" style=\"${styleMap({backgroundColor: this.color})}\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onResizeHandleMouseDown(e, 'ne')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-sw\" class=\"handle-resize\" style=\"${styleMap({backgroundColor: this.color})}\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onResizeHandleMouseDown(e, 'sw')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-se\" class=\"handle-resize\" style=\"${styleMap({backgroundColor: this.color})}\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onResizeHandleMouseDown(e, 'se')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t` : (this.autofill ? html`\n\t\t\t<div id=\"handle\" @pointerdown=\"${this._onHandleMouseDown}\"></div>\n\t\t` : '')}\n\t\t\n\t\t${this.movable ? html`\n\t\t\t<div id=\"handle-top\" class=\"handle-move\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onMoveHandleMouseDown(e, 'top')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-right\" class=\"handle-move\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onMoveHandleMouseDown(e, 'right')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-bottom\" class=\"handle-move\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onMoveHandleMouseDown(e, 'bottom')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t\t<div id=\"handle-left\" class=\"handle-move\" \n\t\t\t\t@pointerdown=\"${(e: PointerEvent) => this._onMoveHandleMouseDown(e, 'left')}\"\n\t\t\t\t@pointerup=\"${this._onHandleMouseUp}\"></div>\n\t\t` : ''}\n\t\t${this.animated ? html`\n\t\t\t<svg id=\"svgAnimation\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t<rect width=\"100%\" height=\"100%\" fill=\"none\" stroke-width=\"4\" stroke-dasharray=\"6,14\" stroke-dashoffset=\"0\" stroke-linecap=\"square\" />\n\t\t\t</svg>\n\t\t` : ''}\n\t`;\n\n\tstartAnimation() {\n\t\tif (!this.animated || this._animationTimer != null || !this.isVisible) return;\n\t\tlet dashOffset = 0;\n\t\tthis._animationTimer = window.setInterval(() => {\n\t\t\tdashOffset += 2;\n\t\t\tdashOffset = dashOffset == 20 ? 0 : dashOffset;\n\t\t\tthis.svgAnimation.firstElementChild.setAttribute('stroke-dashoffset', dashOffset.toString())\n\t\t}, 50);\n\t}\n\n\tstopAnimation() {\n\t\tif (this._animationTimer != null) window.clearInterval(this._animationTimer);\n\t\tthis._animationTimer = null;\n\t}\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.grid = dom.findParent(this, 'og-grid');\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.stopAnimation();\n\t}\n\n\twillUpdate() {\n\t\tif (this.color) this.style.borderColor = this.color;\n\t}\n\t\n\tupdated() {\n\t\tthis.updatePosition();\n\t\tif (!this.animated && this._animationTimer != null) this.stopAnimation();\n\t\telse if (this.animated && this._animationTimer == null) this.startAnimation();\n\t}\n\n\tupdatePosition() {\n\t\tif (!this.table?.model) return;\n\t\t\n\t\tconst zoom = this.table.zoom;\n\t\tdom.zoomElement(this, zoom);\n\t\t\n\t\tlet top = -1000, left = -1000, width = 0, height = 0;\n\t\tlet subTop = -1000, subLeft = -1000, subWidth = 0, subHeight = 0;\n\t\tconst options = this.table.model.options;\n\n\t\tif (this.selection) {\n\t\t\tconst cMin = Math.min(this.selection.c1, this.selection.c2);\n\t\t\tconst cMax = Math.max(this.selection.c1, this.selection.c2);\n\t\t\tconst rMin = Math.min(this.selection.r1, this.selection.r2);\n\t\t\tconst rMax = Math.max(this.selection.r1, this.selection.r2);\n\n\t\t\tthis.topLeftCell = this.table.getCellByModelIndex(cMin, rMin);\n\t\t\tthis.topRightCell = this.table.getCellByModelIndex(cMax, rMin);\n\t\t\tthis.bottomLeftCell = this.table.getCellByModelIndex(cMin, rMax);\n\t\t\tthis.bottomRightCell = this.table.getCellByModelIndex(cMax, rMax);\n\n\t\t\tif (this.topLeftCell || this.topRightCell || this.bottomLeftCell || this.bottomRightCell) {\n\t\t\t\tdom.setBorderWidth(this, {\n\t\t\t\t\tr: this.topRightCell || this.bottomRightCell ? this.borderWidth : 0,\n\t\t\t\t\tb: this.bottomRightCell || this.bottomLeftCell ? this.borderWidth : 0,\n\t\t\t\t\tl: this.topLeftCell || this.bottomLeftCell ? this.borderWidth : 0,\n\t\t\t\t\tt: this.topRightCell || this.topLeftCell ? this.borderWidth : 0\n\t\t\t\t});\n\n\t\t\t\ttop = this.topLeftCell || this.topRightCell\n\t\t\t\t\t? dom.getElementOffset(this.topLeftCell || this.topRightCell, this.table).top\n\t\t\t\t\t: dom.getElementOffset(this.table.getCellByGridIndex(0, options.freezeTop), this.table).top;\n\t\t\t\t\t\n\t\t\t\theight = (this.bottomRightCell || this.bottomLeftCell\n\t\t\t\t\t? dom.getElementOffset(this.bottomRightCell || this.bottomLeftCell, this.table).top - top + (this.bottomRightCell || this.bottomLeftCell).offsetHeight\n\t\t\t\t\t: (rMax <= this.table.rowOffset\n\t\t\t\t\t\t? (dom.getElementOffset(this.table.getCellByGridIndex(0, options.freezeTop), this.table).top - top)\n\t\t\t\t\t\t: this.table.offsetHeight - top)) + 1;\n\t\t\t\t\t\n\t\t\t\tleft = this.topLeftCell || this.bottomLeftCell \n\t\t\t\t\t? dom.getElementOffset(this.topLeftCell || this.bottomLeftCell, this.table).left \n\t\t\t\t\t: dom.getElementOffset(this.table.getCellByGridIndex(options.freezeLeft, 0), this.table).left;\n\t\t\t\t\n\t\t\t\twidth = (this.topRightCell || this.bottomRightCell\n\t\t\t\t\t? dom.getElementOffset(this.topRightCell || this.bottomRightCell, this.table).left - left + (this.topRightCell || this.bottomRightCell).offsetWidth\n\t\t\t\t\t: (cMax <= this.table.colOffset\n\t\t\t\t\t\t? (dom.getElementOffset(this.table.getCellByGridIndex(options.freezeLeft, 0), this.table).left - left)\n\t\t\t\t\t\t: this.table.offsetWidth - left)) + 1;\n\t\t\t\t\n\t\t\t\tif (this.activeCellRange) {\n\t\t\t\t\tthis.activeCell = this.table.getCellByModelIndex(cMin + this.activeCellRange.c1, rMin + this.activeCellRange.r1);\n\t\t\t\t\tif (this.activeCell) {\n\t\t\t\t\t\tconst subOffset = dom.getElementOffset(this.activeCell, this.table);\n\t\t\t\t\t\tsubLeft = subOffset.left - left;\n\t\t\t\t\t\tsubTop = subOffset.top - top;\n\t\t\t\t\t\tsubWidth = this.activeCell.offsetWidth;\n\t\t\t\t\t\tsubHeight = this.activeCell.offsetHeight;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdom.setPosition(this, {l: left * zoom, t: top * zoom});\n\t\tdom.setSize(this, {w: width, h: height});\n\n\t\tif (this.subselectorElm) {\n\t\t\tif (this.activeCellRange) {\n\t\t\t\tdom.setPosition(this.subselectorElm, {l: subLeft - constants.SELECTOR_BORDER_WIDTH, t: subTop - constants.SELECTOR_BORDER_WIDTH});\n\t\t\t\tdom.setSize(this.subselectorElm, {w: subWidth - 1, h: subHeight - 1});\n\t\t\t} else {\n\t\t\t\tdom.hideElement(this.subselectorElm);\n\t\t\t}\n\t\t}\n\n\t\tif (this.svgAnimation) {\n\t\t\tthis.svgAnimation.setAttribute('width', (this.clientWidth + 4).toString());\n\t\t\tthis.svgAnimation.setAttribute('height', (this.clientHeight + 4).toString());\n\t\t}\n\t}\n\n}"]}
@@ -87,7 +87,7 @@ export declare class Table extends LitElement {
87
87
  * @returns
88
88
  */
89
89
  findNearestTableCellByOffset(x: number, y: number): [TableCell, TableCell?];
90
- constructor();
90
+ connectedCallback(): void;
91
91
  render: () => import("lit-html").TemplateResult<1>;
92
92
  willUpdate(): void;
93
93
  updated(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/ui/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/ui/table.ts"],"names":[],"mappings":"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"}
package/dist/ui/table.js CHANGED
@@ -17,6 +17,64 @@ import { applyStyle, getCellRenderer } from '../renderers';
17
17
  export class TableEvent extends Event {
18
18
  }
19
19
  let Table = class Table extends LitElement {
20
+ constructor() {
21
+ super(...arguments);
22
+ // map of model indexes on element indexes
23
+ this._rowMap = new Map();
24
+ this._colMap = new Map();
25
+ this.rowOffset = 0;
26
+ this.colOffset = 0;
27
+ this.zoom = 1;
28
+ this.nogrid = false;
29
+ this.renderAll = false;
30
+ //#endregion
31
+ //#region element references
32
+ this.tableRef = createRef();
33
+ this.colgroupRef = createRef();
34
+ this.theadRef = createRef();
35
+ this.tbodyRef = createRef();
36
+ this.getColumnByModelIndex = (c) => this.getColumnByGridIndex(this.colMap.get(c));
37
+ this.getColumnByGridIndex = (c) => this.colgroup.children[c + this.rowHeaderCount];
38
+ this.getRowByModelIndex = (r) => this.bRows[this.rowMap.get(r)];
39
+ this.getRowByGridIndex = (r) => this.bRows[r];
40
+ this.getCellByGridIndex = (c, r) => this.bRows[r].children[c + this.rowHeaderCount];
41
+ this.getCellByModelIndex = (c, r) => this.getRowByModelIndex(r)?.children[this.colMap.get(c) + this.rowHeaderCount];
42
+ this.getCellByCellModel = (m) => this.getCellByModelIndex(m.c, m.r);
43
+ this.resetFreezeLeft = () => this._freezeLeft = null;
44
+ this._highlightedColHeaderCells = [];
45
+ this._highlightedRowHeaderCells = [];
46
+ this.render = () => html `
47
+ <style>
48
+ table {
49
+ font-size: ${this.model?.options.fontSize || 12}px;
50
+ }
51
+
52
+ table tr {
53
+ line-height: ${(this.model?.options.rowHeight || 22) - 1}px;
54
+ }
55
+ </style>
56
+
57
+ <table ${ref(this.tableRef)}
58
+ class="${this.model?.options.grid ? '' : 'nogrid'}"
59
+ style="transform: scale(${this.zoom})">
60
+ <colgroup ${ref(this.colgroupRef)}></colgroup>
61
+ <thead ${ref(this.theadRef)}></thead>
62
+ <tbody ${ref(this.tbodyRef)}></tbody>
63
+ </table>
64
+ `;
65
+ this.clearHeaderCache = () => {
66
+ this.resetFreezeLeft();
67
+ this.hCache = new ElementCache(this.model.columns.length, this.columnHeaderCount);
68
+ this.hCache.disabled = !this.model.options.cellCache;
69
+ };
70
+ this.clearBodyCache = () => {
71
+ this.bCache = new ElementCache(this.model.columns.length, this.model.rows.length);
72
+ this.bCache.disabled = !this.model.options.cellCache;
73
+ };
74
+ //#endregion
75
+ this.cellRenderSchedules = new WeakMap();
76
+ //#endregion
77
+ }
20
78
  get table() { return this.tableRef.value; }
21
79
  get colgroup() { return this.colgroupRef.value; }
22
80
  get thead() { return this.theadRef.value; }
@@ -212,62 +270,9 @@ let Table = class Table extends LitElement {
212
270
  const exactCell = exactRow && excactColumnIndex > -1 ? exactRow.children[excactColumnIndex] : null;
213
271
  return [cell, exactCell && !dom.isHidden(exactCell) ? exactCell : null];
214
272
  }
215
- constructor() {
216
- super();
217
- // map of model indexes on element indexes
218
- this._rowMap = new Map();
219
- this._colMap = new Map();
220
- this.rowOffset = 0;
221
- this.colOffset = 0;
222
- this.zoom = 1;
223
- this.nogrid = false;
224
- this.renderAll = false;
225
- //#endregion
226
- //#region element references
227
- this.tableRef = createRef();
228
- this.colgroupRef = createRef();
229
- this.theadRef = createRef();
230
- this.tbodyRef = createRef();
231
- this.getColumnByModelIndex = (c) => this.getColumnByGridIndex(this.colMap.get(c));
232
- this.getColumnByGridIndex = (c) => this.colgroup.children[c + this.rowHeaderCount];
233
- this.getRowByModelIndex = (r) => this.bRows[this.rowMap.get(r)];
234
- this.getRowByGridIndex = (r) => this.bRows[r];
235
- this.getCellByGridIndex = (c, r) => this.bRows[r].children[c + this.rowHeaderCount];
236
- this.getCellByModelIndex = (c, r) => this.getRowByModelIndex(r)?.children[this.colMap.get(c) + this.rowHeaderCount];
237
- this.getCellByCellModel = (m) => this.getCellByModelIndex(m.c, m.r);
238
- this.resetFreezeLeft = () => this._freezeLeft = null;
239
- this._highlightedColHeaderCells = [];
240
- this._highlightedRowHeaderCells = [];
241
- this.render = () => html `
242
- <style>
243
- table {
244
- font-size: ${this.model?.options.fontSize || 12}px;
245
- }
246
-
247
- table tr {
248
- line-height: ${(this.model?.options.rowHeight || 22) - 1}px;
249
- }
250
- </style>
251
-
252
- <table ${ref(this.tableRef)}
253
- class="${this.model?.options.grid ? '' : 'nogrid'}"
254
- style="transform: scale(${this.zoom})">
255
- <colgroup ${ref(this.colgroupRef)}></colgroup>
256
- <thead ${ref(this.theadRef)}></thead>
257
- <tbody ${ref(this.tbodyRef)}></tbody>
258
- </table>
259
- `;
260
- this.clearHeaderCache = () => {
261
- this.resetFreezeLeft();
262
- this.hCache = new ElementCache(this.model.columns.length, this.columnHeaderCount);
263
- this.hCache.disabled = !this.model.options.cellCache;
264
- };
265
- this.clearBodyCache = () => {
266
- this.bCache = new ElementCache(this.model.columns.length, this.model.rows.length);
267
- this.bCache.disabled = !this.model.options.cellCache;
268
- };
269
- //#endregion
270
- this.cellRenderSchedules = new WeakMap();
273
+ connectedCallback() {
274
+ super.connectedCallback();
275
+ this.grid = dom.findParent(this, 'og-grid');
271
276
  }
272
277
  willUpdate() {
273
278
  this._viewport = null;