@jimka/typescript-ui 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/README.md +4 -0
  2. package/THIRD-PARTY-NOTICES.md +7 -3
  3. package/dist/lib/{AbstractBooleanInput-BGesvIZy.js → AbstractBooleanInput-DSwKBAic.js} +2 -2
  4. package/dist/lib/{AbstractBooleanInput-BGesvIZy.js.map → AbstractBooleanInput-DSwKBAic.js.map} +1 -1
  5. package/dist/lib/{AbstractInput-BxOtFrER.js → AbstractInput-BmWGJTs1.js} +2 -2
  6. package/dist/lib/{AbstractInput-BxOtFrER.js.map → AbstractInput-BmWGJTs1.js.map} +1 -1
  7. package/dist/lib/AnchorConstraints-CVrMP9rz.js +2 -0
  8. package/dist/lib/AnchorConstraints-CVrMP9rz.js.map +1 -0
  9. package/dist/lib/{AnimatedDropdown-CZQEqQi-.js → AnimatedDropdown-DKas40B-.js} +2 -2
  10. package/dist/lib/{AnimatedDropdown-CZQEqQi-.js.map → AnimatedDropdown-DKas40B-.js.map} +1 -1
  11. package/dist/lib/Border-Bz29z-_7.js +2 -0
  12. package/dist/lib/Border-Bz29z-_7.js.map +1 -0
  13. package/dist/lib/Button-bjpWruNc.js +2 -0
  14. package/dist/lib/{Button-U1rsP4v8.js.map → Button-bjpWruNc.js.map} +1 -1
  15. package/dist/lib/{Card-BVwOS8AG.js → Card-BdfbvOD_.js} +2 -2
  16. package/dist/lib/{Card-BVwOS8AG.js.map → Card-BdfbvOD_.js.map} +1 -1
  17. package/dist/lib/ComboBox-CBw2VLLN.js +2 -0
  18. package/dist/lib/ComboBox-CBw2VLLN.js.map +1 -0
  19. package/dist/lib/Component-DHqrPwAw.js +2 -0
  20. package/dist/lib/Component-DHqrPwAw.js.map +1 -0
  21. package/dist/lib/Container-CAQpj4yb.js +2 -0
  22. package/dist/lib/{Container-D5H8VxJK.js.map → Container-CAQpj4yb.js.map} +1 -1
  23. package/dist/lib/DOM-67StIm5G.js +2 -0
  24. package/dist/lib/DOM-67StIm5G.js.map +1 -0
  25. package/dist/lib/DragChain-CYGuT7OA.js +2 -0
  26. package/dist/lib/DragChain-CYGuT7OA.js.map +1 -0
  27. package/dist/lib/DragManager-CHWCe3-8.js +2 -0
  28. package/dist/lib/DragManager-CHWCe3-8.js.map +1 -0
  29. package/dist/lib/{FieldDecorator-CJs9gwqH.js → FieldDecorator-CgAGcqCk.js} +2 -2
  30. package/dist/lib/{FieldDecorator-CJs9gwqH.js.map → FieldDecorator-CgAGcqCk.js.map} +1 -1
  31. package/dist/lib/{Fit-DjRsiwlg.js → Fit-DIYt2aQB.js} +2 -2
  32. package/dist/lib/{Fit-DjRsiwlg.js.map → Fit-DIYt2aQB.js.map} +1 -1
  33. package/dist/lib/Glyph-CeAIWyPB.js +2 -0
  34. package/dist/lib/Glyph-CeAIWyPB.js.map +1 -0
  35. package/dist/lib/{Grid-DdL9TVeJ.js → Grid-ViA0joow.js} +2 -2
  36. package/dist/lib/{Grid-DdL9TVeJ.js.map → Grid-ViA0joow.js.map} +1 -1
  37. package/dist/lib/GridConstraints-B1rxCw9B.js +2 -0
  38. package/dist/lib/GridConstraints-B1rxCw9B.js.map +1 -0
  39. package/dist/lib/Header-mKaqgfat.js +2 -0
  40. package/dist/lib/Header-mKaqgfat.js.map +1 -0
  41. package/dist/lib/IconText-BqwXA82-.js +2 -0
  42. package/dist/lib/IconText-BqwXA82-.js.map +1 -0
  43. package/dist/lib/{LayoutSerialization-BT66TY83.js → LayoutSerialization-D82UtnDD.js} +2 -2
  44. package/dist/lib/{LayoutSerialization-BT66TY83.js.map → LayoutSerialization-D82UtnDD.js.map} +1 -1
  45. package/dist/lib/LayoutSizes-DG9aW9k6.js +2 -0
  46. package/dist/lib/LayoutSizes-DG9aW9k6.js.map +1 -0
  47. package/dist/lib/List-CUntS8ux.js +2 -0
  48. package/dist/lib/List-CUntS8ux.js.map +1 -0
  49. package/dist/lib/MemoryStore-DT6iWWco.js +2 -0
  50. package/dist/lib/MemoryStore-DT6iWWco.js.map +1 -0
  51. package/dist/lib/Menu-B_-SQj72.js +2 -0
  52. package/dist/lib/Menu-B_-SQj72.js.map +1 -0
  53. package/dist/lib/{MenuButton-VJ5uC3c1.js → MenuButton-C79l8Ysf.js} +2 -2
  54. package/dist/lib/{MenuButton-VJ5uC3c1.js.map → MenuButton-C79l8Ysf.js.map} +1 -1
  55. package/dist/lib/{Panel-DzWdYwq1.js → Panel-D2X33qR6.js} +2 -2
  56. package/dist/lib/{Panel-DzWdYwq1.js.map → Panel-D2X33qR6.js.map} +1 -1
  57. package/dist/lib/Position-Ck_KD4cR.js +2 -0
  58. package/dist/lib/Position-Ck_KD4cR.js.map +1 -0
  59. package/dist/lib/{ProgressSpinner-zJKtGyNJ.js → ProgressSpinner-DCyq02pd.js} +2 -2
  60. package/dist/lib/{ProgressSpinner-zJKtGyNJ.js.map → ProgressSpinner-DCyq02pd.js.map} +1 -1
  61. package/dist/lib/{RadioButton-CYSSv4nV.js → RadioButton-BJIAQkII.js} +2 -2
  62. package/dist/lib/{RadioButton-CYSSv4nV.js.map → RadioButton-BJIAQkII.js.map} +1 -1
  63. package/dist/lib/{RovingTabIndex-BSZ31Vp5.js → RovingTabIndex-DFJyoveq.js} +2 -2
  64. package/dist/lib/{RovingTabIndex-BSZ31Vp5.js.map → RovingTabIndex-DFJyoveq.js.map} +1 -1
  65. package/dist/lib/Scrollbar-CSFK-Y57.js +2 -0
  66. package/dist/lib/Scrollbar-CSFK-Y57.js.map +1 -0
  67. package/dist/lib/Slider-C-kQQYCj.js +2 -0
  68. package/dist/lib/Slider-C-kQQYCj.js.map +1 -0
  69. package/dist/lib/{Spacer-D9NGW4QG.js → Spacer-D159iJy9.js} +2 -2
  70. package/dist/lib/{Spacer-D9NGW4QG.js.map → Spacer-D159iJy9.js.map} +1 -1
  71. package/dist/lib/TabButton-CHkXBgCj.js +2 -0
  72. package/dist/lib/TabButton-CHkXBgCj.js.map +1 -0
  73. package/dist/lib/Text-D5pg7taZ.js +2 -0
  74. package/dist/lib/Text-D5pg7taZ.js.map +1 -0
  75. package/dist/lib/Tooltip-DzK6LxUt.js +3 -0
  76. package/dist/lib/{Tooltip-tkXDk5Bo.js.map → Tooltip-DzK6LxUt.js.map} +1 -1
  77. package/dist/lib/VBox-BNegDPs_.js +2 -0
  78. package/dist/lib/VBox-BNegDPs_.js.map +1 -0
  79. package/dist/lib/VirtualScroller-zQr-vKrO.js +2 -0
  80. package/dist/lib/VirtualScroller-zQr-vKrO.js.map +1 -0
  81. package/dist/lib/component/button.es.js +1 -1
  82. package/dist/lib/component/chart.es.js +1 -1
  83. package/dist/lib/component/chart.es.js.map +1 -1
  84. package/dist/lib/component/container.es.js +1 -1
  85. package/dist/lib/component/container.es.js.map +1 -1
  86. package/dist/lib/component/diagram.es.js +1 -1
  87. package/dist/lib/component/diagram.es.js.map +1 -1
  88. package/dist/lib/component/display.es.js +1 -1
  89. package/dist/lib/component/display.es.js.map +1 -1
  90. package/dist/lib/component/editor.es.js +3 -3
  91. package/dist/lib/component/editor.es.js.map +1 -1
  92. package/dist/lib/component/input.es.js +1 -1
  93. package/dist/lib/component/input.es.js.map +1 -1
  94. package/dist/lib/component/list.es.js +1 -1
  95. package/dist/lib/component/list.es.js.map +1 -1
  96. package/dist/lib/component/menubar.es.js +1 -1
  97. package/dist/lib/component/menubar.es.js.map +1 -1
  98. package/dist/lib/component/table.es.js +2 -2
  99. package/dist/lib/component/table.es.js.map +1 -1
  100. package/dist/lib/component/tree.es.js +1 -1
  101. package/dist/lib/component/tree.es.js.map +1 -1
  102. package/dist/lib/core.es.js +1 -1
  103. package/dist/lib/core.es.js.map +1 -1
  104. package/dist/lib/data.es.js +1 -1
  105. package/dist/lib/data.es.js.map +1 -1
  106. package/dist/lib/glyphs/solid/index.es.js +1 -1
  107. package/dist/lib/layout.es.js +1 -1
  108. package/dist/lib/layout.es.js.map +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/router.es.js.map +1 -1
  114. package/dist/lib/selectionsEqual-4r5R7pTK.js +2 -0
  115. package/dist/lib/selectionsEqual-4r5R7pTK.js.map +1 -0
  116. package/dist/lib/types/component/button/TabCloseButton.d.ts +1 -1
  117. package/dist/lib/types/component/container/CollapseButton.d.ts +1 -1
  118. package/dist/lib/types/component/container/DialogBackdrop.d.ts +1 -1
  119. package/dist/lib/types/component/container/MenuItem.d.ts +4 -0
  120. package/dist/lib/types/component/container/MenuSeparator.d.ts +1 -1
  121. package/dist/lib/types/component/container/Scrollbar.d.ts +1 -0
  122. package/dist/lib/types/component/container/SplitGutter.d.ts +2 -2
  123. package/dist/lib/types/component/container/StatusBar.d.ts +1 -1
  124. package/dist/lib/types/component/container/VirtualScroller.d.ts +1 -0
  125. package/dist/lib/types/component/container/WindowBorder.d.ts +1 -1
  126. package/dist/lib/types/component/diagram/DiagramEdgeLayer.d.ts +14 -1
  127. package/dist/lib/types/component/diagram/DiagramModel.d.ts +1 -0
  128. package/dist/lib/types/component/diagram/DiagramNode.d.ts +5 -1
  129. package/dist/lib/types/component/diagram/DiagramView.d.ts +76 -5
  130. package/dist/lib/types/component/diagram/ElkLayoutEngine.d.ts +14 -1
  131. package/dist/lib/types/component/diagram/index.d.ts +2 -2
  132. package/dist/lib/types/component/display/Canvas.d.ts +8 -2
  133. package/dist/lib/types/component/display/Glyph.d.ts +2 -1
  134. package/dist/lib/types/component/display/Header.d.ts +1 -1
  135. package/dist/lib/types/component/display/IconLabel.d.ts +1 -1
  136. package/dist/lib/types/component/display/IconText.d.ts +1 -1
  137. package/dist/lib/types/component/display/Image.d.ts +1 -1
  138. package/dist/lib/types/component/display/Video.d.ts +1 -1
  139. package/dist/lib/types/component/display/WebGLCanvas.d.ts +8 -2
  140. package/dist/lib/types/component/editor/CodeEditor.d.ts +4 -3
  141. package/dist/lib/types/component/input/AbstractPickerField.d.ts +1 -1
  142. package/dist/lib/types/component/input/AutoCompleteDropdown.d.ts +1 -1
  143. package/dist/lib/types/component/input/Link.d.ts +1 -1
  144. package/dist/lib/types/component/input/NumberSpinner.d.ts +1 -1
  145. package/dist/lib/types/component/input/PasswordField.d.ts +1 -1
  146. package/dist/lib/types/component/input/SpinButton.d.ts +1 -1
  147. package/dist/lib/types/component/input/Text.d.ts +3 -1
  148. package/dist/lib/types/component/input/TextArea.d.ts +1 -1
  149. package/dist/lib/types/component/input/TextField.d.ts +3 -1
  150. package/dist/lib/types/component/input/UsernameField.d.ts +1 -1
  151. package/dist/lib/types/component/list/AbstractMarkerList.d.ts +9 -1
  152. package/dist/lib/types/component/list/BulletedList.d.ts +1 -0
  153. package/dist/lib/types/component/list/ListItem.d.ts +10 -4
  154. package/dist/lib/types/component/list/NumberedList.d.ts +1 -0
  155. package/dist/lib/types/component/menubar/MenuBarButton.d.ts +1 -1
  156. package/dist/lib/types/component/menubar/ToolBar.d.ts +1 -1
  157. package/dist/lib/types/component/menubar/ToolBarSeparator.d.ts +1 -1
  158. package/dist/lib/types/component/shared/VirtualRowView.d.ts +13 -1
  159. package/dist/lib/types/component/shared/selectionsEqual.d.ts +1 -0
  160. package/dist/lib/types/component/table/Body.d.ts +15 -2
  161. package/dist/lib/types/component/table/CellGeometry.d.ts +6 -0
  162. package/dist/lib/types/component/table/Column.d.ts +6 -0
  163. package/dist/lib/types/component/table/ColumnConfig.d.ts +4 -0
  164. package/dist/lib/types/component/table/Header.d.ts +25 -2
  165. package/dist/lib/types/component/table/Row.d.ts +13 -2
  166. package/dist/lib/types/component/table/Table.d.ts +45 -4
  167. package/dist/lib/types/component/table/TableExporter.d.ts +1 -1
  168. package/dist/lib/types/component/table/TablePanel.d.ts +2 -1
  169. package/dist/lib/types/component/table/cell/Cell.d.ts +1 -1
  170. package/dist/lib/types/component/table/cell/Header.d.ts +4 -0
  171. package/dist/lib/types/component/table/index.d.ts +2 -2
  172. package/dist/lib/types/component/tree/Tree.d.ts +2 -0
  173. package/dist/lib/types/core/Aria.d.ts +1 -3
  174. package/dist/lib/types/core/Body.d.ts +9 -2
  175. package/dist/lib/types/core/ClassStyleRules.d.ts +17 -0
  176. package/dist/lib/types/core/Component.d.ts +16 -2
  177. package/dist/lib/types/core/ComponentDefaults.d.ts +1 -0
  178. package/dist/lib/types/core/DOM.d.ts +15 -2
  179. package/dist/lib/types/core/DragChain.d.ts +3 -0
  180. package/dist/lib/types/core/ElementAttributes.d.ts +15 -0
  181. package/dist/lib/types/core/Favicon.d.ts +7 -0
  182. package/dist/lib/types/core/FirstLayoutGate.d.ts +5 -0
  183. package/dist/lib/types/core/PendingTransitions.d.ts +4 -0
  184. package/dist/lib/types/core/StyleTarget.d.ts +1 -0
  185. package/dist/lib/types/core/Theme.d.ts +1 -0
  186. package/dist/lib/types/core/Util.d.ts +3 -0
  187. package/dist/lib/types/core/index.d.ts +3 -0
  188. package/dist/lib/types/layout/Accordion.d.ts +0 -1
  189. package/dist/lib/types/layout/Border.d.ts +1 -0
  190. package/dist/lib/types/layout/FlowLayout.d.ts +4 -0
  191. package/dist/lib/types/layout/HFlow.d.ts +3 -0
  192. package/dist/lib/types/layout/Tab.d.ts +4 -1
  193. package/dist/lib/types/layout/Table.d.ts +1 -0
  194. package/dist/lib/types/layout/VFlow.d.ts +1 -0
  195. package/dist/lib/types/overlay/AbstractWindow.d.ts +2 -1
  196. package/dist/lib/types/overlay/Dock.d.ts +1 -0
  197. package/dist/lib/types/overlay/DropZoneOverlay.d.ts +1 -0
  198. package/dist/lib/types/overlay/Popover.d.ts +1 -1
  199. package/dist/lib/types/router/RoutePattern.d.ts +7 -0
  200. package/dist/lib/types/router/Router.d.ts +13 -2
  201. package/dist/lib/types/router/index.d.ts +1 -1
  202. package/dist/lib/validation.es.js +1 -1
  203. package/llms.txt +2 -1
  204. package/package.json +5 -9
  205. package/dist/lib/Border-BgaZkc1R.js +0 -2
  206. package/dist/lib/Border-BgaZkc1R.js.map +0 -1
  207. package/dist/lib/BoxLayout-DrKGfsup.js +0 -2
  208. package/dist/lib/BoxLayout-DrKGfsup.js.map +0 -1
  209. package/dist/lib/Button-U1rsP4v8.js +0 -2
  210. package/dist/lib/ComboBox-B9EDPu6T.js +0 -2
  211. package/dist/lib/ComboBox-B9EDPu6T.js.map +0 -1
  212. package/dist/lib/Component-DXf5a3g0.js +0 -2
  213. package/dist/lib/Component-DXf5a3g0.js.map +0 -1
  214. package/dist/lib/Container-D5H8VxJK.js +0 -2
  215. package/dist/lib/DOM-CGn7xyTw.js +0 -2
  216. package/dist/lib/DOM-CGn7xyTw.js.map +0 -1
  217. package/dist/lib/DragManager-CI4mZQFy.js +0 -2
  218. package/dist/lib/DragManager-CI4mZQFy.js.map +0 -1
  219. package/dist/lib/Glyph-KEf4nIv2.js +0 -2
  220. package/dist/lib/Glyph-KEf4nIv2.js.map +0 -1
  221. package/dist/lib/GridConstraints-DkLueyrf.js +0 -2
  222. package/dist/lib/GridConstraints-DkLueyrf.js.map +0 -1
  223. package/dist/lib/HBox-Ce0GTCJP.js +0 -2
  224. package/dist/lib/HBox-Ce0GTCJP.js.map +0 -1
  225. package/dist/lib/Header-BQIVpBte.js +0 -2
  226. package/dist/lib/Header-BQIVpBte.js.map +0 -1
  227. package/dist/lib/IconText-Bo4Qcnot.js +0 -2
  228. package/dist/lib/IconText-Bo4Qcnot.js.map +0 -1
  229. package/dist/lib/LayoutSizes-DU3qSq0w.js +0 -2
  230. package/dist/lib/LayoutSizes-DU3qSq0w.js.map +0 -1
  231. package/dist/lib/List-DtTVTyWW.js +0 -2
  232. package/dist/lib/List-DtTVTyWW.js.map +0 -1
  233. package/dist/lib/Menu-Dz4L7EKJ.js +0 -2
  234. package/dist/lib/Menu-Dz4L7EKJ.js.map +0 -1
  235. package/dist/lib/Position-A39T7-_1.js +0 -2
  236. package/dist/lib/Position-A39T7-_1.js.map +0 -1
  237. package/dist/lib/Scrollbar-BhtOjqkG.js +0 -2
  238. package/dist/lib/Scrollbar-BhtOjqkG.js.map +0 -1
  239. package/dist/lib/Slider-CdXm7E64.js +0 -2
  240. package/dist/lib/Slider-CdXm7E64.js.map +0 -1
  241. package/dist/lib/TabButton-CThevdY_.js +0 -2
  242. package/dist/lib/TabButton-CThevdY_.js.map +0 -1
  243. package/dist/lib/Text-gz6qjFfP.js +0 -2
  244. package/dist/lib/Text-gz6qjFfP.js.map +0 -1
  245. package/dist/lib/Tooltip-tkXDk5Bo.js +0 -3
  246. package/dist/lib/VBox-EIqw85Rh.js +0 -2
  247. package/dist/lib/VBox-EIqw85Rh.js.map +0 -1
  248. package/dist/lib/VirtualRowView-BxpHQ_u8.js +0 -2
  249. package/dist/lib/VirtualRowView-BxpHQ_u8.js.map +0 -1
  250. package/dist/lib/VirtualScroller-DwEEJE1_.js +0 -2
  251. package/dist/lib/VirtualScroller-DwEEJE1_.js.map +0 -1
