@vscode-elements/elements 2.4.0 → 2.4.1-pre.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.
Files changed (51) hide show
  1. package/LICENSE +1 -1
  2. package/custom-elements.json +1220 -120
  3. package/dist/bundled.js +163 -164
  4. package/dist/includes/VscElement.d.ts +1 -0
  5. package/dist/includes/VscElement.d.ts.map +1 -1
  6. package/dist/includes/VscElement.js +16 -3
  7. package/dist/includes/VscElement.js.map +1 -1
  8. package/dist/includes/helpers.d.ts +1 -0
  9. package/dist/includes/helpers.d.ts.map +1 -1
  10. package/dist/includes/helpers.js +3 -0
  11. package/dist/includes/helpers.js.map +1 -1
  12. package/dist/includes/sizes.d.ts +12 -0
  13. package/dist/includes/sizes.d.ts.map +1 -0
  14. package/dist/includes/sizes.js +30 -0
  15. package/dist/includes/sizes.js.map +1 -0
  16. package/dist/includes/vscode-select/vscode-select-base.d.ts.map +1 -1
  17. package/dist/includes/vscode-select/vscode-select-base.js +1 -4
  18. package/dist/includes/vscode-select/vscode-select-base.js.map +1 -1
  19. package/dist/vscode-icon/vscode-icon.d.ts.map +1 -1
  20. package/dist/vscode-icon/vscode-icon.js +2 -3
  21. package/dist/vscode-icon/vscode-icon.js.map +1 -1
  22. package/dist/vscode-table/ColumnResizeController.d.ts +38 -0
  23. package/dist/vscode-table/ColumnResizeController.d.ts.map +1 -0
  24. package/dist/vscode-table/ColumnResizeController.js +146 -0
  25. package/dist/vscode-table/ColumnResizeController.js.map +1 -0
  26. package/dist/vscode-table/calculations.d.ts +3 -0
  27. package/dist/vscode-table/calculations.d.ts.map +1 -0
  28. package/dist/vscode-table/calculations.js +54 -0
  29. package/dist/vscode-table/calculations.js.map +1 -0
  30. package/dist/vscode-table/vscode-table.d.ts +11 -14
  31. package/dist/vscode-table/vscode-table.d.ts.map +1 -1
  32. package/dist/vscode-table/vscode-table.js +109 -118
  33. package/dist/vscode-table/vscode-table.js.map +1 -1
  34. package/dist/vscode-table/vscode-table.styles.d.ts +2 -0
  35. package/dist/vscode-table/vscode-table.styles.d.ts.map +1 -1
  36. package/dist/vscode-table/vscode-table.styles.js +6 -5
  37. package/dist/vscode-table/vscode-table.styles.js.map +1 -1
  38. package/dist/vscode-table-header-cell/vscode-table-header-cell.d.ts +12 -1
  39. package/dist/vscode-table-header-cell/vscode-table-header-cell.d.ts.map +1 -1
  40. package/dist/vscode-table-header-cell/vscode-table-header-cell.js +18 -0
  41. package/dist/vscode-table-header-cell/vscode-table-header-cell.js.map +1 -1
  42. package/dist/vscode-tree-item/vscode-tree-item.d.ts +13 -0
  43. package/dist/vscode-tree-item/vscode-tree-item.d.ts.map +1 -1
  44. package/dist/vscode-tree-item/vscode-tree-item.js +13 -0
  45. package/dist/vscode-tree-item/vscode-tree-item.js.map +1 -1
  46. package/package.json +3 -3
  47. package/vscode.html-custom-data.json +3 -3
  48. package/dist/vscode-table/helpers.d.ts +0 -2
  49. package/dist/vscode-table/helpers.d.ts.map +0 -1
  50. package/dist/vscode-table/helpers.js +0 -20
  51. package/dist/vscode-table/helpers.js.map +0 -1
