@jimka/typescript-ui 0.4.0 → 0.4.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/dist/lib/{AbstractBooleanInput-DSwKBAic.js → AbstractBooleanInput-DE5NNJT0.js} +2 -2
- package/dist/lib/{AbstractBooleanInput-DSwKBAic.js.map → AbstractBooleanInput-DE5NNJT0.js.map} +1 -1
- package/dist/lib/{AbstractInput-BmWGJTs1.js → AbstractInput-BxfrmD2W.js} +2 -2
- package/dist/lib/{AbstractInput-BmWGJTs1.js.map → AbstractInput-BxfrmD2W.js.map} +1 -1
- package/dist/lib/{AnchorConstraints-CVrMP9rz.js → AnchorConstraints-DdDYSDkf.js} +2 -2
- package/dist/lib/{AnchorConstraints-CVrMP9rz.js.map → AnchorConstraints-DdDYSDkf.js.map} +1 -1
- package/dist/lib/{AnimatedDropdown-DKas40B-.js → AnimatedDropdown-QLNasu_Y.js} +2 -2
- package/dist/lib/{AnimatedDropdown-DKas40B-.js.map → AnimatedDropdown-QLNasu_Y.js.map} +1 -1
- package/dist/lib/Border-CKKUk5G9.js +2 -0
- package/dist/lib/Border-CKKUk5G9.js.map +1 -0
- package/dist/lib/{Button-bjpWruNc.js → Button-MZDYJOMC.js} +2 -2
- package/dist/lib/{Button-bjpWruNc.js.map → Button-MZDYJOMC.js.map} +1 -1
- package/dist/lib/{Card-BdfbvOD_.js → Card-a4dzYrbX.js} +2 -2
- package/dist/lib/{Card-BdfbvOD_.js.map → Card-a4dzYrbX.js.map} +1 -1
- package/dist/lib/ComboBox-C04SfXAR.js +2 -0
- package/dist/lib/ComboBox-C04SfXAR.js.map +1 -0
- package/dist/lib/Component-fRQvgaEY.js +2 -0
- package/dist/lib/Component-fRQvgaEY.js.map +1 -0
- package/dist/lib/Container-0bsG2Q8Z.js +2 -0
- package/dist/lib/{Container-CAQpj4yb.js.map → Container-0bsG2Q8Z.js.map} +1 -1
- package/dist/lib/{DragManager-CHWCe3-8.js → DragManager-DRor_-1x.js} +2 -2
- package/dist/lib/{DragManager-CHWCe3-8.js.map → DragManager-DRor_-1x.js.map} +1 -1
- package/dist/lib/{FieldDecorator-CgAGcqCk.js → FieldDecorator-Bpx8J8n9.js} +2 -2
- package/dist/lib/{FieldDecorator-CgAGcqCk.js.map → FieldDecorator-Bpx8J8n9.js.map} +1 -1
- package/dist/lib/{Fit-DIYt2aQB.js → Fit-CL1m1nIZ.js} +2 -2
- package/dist/lib/{Fit-DIYt2aQB.js.map → Fit-CL1m1nIZ.js.map} +1 -1
- package/dist/lib/{Glyph-CeAIWyPB.js → Glyph-wN7bk7mg.js} +2 -2
- package/dist/lib/{Glyph-CeAIWyPB.js.map → Glyph-wN7bk7mg.js.map} +1 -1
- package/dist/lib/{Grid-ViA0joow.js → Grid-DHHmaB-Y.js} +2 -2
- package/dist/lib/{Grid-ViA0joow.js.map → Grid-DHHmaB-Y.js.map} +1 -1
- package/dist/lib/{GridConstraints-B1rxCw9B.js → GridConstraints-DVc1BmlP.js} +2 -2
- package/dist/lib/{GridConstraints-B1rxCw9B.js.map → GridConstraints-DVc1BmlP.js.map} +1 -1
- package/dist/lib/{Header-mKaqgfat.js → Header-2hKwQo_u.js} +2 -2
- package/dist/lib/{Header-mKaqgfat.js.map → Header-2hKwQo_u.js.map} +1 -1
- package/dist/lib/{IconText-BqwXA82-.js → IconText-DC7Xe34b.js} +2 -2
- package/dist/lib/{IconText-BqwXA82-.js.map → IconText-DC7Xe34b.js.map} +1 -1
- package/dist/lib/LayoutConstraints-LIHYYd2F.js +2 -0
- package/dist/lib/LayoutConstraints-LIHYYd2F.js.map +1 -0
- package/dist/lib/{LayoutSerialization-D82UtnDD.js → LayoutSerialization-D5bBas4W.js} +2 -2
- package/dist/lib/{LayoutSerialization-D82UtnDD.js.map → LayoutSerialization-D5bBas4W.js.map} +1 -1
- package/dist/lib/{LayoutSizes-DG9aW9k6.js → LayoutSizes-qNaURyiw.js} +2 -2
- package/dist/lib/LayoutSizes-qNaURyiw.js.map +1 -0
- package/dist/lib/{List-CUntS8ux.js → List-CG4NvwuV.js} +2 -2
- package/dist/lib/{List-CUntS8ux.js.map → List-CG4NvwuV.js.map} +1 -1
- package/dist/lib/Menu-CrZy2u0g.js +2 -0
- package/dist/lib/Menu-CrZy2u0g.js.map +1 -0
- package/dist/lib/MenuButton-wy_0RskC.js +2 -0
- package/dist/lib/MenuButton-wy_0RskC.js.map +1 -0
- package/dist/lib/{Panel-D2X33qR6.js → Panel-Rd9zkNXx.js} +2 -2
- package/dist/lib/{Panel-D2X33qR6.js.map → Panel-Rd9zkNXx.js.map} +1 -1
- package/dist/lib/{ProgressSpinner-DCyq02pd.js → ProgressSpinner-yt-VXyCb.js} +2 -2
- package/dist/lib/{ProgressSpinner-DCyq02pd.js.map → ProgressSpinner-yt-VXyCb.js.map} +1 -1
- package/dist/lib/{RadioButton-BJIAQkII.js → RadioButton-D23rId-V.js} +2 -2
- package/dist/lib/{RadioButton-BJIAQkII.js.map → RadioButton-D23rId-V.js.map} +1 -1
- package/dist/lib/{Scrollbar-CSFK-Y57.js → Scrollbar-SOj9psiP.js} +2 -2
- package/dist/lib/{Scrollbar-CSFK-Y57.js.map → Scrollbar-SOj9psiP.js.map} +1 -1
- package/dist/lib/{Slider-C-kQQYCj.js → Slider-DBnAZ-F7.js} +2 -2
- package/dist/lib/{Slider-C-kQQYCj.js.map → Slider-DBnAZ-F7.js.map} +1 -1
- package/dist/lib/{Spacer-D159iJy9.js → Spacer-qalSEJ5i.js} +2 -2
- package/dist/lib/{Spacer-D159iJy9.js.map → Spacer-qalSEJ5i.js.map} +1 -1
- package/dist/lib/{TabButton-CHkXBgCj.js → TabButton-DKECTTk1.js} +2 -2
- package/dist/lib/{TabButton-CHkXBgCj.js.map → TabButton-DKECTTk1.js.map} +1 -1
- package/dist/lib/{Text-D5pg7taZ.js → Text-KB5LksJl.js} +2 -2
- package/dist/lib/{Text-D5pg7taZ.js.map → Text-KB5LksJl.js.map} +1 -1
- package/dist/lib/{Tooltip-DzK6LxUt.js → Tooltip-Dro4DOZs.js} +2 -2
- package/dist/lib/{Tooltip-DzK6LxUt.js.map → Tooltip-Dro4DOZs.js.map} +1 -1
- package/dist/lib/{VBox-BNegDPs_.js → VBox-P3WFGkPc.js} +2 -2
- package/dist/lib/{VBox-BNegDPs_.js.map → VBox-P3WFGkPc.js.map} +1 -1
- package/dist/lib/{VirtualScroller-zQr-vKrO.js → VirtualScroller-Bv4KXGKW.js} +2 -2
- package/dist/lib/{VirtualScroller-zQr-vKrO.js.map → VirtualScroller-Bv4KXGKW.js.map} +1 -1
- package/dist/lib/component/button.es.js +1 -1
- package/dist/lib/component/button.es.js.map +1 -1
- package/dist/lib/component/chart.es.js +1 -1
- package/dist/lib/component/chart.es.js.map +1 -1
- package/dist/lib/component/container.es.js +1 -1
- package/dist/lib/component/container.es.js.map +1 -1
- package/dist/lib/component/diagram.es.js +1 -1
- package/dist/lib/component/display.es.js +1 -1
- package/dist/lib/component/editor.es.js +1 -1
- package/dist/lib/component/input.es.js +1 -1
- package/dist/lib/component/list.es.js +1 -1
- package/dist/lib/component/menubar.es.js +1 -1
- package/dist/lib/component/menubar.es.js.map +1 -1
- package/dist/lib/component/table.es.js +2 -2
- package/dist/lib/component/table.es.js.map +1 -1
- package/dist/lib/component/tree.es.js +1 -1
- package/dist/lib/core.es.js +1 -1
- package/dist/lib/layout.es.js +1 -1
- package/dist/lib/overlay.es.js +1 -1
- package/dist/lib/overlay.es.js.map +1 -1
- package/dist/lib/{selectionsEqual-4r5R7pTK.js → selectionsEqual-Ci3_uflt.js} +2 -2
- package/dist/lib/{selectionsEqual-4r5R7pTK.js.map → selectionsEqual-Ci3_uflt.js.map} +1 -1
- package/dist/lib/types/component/button/MenuButton.d.ts +1 -0
- package/dist/lib/types/component/button/SplitButton.d.ts +1 -0
- package/dist/lib/types/component/button/TabButton.d.ts +1 -0
- package/dist/lib/types/component/chart/ChartLegend.d.ts +0 -1
- package/dist/lib/types/component/container/CollapseButton.d.ts +0 -1
- package/dist/lib/types/component/container/TabPanel.d.ts +3 -0
- package/dist/lib/types/component/input/Link.d.ts +0 -1
- package/dist/lib/types/component/menubar/MenuBar.d.ts +1 -0
- package/dist/lib/types/component/menubar/MenuBarButton.d.ts +0 -1
- package/dist/lib/types/component/menubar/ToolBar.d.ts +1 -0
- package/dist/lib/types/component/table/Table.d.ts +1 -0
- package/dist/lib/types/core/BorderWidths.d.ts +12 -0
- package/dist/lib/types/core/Component.d.ts +1 -0
- package/dist/lib/types/core/Event.d.ts +2 -0
- package/dist/lib/types/layout/LayoutConstraints.d.ts +1 -0
- package/dist/lib/types/layout/LayoutSerialization.d.ts +3 -0
- package/dist/lib/types/overlay/Dock.d.ts +1 -0
- package/dist/lib/validation.es.js +1 -1
- package/package.json +1 -1
- package/dist/lib/Border-Bz29z-_7.js +0 -2
- package/dist/lib/Border-Bz29z-_7.js.map +0 -1
- package/dist/lib/ComboBox-CBw2VLLN.js +0 -2
- package/dist/lib/ComboBox-CBw2VLLN.js.map +0 -1
- package/dist/lib/Component-DHqrPwAw.js +0 -2
- package/dist/lib/Component-DHqrPwAw.js.map +0 -1
- package/dist/lib/Container-CAQpj4yb.js +0 -2
- package/dist/lib/LayoutConstraints-DkctJZXB.js +0 -2
- package/dist/lib/LayoutConstraints-DkctJZXB.js.map +0 -1
- package/dist/lib/LayoutSizes-DG9aW9k6.js.map +0 -1
- package/dist/lib/Menu-B_-SQj72.js +0 -2
- package/dist/lib/Menu-B_-SQj72.js.map +0 -1
- package/dist/lib/MenuButton-C79l8Ysf.js +0 -2
- package/dist/lib/MenuButton-C79l8Ysf.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./DOM-67StIm5G.js";import{n as t}from"./Position-Ck_KD4cR.js";import{S as n,b as r,h as i,l as a,n as o,t as s}from"./Component-DHqrPwAw.js";import{t as c}from"./ListenerBag-WPdKuuds.js";import{t as l}from"./Panel-D2X33qR6.js";import{t as u}from"./Tooltip-DzK6LxUt.js";import{t as d}from"./Fit-DIYt2aQB.js";import{t as f}from"./Text-D5pg7taZ.js";import{t as p}from"./AbstractInput-BmWGJTs1.js";import{t as m}from"./VBox-BNegDPs_.js";var ListItemRenderer=class extends s{constructor(){super()}getContentWidth(){return 0}},LabelListItemRenderer=class extends ListItemRenderer{_label;_measured=!1;constructor(){super(),this.clearInsets(),this._label=new f,this._label.clearInsets(),this._label.setAutoMeasure(!1)}getLabel(){return this._label}update(e){this._label.setText(e.item.label),this._measured=!1}getContentWidth(){return this._measured||=(this._label.measure(),!0),this._label.getPreferredSize()?.width??0}layoutChildren(e,t){let n=this.getContentBounds()??{x:0,y:0,width:e,height:t};this._label.setAutoCommitStyle(!1),this._label.setX(n.x),this._label.setY(n.y),this._label.setWidth(n.width),this._label.setHeight(n.height),this._label.setLineHeight(n.height),this._label.setAutoCommitStyle(!0)}init(t){super.init(t);let n=t||this.getElement();return n&&e.sink.appendChild(n,this._label.getElement(!0)),this}},h=i(LabelListItemRenderer),g=22,_=8,v=700,y={tag:`div`,backgroundColor:`var(--ts-ui-list-bg, rgb(255, 255, 255))`,foregroundColor:`var(--ts-ui-text-color, black)`,border:`1px solid var(--ts-ui-list-border, rgb(200, 200, 200))`,borderRadius:`var(--ts-ui-border-radius, 4px)`,preferredSize:{width:200,height:200},maxSize:{width:2**53-1,height:2**53-1}};new r({scope:`selector`,name:`.List, .MultiSelectList`,styles:{userSelect:`none`,outline:`none`}}),new r({scope:`selector`,name:`.List:focus::after, .MultiSelectList:focus::after`,styles:{content:`''`,position:`absolute`,inset:`0`,border:`2px solid var(--ts-ui-indicator-focus, rgb(30, 100, 200))`,borderRadius:`inherit`,boxSizing:`border-box`,pointerEvents:`none`,zIndex:`1`}}),new r({scope:`class`,name:`SelectableListRow`,styles:{lineHeight:`22px`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,cursor:`pointer`}}),new r({scope:`selector`,name:`.SelectableListRow:hover`,styles:{backgroundColor:`var(--ts-ui-list-row-hover-bg, rgba(30, 100, 200, 0.08))`}}),new r({scope:`selector`,name:`.SelectableListRow.selected`,styles:{backgroundColor:`var(--ts-ui-list-row-selected-bg, rgba(30, 100, 200, 0.18))`,color:`var(--ts-ui-list-row-selected-color, inherit)`}}),new r({scope:`selector`,name:`.SelectableListRow.focused`,styles:{outline:`var(--ts-ui-indicator-selection, 1px dashed rgb(120, 170, 240))`}});var SelectableListRow=class extends s{_selected=!1;_focused=!1;_index;_handlers;_tooltipAttached=!1;_renderer;constructor(e,r,i){super({tag:`div`}),this._handlers=e,this._index=r,this._renderer=i(),this._renderer.setPointerEvents(`none`),this.getAria().setRole(`option`),this.setPreferredSize({width:0,height:g}),this.setPadding(new t(0,_,0,_)),this.setBorder({borderBottom:`1px solid var(--ts-ui-list-row-separator, transparent)`}),this.setCursor(`pointer`),n.addListener(this,`pointerdown`,this.onPointerDown),n.addListener(this,`click`,this.onClick),n.addListener(this,`contextmenu`,this.onContextMenu),n.addListener(this,`dblclick`,this.onDblClick)}updateItem(e,t){return this._renderer.update({item:e,index:t}),this.applyTooltip(e.tooltip),this}applyTooltip(e){e?(u.attach(this,e),this._tooltipAttached=!0):this._tooltipAttached&&=(u.detach(this),!1)}getNaturalWidth(){return this._renderer.getContentWidth()+_*2}setRenderer(t){let n=this.getElement();if(n){let t=this._renderer.getElement();t&&e.source.getParentNode(t)===n&&e.sink.removeChild(n,t)}return this._renderer=t,this._renderer.setPointerEvents(`none`),n&&e.sink.appendChild(n,this._renderer.getElement(!0)),this}setIndex(e){return this._index=e,this}getIndex(){return this._index}setSelected(e){return this._selected=e,this.getAria().setSelected(e),this.applyRowClass(),this}isSelected(){return this._selected}setFocused(e){return this._focused=e,this.applyRowClass(),this}isFocused(){return this._focused}render(){let e=super.render();return this.applyRowClass(),e}init(t){super.init(t);let n=t||this.getElement();return n&&e.sink.appendChild(n,this._renderer.getElement(!0)),this}doLayout(){super.doLayout();let e=this.getContentBounds();return e?(this._renderer.setAutoCommitStyle(!1),this._renderer.setX(e.x),this._renderer.setY(e.y),this._renderer.setWidth(e.width),this._renderer.setHeight(e.height),this._renderer.setAutoCommitStyle(!0),this._renderer.layoutChildren(e.width,e.height),this):this}applyRowClass(){let e=[o,`SelectableListRow`];this._selected&&e.push(`selected`),this._focused&&e.push(`focused`),this.setElementAttribute(`class`,e.join(` `))}onPointerDown(e){e.preventDefault()}onClick(e){this._handlers.onClick(this._index,e)}onContextMenu(e){this._handlers.onContextMenu(this._index,e)}onDblClick(e){this._handlers.onDblClick(this._index,e)}},ListRowColumn=class extends m{computeTotalMinSize(){let e=super.computeTotalMinSize(),t=this.getContainer();if(!t||!this.isOverflowingX())return e;let n=0;for(let e of t.getLaidOutComponents())e instanceof SelectableListRow&&(n=Math.max(n,e.getNaturalWidth()));return{width:Math.max(e.width,n),height:e.height}}},AbstractSelectableList=class extends p{_items=[];_rowPool=[];_selectedSet=new Set;_anchorIndex=null;_focusedIndex=-1;_typeAheadBuf=``;_typeAheadAt=0;_focusOnRowClick=!0;_selectFollowsFocus=!0;_horizontalScrolling=!1;_innerPanel;_emptyPlaceholder=null;_placeholderAttached=!1;_storeRefresh=null;_rendererFactory=()=>new h;_rowListeners=new c;constructor(e,r){super(e,{...y,layoutManager:new d,...r??{}}),this.getAria().setRole(`listbox`),this.getAria().setTabIndex(0),this._innerPanel=new l({layoutManager:new ListRowColumn({spacing:0,stretching:!0}),autoScroll:`y`,insets:new t(0,0,0,0)}),this.addComponent(this._innerPanel),this._options.minSize===void 0&&this.setMinSize({width:100,height:100}),n.addListener(this,`keydown`,this.handleKeyDown),this._options.rendererFactory!==void 0&&this.setRendererFactory(this._options.rendererFactory),this._options.horizontalScrolling!==void 0&&this.setHorizontalScrolling(this._options.horizontalScrolling),this._options.store!==void 0&&this._options.displayField!==void 0&&this.setStore(this._options.store,this._options.displayField,this._options.valueField,this._options.glyphField,this._options.tooltipField),this._options.items!==void 0&&this.setItems(this._options.items),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly),(this._options.emptyText!==void 0||this._options.emptyComponent!==void 0)&&this.syncEmptyPlaceholder()}applyEnabled(e){this.getAria().setDisabled(!e),this.getAria().setTabIndex(e?0:-1),this.setCursor(e?`default`:`not-allowed`),e||(this._focusedIndex=-1,this.refreshRowVisualState(),this.updateActiveDescendant())}applyReadOnly(e){this.getAria().setReadOnly(e)}applyOptions(e){return super.applyOptions(e),e.items!==void 0&&(this._options.items=e.items),e.store!==void 0&&(this._options.store=e.store),e.displayField!==void 0&&(this._options.displayField=e.displayField),e.valueField!==void 0&&(this._options.valueField=e.valueField),e.glyphField!==void 0&&(this._options.glyphField=e.glyphField),e.tooltipField!==void 0&&(this._options.tooltipField=e.tooltipField),e.rendererFactory!==void 0&&(this._options.rendererFactory=e.rendererFactory),e.emptyText!==void 0&&(this._options.emptyText=e.emptyText),e.emptyComponent!==void 0&&(this._options.emptyComponent=e.emptyComponent),e.horizontalScrolling!==void 0&&(this._options.horizontalScrolling=e.horizontalScrolling),this}setHorizontalScrolling(e){return this._horizontalScrolling===e?this:(this._horizontalScrolling=e,this._innerPanel.setAutoScroll(e?`auto`:`y`),this.scheduleLayout(),this)}isHorizontalScrolling(){return this._horizontalScrolling}setEmptyText(e){return this._options.emptyText=e??void 0,this.resetEmptyPlaceholder(),this.syncEmptyPlaceholder(),this}getEmptyText(){return this._options.emptyText??null}setEmptyComponent(e){return this._options.emptyComponent=e??void 0,this.resetEmptyPlaceholder(),this.syncEmptyPlaceholder(),this}getEmptyComponent(){return this._options.emptyComponent??null}syncEmptyPlaceholder(){(this._options.emptyComponent!==void 0||this._options.emptyText!==void 0)&&this._items.length===0?(this._emptyPlaceholder||=this.buildEmptyPlaceholder(),this._placeholderAttached||=(this._innerPanel.addComponent(this._emptyPlaceholder,{weight:1}),!0)):this._placeholderAttached&&this._emptyPlaceholder&&(this._innerPanel.removeComponent(this._emptyPlaceholder),this._placeholderAttached=!1)}buildEmptyPlaceholder(){let e=this._options.emptyComponent;if(e)return e();let t=new f(this._options.emptyText??``,{textAlign:`center`});return t.setForegroundColor(`var(--ts-ui-list-row-disabled-color, rgb(170, 170, 170))`),t}resetEmptyPlaceholder(){this._placeholderAttached&&this._emptyPlaceholder&&(this._innerPanel.removeComponent(this._emptyPlaceholder),this._placeholderAttached=!1),this._emptyPlaceholder=null}getBaseline(){return null}getItems(){return this._items.slice()}setItems(e){a.isArray(e)||(e=[e]);let t=e,n=[];for(let e of t)n.push(typeof e==`string`?{key:e,label:e}:{key:e.key,label:e.label,glyph:e.glyph,tooltip:e.tooltip});return this.setItemsArray(n)}setItemsArray(e){return this._items=e.slice(),this._selectedSet.clear(),this._anchorIndex=null,this._focusedIndex=-1,this.pauseLayout(),this.syncRows(),this.resumeLayout(),this.updateActiveDescendant(),this}addItem(e){return this._items.push(typeof e==`string`?{key:e,label:e}:{key:e.key,label:e.label,glyph:e.glyph,tooltip:e.tooltip}),this.pauseLayout(),this.syncRows(),this.resumeLayout(),this}setStore(e,t,n,r,i){let a=this._options.store;this._storeRefresh&&a&&[`load`,`add`,`remove`,`datachange`,`sync`].forEach(e=>a.off(e,this._storeRefresh)),this._options.store=e,this._options.displayField=t,this._options.valueField=n,this._options.glyphField=r,this._options.tooltipField=i;let refresh=()=>this.refreshFromStore();return this._storeRefresh=refresh,e.on(`load`,refresh),e.on(`add`,refresh),e.on(`remove`,refresh),e.on(`datachange`,refresh),e.on(`sync`,refresh),this.refreshFromStore(),this}getStore(){return this._options.store??null}setRendererFactory(e){this._rendererFactory=e;for(let t of this._rowPool)t.setRenderer(e());return this.pauseLayout(),this.syncRows(),this.resumeLayout(),this}getRendererFactory(){return this._rendererFactory}getSelectedRecord(){let e=this._options.store;if(!e)return;let t=this.getSelectedIndex();if(!(t<0))return e.getRecords()[t]}getSelectedIndex(){return this._anchorIndex!==null&&this._selectedSet.has(this._anchorIndex)?this._anchorIndex:this._selectedSet.size===0?-1:Math.min(...this._selectedSet)}setSelectedIndex(e,t=!0){return this._selectedSet.clear(),e>=0&&e<this._items.length?(this._selectedSet.add(e),this._anchorIndex=e,this._focusedIndex=e):(this._anchorIndex=null,this._focusedIndex=-1),this.refreshRowVisualState(),this.updateActiveDescendant(),t&&this.fireChange(),this}on(e,t){return e===`action`?(n.addListener(this,`change`,t),this):e===`contextmenu`||e===`dblclick`?(this._rowListeners.add(e,t),this):super.on(e,t)}off(e,t){return e===`action`?(n.removeListener(this,`change`,t),this):e===`contextmenu`||e===`dblclick`?(this._rowListeners.remove(e,t),this):super.off(e,t)}refreshFromStore(){let e=this._options.store,t=this._options.displayField,n=this._options.valueField,r=this._options.glyphField,i=this._options.tooltipField;if(!e||!t)return;let a=this._anchorIndex!==null&&this._items[this._anchorIndex]?this._items[this._anchorIndex].key:null;this._items=[],this._selectedSet.clear(),this._anchorIndex=null;let o=e.getRecords(),s=-1;for(let e=0;e<o.length;e++){let c=o[e],l=String(c.get(t)),u=String(n?c.get(n):c.getId()),d=r?String(c.get(r)):void 0,f=i?String(c.get(i)):void 0;this._items.push({key:u,label:l,glyph:d,tooltip:f}),a!==null&&u===a&&(s=e)}s>=0?(this._selectedSet.add(s),this._anchorIndex=s,this._focusedIndex=s):this._focusedIndex=this._items.length>0?0:-1,this.pauseLayout(),this.syncRows(),this.resumeLayout(),this.updateActiveDescendant()}syncRows(){let e=this._items.length,t=this._rowPool.length,n=Math.min(e,t);for(let e=0;e<n;e++){let t=this._rowPool[e];t.updateItem(this._items[e],e),t.setIndex(e),t.setSelected(this._selectedSet.has(e)),t.setFocused(e===this._focusedIndex)}if(e>t)for(let n=t;n<e;n++){let e=new SelectableListRow({onClick:(e,t)=>this.handleRowClick(e,t),onContextMenu:(e,t)=>this.handleRowContextMenu(e,t),onDblClick:(e,t)=>this.handleRowDblClick(e,t)},n,this._rendererFactory);e.updateItem(this._items[n],n),e.setSelected(this._selectedSet.has(n)),e.setFocused(n===this._focusedIndex),this._innerPanel.addComponent(e),this._rowPool.push(e)}else if(e<t){for(let n=e;n<t;n++)u.detach(this._rowPool[n]),this._innerPanel.removeComponent(this._rowPool[n]);this._rowPool.splice(e)}this.syncEmptyPlaceholder()}refreshRowVisualState(){for(let e=0;e<this._rowPool.length;e++){let t=this._rowPool[e];t.setSelected(this._selectedSet.has(e)),t.setFocused(e===this._focusedIndex)}}updateActiveDescendant(){if(this._focusedIndex<0||this._focusedIndex>=this._rowPool.length){this.getAria().setActiveDescendant(``);return}this.getAria().setActiveDescendant(this._rowPool[this._focusedIndex].getId())}fireChange(){this.getElement()&&n.fireEvent(this,`change`),this.notifyChange(this.getValue())}handleRowClick(e,t){!this.isEnabled()||this.isReadOnly()||e<0||e>=this._items.length||(this.reduceSelection(e,{ctrl:t.ctrlKey||t.metaKey,shift:t.shiftKey}),this.refreshRowVisualState(),this.updateActiveDescendant(),this._focusOnRowClick&&this.focus(),this.notifyUserChange())}handleRowContextMenu(e,t){e<0||e>=this._items.length||(t.preventDefault(),this._rowListeners.fire(`contextmenu`,e,t))}handleRowDblClick(e,t){e<0||e>=this._items.length||this._rowListeners.fire(`dblclick`,e,t)}setFocusOnRowClick(e){return this._focusOnRowClick=e,this}setSelectFollowsFocus(e){return this._selectFollowsFocus=e,this}getFocusedIndex(){return this._focusedIndex}getFocusedRowId(){return this._focusedIndex<0||this._focusedIndex>=this._rowPool.length?null:this._rowPool[this._focusedIndex].getId()}handleKey(e){if(!this.isEnabled()||this.isReadOnly()||this._items.length===0||e.key===`Escape`)return!1;let t=e.ctrlKey||e.metaKey;return this.handleNavigationKey(e,t)?!0:e.key===`Enter`||e.key===` `?(e.preventDefault(),this.commitFocusedRow(t,e.shiftKey),!0):!t&&!e.altKey&&e.key.length===1?(this.handleTypeAhead(e.key),!0):!1}handleKeyDown(e){if(!this.isEnabled()||this.isReadOnly()||this._items.length===0)return;let t=e.ctrlKey||e.metaKey;if(e.key===`Escape`){this._typeAheadBuf=``;return}if(!this.handleNavigationKey(e,t)){if(e.key===`Enter`||e.key===` `){e.preventDefault(),this.commitFocusedRow(t,e.shiftKey);return}!t&&!e.altKey&&e.key.length===1&&this.handleTypeAhead(e.key)}}handleNavigationKey(e,t){if(!new Set([`ArrowDown`,`ArrowUp`,`Home`,`End`,`PageDown`,`PageUp`]).has(e.key))return!1;e.preventDefault();let n=this.getHeight()||g,r=Math.max(1,Math.floor(n/g)),i=this._focusedIndex<0?0:this._focusedIndex,a;return a=e.key===`ArrowDown`?Math.min(i+1,this._items.length-1):e.key===`ArrowUp`?Math.max(i-1,0):e.key===`PageDown`?Math.min(i+r,this._items.length-1):e.key===`PageUp`?Math.max(i-r,0):e.key===`Home`?0:this._items.length-1,this.moveFocus(a,t,e.shiftKey),!0}moveFocus(e,t,n){this._focusedIndex=e;let r=!t&&this._selectFollowsFocus;r&&this.reduceSelection(e,{ctrl:!1,shift:n}),this.refreshRowVisualState(),this.updateActiveDescendant(),this.scrollIndexIntoView(e),r&&this.notifyUserChange()}commitFocusedRow(e,t){this._focusedIndex<0||(this.reduceSelection(this._focusedIndex,{ctrl:e,shift:t}),this.refreshRowVisualState(),this.updateActiveDescendant(),this.notifyUserChange())}handleTypeAhead(e){let t=Date.now();t-this._typeAheadAt>v&&(this._typeAheadBuf=``),this._typeAheadBuf+=e.toLowerCase(),this._typeAheadAt=t;let n=this._typeAheadBuf,r=this._items.findIndex(e=>e.label.toLowerCase().startsWith(n));r<0||(this._focusedIndex=r,this.refreshRowVisualState(),this.updateActiveDescendant(),this.scrollIndexIntoView(r))}scrollIndexIntoView(t){if(t<0||t>=this._items.length)return;let n=this._innerPanel.getElement();if(!n)return;let r=e.source.getScrollMetrics(n),i=t*g,a=i+g,o=r.scrollTop,s=o+r.clientHeight;i<o?e.sink.apply(n,{scrollTop:i}):a>s&&e.sink.apply(n,{scrollTop:a-r.clientHeight})}},List=class extends AbstractSelectableList{constructor(e){super(e),this._options.selectedIndex!==void 0&&this.setSelectedIndex(this._options.selectedIndex,!1),this._options.value!==void 0&&this.setValue(this._options.value),this._options.selectedItem!==void 0&&this.setValue(this._options.selectedItem)}applyOptions(e){return super.applyOptions(e),e.selectedIndex!==void 0&&(this._options.selectedIndex=e.selectedIndex),e.value!==void 0&&(this._options.value=e.value),e.selectedItem!==void 0&&(this._options.selectedItem=e.selectedItem),this}setItemsArray(e){return super.setItemsArray(e)}setValue(e){let t=this._items.findIndex(t=>t.key===e);return this.setSelectedIndex(t,!1),this}getValue(){let e=this.getSelectedIndex();return e<0||e>=this._items.length?``:this._items[e].key}reduceSelection(e,t){this._selectedSet.clear(),this._selectedSet.add(e),this._anchorIndex=e,this._focusedIndex=e}notifyUserChange(){this.fireChange()}},b=i(List);export{ListItemRenderer as i,AbstractSelectableList as n,h as r,b as t};
|
|
2
|
-
//# sourceMappingURL=List-
|
|
1
|
+
import{t as e}from"./DOM-67StIm5G.js";import{n as t}from"./Position-Ck_KD4cR.js";import{S as n,b as r,h as i,l as a,n as o,t as s}from"./Component-fRQvgaEY.js";import{t as c}from"./ListenerBag-WPdKuuds.js";import{t as l}from"./Panel-Rd9zkNXx.js";import{t as u}from"./Tooltip-Dro4DOZs.js";import{t as d}from"./Fit-CL1m1nIZ.js";import{t as f}from"./Text-KB5LksJl.js";import{t as p}from"./AbstractInput-BxfrmD2W.js";import{t as m}from"./VBox-P3WFGkPc.js";var ListItemRenderer=class extends s{constructor(){super()}getContentWidth(){return 0}},LabelListItemRenderer=class extends ListItemRenderer{_label;_measured=!1;constructor(){super(),this.clearInsets(),this._label=new f,this._label.clearInsets(),this._label.setAutoMeasure(!1)}getLabel(){return this._label}update(e){this._label.setText(e.item.label),this._measured=!1}getContentWidth(){return this._measured||=(this._label.measure(),!0),this._label.getPreferredSize()?.width??0}layoutChildren(e,t){let n=this.getContentBounds()??{x:0,y:0,width:e,height:t};this._label.setAutoCommitStyle(!1),this._label.setX(n.x),this._label.setY(n.y),this._label.setWidth(n.width),this._label.setHeight(n.height),this._label.setLineHeight(n.height),this._label.setAutoCommitStyle(!0)}init(t){super.init(t);let n=t||this.getElement();return n&&e.sink.appendChild(n,this._label.getElement(!0)),this}},h=i(LabelListItemRenderer),g=22,_=8,v=700,y={tag:`div`,backgroundColor:`var(--ts-ui-list-bg, rgb(255, 255, 255))`,foregroundColor:`var(--ts-ui-text-color, black)`,border:`1px solid var(--ts-ui-list-border, rgb(200, 200, 200))`,borderRadius:`var(--ts-ui-border-radius, 4px)`,preferredSize:{width:200,height:200},maxSize:{width:2**53-1,height:2**53-1}};new r({scope:`selector`,name:`.List, .MultiSelectList`,styles:{userSelect:`none`,outline:`none`}}),new r({scope:`selector`,name:`.List:focus::after, .MultiSelectList:focus::after`,styles:{content:`''`,position:`absolute`,inset:`0`,border:`2px solid var(--ts-ui-indicator-focus, rgb(30, 100, 200))`,borderRadius:`inherit`,boxSizing:`border-box`,pointerEvents:`none`,zIndex:`1`}}),new r({scope:`class`,name:`SelectableListRow`,styles:{lineHeight:`22px`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,cursor:`pointer`}}),new r({scope:`selector`,name:`.SelectableListRow:hover`,styles:{backgroundColor:`var(--ts-ui-list-row-hover-bg, rgba(30, 100, 200, 0.08))`}}),new r({scope:`selector`,name:`.SelectableListRow.selected`,styles:{backgroundColor:`var(--ts-ui-list-row-selected-bg, rgba(30, 100, 200, 0.18))`,color:`var(--ts-ui-list-row-selected-color, inherit)`}}),new r({scope:`selector`,name:`.SelectableListRow.focused`,styles:{outline:`var(--ts-ui-indicator-selection, 1px dashed rgb(120, 170, 240))`}});var SelectableListRow=class extends s{_selected=!1;_focused=!1;_index;_handlers;_tooltipAttached=!1;_renderer;constructor(e,r,i){super({tag:`div`}),this._handlers=e,this._index=r,this._renderer=i(),this._renderer.setPointerEvents(`none`),this.getAria().setRole(`option`),this.setPreferredSize({width:0,height:g}),this.setPadding(new t(0,_,0,_)),this.setBorder({borderBottom:`1px solid var(--ts-ui-list-row-separator, transparent)`}),this.setCursor(`pointer`),n.addListener(this,`pointerdown`,this.onPointerDown),n.addListener(this,`click`,this.onClick),n.addListener(this,`contextmenu`,this.onContextMenu),n.addListener(this,`dblclick`,this.onDblClick)}updateItem(e,t){return this._renderer.update({item:e,index:t}),this.applyTooltip(e.tooltip),this}applyTooltip(e){e?(u.attach(this,e),this._tooltipAttached=!0):this._tooltipAttached&&=(u.detach(this),!1)}getNaturalWidth(){return this._renderer.getContentWidth()+_*2}setRenderer(t){let n=this.getElement();if(n){let t=this._renderer.getElement();t&&e.source.getParentNode(t)===n&&e.sink.removeChild(n,t)}return this._renderer=t,this._renderer.setPointerEvents(`none`),n&&e.sink.appendChild(n,this._renderer.getElement(!0)),this}setIndex(e){return this._index=e,this}getIndex(){return this._index}setSelected(e){return this._selected=e,this.getAria().setSelected(e),this.applyRowClass(),this}isSelected(){return this._selected}setFocused(e){return this._focused=e,this.applyRowClass(),this}isFocused(){return this._focused}render(){let e=super.render();return this.applyRowClass(),e}init(t){super.init(t);let n=t||this.getElement();return n&&e.sink.appendChild(n,this._renderer.getElement(!0)),this}doLayout(){super.doLayout();let e=this.getContentBounds();return e?(this._renderer.setAutoCommitStyle(!1),this._renderer.setX(e.x),this._renderer.setY(e.y),this._renderer.setWidth(e.width),this._renderer.setHeight(e.height),this._renderer.setAutoCommitStyle(!0),this._renderer.layoutChildren(e.width,e.height),this):this}applyRowClass(){let e=[o,`SelectableListRow`];this._selected&&e.push(`selected`),this._focused&&e.push(`focused`),this.setElementAttribute(`class`,e.join(` `))}onPointerDown(e){e.preventDefault()}onClick(e){this._handlers.onClick(this._index,e)}onContextMenu(e){this._handlers.onContextMenu(this._index,e)}onDblClick(e){this._handlers.onDblClick(this._index,e)}},ListRowColumn=class extends m{computeTotalMinSize(){let e=super.computeTotalMinSize(),t=this.getContainer();if(!t||!this.isOverflowingX())return e;let n=0;for(let e of t.getLaidOutComponents())e instanceof SelectableListRow&&(n=Math.max(n,e.getNaturalWidth()));return{width:Math.max(e.width,n),height:e.height}}},AbstractSelectableList=class extends p{_items=[];_rowPool=[];_selectedSet=new Set;_anchorIndex=null;_focusedIndex=-1;_typeAheadBuf=``;_typeAheadAt=0;_focusOnRowClick=!0;_selectFollowsFocus=!0;_horizontalScrolling=!1;_innerPanel;_emptyPlaceholder=null;_placeholderAttached=!1;_storeRefresh=null;_rendererFactory=()=>new h;_rowListeners=new c;constructor(e,r){super(e,{...y,layoutManager:new d,...r??{}}),this.getAria().setRole(`listbox`),this.getAria().setTabIndex(0),this._innerPanel=new l({layoutManager:new ListRowColumn({spacing:0,stretching:!0}),autoScroll:`y`,insets:new t(0,0,0,0)}),this.addComponent(this._innerPanel),this._options.minSize===void 0&&this.setMinSize({width:100,height:100}),n.addListener(this,`keydown`,this.handleKeyDown),this._options.rendererFactory!==void 0&&this.setRendererFactory(this._options.rendererFactory),this._options.horizontalScrolling!==void 0&&this.setHorizontalScrolling(this._options.horizontalScrolling),this._options.store!==void 0&&this._options.displayField!==void 0&&this.setStore(this._options.store,this._options.displayField,this._options.valueField,this._options.glyphField,this._options.tooltipField),this._options.items!==void 0&&this.setItems(this._options.items),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly),(this._options.emptyText!==void 0||this._options.emptyComponent!==void 0)&&this.syncEmptyPlaceholder()}applyEnabled(e){this.getAria().setDisabled(!e),this.getAria().setTabIndex(e?0:-1),this.setCursor(e?`default`:`not-allowed`),e||(this._focusedIndex=-1,this.refreshRowVisualState(),this.updateActiveDescendant())}applyReadOnly(e){this.getAria().setReadOnly(e)}applyOptions(e){return super.applyOptions(e),e.items!==void 0&&(this._options.items=e.items),e.store!==void 0&&(this._options.store=e.store),e.displayField!==void 0&&(this._options.displayField=e.displayField),e.valueField!==void 0&&(this._options.valueField=e.valueField),e.glyphField!==void 0&&(this._options.glyphField=e.glyphField),e.tooltipField!==void 0&&(this._options.tooltipField=e.tooltipField),e.rendererFactory!==void 0&&(this._options.rendererFactory=e.rendererFactory),e.emptyText!==void 0&&(this._options.emptyText=e.emptyText),e.emptyComponent!==void 0&&(this._options.emptyComponent=e.emptyComponent),e.horizontalScrolling!==void 0&&(this._options.horizontalScrolling=e.horizontalScrolling),this}setHorizontalScrolling(e){return this._horizontalScrolling===e?this:(this._horizontalScrolling=e,this._innerPanel.setAutoScroll(e?`auto`:`y`),this.scheduleLayout(),this)}isHorizontalScrolling(){return this._horizontalScrolling}setEmptyText(e){return this._options.emptyText=e??void 0,this.resetEmptyPlaceholder(),this.syncEmptyPlaceholder(),this}getEmptyText(){return this._options.emptyText??null}setEmptyComponent(e){return this._options.emptyComponent=e??void 0,this.resetEmptyPlaceholder(),this.syncEmptyPlaceholder(),this}getEmptyComponent(){return this._options.emptyComponent??null}syncEmptyPlaceholder(){(this._options.emptyComponent!==void 0||this._options.emptyText!==void 0)&&this._items.length===0?(this._emptyPlaceholder||=this.buildEmptyPlaceholder(),this._placeholderAttached||=(this._innerPanel.addComponent(this._emptyPlaceholder,{weight:1}),!0)):this._placeholderAttached&&this._emptyPlaceholder&&(this._innerPanel.removeComponent(this._emptyPlaceholder),this._placeholderAttached=!1)}buildEmptyPlaceholder(){let e=this._options.emptyComponent;if(e)return e();let t=new f(this._options.emptyText??``,{textAlign:`center`});return t.setForegroundColor(`var(--ts-ui-list-row-disabled-color, rgb(170, 170, 170))`),t}resetEmptyPlaceholder(){this._placeholderAttached&&this._emptyPlaceholder&&(this._innerPanel.removeComponent(this._emptyPlaceholder),this._placeholderAttached=!1),this._emptyPlaceholder=null}getBaseline(){return null}getItems(){return this._items.slice()}setItems(e){a.isArray(e)||(e=[e]);let t=e,n=[];for(let e of t)n.push(typeof e==`string`?{key:e,label:e}:{key:e.key,label:e.label,glyph:e.glyph,tooltip:e.tooltip});return this.setItemsArray(n)}setItemsArray(e){return this._items=e.slice(),this._selectedSet.clear(),this._anchorIndex=null,this._focusedIndex=-1,this.pauseLayout(),this.syncRows(),this.resumeLayout(),this.updateActiveDescendant(),this}addItem(e){return this._items.push(typeof e==`string`?{key:e,label:e}:{key:e.key,label:e.label,glyph:e.glyph,tooltip:e.tooltip}),this.pauseLayout(),this.syncRows(),this.resumeLayout(),this}setStore(e,t,n,r,i){let a=this._options.store;this._storeRefresh&&a&&[`load`,`add`,`remove`,`datachange`,`sync`].forEach(e=>a.off(e,this._storeRefresh)),this._options.store=e,this._options.displayField=t,this._options.valueField=n,this._options.glyphField=r,this._options.tooltipField=i;let refresh=()=>this.refreshFromStore();return this._storeRefresh=refresh,e.on(`load`,refresh),e.on(`add`,refresh),e.on(`remove`,refresh),e.on(`datachange`,refresh),e.on(`sync`,refresh),this.refreshFromStore(),this}getStore(){return this._options.store??null}setRendererFactory(e){this._rendererFactory=e;for(let t of this._rowPool)t.setRenderer(e());return this.pauseLayout(),this.syncRows(),this.resumeLayout(),this}getRendererFactory(){return this._rendererFactory}getSelectedRecord(){let e=this._options.store;if(!e)return;let t=this.getSelectedIndex();if(!(t<0))return e.getRecords()[t]}getSelectedIndex(){return this._anchorIndex!==null&&this._selectedSet.has(this._anchorIndex)?this._anchorIndex:this._selectedSet.size===0?-1:Math.min(...this._selectedSet)}setSelectedIndex(e,t=!0){return this._selectedSet.clear(),e>=0&&e<this._items.length?(this._selectedSet.add(e),this._anchorIndex=e,this._focusedIndex=e):(this._anchorIndex=null,this._focusedIndex=-1),this.refreshRowVisualState(),this.updateActiveDescendant(),t&&this.fireChange(),this}on(e,t){return e===`action`?(n.addListener(this,`change`,t),this):e===`contextmenu`||e===`dblclick`?(this._rowListeners.add(e,t),this):super.on(e,t)}off(e,t){return e===`action`?(n.removeListener(this,`change`,t),this):e===`contextmenu`||e===`dblclick`?(this._rowListeners.remove(e,t),this):super.off(e,t)}refreshFromStore(){let e=this._options.store,t=this._options.displayField,n=this._options.valueField,r=this._options.glyphField,i=this._options.tooltipField;if(!e||!t)return;let a=this._anchorIndex!==null&&this._items[this._anchorIndex]?this._items[this._anchorIndex].key:null;this._items=[],this._selectedSet.clear(),this._anchorIndex=null;let o=e.getRecords(),s=-1;for(let e=0;e<o.length;e++){let c=o[e],l=String(c.get(t)),u=String(n?c.get(n):c.getId()),d=r?String(c.get(r)):void 0,f=i?String(c.get(i)):void 0;this._items.push({key:u,label:l,glyph:d,tooltip:f}),a!==null&&u===a&&(s=e)}s>=0?(this._selectedSet.add(s),this._anchorIndex=s,this._focusedIndex=s):this._focusedIndex=this._items.length>0?0:-1,this.pauseLayout(),this.syncRows(),this.resumeLayout(),this.updateActiveDescendant()}syncRows(){let e=this._items.length,t=this._rowPool.length,n=Math.min(e,t);for(let e=0;e<n;e++){let t=this._rowPool[e];t.updateItem(this._items[e],e),t.setIndex(e),t.setSelected(this._selectedSet.has(e)),t.setFocused(e===this._focusedIndex)}if(e>t)for(let n=t;n<e;n++){let e=new SelectableListRow({onClick:(e,t)=>this.handleRowClick(e,t),onContextMenu:(e,t)=>this.handleRowContextMenu(e,t),onDblClick:(e,t)=>this.handleRowDblClick(e,t)},n,this._rendererFactory);e.updateItem(this._items[n],n),e.setSelected(this._selectedSet.has(n)),e.setFocused(n===this._focusedIndex),this._innerPanel.addComponent(e),this._rowPool.push(e)}else if(e<t){for(let n=e;n<t;n++)u.detach(this._rowPool[n]),this._innerPanel.removeComponent(this._rowPool[n]);this._rowPool.splice(e)}this.syncEmptyPlaceholder()}refreshRowVisualState(){for(let e=0;e<this._rowPool.length;e++){let t=this._rowPool[e];t.setSelected(this._selectedSet.has(e)),t.setFocused(e===this._focusedIndex)}}updateActiveDescendant(){if(this._focusedIndex<0||this._focusedIndex>=this._rowPool.length){this.getAria().setActiveDescendant(``);return}this.getAria().setActiveDescendant(this._rowPool[this._focusedIndex].getId())}fireChange(){this.getElement()&&n.fireEvent(this,`change`),this.notifyChange(this.getValue())}handleRowClick(e,t){!this.isEnabled()||this.isReadOnly()||e<0||e>=this._items.length||(this.reduceSelection(e,{ctrl:t.ctrlKey||t.metaKey,shift:t.shiftKey}),this.refreshRowVisualState(),this.updateActiveDescendant(),this._focusOnRowClick&&this.focus(),this.notifyUserChange())}handleRowContextMenu(e,t){e<0||e>=this._items.length||(t.preventDefault(),this._rowListeners.fire(`contextmenu`,e,t))}handleRowDblClick(e,t){e<0||e>=this._items.length||this._rowListeners.fire(`dblclick`,e,t)}setFocusOnRowClick(e){return this._focusOnRowClick=e,this}setSelectFollowsFocus(e){return this._selectFollowsFocus=e,this}getFocusedIndex(){return this._focusedIndex}getFocusedRowId(){return this._focusedIndex<0||this._focusedIndex>=this._rowPool.length?null:this._rowPool[this._focusedIndex].getId()}handleKey(e){if(!this.isEnabled()||this.isReadOnly()||this._items.length===0||e.key===`Escape`)return!1;let t=e.ctrlKey||e.metaKey;return this.handleNavigationKey(e,t)?!0:e.key===`Enter`||e.key===` `?(e.preventDefault(),this.commitFocusedRow(t,e.shiftKey),!0):!t&&!e.altKey&&e.key.length===1?(this.handleTypeAhead(e.key),!0):!1}handleKeyDown(e){if(!this.isEnabled()||this.isReadOnly()||this._items.length===0)return;let t=e.ctrlKey||e.metaKey;if(e.key===`Escape`){this._typeAheadBuf=``;return}if(!this.handleNavigationKey(e,t)){if(e.key===`Enter`||e.key===` `){e.preventDefault(),this.commitFocusedRow(t,e.shiftKey);return}!t&&!e.altKey&&e.key.length===1&&this.handleTypeAhead(e.key)}}handleNavigationKey(e,t){if(!new Set([`ArrowDown`,`ArrowUp`,`Home`,`End`,`PageDown`,`PageUp`]).has(e.key))return!1;e.preventDefault();let n=this.getHeight()||g,r=Math.max(1,Math.floor(n/g)),i=this._focusedIndex<0?0:this._focusedIndex,a;return a=e.key===`ArrowDown`?Math.min(i+1,this._items.length-1):e.key===`ArrowUp`?Math.max(i-1,0):e.key===`PageDown`?Math.min(i+r,this._items.length-1):e.key===`PageUp`?Math.max(i-r,0):e.key===`Home`?0:this._items.length-1,this.moveFocus(a,t,e.shiftKey),!0}moveFocus(e,t,n){this._focusedIndex=e;let r=!t&&this._selectFollowsFocus;r&&this.reduceSelection(e,{ctrl:!1,shift:n}),this.refreshRowVisualState(),this.updateActiveDescendant(),this.scrollIndexIntoView(e),r&&this.notifyUserChange()}commitFocusedRow(e,t){this._focusedIndex<0||(this.reduceSelection(this._focusedIndex,{ctrl:e,shift:t}),this.refreshRowVisualState(),this.updateActiveDescendant(),this.notifyUserChange())}handleTypeAhead(e){let t=Date.now();t-this._typeAheadAt>v&&(this._typeAheadBuf=``),this._typeAheadBuf+=e.toLowerCase(),this._typeAheadAt=t;let n=this._typeAheadBuf,r=this._items.findIndex(e=>e.label.toLowerCase().startsWith(n));r<0||(this._focusedIndex=r,this.refreshRowVisualState(),this.updateActiveDescendant(),this.scrollIndexIntoView(r))}scrollIndexIntoView(t){if(t<0||t>=this._items.length)return;let n=this._innerPanel.getElement();if(!n)return;let r=e.source.getScrollMetrics(n),i=t*g,a=i+g,o=r.scrollTop,s=o+r.clientHeight;i<o?e.sink.apply(n,{scrollTop:i}):a>s&&e.sink.apply(n,{scrollTop:a-r.clientHeight})}},List=class extends AbstractSelectableList{constructor(e){super(e),this._options.selectedIndex!==void 0&&this.setSelectedIndex(this._options.selectedIndex,!1),this._options.value!==void 0&&this.setValue(this._options.value),this._options.selectedItem!==void 0&&this.setValue(this._options.selectedItem)}applyOptions(e){return super.applyOptions(e),e.selectedIndex!==void 0&&(this._options.selectedIndex=e.selectedIndex),e.value!==void 0&&(this._options.value=e.value),e.selectedItem!==void 0&&(this._options.selectedItem=e.selectedItem),this}setItemsArray(e){return super.setItemsArray(e)}setValue(e){let t=this._items.findIndex(t=>t.key===e);return this.setSelectedIndex(t,!1),this}getValue(){let e=this.getSelectedIndex();return e<0||e>=this._items.length?``:this._items[e].key}reduceSelection(e,t){this._selectedSet.clear(),this._selectedSet.add(e),this._anchorIndex=e,this._focusedIndex=e}notifyUserChange(){this.fireChange()}},b=i(List);export{ListItemRenderer as i,AbstractSelectableList as n,h as r,b as t};
|
|
2
|
+
//# sourceMappingURL=List-CG4NvwuV.js.map
|