@jimka/typescript-ui 0.1.1 → 0.3.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/README.md +4 -0
- package/THIRD-PARTY-NOTICES.md +7 -3
- package/dist/lib/{AbstractBooleanInput-C3rj7sje.js → AbstractBooleanInput-C3O4kv7_.js} +2 -2
- package/dist/lib/{AbstractBooleanInput-C3rj7sje.js.map → AbstractBooleanInput-C3O4kv7_.js.map} +1 -1
- package/dist/lib/{AbstractInput-CfjW_HM2.js → AbstractInput-DFWniHqq.js} +2 -2
- package/dist/lib/{AbstractInput-CfjW_HM2.js.map → AbstractInput-DFWniHqq.js.map} +1 -1
- package/dist/lib/AnchorConstraints-CSUcj8Wx.js +2 -0
- package/dist/lib/AnchorConstraints-CSUcj8Wx.js.map +1 -0
- package/dist/lib/AnimatedDropdown-e9urCXK1.js +2 -0
- package/dist/lib/AnimatedDropdown-e9urCXK1.js.map +1 -0
- package/dist/lib/Border-Dq6dXkmS.js +2 -0
- package/dist/lib/Border-Dq6dXkmS.js.map +1 -0
- package/dist/lib/Button-B36rBMKC.js +2 -0
- package/dist/lib/Button-B36rBMKC.js.map +1 -0
- package/dist/lib/{Card-AKIUAWYS.js → Card-P8iUH2-C.js} +2 -2
- package/dist/lib/{Card-AKIUAWYS.js.map → Card-P8iUH2-C.js.map} +1 -1
- package/dist/lib/ComboBox-BjAhXXkY.js +2 -0
- package/dist/lib/ComboBox-BjAhXXkY.js.map +1 -0
- package/dist/lib/Component-CHTzJxEf.js +2 -0
- package/dist/lib/Component-CHTzJxEf.js.map +1 -0
- package/dist/lib/Container-xUbHk6l_.js +2 -0
- package/dist/lib/{Container-3KsvsJ6S.js.map → Container-xUbHk6l_.js.map} +1 -1
- package/dist/lib/DOM-BeR95tE8.js +2 -0
- package/dist/lib/DOM-BeR95tE8.js.map +1 -0
- package/dist/lib/{DragManager-c6M_mE3e.js → DragManager-T5Oljd0F.js} +2 -2
- package/dist/lib/{DragManager-tPMnbjeO.js.map → DragManager-T5Oljd0F.js.map} +1 -1
- package/dist/lib/FieldDecorator-BaTGfKiW.js +2 -0
- package/dist/lib/{FieldDecorator-Bl0h9UEF.js.map → FieldDecorator-BaTGfKiW.js.map} +1 -1
- package/dist/lib/{Fit-CFIr4P9R.js → Fit-E-EIZv1k.js} +2 -2
- package/dist/lib/{Fit-CUS1JXy3.js.map → Fit-E-EIZv1k.js.map} +1 -1
- package/dist/lib/Glyph-CnNslL95.js +2 -0
- package/dist/lib/Glyph-CnNslL95.js.map +1 -0
- package/dist/lib/{Grid-Czux--Mr.js → Grid-BXS2T8MT.js} +2 -2
- package/dist/lib/{Grid-D8luwRPI.js.map → Grid-BXS2T8MT.js.map} +1 -1
- package/dist/lib/GridConstraints-D_kbd-h2.js +2 -0
- package/dist/lib/GridConstraints-D_kbd-h2.js.map +1 -0
- package/dist/lib/HBox-Dm3xgsDE.js +2 -0
- package/dist/lib/{HBox-BWMf9h6r.js.map → HBox-Dm3xgsDE.js.map} +1 -1
- package/dist/lib/{Header-CQjomjo0.js → Header-CqFc2OUx.js} +2 -2
- package/dist/lib/{Header-CQjomjo0.js.map → Header-CqFc2OUx.js.map} +1 -1
- package/dist/lib/{IconText-BXJK0MOq.js → IconText-CTM2r0Tv.js} +2 -2
- package/dist/lib/{IconText-BXJK0MOq.js.map → IconText-CTM2r0Tv.js.map} +1 -1
- package/dist/lib/LayoutConstraints-DkctJZXB.js +2 -0
- package/dist/lib/LayoutConstraints-DkctJZXB.js.map +1 -0
- package/dist/lib/LayoutSerialization-D1OHmxSB.js +2 -0
- package/dist/lib/LayoutSerialization-D1OHmxSB.js.map +1 -0
- package/dist/lib/LayoutSizes-CvMmMgHJ.js +2 -0
- package/dist/lib/LayoutSizes-CvMmMgHJ.js.map +1 -0
- package/dist/lib/List-DHeOPAK2.js +2 -0
- package/dist/lib/List-DHeOPAK2.js.map +1 -0
- package/dist/lib/MemoryStore-DT6iWWco.js +2 -0
- package/dist/lib/MemoryStore-DT6iWWco.js.map +1 -0
- package/dist/lib/Menu-B6ippw-p.js +2 -0
- package/dist/lib/Menu-B6ippw-p.js.map +1 -0
- package/dist/lib/{MenuButton-D15cSbMf.js → MenuButton-Bjm1OyB-.js} +2 -2
- package/dist/lib/{MenuButton-D15cSbMf.js.map → MenuButton-Bjm1OyB-.js.map} +1 -1
- package/dist/lib/Panel-D9lTLGqP.js +2 -0
- package/dist/lib/Panel-D9lTLGqP.js.map +1 -0
- package/dist/lib/Position-DRSlWn4Z.js +2 -0
- package/dist/lib/Position-DRSlWn4Z.js.map +1 -0
- package/dist/lib/ProgressSpinner-glv-29eK.js +2 -0
- package/dist/lib/ProgressSpinner-glv-29eK.js.map +1 -0
- package/dist/lib/RadioButton-R4S3c9WD.js +2 -0
- package/dist/lib/RadioButton-R4S3c9WD.js.map +1 -0
- package/dist/lib/{RovingTabIndex-CFIzIjjU.js → RovingTabIndex-Dgt01LOE.js} +2 -2
- package/dist/lib/{RovingTabIndex-D-zOuptw.js.map → RovingTabIndex-Dgt01LOE.js.map} +1 -1
- package/dist/lib/Scrollbar-CiVV3axj.js +2 -0
- package/dist/lib/Scrollbar-CiVV3axj.js.map +1 -0
- package/dist/lib/Slider-_JVvuQ8M.js +2 -0
- package/dist/lib/Slider-_JVvuQ8M.js.map +1 -0
- package/dist/lib/{Spacer-BVQncB5B.js → Spacer-B57i2-_G.js} +2 -2
- package/dist/lib/{Spacer-BVQncB5B.js.map → Spacer-B57i2-_G.js.map} +1 -1
- package/dist/lib/{TabButton-DqYDfN7P.js → TabButton-DEypdlZf.js} +2 -2
- package/dist/lib/{TabButton-DqYDfN7P.js.map → TabButton-DEypdlZf.js.map} +1 -1
- package/dist/lib/Text-Bni4icFY.js +2 -0
- package/dist/lib/Text-Bni4icFY.js.map +1 -0
- package/dist/lib/Tooltip-BUy6uFKN.js +3 -0
- package/dist/lib/Tooltip-BUy6uFKN.js.map +1 -0
- package/dist/lib/VBox-Dr7Ge9M6.js +2 -0
- package/dist/lib/VBox-Dr7Ge9M6.js.map +1 -0
- package/dist/lib/{VirtualScroller-BKMvTisA.js → VirtualScroller-BPy6KmSX.js} +2 -2
- package/dist/lib/{VirtualScroller-BKMvTisA.js.map → VirtualScroller-BPy6KmSX.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/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 +3 -3
- 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/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/data.es.js +1 -1
- package/dist/lib/data.es.js.map +1 -1
- package/dist/lib/glyphs/solid/index.es.js +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/router.es.js.map +1 -1
- package/dist/lib/{VirtualRowView-C18j90n5.js → selectionsEqual-2PJrcimg.js} +2 -2
- package/dist/lib/{VirtualRowView-C18j90n5.js.map → selectionsEqual-2PJrcimg.js.map} +1 -1
- package/dist/lib/types/component/button/Button.d.ts +4 -3
- package/dist/lib/types/component/chart/AbstractChart.d.ts +1 -1
- package/dist/lib/types/component/chart/ChartLegend.d.ts +1 -1
- package/dist/lib/types/component/container/DialogBackdrop.d.ts +2 -1
- package/dist/lib/types/component/container/MenuItem.d.ts +1 -1
- package/dist/lib/types/component/container/ScrollStrip.d.ts +1 -0
- package/dist/lib/types/component/container/SplitGutter.d.ts +3 -2
- package/dist/lib/types/component/container/TabBar.d.ts +1 -2
- package/dist/lib/types/component/container/TabPanel.d.ts +6 -3
- package/dist/lib/types/component/container/WindowBorder.d.ts +2 -1
- package/dist/lib/types/component/container/WindowHeader.d.ts +2 -1
- package/dist/lib/types/component/diagram/DiagramEdgeLayer.d.ts +14 -1
- package/dist/lib/types/component/diagram/DiagramModel.d.ts +1 -0
- package/dist/lib/types/component/diagram/DiagramNode.d.ts +4 -0
- package/dist/lib/types/component/diagram/DiagramView.d.ts +76 -5
- package/dist/lib/types/component/diagram/ElkLayoutEngine.d.ts +14 -1
- package/dist/lib/types/component/diagram/index.d.ts +2 -2
- package/dist/lib/types/component/display/Glyph.d.ts +2 -1
- package/dist/lib/types/component/display/Markdown.d.ts +1 -1
- package/dist/lib/types/component/display/PaginationBar.d.ts +1 -1
- package/dist/lib/types/component/display/SpinnerWrap.d.ts +2 -0
- package/dist/lib/types/component/display/Video.d.ts +1 -1
- package/dist/lib/types/component/display/VideoPlayer.d.ts +1 -1
- package/dist/lib/types/component/editor/CodeEditor.d.ts +5 -3
- package/dist/lib/types/component/editor/MarkdownEditor.d.ts +1 -1
- package/dist/lib/types/component/input/Checkbox.d.ts +2 -1
- package/dist/lib/types/component/input/Link.d.ts +1 -1
- package/dist/lib/types/component/input/RadioButton.d.ts +2 -1
- package/dist/lib/types/component/input/Slider.d.ts +2 -1
- package/dist/lib/types/component/input/Text.d.ts +4 -4
- package/dist/lib/types/component/input/TextInput.d.ts +3 -2
- package/dist/lib/types/component/list/AbstractSelectableList.d.ts +2 -1
- package/dist/lib/types/component/menubar/MenuBarButton.d.ts +1 -1
- package/dist/lib/types/component/shared/selectionsEqual.d.ts +1 -0
- package/dist/lib/types/component/table/Column.d.ts +2 -0
- package/dist/lib/types/component/table/ColumnConfig.d.ts +1 -0
- package/dist/lib/types/component/table/Header.d.ts +1 -0
- package/dist/lib/types/component/table/Table.d.ts +20 -0
- package/dist/lib/types/component/table/cell/Header.d.ts +1 -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/AnimatedDropdown.d.ts +6 -2
- package/dist/lib/types/core/Animation.d.ts +9 -6
- package/dist/lib/types/core/Aria.d.ts +0 -2
- package/dist/lib/types/core/Body.d.ts +1 -0
- package/dist/lib/types/core/ClassStyleRules.d.ts +17 -0
- package/dist/lib/types/core/Component.d.ts +26 -13
- package/dist/lib/types/core/ComponentDefaults.d.ts +1 -0
- package/dist/lib/types/core/DOM.d.ts +19 -2
- package/dist/lib/types/core/ElementAttributes.d.ts +15 -0
- package/dist/lib/types/core/Event.d.ts +12 -6
- package/dist/lib/types/core/PendingTransitions.d.ts +4 -0
- package/dist/lib/types/core/StyleTarget.d.ts +1 -0
- package/dist/lib/types/core/Util.d.ts +2 -0
- package/dist/lib/types/core/index.d.ts +3 -2
- package/dist/lib/types/layout/Accordion.d.ts +2 -0
- package/dist/lib/types/layout/Border.d.ts +2 -0
- package/dist/lib/types/layout/CollapseSupport.d.ts +5 -1
- package/dist/lib/types/layout/LayoutConstraints.d.ts +1 -0
- package/dist/lib/types/layout/LayoutManager.d.ts +2 -0
- package/dist/lib/types/layout/Split.d.ts +1 -0
- package/dist/lib/types/layout/Tab.d.ts +13 -3
- package/dist/lib/types/layout/Table.d.ts +1 -0
- package/dist/lib/types/overlay/AbstractWindow.d.ts +10 -2
- package/dist/lib/types/overlay/Dialog.d.ts +6 -0
- package/dist/lib/types/overlay/Dock.d.ts +12 -2
- package/dist/lib/types/overlay/Drawer.d.ts +5 -0
- package/dist/lib/types/overlay/Menu.d.ts +3 -1
- package/dist/lib/types/overlay/Notification.d.ts +3 -0
- package/dist/lib/types/overlay/Popover.d.ts +3 -1
- package/dist/lib/types/overlay/Rail.d.ts +7 -0
- package/dist/lib/types/overlay/Tooltip.d.ts +3 -0
- package/dist/lib/types/overlay/index.d.ts +1 -1
- package/dist/lib/types/router/RoutePattern.d.ts +7 -0
- package/dist/lib/types/router/Router.d.ts +13 -2
- package/dist/lib/types/router/index.d.ts +1 -1
- package/dist/lib/validation.es.js +1 -1
- package/llms.txt +2 -2
- package/package.json +4 -8
- package/dist/lib/AbstractBooleanInput-C6CidMMX.js +0 -2
- package/dist/lib/AbstractBooleanInput-C6CidMMX.js.map +0 -1
- package/dist/lib/AbstractInput-DD-NpicS.js +0 -2
- package/dist/lib/AbstractInput-DD-NpicS.js.map +0 -1
- package/dist/lib/AnimatedDropdown-BFz-DO7R.js +0 -2
- package/dist/lib/AnimatedDropdown-BFz-DO7R.js.map +0 -1
- package/dist/lib/AnimatedDropdown-BbGCs70E.js +0 -2
- package/dist/lib/AnimatedDropdown-BbGCs70E.js.map +0 -1
- package/dist/lib/Border-5Ki2DCWz.js +0 -2
- package/dist/lib/Border-5Ki2DCWz.js.map +0 -1
- package/dist/lib/Border-oZC_SDy8.js +0 -2
- package/dist/lib/Border-oZC_SDy8.js.map +0 -1
- package/dist/lib/BoxLayout-8ryMD4j5.js +0 -2
- package/dist/lib/BoxLayout-8ryMD4j5.js.map +0 -1
- package/dist/lib/BoxLayout-DgZukB5_.js +0 -2
- package/dist/lib/BoxLayout-DgZukB5_.js.map +0 -1
- package/dist/lib/Button-Cdq2ySPL.js +0 -2
- package/dist/lib/Button-Cdq2ySPL.js.map +0 -1
- package/dist/lib/Button-DEUtBqK4.js +0 -2
- package/dist/lib/Button-DEUtBqK4.js.map +0 -1
- package/dist/lib/Card-UF0fq8cQ.js +0 -2
- package/dist/lib/Card-UF0fq8cQ.js.map +0 -1
- package/dist/lib/ComboBox-GOBOAJ1N.js +0 -2
- package/dist/lib/ComboBox-GOBOAJ1N.js.map +0 -1
- package/dist/lib/ComboBox-e_YVsWBr.js +0 -2
- package/dist/lib/ComboBox-e_YVsWBr.js.map +0 -1
- package/dist/lib/Component-BR2f0Itb.js +0 -2
- package/dist/lib/Component-BR2f0Itb.js.map +0 -1
- package/dist/lib/Component-Bs6TvaGZ.js +0 -2
- package/dist/lib/Component-Bs6TvaGZ.js.map +0 -1
- package/dist/lib/Container-3KsvsJ6S.js +0 -2
- package/dist/lib/Container-CzyZeMyZ.js +0 -2
- package/dist/lib/Container-CzyZeMyZ.js.map +0 -1
- package/dist/lib/DOM-DeF_dWe2.js +0 -2
- package/dist/lib/DOM-DeF_dWe2.js.map +0 -1
- package/dist/lib/DragManager-c6M_mE3e.js.map +0 -1
- package/dist/lib/DragManager-tPMnbjeO.js +0 -2
- package/dist/lib/FieldDecorator-Bl0h9UEF.js +0 -2
- package/dist/lib/FieldDecorator-E7WzutjO.js +0 -2
- package/dist/lib/FieldDecorator-E7WzutjO.js.map +0 -1
- package/dist/lib/Fit-CFIr4P9R.js.map +0 -1
- package/dist/lib/Fit-CUS1JXy3.js +0 -2
- package/dist/lib/Glyph-6Ki3A1_a.js +0 -2
- package/dist/lib/Glyph-6Ki3A1_a.js.map +0 -1
- package/dist/lib/Glyph-WUqTF_Z9.js +0 -2
- package/dist/lib/Glyph-WUqTF_Z9.js.map +0 -1
- package/dist/lib/Grid-Czux--Mr.js.map +0 -1
- package/dist/lib/Grid-D8luwRPI.js +0 -2
- package/dist/lib/GridConstraints-CzC0w4i-.js +0 -2
- package/dist/lib/GridConstraints-CzC0w4i-.js.map +0 -1
- package/dist/lib/GridConstraints-Q3wvuovN.js +0 -2
- package/dist/lib/GridConstraints-Q3wvuovN.js.map +0 -1
- package/dist/lib/HBox-BWMf9h6r.js +0 -2
- package/dist/lib/HBox-Q8y1PHlk.js +0 -2
- package/dist/lib/HBox-Q8y1PHlk.js.map +0 -1
- package/dist/lib/Header-zPdvC2AX.js +0 -2
- package/dist/lib/Header-zPdvC2AX.js.map +0 -1
- package/dist/lib/IconText-BvGfu7eq.js +0 -2
- package/dist/lib/IconText-BvGfu7eq.js.map +0 -1
- package/dist/lib/LayoutConstraints-CHI2lhPd.js +0 -2
- package/dist/lib/LayoutConstraints-CHI2lhPd.js.map +0 -1
- package/dist/lib/LayoutSerialization-CWU0iEuV.js +0 -2
- package/dist/lib/LayoutSerialization-CWU0iEuV.js.map +0 -1
- package/dist/lib/LayoutSerialization-C_zcwaN3.js +0 -2
- package/dist/lib/LayoutSerialization-C_zcwaN3.js.map +0 -1
- package/dist/lib/LayoutSizes-BW4wyGDI.js +0 -2
- package/dist/lib/LayoutSizes-BW4wyGDI.js.map +0 -1
- package/dist/lib/LayoutSizes-XdhpAOmc.js +0 -2
- package/dist/lib/LayoutSizes-XdhpAOmc.js.map +0 -1
- package/dist/lib/List-BgxnLWnl.js +0 -2
- package/dist/lib/List-BgxnLWnl.js.map +0 -1
- package/dist/lib/List-D-GhoVgB.js +0 -2
- package/dist/lib/List-D-GhoVgB.js.map +0 -1
- package/dist/lib/Menu-BdnwRY0M.js +0 -2
- package/dist/lib/Menu-BdnwRY0M.js.map +0 -1
- package/dist/lib/Menu-Wz4MK6sA.js +0 -2
- package/dist/lib/Menu-Wz4MK6sA.js.map +0 -1
- package/dist/lib/MenuButton-JQQaKThJ.js +0 -2
- package/dist/lib/MenuButton-JQQaKThJ.js.map +0 -1
- package/dist/lib/Panel-DApa7vA6.js +0 -2
- package/dist/lib/Panel-DApa7vA6.js.map +0 -1
- package/dist/lib/Panel-DIsdaqc2.js +0 -2
- package/dist/lib/Panel-DIsdaqc2.js.map +0 -1
- package/dist/lib/Position-B-WfZYAJ.js +0 -2
- package/dist/lib/Position-B-WfZYAJ.js.map +0 -1
- package/dist/lib/Position-DJKB0N3l.js +0 -2
- package/dist/lib/Position-DJKB0N3l.js.map +0 -1
- package/dist/lib/ProgressSpinner-CNYcsBhw.js +0 -2
- package/dist/lib/ProgressSpinner-CNYcsBhw.js.map +0 -1
- package/dist/lib/ProgressSpinner-Dzaka7_c.js +0 -2
- package/dist/lib/ProgressSpinner-Dzaka7_c.js.map +0 -1
- package/dist/lib/RadioButton-CepkneSA.js +0 -2
- package/dist/lib/RadioButton-CepkneSA.js.map +0 -1
- package/dist/lib/RadioButton-eI3-vXn3.js +0 -2
- package/dist/lib/RadioButton-eI3-vXn3.js.map +0 -1
- package/dist/lib/RovingTabIndex-CFIzIjjU.js.map +0 -1
- package/dist/lib/RovingTabIndex-D-zOuptw.js +0 -2
- package/dist/lib/Scrollbar-DQdCdj94.js +0 -2
- package/dist/lib/Scrollbar-DQdCdj94.js.map +0 -1
- package/dist/lib/Scrollbar-DchfiFKC.js +0 -2
- package/dist/lib/Scrollbar-DchfiFKC.js.map +0 -1
- package/dist/lib/Slider-DvDdVvRm.js +0 -2
- package/dist/lib/Slider-DvDdVvRm.js.map +0 -1
- package/dist/lib/Slider-xRxNSjFN.js +0 -2
- package/dist/lib/Slider-xRxNSjFN.js.map +0 -1
- package/dist/lib/Spacer-BqiPiCqz.js +0 -2
- package/dist/lib/Spacer-BqiPiCqz.js.map +0 -1
- package/dist/lib/TabButton-pZKFYg7b.js +0 -2
- package/dist/lib/TabButton-pZKFYg7b.js.map +0 -1
- package/dist/lib/Text-D1RrBY52.js +0 -2
- package/dist/lib/Text-D1RrBY52.js.map +0 -1
- package/dist/lib/Text-DJoUHukb.js +0 -2
- package/dist/lib/Text-DJoUHukb.js.map +0 -1
- package/dist/lib/Tooltip-4lU_tf6r.js +0 -3
- package/dist/lib/Tooltip-4lU_tf6r.js.map +0 -1
- package/dist/lib/Tooltip-5BR7yYEX.js +0 -3
- package/dist/lib/Tooltip-5BR7yYEX.js.map +0 -1
- package/dist/lib/VBox-CdV9VGxR.js +0 -2
- package/dist/lib/VBox-CdV9VGxR.js.map +0 -1
- package/dist/lib/VBox-D5B9ecw0.js +0 -2
- package/dist/lib/VBox-D5B9ecw0.js.map +0 -1
- package/dist/lib/VirtualRowView-Con9SWiU.js +0 -2
- package/dist/lib/VirtualRowView-Con9SWiU.js.map +0 -1
- package/dist/lib/VirtualScroller-BPDmO1ir.js +0 -2
- package/dist/lib/VirtualScroller-BPDmO1ir.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./Position-
|
|
2
|
-
//# sourceMappingURL=Header-
|
|
1
|
+
import{n as e}from"./Position-DRSlWn4Z.js";import{f as t,m as n,p as r}from"./Component-CHTzJxEf.js";import{t as i}from"./Container-xUbHk6l_.js";import{t as a}from"./Text-Bni4icFY.js";import{t as o}from"./Border-Dq6dXkmS.js";import{t as s}from"./Placement-7kqdaK4Z.js";var c={insets:new e(4,4,4,4)},Header=class extends i{_text;constructor(e,n){super(n,{...c,tag:`header`}),this.setLayoutManager(new o),this._text=new a(e),this._options.fontWeight===void 0&&this._text.setFontWeight(`bold`),this._options.fontSize===void 0&&this._text.setFontSize(`--ts-ui-header-font-size`),this._text.setPointerEvents(`none`),this.addComponent(this._text,{placement:s.WEST,anchor:t.WEST,fill:r.HORIZONTAL}),this.subscribeTheme(()=>{this.updatePreferredSize()}),this._options.preferredSize===void 0&&this.updatePreferredSize(),this._options.text!==void 0&&this._text.setText(this._options.text),this._options.textAlign!==void 0&&this._text.setTextAlign(this._options.textAlign),this._options.textShadow!==void 0&&this._text.setTextShadow(this._options.textShadow),this._options.fontFamily!==void 0&&this._text.setFontFamily(this._options.fontFamily),this._options.fontSize!==void 0&&this._text.setFontSize(this._options.fontSize),this._options.fontWeight!==void 0&&this._text.setFontWeight(this._options.fontWeight),this._options.fontStyle!==void 0&&this._text.setFontStyle(this._options.fontStyle),this._options.fontVariant!==void 0&&this._text.setFontVariant(this._options.fontVariant),this._options.fontStretch!==void 0&&this._text.setFontStretch(this._options.fontStretch),this._options.fontKerning!==void 0&&this._text.setFontKerning(this._options.fontKerning),this._options.fontSizeAdjust!==void 0&&this._text.setFontSizeAdjust(this._options.fontSizeAdjust),this._options.lineHeight!==void 0&&this._text.setLineHeight(this._options.lineHeight),this._options.textOverflow!==void 0&&this._text.setTextOverflow(this._options.textOverflow)}applyOptions(e){return super.applyOptions(e),e.text!==void 0&&(this._options.text=e.text),e.textAlign!==void 0&&(this._options.textAlign=e.textAlign),e.textShadow!==void 0&&(this._options.textShadow=e.textShadow),e.fontFamily!==void 0&&(this._options.fontFamily=e.fontFamily),e.fontSize!==void 0&&(this._options.fontSize=e.fontSize),e.fontWeight!==void 0&&(this._options.fontWeight=e.fontWeight),e.fontStyle!==void 0&&(this._options.fontStyle=e.fontStyle),e.fontVariant!==void 0&&(this._options.fontVariant=e.fontVariant),e.fontStretch!==void 0&&(this._options.fontStretch=e.fontStretch),e.fontKerning!==void 0&&(this._options.fontKerning=e.fontKerning),e.fontSizeAdjust!==void 0&&(this._options.fontSizeAdjust=e.fontSizeAdjust),e.lineHeight!==void 0&&(this._options.lineHeight=e.lineHeight),e.textOverflow!==void 0&&(this._options.textOverflow=e.textOverflow),this}updatePreferredSize(){let e=this._text.getPreferredSize(),t=this.getInsets(),n=(e?e.height:20)+t.getTop()+t.getBottom();this.setPreferredSize({width:100,height:n})}getText(){return this._text}getBaseline(){return this.wrapInnerBaseline(this._text.getBaseline())}},l=n(Header);export{l as t};
|
|
2
|
+
//# sourceMappingURL=Header-CqFc2OUx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header-CQjomjo0.js","names":[],"sources":["../../src/typescript/lib/component/display/Header.ts"],"sourcesContent":["// SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0\n\nimport { Border as BorderLayout } from \"~/layout/Border.js\";\nimport { Text, TextOptions } from \"~/component/input/Text.js\";\nimport { Insets } from \"~/primitive/Insets.js\";\nimport { AnchorType } from \"~/layout/AnchorType.js\";\nimport { FillType } from \"~/layout/FillType.js\";\nimport { Placement } from \"~/primitive/Placement.js\";\nimport { Container } from \"~/core/Container.js\";\nimport { callable } from \"~/core/Callable.js\";\n\n/**\n * Construction-time options for {@link Header}. Text and font fields target\n * the inner header label, not the header bar itself.\n *\n * @category Components\n */\nexport interface HeaderOptions extends TextOptions {\n}\n\n/**\n * User-overridable defaults forwarded to `super` via the options bag. The\n * cascade in `Container`/`Component` dispatches each present setter once with the\n * final value. Font fields are handled in the constructor body once the inner\n * `text` child exists — they're written into `_options` by `applyOptions` and\n * dispatched from there.\n */\nconst _defaultHeaderOptions: Partial<HeaderOptions> = {\n // Static content padding around the header label — the single source of the\n // bar's padding (WindowHeader subclasses Header without passing its own\n // insets). 4px matches the spacing headers carried implicitly from Panel\n // before the Container reparent; it is not theme-derived, so headers do not\n // reflow their padding on a theme change.\n insets: new Insets(4, 4, 4, 4),\n};\n\n/**\n * A header bar component containing a left-aligned text label.\n *\n * Renders a `<header>` element with a Border layout manager and a bold label\n * anchored to the west side.\n *\n * @category Components\n */\nclass Header<TOptions extends HeaderOptions = HeaderOptions> extends Container<TOptions> {\n\n private _text!: Text;\n\n constructor(text: string, options?: TOptions) {\n super(\n options,\n { ..._defaultHeaderOptions, tag: \"header\" } as Partial<TOptions>,\n );\n\n this.setLayoutManager(new BorderLayout());\n\n // Build the inner text label. Font defaults are applied here when the\n // caller didn't supply an override — the cascade can't reach `this.text`\n // because it doesn't exist yet during `super`.\n this._text = new Text(text);\n if (this._options.fontWeight === undefined) {\n this._text.setFontWeight(\"bold\");\n }\n if (this._options.fontSize === undefined) {\n this._text.setFontSize(\"--ts-ui-header-font-size\");\n }\n this._text.setPointerEvents(\"none\");\n\n this.addComponent(this._text, {\n placement: Placement.WEST,\n anchor: AnchorType.WEST,\n fill: FillType.HORIZONTAL\n });\n\n // Recompute the preferred height on theme change: the header font size\n // is theme-bound, so a theme swap can change the label's measured height.\n // The insets are static (see `_defaultHeaderOptions`), so padding is not\n // re-derived here.\n this.subscribeTheme(() => {\n this.updatePreferredSize();\n });\n\n if (this._options.preferredSize === undefined) {\n this.updatePreferredSize();\n }\n\n // Late-built state: font/text fields written pure into `_options` by\n // the super-time cascade. Dispatch them now that `this.text` exists.\n if (this._options.text !== undefined) {\n this._text.setText(this._options.text);\n }\n if (this._options.textAlign !== undefined) {\n this._text.setTextAlign(this._options.textAlign);\n }\n if (this._options.textShadow !== undefined) {\n this._text.setTextShadow(this._options.textShadow);\n }\n if (this._options.fontFamily !== undefined) {\n this._text.setFontFamily(this._options.fontFamily);\n }\n if (this._options.fontSize !== undefined) {\n this._text.setFontSize(this._options.fontSize);\n }\n if (this._options.fontWeight !== undefined) {\n this._text.setFontWeight(this._options.fontWeight);\n }\n if (this._options.fontStyle !== undefined) {\n this._text.setFontStyle(this._options.fontStyle);\n }\n if (this._options.fontVariant !== undefined) {\n this._text.setFontVariant(this._options.fontVariant);\n }\n if (this._options.fontStretch !== undefined) {\n this._text.setFontStretch(this._options.fontStretch);\n }\n if (this._options.fontKerning !== undefined) {\n this._text.setFontKerning(this._options.fontKerning);\n }\n if (this._options.fontSizeAdjust !== undefined) {\n this._text.setFontSizeAdjust(this._options.fontSizeAdjust);\n }\n if (this._options.lineHeight !== undefined) {\n this._text.setLineHeight(this._options.lineHeight);\n }\n if (this._options.textOverflow !== undefined) {\n this._text.setTextOverflow(this._options.textOverflow);\n }\n }\n\n /**\n * Applies a {@link HeaderOptions} bag. Inherited Container/Component fields\n * cascade through `super.applyOptions`; text-targeting fields are written\n * pure into `_options` here and dispatched from the constructor body once\n * `this.text` exists.\n *\n * @param options - The options bag carrying the values to apply.\n */\n protected applyOptions(options: TOptions): this {\n super.applyOptions(options);\n\n if (options.text !== undefined) this._options.text = options.text;\n if (options.textAlign !== undefined) this._options.textAlign = options.textAlign;\n if (options.textShadow !== undefined) this._options.textShadow = options.textShadow;\n if (options.fontFamily !== undefined) this._options.fontFamily = options.fontFamily;\n if (options.fontSize !== undefined) this._options.fontSize = options.fontSize;\n if (options.fontWeight !== undefined) this._options.fontWeight = options.fontWeight;\n if (options.fontStyle !== undefined) this._options.fontStyle = options.fontStyle;\n if (options.fontVariant !== undefined) this._options.fontVariant = options.fontVariant;\n if (options.fontStretch !== undefined) this._options.fontStretch = options.fontStretch;\n if (options.fontKerning !== undefined) this._options.fontKerning = options.fontKerning;\n if (options.fontSizeAdjust !== undefined) this._options.fontSizeAdjust = options.fontSizeAdjust;\n if (options.lineHeight !== undefined) this._options.lineHeight = options.lineHeight;\n if (options.textOverflow !== undefined) this._options.textOverflow = options.textOverflow;\n\n return this;\n }\n\n /**\n * Recalculates the preferred height from the text component's measured preferred size.\n *\n * Called at construction time and after each theme change so that font-size\n * adjustments propagate to the header's layout hint automatically. `protected`\n * so a subclass can override the derivation — `WindowHeader` substitutes a\n * chrome-band thickness so its stretched controls fill the bar.\n */\n protected updatePreferredSize(): void {\n const textSize = this._text.getPreferredSize();\n const insets = this.getInsets();\n const textHeight = textSize ? textSize.height : 20;\n const preferredHeight = textHeight\n + insets.getTop()\n + insets.getBottom();\n\n this.setPreferredSize(100, preferredHeight);\n }\n\n /**\n * Returns the Text child used to display the header text.\n *\n * @returns The internal Text instance.\n */\n getText() {\n return this._text;\n }\n\n /**\n * Returns the offset from the top of the header to the label's text baseline.\n *\n * @returns The baseline offset in pixels, or `null` when the label has no baseline.\n */\n getBaseline(): number | null {\n return this.wrapInnerBaseline(this._text.getBaseline());\n }\n}\n\nconst HeaderCallable = callable(Header);\ntype HeaderCallable<TOptions extends HeaderOptions = HeaderOptions> = Header<TOptions>;\nexport {\n Header as _Header,\n HeaderCallable as Header\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header-CqFc2OUx.js","names":[],"sources":["../../src/typescript/lib/component/display/Header.ts"],"sourcesContent":["// SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0\n\nimport { Border as BorderLayout } from \"~/layout/Border.js\";\nimport { Text, TextOptions } from \"~/component/input/Text.js\";\nimport { Insets } from \"~/primitive/Insets.js\";\nimport { AnchorType } from \"~/layout/AnchorType.js\";\nimport { FillType } from \"~/layout/FillType.js\";\nimport { Placement } from \"~/primitive/Placement.js\";\nimport { Container } from \"~/core/Container.js\";\nimport { callable } from \"~/core/Callable.js\";\n\n/**\n * Construction-time options for {@link Header}. Text and font fields target\n * the inner header label, not the header bar itself.\n *\n * @category Components\n */\nexport interface HeaderOptions extends TextOptions {\n}\n\n/**\n * User-overridable defaults forwarded to `super` via the options bag. The\n * cascade in `Container`/`Component` dispatches each present setter once with the\n * final value. Font fields are handled in the constructor body once the inner\n * `text` child exists — they're written into `_options` by `applyOptions` and\n * dispatched from there.\n */\nconst _defaultHeaderOptions: Partial<HeaderOptions> = {\n // Static content padding around the header label — the single source of the\n // bar's padding (WindowHeader subclasses Header without passing its own\n // insets). 4px matches the spacing headers carried implicitly from Panel\n // before the Container reparent; it is not theme-derived, so headers do not\n // reflow their padding on a theme change.\n insets: new Insets(4, 4, 4, 4),\n};\n\n/**\n * A header bar component containing a left-aligned text label.\n *\n * Renders a `<header>` element with a Border layout manager and a bold label\n * anchored to the west side.\n *\n * @category Components\n */\nclass Header<TOptions extends HeaderOptions = HeaderOptions> extends Container<TOptions> {\n\n private _text!: Text;\n\n constructor(text: string, options?: TOptions) {\n super(\n options,\n { ..._defaultHeaderOptions, tag: \"header\" } as Partial<TOptions>,\n );\n\n this.setLayoutManager(new BorderLayout());\n\n // Build the inner text label. Font defaults are applied here when the\n // caller didn't supply an override — the cascade can't reach `this.text`\n // because it doesn't exist yet during `super`.\n this._text = new Text(text);\n if (this._options.fontWeight === undefined) {\n this._text.setFontWeight(\"bold\");\n }\n if (this._options.fontSize === undefined) {\n this._text.setFontSize(\"--ts-ui-header-font-size\");\n }\n this._text.setPointerEvents(\"none\");\n\n this.addComponent(this._text, {\n placement: Placement.WEST,\n anchor: AnchorType.WEST,\n fill: FillType.HORIZONTAL\n });\n\n // Recompute the preferred height on theme change: the header font size\n // is theme-bound, so a theme swap can change the label's measured height.\n // The insets are static (see `_defaultHeaderOptions`), so padding is not\n // re-derived here.\n this.subscribeTheme(() => {\n this.updatePreferredSize();\n });\n\n if (this._options.preferredSize === undefined) {\n this.updatePreferredSize();\n }\n\n // Late-built state: font/text fields written pure into `_options` by\n // the super-time cascade. Dispatch them now that `this.text` exists.\n if (this._options.text !== undefined) {\n this._text.setText(this._options.text);\n }\n if (this._options.textAlign !== undefined) {\n this._text.setTextAlign(this._options.textAlign);\n }\n if (this._options.textShadow !== undefined) {\n this._text.setTextShadow(this._options.textShadow);\n }\n if (this._options.fontFamily !== undefined) {\n this._text.setFontFamily(this._options.fontFamily);\n }\n if (this._options.fontSize !== undefined) {\n this._text.setFontSize(this._options.fontSize);\n }\n if (this._options.fontWeight !== undefined) {\n this._text.setFontWeight(this._options.fontWeight);\n }\n if (this._options.fontStyle !== undefined) {\n this._text.setFontStyle(this._options.fontStyle);\n }\n if (this._options.fontVariant !== undefined) {\n this._text.setFontVariant(this._options.fontVariant);\n }\n if (this._options.fontStretch !== undefined) {\n this._text.setFontStretch(this._options.fontStretch);\n }\n if (this._options.fontKerning !== undefined) {\n this._text.setFontKerning(this._options.fontKerning);\n }\n if (this._options.fontSizeAdjust !== undefined) {\n this._text.setFontSizeAdjust(this._options.fontSizeAdjust);\n }\n if (this._options.lineHeight !== undefined) {\n this._text.setLineHeight(this._options.lineHeight);\n }\n if (this._options.textOverflow !== undefined) {\n this._text.setTextOverflow(this._options.textOverflow);\n }\n }\n\n /**\n * Applies a {@link HeaderOptions} bag. Inherited Container/Component fields\n * cascade through `super.applyOptions`; text-targeting fields are written\n * pure into `_options` here and dispatched from the constructor body once\n * `this.text` exists.\n *\n * @param options - The options bag carrying the values to apply.\n */\n protected applyOptions(options: TOptions): this {\n super.applyOptions(options);\n\n if (options.text !== undefined) this._options.text = options.text;\n if (options.textAlign !== undefined) this._options.textAlign = options.textAlign;\n if (options.textShadow !== undefined) this._options.textShadow = options.textShadow;\n if (options.fontFamily !== undefined) this._options.fontFamily = options.fontFamily;\n if (options.fontSize !== undefined) this._options.fontSize = options.fontSize;\n if (options.fontWeight !== undefined) this._options.fontWeight = options.fontWeight;\n if (options.fontStyle !== undefined) this._options.fontStyle = options.fontStyle;\n if (options.fontVariant !== undefined) this._options.fontVariant = options.fontVariant;\n if (options.fontStretch !== undefined) this._options.fontStretch = options.fontStretch;\n if (options.fontKerning !== undefined) this._options.fontKerning = options.fontKerning;\n if (options.fontSizeAdjust !== undefined) this._options.fontSizeAdjust = options.fontSizeAdjust;\n if (options.lineHeight !== undefined) this._options.lineHeight = options.lineHeight;\n if (options.textOverflow !== undefined) this._options.textOverflow = options.textOverflow;\n\n return this;\n }\n\n /**\n * Recalculates the preferred height from the text component's measured preferred size.\n *\n * Called at construction time and after each theme change so that font-size\n * adjustments propagate to the header's layout hint automatically. `protected`\n * so a subclass can override the derivation — `WindowHeader` substitutes a\n * chrome-band thickness so its stretched controls fill the bar.\n */\n protected updatePreferredSize(): void {\n const textSize = this._text.getPreferredSize();\n const insets = this.getInsets();\n const textHeight = textSize ? textSize.height : 20;\n const preferredHeight = textHeight\n + insets.getTop()\n + insets.getBottom();\n\n this.setPreferredSize({ width: 100, height: preferredHeight });\n }\n\n /**\n * Returns the Text child used to display the header text.\n *\n * @returns The internal Text instance.\n */\n getText() {\n return this._text;\n }\n\n /**\n * Returns the offset from the top of the header to the label's text baseline.\n *\n * @returns The baseline offset in pixels, or `null` when the label has no baseline.\n */\n getBaseline(): number | null {\n return this.wrapInnerBaseline(this._text.getBaseline());\n }\n}\n\nconst HeaderCallable = callable(Header);\ntype HeaderCallable<TOptions extends HeaderOptions = HeaderOptions> = Header<TOptions>;\nexport {\n Header as _Header,\n HeaderCallable as Header\n};\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./Position-
|
|
2
|
-
//# sourceMappingURL=IconText-
|
|
1
|
+
import{n as e}from"./Position-DRSlWn4Z.js";import{m as t,t as n}from"./Component-CHTzJxEf.js";import{t as r}from"./Glyph-CnNslL95.js";import{t as i}from"./Text-Bni4icFY.js";import{t as a}from"./HBox-Dm3xgsDE.js";var o={gap:2,insets:new e(0,0,0,0)},IconText=class extends n{_glyph;_text;constructor(e,t,n){super(n,{...o,layoutManager:new a}),this._glyph=new r(e),this._text=new i(t),this.addComponent(this._glyph),this.addComponent(this._text),this.getLayoutManager().setComponentSpacing(this.getGap()),this._options.glyph!==void 0&&this.setGlyph(this._options.glyph),this._options.text!==void 0&&this.setText(this._options.text)}applyOptions(e){return super.applyOptions(e),e.gap!==void 0&&(this._options.gap=e.gap),e.glyph!==void 0&&(this._options.glyph=e.glyph),e.text!==void 0&&(this._options.text=e.text),this}setGlyph(e){return this.removeComponent(this._glyph),this._glyph=new r(e),this.insertComponent(this._glyph,0),this}setText(e){return this._text.setText(e),this}setGap(e){return this._options.gap=e,this.getLayoutManager().setComponentSpacing(e),this}getGap(){return this._options.gap??this._defaultOptions.gap}getGlyphComponent(){return this._glyph}getTextComponent(){return this._text}},s=t(IconText);export{s as t};
|
|
2
|
+
//# sourceMappingURL=IconText-CTM2r0Tv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconText-
|
|
1
|
+
{"version":3,"file":"IconText-CTM2r0Tv.js","names":[],"sources":["../../src/typescript/lib/component/display/IconText.ts"],"sourcesContent":["// SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0\n\nimport { Component, ComponentOptions } from \"~/core/Component.js\";\nimport { HBox } from \"~/layout/HBox.js\";\nimport { Insets } from \"~/primitive/Insets.js\";\nimport { Text } from \"~/component/input/Text.js\";\nimport { Glyph } from \"~/component/display/Glyph.js\";\nimport { callable } from \"~/core/Callable.js\";\n\n/**\n * Construction-time options for {@link IconText}.\n *\n * @category Components\n */\nexport interface IconTextOptions extends ComponentOptions {\n glyph?: string;\n text?: string;\n gap?: number;\n}\n\n/**\n * User-overridable defaults forwarded to `super` via the options bag. The\n * cascade dispatches each present setter once with the final value. `gap`\n * is included even though its setter touches `getLayoutManager()`: it is\n * pure-bag-written by `applyOptions` and dispatched after the HBox is built.\n * `layoutManager` is *not* listed because each instance needs its own fresh\n * HBox — sharing one instance across components would corrupt layout state.\n */\nconst _defaultIconTextOptions: Partial<IconTextOptions> = {\n gap: 2,\n insets: new Insets(0, 0, 0, 0),\n};\n\n/**\n * A small composite pairing a leading [`Glyph`](/api/component/display/classes/Glyph)\n * with a trailing standalone [`Text`](/api/component/input/classes/Text), laid out\n * horizontally with a configurable gap (default 2).\n *\n * For form-control labels that need to be associated with an input element, use\n * [`IconLabel`](/api/component/display/classes/IconLabel) instead — its trailing\n * text is a real `<label for=\"…\">`.\n *\n * @example\n * ```typescript\n * import { IconText } from '@jimka/typescript-ui/component/display';\n *\n * panel.addComponent(new IconText('times', 'Close'));\n * ```\n *\n * @category Components\n */\nclass IconText extends Component<IconTextOptions> {\n\n private _glyph!: Glyph;\n private _text!: Text;\n\n /**\n * Constructs an `IconText` pairing the named glyph with the given label text.\n *\n * @param glyph - Registry glyph name. Must be present in the internal `Glyphs` registry.\n * @param text - Label text shown to the right of the glyph.\n * @param options - Optional configuration bag (gap override, common Component fields).\n */\n constructor(glyph: string, text: string, options?: IconTextOptions) {\n // The HBox sits in the defaults bag (under user options) so a caller\n // that wants a different layoutManager can still override it.\n super(options, {\n ..._defaultIconTextOptions,\n layoutManager: new HBox(),\n });\n\n this._glyph = new Glyph(glyph);\n this._text = new Text(text);\n\n this.addComponent(this._glyph);\n this.addComponent(this._text);\n\n // Late-built state: `gap` and `glyph`/`text` setters reach into\n // children that didn't exist during `super`'s cascade. Dispatch from\n // `_options` now that the row is built. `gap` always applies its\n // effective value (caller override, else the class default) since the\n // HBox is seeded without spacing.\n (this.getLayoutManager() as HBox).setComponentSpacing(this.getGap());\n if (this._options.glyph !== undefined) {\n this.setGlyph(this._options.glyph);\n }\n if (this._options.text !== undefined) {\n this.setText(this._options.text);\n }\n }\n\n /**\n * Applies an {@link IconTextOptions} bag. Inherited Component fields cascade\n * through `super.applyOptions`; the gap/glyph/text fields are written pure\n * to `_options` here and dispatched from the constructor body once children\n * exist.\n *\n * @param options - The options bag carrying the values to apply.\n */\n protected applyOptions(options: IconTextOptions): this {\n super.applyOptions(options);\n\n if (options.gap !== undefined) this._options.gap = options.gap;\n if (options.glyph !== undefined) this._options.glyph = options.glyph;\n if (options.text !== undefined) this._options.text = options.text;\n\n return this;\n }\n\n /**\n * Replaces the leading glyph with a fresh instance for the given registry name.\n *\n * @param name - Registry glyph name. Must be present in the internal registry.\n *\n * @returns This component, for method chaining.\n */\n setGlyph(name: string): this {\n this.removeComponent(this._glyph);\n\n this._glyph = new Glyph(name);\n this.insertComponent(this._glyph, 0);\n\n return this;\n }\n\n /**\n * Updates the trailing label text.\n *\n * @param text - The new label string.\n *\n * @returns This component, for method chaining.\n */\n setText(text: string): this {\n this._text.setText(text);\n\n return this;\n }\n\n /**\n * Sets the pixel gap between the glyph and the text.\n *\n * @param px - Gap in pixels.\n *\n * @returns This component, for method chaining.\n */\n setGap(px: number): this {\n this._options.gap = px;\n (this.getLayoutManager() as HBox).setComponentSpacing(px);\n\n return this;\n }\n\n /**\n * Returns the effective gap between the glyph and the text — the\n * caller/setter value, else the class default (2).\n *\n * @returns The gap in pixels.\n */\n getGap(): number {\n return (this._options.gap ?? this._defaultOptions.gap)!;\n }\n\n /**\n * Returns the leading glyph component.\n *\n * @returns The [`Glyph`](/api/component/display/classes/Glyph) instance.\n */\n getGlyphComponent(): Glyph {\n return this._glyph;\n }\n\n /**\n * Returns the trailing text component.\n *\n * @returns The [`Text`](/api/component/input/classes/Text) instance.\n */\n getTextComponent(): Text {\n return this._text;\n }\n}\n\nconst IconTextCallable = callable(IconText);\ntype IconTextCallable = IconText;\nexport {\n IconText as _IconText,\n IconTextCallable as IconText\n};\n"],"mappings":"oNA4BA,IAAM,EAAoD,CACtD,IAAQ,EACR,OAAQ,IAAI,EAAO,EAAG,EAAG,EAAG,CAAC,CACjC,EAoBM,SAAN,cAAuB,CAA2B,CAE9C,OACA,MASA,YAAY,EAAe,EAAc,EAA2B,CAGhE,MAAM,EAAS,CACX,GAAG,EACH,cAAe,IAAI,CACvB,CAAC,EAED,KAAK,OAAS,IAAI,EAAM,CAAK,EAC7B,KAAK,MAAS,IAAI,EAAK,CAAI,EAE3B,KAAK,aAAa,KAAK,MAAM,EAC7B,KAAK,aAAa,KAAK,KAAK,EAO5B,KAAM,iBAAiB,CAAC,CAAU,oBAAoB,KAAK,OAAO,CAAC,EAC/D,KAAK,SAAS,QAAU,IAAA,IACxB,KAAK,SAAS,KAAK,SAAS,KAAK,EAEjC,KAAK,SAAS,OAAS,IAAA,IACvB,KAAK,QAAQ,KAAK,SAAS,IAAI,CAEvC,CAUA,aAAuB,EAAgC,CAOnD,OANA,MAAM,aAAa,CAAO,EAEtB,EAAQ,MAAU,IAAA,KAAW,KAAK,SAAS,IAAQ,EAAQ,KAC3D,EAAQ,QAAU,IAAA,KAAW,KAAK,SAAS,MAAQ,EAAQ,OAC3D,EAAQ,OAAU,IAAA,KAAW,KAAK,SAAS,KAAQ,EAAQ,MAExD,IACX,CASA,SAAS,EAAoB,CAMzB,OALA,KAAK,gBAAgB,KAAK,MAAM,EAEhC,KAAK,OAAS,IAAI,EAAM,CAAI,EAC5B,KAAK,gBAAgB,KAAK,OAAQ,CAAC,EAE5B,IACX,CASA,QAAQ,EAAoB,CAGxB,OAFA,KAAK,MAAM,QAAQ,CAAI,EAEhB,IACX,CASA,OAAO,EAAkB,CAIrB,MAHA,MAAK,SAAS,IAAM,EACpB,KAAM,iBAAiB,CAAC,CAAU,oBAAoB,CAAE,EAEjD,IACX,CAQA,QAAiB,CACb,OAAQ,KAAK,SAAS,KAAO,KAAK,gBAAgB,GACtD,CAOA,mBAA2B,CACvB,OAAO,KAAK,MAChB,CAOA,kBAAyB,CACrB,OAAO,KAAK,KAChB,CACJ,EAEM,EAAmB,EAAS,QAAQ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var LayoutConstraints=class{name=null;description=null;glyph=null;tooltip=null;fill=null;anchor=null;placement;ignoreParentInsets=!1;data;closeable;lazy;transient;weight;collapsible;collapseDirection;constructor(){}};export{LayoutConstraints as t};
|
|
2
|
+
//# sourceMappingURL=LayoutConstraints-DkctJZXB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayoutConstraints-DkctJZXB.js","names":[],"sources":["../../src/typescript/lib/layout/LayoutConstraints.ts"],"sourcesContent":["// SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0\n\nimport { FillType } from \"~/layout/FillType\";\nimport { AnchorType } from \"~/layout/AnchorType\";\nimport { Placement } from \"~/primitive/Placement\";\nimport { CollapseDirection } from \"~/component/container/CollapseButton\";\n\n/**\n * Holds per-component layout hints passed to a {@link LayoutManager}.\n * Fields are optional; unset fields cause the layout manager to apply its defaults.\n *\n * @category Layouts\n */\nexport class LayoutConstraints {\n name?: string | null = null;\n description?: string | null = null;\n /**\n * Optional registry glyph name shown leading a tab button's label. Read by\n * the [`Tab`](/api/layout/classes/Tab) manager into the button's `setGlyph`;\n * ignored by other layout managers.\n */\n glyph?: string | null = null;\n /**\n * Optional hover-tooltip text for a tab button. Read by the\n * [`Tab`](/api/layout/classes/Tab) manager (via\n * [`TabBar`](/api/component/container/classes/TabBar)) and attached to the\n * tab button; ignored by other layout managers.\n */\n tooltip?: string | null = null;\n /**\n * How the component fills its allocated cell. Beyond the grid-style managers,\n * [`HBox`](/api/layout/classes/HBox) and [`VBox`](/api/layout/classes/VBox)\n * read the **cross-axis** component as per-child align-self in both\n * `\"preferred\"` and `\"equal\"` mode: `VERTICAL`/`BOTH` stretch a child to the\n * full row height in an HBox, `HORIZONTAL`/`BOTH` to the full column width in\n * a VBox. The main-axis component is ignored by the box (it owns main-axis\n * sequencing). An explicit cross fill overrides the box's global `stretching`.\n */\n fill?: FillType | null = null;\n /**\n * The anchor point used to position the component when it does not fill its\n * cell. Beyond the grid-style managers,\n * [`HBox`](/api/layout/classes/HBox) and [`VBox`](/api/layout/classes/VBox)\n * read the **cross-axis** component as per-child align-self in both\n * `\"preferred\"` and `\"equal\"` mode: `NORTH`/`SOUTH` (and the matching corners)\n * pin a child to the top/bottom of the row in an HBox; `WEST`/`EAST` pin it to\n * the left/right of the column in a VBox. `CENTER` and pure main-axis anchors\n * are inert, leaving each box's default (HBox baseline, VBox WEST origin). An\n * explicit cross anchor overrides the box's global `stretching` for that child.\n */\n anchor?: AnchorType | null = null;\n placement?: Placement;\n ignoreParentInsets?: boolean = false;\n data?: any;\n closeable?: boolean;\n /**\n * Whether a factory passed to\n * [`Component.addComponent`](/api/core/classes/Component#addcomponent) is\n * registered without being run. Read by the\n * [`Tab`](/api/layout/classes/Tab) manager only, where it defaults to\n * `true`; pass `false` to build the child immediately instead. Ignored when\n * the child is an already-constructed component, and by every other manager.\n */\n lazy?: boolean;\n /**\n * Marks a child as chrome that participates in layout but is excluded from\n * layout serialization. A `transient` child is laid out normally (it can be a\n * real tab or pane), but [`serializeLayout`](/api/layout/functions/serializeLayout)\n * skips it — so it is never captured in a saved arrangement nor parked/rebuilt\n * on restore. Used for placeholder chrome such as a [`Dock`](/api/overlay/classes/Dock)\n * empty-state start page shown as a non-closeable tab. Ignored by layout\n * managers themselves.\n */\n transient?: boolean;\n /**\n * A per-component distribution weight, read differently by three managers.\n * [`HBox`](/api/layout/classes/HBox) and [`VBox`](/api/layout/classes/VBox)\n * use it to share **extra main-axis space** among children (unset is treated\n * as `0` — no share). [`Accordion`](/api/layout/classes/Accordion) reads it\n * the same way (`?? 0`) as an open section's share of the container's\n * leftover height, defaulting to `1` when `Accordion.setFillHeight` is on;\n * under `Accordion.setResizable` a `0` section additionally holds its px\n * across a container resize while the weighted sections absorb the change.\n * [`Split`](/api/layout/classes/Split) uses it as the\n * pane's **container-resize weight**: on a container resize the extent delta\n * is split across panes in proportion to this weight, so `0` pins a pane's px\n * size and a positive weight absorbs the change. Split reads the raw value,\n * so an unset weight there means \"default to the pane's current size\" (a\n * proportional rescale), not `0`. `Split.setPaneResizeWeight` overrides it at\n * runtime. Ignored by other layout managers.\n */\n weight?: number;\n /**\n * Whether a region/pane may be collapsed. Read by two managers with\n * **opposite defaults**:\n *\n * - [`Border`](/api/layout/classes/Border) — collapsing is opt-**in**\n * (`collapsible ?? false`): an edge region is fixed unless it sets\n * `collapsible: true`. Ignored for the center region.\n * - [`Split`](/api/layout/classes/Split) — collapsing is opt-**out**\n * (`collapsible !== false`): a pane is collapsible unless it sets\n * `collapsible: false`. A `collapsible: false` pane keeps a draggable\n * gutter (it still resizes) but loses its collapse chevron and cannot be\n * collapsed by double-click, `setPaneCollapsed`, `setPaneCollapsedImmediate`,\n * or the `collapsedPanes` option. Restoring an already-collapsed such pane\n * is still allowed.\n *\n * Ignored by other layout managers.\n */\n collapsible?: boolean;\n /**\n * The direction a [`Split`](/api/layout/classes/Split) pane collapses. A\n * pane collapsing toward its leading edge (`\"west\"`/`\"north\"`, the default)\n * uses the gutter on its trailing side; one collapsing toward its trailing\n * edge (`\"east\"`/`\"south\"`) uses the gutter on its leading side — which is\n * what lets the last pane collapse. Defaults to the leading direction for\n * the split's axis. Ignored by other layout managers.\n */\n collapseDirection?: CollapseDirection;\n\n constructor() {\n }\n}\n"],"mappings":"AAaA,IAAa,kBAAb,KAA+B,CAC3B,KAAuB,KACvB,YAA8B,KAM9B,MAAwB,KAOxB,QAA0B,KAU1B,KAAyB,KAYzB,OAA6B,KAC7B,UACA,mBAA+B,GAC/B,KACA,UASA,KAUA,UAkBA,OAkBA,YASA,kBAEA,aAAc,CACd,CACJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{t as e}from"./DOM-BeR95tE8.js";import{a as t,l as n,t as r}from"./Position-DRSlWn4Z.js";import{d as i,m as a,p as o,t as s}from"./Component-CHTzJxEf.js";import{t as c}from"./ListenerBag-WPdKuuds.js";import{t as l}from"./Container-xUbHk6l_.js";import{a as u}from"./Tooltip-BUy6uFKN.js";import{d,i as f,l as p,n as m,o as h,r as g,t as _}from"./LayoutSizes-CvMmMgHJ.js";import{i as v,n as y}from"./Border-Dq6dXkmS.js";import{t as b}from"./LayoutConstraints-DkctJZXB.js";import{n as x,r as S,t as C}from"./DragManager-T5Oljd0F.js";var w=4,T=1,Split=class extends i{_orientation=`horizontal`;_sizes=new Map;_gutters=[];_collapsed=new Map;_weights=new Map;_pendingCollapsed=[];_listeners=new c;_pendingSizes=null;_dragOriginPointer=0;_dragOriginLhsSize=0;_dragOriginRhsSize=0;_lastAvailableMain=0;_collapseAnimation=null;_pendingCollapseTransitions=[];constructor(e){super(),e&&this.applyOptions(e)}applyOptions(e){if(super.applyOptions(e),e.orientation!==void 0&&this.setOrientation(e.orientation),e.collapsedPanes!==void 0&&(this._pendingCollapsed=[...e.collapsedPanes]),e.paneSizes!==void 0&&(this._pendingSizes=e.paneSizes.map(e=>({...e}))),e.listeners!==void 0){let t=e.listeners;for(let e of Object.keys(t)){let n=t[e];n!==void 0&&this.on(e,n)}}}on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e,...t){this._listeners.fire(e,...t)}isPaneCollapsed(e){let t=this.getContainer();if(!t)return!1;let n=t.getLaidOutComponents()[e];return n?this._collapsed.get(n)??!1:!1}collapsesTowardStart(e){return e===`west`||e===`north`}paneDirection(e){return this.getLayoutConstraints(e)?.collapseDirection??(this._orientation===`horizontal`?`west`:`north`)}paneCollapsible(e){return this.getLayoutConstraints(e)?.collapsible!==!1}gutterTargetPane(e,t){let n=t[e+1];if(n&&this.paneCollapsible(n)&&!this.collapsesTowardStart(this.paneDirection(n)))return e+1;let r=t[e];return r&&this.paneCollapsible(r)&&this.collapsesTowardStart(this.paneDirection(r))?e:-1}paneServingGutter(e,t){let n=this.paneDirection(t[e]);return this.collapsesTowardStart(n)?e<t.length-1&&this.gutterTargetPane(e,t)===e?e:-1:e>0&&this.gutterTargetPane(e-1,t)===e?e-1:-1}setPaneCollapsed(e,t){let n=this.getContainer();if(!n)return this;let r=n.getLaidOutComponents(),i=r[e];if(!i||this.paneServingGutter(e,r)<0||(this._collapsed.get(i)??!1)===t)return this;this._collapsed.set(i,t),this.emit(`panecollapse`,e,t);let a=[...r.map(e=>({component:e,relayout:!0})),...this._gutters.map(e=>({component:e,relayout:!1}))];return this._collapseAnimation=v(n,i,a,this._collapseAnimation,this._pendingCollapseTransitions,()=>{this._collapseAnimation=null}),this}getOrientation(){return this._orientation}setOrientation(e){return this._orientation=e,this}setPaneSize(e,t){return this._sizes.set(e,t),this}getPaneSize(e){return this._sizes.get(e)}setPaneResizeWeight(e,t){return this._weights.set(e,t),this}getPaneResizeWeight(e){return this._weights.get(e)}effectiveResizeWeight(e,t){return this._weights.get(e)??this.getLayoutConstraints(e)?.weight??t}clampMain(e,t,r){let i=e.getMinSize(),a=e.getMaxSize(),o=i?r?i.width:i.height:0,s=a?r?a.width:a.height:1/0;return n.clamp(t,o,s)}isPinnedMain(e,t){let n=e.getMinSize(),r=e.getMaxSize();return(n?t?n.width:n.height:0)===(r?t?r.width:r.height:1/0)}isResizePinnedMain(e){return this.effectiveResizeWeight(e,T)===0}seedFromPreferred(e,t){for(let n of e){if(this._sizes.has(n))continue;let e=n.getPreferredSizeConstraint();if(!e)continue;let r=t?e.width:e.height;this._sizes.set(n,this.clampMain(n,r,t))}}transferPaneSize(e,t){let n=this._sizes.get(e);if(n===void 0)return this;this._sizes.set(t,n),this._sizes.delete(e);let r=this._collapsed.get(e);r!==void 0&&(this._collapsed.set(t,r),this._collapsed.delete(e));let i=this._weights.get(e);return i!==void 0&&(this._weights.set(t,i),this._weights.delete(e)),this}getPaneRatios(){let e=this.getContainer();if(!e)return[];let t=e.getComponents();return t.length===0?[]:g(t.map(e=>this._sizes.get(e)??0),t.length)}getPreferredSize(){return this.computeContentSize(e=>e.getPreferredSize())}getMinSize(){return this.computeContentSize(e=>e.getMinSize())}getMaxSize(){return{width:t,height:t}}computeContentSize(e){let t=this.getContainer();if(!t)return null;let n=t.getLaidOutComponents(),r=t.getPerimeterSize(),i=this._orientation===`horizontal`,a=0,o=0;for(let t=0;t<n.length;t+=1){let r=e(n[t]);r&&(a+=i?r.width:r.height,o=Math.max(o,i?r.height:r.width))}return a+=this.gutterTotal(n.length),i?{width:a+r.left+r.right,height:o+r.top+r.bottom}:{width:o+r.left+r.right,height:a+r.top+r.bottom}}applyPaneRatios(e){let t=this.getContainer();if(!t)return this;let n=t.getComponents(),r=n.length;if(r===0)return this;let i=g(e,r),a=t.getInnerSize(),o=a?this._orientation===`horizontal`?a.width:a.height:0,s=Math.max(0,o-this.gutterTotal(r)),c=s>0?s:1;return n.forEach((e,t)=>{this._sizes.set(e,i[t]*c)}),this._lastAvailableMain=c,t.scheduleLayout(),this}paneSizeUnits(e){return e.map(e=>this.isResizePinnedMain(e)?`px`:`ratio`)}getPaneSizes(){let e=this.getContainer();if(!e)return[];let t=e.getComponents();if(t.length===0)return[];let n=this.paneSizeUnits(t);return this._pendingSizes!==null&&m(this._pendingSizes,n)?this._pendingSizes.map(e=>({...e})):f(n,t.map(e=>this._sizes.get(e)??0))}applyPaneSizes(e){let t=this.getContainer();if(!t)return this;let n=t.getComponents();if(!m(e,this.paneSizeUnits(n)))return this;let r=t.getInnerSize(),i=r?this._orientation===`horizontal`?r.width:r.height:0,a=Math.max(0,i-this.gutterTotal(n.length)),o=_(e,a);return n.forEach((e,t)=>this.setPaneSize(e,o[t])),this._lastAvailableMain=a>0?a:1,t.scheduleLayout(),this}setPaneCollapsedImmediate(e,t){let n=this.getContainer();if(!n)return this;let r=n.getLaidOutComponents(),i=r[e];return!i||t&&this.paneServingGutter(e,r)<0?this:(this._collapsed.set(i,t),this.emit(`panecollapse`,e,t),n.scheduleLayout(),this)}onDragStart(e,t,n){let r=this._gutters.indexOf(t),i=e.getLaidOutComponents()[r],a=e.getLaidOutComponents()[r+1];this._dragOriginPointer=n,this._orientation===`horizontal`?(this._dragOriginLhsSize=i.getWidth(),this._dragOriginRhsSize=a.getWidth()):(this._dragOriginLhsSize=i.getHeight(),this._dragOriginRhsSize=a.getHeight())}onDrag(e,t,n){let r=this._gutters.indexOf(t),i=e.getLaidOutComponents()[r],a=e.getLaidOutComponents()[r+1],o=this._orientation===`horizontal`,s=this._dragOriginLhsSize+this._dragOriginRhsSize,c=i.getMinSize(),l=a.getMinSize(),u=i.getMaxSize(),d=a.getMaxSize(),f=c?o?c.width:c.height:0,p=l?o?l.width:l.height:0,m=u?o?u.width:u.height:1/0,h=d?o?d.width:d.height:1/0,g=n-this._dragOriginPointer,_=Math.max(f,s-h),v=Math.min(m,s-p),y=this._dragOriginLhsSize+g;y=Math.max(_,Math.min(v,y));let b=s-y,x=y-(o?i.getWidth():i.getHeight());o?(i.setWidth(y),t.setX(t.getX()+x),a.setX(a.getX()+x),a.setWidth(b)):(i.setHeight(y),t.setY(t.getY()+x),a.setY(a.getY()+x),a.setHeight(b)),this._sizes.set(i,y),this._sizes.set(a,b),i.doLayout(),a.doLayout()}onDragEnd(){this.emit(`paneresize`,this.getPaneSizes())}detach(){this._collapseAnimation?.(),this._collapseAnimation=null;let t=(this.getContainer()?.getComponents().length??0)>0;for(let e of this._pendingCollapseTransitions)t?e.settle():e.cancel();this._pendingCollapseTransitions.length=0,super.detach();for(let t of this._gutters){let n=t.getElement();e.sink.removeChild(e.source.getParentNode(n),n),t.destroy()}return this._gutters=[],this}gutterTotal(e){return Math.max(0,e-1)*w}computeTotalMinSize(){let e=this.getContainer();if(!e)return{width:0,height:0};let t=e.getLaidOutComponents();if(t.length===0)return{width:0,height:0};let n=t.length-1,r=0,i=0;for(let e=0;e<t.length;e+=1){let a=t[e],o=this._sizes.get(a),s=this._collapsed.get(a)??!1,c=e<n;if(s&&c)r+=18;else{if(!s)if(o!=null)r+=o;else{let e=a.getMinSize();e&&(r+=this._orientation===`horizontal`?e.width:e.height)}c&&(r+=w)}let l=a.getMinSize();l&&(i=Math.max(i,this._orientation===`horizontal`?l.height:l.width))}return this._orientation===`horizontal`?{width:r,height:i}:{width:i,height:r}}doLayout(){let t=this,n=this.getContainer();if(!n)return;let r=n.getInnerSize();if(!r)return;let i=this._orientation===`horizontal`?r.width:r.height;r=this.inflateForOverflow(r);let a=n.getElement(),s=n.getLaidOutComponents(),c=n.getContentInsets(),l=s.length-1;for(let r=this._gutters.length;r<l;r+=1){let i=new y(this._orientation,{expandedBackground:`transparent`}),o=r;i.on(`dragstart`,function(e){t.onDragStart(n,i,e)}),i.on(`drag`,function(e){t.onDrag(n,i,e)}),i.on(`dragend`,()=>this.onDragEnd()),i.on(`collapse`,function(){let e=t.gutterTargetPane(o,n.getLaidOutComponents());e>=0&&t.setPaneCollapsed(e,!t.isPaneCollapsed(e))}),this._gutters.push(i),e.sink.appendChild(a,i.getElement(!0))}let u=c.getLeft(),d=c.getTop();this.recalculateSizes(),this.applyPendingSizes(),this.applyPendingCollapsed(s);let f=this._orientation===`horizontal`,p=f?r.height:r.width,m=this.computeMainAxisSizes(s,i),h=new Set;for(let e=0;e<s.length;e+=1){let t=s[e],n=this.paneServingGutter(e,s);if((this._collapsed.get(t)??!1)&&n>=0){let e=this._gutters[n];e.setCollapseDirection(this.paneDirection(t)),e.setCollapsible(!0),this.placeGutterAsStrip(e,t,u,d,p,f,this.paneDirection(t)),h.add(n),f?u+=18:d+=18;continue}let r=m.get(t);if(t.setVisible(!0),this.placeComponent(t,u,d,f?r:p,f?p:r,o.BOTH),t.setClipPath(n>=0?`inset(0 0 0 0)`:null),f?u+=r:d+=r,e<l){let t=this._gutters[e],n=this.gutterTargetPane(e,s);!(n>=0&&(this._collapsed.get(s[n])??!1)&&this.paneServingGutter(n,s)===e)&&!h.has(e)&&(t.setOpaque(!1),t.setVisible(!0),t.setCollapsible(n>=0),n>=0&&t.setCollapseDirection(this.paneDirection(s[n])),t.setX(u),t.setY(d),f?(t.setWidth(w),t.setHeight(p),u+=w):(t.setWidth(p),t.setHeight(w),d+=w),h.add(e))}}for(let e=0;e<this._gutters.length;e+=1)h.has(e)||this._gutters[e].setVisible(!1)}placeGutterAsStrip(e,t,n,r,i,a,s){e.setOpaque(!0),e.setVisible(!0),e.setX(n),e.setY(r),a?(e.setWidth(18),e.setHeight(i)):(e.setWidth(i),e.setHeight(18));let c=this._sizes.get(t)??18,l=this.collapsesTowardStart(s);if(t.setVisible(!0),a){let e=l?n:n+18-c;this.placeComponent(t,e,r,c,i,o.BOTH)}else{let e=l?r:r+18-c;this.placeComponent(t,n,e,i,c,o.BOTH)}t.setClipPath(this.paneClipInset(s))}paneClipInset(e){switch(e){case`east`:return`inset(0 0 0 100%)`;case`north`:return`inset(0 0 100% 0)`;case`south`:return`inset(100% 0 0 0)`;default:return`inset(0 100% 0 0)`}}applyPendingSizes(){let e=this._pendingSizes;e!==null&&(this._pendingSizes=null,this.applyPaneSizes(e))}applyPendingCollapsed(e){if(this._pendingCollapsed.length!==0){for(let t of this._pendingCollapsed){let n=e[t];n&&this.paneServingGutter(t,e)>=0&&this._collapsed.set(n,!0)}this._pendingCollapsed=[]}}computeMainAxisSizes(e,t){let n=e.length-1,r=0,i=0,a=0;for(let t=0;t<e.length;t+=1){let o=e[t];(this._collapsed.get(o)??!1)&&this.paneServingGutter(t,e)>=0?(i+=1,!this.collapsesTowardStart(this.paneDirection(o))&&t<n&&(a+=1)):r+=this._sizes.get(o)??0}let o=Math.max(0,t-this.gutterTotal(e.length)),s=Math.max(0,o-i*(18-w)+a*w),c=r>0?s/r:0,l=new Map;for(let t=0;t<e.length;t+=1){let n=e[t],r=(this._collapsed.get(n)??!1)&&this.paneServingGutter(t,e)>=0;l.set(n,r?0:(this._sizes.get(n)??0)*c)}return l}recalculateSizes(){let e=this.getContainer();if(!e)return;let t=e.getInnerSize();if(!t)return;let n=e.getComponents();for(let e of[...this._sizes.keys()])n.indexOf(e)<0&&(this._sizes.delete(e),this._collapsed.delete(e));for(let e of[...this._weights.keys()])n.indexOf(e)<0&&this._weights.delete(e);let r=this._orientation===`horizontal`?t.width:t.height,i=Math.max(0,r-this.gutterTotal(n.length)),a=this._orientation===`horizontal`;this.seedFromPreferred(n,a);for(let e of n){let t=this._sizes.get(e);t!==void 0&&this._sizes.set(e,this.clampMain(e,t,a))}if(this._lastAvailableMain>0&&i>0&&i!==this._lastAvailableMain&&this._sizes.size>0){let e=i-this._lastAvailableMain,t=0;for(let e=0;e<n.length;e+=1){let r=n[e];t+=this.effectiveResizeWeight(r,this._sizes.get(r)??0)}if(t>0)for(let r=0;r<n.length;r+=1){let i=n[r],a=this._sizes.get(i);if(a!=null){let n=this.effectiveResizeWeight(i,a);this._sizes.set(i,Math.max(0,a+n/t*e))}}}if(this._lastAvailableMain===0&&i>0&&this._sizes.size>0){let e=0;for(let t=0;t<n.length;t+=1){let r=this.effectiveResizeWeight(n[t],0);r>0&&(e+=r)}if(e>0){let t=0;for(let e=0;e<n.length;e+=1)t+=this._sizes.get(n[e])??0;let r=i-t;for(let t=0;t<n.length;t+=1){let i=n[t],o=this.effectiveResizeWeight(i,0);if(o>0){let t=this._sizes.get(i)??0;this._sizes.set(i,this.clampMain(i,t+o/e*r,a))}}}}let o=0;for(let e=0;e<n.length;e+=1){let t=n[e];this._sizes.has(t)&&(o+=1)}for(let e=0;e<n.length;e+=1){let t=n[e],r=this._sizes.get(t);if(r==null){if(this._sizes.size!=0){r=0;for(let e=0;e<n.length;e+=1){let t=n[e],i=this._sizes.get(t);if(i==null)continue;let a=i*(1/(o+1));r+=a,i-=a,this._sizes.set(t,i)}}else r=i;this._sizes.set(t,r),o+=1}}let s=0,c=0,l=0;for(let e=0;e<n.length;e+=1){let t=n[e],r=this._sizes.get(t)??0;this.isPinnedMain(t,a)?s+=r:this.isResizePinnedMain(t)?c+=r:l+=r}if(i>0){let e=Math.max(0,i-s),t=1,r=1,o=1;l>0&&e>=c?o=(e-c)/l:c>0?(o=0,r=e/c):s>0&&(t=i/s);for(let e=0;e<n.length;e+=1){let i=n[e],s=this._sizes.get(i);if(s==null)continue;let c=this.isPinnedMain(i,a)?t:this.isResizePinnedMain(i)?r:o;c!==1&&this._sizes.set(i,s*c)}}i>0&&(this._lastAvailableMain=i)}},E=a(Split),D=.25,DropZoneHighlight=class extends s{_valid=!0;constructor(){super(),this.setPosition(r.ABSOLUTE),this.setPointerEvents(`none`),this.setBackgroundColor(`var(--ts-ui-drag-dropzone-active-bg)`),this.setVisible(!1)}placeBand(e,t,n,r){this.setX(e),this.setY(t),this.setWidth(n),this.setHeight(r),this.setVisible(!0)}setValid(e){this._valid!==e&&(this._valid=e,this.setBackgroundColor(e?`var(--ts-ui-drag-dropzone-active-bg)`:`var(--ts-ui-drag-dropzone-invalid-bg)`))}hide(){this.setVisible(!1)}},O=u.Band.Window-1,DropZoneOverlay=class extends s{_highlight=new DropZoneHighlight;_zone=null;_valid=!0;constructor(){super(),this.setPosition(r.ABSOLUTE),this.setZIndex(O),this.setPointerEvents(`none`),this.setBackgroundColor(`var(--ts-ui-drag-dropzone-bg)`),this.setBorder({border:`1px solid var(--ts-ui-drag-dropzone-border)`})}attachTo(t){let n=this.getElement(!0);this.setX(0),this.setY(0),this.setWidth(t.getWidth()),this.setHeight(t.getHeight());let r=t.getElement(!0);e.source.getParentElement(n)!==r&&e.sink.appendChild(r,n);let i=this._highlight.getElement(!0);e.source.getParentElement(i)!==n&&e.sink.appendChild(n,i)}setHighlight(e,t=!0){if(e===this._zone&&t===this._valid)return;if(this._zone=e,this._valid=t,e===null){this._highlight.hide();return}this._highlight.setValid(t);let n=this.getWidth(),r=this.getHeight(),i=D,a=0,o=0,s=n,c=r;switch(e){case`top`:a=0,o=0,s=n,c=r*i;break;case`bottom`:a=0,o=r*(1-i),s=n,c=r*i;break;case`left`:a=0,o=0,s=n*i,c=r;break;case`right`:a=n*(1-i),o=0,s=n*i,c=r;break;case`center`:a=n*i,o=r*i,s=n*(1-2*i),c=r*(1-2*i);break}this._highlight.placeBand(a,o,s,c)}highlightFull(){this._zone=null,this._valid=!0,this._highlight.setValid(!0),this._highlight.placeBand(0,0,this.getWidth(),this.getHeight())}detach(){this._zone=null,this._valid=!0,this.removeElement()}},k=a(DropZoneOverlay),DockRegion=class{_region;_overlay=new k;_teardown;_onStructureChanged;_raiseTimer=null;constructor(e,t){this._region=e,this._onStructureChanged=t??null,this._teardown=C.makeDropTarget(e,{accepts:e=>e.dragData.tabDrag===!0,suppressValidityTint:!0,onDragOver:e=>{let t=e.dragData.componentId,n=this.dropZone(e.clientX,e.clientY);return this._overlay.attachTo(this._region),this._overlay.setHighlight(n,this.isLegalDrop(t,n)),this.scheduleSpringRaise(),null},onDragLeave:()=>{this._overlay.detach(),this.clearSpringRaise()},onDrop:e=>{let t=e.dragData.componentId,n=this.dropZone(e.clientX,e.clientY);if(this._overlay.detach(),this.clearSpringRaise(),!this.isLegalDrop(t,n))return!1;let r=S.get(t);if(!r)return!1;n===`center`?this.dockAsTab(r):this.splitOnEdge(r,n),this.raiseHostWindow(),this._onStructureChanged?.()}})}destroy(){this._teardown(),this._overlay.detach(),this.clearSpringRaise()}hostWindow(){for(let e=this._region;e;e=e.getParentComponent())if(e instanceof d)return e;return null}raiseHostWindow(){this.hostWindow()?.bringToFront()}scheduleSpringRaise(){this._raiseTimer===null&&(this._raiseTimer=setTimeout(()=>{this._raiseTimer=null,C.isDragging()&&this.raiseHostWindow()},x))}clearSpringRaise(){this._raiseTimer!==null&&(clearTimeout(this._raiseTimer),this._raiseTimer=null)}dropZone(e,t){return this.isSeedRegion()?`center`:this.computeZone(e,t)}isSeedRegion(){return this._region.getComponents().every(e=>this._region.getLayoutConstraints(e)?.transient===!0)}computeZone(t,n){let r=e.source.getViewportRect(this._region),i=(t-r.left)/r.width,a=(n-r.top)/r.height,o=D,s=i,c=1-i,l=a,u=1-a,d=Math.min(s,c,l,u);return d>=o?`center`:d===s?`left`:d===c?`right`:d===l?`top`:`bottom`}isLegalDrop(e,t){for(let t=this._region;t;t=t.getParentComponent())if(t.getId()===e)return!1;let n=this._region.getComponents();return n.length===1&&n[0].getId()===e?!1:t===`center`?!this.isRedundantCenterDrop(e):!this.isRedundantEdgeDrop(e,t)}isRedundantCenterDrop(e){let t=S.get(e);if(!t)return!1;let n=t.getParentComponent();if(this._region.getLayoutManager()instanceof h)return n===this._region;let r=this._region.getParentComponent();return r?.getLayoutManager()instanceof h&&n===r}isRedundantEdgeDrop(e,t){let n=S.get(e);if(!n)return!1;let r=n.getParentComponent();if(!r||r.getComponents().length!==1)return!1;let i=t===`left`||t===`right`?`horizontal`:`vertical`,a=t===`top`||t===`left`,o=this._region.getLayoutManager();if(o instanceof E&&String(o.getOrientation())===i){if(r.getParentComponent()!==this._region)return!1;let e=this._region.getComponents();return a?e[0]===r:e[e.length-1]===r}let s=this._region.getParentComponent(),c=s?.getLayoutManager()instanceof h?s:this._region,l=c?.getParentComponent();if(!l)return!1;let u=l.getLayoutManager();if(!(u instanceof E&&String(u.getOrientation())===i)||r.getParentComponent()!==l)return!1;let d=l.getComponents(),f=d.indexOf(c),p=d.indexOf(r);return a?p===f-1:p===f+1}splitOnEdge(e,t){let n=t===`left`||t===`right`?`horizontal`:`vertical`,r=t===`top`||t===`left`,i=this.newStack();i.moveComponent(e);let a=this._region.getLayoutManager();if(a instanceof E&&String(a.getOrientation())===n){this._region.moveComponent(i,r?0:this._region.getComponents().length);return}let o=this._region.getParentComponent(),s=o?.getLayoutManager()instanceof h?o:this._region,c=s.getParentComponent();if(!c)return;let u=c.getLayoutManager(),d=c.getComponents().indexOf(s);if(u instanceof E&&String(u.getOrientation())===n){c.moveComponent(i,r?d:d+1);return}let f=new l({layoutManager:new E({orientation:n})});c.moveComponent(f,d);let p=this.ensureStacked(s);f.moveComponent(i,+!r),f.moveComponent(p,+!!r),u instanceof E&&u.transferPaneSize(s,f)}ensureStacked(e){let t=e.getLayoutManager();if(t instanceof h||t instanceof E)return e;let n=this.newStack();return n.moveComponent(e),n}newStack(){let e=new l({layoutManager:new h({reorderable:!0,compact:!0})});return e.getLayoutManager().on(`empty`,()=>this.pruneEmptyStack(e)),e}pruneEmptyStack(e){let t=e.getParentComponent();t&&t.getLayoutManager()instanceof E&&(t.removeComponent(e),this.collapseIfSinglePaneSplit(t))}collapseIfSinglePaneSplit(e){if(!(e.getLayoutManager()instanceof E))return;let t=e.getComponents();if(t.length!==1)return;let n=e.getParentComponent();if(!n)return;let r=n.getComponents().indexOf(e),i=n.getLayoutManager();i instanceof E&&i.transferPaneSize(e,t[0]),n.moveComponent(t[0],r),n.removeComponent(e)}dockAsTab(e){if(this._region.getLayoutManager()instanceof h){this._region.moveComponent(e),this._region.scheduleLayout();return}let t=this._region.getParentComponent();if(!t)return;if(t.getLayoutManager()instanceof h){t.moveComponent(e),t.scheduleLayout();return}let n=t.getComponents().indexOf(this._region),r=this.newStack();t.moveComponent(r,n),r.moveComponent(this._region),r.moveComponent(e),r.scheduleLayout()}};function managerKind(e){let t=e.getLayoutManager();return t?t.getClassName().replace(/^_/,``):``}function panelIdOf(e){return e.getId()}function serializableChildren(e){return e.getComponents().filter(t=>e.getLayoutConstraints(t)?.transient!==!0)}function nodeFor(e){let t=managerKind(e);if(t===`Split`){let t=e.getLayoutManager(),n=e.getComponents().map(nodeFor);return{kind:`split`,orientation:t.getOrientation()===`vertical`?`vertical`:`horizontal`,children:n,ratios:t.getPaneRatios(),collapsed:n.map((e,n)=>t.isPaneCollapsed(n))}}if(t===`Tab`){let t=e.getLayoutManager();return{kind:`tab`,children:serializableChildren(e).map(nodeFor),activeIndex:t.getActiveTabIndex()}}let n=e.getParentComponent()?.getLayoutConstraints(e)?.glyph??null;return{kind:`panel`,panelId:panelIdOf(e),glyph:n}}function windowContentOf(e){return e.getComponents().find(t=>!e.isChromeComponent(t))??null}function windowNodeFor(e){let t=windowContentOf(e);return t?{kind:`window`,content:nodeFor(t),header:e.getTitle(),rect:e.getRect(),state:e.getWindowState(),restoreRect:e.getRestoreRect()}:null}function serializeLayout(e){let t=p.getOpenWindows().map(windowNodeFor).filter(e=>e!==null);return{version:1,root:nodeFor(e),windows:t}}function collectLeaves(e,t){serializableChildren(e).forEach(e=>{let n=managerKind(e);n===`Split`||n===`Tab`?collectLeaves(e,t):t.push(e)})}function parkLeaves(e,t,n){let r=[];collectLeaves(e,r),t.forEach(e=>{let t=windowContentOf(e);if(!t)return;let n=managerKind(t);n===`Split`||n===`Tab`?collectLeaves(t,r):r.push(t)});let i=new Map;return r.forEach(e=>{let t=panelIdOf(e);n(t)===e&&(i.set(t,e),e.getParentComponent()?.removeComponent(e))}),i}function hostsComponent(e,t){for(let n=t;n;n=n.getParentComponent())if(n===e)return!0;return!1}function constraintsFor(e){if(e.kind!==`panel`||!e.glyph)return;let t=new b;return t.glyph=e.glyph,t}function materializeNode(e,t,n){if(e.kind===`panel`){let r=t.get(e.panelId)??n(e.panelId);return r||console.warn(`restoreLayout: no component for panelId "${e.panelId}"; skipping.`),r}let r=new s;return populateContainer(r,e,t,n),r}function populateContainer(e,t,n,r){if(t.kind===`split`){let i=new E({orientation:t.orientation});e.setLayoutManager(i);let a=[];t.children.forEach((i,o)=>{let s=materializeNode(i,n,r);s&&(e.moveComponent(s,void 0,constraintsFor(i)),a.push({ratio:t.ratios[o]??0,collapsed:t.collapsed[o]??!1}))}),i.applyPaneRatios(a.map(e=>e.ratio)),a.forEach((e,t)=>{e.collapsed&&i.setPaneCollapsedImmediate(t,!0)})}else{let i=new h({reorderable:!0,compact:!0});e.setLayoutManager(i),t.children.forEach(t=>{let a=materializeNode(t,n,r);a&&(e.moveComponent(a,void 0,constraintsFor(t)),i.createTab(a))}),i.setActiveTabIndex(t.activeIndex)}}function applyWindow(e,t,n){let r=e.content??(e.panelId?{kind:`panel`,panelId:e.panelId,glyph:null}:null);if(!r){console.warn(`restoreLayout: window node has neither content nor panelId; skipping.`);return}let i=materializeNode(r,t,n);if(!i)return;let a=new p(e.header);a.moveComponent(i,void 0,constraintsFor(r));let o=e.state===`normal`?e.rect:e.restoreRect??e.rect;a.applyRect(o),a.show(),e.state!==`normal`&&a.setWindowState(e.state)}function restoreLayout(e,t,n){let r=p.getOpenWindows().filter(t=>!hostsComponent(t,e)),i=parkLeaves(e,r,n);if(r.forEach(e=>e.onExitAction()),e.removeAllComponents(),t.root.kind===`panel`){let r=materializeNode(t.root,i,n);r&&e.moveComponent(r,void 0,constraintsFor(t.root))}else populateContainer(e,t.root,i,n);t.windows.forEach(e=>applyWindow(e,i,n))}export{E as a,k as i,serializeLayout as n,DockRegion as r,restoreLayout as t};
|
|
2
|
+
//# sourceMappingURL=LayoutSerialization-D1OHmxSB.js.map
|