@vscode-elements/elements 1.6.0 → 1.6.1
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/custom-elements.json +1417 -1401
- package/dist/bundled.js +1 -1
- package/dist/includes/VscElement.js +1 -1
- package/dist/includes/VscElement.js.map +1 -1
- package/dist/vscode-scrollable/vscode-scrollable.d.ts +2 -2
- package/dist/vscode-scrollable/vscode-scrollable.d.ts.map +1 -1
- package/dist/vscode-scrollable/vscode-scrollable.js +11 -9
- package/dist/vscode-scrollable/vscode-scrollable.js.map +1 -1
- package/dist/vscode-table/vscode-table.d.ts +3 -1
- package/dist/vscode-table/vscode-table.d.ts.map +1 -1
- package/dist/vscode-table/vscode-table.js +30 -6
- package/dist/vscode-table/vscode-table.js.map +1 -1
- package/package.json +1 -1
- package/vscode.css-custom-data.json +14 -14
- package/vscode.html-custom-data.json +22 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VscElement.js","sourceRoot":"","sources":["../../src/includes/VscElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,UAAW,SAAQ,UAAU;IAA1C;;QACU,aAAQ,GAAG,OAAO,CAAC;IAM7B,CAAC;IAJC,0BAA0B;IAC1B,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF","sourcesContent":["import {LitElement} from 'lit';\n\nexport class VscElement extends LitElement {\n private _version = '1.6.
|
|
1
|
+
{"version":3,"file":"VscElement.js","sourceRoot":"","sources":["../../src/includes/VscElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,UAAW,SAAQ,UAAU;IAA1C;;QACU,aAAQ,GAAG,OAAO,CAAC;IAM7B,CAAC;IAJC,0BAA0B;IAC1B,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF","sourcesContent":["import {LitElement} from 'lit';\n\nexport class VscElement extends LitElement {\n private _version = '1.6.1';\n\n /** VSC Element version */\n get version() {\n return this._version;\n }\n}\n"]}
|
|
@@ -24,7 +24,8 @@ export declare class VscodeScrollable extends VscElement {
|
|
|
24
24
|
private _scrollThumbElement;
|
|
25
25
|
private _scrollableContainer;
|
|
26
26
|
private _assignedElements;
|
|
27
|
-
private
|
|
27
|
+
private _hostResizeObserver;
|
|
28
|
+
private _contentResizeObserver;
|
|
28
29
|
private _scrollThumbStartY;
|
|
29
30
|
private _mouseStartY;
|
|
30
31
|
private _scrollbarVisible;
|
|
@@ -32,7 +33,6 @@ export declare class VscodeScrollable extends VscElement {
|
|
|
32
33
|
connectedCallback(): void;
|
|
33
34
|
disconnectedCallback(): void;
|
|
34
35
|
private _resizeObserverCallback;
|
|
35
|
-
private _resizeObserverCallbackBound;
|
|
36
36
|
private _updateScrollbar;
|
|
37
37
|
private _zIndexFix;
|
|
38
38
|
private _onSlotChange;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-scrollable.d.ts","sourceRoot":"","sources":["../../src/vscode-scrollable/vscode-scrollable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAC,MAAM,KAAK,CAAC;AAUlD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGrD;;;;;;GAMG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,CAAC,MAAM,+BAAU;IAGvB,MAAM,UAAQ;IAGd,QAAQ,UAAS;IAEjB,IACI,SAAS,CAAC,GAAG,EAAE,MAAM,EAExB;IACD,IAAI,SAAS,IAAI,MAAM,CAMtB;IAED,IACI,SAAS,IAAI,MAAM,CAMtB;IAGD,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,YAAY,CAAK;IAGzB,OAAO,CAAC,OAAO,CAAK;IAGpB,OAAO,CAAC,aAAa,CAAS;IAG9B,OAAO,CAAC,UAAU,CAAS;IAG3B,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,mBAAmB,CAAkB;IAG7C,OAAO,CAAC,oBAAoB,CAAkB;IAG9C,OAAO,CAAC,iBAAiB,CAAY;IAErC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"vscode-scrollable.d.ts","sourceRoot":"","sources":["../../src/vscode-scrollable/vscode-scrollable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAC,MAAM,KAAK,CAAC;AAUlD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGrD;;;;;;GAMG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,CAAC,MAAM,+BAAU;IAGvB,MAAM,UAAQ;IAGd,QAAQ,UAAS;IAEjB,IACI,SAAS,CAAC,GAAG,EAAE,MAAM,EAExB;IACD,IAAI,SAAS,IAAI,MAAM,CAMtB;IAED,IACI,SAAS,IAAI,MAAM,CAMtB;IAGD,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,YAAY,CAAK;IAGzB,OAAO,CAAC,OAAO,CAAK;IAGpB,OAAO,CAAC,aAAa,CAAS;IAG9B,OAAO,CAAC,UAAU,CAAS;IAG3B,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,eAAe,CAAkB;IAGzC,OAAO,CAAC,mBAAmB,CAAkB;IAG7C,OAAO,CAAC,oBAAoB,CAAkB;IAG9C,OAAO,CAAC,iBAAiB,CAAY;IAErC,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,gBAAgB,CAAK;IAE7B,iBAAiB,IAAI,IAAI;IAyBzB,oBAAoB,IAAI,IAAI;IAY5B,OAAO,CAAC,uBAAuB,CAE7B;IAEF,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,4BAA4B,CACM;IAE1C,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,0BAA0B,CAAyC;IAE3E,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,0BAA0B,CAAyC;IAE3E,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,yBAAyB,CAAwC;IAEzE,MAAM,IAAI,cAAc;CAyCzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,gBAAgB,CAAC;KACvC;CACF"}
|
|
@@ -32,7 +32,9 @@ let VscodeScrollable = class VscodeScrollable extends VscElement {
|
|
|
32
32
|
this._mouseStartY = 0;
|
|
33
33
|
this._scrollbarVisible = true;
|
|
34
34
|
this._scrollbarTrackZ = 0;
|
|
35
|
-
this.
|
|
35
|
+
this._resizeObserverCallback = () => {
|
|
36
|
+
this._updateScrollbar();
|
|
37
|
+
};
|
|
36
38
|
this._onScrollThumbMouseMoveBound = this._onScrollThumbMouseMove.bind(this);
|
|
37
39
|
this._onScrollThumbMouseUpBound = this._onScrollThumbMouseUp.bind(this);
|
|
38
40
|
this._onComponentMouseOverBound = this._onComponentMouseOver.bind(this);
|
|
@@ -55,25 +57,26 @@ let VscodeScrollable = class VscodeScrollable extends VscElement {
|
|
|
55
57
|
}
|
|
56
58
|
connectedCallback() {
|
|
57
59
|
super.connectedCallback();
|
|
58
|
-
this.
|
|
60
|
+
this._hostResizeObserver = new ResizeObserver(this._resizeObserverCallback);
|
|
61
|
+
this._contentResizeObserver = new ResizeObserver(this._resizeObserverCallback);
|
|
59
62
|
this.requestUpdate();
|
|
60
63
|
this.updateComplete.then(() => {
|
|
61
64
|
this._scrollableContainer.addEventListener('scroll', this._onScrollableContainerScroll.bind(this));
|
|
62
|
-
this.
|
|
65
|
+
this._hostResizeObserver.observe(this);
|
|
66
|
+
this._contentResizeObserver.observe(this._contentElement);
|
|
63
67
|
});
|
|
64
68
|
this.addEventListener('mouseover', this._onComponentMouseOverBound);
|
|
65
69
|
this.addEventListener('mouseout', this._onComponentMouseOutBound);
|
|
66
70
|
}
|
|
67
71
|
disconnectedCallback() {
|
|
68
72
|
super.disconnectedCallback();
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
73
|
+
this._hostResizeObserver.unobserve(this);
|
|
74
|
+
this._hostResizeObserver.disconnect();
|
|
75
|
+
this._contentResizeObserver.unobserve(this._contentElement);
|
|
76
|
+
this._contentResizeObserver.disconnect();
|
|
71
77
|
this.removeEventListener('mouseover', this._onComponentMouseOverBound);
|
|
72
78
|
this.removeEventListener('mouseout', this._onComponentMouseOutBound);
|
|
73
79
|
}
|
|
74
|
-
_resizeObserverCallback() {
|
|
75
|
-
this._updateScrollbar();
|
|
76
|
-
}
|
|
77
80
|
_updateScrollbar() {
|
|
78
81
|
const compCr = this.getBoundingClientRect();
|
|
79
82
|
const contentCr = this._contentElement.getBoundingClientRect();
|
|
@@ -104,7 +107,6 @@ let VscodeScrollable = class VscodeScrollable extends VscElement {
|
|
|
104
107
|
this.requestUpdate();
|
|
105
108
|
}
|
|
106
109
|
_onSlotChange() {
|
|
107
|
-
this._updateScrollbar();
|
|
108
110
|
this._zIndexFix();
|
|
109
111
|
}
|
|
110
112
|
_onScrollThumbMouseDown(event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-scrollable.js","sourceRoot":"","sources":["../../src/vscode-scrollable/vscode-scrollable.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {\n customElement,\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-scrollable.styles.js';\n\n/**\n * @cssprop [--min-thumb-height=20px] - Scrollbar thumb minimum height\n * @cssprop --vscode-scrollbar-shadow\n * @cssprop --vscode-scrollbarSlider-background\n * @cssprop --vscode-scrollbarSlider-hoverBackground\n * @cssprop --vscode-scrollbarSlider-activeBackground\n */\n@customElement('vscode-scrollable')\nexport class VscodeScrollable extends VscElement {\n static styles = styles;\n\n @property({type: Boolean, reflect: true})\n shadow = true;\n\n @property({type: Boolean, reflect: true})\n scrolled = false;\n\n @property({type: Number, attribute: 'scroll-pos'})\n set scrollPos(val: number) {\n this._scrollableContainer.scrollTop = val;\n }\n get scrollPos(): number {\n if (!this._scrollableContainer) {\n return 0;\n }\n\n return this._scrollableContainer.scrollTop;\n }\n\n @property({type: Number, attribute: 'scroll-max'})\n get scrollMax(): number {\n if (!this._scrollableContainer) {\n return 0;\n }\n\n return this._scrollableContainer.scrollHeight;\n }\n\n @state()\n private _isDragging = false;\n\n @state()\n private _thumbHeight = 0;\n\n @state()\n private _thumbY = 0;\n\n @state()\n private _thumbVisible = false;\n\n @state()\n private _thumbFade = false;\n\n @state()\n private _thumbActive = false;\n\n @query('.content')\n private _contentElement!: HTMLDivElement;\n\n @query('.scrollbar-thumb')\n private _scrollThumbElement!: HTMLDivElement;\n\n @query('.scrollable-container')\n private _scrollableContainer!: HTMLDivElement;\n\n @queryAssignedElements()\n private _assignedElements!: NodeList;\n\n private _resizeObserver!: ResizeObserver;\n private _scrollThumbStartY = 0;\n private _mouseStartY = 0;\n private _scrollbarVisible = true;\n private _scrollbarTrackZ = 0;\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this._resizeObserver = new ResizeObserver(\n this._resizeObserverCallbackBound\n );\n\n this.requestUpdate();\n\n this.updateComplete.then(() => {\n this._scrollableContainer.addEventListener(\n 'scroll',\n this._onScrollableContainerScroll.bind(this)\n );\n this._resizeObserver.observe(this._contentElement);\n });\n\n this.addEventListener('mouseover', this._onComponentMouseOverBound);\n this.addEventListener('mouseout', this._onComponentMouseOutBound);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this._resizeObserver.unobserve(this);\n this._resizeObserver.disconnect();\n\n this.removeEventListener('mouseover', this._onComponentMouseOverBound);\n this.removeEventListener('mouseout', this._onComponentMouseOutBound);\n }\n\n private _resizeObserverCallback() {\n this._updateScrollbar();\n }\n\n private _resizeObserverCallbackBound =\n this._resizeObserverCallback.bind(this);\n\n private _updateScrollbar() {\n const compCr = this.getBoundingClientRect();\n const contentCr = this._contentElement.getBoundingClientRect();\n\n if (compCr.height >= contentCr.height) {\n this._scrollbarVisible = false;\n } else {\n this._scrollbarVisible = true;\n this._thumbHeight = compCr.height * (compCr.height / contentCr.height);\n }\n\n this.requestUpdate();\n }\n\n private _zIndexFix() {\n let highestZ = 0;\n\n this._assignedElements.forEach((n) => {\n if ('style' in n) {\n const computedZIndex = window.getComputedStyle(n as HTMLElement).zIndex;\n const isNumber = /([0-9-])+/g.test(computedZIndex);\n\n if (isNumber) {\n highestZ =\n Number(computedZIndex) > highestZ\n ? Number(computedZIndex)\n : highestZ;\n }\n }\n });\n\n this._scrollbarTrackZ = highestZ + 1;\n this.requestUpdate();\n }\n\n private _onSlotChange() {\n this._updateScrollbar();\n this._zIndexFix();\n }\n\n private _onScrollThumbMouseDown(event: MouseEvent) {\n const cmpCr = this.getBoundingClientRect();\n const thCr = this._scrollThumbElement.getBoundingClientRect();\n\n this._mouseStartY = event.screenY;\n this._scrollThumbStartY = thCr.top - cmpCr.top;\n this._isDragging = true;\n this._thumbActive = true;\n\n document.addEventListener('mousemove', this._onScrollThumbMouseMoveBound);\n document.addEventListener('mouseup', this._onScrollThumbMouseUpBound);\n }\n\n private _onScrollThumbMouseMove(event: MouseEvent) {\n const predictedPos =\n this._scrollThumbStartY + (event.screenY - this._mouseStartY);\n let nextPos = 0;\n const cmpH = this.getBoundingClientRect().height;\n const thumbH = this._scrollThumbElement.getBoundingClientRect().height;\n const contentH = this._contentElement.getBoundingClientRect().height;\n\n if (predictedPos < 0) {\n nextPos = 0;\n } else if (predictedPos > cmpH - thumbH) {\n nextPos = cmpH - thumbH;\n } else {\n nextPos = predictedPos;\n }\n\n this._thumbY = nextPos;\n this._scrollableContainer.scrollTop =\n (nextPos / (cmpH - thumbH)) * (contentH - cmpH);\n }\n\n private _onScrollThumbMouseMoveBound =\n this._onScrollThumbMouseMove.bind(this);\n\n private _onScrollThumbMouseUp(event: MouseEvent) {\n this._isDragging = false;\n this._thumbActive = false;\n\n const cr = this.getBoundingClientRect();\n const {x, y, width, height} = cr;\n const {pageX, pageY} = event;\n\n if (pageX > x + width || pageX < x || pageY > y + height || pageY < y) {\n this._thumbFade = true;\n this._thumbVisible = false;\n }\n\n document.removeEventListener(\n 'mousemove',\n this._onScrollThumbMouseMoveBound\n );\n document.removeEventListener('mouseup', this._onScrollThumbMouseUpBound);\n }\n\n private _onScrollThumbMouseUpBound = this._onScrollThumbMouseUp.bind(this);\n\n private _onScrollableContainerScroll() {\n const scrollTop = this._scrollableContainer.scrollTop;\n this.scrolled = scrollTop > 0;\n\n const cmpH = this.getBoundingClientRect().height;\n const thumbH = this._scrollThumbElement.getBoundingClientRect().height;\n const contentH = this._contentElement.getBoundingClientRect().height;\n\n const overflown = contentH - cmpH;\n const ratio = scrollTop / overflown;\n\n this._thumbY = ratio * (cmpH - thumbH);\n }\n\n private _onComponentMouseOver() {\n this._thumbVisible = true;\n this._thumbFade = false;\n }\n\n private _onComponentMouseOverBound = this._onComponentMouseOver.bind(this);\n\n private _onComponentMouseOut() {\n if (!this._thumbActive) {\n this._thumbVisible = false;\n this._thumbFade = true;\n }\n }\n\n private _onComponentMouseOutBound = this._onComponentMouseOut.bind(this);\n\n render(): TemplateResult {\n return html`\n <div\n class=\"scrollable-container\"\n style=\"${styleMap({\n 'user-select': this._isDragging ? 'none' : 'auto',\n })}\"\n >\n <div class=\"${classMap({shadow: true, visible: this.scrolled})}\"></div>\n ${this._isDragging\n ? html`<div class=\"prevent-interaction\"></div>`\n : nothing}\n <div\n class=\"${classMap({\n 'scrollbar-track': true,\n hidden: !this._scrollbarVisible,\n })}\"\n style=\"${styleMap({\n 'z-index': String(this._scrollbarTrackZ),\n })}\"\n >\n <div\n class=\"${classMap({\n 'scrollbar-thumb': true,\n visible: this._thumbVisible,\n fade: this._thumbFade,\n active: this._thumbActive,\n })}\"\n style=\"${styleMap({\n height: `${this._thumbHeight}px`,\n top: `${this._thumbY}px`,\n })}\"\n @mousedown=${this._onScrollThumbMouseDown}\n ></div>\n </div>\n <div class=\"content\">\n <slot @slotchange=\"${this._onSlotChange}\"></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-scrollable': VscodeScrollable;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"vscode-scrollable.js","sourceRoot":"","sources":["../../src/vscode-scrollable/vscode-scrollable.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {\n customElement,\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-scrollable.styles.js';\n\n/**\n * @cssprop [--min-thumb-height=20px] - Scrollbar thumb minimum height\n * @cssprop --vscode-scrollbar-shadow\n * @cssprop --vscode-scrollbarSlider-background\n * @cssprop --vscode-scrollbarSlider-hoverBackground\n * @cssprop --vscode-scrollbarSlider-activeBackground\n */\n@customElement('vscode-scrollable')\nexport class VscodeScrollable extends VscElement {\n static styles = styles;\n\n @property({type: Boolean, reflect: true})\n shadow = true;\n\n @property({type: Boolean, reflect: true})\n scrolled = false;\n\n @property({type: Number, attribute: 'scroll-pos'})\n set scrollPos(val: number) {\n this._scrollableContainer.scrollTop = val;\n }\n get scrollPos(): number {\n if (!this._scrollableContainer) {\n return 0;\n }\n\n return this._scrollableContainer.scrollTop;\n }\n\n @property({type: Number, attribute: 'scroll-max'})\n get scrollMax(): number {\n if (!this._scrollableContainer) {\n return 0;\n }\n\n return this._scrollableContainer.scrollHeight;\n }\n\n @state()\n private _isDragging = false;\n\n @state()\n private _thumbHeight = 0;\n\n @state()\n private _thumbY = 0;\n\n @state()\n private _thumbVisible = false;\n\n @state()\n private _thumbFade = false;\n\n @state()\n private _thumbActive = false;\n\n @query('.content')\n private _contentElement!: HTMLDivElement;\n\n @query('.scrollbar-thumb')\n private _scrollThumbElement!: HTMLDivElement;\n\n @query('.scrollable-container')\n private _scrollableContainer!: HTMLDivElement;\n\n @queryAssignedElements()\n private _assignedElements!: NodeList;\n\n private _hostResizeObserver!: ResizeObserver;\n private _contentResizeObserver!: ResizeObserver;\n private _scrollThumbStartY = 0;\n private _mouseStartY = 0;\n private _scrollbarVisible = true;\n private _scrollbarTrackZ = 0;\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this._hostResizeObserver = new ResizeObserver(\n this._resizeObserverCallback\n );\n this._contentResizeObserver = new ResizeObserver(\n this._resizeObserverCallback\n );\n\n this.requestUpdate();\n\n this.updateComplete.then(() => {\n this._scrollableContainer.addEventListener(\n 'scroll',\n this._onScrollableContainerScroll.bind(this)\n );\n this._hostResizeObserver.observe(this);\n this._contentResizeObserver.observe(this._contentElement);\n });\n\n this.addEventListener('mouseover', this._onComponentMouseOverBound);\n this.addEventListener('mouseout', this._onComponentMouseOutBound);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n this._hostResizeObserver.unobserve(this);\n this._hostResizeObserver.disconnect();\n this._contentResizeObserver.unobserve(this._contentElement);\n this._contentResizeObserver.disconnect();\n\n this.removeEventListener('mouseover', this._onComponentMouseOverBound);\n this.removeEventListener('mouseout', this._onComponentMouseOutBound);\n }\n\n private _resizeObserverCallback = () => {\n this._updateScrollbar();\n };\n\n private _updateScrollbar() {\n const compCr = this.getBoundingClientRect();\n const contentCr = this._contentElement.getBoundingClientRect();\n\n if (compCr.height >= contentCr.height) {\n this._scrollbarVisible = false;\n } else {\n this._scrollbarVisible = true;\n this._thumbHeight = compCr.height * (compCr.height / contentCr.height);\n }\n\n this.requestUpdate();\n }\n\n private _zIndexFix() {\n let highestZ = 0;\n\n this._assignedElements.forEach((n) => {\n if ('style' in n) {\n const computedZIndex = window.getComputedStyle(n as HTMLElement).zIndex;\n const isNumber = /([0-9-])+/g.test(computedZIndex);\n\n if (isNumber) {\n highestZ =\n Number(computedZIndex) > highestZ\n ? Number(computedZIndex)\n : highestZ;\n }\n }\n });\n\n this._scrollbarTrackZ = highestZ + 1;\n this.requestUpdate();\n }\n\n private _onSlotChange() {\n this._zIndexFix();\n }\n\n private _onScrollThumbMouseDown(event: MouseEvent) {\n const cmpCr = this.getBoundingClientRect();\n const thCr = this._scrollThumbElement.getBoundingClientRect();\n\n this._mouseStartY = event.screenY;\n this._scrollThumbStartY = thCr.top - cmpCr.top;\n this._isDragging = true;\n this._thumbActive = true;\n\n document.addEventListener('mousemove', this._onScrollThumbMouseMoveBound);\n document.addEventListener('mouseup', this._onScrollThumbMouseUpBound);\n }\n\n private _onScrollThumbMouseMove(event: MouseEvent) {\n const predictedPos =\n this._scrollThumbStartY + (event.screenY - this._mouseStartY);\n let nextPos = 0;\n const cmpH = this.getBoundingClientRect().height;\n const thumbH = this._scrollThumbElement.getBoundingClientRect().height;\n const contentH = this._contentElement.getBoundingClientRect().height;\n\n if (predictedPos < 0) {\n nextPos = 0;\n } else if (predictedPos > cmpH - thumbH) {\n nextPos = cmpH - thumbH;\n } else {\n nextPos = predictedPos;\n }\n\n this._thumbY = nextPos;\n this._scrollableContainer.scrollTop =\n (nextPos / (cmpH - thumbH)) * (contentH - cmpH);\n }\n\n private _onScrollThumbMouseMoveBound =\n this._onScrollThumbMouseMove.bind(this);\n\n private _onScrollThumbMouseUp(event: MouseEvent) {\n this._isDragging = false;\n this._thumbActive = false;\n\n const cr = this.getBoundingClientRect();\n const {x, y, width, height} = cr;\n const {pageX, pageY} = event;\n\n if (pageX > x + width || pageX < x || pageY > y + height || pageY < y) {\n this._thumbFade = true;\n this._thumbVisible = false;\n }\n\n document.removeEventListener(\n 'mousemove',\n this._onScrollThumbMouseMoveBound\n );\n document.removeEventListener('mouseup', this._onScrollThumbMouseUpBound);\n }\n\n private _onScrollThumbMouseUpBound = this._onScrollThumbMouseUp.bind(this);\n\n private _onScrollableContainerScroll() {\n const scrollTop = this._scrollableContainer.scrollTop;\n this.scrolled = scrollTop > 0;\n\n const cmpH = this.getBoundingClientRect().height;\n const thumbH = this._scrollThumbElement.getBoundingClientRect().height;\n const contentH = this._contentElement.getBoundingClientRect().height;\n\n const overflown = contentH - cmpH;\n const ratio = scrollTop / overflown;\n\n this._thumbY = ratio * (cmpH - thumbH);\n }\n\n private _onComponentMouseOver() {\n this._thumbVisible = true;\n this._thumbFade = false;\n }\n\n private _onComponentMouseOverBound = this._onComponentMouseOver.bind(this);\n\n private _onComponentMouseOut() {\n if (!this._thumbActive) {\n this._thumbVisible = false;\n this._thumbFade = true;\n }\n }\n\n private _onComponentMouseOutBound = this._onComponentMouseOut.bind(this);\n\n render(): TemplateResult {\n return html`\n <div\n class=\"scrollable-container\"\n style=\"${styleMap({\n 'user-select': this._isDragging ? 'none' : 'auto',\n })}\"\n >\n <div class=\"${classMap({shadow: true, visible: this.scrolled})}\"></div>\n ${this._isDragging\n ? html`<div class=\"prevent-interaction\"></div>`\n : nothing}\n <div\n class=\"${classMap({\n 'scrollbar-track': true,\n hidden: !this._scrollbarVisible,\n })}\"\n style=\"${styleMap({\n 'z-index': String(this._scrollbarTrackZ),\n })}\"\n >\n <div\n class=\"${classMap({\n 'scrollbar-thumb': true,\n visible: this._thumbVisible,\n fade: this._thumbFade,\n active: this._thumbActive,\n })}\"\n style=\"${styleMap({\n height: `${this._thumbHeight}px`,\n top: `${this._thumbY}px`,\n })}\"\n @mousedown=${this._onScrollThumbMouseDown}\n ></div>\n </div>\n <div class=\"content\">\n <slot @slotchange=\"${this._onSlotChange}\"></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-scrollable': VscodeScrollable;\n }\n}\n"]}
|
|
@@ -68,6 +68,7 @@ export declare class VscodeTable extends VscElement {
|
|
|
68
68
|
private _columns;
|
|
69
69
|
private _componentResizeObserver;
|
|
70
70
|
private _headerResizeObserver;
|
|
71
|
+
private _bodyResizeObserver?;
|
|
71
72
|
private _activeSashElementIndex;
|
|
72
73
|
private _activeSashCursorOffset;
|
|
73
74
|
private _componentX;
|
|
@@ -105,12 +106,13 @@ export declare class VscodeTable extends VscElement {
|
|
|
105
106
|
private _initResizeObserver;
|
|
106
107
|
private _componentResizeObserverCallback;
|
|
107
108
|
private _headerResizeObserverCallback;
|
|
109
|
+
private _bodyResizeObserverCallback;
|
|
108
110
|
private _calcColWidthPercentages;
|
|
109
111
|
private _initHeaderCellSizes;
|
|
110
112
|
private _initBodyColumnSizes;
|
|
111
113
|
private _initSashes;
|
|
112
114
|
private _initDefaultColumnSizes;
|
|
113
|
-
private
|
|
115
|
+
private _updateResizeHandlersSize;
|
|
114
116
|
private _applyCompactViewColumnLabels;
|
|
115
117
|
private _clearCompactViewColumnLabels;
|
|
116
118
|
private _toggleCompactView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-table.d.ts","sourceRoot":"","sources":["../../src/vscode-table/vscode-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAC,MAAM,KAAK,CAAC;AAWzC,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACrD,OAAO,sBAAsB,CAAC;AAW9B;;;;;;;;;;;;;;GAcG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,+BAAU;IAEvB,gBAAgB;IAEhB,IAAI,SAAW;IAGf,SAAS,UAAS;IAGlB,UAAU,UAAS;IAGnB,UAAU,SAAO;IAEjB;;;;;;;;;OASG;IACH,IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAMxB;IACD,IAAI,OAAO,IAAI,MAAM,EAAE,CAEtB;IAED;;;;;;;;OAQG;IAEH,cAAc,SAAU;IAGxB,eAAe,UAAS;IAExB;;OAEG;IAEH,OAAO,UAAS;IAGhB,OAAO,CAAC,SAAS,CAAmB;IAGpC,OAAO,CAAC,cAAc,CAAkB;IAGxC,OAAO,CAAC,kBAAkB,CAAoB;IAG9C,OAAO,CAAC,oBAAoB,CAAoB;IAOhD,OAAO,CAAC,uBAAuB,CAAiC;IAOhE,OAAO,CAAC,qBAAqB,CAA+B;IAE5D;;OAEG;IAEH,OAAO,CAAC,cAAc,CAAgB;IAGtC,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACH,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,wBAAwB,CAAkB;IAClD,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,uBAAuB,CAAM;IACrC,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,WAAW,CAAK;IACxB;;;OAGG;IACH,OAAO,CAAC,YAAY,CAA+B;IACnD;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,oBAAoB,CAA2B;IACvD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAK;IAEjC,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"vscode-table.d.ts","sourceRoot":"","sources":["../../src/vscode-table/vscode-table.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,13 +80,29 @@ let VscodeTable = class VscodeTable extends VscElement {
|
|
|
80
80
|
this._prevComponentHeight = 0;
|
|
81
81
|
this._componentResizeObserverCallback = () => {
|
|
82
82
|
this._memoizeComponentDimensions();
|
|
83
|
-
this.
|
|
83
|
+
this._updateResizeHandlersSize();
|
|
84
84
|
if (this.responsive) {
|
|
85
85
|
this._toggleCompactView();
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
88
|
this._headerResizeObserverCallback = () => {
|
|
89
|
-
this.
|
|
89
|
+
this._updateResizeHandlersSize();
|
|
90
|
+
};
|
|
91
|
+
this._bodyResizeObserverCallback = () => {
|
|
92
|
+
let headerHeight = 0;
|
|
93
|
+
let tbodyHeight = 0;
|
|
94
|
+
const tableHeight = this.getBoundingClientRect().height;
|
|
95
|
+
if (this._assignedHeaderElements && this._assignedHeaderElements.length) {
|
|
96
|
+
headerHeight =
|
|
97
|
+
this._assignedHeaderElements[0].getBoundingClientRect().height;
|
|
98
|
+
}
|
|
99
|
+
if (this._assignedBodyElements && this._assignedBodyElements.length) {
|
|
100
|
+
tbodyHeight =
|
|
101
|
+
this._assignedBodyElements[0].getBoundingClientRect().height;
|
|
102
|
+
}
|
|
103
|
+
const overflownContentHeight = tbodyHeight - headerHeight - tableHeight;
|
|
104
|
+
this._scrollableElement.style.height =
|
|
105
|
+
overflownContentHeight > 0 ? `${tableHeight - headerHeight}px` : 'auto';
|
|
90
106
|
};
|
|
91
107
|
this._onResizingMouseMove = (event) => {
|
|
92
108
|
event.stopPropagation();
|
|
@@ -136,6 +152,7 @@ let VscodeTable = class VscodeTable extends VscElement {
|
|
|
136
152
|
super.disconnectedCallback();
|
|
137
153
|
this._componentResizeObserver.unobserve(this);
|
|
138
154
|
this._componentResizeObserver.disconnect();
|
|
155
|
+
this._bodyResizeObserver?.disconnect();
|
|
139
156
|
}
|
|
140
157
|
_px2Percent(px) {
|
|
141
158
|
return (px / this._componentW) * 100;
|
|
@@ -241,7 +258,7 @@ let VscodeTable = class VscodeTable extends VscElement {
|
|
|
241
258
|
this._initBodyColumnSizes(colWidths);
|
|
242
259
|
this._initSashes(colWidths);
|
|
243
260
|
}
|
|
244
|
-
|
|
261
|
+
_updateResizeHandlersSize() {
|
|
245
262
|
const headerCr = this._headerElement.getBoundingClientRect();
|
|
246
263
|
if (headerCr.height === this._prevHeaderHeight &&
|
|
247
264
|
this._componentH === this._prevComponentHeight) {
|
|
@@ -249,10 +266,9 @@ let VscodeTable = class VscodeTable extends VscElement {
|
|
|
249
266
|
}
|
|
250
267
|
this._prevHeaderHeight = headerCr.height;
|
|
251
268
|
this._prevComponentHeight = this._componentH;
|
|
252
|
-
const
|
|
253
|
-
this._scrollableElement.style.height = `${scrollableH}px`;
|
|
269
|
+
const bodyHeight = this._componentH - headerCr.height;
|
|
254
270
|
this._sashVisibleElements.forEach((el) => {
|
|
255
|
-
el.style.height = `${
|
|
271
|
+
el.style.height = `${bodyHeight}px`;
|
|
256
272
|
el.style.top = `${headerCr.height}px`;
|
|
257
273
|
});
|
|
258
274
|
}
|
|
@@ -293,6 +309,14 @@ let VscodeTable = class VscodeTable extends VscElement {
|
|
|
293
309
|
_onBodySlotChange() {
|
|
294
310
|
this._initDefaultColumnSizes();
|
|
295
311
|
this._initResizeObserver();
|
|
312
|
+
this._updateResizeHandlersSize();
|
|
313
|
+
if (!this._bodyResizeObserver) {
|
|
314
|
+
const tbody = this._assignedBodyElements[0] ?? null;
|
|
315
|
+
if (tbody) {
|
|
316
|
+
this._bodyResizeObserver = new ResizeObserver(this._bodyResizeObserverCallback);
|
|
317
|
+
this._bodyResizeObserver.observe(tbody);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
296
320
|
}
|
|
297
321
|
_onSashMouseOver(event) {
|
|
298
322
|
if (this._isDragging) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-table.js","sourceRoot":"","sources":["../../src/vscode-table/vscode-table.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {\n customElement,\n property,\n query,\n queryAll,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {VscElement} from '../includes/VscElement.js';\nimport '../vscode-scrollable';\nimport {VscodeScrollable} from '../vscode-scrollable/index.js';\nimport {VscodeTableBody} from '../vscode-table-body/index.js';\nimport {VscodeTableCell} from '../vscode-table-cell/index.js';\nimport {VscodeTableHeader} from '../vscode-table-header/index.js';\nimport {VscodeTableHeaderCell} from '../vscode-table-header-cell/index.js';\nimport {rawValueToPercentage} from './helpers.js';\nimport styles from './vscode-table.styles.js';\n\nconst COMPONENT_WIDTH_PERCENTAGE = 100;\n\n/**\n * @attr {Boolean} zebra - Zebra stripes, even rows are tinted.\n * @attr {Boolean} zebra-odd - Zebra stripes, odd rows are tinted.\n * @attr {Boolean} bordered-rows - Rows are separated by borders\n * @attr {Boolean} bordered-columns - Columns are separated by borders\n * @attr {Boolean} bordered - Rows and columns are separated by borders\n *\n * @cssprop [--border=var(--vscode-editorGroup-border)]\n * @cssprop [--foreground=var(--vscode-foreground)]\n * @cssprop [--resize-hover-border=var(--vscode-sash-hoverBorder)]\n * @cssprop [--tinted-row-background=var(--vscode-keybindingTable-rowsBackground)]\n * @cssprop [--header-background=var(--vscode-keybindingTable-headerBackground)]\n * @cssprop [--font-size=var(--vscode-font-size)]\n * @cssprop [--font-family=var(--vscode-font-family)]\n */\n@customElement('vscode-table')\nexport class VscodeTable extends VscElement {\n static styles = styles;\n\n /** @internal */\n @property({reflect: true})\n role = 'table';\n\n @property({type: Boolean, reflect: true})\n resizable = false;\n\n @property({type: Boolean, reflect: true})\n responsive = false;\n\n @property({type: Number})\n breakpoint = 300;\n\n /**\n * Initial column sizes in a JSON-encoded array.\n * Accepted values are:\n * - number\n * - string-type number (ex.: \"100\")\n * - px value (ex.: \"100px\")\n * - percentage value (ex.: \"50%\")\n * - percentage value (ex.: \"50%\")\n * - \"auto\" keyword\n */\n @property({type: Array})\n set columns(val: string[]) {\n this._columns = val;\n\n if (this.isConnected) {\n this._initDefaultColumnSizes();\n }\n }\n get columns(): string[] {\n return this._columns;\n }\n\n /**\n * Minimum column width. Valid values are:\n * - number\n * - string-type number (ex.: \"100\")\n * - px value (ex.: \"100px\")\n * - percentage value (ex.: \"50%\")\n * - percentage value (ex.: \"50%\")\n * - \"auto\" keyword\n */\n @property({attribute: 'min-column-width'})\n minColumnWidth = '50px';\n\n @property({type: Boolean, reflect: true, attribute: 'delayed-resizing'})\n delayedResizing = false;\n\n /**\n * For internal use only\n */\n @property({type: Boolean, reflect: true})\n compact = false;\n\n @query('slot[name=\"body\"]')\n private _bodySlot!: HTMLSlotElement;\n\n @query('.header')\n private _headerElement!: HTMLDivElement;\n\n @query('.scrollable')\n private _scrollableElement!: VscodeScrollable;\n\n @queryAll('.sash-visible')\n private _sashVisibleElements!: HTMLDivElement[];\n\n @queryAssignedElements({\n slot: 'header',\n flatten: true,\n selector: 'vscode-table-header',\n })\n private _assignedHeaderElements!: NodeListOf<VscodeTableHeader>;\n\n @queryAssignedElements({\n slot: 'body',\n flatten: true,\n selector: 'vscode-table-body',\n })\n private _assignedBodyElements!: NodeListOf<VscodeTableBody>;\n\n /**\n * Sash positions in percentage\n */\n @state()\n private _sashPositions: number[] = [];\n\n @state()\n private _isDragging = false;\n\n /**\n * Sash hover state flags, used in the render.\n */\n private _sashHovers: boolean[] = [];\n private _columns: string[] = [];\n private _componentResizeObserver!: ResizeObserver;\n private _headerResizeObserver!: ResizeObserver;\n private _activeSashElementIndex = -1;\n private _activeSashCursorOffset = 0;\n private _componentX = 0;\n private _componentH = 0;\n private _componentW = 0;\n /**\n * Cached querySelectorAll result. Updated when the header slot changes.\n * It shouldn't be used directly, check the \"_getHeaderCells\" function.\n */\n private _headerCells: VscodeTableHeaderCell[] = [];\n /**\n * Cached querySelectorAll result. Updated when the body slot changes.\n * It shouldn't be used directly, check the \"_getCellsOfFirstRow\" function.\n */\n private _cellsOfFirstRow: VscodeTableCell[] = [];\n private _cellsToResize!: VscodeTableCell[];\n private _headerCellsToResize!: VscodeTableHeaderCell[];\n private _prevHeaderHeight = 0;\n private _prevComponentHeight = 0;\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this._memoizeComponentDimensions();\n this._initDefaultColumnSizes();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this._componentResizeObserver.unobserve(this);\n this._componentResizeObserver.disconnect();\n }\n\n private _px2Percent(px: number) {\n return (px / this._componentW) * 100;\n }\n\n private _percent2Px(percent: number) {\n return (this._componentW * percent) / 100;\n }\n\n private _memoizeComponentDimensions() {\n const cr = this.getBoundingClientRect();\n\n this._componentH = cr.height;\n this._componentW = cr.width;\n this._componentX = cr.x;\n }\n\n private _queryHeaderCells() {\n const headers = this._assignedHeaderElements;\n\n if (!(headers && headers[0])) {\n return [];\n }\n\n return Array.from(\n headers[0].querySelectorAll<VscodeTableHeaderCell>(\n 'vscode-table-header-cell'\n )\n );\n }\n\n /**\n * Get cached header cells\n */\n private _getHeaderCells() {\n if (!this._headerCells.length) {\n this._headerCells = this._queryHeaderCells();\n }\n\n return this._headerCells;\n }\n\n private _queryCellsOfFirstRow() {\n const assignedBodyElements = this._assignedBodyElements;\n\n if (!(assignedBodyElements && assignedBodyElements[0])) {\n return [];\n }\n\n return Array.from(\n assignedBodyElements[0].querySelectorAll<VscodeTableCell>(\n 'vscode-table-row:first-child vscode-table-cell'\n )\n );\n }\n\n /**\n * Get cached cells of first row\n */\n private _getCellsOfFirstRow() {\n if (!this._cellsOfFirstRow.length) {\n this._cellsOfFirstRow = this._queryCellsOfFirstRow();\n }\n\n return this._cellsOfFirstRow;\n }\n\n private _initResizeObserver() {\n this._componentResizeObserver = new ResizeObserver(\n this._componentResizeObserverCallback\n );\n this._componentResizeObserver.observe(this);\n\n this._headerResizeObserver = new ResizeObserver(\n this._headerResizeObserverCallback\n );\n this._headerResizeObserver.observe(this._headerElement);\n }\n\n private _componentResizeObserverCallback = () => {\n this._memoizeComponentDimensions();\n this._updateScrollpaneSize();\n\n if (this.responsive) {\n this._toggleCompactView();\n }\n };\n\n private _headerResizeObserverCallback = () => {\n this._updateScrollpaneSize();\n };\n\n private _calcColWidthPercentages(): number[] {\n const numCols = this._getHeaderCells().length;\n let cols: (string | number)[] = this.columns.slice(0, numCols);\n const numAutoCols =\n cols.filter((c) => c === 'auto').length + numCols - cols.length;\n let availablePercent = 100;\n\n cols = cols.map((col) => {\n const percentage = rawValueToPercentage(col, this._componentW);\n\n if (percentage === null) {\n return 'auto';\n }\n\n availablePercent -= percentage;\n\n return percentage;\n });\n\n if (cols.length < numCols) {\n for (let i = cols.length; i < numCols; i++) {\n cols.push('auto');\n }\n }\n\n cols = cols.map((col) => {\n if (col === 'auto') {\n return availablePercent / numAutoCols;\n }\n\n return col as number;\n });\n\n return cols as number[];\n }\n\n private _initHeaderCellSizes(colWidths: number[]) {\n this._getHeaderCells().forEach((cell, index) => {\n cell.style.width = `${colWidths[index]}%`;\n });\n }\n\n private _initBodyColumnSizes(colWidths: number[]) {\n this._getCellsOfFirstRow().forEach((cell, index) => {\n cell.style.width = `${colWidths[index]}%`;\n });\n }\n\n private _initSashes(colWidths: number[]) {\n const l = colWidths.length;\n let prevHandlerPos = 0;\n this._sashPositions = [];\n\n colWidths.forEach((collW, index) => {\n if (index < l - 1) {\n const pos = prevHandlerPos + collW;\n\n this._sashPositions.push(pos);\n prevHandlerPos = pos;\n }\n });\n }\n\n private _initDefaultColumnSizes() {\n const colWidths = this._calcColWidthPercentages();\n\n this._initHeaderCellSizes(colWidths);\n this._initBodyColumnSizes(colWidths);\n this._initSashes(colWidths);\n }\n\n private _updateScrollpaneSize() {\n const headerCr = this._headerElement.getBoundingClientRect();\n\n if (\n headerCr.height === this._prevHeaderHeight &&\n this._componentH === this._prevComponentHeight\n ) {\n return;\n }\n\n this._prevHeaderHeight = headerCr.height;\n this._prevComponentHeight = this._componentH;\n const scrollableH = this._componentH - headerCr.height;\n this._scrollableElement.style.height = `${scrollableH}px`;\n\n this._sashVisibleElements.forEach((el) => {\n el.style.height = `${scrollableH}px`;\n el.style.top = `${headerCr.height}px`;\n });\n }\n\n private _applyCompactViewColumnLabels() {\n const headerCells = this._getHeaderCells();\n const labels = headerCells.map((c) => c.innerText);\n const rows = this.querySelectorAll('vscode-table-row');\n\n rows.forEach((r) => {\n const cells = r.querySelectorAll('vscode-table-cell');\n\n cells.forEach((c, i) => {\n c.columnLabel = labels[i];\n c.compact = true;\n });\n });\n }\n\n private _clearCompactViewColumnLabels() {\n this.querySelectorAll('vscode-table-cell').forEach((c) => {\n c.columnLabel = '';\n c.compact = false;\n });\n }\n\n private _toggleCompactView() {\n const cr = this.getBoundingClientRect();\n const nextCompactView = cr.width < this.breakpoint;\n\n if (this.compact !== nextCompactView) {\n this.compact = nextCompactView;\n\n if (nextCompactView) {\n this._applyCompactViewColumnLabels();\n } else {\n this._clearCompactViewColumnLabels();\n }\n }\n }\n\n private _onHeaderSlotChange() {\n this._headerCells = this._queryHeaderCells();\n }\n\n private _onBodySlotChange() {\n this._initDefaultColumnSizes();\n this._initResizeObserver();\n }\n\n private _onSashMouseOver(event: MouseEvent) {\n if (this._isDragging) {\n return;\n }\n\n const target = event.currentTarget as HTMLDivElement;\n const index = Number(target.dataset.index);\n this._sashHovers[index] = true;\n this.requestUpdate();\n }\n\n private _onSashMouseOut(event: MouseEvent) {\n event.stopPropagation();\n\n if (this._isDragging) {\n return;\n }\n\n const target = event.currentTarget as HTMLDivElement;\n const index = Number(target.dataset.index);\n this._sashHovers[index] = false;\n this.requestUpdate();\n }\n\n private _onSashMouseDown(event: MouseEvent) {\n event.stopPropagation();\n\n const {pageX, currentTarget} = event;\n const el = currentTarget as HTMLDivElement;\n const index = Number(el.dataset.index);\n const cr = el.getBoundingClientRect();\n const elX = cr.x;\n\n this._isDragging = true;\n this._activeSashElementIndex = index;\n this._sashHovers[this._activeSashElementIndex] = true;\n this._activeSashCursorOffset = this._px2Percent(pageX - elX);\n\n const headerCells = this._getHeaderCells();\n this._headerCellsToResize = [];\n this._headerCellsToResize.push(headerCells[index]);\n\n if (headerCells[index + 1]) {\n this._headerCellsToResize[1] = headerCells[index + 1];\n }\n\n const tbody = this._bodySlot.assignedElements()[0];\n const cells = tbody.querySelectorAll<VscodeTableCell>(\n 'vscode-table-row:first-child > vscode-table-cell'\n );\n this._cellsToResize = [];\n this._cellsToResize.push(cells[index]);\n\n if (cells[index + 1]) {\n this._cellsToResize.push(cells[index + 1]);\n }\n\n document.addEventListener('mousemove', this._onResizingMouseMove);\n document.addEventListener('mouseup', this._onResizingMouseUp);\n }\n\n private _updateActiveSashPosition(mouseX: number) {\n const {prevSashPos, nextSashPos} = this._getSashPositions();\n let minColumnWidth = rawValueToPercentage(\n this.minColumnWidth,\n this._componentW\n );\n\n if (minColumnWidth === null) {\n minColumnWidth = 0;\n }\n\n const minX = prevSashPos ? prevSashPos + minColumnWidth : minColumnWidth;\n const maxX = nextSashPos\n ? nextSashPos - minColumnWidth\n : COMPONENT_WIDTH_PERCENTAGE - minColumnWidth;\n let newX = this._px2Percent(\n mouseX - this._componentX - this._percent2Px(this._activeSashCursorOffset)\n );\n\n newX = Math.max(newX, minX);\n newX = Math.min(newX, maxX);\n\n this._sashPositions[this._activeSashElementIndex] = newX;\n this.requestUpdate();\n }\n\n private _getSashPositions(): {\n sashPos: number;\n prevSashPos: number;\n nextSashPos: number;\n } {\n const sashPos = this._sashPositions[this._activeSashElementIndex];\n const prevSashPos =\n this._sashPositions[this._activeSashElementIndex - 1] || 0;\n const nextSashPos =\n this._sashPositions[this._activeSashElementIndex + 1] ||\n COMPONENT_WIDTH_PERCENTAGE;\n\n return {\n sashPos,\n prevSashPos,\n nextSashPos,\n };\n }\n\n private _resizeColumns(resizeBodyCells = true) {\n const {sashPos, prevSashPos, nextSashPos} = this._getSashPositions();\n\n const prevColW = sashPos - prevSashPos;\n const nextColW = nextSashPos - sashPos;\n const prevColCss = `${prevColW}%`;\n const nextColCss = `${nextColW}%`;\n\n this._headerCellsToResize[0].style.width = prevColCss;\n\n if (this._headerCellsToResize[1]) {\n this._headerCellsToResize[1].style.width = nextColCss;\n }\n\n if (resizeBodyCells) {\n this._cellsToResize[0].style.width = prevColCss;\n\n if (this._cellsToResize[1]) {\n this._cellsToResize[1].style.width = nextColCss;\n }\n }\n }\n\n private _onResizingMouseMove = (event: MouseEvent) => {\n event.stopPropagation();\n this._updateActiveSashPosition(event.pageX);\n\n if (!this.delayedResizing) {\n this._resizeColumns(true);\n } else {\n this._resizeColumns(false);\n }\n };\n\n private _onResizingMouseUp = (event: MouseEvent) => {\n this._resizeColumns(true);\n this._updateActiveSashPosition(event.pageX);\n this._sashHovers[this._activeSashElementIndex] = false;\n this._isDragging = false;\n this._activeSashElementIndex = -1;\n\n document.removeEventListener('mousemove', this._onResizingMouseMove);\n document.removeEventListener('mouseup', this._onResizingMouseUp);\n };\n\n render(): TemplateResult {\n const sashes = this._sashPositions.map((val, index) => {\n const classes = classMap({\n sash: true,\n hover: this._sashHovers[index],\n resizable: this.resizable,\n });\n\n const left = `${val}%`;\n\n return this.resizable\n ? html`\n <div\n class=\"${classes}\"\n data-index=\"${index}\"\n style=\"${styleMap({left})}\"\n @mousedown=\"${this._onSashMouseDown}\"\n @mouseover=\"${this._onSashMouseOver}\"\n @mouseout=\"${this._onSashMouseOut}\"\n >\n <div class=\"sash-visible\"></div>\n <div class=\"sash-clickable\"></div>\n </div>\n `\n : html`<div\n class=\"${classes}\"\n data-index=\"${index}\"\n style=\"${styleMap({left})}\"\n >\n <div class=\"sash-visible\"></div>\n </div>`;\n });\n\n const wrapperClasses = classMap({\n wrapper: true,\n 'select-disabled': this._isDragging,\n 'resize-cursor': this._isDragging,\n 'compact-view': this.compact,\n });\n\n return html`\n <div class=\"${wrapperClasses}\">\n <div class=\"header\" @slotchange=\"${this._onHeaderSlotChange}\">\n <slot name=\"caption\"></slot>\n <div class=\"header-slot-wrapper\">\n <slot name=\"header\"></slot>\n </div>\n </div>\n <vscode-scrollable class=\"scrollable\">\n <div>\n <slot name=\"body\" @slotchange=\"${this._onBodySlotChange}\"></slot>\n </div>\n </vscode-scrollable>\n ${sashes}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-table': VscodeTable;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"vscode-table.js","sourceRoot":"","sources":["../../src/vscode-table/vscode-table.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {\n customElement,\n property,\n query,\n queryAll,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {VscElement} from '../includes/VscElement.js';\nimport '../vscode-scrollable';\nimport {VscodeScrollable} from '../vscode-scrollable/index.js';\nimport {VscodeTableBody} from '../vscode-table-body/index.js';\nimport {VscodeTableCell} from '../vscode-table-cell/index.js';\nimport {VscodeTableHeader} from '../vscode-table-header/index.js';\nimport {VscodeTableHeaderCell} from '../vscode-table-header-cell/index.js';\nimport {rawValueToPercentage} from './helpers.js';\nimport styles from './vscode-table.styles.js';\n\nconst COMPONENT_WIDTH_PERCENTAGE = 100;\n\n/**\n * @attr {Boolean} zebra - Zebra stripes, even rows are tinted.\n * @attr {Boolean} zebra-odd - Zebra stripes, odd rows are tinted.\n * @attr {Boolean} bordered-rows - Rows are separated by borders\n * @attr {Boolean} bordered-columns - Columns are separated by borders\n * @attr {Boolean} bordered - Rows and columns are separated by borders\n *\n * @cssprop [--border=var(--vscode-editorGroup-border)]\n * @cssprop [--foreground=var(--vscode-foreground)]\n * @cssprop [--resize-hover-border=var(--vscode-sash-hoverBorder)]\n * @cssprop [--tinted-row-background=var(--vscode-keybindingTable-rowsBackground)]\n * @cssprop [--header-background=var(--vscode-keybindingTable-headerBackground)]\n * @cssprop [--font-size=var(--vscode-font-size)]\n * @cssprop [--font-family=var(--vscode-font-family)]\n */\n@customElement('vscode-table')\nexport class VscodeTable extends VscElement {\n static styles = styles;\n\n /** @internal */\n @property({reflect: true})\n role = 'table';\n\n @property({type: Boolean, reflect: true})\n resizable = false;\n\n @property({type: Boolean, reflect: true})\n responsive = false;\n\n @property({type: Number})\n breakpoint = 300;\n\n /**\n * Initial column sizes in a JSON-encoded array.\n * Accepted values are:\n * - number\n * - string-type number (ex.: \"100\")\n * - px value (ex.: \"100px\")\n * - percentage value (ex.: \"50%\")\n * - percentage value (ex.: \"50%\")\n * - \"auto\" keyword\n */\n @property({type: Array})\n set columns(val: string[]) {\n this._columns = val;\n\n if (this.isConnected) {\n this._initDefaultColumnSizes();\n }\n }\n get columns(): string[] {\n return this._columns;\n }\n\n /**\n * Minimum column width. Valid values are:\n * - number\n * - string-type number (ex.: \"100\")\n * - px value (ex.: \"100px\")\n * - percentage value (ex.: \"50%\")\n * - percentage value (ex.: \"50%\")\n * - \"auto\" keyword\n */\n @property({attribute: 'min-column-width'})\n minColumnWidth = '50px';\n\n @property({type: Boolean, reflect: true, attribute: 'delayed-resizing'})\n delayedResizing = false;\n\n /**\n * For internal use only\n */\n @property({type: Boolean, reflect: true})\n compact = false;\n\n @query('slot[name=\"body\"]')\n private _bodySlot!: HTMLSlotElement;\n\n @query('.header')\n private _headerElement!: HTMLDivElement;\n\n @query('.scrollable')\n private _scrollableElement!: VscodeScrollable;\n\n @queryAll('.sash-visible')\n private _sashVisibleElements!: HTMLDivElement[];\n\n @queryAssignedElements({\n slot: 'header',\n flatten: true,\n selector: 'vscode-table-header',\n })\n private _assignedHeaderElements!: NodeListOf<VscodeTableHeader>;\n\n @queryAssignedElements({\n slot: 'body',\n flatten: true,\n selector: 'vscode-table-body',\n })\n private _assignedBodyElements!: NodeListOf<VscodeTableBody>;\n\n /**\n * Sash positions in percentage\n */\n @state()\n private _sashPositions: number[] = [];\n\n @state()\n private _isDragging = false;\n\n /**\n * Sash hover state flags, used in the render.\n */\n private _sashHovers: boolean[] = [];\n private _columns: string[] = [];\n private _componentResizeObserver!: ResizeObserver;\n private _headerResizeObserver!: ResizeObserver;\n private _bodyResizeObserver?: ResizeObserver;\n private _activeSashElementIndex = -1;\n private _activeSashCursorOffset = 0;\n private _componentX = 0;\n private _componentH = 0;\n private _componentW = 0;\n /**\n * Cached querySelectorAll result. Updated when the header slot changes.\n * It shouldn't be used directly, check the \"_getHeaderCells\" function.\n */\n private _headerCells: VscodeTableHeaderCell[] = [];\n /**\n * Cached querySelectorAll result. Updated when the body slot changes.\n * It shouldn't be used directly, check the \"_getCellsOfFirstRow\" function.\n */\n private _cellsOfFirstRow: VscodeTableCell[] = [];\n private _cellsToResize!: VscodeTableCell[];\n private _headerCellsToResize!: VscodeTableHeaderCell[];\n private _prevHeaderHeight = 0;\n private _prevComponentHeight = 0;\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this._memoizeComponentDimensions();\n this._initDefaultColumnSizes();\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this._componentResizeObserver.unobserve(this);\n this._componentResizeObserver.disconnect();\n this._bodyResizeObserver?.disconnect();\n }\n\n private _px2Percent(px: number) {\n return (px / this._componentW) * 100;\n }\n\n private _percent2Px(percent: number) {\n return (this._componentW * percent) / 100;\n }\n\n private _memoizeComponentDimensions() {\n const cr = this.getBoundingClientRect();\n\n this._componentH = cr.height;\n this._componentW = cr.width;\n this._componentX = cr.x;\n }\n\n private _queryHeaderCells() {\n const headers = this._assignedHeaderElements;\n\n if (!(headers && headers[0])) {\n return [];\n }\n\n return Array.from(\n headers[0].querySelectorAll<VscodeTableHeaderCell>(\n 'vscode-table-header-cell'\n )\n );\n }\n\n /**\n * Get cached header cells\n */\n private _getHeaderCells() {\n if (!this._headerCells.length) {\n this._headerCells = this._queryHeaderCells();\n }\n\n return this._headerCells;\n }\n\n private _queryCellsOfFirstRow() {\n const assignedBodyElements = this._assignedBodyElements;\n\n if (!(assignedBodyElements && assignedBodyElements[0])) {\n return [];\n }\n\n return Array.from(\n assignedBodyElements[0].querySelectorAll<VscodeTableCell>(\n 'vscode-table-row:first-child vscode-table-cell'\n )\n );\n }\n\n /**\n * Get cached cells of first row\n */\n private _getCellsOfFirstRow() {\n if (!this._cellsOfFirstRow.length) {\n this._cellsOfFirstRow = this._queryCellsOfFirstRow();\n }\n\n return this._cellsOfFirstRow;\n }\n\n private _initResizeObserver() {\n this._componentResizeObserver = new ResizeObserver(\n this._componentResizeObserverCallback\n );\n this._componentResizeObserver.observe(this);\n\n this._headerResizeObserver = new ResizeObserver(\n this._headerResizeObserverCallback\n );\n this._headerResizeObserver.observe(this._headerElement);\n }\n\n private _componentResizeObserverCallback = () => {\n this._memoizeComponentDimensions();\n this._updateResizeHandlersSize();\n\n if (this.responsive) {\n this._toggleCompactView();\n }\n };\n\n private _headerResizeObserverCallback = () => {\n this._updateResizeHandlersSize();\n };\n\n private _bodyResizeObserverCallback = () => {\n let headerHeight = 0;\n let tbodyHeight = 0;\n const tableHeight = this.getBoundingClientRect().height;\n\n if (this._assignedHeaderElements && this._assignedHeaderElements.length) {\n headerHeight =\n this._assignedHeaderElements[0].getBoundingClientRect().height;\n }\n\n if (this._assignedBodyElements && this._assignedBodyElements.length) {\n tbodyHeight =\n this._assignedBodyElements[0].getBoundingClientRect().height;\n }\n\n const overflownContentHeight = tbodyHeight - headerHeight - tableHeight;\n\n this._scrollableElement.style.height =\n overflownContentHeight > 0 ? `${tableHeight - headerHeight}px` : 'auto';\n };\n\n private _calcColWidthPercentages(): number[] {\n const numCols = this._getHeaderCells().length;\n let cols: (string | number)[] = this.columns.slice(0, numCols);\n const numAutoCols =\n cols.filter((c) => c === 'auto').length + numCols - cols.length;\n let availablePercent = 100;\n\n cols = cols.map((col) => {\n const percentage = rawValueToPercentage(col, this._componentW);\n\n if (percentage === null) {\n return 'auto';\n }\n\n availablePercent -= percentage;\n\n return percentage;\n });\n\n if (cols.length < numCols) {\n for (let i = cols.length; i < numCols; i++) {\n cols.push('auto');\n }\n }\n\n cols = cols.map((col) => {\n if (col === 'auto') {\n return availablePercent / numAutoCols;\n }\n\n return col as number;\n });\n\n return cols as number[];\n }\n\n private _initHeaderCellSizes(colWidths: number[]) {\n this._getHeaderCells().forEach((cell, index) => {\n cell.style.width = `${colWidths[index]}%`;\n });\n }\n\n private _initBodyColumnSizes(colWidths: number[]) {\n this._getCellsOfFirstRow().forEach((cell, index) => {\n cell.style.width = `${colWidths[index]}%`;\n });\n }\n\n private _initSashes(colWidths: number[]) {\n const l = colWidths.length;\n let prevHandlerPos = 0;\n this._sashPositions = [];\n\n colWidths.forEach((collW, index) => {\n if (index < l - 1) {\n const pos = prevHandlerPos + collW;\n\n this._sashPositions.push(pos);\n prevHandlerPos = pos;\n }\n });\n }\n\n private _initDefaultColumnSizes() {\n const colWidths = this._calcColWidthPercentages();\n\n this._initHeaderCellSizes(colWidths);\n this._initBodyColumnSizes(colWidths);\n this._initSashes(colWidths);\n }\n\n private _updateResizeHandlersSize() {\n const headerCr = this._headerElement.getBoundingClientRect();\n\n if (\n headerCr.height === this._prevHeaderHeight &&\n this._componentH === this._prevComponentHeight\n ) {\n return;\n }\n\n this._prevHeaderHeight = headerCr.height;\n this._prevComponentHeight = this._componentH;\n\n const bodyHeight = this._componentH - headerCr.height;\n\n this._sashVisibleElements.forEach((el) => {\n el.style.height = `${bodyHeight}px`;\n el.style.top = `${headerCr.height}px`;\n });\n }\n\n private _applyCompactViewColumnLabels() {\n const headerCells = this._getHeaderCells();\n const labels = headerCells.map((c) => c.innerText);\n const rows = this.querySelectorAll('vscode-table-row');\n\n rows.forEach((r) => {\n const cells = r.querySelectorAll('vscode-table-cell');\n\n cells.forEach((c, i) => {\n c.columnLabel = labels[i];\n c.compact = true;\n });\n });\n }\n\n private _clearCompactViewColumnLabels() {\n this.querySelectorAll('vscode-table-cell').forEach((c) => {\n c.columnLabel = '';\n c.compact = false;\n });\n }\n\n private _toggleCompactView() {\n const cr = this.getBoundingClientRect();\n const nextCompactView = cr.width < this.breakpoint;\n\n if (this.compact !== nextCompactView) {\n this.compact = nextCompactView;\n\n if (nextCompactView) {\n this._applyCompactViewColumnLabels();\n } else {\n this._clearCompactViewColumnLabels();\n }\n }\n }\n\n private _onHeaderSlotChange() {\n this._headerCells = this._queryHeaderCells();\n }\n\n private _onBodySlotChange() {\n this._initDefaultColumnSizes();\n this._initResizeObserver();\n this._updateResizeHandlersSize();\n\n if (!this._bodyResizeObserver) {\n const tbody = this._assignedBodyElements[0] ?? null;\n\n if (tbody) {\n this._bodyResizeObserver = new ResizeObserver(\n this._bodyResizeObserverCallback\n );\n this._bodyResizeObserver.observe(tbody);\n }\n }\n }\n\n private _onSashMouseOver(event: MouseEvent) {\n if (this._isDragging) {\n return;\n }\n\n const target = event.currentTarget as HTMLDivElement;\n const index = Number(target.dataset.index);\n this._sashHovers[index] = true;\n this.requestUpdate();\n }\n\n private _onSashMouseOut(event: MouseEvent) {\n event.stopPropagation();\n\n if (this._isDragging) {\n return;\n }\n\n const target = event.currentTarget as HTMLDivElement;\n const index = Number(target.dataset.index);\n this._sashHovers[index] = false;\n this.requestUpdate();\n }\n\n private _onSashMouseDown(event: MouseEvent) {\n event.stopPropagation();\n\n const {pageX, currentTarget} = event;\n const el = currentTarget as HTMLDivElement;\n const index = Number(el.dataset.index);\n const cr = el.getBoundingClientRect();\n const elX = cr.x;\n\n this._isDragging = true;\n this._activeSashElementIndex = index;\n this._sashHovers[this._activeSashElementIndex] = true;\n this._activeSashCursorOffset = this._px2Percent(pageX - elX);\n\n const headerCells = this._getHeaderCells();\n this._headerCellsToResize = [];\n this._headerCellsToResize.push(headerCells[index]);\n\n if (headerCells[index + 1]) {\n this._headerCellsToResize[1] = headerCells[index + 1];\n }\n\n const tbody = this._bodySlot.assignedElements()[0];\n const cells = tbody.querySelectorAll<VscodeTableCell>(\n 'vscode-table-row:first-child > vscode-table-cell'\n );\n this._cellsToResize = [];\n this._cellsToResize.push(cells[index]);\n\n if (cells[index + 1]) {\n this._cellsToResize.push(cells[index + 1]);\n }\n\n document.addEventListener('mousemove', this._onResizingMouseMove);\n document.addEventListener('mouseup', this._onResizingMouseUp);\n }\n\n private _updateActiveSashPosition(mouseX: number) {\n const {prevSashPos, nextSashPos} = this._getSashPositions();\n let minColumnWidth = rawValueToPercentage(\n this.minColumnWidth,\n this._componentW\n );\n\n if (minColumnWidth === null) {\n minColumnWidth = 0;\n }\n\n const minX = prevSashPos ? prevSashPos + minColumnWidth : minColumnWidth;\n const maxX = nextSashPos\n ? nextSashPos - minColumnWidth\n : COMPONENT_WIDTH_PERCENTAGE - minColumnWidth;\n let newX = this._px2Percent(\n mouseX - this._componentX - this._percent2Px(this._activeSashCursorOffset)\n );\n\n newX = Math.max(newX, minX);\n newX = Math.min(newX, maxX);\n\n this._sashPositions[this._activeSashElementIndex] = newX;\n this.requestUpdate();\n }\n\n private _getSashPositions(): {\n sashPos: number;\n prevSashPos: number;\n nextSashPos: number;\n } {\n const sashPos = this._sashPositions[this._activeSashElementIndex];\n const prevSashPos =\n this._sashPositions[this._activeSashElementIndex - 1] || 0;\n const nextSashPos =\n this._sashPositions[this._activeSashElementIndex + 1] ||\n COMPONENT_WIDTH_PERCENTAGE;\n\n return {\n sashPos,\n prevSashPos,\n nextSashPos,\n };\n }\n\n private _resizeColumns(resizeBodyCells = true) {\n const {sashPos, prevSashPos, nextSashPos} = this._getSashPositions();\n\n const prevColW = sashPos - prevSashPos;\n const nextColW = nextSashPos - sashPos;\n const prevColCss = `${prevColW}%`;\n const nextColCss = `${nextColW}%`;\n\n this._headerCellsToResize[0].style.width = prevColCss;\n\n if (this._headerCellsToResize[1]) {\n this._headerCellsToResize[1].style.width = nextColCss;\n }\n\n if (resizeBodyCells) {\n this._cellsToResize[0].style.width = prevColCss;\n\n if (this._cellsToResize[1]) {\n this._cellsToResize[1].style.width = nextColCss;\n }\n }\n }\n\n private _onResizingMouseMove = (event: MouseEvent) => {\n event.stopPropagation();\n this._updateActiveSashPosition(event.pageX);\n\n if (!this.delayedResizing) {\n this._resizeColumns(true);\n } else {\n this._resizeColumns(false);\n }\n };\n\n private _onResizingMouseUp = (event: MouseEvent) => {\n this._resizeColumns(true);\n this._updateActiveSashPosition(event.pageX);\n this._sashHovers[this._activeSashElementIndex] = false;\n this._isDragging = false;\n this._activeSashElementIndex = -1;\n\n document.removeEventListener('mousemove', this._onResizingMouseMove);\n document.removeEventListener('mouseup', this._onResizingMouseUp);\n };\n\n render(): TemplateResult {\n const sashes = this._sashPositions.map((val, index) => {\n const classes = classMap({\n sash: true,\n hover: this._sashHovers[index],\n resizable: this.resizable,\n });\n\n const left = `${val}%`;\n\n return this.resizable\n ? html`\n <div\n class=\"${classes}\"\n data-index=\"${index}\"\n style=\"${styleMap({left})}\"\n @mousedown=\"${this._onSashMouseDown}\"\n @mouseover=\"${this._onSashMouseOver}\"\n @mouseout=\"${this._onSashMouseOut}\"\n >\n <div class=\"sash-visible\"></div>\n <div class=\"sash-clickable\"></div>\n </div>\n `\n : html`<div\n class=\"${classes}\"\n data-index=\"${index}\"\n style=\"${styleMap({left})}\"\n >\n <div class=\"sash-visible\"></div>\n </div>`;\n });\n\n const wrapperClasses = classMap({\n wrapper: true,\n 'select-disabled': this._isDragging,\n 'resize-cursor': this._isDragging,\n 'compact-view': this.compact,\n });\n\n return html`\n <div class=\"${wrapperClasses}\">\n <div class=\"header\" @slotchange=\"${this._onHeaderSlotChange}\">\n <slot name=\"caption\"></slot>\n <div class=\"header-slot-wrapper\">\n <slot name=\"header\"></slot>\n </div>\n </div>\n <vscode-scrollable class=\"scrollable\">\n <div>\n <slot name=\"body\" @slotchange=\"${this._onBodySlotChange}\"></slot>\n </div>\n </vscode-scrollable>\n ${sashes}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-table': VscodeTable;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -216,6 +216,11 @@
|
|
|
216
216
|
{ "name": "--vscode-font-family", "values": [] },
|
|
217
217
|
{ "name": "--vscode-font-size", "values": [] },
|
|
218
218
|
{ "name": "--vscode-editorGroup-border", "values": [] },
|
|
219
|
+
{ "name": "--vscode-font-family", "values": [] },
|
|
220
|
+
{ "name": "--vscode-font-size", "values": [] },
|
|
221
|
+
{ "name": "--vscode-font-weight", "values": [] },
|
|
222
|
+
{ "name": "--vscode-settings-headerBorder", "values": [] },
|
|
223
|
+
{ "name": "--vscode-panel-background", "values": [] },
|
|
219
224
|
{ "name": "--vscode-scrollbar-shadow", "values": [] },
|
|
220
225
|
{ "name": "--vscode-settings-textInputBackground", "values": [] },
|
|
221
226
|
{ "name": "--vscode-settings-textInputBorder", "values": [] },
|
|
@@ -234,11 +239,17 @@
|
|
|
234
239
|
{ "name": "--vscode-scrollbarSlider-background", "values": [] },
|
|
235
240
|
{ "name": "--vscode-scrollbarSlider-hoverBackground", "values": [] },
|
|
236
241
|
{ "name": "--vscode-scrollbarSlider-activeBackground", "values": [] },
|
|
242
|
+
{ "name": "--vscode-settings-textInputBackground", "values": [] },
|
|
243
|
+
{ "name": "--vscode-settings-textInputBorder", "values": [] },
|
|
244
|
+
{ "name": "--vscode-settings-textInputForeground", "values": [] },
|
|
245
|
+
{ "name": "--vscode-focusBorder", "values": [] },
|
|
237
246
|
{ "name": "--vscode-font-family", "values": [] },
|
|
238
247
|
{ "name": "--vscode-font-size", "values": [] },
|
|
239
248
|
{ "name": "--vscode-font-weight", "values": [] },
|
|
240
|
-
{ "name": "--vscode-
|
|
241
|
-
{ "name": "--vscode-
|
|
249
|
+
{ "name": "--vscode-input-placeholderForeground", "values": [] },
|
|
250
|
+
{ "name": "--vscode-button-background", "values": [] },
|
|
251
|
+
{ "name": "--vscode-button-foreground", "values": [] },
|
|
252
|
+
{ "name": "--vscode-button-hoverBackground", "values": [] },
|
|
242
253
|
{ "name": "--vscode-focusBorder", "values": [] },
|
|
243
254
|
{ "name": "--vscode-font-family", "values": [] },
|
|
244
255
|
{ "name": "--vscode-font-size", "values": [] },
|
|
@@ -254,18 +265,7 @@
|
|
|
254
265
|
{ "name": "--vscode-list-inactiveFocusOutline", "values": [] },
|
|
255
266
|
{ "name": "--vscode-list-focusOutline", "values": [] },
|
|
256
267
|
{ "name": "--vscode-tree-inactiveIndentGuidesStroke", "values": [] },
|
|
257
|
-
{ "name": "--vscode-tree-indentGuidesStroke", "values": [] }
|
|
258
|
-
{ "name": "--vscode-settings-textInputBackground", "values": [] },
|
|
259
|
-
{ "name": "--vscode-settings-textInputBorder", "values": [] },
|
|
260
|
-
{ "name": "--vscode-settings-textInputForeground", "values": [] },
|
|
261
|
-
{ "name": "--vscode-focusBorder", "values": [] },
|
|
262
|
-
{ "name": "--vscode-font-family", "values": [] },
|
|
263
|
-
{ "name": "--vscode-font-size", "values": [] },
|
|
264
|
-
{ "name": "--vscode-font-weight", "values": [] },
|
|
265
|
-
{ "name": "--vscode-input-placeholderForeground", "values": [] },
|
|
266
|
-
{ "name": "--vscode-button-background", "values": [] },
|
|
267
|
-
{ "name": "--vscode-button-foreground", "values": [] },
|
|
268
|
-
{ "name": "--vscode-button-hoverBackground", "values": [] }
|
|
268
|
+
{ "name": "--vscode-tree-indentGuidesStroke", "values": [] }
|
|
269
269
|
],
|
|
270
270
|
"pseudoElements": [
|
|
271
271
|
{ "name": "::part(text-content)" },
|
|
@@ -478,6 +478,15 @@
|
|
|
478
478
|
"attributes": [],
|
|
479
479
|
"references": []
|
|
480
480
|
},
|
|
481
|
+
{
|
|
482
|
+
"name": "vscode-tabs",
|
|
483
|
+
"description": "\n---\n\n\n### **Events:**\n - **vsc-select** - undefined\n- **vsc-tabs-select** - Dispatched when the active tab is changed\n\n### **Slots:**\n - _default_ - Default slot. It is used for tab panels.\n- **header** - Slot for tab headers.\n- **addons** - Right aligned area in the header.\n\n### **CSS Properties:**\n - **--vscode-font-family** - undefined _(default: undefined)_\n- **--vscode-font-size** - undefined _(default: undefined)_\n- **--vscode-font-weight** - undefined _(default: undefined)_\n- **--vscode-settings-headerBorder** - undefined _(default: undefined)_\n- **--vscode-panel-background** - undefined _(default: undefined)_",
|
|
484
|
+
"attributes": [
|
|
485
|
+
{ "name": "panel", "description": "Panel-like look", "values": [] },
|
|
486
|
+
{ "name": "selected-index", "values": [] }
|
|
487
|
+
],
|
|
488
|
+
"references": []
|
|
489
|
+
},
|
|
481
490
|
{
|
|
482
491
|
"name": "vscode-textarea",
|
|
483
492
|
"description": "Multi-line text input.\n\nWhen participating in a form, it supports the `:invalid` pseudo class. Otherwise the error styles\ncan be applied through the `invalid` property.\n---\n\n\n### **Events:**\n - **change** - undefined\n- **vsc-change** - undefined\n- **vsc-input** - undefined\n- **input** - undefined\n\n### **CSS Properties:**\n - **--vscode-scrollbar-shadow** - undefined _(default: undefined)_\n- **--vscode-settings-textInputBackground** - undefined _(default: undefined)_\n- **--vscode-settings-textInputBorder** - undefined _(default: undefined)_\n- **--vscode-settings-textInputForeground** - undefined _(default: undefined)_\n- **--vscode-input-placeholderForeground** - undefined _(default: undefined)_\n- **--vscode-font-family** - undefined _(default: undefined)_\n- **--vscode-font-size** - undefined _(default: undefined)_\n- **--vscode-font-weight** - undefined _(default: undefined)_\n- **--vscode-editor-background** - undefined _(default: undefined)_\n- **--vscode-editor-foreground** - undefined _(default: undefined)_\n- **--vscode-editor-font-family** - undefined _(default: undefined)_\n- **--vscode-editor-font-size** - undefined _(default: undefined)_\n- **--vscode-editor-font-weight** - undefined _(default: undefined)_\n- **--vscode-editor-inlineValuesForeground** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_\n- **--vscode-scrollbarSlider-background** - undefined _(default: undefined)_\n- **--vscode-scrollbarSlider-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-scrollbarSlider-activeBackground** - undefined _(default: undefined)_",
|
|
@@ -517,28 +526,6 @@
|
|
|
517
526
|
],
|
|
518
527
|
"references": []
|
|
519
528
|
},
|
|
520
|
-
{
|
|
521
|
-
"name": "vscode-tabs",
|
|
522
|
-
"description": "\n---\n\n\n### **Events:**\n - **vsc-select** - undefined\n- **vsc-tabs-select** - Dispatched when the active tab is changed\n\n### **Slots:**\n - _default_ - Default slot. It is used for tab panels.\n- **header** - Slot for tab headers.\n- **addons** - Right aligned area in the header.\n\n### **CSS Properties:**\n - **--vscode-font-family** - undefined _(default: undefined)_\n- **--vscode-font-size** - undefined _(default: undefined)_\n- **--vscode-font-weight** - undefined _(default: undefined)_\n- **--vscode-settings-headerBorder** - undefined _(default: undefined)_\n- **--vscode-panel-background** - undefined _(default: undefined)_",
|
|
523
|
-
"attributes": [
|
|
524
|
-
{ "name": "panel", "description": "Panel-like look", "values": [] },
|
|
525
|
-
{ "name": "selected-index", "values": [] }
|
|
526
|
-
],
|
|
527
|
-
"references": []
|
|
528
|
-
},
|
|
529
|
-
{
|
|
530
|
-
"name": "vscode-tree",
|
|
531
|
-
"description": "\n---\n\n\n### **Events:**\n - **vsc-run-action** - Dispatched when an action icon is clicked.\n- **vsc-select** - Dispatched when an item is selected.\n- **vsc-tree-select** - Dispatched when an item is selected.\n- **vsc-tree-action** - Dispatched when an action icon is clicked.\n\n### **Methods:**\n - **closeAll(): _void_** - Closes all opened tree items recursively.\n- **deselectAll()** - Deselects all selected items.\n- **getItemByPath(path: _number[]_): __** - Returns a reference to a TreeItem object by path.\n\n### **CSS Properties:**\n - **--vscode-focusBorder** - undefined _(default: undefined)_\n- **--vscode-font-family** - undefined _(default: undefined)_\n- **--vscode-font-size** - undefined _(default: undefined)_\n- **--vscode-font-weight** - undefined _(default: undefined)_\n- **--vscode-list-hoverForeground** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveSelectionBackground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveSelectionForeground** - undefined _(default: undefined)_\n- **--vscode-list-activeSelectionBackground** - undefined _(default: undefined)_\n- **--vscode-list-activeSelectionForeground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveSelectionIconForeground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveFocusBackground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveFocusOutline** - undefined _(default: undefined)_\n- **--vscode-list-focusOutline** - undefined _(default: undefined)_\n- **--vscode-tree-inactiveIndentGuidesStroke** - undefined _(default: undefined)_\n- **--vscode-tree-indentGuidesStroke** - undefined _(default: undefined)_\n\n### **CSS Parts:**\n - **text-content** - undefined\n- **description** - undefined\n- **counter-badge-decoration** - undefined\n- **filled-circle-decoration** - undefined\n- **caption-decoration** - undefined\n- **decorations** - Container of decorations",
|
|
532
|
-
"attributes": [
|
|
533
|
-
{ "name": "data", "values": [{ "name": "TreeItem[]" }] },
|
|
534
|
-
{ "name": "indent", "values": [] },
|
|
535
|
-
{ "name": "arrows", "values": [] },
|
|
536
|
-
{ "name": "multiline", "values": [] },
|
|
537
|
-
{ "name": "tabindex", "values": [] },
|
|
538
|
-
{ "name": "indent-guides", "values": [] }
|
|
539
|
-
],
|
|
540
|
-
"references": []
|
|
541
|
-
},
|
|
542
529
|
{
|
|
543
530
|
"name": "vscode-textfield",
|
|
544
531
|
"description": "A simple inline textfield\n\nWhen participating in a form, it supports the `:invalid` pseudo class. Otherwise the error styles\ncan be applied through the `invalid` property.\n---\n\n\n### **Events:**\n - **vsc-input** - undefined\n- **change** - undefined\n- **vsc-change** - undefined\n- **input** - undefined\n\n### **Slots:**\n - **content-before** - A slot before the editable area but inside of the component. It is used to place icons.\n- **content-after** - A slot after the editable area but inside of the component. It is used to place icons.\n\n### **CSS Properties:**\n - **--vscode-settings-textInputBackground** - undefined _(default: undefined)_\n- **--vscode-settings-textInputBorder** - undefined _(default: undefined)_\n- **--vscode-settings-textInputForeground** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_\n- **--vscode-font-family** - undefined _(default: undefined)_\n- **--vscode-font-size** - undefined _(default: undefined)_\n- **--vscode-font-weight** - undefined _(default: undefined)_\n- **--vscode-input-placeholderForeground** - undefined _(default: undefined)_\n- **--vscode-button-background** - undefined _(default: undefined)_\n- **--vscode-button-foreground** - undefined _(default: undefined)_\n- **--vscode-button-hoverBackground** - undefined _(default: undefined)_",
|
|
@@ -571,6 +558,19 @@
|
|
|
571
558
|
{ "name": "value", "values": [] }
|
|
572
559
|
],
|
|
573
560
|
"references": []
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
"name": "vscode-tree",
|
|
564
|
+
"description": "\n---\n\n\n### **Events:**\n - **vsc-run-action** - Dispatched when an action icon is clicked.\n- **vsc-select** - Dispatched when an item is selected.\n- **vsc-tree-select** - Dispatched when an item is selected.\n- **vsc-tree-action** - Dispatched when an action icon is clicked.\n\n### **Methods:**\n - **closeAll(): _void_** - Closes all opened tree items recursively.\n- **deselectAll()** - Deselects all selected items.\n- **getItemByPath(path: _number[]_): __** - Returns a reference to a TreeItem object by path.\n\n### **CSS Properties:**\n - **--vscode-focusBorder** - undefined _(default: undefined)_\n- **--vscode-font-family** - undefined _(default: undefined)_\n- **--vscode-font-size** - undefined _(default: undefined)_\n- **--vscode-font-weight** - undefined _(default: undefined)_\n- **--vscode-list-hoverForeground** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveSelectionBackground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveSelectionForeground** - undefined _(default: undefined)_\n- **--vscode-list-activeSelectionBackground** - undefined _(default: undefined)_\n- **--vscode-list-activeSelectionForeground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveSelectionIconForeground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveFocusBackground** - undefined _(default: undefined)_\n- **--vscode-list-inactiveFocusOutline** - undefined _(default: undefined)_\n- **--vscode-list-focusOutline** - undefined _(default: undefined)_\n- **--vscode-tree-inactiveIndentGuidesStroke** - undefined _(default: undefined)_\n- **--vscode-tree-indentGuidesStroke** - undefined _(default: undefined)_\n\n### **CSS Parts:**\n - **text-content** - undefined\n- **description** - undefined\n- **counter-badge-decoration** - undefined\n- **filled-circle-decoration** - undefined\n- **caption-decoration** - undefined\n- **decorations** - Container of decorations",
|
|
565
|
+
"attributes": [
|
|
566
|
+
{ "name": "data", "values": [{ "name": "TreeItem[]" }] },
|
|
567
|
+
{ "name": "indent", "values": [] },
|
|
568
|
+
{ "name": "arrows", "values": [] },
|
|
569
|
+
{ "name": "multiline", "values": [] },
|
|
570
|
+
{ "name": "tabindex", "values": [] },
|
|
571
|
+
{ "name": "indent-guides", "values": [] }
|
|
572
|
+
],
|
|
573
|
+
"references": []
|
|
574
574
|
}
|
|
575
575
|
]
|
|
576
576
|
}
|