@vscode-elements/elements 1.0.0-pre.12 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +84 -42
- package/dist/bundled.js +1 -1
- package/dist/includes/VscElement.d.ts.map +1 -1
- package/dist/includes/VscElement.js +1 -1
- package/dist/includes/VscElement.js.map +1 -1
- package/dist/includes/vscode-select/vscode-select-base.d.ts +3 -0
- package/dist/includes/vscode-select/vscode-select-base.d.ts.map +1 -1
- package/dist/includes/vscode-select/vscode-select-base.js +3 -0
- package/dist/includes/vscode-select/vscode-select-base.js.map +1 -1
- package/dist/vscode-checkbox/vscode-checkbox.d.ts +4 -0
- package/dist/vscode-checkbox/vscode-checkbox.d.ts.map +1 -1
- package/dist/vscode-checkbox/vscode-checkbox.js +7 -0
- package/dist/vscode-checkbox/vscode-checkbox.js.map +1 -1
- package/dist/vscode-multi-select/vscode-multi-select.d.ts +5 -0
- package/dist/vscode-multi-select/vscode-multi-select.d.ts.map +1 -1
- package/dist/vscode-multi-select/vscode-multi-select.js +5 -0
- package/dist/vscode-multi-select/vscode-multi-select.js.map +1 -1
- package/dist/vscode-radio/vscode-radio.d.ts +4 -0
- package/dist/vscode-radio/vscode-radio.d.ts.map +1 -1
- package/dist/vscode-radio/vscode-radio.js +7 -0
- package/dist/vscode-radio/vscode-radio.js.map +1 -1
- package/dist/vscode-single-select/vscode-single-select.d.ts +5 -0
- package/dist/vscode-single-select/vscode-single-select.d.ts.map +1 -1
- package/dist/vscode-single-select/vscode-single-select.js +5 -0
- package/dist/vscode-single-select/vscode-single-select.js.map +1 -1
- package/dist/vscode-textarea/vscode-textarea.d.ts +3 -0
- package/dist/vscode-textarea/vscode-textarea.d.ts.map +1 -1
- package/dist/vscode-textarea/vscode-textarea.js +3 -0
- package/dist/vscode-textarea/vscode-textarea.js.map +1 -1
- package/dist/vscode-textfield/vscode-textfield.d.ts +3 -0
- package/dist/vscode-textfield/vscode-textfield.d.ts.map +1 -1
- package/dist/vscode-textfield/vscode-textfield.js +3 -0
- package/dist/vscode-textfield/vscode-textfield.js.map +1 -1
- package/dist/vscode-tree/vscode-tree.d.ts +13 -1
- package/dist/vscode-tree/vscode-tree.d.ts.map +1 -1
- package/dist/vscode-tree/vscode-tree.js +3 -1
- package/dist/vscode-tree/vscode-tree.js.map +1 -1
- package/package.json +1 -1
- package/vscode.html-custom-data.json +18 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vscode-tree.js","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {customElement, property, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {VscElement} from '../includes/VscElement.js';\nimport '../vscode-badge/index.js';\nimport '../vscode-icon/index.js';\nimport {VscodeIcon} from '../vscode-icon/index.js';\nimport styles from './vscode-tree.styles.js';\n\nexport type VscTreeActionEvent = CustomEvent<{\n actionId: string;\n item: TreeItem | null;\n value: string;\n}>;\n\ntype ListenedKey = 'ArrowDown' | 'ArrowUp' | 'Enter' | 'Escape' | ' ';\n\ntype IconType = 'themeicon' | 'image';\n\ntype IconVariant = 'branch' | 'leaf' | 'open';\n\nexport interface TreeItemIconConfig {\n branch?: string;\n open?: string;\n leaf?: string;\n}\n\n/** Action icon configuration. */\nexport interface TreeItemAction {\n /** A unique name that identifies the clicked action item. */\n actionId: string;\n /** A Codicon name. */\n icon: string;\n /** Text description of the action. */\n tooltip?: string;\n}\n\n/**\n * The decoration is additional content on the right side of the tree item. It can be a short text,\n * a counter, or a small, filled circle. A color can be defined for the different states. If\n * multiple states are applied to the item, the color with higher precedence will be used. The color\n * precedence from higher to lower is selected, focused, hover, normal. Colors will not be applied\n * to the counter badge.\n */\nexport interface TreeItemDecoration {\n /** Text content of the decoration. If the appearance is `filled-circle`, it will be ignored. */\n content?: string;\n /** Appearance of the decoration. */\n appearance?: 'text' | 'counter-badge' | 'filled-circle';\n /**\n * When is decoration visible?\n * - `active`: visible when the tree item is focused, selected or hovered\n * - `normal`: visible when there is not any interaction on the tree item\n * - `always`: always visible\n */\n visibleWhen?: 'active' | 'normal' | 'always';\n /** A valid CSS property value to define a default color. */\n color?: string;\n /** A valid CSS property value to define the color for the mouse over state. */\n hoverColor?: string;\n /** A valid CSS property value to define the color for the focused state. */\n focusedColor?: string;\n /** A valid CSS property value to define the color for the selected state. */\n selectedColor?: string;\n}\n\nexport interface TreeItem {\n label: string;\n description?: string;\n subItems?: TreeItem[];\n actions?: TreeItemAction[];\n open?: boolean;\n selected?: boolean;\n focused?: boolean;\n hasSelectedItem?: boolean;\n hasFocusedItem?: boolean;\n icons?: TreeItemIconConfig | boolean;\n iconUrls?: TreeItemIconConfig;\n value?: string;\n path?: number[];\n decorations?: TreeItemDecoration[];\n}\n\ntype ItemType = 'branch' | 'leaf';\n\n/** Event payload of the `vsc-select` event. */\ninterface SelectEventDetail {\n /** Icon configuration of the clicked item */\n icons: TreeItemIconConfig | undefined | boolean;\n /** Is item type branch or leaf. */\n itemType: ItemType;\n /** The visible label of the item. */\n label: string;\n /** The value associated to the item. */\n value: string;\n /** Is the item opened if it's a branch. */\n open: boolean;\n /** Path represents the item place in the tree. For example 1/2/3 means:\n * `data[1].subItems[2].subItems[3]` */\n path: string; // ex.: 0/0/1\n}\n\nconst ARROW_OUTER_WIDTH = 30;\nconst ARROW_ICON_WIDTH = 16;\nconst CONTENT_PADDING = 3;\n\nconst addPath = (tree: TreeItem[], prevPath: number[] = []): TreeItem[] => {\n const nextTree: TreeItem[] = [];\n\n tree.forEach((item, index) => {\n const path = [...prevPath, index];\n const nextItem: TreeItem = {\n ...item,\n path,\n };\n\n if (item.subItems) {\n nextItem.subItems = addPath(item.subItems, path);\n }\n\n nextTree.push(nextItem);\n });\n\n return nextTree;\n};\n\nconst isBranch = (item: TreeItem) => {\n if (\n item.subItems &&\n Array.isArray(item.subItems) &&\n item?.subItems?.length > 0\n ) {\n return true;\n }\n\n return false;\n};\n\n/**\n * @fires vsc-select Dispatched when an item is selected.\n * @fires {CustomEvent} vsc-tree-select Dispatched when an item is selected.\n * @fires vsc-run-action Dispatched when an action icon is clicked.\n * @fires {VscTreeActionEvent} vsc-tree-action Dispatched when an action icon is clicked.\n *\n * @cssprop --vscode-focusBorder\n * @cssprop --vscode-font-family\n * @cssprop --vscode-font-size\n * @cssprop --vscode-font-weight\n * @cssprop --vscode-list-hoverForeground\n * @cssprop --vscode-list-hoverBackground\n * @cssprop --vscode-list-inactiveSelectionBackground\n * @cssprop --vscode-list-inactiveSelectionForeground\n * @cssprop --vscode-list-activeSelectionBackground\n * @cssprop --vscode-list-activeSelectionForeground\n * @cssprop --vscode-list-inactiveSelectionIconForeground\n * @cssprop --vscode-list-inactiveFocusBackground\n * @cssprop --vscode-list-inactiveFocusOutline\n * @cssprop --vscode-list-focusOutline\n * @cssprop --vscode-tree-inactiveIndentGuidesStroke\n * @cssprop --vscode-tree-indentGuidesStroke\n */\n@customElement('vscode-tree')\nexport class VscodeTree extends VscElement {\n static styles = styles;\n\n @property({type: Array, reflect: false})\n set data(val: TreeItem[]) {\n const oldVal = this._data;\n\n this._data = addPath(val);\n this.requestUpdate('data', oldVal);\n }\n get data(): TreeItem[] {\n return this._data;\n }\n\n @property({type: Number})\n indent = 8;\n\n @property({type: Boolean, reflect: true})\n arrows = false;\n\n @property({type: Boolean, reflect: true})\n multiline = false;\n\n @property({type: Number, reflect: true})\n tabindex = 0;\n\n @property({type: Boolean, reflect: true, attribute: 'indent-guides'})\n indentGuides = false;\n\n private _data: TreeItem[] = [];\n\n @state()\n private _selectedItem: TreeItem | null = null;\n\n @state()\n private _focusedItem: TreeItem | null = null;\n\n @state()\n private _selectedBranch: TreeItem | null = null;\n\n @state()\n private _focusedBranch: TreeItem | null = null;\n\n public closeAll(): void {\n this._closeSubTreeRecursively(this.data);\n this.requestUpdate();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleComponentKeyDownBound);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._handleComponentKeyDownBound);\n }\n\n private _getItemByPath(path: number[]): TreeItem | null {\n let current: TreeItem[] = this._data;\n let item: TreeItem | null = null;\n\n path.forEach((el, i) => {\n if (i === path.length - 1) {\n item = current[el];\n } else {\n current = current[el].subItems as TreeItem[];\n }\n });\n\n return item;\n }\n\n private _handleActionClick(ev: MouseEvent) {\n ev.stopPropagation();\n\n const el = ev.target as VscodeIcon;\n const itemPath = el.dataset.itemPath;\n const actionIndex = el.dataset.index;\n let item: TreeItem | null = null;\n let actionId = '';\n let value = '';\n\n if (itemPath) {\n const path = itemPath.split('/').map((p) => Number(p));\n item = this._getItemByPath(path);\n\n if (item?.actions) {\n const index = Number(actionIndex);\n\n if (item.actions[index]) {\n actionId = item.actions[index].actionId;\n }\n }\n\n if (item?.value) {\n value = item.value;\n }\n }\n\n /** @deprecated Renamed to `vsc-tree-action` */\n this.dispatchEvent(\n new CustomEvent<{actionId: string; item: TreeItem | null; value: string}>(\n 'vsc-run-action',\n {\n detail: {\n actionId,\n item,\n value,\n },\n }\n )\n );\n\n /**\n * Dispatched when an action icon is clicked.\n */\n this.dispatchEvent(\n new CustomEvent<{actionId: string; item: TreeItem | null; value: string}>(\n 'vsc-tree-action',\n {\n detail: {\n actionId,\n item,\n value,\n },\n }\n ) as VscTreeActionEvent\n );\n }\n\n private _renderIconVariant(variant: {value: string; type: IconType}) {\n const {type, value} = variant;\n\n if (type === 'themeicon') {\n return html`<vscode-icon name=${value} class=\"theme-icon\"></vscode-icon>`;\n } else {\n return html`<span\n class=\"image-icon\"\n style=\"background-image: url(${value});\"\n ></span>`;\n }\n }\n\n private _renderIcon(item: TreeItem): TemplateResult {\n const iconVariants: Record<IconVariant, {value: string; type: IconType}> = {\n branch: {\n value: 'folder',\n type: 'themeicon',\n },\n open: {\n value: 'folder-opened',\n type: 'themeicon',\n },\n leaf: {\n value: 'file',\n type: 'themeicon',\n },\n };\n\n if (item.iconUrls) {\n if (item.iconUrls.branch) {\n iconVariants.branch = {\n value: item.iconUrls.branch,\n type: 'image',\n };\n }\n\n if (item.iconUrls.leaf) {\n iconVariants.leaf = {\n value: item.iconUrls.leaf,\n type: 'image',\n };\n }\n\n if (item.iconUrls.open) {\n iconVariants.open = {\n value: item.iconUrls.open,\n type: 'image',\n };\n }\n } else if (typeof item.icons === 'object') {\n if (item.icons.branch) {\n iconVariants.branch = {\n value: item.icons.branch,\n type: 'themeicon',\n };\n }\n\n if (item.icons.leaf) {\n iconVariants.leaf = {\n value: item.icons.leaf,\n type: 'themeicon',\n };\n }\n\n if (item.icons.open) {\n iconVariants.open = {\n value: item.icons.open,\n type: 'themeicon',\n };\n }\n } else if (!item.icons) {\n return html`${nothing}`;\n }\n\n if (isBranch(item)) {\n if (item.open) {\n return this._renderIconVariant(iconVariants.open);\n } else {\n return this._renderIconVariant(iconVariants.branch);\n }\n } else {\n return this._renderIconVariant(iconVariants.leaf);\n }\n }\n\n private _renderArrow(item: TreeItem): TemplateResult {\n if (!this.arrows || !isBranch(item)) {\n return html`${nothing}`;\n }\n\n const {open = false} = item;\n const arrowIconName = open ? 'chevron-down' : 'chevron-right';\n\n return html`\n <div class=\"arrow-container\">\n <vscode-icon name=\"${arrowIconName}\" class=\"icon-arrow\"></vscode-icon>\n </div>\n `;\n }\n\n private _renderActions(item: TreeItem): TemplateResult {\n const actionButtons: TemplateResult[] = [];\n\n if (item.actions && Array.isArray(item.actions)) {\n item.actions.forEach((action, index) => {\n if (action.icon) {\n const icon = html`<vscode-icon\n name=${action.icon}\n action-icon\n title=${ifDefined(action.tooltip)}\n data-item-path=${ifDefined(item.path?.join('/'))}\n data-index=${index}\n class=\"action-icon\"\n @click=${this._handleActionClick}\n ></vscode-icon>`;\n\n actionButtons.push(icon);\n }\n });\n }\n\n if (actionButtons.length > 0) {\n return html`<div class=\"actions\">${actionButtons}</div>`;\n } else {\n return html`${nothing}`;\n }\n }\n\n private _renderDecorations(item: TreeItem) {\n const decorations: TemplateResult[] = [];\n\n if (item.decorations && Array.isArray(item.decorations)) {\n item.decorations.forEach((decoration) => {\n const {\n appearance = 'text',\n visibleWhen = 'always',\n content = '',\n color = '',\n focusedColor = '',\n hoverColor = '',\n selectedColor = '',\n } = decoration;\n const visibleWhenClass = `visible-when-${visibleWhen}`;\n const inlineStyles: {[key: string]: string} = {};\n\n if (color) {\n inlineStyles['--color'] = color;\n }\n\n if (focusedColor) {\n inlineStyles['--focused-color'] = focusedColor;\n }\n\n if (hoverColor) {\n inlineStyles['--hover-color'] = hoverColor;\n }\n\n if (selectedColor) {\n inlineStyles['--selected-color'] = selectedColor;\n }\n\n switch (appearance) {\n case 'counter-badge':\n decorations.push(\n html`<vscode-badge\n variant=\"counter\"\n class=${['counter-badge', visibleWhenClass].join(' ')}\n >${content}</vscode-badge\n >`\n );\n break;\n case 'filled-circle':\n decorations.push(\n html`<vscode-icon\n name=\"circle-filled\"\n size=\"14\"\n class=${['filled-circle', visibleWhenClass].join(' ')}\n style=${styleMap(inlineStyles)}\n ></vscode-icon>`\n );\n break;\n case 'text':\n decorations.push(\n html`<div\n class=${['decoration-text', visibleWhenClass].join(' ')}\n style=${styleMap(inlineStyles)}\n >\n ${content}\n </div>`\n );\n break;\n default:\n }\n });\n }\n\n if (decorations.length > 0) {\n return html`<div class=\"decorations\">${decorations}</div>`;\n } else {\n return html`${nothing}`;\n }\n }\n\n private _renderTreeItem(\n item: TreeItem,\n additionalOptions: {\n path: number[];\n itemType: ItemType;\n hasFocusedItem: boolean;\n hasSelectedItem: boolean;\n }\n ) {\n const {\n open = false,\n label,\n description = '',\n selected = false,\n focused = false,\n subItems = [],\n } = item;\n const {\n path,\n itemType,\n hasFocusedItem = false,\n hasSelectedItem = false,\n } = additionalOptions;\n const indentLevel = path.length - 1;\n const contentsClasses = ['contents'];\n const liClasses = open ? ['open'] : [];\n const indentSize = indentLevel * this.indent;\n const padLeft =\n this.arrows && itemType === 'leaf'\n ? ARROW_OUTER_WIDTH + indentSize\n : indentSize;\n const arrowMarkup = this._renderArrow(item);\n const iconMarkup = this._renderIcon(item);\n const indentGuidePos = this.arrows\n ? indentSize + ARROW_ICON_WIDTH\n : indentSize + CONTENT_PADDING;\n const subTreeMarkup =\n open && itemType === 'branch'\n ? html`<ul\n style=${styleMap({'--indent-guide-pos': `${indentGuidePos}px`})}\n class=${classMap({\n 'has-active-item': hasFocusedItem || hasSelectedItem,\n })}\n >\n ${this._renderTree(subItems, path)}\n </ul>`\n : nothing;\n const descriptionMarkup = description\n ? html`<span class=\"description\">${description}</span>`\n : nothing;\n const actionsMarkup = this._renderActions(item);\n const decorationsMarkup = this._renderDecorations(item);\n\n liClasses.push(itemType);\n\n if (selected) {\n contentsClasses.push('selected');\n }\n\n if (focused) {\n contentsClasses.push('focused');\n }\n\n return html`\n <li data-path=\"${path.join('/')}\" class=\"${liClasses.join(' ')}\">\n <div\n class=\"${contentsClasses.join(' ')}\"\n style=\"${styleMap({paddingLeft: `${padLeft + CONTENT_PADDING}px`})}\"\n >\n ${arrowMarkup}${iconMarkup}<span class=\"text-content\"\n >${label}${descriptionMarkup}</span\n >\n ${actionsMarkup} ${decorationsMarkup}\n </div>\n ${subTreeMarkup}\n </li>\n `;\n }\n\n private _renderTree(tree: TreeItem[], oldPath: number[] = []) {\n const ret: TemplateResult[] = [];\n\n if (!tree) {\n return nothing;\n }\n\n tree.forEach((item, index) => {\n const path = [...oldPath, index];\n const itemType = isBranch(item) ? 'branch' : 'leaf';\n const {\n selected = false,\n focused = false,\n hasFocusedItem = false,\n hasSelectedItem = false,\n } = item;\n\n if (selected) {\n this._selectedItem = item;\n }\n\n if (focused) {\n this._focusedItem = item;\n }\n\n ret.push(\n this._renderTreeItem(item, {\n path,\n itemType,\n hasFocusedItem,\n hasSelectedItem,\n })\n );\n });\n\n return ret;\n }\n\n private _selectItem(item: TreeItem) {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n\n this._selectedItem = item;\n item.selected = true;\n this._focusedItem = item;\n item.focused = true;\n\n if (this._selectedBranch) {\n this._selectedBranch.hasSelectedItem = false;\n }\n\n let parentBranch: TreeItem | null = null;\n\n if (item.path?.length && item.path.length > 1) {\n parentBranch = this._getItemByPath(item.path.slice(0, -1));\n }\n\n if (isBranch(item)) {\n this._selectedBranch = item;\n item.hasSelectedItem = true;\n item.open = !item.open;\n\n if (!item.open) {\n if (parentBranch) {\n this._selectedBranch = parentBranch;\n parentBranch.hasSelectedItem = true;\n }\n } else {\n this._selectedBranch = item;\n item.hasSelectedItem = true;\n }\n } else {\n if (item.path?.length && item.path.length > 1) {\n const parentBranch = this._getItemByPath(item.path.slice(0, -1));\n\n if (parentBranch) {\n this._selectedBranch = parentBranch;\n parentBranch.hasSelectedItem = true;\n }\n } else {\n this._selectedBranch = item;\n item.hasSelectedItem = true;\n }\n }\n\n this._emitSelectEvent(\n this._selectedItem as TreeItem,\n this._selectedItem.path!.join('/')\n );\n\n this.requestUpdate();\n }\n\n private _focusItem(item: TreeItem) {\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n\n this._focusedItem = item;\n item.focused = true;\n\n const isBranch = !!item?.subItems?.length;\n\n if (this._focusedBranch) {\n this._focusedBranch.hasFocusedItem = false;\n }\n\n let parentBranch: TreeItem | null = null;\n\n if (item.path?.length && item.path.length > 1) {\n parentBranch = this._getItemByPath(item.path.slice(0, -1));\n }\n\n if (!isBranch) {\n if (parentBranch) {\n this._focusedBranch = parentBranch;\n parentBranch.hasFocusedItem = true;\n }\n } else {\n if (item.open) {\n this._focusedBranch = item;\n item.hasFocusedItem = true;\n } else if (!item.open && parentBranch) {\n this._focusedBranch = parentBranch;\n parentBranch.hasFocusedItem = true;\n }\n }\n }\n\n private _closeSubTreeRecursively(tree: TreeItem[]) {\n tree.forEach((item) => {\n item.open = false;\n\n if (item.subItems && item.subItems.length > 0) {\n this._closeSubTreeRecursively(item.subItems);\n }\n });\n }\n\n private _emitSelectEvent(item: TreeItem, path: string) {\n const {icons, label, open, value} = item;\n const detail = {\n icons,\n itemType: isBranch(item) ? 'branch' : ('leaf' as ItemType),\n label,\n open: open || false,\n value: value || label,\n path,\n };\n\n /** @deprecated Renamed to `vsc-tree-select` */\n this.dispatchEvent(\n new CustomEvent<SelectEventDetail>('vsc-select', {\n bubbles: true,\n composed: true,\n detail,\n })\n );\n\n this.dispatchEvent(new CustomEvent('vsc-tree-select'));\n }\n\n private _focusPrevItem() {\n if (!this._focusedItem) {\n this._focusItem(this._data[0]);\n return;\n }\n\n const {path} = this._focusedItem;\n\n if (path && path?.length > 0) {\n const currentItemIndex = path[path.length - 1];\n const hasParent = path!.length > 1;\n\n if (currentItemIndex > 0) {\n const newPath = [...path];\n newPath[newPath.length - 1] = currentItemIndex - 1;\n\n const prevSibling = this._getItemByPath(newPath) as TreeItem;\n let newFocusedItem = prevSibling;\n\n if (prevSibling?.open && prevSibling.subItems?.length) {\n const {subItems} = prevSibling;\n newFocusedItem = subItems[subItems.length - 1];\n }\n\n this._focusItem(newFocusedItem);\n } else {\n if (hasParent) {\n const newPath = [...path];\n newPath.pop();\n\n this._focusItem(this._getItemByPath(newPath) as TreeItem);\n }\n }\n } else {\n this._focusItem(this._data[0]);\n }\n }\n\n private _focusNextItem() {\n if (!this._focusedItem) {\n this._focusItem(this._data[0]);\n return;\n }\n\n const {path, open} = this._focusedItem;\n\n if (\n open &&\n Array.isArray(this._focusedItem.subItems) &&\n this._focusedItem.subItems.length > 0\n ) {\n this._focusItem(this._focusedItem.subItems[0]);\n return;\n }\n\n const nextPath = [...(path as number[])];\n nextPath[nextPath.length - 1] += 1;\n\n let nextFocusedItem = this._getItemByPath(nextPath);\n\n if (nextFocusedItem) {\n this._focusItem(nextFocusedItem);\n } else {\n nextPath.pop();\n\n if (nextPath.length > 0) {\n nextPath[nextPath.length - 1] += 1;\n nextFocusedItem = this._getItemByPath(nextPath);\n\n if (nextFocusedItem) {\n this._focusItem(nextFocusedItem);\n }\n }\n }\n }\n\n private _handleClick(event: MouseEvent) {\n const composedPath = event.composedPath();\n const targetElement = composedPath.find(\n (el: EventTarget) =>\n (el as HTMLElement).tagName &&\n (el as HTMLElement).tagName.toUpperCase() === 'LI'\n );\n\n if (targetElement) {\n const pathStr = (targetElement as HTMLLIElement).dataset.path || '';\n const path = pathStr.split('/').map((el) => Number(el));\n const item = this._getItemByPath(path) as TreeItem;\n\n this._selectItem(item);\n } else {\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n\n this._focusedItem = null;\n }\n }\n\n private _handleComponentKeyDown(ev: KeyboardEvent) {\n const keys: ListenedKey[] = [\n ' ',\n 'ArrowDown',\n 'ArrowUp',\n 'Enter',\n 'Escape',\n ];\n const key = ev.key as ListenedKey;\n\n if (keys.includes(ev.key as ListenedKey)) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n\n if (key === 'Escape') {\n this._focusedItem = null;\n }\n\n if (key === 'ArrowUp') {\n this._focusPrevItem();\n }\n\n if (key === 'ArrowDown') {\n this._focusNextItem();\n }\n\n if (key === 'Enter' || key === ' ') {\n if (this._focusedItem) {\n this._selectItem(this._focusedItem);\n }\n }\n }\n\n private _handleComponentKeyDownBound =\n this._handleComponentKeyDown.bind(this);\n\n render(): TemplateResult {\n const classes = classMap({\n multi: this.multiline,\n single: !this.multiline,\n wrapper: true,\n 'has-not-focused-item': !this._focusedItem,\n 'selection-none': !this._selectedItem,\n 'selection-single': this._selectedItem !== null,\n });\n\n return html`\n <div @click=\"${this._handleClick}\" class=\"${classes}\">\n <ul>\n ${this._renderTree(this._data)}\n </ul>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tree': VscodeTree;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-tree-select': CustomEvent;\n 'vsc-tree-action': VscTreeActionEvent;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"vscode-tree.js","sourceRoot":"","sources":["../../src/vscode-tree/vscode-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {customElement, property, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {VscElement} from '../includes/VscElement.js';\nimport '../vscode-badge/index.js';\nimport '../vscode-icon/index.js';\nimport {VscodeIcon} from '../vscode-icon/index.js';\nimport styles from './vscode-tree.styles.js';\n\nexport type VscTreeActionEvent = CustomEvent<{\n actionId: string;\n item: TreeItem | null;\n value: string;\n}>;\n\nexport type VscTreeSelectEvent = CustomEvent<{\n icons: {\n branch?: string;\n open?: string;\n leaf?: string;\n };\n itemType: 'branch' | 'leaf';\n label: string;\n open: boolean;\n value: string;\n path: string;\n}>;\n\ntype ListenedKey = 'ArrowDown' | 'ArrowUp' | 'Enter' | 'Escape' | ' ';\n\ntype IconType = 'themeicon' | 'image';\n\ntype IconVariant = 'branch' | 'leaf' | 'open';\n\nexport interface TreeItemIconConfig {\n branch?: string;\n open?: string;\n leaf?: string;\n}\n\n/** Action icon configuration. */\nexport interface TreeItemAction {\n /** A unique name that identifies the clicked action item. */\n actionId: string;\n /** A Codicon name. */\n icon: string;\n /** Text description of the action. */\n tooltip?: string;\n}\n\n/**\n * The decoration is additional content on the right side of the tree item. It can be a short text,\n * a counter, or a small, filled circle. A color can be defined for the different states. If\n * multiple states are applied to the item, the color with higher precedence will be used. The color\n * precedence from higher to lower is selected, focused, hover, normal. Colors will not be applied\n * to the counter badge.\n */\nexport interface TreeItemDecoration {\n /** Text content of the decoration. If the appearance is `filled-circle`, it will be ignored. */\n content?: string;\n /** Appearance of the decoration. */\n appearance?: 'text' | 'counter-badge' | 'filled-circle';\n /**\n * When is decoration visible?\n * - `active`: visible when the tree item is focused, selected or hovered\n * - `normal`: visible when there is not any interaction on the tree item\n * - `always`: always visible\n */\n visibleWhen?: 'active' | 'normal' | 'always';\n /** A valid CSS property value to define a default color. */\n color?: string;\n /** A valid CSS property value to define the color for the mouse over state. */\n hoverColor?: string;\n /** A valid CSS property value to define the color for the focused state. */\n focusedColor?: string;\n /** A valid CSS property value to define the color for the selected state. */\n selectedColor?: string;\n}\n\nexport interface TreeItem {\n label: string;\n description?: string;\n subItems?: TreeItem[];\n actions?: TreeItemAction[];\n open?: boolean;\n selected?: boolean;\n focused?: boolean;\n hasSelectedItem?: boolean;\n hasFocusedItem?: boolean;\n icons?: TreeItemIconConfig | boolean;\n iconUrls?: TreeItemIconConfig;\n value?: string;\n path?: number[];\n decorations?: TreeItemDecoration[];\n}\n\ntype ItemType = 'branch' | 'leaf';\n\n/** Event payload of the `vsc-select` event. */\ninterface SelectEventDetail {\n /** Icon configuration of the clicked item */\n icons: TreeItemIconConfig | undefined | boolean;\n /** Is item type branch or leaf. */\n itemType: ItemType;\n /** The visible label of the item. */\n label: string;\n /** The value associated to the item. */\n value: string;\n /** Is the item opened if it's a branch. */\n open: boolean;\n /** Path represents the item place in the tree. For example 1/2/3 means:\n * `data[1].subItems[2].subItems[3]` */\n path: string; // ex.: 0/0/1\n}\n\nconst ARROW_OUTER_WIDTH = 30;\nconst ARROW_ICON_WIDTH = 16;\nconst CONTENT_PADDING = 3;\n\nconst addPath = (tree: TreeItem[], prevPath: number[] = []): TreeItem[] => {\n const nextTree: TreeItem[] = [];\n\n tree.forEach((item, index) => {\n const path = [...prevPath, index];\n const nextItem: TreeItem = {\n ...item,\n path,\n };\n\n if (item.subItems) {\n nextItem.subItems = addPath(item.subItems, path);\n }\n\n nextTree.push(nextItem);\n });\n\n return nextTree;\n};\n\nconst isBranch = (item: TreeItem) => {\n if (\n item.subItems &&\n Array.isArray(item.subItems) &&\n item?.subItems?.length > 0\n ) {\n return true;\n }\n\n return false;\n};\n\n/**\n * @fires vsc-select Dispatched when an item is selected.\n * @fires {CustomEvent} vsc-tree-select Dispatched when an item is selected.\n * @fires vsc-run-action Dispatched when an action icon is clicked.\n * @fires {VscTreeActionEvent} vsc-tree-action Dispatched when an action icon is clicked.\n *\n * @cssprop --vscode-focusBorder\n * @cssprop --vscode-font-family\n * @cssprop --vscode-font-size\n * @cssprop --vscode-font-weight\n * @cssprop --vscode-list-hoverForeground\n * @cssprop --vscode-list-hoverBackground\n * @cssprop --vscode-list-inactiveSelectionBackground\n * @cssprop --vscode-list-inactiveSelectionForeground\n * @cssprop --vscode-list-activeSelectionBackground\n * @cssprop --vscode-list-activeSelectionForeground\n * @cssprop --vscode-list-inactiveSelectionIconForeground\n * @cssprop --vscode-list-inactiveFocusBackground\n * @cssprop --vscode-list-inactiveFocusOutline\n * @cssprop --vscode-list-focusOutline\n * @cssprop --vscode-tree-inactiveIndentGuidesStroke\n * @cssprop --vscode-tree-indentGuidesStroke\n */\n@customElement('vscode-tree')\nexport class VscodeTree extends VscElement {\n static styles = styles;\n\n @property({type: Array, reflect: false})\n set data(val: TreeItem[]) {\n const oldVal = this._data;\n\n this._data = addPath(val);\n this.requestUpdate('data', oldVal);\n }\n get data(): TreeItem[] {\n return this._data;\n }\n\n @property({type: Number})\n indent = 8;\n\n @property({type: Boolean, reflect: true})\n arrows = false;\n\n @property({type: Boolean, reflect: true})\n multiline = false;\n\n @property({type: Number, reflect: true})\n tabindex = 0;\n\n @property({type: Boolean, reflect: true, attribute: 'indent-guides'})\n indentGuides = false;\n\n private _data: TreeItem[] = [];\n\n @state()\n private _selectedItem: TreeItem | null = null;\n\n @state()\n private _focusedItem: TreeItem | null = null;\n\n @state()\n private _selectedBranch: TreeItem | null = null;\n\n @state()\n private _focusedBranch: TreeItem | null = null;\n\n public closeAll(): void {\n this._closeSubTreeRecursively(this.data);\n this.requestUpdate();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this._handleComponentKeyDownBound);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this._handleComponentKeyDownBound);\n }\n\n private _getItemByPath(path: number[]): TreeItem | null {\n let current: TreeItem[] = this._data;\n let item: TreeItem | null = null;\n\n path.forEach((el, i) => {\n if (i === path.length - 1) {\n item = current[el];\n } else {\n current = current[el].subItems as TreeItem[];\n }\n });\n\n return item;\n }\n\n private _handleActionClick(ev: MouseEvent) {\n ev.stopPropagation();\n\n const el = ev.target as VscodeIcon;\n const itemPath = el.dataset.itemPath;\n const actionIndex = el.dataset.index;\n let item: TreeItem | null = null;\n let actionId = '';\n let value = '';\n\n if (itemPath) {\n const path = itemPath.split('/').map((p) => Number(p));\n item = this._getItemByPath(path);\n\n if (item?.actions) {\n const index = Number(actionIndex);\n\n if (item.actions[index]) {\n actionId = item.actions[index].actionId;\n }\n }\n\n if (item?.value) {\n value = item.value;\n }\n }\n\n /** @deprecated Renamed to `vsc-tree-action` */\n this.dispatchEvent(\n new CustomEvent<{actionId: string; item: TreeItem | null; value: string}>(\n 'vsc-run-action',\n {\n detail: {\n actionId,\n item,\n value,\n },\n }\n )\n );\n\n /**\n * Dispatched when an action icon is clicked.\n */\n this.dispatchEvent(\n new CustomEvent<{actionId: string; item: TreeItem | null; value: string}>(\n 'vsc-tree-action',\n {\n detail: {\n actionId,\n item,\n value,\n },\n }\n ) as VscTreeActionEvent\n );\n }\n\n private _renderIconVariant(variant: {value: string; type: IconType}) {\n const {type, value} = variant;\n\n if (type === 'themeicon') {\n return html`<vscode-icon name=${value} class=\"theme-icon\"></vscode-icon>`;\n } else {\n return html`<span\n class=\"image-icon\"\n style=\"background-image: url(${value});\"\n ></span>`;\n }\n }\n\n private _renderIcon(item: TreeItem): TemplateResult {\n const iconVariants: Record<IconVariant, {value: string; type: IconType}> = {\n branch: {\n value: 'folder',\n type: 'themeicon',\n },\n open: {\n value: 'folder-opened',\n type: 'themeicon',\n },\n leaf: {\n value: 'file',\n type: 'themeicon',\n },\n };\n\n if (item.iconUrls) {\n if (item.iconUrls.branch) {\n iconVariants.branch = {\n value: item.iconUrls.branch,\n type: 'image',\n };\n }\n\n if (item.iconUrls.leaf) {\n iconVariants.leaf = {\n value: item.iconUrls.leaf,\n type: 'image',\n };\n }\n\n if (item.iconUrls.open) {\n iconVariants.open = {\n value: item.iconUrls.open,\n type: 'image',\n };\n }\n } else if (typeof item.icons === 'object') {\n if (item.icons.branch) {\n iconVariants.branch = {\n value: item.icons.branch,\n type: 'themeicon',\n };\n }\n\n if (item.icons.leaf) {\n iconVariants.leaf = {\n value: item.icons.leaf,\n type: 'themeicon',\n };\n }\n\n if (item.icons.open) {\n iconVariants.open = {\n value: item.icons.open,\n type: 'themeicon',\n };\n }\n } else if (!item.icons) {\n return html`${nothing}`;\n }\n\n if (isBranch(item)) {\n if (item.open) {\n return this._renderIconVariant(iconVariants.open);\n } else {\n return this._renderIconVariant(iconVariants.branch);\n }\n } else {\n return this._renderIconVariant(iconVariants.leaf);\n }\n }\n\n private _renderArrow(item: TreeItem): TemplateResult {\n if (!this.arrows || !isBranch(item)) {\n return html`${nothing}`;\n }\n\n const {open = false} = item;\n const arrowIconName = open ? 'chevron-down' : 'chevron-right';\n\n return html`\n <div class=\"arrow-container\">\n <vscode-icon name=\"${arrowIconName}\" class=\"icon-arrow\"></vscode-icon>\n </div>\n `;\n }\n\n private _renderActions(item: TreeItem): TemplateResult {\n const actionButtons: TemplateResult[] = [];\n\n if (item.actions && Array.isArray(item.actions)) {\n item.actions.forEach((action, index) => {\n if (action.icon) {\n const icon = html`<vscode-icon\n name=${action.icon}\n action-icon\n title=${ifDefined(action.tooltip)}\n data-item-path=${ifDefined(item.path?.join('/'))}\n data-index=${index}\n class=\"action-icon\"\n @click=${this._handleActionClick}\n ></vscode-icon>`;\n\n actionButtons.push(icon);\n }\n });\n }\n\n if (actionButtons.length > 0) {\n return html`<div class=\"actions\">${actionButtons}</div>`;\n } else {\n return html`${nothing}`;\n }\n }\n\n private _renderDecorations(item: TreeItem) {\n const decorations: TemplateResult[] = [];\n\n if (item.decorations && Array.isArray(item.decorations)) {\n item.decorations.forEach((decoration) => {\n const {\n appearance = 'text',\n visibleWhen = 'always',\n content = '',\n color = '',\n focusedColor = '',\n hoverColor = '',\n selectedColor = '',\n } = decoration;\n const visibleWhenClass = `visible-when-${visibleWhen}`;\n const inlineStyles: {[key: string]: string} = {};\n\n if (color) {\n inlineStyles['--color'] = color;\n }\n\n if (focusedColor) {\n inlineStyles['--focused-color'] = focusedColor;\n }\n\n if (hoverColor) {\n inlineStyles['--hover-color'] = hoverColor;\n }\n\n if (selectedColor) {\n inlineStyles['--selected-color'] = selectedColor;\n }\n\n switch (appearance) {\n case 'counter-badge':\n decorations.push(\n html`<vscode-badge\n variant=\"counter\"\n class=${['counter-badge', visibleWhenClass].join(' ')}\n >${content}</vscode-badge\n >`\n );\n break;\n case 'filled-circle':\n decorations.push(\n html`<vscode-icon\n name=\"circle-filled\"\n size=\"14\"\n class=${['filled-circle', visibleWhenClass].join(' ')}\n style=${styleMap(inlineStyles)}\n ></vscode-icon>`\n );\n break;\n case 'text':\n decorations.push(\n html`<div\n class=${['decoration-text', visibleWhenClass].join(' ')}\n style=${styleMap(inlineStyles)}\n >\n ${content}\n </div>`\n );\n break;\n default:\n }\n });\n }\n\n if (decorations.length > 0) {\n return html`<div class=\"decorations\">${decorations}</div>`;\n } else {\n return html`${nothing}`;\n }\n }\n\n private _renderTreeItem(\n item: TreeItem,\n additionalOptions: {\n path: number[];\n itemType: ItemType;\n hasFocusedItem: boolean;\n hasSelectedItem: boolean;\n }\n ) {\n const {\n open = false,\n label,\n description = '',\n selected = false,\n focused = false,\n subItems = [],\n } = item;\n const {\n path,\n itemType,\n hasFocusedItem = false,\n hasSelectedItem = false,\n } = additionalOptions;\n const indentLevel = path.length - 1;\n const contentsClasses = ['contents'];\n const liClasses = open ? ['open'] : [];\n const indentSize = indentLevel * this.indent;\n const padLeft =\n this.arrows && itemType === 'leaf'\n ? ARROW_OUTER_WIDTH + indentSize\n : indentSize;\n const arrowMarkup = this._renderArrow(item);\n const iconMarkup = this._renderIcon(item);\n const indentGuidePos = this.arrows\n ? indentSize + ARROW_ICON_WIDTH\n : indentSize + CONTENT_PADDING;\n const subTreeMarkup =\n open && itemType === 'branch'\n ? html`<ul\n style=${styleMap({'--indent-guide-pos': `${indentGuidePos}px`})}\n class=${classMap({\n 'has-active-item': hasFocusedItem || hasSelectedItem,\n })}\n >\n ${this._renderTree(subItems, path)}\n </ul>`\n : nothing;\n const descriptionMarkup = description\n ? html`<span class=\"description\">${description}</span>`\n : nothing;\n const actionsMarkup = this._renderActions(item);\n const decorationsMarkup = this._renderDecorations(item);\n\n liClasses.push(itemType);\n\n if (selected) {\n contentsClasses.push('selected');\n }\n\n if (focused) {\n contentsClasses.push('focused');\n }\n\n return html`\n <li data-path=\"${path.join('/')}\" class=\"${liClasses.join(' ')}\">\n <div\n class=\"${contentsClasses.join(' ')}\"\n style=\"${styleMap({paddingLeft: `${padLeft + CONTENT_PADDING}px`})}\"\n >\n ${arrowMarkup}${iconMarkup}<span class=\"text-content\"\n >${label}${descriptionMarkup}</span\n >\n ${actionsMarkup} ${decorationsMarkup}\n </div>\n ${subTreeMarkup}\n </li>\n `;\n }\n\n private _renderTree(tree: TreeItem[], oldPath: number[] = []) {\n const ret: TemplateResult[] = [];\n\n if (!tree) {\n return nothing;\n }\n\n tree.forEach((item, index) => {\n const path = [...oldPath, index];\n const itemType = isBranch(item) ? 'branch' : 'leaf';\n const {\n selected = false,\n focused = false,\n hasFocusedItem = false,\n hasSelectedItem = false,\n } = item;\n\n if (selected) {\n this._selectedItem = item;\n }\n\n if (focused) {\n this._focusedItem = item;\n }\n\n ret.push(\n this._renderTreeItem(item, {\n path,\n itemType,\n hasFocusedItem,\n hasSelectedItem,\n })\n );\n });\n\n return ret;\n }\n\n private _selectItem(item: TreeItem) {\n if (this._selectedItem) {\n this._selectedItem.selected = false;\n }\n\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n\n this._selectedItem = item;\n item.selected = true;\n this._focusedItem = item;\n item.focused = true;\n\n if (this._selectedBranch) {\n this._selectedBranch.hasSelectedItem = false;\n }\n\n let parentBranch: TreeItem | null = null;\n\n if (item.path?.length && item.path.length > 1) {\n parentBranch = this._getItemByPath(item.path.slice(0, -1));\n }\n\n if (isBranch(item)) {\n this._selectedBranch = item;\n item.hasSelectedItem = true;\n item.open = !item.open;\n\n if (!item.open) {\n if (parentBranch) {\n this._selectedBranch = parentBranch;\n parentBranch.hasSelectedItem = true;\n }\n } else {\n this._selectedBranch = item;\n item.hasSelectedItem = true;\n }\n } else {\n if (item.path?.length && item.path.length > 1) {\n const parentBranch = this._getItemByPath(item.path.slice(0, -1));\n\n if (parentBranch) {\n this._selectedBranch = parentBranch;\n parentBranch.hasSelectedItem = true;\n }\n } else {\n this._selectedBranch = item;\n item.hasSelectedItem = true;\n }\n }\n\n this._emitSelectEvent(\n this._selectedItem as TreeItem,\n this._selectedItem.path!.join('/')\n );\n\n this.requestUpdate();\n }\n\n private _focusItem(item: TreeItem) {\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n\n this._focusedItem = item;\n item.focused = true;\n\n const isBranch = !!item?.subItems?.length;\n\n if (this._focusedBranch) {\n this._focusedBranch.hasFocusedItem = false;\n }\n\n let parentBranch: TreeItem | null = null;\n\n if (item.path?.length && item.path.length > 1) {\n parentBranch = this._getItemByPath(item.path.slice(0, -1));\n }\n\n if (!isBranch) {\n if (parentBranch) {\n this._focusedBranch = parentBranch;\n parentBranch.hasFocusedItem = true;\n }\n } else {\n if (item.open) {\n this._focusedBranch = item;\n item.hasFocusedItem = true;\n } else if (!item.open && parentBranch) {\n this._focusedBranch = parentBranch;\n parentBranch.hasFocusedItem = true;\n }\n }\n }\n\n private _closeSubTreeRecursively(tree: TreeItem[]) {\n tree.forEach((item) => {\n item.open = false;\n\n if (item.subItems && item.subItems.length > 0) {\n this._closeSubTreeRecursively(item.subItems);\n }\n });\n }\n\n private _emitSelectEvent(item: TreeItem, path: string) {\n const {icons, label, open, value} = item;\n const detail = {\n icons,\n itemType: isBranch(item) ? 'branch' : ('leaf' as ItemType),\n label,\n open: open || false,\n value: value || label,\n path,\n };\n\n /** @deprecated Renamed to `vsc-tree-select` */\n this.dispatchEvent(\n new CustomEvent<SelectEventDetail>('vsc-select', {\n bubbles: true,\n composed: true,\n detail,\n })\n );\n\n this.dispatchEvent(\n new CustomEvent('vsc-tree-select', {\n detail,\n }) as VscTreeSelectEvent\n );\n }\n\n private _focusPrevItem() {\n if (!this._focusedItem) {\n this._focusItem(this._data[0]);\n return;\n }\n\n const {path} = this._focusedItem;\n\n if (path && path?.length > 0) {\n const currentItemIndex = path[path.length - 1];\n const hasParent = path!.length > 1;\n\n if (currentItemIndex > 0) {\n const newPath = [...path];\n newPath[newPath.length - 1] = currentItemIndex - 1;\n\n const prevSibling = this._getItemByPath(newPath) as TreeItem;\n let newFocusedItem = prevSibling;\n\n if (prevSibling?.open && prevSibling.subItems?.length) {\n const {subItems} = prevSibling;\n newFocusedItem = subItems[subItems.length - 1];\n }\n\n this._focusItem(newFocusedItem);\n } else {\n if (hasParent) {\n const newPath = [...path];\n newPath.pop();\n\n this._focusItem(this._getItemByPath(newPath) as TreeItem);\n }\n }\n } else {\n this._focusItem(this._data[0]);\n }\n }\n\n private _focusNextItem() {\n if (!this._focusedItem) {\n this._focusItem(this._data[0]);\n return;\n }\n\n const {path, open} = this._focusedItem;\n\n if (\n open &&\n Array.isArray(this._focusedItem.subItems) &&\n this._focusedItem.subItems.length > 0\n ) {\n this._focusItem(this._focusedItem.subItems[0]);\n return;\n }\n\n const nextPath = [...(path as number[])];\n nextPath[nextPath.length - 1] += 1;\n\n let nextFocusedItem = this._getItemByPath(nextPath);\n\n if (nextFocusedItem) {\n this._focusItem(nextFocusedItem);\n } else {\n nextPath.pop();\n\n if (nextPath.length > 0) {\n nextPath[nextPath.length - 1] += 1;\n nextFocusedItem = this._getItemByPath(nextPath);\n\n if (nextFocusedItem) {\n this._focusItem(nextFocusedItem);\n }\n }\n }\n }\n\n private _handleClick(event: MouseEvent) {\n const composedPath = event.composedPath();\n const targetElement = composedPath.find(\n (el: EventTarget) =>\n (el as HTMLElement).tagName &&\n (el as HTMLElement).tagName.toUpperCase() === 'LI'\n );\n\n if (targetElement) {\n const pathStr = (targetElement as HTMLLIElement).dataset.path || '';\n const path = pathStr.split('/').map((el) => Number(el));\n const item = this._getItemByPath(path) as TreeItem;\n\n this._selectItem(item);\n } else {\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n\n this._focusedItem = null;\n }\n }\n\n private _handleComponentKeyDown(ev: KeyboardEvent) {\n const keys: ListenedKey[] = [\n ' ',\n 'ArrowDown',\n 'ArrowUp',\n 'Enter',\n 'Escape',\n ];\n const key = ev.key as ListenedKey;\n\n if (keys.includes(ev.key as ListenedKey)) {\n ev.stopPropagation();\n ev.preventDefault();\n }\n\n if (key === 'Escape') {\n this._focusedItem = null;\n }\n\n if (key === 'ArrowUp') {\n this._focusPrevItem();\n }\n\n if (key === 'ArrowDown') {\n this._focusNextItem();\n }\n\n if (key === 'Enter' || key === ' ') {\n if (this._focusedItem) {\n this._selectItem(this._focusedItem);\n }\n }\n }\n\n private _handleComponentKeyDownBound =\n this._handleComponentKeyDown.bind(this);\n\n render(): TemplateResult {\n const classes = classMap({\n multi: this.multiline,\n single: !this.multiline,\n wrapper: true,\n 'has-not-focused-item': !this._focusedItem,\n 'selection-none': !this._selectedItem,\n 'selection-single': this._selectedItem !== null,\n });\n\n return html`\n <div @click=\"${this._handleClick}\" class=\"${classes}\">\n <ul>\n ${this._renderTree(this._data)}\n </ul>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tree': VscodeTree;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-tree-select': VscTreeSelectEvent;\n 'vsc-tree-action': VscTreeActionEvent;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
"name": "vscode-checkbox",
|
|
57
|
-
"description": "\n---\n\n\n### **Events:**\n - **change** - undefined\n- **vsc-change** - undefined\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- **--vsc-foreground-translucent** - Label font color. 90% transparency version of `--vscode-foreground` by default. _(default: undefined)_\n- **--vscode-settings-checkboxBackground** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxBorder** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxForeground** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_",
|
|
57
|
+
"description": "When 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\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- **--vsc-foreground-translucent** - Label font color. 90% transparency version of `--vscode-foreground` by default. _(default: undefined)_\n- **--vscode-settings-checkboxBackground** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxBorder** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxForeground** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_",
|
|
58
58
|
"attributes": [
|
|
59
59
|
{
|
|
60
60
|
"name": "name",
|
|
@@ -69,6 +69,7 @@
|
|
|
69
69
|
{ "name": "autofocus", "values": [] },
|
|
70
70
|
{ "name": "checked", "values": [] },
|
|
71
71
|
{ "name": "default-checked", "values": [] },
|
|
72
|
+
{ "name": "invalid", "values": [] },
|
|
72
73
|
{
|
|
73
74
|
"name": "value",
|
|
74
75
|
"description": "Associate a value to the checkbox. According to the native checkbox [specification](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#value_2), If the component participates in a form:\n\n- If it is unchecked, the value will not be submitted.\n- If it is checked but the value is not set, `on` will be submitted.\n- If it is checked and value is set, the value will be submitted.",
|
|
@@ -203,9 +204,13 @@
|
|
|
203
204
|
},
|
|
204
205
|
{
|
|
205
206
|
"name": "vscode-multi-select",
|
|
206
|
-
"description": "\n---\n\n\n### **Events:**\n - **vsc-change** - undefined\n- **change** - undefined\n\n### **CSS Properties:**\n - **--dropdown-z-index** - undefined _(default: 2)_\n- **--vscode-badge-background** - undefined _(default: undefined)_\n- **--vscode-badge-foreground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownBorder** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxBackground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownBackground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownListBorder** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_\n- **--vscode-foreground** - 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-activeSelectionBackground** - undefined _(default: undefined)_\n- **--vscode-list-activeSelectionForeground** - undefined _(default: undefined)_\n- **--vscode-list-focusOutline** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-list-hoverForeground** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-settings-textInputBackground** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_",
|
|
207
|
+
"description": "Allows to select multiple items from a list of options.\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-change** - undefined\n- **change** - undefined\n\n### **CSS Properties:**\n - **--dropdown-z-index** - undefined _(default: 2)_\n- **--vscode-badge-background** - undefined _(default: undefined)_\n- **--vscode-badge-foreground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownBorder** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxBackground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownBackground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownListBorder** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_\n- **--vscode-foreground** - 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-activeSelectionBackground** - undefined _(default: undefined)_\n- **--vscode-list-activeSelectionForeground** - undefined _(default: undefined)_\n- **--vscode-list-focusOutline** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-list-hoverForeground** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-settings-textInputBackground** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_",
|
|
207
208
|
"attributes": [
|
|
208
|
-
{
|
|
209
|
+
{
|
|
210
|
+
"name": "invalid",
|
|
211
|
+
"description": "Sets the invalid state manually.",
|
|
212
|
+
"values": []
|
|
213
|
+
},
|
|
209
214
|
{
|
|
210
215
|
"name": "name",
|
|
211
216
|
"description": "Name which is used as a variable name in the data of the form-container.",
|
|
@@ -235,7 +240,7 @@
|
|
|
235
240
|
},
|
|
236
241
|
{
|
|
237
242
|
"name": "vscode-radio",
|
|
238
|
-
"description": "\n---\n\n\n### **Events:**\n - **vsc-change** - undefined\n- **change** - Dispatched when checked state is changed.\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- **--vsc-foreground-translucent** - Label font color. 90% transparency version of `--vscode-foreground` by default. _(default: undefined)_\n- **--vscode-settings-checkboxBackground** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxBorder** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxForeground** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_",
|
|
243
|
+
"description": "When 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-change** - undefined\n- **change** - Dispatched when checked state is changed.\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- **--vsc-foreground-translucent** - Label font color. 90% transparency version of `--vscode-foreground` by default. _(default: undefined)_\n- **--vscode-settings-checkboxBackground** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxBorder** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxForeground** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_",
|
|
239
244
|
"attributes": [
|
|
240
245
|
{
|
|
241
246
|
"name": "name",
|
|
@@ -250,6 +255,7 @@
|
|
|
250
255
|
{ "name": "autofocus", "values": [] },
|
|
251
256
|
{ "name": "checked", "values": [] },
|
|
252
257
|
{ "name": "default-checked", "values": [] },
|
|
258
|
+
{ "name": "invalid", "values": [] },
|
|
253
259
|
{ "name": "value", "values": [] },
|
|
254
260
|
{ "name": "disabled", "values": [] },
|
|
255
261
|
{ "name": "required", "values": [] },
|
|
@@ -281,9 +287,13 @@
|
|
|
281
287
|
},
|
|
282
288
|
{
|
|
283
289
|
"name": "vscode-single-select",
|
|
284
|
-
"description": "## Types\n\n```typescript\ninterface Option {\n label: string;\n value: string;\n description: string;\n selected: boolean;\n disabled: boolean;\n}\n```\n---\n\n\n### **Events:**\n - **vsc-change** - undefined\n- **change** - undefined\n\n### **CSS Properties:**\n - **--dropdown-z-index** - undefined _(default: 2)_\n- **--vscode-badge-background** - undefined _(default: undefined)_\n- **--vscode-badge-foreground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownBorder** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxBackground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownBackground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownListBorder** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_\n- **--vscode-foreground** - 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-activeSelectionBackground** - undefined _(default: undefined)_\n- **--vscode-list-activeSelectionForeground** - undefined _(default: undefined)_\n- **--vscode-list-focusOutline** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-list-hoverForeground** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-settings-textInputBackground** - undefined _(default: undefined)_",
|
|
290
|
+
"description": "Allows to select an item from multiple options.\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## Types\n\n```typescript\ninterface Option {\n label: string;\n value: string;\n description: string;\n selected: boolean;\n disabled: boolean;\n}\n```\n---\n\n\n### **Events:**\n - **vsc-change** - undefined\n- **change** - undefined\n\n### **CSS Properties:**\n - **--dropdown-z-index** - undefined _(default: 2)_\n- **--vscode-badge-background** - undefined _(default: undefined)_\n- **--vscode-badge-foreground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownBorder** - undefined _(default: undefined)_\n- **--vscode-settings-checkboxBackground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownBackground** - undefined _(default: undefined)_\n- **--vscode-settings-dropdownListBorder** - undefined _(default: undefined)_\n- **--vscode-focusBorder** - undefined _(default: undefined)_\n- **--vscode-foreground** - 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-activeSelectionBackground** - undefined _(default: undefined)_\n- **--vscode-list-activeSelectionForeground** - undefined _(default: undefined)_\n- **--vscode-list-focusOutline** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-list-hoverForeground** - undefined _(default: undefined)_\n- **--vscode-list-hoverBackground** - undefined _(default: undefined)_\n- **--vscode-settings-textInputBackground** - undefined _(default: undefined)_",
|
|
285
291
|
"attributes": [
|
|
286
|
-
{
|
|
292
|
+
{
|
|
293
|
+
"name": "invalid",
|
|
294
|
+
"description": "Sets the invalid state manually.",
|
|
295
|
+
"values": []
|
|
296
|
+
},
|
|
287
297
|
{
|
|
288
298
|
"name": "name",
|
|
289
299
|
"description": "Name which is used as a variable name in the data of the form-container.",
|
|
@@ -440,7 +450,7 @@
|
|
|
440
450
|
},
|
|
441
451
|
{
|
|
442
452
|
"name": "vscode-textarea",
|
|
443
|
-
"description": "Multi-line text input.\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)_",
|
|
453
|
+
"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)_",
|
|
444
454
|
"attributes": [
|
|
445
455
|
{
|
|
446
456
|
"name": "autocomplete",
|
|
@@ -479,7 +489,7 @@
|
|
|
479
489
|
},
|
|
480
490
|
{
|
|
481
491
|
"name": "vscode-textfield",
|
|
482
|
-
"description": "A simple inline textfield\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)_",
|
|
492
|
+
"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)_",
|
|
483
493
|
"attributes": [
|
|
484
494
|
{
|
|
485
495
|
"name": "autocomplete",
|