@@ -4,8 +4,8 @@ export { DiagramNode } from '../../component/diagram/DiagramNode.js';
4
4
  export type { DiagramNodeOptions } from '../../component/diagram/DiagramNode.js';
5
5
  export { DiagramGroupNode } from '../../component/diagram/DiagramGroupNode.js';
6
6
  export type { DiagramGroupNodeOptions } from '../../component/diagram/DiagramGroupNode.js';
7
- export { DiagramEdgeLayer } from '../../component/diagram/DiagramEdgeLayer.js';
7
+ export { DiagramEdgeLayer, EDGE_MARKER_EXTENT } from '../../component/diagram/DiagramEdgeLayer.js';
8
8
  export type { DiagramEdgeRoute } from '../../component/diagram/DiagramEdgeLayer.js';
9
9
  export { ElkLayoutEngine } from '../../component/diagram/ElkLayoutEngine.js';
10
- export type { DiagramLayoutResult, ElkEdgeSection, ElkPoint } from '../../component/diagram/ElkLayoutEngine.js';
10
+ export type { DiagramLayoutResult, ElkEdgeSection, ElkPoint, ElkLayoutEngineOptions } from '../../component/diagram/ElkLayoutEngine.js';
11
11
  export type { DiagramData, DiagramNodeData, DiagramEdgeData, DiagramPortData, DiagramEdgeMarker, DiagramEdgeStyle } from '../../component/diagram/DiagramModel.js';
