@jimka/typescript-ui 0.6.0 → 0.7.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.
Files changed (198) hide show
  1. package/dist/lib/{AbstractInput-sRNPzWel.js → AbstractInput-W2PLJV5_.js} +2 -2
  2. package/dist/lib/{AbstractInput-sRNPzWel.js.map → AbstractInput-W2PLJV5_.js.map} +1 -1
  3. package/dist/lib/{Anchor-CwRhdP2J.js → Anchor-iZhsvMlT.js} +2 -2
  4. package/dist/lib/{Anchor-CwRhdP2J.js.map → Anchor-iZhsvMlT.js.map} +1 -1
  5. package/dist/lib/AnimatedDropdown-D0RhVgv3.js +2 -0
  6. package/dist/lib/AnimatedDropdown-D0RhVgv3.js.map +1 -0
  7. package/dist/lib/Border-6GsTNV-2.js +2 -0
  8. package/dist/lib/Border-6GsTNV-2.js.map +1 -0
  9. package/dist/lib/Button-CnFAiQuV.js +2 -0
  10. package/dist/lib/Button-CnFAiQuV.js.map +1 -0
  11. package/dist/lib/{Card-QYo27r5b.js → Card-C20k2YHU.js} +2 -2
  12. package/dist/lib/{Card-QYo27r5b.js.map → Card-C20k2YHU.js.map} +1 -1
  13. package/dist/lib/Checkbox-CM1z8keM.js +2 -0
  14. package/dist/lib/Checkbox-CM1z8keM.js.map +1 -0
  15. package/dist/lib/{CheckboxMenuRow-CesLhSnp.js → CheckboxMenuRow-C1h4LPHR.js} +2 -2
  16. package/dist/lib/{CheckboxMenuRow-CesLhSnp.js.map → CheckboxMenuRow-C1h4LPHR.js.map} +1 -1
  17. package/dist/lib/{CodeEditor-N1FQodcF.js → CodeEditor-CTL2WjF8.js} +2 -2
  18. package/dist/lib/{CodeEditor-N1FQodcF.js.map → CodeEditor-CTL2WjF8.js.map} +1 -1
  19. package/dist/lib/ComboBox-PZ5YPL0X.js +2 -0
  20. package/dist/lib/ComboBox-PZ5YPL0X.js.map +1 -0
  21. package/dist/lib/Component-D99-15Zt.js +2 -0
  22. package/dist/lib/Component-D99-15Zt.js.map +1 -0
  23. package/dist/lib/Container-FWRjgF6T.js +2 -0
  24. package/dist/lib/{Container-abY5Ww3W.js.map → Container-FWRjgF6T.js.map} +1 -1
  25. package/dist/lib/DOM-Cjh7_7TF.js +2 -0
  26. package/dist/lib/DOM-Cjh7_7TF.js.map +1 -0
  27. package/dist/lib/Dialog-DN78RaVH.js +2 -0
  28. package/dist/lib/Dialog-DN78RaVH.js.map +1 -0
  29. package/dist/lib/{FieldDecorator-BlYMfZ9L.js → FieldDecorator-DyPX8CFh.js} +2 -2
  30. package/dist/lib/{FieldDecorator-BlYMfZ9L.js.map → FieldDecorator-DyPX8CFh.js.map} +1 -1
  31. package/dist/lib/{Fit-BhlB-HAo.js → Fit-CaPMj7Up.js} +2 -2
  32. package/dist/lib/{Fit-BhlB-HAo.js.map → Fit-CaPMj7Up.js.map} +1 -1
  33. package/dist/lib/{FloatingPanel-DkJXsZ2D.js → FloatingPanel-Dsy_vJxi.js} +2 -2
  34. package/dist/lib/{FloatingPanel-DkJXsZ2D.js.map → FloatingPanel-Dsy_vJxi.js.map} +1 -1
  35. package/dist/lib/Glyph-DiEpD3gy.js +2 -0
  36. package/dist/lib/Glyph-DiEpD3gy.js.map +1 -0
  37. package/dist/lib/{Grid-Daiz7F5d.js → Grid-ft_UUpj8.js} +2 -2
  38. package/dist/lib/{Grid-Daiz7F5d.js.map → Grid-ft_UUpj8.js.map} +1 -1
  39. package/dist/lib/{GridConstraints-C58LuTqM.js → GridConstraints-CvZ0Nzaw.js} +2 -2
  40. package/dist/lib/{GridConstraints-C58LuTqM.js.map → GridConstraints-CvZ0Nzaw.js.map} +1 -1
  41. package/dist/lib/{Header-Dql3Zxc6.js → Header-Osm3IjDw.js} +2 -2
  42. package/dist/lib/{Header-Dql3Zxc6.js.map → Header-Osm3IjDw.js.map} +1 -1
  43. package/dist/lib/{IconText-PUjhTLlp.js → IconText-BBaYJ2Fx.js} +2 -2
  44. package/dist/lib/{IconText-PUjhTLlp.js.map → IconText-BBaYJ2Fx.js.map} +1 -1
  45. package/dist/lib/{LayoutSerialization-CMxunLfV.js → LayoutSerialization-BC64__O7.js} +2 -2
  46. package/dist/lib/{LayoutSerialization-CMxunLfV.js.map → LayoutSerialization-BC64__O7.js.map} +1 -1
  47. package/dist/lib/List-CQbZK_pT.js +2 -0
  48. package/dist/lib/List-CQbZK_pT.js.map +1 -0
  49. package/dist/lib/{Menu-Q0bpXXze.js → Menu-CwHluLGT.js} +2 -2
  50. package/dist/lib/{Menu-Q0bpXXze.js.map → Menu-CwHluLGT.js.map} +1 -1
  51. package/dist/lib/{MenuButton-DCXi0tsP.js → MenuButton-BqCT-1yv.js} +2 -2
  52. package/dist/lib/{MenuButton-DCXi0tsP.js.map → MenuButton-BqCT-1yv.js.map} +1 -1
  53. package/dist/lib/{OverlayFade-3pof2AJH.js → OverlayFade-CuEXgimf.js} +2 -2
  54. package/dist/lib/{OverlayFade-3pof2AJH.js.map → OverlayFade-CuEXgimf.js.map} +1 -1
  55. package/dist/lib/{Panel-Cy1pdlWO.js → Panel-CtViePqY.js} +2 -2
  56. package/dist/lib/{Panel-Cy1pdlWO.js.map → Panel-CtViePqY.js.map} +1 -1
  57. package/dist/lib/{Position-BwtxouxK.js → Position-BIEU1Eze.js} +2 -2
  58. package/dist/lib/Position-BIEU1Eze.js.map +1 -0
  59. package/dist/lib/{ProgressSpinner-DK8xEQ9y.js → ProgressSpinner-BuBvC1FY.js} +2 -2
  60. package/dist/lib/{ProgressSpinner-DK8xEQ9y.js.map → ProgressSpinner-BuBvC1FY.js.map} +1 -1
  61. package/dist/lib/RadioButton-Df5J-H6m.js +2 -0
  62. package/dist/lib/RadioButton-Df5J-H6m.js.map +1 -0
  63. package/dist/lib/RadioMenuRow-Cfv0x6Qj.js +2 -0
  64. package/dist/lib/RadioMenuRow-Cfv0x6Qj.js.map +1 -0
  65. package/dist/lib/{RovingTabIndex-pHEv5oLD.js → RovingTabIndex--w28AnXc.js} +2 -2
  66. package/dist/lib/{RovingTabIndex-pHEv5oLD.js.map → RovingTabIndex--w28AnXc.js.map} +1 -1
  67. package/dist/lib/Scrollbar-DcnueNJd.js +2 -0
  68. package/dist/lib/Scrollbar-DcnueNJd.js.map +1 -0
  69. package/dist/lib/SelectableText-DZNxjKXR.js +2 -0
  70. package/dist/lib/SelectableText-DZNxjKXR.js.map +1 -0
  71. package/dist/lib/{Slider-CTbwR6HR.js → Slider-DNfd8Lxz.js} +2 -2
  72. package/dist/lib/{Slider-CTbwR6HR.js.map → Slider-DNfd8Lxz.js.map} +1 -1
  73. package/dist/lib/{Spacer-srdN2d2b.js → Spacer-BznfGbwG.js} +2 -2
  74. package/dist/lib/{Spacer-srdN2d2b.js.map → Spacer-BznfGbwG.js.map} +1 -1
  75. package/dist/lib/TabButton-CAACsMov.js +2 -0
  76. package/dist/lib/TabButton-CAACsMov.js.map +1 -0
  77. package/dist/lib/{TabCloseButton-CY7BGitY.js → TabCloseButton-CCiqsX3y.js} +2 -2
  78. package/dist/lib/{TabCloseButton-CY7BGitY.js.map → TabCloseButton-CCiqsX3y.js.map} +1 -1
  79. package/dist/lib/Text-O-FWa5Cy.js +2 -0
  80. package/dist/lib/Text-O-FWa5Cy.js.map +1 -0
  81. package/dist/lib/{Tooltip-CUOJOqQi.js → Tooltip-CyICVu15.js} +2 -2
  82. package/dist/lib/Tooltip-CyICVu15.js.map +1 -0
  83. package/dist/lib/{Tree-C64JNPWJ.js → Tree-CSEguhlk.js} +2 -2
  84. package/dist/lib/{Tree-C64JNPWJ.js.map → Tree-CSEguhlk.js.map} +1 -1
  85. package/dist/lib/{VBox-DfJPWXqc.js → VBox-DVe4UXwX.js} +2 -2
  86. package/dist/lib/{VBox-DfJPWXqc.js.map → VBox-DVe4UXwX.js.map} +1 -1
  87. package/dist/lib/{VirtualScroller-DTIn19o1.js → VirtualScroller-ggPTCQb0.js} +2 -2
  88. package/dist/lib/{VirtualScroller-DTIn19o1.js.map → VirtualScroller-ggPTCQb0.js.map} +1 -1
  89. package/dist/lib/component/button.es.js +1 -1
  90. package/dist/lib/component/chart.es.js +1 -1
  91. package/dist/lib/component/chart.es.js.map +1 -1
  92. package/dist/lib/component/container.es.js +1 -1
  93. package/dist/lib/component/diagram.es.js +1 -1
  94. package/dist/lib/component/display.es.js +1 -1
  95. package/dist/lib/component/display.es.js.map +1 -1
  96. package/dist/lib/component/editor.es.js +2 -2
  97. package/dist/lib/component/editor.es.js.map +1 -1
  98. package/dist/lib/component/input.es.js +1 -1
  99. package/dist/lib/component/input.es.js.map +1 -1
  100. package/dist/lib/component/list.es.js +1 -1
  101. package/dist/lib/component/menubar.es.js +1 -1
  102. package/dist/lib/component/table.es.js +6 -6
  103. package/dist/lib/component/table.es.js.map +1 -1
  104. package/dist/lib/component/tree.es.js +1 -1
  105. package/dist/lib/core.es.js +1 -1
  106. package/dist/lib/core.es.js.map +1 -1
  107. package/dist/lib/glyphs/solid/index.es.js +1 -1
  108. package/dist/lib/layout.es.js +1 -1
  109. package/dist/lib/overlay.es.js +1 -1
  110. package/dist/lib/overlay.es.js.map +1 -1
  111. package/dist/lib/primitive.es.js +1 -1
  112. package/dist/lib/router.es.js +1 -1
  113. package/dist/lib/{selectionsEqual-gMG7gCVI.js → selectionsEqual-C7MrKMQr.js} +2 -2
  114. package/dist/lib/{selectionsEqual-gMG7gCVI.js.map → selectionsEqual-C7MrKMQr.js.map} +1 -1
  115. package/dist/lib/types/component/button/Button.d.ts +9 -0
  116. package/dist/lib/types/component/button/TabButton.d.ts +5 -0
  117. package/dist/lib/types/component/button/ToggleButton.d.ts +3 -0
  118. package/dist/lib/types/component/chart/AbstractChart.d.ts +2 -0
  119. package/dist/lib/types/component/display/Markdown.d.ts +2 -1
  120. package/dist/lib/types/component/input/AbstractCalendarDropdown.d.ts +2 -0
  121. package/dist/lib/types/component/input/AbstractPickerField.d.ts +2 -0
  122. package/dist/lib/types/component/input/AutoCompleteDropdown.d.ts +2 -0
  123. package/dist/lib/types/component/input/ComboBox.d.ts +3 -1
  124. package/dist/lib/types/component/input/Link.d.ts +2 -0
  125. package/dist/lib/types/component/input/PasswordField.d.ts +2 -0
  126. package/dist/lib/types/component/input/PickerInput.d.ts +2 -0
  127. package/dist/lib/types/component/input/SelectableText.d.ts +11 -0
  128. package/dist/lib/types/component/input/SpinButton.d.ts +2 -0
  129. package/dist/lib/types/component/input/Text.d.ts +16 -2
  130. package/dist/lib/types/component/input/TextArea.d.ts +2 -0
  131. package/dist/lib/types/component/input/TextField.d.ts +2 -0
  132. package/dist/lib/types/component/input/TextInput.d.ts +2 -0
  133. package/dist/lib/types/component/input/TimePickerDropdown.d.ts +3 -1
  134. package/dist/lib/types/component/input/UsernameField.d.ts +2 -0
  135. package/dist/lib/types/component/input/index.d.ts +2 -0
  136. package/dist/lib/types/component/list/AbstractSelectableList.d.ts +4 -2
  137. package/dist/lib/types/component/table/Body.d.ts +40 -14
  138. package/dist/lib/types/component/table/Header.d.ts +1 -1
  139. package/dist/lib/types/component/table/Row.d.ts +20 -2
  140. package/dist/lib/types/component/table/Table.d.ts +2 -0
  141. package/dist/lib/types/component/table/TableExporter.d.ts +3 -0
  142. package/dist/lib/types/component/table/TablePanel.d.ts +1 -0
  143. package/dist/lib/types/component/table/TreeTablePanel.d.ts +1 -0
  144. package/dist/lib/types/component/table/cell/Cell.d.ts +7 -2
  145. package/dist/lib/types/component/table/cell/Default.d.ts +1 -1
  146. package/dist/lib/types/component/table/cell/Header.d.ts +3 -0
  147. package/dist/lib/types/component/table/cell/ResizeHandle.d.ts +1 -1
  148. package/dist/lib/types/component/table/cell/renderer/CellRenderer.d.ts +2 -2
  149. package/dist/lib/types/component/table/cell/renderer/String.d.ts +3 -1
  150. package/dist/lib/types/component/table/index.d.ts +1 -1
  151. package/dist/lib/types/core/AnimatedDropdown.d.ts +2 -0
  152. package/dist/lib/types/core/ClassStyleRules.d.ts +46 -3
  153. package/dist/lib/types/core/Component.d.ts +30 -2
  154. package/dist/lib/types/core/DOM.d.ts +5 -1
  155. package/dist/lib/types/core/LayerManager.d.ts +1 -0
  156. package/dist/lib/types/core/StyleTarget.d.ts +2 -0
  157. package/dist/lib/types/core/Theme.d.ts +1 -0
  158. package/dist/lib/types/core/Util.d.ts +4 -0
  159. package/dist/lib/types/core/index.d.ts +1 -1
  160. package/dist/lib/types/layout/Table.d.ts +2 -0
  161. package/dist/lib/types/overlay/AbstractWindow.d.ts +3 -0
  162. package/dist/lib/types/overlay/PopupPanel.d.ts +2 -0
  163. package/dist/lib/validation.es.js +1 -1
  164. package/package.json +1 -1
  165. package/dist/lib/AnimatedDropdown-H3Rh-YMZ.js +0 -2
  166. package/dist/lib/AnimatedDropdown-H3Rh-YMZ.js.map +0 -1
  167. package/dist/lib/Border-0DJFDiij.js +0 -2
  168. package/dist/lib/Border-0DJFDiij.js.map +0 -1
  169. package/dist/lib/Button-MpMIYBYJ.js +0 -2
  170. package/dist/lib/Button-MpMIYBYJ.js.map +0 -1
  171. package/dist/lib/Checkbox-D0JYK-wc.js +0 -2
  172. package/dist/lib/Checkbox-D0JYK-wc.js.map +0 -1
  173. package/dist/lib/ComboBox-Dx8Tk9yg.js +0 -2
  174. package/dist/lib/ComboBox-Dx8Tk9yg.js.map +0 -1
  175. package/dist/lib/Component-B0ShfPVi.js +0 -2
  176. package/dist/lib/Component-B0ShfPVi.js.map +0 -1
  177. package/dist/lib/Container-abY5Ww3W.js +0 -2
  178. package/dist/lib/DOM-C-Edb3tA.js +0 -2
  179. package/dist/lib/DOM-C-Edb3tA.js.map +0 -1
  180. package/dist/lib/Dialog-cbA9V17e.js +0 -2
  181. package/dist/lib/Dialog-cbA9V17e.js.map +0 -1
  182. package/dist/lib/Glyph-_VeBacS2.js +0 -2
  183. package/dist/lib/Glyph-_VeBacS2.js.map +0 -1
  184. package/dist/lib/List-nx8220Fi.js +0 -2
  185. package/dist/lib/List-nx8220Fi.js.map +0 -1
  186. package/dist/lib/Position-BwtxouxK.js.map +0 -1
  187. package/dist/lib/RadioButton-BEwpqg1k.js +0 -2
  188. package/dist/lib/RadioButton-BEwpqg1k.js.map +0 -1
  189. package/dist/lib/RadioMenuRow-DP5qPyFR.js +0 -2
  190. package/dist/lib/RadioMenuRow-DP5qPyFR.js.map +0 -1
  191. package/dist/lib/Scrollbar-t8fFrUVQ.js +0 -2
  192. package/dist/lib/Scrollbar-t8fFrUVQ.js.map +0 -1
  193. package/dist/lib/TabButton-DLoMQzky.js +0 -2
  194. package/dist/lib/TabButton-DLoMQzky.js.map +0 -1
  195. package/dist/lib/Text-CMKnK9uB.js +0 -2
  196. package/dist/lib/Text-CMKnK9uB.js.map +0 -1
  197. package/dist/lib/Tooltip-CUOJOqQi.js.map +0 -1
  198. package/dist/lib/types/component/table/CellGeometry.d.ts +0 -6
