@haiyue/ui 0.1.0 → 0.1.2

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 (69) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE +1 -1
  3. package/README.md +226 -2
  4. package/dist/border-beam.d.ts +26 -0
  5. package/dist/border-beam.js +174 -0
  6. package/dist/button.d.ts +10 -0
  7. package/dist/button.js +85 -0
  8. package/dist/checkbox.d.ts +2 -2
  9. package/dist/checkbox.js +11 -11
  10. package/dist/context-menu.d.ts +6 -6
  11. package/dist/context-menu.js +11 -9
  12. package/dist/dialog.d.ts +5 -5
  13. package/dist/dialog.js +18 -18
  14. package/dist/drawer.d.ts +49 -0
  15. package/dist/drawer.js +377 -0
  16. package/dist/dropdown.d.ts +9 -9
  17. package/dist/dropdown.js +9 -9
  18. package/dist/expandable.d.ts +32 -0
  19. package/dist/expandable.js +136 -0
  20. package/dist/history-controls.d.ts +40 -0
  21. package/dist/history-controls.js +123 -0
  22. package/dist/index.d.ts +36 -31
  23. package/dist/index.js +35 -85
  24. package/dist/input.d.ts +5 -5
  25. package/dist/input.js +13 -13
  26. package/dist/menu-shared.d.ts +4 -4
  27. package/dist/menu-shared.js +4 -4
  28. package/dist/notification.d.ts +55 -0
  29. package/dist/notification.js +357 -0
  30. package/dist/radio.d.ts +2 -2
  31. package/dist/radio.js +12 -12
  32. package/dist/range.d.ts +74 -0
  33. package/dist/range.js +393 -0
  34. package/dist/select.d.ts +6 -6
  35. package/dist/select.js +20 -20
  36. package/dist/split.d.ts +6 -6
  37. package/dist/split.js +14 -14
  38. package/dist/tabs.d.ts +10 -6
  39. package/dist/tabs.js +94 -30
  40. package/dist/tooltip.d.ts +4 -4
  41. package/dist/tooltip.js +9 -9
  42. package/dist/tree-model.d.ts +15 -7
  43. package/dist/tree-model.js +93 -80
  44. package/dist/tree-node.d.ts +3 -3
  45. package/dist/tree-node.js +3 -3
  46. package/dist/tree-types.d.ts +14 -14
  47. package/dist/tree.d.ts +9 -7
  48. package/dist/tree.js +68 -66
  49. package/dist/virtual-list.d.ts +61 -0
  50. package/dist/virtual-list.js +324 -0
  51. package/package.json +100 -7
  52. package/themes/haiyue-dark.css +46 -0
  53. package/themes/haiyue-light.css +46 -0
  54. package/src/checkbox.ts +0 -215
  55. package/src/context-menu.ts +0 -248
  56. package/src/dialog.ts +0 -195
  57. package/src/dropdown.ts +0 -249
  58. package/src/index.ts +0 -192
  59. package/src/input.ts +0 -150
  60. package/src/menu-shared.ts +0 -65
  61. package/src/radio.ts +0 -216
  62. package/src/select.ts +0 -271
  63. package/src/split.ts +0 -306
  64. package/src/tabs.ts +0 -182
  65. package/src/tooltip.ts +0 -321
  66. package/src/tree-model.ts +0 -305
  67. package/src/tree-node.ts +0 -67
  68. package/src/tree-types.ts +0 -47
  69. package/src/tree.ts +0 -1002
