@omegagrid/tabs 0.7.0 → 0.7.2
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/tabs.js
CHANGED
|
@@ -91,7 +91,7 @@ let Tabs = Tabs_1 = class Tabs extends LitElement {
|
|
|
91
91
|
|
|
92
92
|
<div class="buttons">
|
|
93
93
|
${map(this.actions, action => html `
|
|
94
|
-
<og-
|
|
94
|
+
<og-icon .icon="${action.icon}" @click="${() => this._onActionClick(action)}"></og-icon>
|
|
95
95
|
`)}
|
|
96
96
|
</div>
|
|
97
97
|
|
|
@@ -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 } 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\ntype CloseType = 'close'|'close_all'|'close_others'|'close_right';\n\nconst closeMenuItems: {key: CloseType, value: string, icon?: string}[] = [\n\t{key: 'close', value: \"Close\", icon: \"xmark\"},\n\t{key: 'close_all', value: \"Close All\", 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];\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\taddButton = false;\n\n\t@property({type: Number})\n\tselectedIndex = -1;\n\n\t@query('#overlay')\n\toverlay: HTMLDivElement;\n\n\t@queryAll('.tab')\n\ttabs: HTMLDivElement[];\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: Boolean})\n\tfixed = false;\n\n\t@query('.empty')\n\tempty: HTMLDivElement;\n\n\tparentContainer: TabContainer;\n\t\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\n\tget container() {\n\t\treturn dom.findParent(this, 'og-tabcontainer') as TabContainer;\n\t}\n\n\tupdated() {\n\t\tthis._contextMenuItems = [];\n\t\tif (this.closable) this._contextMenuItems = closeMenuItems;\n\t\tthis.menu.items = this._contextMenuItems;\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\t\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', {tab: this.items[index], tabs: this}));\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\t\t\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\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\t\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}\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\n\trender = () => html`\n\t\t${this.items && this.items.length > 0 ? html`\n\t\t<div class=\"tabs\"\n\t\t\t@dragend=\"${() => this.hideOverlay()}\">\n\t\t\t${map(this.items, (item, index) => item.hidden ? null : html`\n\t\t\t\t<div\n\t\t\t\t\t.draggable=\"${!this.fixed}\"\n\t\t\t\t\tclass=\"${classMap({\n\t\t\t\t\t\t'tab': true, \n\t\t\t\t\t\t'active': index == this.selectedIndex, \n\t\t\t\t\t\t'unsaved': !!item.unsaved,\n\t\t\t\t\t\t'closable': this.closable\n\t\t\t\t\t})}\"\n\t\t\t\t\tstyle=\"${styleMap({backgroundColor: item.color ? `#${item.color}` : null})}\"\n\t\t\t\t\t@click=\"${() => this.selectTab(index, true)}\"\n\t\t\t\t\t@drop=\"${() => this._onDrop()}\"\n\t\t\t\t\t@dragover=\"${(e: DragEvent) => this._onDragover(e, index)}\"\n\t\t\t\t\t@dragleave=\"${() => this.hideOverlay()}\"\n\t\t\t\t\t@dragstart=\"${(e: DragEvent) => this._onDragStart(e, index)}\"\n\t\t\t\t\t@dragstop=\"${() => this._onDragStop()}\"\n\t\t\t\t\t@contextmenu=\"${(e: MouseEvent) => this._onContextMenu(e, index)}\">\n\t\t\t\t\t<div class=\"tab-text\" style=\"${styleMap({color: item.color ? colors.getComplmentaryColor('#' + item.color) : null})}\">\n\t\t\t\t\t\t${item.icon ? html`<og-icon icon=\"${item.icon}\"></og-icon>` : ``}\n\t\t\t\t\t\t${item.title ?? item.id}\n\t\t\t\t\t</div>\n\t\t\t\t\t${item.unsaved ? html`<div class=\"tab-save-mark\">●</div>` : ``}\n\t\t\t\t\t${this.closable ? html`<div\n\t\t\t\t\t\tclass=\"tab-x\"\n\t\t\t\t\t\t@click=\"${(e: MouseEvent) => this._onCrossClick(e, index)}\">\n\t\t\t\t\t\t×\n\t\t\t\t\t</div>` : ``}\n\t\t\t\t</div>\n\t\t\t`)}\n\t\t</div>\n\t\t` : ``}\n\n\t\t<div\n\t\t\tclass=\"empty\"\n\t\t\t@dragover=\"${(e: DragEvent) => this._onDragover(e, this.items.length)}\"\n\t\t\t@drop=\"${() => this._onDrop()}\"\n\t\t\t@dragleave=\"${() => this.hideOverlay()}\">\n\t\t\t${this.addButton ? html`\n\t\t\t\t<og-button\n\t\t\t\t\tid=\"btnAdd\"\n\t\t\t\t\ticon=\"plus\"\n\t\t\t\t\tcolor=\"gray\"\n\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</og-button>\n\t\t\t` : ``}\n\t\t</div>\n\t\t\n\t\t<div class=\"buttons\">\n\t\t\t${map(this.actions, action => html`\n\t\t\t\t<og-fa-icon icon=\"${action.icon}\" @click=\"${() => this._onActionClick(action)}\"></og-fa-icon>\n\t\t\t`)}\n\t\t</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}"]}
|
|
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 } 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\ntype CloseType = 'close'|'close_all'|'close_others'|'close_right';\n\nconst closeMenuItems: {key: CloseType, value: string, icon?: string}[] = [\n\t{key: 'close', value: \"Close\", icon: \"xmark\"},\n\t{key: 'close_all', value: \"Close All\", 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];\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\taddButton = false;\n\n\t@property({type: Number})\n\tselectedIndex = -1;\n\n\t@query('#overlay')\n\toverlay: HTMLDivElement;\n\n\t@queryAll('.tab')\n\ttabs: HTMLDivElement[];\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: Boolean})\n\tfixed = false;\n\n\t@query('.empty')\n\tempty: HTMLDivElement;\n\n\tparentContainer: TabContainer;\n\t\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\n\tget container() {\n\t\treturn dom.findParent(this, 'og-tabcontainer') as TabContainer;\n\t}\n\n\tupdated() {\n\t\tthis._contextMenuItems = [];\n\t\tif (this.closable) this._contextMenuItems = closeMenuItems;\n\t\tthis.menu.items = this._contextMenuItems;\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\t\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', {tab: this.items[index], tabs: this}));\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\t\t\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\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\t\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}\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\n\trender = () => html`\n\t\t${this.items && this.items.length > 0 ? html`\n\t\t<div class=\"tabs\"\n\t\t\t@dragend=\"${() => this.hideOverlay()}\">\n\t\t\t${map(this.items, (item, index) => item.hidden ? null : html`\n\t\t\t\t<div\n\t\t\t\t\t.draggable=\"${!this.fixed}\"\n\t\t\t\t\tclass=\"${classMap({\n\t\t\t\t\t\t'tab': true, \n\t\t\t\t\t\t'active': index == this.selectedIndex, \n\t\t\t\t\t\t'unsaved': !!item.unsaved,\n\t\t\t\t\t\t'closable': this.closable\n\t\t\t\t\t})}\"\n\t\t\t\t\tstyle=\"${styleMap({backgroundColor: item.color ? `#${item.color}` : null})}\"\n\t\t\t\t\t@click=\"${() => this.selectTab(index, true)}\"\n\t\t\t\t\t@drop=\"${() => this._onDrop()}\"\n\t\t\t\t\t@dragover=\"${(e: DragEvent) => this._onDragover(e, index)}\"\n\t\t\t\t\t@dragleave=\"${() => this.hideOverlay()}\"\n\t\t\t\t\t@dragstart=\"${(e: DragEvent) => this._onDragStart(e, index)}\"\n\t\t\t\t\t@dragstop=\"${() => this._onDragStop()}\"\n\t\t\t\t\t@contextmenu=\"${(e: MouseEvent) => this._onContextMenu(e, index)}\">\n\t\t\t\t\t<div class=\"tab-text\" style=\"${styleMap({color: item.color ? colors.getComplmentaryColor('#' + item.color) : null})}\">\n\t\t\t\t\t\t${item.icon ? html`<og-icon icon=\"${item.icon}\"></og-icon>` : ``}\n\t\t\t\t\t\t${item.title ?? item.id}\n\t\t\t\t\t</div>\n\t\t\t\t\t${item.unsaved ? html`<div class=\"tab-save-mark\">●</div>` : ``}\n\t\t\t\t\t${this.closable ? html`<div\n\t\t\t\t\t\tclass=\"tab-x\"\n\t\t\t\t\t\t@click=\"${(e: MouseEvent) => this._onCrossClick(e, index)}\">\n\t\t\t\t\t\t×\n\t\t\t\t\t</div>` : ``}\n\t\t\t\t</div>\n\t\t\t`)}\n\t\t</div>\n\t\t` : ``}\n\n\t\t<div\n\t\t\tclass=\"empty\"\n\t\t\t@dragover=\"${(e: DragEvent) => this._onDragover(e, this.items.length)}\"\n\t\t\t@drop=\"${() => this._onDrop()}\"\n\t\t\t@dragleave=\"${() => this.hideOverlay()}\">\n\t\t\t${this.addButton ? html`\n\t\t\t\t<og-button\n\t\t\t\t\tid=\"btnAdd\"\n\t\t\t\t\ticon=\"plus\"\n\t\t\t\t\tcolor=\"gray\"\n\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</og-button>\n\t\t\t` : ``}\n\t\t</div>\n\t\t\n\t\t<div class=\"buttons\">\n\t\t\t${map(this.actions, action => html`\n\t\t\t\t<og-icon .icon=\"${action.icon}\" @click=\"${() => this._onActionClick(action)}\"></og-icon>\n\t\t\t`)}\n\t\t</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}"]}
|
|
@@ -106,7 +106,7 @@ export const style = css `
|
|
|
106
106
|
color: #959d00;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
.tab-x og-
|
|
109
|
+
.tab-x og-icon {
|
|
110
110
|
display: block;
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -125,11 +125,11 @@ export const style = css `
|
|
|
125
125
|
padding: 0 10px 0 10px;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
.buttons og-
|
|
128
|
+
.buttons og-icon {
|
|
129
129
|
cursor: pointer;
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
.buttons og-
|
|
132
|
+
.buttons og-icon:hover {
|
|
133
133
|
color: var(--og-text-color-2)
|
|
134
134
|
}
|
|
135
135
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.style.js","sourceRoot":"","sources":["../../src/components/tabs.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;gBAOR,SAAS,CAAC,gBAAgB;iBACzB,SAAS,CAAC,gBAAgB;;;;;;;;;;YAU/B,SAAS,CAAC,gBAAgB,GAAG,CAAC;;;;;;;;gBAQ1B,SAAS,CAAC,gBAAgB;;;;;;;;mBAQvB,SAAS,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA+BjC,SAAS,CAAC,gBAAgB;;;;;;;;;;;;aAYzB,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkErE,CAAC","sourcesContent":["import { device } from \"@omegagrid/core\";\nimport constants from \"../constants\";\nimport { css, unsafeCSS } from \"lit\";\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\t:host {\n\t\tcolor: var(--og-text-color);\n\t\tmin-height: ${constants.TAB_PANEL_HEIGHT}px;\n\t\tline-height: ${constants.TAB_PANEL_HEIGHT}px;\n\t\tbackground: var(--og-tab-panel-background-color);\n\t\tborder-bottom: 1px solid var(--og-tab-border-color);\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tposition: relative;\n\t\tfont-size: var(--og-font-size);\n\t}\n\n\t.tabs {\n\t\theight: ${constants.TAB_PANEL_HEIGHT - 1}px;\n\t\tflex: 0;\n\t\twhite-space: nowrap;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t}\n\n\t:host([position=\"top\"]) .tab {\n\t\tborder-top: ${constants.TAB_PANEL_BORDER}px solid var(--og-tab-panel-background-color);\n\t}\n\n\t:host([position=\"top\"]) .tab:hover, :host([position=\"top\"]) .tab.active {\n\t\tborder-top-color: var(--og-accent-color);\n\t}\n\n\t:host([position=\"bottom\"]) .tab {\n\t\tborder-bottom: ${constants.TAB_PANEL_BORDER}px solid var(--og-tab-panel-background-color);\n\t}\n\n\t:host([position=\"bottom\"]) .tab:hover, :host([position=\"bottom\"]) .tab.active {\n\t\tborder-bottom-color: var(--og-accent-color);\n\t}\n\n\t:host(.inactive) .tab.active {\n\t\tborder-top-color: var(--og-tab-border-color);\n\t\tborder-bottom-color: var(--og-tab-border-color);\n\t}\n\n\t.tab {\n\t\tborder-right: 1px solid var(--og-tab-border-color);\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\theight: 100%;\n\t\tbackground: var(--og-tab-background-color);\n\t\tcursor: pointer;\n\t\tmargin-right: 1px;\n\t\tpadding-left: 7px;\n\t\tpadding-right: 7px;\n\t\tposition: relative;\n\t}\n\n\t.tab.closable {\n\t\tpadding-right: 20px;\n\t}\n\n\t.tab.active {\n\t\tbackground-color: var(--og-tab-background-color-active);\n\t\theight: ${constants.TAB_PANEL_HEIGHT}px;\n\t\tfont-weight: bold;\n\t}\n\n\t.tab:hover .tab-x {\n\t\tdisplay: block;\n\t}\n\n\t.tab-x {\n\t\tfont-size: 14px;\n\t\tposition: absolute;\n\t\tright: 2px;\n\t\tdisplay: ${unsafeCSS(device.detect() == \"mobile\" ? \"block\" : \"none\")};\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tline-height: 16px;\n\t\tmargin: 6px 0 0 5px;\n\t\ttext-align: center;\n\t\tborder-radius: 50%;\n\t}\n\n\t.tab-save-mark {\n\t\theight: 16px;\n\t\tline-height: 16px;\n\t\tmargin: 6px 0 0 5px;\n\t}\n\n\t.tab.closable:hover .tab-save-mark {\n\t\tdisplay: none;\n\t}\n\n\t.tab.closable .tab-save-mark {\n\t\tposition: absolute;\n\t\tright: 5px;\n\t}\n\n\t.tab.unsaved {\n\t\tcolor: #959d00;\n\t}\n\n\t.tab-x og-
|
|
1
|
+
{"version":3,"file":"tabs.style.js","sourceRoot":"","sources":["../../src/components/tabs.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,CAAA;;;;;;;gBAOR,SAAS,CAAC,gBAAgB;iBACzB,SAAS,CAAC,gBAAgB;;;;;;;;;;YAU/B,SAAS,CAAC,gBAAgB,GAAG,CAAC;;;;;;;;gBAQ1B,SAAS,CAAC,gBAAgB;;;;;;;;mBAQvB,SAAS,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA+BjC,SAAS,CAAC,gBAAgB;;;;;;;;;;;;aAYzB,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkErE,CAAC","sourcesContent":["import { device } from \"@omegagrid/core\";\nimport constants from \"../constants\";\nimport { css, unsafeCSS } from \"lit\";\n\nexport const style = css`\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\t:host {\n\t\tcolor: var(--og-text-color);\n\t\tmin-height: ${constants.TAB_PANEL_HEIGHT}px;\n\t\tline-height: ${constants.TAB_PANEL_HEIGHT}px;\n\t\tbackground: var(--og-tab-panel-background-color);\n\t\tborder-bottom: 1px solid var(--og-tab-border-color);\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tposition: relative;\n\t\tfont-size: var(--og-font-size);\n\t}\n\n\t.tabs {\n\t\theight: ${constants.TAB_PANEL_HEIGHT - 1}px;\n\t\tflex: 0;\n\t\twhite-space: nowrap;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t}\n\n\t:host([position=\"top\"]) .tab {\n\t\tborder-top: ${constants.TAB_PANEL_BORDER}px solid var(--og-tab-panel-background-color);\n\t}\n\n\t:host([position=\"top\"]) .tab:hover, :host([position=\"top\"]) .tab.active {\n\t\tborder-top-color: var(--og-accent-color);\n\t}\n\n\t:host([position=\"bottom\"]) .tab {\n\t\tborder-bottom: ${constants.TAB_PANEL_BORDER}px solid var(--og-tab-panel-background-color);\n\t}\n\n\t:host([position=\"bottom\"]) .tab:hover, :host([position=\"bottom\"]) .tab.active {\n\t\tborder-bottom-color: var(--og-accent-color);\n\t}\n\n\t:host(.inactive) .tab.active {\n\t\tborder-top-color: var(--og-tab-border-color);\n\t\tborder-bottom-color: var(--og-tab-border-color);\n\t}\n\n\t.tab {\n\t\tborder-right: 1px solid var(--og-tab-border-color);\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\theight: 100%;\n\t\tbackground: var(--og-tab-background-color);\n\t\tcursor: pointer;\n\t\tmargin-right: 1px;\n\t\tpadding-left: 7px;\n\t\tpadding-right: 7px;\n\t\tposition: relative;\n\t}\n\n\t.tab.closable {\n\t\tpadding-right: 20px;\n\t}\n\n\t.tab.active {\n\t\tbackground-color: var(--og-tab-background-color-active);\n\t\theight: ${constants.TAB_PANEL_HEIGHT}px;\n\t\tfont-weight: bold;\n\t}\n\n\t.tab:hover .tab-x {\n\t\tdisplay: block;\n\t}\n\n\t.tab-x {\n\t\tfont-size: 14px;\n\t\tposition: absolute;\n\t\tright: 2px;\n\t\tdisplay: ${unsafeCSS(device.detect() == \"mobile\" ? \"block\" : \"none\")};\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tline-height: 16px;\n\t\tmargin: 6px 0 0 5px;\n\t\ttext-align: center;\n\t\tborder-radius: 50%;\n\t}\n\n\t.tab-save-mark {\n\t\theight: 16px;\n\t\tline-height: 16px;\n\t\tmargin: 6px 0 0 5px;\n\t}\n\n\t.tab.closable:hover .tab-save-mark {\n\t\tdisplay: none;\n\t}\n\n\t.tab.closable .tab-save-mark {\n\t\tposition: absolute;\n\t\tright: 5px;\n\t}\n\n\t.tab.unsaved {\n\t\tcolor: #959d00;\n\t}\n\n\t.tab-x og-icon {\n\t\tdisplay: block;\n\t}\n\n\t.tab-x:hover {\n\t\tbackground-color: var(--og-accent-color-alpha-30);\n\t}\n\n\t.empty {\n\t\tflex: 1;\n\t\theight: 100%;\n\t}\n\t\n\t.buttons {\n\t\tflex: 0;\n\t\theight: 100%;\n\t\tpadding: 0 10px 0 10px;\n\t}\n\n\t.buttons og-icon {\n\t\tcursor: pointer;\n\t}\n\n\t.buttons og-icon:hover {\n\t\tcolor: var(--og-text-color-2)\n\t}\n\n\t#overlay {\n\t\tbackground-color: var(--og-accent-color);\n\t\topacity: 0.5;\n\t\tpointer-events: none;\n\t}\n\n\t#btnAdd {\n\t\tmargin-left: 5px;\n\t\tline-height: 0;\n\t}\n\n`;"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omegagrid/tabs",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
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.7.
|
|
30
|
+
"@omegagrid/core": "^0.7.2",
|
|
31
31
|
"lit": "^3.1.1",
|
|
32
32
|
"lit-html": "^3.1.1",
|
|
33
33
|
"ts-debounce": "^4.0.0"
|