@jimka/typescript-ui 0.3.0 → 0.4.0
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-C3O4kv7_.js → AbstractBooleanInput-DSwKBAic.js} +2 -2
- package/dist/lib/{AbstractBooleanInput-C3O4kv7_.js.map → AbstractBooleanInput-DSwKBAic.js.map} +1 -1
- package/dist/lib/{AbstractInput-DFWniHqq.js → AbstractInput-BmWGJTs1.js} +2 -2
- package/dist/lib/{AbstractInput-DFWniHqq.js.map → AbstractInput-BmWGJTs1.js.map} +1 -1
- package/dist/lib/{AnchorConstraints-CSUcj8Wx.js → AnchorConstraints-CVrMP9rz.js} +2 -2
- package/dist/lib/{AnchorConstraints-CSUcj8Wx.js.map → AnchorConstraints-CVrMP9rz.js.map} +1 -1
- package/dist/lib/{AnimatedDropdown-e9urCXK1.js → AnimatedDropdown-DKas40B-.js} +2 -2
- package/dist/lib/{AnimatedDropdown-e9urCXK1.js.map → AnimatedDropdown-DKas40B-.js.map} +1 -1
- package/dist/lib/Border-Bz29z-_7.js +2 -0
- package/dist/lib/Border-Bz29z-_7.js.map +1 -0
- package/dist/lib/Button-bjpWruNc.js +2 -0
- package/dist/lib/{Button-B36rBMKC.js.map → Button-bjpWruNc.js.map} +1 -1
- package/dist/lib/{Card-P8iUH2-C.js → Card-BdfbvOD_.js} +2 -2
- package/dist/lib/{Card-P8iUH2-C.js.map → Card-BdfbvOD_.js.map} +1 -1
- package/dist/lib/ComboBox-CBw2VLLN.js +2 -0
- package/dist/lib/ComboBox-CBw2VLLN.js.map +1 -0
- package/dist/lib/Component-DHqrPwAw.js +2 -0
- package/dist/lib/Component-DHqrPwAw.js.map +1 -0
- package/dist/lib/Container-CAQpj4yb.js +2 -0
- package/dist/lib/{Container-xUbHk6l_.js.map → Container-CAQpj4yb.js.map} +1 -1
- package/dist/lib/{DOM-BeR95tE8.js → DOM-67StIm5G.js} +2 -2
- package/dist/lib/DOM-67StIm5G.js.map +1 -0
- package/dist/lib/DragChain-CYGuT7OA.js +2 -0
- package/dist/lib/DragChain-CYGuT7OA.js.map +1 -0
- package/dist/lib/DragManager-CHWCe3-8.js +2 -0
- package/dist/lib/DragManager-CHWCe3-8.js.map +1 -0
- package/dist/lib/{FieldDecorator-BaTGfKiW.js → FieldDecorator-CgAGcqCk.js} +2 -2
- package/dist/lib/{FieldDecorator-BaTGfKiW.js.map → FieldDecorator-CgAGcqCk.js.map} +1 -1
- package/dist/lib/{Fit-E-EIZv1k.js → Fit-DIYt2aQB.js} +2 -2
- package/dist/lib/{Fit-E-EIZv1k.js.map → Fit-DIYt2aQB.js.map} +1 -1
- package/dist/lib/Glyph-CeAIWyPB.js +2 -0
- package/dist/lib/Glyph-CeAIWyPB.js.map +1 -0
- package/dist/lib/{Grid-BXS2T8MT.js → Grid-ViA0joow.js} +2 -2
- package/dist/lib/{Grid-BXS2T8MT.js.map → Grid-ViA0joow.js.map} +1 -1
- package/dist/lib/GridConstraints-B1rxCw9B.js +2 -0
- package/dist/lib/GridConstraints-B1rxCw9B.js.map +1 -0
- package/dist/lib/Header-mKaqgfat.js +2 -0
- package/dist/lib/Header-mKaqgfat.js.map +1 -0
- package/dist/lib/IconText-BqwXA82-.js +2 -0
- package/dist/lib/IconText-BqwXA82-.js.map +1 -0
- package/dist/lib/{LayoutSerialization-D1OHmxSB.js → LayoutSerialization-D82UtnDD.js} +2 -2
- package/dist/lib/{LayoutSerialization-D1OHmxSB.js.map → LayoutSerialization-D82UtnDD.js.map} +1 -1
- package/dist/lib/LayoutSizes-DG9aW9k6.js +2 -0
- package/dist/lib/LayoutSizes-DG9aW9k6.js.map +1 -0
- package/dist/lib/List-CUntS8ux.js +2 -0
- package/dist/lib/List-CUntS8ux.js.map +1 -0
- package/dist/lib/MemoryStore-DT6iWWco.js.map +1 -1
- package/dist/lib/Menu-B_-SQj72.js +2 -0
- package/dist/lib/Menu-B_-SQj72.js.map +1 -0
- package/dist/lib/{MenuButton-Bjm1OyB-.js → MenuButton-C79l8Ysf.js} +2 -2
- package/dist/lib/{MenuButton-Bjm1OyB-.js.map → MenuButton-C79l8Ysf.js.map} +1 -1
- package/dist/lib/{Panel-D9lTLGqP.js → Panel-D2X33qR6.js} +2 -2
- package/dist/lib/{Panel-D9lTLGqP.js.map → Panel-D2X33qR6.js.map} +1 -1
- package/dist/lib/Position-Ck_KD4cR.js +2 -0
- package/dist/lib/Position-Ck_KD4cR.js.map +1 -0
- package/dist/lib/{ProgressSpinner-glv-29eK.js → ProgressSpinner-DCyq02pd.js} +2 -2
- package/dist/lib/{ProgressSpinner-glv-29eK.js.map → ProgressSpinner-DCyq02pd.js.map} +1 -1
- package/dist/lib/{RadioButton-R4S3c9WD.js → RadioButton-BJIAQkII.js} +2 -2
- package/dist/lib/{RadioButton-R4S3c9WD.js.map → RadioButton-BJIAQkII.js.map} +1 -1
- package/dist/lib/{RovingTabIndex-Dgt01LOE.js → RovingTabIndex-DFJyoveq.js} +2 -2
- package/dist/lib/{RovingTabIndex-Dgt01LOE.js.map → RovingTabIndex-DFJyoveq.js.map} +1 -1
- package/dist/lib/Scrollbar-CSFK-Y57.js +2 -0
- package/dist/lib/Scrollbar-CSFK-Y57.js.map +1 -0
- package/dist/lib/Slider-C-kQQYCj.js +2 -0
- package/dist/lib/Slider-C-kQQYCj.js.map +1 -0
- package/dist/lib/{Spacer-B57i2-_G.js → Spacer-D159iJy9.js} +2 -2
- package/dist/lib/{Spacer-B57i2-_G.js.map → Spacer-D159iJy9.js.map} +1 -1
- package/dist/lib/TabButton-CHkXBgCj.js +2 -0
- package/dist/lib/TabButton-CHkXBgCj.js.map +1 -0
- package/dist/lib/{Text-Bni4icFY.js → Text-D5pg7taZ.js} +2 -2
- package/dist/lib/{Text-Bni4icFY.js.map → Text-D5pg7taZ.js.map} +1 -1
- package/dist/lib/Tooltip-DzK6LxUt.js +3 -0
- package/dist/lib/{Tooltip-BUy6uFKN.js.map → Tooltip-DzK6LxUt.js.map} +1 -1
- package/dist/lib/VBox-BNegDPs_.js +2 -0
- package/dist/lib/VBox-BNegDPs_.js.map +1 -0
- package/dist/lib/VirtualScroller-zQr-vKrO.js +2 -0
- package/dist/lib/VirtualScroller-zQr-vKrO.js.map +1 -0
- package/dist/lib/component/button.es.js +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/diagram.es.js.map +1 -1
- package/dist/lib/component/display.es.js +1 -1
- package/dist/lib/component/display.es.js.map +1 -1
- package/dist/lib/component/editor.es.js +2 -2
- package/dist/lib/component/editor.es.js.map +1 -1
- package/dist/lib/component/input.es.js +1 -1
- package/dist/lib/component/input.es.js.map +1 -1
- package/dist/lib/component/list.es.js +1 -1
- package/dist/lib/component/list.es.js.map +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/component/tree.es.js.map +1 -1
- package/dist/lib/core.es.js +1 -1
- package/dist/lib/core.es.js.map +1 -1
- package/dist/lib/layout.es.js +1 -1
- package/dist/lib/layout.es.js.map +1 -1
- package/dist/lib/overlay.es.js +1 -1
- package/dist/lib/overlay.es.js.map +1 -1
- package/dist/lib/primitive.es.js +1 -1
- package/dist/lib/router.es.js +1 -1
- package/dist/lib/selectionsEqual-4r5R7pTK.js +2 -0
- package/dist/lib/selectionsEqual-4r5R7pTK.js.map +1 -0
- package/dist/lib/types/component/button/TabCloseButton.d.ts +1 -1
- package/dist/lib/types/component/container/CollapseButton.d.ts +1 -1
- package/dist/lib/types/component/container/DialogBackdrop.d.ts +1 -1
- package/dist/lib/types/component/container/MenuItem.d.ts +4 -0
- package/dist/lib/types/component/container/MenuSeparator.d.ts +1 -1
- package/dist/lib/types/component/container/Scrollbar.d.ts +1 -0
- package/dist/lib/types/component/container/SplitGutter.d.ts +2 -2
- package/dist/lib/types/component/container/StatusBar.d.ts +1 -1
- package/dist/lib/types/component/container/VirtualScroller.d.ts +1 -0
- package/dist/lib/types/component/container/WindowBorder.d.ts +1 -1
- package/dist/lib/types/component/diagram/DiagramNode.d.ts +1 -1
- package/dist/lib/types/component/display/Canvas.d.ts +8 -2
- package/dist/lib/types/component/display/Glyph.d.ts +2 -1
- package/dist/lib/types/component/display/Header.d.ts +1 -1
- package/dist/lib/types/component/display/IconLabel.d.ts +1 -1
- package/dist/lib/types/component/display/IconText.d.ts +1 -1
- package/dist/lib/types/component/display/Image.d.ts +1 -1
- package/dist/lib/types/component/display/Video.d.ts +1 -1
- package/dist/lib/types/component/display/WebGLCanvas.d.ts +8 -2
- package/dist/lib/types/component/editor/CodeEditor.d.ts +1 -1
- package/dist/lib/types/component/input/AbstractPickerField.d.ts +1 -1
- package/dist/lib/types/component/input/AutoCompleteDropdown.d.ts +1 -1
- package/dist/lib/types/component/input/Link.d.ts +1 -1
- package/dist/lib/types/component/input/NumberSpinner.d.ts +1 -1
- package/dist/lib/types/component/input/PasswordField.d.ts +1 -1
- package/dist/lib/types/component/input/SpinButton.d.ts +1 -1
- package/dist/lib/types/component/input/TextArea.d.ts +1 -1
- package/dist/lib/types/component/input/TextField.d.ts +3 -1
- package/dist/lib/types/component/input/UsernameField.d.ts +1 -1
- package/dist/lib/types/component/list/AbstractMarkerList.d.ts +9 -1
- package/dist/lib/types/component/list/BulletedList.d.ts +1 -0
- package/dist/lib/types/component/list/ListItem.d.ts +10 -4
- package/dist/lib/types/component/list/NumberedList.d.ts +1 -0
- package/dist/lib/types/component/menubar/MenuBarButton.d.ts +1 -1
- package/dist/lib/types/component/menubar/ToolBar.d.ts +1 -1
- package/dist/lib/types/component/menubar/ToolBarSeparator.d.ts +1 -1
- package/dist/lib/types/component/shared/VirtualRowView.d.ts +13 -1
- package/dist/lib/types/component/table/Body.d.ts +15 -2
- package/dist/lib/types/component/table/CellGeometry.d.ts +6 -0
- package/dist/lib/types/component/table/Column.d.ts +4 -0
- package/dist/lib/types/component/table/ColumnConfig.d.ts +3 -0
- package/dist/lib/types/component/table/Header.d.ts +24 -2
- package/dist/lib/types/component/table/Row.d.ts +13 -2
- package/dist/lib/types/component/table/Table.d.ts +25 -4
- package/dist/lib/types/component/table/TableExporter.d.ts +1 -1
- package/dist/lib/types/component/table/TablePanel.d.ts +2 -1
- package/dist/lib/types/component/table/cell/Cell.d.ts +1 -1
- package/dist/lib/types/component/table/cell/Header.d.ts +3 -0
- package/dist/lib/types/component/table/index.d.ts +1 -1
- package/dist/lib/types/component/tree/Tree.d.ts +1 -0
- package/dist/lib/types/core/Aria.d.ts +1 -1
- package/dist/lib/types/core/Body.d.ts +8 -2
- package/dist/lib/types/core/Component.d.ts +6 -0
- package/dist/lib/types/core/DOM.d.ts +4 -0
- package/dist/lib/types/core/DragChain.d.ts +3 -0
- package/dist/lib/types/core/Favicon.d.ts +7 -0
- package/dist/lib/types/core/FirstLayoutGate.d.ts +5 -0
- package/dist/lib/types/core/Theme.d.ts +1 -0
- package/dist/lib/types/core/Util.d.ts +1 -0
- package/dist/lib/types/core/index.d.ts +2 -0
- package/dist/lib/types/layout/Accordion.d.ts +0 -1
- package/dist/lib/types/layout/FlowLayout.d.ts +4 -0
- package/dist/lib/types/layout/HFlow.d.ts +3 -0
- package/dist/lib/types/layout/VFlow.d.ts +1 -0
- package/dist/lib/types/overlay/AbstractWindow.d.ts +1 -1
- package/dist/lib/types/overlay/Dock.d.ts +1 -0
- package/dist/lib/types/overlay/DropZoneOverlay.d.ts +1 -0
- package/dist/lib/types/overlay/Popover.d.ts +1 -1
- package/dist/lib/validation.es.js +1 -1
- package/llms.txt +1 -0
- package/package.json +2 -2
- package/dist/lib/Border-Dq6dXkmS.js +0 -2
- package/dist/lib/Border-Dq6dXkmS.js.map +0 -1
- package/dist/lib/Button-B36rBMKC.js +0 -2
- package/dist/lib/ComboBox-BjAhXXkY.js +0 -2
- package/dist/lib/ComboBox-BjAhXXkY.js.map +0 -1
- package/dist/lib/Component-CHTzJxEf.js +0 -2
- package/dist/lib/Component-CHTzJxEf.js.map +0 -1
- package/dist/lib/Container-xUbHk6l_.js +0 -2
- package/dist/lib/DOM-BeR95tE8.js.map +0 -1
- package/dist/lib/DragManager-T5Oljd0F.js +0 -2
- package/dist/lib/DragManager-T5Oljd0F.js.map +0 -1
- package/dist/lib/Glyph-CnNslL95.js +0 -2
- package/dist/lib/Glyph-CnNslL95.js.map +0 -1
- package/dist/lib/GridConstraints-D_kbd-h2.js +0 -2
- package/dist/lib/GridConstraints-D_kbd-h2.js.map +0 -1
- package/dist/lib/HBox-Dm3xgsDE.js +0 -2
- package/dist/lib/HBox-Dm3xgsDE.js.map +0 -1
- package/dist/lib/Header-CqFc2OUx.js +0 -2
- package/dist/lib/Header-CqFc2OUx.js.map +0 -1
- package/dist/lib/IconText-CTM2r0Tv.js +0 -2
- package/dist/lib/IconText-CTM2r0Tv.js.map +0 -1
- package/dist/lib/LayoutSizes-CvMmMgHJ.js +0 -2
- package/dist/lib/LayoutSizes-CvMmMgHJ.js.map +0 -1
- package/dist/lib/List-DHeOPAK2.js +0 -2
- package/dist/lib/List-DHeOPAK2.js.map +0 -1
- package/dist/lib/Menu-B6ippw-p.js +0 -2
- package/dist/lib/Menu-B6ippw-p.js.map +0 -1
- package/dist/lib/Position-DRSlWn4Z.js +0 -2
- package/dist/lib/Position-DRSlWn4Z.js.map +0 -1
- package/dist/lib/Scrollbar-CiVV3axj.js +0 -2
- package/dist/lib/Scrollbar-CiVV3axj.js.map +0 -1
- package/dist/lib/Slider-_JVvuQ8M.js +0 -2
- package/dist/lib/Slider-_JVvuQ8M.js.map +0 -1
- package/dist/lib/TabButton-DEypdlZf.js +0 -2
- package/dist/lib/TabButton-DEypdlZf.js.map +0 -1
- package/dist/lib/Tooltip-BUy6uFKN.js +0 -3
- package/dist/lib/VBox-Dr7Ge9M6.js +0 -2
- package/dist/lib/VBox-Dr7Ge9M6.js.map +0 -1
- package/dist/lib/VirtualScroller-BPy6KmSX.js +0 -2
- package/dist/lib/VirtualScroller-BPy6KmSX.js.map +0 -1
- package/dist/lib/selectionsEqual-2PJrcimg.js +0 -2
- package/dist/lib/selectionsEqual-2PJrcimg.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"../DOM-BeR95tE8.js";import{a as t,l as n,n as r}from"../Position-DRSlWn4Z.js";import{_ as i,m as a,t as o,x as s,y as c}from"../Component-CHTzJxEf.js";import{t as l}from"../ListenerBag-WPdKuuds.js";import{a as ee}from"../Scrollbar-CiVV3axj.js";import{t as u}from"../Glyph-CnNslL95.js";import{t as te}from"../AnimatedDropdown-e9urCXK1.js";import{t as d}from"../Fit-E-EIZv1k.js";import{t as f}from"../Text-Bni4icFY.js";import{t as p}from"../AbstractInput-DFWniHqq.js";import{t as m}from"../AbstractBooleanInput-C3O4kv7_.js";import{n as h}from"../VBox-Dr7Ge9M6.js";import{t as g}from"../HBox-Dm3xgsDE.js";import{t as _}from"../RadioButton-R4S3c9WD.js";import{t as v}from"../Button-B36rBMKC.js";import{n as y,t as b}from"../Slider-_JVvuQ8M.js";import{a as x,c as ne,d as S,f as C,g as w,h as T,i as E,l as D,m as O,n as k,o as A,p as j,r as M,s as N,t as P,u as F}from"../ComboBox-BjAhXXkY.js";import{calendar as I}from"../glyphs/solid/calendar.es.js";import{t as L}from"../List-DHeOPAK2.js";import{chevron_down as R}from"../glyphs/solid/chevron_down.es.js";import{chevron_up as z}from"../glyphs/solid/chevron_up.es.js";u.register(I);var DateField=class extends S{constructor(e){super(e),this._button.setGlyph(`calendar`),this._options.value!==void 0&&this.setValue(this._options.value)}applyOptions(e){return super.applyOptions(e),e.value!==void 0&&(this._options.value=e.value),e.minDate!==void 0&&(this._options.minDate=e.minDate),e.maxDate!==void 0&&(this._options.maxDate=e.maxDate),this}formatValue(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}parseRaw(e){let t=new Date(e+`T00:00:00`);return isNaN(t.getTime())?null:t}createDropdown(){return new A(e=>this.onDropdownSelected(e),{minDate:this._options.minDate??null,maxDate:this._options.maxDate??null})}onDropdownSelected(e){this.setValue(e),this.closeDropdown(),this._input.focus(),s.fireEvent(this._input,`input`)}getPreferredWidth(){return 160}},B=a(DateField);u.register(I);var DateTimeField=class extends S{constructor(e){super(e),this._button.setGlyph(`calendar`),this._options.showSeconds!==void 0&&(this._showSeconds=this._options.showSeconds),this._options.value!==void 0&&this.setValue(this._options.value)}applyOptions(e){return super.applyOptions(e),e.showSeconds!==void 0&&(this._options.showSeconds=e.showSeconds),e.value!==void 0&&(this._options.value=e.value),e.minDate!==void 0&&(this._options.minDate=e.minDate),e.maxDate!==void 0&&(this._options.maxDate=e.maxDate),this}formatValue(e){let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,`0`),r=String(e.getDate()).padStart(2,`0`),i=String(e.getHours()).padStart(2,`0`),a=String(e.getMinutes()).padStart(2,`0`);return this._showSeconds?`${t}-${n}-${r} ${i}:${a}:${String(e.getSeconds()).padStart(2,`0`)}`:`${t}-${n}-${r} ${i}:${a}`}parseRaw(e){let[t,n]=e.trim().split(/\s+/);if(!t||!n)return null;let r=new Date(`${t}T${n}`);return isNaN(r.getTime())?null:r}createDropdown(){return new M(e=>this.onDropdownSelected(e),{showSeconds:this._showSeconds,minDate:this._options.minDate??null,maxDate:this._options.maxDate??null})}onDropdownSelected(e){this.setValue(e),s.fireEvent(this._input,`input`)}getPreferredWidth(){return 200}},V=a(DateTimeField),H={padding:new r(3,3,3,3),cursor:`text`,backgroundColor:`var(--ts-ui-input-bg, rgb(255, 255, 255))`,foregroundColor:`var(--ts-ui-text-color, black)`},PasswordField=class extends T{constructor(e){super(e,H),this.updateHeight(),this.subscribeTheme(()=>this.updateHeight()),this.setType(`password`),this._options.name===void 0&&this.setName(`password`),this._options.autoComplete===void 0&&this.setAutoComplete(e?.newPassword?`new-password`:`current-password`)}updateHeight(){let e=n.singleLineBoxHeight(this.getInsets(),this.getPadding(),this.getBorderSize());this.setPreferredSize({width:200,height:e}),this.setMaxSize({width:2**53-1,height:e}),this.setMinSize({width:0,height:e})}},U=a(PasswordField),re={cursor:`text`,padding:new r(3,3,3,3),backgroundColor:`var(--ts-ui-input-bg, rgb(255, 255, 255))`,foregroundColor:`var(--ts-ui-text-color, black)`},UsernameField=class extends T{constructor(e){super(e,re),this.updateHeight(),this.subscribeTheme(()=>this.updateHeight()),this.setType(`text`),this._options.name===void 0&&this.setName(`username`),this._options.autoComplete===void 0&&this.setAutoComplete(e?.email?`email`:`username`)}updateHeight(){let e=n.singleLineBoxHeight(this.getInsets(),this.getPadding(),this.getBorderSize());this.setPreferredSize({width:200,height:e}),this.setMaxSize({width:2**53-1,height:e}),this.setMinSize({width:0,height:e})}},W=a(UsernameField),G={tag:`textarea`,cursor:`text`,overflow:`auto`,padding:new r(3,3,3,3),preferredSize:{width:200,height:200},minSize:{width:100,height:100},backgroundColor:`var(--ts-ui-input-bg, rgb(255, 255, 255))`,foregroundColor:`var(--ts-ui-text-color, black)`},TextArea=class extends T{constructor(e=``,t){super(e?{text:e,...t}:t,G),this.setElementCSSRules({resize:`none`})}applyOptions(e){return super.applyOptions(e),e.rows!==void 0&&this.setRows(e.rows),e.cols!==void 0&&this.setCols(e.cols),e.wrap!==void 0&&this.setWrap(e.wrap),this}getRows(){return this._options.rows??null}setRows(e){return this._options.rows=e,this.setElementAttribute(`rows`,String(e)),this}clearRows(){return this._options.rows===void 0?this:(this._options.rows=void 0,this.removeElementAttribute(`rows`),this)}getCols(){return this._options.cols??null}setCols(e){return this._options.cols=e,this.setElementAttribute(`cols`,String(e)),this}clearCols(){return this._options.cols===void 0?this:(this._options.cols=void 0,this.removeElementAttribute(`cols`),this)}getWrap(){return this._options.wrap??null}setWrap(e){return this._options.wrap=e,this.setElementAttribute(`wrap`,e),this}clearWrap(){return this._options.wrap===void 0?this:(this._options.wrap=void 0,this.removeElementAttribute(`wrap`),this)}getBaseline(){return this.wrapInnerBaseline(n.measureTextBaseline())}init(t){super.init(t);let n=t||this.getElement();return this._options.rows!==void 0&&e.sink.apply(n,{setAttr:{rows:String(this._options.rows)}}),this._options.cols!==void 0&&e.sink.apply(n,{setAttr:{cols:String(this._options.cols)}}),this._options.wrap!==void 0&&e.sink.apply(n,{setAttr:{wrap:this._options.wrap}}),this}},K=a(TextArea),Toggle=class extends m{_track;_thumb;constructor(e){super({...e??{}}),this.setLayoutManager(new g),this._track=new o,this._track.setBackgroundColor(`var(--ts-ui-toggle-track-bg-off, rgb(200, 200, 200))`),this._track.setBorderRadius(`999px`),this._track.setPreferredSize({width:36,height:20}),this._track.setMinSize({width:36,height:20}),this._track.setMaxSize({width:36,height:20}),this._track.setCursor(`pointer`),this._thumb=new o,this._thumb.setBackgroundColor(`var(--ts-ui-toggle-thumb-bg, rgb(255, 255, 255))`),this._thumb.setBorderRadius(`999px`),this._thumb.setPreferredSize({width:16,height:16}),this._thumb.setMaxSize({width:16,height:16}),this._thumb.setSize({width:16,height:16}),this._thumb.setShadow(`0 1px 2px rgba(0, 0, 0, 0.25)`),this._thumb.setX(2),this._thumb.setY(2),this._thumb.setPointerEvents(`none`),i.isReducedMotion()||(this._thumb.setTransition(`transform 120ms ease-out`),this._track.setTransition(`background-color 120ms ease-out`)),this._track.addComponent(this._thumb),super.addComponent(this._track),this.getAria().setRole(`switch`),this.getAria().setTabIndex(0),this.getAria().setChecked(!1),this.setOutline(`none`),s.addListener(this._track,`click`,()=>this.activateFromPointer()),this.installKeyboard(),this._options.value!==void 0&&this.applyValue(this._options.value),this._options.label!==void 0&&this.applyLabel(this._options.label),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.value!==void 0&&(this._options.value=e.value),e.label!==void 0&&(this._options.label=e.label),e.enabled!==void 0&&(this._options.enabled=e.enabled),e.readOnly!==void 0&&(this._options.readOnly=e.readOnly),this}activate(){this.setValue(!this.getValue())}getInteractiveSurface(){return this._track}activationKeys(){return[` `,`Enter`]}getValue(){return this._options.value??!1}setValue(e){let t=!!e;return t===this.getValue()?this:(this._options.value=t,this.applyValue(t),this.notifyChange(t),this)}clearValue(){return this.setValue(!1)}getBaseline(){let e=this._label;if(e===null)return null;let t=e.getBaseline();return t===null?null:this.wrapInnerBaseline(t+this.labelCenterOffset())}labelCenterOffset(){if(this._label===null)return 0;let e=this._track.getPreferredSize()?.height??0,t=this._label.getPreferredSize()?.height??e;return Math.max(0,Math.round((e-t)/2))}doLayout(){super.doLayout();let e=this._label,t=this.labelCenterOffset();return e!==null&&t>0&&e.setY(e.getY()+t),this}applyValue(e){this.getAria().setChecked(e),this._thumb.setTransform(e?`translateX(16px)`:`translateX(0px)`),this._track.setBackgroundColor(e?`var(--ts-ui-toggle-track-bg-on, rgb(30, 100, 200))`:`var(--ts-ui-toggle-track-bg-off, rgb(200, 200, 200))`)}},q=a(Toggle),J=22,Y={durationMs:100,backgroundColor:`var(--ts-ui-autocomplete-bg, rgb(255, 255, 255))`,border:`var(--ts-ui-input-border)`,borderRadius:`var(--ts-ui-border-radius, 4px)`,shadow:`var(--ts-ui-autocomplete-shadow, 2px 4px 8px rgba(0,0,0,0.15))`};new c({scope:`selector`,name:`.AutoCompleteDropdown .List:focus::after`,styles:{content:`none`}});var AutoCompleteDropdown=class extends te{_list;_onSelect;_onHide;constructor(e,t,n){super(n,Y),this._onSelect=e,this._onHide=t,this.setContain(`layout`),this.setLayoutManager(new d),this._list=new L,this._list.setBorder(`none`),this._list.setBorderRadius(`0`),this._list.setFocusOnRowClick(!1),this._list.setSelectFollowsFocus(!1),this.addComponent(this._list),this._list.on(`action`,()=>{let e=this._list.getValue();e&&this._onSelect(e)})}show(t,n){this.getElement(!0),this.pauseLayout(),this._list.setItemsArray(n.map(e=>({key:e,label:e}))),this.resumeLayout();let r=this.getPerimeterSize(),i=r.top+r.bottom,a=e.source.getElementRect(t);return this.setWidth(a.width),this.setHeight(n.length*J+i),this.placeAnchored(a),this.setAnchorElement(t),this.showAnimated(),this.doLayout(),this}hide(){return this.hideAnimated(),this}handleKey(e){return this._list.handleKey(e)}getFocusedRowId(){return this._list.getFocusedRowId()}getList(){return this._list}onHideComplete(){this._onHide()}},X=a(AutoCompleteDropdown);C(`.AutoCompleteField`);var AutoCompleteField=class extends p{_textField;_dropdown;_debounceTimer=null;_selectBag=new l;constructor(e){super(),this.setBorder(`var(--ts-ui-input-border)`),this.setBorderRadius(`var(--ts-ui-border-radius, 4px)`),this._textField=new F,this._textField.setBorder(`none`),this._textField.setBorderRadius(`0`),this._textField.setOutline(`none`),this.addComponent(this._textField),this.syncSizeFromTextField(),this.subscribeTheme(()=>this.syncSizeFromTextField()),this._dropdown=new X(e=>this.onSuggestionSelected(e),()=>this.onDropdownHidden()),this._textField.getAria().setRole(`combobox`),this._textField.getAria().setAutoComplete(`list`),this._textField.getAria().setExpanded(!1),this._textField.getAria().setControls(this._dropdown.getId()),this._textField.getAria().setActiveDescendant(``),s.addListener(this._textField,`input`,()=>this.onInput()),s.addListener(this._textField,`keydown`,e=>this.onKeyDown(e)),s.addListener(this._textField,`blur`,()=>this.onBlur()),this._textField.on(`change`,e=>this.notifyChange(e)),e&&this.applyOptions(e),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.suggestions!==void 0&&this.setSuggestions(e.suggestions),e.minChars!==void 0&&this.setMinChars(e.minChars),e.debounceMs!==void 0&&this.setDebounceMs(e.debounceMs),e.maxSuggestions!==void 0&&this.setMaxSuggestions(e.maxSuggestions),e.matchMode!==void 0&&this.setMatchMode(e.matchMode),e.placeholder!==void 0&&this.setPlaceholder(e.placeholder),e.store!==void 0&&e.displayField!==void 0?this.setStore(e.store,e.displayField):(e.store!==void 0&&(this._options.store=e.store),e.displayField!==void 0&&(this._options.displayField=e.displayField)),this}syncSizeFromTextField(){let e=this._textField.getPreferredSize(),t=this._textField.getMaxSize(),n=this._textField.getMinSize();e&&this.setPreferredSize({width:e.width,height:e.height}),t&&this.setMaxSize({width:t.width,height:t.height}),n&&this.setMinSize({width:n.width,height:n.height})}getBaseline(){return this.wrapInnerBaseline(this._textField.getBaseline())}doLayout(){return super.doLayout(),this._textField.setX(0),this._textField.setY(0),this._textField.setWidth(this.getWidth()),this._textField.setHeight(this.getHeight()),this}setValue(e){return this._textField.setValue(e),this}getValue(){return this._textField.getValue()}applyEnabled(e){this._textField.setEnabled(e)}applyReadOnly(e){this._textField.setReadOnly(e)}setSuggestions(e){return this._options.suggestions=e,this}setStore(e,t){return this._options.store=e,this._options.displayField=t,this}setMinChars(e){return this._options.minChars=e,this}setDebounceMs(e){return this._options.debounceMs=e,this}setMaxSuggestions(e){return this._options.maxSuggestions=e,this}setMatchMode(e){return this._options.matchMode=e,this}setPlaceholder(e){return this._options.placeholder=e,this._textField.setPlaceholder(e),this}on(e,t){return e===`select`?(this._selectBag.add(`select`,t),this):super.on(e,t)}off(e,t){return e===`select`?(this._selectBag.remove(`select`,t),this):super.off(e,t)}addSelectListener(e){this.on(`select`,e)}onInput(){this._debounceTimer!==null&&clearTimeout(this._debounceTimer);let e=this._options.minChars??1,t=this.getValue();if(t.length<e){this._dropdown.hide();return}this._debounceTimer=setTimeout(()=>this.querySuggestions(t),this._options.debounceMs??200)}onKeyDown(e){if(this._dropdown.isOpen()&&(e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`)&&this._dropdown.handleKey(e)){e.preventDefault(),this.updateActiveDescendant();return}switch(e.key){case`ArrowDown`:e.preventDefault(),this.querySuggestions(this.getValue());break;case`Escape`:this._dropdown.hide(),this._textField.focus();break;case`Tab`:this._dropdown.hide();break;default:break}}onBlur(){setTimeout(()=>{let t=e.source.getActiveElement(),n=this._dropdown.getElement();n&&e.source.contains(n,t)||this._dropdown.hide()},150)}matches(e,t){let n=this._options.matchMode??`contains`,r=n===`containsCaseSensitive`||n===`startsWithCaseSensitive`,i=n===`startsWith`||n===`startsWithCaseSensitive`,a=r?e:e.toLowerCase(),o=r?t:t.toLowerCase();return i?a.startsWith(o):a.includes(o)}querySuggestions(e){let t=this._options.maxSuggestions??10,n=this._options.matchMode??`contains`,r=this._options.suggestions,i=this._options.store,a=this._options.displayField;if(r!==void 0){let n=r.filter(t=>this.matches(t,e)).slice(0,t);e===this.getValue()&&this.showSuggestions(n);return}if(i!==void 0&&a!==void 0){let r=n===`containsCaseSensitive`||n===`startsWithCaseSensitive`,o=n===`startsWith`||n===`startsWithCaseSensitive`?`startsWith`:`contains`;i.clearFilter(),i.filterBy({type:o,field:a,value:e,caseSensitive:r});let s=i.getRecords().map(e=>String(e.get(a))).slice(0,t);e===this.getValue()&&this.showSuggestions(s)}}showSuggestions(e){if(e.length===0){this._dropdown.hide();return}this._dropdown.show(this._textField.getElement(!0),e),this._textField.getAria().setExpanded(!0)}onDropdownHidden(){this._textField.getAria().setExpanded(!1),this._textField.getAria().setActiveDescendant(``)}updateActiveDescendant(){this._textField.getAria().setActiveDescendant(this._dropdown.getFocusedRowId()??``)}onSuggestionSelected(e){this.setValue(e),this._selectBag.fire(`select`,e),this._dropdown.hide(),this._textField.focus()}},ie=a(AutoCompleteField);u.register(z,R);var ae={border:`none`,borderRadius:`0`,insets:new r(0,0,0,0)},SpinButton=class extends v{_listeners=new l;_repeat;constructor(e,t){super(void 0,t,{...ae,glyph:e===`▲`?`chevron-up`:`chevron-down`}),this.updateSize(),this.subscribeTheme(()=>this.updateSize()),t?.shadow===void 0&&this.clearShadow(),t?.pressedShadow===void 0&&this.clearPressedShadow(),this.pinGlyphSize(8),this.getGlyph()?.setTranslate(0,-1),this._repeat=new ee({initialDelay:400,decay:.75,floor:40,onTick:()=>this.emit(`tick`)}),s.addListener(this,`mousedown`,()=>this.onMouseDown()),s.addViewportListener(this,`mouseup`,()=>this.onMouseUp()),s.addViewportListener(this,`mouseleave`,()=>this.onMouseUp()),this.applyListeners(t?.listeners)}updateSize(){let e=n.lineHeightPx()+6+2,t=Math.floor((e-2)/2);this.setPreferredSize({width:18,height:t}),this.setMinSize({width:18,height:t}),this.setMaxSize({width:18,height:t})}on(e,t){return e===`action`?s.addListener(this,`click`,t):this._listeners.add(e,t),this}off(e,t){return e===`action`?s.removeListener(this,`click`,t):this._listeners.remove(e,t),this}emit(e,...t){this._listeners.fire(e,...t)}onMouseDown(){this._repeat.start()}onMouseUp(){this._repeat.isRunning()&&this._repeat.stop()}},Z=a(SpinButton);C(`.NumberSpinner`),new c({scope:`selector`,name:`.NumberSpinner .TextField:focus`,styles:{boxShadow:`none`}});var oe={insets:new r(0,0,0,0),border:`1px solid var(--ts-ui-button-border, rgb(200, 200, 200))`,borderRadius:`var(--ts-ui-border-radius, 4px)`,backgroundColor:`var(--ts-ui-input-bg, rgb(255, 255, 255))`},NumberSpinner=class extends p{_input;_upBtn;_downBtn;_btnBox;constructor(e){super(e,oe),this._input=new F,this._input.setTextAlign(`right`),this._input.setBorder(`none`),this._input.setBorderRadius(`0`),this._input.setOutline(`none`),this._input.setText(this.formatValue(0)),this._upBtn=new Z(`▲`),this._downBtn=new Z(`▼`),this._upBtn.setBorder({borderTop:`1px solid transparent`}),this._upBtn.setBorderRadius(`0`),this._downBtn.setBorder({borderTop:`1px solid var(--ts-ui-spinner-divider, rgb(180, 180, 180))`}),this._downBtn.setBorderRadius(`0`),this._btnBox=new o;let t=new h;t.setComponentSpacing(0),this._btnBox.setLayoutManager(t),this._btnBox.setInsets(new r(0,0,0,0)),this._btnBox.addComponent(this._upBtn),this._btnBox.addComponent(this._downBtn);let n=new g;n.setComponentSpacing(0),n.setStretching(!0),this.setLayoutManager(n),this.addComponent(this._input,{weight:1}),this.addComponent(this._btnBox),this._upBtn.on(`tick`,()=>this.applyValue(this.getValue()+this.getStep())),this._downBtn.on(`tick`,()=>this.applyValue(this.getValue()-this.getStep())),s.addListener(this._input,`blur`,()=>this.onBlur()),s.addListener(this._input,`keydown`,e=>this.onKeyDown(e)),this.updateHeight(),this.subscribeTheme(()=>this.updateHeight()),this.getAria().setRole(`spinbutton`),this.getAria().setValueNow(0),this._options.min!==void 0&&this.setMin(this._options.min),this._options.max!==void 0&&this.setMax(this._options.max),this._options.step!==void 0&&this.setStep(this._options.step),this._options.precision!==void 0&&this.setPrecision(this._options.precision),this._options.value!==void 0&&this.setValue(this._options.value),this._options.enabled!==void 0&&this.setEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.setReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.min!==void 0&&(this._options.min=e.min),e.max!==void 0&&(this._options.max=e.max),e.step!==void 0&&(this._options.step=e.step),e.precision!==void 0&&(this._options.precision=e.precision),e.value!==void 0&&(this._options.value=e.value),e.enabled!==void 0&&(this._options.enabled=e.enabled),this}getBaseline(){return this.wrapInnerBaseline(this._input.getBaseline())}updateHeight(){let e=n.singleLineBoxHeight(this.getInsets(),this._input.getPadding(),this.getBorderSize());this.setPreferredSize({width:120,height:e}),this.setMaxSize({width:t,height:e}),this.setMinSize({width:0,height:e})}getValue(){return this._options.value??0}setValue(e){return this._setValueSilent(e),this}getMin(){return this._options.min??-1/0}setMin(e){return this._options.min=e,this.getAria().setValueMin(isFinite(e)?e:null),this}getMax(){return this._options.max??1/0}setMax(e){return this._options.max=e,this.getAria().setValueMax(isFinite(e)?e:null),this}getStep(){return this._options.step??1}setStep(e){return this._options.step=e,this}getPrecision(){return this._options.precision??null}setPrecision(e){return this._options.precision=e,this._input.setText(this.formatValue(this.getValue())),this}applyEnabled(e){e?(this._input.setDisabledAttribute(!1),this._upBtn.setPointerEvents(`auto`),this._downBtn.setPointerEvents(`auto`),this.clearOpacity()):(this._input.setDisabledAttribute(!0),this._upBtn.setPointerEvents(`none`),this._downBtn.setPointerEvents(`none`),this.setOpacity(.5))}applyReadOnly(e){this._input.setReadOnly(e)}applyValue(e){if(!this.isEnabled())return;let t=this.normalize(e);if(t===this.getValue()){this._input.setText(this.formatValue(t));return}this._options.value=t,this._input.setText(this.formatValue(t)),this.getAria().setValueNow(t),this.notifyChange(t)}_setValueSilent(e){let t=this.normalize(e);this._options.value=t,this._input.setText(this.formatValue(t)),this.getAria().setValueNow(t)}normalize(e){let t=Math.min(this.getMax(),Math.max(this.getMin(),e));return t=Math.round(t/this.getStep())*this.getStep(),t=parseFloat(t.toFixed(this.derivePrecision())),t}onBlur(){let e=parseFloat(this._input.getText().valueOf());if(isNaN(e)){this._input.setText(this.formatValue(this.getValue()));return}this.applyValue(e)}onKeyDown(e){if(e.key===`ArrowUp`){e.preventDefault(),this.applyValue(this.getValue()+this.getStep());return}if(e.key===`ArrowDown`){e.preventDefault(),this.applyValue(this.getValue()-this.getStep());return}e.key===`Enter`&&this.onBlur()}formatValue(e){return e.toFixed(this.derivePrecision())}derivePrecision(){let e=this._options.precision??null;if(e!==null)return e;let t=String(this.getStep()),n=t.indexOf(`.`);return n>=0?t.length-n-1:0}},se=a(NumberSpinner),Q=3,$=`no file selected`,HiddenFileInput=class extends o{_type=null;_multiple=!1;_accept=null;constructor(){super({tag:`input`}),this.setDisplayed(!1),this.setType(`file`)}getType(){return this._type}setType(e){this._type=e,this.setElementAttribute(`type`,e)}setMultipleAttribute(e){this._multiple=e,e?this.setElementAttribute(`multiple`,``):this.removeElementAttribute(`multiple`)}setAcceptAttribute(e){this._accept=e,this.setElementAttribute(`accept`,e)}setDisabled(e){this.setDisabledAttribute(e)}openPicker(){let t=this.getElement();t&&e.sink.click(t)}getFiles(){let t=this.getElement();return t?e.source.getFiles(t):null}clearFiles(){let t=this.getElement();t&&e.sink.setValue(t,``)}init(t){super.init(t);let n=t??this.getElement();return n?(this._type!==null&&e.sink.apply(n,{setAttr:{type:this._type}}),this._multiple&&e.sink.apply(n,{setAttr:{multiple:``}}),this._accept!==null&&e.sink.apply(n,{setAttr:{accept:this._accept}}),this):this}},FileField=class extends p{_button;_label;_input;_droppedFiles=[];constructor(e){super({...e??{}}),this.setLayoutManager(new g),this._button=new v(this.defaultButtonText()),this._button.on(`action`,()=>this.openPicker()),this._label=new f($,{truncate:!0}),this._label.setForegroundColor(`var(--ts-ui-form-text, inherit)`),this._input=new HiddenFileInput,s.addListener(this._input,`change`,()=>this.onNativeChange()),super.addComponent(this._button),super.addComponent(this._label,{weight:1}),super.addComponent(this._input),this._options.multiple!==void 0&&this.setMultiple(this._options.multiple),this._options.accept!==void 0&&this.setAccept(this._options.accept),this._options.buttonText!==void 0&&this._button.setText(this._options.buttonText),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.multiple!==void 0&&(this._options.multiple=e.multiple),e.accept!==void 0&&(this._options.accept=e.accept),e.buttonText!==void 0&&(this._options.buttonText=e.buttonText),this}defaultButtonText(){return this.isMultiple()?`Choose files…`:`Choose file…`}openPicker(){!this.isEnabled()||this.isReadOnly()||this._input.openPicker()}onNativeChange(){this._droppedFiles=[];let e=this.getValue();this.updateLabel(e),this.notifyChange(e)}acceptDroppedFiles(e){this._droppedFiles=Array.from(e);let t=this.getValue();this.updateLabel(t),this.notifyChange(t)}getValue(){if(this._droppedFiles.length>0)return this._droppedFiles;let e=this._input.getFiles();return e?Array.from(e):[]}setValue(e){return e&&e.length>0?(console.warn(`FileField '`+this.getId()+`' setValue ignored a non-empty File[]: the browser security model forbids programmatically populating a file input. Only setValue([]) (clearing) is supported.`),this):this.clearValue()}clearValue(){this._droppedFiles=[],this._input.clearFiles();let e=this.getValue();return this.updateLabel(e),this.notifyChange(e),this}isMultiple(){return this._options.multiple??!1}setMultiple(e){return this._options.multiple=!!e,this._input.setMultipleAttribute(this._options.multiple),this._options.buttonText===void 0&&this._button.setText(this.defaultButtonText()),this}getAccept(){return this._options.accept??null}setAccept(e){return this._options.accept=e,this._input.setAcceptAttribute(e),this}updateLabel(e){e.length===0?this._label.setText($):e.length===1?this._label.setText(e[0].name):e.length>Q?this._label.setText(e.length+` files`):this._label.setText(e.map(e=>e.name).join(`, `))}applyEnabled(e){this._button.setEnabled(e),this._input.setDisabled(!e)}applyReadOnly(e){this._button.setEnabled(!e&&this.isEnabled()),this.getAria().setReadOnly(e)}},ce=a(FileField),le=`var(--ts-ui-filedropzone-border, 2px dashed rgba(80, 140, 240, 0.40))`,ue=`var(--ts-ui-filedropzone-bg, rgba(80, 140, 240, 0.06))`,de=`var(--ts-ui-filedropzone-active-border, 2px dashed rgba(80, 140, 240, 0.80))`,fe=`var(--ts-ui-filedropzone-active-bg, rgba(80, 140, 240, 0.18))`,pe=`Drop files here or click to browse`,FileDropZone=class extends p{_prompt;_field;_dragDepth=0;constructor(e){super({...e??{}}),this.setLayoutManager(new h),this._prompt=new f(this._options.promptText??pe),this._prompt.setForegroundColor(`var(--ts-ui-form-text, inherit)`),this._field=new FileField(this.fieldOptions()),this._field.on(`change`,e=>this.notifyChange(e)),super.addComponent(this._prompt),super.addComponent(this._field),this.setActive(!1),this.setBorderRadius(`var(--ts-ui-border-radius, 4px)`),s.addSubtreeListener(this,`dragenter`,e=>this.onDragEnter(e)),s.addSubtreeListener(this,`dragover`,e=>this.onDragOver(e)),s.addSubtreeListener(this,`dragleave`,e=>this.onDragLeave(e)),s.addSubtreeListener(this,`drop`,e=>this.onDrop(e)),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.promptText!==void 0&&(this._options.promptText=e.promptText),this}fieldOptions(){return{multiple:this._options.multiple,accept:this._options.accept,buttonText:this._options.buttonText}}setActive(e){this.setBorder(e?de:le),this.setBackgroundColor(e?fe:ue)}onDragEnter(e){e.preventDefault(),this._dragDepth++,this._dragDepth===1&&this.setActive(!0)}onDragOver(e){e.preventDefault()}onDragLeave(e){e.preventDefault(),this._dragDepth=Math.max(0,this._dragDepth-1),this._dragDepth===0&&this.setActive(!1)}onDrop(e){if(e.preventDefault(),this._dragDepth=0,this.setActive(!1),!this.isEnabled()||this.isReadOnly())return;let t=e.dataTransfer?.files;!t||t.length===0||this._field.acceptDroppedFiles(t)}getValue(){return this._field.getValue()}setValue(e){return this._field.setValue(e),this}clearValue(){return this._field.clearValue(),this}applyEnabled(e){this._field.setEnabled(e)}applyReadOnly(e){this._field.setReadOnly(e)}},me=a(FileDropZone);export{m as AbstractBooleanInput,p as AbstractInput,S as AbstractPickerField,ie as AutoCompleteField,k as Checkbox,P as ComboBox,B as DateField,A as DatePickerDropdown,V as DateTimeField,M as DateTimePickerDropdown,me as FileDropZone,ce as FileField,y as Label,w as Link,se as NumberSpinner,U as PasswordField,j as PickerButton,N as PickerCell,ne as PickerCellList,D as PickerColumn,O as PickerInput,_ as RadioButton,b as Slider,Z as SpinButton,f as Text,K as TextArea,F as TextField,T as TextInput,E as TimeField,x as TimePickerDropdown,q as Toggle,W as UsernameField};
|
|
1
|
+
import{t as e}from"../DOM-67StIm5G.js";import{a as t,l as n,n as r,s as i}from"../Position-Ck_KD4cR.js";import{S as a,b as o,h as s,t as c,v as l}from"../Component-DHqrPwAw.js";import{t as u}from"../ListenerBag-WPdKuuds.js";import{a as d}from"../Scrollbar-CSFK-Y57.js";import{t as f}from"../Glyph-CeAIWyPB.js";import{t as ee}from"../AnimatedDropdown-DKas40B-.js";import{t as p}from"../Fit-DIYt2aQB.js";import{t as m}from"../Text-D5pg7taZ.js";import{t as h}from"../AbstractInput-BmWGJTs1.js";import{t as g}from"../AbstractBooleanInput-DSwKBAic.js";import{n as _,r as v}from"../VBox-BNegDPs_.js";import{t as te}from"../RadioButton-BJIAQkII.js";import{t as y}from"../Button-bjpWruNc.js";import{n as b,t as x}from"../Slider-C-kQQYCj.js";import{a as S,c as ne,d as C,f as w,g as T,h as E,i as D,l as O,m as k,n as A,o as j,p as M,r as N,s as P,t as F,u as I}from"../ComboBox-CBw2VLLN.js";import{calendar as L}from"../glyphs/solid/calendar.es.js";import{t as R}from"../List-CUntS8ux.js";import{chevron_down as z}from"../glyphs/solid/chevron_down.es.js";import{chevron_up as B}from"../glyphs/solid/chevron_up.es.js";f.register(L);var DateField=class extends C{constructor(e){super(e),this._button.setGlyph(`calendar`),this._options.value!==void 0&&this.setValue(this._options.value)}applyOptions(e){return super.applyOptions(e),e.value!==void 0&&(this._options.value=e.value),e.minDate!==void 0&&(this._options.minDate=e.minDate),e.maxDate!==void 0&&(this._options.maxDate=e.maxDate),this}formatValue(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}parseRaw(e){let t=new Date(e+`T00:00:00`);return isNaN(t.getTime())?null:t}createDropdown(){return new j(e=>this.onDropdownSelected(e),{minDate:this._options.minDate??null,maxDate:this._options.maxDate??null})}onDropdownSelected(e){this.setValue(e),this.closeDropdown(),this._input.focus(),a.fireEvent(this._input,`input`)}getPreferredWidth(){return 160}},V=s(DateField);f.register(L);var DateTimeField=class extends C{constructor(e){super(e),this._button.setGlyph(`calendar`),this._options.showSeconds!==void 0&&(this._showSeconds=this._options.showSeconds),this._options.value!==void 0&&this.setValue(this._options.value)}applyOptions(e){return super.applyOptions(e),e.showSeconds!==void 0&&(this._options.showSeconds=e.showSeconds),e.value!==void 0&&(this._options.value=e.value),e.minDate!==void 0&&(this._options.minDate=e.minDate),e.maxDate!==void 0&&(this._options.maxDate=e.maxDate),this}formatValue(e){let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,`0`),r=String(e.getDate()).padStart(2,`0`),i=String(e.getHours()).padStart(2,`0`),a=String(e.getMinutes()).padStart(2,`0`);return this._showSeconds?`${t}-${n}-${r} ${i}:${a}:${String(e.getSeconds()).padStart(2,`0`)}`:`${t}-${n}-${r} ${i}:${a}`}parseRaw(e){let[t,n]=e.trim().split(/\s+/);if(!t||!n)return null;let r=new Date(`${t}T${n}`);return isNaN(r.getTime())?null:r}createDropdown(){return new N(e=>this.onDropdownSelected(e),{showSeconds:this._showSeconds,minDate:this._options.minDate??null,maxDate:this._options.maxDate??null})}onDropdownSelected(e){this.setValue(e),a.fireEvent(this._input,`input`)}getPreferredWidth(){return 200}},H=s(DateTimeField),U={padding:new r(3,3,3,3),cursor:`text`,backgroundColor:`var(--ts-ui-input-bg, rgb(255, 255, 255))`,foregroundColor:`var(--ts-ui-text-color, black)`},PasswordField=class extends E{constructor(e,t){super(e,{...U,...t??{}}),this.updateHeight(),this.subscribeTheme(()=>this.updateHeight()),this.setType(`password`),this._options.name===void 0&&this.setName(`password`),this._options.autoComplete===void 0&&this.setAutoComplete(e?.newPassword?`new-password`:`current-password`)}updateHeight(){let e=n.singleLineBoxHeight(this.getInsets(),this.getPadding(),this.getBorderSize());this.setPreferredSize({width:200,height:e}),this.setMaxSize({width:2**53-1,height:e}),this.setMinSize({width:0,height:e})}},re=s(PasswordField),W={cursor:`text`,padding:new r(3,3,3,3),backgroundColor:`var(--ts-ui-input-bg, rgb(255, 255, 255))`,foregroundColor:`var(--ts-ui-text-color, black)`},UsernameField=class extends E{constructor(e,t){super(e,{...W,...t??{}}),this.updateHeight(),this.subscribeTheme(()=>this.updateHeight()),this.setType(`text`),this._options.name===void 0&&this.setName(`username`),this._options.autoComplete===void 0&&this.setAutoComplete(e?.email?`email`:`username`)}updateHeight(){let e=n.singleLineBoxHeight(this.getInsets(),this.getPadding(),this.getBorderSize());this.setPreferredSize({width:200,height:e}),this.setMaxSize({width:2**53-1,height:e}),this.setMinSize({width:0,height:e})}},G=s(UsernameField),K={tag:`textarea`,cursor:`text`,overflow:`auto`,padding:new r(3,3,3,3),preferredSize:{width:200,height:200},minSize:{width:100,height:100},backgroundColor:`var(--ts-ui-input-bg, rgb(255, 255, 255))`,foregroundColor:`var(--ts-ui-text-color, black)`},TextArea=class extends E{constructor(e=``,t,n){super(e?{text:e,...t}:t,{...K,...n??{}}),this.setElementCSSRules({resize:`none`})}applyOptions(e){return super.applyOptions(e),e.rows!==void 0&&this.setRows(e.rows),e.cols!==void 0&&this.setCols(e.cols),e.wrap!==void 0&&this.setWrap(e.wrap),this}getRows(){return this._options.rows??null}setRows(e){return this._options.rows=e,this.setElementAttribute(`rows`,String(e)),this}clearRows(){return this._options.rows===void 0?this:(this._options.rows=void 0,this.removeElementAttribute(`rows`),this)}getCols(){return this._options.cols??null}setCols(e){return this._options.cols=e,this.setElementAttribute(`cols`,String(e)),this}clearCols(){return this._options.cols===void 0?this:(this._options.cols=void 0,this.removeElementAttribute(`cols`),this)}getWrap(){return this._options.wrap??null}setWrap(e){return this._options.wrap=e,this.setElementAttribute(`wrap`,e),this}clearWrap(){return this._options.wrap===void 0?this:(this._options.wrap=void 0,this.removeElementAttribute(`wrap`),this)}getBaseline(){return this.wrapInnerBaseline(n.measureTextBaseline())}init(t){super.init(t);let n=t||this.getElement();return this._options.rows!==void 0&&e.sink.apply(n,{setAttr:{rows:String(this._options.rows)}}),this._options.cols!==void 0&&e.sink.apply(n,{setAttr:{cols:String(this._options.cols)}}),this._options.wrap!==void 0&&e.sink.apply(n,{setAttr:{wrap:this._options.wrap}}),this}},q=s(TextArea),Toggle=class extends g{_track;_thumb;constructor(e){super({...e??{}}),this.setLayoutManager(new v),this._track=new c,this._track.setBackgroundColor(`var(--ts-ui-toggle-track-bg-off, rgb(200, 200, 200))`),this._track.setBorderRadius(`999px`),this._track.setPreferredSize({width:36,height:20}),this._track.setMinSize({width:36,height:20}),this._track.setMaxSize({width:36,height:20}),this._track.setCursor(`pointer`),this._thumb=new c,this._thumb.setBackgroundColor(`var(--ts-ui-toggle-thumb-bg, rgb(255, 255, 255))`),this._thumb.setBorderRadius(`999px`),this._thumb.setPreferredSize({width:16,height:16}),this._thumb.setMaxSize({width:16,height:16}),this._thumb.setSize({width:16,height:16}),this._thumb.setShadow(`0 1px 2px rgba(0, 0, 0, 0.25)`),this._thumb.setX(2),this._thumb.setY(2),this._thumb.setPointerEvents(`none`),l.isReducedMotion()||(this._thumb.setTransition(`transform 120ms ease-out`),this._track.setTransition(`background-color 120ms ease-out`)),this._track.addComponent(this._thumb),super.addComponent(this._track),this.getAria().setRole(`switch`),this.getAria().setTabIndex(0),this.getAria().setChecked(!1),this.setOutline(`none`),a.addListener(this._track,`click`,()=>this.activateFromPointer()),this.installKeyboard(),this._options.value!==void 0&&this.applyValue(this._options.value),this._options.label!==void 0&&this.applyLabel(this._options.label),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.value!==void 0&&(this._options.value=e.value),e.label!==void 0&&(this._options.label=e.label),e.enabled!==void 0&&(this._options.enabled=e.enabled),e.readOnly!==void 0&&(this._options.readOnly=e.readOnly),this}activate(){this.setValue(!this.getValue())}getInteractiveSurface(){return this._track}activationKeys(){return[` `,`Enter`]}getValue(){return this._options.value??!1}setValue(e){let t=!!e;return t===this.getValue()?this:(this._options.value=t,this.applyValue(t),this.notifyChange(t),this)}clearValue(){return this.setValue(!1)}getBaseline(){let e=this._label;if(e===null)return null;let t=e.getBaseline();return t===null?null:this.wrapInnerBaseline(t+this.labelCenterOffset())}labelCenterOffset(){if(this._label===null)return 0;let e=this._track.getPreferredSize()?.height??0,t=this._label.getPreferredSize()?.height??e;return Math.max(0,Math.round((e-t)/2))}doLayout(){super.doLayout();let e=this._label,t=this.labelCenterOffset();return e!==null&&t>0&&e.setY(e.getY()+t),this}applyValue(e){this.getAria().setChecked(e),this._thumb.setTransform(e?`translateX(16px)`:`translateX(0px)`),this._track.setBackgroundColor(e?`var(--ts-ui-toggle-track-bg-on, rgb(30, 100, 200))`:`var(--ts-ui-toggle-track-bg-off, rgb(200, 200, 200))`)}},J=s(Toggle),Y=22,X={durationMs:100,backgroundColor:`var(--ts-ui-autocomplete-bg, rgb(255, 255, 255))`,border:`var(--ts-ui-input-border)`,borderRadius:`var(--ts-ui-border-radius, 4px)`,shadow:`var(--ts-ui-autocomplete-shadow, 2px 4px 8px rgba(0,0,0,0.15))`};new o({scope:`selector`,name:`.AutoCompleteDropdown .List:focus::after`,styles:{content:`none`}});var AutoCompleteDropdown=class extends ee{_list;_onSelect;_onHide;constructor(e,t,n,r){super(n,{...X,...r??{}}),this._onSelect=e,this._onHide=t,this.setContain(`layout`),this.setLayoutManager(new p),this._list=new R,this._list.setBorder(`none`),this._list.setBorderRadius(`0`),this._list.setFocusOnRowClick(!1),this._list.setSelectFollowsFocus(!1),this.addComponent(this._list),this._list.on(`action`,()=>{let e=this._list.getValue();e&&this._onSelect(e)})}show(t,n){this.getElement(!0),this.pauseLayout(),this._list.setItemsArray(n.map(e=>({key:e,label:e}))),this.resumeLayout();let r=this.getPerimeterSize(),i=r.top+r.bottom,a=e.source.getElementRect(t);return this.setWidth(a.width),this.setHeight(n.length*Y+i),this.placeAnchored(a),this.setAnchorElement(t),this.showAnimated(),this.doLayout(),this}hide(){return this.hideAnimated(),this}handleKey(e){return this._list.handleKey(e)}getFocusedRowId(){return this._list.getFocusedRowId()}getList(){return this._list}onHideComplete(){this._onHide()}},ie=s(AutoCompleteDropdown);w(`.AutoCompleteField`);var AutoCompleteField=class extends h{_textField;_dropdown;_debounceTimer=null;_selectBag=new u;constructor(e){super(),this.setBorder(`var(--ts-ui-input-border)`),this.setBorderRadius(`var(--ts-ui-border-radius, 4px)`),this._textField=new I,this._textField.setBorder(`none`),this._textField.setBorderRadius(`0`),this._textField.setOutline(`none`),this.addComponent(this._textField),this.syncSizeFromTextField(),this.subscribeTheme(()=>this.syncSizeFromTextField()),this._dropdown=new ie(e=>this.onSuggestionSelected(e),()=>this.onDropdownHidden()),this._textField.getAria().setRole(`combobox`),this._textField.getAria().setAutoComplete(`list`),this._textField.getAria().setExpanded(!1),this._textField.getAria().setControls(this._dropdown.getId()),this._textField.getAria().setActiveDescendant(``),a.addListener(this._textField,`input`,()=>this.onInput()),a.addListener(this._textField,`keydown`,e=>this.onKeyDown(e)),a.addListener(this._textField,`blur`,()=>this.onBlur()),this._textField.on(`change`,e=>this.notifyChange(e)),e&&this.applyOptions(e),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.suggestions!==void 0&&this.setSuggestions(e.suggestions),e.minChars!==void 0&&this.setMinChars(e.minChars),e.debounceMs!==void 0&&this.setDebounceMs(e.debounceMs),e.maxSuggestions!==void 0&&this.setMaxSuggestions(e.maxSuggestions),e.matchMode!==void 0&&this.setMatchMode(e.matchMode),e.placeholder!==void 0&&this.setPlaceholder(e.placeholder),e.store!==void 0&&e.displayField!==void 0?this.setStore(e.store,e.displayField):(e.store!==void 0&&(this._options.store=e.store),e.displayField!==void 0&&(this._options.displayField=e.displayField)),this}syncSizeFromTextField(){let e=this.getPerimeterSize(),t=e.left+e.right,n=e.top+e.bottom,r=this._textField.getPreferredSize(),a=this._textField.getMaxSize(),o=this._textField.getMinSize();r&&this.setPreferredSize({width:r.width,height:r.height+n}),a&&this.setMaxSize({width:i(a.width+t),height:i(a.height+n)}),o&&this.setMinSize({width:o.width,height:o.height+n})}getBaseline(){return this.wrapInnerBaseline(this._textField.getBaseline())}doLayout(){super.doLayout();let e=this.getContentBounds();return e?(this._textField.setX(e.x),this._textField.setY(e.y),this._textField.setWidth(e.width),this._textField.setHeight(e.height),this):this}setValue(e){return this._textField.setValue(e),this}getValue(){return this._textField.getValue()}applyEnabled(e){this._textField.setEnabled(e)}applyReadOnly(e){this._textField.setReadOnly(e)}setSuggestions(e){return this._options.suggestions=e,this}setStore(e,t){return this._options.store=e,this._options.displayField=t,this}setMinChars(e){return this._options.minChars=e,this}setDebounceMs(e){return this._options.debounceMs=e,this}setMaxSuggestions(e){return this._options.maxSuggestions=e,this}setMatchMode(e){return this._options.matchMode=e,this}setPlaceholder(e){return this._options.placeholder=e,this._textField.setPlaceholder(e),this}on(e,t){return e===`select`?(this._selectBag.add(`select`,t),this):super.on(e,t)}off(e,t){return e===`select`?(this._selectBag.remove(`select`,t),this):super.off(e,t)}addSelectListener(e){this.on(`select`,e)}onInput(){this._debounceTimer!==null&&clearTimeout(this._debounceTimer);let e=this._options.minChars??1,t=this.getValue();if(t.length<e){this._dropdown.hide();return}this._debounceTimer=setTimeout(()=>this.querySuggestions(t),this._options.debounceMs??200)}onKeyDown(e){if(this._dropdown.isOpen()&&(e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`)&&this._dropdown.handleKey(e)){e.preventDefault(),this.updateActiveDescendant();return}switch(e.key){case`ArrowDown`:e.preventDefault(),this.querySuggestions(this.getValue());break;case`Escape`:this._dropdown.hide(),this._textField.focus();break;case`Tab`:this._dropdown.hide();break;default:break}}onBlur(){setTimeout(()=>{let t=e.source.getActiveElement(),n=this._dropdown.getElement();n&&e.source.contains(n,t)||this._dropdown.hide()},150)}matches(e,t){let n=this._options.matchMode??`contains`,r=n===`containsCaseSensitive`||n===`startsWithCaseSensitive`,i=n===`startsWith`||n===`startsWithCaseSensitive`,a=r?e:e.toLowerCase(),o=r?t:t.toLowerCase();return i?a.startsWith(o):a.includes(o)}querySuggestions(e){let t=this._options.maxSuggestions??10,n=this._options.matchMode??`contains`,r=this._options.suggestions,i=this._options.store,a=this._options.displayField;if(r!==void 0){let n=r.filter(t=>this.matches(t,e)).slice(0,t);e===this.getValue()&&this.showSuggestions(n);return}if(i!==void 0&&a!==void 0){let r=n===`containsCaseSensitive`||n===`startsWithCaseSensitive`,o=n===`startsWith`||n===`startsWithCaseSensitive`?`startsWith`:`contains`;i.clearFilter(),i.filterBy({type:o,field:a,value:e,caseSensitive:r});let s=i.getRecords().map(e=>String(e.get(a))).slice(0,t);e===this.getValue()&&this.showSuggestions(s)}}showSuggestions(e){if(e.length===0){this._dropdown.hide();return}this._dropdown.show(this._textField.getElement(!0),e),this._textField.getAria().setExpanded(!0)}onDropdownHidden(){this._textField.getAria().setExpanded(!1),this._textField.getAria().setActiveDescendant(``)}updateActiveDescendant(){this._textField.getAria().setActiveDescendant(this._dropdown.getFocusedRowId()??``)}onSuggestionSelected(e){this.setValue(e),this._selectBag.fire(`select`,e),this._dropdown.hide(),this._textField.focus()}},ae=s(AutoCompleteField);f.register(B,z);var oe={border:`none`,borderRadius:`0`,insets:new r(0,0,0,0)},SpinButton=class extends y{_listeners=new u;_repeat;constructor(e,t,n){super(void 0,t,{...oe,glyph:e===`▲`?`chevron-up`:`chevron-down`,...n??{}}),this.updateSize(),this.subscribeTheme(()=>this.updateSize()),t?.shadow===void 0&&this.clearShadow(),t?.pressedShadow===void 0&&this.clearPressedShadow(),this.pinGlyphSize(8),this.getGlyph()?.setTranslate(0,-1),this._repeat=new d({initialDelay:400,decay:.75,floor:40,onTick:()=>this.emit(`tick`)}),a.addListener(this,`mousedown`,()=>this.onMouseDown()),a.addViewportListener(this,`mouseup`,()=>this.onMouseUp()),a.addViewportListener(this,`mouseleave`,()=>this.onMouseUp()),this.applyListeners(t?.listeners)}updateSize(){let e=n.lineHeightPx()+6+2,t=Math.floor((e-2)/2);this.setPreferredSize({width:18,height:t}),this.setMinSize({width:18,height:t}),this.setMaxSize({width:18,height:t})}on(e,t){return e===`action`?a.addListener(this,`click`,t):this._listeners.add(e,t),this}off(e,t){return e===`action`?a.removeListener(this,`click`,t):this._listeners.remove(e,t),this}emit(e,...t){this._listeners.fire(e,...t)}onMouseDown(){this._repeat.start()}onMouseUp(){this._repeat.isRunning()&&this._repeat.stop()}},Z=s(SpinButton);w(`.NumberSpinner`),new o({scope:`selector`,name:`.NumberSpinner .TextField:focus`,styles:{boxShadow:`none`}});var se={insets:new r(0,0,0,0),border:`1px solid var(--ts-ui-button-border, rgb(200, 200, 200))`,borderRadius:`var(--ts-ui-border-radius, 4px)`,backgroundColor:`var(--ts-ui-input-bg, rgb(255, 255, 255))`},NumberSpinner=class extends h{_input;_upBtn;_downBtn;_btnBox;constructor(e,t){super(e,{...se,...t??{}}),this._input=new I,this._input.setTextAlign(`right`),this._input.setBorder(`none`),this._input.setBorderRadius(`0`),this._input.setOutline(`none`),this._input.setText(this.formatValue(0)),this._upBtn=new Z(`▲`),this._downBtn=new Z(`▼`),this._upBtn.setBorder({borderTop:`1px solid transparent`}),this._upBtn.setBorderRadius(`0`),this._downBtn.setBorder({borderTop:`1px solid var(--ts-ui-spinner-divider, rgb(180, 180, 180))`}),this._downBtn.setBorderRadius(`0`),this._btnBox=new c;let n=new _;n.setComponentSpacing(0),this._btnBox.setLayoutManager(n),this._btnBox.setInsets(new r(0,0,0,0)),this._btnBox.addComponent(this._upBtn),this._btnBox.addComponent(this._downBtn);let i=new v;i.setComponentSpacing(0),i.setStretching(!0),this.setLayoutManager(i),this.addComponent(this._input,{weight:1}),this.addComponent(this._btnBox),this._upBtn.on(`tick`,()=>this.applyValue(this.getValue()+this.getStep())),this._downBtn.on(`tick`,()=>this.applyValue(this.getValue()-this.getStep())),a.addListener(this._input,`blur`,()=>this.onBlur()),a.addListener(this._input,`keydown`,e=>this.onKeyDown(e)),this.updateHeight(),this.subscribeTheme(()=>this.updateHeight()),this.getAria().setRole(`spinbutton`),this.getAria().setValueNow(0),this._options.min!==void 0&&this.setMin(this._options.min),this._options.max!==void 0&&this.setMax(this._options.max),this._options.step!==void 0&&this.setStep(this._options.step),this._options.precision!==void 0&&this.setPrecision(this._options.precision),this._options.value!==void 0&&this.setValue(this._options.value),this._options.enabled!==void 0&&this.setEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.setReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.min!==void 0&&(this._options.min=e.min),e.max!==void 0&&(this._options.max=e.max),e.step!==void 0&&(this._options.step=e.step),e.precision!==void 0&&(this._options.precision=e.precision),e.value!==void 0&&(this._options.value=e.value),e.enabled!==void 0&&(this._options.enabled=e.enabled),this}getBaseline(){return this.wrapInnerBaseline(this._input.getBaseline())}updateHeight(){let e=n.singleLineBoxHeight(this.getInsets(),this._input.getPadding(),this.getBorderSize());this.setPreferredSize({width:120,height:e}),this.setMaxSize({width:t,height:e}),this.setMinSize({width:0,height:e})}getValue(){return this._options.value??0}setValue(e){return this._setValueSilent(e),this}getMin(){return this._options.min??-1/0}setMin(e){return this._options.min=e,this.getAria().setValueMin(isFinite(e)?e:null),this}getMax(){return this._options.max??1/0}setMax(e){return this._options.max=e,this.getAria().setValueMax(isFinite(e)?e:null),this}getStep(){return this._options.step??1}setStep(e){return this._options.step=e,this}getPrecision(){return this._options.precision??null}setPrecision(e){return this._options.precision=e,this._input.setText(this.formatValue(this.getValue())),this}applyEnabled(e){e?(this._input.setDisabledAttribute(!1),this._upBtn.setPointerEvents(`auto`),this._downBtn.setPointerEvents(`auto`),this.clearOpacity()):(this._input.setDisabledAttribute(!0),this._upBtn.setPointerEvents(`none`),this._downBtn.setPointerEvents(`none`),this.setOpacity(.5))}applyReadOnly(e){this._input.setReadOnly(e)}applyValue(e){if(!this.isEnabled())return;let t=this.normalize(e);if(t===this.getValue()){this._input.setText(this.formatValue(t));return}this._options.value=t,this._input.setText(this.formatValue(t)),this.getAria().setValueNow(t),this.notifyChange(t)}_setValueSilent(e){let t=this.normalize(e);this._options.value=t,this._input.setText(this.formatValue(t)),this.getAria().setValueNow(t)}normalize(e){let t=Math.min(this.getMax(),Math.max(this.getMin(),e));return t=Math.round(t/this.getStep())*this.getStep(),t=parseFloat(t.toFixed(this.derivePrecision())),t}onBlur(){let e=parseFloat(this._input.getText().valueOf());if(isNaN(e)){this._input.setText(this.formatValue(this.getValue()));return}this.applyValue(e)}onKeyDown(e){if(e.key===`ArrowUp`){e.preventDefault(),this.applyValue(this.getValue()+this.getStep());return}if(e.key===`ArrowDown`){e.preventDefault(),this.applyValue(this.getValue()-this.getStep());return}e.key===`Enter`&&this.onBlur()}formatValue(e){return e.toFixed(this.derivePrecision())}derivePrecision(){let e=this._options.precision??null;if(e!==null)return e;let t=String(this.getStep()),n=t.indexOf(`.`);return n>=0?t.length-n-1:0}},Q=s(NumberSpinner),ce=3,$=`no file selected`,HiddenFileInput=class extends c{_type=null;_multiple=!1;_accept=null;constructor(){super({tag:`input`}),this.setDisplayed(!1),this.setType(`file`)}getType(){return this._type}setType(e){this._type=e,this.setElementAttribute(`type`,e)}setMultipleAttribute(e){this._multiple=e,e?this.setElementAttribute(`multiple`,``):this.removeElementAttribute(`multiple`)}setAcceptAttribute(e){this._accept=e,this.setElementAttribute(`accept`,e)}setDisabled(e){this.setDisabledAttribute(e)}openPicker(){let t=this.getElement();t&&e.sink.click(t)}getFiles(){let t=this.getElement();return t?e.source.getFiles(t):null}clearFiles(){let t=this.getElement();t&&e.sink.setValue(t,``)}init(t){super.init(t);let n=t??this.getElement();return n?(this._type!==null&&e.sink.apply(n,{setAttr:{type:this._type}}),this._multiple&&e.sink.apply(n,{setAttr:{multiple:``}}),this._accept!==null&&e.sink.apply(n,{setAttr:{accept:this._accept}}),this):this}},FileField=class extends h{_button;_label;_input;_droppedFiles=[];constructor(e){super({...e??{}}),this.setLayoutManager(new v),this._button=new y(this.defaultButtonText()),this._button.on(`action`,()=>this.openPicker()),this._label=new m($,{truncate:!0}),this._label.setForegroundColor(`var(--ts-ui-form-text, inherit)`),this._input=new HiddenFileInput,a.addListener(this._input,`change`,()=>this.onNativeChange()),super.addComponent(this._button),super.addComponent(this._label,{weight:1}),super.addComponent(this._input),this._options.multiple!==void 0&&this.setMultiple(this._options.multiple),this._options.accept!==void 0&&this.setAccept(this._options.accept),this._options.buttonText!==void 0&&this._button.setText(this._options.buttonText),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.multiple!==void 0&&(this._options.multiple=e.multiple),e.accept!==void 0&&(this._options.accept=e.accept),e.buttonText!==void 0&&(this._options.buttonText=e.buttonText),this}defaultButtonText(){return this.isMultiple()?`Choose files…`:`Choose file…`}openPicker(){!this.isEnabled()||this.isReadOnly()||this._input.openPicker()}onNativeChange(){this._droppedFiles=[];let e=this.getValue();this.updateLabel(e),this.notifyChange(e)}acceptDroppedFiles(e){this._droppedFiles=Array.from(e);let t=this.getValue();this.updateLabel(t),this.notifyChange(t)}getValue(){if(this._droppedFiles.length>0)return this._droppedFiles;let e=this._input.getFiles();return e?Array.from(e):[]}setValue(e){return e&&e.length>0?(console.warn(`FileField '`+this.getId()+`' setValue ignored a non-empty File[]: the browser security model forbids programmatically populating a file input. Only setValue([]) (clearing) is supported.`),this):this.clearValue()}clearValue(){this._droppedFiles=[],this._input.clearFiles();let e=this.getValue();return this.updateLabel(e),this.notifyChange(e),this}isMultiple(){return this._options.multiple??!1}setMultiple(e){return this._options.multiple=!!e,this._input.setMultipleAttribute(this._options.multiple),this._options.buttonText===void 0&&this._button.setText(this.defaultButtonText()),this}getAccept(){return this._options.accept??null}setAccept(e){return this._options.accept=e,this._input.setAcceptAttribute(e),this}updateLabel(e){e.length===0?this._label.setText($):e.length===1?this._label.setText(e[0].name):e.length>ce?this._label.setText(e.length+` files`):this._label.setText(e.map(e=>e.name).join(`, `))}applyEnabled(e){this._button.setEnabled(e),this._input.setDisabled(!e)}applyReadOnly(e){this._button.setEnabled(!e&&this.isEnabled()),this.getAria().setReadOnly(e)}},le=s(FileField),ue=`var(--ts-ui-filedropzone-border, 2px dashed rgba(80, 140, 240, 0.40))`,de=`var(--ts-ui-filedropzone-bg, rgba(80, 140, 240, 0.06))`,fe=`var(--ts-ui-filedropzone-active-border, 2px dashed rgba(80, 140, 240, 0.80))`,pe=`var(--ts-ui-filedropzone-active-bg, rgba(80, 140, 240, 0.18))`,me=`Drop files here or click to browse`,FileDropZone=class extends h{_prompt;_field;_dragDepth=0;constructor(e){super({...e??{}}),this.setLayoutManager(new _),this._prompt=new m(this._options.promptText??me),this._prompt.setForegroundColor(`var(--ts-ui-form-text, inherit)`),this._field=new FileField(this.fieldOptions()),this._field.on(`change`,e=>this.notifyChange(e)),super.addComponent(this._prompt),super.addComponent(this._field),this.setActive(!1),this.setBorderRadius(`var(--ts-ui-border-radius, 4px)`),a.addSubtreeListener(this,`dragenter`,e=>this.onDragEnter(e)),a.addSubtreeListener(this,`dragover`,e=>this.onDragOver(e)),a.addSubtreeListener(this,`dragleave`,e=>this.onDragLeave(e)),a.addSubtreeListener(this,`drop`,e=>this.onDrop(e)),this._options.enabled!==void 0&&this.applyEnabled(this._options.enabled),this._options.readOnly!==void 0&&this.applyReadOnly(this._options.readOnly)}applyOptions(e){return super.applyOptions(e),e.promptText!==void 0&&(this._options.promptText=e.promptText),this}fieldOptions(){return{multiple:this._options.multiple,accept:this._options.accept,buttonText:this._options.buttonText}}setActive(e){this.setBorder(e?fe:ue),this.setBackgroundColor(e?pe:de)}onDragEnter(e){e.preventDefault(),this._dragDepth++,this._dragDepth===1&&this.setActive(!0)}onDragOver(e){e.preventDefault()}onDragLeave(e){e.preventDefault(),this._dragDepth=Math.max(0,this._dragDepth-1),this._dragDepth===0&&this.setActive(!1)}onDrop(e){if(e.preventDefault(),this._dragDepth=0,this.setActive(!1),!this.isEnabled()||this.isReadOnly())return;let t=e.dataTransfer?.files;!t||t.length===0||this._field.acceptDroppedFiles(t)}getValue(){return this._field.getValue()}setValue(e){return this._field.setValue(e),this}clearValue(){return this._field.clearValue(),this}applyEnabled(e){this._field.setEnabled(e)}applyReadOnly(e){this._field.setReadOnly(e)}},he=s(FileDropZone);export{g as AbstractBooleanInput,h as AbstractInput,C as AbstractPickerField,ae as AutoCompleteField,A as Checkbox,F as ComboBox,V as DateField,j as DatePickerDropdown,H as DateTimeField,N as DateTimePickerDropdown,he as FileDropZone,le as FileField,b as Label,T as Link,Q as NumberSpinner,re as PasswordField,M as PickerButton,P as PickerCell,ne as PickerCellList,O as PickerColumn,k as PickerInput,te as RadioButton,x as Slider,Z as SpinButton,m as Text,q as TextArea,I as TextField,E as TextInput,D as TimeField,S as TimePickerDropdown,J as Toggle,G as UsernameField};
|
|
2
2
|
//# sourceMappingURL=input.es.js.map
|