@@ -18,9 +18,21 @@ import styles from './vscode-table-header-cell.styles.js';
18
18
  let VscodeTableHeaderCell = class VscodeTableHeaderCell extends VscElement {
19
19
  constructor() {
20
20
  super(...arguments);
21
+ this.minWidth = '0';
22
+ /** @internal */
23
+ this.index = -1;
21
24
  /** @internal */
22
25
  this.role = 'columnheader';
23
26
  }
27
+ willUpdate(changedProperties) {
28
+ if (changedProperties.has('minWidth') && this.index > -1) {
29
+ /** @internal */
30
+ this.dispatchEvent(new CustomEvent('vsc-table-change-min-column-width', {
31
+ detail: { columnIndex: this.index, propertyValue: this.minWidth },
32
+ bubbles: true,
33
+ }));
34
+ }
35
+ }
24
36
  render() {
25
37
  return html `
26
38
  <div class="wrapper">
@@ -30,6 +42,12 @@ let VscodeTableHeaderCell = class VscodeTableHeaderCell extends VscElement {
30
42
  }
31
43
  };
32
44
  VscodeTableHeaderCell.styles = styles;
45
+ __decorate([
46
+ property({ attribute: 'min-width' })
47
+ ], VscodeTableHeaderCell.prototype, "minWidth", void 0);
48
+ __decorate([
49
+ property({ type: Number })
50
+ ], VscodeTableHeaderCell.prototype, "index", void 0);
33
51
  __decorate([
34
52
  property({ reflect: true })
35
53
  ], VscodeTableHeaderCell.prototype, "role", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-table-header-cell.js","sourceRoot":"","sources":["../../src/vscode-table-header-cell/vscode-table-header-cell.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAiB,MAAM,KAAK,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,MAAM,MAAM,sCAAsC,CAAC;AAE1D;;;;;;GAMG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,UAAU;IAA9C;;QAGL,gBAAgB;QAEP,SAAI,GAAG,cAAc,CAAC;IASjC,CAAC;IAPU,MAAM;QACb,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AAZe,4BAAM,GAAG,MAAM,AAAT,CAAU;AAIvB;IADR,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;mDACK;AALpB,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAcjC","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-table-header-cell.styles.js';\n\n/**\n * @tag vscode-table-header-cell\n *\n * @cssprop [--vscode-foreground=#cccccc]\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n */\n@customElement('vscode-table-header-cell')\nexport class VscodeTableHeaderCell extends VscElement {\n static override styles = styles;\n\n /** @internal */\n @property({reflect: true})\n override role = 'columnheader';\n\n override render(): TemplateResult {\n return html`\n <div class=\"wrapper\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-table-header-cell': VscodeTableHeaderCell;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-table-header-cell.js","sourceRoot":"","sources":["../../src/vscode-table-header-cell/vscode-table-header-cell.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAiC,MAAM,KAAK,CAAC;AACzD,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,MAAM,MAAM,sCAAsC,CAAC;AAO1D;;;;;;GAMG;AAEI,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,UAAU;IAA9C;;QAIL,aAAQ,GAAG,GAAG,CAAC;QAEf,gBAAgB;QAEhB,UAAK,GAAG,CAAC,CAAC,CAAC;QAEX,gBAAgB;QAEP,SAAI,GAAG,cAAc,CAAC;IAqBjC,CAAC;IAnBoB,UAAU,CAAC,iBAAiC;QAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACzD,gBAAgB;YAChB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,mCAAmC,EAAE;gBACnD,MAAM,EAAE,EAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAC;gBAC/D,OAAO,EAAE,IAAI;aACd,CAAsC,CACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;;AA/Be,4BAAM,GAAG,MAAM,AAAT,CAAU;AAGhC;IADC,QAAQ,CAAC,EAAC,SAAS,EAAE,WAAW,EAAC,CAAC;uDACpB;AAIf;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;oDACd;AAIF;IADR,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;mDACK;AAZpB,qBAAqB;IADjC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,qBAAqB,CAiCjC","sourcesContent":["import {html, PropertyValues, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-table-header-cell.styles.js';\n\nexport type VscTableChangeMinColumnWidthEvent = CustomEvent<{\n columnIndex: number;\n propertyValue: string;\n}>;\n\n/**\n * @tag vscode-table-header-cell\n *\n * @cssprop [--vscode-foreground=#cccccc]\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n */\n@customElement('vscode-table-header-cell')\nexport class VscodeTableHeaderCell extends VscElement {\n static override styles = styles;\n\n @property({attribute: 'min-width'})\n minWidth = '0';\n\n /** @internal */\n @property({type: Number})\n index = -1;\n\n /** @internal */\n @property({reflect: true})\n override role = 'columnheader';\n\n protected override willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('minWidth') && this.index > -1) {\n /** @internal */\n this.dispatchEvent(\n new CustomEvent('vsc-table-change-min-column-width', {\n detail: {columnIndex: this.index, propertyValue: this.minWidth},\n bubbles: true,\n }) as VscTableChangeMinColumnWidthEvent\n );\n }\n }\n\n override render(): TemplateResult {\n return html`\n <div class=\"wrapper\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-table-header-cell': VscodeTableHeaderCell;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-table-change-min-column-width': VscTableChangeMinColumnWidthEvent;\n }\n}\n"]}
@@ -1,5 +1,18 @@
1
1
  import { PropertyValues, TemplateResult } from 'lit';
2
2
  import { VscElement } from '../includes/VscElement.js';
3
+ /**
4
+ * Represents an item in a Tree component.
5
+ *
6
+ * @tag vscode-tree
7
+ *
8
+ * @slot - Main content
9
+ * @slot icon-branch - Custom icon for a closed branch item.
10
+ * @slot icon-branch-opened - Custom icon for an opened branch item.
11
+ * @slot icon-leaf - Custom icon for a leaf item.
12
+ * @slot description - Description of the item. Displayed with a smaller font size and a less prominent color.
13
+ * @slot actions - Container for action buttons.
14
+ * @slot decoration - Container for small decorative elements aligned to the right edge of the item.
15
+ */
3
16
  export declare class VscodeTreeItem extends VscElement {
4
17
  static styles: import("lit").CSSResultGroup;
5
18
  active: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tree-item.d.ts","sourceRoot":"","sources":["../../src/vscode-tree-item/vscode-tree-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,cAAc,EAAgB,MAAM,KAAK,CAAC;AAIlE,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAwCpE,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,+BAAU;IAKhC,MAAM,UAAS;IAGf,MAAM,UAAS;IAGf,aAAa,UAAS;IAGtB,eAAe,UAAS;IAExB,gBAAgB;IAEhB,iBAAiB,UAAS;IAG1B,IAAI,UAAS;IAGb,KAAK,SAAK;IAEV,IACI,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAS7B;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAEzB;IACD,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAMD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAmB;IAGrC,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,oBAAoB,CAAS;IAGrC,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,0BAA0B,CAAS;IAG3C,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,yBAAyB,CAAS;IAG1C,OAAO,CAAC,iBAAiB,CAWvB;IAGF,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,2BAA2B,CAAoB;IAGvD,OAAO,CAAC,kBAAkB,CAAoB;IAG9C,OAAO,CAAC,wBAAwB,CAAa;IAG7C,OAAO,CAAC,oBAAoB,CAAa;IAGzC,OAAO,CAAC,uBAAuB,CAAa;IAM5C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAS;;IAiBzB,iBAAiB,IAAI,IAAI;cAOf,YAAY,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;cAarD,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IActE,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,oCAAoC;IAwB5C,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,4BAA4B;IAIpC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,qBAAqB,CAc3B;IAEF,OAAO,CAAC,mBAAmB,CAGzB;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,qBAAqB;IAoBpB,MAAM,IAAI,cAAc;CA4HlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
1
+ {"version":3,"file":"vscode-tree-item.d.ts","sourceRoot":"","sources":["../../src/vscode-tree-item/vscode-tree-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,cAAc,EAAgB,MAAM,KAAK,CAAC;AAIlE,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAwCpE;;;;;;;;;;;;GAYG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,+BAAU;IAKhC,MAAM,UAAS;IAGf,MAAM,UAAS;IAGf,aAAa,UAAS;IAGtB,eAAe,UAAS;IAExB,gBAAgB;IAEhB,iBAAiB,UAAS;IAG1B,IAAI,UAAS;IAGb,KAAK,SAAK;IAEV,IACI,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAS7B;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAEzB;IACD,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAMD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAmB;IAGrC,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,oBAAoB,CAAS;IAGrC,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,0BAA0B,CAAS;IAG3C,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,yBAAyB,CAAS;IAG1C,OAAO,CAAC,iBAAiB,CAWvB;IAGF,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,2BAA2B,CAAoB;IAGvD,OAAO,CAAC,kBAAkB,CAAoB;IAG9C,OAAO,CAAC,wBAAwB,CAAa;IAG7C,OAAO,CAAC,oBAAoB,CAAa;IAGzC,OAAO,CAAC,uBAAuB,CAAa;IAM5C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAS;;IAiBzB,iBAAiB,IAAI,IAAI;cAOf,YAAY,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;cAarD,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IActE,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,oCAAoC;IAwB5C,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,4BAA4B;IAIpC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,qBAAqB,CAc3B;IAEF,OAAO,CAAC,mBAAmB,CAGzB;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,qBAAqB;IAoBpB,MAAM,IAAI,cAAc;CA4HlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
@@ -38,6 +38,19 @@ function getParentItem(childItem) {
38
38
  }
39
39
  return childItem.parentElement;
40
40
  }
41
+ /**
42
+ * Represents an item in a Tree component.
43
+ *
44
+ * @tag vscode-tree
45
+ *
46
+ * @slot - Main content
47
+ * @slot icon-branch - Custom icon for a closed branch item.
48
+ * @slot icon-branch-opened - Custom icon for an opened branch item.
49
+ * @slot icon-leaf - Custom icon for a leaf item.
50
+ * @slot description - Description of the item. Displayed with a smaller font size and a less prominent color.
51
+ * @slot actions - Container for action buttons.
52
+ * @slot decoration - Container for small decorative elements aligned to the right edge of the item.
53
+ */
41
54
  let VscodeTreeItem = VscodeTreeItem_1 = class VscodeTreeItem extends VscElement {
42
55
  set selected(selected) {
43
56
  this._selected = selected;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tree-item.js","sourceRoot":"","sources":["../../src/vscode-tree-item/vscode-tree-item.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAiC,IAAI,EAAE,OAAO,EAAC,MAAM,KAAK,CAAC;AAClE,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAC,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAEL,aAAa,EACb,WAAW,GAEZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,+BAA+B,CAAC;AAEvE,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,SAAS,GAAG,IAAI,CAAA;;;;;;;;;;;OAWf,CAAC;AAER,SAAS,aAAa,CAAC,SAAyB;IAC9C,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,YAAY,cAAc,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC,aAAa,CAAC;AACjC,CAAC;AAGM,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,UAAU;IA4B5C,IAAI,QAAQ,CAAC,QAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAGD,IAAI,IAAI,CAAC,OAAiB;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;IACvB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAkED,YAAY;IAEZ,2BAA2B;IAE3B;QACE,KAAK,EAAE,CAAC;QApHV,oBAAoB;QAGpB,WAAM,GAAG,KAAK,CAAC;QAGf,WAAM,GAAG,KAAK,CAAC;QAGf,kBAAa,GAAG,KAAK,CAAC;QAGtB,oBAAe,GAAG,KAAK,CAAC;QAExB,gBAAgB;QAEhB,sBAAiB,GAAG,KAAK,CAAC;QAG1B,SAAI,GAAG,KAAK,CAAC;QAGb,UAAK,GAAG,CAAC,CAAC;QAgBF,cAAS,GAAG,KAAK,CAAC;QAS1B,YAAY;QAEZ,2BAA2B;QAEnB,UAAK,GAAa,EAAE,CAAC;QAIrB,mBAAc,GAAG,KAAK,CAAC;QAGvB,yBAAoB,GAAG,KAAK,CAAC;QAG7B,iBAAY,GAAG,KAAK,CAAC;QAGrB,+BAA0B,GAAG,KAAK,CAAC;QAGnC,2BAAsB,GAAG,KAAK,CAAC;QAG/B,8BAAyB,GAAG,KAAK,CAAC;QAGlC,sBAAiB,GAAgB;YACvC,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI,GAAG,EAAE;YACxB,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,IAAI;YACrB,aAAa,EAAE,KAAK;YACpB,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,IAAI;SACjB,CAAC;QAoBF,YAAY;QAEZ,uBAAuB;QAEf,qBAAgB,GAAG,KAAK,CAAC;QACzB,sBAAiB,GAAG,KAAK,CAAC;QAmW1B,0BAAqB,GAAG,GAAG,EAAE;YACnC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAClD,CAAC,CAAC;QAEM,0BAAqB,GAAG,GAAG,EAAE;YACnC,IACE,IAAI,CAAC,iBAAiB,CAAC,WAAW;gBAClC,IAAI,CAAC,iBAAiB,CAAC,WAAW,KAAK,IAAI,EAC3C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC;oBAC3C,IAAI,CAAC,iBAAiB,CAAC,eAAe;wBACpC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBACvC,CAAC;gBAED,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5C,CAAC,CAAC;QAEM,wBAAmB,GAAG,GAAG,EAAE;YACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,EAAgB,EAAE,EAAE;YACjD,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAChD,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,MAAM,aAAa,GAAG,EAAE,CAAC,aAAa,CAAC;YACvC,IAAI,aAAa,YAAY,OAAO,EAAE,CAAC;gBACrC,MAAM,QAAQ,GACZ,aAAa,CAAC,OAAO,CAAiB,kBAAkB,CAAC,CAAC;gBAC5D,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;oBAC1D,QAAQ,CAAC,sBAAsB,EAAE,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEM,mBAAc,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC;QA3YA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAEkB,YAAY,CAAC,iBAAiC;QAC/D,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACtC,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACpC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAEkB,UAAU,CAAC,iBAAiC;QAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,YAAY;IAEZ,yBAAyB;IAEjB,gBAAgB;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,6BAA6B,CACnC,SAAyB,EACzB,KAAc;QAEd,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,4BAA4B;QAClC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEpE,IAAI,CAAC,0BAA0B,GAAG,UAAU,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAEO,wBAAwB;QAC9B,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEhE,IAAI,CAAC,sBAAsB,GAAG,UAAU,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAEO,2BAA2B;QACjC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEnE,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC;QACzD,IAAI,CAAC,yBAAyB,GAAG,UAAU,CAAC;QAC5C,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACnD,IAAI,iBAAiB,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,SAAiB,EAAE,OAAgB;QACzD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yGAAyG;YACzG,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QAEhD,IAAI,IAAI,YAAY,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,aAAa,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,CAAC;QAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,aAAa,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3E,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,yBAAyB,CAAC,aAA6B;QAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI,CAC3C,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC1E,CAAC;IACJ,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/C,MAAM,gBAAgB,GAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;QAEvE,MAAM,UAAU,GACd,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,iBAAiB;YACtB,gBAAgB,CAAC;QAEnB,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IAEO,iBAAiB;QACvB,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACxD,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/C,IAAI,KAAK,GAA0B,IAAI,CAAC;QACxC,IAAI,aAAa,YAAY,OAAO,EAAE,CAAC;YACrC,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAElD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;gBACzC,IAAI,IAAI,YAAY,UAAU,IAAI,IAAI,CAAC,IAAI,YAAY,gBAAc,EAAE,CAAC;oBACtE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,GAAG,KAAK,KAAK,IAAI,CAAC;QAExC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;QACzD,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACzC,IAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC5D,SAAS,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAC3C,CAAC;QAED,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;gBACtC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;gBACjD,IAAI,CAAC,6BAA6B,CAChC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EACjC,KAAK,CACN,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC/C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;gBACzC,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,UAAmB;QACrC,MAAM,EAAC,aAAa,EAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/C,MAAM,EAAC,WAAW,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QAE5C,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACvC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;oBAChB,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,aAAa,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAiB;YACvC,GAAG,YAAY;YACf,GAAG,aAAa;SACjB,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEO,YAAY;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC;QAE3D,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEnE,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,WAAY,CAAC,gBAAgB,CAClD,kBAAkB,CACnB,CAAC;YAEJ,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;oBAChD,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAClC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC;QACjD,CAAC;QAED,IAAI,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;YACd,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,OAAO,CACtD,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,CAC9B,CAAC;QACF,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAE7C,IAAI,CAAC,oCAAoC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEpD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAiB;YACvC,GAAG,YAAY;YACf,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa;SACxC,CAAC,CAAC;QACH,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAEO,oCAAoC,CAAC,IAAY,EAAE,EAAU;QACnE,IAAI,CAAC,GAAG,IAAI,CAAC;QAEb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAEhD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC;oBACrE,CAAC,IAAI,WAAW,CAAC;gBACnB,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,CAAC,IAAI,IAAI,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;oBACrB,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YAC9C,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IAEZ,wBAAwB;IAEhB,yBAAyB;QAC/B,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC;QAC/D,CAAC;IACH,CAAC;IAEO,4BAA4B;QAClC,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACtC,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAEO,2BAA2B;QACjC,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAqDO,mBAAmB,CAAC,EAAc;QACxC,EAAE,CAAC,eAAe,EAAE,CAAC;QAErB,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC;QAC5C,MAAM,WAAW,GAAG,EAAE,CAAC,QAAQ,CAAC;QAEhC,IAAI,WAAW,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YACnD,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAAE,CAAC;YAE3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC7B,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC9D,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,IAAI,UAAU,CAAC,EAAE,CAAC;oBACpE,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,IAAI,CAAC;QAChD,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,EAAc;QACvC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW,EAAE,CAAC;YAC9D,IACE,IAAI,CAAC,MAAM;gBACX,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,EAChE,CAAC;gBACD,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,EAAS;QACrC,MAAM,IAAI,GAAG,EAAE,CAAC,MAAyB,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAEtD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,aAAa;gBAChB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;gBACjC,MAAM;YACR,KAAK,oBAAoB;gBACvB,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC;gBACvC,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;gBAC/B,MAAM;YACR,QAAQ;QACV,CAAC;IACH,CAAC;IAED,YAAY;IAEH,MAAM;QACb,MAAM,EAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC;QAC/D,MAAM,EAAC,aAAa,EAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAC/C,IAAI,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpD,MAAM,WAAW,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,WAAW,GAAG,IAAI,CAAC,KAAK,GAAG,MAAM,GAAG,WAAW,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC;YACjD,WAAW,IAAI,qBAAqB,CAAC;QACvC,CAAC;QAED,MAAM,cAAc,GAClB,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC;YACpC,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC;YACvD,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,cAAc,GAAG;YACrB,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,iBAAiB,EAAE,IAAI,CAAC,0BAA0B;YAClD,aAAa,EAAE,IAAI,CAAC,sBAAsB;YAC1C,gBAAgB,EAAE,IAAI,CAAC,yBAAyB;SACjD,CAAC;QAEF,MAAM,eAAe,GAAG;YACtB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,YAAY,KAAK,YAAY,CAAC,IAAI;YACzC,eAAe,EAAE,YAAY,KAAK,YAAY,CAAC,IAAI;YACnD,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;SAC5C,CAAC;QAEF,MAAM,oBAAoB,GAAG;YAC3B,gBAAgB,EAAE,IAAI;YACtB,UAAU,EAAE,cAAc;SAC3B,CAAC;QAEF,MAAM,cAAc,GAAG;YACrB,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE,IAAI,CAAC,0BAA0B;YAClD,gBAAgB,EAAE,IAAI,CAAC,yBAAyB;SACjD,CAAC;QAEF,OAAO,IAAI,CAAA;;gBAEC,QAAQ,CAAC,cAAc,CAAC;;iBAEvB,IAAI,CAAC,mBAAmB;oBACrB,IAAI,CAAC,kBAAkB;iBAC1B,gBAAgB,CAAC,EAAC,WAAW,EAAE,GAAG,WAAW,IAAI,EAAC,CAAC;;UAE1D,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU;YAC1B,CAAC,CAAC,IAAI,CAAA;sBACM,QAAQ,CAAC;gBACf,iBAAiB,EAAE,IAAI;gBACvB,cAAc,EAAE,IAAI,CAAC,IAAI;aAC1B,CAAC;;;gBAGA,SAAS;mBACN;YACT,CAAC,CAAC,OAAO;qBACE,QAAQ,CAAC,oBAAoB,CAAC;YACvC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI;YACzB,CAAC,CAAC,IAAI,CAAA;;8BAEY,IAAI,CAAC,qBAAqB;uBACjC;YACX,CAAC,CAAC,OAAO;YACT,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,CAAA;;8BAEY,IAAI,CAAC,qBAAqB;uBACjC;YACX,CAAC,CAAC,OAAO;YACT,CAAC,IAAI,CAAC,MAAM;YACZ,CAAC,CAAC,IAAI,CAAA;;8BAEY,IAAI,CAAC,qBAAqB;uBACjC;YACX,CAAC,CAAC,OAAO;;qBAEA,QAAQ,CAAC,cAAc,CAAC;;gCAEb,IAAI,CAAC,qBAAqB;;;;;sBAKpC,CAAC,IAAI,CAAC,0BAA0B;;;;4BAI1B,IAAI,CAAC,4BAA4B;;;;;;4BAMjC,IAAI,CAAC,wBAAwB;;;;;;4BAM7B,IAAI,CAAC,2BAA2B;;;;;;gBAM5C,QAAQ,CAAC,eAAe,CAAC;iBACxB,gBAAgB,CAAC;YACxB,0BAA0B,EAAE,GAAG,YAAY,IAAI;SAChD,CAAC;;;;;;wBAMc,IAAI,CAAC,yBAAyB;;;WAG3C,CAAC;IACV,CAAC;;AAjsBe,qBAAM,GAAG,MAAM,AAAT,CAAU;AAKhC;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;8CACX;AAGf;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;8CAC1B;AAGf;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;qDACJ;AAGtB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;uDACF;AAIxB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;yDACA;AAG1B;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;4CAC5B;AAGb;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;6CAC9B;AAGV;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;8CAUxC;AAqBO;IADP,KAAK,EAAE;sDACuB;AAGvB;IADP,KAAK,EAAE;4DAC6B;AAG7B;IADP,KAAK,EAAE;oDACqB;AAGrB;IADP,KAAK,EAAE;kEACmC;AAGnC;IADP,KAAK,EAAE;8DAC+B;AAG/B;IADP,KAAK,EAAE;iEACkC;AAGlC;IADP,OAAO,CAAC,EAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;yDAY/C;AAGM;IADP,OAAO,CAAC,EAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;sDACZ;AAG/B;IADP,qBAAqB,CAAC,EAAC,QAAQ,EAAE,kBAAkB,EAAC,CAAC;mEACC;AAG/C;IADP,qBAAqB,CAAC,EAAC,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC;0DAC1B;AAGtC;IADP,qBAAqB,CAAC,EAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;gEACf;AAGrC;IADP,qBAAqB,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;4DACf;AAGjC;IADP,qBAAqB,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;+DACf;AAzGjC,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CAmsB1B","sourcesContent":["import {PropertyValues, TemplateResult, html, nothing} from 'lit';\nimport {consume} from '@lit/context';\nimport {property, queryAssignedElements, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {stylePropertyMap} from '../includes/style-property-map.js';\nimport {\n ConfigContext,\n configContext,\n treeContext,\n type TreeContext,\n} from '../vscode-tree/tree-context.js';\nimport {initPathTrackerProps} from '../vscode-tree/helpers.js';\nimport styles from './vscode-tree-item.styles.js';\nimport {ExpandMode, IndentGuides} from '../vscode-tree/vscode-tree.js';\n\nconst BASE_INDENT = 3;\nconst ARROW_CONTAINER_WIDTH = 30;\n\nconst arrowIcon = html`<svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.072 8.024L5.715 3.667l.618-.62L11 7.716v.618L6.333 13l-.618-.619 4.357-4.357z\"\n />\n</svg>`;\n\nfunction getParentItem(childItem: VscodeTreeItem) {\n if (!childItem.parentElement) {\n return null;\n }\n\n if (!(childItem.parentElement instanceof VscodeTreeItem)) {\n return null;\n }\n\n return childItem.parentElement;\n}\n\n@customElement('vscode-tree-item')\nexport class VscodeTreeItem extends VscElement {\n static override styles = styles;\n\n //#region properties\n\n @property({type: Boolean})\n active = false;\n\n @property({type: Boolean, reflect: true})\n branch = false;\n\n @property({type: Boolean})\n hasActiveItem = false;\n\n @property({type: Boolean})\n hasSelectedItem = false;\n\n /** @internal */\n @property({type: Boolean})\n highlightedGuides = false;\n\n @property({type: Boolean, reflect: true})\n open = false;\n\n @property({type: Number, reflect: true})\n level = 0;\n\n @property({type: Boolean, reflect: true})\n set selected(selected: boolean) {\n this._selected = selected;\n if (selected) {\n this._treeContextState.selectedItems.add(this);\n } else {\n this._treeContextState.selectedItems.delete(this);\n }\n this.ariaSelected = selected ? 'true' : 'false';\n this._updateActionsVisibility();\n }\n get selected(): boolean {\n return this._selected;\n }\n private _selected = false;\n\n set path(newPath: number[]) {\n this._path = newPath;\n }\n get path(): number[] {\n return this._path;\n }\n\n //#endregion\n\n //#region private variables\n\n private _path: number[] = [];\n private _internals: ElementInternals;\n\n @state()\n private _hasBranchIcon = false;\n\n @state()\n private _hasBranchOpenedIcon = false;\n\n @state()\n private _hasLeafIcon = false;\n\n @state()\n private _hasDescriptionSlotContent = false;\n\n @state()\n private _hasActionsSlotContent = false;\n\n @state()\n private _hasDecorationSlotContent = false;\n\n @consume({context: treeContext, subscribe: true})\n private _treeContextState: TreeContext = {\n isShiftPressed: false,\n selectedItems: new Set(),\n hoveredItem: null,\n allItems: null,\n itemListUpToDate: false,\n focusedItem: null,\n prevFocusedItem: null,\n hasBranchItem: false,\n rootElement: null,\n activeItem: null,\n };\n\n @consume({context: configContext, subscribe: true})\n private _configContext!: ConfigContext;\n\n @queryAssignedElements({selector: 'vscode-tree-item'})\n private _initiallyAssignedTreeItems!: VscodeTreeItem[];\n\n @queryAssignedElements({selector: 'vscode-tree-item', slot: 'children'})\n private _childrenTreeItems!: VscodeTreeItem[];\n\n @queryAssignedElements({slot: 'description', flatten: true})\n private _descriptionSlotElements!: Element[];\n\n @queryAssignedElements({slot: 'actions', flatten: true})\n private _actionsSlotElements!: Element[];\n\n @queryAssignedElements({slot: 'decoration', flatten: true})\n private _decorationSlotElements!: Element[];\n\n //#endregion\n\n //#region derived state\n\n private _isPointerInside = false;\n private _hasKeyboardFocus = false;\n\n //#endregion\n\n //#region lifecycle methods\n\n constructor() {\n super();\n\n this._internals = this.attachInternals();\n this.addEventListener('focus', this._handleComponentFocus);\n this.addEventListener('pointerenter', this._handlePointerEnter);\n this.addEventListener('pointerleave', this._handlePointerLeave);\n this.addEventListener('focusin', this._handleFocusIn);\n this.addEventListener('focusout', this._handleFocusOut);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._mainSlotChange();\n this.role = 'treeitem';\n this.ariaDisabled = 'false';\n }\n\n protected override firstUpdated(changedProperties: PropertyValues): void {\n super.firstUpdated(changedProperties);\n this._refreshDescriptionSlotState();\n this._refreshActionsSlotState();\n this._refreshDecorationSlotState();\n if (this.matches(':hover')) {\n this._isPointerInside = true;\n this._claimHover();\n } else {\n this._updateActionsVisibility();\n }\n }\n\n protected override willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('active')) {\n this._toggleActiveState();\n }\n\n if (changedProperties.has('open') || changedProperties.has('branch')) {\n this._setAriaExpanded();\n }\n }\n\n //#endregion\n\n //#region private methods\n\n private _setAriaExpanded() {\n if (!this.branch) {\n this.ariaExpanded = null;\n } else {\n this.ariaExpanded = this.open ? 'true' : 'false';\n }\n }\n\n private _setHasActiveItemFlagOnParent(\n childItem: VscodeTreeItem,\n value: boolean\n ) {\n const parent = getParentItem(childItem);\n\n if (parent) {\n parent.hasActiveItem = value;\n }\n }\n\n private _refreshDescriptionSlotState() {\n const hasContent = (this._descriptionSlotElements?.length ?? 0) > 0;\n\n this._hasDescriptionSlotContent = hasContent;\n this._setCustomState('has-description', hasContent);\n }\n\n private _refreshActionsSlotState() {\n const hasContent = (this._actionsSlotElements?.length ?? 0) > 0;\n\n this._hasActionsSlotContent = hasContent;\n this._setCustomState('has-actions', hasContent);\n this._updateActionsVisibility();\n }\n\n private _refreshDecorationSlotState() {\n const hasContent = (this._decorationSlotElements?.length ?? 0) > 0;\n\n const prevHasDecoration = this._hasDecorationSlotContent;\n this._hasDecorationSlotContent = hasContent;\n this._setCustomState('has-decoration', hasContent);\n if (prevHasDecoration !== hasContent) {\n this.requestUpdate();\n }\n }\n\n private _setCustomState(stateName: string, present: boolean) {\n if (!this._internals?.states) {\n return;\n }\n\n try {\n if (present) {\n this._internals.states.add(stateName);\n } else {\n this._internals.states.delete(stateName);\n }\n } catch {\n // https://developer.mozilla.org/en-US/docs/Web/API/CustomStateSet#compatibility_with_dashed-ident_syntax\n if (present) {\n this._internals.states.add(`--${stateName}`);\n } else {\n this._internals.states.delete(`--${stateName}`);\n }\n }\n }\n\n private _getActiveElement(): Element | null {\n const root = this.getRootNode({composed: true});\n\n if (root instanceof Document) {\n return root.activeElement instanceof Element ? root.activeElement : null;\n }\n\n if (root instanceof ShadowRoot) {\n return root.activeElement instanceof Element ? root.activeElement : null;\n }\n\n return null;\n }\n\n private _isActiveElementInActions(activeElement: Element | null): boolean {\n if (!activeElement) {\n return false;\n }\n\n return (this._actionsSlotElements ?? []).some(\n (element) => element === activeElement || element.contains(activeElement)\n );\n }\n\n private _updateActionsVisibility() {\n if (!this._hasActionsSlotContent) {\n this._setCustomState('show-actions', false);\n return;\n }\n\n const activeElement = this._getActiveElement();\n const isActionsFocused = this._isActiveElementInActions(activeElement);\n\n const shouldShow =\n this.selected ||\n this._isPointerInside ||\n this._hasKeyboardFocus ||\n isActionsFocused;\n\n this._setCustomState('show-actions', shouldShow);\n }\n\n private _updateFocusState() {\n const hostFocusVisible = this.matches(':focus-visible');\n this._setCustomState('focus-visible', hostFocusVisible);\n\n const activeElement = this._getActiveElement();\n let owner: VscodeTreeItem | null = null;\n if (activeElement instanceof Element) {\n owner = activeElement.closest('vscode-tree-item');\n\n if (!owner) {\n const root = activeElement.getRootNode();\n if (root instanceof ShadowRoot && root.host instanceof VscodeTreeItem) {\n owner = root.host;\n }\n }\n }\n\n const hasKeyboardFocus = owner === this;\n\n this._hasKeyboardFocus = hasKeyboardFocus;\n this._setCustomState('keyboard-focus', hasKeyboardFocus);\n this._updateActionsVisibility();\n }\n\n private _clearHoverState() {\n this._isPointerInside = false;\n this._setCustomState('hover', false);\n this._updateActionsVisibility();\n }\n\n private _adoptHoverFromSibling() {\n this._isPointerInside = true;\n this._claimHover();\n }\n\n private _claimHover() {\n const treeState = this._treeContextState;\n if (treeState.hoveredItem && treeState.hoveredItem !== this) {\n treeState.hoveredItem._clearHoverState();\n }\n\n treeState.hoveredItem = this;\n this._setCustomState('hover', true);\n this._updateActionsVisibility();\n }\n\n private _toggleActiveState() {\n if (this.active) {\n if (this._treeContextState.activeItem) {\n this._treeContextState.activeItem.active = false;\n this._setHasActiveItemFlagOnParent(\n this._treeContextState.activeItem,\n false\n );\n }\n\n this._treeContextState.activeItem = this;\n this._setHasActiveItemFlagOnParent(this, true);\n this.tabIndex = 0;\n this._setCustomState('active', true);\n } else {\n if (this._treeContextState.activeItem === this) {\n this._treeContextState.activeItem = null;\n this._setHasActiveItemFlagOnParent(this, false);\n }\n\n this.tabIndex = -1;\n this._setCustomState('active', false);\n }\n }\n\n private _selectItem(isCtrlDown: boolean) {\n const {selectedItems} = this._treeContextState;\n const {multiSelect} = this._configContext;\n const prevSelected = new Set(selectedItems);\n\n if (multiSelect && isCtrlDown) {\n this.selected = !this.selected;\n } else {\n Array.from(selectedItems).forEach((li) => {\n if (li !== this) {\n li.selected = false;\n }\n });\n selectedItems.clear();\n this.selected = true;\n }\n\n const affected = new Set<VscodeTreeItem>([\n ...prevSelected,\n ...selectedItems,\n ]);\n affected.add(this);\n affected.forEach((li) => li._updateActionsVisibility());\n }\n\n private _selectRange() {\n const prevFocused = this._treeContextState.prevFocusedItem;\n\n if (!prevFocused || prevFocused === this) {\n return;\n }\n\n const prevSelected = new Set(this._treeContextState.selectedItems);\n\n if (!this._treeContextState.itemListUpToDate) {\n this._treeContextState.allItems =\n this._treeContextState.rootElement!.querySelectorAll(\n 'vscode-tree-item'\n );\n\n if (this._treeContextState.allItems) {\n this._treeContextState.allItems.forEach((li, i) => {\n li.dataset.score = i.toString();\n });\n }\n\n this._treeContextState.itemListUpToDate = true;\n }\n\n let from = +(prevFocused.dataset.score ?? -1);\n let to = +(this.dataset.score ?? -1);\n\n if (from > to) {\n [from, to] = [to, from];\n }\n\n Array.from(this._treeContextState.selectedItems).forEach(\n (li) => (li.selected = false)\n );\n this._treeContextState.selectedItems.clear();\n\n this._selectItemsAndAllVisibleDescendants(from, to);\n\n const affected = new Set<VscodeTreeItem>([\n ...prevSelected,\n ...this._treeContextState.selectedItems,\n ]);\n affected.add(this);\n affected.forEach((li) => li._updateActionsVisibility());\n }\n\n private _selectItemsAndAllVisibleDescendants(from: number, to: number) {\n let i = from;\n\n while (i <= to) {\n if (this._treeContextState.allItems) {\n const item = this._treeContextState.allItems[i];\n\n if (item.branch && !item.open) {\n item.selected = true;\n const numChildren = item.querySelectorAll('vscode-tree-item').length;\n i += numChildren;\n } else if (item.branch && item.open) {\n item.selected = true;\n i += this._selectItemsAndAllVisibleDescendants(i + 1, to);\n } else {\n item.selected = true;\n i += 1;\n }\n }\n }\n\n return i;\n }\n\n private _mainSlotChange() {\n this._initiallyAssignedTreeItems.forEach((li) => {\n li.setAttribute('slot', 'children');\n });\n }\n\n //#endregion\n\n //#region event handlers\n\n private _handleChildrenSlotChange() {\n initPathTrackerProps(this, this._childrenTreeItems);\n\n if (this._treeContextState.rootElement) {\n this._treeContextState.rootElement.updateHasBranchItemFlag();\n }\n }\n\n private _handleDescriptionSlotChange() {\n this._refreshDescriptionSlotState();\n }\n\n private _handleActionsSlotChange() {\n this._refreshActionsSlotState();\n }\n\n private _handleDecorationSlotChange() {\n this._refreshDecorationSlotState();\n }\n\n private _handleMainSlotChange = () => {\n this._mainSlotChange();\n this._treeContextState.itemListUpToDate = false;\n };\n\n private _handleComponentFocus = () => {\n if (\n this._treeContextState.focusedItem &&\n this._treeContextState.focusedItem !== this\n ) {\n if (!this._treeContextState.isShiftPressed) {\n this._treeContextState.prevFocusedItem =\n this._treeContextState.focusedItem;\n }\n\n this._treeContextState.focusedItem = null;\n }\n\n this._treeContextState.focusedItem = this;\n };\n\n private _handlePointerEnter = () => {\n this._isPointerInside = true;\n this._claimHover();\n };\n\n private _handlePointerLeave = (ev: PointerEvent) => {\n this._isPointerInside = false;\n if (this._treeContextState.hoveredItem === this) {\n this._treeContextState.hoveredItem = null;\n }\n this._clearHoverState();\n\n const relatedTarget = ev.relatedTarget;\n if (relatedTarget instanceof Element) {\n const nextItem =\n relatedTarget.closest<VscodeTreeItem>('vscode-tree-item');\n if (nextItem && nextItem !== this && nextItem.isConnected) {\n nextItem._adoptHoverFromSibling();\n }\n }\n };\n\n private _handleFocusIn = () => {\n this._updateFocusState();\n };\n\n private _handleFocusOut = () => {\n this._updateFocusState();\n };\n\n private _handleContentClick(ev: MouseEvent) {\n ev.stopPropagation();\n\n const isCtrlDown = ev.ctrlKey || ev.metaKey;\n const isShiftDown = ev.shiftKey;\n\n if (isShiftDown && this._configContext.multiSelect) {\n this._selectRange();\n this._treeContextState.emitSelectEvent?.();\n\n this.updateComplete.then(() => {\n this._treeContextState.highlightIndentGuides?.();\n });\n } else {\n this._selectItem(isCtrlDown);\n this._treeContextState.emitSelectEvent?.();\n this.updateComplete.then(() => {\n this._treeContextState.highlightIndentGuides?.();\n });\n\n if (this._configContext.expandMode === ExpandMode.singleClick) {\n if (this.branch && !(this._configContext.multiSelect && isCtrlDown)) {\n this.open = !this.open;\n }\n }\n }\n\n this.active = true;\n\n if (!isShiftDown) {\n this._treeContextState.prevFocusedItem = this;\n }\n }\n\n private _handleDoubleClick(ev: MouseEvent) {\n if (this._configContext.expandMode === ExpandMode.doubleClick) {\n if (\n this.branch &&\n !(this._configContext.multiSelect && (ev.ctrlKey || ev.metaKey))\n ) {\n this.open = !this.open;\n }\n }\n }\n\n private _handleIconSlotChange(ev: Event) {\n const slot = ev.target as HTMLSlotElement;\n const hasContent = slot.assignedElements().length > 0;\n\n switch (slot.name) {\n case 'icon-branch':\n this._hasBranchIcon = hasContent;\n break;\n case 'icon-branch-opened':\n this._hasBranchOpenedIcon = hasContent;\n break;\n case 'icon-leaf':\n this._hasLeafIcon = hasContent;\n break;\n default:\n }\n }\n\n //#endregion\n\n override render(): TemplateResult {\n const {hideArrows, indent, indentGuides} = this._configContext;\n const {hasBranchItem} = this._treeContextState;\n let indentation = BASE_INDENT + this.level * indent;\n const guideOffset = !hideArrows ? 13 : 3;\n const indentGuideX = BASE_INDENT + this.level * indent + guideOffset;\n\n if (!this.branch && !hideArrows && hasBranchItem) {\n indentation += ARROW_CONTAINER_WIDTH;\n }\n\n const hasVisibleIcon =\n (this._hasBranchIcon && this.branch) ||\n (this._hasBranchOpenedIcon && this.branch && this.open) ||\n (this._hasLeafIcon && !this.branch);\n\n const wrapperClasses = {\n wrapper: true,\n active: this.active,\n 'has-description': this._hasDescriptionSlotContent,\n 'has-actions': this._hasActionsSlotContent,\n 'has-decoration': this._hasDecorationSlotContent,\n };\n\n const childrenClasses = {\n children: true,\n guide: indentGuides !== IndentGuides.none,\n 'default-guide': indentGuides !== IndentGuides.none,\n 'highlighted-guide': this.highlightedGuides,\n };\n\n const iconContainerClasses = {\n 'icon-container': true,\n 'has-icon': hasVisibleIcon,\n };\n\n const contentClasses = {\n content: true,\n 'has-description': this._hasDescriptionSlotContent,\n 'has-decoration': this._hasDecorationSlotContent,\n };\n\n return html` <div class=\"root\">\n <div\n class=${classMap(wrapperClasses)}\n part=\"wrapper\"\n @click=${this._handleContentClick}\n @dblclick=${this._handleDoubleClick}\n .style=${stylePropertyMap({paddingLeft: `${indentation}px`})}\n >\n ${this.branch && !hideArrows\n ? html`<div\n class=${classMap({\n 'arrow-container': true,\n 'icon-rotated': this.open,\n })}\n part=\"arrow-icon-container\"\n >\n ${arrowIcon}\n </div>`\n : nothing}\n <div class=${classMap(iconContainerClasses)} part=\"icon-container\">\n ${this.branch && !this.open\n ? html`<slot\n name=\"icon-branch\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n ${this.branch && this.open\n ? html`<slot\n name=\"icon-branch-opened\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n ${!this.branch\n ? html`<slot\n name=\"icon-leaf\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n </div>\n <div class=${classMap(contentClasses)} part=\"content\">\n <span class=\"label\" part=\"label\">\n <slot @slotchange=${this._handleMainSlotChange}></slot>\n </span>\n <span\n class=\"description\"\n part=\"description\"\n ?hidden=${!this._hasDescriptionSlotContent}\n >\n <slot\n name=\"description\"\n @slotchange=${this._handleDescriptionSlotChange}\n ></slot>\n </span>\n <div class=\"actions\" part=\"actions\">\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionsSlotChange}\n ></slot>\n </div>\n <div class=\"decoration\" part=\"decoration\">\n <slot\n name=\"decoration\"\n @slotchange=${this._handleDecorationSlotChange}\n ></slot>\n </div>\n </div>\n </div>\n <div\n class=${classMap(childrenClasses)}\n .style=${stylePropertyMap({\n '--indentation-guide-left': `${indentGuideX}px`,\n })}\n role=\"group\"\n part=\"children\"\n >\n <slot\n name=\"children\"\n @slotchange=${this._handleChildrenSlotChange}\n ></slot>\n </div>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tree-item': VscodeTreeItem;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-tree-item.js","sourceRoot":"","sources":["../../src/vscode-tree-item/vscode-tree-item.ts"],"names":[],"mappings":"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","sourcesContent":["import {PropertyValues, TemplateResult, html, nothing} from 'lit';\nimport {consume} from '@lit/context';\nimport {property, queryAssignedElements, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {stylePropertyMap} from '../includes/style-property-map.js';\nimport {\n ConfigContext,\n configContext,\n treeContext,\n type TreeContext,\n} from '../vscode-tree/tree-context.js';\nimport {initPathTrackerProps} from '../vscode-tree/helpers.js';\nimport styles from './vscode-tree-item.styles.js';\nimport {ExpandMode, IndentGuides} from '../vscode-tree/vscode-tree.js';\n\nconst BASE_INDENT = 3;\nconst ARROW_CONTAINER_WIDTH = 30;\n\nconst arrowIcon = html`<svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.072 8.024L5.715 3.667l.618-.62L11 7.716v.618L6.333 13l-.618-.619 4.357-4.357z\"\n />\n</svg>`;\n\nfunction getParentItem(childItem: VscodeTreeItem) {\n if (!childItem.parentElement) {\n return null;\n }\n\n if (!(childItem.parentElement instanceof VscodeTreeItem)) {\n return null;\n }\n\n return childItem.parentElement;\n}\n\n/**\n * Represents an item in a Tree component.\n *\n * @tag vscode-tree\n *\n * @slot - Main content\n * @slot icon-branch - Custom icon for a closed branch item.\n * @slot icon-branch-opened - Custom icon for an opened branch item.\n * @slot icon-leaf - Custom icon for a leaf item.\n * @slot description - Description of the item. Displayed with a smaller font size and a less prominent color.\n * @slot actions - Container for action buttons.\n * @slot decoration - Container for small decorative elements aligned to the right edge of the item.\n */\n@customElement('vscode-tree-item')\nexport class VscodeTreeItem extends VscElement {\n static override styles = styles;\n\n //#region properties\n\n @property({type: Boolean})\n active = false;\n\n @property({type: Boolean, reflect: true})\n branch = false;\n\n @property({type: Boolean})\n hasActiveItem = false;\n\n @property({type: Boolean})\n hasSelectedItem = false;\n\n /** @internal */\n @property({type: Boolean})\n highlightedGuides = false;\n\n @property({type: Boolean, reflect: true})\n open = false;\n\n @property({type: Number, reflect: true})\n level = 0;\n\n @property({type: Boolean, reflect: true})\n set selected(selected: boolean) {\n this._selected = selected;\n if (selected) {\n this._treeContextState.selectedItems.add(this);\n } else {\n this._treeContextState.selectedItems.delete(this);\n }\n this.ariaSelected = selected ? 'true' : 'false';\n this._updateActionsVisibility();\n }\n get selected(): boolean {\n return this._selected;\n }\n private _selected = false;\n\n set path(newPath: number[]) {\n this._path = newPath;\n }\n get path(): number[] {\n return this._path;\n }\n\n //#endregion\n\n //#region private variables\n\n private _path: number[] = [];\n private _internals: ElementInternals;\n\n @state()\n private _hasBranchIcon = false;\n\n @state()\n private _hasBranchOpenedIcon = false;\n\n @state()\n private _hasLeafIcon = false;\n\n @state()\n private _hasDescriptionSlotContent = false;\n\n @state()\n private _hasActionsSlotContent = false;\n\n @state()\n private _hasDecorationSlotContent = false;\n\n @consume({context: treeContext, subscribe: true})\n private _treeContextState: TreeContext = {\n isShiftPressed: false,\n selectedItems: new Set(),\n hoveredItem: null,\n allItems: null,\n itemListUpToDate: false,\n focusedItem: null,\n prevFocusedItem: null,\n hasBranchItem: false,\n rootElement: null,\n activeItem: null,\n };\n\n @consume({context: configContext, subscribe: true})\n private _configContext!: ConfigContext;\n\n @queryAssignedElements({selector: 'vscode-tree-item'})\n private _initiallyAssignedTreeItems!: VscodeTreeItem[];\n\n @queryAssignedElements({selector: 'vscode-tree-item', slot: 'children'})\n private _childrenTreeItems!: VscodeTreeItem[];\n\n @queryAssignedElements({slot: 'description', flatten: true})\n private _descriptionSlotElements!: Element[];\n\n @queryAssignedElements({slot: 'actions', flatten: true})\n private _actionsSlotElements!: Element[];\n\n @queryAssignedElements({slot: 'decoration', flatten: true})\n private _decorationSlotElements!: Element[];\n\n //#endregion\n\n //#region derived state\n\n private _isPointerInside = false;\n private _hasKeyboardFocus = false;\n\n //#endregion\n\n //#region lifecycle methods\n\n constructor() {\n super();\n\n this._internals = this.attachInternals();\n this.addEventListener('focus', this._handleComponentFocus);\n this.addEventListener('pointerenter', this._handlePointerEnter);\n this.addEventListener('pointerleave', this._handlePointerLeave);\n this.addEventListener('focusin', this._handleFocusIn);\n this.addEventListener('focusout', this._handleFocusOut);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._mainSlotChange();\n this.role = 'treeitem';\n this.ariaDisabled = 'false';\n }\n\n protected override firstUpdated(changedProperties: PropertyValues): void {\n super.firstUpdated(changedProperties);\n this._refreshDescriptionSlotState();\n this._refreshActionsSlotState();\n this._refreshDecorationSlotState();\n if (this.matches(':hover')) {\n this._isPointerInside = true;\n this._claimHover();\n } else {\n this._updateActionsVisibility();\n }\n }\n\n protected override willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('active')) {\n this._toggleActiveState();\n }\n\n if (changedProperties.has('open') || changedProperties.has('branch')) {\n this._setAriaExpanded();\n }\n }\n\n //#endregion\n\n //#region private methods\n\n private _setAriaExpanded() {\n if (!this.branch) {\n this.ariaExpanded = null;\n } else {\n this.ariaExpanded = this.open ? 'true' : 'false';\n }\n }\n\n private _setHasActiveItemFlagOnParent(\n childItem: VscodeTreeItem,\n value: boolean\n ) {\n const parent = getParentItem(childItem);\n\n if (parent) {\n parent.hasActiveItem = value;\n }\n }\n\n private _refreshDescriptionSlotState() {\n const hasContent = (this._descriptionSlotElements?.length ?? 0) > 0;\n\n this._hasDescriptionSlotContent = hasContent;\n this._setCustomState('has-description', hasContent);\n }\n\n private _refreshActionsSlotState() {\n const hasContent = (this._actionsSlotElements?.length ?? 0) > 0;\n\n this._hasActionsSlotContent = hasContent;\n this._setCustomState('has-actions', hasContent);\n this._updateActionsVisibility();\n }\n\n private _refreshDecorationSlotState() {\n const hasContent = (this._decorationSlotElements?.length ?? 0) > 0;\n\n const prevHasDecoration = this._hasDecorationSlotContent;\n this._hasDecorationSlotContent = hasContent;\n this._setCustomState('has-decoration', hasContent);\n if (prevHasDecoration !== hasContent) {\n this.requestUpdate();\n }\n }\n\n private _setCustomState(stateName: string, present: boolean) {\n if (!this._internals?.states) {\n return;\n }\n\n try {\n if (present) {\n this._internals.states.add(stateName);\n } else {\n this._internals.states.delete(stateName);\n }\n } catch {\n // https://developer.mozilla.org/en-US/docs/Web/API/CustomStateSet#compatibility_with_dashed-ident_syntax\n if (present) {\n this._internals.states.add(`--${stateName}`);\n } else {\n this._internals.states.delete(`--${stateName}`);\n }\n }\n }\n\n private _getActiveElement(): Element | null {\n const root = this.getRootNode({composed: true});\n\n if (root instanceof Document) {\n return root.activeElement instanceof Element ? root.activeElement : null;\n }\n\n if (root instanceof ShadowRoot) {\n return root.activeElement instanceof Element ? root.activeElement : null;\n }\n\n return null;\n }\n\n private _isActiveElementInActions(activeElement: Element | null): boolean {\n if (!activeElement) {\n return false;\n }\n\n return (this._actionsSlotElements ?? []).some(\n (element) => element === activeElement || element.contains(activeElement)\n );\n }\n\n private _updateActionsVisibility() {\n if (!this._hasActionsSlotContent) {\n this._setCustomState('show-actions', false);\n return;\n }\n\n const activeElement = this._getActiveElement();\n const isActionsFocused = this._isActiveElementInActions(activeElement);\n\n const shouldShow =\n this.selected ||\n this._isPointerInside ||\n this._hasKeyboardFocus ||\n isActionsFocused;\n\n this._setCustomState('show-actions', shouldShow);\n }\n\n private _updateFocusState() {\n const hostFocusVisible = this.matches(':focus-visible');\n this._setCustomState('focus-visible', hostFocusVisible);\n\n const activeElement = this._getActiveElement();\n let owner: VscodeTreeItem | null = null;\n if (activeElement instanceof Element) {\n owner = activeElement.closest('vscode-tree-item');\n\n if (!owner) {\n const root = activeElement.getRootNode();\n if (root instanceof ShadowRoot && root.host instanceof VscodeTreeItem) {\n owner = root.host;\n }\n }\n }\n\n const hasKeyboardFocus = owner === this;\n\n this._hasKeyboardFocus = hasKeyboardFocus;\n this._setCustomState('keyboard-focus', hasKeyboardFocus);\n this._updateActionsVisibility();\n }\n\n private _clearHoverState() {\n this._isPointerInside = false;\n this._setCustomState('hover', false);\n this._updateActionsVisibility();\n }\n\n private _adoptHoverFromSibling() {\n this._isPointerInside = true;\n this._claimHover();\n }\n\n private _claimHover() {\n const treeState = this._treeContextState;\n if (treeState.hoveredItem && treeState.hoveredItem !== this) {\n treeState.hoveredItem._clearHoverState();\n }\n\n treeState.hoveredItem = this;\n this._setCustomState('hover', true);\n this._updateActionsVisibility();\n }\n\n private _toggleActiveState() {\n if (this.active) {\n if (this._treeContextState.activeItem) {\n this._treeContextState.activeItem.active = false;\n this._setHasActiveItemFlagOnParent(\n this._treeContextState.activeItem,\n false\n );\n }\n\n this._treeContextState.activeItem = this;\n this._setHasActiveItemFlagOnParent(this, true);\n this.tabIndex = 0;\n this._setCustomState('active', true);\n } else {\n if (this._treeContextState.activeItem === this) {\n this._treeContextState.activeItem = null;\n this._setHasActiveItemFlagOnParent(this, false);\n }\n\n this.tabIndex = -1;\n this._setCustomState('active', false);\n }\n }\n\n private _selectItem(isCtrlDown: boolean) {\n const {selectedItems} = this._treeContextState;\n const {multiSelect} = this._configContext;\n const prevSelected = new Set(selectedItems);\n\n if (multiSelect && isCtrlDown) {\n this.selected = !this.selected;\n } else {\n Array.from(selectedItems).forEach((li) => {\n if (li !== this) {\n li.selected = false;\n }\n });\n selectedItems.clear();\n this.selected = true;\n }\n\n const affected = new Set<VscodeTreeItem>([\n ...prevSelected,\n ...selectedItems,\n ]);\n affected.add(this);\n affected.forEach((li) => li._updateActionsVisibility());\n }\n\n private _selectRange() {\n const prevFocused = this._treeContextState.prevFocusedItem;\n\n if (!prevFocused || prevFocused === this) {\n return;\n }\n\n const prevSelected = new Set(this._treeContextState.selectedItems);\n\n if (!this._treeContextState.itemListUpToDate) {\n this._treeContextState.allItems =\n this._treeContextState.rootElement!.querySelectorAll(\n 'vscode-tree-item'\n );\n\n if (this._treeContextState.allItems) {\n this._treeContextState.allItems.forEach((li, i) => {\n li.dataset.score = i.toString();\n });\n }\n\n this._treeContextState.itemListUpToDate = true;\n }\n\n let from = +(prevFocused.dataset.score ?? -1);\n let to = +(this.dataset.score ?? -1);\n\n if (from > to) {\n [from, to] = [to, from];\n }\n\n Array.from(this._treeContextState.selectedItems).forEach(\n (li) => (li.selected = false)\n );\n this._treeContextState.selectedItems.clear();\n\n this._selectItemsAndAllVisibleDescendants(from, to);\n\n const affected = new Set<VscodeTreeItem>([\n ...prevSelected,\n ...this._treeContextState.selectedItems,\n ]);\n affected.add(this);\n affected.forEach((li) => li._updateActionsVisibility());\n }\n\n private _selectItemsAndAllVisibleDescendants(from: number, to: number) {\n let i = from;\n\n while (i <= to) {\n if (this._treeContextState.allItems) {\n const item = this._treeContextState.allItems[i];\n\n if (item.branch && !item.open) {\n item.selected = true;\n const numChildren = item.querySelectorAll('vscode-tree-item').length;\n i += numChildren;\n } else if (item.branch && item.open) {\n item.selected = true;\n i += this._selectItemsAndAllVisibleDescendants(i + 1, to);\n } else {\n item.selected = true;\n i += 1;\n }\n }\n }\n\n return i;\n }\n\n private _mainSlotChange() {\n this._initiallyAssignedTreeItems.forEach((li) => {\n li.setAttribute('slot', 'children');\n });\n }\n\n //#endregion\n\n //#region event handlers\n\n private _handleChildrenSlotChange() {\n initPathTrackerProps(this, this._childrenTreeItems);\n\n if (this._treeContextState.rootElement) {\n this._treeContextState.rootElement.updateHasBranchItemFlag();\n }\n }\n\n private _handleDescriptionSlotChange() {\n this._refreshDescriptionSlotState();\n }\n\n private _handleActionsSlotChange() {\n this._refreshActionsSlotState();\n }\n\n private _handleDecorationSlotChange() {\n this._refreshDecorationSlotState();\n }\n\n private _handleMainSlotChange = () => {\n this._mainSlotChange();\n this._treeContextState.itemListUpToDate = false;\n };\n\n private _handleComponentFocus = () => {\n if (\n this._treeContextState.focusedItem &&\n this._treeContextState.focusedItem !== this\n ) {\n if (!this._treeContextState.isShiftPressed) {\n this._treeContextState.prevFocusedItem =\n this._treeContextState.focusedItem;\n }\n\n this._treeContextState.focusedItem = null;\n }\n\n this._treeContextState.focusedItem = this;\n };\n\n private _handlePointerEnter = () => {\n this._isPointerInside = true;\n this._claimHover();\n };\n\n private _handlePointerLeave = (ev: PointerEvent) => {\n this._isPointerInside = false;\n if (this._treeContextState.hoveredItem === this) {\n this._treeContextState.hoveredItem = null;\n }\n this._clearHoverState();\n\n const relatedTarget = ev.relatedTarget;\n if (relatedTarget instanceof Element) {\n const nextItem =\n relatedTarget.closest<VscodeTreeItem>('vscode-tree-item');\n if (nextItem && nextItem !== this && nextItem.isConnected) {\n nextItem._adoptHoverFromSibling();\n }\n }\n };\n\n private _handleFocusIn = () => {\n this._updateFocusState();\n };\n\n private _handleFocusOut = () => {\n this._updateFocusState();\n };\n\n private _handleContentClick(ev: MouseEvent) {\n ev.stopPropagation();\n\n const isCtrlDown = ev.ctrlKey || ev.metaKey;\n const isShiftDown = ev.shiftKey;\n\n if (isShiftDown && this._configContext.multiSelect) {\n this._selectRange();\n this._treeContextState.emitSelectEvent?.();\n\n this.updateComplete.then(() => {\n this._treeContextState.highlightIndentGuides?.();\n });\n } else {\n this._selectItem(isCtrlDown);\n this._treeContextState.emitSelectEvent?.();\n this.updateComplete.then(() => {\n this._treeContextState.highlightIndentGuides?.();\n });\n\n if (this._configContext.expandMode === ExpandMode.singleClick) {\n if (this.branch && !(this._configContext.multiSelect && isCtrlDown)) {\n this.open = !this.open;\n }\n }\n }\n\n this.active = true;\n\n if (!isShiftDown) {\n this._treeContextState.prevFocusedItem = this;\n }\n }\n\n private _handleDoubleClick(ev: MouseEvent) {\n if (this._configContext.expandMode === ExpandMode.doubleClick) {\n if (\n this.branch &&\n !(this._configContext.multiSelect && (ev.ctrlKey || ev.metaKey))\n ) {\n this.open = !this.open;\n }\n }\n }\n\n private _handleIconSlotChange(ev: Event) {\n const slot = ev.target as HTMLSlotElement;\n const hasContent = slot.assignedElements().length > 0;\n\n switch (slot.name) {\n case 'icon-branch':\n this._hasBranchIcon = hasContent;\n break;\n case 'icon-branch-opened':\n this._hasBranchOpenedIcon = hasContent;\n break;\n case 'icon-leaf':\n this._hasLeafIcon = hasContent;\n break;\n default:\n }\n }\n\n //#endregion\n\n override render(): TemplateResult {\n const {hideArrows, indent, indentGuides} = this._configContext;\n const {hasBranchItem} = this._treeContextState;\n let indentation = BASE_INDENT + this.level * indent;\n const guideOffset = !hideArrows ? 13 : 3;\n const indentGuideX = BASE_INDENT + this.level * indent + guideOffset;\n\n if (!this.branch && !hideArrows && hasBranchItem) {\n indentation += ARROW_CONTAINER_WIDTH;\n }\n\n const hasVisibleIcon =\n (this._hasBranchIcon && this.branch) ||\n (this._hasBranchOpenedIcon && this.branch && this.open) ||\n (this._hasLeafIcon && !this.branch);\n\n const wrapperClasses = {\n wrapper: true,\n active: this.active,\n 'has-description': this._hasDescriptionSlotContent,\n 'has-actions': this._hasActionsSlotContent,\n 'has-decoration': this._hasDecorationSlotContent,\n };\n\n const childrenClasses = {\n children: true,\n guide: indentGuides !== IndentGuides.none,\n 'default-guide': indentGuides !== IndentGuides.none,\n 'highlighted-guide': this.highlightedGuides,\n };\n\n const iconContainerClasses = {\n 'icon-container': true,\n 'has-icon': hasVisibleIcon,\n };\n\n const contentClasses = {\n content: true,\n 'has-description': this._hasDescriptionSlotContent,\n 'has-decoration': this._hasDecorationSlotContent,\n };\n\n return html` <div class=\"root\">\n <div\n class=${classMap(wrapperClasses)}\n part=\"wrapper\"\n @click=${this._handleContentClick}\n @dblclick=${this._handleDoubleClick}\n .style=${stylePropertyMap({paddingLeft: `${indentation}px`})}\n >\n ${this.branch && !hideArrows\n ? html`<div\n class=${classMap({\n 'arrow-container': true,\n 'icon-rotated': this.open,\n })}\n part=\"arrow-icon-container\"\n >\n ${arrowIcon}\n </div>`\n : nothing}\n <div class=${classMap(iconContainerClasses)} part=\"icon-container\">\n ${this.branch && !this.open\n ? html`<slot\n name=\"icon-branch\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n ${this.branch && this.open\n ? html`<slot\n name=\"icon-branch-opened\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n ${!this.branch\n ? html`<slot\n name=\"icon-leaf\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n </div>\n <div class=${classMap(contentClasses)} part=\"content\">\n <span class=\"label\" part=\"label\">\n <slot @slotchange=${this._handleMainSlotChange}></slot>\n </span>\n <span\n class=\"description\"\n part=\"description\"\n ?hidden=${!this._hasDescriptionSlotContent}\n >\n <slot\n name=\"description\"\n @slotchange=${this._handleDescriptionSlotChange}\n ></slot>\n </span>\n <div class=\"actions\" part=\"actions\">\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionsSlotChange}\n ></slot>\n </div>\n <div class=\"decoration\" part=\"decoration\">\n <slot\n name=\"decoration\"\n @slotchange=${this._handleDecorationSlotChange}\n ></slot>\n </div>\n </div>\n </div>\n <div\n class=${classMap(childrenClasses)}\n .style=${stylePropertyMap({\n '--indentation-guide-left': `${indentGuideX}px`,\n })}\n role=\"group\"\n part=\"children\"\n >\n <slot\n name=\"children\"\n @slotchange=${this._handleChildrenSlotChange}\n ></slot>\n </div>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tree-item': VscodeTreeItem;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vscode-elements/elements",
3
- "version": "2.4.0",
3
+ "version": "2.4.1-pre.1",
4
4
  "description": "Web components for creating Visual Studio Code extensions",
5
5
  "main": "dist/main.js",
6
6
  "module": "dist/main.js",
@@ -140,7 +140,7 @@
140
140
  },
141
141
  "devDependencies": {
142
142
  "@awmottaz/prettier-plugin-void-html": "^2.0.0",
143
- "@bendera/wds-plugin-directory-index": "^0.5.0",
143
+ "@bendera/wds-plugin-directory-index": "^0.7.0",
144
144
  "@custom-elements-manifest/analyzer": "^0.11.0",
145
145
  "@eslint/eslintrc": "^3.3.1",
146
146
  "@eslint/js": "^9.23.0",
@@ -151,7 +151,7 @@
151
151
  "@rollup/plugin-terser": "^0.4.4",
152
152
  "@types/chai": "4.3.20",
153
153
  "@types/mocha": "^10.0.10",
154
- "@types/node": "^22.14.0",
154
+ "@types/node": "^24.0.0",
155
155
  "@typescript-eslint/eslint-plugin": "^8.29.0",
156
156
  "@typescript-eslint/parser": "^8.29.0",
157
157
  "@vscode-elements/webview-playground": "^1.6.0",
@@ -660,7 +660,7 @@
660
660
  {
661
661
  "name": "vscode-table-header-cell",
662
662
  "description": "\n---\n\n\n### **CSS Properties:**\n - **--vscode-foreground** - undefined _(default: #cccccc)_\n- **--vscode-font-family** - undefined _(default: sans-serif)_\n- **--vscode-font-size** - undefined _(default: 13px)_",
663
- "attributes": [],
663
+ "attributes": [{ "name": "min-width", "values": [] }],
664
664
  "references": []
665
665
  },
666
666
  {
@@ -812,8 +812,8 @@
812
812
  "references": []
813
813
  },
814
814
  {
815
- "name": "vscode-tree-item",
816
- "description": "\n---\n",
815
+ "name": "vscode-tree",
816
+ "description": "Represents an item in a Tree component.\n---\n\n\n### **Slots:**\n - _default_ - Main content\n- **icon-branch** - Custom icon for a closed branch item.\n- **icon-branch-opened** - Custom icon for an opened branch item.\n- **icon-leaf** - Custom icon for a leaf item.\n- **description** - Description of the item. Displayed with a smaller font size and a less prominent color.\n- **actions** - Container for action buttons.\n- **decoration** - Container for small decorative elements aligned to the right edge of the item.",
817
817
  "attributes": [
818
818
  { "name": "active", "values": [] },
819
819
  { "name": "branch", "values": [] },
@@ -1,2 +0,0 @@
1
- export declare const rawValueToPercentage: (raw: string | number, base: number) => number | null;
2
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/vscode-table/helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,GAC/B,KAAK,MAAM,GAAG,MAAM,EACpB,MAAM,MAAM,KACX,MAAM,GAAG,IAcX,CAAC"}
@@ -1,20 +0,0 @@
1
- export const rawValueToPercentage = (raw, base) => {
2
- if (typeof raw === 'number' && !Number.isNaN(raw)) {
3
- return (raw / base) * 100;
4
- }
5
- else if (typeof raw === 'string' && /^[0-9.]+$/.test(raw)) {
6
- const val = Number(raw);
7
- return (val / base) * 100;
8
- }
9
- else if (typeof raw === 'string' && /^[0-9.]+%$/.test(raw)) {
10
- return Number(raw.substring(0, raw.length - 1));
11
- }
12
- else if (typeof raw === 'string' && /^[0-9.]+px$/.test(raw)) {
13
- const val = Number(raw.substring(0, raw.length - 2));
14
- return (val / base) * 100;
15
- }
16
- else {
17
- return null;
18
- }
19
- };
20
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/vscode-table/helpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,GAAoB,EACpB,IAAY,EACG,EAAE;IACjB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC","sourcesContent":["export const rawValueToPercentage = (\n raw: string | number,\n base: number\n): number | null => {\n if (typeof raw === 'number' && !Number.isNaN(raw)) {\n return (raw / base) * 100;\n } else if (typeof raw === 'string' && /^[0-9.]+$/.test(raw)) {\n const val = Number(raw);\n return (val / base) * 100;\n } else if (typeof raw === 'string' && /^[0-9.]+%$/.test(raw)) {\n return Number(raw.substring(0, raw.length - 1));\n } else if (typeof raw === 'string' && /^[0-9.]+px$/.test(raw)) {\n const val = Number(raw.substring(0, raw.length - 2));\n return (val / base) * 100;\n } else {\n return null;\n }\n};\n"]}