@@ -1,2 +1,2 @@
1
- import{t as e}from"../DOM-C-Edb3tA.js";import{n as t,t as n}from"../Position-BwtxouxK.js";import{h as r,t as i}from"../Component-B0ShfPVi.js";import{t as a}from"../Scrollbar-t8fFrUVQ.js";import{t as o}from"../Container-abY5Ww3W.js";import{t as s}from"../Fit-BhlB-HAo.js";import{t as c}from"../Text-CMKnK9uB.js";import{r as l}from"../VBox-DfJPWXqc.js";import{c as u,d,l as f,m as p,p as m,s as h,t as g}from"../RadioMenuRow-DP5qPyFR.js";import{t as _}from"../CheckboxMenuRow-CesLhSnp.js";import{t as v}from"../LayoutConstraints-LIHYYd2F.js";import{n as y,r as b}from"../Border-0DJFDiij.js";import{i as x,n as S,r as C}from"../Menu-Q0bpXXze.js";import{a as w,i as T,n as E,r as D,t as O}from"../GridConstraints-C58LuTqM.js";import{t as k}from"../Grid-Daiz7F5d.js";import{t as A}from"../FloatingPanel-DkJXsZ2D.js";import{t as j}from"../VirtualScroller-DTIn19o1.js";import{t as M}from"../Spacer-srdN2d2b.js";var N=r(class Legend extends c{static LEFT_MARGIN=10;constructor(e){super(void 0,{...e??{},tag:`legend`}),this.setPosition(n.STATIC)}applyStyle(e){return super.applyStyle(e),this.setElementCSSRule(`marginLeft`,`${Legend.LEFT_MARGIN}px`),this}}),P={tag:`fieldset`,border:`var(--ts-ui-input-border)`,borderRadius:`var(--ts-ui-border-radius, 4px)`,insets:new t(5,8,8,8),preferredSize:{width:200,height:200},minSize:{width:100,height:100}},F=class FieldSet extends i{static LEGEND_CLEARANCE_FALLBACK=16;_legend=new N;_legendClearance=null;constructor(e=``,t,n){super(t,{...P,...n??{}}),this._legend.setText(e),this._legend.setDisplayed(e!==``)}applyOptions(e){return super.applyOptions(e),e.legend!==void 0&&this.setTitle(e.legend),this}getTitle(){return this._legend.getText()}setTitle(e){return this._legend.setText(e),this._legend.setDisplayed(e!==``),this.clampLegendWidth(),this}clampLegendWidth(){if(this.getTitle()===``)return this;let e=this.getWidth();if(e<=0)return this;let t=this.getPerimeterSize(),n=t.left+t.right,r=Math.max(0,e-n);return this._legend.setMaxSize({width:r,height:Number.MAX_VALUE}),this}getMinSize(){if(this.getTitle()===``)return super.getMinSize();let e=super.getMinSize(),t=this._legend.getMinSize();if(!t)return e;let n=this.getPerimeterSize(),r=n.left+n.right,i=t.width+r;return e?{width:Math.max(e.width,i),height:e.height}:{width:i,height:0}}getPerimeterSize(){let e=super.getPerimeterSize();return e.top+=this.legendClearance(),e}legendClearance(){if(this.getTitle()===``)return 0;if(this._legendClearance!=null)return this._legendClearance;if(e.source.isModelled())return FieldSet.LEGEND_CLEARANCE_FALLBACK;let t=this._legend.getElement();if(t&&e.source.isConnected(t)){let n=e.source.getOffsetSize(t).offsetHeight;if(n>0)return this._legendClearance=n,this._legendClearance}return FieldSet.LEGEND_CLEARANCE_FALLBACK}doLayout(){return super.doLayout(),this.clampLegendWidth(),this}render(){let t=super.render();return e.sink.appendChild(t,this._legend.getElement(!0)),t}},I=r(F),L=8,LabeledGrid=class extends o{_columns;_grid;_flowCol=0;_rowCount=0;constructor(e){super(e),this._columns=e?.columns??1,this._grid=new k({baselineAlign:!0,columns:2*this._columns,spacing:e?.fieldSpacing??L,columnTracks:this.buildColumnTracks(),rows:0,rowTracks:[]}),this.setLayoutManager(this._grid),e?.rows&&this.applyRows(e.rows)}addField(e,t){return this.openRow(),this.addComponent(new c(e)),this.addComponent(t),this._flowCol+=2,this._flowCol>=2*this._columns&&(this._flowCol=0),this}addRow(e){this.finishRow();for(let t of e)this.addField(t.title,t.component);return this.finishRow(),this}addFullWidthRow(e){this.finishRow(),this.openRow();let t=new O;return t.colSpan=2*this._columns,this.addComponent(e,t),this}getColumns(){return this._columns}buildColumnTracks(){let e=[];for(let t=0;t<this._columns;t++)e.push({mode:`content`}),e.push({mode:`weight`,value:1});return e}applyRows(e){for(let t of e)Array.isArray(t)?this.addRow(t):this.addFullWidthRow(t.component)}openRow(){this._flowCol===0&&(this._rowCount++,this.growRows())}finishRow(){if(this._flowCol===0)return;let e=2*this._columns-this._flowCol;for(let t=0;t<e;t++)this.addComponent(new i);this._flowCol=0}growRows(){this._grid.setRows(this._rowCount),this._grid.setRowTracks(Array.from({length:this._rowCount},()=>({mode:`content`})))}},R=r(LabeledGrid),z={preferredSize:void 0,minSize:void 0},LabeledFieldSet=class extends F{_labeledGrid;constructor(e=``,t,n){super(e,t,{...z,...n??{}}),this._labeledGrid=new R({columns:t?.columns,fieldSpacing:t?.fieldSpacing,rows:t?.rows}),this.setLayoutManager(new s),this.addComponent(this._labeledGrid)}addField(e,t){return this._labeledGrid.addField(e,t),this}addRow(e){return this._labeledGrid.addRow(e),this}addFullWidthRow(e){return this._labeledGrid.addFullWidthRow(e),this}getColumns(){return this._labeledGrid.getColumns()}getGrid(){return this._labeledGrid}},B=r(LabeledFieldSet),V=22,H=1,U=4,W={insets:new t(0,6,0,6),backgroundColor:`var(--ts-ui-statusbar-bg, rgb(245, 245, 245))`,foregroundColor:`var(--ts-ui-statusbar-color, rgb(60, 60, 60))`,border:{borderTop:`${H}px solid var(--ts-ui-statusbar-border, rgb(220, 220, 220))`},minSize:{width:0,height:22},maxSize:{width:2**53-1,height:22}},StatusBar=class extends o{_message=``;_defaultMessage=``;_messageTimer=null;_messageText;_spacer;constructor(e,t){super(e,{...W,...t??{}});let n=new l;n.setComponentSpacing(U),this.setLayoutManager(n),this._messageText=new c(``),this._messageText.centerInHeight(21),this._spacer=M.flex(),this.addComponent(this._messageText),this.addComponent(this._spacer),this.getAria().setRole(`status`),this.getAria().setLive(`polite`),this._options.defaultMessage!==void 0&&(this._defaultMessage=this._options.defaultMessage),this._options.message===void 0?this._defaultMessage!==``&&(this._message=this._defaultMessage,this._messageText.setText(this._defaultMessage)):this.setMessage(this._options.message)}applyOptions(e){return super.applyOptions(e),e.message!==void 0&&(this._options.message=e.message),e.defaultMessage!==void 0&&(this._options.defaultMessage=e.defaultMessage),this}addLeft(e){return this.insertComponent(e,this.getComponents().indexOf(this._spacer)),this}addRight(e){return this.addComponent(e),this}removeLeft(e){return this.removeComponent(e),this}removeRight(e){return this.removeComponent(e),this}setMessage(e,t){return this._messageTimer!==null&&(clearTimeout(this._messageTimer),this._messageTimer=null),this._message=e,this._messageText.setText(e),t!==void 0&&t>0&&(this._messageTimer=setTimeout(()=>{this._messageTimer=null,this._message=this._defaultMessage,this._messageText.setText(this._defaultMessage)},t)),this}getMessage(){return this._message}clearMessage(){return this.setMessage(this._defaultMessage)}setDefaultMessage(e){return this._defaultMessage=e,this._messageTimer===null&&(this._message=e,this._messageText.setText(e)),this}getDefaultMessage(){return this._defaultMessage}destructor(){this._messageTimer!==null&&(clearTimeout(this._messageTimer),this._messageTimer=null),super.destructor()}},G=r(StatusBar),TabPanel=class extends o{constructor(e){if(super(e),this.setLayoutManager(new h(e?.tabOptions)),e?.tabs)for(let t of e.tabs)this.addTab(t.component,t.label,{closeable:t.closeable,glyph:t.glyph,lazy:t.lazy,disposeOnClose:t.disposeOnClose});e?.onTabClose&&this.getTab().on(`tabclose`,e.onTabClose)}addTab(e,t,n){let r=new v;return r.name=t,r.closeable=n?.closeable??!1,r.glyph=n?.glyph??null,r.lazy=n?.lazy,r.disposeOnClose=n?.disposeOnClose,this.addComponent(e,r),this}addLazyTab(e,t,n){return this.addTab(e,t,n)}getTab(){return this.getLayoutManager()}},K=r(TabPanel),AccordionPanel=class extends o{constructor(e){if(super(e),this.setLayoutManager(new D),e?.singleOpen!==void 0&&this.getAccordion().setSingleOpen(e.singleOpen),e?.resizable!==void 0&&this.getAccordion().setResizable(e.resizable),e?.sections)for(let t of e.sections)this.addSection(t.component,t.label,t.initiallyOpen,t.glyph,t.tools,t.weight);e?.onSectionToggle&&this.getAccordion().on(`sectiontoggle`,e.onSectionToggle)}addSection(e,t,n,r,i,a){let o=new E(t,n,r,i);return a!==void 0&&(o.weight=a),this.addComponent(e,o),this}getAccordion(){return this.getLayoutManager()}},q=r(AccordionPanel);export{T as AccordionHeader,w as AccordionIndicator,q as AccordionPanel,_ as CheckboxMenuRow,b as CollapseButton,m as Direction,I as FieldSet,A as FloatingPanel,B as LabeledFieldSet,R as LabeledGrid,N as Legend,C as MenuItem,x as MenuRow,S as MenuSeparator,g as RadioMenuRow,V as STATUS_BAR_HEIGHT,f as ScrollStrip,a as Scrollbar,M as Spacer,y as SplitGutter,G as StatusBar,u as TabBar,K as TabPanel,j as VirtualScroller,p as WindowBorder,d as WindowHeader};
1
+ import{t as e}from"../DOM-Cjh7_7TF.js";import{n as t,t as n}from"../Position-BIEU1Eze.js";import{h as r,t as i}from"../Component-D99-15Zt.js";import{t as a}from"../Scrollbar-DcnueNJd.js";import{t as o}from"../Container-FWRjgF6T.js";import{t as s}from"../Fit-CaPMj7Up.js";import{t as c}from"../Text-O-FWa5Cy.js";import{r as l}from"../VBox-DVe4UXwX.js";import{c as u,d,l as f,m as p,p as m,s as h,t as g}from"../RadioMenuRow-Cfv0x6Qj.js";import{t as _}from"../CheckboxMenuRow-C1h4LPHR.js";import{t as v}from"../LayoutConstraints-LIHYYd2F.js";import{n as y,r as b}from"../Border-6GsTNV-2.js";import{i as x,n as S,r as C}from"../Menu-CwHluLGT.js";import{a as w,i as T,n as E,r as D,t as O}from"../GridConstraints-CvZ0Nzaw.js";import{t as k}from"../Grid-ft_UUpj8.js";import{t as A}from"../FloatingPanel-Dsy_vJxi.js";import{t as j}from"../VirtualScroller-ggPTCQb0.js";import{t as M}from"../Spacer-BznfGbwG.js";var N=r(class Legend extends c{static LEFT_MARGIN=10;constructor(e){super(void 0,{...e??{},tag:`legend`}),this.setPosition(n.STATIC)}applyStyle(e){return super.applyStyle(e),this.setElementCSSRule(`marginLeft`,`${Legend.LEFT_MARGIN}px`),this}}),P={tag:`fieldset`,border:`var(--ts-ui-input-border)`,borderRadius:`var(--ts-ui-border-radius, 4px)`,insets:new t(5,8,8,8),preferredSize:{width:200,height:200},minSize:{width:100,height:100}},F=class FieldSet extends i{static LEGEND_CLEARANCE_FALLBACK=16;_legend=new N;_legendClearance=null;constructor(e=``,t,n){super(t,{...P,...n??{}}),this._legend.setText(e),this._legend.setDisplayed(e!==``)}applyOptions(e){return super.applyOptions(e),e.legend!==void 0&&this.setTitle(e.legend),this}getTitle(){return this._legend.getText()}setTitle(e){return this._legend.setText(e),this._legend.setDisplayed(e!==``),this.clampLegendWidth(),this}clampLegendWidth(){if(this.getTitle()===``)return this;let e=this.getWidth();if(e<=0)return this;let t=this.getPerimeterSize(),n=t.left+t.right,r=Math.max(0,e-n);return this._legend.setMaxSize({width:r,height:Number.MAX_VALUE}),this}getMinSize(){if(this.getTitle()===``)return super.getMinSize();let e=super.getMinSize(),t=this._legend.getMinSize();if(!t)return e;let n=this.getPerimeterSize(),r=n.left+n.right,i=t.width+r;return e?{width:Math.max(e.width,i),height:e.height}:{width:i,height:0}}getPerimeterSize(){let e=super.getPerimeterSize();return e.top+=this.legendClearance(),e}legendClearance(){if(this.getTitle()===``)return 0;if(this._legendClearance!=null)return this._legendClearance;if(e.source.isModelled())return FieldSet.LEGEND_CLEARANCE_FALLBACK;let t=this._legend.getElement();if(t&&e.source.isConnected(t)){let n=e.source.getOffsetSize(t).offsetHeight;if(n>0)return this._legendClearance=n,this._legendClearance}return FieldSet.LEGEND_CLEARANCE_FALLBACK}doLayout(){return super.doLayout(),this.clampLegendWidth(),this}render(){let t=super.render();return e.sink.appendChild(t,this._legend.getElement(!0)),t}},I=r(F),L=8,LabeledGrid=class extends o{_columns;_grid;_flowCol=0;_rowCount=0;constructor(e){super(e),this._columns=e?.columns??1,this._grid=new k({baselineAlign:!0,columns:2*this._columns,spacing:e?.fieldSpacing??L,columnTracks:this.buildColumnTracks(),rows:0,rowTracks:[]}),this.setLayoutManager(this._grid),e?.rows&&this.applyRows(e.rows)}addField(e,t){return this.openRow(),this.addComponent(new c(e)),this.addComponent(t),this._flowCol+=2,this._flowCol>=2*this._columns&&(this._flowCol=0),this}addRow(e){this.finishRow();for(let t of e)this.addField(t.title,t.component);return this.finishRow(),this}addFullWidthRow(e){this.finishRow(),this.openRow();let t=new O;return t.colSpan=2*this._columns,this.addComponent(e,t),this}getColumns(){return this._columns}buildColumnTracks(){let e=[];for(let t=0;t<this._columns;t++)e.push({mode:`content`}),e.push({mode:`weight`,value:1});return e}applyRows(e){for(let t of e)Array.isArray(t)?this.addRow(t):this.addFullWidthRow(t.component)}openRow(){this._flowCol===0&&(this._rowCount++,this.growRows())}finishRow(){if(this._flowCol===0)return;let e=2*this._columns-this._flowCol;for(let t=0;t<e;t++)this.addComponent(new i);this._flowCol=0}growRows(){this._grid.setRows(this._rowCount),this._grid.setRowTracks(Array.from({length:this._rowCount},()=>({mode:`content`})))}},R=r(LabeledGrid),z={preferredSize:void 0,minSize:void 0},LabeledFieldSet=class extends F{_labeledGrid;constructor(e=``,t,n){super(e,t,{...z,...n??{}}),this._labeledGrid=new R({columns:t?.columns,fieldSpacing:t?.fieldSpacing,rows:t?.rows}),this.setLayoutManager(new s),this.addComponent(this._labeledGrid)}addField(e,t){return this._labeledGrid.addField(e,t),this}addRow(e){return this._labeledGrid.addRow(e),this}addFullWidthRow(e){return this._labeledGrid.addFullWidthRow(e),this}getColumns(){return this._labeledGrid.getColumns()}getGrid(){return this._labeledGrid}},B=r(LabeledFieldSet),V=22,H=1,U=4,W={insets:new t(0,6,0,6),backgroundColor:`var(--ts-ui-statusbar-bg, rgb(245, 245, 245))`,foregroundColor:`var(--ts-ui-statusbar-color, rgb(60, 60, 60))`,border:{borderTop:`${H}px solid var(--ts-ui-statusbar-border, rgb(220, 220, 220))`},minSize:{width:0,height:22},maxSize:{width:2**53-1,height:22}},StatusBar=class extends o{_message=``;_defaultMessage=``;_messageTimer=null;_messageText;_spacer;constructor(e,t){super(e,{...W,...t??{}});let n=new l;n.setComponentSpacing(U),this.setLayoutManager(n),this._messageText=new c(``),this._messageText.centerInHeight(21),this._spacer=M.flex(),this.addComponent(this._messageText),this.addComponent(this._spacer),this.getAria().setRole(`status`),this.getAria().setLive(`polite`),this._options.defaultMessage!==void 0&&(this._defaultMessage=this._options.defaultMessage),this._options.message===void 0?this._defaultMessage!==``&&(this._message=this._defaultMessage,this._messageText.setText(this._defaultMessage)):this.setMessage(this._options.message)}applyOptions(e){return super.applyOptions(e),e.message!==void 0&&(this._options.message=e.message),e.defaultMessage!==void 0&&(this._options.defaultMessage=e.defaultMessage),this}addLeft(e){return this.insertComponent(e,this.getComponents().indexOf(this._spacer)),this}addRight(e){return this.addComponent(e),this}removeLeft(e){return this.removeComponent(e),this}removeRight(e){return this.removeComponent(e),this}setMessage(e,t){return this._messageTimer!==null&&(clearTimeout(this._messageTimer),this._messageTimer=null),this._message=e,this._messageText.setText(e),t!==void 0&&t>0&&(this._messageTimer=setTimeout(()=>{this._messageTimer=null,this._message=this._defaultMessage,this._messageText.setText(this._defaultMessage)},t)),this}getMessage(){return this._message}clearMessage(){return this.setMessage(this._defaultMessage)}setDefaultMessage(e){return this._defaultMessage=e,this._messageTimer===null&&(this._message=e,this._messageText.setText(e)),this}getDefaultMessage(){return this._defaultMessage}destructor(){this._messageTimer!==null&&(clearTimeout(this._messageTimer),this._messageTimer=null),super.destructor()}},G=r(StatusBar),TabPanel=class extends o{constructor(e){if(super(e),this.setLayoutManager(new h(e?.tabOptions)),e?.tabs)for(let t of e.tabs)this.addTab(t.component,t.label,{closeable:t.closeable,glyph:t.glyph,lazy:t.lazy,disposeOnClose:t.disposeOnClose});e?.onTabClose&&this.getTab().on(`tabclose`,e.onTabClose)}addTab(e,t,n){let r=new v;return r.name=t,r.closeable=n?.closeable??!1,r.glyph=n?.glyph??null,r.lazy=n?.lazy,r.disposeOnClose=n?.disposeOnClose,this.addComponent(e,r),this}addLazyTab(e,t,n){return this.addTab(e,t,n)}getTab(){return this.getLayoutManager()}},K=r(TabPanel),AccordionPanel=class extends o{constructor(e){if(super(e),this.setLayoutManager(new D),e?.singleOpen!==void 0&&this.getAccordion().setSingleOpen(e.singleOpen),e?.resizable!==void 0&&this.getAccordion().setResizable(e.resizable),e?.sections)for(let t of e.sections)this.addSection(t.component,t.label,t.initiallyOpen,t.glyph,t.tools,t.weight);e?.onSectionToggle&&this.getAccordion().on(`sectiontoggle`,e.onSectionToggle)}addSection(e,t,n,r,i,a){let o=new E(t,n,r,i);return a!==void 0&&(o.weight=a),this.addComponent(e,o),this}getAccordion(){return this.getLayoutManager()}},q=r(AccordionPanel);export{T as AccordionHeader,w as AccordionIndicator,q as AccordionPanel,_ as CheckboxMenuRow,b as CollapseButton,m as Direction,I as FieldSet,A as FloatingPanel,B as LabeledFieldSet,R as LabeledGrid,N as Legend,C as MenuItem,x as MenuRow,S as MenuSeparator,g as RadioMenuRow,V as STATUS_BAR_HEIGHT,f as ScrollStrip,a as Scrollbar,M as Spacer,y as SplitGutter,G as StatusBar,u as TabBar,K as TabPanel,j as VirtualScroller,p as WindowBorder,d as WindowHeader};
2
2
  //# sourceMappingURL=container.es.js.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../DOM-C-Edb3tA.js";import{n as t}from"../Position-BwtxouxK.js";import{S as n,d as r,h as i,t as a}from"../Component-B0ShfPVi.js";import{t as o}from"../ListenerBag-WPdKuuds.js";import{t as s}from"../Container-abY5Ww3W.js";import{t as c}from"../Glyph-_VeBacS2.js";import{t as l}from"../Panel-Cy1pdlWO.js";import{t as u}from"../Fit-BhlB-HAo.js";import{t as d}from"../Text-CMKnK9uB.js";import{n as f,r as p}from"../VBox-DfJPWXqc.js";import{t as m}from"../ProgressSpinner-DK8xEQ9y.js";import{t as h}from"../Button-MpMIYBYJ.js";import{t as g}from"../Anchor-CwRhdP2J.js";import{t as _}from"../IconText-PUjhTLlp.js";import{t as v}from"../FloatingPanel-DkJXsZ2D.js";import{expand as y}from"../glyphs/solid/expand.es.js";import{plus as b}from"../glyphs/solid/plus.es.js";import{minus as x}from"../glyphs/solid/minus.es.js";import{crosshairs as S}from"../glyphs/solid/crosshairs.es.js";var ee=120,C=40,w=`ElkLayoutEngine has been disposed`;function mergeLayoutOptions(...e){let t={};for(let n of e)n&&Object.assign(t,n);return t}var T={"elk.padding":`[top=34,left=12,bottom=12,right=12]`};function mapDiagramNode(e,t){if(e.children&&e.children.length>0)return{id:e.id,layoutOptions:mergeLayoutOptions(T,e.layoutOptions),children:e.children.map(e=>mapDiagramNode(e,t))};let n=t.get(e.id);return{id:e.id,width:e.width??n?.width??ee,height:e.height??n?.height??C,layoutOptions:e.layoutOptions,ports:e.ports?.map(e=>({id:e.id,x:e.x,y:e.y,width:e.width,height:e.height,layoutOptions:e.side===void 0?void 0:{"elk.port.side":e.side}}))}}var E={"elk.hierarchyHandling":`INCLUDE_CHILDREN`};function buildElkGraph(e,t,n){let r=e.nodes.map(e=>mapDiagramNode(e,t)),i=e.edges.map(e=>({id:e.id,sources:[e.sourcePort??e.source],targets:[e.targetPort??e.target]}));return{id:`root`,layoutOptions:mergeLayoutOptions(E,n,e.layoutOptions),children:r,edges:i}}function flattenElkNode(e,t,n,r){let i=t+(e.x??0),a=n+(e.y??0);r.push({id:e.id,x:i,y:a,width:e.width??0,height:e.height??0});for(let t of e.children??[])flattenElkNode(t,i,a,r)}function collectElkEdges(e,t){for(let n of e.edges??[])t.push({edge:n,container:n.container??e.id});for(let n of e.children??[])collectElkEdges(n,t)}function offsetSections(e,t){if(t.x===0&&t.y===0)return e;let shift=e=>({x:e.x+t.x,y:e.y+t.y});return e.map(e=>({startPoint:shift(e.startPoint),endPoint:shift(e.endPoint),bendPoints:e.bendPoints?.map(shift)}))}function mapElkResult(e){let t=[];for(let n of e.children??[])flattenElkNode(n,0,0,t);let n=new Map([[e.id,{x:0,y:0}]]);for(let e of t)n.set(e.id,{x:e.x,y:e.y});let r=[];return collectElkEdges(e,r),{nodes:t,edges:r.map(({edge:e,container:t})=>({id:e.id,sections:offsetSections(e.sections??[],n.get(t)??{x:0,y:0})})),width:e.width??0,height:e.height??0}}var ElkLayoutEngine=class{_elk=null;_workerFactory;_workerUrl;_workerBacked=!1;_disposed=!1;_ownsWorker=!1;_building=null;constructor(e){this._workerFactory=e?.workerFactory,this._workerUrl=e?.workerUrl}async layout(e,t,n){if(this._disposed)throw Error(w);let r=buildElkGraph(e,t,n);try{return mapElkResult(await(await this.ensureElk()).layout(r))}catch(e){if(this._disposed||!this._workerBacked)throw e;this.terminateOwnedWorker(this._elk),this._workerBacked=!1,this._ownsWorker=!1;let t=await this.createMainThreadElk();if(this._disposed)throw Error(w);return this._elk=t,this._building=null,mapElkResult(await t.layout(r))}}dispose(){this._disposed=!0,this.terminateOwnedWorker(this._elk),this._elk=null,this._building=null}async ensureElk(){return this._elk?this._elk:(this._building??=this.createElk().then(e=>{if(this._disposed)throw this.terminateOwnedWorker(e),Error(w);return this._elk=e,e}).catch(e=>{throw this._building=null,e}),this._building)}terminateOwnedWorker(e){e&&this._ownsWorker&&e.terminateWorker()}async createElk(){let{default:e}=await import(`elkjs/lib/elk.bundled.js`);return this._workerFactory?(this._workerBacked=!0,this._ownsWorker=!0,new e({workerFactory:this._workerFactory})):this._workerUrl?(this._workerBacked=!0,new e({workerUrl:this._workerUrl})):new e}async createMainThreadElk(){let{default:e}=await import(`elkjs/lib/elk.bundled.js`);return new e}},D={insets:new t(4,8,4,8),backgroundColor:`var(--ts-ui-diagram-node-bg, var(--ts-ui-button-bg, rgb(245, 245, 245)))`,border:`1px solid var(--ts-ui-border-color, rgb(180, 180, 180))`,borderRadius:`4px`,cursor:`pointer`},O=.6,DiagramNode=class extends l{_label;_content;_badge;get selectedStyleRule(){return this._selectedStyleRule??=this.createStyleRule(`.selected`)}constructor(e,t){super(e,{...D,layoutManager:new u,...t??{}}),this.selectedStyleRule.set(`borderColor`,`var(--ts-ui-accent-color, rgb(30, 100, 200))`),this.selectedStyleRule.set(`backgroundColor`,`var(--ts-ui-diagram-node-selected-bg, var(--ts-ui-table-row-selected, rgba(30, 100, 200, 0.15)))`),this.buildContent(this._options.glyph,this._options.label??``,this._options.badge),this._options.selected!==void 0&&this.setSelected(this._options.selected)}applyOptions(e){return super.applyOptions(e),e.label!==void 0&&(this._options.label=e.label),e.glyph!==void 0&&(this._options.glyph=e.glyph),e.badge!==void 0&&(this._options.badge=e.badge),e.selected!==void 0&&(this._options.selected=e.selected),this}buildContent(e,t,n){this._content&&this.removeComponent(this._content),this._label=e===void 0?new d(t):new _(e,t),n===void 0?(this._badge=void 0,this._content=this._label):(this._badge=new d(n),this._badge.setOpacity(O),this._content=new a({layoutManager:new p,components:[this._label,this._badge]})),this._content.setPointerEvents(`none`),this.addComponent(this._content)}setLabel(e){return this._options.label=e,this._label.setText(e),this}getLabel(){return this._options.label??null}getBadge(){return this._options.badge??null}setSelected(t){this._options.selected=t;let n=this.getElement();return n&&e.sink.apply(n,{toggleClass:{selected:t}}),this}isSelected(){return this._options.selected??!1}init(t){super.init(t);let n=t||this.getElement();return n&&this.isSelected()&&e.sink.apply(n,{toggleClass:{selected:!0}}),this}},k=i(DiagramNode),A=6,j={backgroundColor:`var(--ts-ui-diagram-group-bg, rgba(120, 120, 120, 0.08))`,cursor:`pointer`,border:`1px solid var(--ts-ui-diagram-group-border, var(--ts-ui-border-color, rgb(180, 180, 180)))`,borderRadius:`4px`},DiagramGroupNode=class extends l{_header;constructor(e,t){super(e,{layoutManager:new r,...j,...t??{}});let n=this._options.label??``;this._header=this._options.glyph===void 0?new d(n):new _(this._options.glyph,n),this._header.setPointerEvents(`none`),this._header.setX(A),this._header.setY(A),this.addComponent(this._header)}applyOptions(e){return super.applyOptions(e),e.label!==void 0&&(this._options.label=e.label),e.glyph!==void 0&&(this._options.glyph=e.glyph),this}setLabel(e){return this._options.label=e,this._header.setText(e),this}getLabel(){return this._options.label??null}},M=i(DiagramGroupNode),N=`http://www.w3.org/2000/svg`,P=`var(--ts-ui-diagram-edge, var(--ts-ui-border-color, rgb(120, 120, 120)))`,F=`1.5`,I=`12`,L=`var(--ts-ui-diagram-bg, var(--ts-ui-panel-bg, rgb(255, 255, 255)))`,R=`4`,z=8,B=`6 4`,V=12,H=V/2,U=`0.15`,W=[`one`,`zeroOrOne`,`oneOrMany`,`zeroOrMany`],G={one:{width:12,height:12,refX:12,refY:6,parts:[{tag:`path`,attrs:{d:`M 4 0 L 4 12 M 8 0 L 8 12`}}]},zeroOrOne:{width:16,height:12,refX:16,refY:6,parts:[{tag:`path`,attrs:{d:`M 12 0 L 12 12`}},{tag:`circle`,attrs:{cx:`6`,cy:`6`,r:`4`}}]},oneOrMany:{width:16,height:12,refX:16,refY:6,parts:[{tag:`path`,attrs:{d:`M 0 6 L 12 0 M 0 6 L 12 6 M 0 6 L 12 12`}},{tag:`path`,attrs:{d:`M 14 0 L 14 12`}}]},zeroOrMany:{width:18,height:12,refX:18,refY:6,parts:[{tag:`path`,attrs:{d:`M 6 6 L 18 0 M 6 6 L 18 6 M 6 6 L 18 12`}},{tag:`circle`,attrs:{cx:`3`,cy:`6`,r:`3`}}]}},K=Math.max(z,...Object.values(G).map(e=>e.width));function labelPoint(e){let t=e[0];return t?midpointAlong([t.startPoint,...t.bendPoints??[],t.endPoint]):{x:0,y:0}}function midpointAlong(e){let segmentLength=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),t=0;for(let n=1;n<e.length;n++)t+=segmentLength(e[n-1],e[n]);let n=t/2;for(let t=1;t<e.length;t++){let r=segmentLength(e[t-1],e[t]);if(r>=n){let i=r===0?0:n/r;return{x:e[t-1].x+(e[t].x-e[t-1].x)*i,y:e[t-1].y+(e[t].y-e[t-1].y)*i}}n-=r}return e[e.length-1]}function buildPathData(e){let t=[];for(let n of e){t.push(`M ${n.startPoint.x} ${n.startPoint.y}`);for(let e of n.bendPoints??[])t.push(`L ${e.x} ${e.y}`);t.push(`L ${n.endPoint.x} ${n.endPoint.y}`)}return t.join(` `)}function distanceToSegment(e,t,n,r,i,a){let o=i-n,s=a-r,c=o*o+s*s;if(c===0)return Math.hypot(e-n,t-r);let l=Math.max(0,Math.min(1,((e-n)*o+(t-r)*s)/c));return Math.hypot(e-(n+l*o),t-(r+l*s))}function distanceToRoute(e,t,n){let r=1/0;for(let i of e){let e=[i.startPoint,...i.bendPoints??[],i.endPoint];for(let i=1;i<e.length;i++)r=Math.min(r,distanceToSegment(t,n,e[i-1].x,e[i-1].y,e[i].x,e[i].y))}return r}var DiagramEdgeLayer=class extends a{_edges=[];_drawn=[];_edgeEmphasis=new Set;_dimLayer;_normalLayer;_markerId;_crowsFootMarkerIds;constructor(e){super(e),this._markerId=`${this.getId()}-arrow`,this._crowsFootMarkerIds=Object.fromEntries(W.map(e=>[e,`${this.getId()}-${e}`])),this.setPointerEvents(`none`),this.setCursor(`inherit`)}markerUrl(e){if(e)return`url(#${e===`arrow`?this._markerId:this._crowsFootMarkerIds[e]})`}setEdges(e){return this._edges=e,this._edgeEmphasis=new Set,this.getElement()?this.rebuildPaths():this.onFirstLayout(()=>this.rebuildPaths()),this}setEdgeEmphasis(e){return this._edgeEmphasis=new Set(e??[]),this.rebuildPaths(),this}getEdgeEmphasis(){return[...this._edgeEmphasis]}edgeIdAt(t){if(t===null)return null;let n=e.source.intern(t);return this._drawn.find(e=>e.hit===n)?.id??null}edgesNear(e,t){return this._drawn.filter(n=>distanceToRoute(n.route.sections,e,t)<=H).map(e=>e.route)}groupFor(e){return this._edgeEmphasis.size===0||this._edgeEmphasis.has(e)?this._normalLayer:this._dimLayer}createRootElement(){let t=e.sink.createElementNS(N,`svg`),n=e.sink.createElementNS(N,`defs`);this.createArrowMarker(n);for(let e of W)this.createCrowsFootMarker(n,e);return e.sink.appendChild(t,n),this.trackHandle(n),this._dimLayer=this.createEdgeGroup(t,U),this._normalLayer=this.createEdgeGroup(t,null),t}createEdgeGroup(t,n){let r=e.sink.createElementNS(N,`g`);return n!==null&&e.sink.apply(r,{setAttr:{opacity:n}}),e.sink.appendChild(t,r),this.trackHandle(r),r}createArrowMarker(t){let n=e.sink.createElementNS(N,`marker`);e.sink.apply(n,{setAttr:{id:this._markerId,markerWidth:String(z),markerHeight:String(z),refX:String(z),refY:String(z/2),orient:`auto-start-reverse`,markerUnits:`userSpaceOnUse`}});let r=e.sink.createElementNS(N,`path`);e.sink.apply(r,{setAttr:{d:`M 0 0 L ${z} ${z/2} L 0 ${z} z`,fill:P}}),e.sink.appendChild(n,r),e.sink.appendChild(t,n),this.trackHandle(n),this.trackHandle(r)}createCrowsFootMarker(t,n){let r=G[n],i=e.sink.createElementNS(N,`marker`);e.sink.apply(i,{setAttr:{id:this._crowsFootMarkerIds[n],markerWidth:String(r.width),markerHeight:String(r.height),refX:String(r.refX),refY:String(r.refY),orient:`auto-start-reverse`,markerUnits:`userSpaceOnUse`}}),e.sink.appendChild(t,i),this.trackHandle(i);for(let t of r.parts){let n=e.sink.createElementNS(N,t.tag);e.sink.apply(n,{setAttr:{...t.attrs,fill:`none`,stroke:P}}),e.sink.appendChild(i,n),this.trackHandle(n)}}render(){let e=super.render();return this.rebuildPaths(),e}rebuildPaths(){if(this.getElement()){for(let e of this._drawn)this.releaseDrawnEdge(e);this._drawn=[];for(let e of this._edges){let t=buildPathData(e.sections);if(!t)continue;let n=this.groupFor(e.id),r=this.drawHitPath(n,t),i=this.drawVisiblePath(n,e,t),a=e.style,o=null;a?.label&&(o=this.drawLabel(n,e,a.label)),this._drawn.push({id:e.id,route:e,path:i,hit:r,label:o,group:n})}}}drawHitPath(t,n){let r=e.sink.createElementNS(N,`path`);return e.sink.apply(r,{setAttr:{d:n,fill:`none`,stroke:`transparent`,"stroke-width":String(V),"pointer-events":`stroke`,cursor:`inherit`}}),e.sink.appendChild(t,r),this.trackHandle(r),r}drawVisiblePath(t,n,r){let i=e.sink.createElementNS(N,`path`),a=n.style,o=a?this.markerUrl(a.endMarker):this.markerUrl(`arrow`),s=a?this.markerUrl(a.startMarker):void 0,c={d:r,fill:`none`,stroke:a?.stroke??P,"stroke-width":F};return o&&(c[`marker-end`]=o),s&&(c[`marker-start`]=s),a?.dashed&&(c[`stroke-dasharray`]=B),e.sink.apply(i,{setAttr:c}),e.sink.appendChild(t,i),this.trackHandle(i),i}releaseDrawnEdge(t){let n=[t.hit,t.path,...t.label?[t.label]:[]];for(let r of n)e.sink.removeChild(t.group,r),this.untrackHandle(r),e.sink.release(r)}drawLabel(t,n,r){let i=labelPoint(n.sections),a=e.sink.createElementNS(N,`text`);return e.sink.apply(a,{setAttr:{x:String(i.x),y:String(i.y),fill:P,stroke:L,"stroke-width":R,"stroke-linejoin":`round`,"paint-order":`stroke`,"font-size":I,"text-anchor":`middle`,"dominant-baseline":`central`},text:r}),e.sink.appendChild(t,a),this.trackHandle(a),a}},q=i(DiagramEdgeLayer);c.register(b,x,y,S);var J=1,Y=.25,X=4,Z=1.1,Q=1.5,$=.35,te=24,ne=12,re=0,ie=0,ae=1,oe=2,DiagramView=class extends l{_contentHost;_edgeLayer;_engine;_nodeComponents=new Map;_nodeData=new Map;_containerIds=new Set;_incomingComponents=new Map;_incomingData=new Map;_incomingContainerIds=new Set;_selection=[];_nodeEmphasis=new Set;_layoutGeneration=0;_layoutSettled=null;_busySpinner=null;_graphWidth=0;_graphHeight=0;_listeners=new o;_hoveredEdgeKey=null;_panning=!1;_panStartX=0;_panStartY=0;_pressX=0;_pressY=0;_pointerMoved=!1;_panOriginX=0;_panOriginY=0;_panX=0;_panY=0;_needsInitialCentre=!0;_focusNodeId=null;_lastViewportWidth=NaN;_lastViewportHeight=NaN;_controls;_zoomInBtn;_zoomOutBtn;_fitBtn;_resetBtn;_onZoomIn=()=>this.zoomIn();_onZoomOut=()=>this.zoomOut();_onFit=()=>this.zoomToFit();_onReset=()=>this.resetView();constructor(e){super(e,{zoom:J,minZoom:Y,maxZoom:X,controls:!0}),this.setLayoutManager(new g),this.setCursor(`grab`),this._engine=this.createEngine(),this._contentHost=new s({layoutManager:new r,overflow:`visible`,cursor:`inherit`}),this._contentHost.setTransformOrigin(`0 0`),this.addComponent(this._contentHost),this._edgeLayer=new q,this._contentHost.addComponent(this._edgeLayer),this.buildControls(),this.wireControlListeners(),this.addComponent(this._controls,this._controls.getAnchorConstraints()),this.applyListeners(e?.listeners),this.setControlsVisible(this._options.controls??this._defaultOptions.controls??!0),this._options.zoom!==void 0&&this.setZoom(this._options.zoom),this._focusNodeId=this._options.initialFocusNode??null,this._options.data&&this.setData(this._options.data)}createEngine(){return new ElkLayoutEngine({workerFactory:this._options.elkWorkerFactory,workerUrl:this._options.elkWorkerUrl})}destructor(){this._layoutGeneration+=1,this.settleLayout(),this._busySpinner?.dispose(),this._busySpinner=null,this._engine.dispose(),super.destructor()}applyOptions(e){return super.applyOptions(e),e.data!==void 0&&(this._options.data=e.data),e.nodeRenderer!==void 0&&(this._options.nodeRenderer=e.nodeRenderer),e.groupRenderer!==void 0&&(this._options.groupRenderer=e.groupRenderer),e.layoutOptions!==void 0&&(this._options.layoutOptions=e.layoutOptions),e.elkWorkerUrl!==void 0&&(this._options.elkWorkerUrl=e.elkWorkerUrl),e.elkWorkerFactory!==void 0&&(this._options.elkWorkerFactory=e.elkWorkerFactory),e.minZoom!==void 0&&(this._options.minZoom=e.minZoom),e.maxZoom!==void 0&&(this._options.maxZoom=e.maxZoom),e.zoom!==void 0&&(this._options.zoom=e.zoom),e.controls!==void 0&&(this._options.controls=e.controls),e.initialFocusNode!==void 0&&(this._options.initialFocusNode=e.initialFocusNode),this}setData(e){return this._options.data=e,this.rebuildNodes(e),this.relayout(e),this}getData(){return this._options.data??null}rebuildNodes(e){this.discardIncomingNodes();let t=this._options.nodeRenderer??(e=>new k({label:e.label,glyph:e.glyph,badge:e.badge})),n=this._options.groupRenderer??(e=>new M({label:e.label,glyph:e.glyph})),build=e=>{for(let r of e){let e=(r.children?.length??0)>0,i=e?n(r):t(r);i.setVisible(!1),this._incomingComponents.set(r.id,i),this._incomingData.set(r.id,r),e&&(this._incomingContainerIds.add(r.id),build(r.children))}};build(e.nodes)}discardIncomingNodes(){this._incomingComponents.clear(),this._incomingData.clear(),this._incomingContainerIds.clear()}promoteIncomingNodes(){for(let e of this._nodeComponents.values())this._contentHost.removeComponent(e),e.dispose();this._nodeComponents=this._incomingComponents,this._nodeData=this._incomingData,this._containerIds=this._incomingContainerIds,this._incomingComponents=new Map,this._incomingData=new Map,this._incomingContainerIds=new Set,this._selection=[],this._nodeEmphasis=new Set;for(let e of this._nodeComponents.values())this._contentHost.addComponent(e),e.setVisible(!0)}relayout(e){this.armLayoutSettled(),this.syncBusyIndicator();let t=this.collectNodeSizes(e);this._layoutGeneration+=1;let n=this._layoutGeneration;this._engine.layout(e,t,this._options.layoutOptions).then(e=>this.applyLayout(e,n)).catch(()=>this.handleLayoutFailure(n))}armLayoutSettled(){if(this._layoutSettled!==null)return;let e,t=new Promise(t=>{e=t});this._layoutSettled={promise:t,resolve:e}}settleLayout(){let e=this._layoutSettled;this._layoutSettled=null,e?.resolve(),this.syncBusyIndicator()}syncBusyIndicator(){if(this._layoutSettled===null||!(this.getWidth()>0)||!(this.getHeight()>0)){this._busySpinner?.hideOverlay();return}this._busySpinner===null&&(this._busySpinner=new m(te)),this._busySpinner.showOverlay(this),this._busySpinner.doLayout()}whenLaidOut(){return this._layoutSettled?.promise??Promise.resolve()}collectNodeSizes(e){let t=new Map,collect=e=>{for(let n of e){let e=this._incomingComponents.get(n.id)?.getPreferredSize();t.set(n.id,{width:n.width??e?.width??0,height:n.height??e?.height??0}),n.children&&n.children.length>0&&collect(n.children)}};return collect(e.nodes),t}applyLayout(e,t){if(t===this._layoutGeneration){for(let t of e.nodes){let e=this._incomingComponents.get(t.id);e&&(e.setPreferredSize({width:t.width,height:t.height}),e.setX(t.x),e.setY(t.y))}this._graphWidth=e.width,this._graphHeight=e.height,this.promoteIncomingNodes(),this._edgeLayer.setX(0),this._edgeLayer.setY(0),this._edgeLayer.setPreferredSize({width:e.width,height:e.height}),this._edgeLayer.setEdges(this.joinEdgeStyles(e.edges)),this.applyContainerZIndex(),this._contentHost.setPreferredSize({width:e.width,height:e.height}),this.applyTransformToHost(),this.tryInitialCentre(),this.scheduleLayout(),this.emit(`layout`),this.settleLayout()}}applyContainerZIndex(){if(this._containerIds.size===0){this._edgeLayer.setZIndex(re);return}this._edgeLayer.setZIndex(ae);for(let[e,t]of this._nodeComponents)t.setZIndex(this._containerIds.has(e)?ie:oe)}joinEdgeStyles(e){let t=new Map(this._options.data?.edges.map(e=>[e.id,e])??[]);return e.map(e=>({...e,style:t.get(e.id)?.style}))}handleLayoutFailure(e){e===this._layoutGeneration&&(this.discardIncomingNodes(),this.settleLayout())}applyTransformToHost(){let e=this.getZoom();this._contentHost.setTransform(`translate(${this._panX}px, ${this._panY}px) scale(${e})`)}getZoom(){return this._options.zoom??this._defaultOptions.zoom??J}setZoom(e){return Number.isFinite(e)?(this._options.zoom=this.clampZoom(e),this.applyTransformToHost(),this):this}zoomToFit(){if(this._graphWidth<=0||this._graphHeight<=0)return this;let e=this.getWidth()/this._graphWidth,t=this.getHeight()/this._graphHeight;return this.setZoom(Math.min(e,t)),this.centreGraph(),this}resetView(){return this.setZoom(this._defaultOptions.zoom??J),this._needsInitialCentre=!0,this.tryInitialCentre(),this}zoomIn(){return this.zoomAboutViewportPoint(Q,this.getWidth()/2,this.getHeight()/2),this}zoomOut(){return this.zoomAboutViewportPoint(1/Q,this.getWidth()/2,this.getHeight()/2),this}tryInitialCentre(){if(!this._needsInitialCentre||!(this._graphWidth>0)||!(this._graphHeight>0))return;let e=this._focusNodeId!==null&&this._nodeComponents.has(this._focusNodeId)?this._focusNodeId:null;(e===null?this.centreGraph():this.centreNode(e))&&(this._needsInitialCentre=!1)}centreGraph(){let e=this.getWidth(),t=this.getHeight();if(!(e>0)||!(t>0))return!1;let n=this.getZoom();return this._panX=(e-this._graphWidth*n)/2,this._panY=(t-this._graphHeight*n)/2,this.applyTransformToHost(),!0}zoomAboutViewportPoint(e,t,n){if(!Number.isFinite(t)||!Number.isFinite(n))return;let r=this.getZoom(),i=this.clampZoom(r*e);if(i===r)return;let a=(t-this._panX)/r,o=(n-this._panY)/r;this._panX=t-a*i,this._panY=n-o*i,this.setZoom(i)}effectiveMinZoom(){let e=this._options.minZoom??this._defaultOptions.minZoom??Y,t=this.getWidth(),n=this.getHeight();if(!(this._graphWidth>0)||!(this._graphHeight>0)||!(t>0)||!(n>0))return e;let r=Math.min(t/this._graphWidth,n/this._graphHeight);return Math.min(e,r)}clampZoom(e){let t=this.effectiveMinZoom(),n=this._options.maxZoom??this._defaultOptions.maxZoom??X;return Math.max(t,Math.min(n,e))}zoomFittingNode(e){let t=this.getZoom(),n=this.getWidth(),r=this.getHeight();if(!(n>0)||!(r>0)||!(e.width>0)||!(e.height>0))return this.clampZoom(t);let i=Math.min(n/e.width,r/e.height);return this.clampZoom(Math.min(t,i))}getSelection(){return[...this._selection]}selectNode(e){return this.setSelection(e),this}setEdgeEmphasis(e){return this._edgeLayer.setEdgeEmphasis(e),this}getEdgeEmphasis(){return this._edgeLayer.getEdgeEmphasis()}setNodeEmphasis(e){return this._nodeEmphasis=new Set(e??[]),this.applyNodeEmphasis(),this}getNodeEmphasis(){return[...this._nodeEmphasis]}applyNodeEmphasis(){for(let[e,t]of this._nodeComponents)this._nodeEmphasis.size===0||this._nodeEmphasis.has(e)?t.clearOpacity():t.setOpacity($)}revealNode(e){return this.centreNode(e),this}centreNode(e){let t=this._nodeComponents.get(e),n=t?.getPreferredSize();if(!t||!n)return!1;let r=this.zoomFittingNode(n),i=t.getX()+n.width/2,a=t.getY()+n.height/2,o=this.getWidth()/2-i*r,s=this.getHeight()/2-a*r;return!Number.isFinite(o)||!Number.isFinite(s)?!1:(this._panX=o,this._panY=s,this.setZoom(r),!0)}focusNode(e){return this._focusNodeId=e,this._needsInitialCentre=!0,this.tryInitialCentre(),this}setSelection(e){for(let e of this._nodeComponents.values())this.applySelectedVisual(e,!1);let t=e===null?void 0:this._nodeData.get(e);t?(this._selection=[t],this.applySelectedVisual(this._nodeComponents.get(e),!0)):this._selection=[]}applySelectedVisual(e,t){e.setSelected?.(t)}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)}doLayout(){return super.doLayout(),this.tryInitialCentre(),this.anchorCentreAcrossResize(),this.syncBusyIndicator(),this}anchorCentreAcrossResize(){let e=this.getWidth(),t=this.getHeight();if(!(e>0)||!(t>0))return;let n=this._lastViewportWidth,r=this._lastViewportHeight;this._lastViewportWidth=e,this._lastViewportHeight=t,!(!(n>0)||!(r>0))&&(n!==e||r!==t)&&(this._panX+=(e-n)/2,this._panY+=(t-r)/2,this.applyTransformToHost())}init(e){return super.init(e),n.addSubtreeListener(this,`click`,this._handleClick),n.addSubtreeListener(this,`dblclick`,this._handleDoubleClick),n.addSubtreeListener(this,`contextmenu`,this._handleContextMenu),n.addSubtreeListener(this,`wheel`,{passive:!1,prevent:!0,handler:this._handleWheel}),n.addSubtreeListener(this,`pointerdown`,this._handlePointerDown),n.addSubtreeListener(this,`pointermove`,this._handlePointerMove),n.addSubtreeListener(this,`pointerup`,this._handlePointerUp),n.addSubtreeListener(this,`mousemove`,this._handleEdgeMouseMove),n.addSubtreeListener(this,`mouseout`,this._handleEdgeMouseOut),this}_handleClick(e){if(this._pointerMoved||this.isControlsTarget(e.target)||this._edgeLayer.edgeIdAt(e.target)!==null)return;let t=this.nodeIdAt(e.target);if(t!==null){if(t===(this._selection[0]?.id??null))return;this.setSelection(t),this.emit(`selection`,this.getSelection())}else this._selection.length>0&&(this.setSelection(null),this.emit(`selection`,this.getSelection()))}_handleDoubleClick(e){let t=this.nodeIdAt(e.target);if(t===null)return;let n=this._nodeData.get(t);n!==void 0&&this.emit(`activate`,n)}nodeIdAt(t){if(t===null)return null;let n=e.source.intern(t);for(let[t,r]of this._nodeComponents){let i=r.getElement();if(i&&(i===n||e.source.contains(i,n)))return t}return null}_handleEdgeMouseMove(t){if(this._panning)return;if(this._edgeLayer.edgeIdAt(t.target)===null){this.leaveEdges();return}let n=e.source.getViewportRect(this),r=this.getZoom(),i=(t.clientX-n.left-this._panX)/r,a=(t.clientY-n.top-this._panY)/r,o=this._edgeLayer.edgesNear(i,a);if(o.length===0){this.leaveEdges();return}let s=o.map(e=>e.id).join(` `);if(s===this._hoveredEdgeKey)return;let c=new Map(this._options.data?.edges.map(e=>[e.id,e])??[]),l=o.map(e=>c.get(e.id)).filter(e=>e!==void 0);this._hoveredEdgeKey=s,this.emit(`edgehover`,l,t)}_handleEdgeMouseOut(e){this._edgeLayer.edgeIdAt(e.target)!==null&&this.leaveEdges()}leaveEdges(){this._hoveredEdgeKey!==null&&(this._hoveredEdgeKey=null,this.emit(`edgeleave`))}_handleContextMenu(e){let t=this.nodeIdAt(e.target);if(t===null)return;let n=this._nodeData.get(t);if(n!==void 0)return this.emit(`contextmenu`,n,e),{prevent:!0}}isControlsTarget(t){if(t===null||this._controls===void 0)return!1;let n=this._controls.getElement(),r=e.source.intern(t);return n!==void 0&&(n===r||e.source.contains(n,r))}_handleWheel(t){let n=e.source.getViewportRect(this);this.zoomAboutViewportPoint(t.deltaY<0?Z:1/Z,t.clientX-n.left,t.clientY-n.top)}_handlePointerDown(e){this._pressX=e.clientX,this._pressY=e.clientY,this._pointerMoved=!1,!(e.button!==0||this.isControlsTarget(e.target)||this.nodeIdAt(e.target)!==null)&&(this._panning=!0,this._panStartX=e.clientX,this._panStartY=e.clientY,this._panOriginX=this._panX,this._panOriginY=this._panY,this.setCursor(`grabbing`))}_handlePointerMove(e){if(!this._pointerMoved&&e.buttons&1){let t=e.clientX-this._pressX,n=e.clientY-this._pressY;this._pointerMoved=t*t+n*n>=16}if(this._panning){if(!(e.buttons&1)){this._panning=!1,this.setCursor(`grab`);return}this._panX=this._panOriginX+(e.clientX-this._panStartX),this._panY=this._panOriginY+(e.clientY-this._panStartY),this.applyTransformToHost()}}_handlePointerUp(){this._panning=!1,this.setCursor(`grab`)}buildControls(){this._zoomInBtn=this.makeControlButton(`plus`,`Zoom in`),this._zoomOutBtn=this.makeControlButton(`minus`,`Zoom out`),this._fitBtn=this.makeControlButton(`expand`,`Fit to view`),this._resetBtn=this.makeControlButton(`crosshairs`,`Reset view`),this._controls=new v({corner:`bottom-right`,margin:ne,layoutManager:new f}),this._controls.addComponent(this._zoomInBtn),this._controls.addComponent(this._zoomOutBtn),this._controls.addComponent(this._fitBtn),this._controls.addComponent(this._resetBtn)}makeControlButton(e,t){return new h({glyph:e,text:t,showText:!1})}wireControlListeners(){this._zoomInBtn.on(`action`,this._onZoomIn),this._zoomOutBtn.on(`action`,this._onZoomOut),this._fitBtn.on(`action`,this._onFit),this._resetBtn.on(`action`,this._onReset)}isControlsVisible(){return this._options.controls??this._defaultOptions.controls??!0}setControlsVisible(e){return this._options.controls=e,this._controls.setVisible(e),this}},se=i(DiagramView);export{q as DiagramEdgeLayer,M as DiagramGroupNode,k as DiagramNode,se as DiagramView,K as EDGE_MARKER_EXTENT,ElkLayoutEngine};
