@omegagrid/tabs 0.10.23 → 0.10.25
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/components/tabSplitContainer.d.ts +1 -1
- package/dist/components/tabSplitContainer.d.ts.map +1 -1
- package/dist/components/tabSplitContainer.js +2 -2
- package/dist/components/tabSplitContainer.js.map +1 -1
- package/dist/components/tabs.d.ts +8 -2
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +66 -46
- package/dist/components/tabs.js.map +1 -1
- package/package.json +2 -2
|
@@ -33,7 +33,7 @@ export declare class TabSplitContainer extends LitElement implements Layout {
|
|
|
33
33
|
_createTabContainer: (containerIndex: number) => TabSplitContainerTabContainer;
|
|
34
34
|
_createSplitContainer: (containerIndex: number) => TabSplitContainer;
|
|
35
35
|
_createSplitContainerComponent: (id: ComponentId) => Promise<TabContainer | TabSplitContainer>;
|
|
36
|
-
_onDrop: (e: DragEvent) => void
|
|
36
|
+
_onDrop: (e: DragEvent) => Promise<void>;
|
|
37
37
|
activate(id: ComponentId): void;
|
|
38
38
|
open(item: TabItem, containerIndex?: number): void;
|
|
39
39
|
render: () => "" | import("lit-html").TemplateResult<1>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabSplitContainer.d.ts","sourceRoot":"","sources":["../../src/components/tabSplitContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAO,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAe,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5H,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,KAAK,6BAA6B,GAAG,YAAY,GAAG;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,iBAAiB,CAAA;CAClC,CAAC;AAEF,qBAEa,iBAAkB,SAAQ,UAAW,YAAW,MAAM;IAElE,MAAM,CAAC,MAAM,0BAQX;IAGF,iBAAiB,EAAE,WAAW,CAAC;IAG/B,KAAK,EAAE,sBAAsB,CAAC;IAG9B,SAAS,UAAS;IAGlB,QAAQ,UAAS;IAGjB,YAAY,UAAS;IAGrB,WAAW,EAAE,gBAAgB,CAAS;IAGtC,cAAc,UAAS;IAGvB,eAAe,EAAE,gBAAgB,CAAC;IAGlC,cAAc,EAAE,cAAc,CAAC;IAE/B,aAAa,yDAA8D;IAE3E,OAAO,CAAC,mBAAmB,CAAe;IAC1C,IAAI,kBAAkB,iBAAsC;IAE5D,OAAO,CAAC,UAAU,CAAU;IAC5B,IAAI,SAAS,YAA6B;IAE1C,OAAO,CAAC,SAAS,CAAK;IAEtB,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,6BAA6B,KAAK,OAAO,GAAC,IAAI;IAUzG,UAAU;IAKV,UAAU;IAEV,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IAkB1C,qBAAqB;IAQ3B,eAAe;IAOf,mBAAmB,GAAI,gBAAgB,MAAM,mCAqD3C;IAEF,qBAAqB,GAAI,gBAAgB,MAAM,uBAY7C;IAEF,8BAA8B,GAAI,IAAI,WAAW,+CAgB9C;IAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"tabSplitContainer.d.ts","sourceRoot":"","sources":["../../src/components/tabSplitContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAO,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAe,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5H,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,KAAK,6BAA6B,GAAG,YAAY,GAAG;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,iBAAiB,CAAA;CAClC,CAAC;AAEF,qBAEa,iBAAkB,SAAQ,UAAW,YAAW,MAAM;IAElE,MAAM,CAAC,MAAM,0BAQX;IAGF,iBAAiB,EAAE,WAAW,CAAC;IAG/B,KAAK,EAAE,sBAAsB,CAAC;IAG9B,SAAS,UAAS;IAGlB,QAAQ,UAAS;IAGjB,YAAY,UAAS;IAGrB,WAAW,EAAE,gBAAgB,CAAS;IAGtC,cAAc,UAAS;IAGvB,eAAe,EAAE,gBAAgB,CAAC;IAGlC,cAAc,EAAE,cAAc,CAAC;IAE/B,aAAa,yDAA8D;IAE3E,OAAO,CAAC,mBAAmB,CAAe;IAC1C,IAAI,kBAAkB,iBAAsC;IAE5D,OAAO,CAAC,UAAU,CAAU;IAC5B,IAAI,SAAS,YAA6B;IAE1C,OAAO,CAAC,SAAS,CAAK;IAEtB,IAAI,CAAC,EAAE,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,6BAA6B,KAAK,OAAO,GAAC,IAAI;IAUzG,UAAU;IAKV,UAAU;IAEV,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IAkB1C,qBAAqB;IAQ3B,eAAe;IAOf,mBAAmB,GAAI,gBAAgB,MAAM,mCAqD3C;IAEF,qBAAqB,GAAI,gBAAgB,MAAM,uBAY7C;IAEF,8BAA8B,GAAI,IAAI,WAAW,+CAgB9C;IAEH,OAAO,GAAU,GAAG,SAAS,mBA4D5B;IAED,QAAQ,CAAC,EAAE,EAAE,WAAW;IAIxB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,SAAI;IAwBtC,MAAM,kDAOC;IAEP,MAAM;CAIN"}
|
|
@@ -102,7 +102,7 @@ let TabSplitContainer = TabSplitContainer_1 = class TabSplitContainer extends Li
|
|
|
102
102
|
reject();
|
|
103
103
|
}
|
|
104
104
|
});
|
|
105
|
-
this._onDrop = (e) => {
|
|
105
|
+
this._onDrop = async (e) => {
|
|
106
106
|
if (!TabContainer.dragParent && !Tabs.dragParent)
|
|
107
107
|
return;
|
|
108
108
|
if (TabContainer.dragParent.topLevelComponent != this.topLevelComponent && Tabs.dragParent.topLevelComponent != this.topLevelComponent)
|
|
@@ -119,7 +119,7 @@ let TabSplitContainer = TabSplitContainer_1 = class TabSplitContainer extends Li
|
|
|
119
119
|
tabContainer1.parentContainer.splitContainer.requestUpdate();
|
|
120
120
|
return;
|
|
121
121
|
}
|
|
122
|
-
const tab = tabContainer1.tabs.removeTab(Tabs.dragIndex, false);
|
|
122
|
+
const tab = await tabContainer1.tabs.removeTab(Tabs.dragIndex, false);
|
|
123
123
|
const dropOrientation = TabContainer.dropPosition
|
|
124
124
|
? ['left', 'right'].includes(TabContainer.dropPosition) ? 'horizontal' : 'vertical'
|
|
125
125
|
: null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabSplitContainer.js","sourceRoot":"","sources":["../../src/components/tabSplitContainer.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css } from \"lit\";\nimport { customElement, property, query } from \"lit/decorators.js\";\nimport { TabItem } from '../types';\nimport { dom, ComponentFactory, SplitContainer, Layout, ComponentId, Orientation, VerticalPosition } from \"@omegagrid/core\";\nimport { TabContainer } from \"./tabContainer\";\nimport { TabEvent, Tabs } from \"./tabs\";\nimport { TabSplitContainerModel } from \"../model\";\n\ntype TabSplitContainerTabContainer = TabContainer & {\n\tindex: number,\n\tparentContainer: TabSplitContainer\n};\n\n@customElement('og-tabsplitcontainer')\n// @stylable({vars: ['tab-*']})\nexport class TabSplitContainer extends LitElement implements Layout {\n\n\tstatic styles = css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\tog-splitcontainer {\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\t@property({type: Object})\n\ttopLevelComponent: HTMLElement;\n\n\t@property({type: Object})\n\tmodel: TabSplitContainerModel;\n\n\t@property({type: Boolean})\n\taddButton = false;\n\n\t@property({type: Boolean})\n\tclosable = false;\n\n\t@property({type: Boolean})\n\tsingleActive = false;\n\t\n\t@property({type: String, reflect: true})\n\ttabPosition: VerticalPosition = 'top';\n\n\t@property({type: Boolean})\n\tscrollableTabs = false;\n\n\t@property({type: Object})\n\tcreateComponent: ComponentFactory;\n\n\t@query('og-splitcontainer')\n\tsplitContainer: SplitContainer;\n\n\ttabContainers = new Set<TabSplitContainerTabContainer|TabSplitContainer>();\n\t\n\tprivate _activeTabContainer: TabContainer;\n\tget activeTabContainer() { return this._activeTabContainer }\n\t\n\tprivate _activeTab: TabItem;\n\tget activeTab() { return this._activeTab }\n\n\tprivate loadState = 0;\n\n\twalk(cb: (splitContainer: TabSplitContainer, tabContainer: TabSplitContainerTabContainer) => boolean|void) {\n\t\tthis.tabContainers.forEach(container => {\n\t\t\tif (container instanceof TabSplitContainer) container.walk(cb);\n\t\t\telse {\n\t\t\t\tconst res = cb(this, container);\n\t\t\t\tif (res === false) return;\n\t\t\t}\n\t\t});\n\t}\n\t\n\twillUpdate() {\n\t\tif (!this.topLevelComponent) this.topLevelComponent = this;\n\t\tif (this.model && !this.model.orientation) this.model.orientation = 'horizontal';\n\t}\n\n\tupdateTabs() { this.tabContainers.forEach(tabContainer => tabContainer.updateTabs()) }\n\n\tupdateTab(id: ComponentId, tab: Partial<TabItem>) {\n\t\tthis.walk((_splitContainer, tabContainer) => {\n\t\t\tconst tabIndex = tabContainer.items.findIndex(item => item.id == id);\n\t\t\tconst currentTab = tabContainer.tabs.items[tabIndex];\n\t\t\tif (currentTab) {\n\t\t\t\tObject.assign(currentTab, tab);\n\t\t\t\tif (tabContainer.selectedIndex == tabIndex && id != tab.id) {\n\t\t\t\t\t// component is visible and id has changed\n\t\t\t\t\tthis.updateTabs();\n\t\t\t\t\ttabContainer.loadComponent(currentTab.id);\n\t\t\t\t\ttabContainer.components.delete(id);\n\t\t\t\t\tthis.updateActiveTab();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync removeEmptyContainers() {\n\t\tif (this.model.clean()) {\n\t\t\tthis.requestUpdate();\n\t\t\tawait this.updateComplete;\n\t\t\tthis.layout();\n\t\t}\n\t}\n\n\tupdateActiveTab() {\n\t\tif (!this.singleActive) return;\n\t\t(this.topLevelComponent as TabSplitContainer).walk((_splitContainer, tabContainer) => {\n\t\t\ttabContainer.inactive = tabContainer != this.activeTabContainer;\n\t\t});\n\t}\n\n\t_createTabContainer = (containerIndex: number) => {\n\t\tconst component = dom.createElement<TabSplitContainerTabContainer>('og-tabcontainer');\n\t\tcomponent.draggableTabs = true;\n\t\tcomponent.inactive = this.singleActive;\n\t\tcomponent.index = containerIndex;\n\t\tcomponent.parentContainer = this;\n\t\tcomponent.tabPosition = this.tabPosition;\n\t\tthis.model.items = this.model.items ?? [];\n\t\tcomponent.closable = this.closable;\n\t\tcomponent.addButton = this.addButton;\n\t\tcomponent.scrollableTabs = this.scrollableTabs;\n\t\tcomponent.style.height = '100%';\n\t\tconst item = this.model.items[containerIndex];\n\t\tcomponent.items = item?.tabs ?? [];\n\t\tcomponent.selectedIndex = item.selectedIndex;\n\t\tcomponent.topLevelComponent = this.topLevelComponent;\n\t\t\n\t\t//component.actions = [{key: 'split', icon: 'table-columns'}];\n\n\t\t// component.addEventListener('tabs.action.split', (e) => {\n\t\t// \te.stopPropagation();\n\t\t// \tconst newItem: TabSplitContainerItem = {size: null, tabs: []};\n\t\t// \tthis.model.items.splice(containerIndex + 1, 0, newItem);\n\t\t// \tthis.model.items.forEach(item => item.size = null);\n\t\t// \tthis.requestUpdate();\n\t\t// });\n\n\t\tcomponent.addEventListener('tab.remove', () => {\n\t\t\tif (component.tabs.items.length == 0) {\n\t\t\t\tif (this.model.items.length > 1) this.model.items.splice(containerIndex, 1);\n\t\t\t\tthis.model.items.forEach(item => item.size = null);\n\t\t\t\tthis.requestUpdate();\n\t\t\t}\n\t\t\tthis.removeEmptyContainers();\n\t\t});\n\n\t\tcomponent.addEventListener('tab.move', () => {\n\t\t\tthis.removeEmptyContainers();\n\t\t});\n\n\t\tcomponent.addEventListener('tab.select', (e: TabEvent) => {\n\t\t\tif (e.tabs.topLevelComponent == this.topLevelComponent && item) {\n\t\t\t\titem.selectedIndex = e.tabs.selectedIndex;\n\t\t\t\tif (this.singleActive) {\n\t\t\t\t\tthis._activeTabContainer = component;\n\t\t\t\t\tthis._activeTab = e.tab;\n\t\t\t\t\tthis.updateActiveTab();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tcomponent.createComponent = this.createComponent;\n\t\treturn component;\n\t};\n\n\t_createSplitContainer = (containerIndex: number) => {\n\t\tconst component = dom.createElement<TabSplitContainer>('og-tabsplitcontainer');\n\t\tcomponent.style.height = '100%';\n\t\tcomponent.addButton = this.addButton;\n\t\tcomponent.scrollableTabs = this.scrollableTabs;\n\t\tcomponent.tabPosition = this.tabPosition;\n\t\tcomponent.model = this.model.items[containerIndex].container as TabSplitContainerModel;\n\t\tcomponent.createComponent = this.createComponent;\n\t\tcomponent.topLevelComponent = this.topLevelComponent;\n\t\tcomponent.closable = this.closable;\n\t\tcomponent.singleActive = this.singleActive;\n\t\treturn component;\n\t};\n\t\n\t_createSplitContainerComponent = (id: ComponentId) => new Promise<TabContainer|TabSplitContainer>((resolve, reject) => {\n\t\tconst containerIndex = id as number;\n\t\tconst container = this.model.items ? this.model.items[containerIndex] : null;\n\t\tif (container) {\n\t\t\tconst containerComponent = container.container\n\t\t\t\t? this._createSplitContainer(containerIndex)\n\t\t\t\t: this._createTabContainer(containerIndex);\n\t\t\tcontainerComponent.addEventListener('load', () => {\n\t\t\t\tthis.loadState++;\n\t\t\t\tif (this.loadState == this.splitContainer.items.length) this.dispatchEvent(new Event('load'));\n\t\t\t});\n\t\t\tthis.tabContainers.add(containerComponent);\n\t\t\tresolve(containerComponent);\n\t\t} else {\n\t\t\treject();\n\t\t}\n\t});\n\n\t_onDrop = (e: DragEvent) => {\n\t\tif (!TabContainer.dragParent && !Tabs.dragParent) return;\n\t\tif (TabContainer.dragParent.topLevelComponent != this.topLevelComponent && Tabs.dragParent.topLevelComponent != this.topLevelComponent) return;\n\t\t\n\t\te.stopImmediatePropagation();\n\t\tconst tabContainer1 = TabContainer.dragParent as TabSplitContainerTabContainer;\n\t\tconst tabContainer2 = TabContainer.dropTarget as TabSplitContainerTabContainer;\n\t\t\n\t\tTabContainer.dragParent = null;\n\t\tTabContainer.dropTarget = null;\n\t\t\n\t\tif (!tabContainer1 || !tabContainer2) {\n\t\t\tif (tabContainer1 && tabContainer1.parentContainer.model.items[tabContainer1.index].tabs.length == 0) {\n\t\t\t\ttabContainer1.parentContainer.model.items.splice(tabContainer1.index, 1);\n\t\t\t}\n\t\t\ttabContainer1.parentContainer.splitContainer.requestUpdate();\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tconst tab = tabContainer1.tabs.removeTab(Tabs.dragIndex, false);\n\t\tconst dropOrientation: Orientation = TabContainer.dropPosition \n\t\t\t? ['left', 'right'].includes(TabContainer.dropPosition) ? 'horizontal' : 'vertical'\n\t\t\t: null;\n\n\t\tconst parentContainer2 = tabContainer2?.parentContainer;\n\t\tif (parentContainer2) {\n\t\t\tif (dropOrientation == null) {\n\t\t\t\tconst item = parentContainer2.model.items[tabContainer2.index];\n\t\t\t\titem.tabs.push(tab);\n\t\t\t} else if (dropOrientation == parentContainer2.model.orientation) {\n\t\t\t\tparentContainer2.model.items.splice(\n\t\t\t\t\ttabContainer2.index + (['right', 'bottom'].includes(TabContainer.dropPosition) ? 1 : 0), 0, {tabs: [tab]}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst item = parentContainer2.model.items[tabContainer2.index];\n\t\t\t\titem.container = new TabSplitContainerModel({\n\t\t\t\t\torientation: dropOrientation,\n\t\t\t\t\titems: [{\n\t\t\t\t\t\ttabs: item.tabs\n\t\t\t\t\t}, {\n\t\t\t\t\t\ttabs: [tab]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t}\n\t\t\tparentContainer2.splitContainer.resetContainerSizes();\n\t\t\tparentContainer2.splitContainer.items = parentContainer2.model.items;\n\t\t\t// parentContainer2.splitContainer.requestUpdate();\n\t\t}\n\n\t\tconst parentContainer1 = tabContainer1?.parentContainer;\n\t\tif (parentContainer1) {\n\t\t\tfor (let i = parentContainer1.model.items.length - 1; i >= 0; i--) {\n\t\t\t\tconst item = parentContainer1.model.items[i];\n\t\t\t\tif ((!item.tabs || item.tabs.length == 0) && !item.container) {\n\t\t\t\t\tparentContainer1.model.items.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentContainer1.splitContainer.resetContainerSizes();\n\t\t\tparentContainer1.splitContainer.requestUpdate();\n\t\t}\n\t}\n\n\tactivate(id: ComponentId) {\n\t\tthis.open({ id });\n\t}\n\n\topen(item: TabItem, containerIndex = 0) {\n\t\tlet container = this.splitContainer.getContainerComponent(containerIndex) as TabSplitContainerTabContainer;\n\t\tlet model = this.model;\n\n\t\t// prevent opening the same tab twice\n\t\tthis.walk((splitContainer, tabContainer) => {\n\t\t\tfor (let i = 0; i < tabContainer.items.length; i++) {\n\t\t\t\tconst tabItem = tabContainer.items[i];\n\t\t\t\tif (tabItem.id == item.id) {\n\t\t\t\t\tcontainer = tabContainer;\n\t\t\t\t\tmodel = splitContainer.model;\n\t\t\t\t\tcontainer.selectedIndex = i;\n\t\t\t\t\tcontainerIndex = container.index;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tcontainer.open(item);\n\t\tif (model.items[containerIndex]) {\n\t\t\tmodel.items[containerIndex].tabs = container.items;\n\t\t}\n\t}\n\n\trender = () => this.model ? html`\n\t\t<og-splitcontainer\n\t\t\torientation=${this.model?.orientation}\n\t\t\t.items=\"${this.model.items ?? []}\"\n\t\t\t.createComponent=\"${this._createSplitContainerComponent}\"\n\t\t\t@drop=\"${this._onDrop}\">\n\t\t</og-splitcontainer>\n\t` : '';\n\n\tlayout() {\n\t\tthis.splitContainer?.layout();\n\t}\n\n}"]}
|
|
1
|
+
{"version":3,"file":"tabSplitContainer.js","sourceRoot":"","sources":["../../src/components/tabSplitContainer.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css } from \"lit\";\nimport { customElement, property, query } from \"lit/decorators.js\";\nimport { TabItem } from '../types';\nimport { dom, ComponentFactory, SplitContainer, Layout, ComponentId, Orientation, VerticalPosition } from \"@omegagrid/core\";\nimport { TabContainer } from \"./tabContainer\";\nimport { TabEvent, Tabs } from \"./tabs\";\nimport { TabSplitContainerModel } from \"../model\";\n\ntype TabSplitContainerTabContainer = TabContainer & {\n\tindex: number,\n\tparentContainer: TabSplitContainer\n};\n\n@customElement('og-tabsplitcontainer')\n// @stylable({vars: ['tab-*']})\nexport class TabSplitContainer extends LitElement implements Layout {\n\n\tstatic styles = css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\tog-splitcontainer {\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\t@property({type: Object})\n\ttopLevelComponent: HTMLElement;\n\n\t@property({type: Object})\n\tmodel: TabSplitContainerModel;\n\n\t@property({type: Boolean})\n\taddButton = false;\n\n\t@property({type: Boolean})\n\tclosable = false;\n\n\t@property({type: Boolean})\n\tsingleActive = false;\n\t\n\t@property({type: String, reflect: true})\n\ttabPosition: VerticalPosition = 'top';\n\n\t@property({type: Boolean})\n\tscrollableTabs = false;\n\n\t@property({type: Object})\n\tcreateComponent: ComponentFactory;\n\n\t@query('og-splitcontainer')\n\tsplitContainer: SplitContainer;\n\n\ttabContainers = new Set<TabSplitContainerTabContainer|TabSplitContainer>();\n\t\n\tprivate _activeTabContainer: TabContainer;\n\tget activeTabContainer() { return this._activeTabContainer }\n\t\n\tprivate _activeTab: TabItem;\n\tget activeTab() { return this._activeTab }\n\n\tprivate loadState = 0;\n\n\twalk(cb: (splitContainer: TabSplitContainer, tabContainer: TabSplitContainerTabContainer) => boolean|void) {\n\t\tthis.tabContainers.forEach(container => {\n\t\t\tif (container instanceof TabSplitContainer) container.walk(cb);\n\t\t\telse {\n\t\t\t\tconst res = cb(this, container);\n\t\t\t\tif (res === false) return;\n\t\t\t}\n\t\t});\n\t}\n\t\n\twillUpdate() {\n\t\tif (!this.topLevelComponent) this.topLevelComponent = this;\n\t\tif (this.model && !this.model.orientation) this.model.orientation = 'horizontal';\n\t}\n\n\tupdateTabs() { this.tabContainers.forEach(tabContainer => tabContainer.updateTabs()) }\n\n\tupdateTab(id: ComponentId, tab: Partial<TabItem>) {\n\t\tthis.walk((_splitContainer, tabContainer) => {\n\t\t\tconst tabIndex = tabContainer.items.findIndex(item => item.id == id);\n\t\t\tconst currentTab = tabContainer.tabs.items[tabIndex];\n\t\t\tif (currentTab) {\n\t\t\t\tObject.assign(currentTab, tab);\n\t\t\t\tif (tabContainer.selectedIndex == tabIndex && id != tab.id) {\n\t\t\t\t\t// component is visible and id has changed\n\t\t\t\t\tthis.updateTabs();\n\t\t\t\t\ttabContainer.loadComponent(currentTab.id);\n\t\t\t\t\ttabContainer.components.delete(id);\n\t\t\t\t\tthis.updateActiveTab();\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync removeEmptyContainers() {\n\t\tif (this.model.clean()) {\n\t\t\tthis.requestUpdate();\n\t\t\tawait this.updateComplete;\n\t\t\tthis.layout();\n\t\t}\n\t}\n\n\tupdateActiveTab() {\n\t\tif (!this.singleActive) return;\n\t\t(this.topLevelComponent as TabSplitContainer).walk((_splitContainer, tabContainer) => {\n\t\t\ttabContainer.inactive = tabContainer != this.activeTabContainer;\n\t\t});\n\t}\n\n\t_createTabContainer = (containerIndex: number) => {\n\t\tconst component = dom.createElement<TabSplitContainerTabContainer>('og-tabcontainer');\n\t\tcomponent.draggableTabs = true;\n\t\tcomponent.inactive = this.singleActive;\n\t\tcomponent.index = containerIndex;\n\t\tcomponent.parentContainer = this;\n\t\tcomponent.tabPosition = this.tabPosition;\n\t\tthis.model.items = this.model.items ?? [];\n\t\tcomponent.closable = this.closable;\n\t\tcomponent.addButton = this.addButton;\n\t\tcomponent.scrollableTabs = this.scrollableTabs;\n\t\tcomponent.style.height = '100%';\n\t\tconst item = this.model.items[containerIndex];\n\t\tcomponent.items = item?.tabs ?? [];\n\t\tcomponent.selectedIndex = item.selectedIndex;\n\t\tcomponent.topLevelComponent = this.topLevelComponent;\n\t\t\n\t\t//component.actions = [{key: 'split', icon: 'table-columns'}];\n\n\t\t// component.addEventListener('tabs.action.split', (e) => {\n\t\t// \te.stopPropagation();\n\t\t// \tconst newItem: TabSplitContainerItem = {size: null, tabs: []};\n\t\t// \tthis.model.items.splice(containerIndex + 1, 0, newItem);\n\t\t// \tthis.model.items.forEach(item => item.size = null);\n\t\t// \tthis.requestUpdate();\n\t\t// });\n\n\t\tcomponent.addEventListener('tab.remove', () => {\n\t\t\tif (component.tabs.items.length == 0) {\n\t\t\t\tif (this.model.items.length > 1) this.model.items.splice(containerIndex, 1);\n\t\t\t\tthis.model.items.forEach(item => item.size = null);\n\t\t\t\tthis.requestUpdate();\n\t\t\t}\n\t\t\tthis.removeEmptyContainers();\n\t\t});\n\n\t\tcomponent.addEventListener('tab.move', () => {\n\t\t\tthis.removeEmptyContainers();\n\t\t});\n\n\t\tcomponent.addEventListener('tab.select', (e: TabEvent) => {\n\t\t\tif (e.tabs.topLevelComponent == this.topLevelComponent && item) {\n\t\t\t\titem.selectedIndex = e.tabs.selectedIndex;\n\t\t\t\tif (this.singleActive) {\n\t\t\t\t\tthis._activeTabContainer = component;\n\t\t\t\t\tthis._activeTab = e.tab;\n\t\t\t\t\tthis.updateActiveTab();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tcomponent.createComponent = this.createComponent;\n\t\treturn component;\n\t};\n\n\t_createSplitContainer = (containerIndex: number) => {\n\t\tconst component = dom.createElement<TabSplitContainer>('og-tabsplitcontainer');\n\t\tcomponent.style.height = '100%';\n\t\tcomponent.addButton = this.addButton;\n\t\tcomponent.scrollableTabs = this.scrollableTabs;\n\t\tcomponent.tabPosition = this.tabPosition;\n\t\tcomponent.model = this.model.items[containerIndex].container as TabSplitContainerModel;\n\t\tcomponent.createComponent = this.createComponent;\n\t\tcomponent.topLevelComponent = this.topLevelComponent;\n\t\tcomponent.closable = this.closable;\n\t\tcomponent.singleActive = this.singleActive;\n\t\treturn component;\n\t};\n\t\n\t_createSplitContainerComponent = (id: ComponentId) => new Promise<TabContainer|TabSplitContainer>((resolve, reject) => {\n\t\tconst containerIndex = id as number;\n\t\tconst container = this.model.items ? this.model.items[containerIndex] : null;\n\t\tif (container) {\n\t\t\tconst containerComponent = container.container\n\t\t\t\t? this._createSplitContainer(containerIndex)\n\t\t\t\t: this._createTabContainer(containerIndex);\n\t\t\tcontainerComponent.addEventListener('load', () => {\n\t\t\t\tthis.loadState++;\n\t\t\t\tif (this.loadState == this.splitContainer.items.length) this.dispatchEvent(new Event('load'));\n\t\t\t});\n\t\t\tthis.tabContainers.add(containerComponent);\n\t\t\tresolve(containerComponent);\n\t\t} else {\n\t\t\treject();\n\t\t}\n\t});\n\n\t_onDrop = async (e: DragEvent) => {\n\t\tif (!TabContainer.dragParent && !Tabs.dragParent) return;\n\t\tif (TabContainer.dragParent.topLevelComponent != this.topLevelComponent && Tabs.dragParent.topLevelComponent != this.topLevelComponent) return;\n\t\t\n\t\te.stopImmediatePropagation();\n\t\tconst tabContainer1 = TabContainer.dragParent as TabSplitContainerTabContainer;\n\t\tconst tabContainer2 = TabContainer.dropTarget as TabSplitContainerTabContainer;\n\t\t\n\t\tTabContainer.dragParent = null;\n\t\tTabContainer.dropTarget = null;\n\t\t\n\t\tif (!tabContainer1 || !tabContainer2) {\n\t\t\tif (tabContainer1 && tabContainer1.parentContainer.model.items[tabContainer1.index].tabs.length == 0) {\n\t\t\t\ttabContainer1.parentContainer.model.items.splice(tabContainer1.index, 1);\n\t\t\t}\n\t\t\ttabContainer1.parentContainer.splitContainer.requestUpdate();\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tconst tab = await tabContainer1.tabs.removeTab(Tabs.dragIndex, false);\n\t\tconst dropOrientation: Orientation = TabContainer.dropPosition \n\t\t\t? ['left', 'right'].includes(TabContainer.dropPosition) ? 'horizontal' : 'vertical'\n\t\t\t: null;\n\n\t\tconst parentContainer2 = tabContainer2?.parentContainer;\n\t\tif (parentContainer2) {\n\t\t\tif (dropOrientation == null) {\n\t\t\t\tconst item = parentContainer2.model.items[tabContainer2.index];\n\t\t\t\titem.tabs.push(tab);\n\t\t\t} else if (dropOrientation == parentContainer2.model.orientation) {\n\t\t\t\tparentContainer2.model.items.splice(\n\t\t\t\t\ttabContainer2.index + (['right', 'bottom'].includes(TabContainer.dropPosition) ? 1 : 0), 0, {tabs: [tab]}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst item = parentContainer2.model.items[tabContainer2.index];\n\t\t\t\titem.container = new TabSplitContainerModel({\n\t\t\t\t\torientation: dropOrientation,\n\t\t\t\t\titems: [{\n\t\t\t\t\t\ttabs: item.tabs\n\t\t\t\t\t}, {\n\t\t\t\t\t\ttabs: [tab]\n\t\t\t\t\t}]\n\t\t\t\t});\n\t\t\t}\n\t\t\tparentContainer2.splitContainer.resetContainerSizes();\n\t\t\tparentContainer2.splitContainer.items = parentContainer2.model.items;\n\t\t\t// parentContainer2.splitContainer.requestUpdate();\n\t\t}\n\n\t\tconst parentContainer1 = tabContainer1?.parentContainer;\n\t\tif (parentContainer1) {\n\t\t\tfor (let i = parentContainer1.model.items.length - 1; i >= 0; i--) {\n\t\t\t\tconst item = parentContainer1.model.items[i];\n\t\t\t\tif ((!item.tabs || item.tabs.length == 0) && !item.container) {\n\t\t\t\t\tparentContainer1.model.items.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentContainer1.splitContainer.resetContainerSizes();\n\t\t\tparentContainer1.splitContainer.requestUpdate();\n\t\t}\n\t}\n\n\tactivate(id: ComponentId) {\n\t\tthis.open({ id });\n\t}\n\n\topen(item: TabItem, containerIndex = 0) {\n\t\tlet container = this.splitContainer.getContainerComponent(containerIndex) as TabSplitContainerTabContainer;\n\t\tlet model = this.model;\n\n\t\t// prevent opening the same tab twice\n\t\tthis.walk((splitContainer, tabContainer) => {\n\t\t\tfor (let i = 0; i < tabContainer.items.length; i++) {\n\t\t\t\tconst tabItem = tabContainer.items[i];\n\t\t\t\tif (tabItem.id == item.id) {\n\t\t\t\t\tcontainer = tabContainer;\n\t\t\t\t\tmodel = splitContainer.model;\n\t\t\t\t\tcontainer.selectedIndex = i;\n\t\t\t\t\tcontainerIndex = container.index;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tcontainer.open(item);\n\t\tif (model.items[containerIndex]) {\n\t\t\tmodel.items[containerIndex].tabs = container.items;\n\t\t}\n\t}\n\n\trender = () => this.model ? html`\n\t\t<og-splitcontainer\n\t\t\torientation=${this.model?.orientation}\n\t\t\t.items=\"${this.model.items ?? []}\"\n\t\t\t.createComponent=\"${this._createSplitContainerComponent}\"\n\t\t\t@drop=\"${this._onDrop}\">\n\t\t</og-splitcontainer>\n\t` : '';\n\n\tlayout() {\n\t\tthis.splitContainer?.layout();\n\t}\n\n}"]}
|
|
@@ -9,6 +9,11 @@ export declare class TabEvent extends Event {
|
|
|
9
9
|
uiEvent: UIEvent;
|
|
10
10
|
constructor(type: string, args: Partial<TabEvent>);
|
|
11
11
|
}
|
|
12
|
+
export declare class TabCloseEvent extends TabEvent {
|
|
13
|
+
resolveClose: () => void;
|
|
14
|
+
rejectClose: () => void;
|
|
15
|
+
constructor(type: string, args: Partial<TabCloseEvent>);
|
|
16
|
+
}
|
|
12
17
|
export type TabSize = 'auto' | 'stretch' | string | number;
|
|
13
18
|
export declare class Tabs extends LitElement {
|
|
14
19
|
static styles: import("lit").CSSResult[];
|
|
@@ -47,13 +52,14 @@ export declare class Tabs extends LitElement {
|
|
|
47
52
|
getIndexById(id: ComponentId): number;
|
|
48
53
|
selectTabById(id: ComponentId, dispatchEvent?: boolean): void;
|
|
49
54
|
addTab(item: TabItem, index?: number): void;
|
|
50
|
-
|
|
55
|
+
removeTabById(id: ComponentId, dispatchEvent?: boolean): Promise<void>;
|
|
56
|
+
removeTab(index: number, dispatchEvent?: boolean): Promise<TabItem>;
|
|
51
57
|
_onDragover(e: DragEvent, index: number): void;
|
|
52
58
|
_onDragStart(_e: DragEvent, index: number): void;
|
|
53
59
|
_onDragStop(): void;
|
|
54
60
|
_onDrop(): void;
|
|
55
61
|
moveTab(fromIndex: number, toIndex: number, dispatchEvent?: boolean): void;
|
|
56
|
-
_onMenuItemSelect(e: ListSelectEvent)
|
|
62
|
+
_onMenuItemSelect: (e: ListSelectEvent) => Promise<void>;
|
|
57
63
|
_onCrossClick(e: MouseEvent, index: number): void;
|
|
58
64
|
_onContextMenu(e: MouseEvent, index: number): void;
|
|
59
65
|
_onActionClick(action: actions.Action): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAO,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAY,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEnI,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI9C,qBAAa,QAAS,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.ts"],"names":[],"mappings":"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"}
|
package/dist/components/tabs.js
CHANGED
|
@@ -20,6 +20,11 @@ export class TabEvent extends Event {
|
|
|
20
20
|
Object.assign(this, args);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
+
export class TabCloseEvent extends TabEvent {
|
|
24
|
+
constructor(type, args) {
|
|
25
|
+
super(type, args);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
23
28
|
const closeMenuItems = [
|
|
24
29
|
{ key: 'close', value: "Close", icon: "xmark" },
|
|
25
30
|
{ key: 'close_others', value: "Close Others", icon: "xmark" },
|
|
@@ -42,6 +47,37 @@ let Tabs = Tabs_1 = class Tabs extends LitElement {
|
|
|
42
47
|
this._contextMenuTabIndex = -1;
|
|
43
48
|
this._contextMenuItems = [];
|
|
44
49
|
this.hideOverlay = () => dom.hideElement(this.overlay);
|
|
50
|
+
this._onMenuItemSelect = async (e) => {
|
|
51
|
+
const key = this._contextMenuItems[e.index].key;
|
|
52
|
+
if (key == 'close') {
|
|
53
|
+
this.removeTab(this._contextMenuTabIndex, true);
|
|
54
|
+
if (this.selectedIndex >= this.items.length)
|
|
55
|
+
this.selectTab(Math.max(this.items.length - 1, 0), true);
|
|
56
|
+
}
|
|
57
|
+
else if (key == 'close_all') {
|
|
58
|
+
const ids = new Set(this.items.map(item => item.id));
|
|
59
|
+
for (const id of ids)
|
|
60
|
+
await this.removeTabById(id, true);
|
|
61
|
+
}
|
|
62
|
+
else if (key == 'close_others') {
|
|
63
|
+
const ids = new Set(this.items.filter((_, i) => i != this._contextMenuTabIndex).map(item => item.id));
|
|
64
|
+
for (const id of ids)
|
|
65
|
+
await this.removeTabById(id, true);
|
|
66
|
+
this.selectTab(0, true);
|
|
67
|
+
}
|
|
68
|
+
else if (key == 'close_right') {
|
|
69
|
+
const ids = new Set(this.items.filter((_, i) => i > this._contextMenuTabIndex).map(item => item.id));
|
|
70
|
+
for (const id of ids)
|
|
71
|
+
await this.removeTabById(id, true);
|
|
72
|
+
if (this.selectedIndex >= this.items.length)
|
|
73
|
+
this.selectTab(Math.max(this.items.length - 1, 0), true);
|
|
74
|
+
}
|
|
75
|
+
else if (key == 'close_saved') {
|
|
76
|
+
const ids = new Set(this.items.filter(item => !item.unsaved).map(item => item.id));
|
|
77
|
+
for (const id of ids)
|
|
78
|
+
await this.removeTabById(id, true);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
45
81
|
this.getTabSize = (index) => {
|
|
46
82
|
const size = this.items[index]?.size ?? this.tabSize;
|
|
47
83
|
if (size === 'stretch')
|
|
@@ -133,7 +169,7 @@ let Tabs = Tabs_1 = class Tabs extends LitElement {
|
|
|
133
169
|
|
|
134
170
|
<og-menu ${ref(this.menuRef)}
|
|
135
171
|
style="display: none; z-index: 2000"
|
|
136
|
-
@select=${
|
|
172
|
+
@select=${this._onMenuItemSelect}>
|
|
137
173
|
</og-menu>
|
|
138
174
|
`;
|
|
139
175
|
}
|
|
@@ -184,21 +220,36 @@ let Tabs = Tabs_1 = class Tabs extends LitElement {
|
|
|
184
220
|
this.items.splice(index, 0, item);
|
|
185
221
|
this.requestUpdate();
|
|
186
222
|
}
|
|
187
|
-
|
|
223
|
+
async removeTabById(id, dispatchEvent = false) {
|
|
224
|
+
const index = this.getIndexById(id);
|
|
225
|
+
if (index > -1)
|
|
226
|
+
await this.removeTab(index, dispatchEvent);
|
|
227
|
+
}
|
|
228
|
+
async removeTab(index, dispatchEvent = false) {
|
|
188
229
|
this.hideOverlay();
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
230
|
+
return new Promise((resolve, reject) => {
|
|
231
|
+
const resolveClose = () => {
|
|
232
|
+
const [deletedItem] = this.items.splice(index, 1);
|
|
233
|
+
if (dispatchEvent)
|
|
234
|
+
this.dispatchEvent(new TabEvent('remove', { tab: deletedItem, tabs: this, index }));
|
|
235
|
+
if (this.selectedIndex >= this.items.length) {
|
|
236
|
+
this.selectTab(this.items.length - 1, true);
|
|
237
|
+
}
|
|
238
|
+
else if (this.selectedIndex == index) {
|
|
239
|
+
this.selectTab(0, true);
|
|
240
|
+
}
|
|
241
|
+
this.requestUpdate();
|
|
242
|
+
resolve(deletedItem);
|
|
243
|
+
};
|
|
244
|
+
const preventClose = this.dispatchEvent(new TabCloseEvent('beforeRemove', {
|
|
245
|
+
tab: this.items[index],
|
|
246
|
+
tabs: this, index,
|
|
247
|
+
resolveClose: resolveClose,
|
|
248
|
+
rejectClose: () => reject()
|
|
249
|
+
}));
|
|
250
|
+
if (preventClose !== false)
|
|
251
|
+
resolveClose();
|
|
252
|
+
});
|
|
202
253
|
}
|
|
203
254
|
_onDragover(e, index) {
|
|
204
255
|
if (!Tabs_1.dragParent)
|
|
@@ -245,37 +296,6 @@ let Tabs = Tabs_1 = class Tabs extends LitElement {
|
|
|
245
296
|
if (dispatchEvent)
|
|
246
297
|
this.dispatchEvent(new TabEvent('move', { tab: movedItem, tabs: this }));
|
|
247
298
|
}
|
|
248
|
-
_onMenuItemSelect(e) {
|
|
249
|
-
const key = this._contextMenuItems[e.index].key;
|
|
250
|
-
if (key == 'close') {
|
|
251
|
-
this.removeTab(this._contextMenuTabIndex, true);
|
|
252
|
-
if (this.selectedIndex >= this.items.length)
|
|
253
|
-
this.selectTab(Math.max(this.items.length - 1, 0), true);
|
|
254
|
-
}
|
|
255
|
-
else if (key == 'close_all') {
|
|
256
|
-
while (this.items.length > 0)
|
|
257
|
-
this.removeTab(0, true);
|
|
258
|
-
}
|
|
259
|
-
else if (key == 'close_others') {
|
|
260
|
-
for (let i = this.items.length - 1; i >= 0; i--) {
|
|
261
|
-
if (i != this._contextMenuTabIndex)
|
|
262
|
-
this.removeTab(i, true);
|
|
263
|
-
}
|
|
264
|
-
this.selectTab(0, true);
|
|
265
|
-
}
|
|
266
|
-
else if (key == 'close_right') {
|
|
267
|
-
while (this.items.length > this._contextMenuTabIndex + 1)
|
|
268
|
-
this.removeTab(this._contextMenuTabIndex + 1, true);
|
|
269
|
-
if (this.selectedIndex >= this.items.length)
|
|
270
|
-
this.selectTab(Math.max(this.items.length - 1, 0), true);
|
|
271
|
-
}
|
|
272
|
-
else if (key == 'close_saved') {
|
|
273
|
-
this.items.forEach((item, i) => {
|
|
274
|
-
if (!item.unsaved)
|
|
275
|
-
this.removeTab(i, true);
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
299
|
_onCrossClick(e, index) {
|
|
280
300
|
e.stopPropagation();
|
|
281
301
|
this.removeTab(index, true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from \"lit\";\nimport { customElement, property, query, queryAll } from \"lit/decorators.js\";\nimport { map } from \"lit/directives/map.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { style } from './tabs.style';\nimport { TabItem } from '../types';\nimport { dom, ListSelectEvent, Menu, actions, ComponentId, MenuItem, VerticalPosition, HorizontalPosition } from \"@omegagrid/core\";\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { TabContainer } from \"./tabContainer\";\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { colors } from \"@omegagrid/core\";\n\nexport class TabEvent extends Event {\n\n\tindex: number;\n\ttabs: Tabs;\n\ttab: TabItem;\n\tuiEvent: UIEvent;\n\n\tconstructor(type: string, args: Partial<TabEvent>) {\n\t\tsuper(`tab.${type}`, {composed: true, bubbles: true, cancelable: true});\n\t\tObject.assign(this, args);\n\t}\n}\n\nexport type TabSize = 'auto'|'stretch'|string|number;\ntype CloseType = 'close'|'close_all'|'close_others'|'close_right'|'close_saved';\n\nconst closeMenuItems: {key: CloseType, value: string, icon?: string}[] = [\n\t{key: 'close', value: \"Close\", icon: \"xmark\"},\n\t{key: 'close_others', value: \"Close Others\", icon: \"xmark\"},\n\t{key: 'close_right', value: \"Close to the Right\", icon: \"xmark\"},\n\t{key: 'close_saved', value: \"Close Saved\", icon: \"xmark\"},\n\t{key: 'close_all', value: \"Close All\", icon: \"xmark\"},\n];\n\n@customElement('og-tabs')\nexport class Tabs extends LitElement {\n\n\tstatic styles = [style];\n\n\tstatic dragParent: Tabs;\n\tstatic dragIndex = -1;\n\tstatic dragTarget: Tabs;\n\tstatic dropIndex = -1;\n\n\t@property({type: Object})\n\ttopLevelComponent: HTMLElement;\n\n\t@property({type: Array})\n\titems: TabItem[];\n\n\t@property({type: Boolean})\n\tclosable = false;\n\n\t@property({type: Boolean})\n\tdraggable = false;\n\n\t@property({type: Boolean})\n\tscrollable = false;\n\n\t@property({type: Boolean})\n\taddButton = false;\n\n\t@property({type: Number})\n\tselectedIndex = -1;\n\n\t@property({type: Array})\n\tactions: actions.Action[];\n\n\t@property({type: String, reflect: true})\n\tposition: VerticalPosition = 'top';\n\n\t@property({type: String, reflect: true})\n\ttabSize: TabSize = 'auto';\n\n\t@property({type: String, reflect: true})\n\ttabAlign: HorizontalPosition = 'left';\n\n\t@query('.empty')\n\tempty: HTMLDivElement;\n\n\t@query('.marker')\n\tmarker: HTMLDivElement;\n\n\t@query('.bottom-marker')\n\tbottomMarker: HTMLDivElement;\n\n\t@query('#overlay')\n\toverlay: HTMLDivElement;\n\n\t@queryAll('.tab')\n\ttabs: HTMLDivElement[];\n\n\tparentContainer: TabContainer;\n\n\tmenuRef = createRef<Menu>();\n\n\tget menu() { return this.menuRef.value }\n\n\tprivate _contextMenuTabIndex = -1;\n\tprivate _contextMenuItems: MenuItem[] = [];\n\n\tget selectedItem() { return this.items[this.selectedIndex] }\n\tget selectedTab() { return this.tabs?.[this.selectedIndex] }\n\n\tget container() {\n\t\treturn dom.findParent(this, 'og-tabcontainer') as TabContainer;\n\t}\n\n\tasync updated() {\n\t\tthis._contextMenuItems = [];\n\t\tif (this.closable) this._contextMenuItems = closeMenuItems;\n\t\tif (this.menu) this.menu.items = this._contextMenuItems;\n\t\tthis.animateMarker();\n\n\t\tif (this.container) await this.container.updateComplete;\n\t\tthis.positionBottomMarker();\n\t}\n\n\tpositionOverlay(target?: HTMLElement) {\n\t\tif (!target) return this.hideOverlay();\n\n\t\tconst offset = dom.getElementOffset(target, this);\n\t\tdom.setPosition(this.overlay, {t: offset.top, l: offset.left});\n\t\tdom.setSize(this.overlay, {w: target.offsetWidth, h: target.offsetHeight});\n\t\tdom.showElement(this.overlay);\n\t}\n\n\thideOverlay = () => dom.hideElement(this.overlay);\n\n\tselectTab(index: number, dispatchEvent = false) {\n\t\tthis.selectedIndex = index;\n\t\tif (dispatchEvent) this.dispatchEvent(new TabEvent('select', {\n\t\t\ttab: this.items[index],\n\t\t\ttabs: this,\n\t\t\tindex: index\n\t\t}));\n\t}\n\n\tgetIndexById(id: ComponentId) {\n\t\treturn this.items.findIndex(item => item.id == id);\n\t}\n\n\tselectTabById(id: ComponentId, dispatchEvent = false) {\n\t\tconst index = this.getIndexById(id);\n\t\tif (index > -1) this.selectTab(index, dispatchEvent);\n\t}\n\n\taddTab(item: TabItem, index = this.selectedIndex + 1) {\n\t\tthis.hideOverlay();\n\t\tthis.items.splice(index, 0, item);\n\t\tthis.requestUpdate();\n\t}\n\n\tremoveTab(index: number, dispatchEvent = false) {\n\t\tthis.hideOverlay();\n\t\tif (!this.dispatchEvent(new TabEvent('beforeRemove', {tab: this.items[index], tabs: this, index}))) return;\n\n\t\tconst [deletedItem] = this.items.splice(index, 1);\n\n\t\tif (this.selectedIndex >= this.items.length) {\n\t\t\tthis.selectTab(this.items.length - 1, true);\n\t\t} else if (this.selectedIndex == index) {\n\t\t\tthis.selectTab(0, true);\n\t\t}\n\n\t\tthis.requestUpdate();\n\t\tif (dispatchEvent) this.dispatchEvent(new TabEvent('remove', {tab: deletedItem, tabs: this, index}));\n\t\treturn deletedItem;\n\t}\n\n\t_onDragover(e: DragEvent, index: number) {\n\t\tif (!Tabs.dragParent) return;\n\t\tif (Tabs.dragParent.topLevelComponent != this.topLevelComponent) return;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\te.dataTransfer.dropEffect = 'move';\n\t\tTabs.dropIndex = index;\n\t\tthis.positionOverlay(index >= this.tabs.length ? this.empty : this.tabs[index]);\n\t}\n\n\t_onDragStart(_e: DragEvent, index: number) {\n\t\tif (!this.draggable) return;\n\t\tTabs.dragParent = this;\n\t\tTabs.dragTarget = null;\n\t\tTabs.dragIndex = index;\n\t}\n\n\t_onDragStop() {\n\t\tTabs.dragParent = null;\n\t}\n\n\t_onDrop() {\n\t\tTabs.dragTarget = this;\n\t\tif (Tabs.dragParent == Tabs.dragTarget) {\n\t\t\tthis.moveTab(Tabs.dragIndex, Tabs.dropIndex, true);\n\t\t} else {\n\t\t\tconst tab = Tabs.dragParent.items[Tabs.dragIndex];\n\t\t\tTabs.dragParent.removeTab(Tabs.dragIndex);\n\t\t\tTabs.dragParent.selectTab(Math.min(Tabs.dragParent.items.length - 1, Tabs.dragIndex), true);\n\t\t\tTabs.dragTarget.addTab(tab, Tabs.dropIndex);\n\t\t\tTabs.dragTarget.selectTab(Tabs.dropIndex, true);\n\t\t\tthis.dispatchEvent(new TabEvent('move', {tab: tab, tabs: this}));\n\t\t}\n\t\tTabs.dragParent = null;\n\t}\n\n\tmoveTab(fromIndex: number, toIndex: number, dispatchEvent = false) {\n\t\tif (fromIndex == toIndex) return;\n\t\tconst [movedItem] = this.items.splice(toIndex, 0, this.items.splice(fromIndex, 1)[0]);\n\t\tthis.selectTab(Math.min(toIndex, this.tabs.length - 1), true);\n\t\tthis.requestUpdate();\n\t\tif (dispatchEvent) this.dispatchEvent(new TabEvent('move', {tab: movedItem, tabs: this}));\n\t}\n\n\t_onMenuItemSelect(e: ListSelectEvent) {\n\t\tconst key = this._contextMenuItems[e.index].key;\n\t\tif (key == 'close') {\n\t\t\tthis.removeTab(this._contextMenuTabIndex, true);\n\t\t\tif (this.selectedIndex >= this.items.length)\n\t\t\t\tthis.selectTab(Math.max(this.items.length - 1, 0), true);\n\t\t} else if (key == 'close_all') {\n\t\t\twhile (this.items.length > 0) this.removeTab(0, true);\n\t\t} else if (key == 'close_others') {\n\t\t\tfor (let i = this.items.length - 1; i >= 0; i--) {\n\t\t\t\tif (i != this._contextMenuTabIndex) this.removeTab(i, true);\n\t\t\t}\n\t\t\tthis.selectTab(0, true);\n\t\t} else if (key == 'close_right') {\n\t\t\twhile (this.items.length > this._contextMenuTabIndex + 1)\n\t\t\t\tthis.removeTab(this._contextMenuTabIndex + 1, true);\n\t\t\tif (this.selectedIndex >= this.items.length)\n\t\t\t\tthis.selectTab(Math.max(this.items.length - 1, 0), true);\n\t\t} else if (key == 'close_saved') {\n\t\t\tthis.items.forEach((item, i) => {\n\t\t\t\tif (!item.unsaved) this.removeTab(i, true);\n\t\t\t});\n\t\t}\n\t}\n\n\t_onCrossClick(e: MouseEvent, index: number) {\n\t\te.stopPropagation();\n\t\tthis.removeTab(index, true);\n\t}\n\n\t_onContextMenu(e: MouseEvent, index: number) {\n\t\te.preventDefault();\n\t\tthis._contextMenuTabIndex = index;\n\t\tif (this.menu.items.length > 0) this.menu.openAt(e.pageX, e.pageY);\n\t\tthis.dispatchEvent(new TabEvent('contextmenu', {tab: this.items[index], tabs: this, uiEvent: e}));\n\t}\n\n\t_onActionClick(action: actions.Action) {\n\t\tactions.dispatchActionEvent(this, 'tabs', action);\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.menu?.remove();\n\t}\n\n\t_onContainerDragover(e: DragEvent) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\te.dataTransfer.dropEffect = 'move';\n\t}\n\n\tgetTabSize = (index: number) => {\n\t\tconst size = this.items[index]?.size ?? this.tabSize;\n\t\tif (size === 'stretch') return `${(100 / this.items.length)}%`;\n\t\tif (typeof size === 'number' || (typeof size === 'string' && !isNaN(Number(size)))) return dom.px(size as number);\n\t\treturn size;\n\t}\n\n\tanimateMarker() {\n\t\tconst tab = this.selectedTab;\n\t\tif (!tab) {\n\t\t\tdom.hideElement(this.marker);\n\t\t\treturn;\n\t\t}\n\t\tdom.showElement(this.marker);\n\t\tconst offset = dom.getElementOffset(tab, this);\n\t\tdom.setPosition(this.marker, {l: offset.left, b: 0});\n\t\tdom.setSize(this.marker, {w: tab.offsetWidth});\n\t\tsetTimeout(() => dom.hideElement(this.marker), 200);\n\t}\n\n\tpositionBottomMarker() {\n\t\tconst tab = this.selectedTab;\n\t\tif (!tab || this.position != 'top') {\n\t\t\tdom.hideElement(this.bottomMarker);\n\t\t\treturn;\n\t\t}\n\t\tdom.showElement(this.bottomMarker);\n\t\tconst offset = dom.getElementOffset(tab, this);\n\t\tdom.setPosition(this.bottomMarker, {l: offset.left});\n\t\tdom.setSize(this.bottomMarker, {w: tab.offsetWidth - 1});\n\t}\n\n\trenderTabs = () => map(this.items, (item, index) => item.hidden ? null : html`\n\t\t<div\n\t\t\t.draggable=\"${this.draggable}\"\n\t\t\tclass=\"${classMap({\n\t\t\t\t'tab': true,\n\t\t\t\t'active': index == this.selectedIndex,\n\t\t\t\t'unsaved': !!item.unsaved,\n\t\t\t\t'closable': this.closable,\n\t\t\t\t'last': index == this.items.length -1\n\t\t\t})}\"\n\t\t\tstyle=\"${styleMap({\n\t\t\t\tbackgroundColor: item.color ? `#${item.color}` : null,\n\t\t\t\tflexBasis: this.getTabSize(index)\n\t\t\t})}\"\n\t\t\t@click=\"${() => this.selectTab(index, true)}\"\n\t\t\t@drop=\"${() => this._onDrop()}\"\n\t\t\t@dragover=\"${(e: DragEvent) => this._onDragover(e, index)}\"\n\t\t\t@dragleave=\"${() => this.hideOverlay()}\"\n\t\t\t@dragstart=\"${(e: DragEvent) => this._onDragStart(e, index)}\"\n\t\t\t@dragstop=\"${() => this._onDragStop()}\"\n\t\t\t@contextmenu=\"${(e: MouseEvent) => this._onContextMenu(e, index)}\">\n\t\t\t<div\n\t\t\t\tclass=\"tab-text\"\n\t\t\t\tstyle=\"${styleMap({\n\t\t\t\t\tcolor: item.color ? colors.getComplmentaryColor('#' + item.color) : null\n\t\t\t\t})}\">\n\t\t\t\t${item.icon ? html`<og-icon icon=\"${item.icon}\"></og-icon>` : ``}\n\t\t\t\t${item.title ?? item.id}\n\t\t\t</div>\n\n\t\t\t${item.unsaved ? html`<div class=\"tab-save-mark\">●</div>` : ``}\n\n\t\t\t${this.closable ? html`<og-close\n\t\t\t\t@click=\"${(e: MouseEvent) => this._onCrossClick(e, index)}\">\n\t\t\t</og-close>` : ``}\n\t\t</div>\n\t`)\n\n\trender = () => html`\n\t\t${this.items && this.items.length > 0 ? this.scrollable ? html`\n\t\t\t<og-container sliderSize=\"6\" scrollMode=\"horizontal\">\n\t\t\t\t<div class=\"tabs\" slot=\"content\"\n\t\t\t\t\t@dragend=\"${() => this.hideOverlay()}\">\n\t\t\t\t\t${this.renderTabs()}\n\t\t\t\t</div>\n\t\t\t</og-container>\n\t\t` : html`\n\t\t\t<div class=\"tabs\"\n\t\t\t\t@dragend=\"${() => this.hideOverlay()}\">\n\t\t\t\t${this.renderTabs()}\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"empty\"\n\t\t\t\t\t@dragover=\"${(e: DragEvent) => this._onDragover(e, this.items.length)}\"\n\t\t\t\t\t@drop=\"${() => this._onDrop()}\"\n\t\t\t\t\t@dragleave=\"${() => this.hideOverlay()}\">\n\t\t\t\t\t${this.addButton ? html`\n\t\t\t\t\t\t<og-button\n\t\t\t\t\t\t\tid=\"btnAdd\"\n\t\t\t\t\t\t\ticon=\"plus\"\n\t\t\t\t\t\t\tcolor=\"gray\"\n\t\t\t\t\t\t\t@click=\"${() => this.dispatchEvent(new TabEvent('add', {tab: this.items[this.items.length - 1], tabs: this}))}\">\n\t\t\t\t\t\t</og-button>\n\t\t\t\t\t` : ``}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t` : ``}\n\n\t\t${this.actions?.length ? html`\n\t\t\t<div class=\"buttons\">\n\t\t\t\t${map(this.actions, action => html`\n\t\t\t\t\t<og-icon .icon=\"${action.icon}\" @click=\"${() => this._onActionClick(action)}\"></og-icon>\n\t\t\t\t`)}\n\t\t\t</div>\n\t\t` : ``}\n\n\t\t<div class=\"marker\"></div>\n\n\t\t<div class=\"bottom-marker\"></div>\n\n\t\t<div id=\"overlay\" style=\"display: none\"></div>\n\n\t\t<og-menu ${ref(this.menuRef)}\n\t\t\tstyle=\"display: none; z-index: 2000\"\n\t\t\t@select=${(e: ListSelectEvent) => this._onMenuItemSelect(e)}>\n\t\t</og-menu>\n\t`;\n\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../src/components/tabs.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html } from \"lit\";\nimport { customElement, property, query, queryAll } from \"lit/decorators.js\";\nimport { map } from \"lit/directives/map.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { style } from './tabs.style';\nimport { TabItem } from '../types';\nimport { dom, ListSelectEvent, Menu, actions, ComponentId, MenuItem, VerticalPosition, HorizontalPosition } from \"@omegagrid/core\";\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { TabContainer } from \"./tabContainer\";\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { colors } from \"@omegagrid/core\";\n\nexport class TabEvent extends Event {\n\tindex: number;\n\ttabs: Tabs;\n\ttab: TabItem;\n\tuiEvent: UIEvent;\n\n\tconstructor(type: string, args: Partial<TabEvent>) {\n\t\tsuper(`tab.${type}`, {composed: true, bubbles: true, cancelable: true});\n\t\tObject.assign(this, args);\n\t}\n}\n\nexport class TabCloseEvent extends TabEvent {\n\tresolveClose: () => void;\n\trejectClose: () => void;\n\n\tconstructor(type: string, args: Partial<TabCloseEvent>) {\n\t\tsuper(type, args);\n\t}\n}\n\nexport type TabSize = 'auto'|'stretch'|string|number;\ntype CloseType = 'close'|'close_all'|'close_others'|'close_right'|'close_saved';\n\nconst closeMenuItems: {key: CloseType, value: string, icon?: string}[] = [\n\t{key: 'close', value: \"Close\", icon: \"xmark\"},\n\t{key: 'close_others', value: \"Close Others\", icon: \"xmark\"},\n\t{key: 'close_right', value: \"Close to the Right\", icon: \"xmark\"},\n\t{key: 'close_saved', value: \"Close Saved\", icon: \"xmark\"},\n\t{key: 'close_all', value: \"Close All\", icon: \"xmark\"},\n];\n\n@customElement('og-tabs')\nexport class Tabs extends LitElement {\n\n\tstatic styles = [style];\n\n\tstatic dragParent: Tabs;\n\tstatic dragIndex = -1;\n\tstatic dragTarget: Tabs;\n\tstatic dropIndex = -1;\n\n\t@property({type: Object})\n\ttopLevelComponent: HTMLElement;\n\n\t@property({type: Array})\n\titems: TabItem[];\n\n\t@property({type: Boolean})\n\tclosable = false;\n\n\t@property({type: Boolean})\n\tdraggable = false;\n\n\t@property({type: Boolean})\n\tscrollable = false;\n\n\t@property({type: Boolean})\n\taddButton = false;\n\n\t@property({type: Number})\n\tselectedIndex = -1;\n\n\t@property({type: Array})\n\tactions: actions.Action[];\n\n\t@property({type: String, reflect: true})\n\tposition: VerticalPosition = 'top';\n\n\t@property({type: String, reflect: true})\n\ttabSize: TabSize = 'auto';\n\n\t@property({type: String, reflect: true})\n\ttabAlign: HorizontalPosition = 'left';\n\n\t@query('.empty')\n\tempty: HTMLDivElement;\n\n\t@query('.marker')\n\tmarker: HTMLDivElement;\n\n\t@query('.bottom-marker')\n\tbottomMarker: HTMLDivElement;\n\n\t@query('#overlay')\n\toverlay: HTMLDivElement;\n\n\t@queryAll('.tab')\n\ttabs: HTMLDivElement[];\n\n\tparentContainer: TabContainer;\n\n\tmenuRef = createRef<Menu>();\n\n\tget menu() { return this.menuRef.value }\n\n\tprivate _contextMenuTabIndex = -1;\n\tprivate _contextMenuItems: MenuItem[] = [];\n\n\tget selectedItem() { return this.items[this.selectedIndex] }\n\tget selectedTab() { return this.tabs?.[this.selectedIndex] }\n\n\tget container() {\n\t\treturn dom.findParent(this, 'og-tabcontainer') as TabContainer;\n\t}\n\n\tasync updated() {\n\t\tthis._contextMenuItems = [];\n\t\tif (this.closable) this._contextMenuItems = closeMenuItems;\n\t\tif (this.menu) this.menu.items = this._contextMenuItems;\n\t\tthis.animateMarker();\n\n\t\tif (this.container) await this.container.updateComplete;\n\t\tthis.positionBottomMarker();\n\t}\n\n\tpositionOverlay(target?: HTMLElement) {\n\t\tif (!target) return this.hideOverlay();\n\n\t\tconst offset = dom.getElementOffset(target, this);\n\t\tdom.setPosition(this.overlay, {t: offset.top, l: offset.left});\n\t\tdom.setSize(this.overlay, {w: target.offsetWidth, h: target.offsetHeight});\n\t\tdom.showElement(this.overlay);\n\t}\n\n\thideOverlay = () => dom.hideElement(this.overlay);\n\n\tselectTab(index: number, dispatchEvent = false) {\n\t\tthis.selectedIndex = index;\n\t\tif (dispatchEvent) this.dispatchEvent(new TabEvent('select', {\n\t\t\ttab: this.items[index],\n\t\t\ttabs: this,\n\t\t\tindex: index\n\t\t}));\n\t}\n\n\tgetIndexById(id: ComponentId) {\n\t\treturn this.items.findIndex(item => item.id == id);\n\t}\n\n\tselectTabById(id: ComponentId, dispatchEvent = false) {\n\t\tconst index = this.getIndexById(id);\n\t\tif (index > -1) this.selectTab(index, dispatchEvent);\n\t}\n\n\taddTab(item: TabItem, index = this.selectedIndex + 1) {\n\t\tthis.hideOverlay();\n\t\tthis.items.splice(index, 0, item);\n\t\tthis.requestUpdate();\n\t}\n\n\tasync removeTabById(id: ComponentId, dispatchEvent = false) {\n\t\tconst index = this.getIndexById(id);\n\t\tif (index > -1) await this.removeTab(index, dispatchEvent);\n\t}\n\n\tasync removeTab(index: number, dispatchEvent = false) {\n\t\tthis.hideOverlay();\n\n\t\treturn new Promise<TabItem>((resolve, reject) => {\n\t\t\tconst resolveClose = () => {\n\t\t\t\tconst [deletedItem] = this.items.splice(index, 1);\n\t\t\t\tif (dispatchEvent) this.dispatchEvent(new TabEvent('remove', {tab: deletedItem, tabs: this, index}));\n\t\t\t\tif (this.selectedIndex >= this.items.length) {\n\t\t\t\t\tthis.selectTab(this.items.length - 1, true);\n\t\t\t\t} else if (this.selectedIndex == index) {\n\t\t\t\t\tthis.selectTab(0, true);\n\t\t\t\t}\n\t\t\t\tthis.requestUpdate();\n\t\t\t\tresolve(deletedItem);\n\t\t\t}\n\n\t\t\tconst preventClose = this.dispatchEvent(new TabCloseEvent('beforeRemove', {\n\t\t\t\ttab: this.items[index], \n\t\t\t\ttabs: this, index,\n\t\t\t\tresolveClose: resolveClose,\n\t\t\t\trejectClose: () => reject()\n\t\t\t}));\n\n\t\t\tif (preventClose !== false) resolveClose();\n\t\t});\n\t}\n\n\t_onDragover(e: DragEvent, index: number) {\n\t\tif (!Tabs.dragParent) return;\n\t\tif (Tabs.dragParent.topLevelComponent != this.topLevelComponent) return;\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\te.dataTransfer.dropEffect = 'move';\n\t\tTabs.dropIndex = index;\n\t\tthis.positionOverlay(index >= this.tabs.length ? this.empty : this.tabs[index]);\n\t}\n\n\t_onDragStart(_e: DragEvent, index: number) {\n\t\tif (!this.draggable) return;\n\t\tTabs.dragParent = this;\n\t\tTabs.dragTarget = null;\n\t\tTabs.dragIndex = index;\n\t}\n\n\t_onDragStop() {\n\t\tTabs.dragParent = null;\n\t}\n\n\t_onDrop() {\n\t\tTabs.dragTarget = this;\n\t\tif (Tabs.dragParent == Tabs.dragTarget) {\n\t\t\tthis.moveTab(Tabs.dragIndex, Tabs.dropIndex, true);\n\t\t} else {\n\t\t\tconst tab = Tabs.dragParent.items[Tabs.dragIndex];\n\t\t\tTabs.dragParent.removeTab(Tabs.dragIndex);\n\t\t\tTabs.dragParent.selectTab(Math.min(Tabs.dragParent.items.length - 1, Tabs.dragIndex), true);\n\t\t\tTabs.dragTarget.addTab(tab, Tabs.dropIndex);\n\t\t\tTabs.dragTarget.selectTab(Tabs.dropIndex, true);\n\t\t\tthis.dispatchEvent(new TabEvent('move', {tab: tab, tabs: this}));\n\t\t}\n\t\tTabs.dragParent = null;\n\t}\n\n\tmoveTab(fromIndex: number, toIndex: number, dispatchEvent = false) {\n\t\tif (fromIndex == toIndex) return;\n\t\tconst [movedItem] = this.items.splice(toIndex, 0, this.items.splice(fromIndex, 1)[0]);\n\t\tthis.selectTab(Math.min(toIndex, this.tabs.length - 1), true);\n\t\tthis.requestUpdate();\n\t\tif (dispatchEvent) this.dispatchEvent(new TabEvent('move', {tab: movedItem, tabs: this}));\n\t}\n\n\t_onMenuItemSelect = async (e: ListSelectEvent) => {\n\t\tconst key = this._contextMenuItems[e.index].key;\n\t\tif (key == 'close') {\n\t\t\tthis.removeTab(this._contextMenuTabIndex, true);\n\t\t\tif (this.selectedIndex >= this.items.length)\n\t\t\t\tthis.selectTab(Math.max(this.items.length - 1, 0), true);\n\t\t} else if (key == 'close_all') {\n\t\t\tconst ids = new Set(this.items.map(item => item.id));\n\t\t\tfor (const id of ids) await this.removeTabById(id, true);\n\t\t} else if (key == 'close_others') {\n\t\t\tconst ids = new Set(this.items.filter((_, i) => i != this._contextMenuTabIndex).map(item => item.id));\n\t\t\tfor (const id of ids) await this.removeTabById(id, true);\n\t\t\tthis.selectTab(0, true);\n\t\t} else if (key == 'close_right') {\n\t\t\tconst ids = new Set(this.items.filter((_, i) => i > this._contextMenuTabIndex).map(item => item.id));\n\t\t\tfor (const id of ids) await this.removeTabById(id, true);\n\t\t\tif (this.selectedIndex >= this.items.length)\n\t\t\t\tthis.selectTab(Math.max(this.items.length - 1, 0), true);\n\t\t} else if (key == 'close_saved') {\n\t\t\tconst ids = new Set(this.items.filter(item => !item.unsaved).map(item => item.id));\n\t\t\tfor (const id of ids) await this.removeTabById(id, true);\n\t\t}\n\t}\n\n\t_onCrossClick(e: MouseEvent, index: number) {\n\t\te.stopPropagation();\n\t\tthis.removeTab(index, true);\n\t}\n\n\t_onContextMenu(e: MouseEvent, index: number) {\n\t\te.preventDefault();\n\t\tthis._contextMenuTabIndex = index;\n\t\tif (this.menu.items.length > 0) this.menu.openAt(e.pageX, e.pageY);\n\t\tthis.dispatchEvent(new TabEvent('contextmenu', {tab: this.items[index], tabs: this, uiEvent: e}));\n\t}\n\n\t_onActionClick(action: actions.Action) {\n\t\tactions.dispatchActionEvent(this, 'tabs', action);\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.menu?.remove();\n\t}\n\n\t_onContainerDragover(e: DragEvent) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\te.dataTransfer.dropEffect = 'move';\n\t}\n\n\tgetTabSize = (index: number) => {\n\t\tconst size = this.items[index]?.size ?? this.tabSize;\n\t\tif (size === 'stretch') return `${(100 / this.items.length)}%`;\n\t\tif (typeof size === 'number' || (typeof size === 'string' && !isNaN(Number(size)))) return dom.px(size as number);\n\t\treturn size;\n\t}\n\n\tanimateMarker() {\n\t\tconst tab = this.selectedTab;\n\t\tif (!tab) {\n\t\t\tdom.hideElement(this.marker);\n\t\t\treturn;\n\t\t}\n\t\tdom.showElement(this.marker);\n\t\tconst offset = dom.getElementOffset(tab, this);\n\t\tdom.setPosition(this.marker, {l: offset.left, b: 0});\n\t\tdom.setSize(this.marker, {w: tab.offsetWidth});\n\t\tsetTimeout(() => dom.hideElement(this.marker), 200);\n\t}\n\n\tpositionBottomMarker() {\n\t\tconst tab = this.selectedTab;\n\t\tif (!tab || this.position != 'top') {\n\t\t\tdom.hideElement(this.bottomMarker);\n\t\t\treturn;\n\t\t}\n\t\tdom.showElement(this.bottomMarker);\n\t\tconst offset = dom.getElementOffset(tab, this);\n\t\tdom.setPosition(this.bottomMarker, {l: offset.left});\n\t\tdom.setSize(this.bottomMarker, {w: tab.offsetWidth - 1});\n\t}\n\n\trenderTabs = () => map(this.items, (item, index) => item.hidden ? null : html`\n\t\t<div\n\t\t\t.draggable=\"${this.draggable}\"\n\t\t\tclass=\"${classMap({\n\t\t\t\t'tab': true,\n\t\t\t\t'active': index == this.selectedIndex,\n\t\t\t\t'unsaved': !!item.unsaved,\n\t\t\t\t'closable': this.closable,\n\t\t\t\t'last': index == this.items.length -1\n\t\t\t})}\"\n\t\t\tstyle=\"${styleMap({\n\t\t\t\tbackgroundColor: item.color ? `#${item.color}` : null,\n\t\t\t\tflexBasis: this.getTabSize(index)\n\t\t\t})}\"\n\t\t\t@click=\"${() => this.selectTab(index, true)}\"\n\t\t\t@drop=\"${() => this._onDrop()}\"\n\t\t\t@dragover=\"${(e: DragEvent) => this._onDragover(e, index)}\"\n\t\t\t@dragleave=\"${() => this.hideOverlay()}\"\n\t\t\t@dragstart=\"${(e: DragEvent) => this._onDragStart(e, index)}\"\n\t\t\t@dragstop=\"${() => this._onDragStop()}\"\n\t\t\t@contextmenu=\"${(e: MouseEvent) => this._onContextMenu(e, index)}\">\n\t\t\t<div\n\t\t\t\tclass=\"tab-text\"\n\t\t\t\tstyle=\"${styleMap({\n\t\t\t\t\tcolor: item.color ? colors.getComplmentaryColor('#' + item.color) : null\n\t\t\t\t})}\">\n\t\t\t\t${item.icon ? html`<og-icon icon=\"${item.icon}\"></og-icon>` : ``}\n\t\t\t\t${item.title ?? item.id}\n\t\t\t</div>\n\n\t\t\t${item.unsaved ? html`<div class=\"tab-save-mark\">●</div>` : ``}\n\n\t\t\t${this.closable ? html`<og-close\n\t\t\t\t@click=\"${(e: MouseEvent) => this._onCrossClick(e, index)}\">\n\t\t\t</og-close>` : ``}\n\t\t</div>\n\t`)\n\n\trender = () => html`\n\t\t${this.items && this.items.length > 0 ? this.scrollable ? html`\n\t\t\t<og-container sliderSize=\"6\" scrollMode=\"horizontal\">\n\t\t\t\t<div class=\"tabs\" slot=\"content\"\n\t\t\t\t\t@dragend=\"${() => this.hideOverlay()}\">\n\t\t\t\t\t${this.renderTabs()}\n\t\t\t\t</div>\n\t\t\t</og-container>\n\t\t` : html`\n\t\t\t<div class=\"tabs\"\n\t\t\t\t@dragend=\"${() => this.hideOverlay()}\">\n\t\t\t\t${this.renderTabs()}\n\n\t\t\t\t<div\n\t\t\t\t\tclass=\"empty\"\n\t\t\t\t\t@dragover=\"${(e: DragEvent) => this._onDragover(e, this.items.length)}\"\n\t\t\t\t\t@drop=\"${() => this._onDrop()}\"\n\t\t\t\t\t@dragleave=\"${() => this.hideOverlay()}\">\n\t\t\t\t\t${this.addButton ? html`\n\t\t\t\t\t\t<og-button\n\t\t\t\t\t\t\tid=\"btnAdd\"\n\t\t\t\t\t\t\ticon=\"plus\"\n\t\t\t\t\t\t\tcolor=\"gray\"\n\t\t\t\t\t\t\t@click=\"${() => this.dispatchEvent(new TabEvent('add', {tab: this.items[this.items.length - 1], tabs: this}))}\">\n\t\t\t\t\t\t</og-button>\n\t\t\t\t\t` : ``}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t` : ``}\n\n\t\t${this.actions?.length ? html`\n\t\t\t<div class=\"buttons\">\n\t\t\t\t${map(this.actions, action => html`\n\t\t\t\t\t<og-icon .icon=\"${action.icon}\" @click=\"${() => this._onActionClick(action)}\"></og-icon>\n\t\t\t\t`)}\n\t\t\t</div>\n\t\t` : ``}\n\n\t\t<div class=\"marker\"></div>\n\n\t\t<div class=\"bottom-marker\"></div>\n\n\t\t<div id=\"overlay\" style=\"display: none\"></div>\n\n\t\t<og-menu ${ref(this.menuRef)}\n\t\t\tstyle=\"display: none; z-index: 2000\"\n\t\t\t@select=${this._onMenuItemSelect}>\n\t\t</og-menu>\n\t`;\n\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omegagrid/tabs",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.25",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"description": "Universal tabbed layout component",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"_prepublish": "yarn test && yarn lint"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@omegagrid/core": "^0.10.
|
|
30
|
+
"@omegagrid/core": "^0.10.25",
|
|
31
31
|
"lit": "^3.1.1",
|
|
32
32
|
"lit-html": "^3.1.1",
|
|
33
33
|
"ts-debounce": "^4.0.0"
|