@@ -1,19 +1,23 @@
1
1
  import { Component, ComponentOptions } from "../../core/Component.js";
2
2
  import type { Handle } from "../../core/DOM.js";
3
- export type CanvasDrawCallback = (ctx: CanvasRenderingContext2D, width: number, height: number) => void;
3
+ export type CanvasDrawCallback = (ctx: CanvasRenderingContext2D, width: number, height: number, elapsedMs: number) => void;
4
4
  export interface CanvasOptions extends ComponentOptions {
5
5
  onDraw?: CanvasDrawCallback;
6
6
  animateWhenHidden?: boolean;
7
+ maxFps?: number;
7
8
  }
8
9
  declare class Canvas extends Component<CanvasOptions> {
9
10
  private _ctx;
10
11
  private _rafId;
12
+ private _animationStartMs;
13
+ private _lastDrawMs;
14
+ private _elapsedMs;
11
15
  private _animationRequested;
12
16
  private _syncedWidth;
13
17
  private _syncedHeight;
14
18
  private _syncedDpr;
15
19
  private _dprToken;
16
- constructor(options?: CanvasOptions);
20
+ constructor(options?: CanvasOptions, subclassDefaults?: Partial<CanvasOptions>);
17
21
  protected applyOptions(options: CanvasOptions): this;
18
22
  getContext(): CanvasRenderingContext2D | null;
19
23
  setOnDraw(handler: CanvasDrawCallback | null): this;
@@ -23,6 +27,8 @@ declare class Canvas extends Component<CanvasOptions> {
23
27
  stopAnimation(): this;
24
28
  isAnimating(): boolean;
25
29
  setAnimateWhenHidden(value: boolean): this;
30
+ setMaxFps(fps: number): this;
31
+ getMaxFps(): number;
26
32
  getAnimateWhenHidden(): boolean;
27
33
  protected syncBackingStore(): void;
28
34
  doLayout(): this;
@@ -18,7 +18,7 @@ declare class Glyph extends Component<GlyphOptions> {
18
18
  private _animatedRef;
19
19
  static register(...defs: NamedGlyphDef[]): void;
20
20
  static unregister(name: string): void;
21
- constructor(name: string, options?: GlyphOptions);
21
+ constructor(name: string, options?: GlyphOptions, subclassDefaults?: Partial<GlyphOptions>);
22
22
  setPreferredSize(size: Size): this;
23
23
  getBaseline(): number | null;
24
24
  getGlyphName(): string;
@@ -31,6 +31,7 @@ declare class Glyph extends Component<GlyphOptions> {
31
31
  getAnimated(): GlyphAnimation | null;
32
32
  setAnimated(kind: GlyphAnimation | null): this;
33
33
  clearAnimated(): this;
34
+ protected onEffectiveVisibilityChange(effective: boolean): void;
34
35
  getAnimationDuration(): number;
35
36
  setAnimationDuration(ms: number): this;
36
37
  _syncReducedMotion(): void;
@@ -4,7 +4,7 @@ export interface HeaderOptions extends TextOptions {
4
4
  }
5
5
  declare class Header<TOptions extends HeaderOptions = HeaderOptions> extends Container<TOptions> {
6
6
  private _text;
7
- constructor(text: string, options?: TOptions);
7
+ constructor(text: string, options?: TOptions, subclassDefaults?: Partial<TOptions>);
8
8
  protected applyOptions(options: TOptions): this;
9
9
  protected updatePreferredSize(): void;
10
10
  getText(): Text;
@@ -10,7 +10,7 @@ export interface IconLabelOptions extends ComponentOptions {
10
10
  declare class IconLabel extends Component<IconLabelOptions> {
11
11
  private _glyph;
12
12
  private _label;
13
- constructor(glyph: string, text: string, forId: string, options?: IconLabelOptions);
13
+ constructor(glyph: string, text: string, forId: string, options?: IconLabelOptions, subclassDefaults?: Partial<IconLabelOptions>);
14
14
  protected applyOptions(options: IconLabelOptions): this;
15
15
  setGlyph(name: string): this;
16
16
  setText(text: string): this;
@@ -9,7 +9,7 @@ export interface IconTextOptions extends ComponentOptions {
9
9
  declare class IconText extends Component<IconTextOptions> {
10
10
  private _glyph;
11
11
  private _text;
12
- constructor(glyph: string, text: string, options?: IconTextOptions);
12
+ constructor(glyph: string, text: string, options?: IconTextOptions, subclassDefaults?: Partial<IconTextOptions>);
13
13
  protected applyOptions(options: IconTextOptions): this;
14
14
  setGlyph(name: string): this;
15
15
  setText(text: string): this;
@@ -5,7 +5,7 @@ export interface ImageOptions extends ComponentOptions {
5
5
  }
6
6
  declare class Image extends Component<ImageOptions> {
7
7
  private _src;
8
- constructor(src: String, options?: ImageOptions);
8
+ constructor(src: String, options?: ImageOptions, subclassDefaults?: Partial<ImageOptions>);
9
9
  getElement(createIfMissing?: boolean): Handle | undefined;
10
10
  getPreferredSize(): Size | null;
11
11
  getMinSize(): Size | null;
@@ -24,7 +24,7 @@ export interface VideoOptions extends ComponentOptions {
24
24
  declare class Video extends Component<VideoOptions> {
25
25
  private _listeners;
26
26
  private readonly _mediaHandlers;
27
- constructor(options?: VideoOptions);
27
+ constructor(options?: VideoOptions, subclassDefaults?: Partial<VideoOptions>);
28
28
  protected applyOptions(options: VideoOptions): this;
29
29
  getSrc(): string | null;
30
30
  setSrc(src: string): this;
@@ -1,15 +1,19 @@
1
1
  import { Component, ComponentOptions } from "../../core/Component.js";
2
2
  import type { Handle } from "../../core/DOM.js";
3
3
  export type WebGLContextInitCallback = (gl: WebGL2RenderingContext) => void;
4
- export type WebGLFrameCallback = (gl: WebGL2RenderingContext, width: number, height: number) => void;
4
+ export type WebGLFrameCallback = (gl: WebGL2RenderingContext, width: number, height: number, elapsedMs: number) => void;
5
5
  export interface WebGLCanvasOptions extends ComponentOptions {
6
6
  onContextInit?: WebGLContextInitCallback;
7
7
  onFrame?: WebGLFrameCallback;
8
8
  animateWhenHidden?: boolean;
9
+ maxFps?: number;
9
10
  }
10
11
  declare class WebGLCanvas extends Component<WebGLCanvasOptions> {
11
12
  private _gl;
12
13
  private _rafId;
14
+ private _animationStartMs;
15
+ private _lastDrawMs;
16
+ private _elapsedMs;
13
17
  private _animationRequested;
14
18
  private _contextLost;
15
19
  private _contextInitialised;
@@ -17,7 +21,7 @@ declare class WebGLCanvas extends Component<WebGLCanvasOptions> {
17
21
  private _syncedHeight;
18
22
  private _syncedDpr;
19
23
  private _dprToken;
20
- constructor(options?: WebGLCanvasOptions);
24
+ constructor(options?: WebGLCanvasOptions, subclassDefaults?: Partial<WebGLCanvasOptions>);
21
25
  protected applyOptions(options: WebGLCanvasOptions): this;
22
26
  getContext(): WebGL2RenderingContext | null;
23
27
  setOnContextInit(handler: WebGLContextInitCallback | null): this;
@@ -29,6 +33,8 @@ declare class WebGLCanvas extends Component<WebGLCanvasOptions> {
29
33
  isAnimating(): boolean;
30
34
  setAnimateWhenHidden(value: boolean): this;
31
35
  getAnimateWhenHidden(): boolean;
36
+ setMaxFps(fps: number): this;
37
+ getMaxFps(): number;
32
38
  protected syncBackingStore(): void;
33
39
  doLayout(): this;
34
40
  protected render(): Handle;
@@ -1,4 +1,5 @@
1
1
  import { Component, ComponentOptions } from "../../core/Component.js";
2
+ import type { Handle } from "../../core/DOM.js";
2
3
  export interface CodeEditorChange {
3
4
  value: string;
4
5
  }
@@ -20,8 +21,8 @@ declare class CodeEditor extends Component<CodeEditorOptions> {
20
21
  private readonly _themeCompartment;
21
22
  private readonly _listeners;
22
23
  private readonly _unsubscribeTheme;
23
- private readonly _onWheelClaim;
24
- constructor(value?: string, options?: CodeEditorOptions);
24
+ private _scrollElement;
25
+ constructor(value?: string, options?: CodeEditorOptions, subclassDefaults?: Partial<CodeEditorOptions>);
25
26
  protected applyOptions(options: CodeEditorOptions): this;
26
27
  getValue(): string;
27
28
  setValue(value: string): this;
@@ -40,7 +41,7 @@ declare class CodeEditor extends Component<CodeEditorOptions> {
40
41
  protected emit(event: "change", payload: CodeEditorChange): void;
41
42
  protected emit(event: "readonlyedit"): void;
42
43
  protected destructor(): void;
43
- private claimScrollableWheel;
44
+ protected getScrollElement(): Handle | undefined;
44
45
  private mount;
45
46
  private mountFlashOverlay;
46
47
  private onThemeChange;
@@ -15,7 +15,7 @@ declare abstract class AbstractPickerField<TValue, TDropdown extends AnimatedDro
15
15
  protected _value: TValue | null;
16
16
  protected _invalid: boolean;
17
17
  protected _showSeconds: boolean;
18
- constructor(options?: TOptions);
18
+ constructor(options?: AbstractPickerFieldOptions, subclassDefaults?: Partial<AbstractPickerFieldOptions>);
19
19
  protected abstract formatValue(value: TValue): string;
20
20
  protected abstract parseRaw(raw: string): TValue | null;
21
21
  protected abstract createDropdown(): TDropdown;
@@ -7,7 +7,7 @@ declare class AutoCompleteDropdown extends AnimatedDropdown<AutoCompleteDropdown
7
7
  private readonly _list;
8
8
  private readonly _onSelect;
9
9
  private readonly _onHide;
10
- constructor(onSelect: (value: string) => void, onHide: () => void, options?: AutoCompleteDropdownOptions);
10
+ constructor(onSelect: (value: string) => void, onHide: () => void, options?: AutoCompleteDropdownOptions, subclassDefaults?: Partial<AutoCompleteDropdownOptions>);
11
11
  show(anchorEl: Handle, suggestions: string[]): this;
12
12
  hide(): this;
13
13
  handleKey(e: KeyboardEvent): boolean;
@@ -8,7 +8,7 @@ export interface LinkOptions extends TextOptions {
8
8
  };
9
9
  }
10
10
  declare class Link extends Text<LinkOptions> {
11
- constructor(text?: String, options?: LinkOptions);
11
+ constructor(text?: String, options?: LinkOptions, subclassDefaults?: Partial<LinkOptions>);
12
12
  protected applyOptions(options: LinkOptions): this;
13
13
  isInteractive(): boolean;
14
14
  setInteractive(value: boolean): this;
@@ -11,7 +11,7 @@ declare class NumberSpinner extends AbstractInput<number, NumberSpinnerOptions>
11
11
  private _upBtn;
12
12
  private _downBtn;
13
13
  private _btnBox;
14
- constructor(options?: NumberSpinnerOptions);
14
+ constructor(options?: NumberSpinnerOptions, subclassDefaults?: Partial<NumberSpinnerOptions>);
15
15
  protected applyOptions(options: NumberSpinnerOptions): this;
16
16
  getBaseline(): number | null;
17
17
  private updateHeight;
@@ -3,7 +3,7 @@ export interface PasswordFieldOptions extends TextInputOptions {
3
3
  newPassword?: boolean;
4
4
  }
5
5
  declare class PasswordField extends TextInput<PasswordFieldOptions> {
6
- constructor(options?: PasswordFieldOptions);
6
+ constructor(options?: PasswordFieldOptions, subclassDefaults?: Partial<PasswordFieldOptions>);
7
7
  private updateHeight;
8
8
  }
9
9
  declare const PasswordFieldCallable: import("../../core/Callable.js").Callable<typeof PasswordField>;
@@ -9,7 +9,7 @@ export interface SpinButtonOptions extends ButtonOptions {
9
9
  declare class SpinButton extends Button<SpinButtonOptions> {
10
10
  private _listeners;
11
11
  private _repeat;
12
- constructor(symbol: "▲" | "▼", options?: SpinButtonOptions);
12
+ constructor(symbol: "▲" | "▼", options?: SpinButtonOptions, subclassDefaults?: Partial<SpinButtonOptions>);
13
13
  private updateSize;
14
14
  on(event: "action", listener: ClickListener): this;
15
15
  on(event: "tick", listener: () => void): this;
@@ -29,6 +29,7 @@ declare class Text<TOptions extends TextOptions = TextOptions> extends Component
29
29
  private _measuredMinSize;
30
30
  private _autoMeasure;
31
31
  private _measurementDirty;
32
+ private _measuredGeneration;
32
33
  private _wordBreak;
33
34
  private _lineClamp;
34
35
  private _textOverflow;
@@ -41,6 +42,7 @@ declare class Text<TOptions extends TextOptions = TextOptions> extends Component
41
42
  setPreferredSize(size: Size): this;
42
43
  private setCalculatedSize;
43
44
  private calculateSize;
45
+ private needsMeasure;
44
46
  measure(): void;
45
47
  getBaseline(): number | null;
46
48
  private measureOptions;
@@ -74,7 +76,7 @@ declare class Text<TOptions extends TextOptions = TextOptions> extends Component
74
76
  setFontVariant(value: string): this;
75
77
  getFontWeight(): string | null;
76
78
  setFontWeight(value: string): this;
77
- getLineHeight(): number | null;
79
+ getLineHeight(): number;
78
80
  setLineHeight(value: number | string): this;
79
81
  centerInHeight(px: number | null): this;
80
82
  getTextOverflow(): string | null;
@@ -6,7 +6,7 @@ export interface TextAreaOptions extends TextInputOptions {
6
6
  wrap?: string;
7
7
  }
8
8
  declare class TextArea extends TextInput<TextAreaOptions> {
9
- constructor(text?: string, options?: TextAreaOptions);
9
+ constructor(text?: string, options?: TextAreaOptions, subclassDefaults?: Partial<TextAreaOptions>);
10
10
  protected applyOptions(options: TextAreaOptions): this;
11
11
  getRows(): number | null;
12
12
  setRows(value: number): this;
@@ -1,9 +1,11 @@
1
1
  import { TextInput, TextInputOptions } from "../../component/input/TextInput.js";
2
+ import { BorderOptions } from "../../primitive/Border.js";
2
3
  export interface TextFieldOptions extends TextInputOptions {
3
4
  }
4
5
  declare class TextField extends TextInput<TextFieldOptions> {
5
- constructor(options?: TextFieldOptions);
6
+ constructor(options?: TextFieldOptions, subclassDefaults?: Partial<TextFieldOptions>);
6
7
  private updateHeight;
8
+ setBorder(options: BorderOptions | string): this;
7
9
  }
8
10
  declare const TextFieldCallable: import("../../core/Callable.js").Callable<typeof TextField>;
9
11
  type TextFieldCallable = TextField;
@@ -3,7 +3,7 @@ export interface UsernameFieldOptions extends TextInputOptions {
3
3
  email?: boolean;
4
4
  }
5
5
  declare class UsernameField extends TextInput<UsernameFieldOptions> {
6
- constructor(options?: UsernameFieldOptions);
6
+ constructor(options?: UsernameFieldOptions, subclassDefaults?: Partial<UsernameFieldOptions>);
7
7
  private updateHeight;
8
8
  }
9
9
  declare const UsernameFieldCallable: import("../../core/Callable.js").Callable<typeof UsernameField>;
@@ -1,4 +1,4 @@
1
- import { Component, ComponentOptions } from "../../core/Component.js";
1
+ import { Comparator, Component, ComponentOptions } from "../../core/Component.js";
2
2
  import { LayoutConstraints } from "../../layout/LayoutConstraints.js";
3
3
  import { BulletedListItemStyle } from "../../component/list/BulletedListItemStyle.js";
4
4
  import { NumberedListItemStyle } from "../../component/list/NumberedListItemStyle.js";
@@ -8,10 +8,18 @@ export interface AbstractMarkerListOptions<U extends BulletedListItemStyle | Num
8
8
  }
9
9
  export declare abstract class AbstractMarkerList<U extends BulletedListItemStyle | NumberedListItemStyle> extends Component<AbstractMarkerListOptions<U>> {
10
10
  private _style;
11
+ private _markerColumnWidth;
11
12
  constructor(tag: string, style: U, options?: AbstractMarkerListOptions<U>, subclassDefaults?: Partial<AbstractMarkerListOptions<U>>);
12
13
  protected applyOptions(options: AbstractMarkerListOptions<U>): this;
13
14
  getStyle(): U | undefined;
14
15
  setStyle(style: U): this;
16
+ getMarkerColumnWidth(): number;
17
+ doLayout(): this;
18
+ protected syncMarkerColumn(): void;
19
+ protected abstract markerText(index: number): string;
20
+ protected renumber(): void;
15
21
  addComponent(component: ListItem, constraints?: LayoutConstraints): this;
22
+ insertComponent(component: ListItem, index: number, constraints?: LayoutConstraints): this;
16
23
  removeComponent(component: ListItem): LayoutConstraints | undefined;
24
+ sortComponents(comparator: Comparator<Component, Component> | undefined): this;
17
25
  }
@@ -4,6 +4,7 @@ export interface BulletedListOptions extends AbstractMarkerListOptions<BulletedL
4
4
  }
5
5
  declare class BulletedList extends AbstractMarkerList<BulletedListItemStyle> {
6
6
  constructor(options?: BulletedListOptions);
7
+ protected markerText(_index: number): string;
7
8
  }
8
9
  declare const BulletedListCallable: import("../../core/Callable.js").Callable<typeof BulletedList>;
9
10
  type BulletedListCallable = BulletedList;
@@ -4,12 +4,18 @@ export interface ListItemOptions extends ComponentOptions {
4
4
  }
5
5
  declare class ListItem extends Component<ListItemOptions> {
6
6
  private _key;
7
- private _value;
8
- constructor(key: string, value: string, options?: ListItemOptions);
7
+ private _marker;
8
+ private _text;
9
+ constructor(key: string, value: string, options?: ListItemOptions, subclassDefaults?: Partial<ListItemOptions>);
9
10
  protected applyOptions(options: ListItemOptions): this;
10
- applyStyle(): this;
11
11
  getKey(): string;
12
- render(): import("../../core/DOM.js").Handle;
12
+ getText(): string;
13
+ setText(text: string): this;
14
+ getMarker(): string;
15
+ setMarker(text: string): this;
16
+ getMarkerWidth(): number;
17
+ setMarkerColumnWidth(width: number): this;
18
+ protected render(): import("../../core/DOM.js").Handle;
13
19
  }
14
20
  declare const ListItemCallable: import("../../core/Callable.js").Callable<typeof ListItem>;
15
21
  type ListItemCallable = ListItem;
@@ -4,6 +4,7 @@ export interface NumberedListOptions extends AbstractMarkerListOptions<NumberedL
4
4
  }
5
5
  declare class NumberedList extends AbstractMarkerList<NumberedListItemStyle> {
6
6
  constructor(options?: NumberedListOptions);
7
+ protected markerText(index: number): string;
7
8
  }
8
9
  declare const NumberedListCallable: import("../../core/Callable.js").Callable<typeof NumberedList>;
9
10
  type NumberedListCallable = NumberedList;
@@ -5,7 +5,7 @@ export declare const MENU_BAR_BUTTON_HEIGHT: number;
5
5
  declare class MenuBarButton extends Button<MenuBarButtonOptions> {
6
6
  private readonly _onClickHandler;
7
7
  private readonly _onMouseOverHandler;
8
- constructor(text: string, onClick: () => void, onHover: () => void, options?: MenuBarButtonOptions);
8
+ constructor(text: string, onClick: () => void, onHover: () => void, options?: MenuBarButtonOptions, subclassDefaults?: Partial<MenuBarButtonOptions>);
9
9
  protected computePreferredSize(): {
10
10
  width: number;
11
11
  height: number;
@@ -21,7 +21,7 @@ declare class ToolBar<TOptions extends ToolBarOptions = ToolBarOptions> extends
21
21
  private _overflowButton;
22
22
  private _overflowMenu;
23
23
  private _overflowSpacer;
24
- constructor(options?: ToolBarOptions);
24
+ constructor(options?: ToolBarOptions, subclassDefaults?: Partial<ToolBarOptions>);
25
25
  protected applyOptions(options: TOptions): this;
26
26
  setOrientation(value: AxisOrientation): this;
27
27
  getOrientation(): AxisOrientation;
@@ -6,7 +6,7 @@ export interface ToolBarSeparatorOptions extends ComponentOptions {
6
6
  declare class ToolBarSeparator extends Component<ToolBarSeparatorOptions> {
7
7
  static readonly THICKNESS: number;
8
8
  private readonly _orientation;
9
- constructor(options?: ToolBarSeparatorOptions);
9
+ constructor(options?: ToolBarSeparatorOptions, subclassDefaults?: Partial<ToolBarSeparatorOptions>);
10
10
  getOrientation(): AxisOrientation;
11
11
  }
12
12
  declare const ToolBarSeparatorCallable: import("../../core/Callable.js").Callable<typeof ToolBarSeparator>;
@@ -11,14 +11,21 @@ declare abstract class VirtualRowView<TRow extends Component, TOptions extends C
11
11
  } | null>;
12
12
  protected _rowDisplayed: boolean[];
13
13
  protected _scroller: VirtualScroller | null;
14
+ private _renderDeferred;
15
+ private _renderResumed;
16
+ private _pendingScrollX;
17
+ private _pendingScrollY;
18
+ private _pendingScrollRow;
14
19
  protected abstract getRowHeight(): number;
15
20
  protected abstract createPoolRow(): TRow;
16
21
  protected abstract renderWindow(): void;
17
22
  protected initScroller(element: Handle): void;
18
23
  protected onScrollerTick(): void;
19
- protected onPoolRowAdded(): void;
24
+ protected destructor(): void;
20
25
  setScrollX(x: number): this;
21
26
  setScrollY(y: number): this;
27
+ private holdScrollWhileFirstLayoutHeld;
28
+ private applyPendingScroll;
22
29
  protected computeVisibleWindow(scrollY: number, visibleHeight: number, totalRows: number): {
23
30
  firstRow: number;
24
31
  lastRow: number;
@@ -30,6 +37,11 @@ declare abstract class VirtualRowView<TRow extends Component, TOptions extends C
30
37
  protected positionRow(slot: number, targetY: number, rowWidth: number): boolean;
31
38
  protected hideExcessPoolRows(windowSize: number): void;
32
39
  protected invalidateGeom(): void;
40
+ protected deferRenderWhileFirstLayoutHeld(): boolean;
41
+ protected wasRenderDeferred(): boolean;
42
+ protected finishResumedRender(): boolean;
43
+ protected renderWindowIfDeferred(): boolean;
44
+ protected onThemeReflow(): void;
33
45
  protected scrollRowIntoView(index: number): void;
34
46
  }
35
47
  export { VirtualRowView };
@@ -0,0 +1 @@
1
+ export declare function selectionsEqual<T>(a: ReadonlySet<T>, b: ReadonlySet<T>): boolean;
@@ -18,6 +18,13 @@ export interface CellClickEvent {
18
18
  event: MouseEvent;
19
19
  }
20
20
  export declare function resolveClickedColumn(cells: Component[], target: Handle | null): number;
21
+ export interface ColumnWindow {
22
+ firstCol: number;
23
+ lastCol: number;
24
+ widths: number[];
25
+ lefts: number[];
26
+ }
27
+ export declare function computeColumnWindow(widths: number[], scrollX: number, viewportWidth: number): ColumnWindow;
21
28
  declare class Body extends VirtualRowView<Row> {
22
29
  private _store;
23
30
  private _hiddenColumns;
@@ -29,6 +36,8 @@ declare class Body extends VirtualRowView<Row> {
29
36
  private _lastColumnWidths;
30
37
  private _lastAriaRowCount;
31
38
  private _rowHeight;
39
+ private _colWindow;
40
+ private _reconciling;
32
41
  private _storeRefresh;
33
42
  private _selectedRecords;
34
43
  private _anchorRecord;
@@ -37,10 +46,11 @@ declare class Body extends VirtualRowView<Row> {
37
46
  private _header;
38
47
  private _listeners;
39
48
  constructor(store: AbstractStore);
49
+ protected onThemeReflow(): void;
40
50
  private computeRowHeight;
41
51
  protected getRowHeight(): number;
42
52
  protected createPoolRow(): Row;
43
- protected onPoolRowAdded(): void;
53
+ private wireRowCells;
44
54
  private bindStore;
45
55
  protected onStoreChange(): void;
46
56
  protected getVisibleRecords(): ModelRecord[];
@@ -65,9 +75,12 @@ declare class Body extends VirtualRowView<Row> {
65
75
  protected onScrollerTick(): void;
66
76
  private onFocus;
67
77
  getEditorPool(): CellEditorPool;
78
+ doLayout(): this;
68
79
  renderWindow(bodyWidth?: number, columnWidths?: number[]): void;
80
+ private renderWindowPass;
69
81
  private updateColumnWidthCache;
70
- protected bindAndPositionRows(firstRow: number, windowSize: number, rowWidth: number, fallback: number, records: ModelRecord[]): void;
82
+ private commitEditsOutsideWindow;
83
+ protected bindAndPositionRows(firstRow: number, windowSize: number, rowWidth: number, records: ModelRecord[], columns: ColumnWindow): void;
71
84
  protected onSubtreeClick(e: MouseEvent): void;
72
85
  private onRowClick;
73
86
  selectRecord(record: ModelRecord | null): void;
@@ -0,0 +1,6 @@
1
+ import { Component } from "../../core/Component.js";
2
+ export declare class CellGeometryCache {
3
+ private _geometry;
4
+ clear(): void;
5
+ apply(cell: Component, x: number, w: number, h: number): void;
6
+ }
@@ -4,10 +4,13 @@ export declare class Column {
4
4
  private _field;
5
5
  private _minWidth;
6
6
  private _maxWidth;
7
+ private _width;
8
+ private _maxContentLength;
7
9
  private _hidden;
8
10
  private _unhideable;
9
11
  private _readOnly;
10
12
  private _headerGlyph;
13
+ private _headerText;
11
14
  private _group;
12
15
  private _groupColor;
13
16
  private _required;
@@ -15,10 +18,13 @@ export declare class Column {
15
18
  getField(): Field;
16
19
  getMinWidth(): number | undefined;
17
20
  getMaxWidth(): number | undefined;
21
+ getWidth(): number | undefined;
22
+ getMaxContentLength(): number | undefined;
18
23
  isInitiallyHidden(): boolean;
19
24
  isUnhideable(): boolean;
20
25
  isReadOnly(): boolean;
21
26
  getHeaderGlyph(): string | null;
27
+ getHeaderText(): string | null;
22
28
  setHeaderGlyph(name: string | null): this;
23
29
  clearHeaderGlyph(): this;
24
30
  getGroup(): string | null;
@@ -11,6 +11,8 @@ export interface ColumnConfig {
11
11
  field: string;
12
12
  minWidth?: number;
13
13
  maxWidth?: number;
14
+ width?: number;
15
+ maxContentLength?: number;
14
16
  hidden?: boolean;
15
17
  unhideable?: boolean;
16
18
  readOnly?: boolean;
@@ -21,6 +23,7 @@ export interface ColumnConfig {
21
23
  cellValues?: (record: ModelRecord) => Array<ComboOption | string> | undefined;
22
24
  renderer?: () => CellRenderer<any>;
23
25
  headerGlyph?: string;
26
+ headerText?: string;
24
27
  group?: string;
25
28
  groupColor?: string;
26
29
  required?: boolean;
@@ -30,4 +33,5 @@ export interface ColumnSpec {
30
33
  columns: ColumnConfig[];
31
34
  appendUnlisted?: boolean;
32
35
  rowReadOnly?: (record: ModelRecord) => boolean;
36
+ autoSizeColumns?: boolean;
33
37
  }
@@ -5,6 +5,12 @@ import { AbstractModel } from "../../data/AbstractModel.js";
5
5
  import { AbstractStore } from "../../data/AbstractStore.js";
6
6
  import { Column } from "../../component/table/Column.js";
7
7
  export type TableHeaderEvent = "columnresizestart" | "columnresize" | "columncontextmenu";
8
+ export interface HeaderColumnGeometry {
9
+ columnWidths: number[];
10
+ viewportWidth: number;
11
+ columnHeight: number;
12
+ parentRowHeight: number;
13
+ }
8
14
  declare class TableHeader extends Component {
9
15
  private _model;
10
16
  private _store;
@@ -12,8 +18,16 @@ declare class TableHeader extends Component {
12
18
  private _columns;
13
19
  private _listeners;
14
20
  private _scrollbarCover;
21
+ private _visibleFields;
22
+ private _windowFirst;
23
+ private _scrollX;
24
+ private _focusedCol;
25
+ private _columnsDirty;
26
+ private _geometry;
27
+ private _cellGeom;
15
28
  constructor(model: AbstractModel, store: AbstractStore);
16
29
  getModel(): AbstractModel;
30
+ setStore(store: AbstractStore): this;
17
31
  setModel(model: AbstractModel): this;
18
32
  setHiddenColumns(hidden: Set<string>): this;
19
33
  setColumns(columns: Column[]): this;
@@ -25,19 +39,28 @@ declare class TableHeader extends Component {
25
39
  protected emit(event: "columnresize", colIndex: number, clientX: number): void;
26
40
  protected emit(event: "columncontextmenu", fieldName: string, x: number, y: number): void;
27
41
  getColumns(): import("../../core/Component.js")._Component<import("../../core/Component.js").ComponentOptions>[];
42
+ getColumnWindowStart(): number;
28
43
  getParentRow(): Row;
29
44
  hasParentRow(): boolean;
30
45
  getScrollbarCover(): Handle;
31
- sortColumns(): void;
32
46
  addRow(row: Row): this;
33
47
  addComponent(row: Row): this;
34
- setWidth(width: number): this;
35
48
  setHeight(height: number): this;
36
49
  private rebuildCells;
50
+ private computeVisibleFields;
51
+ private reconcileColumnCells;
37
52
  private rebuildParentCells;
38
53
  private wireCell;
54
+ private columnIndexOf;
39
55
  private handleSortClick;
40
56
  private syncSortIndicators;
57
+ renderColumnWindow(geometry?: HeaderColumnGeometry): this;
58
+ private positionColumnCells;
59
+ private positionParentCells;
60
+ setScrollX(scrollLeft: number): this;
61
+ getScrollX(): number;
62
+ setFocusedColumn(colIndex: number | null): this;
63
+ private applyFocusedColumn;
41
64
  }
42
65
  declare const TableHeaderCallable: import("../../core/Callable.js").Callable<typeof TableHeader>;
43
66
  type TableHeaderCallable = TableHeader;
@@ -8,11 +8,18 @@ declare class Row extends Component {
8
8
  private _model?;
9
9
  private _data?;
10
10
  private _onCellCommit?;
11
- private _fieldNames;
12
11
  private _treeCell;
13
12
  private _stripe;
13
+ private _visibleFields;
14
+ private _columnConfigs;
15
+ private _treeFieldName;
16
+ private _windowFirst;
17
+ private _cellKeys;
18
+ private _fieldNames;
19
+ private _columnsDirty;
14
20
  constructor(model?: AbstractModel, data?: ModelRecord, hiddenColumns?: Set<string>, columnConfigs?: Map<string, ColumnConfig>, onCellCommit?: (record: ModelRecord) => void, treeFieldName?: string);
15
21
  getTreeCell(): Cell<any> | null;
22
+ getColumnWindowStart(): number;
16
23
  getFieldNames(): string[];
17
24
  getData(): ModelRecord | undefined;
18
25
  setData(record: ModelRecord): this;
@@ -20,7 +27,11 @@ declare class Row extends Component {
20
27
  updateVisualState(): void;
21
28
  addColumn(cell: Cell<any>, constraints?: LayoutConstraints): this;
22
29
  addComponent(cell: Cell<any>, constraints?: LayoutConstraints): this;
23
- syncCells(model: AbstractModel, hiddenColumns: Set<string>, columnConfigs: Map<string, ColumnConfig>, treeFieldName?: string): this;
30
+ setColumnFields(model: AbstractModel, hiddenColumns: Set<string>, columnConfigs: Map<string, ColumnConfig>, treeFieldName?: string): this;
31
+ setColumnWindow(firstCol: number, lastCol: number): boolean;
32
+ private commitCellValue;
33
+ private static cellKey;
34
+ private cellKeyFor;
24
35
  private bindCell;
25
36
  private static createCellForField;
26
37
  doLayout(): this;