package/dist/tree.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import type { GETreeNodeData } from './tree-types.js';
2
- export { GETreeNode } from './tree-node.js';
3
- export type { GETreeDataChangeDetail, GETreeDropPosition, GETreeNodeContextMenuDetail, GETreeNodeData, GETreeSelectionChangeDetail, } from './tree-types.js';
4
- export declare class GETree extends HTMLElement {
1
+ import type { HYTreeNodeData } from './tree-types.js';
2
+ export { HYTreeNode } from './tree-node.js';
3
+ export type { HYTreeDataChangeDetail, HYTreeDropPosition, HYTreeNodeContextMenuDetail, HYTreeNodeData, HYTreeSelectionChangeDetail, } from './tree-types.js';
4
+ export declare class HYTree extends HTMLElement {
5
5
  private static readonly VIRTUALIZATION_THRESHOLD;
6
6
  private static readonly ROW_HEIGHT;
7
7
  private static readonly OVERSCAN_ROWS;
@@ -25,15 +25,15 @@ export declare class GETree extends HTMLElement {
25
25
  connectedCallback(): void;
26
26
  disconnectedCallback(): void;
27
27
  attributeChangedCallback(name: string): void;
28
- get data(): GETreeNodeData[];
29
- set data(value: GETreeNodeData[]);
28
+ get data(): HYTreeNodeData[];
29
+ set data(value: HYTreeNodeData[]);
30
30
  get selectedId(): string | null;
31
31
  set selectedId(value: string | null);
32
32
  get selectedIds(): string[];
33
33
  set selectedIds(value: string[]);
34
34
  get allowDrag(): boolean;
35
35
  set allowDrag(value: boolean);
36
- updateData(value: GETreeNodeData[]): void;
36
+ updateData(value: HYTreeNodeData[]): void;
37
37
  expand(id: string): void;
38
38
  collapse(id: string): void;
39
39
  toggle(id: string): void;
@@ -76,6 +76,8 @@ export declare class GETree extends HTMLElement {
76
76
  private _onDrop;
77
77
  private _onKeyDown;
78
78
  private _handleNavigationKey;
79
+ private _linearNavigationTarget;
80
+ private _handleNavigationAction;
79
81
  private _moveActiveRight;
80
82
  private _moveActiveLeft;
81
83
  private _getActiveVisibleId;
package/dist/tree.js CHANGED
@@ -1,6 +1,6 @@
1
- import { GETreeModel } from './tree-model.js';
2
- import { GETreeNode } from './tree-node.js';
3
- export { GETreeNode } from './tree-node.js';
1
+ import { HYTreeModel } from './tree-model.js';
2
+ import { HYTreeNode } from './tree-node.js';
3
+ export { HYTreeNode } from './tree-node.js';
4
4
  const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
5
5
  const TREE_TOGGLE_ICON_PATHS = [
6
6
  'M318.57 223.95l322.99 322.99c21.87 21.87 57.33 21.87 79.2 0 21.87-21.87 21.87-57.33 0-79.2l-323-322.99c-21.87-21.87-57.33-21.87-79.2 0-21.86 21.87-21.86 57.33 0.01 79.2z',
@@ -32,7 +32,7 @@ function createTreeToggleIconSvg() {
32
32
  }
33
33
  return svg;
34
34
  }
35
- export class GETree extends HTMLElement {
35
+ export class HYTree extends HTMLElement {
36
36
  static VIRTUALIZATION_THRESHOLD = 160;
37
37
  static ROW_HEIGHT = 28;
38
38
  static OVERSCAN_ROWS = 8;
@@ -47,7 +47,7 @@ export class GETree extends HTMLElement {
47
47
  _selectionAnchorId = null;
48
48
  _activeId = null;
49
49
  _expandedIds = new Set();
50
- _model = new GETreeModel(this._expandedIds);
50
+ _model = new HYTreeModel(this._expandedIds);
51
51
  _dragNodeId = null;
52
52
  _syncingSelectionAttributes = false;
53
53
  _resizeObserver = null;
@@ -66,8 +66,8 @@ export class GETree extends HTMLElement {
66
66
  justify-content: flex-start;
67
67
  width: 100%;
68
68
  min-height: 0;
69
- color: var(--ge-tree-text-color, var(--ge-text-color, #c8d3e4));
70
- background: var(--ge-panel-bg-color, #171d28);
69
+ color: var(--hy-tree-text-color, var(--hy-text-color, #c8d3e4));
70
+ background: var(--hy-panel-bg-color, #171d28);
71
71
  font: 12px system-ui, sans-serif;
72
72
  text-align: left;
73
73
  user-select: none;
@@ -85,7 +85,7 @@ export class GETree extends HTMLElement {
85
85
  align-items: center;
86
86
  gap: 4px;
87
87
  border-radius: 4px;
88
- color: var(--ge-tree-text-color, var(--ge-text-color, #c8d3e4));
88
+ color: var(--hy-tree-text-color, var(--hy-text-color, #c8d3e4));
89
89
  cursor: default;
90
90
  }
91
91
  .virtual-spacer {
@@ -93,18 +93,18 @@ export class GETree extends HTMLElement {
93
93
  pointer-events: none;
94
94
  }
95
95
  .row:hover {
96
- background: var(--ge-hover-bg-color, #222b3a);
96
+ background: var(--hy-hover-bg-color, #222b3a);
97
97
  }
98
98
  .row.selected {
99
- background: var(--ge-selected-bg-color, var(--ge-accent-strong-color, #255a91));
100
- color: var(--ge-selected-text-color, #fff);
99
+ background: var(--hy-selected-bg-color, var(--hy-accent-strong-color, #255a91));
100
+ color: var(--hy-selected-text-color, #fff);
101
101
  }
102
102
  .row.active:not(.selected) {
103
- background: var(--ge-tree-active-bg-color, var(--ge-hover-bg-color, #222b3a));
104
- color: var(--ge-tree-active-text-color, var(--ge-tree-text-color, #dce8fb));
103
+ background: var(--hy-tree-active-bg-color, var(--hy-hover-bg-color, #222b3a));
104
+ color: var(--hy-tree-active-text-color, var(--hy-tree-text-color, #dce8fb));
105
105
  }
106
106
  .row.active {
107
- outline: var(--ge-tree-active-ring-width, 1px) solid var(--ge-tree-active-ring-color, var(--ge-focus-border-color, #3d6fa8));
107
+ outline: var(--hy-tree-active-ring-width, 1px) solid var(--hy-tree-active-ring-color, var(--hy-focus-border-color, #3d6fa8));
108
108
  outline-offset: -1px;
109
109
  }
110
110
  .toggle {
@@ -114,7 +114,7 @@ export class GETree extends HTMLElement {
114
114
  border: 0;
115
115
  padding: 0;
116
116
  background: transparent;
117
- color: var(--ge-tree-icon-color, var(--ge-secondary-text-color, #8fa7c8));
117
+ color: var(--hy-tree-icon-color, var(--hy-secondary-text-color, #8fa7c8));
118
118
  cursor: pointer;
119
119
  display: inline-grid;
120
120
  place-items: center;
@@ -126,29 +126,29 @@ export class GETree extends HTMLElement {
126
126
  .toggle-icon {
127
127
  width: 12px;
128
128
  height: 12px;
129
- color: var(--ge-tree-icon-color, var(--ge-secondary-text-color, #8fa7c8));
129
+ color: var(--hy-tree-icon-color, var(--hy-secondary-text-color, #8fa7c8));
130
130
  transition: transform 0.16s ease, color 0.16s ease;
131
131
  }
132
132
  .toggle.expanded .toggle-icon {
133
133
  transform: rotate(90deg);
134
- color: var(--ge-tree-icon-active-color, #b9d4ff);
134
+ color: var(--hy-tree-icon-active-color, #b9d4ff);
135
135
  }
136
136
  .row:hover .toggle-icon {
137
- color: var(--ge-tree-icon-active-color, #b9d4ff);
137
+ color: var(--hy-tree-icon-active-color, #b9d4ff);
138
138
  }
139
139
  .content {
140
140
  min-width: 0;
141
141
  flex: 1 1 auto;
142
142
  }
143
143
  .row.drop-before {
144
- box-shadow: inset 0 2px 0 var(--ge-drop-indicator-color, #62a8ff);
144
+ box-shadow: inset 0 2px 0 var(--hy-drop-indicator-color, #62a8ff);
145
145
  }
146
146
  .row.drop-after {
147
- box-shadow: inset 0 -2px 0 var(--ge-drop-indicator-color, #62a8ff);
147
+ box-shadow: inset 0 -2px 0 var(--hy-drop-indicator-color, #62a8ff);
148
148
  }
149
149
  .row.drop-inside {
150
- outline: 1px solid var(--ge-drop-indicator-color, #62a8ff);
151
- background: var(--ge-drop-target-bg-color, #223650);
150
+ outline: 1px solid var(--hy-drop-indicator-color, #62a8ff);
151
+ background: var(--hy-drop-target-bg-color, #223650);
152
152
  }
153
153
  `;
154
154
  this._list.className = 'list';
@@ -299,7 +299,7 @@ export class GETree extends HTMLElement {
299
299
  this._model.setData(this._data);
300
300
  }
301
301
  catch (error) {
302
- console.warn('Invalid ge-tree data attribute.', error);
302
+ console.warn('Invalid hy-tree data attribute.', error);
303
303
  }
304
304
  }
305
305
  _seedExpanded(nodes) {
@@ -320,7 +320,7 @@ export class GETree extends HTMLElement {
320
320
  const visibleIds = new Set();
321
321
  const fragment = document.createDocumentFragment();
322
322
  if (window.start > 0)
323
- fragment.append(this._createVirtualSpacer(window.start * GETree.ROW_HEIGHT));
323
+ fragment.append(this._createVirtualSpacer(window.start * HYTree.ROW_HEIGHT));
324
324
  for (let index = window.start; index < window.end; index++) {
325
325
  const item = visible[index];
326
326
  if (!item)
@@ -331,7 +331,7 @@ export class GETree extends HTMLElement {
331
331
  fragment.append(rendered.row);
332
332
  }
333
333
  if (window.end < visible.length) {
334
- fragment.append(this._createVirtualSpacer((visible.length - window.end) * GETree.ROW_HEIGHT));
334
+ fragment.append(this._createVirtualSpacer((visible.length - window.end) * HYTree.ROW_HEIGHT));
335
335
  }
336
336
  for (const [id, rendered] of this._rowCache) {
337
337
  if (visibleIds.has(id))
@@ -343,13 +343,13 @@ export class GETree extends HTMLElement {
343
343
  }
344
344
  _getRenderWindow(itemCount) {
345
345
  const viewportHeight = this.clientHeight;
346
- if (itemCount < GETree.VIRTUALIZATION_THRESHOLD || viewportHeight <= 0)
346
+ if (itemCount < HYTree.VIRTUALIZATION_THRESHOLD || viewportHeight <= 0)
347
347
  return { start: 0, end: itemCount };
348
- const first = Math.floor(this.scrollTop / GETree.ROW_HEIGHT);
349
- const last = Math.ceil((this.scrollTop + viewportHeight) / GETree.ROW_HEIGHT);
348
+ const first = Math.floor(this.scrollTop / HYTree.ROW_HEIGHT);
349
+ const last = Math.ceil((this.scrollTop + viewportHeight) / HYTree.ROW_HEIGHT);
350
350
  return {
351
- start: Math.max(0, first - GETree.OVERSCAN_ROWS),
352
- end: Math.min(itemCount, last + GETree.OVERSCAN_ROWS),
351
+ start: Math.max(0, first - HYTree.OVERSCAN_ROWS),
352
+ end: Math.min(itemCount, last + HYTree.OVERSCAN_ROWS),
353
353
  };
354
354
  }
355
355
  _createVirtualSpacer(height) {
@@ -372,7 +372,7 @@ export class GETree extends HTMLElement {
372
372
  const row = document.createElement('div');
373
373
  const toggle = document.createElement('button');
374
374
  const content = document.createElement('div');
375
- const renderer = document.createElement('ge-tree-node');
375
+ const renderer = document.createElement('hy-tree-node');
376
376
  row.className = 'row';
377
377
  row.dataset.id = id;
378
378
  toggle.type = 'button';
@@ -380,7 +380,7 @@ export class GETree extends HTMLElement {
380
380
  content.className = 'content';
381
381
  content.append(renderer);
382
382
  row.append(toggle, content);
383
- const rendered = { row, toggle, content, renderer, rendererTag: 'ge-tree-node' };
383
+ const rendered = { row, toggle, content, renderer, rendererTag: 'hy-tree-node' };
384
384
  this._rowCache.set(id, rendered);
385
385
  return rendered;
386
386
  }
@@ -408,7 +408,7 @@ export class GETree extends HTMLElement {
408
408
  this._syncRenderer(rendered.renderer, node, depth, expanded, hasChildren, selected);
409
409
  }
410
410
  _getRendererTag(node) {
411
- return typeof node.renderer === 'string' && node.renderer ? node.renderer : 'ge-tree-node';
411
+ return typeof node.renderer === 'string' && node.renderer ? node.renderer : 'hy-tree-node';
412
412
  }
413
413
  _syncRenderer(el, node, depth, expanded, hasChildren, selected) {
414
414
  el.node = node;
@@ -540,7 +540,7 @@ export class GETree extends HTMLElement {
540
540
  this._activeId = this._selectedId;
541
541
  }
542
542
  catch (error) {
543
- console.warn('Invalid ge-tree selected-ids attribute.', error);
543
+ console.warn('Invalid hy-tree selected-ids attribute.', error);
544
544
  this._setSelectionFromSelectedIdAttribute();
545
545
  }
546
546
  }
@@ -698,33 +698,33 @@ export class GETree extends HTMLElement {
698
698
  if (activeId === undefined)
699
699
  return false;
700
700
  const activeIndex = this._model.visibleIndex.get(activeId) ?? 0;
701
- if (event.key === 'ArrowDown') {
702
- this._setActiveId(visibleIds[Math.min(activeIndex + 1, visibleIds.length - 1)] ?? activeId);
701
+ const linearTarget = this._linearNavigationTarget(event.key, activeIndex, visibleIds);
702
+ if (linearTarget) {
703
+ this._setActiveId(linearTarget);
703
704
  return true;
704
705
  }
705
- if (event.key === 'ArrowUp') {
706
- this._setActiveId(visibleIds[Math.max(activeIndex - 1, 0)] ?? activeId);
707
- return true;
708
- }
709
- if (event.key === 'Home') {
710
- this._setActiveId(visibleIds[0] ?? activeId);
711
- return true;
712
- }
713
- if (event.key === 'End') {
714
- this._setActiveId(visibleIds[visibleIds.length - 1] ?? activeId);
715
- return true;
716
- }
717
- if (event.key === 'ArrowRight') {
706
+ return this._handleNavigationAction(event.key, activeId);
707
+ }
708
+ _linearNavigationTarget(key, activeIndex, visibleIds) {
709
+ if (key === 'ArrowDown')
710
+ return visibleIds[Math.min(activeIndex + 1, visibleIds.length - 1)] ?? null;
711
+ if (key === 'ArrowUp')
712
+ return visibleIds[Math.max(activeIndex - 1, 0)] ?? null;
713
+ if (key === 'Home')
714
+ return visibleIds[0] ?? null;
715
+ if (key === 'End')
716
+ return visibleIds[visibleIds.length - 1] ?? null;
717
+ return null;
718
+ }
719
+ _handleNavigationAction(key, activeId) {
720
+ if (key === 'ArrowRight')
718
721
  return this._moveActiveRight(activeId);
719
- }
720
- if (event.key === 'ArrowLeft') {
722
+ if (key === 'ArrowLeft')
721
723
  return this._moveActiveLeft(activeId);
722
- }
723
- if (event.key === 'Enter' || event.key === ' ') {
724
- this._setSelection([activeId], activeId, true);
725
- return true;
726
- }
727
- return false;
724
+ if (key !== 'Enter' && key !== ' ')
725
+ return false;
726
+ this._setSelection([activeId], activeId, true);
727
+ return true;
728
728
  }
729
729
  _moveActiveRight(activeId) {
730
730
  const indexed = this._model.getIndexedNode(activeId);
@@ -799,7 +799,7 @@ export class GETree extends HTMLElement {
799
799
  this.removeAttribute('aria-activedescendant');
800
800
  }
801
801
  _getTreeItemElementId(id) {
802
- return `ge-tree-item-${encodeURIComponent(id)}`;
802
+ return `hy-tree-item-${encodeURIComponent(id)}`;
803
803
  }
804
804
  _scrollActiveIntoView() {
805
805
  if (!this._activeId)
@@ -809,8 +809,8 @@ export class GETree extends HTMLElement {
809
809
  this._getVisibleFlatNodes();
810
810
  const index = this._model.visibleIndex.get(this._activeId);
811
811
  if (index !== undefined) {
812
- const rowTop = index * GETree.ROW_HEIGHT;
813
- const rowBottom = rowTop + GETree.ROW_HEIGHT;
812
+ const rowTop = index * HYTree.ROW_HEIGHT;
813
+ const rowBottom = rowTop + HYTree.ROW_HEIGHT;
814
814
  if (rowTop < this.scrollTop)
815
815
  this.scrollTop = rowTop;
816
816
  else if (rowBottom > this.scrollTop + this.clientHeight)
@@ -822,7 +822,7 @@ export class GETree extends HTMLElement {
822
822
  rendered?.row.scrollIntoView({ block: 'nearest' });
823
823
  }
824
824
  _onScroll = () => {
825
- if (this._getVisibleFlatNodes().length >= GETree.VIRTUALIZATION_THRESHOLD)
825
+ if (this._getVisibleFlatNodes().length >= HYTree.VIRTUALIZATION_THRESHOLD)
826
826
  this._render();
827
827
  };
828
828
  _isEditableTarget(target) {
@@ -842,7 +842,9 @@ export class GETree extends HTMLElement {
842
842
  if (this._clipboard.length === 0)
843
843
  return false;
844
844
  const target = this._selectedId ? this._model.findNode(this._selectedId) : null;
845
- const targetList = target ? (target.node.children ??= []) : this._data;
845
+ if (target && !target.node.children)
846
+ target.node.children = [];
847
+ const targetList = target?.node.children ?? this._data;
846
848
  if (target) {
847
849
  this._expandedIds.add(target.node.id);
848
850
  }
@@ -932,11 +934,11 @@ export class GETree extends HTMLElement {
932
934
  }
933
935
  }
934
936
  export function defineTreeComponents() {
935
- if (!customElements.get('ge-tree-node')) {
936
- customElements.define('ge-tree-node', GETreeNode);
937
+ if (!customElements.get('hy-tree-node')) {
938
+ customElements.define('hy-tree-node', HYTreeNode);
937
939
  }
938
- if (!customElements.get('ge-tree')) {
939
- customElements.define('ge-tree', GETree);
940
+ if (!customElements.get('hy-tree')) {
941
+ customElements.define('hy-tree', HYTree);
940
942
  }
941
943
  }
942
944
  //# sourceMappingURL=tree.js.map
@@ -0,0 +1,61 @@
1
+ export type HYVirtualListAlign = 'auto' | 'start' | 'center' | 'end';
2
+ export type HYVirtualListItemRenderer<T = unknown> = (item: T, index: number) => Node | string | number | null | undefined;
3
+ /** All end indexes are exclusive and can be passed directly to Array#slice. */
4
+ export interface HYVirtualListRange {
5
+ readonly startIndex: number;
6
+ readonly endIndex: number;
7
+ readonly visibleStartIndex: number;
8
+ readonly visibleEndIndex: number;
9
+ }
10
+ export interface HYVirtualListRangeChangeDetail extends HYVirtualListRange {
11
+ readonly renderedCount: number;
12
+ readonly total: number;
13
+ }
14
+ export interface HYVirtualListItemClickDetail<T = unknown> {
15
+ readonly item: T;
16
+ readonly index: number;
17
+ }
18
+ export declare function calculateVirtualListRange(itemCount: number, itemHeight: number, viewportHeight: number, scrollTop: number, overscan: number): HYVirtualListRange;
19
+ export declare class HYVirtualList<T = unknown> extends HTMLElement {
20
+ private readonly _viewport;
21
+ private readonly _spacer;
22
+ private readonly _window;
23
+ private readonly _empty;
24
+ private _items;
25
+ private _renderItem;
26
+ private _itemHeight;
27
+ private _height;
28
+ private _overscan;
29
+ private _range;
30
+ private _resizeObserver;
31
+ private _connected;
32
+ private readonly _onScroll;
33
+ private readonly _onClick;
34
+ static get observedAttributes(): string[];
35
+ constructor();
36
+ connectedCallback(): void;
37
+ disconnectedCallback(): void;
38
+ attributeChangedCallback(): void;
39
+ get items(): readonly T[];
40
+ set items(value: readonly T[]);
41
+ get renderItem(): HYVirtualListItemRenderer<T> | null;
42
+ set renderItem(value: HYVirtualListItemRenderer<T> | null);
43
+ get itemHeight(): number;
44
+ set itemHeight(value: number);
45
+ get height(): number;
46
+ set height(value: number);
47
+ get overscan(): number;
48
+ set overscan(value: number);
49
+ refresh(): void;
50
+ scrollToIndex(index: number, align?: HYVirtualListAlign): void;
51
+ private _syncAttributes;
52
+ private _applyHeight;
53
+ private _readPositiveAttribute;
54
+ private _readNonNegativeAttribute;
55
+ private _reflectNumber;
56
+ private _clampScrollTop;
57
+ private _renderWindow;
58
+ private _handleClick;
59
+ private _replaceRows;
60
+ }
61
+ export declare function defineVirtualListComponents(): void;