1
+ import{t as e}from"../DOM-Cjh7_7TF.js";import{n as t}from"../Position-BIEU1Eze.js";import{S as n,d as r,h as i,t as a}from"../Component-D99-15Zt.js";import{t as o}from"../ListenerBag-WPdKuuds.js";import{t as s}from"../Container-FWRjgF6T.js";import{t as c}from"../Glyph-DiEpD3gy.js";import{t as l}from"../Panel-CtViePqY.js";import{t as u}from"../Fit-CaPMj7Up.js";import{t as d}from"../Text-O-FWa5Cy.js";import{n as f,r as p}from"../VBox-DVe4UXwX.js";import{t as m}from"../ProgressSpinner-BuBvC1FY.js";import{t as h}from"../Button-CnFAiQuV.js";import{t as g}from"../Anchor-iZhsvMlT.js";import{t as _}from"../IconText-BBaYJ2Fx.js";import{t as v}from"../FloatingPanel-Dsy_vJxi.js";import{expand as y}from"../glyphs/solid/expand.es.js";import{plus as b}from"../glyphs/solid/plus.es.js";import{minus as x}from"../glyphs/solid/minus.es.js";import{crosshairs as S}from"../glyphs/solid/crosshairs.es.js";var ee=120,C=40,w=`ElkLayoutEngine has been disposed`;function mergeLayoutOptions(...e){let t={};for(let n of e)n&&Object.assign(t,n);return t}var T={"elk.padding":`[top=34,left=12,bottom=12,right=12]`};function mapDiagramNode(e,t){if(e.children&&e.children.length>0)return{id:e.id,layoutOptions:mergeLayoutOptions(T,e.layoutOptions),children:e.children.map(e=>mapDiagramNode(e,t))};let n=t.get(e.id);return{id:e.id,width:e.width??n?.width??ee,height:e.height??n?.height??C,layoutOptions:e.layoutOptions,ports:e.ports?.map(e=>({id:e.id,x:e.x,y:e.y,width:e.width,height:e.height,layoutOptions:e.side===void 0?void 0:{"elk.port.side":e.side}}))}}var E={"elk.hierarchyHandling":`INCLUDE_CHILDREN`};function buildElkGraph(e,t,n){let r=e.nodes.map(e=>mapDiagramNode(e,t)),i=e.edges.map(e=>({id:e.id,sources:[e.sourcePort??e.source],targets:[e.targetPort??e.target]}));return{id:`root`,layoutOptions:mergeLayoutOptions(E,n,e.layoutOptions),children:r,edges:i}}function flattenElkNode(e,t,n,r){let i=t+(e.x??0),a=n+(e.y??0);r.push({id:e.id,x:i,y:a,width:e.width??0,height:e.height??0});for(let t of e.children??[])flattenElkNode(t,i,a,r)}function collectElkEdges(e,t){for(let n of e.edges??[])t.push({edge:n,container:n.container??e.id});for(let n of e.children??[])collectElkEdges(n,t)}function offsetSections(e,t){if(t.x===0&&t.y===0)return e;let shift=e=>({x:e.x+t.x,y:e.y+t.y});return e.map(e=>({startPoint:shift(e.startPoint),endPoint:shift(e.endPoint),bendPoints:e.bendPoints?.map(shift)}))}function mapElkResult(e){let t=[];for(let n of e.children??[])flattenElkNode(n,0,0,t);let n=new Map([[e.id,{x:0,y:0}]]);for(let e of t)n.set(e.id,{x:e.x,y:e.y});let r=[];return collectElkEdges(e,r),{nodes:t,edges:r.map(({edge:e,container:t})=>({id:e.id,sections:offsetSections(e.sections??[],n.get(t)??{x:0,y:0})})),width:e.width??0,height:e.height??0}}var ElkLayoutEngine=class{_elk=null;_workerFactory;_workerUrl;_workerBacked=!1;_disposed=!1;_ownsWorker=!1;_building=null;constructor(e){this._workerFactory=e?.workerFactory,this._workerUrl=e?.workerUrl}async layout(e,t,n){if(this._disposed)throw Error(w);let r=buildElkGraph(e,t,n);try{return mapElkResult(await(await this.ensureElk()).layout(r))}catch(e){if(this._disposed||!this._workerBacked)throw e;this.terminateOwnedWorker(this._elk),this._workerBacked=!1,this._ownsWorker=!1;let t=await this.createMainThreadElk();if(this._disposed)throw Error(w);return this._elk=t,this._building=null,mapElkResult(await t.layout(r))}}dispose(){this._disposed=!0,this.terminateOwnedWorker(this._elk),this._elk=null,this._building=null}async ensureElk(){return this._elk?this._elk:(this._building??=this.createElk().then(e=>{if(this._disposed)throw this.terminateOwnedWorker(e),Error(w);return this._elk=e,e}).catch(e=>{throw this._building=null,e}),this._building)}terminateOwnedWorker(e){e&&this._ownsWorker&&e.terminateWorker()}async createElk(){let{default:e}=await import(`elkjs/lib/elk.bundled.js`);return this._workerFactory?(this._workerBacked=!0,this._ownsWorker=!0,new e({workerFactory:this._workerFactory})):this._workerUrl?(this._workerBacked=!0,new e({workerUrl:this._workerUrl})):new e}async createMainThreadElk(){let{default:e}=await import(`elkjs/lib/elk.bundled.js`);return new e}},D={insets:new t(4,8,4,8),backgroundColor:`var(--ts-ui-diagram-node-bg, var(--ts-ui-button-bg, rgb(245, 245, 245)))`,border:`1px solid var(--ts-ui-border-color, rgb(180, 180, 180))`,borderRadius:`4px`,cursor:`pointer`},O=.6,DiagramNode=class extends l{_label;_content;_badge;get selectedStyleRule(){return this._selectedStyleRule??=this.createStyleRule(`.selected`)}constructor(e,t){super(e,{...D,layoutManager:new u,...t??{}}),this.selectedStyleRule.set(`borderColor`,`var(--ts-ui-accent-color, rgb(30, 100, 200))`),this.selectedStyleRule.set(`backgroundColor`,`var(--ts-ui-diagram-node-selected-bg, var(--ts-ui-table-row-selected, rgba(30, 100, 200, 0.15)))`),this.buildContent(this._options.glyph,this._options.label??``,this._options.badge),this._options.selected!==void 0&&this.setSelected(this._options.selected)}applyOptions(e){return super.applyOptions(e),e.label!==void 0&&(this._options.label=e.label),e.glyph!==void 0&&(this._options.glyph=e.glyph),e.badge!==void 0&&(this._options.badge=e.badge),e.selected!==void 0&&(this._options.selected=e.selected),this}buildContent(e,t,n){this._content&&this.removeComponent(this._content),this._label=e===void 0?new d(t):new _(e,t),n===void 0?(this._badge=void 0,this._content=this._label):(this._badge=new d(n),this._badge.setOpacity(O),this._content=new a({layoutManager:new p,components:[this._label,this._badge]})),this._content.setPointerEvents(`none`),this.addComponent(this._content)}setLabel(e){return this._options.label=e,this._label.setText(e),this}getLabel(){return this._options.label??null}getBadge(){return this._options.badge??null}setSelected(t){this._options.selected=t;let n=this.getElement();return n&&e.sink.apply(n,{toggleClass:{selected:t}}),this}isSelected(){return this._options.selected??!1}init(t){super.init(t);let n=t||this.getElement();return n&&this.isSelected()&&e.sink.apply(n,{toggleClass:{selected:!0}}),this}},k=i(DiagramNode),A=6,j={backgroundColor:`var(--ts-ui-diagram-group-bg, rgba(120, 120, 120, 0.08))`,cursor:`pointer`,border:`1px solid var(--ts-ui-diagram-group-border, var(--ts-ui-border-color, rgb(180, 180, 180)))`,borderRadius:`4px`},DiagramGroupNode=class extends l{_header;constructor(e,t){super(e,{layoutManager:new r,...j,...t??{}});let n=this._options.label??``;this._header=this._options.glyph===void 0?new d(n):new _(this._options.glyph,n),this._header.setPointerEvents(`none`),this._header.setX(A),this._header.setY(A),this.addComponent(this._header)}applyOptions(e){return super.applyOptions(e),e.label!==void 0&&(this._options.label=e.label),e.glyph!==void 0&&(this._options.glyph=e.glyph),this}setLabel(e){return this._options.label=e,this._header.setText(e),this}getLabel(){return this._options.label??null}},M=i(DiagramGroupNode),N=`http://www.w3.org/2000/svg`,P=`var(--ts-ui-diagram-edge, var(--ts-ui-border-color, rgb(120, 120, 120)))`,F=`1.5`,I=`12`,L=`var(--ts-ui-diagram-bg, var(--ts-ui-panel-bg, rgb(255, 255, 255)))`,R=`4`,z=8,B=`6 4`,V=12,H=V/2,U=`0.15`,W=[`one`,`zeroOrOne`,`oneOrMany`,`zeroOrMany`],G={one:{width:12,height:12,refX:12,refY:6,parts:[{tag:`path`,attrs:{d:`M 4 0 L 4 12 M 8 0 L 8 12`}}]},zeroOrOne:{width:16,height:12,refX:16,refY:6,parts:[{tag:`path`,attrs:{d:`M 12 0 L 12 12`}},{tag:`circle`,attrs:{cx:`6`,cy:`6`,r:`4`}}]},oneOrMany:{width:16,height:12,refX:16,refY:6,parts:[{tag:`path`,attrs:{d:`M 0 6 L 12 0 M 0 6 L 12 6 M 0 6 L 12 12`}},{tag:`path`,attrs:{d:`M 14 0 L 14 12`}}]},zeroOrMany:{width:18,height:12,refX:18,refY:6,parts:[{tag:`path`,attrs:{d:`M 6 6 L 18 0 M 6 6 L 18 6 M 6 6 L 18 12`}},{tag:`circle`,attrs:{cx:`3`,cy:`6`,r:`3`}}]}},K=Math.max(z,...Object.values(G).map(e=>e.width));function labelPoint(e){let t=e[0];return t?midpointAlong([t.startPoint,...t.bendPoints??[],t.endPoint]):{x:0,y:0}}function midpointAlong(e){let segmentLength=(e,t)=>Math.hypot(t.x-e.x,t.y-e.y),t=0;for(let n=1;n<e.length;n++)t+=segmentLength(e[n-1],e[n]);let n=t/2;for(let t=1;t<e.length;t++){let r=segmentLength(e[t-1],e[t]);if(r>=n){let i=r===0?0:n/r;return{x:e[t-1].x+(e[t].x-e[t-1].x)*i,y:e[t-1].y+(e[t].y-e[t-1].y)*i}}n-=r}return e[e.length-1]}function buildPathData(e){let t=[];for(let n of e){t.push(`M ${n.startPoint.x} ${n.startPoint.y}`);for(let e of n.bendPoints??[])t.push(`L ${e.x} ${e.y}`);t.push(`L ${n.endPoint.x} ${n.endPoint.y}`)}return t.join(` `)}function distanceToSegment(e,t,n,r,i,a){let o=i-n,s=a-r,c=o*o+s*s;if(c===0)return Math.hypot(e-n,t-r);let l=Math.max(0,Math.min(1,((e-n)*o+(t-r)*s)/c));return Math.hypot(e-(n+l*o),t-(r+l*s))}function distanceToRoute(e,t,n){let r=1/0;for(let i of e){let e=[i.startPoint,...i.bendPoints??[],i.endPoint];for(let i=1;i<e.length;i++)r=Math.min(r,distanceToSegment(t,n,e[i-1].x,e[i-1].y,e[i].x,e[i].y))}return r}var DiagramEdgeLayer=class extends a{_edges=[];_drawn=[];_edgeEmphasis=new Set;_dimLayer;_normalLayer;_markerId;_crowsFootMarkerIds;constructor(e){super(e),this._markerId=`${this.getId()}-arrow`,this._crowsFootMarkerIds=Object.fromEntries(W.map(e=>[e,`${this.getId()}-${e}`])),this.setPointerEvents(`none`),this.setCursor(`inherit`)}markerUrl(e){if(e)return`url(#${e===`arrow`?this._markerId:this._crowsFootMarkerIds[e]})`}setEdges(e){return this._edges=e,this._edgeEmphasis=new Set,this.getElement()?this.rebuildPaths():this.onFirstLayout(()=>this.rebuildPaths()),this}setEdgeEmphasis(e){return this._edgeEmphasis=new Set(e??[]),this.rebuildPaths(),this}getEdgeEmphasis(){return[...this._edgeEmphasis]}edgeIdAt(t){if(t===null)return null;let n=e.source.intern(t);return this._drawn.find(e=>e.hit===n)?.id??null}edgesNear(e,t){return this._drawn.filter(n=>distanceToRoute(n.route.sections,e,t)<=H).map(e=>e.route)}groupFor(e){return this._edgeEmphasis.size===0||this._edgeEmphasis.has(e)?this._normalLayer:this._dimLayer}createRootElement(){let t=e.sink.createElementNS(N,`svg`),n=e.sink.createElementNS(N,`defs`);this.createArrowMarker(n);for(let e of W)this.createCrowsFootMarker(n,e);return e.sink.appendChild(t,n),this.trackHandle(n),this._dimLayer=this.createEdgeGroup(t,U),this._normalLayer=this.createEdgeGroup(t,null),t}createEdgeGroup(t,n){let r=e.sink.createElementNS(N,`g`);return n!==null&&e.sink.apply(r,{setAttr:{opacity:n}}),e.sink.appendChild(t,r),this.trackHandle(r),r}createArrowMarker(t){let n=e.sink.createElementNS(N,`marker`);e.sink.apply(n,{setAttr:{id:this._markerId,markerWidth:String(z),markerHeight:String(z),refX:String(z),refY:String(z/2),orient:`auto-start-reverse`,markerUnits:`userSpaceOnUse`}});let r=e.sink.createElementNS(N,`path`);e.sink.apply(r,{setAttr:{d:`M 0 0 L ${z} ${z/2} L 0 ${z} z`,fill:P}}),e.sink.appendChild(n,r),e.sink.appendChild(t,n),this.trackHandle(n),this.trackHandle(r)}createCrowsFootMarker(t,n){let r=G[n],i=e.sink.createElementNS(N,`marker`);e.sink.apply(i,{setAttr:{id:this._crowsFootMarkerIds[n],markerWidth:String(r.width),markerHeight:String(r.height),refX:String(r.refX),refY:String(r.refY),orient:`auto-start-reverse`,markerUnits:`userSpaceOnUse`}}),e.sink.appendChild(t,i),this.trackHandle(i);for(let t of r.parts){let n=e.sink.createElementNS(N,t.tag);e.sink.apply(n,{setAttr:{...t.attrs,fill:`none`,stroke:P}}),e.sink.appendChild(i,n),this.trackHandle(n)}}render(){let e=super.render();return this.rebuildPaths(),e}rebuildPaths(){if(this.getElement()){for(let e of this._drawn)this.releaseDrawnEdge(e);this._drawn=[];for(let e of this._edges){let t=buildPathData(e.sections);if(!t)continue;let n=this.groupFor(e.id),r=this.drawHitPath(n,t),i=this.drawVisiblePath(n,e,t),a=e.style,o=null;a?.label&&(o=this.drawLabel(n,e,a.label)),this._drawn.push({id:e.id,route:e,path:i,hit:r,label:o,group:n})}}}drawHitPath(t,n){let r=e.sink.createElementNS(N,`path`);return e.sink.apply(r,{setAttr:{d:n,fill:`none`,stroke:`transparent`,"stroke-width":String(V),"pointer-events":`stroke`,cursor:`inherit`}}),e.sink.appendChild(t,r),this.trackHandle(r),r}drawVisiblePath(t,n,r){let i=e.sink.createElementNS(N,`path`),a=n.style,o=a?this.markerUrl(a.endMarker):this.markerUrl(`arrow`),s=a?this.markerUrl(a.startMarker):void 0,c={d:r,fill:`none`,stroke:a?.stroke??P,"stroke-width":F};return o&&(c[`marker-end`]=o),s&&(c[`marker-start`]=s),a?.dashed&&(c[`stroke-dasharray`]=B),e.sink.apply(i,{setAttr:c}),e.sink.appendChild(t,i),this.trackHandle(i),i}releaseDrawnEdge(t){let n=[t.hit,t.path,...t.label?[t.label]:[]];for(let r of n)e.sink.removeChild(t.group,r),this.untrackHandle(r),e.sink.release(r)}drawLabel(t,n,r){let i=labelPoint(n.sections),a=e.sink.createElementNS(N,`text`);return e.sink.apply(a,{setAttr:{x:String(i.x),y:String(i.y),fill:P,stroke:L,"stroke-width":R,"stroke-linejoin":`round`,"paint-order":`stroke`,"font-size":I,"text-anchor":`middle`,"dominant-baseline":`central`},text:r}),e.sink.appendChild(t,a),this.trackHandle(a),a}},q=i(DiagramEdgeLayer);c.register(b,x,y,S);var J=1,Y=.25,X=4,Z=1.1,Q=1.5,$=.35,te=24,ne=12,re=0,ie=0,ae=1,oe=2,DiagramView=class extends l{_contentHost;_edgeLayer;_engine;_nodeComponents=new Map;_nodeData=new Map;_containerIds=new Set;_incomingComponents=new Map;_incomingData=new Map;_incomingContainerIds=new Set;_selection=[];_nodeEmphasis=new Set;_layoutGeneration=0;_layoutSettled=null;_busySpinner=null;_graphWidth=0;_graphHeight=0;_listeners=new o;_hoveredEdgeKey=null;_panning=!1;_panStartX=0;_panStartY=0;_pressX=0;_pressY=0;_pointerMoved=!1;_panOriginX=0;_panOriginY=0;_panX=0;_panY=0;_needsInitialCentre=!0;_focusNodeId=null;_lastViewportWidth=NaN;_lastViewportHeight=NaN;_controls;_zoomInBtn;_zoomOutBtn;_fitBtn;_resetBtn;_onZoomIn=()=>this.zoomIn();_onZoomOut=()=>this.zoomOut();_onFit=()=>this.zoomToFit();_onReset=()=>this.resetView();constructor(e){super(e,{zoom:J,minZoom:Y,maxZoom:X,controls:!0}),this.setLayoutManager(new g),this.setCursor(`grab`),this._engine=this.createEngine(),this._contentHost=new s({layoutManager:new r,overflow:`visible`,cursor:`inherit`}),this._contentHost.setTransformOrigin(`0 0`),this.addComponent(this._contentHost),this._edgeLayer=new q,this._contentHost.addComponent(this._edgeLayer),this.buildControls(),this.wireControlListeners(),this.addComponent(this._controls,this._controls.getAnchorConstraints()),this.applyListeners(e?.listeners),this.setControlsVisible(this._options.controls??this._defaultOptions.controls??!0),this._options.zoom!==void 0&&this.setZoom(this._options.zoom),this._focusNodeId=this._options.initialFocusNode??null,this._options.data&&this.setData(this._options.data)}createEngine(){return new ElkLayoutEngine({workerFactory:this._options.elkWorkerFactory,workerUrl:this._options.elkWorkerUrl})}destructor(){this._layoutGeneration+=1,this.settleLayout(),this._busySpinner?.dispose(),this._busySpinner=null,this._engine.dispose(),super.destructor()}applyOptions(e){return super.applyOptions(e),e.data!==void 0&&(this._options.data=e.data),e.nodeRenderer!==void 0&&(this._options.nodeRenderer=e.nodeRenderer),e.groupRenderer!==void 0&&(this._options.groupRenderer=e.groupRenderer),e.layoutOptions!==void 0&&(this._options.layoutOptions=e.layoutOptions),e.elkWorkerUrl!==void 0&&(this._options.elkWorkerUrl=e.elkWorkerUrl),e.elkWorkerFactory!==void 0&&(this._options.elkWorkerFactory=e.elkWorkerFactory),e.minZoom!==void 0&&(this._options.minZoom=e.minZoom),e.maxZoom!==void 0&&(this._options.maxZoom=e.maxZoom),e.zoom!==void 0&&(this._options.zoom=e.zoom),e.controls!==void 0&&(this._options.controls=e.controls),e.initialFocusNode!==void 0&&(this._options.initialFocusNode=e.initialFocusNode),this}setData(e){return this._options.data=e,this.rebuildNodes(e),this.relayout(e),this}getData(){return this._options.data??null}rebuildNodes(e){this.discardIncomingNodes();let t=this._options.nodeRenderer??(e=>new k({label:e.label,glyph:e.glyph,badge:e.badge})),n=this._options.groupRenderer??(e=>new M({label:e.label,glyph:e.glyph})),build=e=>{for(let r of e){let e=(r.children?.length??0)>0,i=e?n(r):t(r);i.setVisible(!1),this._incomingComponents.set(r.id,i),this._incomingData.set(r.id,r),e&&(this._incomingContainerIds.add(r.id),build(r.children))}};build(e.nodes)}discardIncomingNodes(){this._incomingComponents.clear(),this._incomingData.clear(),this._incomingContainerIds.clear()}promoteIncomingNodes(){for(let e of this._nodeComponents.values())this._contentHost.removeComponent(e),e.dispose();this._nodeComponents=this._incomingComponents,this._nodeData=this._incomingData,this._containerIds=this._incomingContainerIds,this._incomingComponents=new Map,this._incomingData=new Map,this._incomingContainerIds=new Set,this._selection=[],this._nodeEmphasis=new Set;for(let e of this._nodeComponents.values())this._contentHost.addComponent(e),e.setVisible(!0)}relayout(e){this.armLayoutSettled(),this.syncBusyIndicator();let t=this.collectNodeSizes(e);this._layoutGeneration+=1;let n=this._layoutGeneration;this._engine.layout(e,t,this._options.layoutOptions).then(e=>this.applyLayout(e,n)).catch(()=>this.handleLayoutFailure(n))}armLayoutSettled(){if(this._layoutSettled!==null)return;let e,t=new Promise(t=>{e=t});this._layoutSettled={promise:t,resolve:e}}settleLayout(){let e=this._layoutSettled;this._layoutSettled=null,e?.resolve(),this.syncBusyIndicator()}syncBusyIndicator(){if(this._layoutSettled===null||!(this.getWidth()>0)||!(this.getHeight()>0)){this._busySpinner?.hideOverlay();return}this._busySpinner===null&&(this._busySpinner=new m(te)),this._busySpinner.showOverlay(this),this._busySpinner.doLayout()}whenLaidOut(){return this._layoutSettled?.promise??Promise.resolve()}collectNodeSizes(e){let t=new Map,collect=e=>{for(let n of e){let e=this._incomingComponents.get(n.id)?.getPreferredSize();t.set(n.id,{width:n.width??e?.width??0,height:n.height??e?.height??0}),n.children&&n.children.length>0&&collect(n.children)}};return collect(e.nodes),t}applyLayout(e,t){if(t===this._layoutGeneration){for(let t of e.nodes){let e=this._incomingComponents.get(t.id);e&&(e.setPreferredSize({width:t.width,height:t.height}),e.setX(t.x),e.setY(t.y))}this._graphWidth=e.width,this._graphHeight=e.height,this.promoteIncomingNodes(),this._edgeLayer.setX(0),this._edgeLayer.setY(0),this._edgeLayer.setPreferredSize({width:e.width,height:e.height}),this._edgeLayer.setEdges(this.joinEdgeStyles(e.edges)),this.applyContainerZIndex(),this._contentHost.setPreferredSize({width:e.width,height:e.height}),this.applyTransformToHost(),this.tryInitialCentre(),this.scheduleLayout(),this.emit(`layout`),this.settleLayout()}}applyContainerZIndex(){if(this._containerIds.size===0){this._edgeLayer.setZIndex(re);return}this._edgeLayer.setZIndex(ae);for(let[e,t]of this._nodeComponents)t.setZIndex(this._containerIds.has(e)?ie:oe)}joinEdgeStyles(e){let t=new Map(this._options.data?.edges.map(e=>[e.id,e])??[]);return e.map(e=>({...e,style:t.get(e.id)?.style}))}handleLayoutFailure(e){e===this._layoutGeneration&&(this.discardIncomingNodes(),this.settleLayout())}applyTransformToHost(){let e=this.getZoom();this._contentHost.setTransform(`translate(${this._panX}px, ${this._panY}px) scale(${e})`)}getZoom(){return this._options.zoom??this._defaultOptions.zoom??J}setZoom(e){return Number.isFinite(e)?(this._options.zoom=this.clampZoom(e),this.applyTransformToHost(),this):this}zoomToFit(){if(this._graphWidth<=0||this._graphHeight<=0)return this;let e=this.getWidth()/this._graphWidth,t=this.getHeight()/this._graphHeight;return this.setZoom(Math.min(e,t)),this.centreGraph(),this}resetView(){return this.setZoom(this._defaultOptions.zoom??J),this._needsInitialCentre=!0,this.tryInitialCentre(),this}zoomIn(){return this.zoomAboutViewportPoint(Q,this.getWidth()/2,this.getHeight()/2),this}zoomOut(){return this.zoomAboutViewportPoint(1/Q,this.getWidth()/2,this.getHeight()/2),this}tryInitialCentre(){if(!this._needsInitialCentre||!(this._graphWidth>0)||!(this._graphHeight>0))return;let e=this._focusNodeId!==null&&this._nodeComponents.has(this._focusNodeId)?this._focusNodeId:null;(e===null?this.centreGraph():this.centreNode(e))&&(this._needsInitialCentre=!1)}centreGraph(){let e=this.getWidth(),t=this.getHeight();if(!(e>0)||!(t>0))return!1;let n=this.getZoom();return this._panX=(e-this._graphWidth*n)/2,this._panY=(t-this._graphHeight*n)/2,this.applyTransformToHost(),!0}zoomAboutViewportPoint(e,t,n){if(!Number.isFinite(t)||!Number.isFinite(n))return;let r=this.getZoom(),i=this.clampZoom(r*e);if(i===r)return;let a=(t-this._panX)/r,o=(n-this._panY)/r;this._panX=t-a*i,this._panY=n-o*i,this.setZoom(i)}effectiveMinZoom(){let e=this._options.minZoom??this._defaultOptions.minZoom??Y,t=this.getWidth(),n=this.getHeight();if(!(this._graphWidth>0)||!(this._graphHeight>0)||!(t>0)||!(n>0))return e;let r=Math.min(t/this._graphWidth,n/this._graphHeight);return Math.min(e,r)}clampZoom(e){let t=this.effectiveMinZoom(),n=this._options.maxZoom??this._defaultOptions.maxZoom??X;return Math.max(t,Math.min(n,e))}zoomFittingNode(e){let t=this.getZoom(),n=this.getWidth(),r=this.getHeight();if(!(n>0)||!(r>0)||!(e.width>0)||!(e.height>0))return this.clampZoom(t);let i=Math.min(n/e.width,r/e.height);return this.clampZoom(Math.min(t,i))}getSelection(){return[...this._selection]}selectNode(e){return this.setSelection(e),this}setEdgeEmphasis(e){return this._edgeLayer.setEdgeEmphasis(e),this}getEdgeEmphasis(){return this._edgeLayer.getEdgeEmphasis()}setNodeEmphasis(e){return this._nodeEmphasis=new Set(e??[]),this.applyNodeEmphasis(),this}getNodeEmphasis(){return[...this._nodeEmphasis]}applyNodeEmphasis(){for(let[e,t]of this._nodeComponents)this._nodeEmphasis.size===0||this._nodeEmphasis.has(e)?t.clearOpacity():t.setOpacity($)}revealNode(e){return this.centreNode(e),this}centreNode(e){let t=this._nodeComponents.get(e),n=t?.getPreferredSize();if(!t||!n)return!1;let r=this.zoomFittingNode(n),i=t.getX()+n.width/2,a=t.getY()+n.height/2,o=this.getWidth()/2-i*r,s=this.getHeight()/2-a*r;return!Number.isFinite(o)||!Number.isFinite(s)?!1:(this._panX=o,this._panY=s,this.setZoom(r),!0)}focusNode(e){return this._focusNodeId=e,this._needsInitialCentre=!0,this.tryInitialCentre(),this}setSelection(e){for(let e of this._nodeComponents.values())this.applySelectedVisual(e,!1);let t=e===null?void 0:this._nodeData.get(e);t?(this._selection=[t],this.applySelectedVisual(this._nodeComponents.get(e),!0)):this._selection=[]}applySelectedVisual(e,t){e.setSelected?.(t)}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)}doLayout(){return super.doLayout(),this.tryInitialCentre(),this.anchorCentreAcrossResize(),this.syncBusyIndicator(),this}anchorCentreAcrossResize(){let e=this.getWidth(),t=this.getHeight();if(!(e>0)||!(t>0))return;let n=this._lastViewportWidth,r=this._lastViewportHeight;this._lastViewportWidth=e,this._lastViewportHeight=t,!(!(n>0)||!(r>0))&&(n!==e||r!==t)&&(this._panX+=(e-n)/2,this._panY+=(t-r)/2,this.applyTransformToHost())}init(e){return super.init(e),n.addSubtreeListener(this,`click`,this._handleClick),n.addSubtreeListener(this,`dblclick`,this._handleDoubleClick),n.addSubtreeListener(this,`contextmenu`,this._handleContextMenu),n.addSubtreeListener(this,`wheel`,{passive:!1,prevent:!0,handler:this._handleWheel}),n.addSubtreeListener(this,`pointerdown`,this._handlePointerDown),n.addSubtreeListener(this,`pointermove`,this._handlePointerMove),n.addSubtreeListener(this,`pointerup`,this._handlePointerUp),n.addSubtreeListener(this,`mousemove`,this._handleEdgeMouseMove),n.addSubtreeListener(this,`mouseout`,this._handleEdgeMouseOut),this}_handleClick(e){if(this._pointerMoved||this.isControlsTarget(e.target)||this._edgeLayer.edgeIdAt(e.target)!==null)return;let t=this.nodeIdAt(e.target);if(t!==null){if(t===(this._selection[0]?.id??null))return;this.setSelection(t),this.emit(`selection`,this.getSelection())}else this._selection.length>0&&(this.setSelection(null),this.emit(`selection`,this.getSelection()))}_handleDoubleClick(e){let t=this.nodeIdAt(e.target);if(t===null)return;let n=this._nodeData.get(t);n!==void 0&&this.emit(`activate`,n)}nodeIdAt(t){if(t===null)return null;let n=e.source.intern(t);for(let[t,r]of this._nodeComponents){let i=r.getElement();if(i&&(i===n||e.source.contains(i,n)))return t}return null}_handleEdgeMouseMove(t){if(this._panning)return;if(this._edgeLayer.edgeIdAt(t.target)===null){this.leaveEdges();return}let n=e.source.getViewportRect(this),r=this.getZoom(),i=(t.clientX-n.left-this._panX)/r,a=(t.clientY-n.top-this._panY)/r,o=this._edgeLayer.edgesNear(i,a);if(o.length===0){this.leaveEdges();return}let s=o.map(e=>e.id).join(` `);if(s===this._hoveredEdgeKey)return;let c=new Map(this._options.data?.edges.map(e=>[e.id,e])??[]),l=o.map(e=>c.get(e.id)).filter(e=>e!==void 0);this._hoveredEdgeKey=s,this.emit(`edgehover`,l,t)}_handleEdgeMouseOut(e){this._edgeLayer.edgeIdAt(e.target)!==null&&this.leaveEdges()}leaveEdges(){this._hoveredEdgeKey!==null&&(this._hoveredEdgeKey=null,this.emit(`edgeleave`))}_handleContextMenu(e){let t=this.nodeIdAt(e.target);if(t===null)return;let n=this._nodeData.get(t);if(n!==void 0)return this.emit(`contextmenu`,n,e),{prevent:!0}}isControlsTarget(t){if(t===null||this._controls===void 0)return!1;let n=this._controls.getElement(),r=e.source.intern(t);return n!==void 0&&(n===r||e.source.contains(n,r))}_handleWheel(t){let n=e.source.getViewportRect(this);this.zoomAboutViewportPoint(t.deltaY<0?Z:1/Z,t.clientX-n.left,t.clientY-n.top)}_handlePointerDown(e){this._pressX=e.clientX,this._pressY=e.clientY,this._pointerMoved=!1,!(e.button!==0||this.isControlsTarget(e.target)||this.nodeIdAt(e.target)!==null)&&(this._panning=!0,this._panStartX=e.clientX,this._panStartY=e.clientY,this._panOriginX=this._panX,this._panOriginY=this._panY,this.setCursor(`grabbing`))}_handlePointerMove(e){if(!this._pointerMoved&&e.buttons&1){let t=e.clientX-this._pressX,n=e.clientY-this._pressY;this._pointerMoved=t*t+n*n>=16}if(this._panning){if(!(e.buttons&1)){this._panning=!1,this.setCursor(`grab`);return}this._panX=this._panOriginX+(e.clientX-this._panStartX),this._panY=this._panOriginY+(e.clientY-this._panStartY),this.applyTransformToHost()}}_handlePointerUp(){this._panning=!1,this.setCursor(`grab`)}buildControls(){this._zoomInBtn=this.makeControlButton(`plus`,`Zoom in`),this._zoomOutBtn=this.makeControlButton(`minus`,`Zoom out`),this._fitBtn=this.makeControlButton(`expand`,`Fit to view`),this._resetBtn=this.makeControlButton(`crosshairs`,`Reset view`),this._controls=new v({corner:`bottom-right`,margin:ne,layoutManager:new f}),this._controls.addComponent(this._zoomInBtn),this._controls.addComponent(this._zoomOutBtn),this._controls.addComponent(this._fitBtn),this._controls.addComponent(this._resetBtn)}makeControlButton(e,t){return new h({glyph:e,text:t,showText:!1})}wireControlListeners(){this._zoomInBtn.on(`action`,this._onZoomIn),this._zoomOutBtn.on(`action`,this._onZoomOut),this._fitBtn.on(`action`,this._onFit),this._resetBtn.on(`action`,this._onReset)}isControlsVisible(){return this._options.controls??this._defaultOptions.controls??!0}setControlsVisible(e){return this._options.controls=e,this._controls.setVisible(e),this}},se=i(DiagramView);export{q as DiagramEdgeLayer,M as DiagramGroupNode,k as DiagramNode,se as DiagramView,K as EDGE_MARKER_EXTENT,ElkLayoutEngine};
2
2
  //# sourceMappingURL=diagram.es.js.map
