e-virt-table 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +2 -0
- package/dist/index.cjs.js +14 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.es.js +5422 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.umd.js +14 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/lib/Autofill.d.ts +20 -0
- package/dist/lib/Autofill.js +185 -0
- package/dist/lib/Autofill.js.map +1 -0
- package/dist/lib/BaseCell.d.ts +22 -0
- package/dist/lib/BaseCell.js +111 -0
- package/dist/lib/BaseCell.js.map +1 -0
- package/dist/lib/Body.d.ts +29 -0
- package/dist/lib/Body.js +382 -0
- package/dist/lib/Body.js.map +1 -0
- package/dist/lib/Cell.d.ts +101 -0
- package/dist/lib/Cell.js +943 -0
- package/dist/lib/Cell.js.map +1 -0
- package/dist/lib/CellHeader.d.ts +64 -0
- package/dist/lib/CellHeader.js +355 -0
- package/dist/lib/CellHeader.js.map +1 -0
- package/dist/lib/Config.d.ts +106 -0
- package/dist/lib/Config.js +617 -0
- package/dist/lib/Config.js.map +1 -0
- package/dist/lib/Context.d.ts +123 -0
- package/dist/lib/Context.js +419 -0
- package/dist/lib/Context.js.map +1 -0
- package/dist/lib/Database.d.ts +228 -0
- package/dist/lib/Database.js +931 -0
- package/dist/lib/Database.js.map +1 -0
- package/dist/lib/EVirtTable.d.ts +61 -0
- package/dist/lib/EVirtTable.js +321 -0
- package/dist/lib/EVirtTable.js.map +1 -0
- package/dist/lib/Editor.d.ts +16 -0
- package/dist/lib/Editor.js +251 -0
- package/dist/lib/Editor.js.map +1 -0
- package/dist/lib/Empty.d.ts +7 -0
- package/dist/lib/Empty.js +45 -0
- package/dist/lib/Empty.js.map +1 -0
- package/dist/lib/EventBrowser.d.ts +17 -0
- package/dist/lib/EventBrowser.js +79 -0
- package/dist/lib/EventBrowser.js.map +1 -0
- package/dist/lib/EventBus.d.ts +12 -0
- package/dist/lib/EventBus.js +58 -0
- package/dist/lib/EventBus.js.map +1 -0
- package/dist/lib/EventTable.d.ts +26 -0
- package/dist/lib/EventTable.js +358 -0
- package/dist/lib/EventTable.js.map +1 -0
- package/dist/lib/Footer.d.ts +17 -0
- package/dist/lib/Footer.js +138 -0
- package/dist/lib/Footer.js.map +1 -0
- package/dist/lib/Header.d.ts +37 -0
- package/dist/lib/Header.js +482 -0
- package/dist/lib/Header.js.map +1 -0
- package/dist/lib/History.d.ts +27 -0
- package/dist/lib/History.js +106 -0
- package/dist/lib/History.js.map +1 -0
- package/dist/lib/Icons.d.ts +15 -0
- package/dist/lib/Icons.js +145 -0
- package/dist/lib/Icons.js.map +1 -0
- package/dist/lib/Overlayer.d.ts +10 -0
- package/dist/lib/Overlayer.js +267 -0
- package/dist/lib/Overlayer.js.map +1 -0
- package/dist/lib/Paint.d.ts +65 -0
- package/dist/lib/Paint.js +223 -0
- package/dist/lib/Paint.js.map +1 -0
- package/dist/lib/Row.d.ts +22 -0
- package/dist/lib/Row.js +125 -0
- package/dist/lib/Row.js.map +1 -0
- package/dist/lib/Scroller.d.ts +20 -0
- package/dist/lib/Scroller.js +448 -0
- package/dist/lib/Scroller.js.map +1 -0
- package/dist/lib/Selector.d.ts +38 -0
- package/dist/lib/Selector.js +532 -0
- package/dist/lib/Selector.js.map +1 -0
- package/dist/lib/Tooltip.d.ts +13 -0
- package/dist/lib/Tooltip.js +204 -0
- package/dist/lib/Tooltip.js.map +1 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.js +4 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/types.d.ts +160 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/util.d.ts +15 -0
- package/dist/lib/util.js +113 -0
- package/dist/lib/util.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { computePosition, offset, arrow, flip, shift } from '@floating-ui/dom';
|
|
2
|
+
export default class Tooltip {
|
|
3
|
+
constructor(ctx) {
|
|
4
|
+
Object.defineProperty(this, "ctx", {
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true,
|
|
8
|
+
value: void 0
|
|
9
|
+
});
|
|
10
|
+
Object.defineProperty(this, "enable", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
configurable: true,
|
|
13
|
+
writable: true,
|
|
14
|
+
value: false
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(this, "contentEl", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true,
|
|
20
|
+
value: void 0
|
|
21
|
+
});
|
|
22
|
+
Object.defineProperty(this, "floatingEl", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
writable: true,
|
|
26
|
+
value: void 0
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(this, "arrowEl", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true,
|
|
32
|
+
value: void 0
|
|
33
|
+
});
|
|
34
|
+
this.ctx = ctx;
|
|
35
|
+
const { TOOLTIP_BG_COLOR, TOOLTIP_TEXT_COLOR, TOOLTIP_ZINDEX, TOOLTIP_CUSTOM_STYLE, CSS_PREFIX } = this.ctx.config;
|
|
36
|
+
this.contentEl = document.createElement('div');
|
|
37
|
+
this.arrowEl = document.createElement('div');
|
|
38
|
+
this.floatingEl = document.createElement('div');
|
|
39
|
+
this.floatingEl.className = `${CSS_PREFIX}-tooltip`;
|
|
40
|
+
this.contentEl.className = `${CSS_PREFIX}-tooltip-content`;
|
|
41
|
+
this.arrowEl.className = `${CSS_PREFIX}-tooltip-arrow`;
|
|
42
|
+
const floatingStyle = {
|
|
43
|
+
display: 'none',
|
|
44
|
+
position: 'absolute',
|
|
45
|
+
background: TOOLTIP_BG_COLOR,
|
|
46
|
+
color: TOOLTIP_TEXT_COLOR,
|
|
47
|
+
boxSizing: 'border-box',
|
|
48
|
+
zIndex: TOOLTIP_ZINDEX,
|
|
49
|
+
padding: '8px',
|
|
50
|
+
borderRadius: `4px`,
|
|
51
|
+
fontSize: `12px`,
|
|
52
|
+
...TOOLTIP_CUSTOM_STYLE,
|
|
53
|
+
};
|
|
54
|
+
const arrowStyle = {
|
|
55
|
+
position: 'absolute',
|
|
56
|
+
width: '10px',
|
|
57
|
+
height: '10px',
|
|
58
|
+
background: floatingStyle.background,
|
|
59
|
+
backgroundColor: floatingStyle.backgroundColor,
|
|
60
|
+
transform: 'rotate(45deg)',
|
|
61
|
+
zIndex: floatingStyle.zIndex,
|
|
62
|
+
};
|
|
63
|
+
Object.assign(this.arrowEl.style, arrowStyle);
|
|
64
|
+
Object.assign(this.floatingEl.style, floatingStyle);
|
|
65
|
+
this.floatingEl.appendChild(this.contentEl);
|
|
66
|
+
this.floatingEl.appendChild(this.arrowEl);
|
|
67
|
+
this.ctx.targetContainer.appendChild(this.floatingEl);
|
|
68
|
+
this.init();
|
|
69
|
+
}
|
|
70
|
+
init() {
|
|
71
|
+
this.ctx.on('mousemove', (e) => {
|
|
72
|
+
// 鼠标移动时,判断是否在target上,不在则隐藏
|
|
73
|
+
// if (!this.ctx.isTarget(e.target)) {
|
|
74
|
+
// return;
|
|
75
|
+
// }
|
|
76
|
+
const targetRect = this.ctx.target.getBoundingClientRect();
|
|
77
|
+
if (!targetRect) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (e.clientX < targetRect.x ||
|
|
81
|
+
e.clientX > targetRect.x + targetRect.width ||
|
|
82
|
+
e.clientY < targetRect.y ||
|
|
83
|
+
e.clientY > targetRect.y + targetRect.height) {
|
|
84
|
+
this.hide();
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
// 开始编辑时隐藏
|
|
88
|
+
this.ctx.on('startEdit', () => {
|
|
89
|
+
this.hide();
|
|
90
|
+
});
|
|
91
|
+
this.ctx.on('visibleCellHoverChange', (cell) => {
|
|
92
|
+
// 有移除或者有错误message时显示
|
|
93
|
+
if (cell.ellipsis || cell.message) {
|
|
94
|
+
this.show(cell);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
this.ctx.on('visibleCellMouseleave', () => {
|
|
98
|
+
this.hide();
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
show(cell) {
|
|
102
|
+
// 如果没有设置overflowTooltipShow=true,则不显示
|
|
103
|
+
if (!cell.overflowTooltipShow) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
// 如果是鼠标按下状态,则不显示
|
|
107
|
+
if (this.ctx.mousedown) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
this.floatingEl.style.display = 'block';
|
|
111
|
+
let text = cell.getText();
|
|
112
|
+
// 如果有message,则显示message
|
|
113
|
+
if (cell.message) {
|
|
114
|
+
text = cell.message;
|
|
115
|
+
}
|
|
116
|
+
const targetRect = this.ctx.target.getBoundingClientRect();
|
|
117
|
+
if (!targetRect) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
this.enable = true;
|
|
121
|
+
// 设置最大宽度
|
|
122
|
+
this.contentEl.style.maxWidth = `${cell.overflowTooltipMaxWidth || 500}px`;
|
|
123
|
+
this.contentEl.style.width = '100%';
|
|
124
|
+
this.contentEl.style.display = 'inline-block';
|
|
125
|
+
this.contentEl.style.wordBreak = 'break-all';
|
|
126
|
+
this.contentEl.style.lineHeight = '1.5';
|
|
127
|
+
this.contentEl.innerText = text;
|
|
128
|
+
const cellX = cell.drawX + targetRect.x;
|
|
129
|
+
const cellY = cell.drawY + targetRect.y;
|
|
130
|
+
// 这个是相对于视口的位置
|
|
131
|
+
const virtualEl = {
|
|
132
|
+
getBoundingClientRect() {
|
|
133
|
+
return {
|
|
134
|
+
width: cell.visibleWidth,
|
|
135
|
+
height: cell.visibleHeight,
|
|
136
|
+
x: cellX,
|
|
137
|
+
y: cellY,
|
|
138
|
+
left: cellX,
|
|
139
|
+
right: cellX + cell.visibleWidth,
|
|
140
|
+
top: cellY,
|
|
141
|
+
bottom: cellY + cell.visibleHeight,
|
|
142
|
+
};
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
computePosition(virtualEl, this.floatingEl, {
|
|
146
|
+
placement: cell.overflowTooltipPlacement,
|
|
147
|
+
middleware: [shift(), flip(), offset(6), arrow({ element: this.arrowEl })],
|
|
148
|
+
}).then((val) => {
|
|
149
|
+
const { x, y, placement, middlewareData } = val;
|
|
150
|
+
Object.assign(this.floatingEl.style, {
|
|
151
|
+
top: `${y}px`,
|
|
152
|
+
left: `${x}px`,
|
|
153
|
+
});
|
|
154
|
+
if (middlewareData.arrow) {
|
|
155
|
+
const arrow = middlewareData.arrow;
|
|
156
|
+
if (['left', 'left-start', 'left-end'].includes(placement)) {
|
|
157
|
+
Object.assign(this.arrowEl.style, {
|
|
158
|
+
top: `${arrow.y}px`,
|
|
159
|
+
bottom: '',
|
|
160
|
+
left: '',
|
|
161
|
+
right: `-5px`,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
else if (['right', 'right-start', 'right-end'].includes(placement)) {
|
|
165
|
+
Object.assign(this.arrowEl.style, {
|
|
166
|
+
top: `${arrow.y}px`,
|
|
167
|
+
bottom: '',
|
|
168
|
+
left: `-5px`,
|
|
169
|
+
right: '',
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
else if (['bottom', 'bottom-start', 'bottom-end'].includes(placement)) {
|
|
173
|
+
Object.assign(this.arrowEl.style, {
|
|
174
|
+
top: `-5px`,
|
|
175
|
+
bottom: '',
|
|
176
|
+
left: `${arrow.x}px`,
|
|
177
|
+
right: '',
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
else if (['top', 'top-start', 'top-end'].includes(placement)) {
|
|
181
|
+
Object.assign(this.arrowEl.style, {
|
|
182
|
+
top: '',
|
|
183
|
+
bottom: `-5px`,
|
|
184
|
+
left: `${arrow.x}px`,
|
|
185
|
+
right: '',
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
hide() {
|
|
192
|
+
if (!this.enable) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
this.enable = false;
|
|
196
|
+
this.floatingEl.style.display = 'none';
|
|
197
|
+
}
|
|
198
|
+
destroy() {
|
|
199
|
+
this.contentEl.remove();
|
|
200
|
+
this.arrowEl.remove();
|
|
201
|
+
this.floatingEl.remove();
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=Tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/Tooltip.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import type Cell from './Cell';
|
|
2
|
+
import type CellHeader from './CellHeader';
|
|
3
|
+
import type { RuleItem } from 'async-validator';
|
|
4
|
+
import Config from './Config';
|
|
5
|
+
export type EVirtTableOptions = {
|
|
6
|
+
data: any[];
|
|
7
|
+
footerData: any[];
|
|
8
|
+
columns: Column[];
|
|
9
|
+
config?: ConfigType;
|
|
10
|
+
};
|
|
11
|
+
export type EventCallback = (...args: any[]) => void;
|
|
12
|
+
export type ChangeItem = {
|
|
13
|
+
value: any;
|
|
14
|
+
key: string;
|
|
15
|
+
rowKey: string;
|
|
16
|
+
row: any;
|
|
17
|
+
};
|
|
18
|
+
export type OverflowTooltipPlacement = 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end' | 'bottom' | 'bottom-start' | 'bottom-end';
|
|
19
|
+
export type VerticalAlign = 'top' | 'middle' | 'bottom';
|
|
20
|
+
export type Align = 'left' | 'center' | 'right';
|
|
21
|
+
export type Fixed = 'left' | 'right';
|
|
22
|
+
export type Type = 'index' | 'selection' | 'index-selection' | 'tree';
|
|
23
|
+
export type TypeCheckbox = 'checkbox-uncheck' | 'checkbox-check' | 'checkbox-check-disabled' | 'checkbox-disabled' | 'checkbox-hover' | 'checkbox-indeterminate';
|
|
24
|
+
export type CellType = 'header' | 'body' | 'footer';
|
|
25
|
+
export type RowType = CellType;
|
|
26
|
+
export type MenuItem = {
|
|
27
|
+
label: string;
|
|
28
|
+
value: string | 'copy' | 'paste' | 'cut' | 'clearSelected';
|
|
29
|
+
children?: MenuItem[];
|
|
30
|
+
event?: Function;
|
|
31
|
+
};
|
|
32
|
+
export type OverlayerView = {
|
|
33
|
+
key: 'left' | 'center' | 'right';
|
|
34
|
+
style: any;
|
|
35
|
+
cells: Cell[] | CellHeader[];
|
|
36
|
+
};
|
|
37
|
+
export type OverlayerWrapper = {
|
|
38
|
+
type: 'body' | 'footer' | 'header';
|
|
39
|
+
class: string;
|
|
40
|
+
style: any;
|
|
41
|
+
views: OverlayerView[];
|
|
42
|
+
};
|
|
43
|
+
export type OverlayerContainer = {
|
|
44
|
+
style: any;
|
|
45
|
+
views: OverlayerWrapper[];
|
|
46
|
+
};
|
|
47
|
+
export type ContextmenuItem = {
|
|
48
|
+
label: string;
|
|
49
|
+
value: string | number;
|
|
50
|
+
render: Function;
|
|
51
|
+
};
|
|
52
|
+
export type Render = Function | string | undefined;
|
|
53
|
+
export interface KRuleItem extends RuleItem {
|
|
54
|
+
column?: Column;
|
|
55
|
+
row?: any;
|
|
56
|
+
rowIndex?: number;
|
|
57
|
+
colIndex?: number;
|
|
58
|
+
}
|
|
59
|
+
export type Rule = KRuleItem | KRuleItem[];
|
|
60
|
+
export type ValidateItemError = {
|
|
61
|
+
rowIndex: number;
|
|
62
|
+
key: string;
|
|
63
|
+
message: string;
|
|
64
|
+
};
|
|
65
|
+
export type Rules = {
|
|
66
|
+
[x: string]: Rule;
|
|
67
|
+
};
|
|
68
|
+
export type Position = {
|
|
69
|
+
height: number;
|
|
70
|
+
top: number;
|
|
71
|
+
bottom: number;
|
|
72
|
+
};
|
|
73
|
+
export interface Column {
|
|
74
|
+
type: Type;
|
|
75
|
+
editorType: string;
|
|
76
|
+
hoverIconName: string;
|
|
77
|
+
title: string;
|
|
78
|
+
width: number;
|
|
79
|
+
widthFillDisable: boolean;
|
|
80
|
+
align: Align;
|
|
81
|
+
verticalAlign: VerticalAlign;
|
|
82
|
+
fixed: Fixed;
|
|
83
|
+
level: number;
|
|
84
|
+
text: string;
|
|
85
|
+
colspan: number;
|
|
86
|
+
rowspan: number;
|
|
87
|
+
key: string;
|
|
88
|
+
render: Function;
|
|
89
|
+
renderFooter: Function;
|
|
90
|
+
renderHeader: Function;
|
|
91
|
+
formatter: FormatterMethod;
|
|
92
|
+
overflowTooltipShow: boolean;
|
|
93
|
+
overflowTooltipMaxWidth: number;
|
|
94
|
+
overflowTooltipPlacement: OverflowTooltipPlacement;
|
|
95
|
+
required: boolean;
|
|
96
|
+
readonly: boolean;
|
|
97
|
+
children: Column[];
|
|
98
|
+
column: Column;
|
|
99
|
+
rules: Rules;
|
|
100
|
+
options: any[];
|
|
101
|
+
}
|
|
102
|
+
export type OverlayerTooltip = {
|
|
103
|
+
style: any;
|
|
104
|
+
text: string;
|
|
105
|
+
show: boolean;
|
|
106
|
+
};
|
|
107
|
+
export type OverlayerContextmenu = {
|
|
108
|
+
style: any;
|
|
109
|
+
list: any[];
|
|
110
|
+
show: boolean;
|
|
111
|
+
};
|
|
112
|
+
export type CellStyleOptions = {
|
|
113
|
+
color?: string;
|
|
114
|
+
backgroundColor?: string;
|
|
115
|
+
};
|
|
116
|
+
export type CellParams = {
|
|
117
|
+
row: any;
|
|
118
|
+
rowIndex: number;
|
|
119
|
+
colIndex: number;
|
|
120
|
+
column: Column;
|
|
121
|
+
value: any;
|
|
122
|
+
};
|
|
123
|
+
export type CellHeaderParams = {
|
|
124
|
+
colIndex?: number;
|
|
125
|
+
column?: Column;
|
|
126
|
+
};
|
|
127
|
+
export type SpanType = {
|
|
128
|
+
rowspan: number;
|
|
129
|
+
colspan: number;
|
|
130
|
+
};
|
|
131
|
+
export type SpanParams = {
|
|
132
|
+
row: any;
|
|
133
|
+
rowIndex: number;
|
|
134
|
+
colIndex: number;
|
|
135
|
+
column: Column;
|
|
136
|
+
visibleLeafColumns: Column[];
|
|
137
|
+
value: any;
|
|
138
|
+
headIndex: number;
|
|
139
|
+
headPosition: Position;
|
|
140
|
+
visibleRows: any[];
|
|
141
|
+
rows: any[];
|
|
142
|
+
};
|
|
143
|
+
export type SelectableParams = {
|
|
144
|
+
row: any;
|
|
145
|
+
rowIndex: number;
|
|
146
|
+
};
|
|
147
|
+
export type ConfigType = Partial<Config>;
|
|
148
|
+
export type FilterMethod = (rows: any[]) => any[];
|
|
149
|
+
export type FormatterMethod = (params: CellParams) => string | void;
|
|
150
|
+
export type CellStyleMethod = (params: CellParams) => CellStyleOptions | void;
|
|
151
|
+
export type CellHeaderStyleMethod = (params: CellHeaderParams) => CellStyleOptions | void;
|
|
152
|
+
export type CellReadonlyMethod = (params: CellParams) => boolean | void;
|
|
153
|
+
export type CellRulesMethod = (params: CellParams) => Rules | void;
|
|
154
|
+
export type CellTypeMethod = (params: CellParams) => Type | void;
|
|
155
|
+
export type CellEditorTypeMethod = (params: CellParams) => string | void;
|
|
156
|
+
export type CellRenderMethod = (params: CellParams) => string | void;
|
|
157
|
+
export type CellHoverIconMethod = (params: CellParams) => string | void;
|
|
158
|
+
export type SpanMethod = (params: SpanParams) => SpanType | void;
|
|
159
|
+
export type SelectableMethod = (params: SelectableParams) => boolean | void;
|
|
160
|
+
export type ExpandLazyMethod = (params: CellParams) => Promise<any[]>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Column } from "./types";
|
|
2
|
+
declare function generateShortUUID(): string;
|
|
3
|
+
declare function throttle<T extends (...args: any) => any>(func: T, delay: number): T;
|
|
4
|
+
/**
|
|
5
|
+
* 根据children获取最大深度
|
|
6
|
+
* @param data
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
declare function getMaxRow(data: Column[]): number;
|
|
10
|
+
declare function sortFixed(arr?: Column[]): Column[];
|
|
11
|
+
declare function calCrossSpan(arr?: Column[], maxRow?: number, level?: number): Column[];
|
|
12
|
+
declare function toLeaf(arr?: Column[]): Column[];
|
|
13
|
+
type DebouncedFunction<F extends (...args: any[]) => any> = (...args: Parameters<F>) => void;
|
|
14
|
+
declare function debounce<F extends (...args: any[]) => any>(func: F, delay: number): DebouncedFunction<F>;
|
|
15
|
+
export { debounce, throttle, generateShortUUID, toLeaf, sortFixed, calCrossSpan, getMaxRow, };
|
package/dist/lib/util.js
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
function generateShortUUID() {
|
|
2
|
+
return "xxxxxxxxxxxxxxxxxx".replace(/[x]/g, function (c) {
|
|
3
|
+
const r = (Math.random() * 16) | 0;
|
|
4
|
+
const v = c === "x" ? r : (r & 0x3) | 0x8;
|
|
5
|
+
return v.toString(16);
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
function throttle(func, delay) {
|
|
9
|
+
let lastCalledTime = 0;
|
|
10
|
+
let timeoutId;
|
|
11
|
+
return function (...args) {
|
|
12
|
+
const now = new Date().getTime();
|
|
13
|
+
const elapsedTime = now - lastCalledTime;
|
|
14
|
+
if (!lastCalledTime || elapsedTime >= delay) {
|
|
15
|
+
func.apply(this, args);
|
|
16
|
+
lastCalledTime = now;
|
|
17
|
+
}
|
|
18
|
+
else if (!timeoutId) {
|
|
19
|
+
timeoutId = setTimeout(() => {
|
|
20
|
+
func.apply(this, args);
|
|
21
|
+
lastCalledTime = new Date().getTime();
|
|
22
|
+
timeoutId = undefined;
|
|
23
|
+
}, delay - elapsedTime);
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 根据children获取最大深度
|
|
30
|
+
* @param data
|
|
31
|
+
* @returns
|
|
32
|
+
*/
|
|
33
|
+
function getMaxRow(data) {
|
|
34
|
+
if (data) {
|
|
35
|
+
return data
|
|
36
|
+
.map((item) => getMaxRow(item.children) + 1)
|
|
37
|
+
.sort((a, b) => b - a)[0];
|
|
38
|
+
}
|
|
39
|
+
return 0;
|
|
40
|
+
}
|
|
41
|
+
function sortFixed(arr = []) {
|
|
42
|
+
let lefts = [];
|
|
43
|
+
let centers = [];
|
|
44
|
+
let right = [];
|
|
45
|
+
arr.forEach((item) => {
|
|
46
|
+
if (item.fixed === "left") {
|
|
47
|
+
lefts.push(item);
|
|
48
|
+
}
|
|
49
|
+
else if (item.fixed === "right") {
|
|
50
|
+
right.push(item);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
centers.push(item);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return [...lefts, ...centers, ...right];
|
|
57
|
+
}
|
|
58
|
+
function calCrossSpan(arr = [], maxRow = 1, level = 0) {
|
|
59
|
+
return arr.map((config) => {
|
|
60
|
+
if (config.children) {
|
|
61
|
+
let colspan = 0;
|
|
62
|
+
let fixed = config.fixed;
|
|
63
|
+
config.children.forEach((item) => {
|
|
64
|
+
item.fixed = fixed;
|
|
65
|
+
});
|
|
66
|
+
const children = calCrossSpan(config.children, maxRow - 1, level + 1);
|
|
67
|
+
if (children) {
|
|
68
|
+
children.forEach((item) => {
|
|
69
|
+
colspan += item.colspan;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
...config,
|
|
74
|
+
width: config.width,
|
|
75
|
+
level,
|
|
76
|
+
rowspan: 1,
|
|
77
|
+
colspan,
|
|
78
|
+
children,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
...config,
|
|
83
|
+
level,
|
|
84
|
+
rowspan: maxRow,
|
|
85
|
+
colspan: 1,
|
|
86
|
+
};
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function toLeaf(arr = []) {
|
|
90
|
+
let tmp = [];
|
|
91
|
+
arr.forEach((item) => {
|
|
92
|
+
if (item.children) {
|
|
93
|
+
tmp = tmp.concat(toLeaf(item.children));
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
tmp.push(item);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
return tmp;
|
|
100
|
+
}
|
|
101
|
+
function debounce(func, delay) {
|
|
102
|
+
let timeoutId = null;
|
|
103
|
+
return function (...args) {
|
|
104
|
+
if (timeoutId !== null) {
|
|
105
|
+
clearTimeout(timeoutId);
|
|
106
|
+
}
|
|
107
|
+
timeoutId = setTimeout(() => {
|
|
108
|
+
func(...args);
|
|
109
|
+
}, delay);
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export { debounce, throttle, generateShortUUID, toLeaf, sortFixed, calCrossSpan, getMaxRow, };
|
|
113
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "e-virt-table",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "0.0.3",
|
|
5
|
+
"description": "A powerful data table based on canvas. You can use it as data grid、Microsoft Excel or Google sheets. It supports virtual scroll、cell edit etc.",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.es.js",
|
|
8
|
+
"types": "dist/lib/index.d.ts",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"dev": "vite",
|
|
11
|
+
"dev:install": "cd docs && npm run i",
|
|
12
|
+
"dev:docs": "cd docs && npm run dev",
|
|
13
|
+
"build": "vite build && tsc",
|
|
14
|
+
"preview": "vite preview"
|
|
15
|
+
},
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"author": "laichuangwen",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/laichuangwen/e-virt-table/issues"
|
|
20
|
+
},
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git@github.com:laichuangwen/e-virt-table.git"
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"rollup-plugin-copy": "^3.5.0",
|
|
30
|
+
"typescript": "^5.5.3",
|
|
31
|
+
"vite": "^5.4.1"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@floating-ui/dom": "^1.6.11",
|
|
35
|
+
"async-validator": "^4.2.5"
|
|
36
|
+
}
|
|
37
|
+
}
|