@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.
@@ -2,7 +2,7 @@ import { LitElement } from 'lit';
2
2
  export class VscElement extends LitElement {
3
3
  constructor() {
4
4
  super(...arguments);
5
- this._version = '1.6.0';
5
+ this._version = '1.6.1';
6
6
  }
7
7
  /** VSC Element version */
8
8
  get version() {
@@ -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.0';\n\n /** VSC Element version */\n get version() {\n return this._version;\n }\n}\n"]}
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 _resizeObserver;
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,eAAe,CAAkB;IACzC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,gBAAgB,CAAK;IAE7B,iBAAiB,IAAI,IAAI;IAqBzB,oBAAoB,IAAI,IAAI;IAU5B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,4BAA4B,CACM;IAE1C,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,UAAU;IAqBlB,OAAO,CAAC,aAAa;IAKrB,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"}
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._resizeObserverCallbackBound = this._resizeObserverCallback.bind(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._resizeObserver = new ResizeObserver(this._resizeObserverCallbackBound);
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._resizeObserver.observe(this._contentElement);
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._resizeObserver.unobserve(this);
70
- this._resizeObserver.disconnect();
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":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAiB,MAAM,KAAK,CAAC;AAClD,OAAO,EACL,aAAa,EACb,QAAQ,EACR,KAAK,EACL,qBAAqB,EACrB,KAAK,GACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACrD,OAAO,MAAM,MAAM,+BAA+B,CAAC;AAEnD;;;;;;GAMG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAAzC;;QAIL,WAAM,GAAG,IAAI,CAAC;QAGd,aAAQ,GAAG,KAAK,CAAC;QAwBT,gBAAW,GAAG,KAAK,CAAC;QAGpB,iBAAY,GAAG,CAAC,CAAC;QAGjB,YAAO,GAAG,CAAC,CAAC;QAGZ,kBAAa,GAAG,KAAK,CAAC;QAGtB,eAAU,GAAG,KAAK,CAAC;QAGnB,iBAAY,GAAG,KAAK,CAAC;QAgBrB,uBAAkB,GAAG,CAAC,CAAC;QACvB,iBAAY,GAAG,CAAC,CAAC;QACjB,sBAAiB,GAAG,IAAI,CAAC;QACzB,qBAAgB,GAAG,CAAC,CAAC;QAuCrB,4BAAuB,GAAG,GAAG,EAAE;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC;QA2EM,iCAA4B,GAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAsBlC,+BAA0B,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAqBnE,+BAA0B,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QASnE,8BAAyB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IA2C3E,CAAC;IA3QC,IAAI,SAAS,CAAC,GAAW;QACvB,IAAI,CAAC,oBAAoB,CAAC,SAAS,GAAG,GAAG,CAAC;IAC5C,CAAC;IACD,IAAI,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;IAC7C,CAAC;IAGD,IAAI,SAAS;QACX,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;IAChD,CAAC;IAuCD,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,mBAAmB,GAAG,IAAI,cAAc,CAC3C,IAAI,CAAC,uBAAuB,CAC7B,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,cAAc,CAC9C,IAAI,CAAC,uBAAuB,CAC7B,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CACxC,QAAQ,EACR,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7C,CAAC;YACF,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACpE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACpE,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAE7B,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,CAAC;QAEzC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvE,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACvE,CAAC;IAMO,gBAAgB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;QAE/D,IAAI,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,UAAU;QAChB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAgB,CAAC,CAAC,MAAM,CAAC;gBACxE,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAEnD,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ;wBACN,MAAM,CAAC,cAAc,CAAC,GAAG,QAAQ;4BAC/B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;4BACxB,CAAC,CAAC,QAAQ,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,QAAQ,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,uBAAuB,CAAC,KAAiB;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC;QAE9D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC1E,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;IACxE,CAAC;IAEO,uBAAuB,CAAC,KAAiB;QAC/C,MAAM,YAAY,GAChB,IAAI,CAAC,kBAAkB,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAChE,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAErE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;aAAM,IAAI,YAAY,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;YACxC,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,YAAY,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,oBAAoB,CAAC,SAAS;YACjC,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IACpD,CAAC;IAKO,qBAAqB,CAAC,KAAiB;QAC7C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACxC,MAAM,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,EAAE,CAAC;QACjC,MAAM,EAAC,KAAK,EAAE,KAAK,EAAC,GAAG,KAAK,CAAC;QAE7B,IAAI,KAAK,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;QAED,QAAQ,CAAC,mBAAmB,CAC1B,WAAW,EACX,IAAI,CAAC,4BAA4B,CAClC,CAAC;QACF,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC3E,CAAC;IAIO,4BAA4B;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC;QAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;QAErE,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;QAEpC,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IACzC,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAIO,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAID,MAAM;QACJ,OAAO,IAAI,CAAA;;;iBAGE,QAAQ,CAAC;YAChB,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;SAClD,CAAC;;sBAEY,QAAQ,CAAC,EAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC;UAC5D,IAAI,CAAC,WAAW;YAChB,CAAC,CAAC,IAAI,CAAA,yCAAyC;YAC/C,CAAC,CAAC,OAAO;;mBAEA,QAAQ,CAAC;YAChB,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAE,CAAC,IAAI,CAAC,iBAAiB;SAChC,CAAC;mBACO,QAAQ,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACzC,CAAC;;;qBAGS,QAAQ,CAAC;YAChB,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,IAAI,CAAC,aAAa;YAC3B,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,MAAM,EAAE,IAAI,CAAC,YAAY;SAC1B,CAAC;qBACO,QAAQ,CAAC;YAChB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI;YAChC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI;SACzB,CAAC;yBACW,IAAI,CAAC,uBAAuB;;;;+BAItB,IAAI,CAAC,aAAa;;;KAG5C,CAAC;IACJ,CAAC;;AAnRM,uBAAM,GAAG,MAAM,AAAT,CAAU;AAGvB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;gDAC3B;AAGd;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;kDACxB;AAGjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAC,CAAC;iDAGjD;AAUD;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAC,CAAC;iDAOjD;AAGO;IADP,KAAK,EAAE;qDACoB;AAGpB;IADP,KAAK,EAAE;sDACiB;AAGjB;IADP,KAAK,EAAE;iDACY;AAGZ;IADP,KAAK,EAAE;uDACsB;AAGtB;IADP,KAAK,EAAE;oDACmB;AAGnB;IADP,KAAK,EAAE;sDACqB;AAGrB;IADP,KAAK,CAAC,UAAU,CAAC;yDACuB;AAGjC;IADP,KAAK,CAAC,kBAAkB,CAAC;6DACmB;AAGrC;IADP,KAAK,CAAC,uBAAuB,CAAC;8DACe;AAGtC;IADP,qBAAqB,EAAE;2DACa;AA1D1B,gBAAgB;IAD5B,aAAa,CAAC,mBAAmB,CAAC;GACtB,gBAAgB,CAqR5B","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 _updateScrollpaneSize;
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;IAM5B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,gCAAgC,CAOtC;IAEF,OAAO,CAAC,6BAA6B,CAEnC;IAEF,OAAO,CAAC,wBAAwB;IAoChC,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,6BAA6B;IAerC,OAAO,CAAC,6BAA6B;IAOrC,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,yBAAyB;IA0BjC,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,oBAAoB,CAS1B;IAEF,OAAO,CAAC,kBAAkB,CASxB;IAEF,MAAM,IAAI,cAAc;CAyDzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
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._updateScrollpaneSize();
83
+ this._updateResizeHandlersSize();
84
84
  if (this.responsive) {
85
85
  this._toggleCompactView();
86
86
  }
87
87
  };
88
88
  this._headerResizeObserverCallback = () => {
89
- this._updateScrollpaneSize();
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
- _updateScrollpaneSize() {
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 scrollableH = this._componentH - headerCr.height;
253
- this._scrollableElement.style.height = `${scrollableH}px`;
269
+ const bodyHeight = this._componentH - headerCr.height;
254
270
  this._sashVisibleElements.forEach((el) => {
255
- el.style.height = `${scrollableH}px`;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vscode-elements/elements",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "Webcomponents for creating Visual Studio Code extensions",
5
5
  "main": "dist/main.js",
6
6
  "module": "dist/main.js",
@@ -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-settings-headerBorder", "values": [] },
241
- { "name": "--vscode-panel-background", "values": [] },
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
  }