@@ -1,2 +1,2 @@
1
- import{t as e}from"../DOM-C-Edb3tA.js";import{a as t,l as n,n as r}from"../Position-BwtxouxK.js";import{S as i,b as a,h as o,r as s,t as c}from"../Component-B0ShfPVi.js";import{t as l}from"../ListenerBag-WPdKuuds.js";import{t as u}from"../Glyph-_VeBacS2.js";import{t as d}from"../Panel-Cy1pdlWO.js";import{t as ee}from"../Fit-BhlB-HAo.js";import{t as f}from"../Text-CMKnK9uB.js";import{n as p,r as m}from"../VBox-DfJPWXqc.js";import{t as te}from"../ProgressSpinner-DK8xEQ9y.js";import{t as h}from"../Placement-7kqdaK4Z.js";import{t as ne}from"../Border-0DJFDiij.js";import{t as re}from"../Header-Dql3Zxc6.js";import{t as g}from"../Button-MpMIYBYJ.js";import{angle_left as ie}from"../glyphs/solid/angle_left.es.js";import{angle_right as ae}from"../glyphs/solid/angle_right.es.js";import{t as oe}from"../Anchor-CwRhdP2J.js";import{t as se}from"../AnchorConstraints-Bfkt8019.js";import{n as ce,t as _}from"../Slider-CTbwR6HR.js";import{t as le}from"../IconText-PUjhTLlp.js";import{t as v}from"../FloatingPanel-DkJXsZ2D.js";import{n as ue,t as de}from"../Tree-C64JNPWJ.js";import{compress as y}from"../glyphs/solid/compress.es.js";import{expand as b}from"../glyphs/solid/expand.es.js";import{magnifying_glass_plus as fe}from"../glyphs/solid/magnifying_glass_plus.es.js";import{magnifying_glass_minus as pe}from"../glyphs/solid/magnifying_glass_minus.es.js";import{arrows_rotate as me}from"../glyphs/solid/arrows_rotate.es.js";import{angles_left as he}from"../glyphs/solid/angles_left.es.js";import{angles_right as ge}from"../glyphs/solid/angles_right.es.js";import{play as _e}from"../glyphs/solid/play.es.js";import{pause as ve}from"../glyphs/solid/pause.es.js";import{volume_high as ye}from"../glyphs/solid/volume_high.es.js";import{volume_mute as be}from"../glyphs/solid/volume_mute.es.js";import{lexer as x}from"marked";var xe={tag:`canvas`,maxFps:30},S=-1,Canvas=class extends c{_ctx=null;_rafId=null;_animationStartMs=null;_lastDrawMs=null;_elapsedMs=0;_animationRequested=!1;_syncedWidth=S;_syncedHeight=S;_syncedDpr=S;_dprToken=0;constructor(e,t){super(e,{...xe,...t??{}}),this.clearInsets()}applyOptions(e){return super.applyOptions(e),e.onDraw!==void 0&&this.setOnDraw(e.onDraw),e.animateWhenHidden!==void 0&&this.setAnimateWhenHidden(e.animateWhenHidden),e.maxFps!==void 0&&this.setMaxFps(e.maxFps),this}getContext(){if(this._ctx)return this._ctx;let t=this.getElement();return t?(this._ctx=e.sink.getContext(t,`2d`),this._ctx):null}setOnDraw(e){return this._options.onDraw=e??void 0,this.redraw(),this}getOnDraw(){return this._options.onDraw??this._defaultOptions.onDraw??null}redraw(){let e=this.getContext();if(!e)return this;let t=this.getWidth(),n=this.getHeight();return e.clearRect(0,0,t,n),this.getOnDraw()?.(e,t,n,this._elapsedMs),this}startAnimation(){return this._animationRequested=!0,this._animationStartMs=null,this._lastDrawMs=null,this._elapsedMs=0,this.reconcileAnimation(),this}stopAnimation(){return this._animationRequested=!1,this.reconcileAnimation(),this}isAnimating(){return this._rafId!==null}setAnimateWhenHidden(e){return this._options.animateWhenHidden=e,this.reconcileAnimation(),this}setMaxFps(e){return this._options.maxFps=Math.max(0,e),this}getMaxFps(){return this._options.maxFps??this._defaultOptions.maxFps??0}getAnimateWhenHidden(){return this._options.animateWhenHidden??this._defaultOptions.animateWhenHidden??!1}syncBackingStore(){let t=this.getContext();if(!t)return;let n=this.getWidth(),r=this.getHeight(),i=e.source.getDevicePixelRatio();if(n===this._syncedWidth&&r===this._syncedHeight&&i===this._syncedDpr)return;let a=this.getElement();e.sink.apply(a,{setAttr:{width:String(Math.round(n*i)),height:String(Math.round(r*i))}}),t.setTransform(i,0,0,i,0,0),this._syncedWidth=n,this._syncedHeight=r,this._syncedDpr=i,this.redraw()}doLayout(){return super.doLayout(),this.syncBackingStore(),this}render(){let e=super.render();return this.watchDevicePixelRatio(),e}destructor(){this.stopAnimation(),super.destructor()}shouldAnimate(){return this._animationRequested&&(this.getAnimateWhenHidden()||this.isEffectivelyVisible())}reconcileAnimation(){this.shouldAnimate()?this._rafId===null&&(this._rafId=e.sink.requestAnimationFrame(this.animationStep)):this._rafId!=null&&(e.sink.cancelAnimationFrame(this._rafId),this._rafId=null)}animationStep=t=>{if(!this._animationRequested){this._rafId=null;return}this._animationStartMs===null&&(this._animationStartMs=t);let n=this.getMaxFps(),r=n>0?1e3/n:0;(this._lastDrawMs===null||t-this._lastDrawMs>=r)&&(this._lastDrawMs=t,this._elapsedMs=t-this._animationStartMs,this.redraw()),this._rafId=e.sink.requestAnimationFrame(this.animationStep)};onEffectiveVisibilityChange(e){super.onEffectiveVisibilityChange(e),this.reconcileAnimation()}watchDevicePixelRatio(){let t=++this._dprToken,n=e.source.getDevicePixelRatio();e.source.matchMedia(`(resolution: ${n}dppx)`).addChangeListener(()=>this.onDevicePixelRatioChange(t))}onDevicePixelRatioChange(e){e===this._dprToken&&this.getElement()&&(this.syncBackingStore(),this.watchDevicePixelRatio())}},Se=o(Canvas),Ce={tag:`canvas`,maxFps:30},C=-1,WebGLCanvas=class extends c{_gl=null;_rafId=null;_animationStartMs=null;_lastDrawMs=null;_elapsedMs=0;_animationRequested=!1;_contextLost=!1;_onContextLost=()=>{this._contextLost=!0};_syncedWidth=C;_syncedHeight=C;_syncedDpr=C;_dprToken=0;constructor(e,t){super(e,{...Ce,...t??{}}),this._contextInitialised=!1,this.clearInsets()}applyOptions(e){return super.applyOptions(e),e.onContextInit!==void 0&&this.setOnContextInit(e.onContextInit),e.onFrame!==void 0&&this.setOnFrame(e.onFrame),e.animateWhenHidden!==void 0&&this.setAnimateWhenHidden(e.animateWhenHidden),e.maxFps!==void 0&&this.setMaxFps(e.maxFps),this}getContext(){if(this._gl)return this._gl;let t=this.getElement();return t?(this._gl=e.sink.getContext(t,`webgl2`),this._gl):null}setOnContextInit(e){return this._options.onContextInit=e??void 0,this._contextInitialised=!1,this}getOnContextInit(){return this._options.onContextInit??this._defaultOptions.onContextInit??null}setOnFrame(e){return this._options.onFrame=e??void 0,this}getOnFrame(){return this._options.onFrame??this._defaultOptions.onFrame??null}startAnimation(){return this._animationRequested=!0,this._animationStartMs=null,this._lastDrawMs=null,this._elapsedMs=0,this.reconcileAnimation(),this}stopAnimation(){return this._animationRequested=!1,this.reconcileAnimation(),this}isAnimating(){return this._rafId!==null}setAnimateWhenHidden(e){return this._options.animateWhenHidden=e,this.reconcileAnimation(),this}getAnimateWhenHidden(){return this._options.animateWhenHidden??this._defaultOptions.animateWhenHidden??!1}setMaxFps(e){return this._options.maxFps=Math.max(0,e),this}getMaxFps(){return this._options.maxFps??this._defaultOptions.maxFps??0}syncBackingStore(){let t=this.getContext();if(!t)return;let n=this.getWidth(),r=this.getHeight(),i=e.source.getDevicePixelRatio();if(n===this._syncedWidth&&r===this._syncedHeight&&i===this._syncedDpr)return;let a=Math.round(n*i),o=Math.round(r*i);e.sink.apply(this.getElement(),{setAttr:{width:String(a),height:String(o)}}),t.viewport(0,0,a,o),this._syncedWidth=n,this._syncedHeight=r,this._syncedDpr=i,this.renderFrame()}doLayout(){return super.doLayout(),this.syncBackingStore(),this}render(){let e=super.render();return i.addListener(this,`webglcontextlost`,{prevent:!0,handler:this._onContextLost}),i.addListener(this,`webglcontextrestored`,()=>{this._contextLost=!1,this._contextInitialised=!1,this.syncBackingStore()}),this.watchDevicePixelRatio(),this.onFirstLayout(()=>this.startAnimation()),e}destructor(){this.stopAnimation(),super.destructor()}shouldAnimate(){return this._animationRequested&&(this.getAnimateWhenHidden()||this.isEffectivelyVisible())}reconcileAnimation(){this.shouldAnimate()?this._rafId===null&&(this._rafId=e.sink.requestAnimationFrame(this.animationStep)):this._rafId!=null&&(e.sink.cancelAnimationFrame(this._rafId),this._rafId=null)}animationStep=t=>{if(!this._animationRequested){this._rafId=null;return}this._animationStartMs===null&&(this._animationStartMs=t);let n=this.getMaxFps(),r=n>0?1e3/n:0;(this._lastDrawMs===null||t-this._lastDrawMs>=r)&&(this._lastDrawMs=t,this._elapsedMs=t-this._animationStartMs,this.renderFrame()),this._rafId=e.sink.requestAnimationFrame(this.animationStep)};onEffectiveVisibilityChange(e){super.onEffectiveVisibilityChange(e),this.reconcileAnimation()}renderFrame(){let e=this.getContext();!e||this._contextLost||(this._contextInitialised||=(this.getOnContextInit()?.(e),!0),this.getOnFrame()?.(e,this.getWidth(),this.getHeight(),this._elapsedMs))}watchDevicePixelRatio(){let t=++this._dprToken,n=e.source.getDevicePixelRatio();e.source.matchMedia(`(resolution: ${n}dppx)`).addChangeListener(()=>this.onDevicePixelRatioChange(t))}onDevicePixelRatioChange(e){e===this._dprToken&&this.getElement()&&(this.syncBackingStore(),this.watchDevicePixelRatio())}},we=o(WebGLCanvas),w=100,Te={tag:`img`},Image=class extends c{_src;constructor(e,t,n){super(t,{...Te,...n??{}}),this._src=e,this.clearInsets()}getElement(e=!1){return super.getElement(e)}getPreferredSize(){let t=this.getElement(),n=e.source.getNaturalSize(t);return{width:n.width,height:n.height}}getMinSize(){let t=super.getMinSize();if(this._options.minSize)return t;let n=this.getElement();if(!n||!e.source.getNaturalSize(n).width)return{width:20,height:20};let r=e.source.getNaturalSize(n);return{width:Math.min(r.width,w),height:Math.min(r.height,w)}}render(){let t=super.render();return e.sink.apply(t,{setAttr:{src:this._src.valueOf()}}),t}},Ee=o(Image),T=`ts-ui-md-code`,E=`ts-ui-md-pre`,D=`ts-ui-md-quote`,O=`ts-ui-md-list`,k=`ts-ui-md-link`,A=`ts-ui-md-heading`,j=`ts-ui-md-table-wrap`,M=`ts-ui-md-table`,N=`ts-ui-md-th`,P=`ts-ui-md-td`,F=`ts-ui-md-align-left`,I=`ts-ui-md-align-center`,L=`ts-ui-md-align-right`,R=`ts-ui-md-code-host`,z=1,B=6,De={js:`javascript`,javascript:`javascript`,jsx:`javascript`,mjs:`javascript`,cjs:`javascript`,ts:`javascript`,typescript:`javascript`,tsx:`javascript`,json:`json`,html:`html`,htm:`html`,sql:`sql`,md:`markdown`,markdown:`markdown`},Oe=20,ke=8;function mapFenceLangToEditorId(e){if(!e)return null;let t=e.trim().split(/\s+/,1)[0]?.toLowerCase();return t?De[t]??null:null}var V=!1;function ensureMarkdownClassRules(){V||(V=!0,new a({scope:`class`,name:T,styles:{fontFamily:`var(--ts-ui-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)`,background:`rgba(127, 127, 127, 0.16)`,borderRadius:`var(--ts-ui-border-radius, 3px)`,padding:`0.1em 0.3em`,lineHeight:`normal`}}),new a({scope:`class`,name:E,styles:{fontFamily:`var(--ts-ui-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)`,background:`rgba(127, 127, 127, 0.16)`,borderRadius:`var(--ts-ui-border-radius, 3px)`,padding:`0.6em 0.8em`,whiteSpace:`pre`,overflow:`auto`,lineHeight:`normal`}}),new a({scope:`class`,name:D,styles:{borderLeft:`3px solid var(--ts-ui-border-color, rgba(127, 127, 127, 0.4))`,paddingLeft:`1em`,marginLeft:`0`}}),new a({scope:`class`,name:O,styles:{paddingLeft:`1.5em`}}),new a({scope:`class`,name:k,styles:{color:`var(--ts-ui-indicator-focus, #2563eb)`}}),new a({scope:`class`,name:A,styles:{fontWeight:`600`}}),new a({scope:`class`,name:j,styles:{maxWidth:`100%`,overflowX:`auto`}}),new a({scope:`class`,name:M,styles:{borderCollapse:`collapse`}}),new a({scope:`class`,name:N,styles:{border:`1px solid var(--ts-ui-border-color, rgba(127, 127, 127, 0.4))`,padding:`0.3em 0.6em`,fontWeight:`600`,textAlign:`left`}}),new a({scope:`class`,name:P,styles:{border:`1px solid var(--ts-ui-border-color, rgba(127, 127, 127, 0.4))`,padding:`0.3em 0.6em`}}),new a({scope:`class`,name:F,styles:{textAlign:`left`}}),new a({scope:`class`,name:I,styles:{textAlign:`center`}}),new a({scope:`class`,name:L,styles:{textAlign:`right`}}),new a({scope:`class`,name:R,styles:{position:`relative`}}))}function alignmentClass(e){switch(e){case`left`:return F;case`center`:return I;case`right`:return L;default:return null}}function slugify(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)}function nextHeadingId(e,t){let n=slugify(e),r=t.get(n)??0;return t.set(n,r+1),r===0?n:`${n}-${r}`}function defaultLinkResolver(e){return{href:e,external:!0}}var Markdown=class extends c{_contentHandles=[];_measuredHeight=null;_unsubscribeTheme;_codeEditors=[];_pendingCodeUpgrades=[];_awaitingVisibilityKickoffs=[];_awaitingViewportKickoffs=[];_viewportWatchArmed=!1;_viewportPassScheduled=!1;_measureScheduled=!1;handleViewportPass=()=>this.onViewportPass();handleScheduledMeasure=()=>this.onScheduledMeasure();_renderGeneration=0;_maxMeasure=null;constructor(e,t){super(t),e!==void 0&&this._options.markdown===void 0&&(this._options.markdown=e),this.setWhiteSpace(`normal`),this.setElementCSSRule(`overflowWrap`,`break-word`),this.setUserSelect(`text`),this.setCursor(`text`),this.setElementCSSRule(`lineHeight`,`var(--ts-ui-md-line-height, 1.8)`),this.setMaxMeasure(this._options.maxMeasure??null),this.setFontScale(this._options.fontScale??1),this._unsubscribeTheme=s.onThemeChange(()=>this.onThemeChanged()),this.onFirstLayout(()=>this.measureContentHeight())}applyOptions(e){return super.applyOptions(e),e.markdown!==void 0&&(this._options.markdown=e.markdown),e.linkResolver!==void 0&&(this._options.linkResolver=e.linkResolver),e.maxMeasure!==void 0&&(this._options.maxMeasure=e.maxMeasure),e.fontScale!==void 0&&(this._options.fontScale=e.fontScale),this}getMarkdown(){return this._options.markdown??``}setLinkResolver(e){return this._options.linkResolver=e,this}getLinkResolver(){return this._options.linkResolver??defaultLinkResolver}setMaxMeasure(e){return this._options.maxMeasure=e,this._maxMeasure=typeof e==`number`?`${e}ch`:e,this.setElementCSSRule(`maxWidth`,this._maxMeasure??`var(--ts-ui-md-max-measure, 70ch)`),this}getMaxMeasure(){return this._options.maxMeasure??null}setFontScale(e){return this._options.fontScale=e,this.setElementCSSRule(`fontSize`,e===1?null:e*100+`%`),this}getFontScale(){return this._options.fontScale??1}setMarkdown(e){this._options.markdown=e;let t=this.getElement();return t?(this.clearContent(),ensureMarkdownClassRules(),this.appendBlockTokens(t,x(e),new Map),this.measureContentHeight(),this):this}getMinSize(){let e=super.getMinSize();return this._measuredHeight===null?e:e?{width:e.width,height:Math.max(e.height,this._measuredHeight)}:{width:0,height:this._measuredHeight}}getPreferredSize(){let e=super.getPreferredSize();return this._measuredHeight===null||this.getPreferredSizeConstraint()!==null?e:e?{width:e.width,height:this._measuredHeight}:{width:0,height:this._measuredHeight}}setWidth(e){let t=e!==this.getWidth();return super.setWidth(e),t&&(this.resyncCodeEditorWidths(),this.measureContentHeight()),this}onThemeChanged(){this.resyncCodeEditorWidths(),this.measureContentHeight()}destructor(){this.clearContent(),this._unsubscribeTheme(),super.destructor()}measureContentHeight(){let t=this.getElement();if(!t)return;this.commitElementStyle(),this.flushPendingCodeUpgrades();let n=this.getHeight();this.setElementStyle(`height`,`auto`),this.commitElementStyle();let r=this.getBorderSize(),i=e.source.getScrollMetrics(t).scrollHeight+r.top+r.bottom;this.setElementStyle(`height`,n+`px`),this.commitElementStyle(),i!==this._measuredHeight&&(this._measuredHeight=i,(this.getParentComponent()??this).scheduleLayout())}render(){let e=super.render();return ensureMarkdownClassRules(),this.appendBlockTokens(e,x(this.getMarkdown()),new Map),e}create(t){let n=e.sink.createElement(t);return this.trackHandle(n),this._contentHandles.push(n),n}clearContent(){for(let t of this._contentHandles)e.sink.removeElement(t),this.untrackHandle(t),e.sink.release(t);this._contentHandles.length=0,this._renderGeneration+=1;for(let{editor:e}of this._codeEditors)e.dispose();this._codeEditors.length=0,this._pendingCodeUpgrades.length=0,this._awaitingVisibilityKickoffs.length=0,this._awaitingViewportKickoffs.length=0,this.disarmViewportWatch()}applyCodeEditorUpgrade(t,n,r,i,a,o){let s=e.source.getScrollMetrics(r),c=s.clientWidth,l=s.scrollHeight;for(let t of[r,i]){e.sink.removeElement(t),this.untrackHandle(t),e.sink.release(t);let n=this._contentHandles.indexOf(t);n!==-1&&this._contentHandles.splice(n,1)}let u=new t(a,{readOnly:!0,language:o,autoHeightMaxRows:Oe});u.setX(0).setY(0).setWidth(c).setHeight(l);let d=!1;u.on(`heightchange`,e=>{if(!d){d=!0;let t=Math.abs(e.height-l);t>ke&&console.warn(`Markdown: fenced "${o}" code block's CodeEditor corrected its guessed height by ${Math.round(t)}px (${l}px → ${e.height}px) on mount.`)}this.handleCodeEditorHeightChange(n,e.height)}),e.sink.appendChild(n,u.getElement(!0)),e.sink.apply(n,{style:{height:l+`px`}}),this._codeEditors.push({editor:u,wrapper:n})}handleCodeEditorHeightChange(t,n){e.sink.apply(t,{style:{height:n+`px`}}),this.scheduleContentMeasure()}flushPendingCodeUpgrades(){this._pendingCodeUpgrades=this._pendingCodeUpgrades.filter(e=>!this.isEffectivelyVisible()||(this.applyCodeEditorUpgrade(e.CodeEditorClass,e.wrapper,e.pre,e.code,e.text,e.languageId),!1))}resyncCodeEditorWidths(){if(this.commitElementStyle(),this.isEffectivelyVisible())for(let{editor:t,wrapper:n}of this._codeEditors)t.setWidth(e.source.getScrollMetrics(n).clientWidth)}startCodeEditorImport(e){if(!this.isEffectivelyVisible()){this._awaitingVisibilityKickoffs.push(e);return}if(!this.isBlockNearViewport(e.wrapper)){this._awaitingViewportKickoffs.push(e),this.armViewportWatch();return}this.loadCodeEditorUpgrade(e.wrapper,e.pre,e.code,e.text,e.languageId,e.generation)}isBlockNearViewport(t){let n=e.source.getElementRect(t),r=e.source.getViewportSize().height*2;return n.bottom>=0&&n.top<=r}armViewportWatch(){this._viewportWatchArmed||(this._viewportWatchArmed=!0,i.addViewportListener(this,`scroll`,this.handleViewportChange),i.addViewportListener(this,`resize`,this.handleViewportChange))}disarmViewportWatch(){this._viewportWatchArmed&&(this._viewportWatchArmed=!1,i.removeViewportListener(this,`scroll`,this.handleViewportChange),i.removeViewportListener(this,`resize`,this.handleViewportChange))}handleViewportChange(){this.scheduleViewportPass()}scheduleViewportPass(){this._viewportPassScheduled||this._awaitingViewportKickoffs.length===0||(this._viewportPassScheduled=!0,c.afterNextLayout(this.handleViewportPass))}onViewportPass(){if(this._viewportPassScheduled=!1,this._awaitingViewportKickoffs.length===0){this.disarmViewportWatch();return}if(!this.isEffectivelyVisible())return;this.commitElementStyle();let t=e.source.getViewportSize().height*2,n=this._awaitingViewportKickoffs,r=[],i=[];for(let a=0;a<n.length;a++){let o=n[a],s=e.source.getElementRect(o.wrapper);if(s.top>t){i.push(...n.slice(a));break}(s.bottom>=0?r:i).push(o)}this._awaitingViewportKickoffs=i,i.length===0&&this.disarmViewportWatch();for(let e of r)this.loadCodeEditorUpgrade(e.wrapper,e.pre,e.code,e.text,e.languageId,e.generation)}onEffectiveVisibilityChange(e){if(super.onEffectiveVisibilityChange(e),!e||this._awaitingVisibilityKickoffs.length===0)return;let t=this._awaitingVisibilityKickoffs;this._awaitingVisibilityKickoffs=[];for(let e of t)this.startCodeEditorImport(e)}async loadCodeEditorUpgrade(e,t,n,r,i,a){let[{CodeEditor:o}]=await Promise.all([import(`../CodeEditor-N1FQodcF.js`).then(e=>e.n),import(`../languages-Dl8qdL8a.js`).then(e=>e.t)]);a===this._renderGeneration&&(this.isEffectivelyVisible()?(this.applyCodeEditorUpgrade(o,e,t,n,r,i),this.scheduleContentMeasure()):this._pendingCodeUpgrades.push({CodeEditorClass:o,wrapper:e,pre:t,code:n,text:r,languageId:i,generation:a}))}scheduleContentMeasure(){this._measureScheduled||(this._measureScheduled=!0,c.afterNextLayout(this.handleScheduledMeasure))}onScheduledMeasure(){this._measureScheduled=!1,this.measureContentHeight(),this.scheduleViewportPass()}appendBlockTokens(e,t,n){for(let r of t)this.appendBlockToken(e,r,n)}appendBlockToken(e,t,n){switch(t.type){case`heading`:this.appendHeading(e,t,n);break;case`paragraph`:this.appendParagraph(e,t);break;case`list`:this.appendList(e,t,n);break;case`blockquote`:this.appendBlockquote(e,t,n);break;case`code`:this.appendCode(e,t);break;case`table`:this.appendTable(e,t);break;case`space`:break;default:this.appendTextNode(e,t.raw??``)}}appendHeading(t,n,r){let i=Math.min(Math.max(n.depth,z),B),a=this.create(`h`+i),o=nextHeadingId(n.text,r);e.sink.apply(a,{addClass:[A],setAttr:{id:o}}),this.appendInlineTokens(a,n.tokens),e.sink.appendChild(t,a)}appendParagraph(t,n){let r=this.create(`p`);this.appendInlineTokens(r,n.tokens),e.sink.appendChild(t,r)}appendList(t,n,r){let i=this.create(n.ordered?`ol`:`ul`);e.sink.apply(i,{addClass:[O]});for(let e of n.items)this.appendListItem(i,e,r);e.sink.appendChild(t,i)}appendListItem(t,n,r){let i=this.create(`li`);for(let e of n.tokens)if(e.type===`text`){let t=e;t.tokens&&t.tokens.length>0?this.appendInlineTokens(i,t.tokens):this.appendInlineToken(i,t,n.tokens.length===1)}else this.appendBlockToken(i,e,r);e.sink.appendChild(t,i)}appendTable(t,n){let r=this.create(`div`);e.sink.apply(r,{addClass:[j]});let i=this.create(`table`);e.sink.apply(i,{addClass:[M]});let a=this.create(`thead`);this.appendTableRow(a,n.header,!0),e.sink.appendChild(i,a);let o=this.create(`tbody`);for(let e of n.rows)this.appendTableRow(o,e,!1);e.sink.appendChild(i,o),e.sink.appendChild(r,i),e.sink.appendChild(t,r)}appendTableRow(t,n,r){let i=this.create(`tr`);for(let t of n){let n=this.create(r?`th`:`td`),a=[r?N:P],o=alignmentClass(t.align);o&&a.push(o),e.sink.apply(n,{addClass:a}),this.appendInlineTokens(n,t.tokens),e.sink.appendChild(i,n)}e.sink.appendChild(t,i)}appendBlockquote(t,n,r){let i=this.create(`blockquote`);e.sink.apply(i,{addClass:[D]}),this.appendBlockTokens(i,n.tokens,r),e.sink.appendChild(t,i)}appendCode(t,n){let r=this.create(`pre`);e.sink.apply(r,{addClass:[E]});let i=this.create(`code`);e.sink.apply(i,{text:n.text}),e.sink.appendChild(r,i);let a=mapFenceLangToEditorId(n.lang);if(a===null){e.sink.appendChild(t,r);return}let o=this.create(`div`);e.sink.apply(o,{addClass:[R]}),e.sink.appendChild(o,r),e.sink.appendChild(t,o);let s={wrapper:o,pre:r,code:i,text:n.text,languageId:a,generation:this._renderGeneration};this.onFirstLayout(()=>this.startCodeEditorImport(s))}appendInlineTokens(e,t){let n=t.length===1;for(let r of t)this.appendInlineToken(e,r,n)}appendInlineToken(t,n,r){switch(n.type){case`text`:{let i=n;i.tokens&&i.tokens.length>0?this.appendInlineTokens(t,i.tokens):r?e.sink.apply(t,{text:i.text}):this.appendTextNode(t,i.text);break}case`strong`:this.appendInlineWrapper(t,`strong`,n.tokens);break;case`em`:this.appendInlineWrapper(t,`em`,n.tokens);break;case`codespan`:{let r=this.create(`code`);e.sink.apply(r,{addClass:[T],text:n.text}),e.sink.appendChild(t,r);break}case`link`:this.appendLink(t,n);break;default:this.appendTextNode(t,n.text??n.raw??``)}}appendInlineWrapper(t,n,r){let i=this.create(n);this.appendInlineTokens(i,r),e.sink.appendChild(t,i)}appendLink(t,n){let r=this.create(`a`),i=this.getLinkResolver()(n.href),a={href:i.href};i.external&&(a.target=`_blank`,a.rel=`noopener noreferrer`),e.sink.apply(r,{addClass:[k],setAttr:a}),this.appendInlineTokens(r,n.tokens),e.sink.appendChild(t,r)}appendTextNode(t,n){let r=this.create(`span`);e.sink.apply(r,{text:n}),e.sink.appendChild(t,r)}};function inlineText(e){return e.map(e=>{switch(e.type){case`text`:return e.tokens?inlineText(e.tokens):e.text;case`strong`:return inlineText(e.tokens);case`em`:return inlineText(e.tokens);case`codespan`:return e.text;case`link`:return inlineText(e.tokens);default:return e.text??e.raw??``}}).join(``)}function collectHeadings(e,t,n){for(let r of e)if(r.type===`heading`){let e=r,i=Math.min(Math.max(e.depth,z),B);n.push({id:nextHeadingId(e.text,t),text:inlineText(e.tokens),depth:i})}else if(r.type===`blockquote`)collectHeadings(r.tokens,t,n);else if(r.type===`list`)for(let e of r.items)collectHeadings(e.tokens,t,n)}function extractMarkdownHeadings(e){let t=[];return collectHeadings(x(e),new Map,t),t}var H=1;function findActiveHeading(t,n){let r=e.source.getElementRect(t).top,i=e.source.getScrollMetrics(t),a=i.scrollHeight>i.clientHeight&&i.scrollTop>=i.scrollHeight-i.clientHeight-H,o=null;for(let i of n){let n=e.source.getElementById(i.id);if(!(!n||!e.source.contains(t,n))){if(e.source.getElementRect(n).top<=r+H)o=i.id;else{a&&(o=i.id);break}}}return o}var U=o(Markdown),W=3,Ae=`On this page`,je=500,Me=160,Ne=240,Pe=12,Fe=new r(8,12,4,12),Ie={maxHeadingDepth:W,maxSize:{width:t,height:je},minSize:{width:Me,height:0}},MarkdownMinimap=class extends v{_tree;_listeners=new l;_scrollSource;_nodesById=new Map;_nearestShown=new Map;handleSelection=e=>this.onTreeSelection(e);handleActiveHeadingChange=e=>this.applyActiveHeading(e);constructor(e,t){super(e,{...Ie,...t??{}}),this.setBackgroundColor(`var(--ts-ui-input-bg, rgb(255, 255, 255))`),this.setShadow(`var(--ts-ui-popover-shadow, 2px 4px 12px rgba(0, 0, 0, 0.18))`),this.setBorderRadius(`var(--ts-ui-border-radius, 4px)`),this.setLayoutManager(new p({spacing:4,stretching:!0}));let n=new f(Ae);n.setFontSize(12),n.setFontWeight(`700`),n.setOpacity(.6);let r=new c({layoutManager:new ee,padding:Fe});r.addComponent(n),this.addComponent(r),this._tree=new de({backgroundColor:`transparent`,rowOverflow:`clip`}),this._tree.setRendererFactory(()=>{let e=new ue;return e.getLabel().setFontSize(Pe),e}),this._tree.on(`selection`,this.handleSelection),this.addComponent(this._tree),this._scrollSource=e?.scrollSource??null,this._scrollSource?.on(`activeheadingchange`,this.handleActiveHeadingChange),this.applyListeners(e?.listeners)}getPreferredSize(){if(this.getPreferredSizeConstraint()!==null)return super.getPreferredSize();let e=super.getPreferredSize();return e&&{width:Math.max(e.width,Ne),height:e.height}}applyOptions(e){return super.applyOptions(e),e.maxHeadingDepth!==void 0&&(this._options.maxHeadingDepth=e.maxHeadingDepth),this}getMaxHeadingDepth(){return this._options.maxHeadingDepth??this._defaultOptions.maxHeadingDepth??W}setHeadings(e){let t=this.getMaxHeadingDepth(),n=[],r=[],i=new Map,a=new Map;for(let o of e){for(;r.length>0&&r[r.length-1].depth>=o.depth;)r.pop();let e=r.length>0?r[r.length-1].node:null;if(o.depth<=t){let t={label:o.text,data:o.id,children:[]};e?e.children.push(t):n.push(t),i.set(o.id,t),a.set(o.id,o.id),r.push({depth:o.depth,node:t})}else a.set(o.id,e?a.get(e.data)??null:null)}return this._nodesById=i,this._nearestShown=a,this._tree.setNodes(n),this._tree.expandAll(),this}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)}onTreeSelection(e){let t=e[0];!t||t.data===void 0||this.emit(`select`,t.data)}applyActiveHeading(e){if(e===null)return;let t=this._nearestShown.get(e)??null;if(t===null)return;let n=this._nodesById.get(t);n&&this._tree.selectNode(n)}destructor(){this._scrollSource?.off(`activeheadingchange`,this.handleActiveHeadingChange),super.destructor()}},G=o(MarkdownMinimap);u.register(y,b,fe,pe,me);var K=[60,70,90],q=[.85,1,1.15,1.3],J=1,Y=1,Le=32,Re={showMinimap:!0,showControls:!0},MarkdownViewer=class extends d{_markdown;_minimap;_controls;_narrowerBtn;_widerBtn;_zoomOutBtn;_zoomInBtn;_resetBtn;_headings;_widthIndex=J;_zoomIndex=Y;_lastActiveHeadingId=null;_pendingClickScrollTop=null;_listeners=new l;handleNativeScroll=()=>this.onNativeScroll();handleMinimapSelect=e=>this.scrollToHeading(e);_onNarrower=()=>this.stepWidth(-1);_onWider=()=>this.stepWidth(1);_onZoomOut=()=>this.stepZoom(-1);_onZoomIn=()=>this.stepZoom(1);_onReset=()=>this.resetViewerProperties();constructor(e,t){super(e,{...Re,...t??{},layoutManager:new oe,autoScroll:`y`}),this._markdown=new U(e?.markdown,{linkResolver:e?.linkResolver,padding:new r(0,0,0,Le)});let n=new se;n.left=0,n.right=0,this.addComponent(this._markdown,n),this._headings=extractMarkdownHeadings(e?.markdown??``),this._minimap=new G({scrollSource:this,maxHeadingDepth:e?.maxHeadingDepth,corner:`top-right`}),this._minimap.setHeadings(this._headings),this._minimap.on(`select`,this.handleMinimapSelect),this.addComponent(this._minimap,this._minimap.getAnchorConstraints()),this.buildControls(),this.wireControlListeners(),this.addComponent(this._controls,this._controls.getAnchorConstraints()),i.addSubtreeListener(this,`scroll`,this.handleNativeScroll),this.setMinimapVisible(this._options.showMinimap??this._defaultOptions.showMinimap??!0),this.setControlsVisible(this._options.showControls??this._defaultOptions.showControls??!0),this.applyListeners(e?.listeners)}doLayout(){return super.doLayout(),this._minimap?.placeNextTo(this._markdown??null),this}applyOptions(e){return super.applyOptions(e),e.showMinimap!==void 0&&(this._options.showMinimap=e.showMinimap),e.showControls!==void 0&&(this._options.showControls=e.showControls),this}getMarkdown(){return this._markdown}setMarkdown(e){return this._markdown.setMarkdown(e),this._headings=extractMarkdownHeadings(e),this._minimap.setHeadings(this._headings),this}isMinimapVisible(){return this._options.showMinimap??this._defaultOptions.showMinimap??!0}setMinimapVisible(e){return this._options.showMinimap=e,this._minimap.setVisible(e),this}isControlsVisible(){return this._options.showControls??this._defaultOptions.showControls??!0}setControlsVisible(e){return this._options.showControls=e,this._controls.setVisible(e),this}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)}buildControls(){this._narrowerBtn=this.makeControlButton(`compress`,`Narrower`),this._widerBtn=this.makeControlButton(`expand`,`Wider`),this._zoomOutBtn=this.makeControlButton(`magnifying-glass-minus`,`Zoom out`),this._zoomInBtn=this.makeControlButton(`magnifying-glass-plus`,`Zoom in`),this._resetBtn=this.makeControlButton(`arrows-rotate`,`Reset`),this._controls=new v({corner:`bottom-right`,layoutManager:new p({spacing:4})}),this._controls.addComponent(this._narrowerBtn),this._controls.addComponent(this._widerBtn),this._controls.addComponent(this._zoomOutBtn),this._controls.addComponent(this._zoomInBtn),this._controls.addComponent(this._resetBtn)}makeControlButton(e,t){return new g({glyph:e,text:t,showText:!1})}wireControlListeners(){this._narrowerBtn.on(`action`,this._onNarrower),this._widerBtn.on(`action`,this._onWider),this._zoomOutBtn.on(`action`,this._onZoomOut),this._zoomInBtn.on(`action`,this._onZoomIn),this._resetBtn.on(`action`,this._onReset)}stepWidth(e){this._widthIndex=n.clamp(this._widthIndex+e,0,K.length-1),this._markdown.setMaxMeasure(K[this._widthIndex]+`ch`),this._minimap.placeNextTo(this._markdown)}stepZoom(e){this._zoomIndex=n.clamp(this._zoomIndex+e,0,q.length-1),this._markdown.setFontScale(q[this._zoomIndex]),this._minimap.placeNextTo(this._markdown)}resetViewerProperties(){this._widthIndex=J,this._zoomIndex=Y,this._markdown.setMaxMeasure(null),this._markdown.setFontScale(1),this._minimap.placeNextTo(this._markdown)}onNativeScroll(){let t=this.getScrollElement();if(!t)return;if(this._pendingClickScrollTop!==null){if(e.source.getScrollTop(t)===this._pendingClickScrollTop)return;this._pendingClickScrollTop=null}let n=findActiveHeading(t,this._headings);n!==this._lastActiveHeadingId&&(this._lastActiveHeadingId=n,this.emit(`activeheadingchange`,n))}scrollToHeading(t){let n=this.getScrollElement();if(!n)return;let r=e.source.getElementById(t);if(!r||!e.source.contains(n,r))return;let i=e.source.getElementRect(r).top,a=e.source.getElementRect(n).top;this.setScrollTop(this.getScrollTop()+(i-a)),this._pendingClickScrollTop=this.getScrollTop(),t!==this._lastActiveHeadingId&&(this._lastActiveHeadingId=t,this.emit(`activeheadingchange`,t))}},ze=o(MarkdownViewer),Be={gap:2,insets:new r(0,0,0,0)},IconLabel=class extends c{_glyph;_label;constructor(e,t,n,r,i){super(r,{...Be,...i??{}}),this.setLayoutManager(new m({spacing:this.getGap()}));let a=this._options.glyph??e,o=this._options.text??t,s=this._options.forId??n;this._glyph=new u(a),this._label=new ce(o,s),this.addComponent(this._glyph),this.addComponent(this._label),this._options.gap!==void 0&&this.getLayoutManager().setComponentSpacing(this._options.gap)}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),e.forId!==void 0&&(this._options.forId=e.forId),this}setGlyph(e){return this.removeComponent(this._glyph),this._glyph=new u(e),this.insertComponent(this._glyph,0),this}setText(e){return this._label.setText(e),this}setForId(e){return this._label.setForId(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}getLabelComponent(){return this._label}},Ve=o(IconLabel);a.ensureKeyframes(`ts-ui-progress-indeterminate`,`0% { transform: translateX(-100%); } 100% { transform: translateX(400%); }`);var ProgressBar=class extends c{_track;_fill;_value;_indeterminate;constructor(e=0,t=!1,r){super(),this._value=n.clamp(e,0,100),this._indeterminate=t,this.setBackgroundColor(`var(--ts-ui-progress-track-bg, rgb(220, 220, 220))`),this.setBorderRadius(`var(--ts-ui-progress-track-radius, 4px)`),this._track=new c,this._track.setOverflow(`hidden`),this._track.setBorderRadius(`var(--ts-ui-progress-track-radius, 4px)`),this._fill=new c,this._fill.setBackgroundColor(`var(--ts-ui-progress-fill-bg, rgb(30, 100, 200))`),this._track.addComponent(this._fill),super.addComponent(this._track),this.getAria().setRole(`progressbar`),this.getAria().setValueMin(0),this.getAria().setValueMax(100),this.getAria().setValueNow(this._value),this._indeterminate&&this.applyIndeterminate(!0),r&&this.applyOptions(r)}applyOptions(e){return super.applyOptions(e),e.indeterminate!==void 0&&this.setIndeterminate(e.indeterminate),e.value!==void 0&&this.setValue(e.value),this}getBaseline(){let e=this.getPreferredSize();return e?e.height-2:null}getValue(){return this._indeterminate?0:this._value}setValue(e){let t=n.clamp(e,0,100);return t===this._value?this:(this._value=t,this.getAria().setValueNow(t),this._indeterminate||this.scheduleLayout(),this)}isIndeterminate(){return this._indeterminate}setIndeterminate(e){return this._indeterminate===e?this:(this._indeterminate=e,this.applyIndeterminate(e),this.flushLayout(),this)}doLayout(){let e=this.getContentBounds();if(!e)return super.doLayout(),this;if(this._track.setX(e.x),this._track.setY(e.y),this._track.setSize({width:e.width,height:e.height}),this._indeterminate){let t=Math.max(20,Math.round(e.width*.25));this._fill.setX(0),this._fill.setY(0),this._fill.setSize({width:t,height:e.height})}else{let t=Math.round(e.width*this._value/100);this._fill.setX(0),this._fill.setY(0),this._fill.setSize({width:t,height:e.height})}return super.doLayout(),this}applyIndeterminate(e){e?(this._fill.setBackgroundColor(`var(--ts-ui-progress-indeterminate-bg, rgb(30, 100, 200))`),this._fill.setAnimation(`ts-ui-progress-indeterminate 1.4s ease-in-out infinite`)):(this._fill.setBackgroundColor(`var(--ts-ui-progress-fill-bg, rgb(30, 100, 200))`),this._fill.clearAnimation())}},He=o(ProgressBar);u.register(he,ie,ae,ge);var PaginationBar=class extends c{_store;_firstBtn;_prevBtn;_nextBtn;_lastBtn;_pageText;_onStoreUpdate=()=>this.refresh();constructor(e,t){super(),this._store=e;let n=new m;n.setComponentSpacing(4),this.setLayoutManager(n),this._firstBtn=new g({glyph:`angles-left`}),this._prevBtn=new g({glyph:`angle-left`}),this._pageText=new f(`Page x of y`),this._nextBtn=new g({glyph:`angle-right`}),this._lastBtn=new g({glyph:`angles-right`}),this._firstBtn.setPreferredSize({width:28,height:28}),this._prevBtn.setPreferredSize({width:28,height:28}),this._nextBtn.setPreferredSize({width:28,height:28}),this._lastBtn.setPreferredSize({width:28,height:28}),this._pageText.centerInHeight(28),this._firstBtn.on(`action`,()=>{this._store.goToPage(1)}),this._prevBtn.on(`action`,()=>this._store.prevPage()),this._nextBtn.on(`action`,()=>this._store.nextPage()),this._lastBtn.on(`action`,()=>{let e=this._store.getTotalPages();this._store.goToPage(e??this._store.getPage())}),this.addComponent(this._firstBtn),this.addComponent(this._prevBtn),this.addComponent(this._pageText),this.addComponent(this._nextBtn),this.addComponent(this._lastBtn),this._store.on(`pagechange`,this._onStoreUpdate),this._store.on(`load`,this._onStoreUpdate),this._store.on(`datachange`,this._onStoreUpdate),this._store.on(`add`,this._onStoreUpdate),this._store.on(`remove`,this._onStoreUpdate),this._store.on(`sync`,this._onStoreUpdate),this.refresh(),t&&this.applyOptions(t)}applyOptions(e){return super.applyOptions(e),e.pageSize!==void 0&&this._store.setPageSize(e.pageSize),e.pageIndex!==void 0&&this._store.goToPage(e.pageIndex),this}destructor(){this._store.off(`pagechange`,this._onStoreUpdate),this._store.off(`load`,this._onStoreUpdate),this._store.off(`datachange`,this._onStoreUpdate),this._store.off(`add`,this._onStoreUpdate),this._store.off(`remove`,this._onStoreUpdate),this._store.off(`sync`,this._onStoreUpdate),super.destructor()}refresh(){let e=this._store.getPage(),t=this._store.getTotalPages(),n=this._store.hasPendingChanges(),r=t==null?`Page ${e}`:`Page ${e} of ${t}`;this._pageText.setText(r),this._firstBtn.setEnabled(!n&&e>1),this._prevBtn.setEnabled(!n&&e>1),this._nextBtn.setEnabled(!n&&(t==null||e<t)),this._lastBtn.setEnabled(!n&&t!=null&&e<t)}},X=o(PaginationBar),Ue=[`timeupdate`,`play`,`pause`,`ended`,`loadedmetadata`,`durationchange`,`volumechange`,`ratechange`],We=1,Ge=1,Ke={tag:`video`},Video=class extends c{_listeners=new l;_mediaHandlers=new Map;constructor(e,t){super(e,{...Ke,...t??{}}),this.clearInsets(),this.getAria().setLabel(`Video`),this.buildMediaHandlers(),this.applyListeners(e?.listeners)}applyOptions(e){return super.applyOptions(e),e.src!==void 0&&this.setSrc(e.src),e.poster!==void 0&&this.setPoster(e.poster),e.autoplay!==void 0&&this.setAutoplay(e.autoplay),e.loop!==void 0&&this.setLoop(e.loop),e.preload!==void 0&&this.setPreload(e.preload),e.muted!==void 0&&this.setMuted(e.muted),e.volume!==void 0&&this.setVolume(e.volume),e.playbackRate!==void 0&&this.setPlaybackRate(e.playbackRate),this}getSrc(){return this._options.src??null}setSrc(e){return this._options.src=e,this.setElementAttribute(`src`,e),this}getPoster(){return this._options.poster??null}setPoster(e){return this._options.poster=e,this.setElementAttribute(`poster`,e),this}isAutoplay(){return this._options.autoplay??!1}setAutoplay(e){return this._options.autoplay=e,this.setElementAttribute(`autoplay`,e?``:null),this}isLoop(){return this._options.loop??!1}setLoop(e){return this._options.loop=e,this.setElementAttribute(`loop`,e?``:null),this}isMuted(){return this._options.muted??!1}setMuted(t){this._options.muted=t,this.setElementAttribute(`muted`,t?``:null);let n=this.getElement();return n&&e.sink.setMuted(n,t),this}getPreload(){return this._options.preload??null}setPreload(e){return this._options.preload=e,this.setElementAttribute(`preload`,e),this}getVolume(){return this._options.volume??We}setVolume(t){let n=Math.max(0,Math.min(1,t));this._options.volume=n;let r=this.getElement();return r&&e.sink.setVolume(r,n),this}getPlaybackRate(){return this._options.playbackRate??Ge}setPlaybackRate(t){this._options.playbackRate=t;let n=this.getElement();return n&&e.sink.setPlaybackRate(n,t),this}setCurrentTime(t){let n=this.getElement();return n&&e.sink.setCurrentTime(n,t),this}play(){let t=this.getElement();return t&&e.sink.mediaPlay(t),this}pause(){let t=this.getElement();return t&&e.sink.mediaPause(t),this}getMediaState(){let t=this.getElement();return t?e.source.getMediaState(t):{currentTime:0,duration:0,paused:!0,ended:!1,volume:this.getVolume(),muted:this.isMuted(),playbackRate:this.getPlaybackRate()}}on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e){this._listeners.fire(e)}init(e){super.init(e);let t=e??this.getElement();return t?(this.replayMediaOptions(t),this.attachMediaListeners(t),this):this}destructor(){let t=this.getElement();if(t)for(let[n,r]of this._mediaHandlers)e.sink.removeListener(t,n,r);super.destructor()}buildMediaHandlers(){for(let e of Ue)this._mediaHandlers.set(e,()=>this.emit(e))}replayMediaOptions(t){let n=this._options,r={};n.src!==void 0&&(r.src=n.src),n.poster!==void 0&&(r.poster=n.poster),n.preload!==void 0&&(r.preload=n.preload),n.autoplay&&(r.autoplay=``),n.loop&&(r.loop=``),n.muted&&(r.muted=``),Object.keys(r).length>0&&e.sink.apply(t,{setAttr:r}),n.muted!==void 0&&e.sink.setMuted(t,n.muted),n.volume!==void 0&&e.sink.setVolume(t,n.volume),n.playbackRate!==void 0&&e.sink.setPlaybackRate(t,n.playbackRate)}attachMediaListeners(t){for(let[n,r]of this._mediaHandlers)e.sink.addListener(t,n,r)}},Z=o(Video),ProgressiveEngine=class{load(e,t){e.setSrc(t)}destroy(){}};u.register(_e,ve,ye,be,b,y);var Q=28,$=80,qe=28,Je=.05,Ye=6;function formatMediaTime(e){if(!Number.isFinite(e)||e<0)return`0:00`;let t=Math.floor(e),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600),a=String(n).padStart(2,`0`);return i>=1?`${i}:${String(r).padStart(2,`0`)}:${a}`:`${r}:${a}`}var VideoPlayer=class extends c{_video;_controls;_playBtn;_scrubber;_timeText;_muteBtn;_volume;_fullscreenBtn;_engine=new ProgressiveEngine;_playing=!1;_fullscreen=!1;_scrubbing=!1;_syncing=!1;_listeners=new l;_onPlayButton=()=>this.togglePlay();_onMuteButton=()=>this.setMuted(!this.isMuted());_onFullscreenButton=()=>this.toggleFullscreen();_onScrub=()=>this.beginScrub();_onVolumeChange=e=>this.onVolumeSlider(e);_onVideoPlay=()=>this.onVideoPlay();_onVideoPause=()=>this.onVideoPause();_onVideoEnded=()=>this.onVideoEnded();_onVideoTimeUpdate=()=>this.onVideoTimeUpdate();_onVideoSync=()=>this.syncFromVideo();_onFullscreenChange=()=>this.syncFullscreen();constructor(e){super(),this.setLayoutManager(new ne),this.getAria().setRole(`region`),this.getAria().setLabel(`Video player`),this._video=new Z,this.buildControlBar(),this.wireControlListeners(),this.wireVideoListeners(),this.addComponent(this._video,{placement:h.CENTER}),this.addComponent(this._controls,{placement:h.SOUTH}),this.syncFromState(this._video.getMediaState()),e&&this.applyOptions(e),this.applyListeners(e?.listeners)}applyOptions(e){return super.applyOptions(e),e.engine!==void 0&&(this._engine=e.engine),e.src!==void 0&&this.setSrc(e.src),e.poster!==void 0&&this._video.setPoster(e.poster),e.autoplay!==void 0&&this._video.setAutoplay(e.autoplay),e.loop!==void 0&&this._video.setLoop(e.loop),e.muted!==void 0&&this._video.setMuted(e.muted),e.volume!==void 0&&this._video.setVolume(e.volume),e.playbackRate!==void 0&&this._video.setPlaybackRate(e.playbackRate),e.controls!==void 0&&this.setControlsVisible(e.controls),this}getSrc(){return this._video.getSrc()}setSrc(e){return this._engine.destroy(),this._engine.load(this._video,e),this}getVolume(){return this._video.getVolume()}setVolume(e){return this._video.setVolume(e),this.syncFromVideo(),this}isMuted(){return this._video.isMuted()}setMuted(e){return this._video.setMuted(e),this.syncFromVideo(),this}getPlaybackRate(){return this._video.getPlaybackRate()}setPlaybackRate(e){return this._video.setPlaybackRate(e),this}setCurrentTime(e){return this._video.setCurrentTime(e),this}getCurrentTime(){return this._video.getMediaState().currentTime}getDuration(){return this._video.getMediaState().duration}isPlaying(){return this._playing}play(){return this._video.play(),this}pause(){return this._video.pause(),this}togglePlay(){return this._playing?this.pause():this.play()}isControlsVisible(){return this._options.controls??!0}setControlsVisible(e){return this._options.controls=e,this._controls.setVisible(e),this}isFullscreen(){return this._fullscreen}enterFullscreen(){let t=this.getElement();return t&&e.sink.requestFullscreen(t),this}exitFullscreen(){return e.sink.exitFullscreen(),this}toggleFullscreen(){return this._fullscreen?this.exitFullscreen():this.enterFullscreen()}on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e){this._listeners.fire(e)}init(t){super.init(t);let n=t??this.getElement();return n?(e.sink.addListener(n,`fullscreenchange`,this._onFullscreenChange),this.syncFromVideo(),this):this}destructor(){let t=this.getElement();t&&e.sink.removeListener(t,`fullscreenchange`,this._onFullscreenChange),super.destructor()}syncFromState(e){this._syncing=!0;try{this._scrubbing||(this._scrubber.setMax(e.duration||0),this._scrubber.setValue(e.currentTime)),this._timeText.setText(`${formatMediaTime(e.currentTime)} / ${formatMediaTime(e.duration)}`),this._playBtn.setGlyph(e.paused?`play`:`pause`),this._muteBtn.setGlyph(e.muted||e.volume===0?`volume-mute`:`volume-high`),this._volume.setValue(e.muted?0:e.volume)}finally{this._syncing=!1}}syncFromVideo(){this.syncFromState(this._video.getMediaState())}buildControlBar(){this._playBtn=this.makeControlButton(`play`,`Play`),this._muteBtn=this.makeControlButton(`volume-high`,`Mute`),this._fullscreenBtn=this.makeControlButton(`expand`,`Fullscreen`),this._scrubber=new _({min:0,max:0,value:0}),this._scrubber.getAria().setLabel(`Seek`),this._volume=new _({min:0,max:1,step:Je,value:1}),this._volume.getAria().setLabel(`Volume`),this._volume.setPreferredSize({width:$,height:this._volume.getPreferredSize().height}),this._volume.setMaxSize({width:$,height:this._volume.getPreferredSize().height}),this._timeText=new f(`0:00 / 0:00`),this._timeText.centerInHeight(qe);let e=new m;e.setComponentSpacing(Ye),this._controls=new c,this._controls.setLayoutManager(e),this._controls.setBackgroundColor(`var(--ts-ui-body-bg, rgb(255, 255, 255))`),this._controls.addComponent(this._playBtn),this._controls.addComponent(this._scrubber,{weight:1}),this._controls.addComponent(this._timeText),this._controls.addComponent(this._muteBtn),this._controls.addComponent(this._volume),this._controls.addComponent(this._fullscreenBtn)}makeControlButton(e,t){let n=new g({glyph:e,text:t,showText:!1});return n.setPreferredSize({width:Q,height:Q}),n}wireControlListeners(){this._playBtn.on(`action`,this._onPlayButton),this._muteBtn.on(`action`,this._onMuteButton),this._fullscreenBtn.on(`action`,this._onFullscreenButton),this._scrubber.on(`action`,this._onScrub),this._volume.on(`change`,this._onVolumeChange)}wireVideoListeners(){this._video.on(`play`,this._onVideoPlay),this._video.on(`pause`,this._onVideoPause),this._video.on(`ended`,this._onVideoEnded),this._video.on(`timeupdate`,this._onVideoTimeUpdate),this._video.on(`durationchange`,this._onVideoSync),this._video.on(`loadedmetadata`,this._onVideoSync),this._video.on(`volumechange`,this._onVideoSync),this._video.on(`ratechange`,this._onVideoSync)}beginScrub(){this._syncing||(this._scrubbing=!0,this._video.setCurrentTime(this._scrubber.getValue()))}onVolumeSlider(e){this._syncing||(this._video.setVolume(e),this.syncFromVideo())}onVideoPlay(){this._playing=!0,this.syncFromVideo(),this.emit(`play`)}onVideoPause(){this._playing=!1,this.syncFromVideo(),this.emit(`pause`)}onVideoEnded(){this._playing=!1,this.syncFromVideo(),this.emit(`ended`)}onVideoTimeUpdate(){this.syncFromVideo(),this._scrubbing=!1}syncFullscreen(){let t=e.source.getFullscreenElement(),n=this.getElement();this._fullscreen=n!=null&&t===n,this._fullscreenBtn.setGlyph(this._fullscreen?`compress`:`expand`),this.doLayout()}getInnerSize(){if(this._fullscreen&&this.getElement()){let t=e.source.getViewportSize(),n=this.getPerimeterSize();return{width:t.width-n.left-n.right,height:t.height-n.top-n.bottom}}return super.getInnerSize()}},Xe=o(VideoPlayer);export{Se as Canvas,u as Glyph,re as Header,Ve as IconLabel,le as IconText,Ee as Image,U as Markdown,G as MarkdownMinimap,ze as MarkdownViewer,X as PaginationBar,He as ProgressBar,te as ProgressSpinner,ProgressiveEngine,Z as Video,Xe as VideoPlayer,we as WebGLCanvas,extractMarkdownHeadings,findActiveHeading};
1
+ import{t as e}from"../DOM-Cjh7_7TF.js";import{a as t,l as n,n as r}from"../Position-BIEU1Eze.js";import{S as i,b as a,h as o,r as s,t as c}from"../Component-D99-15Zt.js";import{t as l}from"../ListenerBag-WPdKuuds.js";import{t as u}from"../Glyph-DiEpD3gy.js";import{t as d}from"../Panel-CtViePqY.js";import{t as ee}from"../Fit-CaPMj7Up.js";import{t as f}from"../Text-O-FWa5Cy.js";import{n as p,r as m}from"../VBox-DVe4UXwX.js";import{t as te}from"../ProgressSpinner-BuBvC1FY.js";import{t as h}from"../Placement-7kqdaK4Z.js";import{t as ne}from"../Border-6GsTNV-2.js";import{t as re}from"../Header-Osm3IjDw.js";import{t as g}from"../Button-CnFAiQuV.js";import{angle_left as ie}from"../glyphs/solid/angle_left.es.js";import{angle_right as ae}from"../glyphs/solid/angle_right.es.js";import{t as oe}from"../Anchor-iZhsvMlT.js";import{t as se}from"../AnchorConstraints-Bfkt8019.js";import{n as ce,t as _}from"../Slider-DNfd8Lxz.js";import{t as le}from"../IconText-BBaYJ2Fx.js";import{t as v}from"../FloatingPanel-Dsy_vJxi.js";import{n as ue,t as de}from"../Tree-CSEguhlk.js";import{compress as y}from"../glyphs/solid/compress.es.js";import{expand as b}from"../glyphs/solid/expand.es.js";import{magnifying_glass_plus as fe}from"../glyphs/solid/magnifying_glass_plus.es.js";import{magnifying_glass_minus as pe}from"../glyphs/solid/magnifying_glass_minus.es.js";import{arrows_rotate as me}from"../glyphs/solid/arrows_rotate.es.js";import{angles_left as he}from"../glyphs/solid/angles_left.es.js";import{angles_right as ge}from"../glyphs/solid/angles_right.es.js";import{play as _e}from"../glyphs/solid/play.es.js";import{pause as ve}from"../glyphs/solid/pause.es.js";import{volume_high as ye}from"../glyphs/solid/volume_high.es.js";import{volume_mute as be}from"../glyphs/solid/volume_mute.es.js";import{lexer as x}from"marked";var xe={tag:`canvas`,maxFps:30},S=-1,Canvas=class extends c{_ctx=null;_rafId=null;_animationStartMs=null;_lastDrawMs=null;_elapsedMs=0;_animationRequested=!1;_syncedWidth=S;_syncedHeight=S;_syncedDpr=S;_dprToken=0;constructor(e,t){super(e,{...xe,...t??{}}),this.clearInsets()}applyOptions(e){return super.applyOptions(e),e.onDraw!==void 0&&this.setOnDraw(e.onDraw),e.animateWhenHidden!==void 0&&this.setAnimateWhenHidden(e.animateWhenHidden),e.maxFps!==void 0&&this.setMaxFps(e.maxFps),this}getContext(){if(this._ctx)return this._ctx;let t=this.getElement();return t?(this._ctx=e.sink.getContext(t,`2d`),this._ctx):null}setOnDraw(e){return this._options.onDraw=e??void 0,this.redraw(),this}getOnDraw(){return this._options.onDraw??this._defaultOptions.onDraw??null}redraw(){let e=this.getContext();if(!e)return this;let t=this.getWidth(),n=this.getHeight();return e.clearRect(0,0,t,n),this.getOnDraw()?.(e,t,n,this._elapsedMs),this}startAnimation(){return this._animationRequested=!0,this._animationStartMs=null,this._lastDrawMs=null,this._elapsedMs=0,this.reconcileAnimation(),this}stopAnimation(){return this._animationRequested=!1,this.reconcileAnimation(),this}isAnimating(){return this._rafId!==null}setAnimateWhenHidden(e){return this._options.animateWhenHidden=e,this.reconcileAnimation(),this}setMaxFps(e){return this._options.maxFps=Math.max(0,e),this}getMaxFps(){return this._options.maxFps??this._defaultOptions.maxFps??0}getAnimateWhenHidden(){return this._options.animateWhenHidden??this._defaultOptions.animateWhenHidden??!1}syncBackingStore(){let t=this.getContext();if(!t)return;let n=this.getWidth(),r=this.getHeight(),i=e.source.getDevicePixelRatio();if(n===this._syncedWidth&&r===this._syncedHeight&&i===this._syncedDpr)return;let a=this.getElement();e.sink.apply(a,{setAttr:{width:String(Math.round(n*i)),height:String(Math.round(r*i))}}),t.setTransform(i,0,0,i,0,0),this._syncedWidth=n,this._syncedHeight=r,this._syncedDpr=i,this.redraw()}doLayout(){return super.doLayout(),this.syncBackingStore(),this}render(){let e=super.render();return this.watchDevicePixelRatio(),e}destructor(){this.stopAnimation(),super.destructor()}shouldAnimate(){return this._animationRequested&&(this.getAnimateWhenHidden()||this.isEffectivelyVisible())}reconcileAnimation(){this.shouldAnimate()?this._rafId===null&&(this._rafId=e.sink.requestAnimationFrame(this.animationStep)):this._rafId!=null&&(e.sink.cancelAnimationFrame(this._rafId),this._rafId=null)}animationStep=t=>{if(!this._animationRequested){this._rafId=null;return}this._animationStartMs===null&&(this._animationStartMs=t);let n=this.getMaxFps(),r=n>0?1e3/n:0;(this._lastDrawMs===null||t-this._lastDrawMs>=r)&&(this._lastDrawMs=t,this._elapsedMs=t-this._animationStartMs,this.redraw()),this._rafId=e.sink.requestAnimationFrame(this.animationStep)};onEffectiveVisibilityChange(e){super.onEffectiveVisibilityChange(e),this.reconcileAnimation()}watchDevicePixelRatio(){let t=++this._dprToken,n=e.source.getDevicePixelRatio();e.source.matchMedia(`(resolution: ${n}dppx)`).addChangeListener(()=>this.onDevicePixelRatioChange(t))}onDevicePixelRatioChange(e){e===this._dprToken&&this.getElement()&&(this.syncBackingStore(),this.watchDevicePixelRatio())}},Se=o(Canvas),Ce={tag:`canvas`,maxFps:30},C=-1,WebGLCanvas=class extends c{_gl=null;_rafId=null;_animationStartMs=null;_lastDrawMs=null;_elapsedMs=0;_animationRequested=!1;_contextLost=!1;_onContextLost=()=>{this._contextLost=!0};_syncedWidth=C;_syncedHeight=C;_syncedDpr=C;_dprToken=0;constructor(e,t){super(e,{...Ce,...t??{}}),this._contextInitialised=!1,this.clearInsets()}applyOptions(e){return super.applyOptions(e),e.onContextInit!==void 0&&this.setOnContextInit(e.onContextInit),e.onFrame!==void 0&&this.setOnFrame(e.onFrame),e.animateWhenHidden!==void 0&&this.setAnimateWhenHidden(e.animateWhenHidden),e.maxFps!==void 0&&this.setMaxFps(e.maxFps),this}getContext(){if(this._gl)return this._gl;let t=this.getElement();return t?(this._gl=e.sink.getContext(t,`webgl2`),this._gl):null}setOnContextInit(e){return this._options.onContextInit=e??void 0,this._contextInitialised=!1,this}getOnContextInit(){return this._options.onContextInit??this._defaultOptions.onContextInit??null}setOnFrame(e){return this._options.onFrame=e??void 0,this}getOnFrame(){return this._options.onFrame??this._defaultOptions.onFrame??null}startAnimation(){return this._animationRequested=!0,this._animationStartMs=null,this._lastDrawMs=null,this._elapsedMs=0,this.reconcileAnimation(),this}stopAnimation(){return this._animationRequested=!1,this.reconcileAnimation(),this}isAnimating(){return this._rafId!==null}setAnimateWhenHidden(e){return this._options.animateWhenHidden=e,this.reconcileAnimation(),this}getAnimateWhenHidden(){return this._options.animateWhenHidden??this._defaultOptions.animateWhenHidden??!1}setMaxFps(e){return this._options.maxFps=Math.max(0,e),this}getMaxFps(){return this._options.maxFps??this._defaultOptions.maxFps??0}syncBackingStore(){let t=this.getContext();if(!t)return;let n=this.getWidth(),r=this.getHeight(),i=e.source.getDevicePixelRatio();if(n===this._syncedWidth&&r===this._syncedHeight&&i===this._syncedDpr)return;let a=Math.round(n*i),o=Math.round(r*i);e.sink.apply(this.getElement(),{setAttr:{width:String(a),height:String(o)}}),t.viewport(0,0,a,o),this._syncedWidth=n,this._syncedHeight=r,this._syncedDpr=i,this.renderFrame()}doLayout(){return super.doLayout(),this.syncBackingStore(),this}render(){let e=super.render();return i.addListener(this,`webglcontextlost`,{prevent:!0,handler:this._onContextLost}),i.addListener(this,`webglcontextrestored`,()=>{this._contextLost=!1,this._contextInitialised=!1,this.syncBackingStore()}),this.watchDevicePixelRatio(),this.onFirstLayout(()=>this.startAnimation()),e}destructor(){this.stopAnimation(),super.destructor()}shouldAnimate(){return this._animationRequested&&(this.getAnimateWhenHidden()||this.isEffectivelyVisible())}reconcileAnimation(){this.shouldAnimate()?this._rafId===null&&(this._rafId=e.sink.requestAnimationFrame(this.animationStep)):this._rafId!=null&&(e.sink.cancelAnimationFrame(this._rafId),this._rafId=null)}animationStep=t=>{if(!this._animationRequested){this._rafId=null;return}this._animationStartMs===null&&(this._animationStartMs=t);let n=this.getMaxFps(),r=n>0?1e3/n:0;(this._lastDrawMs===null||t-this._lastDrawMs>=r)&&(this._lastDrawMs=t,this._elapsedMs=t-this._animationStartMs,this.renderFrame()),this._rafId=e.sink.requestAnimationFrame(this.animationStep)};onEffectiveVisibilityChange(e){super.onEffectiveVisibilityChange(e),this.reconcileAnimation()}renderFrame(){let e=this.getContext();!e||this._contextLost||(this._contextInitialised||=(this.getOnContextInit()?.(e),!0),this.getOnFrame()?.(e,this.getWidth(),this.getHeight(),this._elapsedMs))}watchDevicePixelRatio(){let t=++this._dprToken,n=e.source.getDevicePixelRatio();e.source.matchMedia(`(resolution: ${n}dppx)`).addChangeListener(()=>this.onDevicePixelRatioChange(t))}onDevicePixelRatioChange(e){e===this._dprToken&&this.getElement()&&(this.syncBackingStore(),this.watchDevicePixelRatio())}},we=o(WebGLCanvas),w=100,Te={tag:`img`},Image=class extends c{_src;constructor(e,t,n){super(t,{...Te,...n??{}}),this._src=e,this.clearInsets()}getElement(e=!1){return super.getElement(e)}getPreferredSize(){let t=this.getElement(),n=e.source.getNaturalSize(t);return{width:n.width,height:n.height}}getMinSize(){let t=super.getMinSize();if(this._options.minSize)return t;let n=this.getElement();if(!n||!e.source.getNaturalSize(n).width)return{width:20,height:20};let r=e.source.getNaturalSize(n);return{width:Math.min(r.width,w),height:Math.min(r.height,w)}}render(){let t=super.render();return e.sink.apply(t,{setAttr:{src:this._src.valueOf()}}),t}},Ee=o(Image),T=`ts-ui-md-code`,E=`ts-ui-md-pre`,D=`ts-ui-md-quote`,O=`ts-ui-md-list`,k=`ts-ui-md-link`,A=`ts-ui-md-heading`,j=`ts-ui-md-table-wrap`,M=`ts-ui-md-table`,N=`ts-ui-md-th`,P=`ts-ui-md-td`,F=`ts-ui-md-align-left`,I=`ts-ui-md-align-center`,L=`ts-ui-md-align-right`,R=`ts-ui-md-code-host`,z=1,B=6,De={js:`javascript`,javascript:`javascript`,jsx:`javascript`,mjs:`javascript`,cjs:`javascript`,ts:`javascript`,typescript:`javascript`,tsx:`javascript`,json:`json`,html:`html`,htm:`html`,sql:`sql`,md:`markdown`,markdown:`markdown`},Oe=20,ke=8;function mapFenceLangToEditorId(e){if(!e)return null;let t=e.trim().split(/\s+/,1)[0]?.toLowerCase();return t?De[t]??null:null}var V=!1;function ensureMarkdownClassRules(){V||(V=!0,new a({scope:`class`,name:T,styles:{fontFamily:`var(--ts-ui-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)`,background:`rgba(127, 127, 127, 0.16)`,borderRadius:`var(--ts-ui-border-radius, 3px)`,padding:`0.1em 0.3em`,lineHeight:`normal`}}),new a({scope:`class`,name:E,styles:{fontFamily:`var(--ts-ui-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)`,background:`rgba(127, 127, 127, 0.16)`,borderRadius:`var(--ts-ui-border-radius, 3px)`,padding:`0.6em 0.8em`,whiteSpace:`pre`,overflow:`auto`,lineHeight:`normal`}}),new a({scope:`class`,name:D,styles:{borderLeft:`3px solid var(--ts-ui-border-color, rgba(127, 127, 127, 0.4))`,paddingLeft:`1em`,marginLeft:`0`}}),new a({scope:`class`,name:O,styles:{paddingLeft:`1.5em`}}),new a({scope:`class`,name:k,styles:{color:`var(--ts-ui-indicator-focus, #2563eb)`}}),new a({scope:`class`,name:A,styles:{fontWeight:`600`}}),new a({scope:`class`,name:j,styles:{maxWidth:`100%`,overflowX:`auto`}}),new a({scope:`class`,name:M,styles:{borderCollapse:`collapse`}}),new a({scope:`class`,name:N,styles:{border:`1px solid var(--ts-ui-border-color, rgba(127, 127, 127, 0.4))`,padding:`0.3em 0.6em`,fontWeight:`600`,textAlign:`left`}}),new a({scope:`class`,name:P,styles:{border:`1px solid var(--ts-ui-border-color, rgba(127, 127, 127, 0.4))`,padding:`0.3em 0.6em`}}),new a({scope:`class`,name:F,styles:{textAlign:`left`}}),new a({scope:`class`,name:I,styles:{textAlign:`center`}}),new a({scope:`class`,name:L,styles:{textAlign:`right`}}),new a({scope:`class`,name:R,styles:{position:`relative`}}))}function alignmentClass(e){switch(e){case`left`:return F;case`center`:return I;case`right`:return L;default:return null}}function slugify(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)}function nextHeadingId(e,t){let n=slugify(e),r=t.get(n)??0;return t.set(n,r+1),r===0?n:`${n}-${r}`}function defaultLinkResolver(e){return{href:e,external:!0}}var Ae={userSelect:`text`,cursor:`text`},Markdown=class extends c{_contentHandles=[];_measuredHeight=null;_unsubscribeTheme;_codeEditors=[];_pendingCodeUpgrades=[];_awaitingVisibilityKickoffs=[];_awaitingViewportKickoffs=[];_viewportWatchArmed=!1;_viewportPassScheduled=!1;_measureScheduled=!1;handleViewportPass=()=>this.onViewportPass();handleScheduledMeasure=()=>this.onScheduledMeasure();_renderGeneration=0;_maxMeasure=null;constructor(e,t,n){super(t,{...Ae,...n??{}}),e!==void 0&&this._options.markdown===void 0&&(this._options.markdown=e),this.setWhiteSpace(`normal`),this.setElementCSSRule(`overflowWrap`,`break-word`),this.setElementCSSRule(`lineHeight`,`var(--ts-ui-md-line-height, 1.8)`),this.setMaxMeasure(this._options.maxMeasure??null),this.setFontScale(this._options.fontScale??1),this._unsubscribeTheme=s.onThemeChange(()=>this.onThemeChanged()),this.onFirstLayout(()=>this.measureContentHeight())}applyOptions(e){return super.applyOptions(e),e.markdown!==void 0&&(this._options.markdown=e.markdown),e.linkResolver!==void 0&&(this._options.linkResolver=e.linkResolver),e.maxMeasure!==void 0&&(this._options.maxMeasure=e.maxMeasure),e.fontScale!==void 0&&(this._options.fontScale=e.fontScale),this}getMarkdown(){return this._options.markdown??``}setLinkResolver(e){return this._options.linkResolver=e,this}getLinkResolver(){return this._options.linkResolver??defaultLinkResolver}setMaxMeasure(e){return this._options.maxMeasure=e,this._maxMeasure=typeof e==`number`?`${e}ch`:e,this.setElementCSSRule(`maxWidth`,this._maxMeasure??`var(--ts-ui-md-max-measure, 70ch)`),this}getMaxMeasure(){return this._options.maxMeasure??null}applyStyle(e){return super.applyStyle(e),this.setElementCSSRule(`maxWidth`,this._maxMeasure??`var(--ts-ui-md-max-measure, 70ch)`),this}setFontScale(e){return this._options.fontScale=e,this.setElementCSSRule(`fontSize`,e===1?null:e*100+`%`),this}getFontScale(){return this._options.fontScale??1}setMarkdown(e){this._options.markdown=e;let t=this.getElement();return t?(this.clearContent(),ensureMarkdownClassRules(),this.appendBlockTokens(t,x(e),new Map),this.measureContentHeight(),this):this}getMinSize(){let e=super.getMinSize();return this._measuredHeight===null?e:e?{width:e.width,height:Math.max(e.height,this._measuredHeight)}:{width:0,height:this._measuredHeight}}getPreferredSize(){let e=super.getPreferredSize();return this._measuredHeight===null||this.getPreferredSizeConstraint()!==null?e:e?{width:e.width,height:this._measuredHeight}:{width:0,height:this._measuredHeight}}setWidth(e){let t=e!==this.getWidth();return super.setWidth(e),t&&(this.resyncCodeEditorWidths(),this.measureContentHeight()),this}onThemeChanged(){this.resyncCodeEditorWidths(),this.measureContentHeight()}destructor(){this.clearContent(),this._unsubscribeTheme(),super.destructor()}measureContentHeight(){let t=this.getElement();if(!t)return;this.commitElementStyle(),this.flushPendingCodeUpgrades();let n=this.getHeight();this.setElementStyle(`height`,`auto`),this.commitElementStyle();let r=this.getBorderSize(),i=e.source.getScrollMetrics(t).scrollHeight+r.top+r.bottom;this.setElementStyle(`height`,n+`px`),this.commitElementStyle(),i!==this._measuredHeight&&(this._measuredHeight=i,(this.getParentComponent()??this).scheduleLayout())}render(){let e=super.render();return ensureMarkdownClassRules(),this.appendBlockTokens(e,x(this.getMarkdown()),new Map),e}create(t){let n=e.sink.createElement(t);return this.trackHandle(n),this._contentHandles.push(n),n}clearContent(){for(let t of this._contentHandles)e.sink.removeElement(t),this.untrackHandle(t),e.sink.release(t);this._contentHandles.length=0,this._renderGeneration+=1;for(let{editor:e}of this._codeEditors)e.dispose();this._codeEditors.length=0,this._pendingCodeUpgrades.length=0,this._awaitingVisibilityKickoffs.length=0,this._awaitingViewportKickoffs.length=0,this.disarmViewportWatch()}applyCodeEditorUpgrade(t,n,r,i,a,o){let s=e.source.getScrollMetrics(r),c=s.clientWidth,l=s.scrollHeight;for(let t of[r,i]){e.sink.removeElement(t),this.untrackHandle(t),e.sink.release(t);let n=this._contentHandles.indexOf(t);n!==-1&&this._contentHandles.splice(n,1)}let u=new t(a,{readOnly:!0,language:o,autoHeightMaxRows:Oe});u.setX(0).setY(0).setWidth(c).setHeight(l);let d=!1;u.on(`heightchange`,e=>{if(!d){d=!0;let t=Math.abs(e.height-l);t>ke&&console.warn(`Markdown: fenced "${o}" code block's CodeEditor corrected its guessed height by ${Math.round(t)}px (${l}px → ${e.height}px) on mount.`)}this.handleCodeEditorHeightChange(n,e.height)}),e.sink.appendChild(n,u.getElement(!0)),e.sink.apply(n,{style:{height:l+`px`}}),this._codeEditors.push({editor:u,wrapper:n})}handleCodeEditorHeightChange(t,n){e.sink.apply(t,{style:{height:n+`px`}}),this.scheduleContentMeasure()}flushPendingCodeUpgrades(){this._pendingCodeUpgrades=this._pendingCodeUpgrades.filter(e=>!this.isEffectivelyVisible()||(this.applyCodeEditorUpgrade(e.CodeEditorClass,e.wrapper,e.pre,e.code,e.text,e.languageId),!1))}resyncCodeEditorWidths(){if(this.commitElementStyle(),this.isEffectivelyVisible())for(let{editor:t,wrapper:n}of this._codeEditors)t.setWidth(e.source.getScrollMetrics(n).clientWidth)}startCodeEditorImport(e){if(!this.isEffectivelyVisible()){this._awaitingVisibilityKickoffs.push(e);return}if(!this.isBlockNearViewport(e.wrapper)){this._awaitingViewportKickoffs.push(e),this.armViewportWatch();return}this.loadCodeEditorUpgrade(e.wrapper,e.pre,e.code,e.text,e.languageId,e.generation)}isBlockNearViewport(t){let n=e.source.getElementRect(t),r=e.source.getViewportSize().height*2;return n.bottom>=0&&n.top<=r}armViewportWatch(){this._viewportWatchArmed||(this._viewportWatchArmed=!0,i.addViewportListener(this,`scroll`,this.handleViewportChange),i.addViewportListener(this,`resize`,this.handleViewportChange))}disarmViewportWatch(){this._viewportWatchArmed&&(this._viewportWatchArmed=!1,i.removeViewportListener(this,`scroll`,this.handleViewportChange),i.removeViewportListener(this,`resize`,this.handleViewportChange))}handleViewportChange(){this.scheduleViewportPass()}scheduleViewportPass(){this._viewportPassScheduled||this._awaitingViewportKickoffs.length===0||(this._viewportPassScheduled=!0,c.afterNextLayout(this.handleViewportPass))}onViewportPass(){if(this._viewportPassScheduled=!1,this._awaitingViewportKickoffs.length===0){this.disarmViewportWatch();return}if(!this.isEffectivelyVisible())return;this.commitElementStyle();let t=e.source.getViewportSize().height*2,n=this._awaitingViewportKickoffs,r=[],i=[];for(let a=0;a<n.length;a++){let o=n[a],s=e.source.getElementRect(o.wrapper);if(s.top>t){i.push(...n.slice(a));break}(s.bottom>=0?r:i).push(o)}this._awaitingViewportKickoffs=i,i.length===0&&this.disarmViewportWatch();for(let e of r)this.loadCodeEditorUpgrade(e.wrapper,e.pre,e.code,e.text,e.languageId,e.generation)}onEffectiveVisibilityChange(e){if(super.onEffectiveVisibilityChange(e),!e||this._awaitingVisibilityKickoffs.length===0)return;let t=this._awaitingVisibilityKickoffs;this._awaitingVisibilityKickoffs=[];for(let e of t)this.startCodeEditorImport(e)}async loadCodeEditorUpgrade(e,t,n,r,i,a){let[{CodeEditor:o}]=await Promise.all([import(`../CodeEditor-CTL2WjF8.js`).then(e=>e.n),import(`../languages-Dl8qdL8a.js`).then(e=>e.t)]);a===this._renderGeneration&&(this.isEffectivelyVisible()?(this.applyCodeEditorUpgrade(o,e,t,n,r,i),this.scheduleContentMeasure()):this._pendingCodeUpgrades.push({CodeEditorClass:o,wrapper:e,pre:t,code:n,text:r,languageId:i,generation:a}))}scheduleContentMeasure(){this._measureScheduled||(this._measureScheduled=!0,c.afterNextLayout(this.handleScheduledMeasure))}onScheduledMeasure(){this._measureScheduled=!1,this.measureContentHeight(),this.scheduleViewportPass()}appendBlockTokens(e,t,n){for(let r of t)this.appendBlockToken(e,r,n)}appendBlockToken(e,t,n){switch(t.type){case`heading`:this.appendHeading(e,t,n);break;case`paragraph`:this.appendParagraph(e,t);break;case`list`:this.appendList(e,t,n);break;case`blockquote`:this.appendBlockquote(e,t,n);break;case`code`:this.appendCode(e,t);break;case`table`:this.appendTable(e,t);break;case`space`:break;default:this.appendTextNode(e,t.raw??``)}}appendHeading(t,n,r){let i=Math.min(Math.max(n.depth,z),B),a=this.create(`h`+i),o=nextHeadingId(n.text,r);e.sink.apply(a,{addClass:[A],setAttr:{id:o}}),this.appendInlineTokens(a,n.tokens),e.sink.appendChild(t,a)}appendParagraph(t,n){let r=this.create(`p`);this.appendInlineTokens(r,n.tokens),e.sink.appendChild(t,r)}appendList(t,n,r){let i=this.create(n.ordered?`ol`:`ul`);e.sink.apply(i,{addClass:[O]});for(let e of n.items)this.appendListItem(i,e,r);e.sink.appendChild(t,i)}appendListItem(t,n,r){let i=this.create(`li`);for(let e of n.tokens)if(e.type===`text`){let t=e;t.tokens&&t.tokens.length>0?this.appendInlineTokens(i,t.tokens):this.appendInlineToken(i,t,n.tokens.length===1)}else this.appendBlockToken(i,e,r);e.sink.appendChild(t,i)}appendTable(t,n){let r=this.create(`div`);e.sink.apply(r,{addClass:[j]});let i=this.create(`table`);e.sink.apply(i,{addClass:[M]});let a=this.create(`thead`);this.appendTableRow(a,n.header,!0),e.sink.appendChild(i,a);let o=this.create(`tbody`);for(let e of n.rows)this.appendTableRow(o,e,!1);e.sink.appendChild(i,o),e.sink.appendChild(r,i),e.sink.appendChild(t,r)}appendTableRow(t,n,r){let i=this.create(`tr`);for(let t of n){let n=this.create(r?`th`:`td`),a=[r?N:P],o=alignmentClass(t.align);o&&a.push(o),e.sink.apply(n,{addClass:a}),this.appendInlineTokens(n,t.tokens),e.sink.appendChild(i,n)}e.sink.appendChild(t,i)}appendBlockquote(t,n,r){let i=this.create(`blockquote`);e.sink.apply(i,{addClass:[D]}),this.appendBlockTokens(i,n.tokens,r),e.sink.appendChild(t,i)}appendCode(t,n){let r=this.create(`pre`);e.sink.apply(r,{addClass:[E]});let i=this.create(`code`);e.sink.apply(i,{text:n.text}),e.sink.appendChild(r,i);let a=mapFenceLangToEditorId(n.lang);if(a===null){e.sink.appendChild(t,r);return}let o=this.create(`div`);e.sink.apply(o,{addClass:[R]}),e.sink.appendChild(o,r),e.sink.appendChild(t,o);let s={wrapper:o,pre:r,code:i,text:n.text,languageId:a,generation:this._renderGeneration};this.onFirstLayout(()=>this.startCodeEditorImport(s))}appendInlineTokens(e,t){let n=t.length===1;for(let r of t)this.appendInlineToken(e,r,n)}appendInlineToken(t,n,r){switch(n.type){case`text`:{let i=n;i.tokens&&i.tokens.length>0?this.appendInlineTokens(t,i.tokens):r?e.sink.apply(t,{text:i.text}):this.appendTextNode(t,i.text);break}case`strong`:this.appendInlineWrapper(t,`strong`,n.tokens);break;case`em`:this.appendInlineWrapper(t,`em`,n.tokens);break;case`codespan`:{let r=this.create(`code`);e.sink.apply(r,{addClass:[T],text:n.text}),e.sink.appendChild(t,r);break}case`link`:this.appendLink(t,n);break;default:this.appendTextNode(t,n.text??n.raw??``)}}appendInlineWrapper(t,n,r){let i=this.create(n);this.appendInlineTokens(i,r),e.sink.appendChild(t,i)}appendLink(t,n){let r=this.create(`a`),i=this.getLinkResolver()(n.href),a={href:i.href};i.external&&(a.target=`_blank`,a.rel=`noopener noreferrer`),e.sink.apply(r,{addClass:[k],setAttr:a}),this.appendInlineTokens(r,n.tokens),e.sink.appendChild(t,r)}appendTextNode(t,n){let r=this.create(`span`);e.sink.apply(r,{text:n}),e.sink.appendChild(t,r)}};function inlineText(e){return e.map(e=>{switch(e.type){case`text`:return e.tokens?inlineText(e.tokens):e.text;case`strong`:return inlineText(e.tokens);case`em`:return inlineText(e.tokens);case`codespan`:return e.text;case`link`:return inlineText(e.tokens);default:return e.text??e.raw??``}}).join(``)}function collectHeadings(e,t,n){for(let r of e)if(r.type===`heading`){let e=r,i=Math.min(Math.max(e.depth,z),B);n.push({id:nextHeadingId(e.text,t),text:inlineText(e.tokens),depth:i})}else if(r.type===`blockquote`)collectHeadings(r.tokens,t,n);else if(r.type===`list`)for(let e of r.items)collectHeadings(e.tokens,t,n)}function extractMarkdownHeadings(e){let t=[];return collectHeadings(x(e),new Map,t),t}var H=1;function findActiveHeading(t,n){let r=e.source.getElementRect(t).top,i=e.source.getScrollMetrics(t),a=i.scrollHeight>i.clientHeight&&i.scrollTop>=i.scrollHeight-i.clientHeight-H,o=null;for(let i of n){let n=e.source.getElementById(i.id);if(!(!n||!e.source.contains(t,n))){if(e.source.getElementRect(n).top<=r+H)o=i.id;else{a&&(o=i.id);break}}}return o}var U=o(Markdown),W=3,je=`On this page`,Me=500,Ne=160,Pe=240,Fe=12,Ie=new r(8,12,4,12),Le={maxHeadingDepth:W,maxSize:{width:t,height:Me},minSize:{width:Ne,height:0}},MarkdownMinimap=class extends v{_tree;_listeners=new l;_scrollSource;_nodesById=new Map;_nearestShown=new Map;handleSelection=e=>this.onTreeSelection(e);handleActiveHeadingChange=e=>this.applyActiveHeading(e);constructor(e,t){super(e,{...Le,...t??{}}),this.setBackgroundColor(`var(--ts-ui-input-bg, rgb(255, 255, 255))`),this.setShadow(`var(--ts-ui-popover-shadow, 2px 4px 12px rgba(0, 0, 0, 0.18))`),this.setBorderRadius(`var(--ts-ui-border-radius, 4px)`),this.setLayoutManager(new p({spacing:4,stretching:!0}));let n=new f(je);n.setFontSize(12),n.setFontWeight(`700`),n.setOpacity(.6);let r=new c({layoutManager:new ee,padding:Ie});r.addComponent(n),this.addComponent(r),this._tree=new de({backgroundColor:`transparent`,rowOverflow:`clip`}),this._tree.setRendererFactory(()=>{let e=new ue;return e.getLabel().setFontSize(Fe),e}),this._tree.on(`selection`,this.handleSelection),this.addComponent(this._tree),this._scrollSource=e?.scrollSource??null,this._scrollSource?.on(`activeheadingchange`,this.handleActiveHeadingChange),this.applyListeners(e?.listeners)}getPreferredSize(){if(this.getPreferredSizeConstraint()!==null)return super.getPreferredSize();let e=super.getPreferredSize();return e&&{width:Math.max(e.width,Pe),height:e.height}}applyOptions(e){return super.applyOptions(e),e.maxHeadingDepth!==void 0&&(this._options.maxHeadingDepth=e.maxHeadingDepth),this}getMaxHeadingDepth(){return this._options.maxHeadingDepth??this._defaultOptions.maxHeadingDepth??W}setHeadings(e){let t=this.getMaxHeadingDepth(),n=[],r=[],i=new Map,a=new Map;for(let o of e){for(;r.length>0&&r[r.length-1].depth>=o.depth;)r.pop();let e=r.length>0?r[r.length-1].node:null;if(o.depth<=t){let t={label:o.text,data:o.id,children:[]};e?e.children.push(t):n.push(t),i.set(o.id,t),a.set(o.id,o.id),r.push({depth:o.depth,node:t})}else a.set(o.id,e?a.get(e.data)??null:null)}return this._nodesById=i,this._nearestShown=a,this._tree.setNodes(n),this._tree.expandAll(),this}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)}onTreeSelection(e){let t=e[0];!t||t.data===void 0||this.emit(`select`,t.data)}applyActiveHeading(e){if(e===null)return;let t=this._nearestShown.get(e)??null;if(t===null)return;let n=this._nodesById.get(t);n&&this._tree.selectNode(n)}destructor(){this._scrollSource?.off(`activeheadingchange`,this.handleActiveHeadingChange),super.destructor()}},G=o(MarkdownMinimap);u.register(y,b,fe,pe,me);var K=[60,70,90],q=[.85,1,1.15,1.3],J=1,Y=1,Re=32,ze={showMinimap:!0,showControls:!0},MarkdownViewer=class extends d{_markdown;_minimap;_controls;_narrowerBtn;_widerBtn;_zoomOutBtn;_zoomInBtn;_resetBtn;_headings;_widthIndex=J;_zoomIndex=Y;_lastActiveHeadingId=null;_pendingClickScrollTop=null;_listeners=new l;handleNativeScroll=()=>this.onNativeScroll();handleMinimapSelect=e=>this.scrollToHeading(e);_onNarrower=()=>this.stepWidth(-1);_onWider=()=>this.stepWidth(1);_onZoomOut=()=>this.stepZoom(-1);_onZoomIn=()=>this.stepZoom(1);_onReset=()=>this.resetViewerProperties();constructor(e,t){super(e,{...ze,...t??{},layoutManager:new oe,autoScroll:`y`}),this._markdown=new U(e?.markdown,{linkResolver:e?.linkResolver,padding:new r(0,0,0,Re)});let n=new se;n.left=0,n.right=0,this.addComponent(this._markdown,n),this._headings=extractMarkdownHeadings(e?.markdown??``),this._minimap=new G({scrollSource:this,maxHeadingDepth:e?.maxHeadingDepth,corner:`top-right`}),this._minimap.setHeadings(this._headings),this._minimap.on(`select`,this.handleMinimapSelect),this.addComponent(this._minimap,this._minimap.getAnchorConstraints()),this.buildControls(),this.wireControlListeners(),this.addComponent(this._controls,this._controls.getAnchorConstraints()),i.addSubtreeListener(this,`scroll`,this.handleNativeScroll),this.setMinimapVisible(this._options.showMinimap??this._defaultOptions.showMinimap??!0),this.setControlsVisible(this._options.showControls??this._defaultOptions.showControls??!0),this.applyListeners(e?.listeners)}doLayout(){return super.doLayout(),this._minimap?.placeNextTo(this._markdown??null),this}applyOptions(e){return super.applyOptions(e),e.showMinimap!==void 0&&(this._options.showMinimap=e.showMinimap),e.showControls!==void 0&&(this._options.showControls=e.showControls),this}getMarkdown(){return this._markdown}setMarkdown(e){return this._markdown.setMarkdown(e),this._headings=extractMarkdownHeadings(e),this._minimap.setHeadings(this._headings),this}isMinimapVisible(){return this._options.showMinimap??this._defaultOptions.showMinimap??!0}setMinimapVisible(e){return this._options.showMinimap=e,this._minimap.setVisible(e),this}isControlsVisible(){return this._options.showControls??this._defaultOptions.showControls??!0}setControlsVisible(e){return this._options.showControls=e,this._controls.setVisible(e),this}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)}buildControls(){this._narrowerBtn=this.makeControlButton(`compress`,`Narrower`),this._widerBtn=this.makeControlButton(`expand`,`Wider`),this._zoomOutBtn=this.makeControlButton(`magnifying-glass-minus`,`Zoom out`),this._zoomInBtn=this.makeControlButton(`magnifying-glass-plus`,`Zoom in`),this._resetBtn=this.makeControlButton(`arrows-rotate`,`Reset`),this._controls=new v({corner:`bottom-right`,layoutManager:new p({spacing:4})}),this._controls.addComponent(this._narrowerBtn),this._controls.addComponent(this._widerBtn),this._controls.addComponent(this._zoomOutBtn),this._controls.addComponent(this._zoomInBtn),this._controls.addComponent(this._resetBtn)}makeControlButton(e,t){return new g({glyph:e,text:t,showText:!1})}wireControlListeners(){this._narrowerBtn.on(`action`,this._onNarrower),this._widerBtn.on(`action`,this._onWider),this._zoomOutBtn.on(`action`,this._onZoomOut),this._zoomInBtn.on(`action`,this._onZoomIn),this._resetBtn.on(`action`,this._onReset)}stepWidth(e){this._widthIndex=n.clamp(this._widthIndex+e,0,K.length-1),this._markdown.setMaxMeasure(K[this._widthIndex]+`ch`),this._minimap.placeNextTo(this._markdown)}stepZoom(e){this._zoomIndex=n.clamp(this._zoomIndex+e,0,q.length-1),this._markdown.setFontScale(q[this._zoomIndex]),this._minimap.placeNextTo(this._markdown)}resetViewerProperties(){this._widthIndex=J,this._zoomIndex=Y,this._markdown.setMaxMeasure(null),this._markdown.setFontScale(1),this._minimap.placeNextTo(this._markdown)}onNativeScroll(){let t=this.getScrollElement();if(!t)return;if(this._pendingClickScrollTop!==null){if(e.source.getScrollTop(t)===this._pendingClickScrollTop)return;this._pendingClickScrollTop=null}let n=findActiveHeading(t,this._headings);n!==this._lastActiveHeadingId&&(this._lastActiveHeadingId=n,this.emit(`activeheadingchange`,n))}scrollToHeading(t){let n=this.getScrollElement();if(!n)return;let r=e.source.getElementById(t);if(!r||!e.source.contains(n,r))return;let i=e.source.getElementRect(r).top,a=e.source.getElementRect(n).top;this.setScrollTop(this.getScrollTop()+(i-a)),this._pendingClickScrollTop=this.getScrollTop(),t!==this._lastActiveHeadingId&&(this._lastActiveHeadingId=t,this.emit(`activeheadingchange`,t))}},Be=o(MarkdownViewer),Ve={gap:2,insets:new r(0,0,0,0)},IconLabel=class extends c{_glyph;_label;constructor(e,t,n,r,i){super(r,{...Ve,...i??{}}),this.setLayoutManager(new m({spacing:this.getGap()}));let a=this._options.glyph??e,o=this._options.text??t,s=this._options.forId??n;this._glyph=new u(a),this._label=new ce(o,s),this.addComponent(this._glyph),this.addComponent(this._label),this._options.gap!==void 0&&this.getLayoutManager().setComponentSpacing(this._options.gap)}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),e.forId!==void 0&&(this._options.forId=e.forId),this}setGlyph(e){return this.removeComponent(this._glyph),this._glyph=new u(e),this.insertComponent(this._glyph,0),this}setText(e){return this._label.setText(e),this}setForId(e){return this._label.setForId(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}getLabelComponent(){return this._label}},He=o(IconLabel);a.ensureKeyframes(`ts-ui-progress-indeterminate`,`0% { transform: translateX(-100%); } 100% { transform: translateX(400%); }`);var ProgressBar=class extends c{_track;_fill;_value;_indeterminate;constructor(e=0,t=!1,r){super(),this._value=n.clamp(e,0,100),this._indeterminate=t,this.setBackgroundColor(`var(--ts-ui-progress-track-bg, rgb(220, 220, 220))`),this.setBorderRadius(`var(--ts-ui-progress-track-radius, 4px)`),this._track=new c,this._track.setOverflow(`hidden`),this._track.setBorderRadius(`var(--ts-ui-progress-track-radius, 4px)`),this._fill=new c,this._fill.setBackgroundColor(`var(--ts-ui-progress-fill-bg, rgb(30, 100, 200))`),this._track.addComponent(this._fill),super.addComponent(this._track),this.getAria().setRole(`progressbar`),this.getAria().setValueMin(0),this.getAria().setValueMax(100),this.getAria().setValueNow(this._value),this._indeterminate&&this.applyIndeterminate(!0),r&&this.applyOptions(r)}applyOptions(e){return super.applyOptions(e),e.indeterminate!==void 0&&this.setIndeterminate(e.indeterminate),e.value!==void 0&&this.setValue(e.value),this}getBaseline(){let e=this.getPreferredSize();return e?e.height-2:null}getValue(){return this._indeterminate?0:this._value}setValue(e){let t=n.clamp(e,0,100);return t===this._value?this:(this._value=t,this.getAria().setValueNow(t),this._indeterminate||this.scheduleLayout(),this)}isIndeterminate(){return this._indeterminate}setIndeterminate(e){return this._indeterminate===e?this:(this._indeterminate=e,this.applyIndeterminate(e),this.flushLayout(),this)}doLayout(){let e=this.getContentBounds();if(!e)return super.doLayout(),this;if(this._track.setX(e.x),this._track.setY(e.y),this._track.setSize({width:e.width,height:e.height}),this._indeterminate){let t=Math.max(20,Math.round(e.width*.25));this._fill.setX(0),this._fill.setY(0),this._fill.setSize({width:t,height:e.height})}else{let t=Math.round(e.width*this._value/100);this._fill.setX(0),this._fill.setY(0),this._fill.setSize({width:t,height:e.height})}return super.doLayout(),this}applyIndeterminate(e){e?(this._fill.setBackgroundColor(`var(--ts-ui-progress-indeterminate-bg, rgb(30, 100, 200))`),this._fill.setAnimation(`ts-ui-progress-indeterminate 1.4s ease-in-out infinite`)):(this._fill.setBackgroundColor(`var(--ts-ui-progress-fill-bg, rgb(30, 100, 200))`),this._fill.clearAnimation())}},X=o(ProgressBar);u.register(he,ie,ae,ge);var PaginationBar=class extends c{_store;_firstBtn;_prevBtn;_nextBtn;_lastBtn;_pageText;_onStoreUpdate=()=>this.refresh();constructor(e,t){super(),this._store=e;let n=new m;n.setComponentSpacing(4),this.setLayoutManager(n),this._firstBtn=new g({glyph:`angles-left`}),this._prevBtn=new g({glyph:`angle-left`}),this._pageText=new f(`Page x of y`),this._nextBtn=new g({glyph:`angle-right`}),this._lastBtn=new g({glyph:`angles-right`}),this._firstBtn.setPreferredSize({width:28,height:28}),this._prevBtn.setPreferredSize({width:28,height:28}),this._nextBtn.setPreferredSize({width:28,height:28}),this._lastBtn.setPreferredSize({width:28,height:28}),this._pageText.centerInHeight(28),this._firstBtn.on(`action`,()=>{this._store.goToPage(1)}),this._prevBtn.on(`action`,()=>this._store.prevPage()),this._nextBtn.on(`action`,()=>this._store.nextPage()),this._lastBtn.on(`action`,()=>{let e=this._store.getTotalPages();this._store.goToPage(e??this._store.getPage())}),this.addComponent(this._firstBtn),this.addComponent(this._prevBtn),this.addComponent(this._pageText),this.addComponent(this._nextBtn),this.addComponent(this._lastBtn),this._store.on(`pagechange`,this._onStoreUpdate),this._store.on(`load`,this._onStoreUpdate),this._store.on(`datachange`,this._onStoreUpdate),this._store.on(`add`,this._onStoreUpdate),this._store.on(`remove`,this._onStoreUpdate),this._store.on(`sync`,this._onStoreUpdate),this.refresh(),t&&this.applyOptions(t)}applyOptions(e){return super.applyOptions(e),e.pageSize!==void 0&&this._store.setPageSize(e.pageSize),e.pageIndex!==void 0&&this._store.goToPage(e.pageIndex),this}destructor(){this._store.off(`pagechange`,this._onStoreUpdate),this._store.off(`load`,this._onStoreUpdate),this._store.off(`datachange`,this._onStoreUpdate),this._store.off(`add`,this._onStoreUpdate),this._store.off(`remove`,this._onStoreUpdate),this._store.off(`sync`,this._onStoreUpdate),super.destructor()}refresh(){let e=this._store.getPage(),t=this._store.getTotalPages(),n=this._store.hasPendingChanges(),r=t==null?`Page ${e}`:`Page ${e} of ${t}`;this._pageText.setText(r),this._firstBtn.setEnabled(!n&&e>1),this._prevBtn.setEnabled(!n&&e>1),this._nextBtn.setEnabled(!n&&(t==null||e<t)),this._lastBtn.setEnabled(!n&&t!=null&&e<t)}},Ue=o(PaginationBar),We=[`timeupdate`,`play`,`pause`,`ended`,`loadedmetadata`,`durationchange`,`volumechange`,`ratechange`],Ge=1,Ke=1,qe={tag:`video`},Video=class extends c{_listeners=new l;_mediaHandlers=new Map;constructor(e,t){super(e,{...qe,...t??{}}),this.clearInsets(),this.getAria().setLabel(`Video`),this.buildMediaHandlers(),this.applyListeners(e?.listeners)}applyOptions(e){return super.applyOptions(e),e.src!==void 0&&this.setSrc(e.src),e.poster!==void 0&&this.setPoster(e.poster),e.autoplay!==void 0&&this.setAutoplay(e.autoplay),e.loop!==void 0&&this.setLoop(e.loop),e.preload!==void 0&&this.setPreload(e.preload),e.muted!==void 0&&this.setMuted(e.muted),e.volume!==void 0&&this.setVolume(e.volume),e.playbackRate!==void 0&&this.setPlaybackRate(e.playbackRate),this}getSrc(){return this._options.src??null}setSrc(e){return this._options.src=e,this.setElementAttribute(`src`,e),this}getPoster(){return this._options.poster??null}setPoster(e){return this._options.poster=e,this.setElementAttribute(`poster`,e),this}isAutoplay(){return this._options.autoplay??!1}setAutoplay(e){return this._options.autoplay=e,this.setElementAttribute(`autoplay`,e?``:null),this}isLoop(){return this._options.loop??!1}setLoop(e){return this._options.loop=e,this.setElementAttribute(`loop`,e?``:null),this}isMuted(){return this._options.muted??!1}setMuted(t){this._options.muted=t,this.setElementAttribute(`muted`,t?``:null);let n=this.getElement();return n&&e.sink.setMuted(n,t),this}getPreload(){return this._options.preload??null}setPreload(e){return this._options.preload=e,this.setElementAttribute(`preload`,e),this}getVolume(){return this._options.volume??Ge}setVolume(t){let n=Math.max(0,Math.min(1,t));this._options.volume=n;let r=this.getElement();return r&&e.sink.setVolume(r,n),this}getPlaybackRate(){return this._options.playbackRate??Ke}setPlaybackRate(t){this._options.playbackRate=t;let n=this.getElement();return n&&e.sink.setPlaybackRate(n,t),this}setCurrentTime(t){let n=this.getElement();return n&&e.sink.setCurrentTime(n,t),this}play(){let t=this.getElement();return t&&e.sink.mediaPlay(t),this}pause(){let t=this.getElement();return t&&e.sink.mediaPause(t),this}getMediaState(){let t=this.getElement();return t?e.source.getMediaState(t):{currentTime:0,duration:0,paused:!0,ended:!1,volume:this.getVolume(),muted:this.isMuted(),playbackRate:this.getPlaybackRate()}}on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e){this._listeners.fire(e)}init(e){super.init(e);let t=e??this.getElement();return t?(this.replayMediaOptions(t),this.attachMediaListeners(t),this):this}destructor(){let t=this.getElement();if(t)for(let[n,r]of this._mediaHandlers)e.sink.removeListener(t,n,r);super.destructor()}buildMediaHandlers(){for(let e of We)this._mediaHandlers.set(e,()=>this.emit(e))}replayMediaOptions(t){let n=this._options,r={};n.src!==void 0&&(r.src=n.src),n.poster!==void 0&&(r.poster=n.poster),n.preload!==void 0&&(r.preload=n.preload),n.autoplay&&(r.autoplay=``),n.loop&&(r.loop=``),n.muted&&(r.muted=``),Object.keys(r).length>0&&e.sink.apply(t,{setAttr:r}),n.muted!==void 0&&e.sink.setMuted(t,n.muted),n.volume!==void 0&&e.sink.setVolume(t,n.volume),n.playbackRate!==void 0&&e.sink.setPlaybackRate(t,n.playbackRate)}attachMediaListeners(t){for(let[n,r]of this._mediaHandlers)e.sink.addListener(t,n,r)}},Z=o(Video),ProgressiveEngine=class{load(e,t){e.setSrc(t)}destroy(){}};u.register(_e,ve,ye,be,b,y);var Q=28,$=80,Je=28,Ye=.05,Xe=6;function formatMediaTime(e){if(!Number.isFinite(e)||e<0)return`0:00`;let t=Math.floor(e),n=t%60,r=Math.floor(t/60)%60,i=Math.floor(t/3600),a=String(n).padStart(2,`0`);return i>=1?`${i}:${String(r).padStart(2,`0`)}:${a}`:`${r}:${a}`}var VideoPlayer=class extends c{_video;_controls;_playBtn;_scrubber;_timeText;_muteBtn;_volume;_fullscreenBtn;_engine=new ProgressiveEngine;_playing=!1;_fullscreen=!1;_scrubbing=!1;_syncing=!1;_listeners=new l;_onPlayButton=()=>this.togglePlay();_onMuteButton=()=>this.setMuted(!this.isMuted());_onFullscreenButton=()=>this.toggleFullscreen();_onScrub=()=>this.beginScrub();_onVolumeChange=e=>this.onVolumeSlider(e);_onVideoPlay=()=>this.onVideoPlay();_onVideoPause=()=>this.onVideoPause();_onVideoEnded=()=>this.onVideoEnded();_onVideoTimeUpdate=()=>this.onVideoTimeUpdate();_onVideoSync=()=>this.syncFromVideo();_onFullscreenChange=()=>this.syncFullscreen();constructor(e){super(),this.setLayoutManager(new ne),this.getAria().setRole(`region`),this.getAria().setLabel(`Video player`),this._video=new Z,this.buildControlBar(),this.wireControlListeners(),this.wireVideoListeners(),this.addComponent(this._video,{placement:h.CENTER}),this.addComponent(this._controls,{placement:h.SOUTH}),this.syncFromState(this._video.getMediaState()),e&&this.applyOptions(e),this.applyListeners(e?.listeners)}applyOptions(e){return super.applyOptions(e),e.engine!==void 0&&(this._engine=e.engine),e.src!==void 0&&this.setSrc(e.src),e.poster!==void 0&&this._video.setPoster(e.poster),e.autoplay!==void 0&&this._video.setAutoplay(e.autoplay),e.loop!==void 0&&this._video.setLoop(e.loop),e.muted!==void 0&&this._video.setMuted(e.muted),e.volume!==void 0&&this._video.setVolume(e.volume),e.playbackRate!==void 0&&this._video.setPlaybackRate(e.playbackRate),e.controls!==void 0&&this.setControlsVisible(e.controls),this}getSrc(){return this._video.getSrc()}setSrc(e){return this._engine.destroy(),this._engine.load(this._video,e),this}getVolume(){return this._video.getVolume()}setVolume(e){return this._video.setVolume(e),this.syncFromVideo(),this}isMuted(){return this._video.isMuted()}setMuted(e){return this._video.setMuted(e),this.syncFromVideo(),this}getPlaybackRate(){return this._video.getPlaybackRate()}setPlaybackRate(e){return this._video.setPlaybackRate(e),this}setCurrentTime(e){return this._video.setCurrentTime(e),this}getCurrentTime(){return this._video.getMediaState().currentTime}getDuration(){return this._video.getMediaState().duration}isPlaying(){return this._playing}play(){return this._video.play(),this}pause(){return this._video.pause(),this}togglePlay(){return this._playing?this.pause():this.play()}isControlsVisible(){return this._options.controls??!0}setControlsVisible(e){return this._options.controls=e,this._controls.setVisible(e),this}isFullscreen(){return this._fullscreen}enterFullscreen(){let t=this.getElement();return t&&e.sink.requestFullscreen(t),this}exitFullscreen(){return e.sink.exitFullscreen(),this}toggleFullscreen(){return this._fullscreen?this.exitFullscreen():this.enterFullscreen()}on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e){this._listeners.fire(e)}init(t){super.init(t);let n=t??this.getElement();return n?(e.sink.addListener(n,`fullscreenchange`,this._onFullscreenChange),this.syncFromVideo(),this):this}destructor(){let t=this.getElement();t&&e.sink.removeListener(t,`fullscreenchange`,this._onFullscreenChange),super.destructor()}syncFromState(e){this._syncing=!0;try{this._scrubbing||(this._scrubber.setMax(e.duration||0),this._scrubber.setValue(e.currentTime)),this._timeText.setText(`${formatMediaTime(e.currentTime)} / ${formatMediaTime(e.duration)}`),this._playBtn.setGlyph(e.paused?`play`:`pause`),this._muteBtn.setGlyph(e.muted||e.volume===0?`volume-mute`:`volume-high`),this._volume.setValue(e.muted?0:e.volume)}finally{this._syncing=!1}}syncFromVideo(){this.syncFromState(this._video.getMediaState())}buildControlBar(){this._playBtn=this.makeControlButton(`play`,`Play`),this._muteBtn=this.makeControlButton(`volume-high`,`Mute`),this._fullscreenBtn=this.makeControlButton(`expand`,`Fullscreen`),this._scrubber=new _({min:0,max:0,value:0}),this._scrubber.getAria().setLabel(`Seek`),this._volume=new _({min:0,max:1,step:Ye,value:1}),this._volume.getAria().setLabel(`Volume`),this._volume.setPreferredSize({width:$,height:this._volume.getPreferredSize().height}),this._volume.setMaxSize({width:$,height:this._volume.getPreferredSize().height}),this._timeText=new f(`0:00 / 0:00`),this._timeText.centerInHeight(Je);let e=new m;e.setComponentSpacing(Xe),this._controls=new c,this._controls.setLayoutManager(e),this._controls.setBackgroundColor(`var(--ts-ui-body-bg, rgb(255, 255, 255))`),this._controls.addComponent(this._playBtn),this._controls.addComponent(this._scrubber,{weight:1}),this._controls.addComponent(this._timeText),this._controls.addComponent(this._muteBtn),this._controls.addComponent(this._volume),this._controls.addComponent(this._fullscreenBtn)}makeControlButton(e,t){let n=new g({glyph:e,text:t,showText:!1});return n.setPreferredSize({width:Q,height:Q}),n}wireControlListeners(){this._playBtn.on(`action`,this._onPlayButton),this._muteBtn.on(`action`,this._onMuteButton),this._fullscreenBtn.on(`action`,this._onFullscreenButton),this._scrubber.on(`action`,this._onScrub),this._volume.on(`change`,this._onVolumeChange)}wireVideoListeners(){this._video.on(`play`,this._onVideoPlay),this._video.on(`pause`,this._onVideoPause),this._video.on(`ended`,this._onVideoEnded),this._video.on(`timeupdate`,this._onVideoTimeUpdate),this._video.on(`durationchange`,this._onVideoSync),this._video.on(`loadedmetadata`,this._onVideoSync),this._video.on(`volumechange`,this._onVideoSync),this._video.on(`ratechange`,this._onVideoSync)}beginScrub(){this._syncing||(this._scrubbing=!0,this._video.setCurrentTime(this._scrubber.getValue()))}onVolumeSlider(e){this._syncing||(this._video.setVolume(e),this.syncFromVideo())}onVideoPlay(){this._playing=!0,this.syncFromVideo(),this.emit(`play`)}onVideoPause(){this._playing=!1,this.syncFromVideo(),this.emit(`pause`)}onVideoEnded(){this._playing=!1,this.syncFromVideo(),this.emit(`ended`)}onVideoTimeUpdate(){this.syncFromVideo(),this._scrubbing=!1}syncFullscreen(){let t=e.source.getFullscreenElement(),n=this.getElement();this._fullscreen=n!=null&&t===n,this._fullscreenBtn.setGlyph(this._fullscreen?`compress`:`expand`),this.doLayout()}getInnerSize(){if(this._fullscreen&&this.getElement()){let t=e.source.getViewportSize(),n=this.getPerimeterSize();return{width:t.width-n.left-n.right,height:t.height-n.top-n.bottom}}return super.getInnerSize()}},Ze=o(VideoPlayer);export{Se as Canvas,u as Glyph,re as Header,He as IconLabel,le as IconText,Ee as Image,U as Markdown,G as MarkdownMinimap,Be as MarkdownViewer,Ue as PaginationBar,X as ProgressBar,te as ProgressSpinner,ProgressiveEngine,Z as Video,Ze as VideoPlayer,we as WebGLCanvas,extractMarkdownHeadings,findActiveHeading};
2
2
  //# sourceMappingURL=display.es.js.map