x4js 1.4.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.
- package/lib/application.d.ts +95 -0
- package/lib/application.js +137 -0
- package/lib/base64.d.ts +31 -0
- package/lib/base64.js +135 -0
- package/lib/base_component.d.ts +64 -0
- package/lib/base_component.js +77 -0
- package/lib/button.d.ts +145 -0
- package/lib/button.js +235 -0
- package/lib/calendar.d.ts +77 -0
- package/lib/calendar.js +236 -0
- package/lib/canvas.d.ts +88 -0
- package/lib/canvas.js +354 -0
- package/lib/cardview.d.ts +83 -0
- package/lib/cardview.js +152 -0
- package/lib/checkbox.d.ts +72 -0
- package/lib/checkbox.js +126 -0
- package/lib/color.d.ts +144 -0
- package/lib/color.js +584 -0
- package/lib/colorpicker.d.ts +98 -0
- package/lib/colorpicker.js +1457 -0
- package/lib/combobox.d.ts +97 -0
- package/lib/combobox.js +246 -0
- package/lib/component.d.ts +572 -0
- package/lib/component.js +1712 -0
- package/lib/datastore.d.ts +392 -0
- package/lib/datastore.js +986 -0
- package/lib/dialog.d.ts +171 -0
- package/lib/dialog.js +468 -0
- package/lib/dom_events.d.ts +284 -0
- package/lib/dom_events.js +13 -0
- package/lib/drag_manager.d.ts +26 -0
- package/lib/drag_manager.js +118 -0
- package/lib/drawtext.d.ts +43 -0
- package/lib/drawtext.js +261 -0
- package/lib/fileupload.d.ts +60 -0
- package/lib/fileupload.js +158 -0
- package/lib/form.d.ts +122 -0
- package/lib/form.js +293 -0
- package/lib/formatters.d.ts +31 -0
- package/lib/formatters.js +75 -0
- package/lib/gridview.d.ts +171 -0
- package/lib/gridview.js +786 -0
- package/lib/hosts/host.d.ts +44 -0
- package/lib/hosts/host.js +69 -0
- package/lib/i18n.d.ts +67 -0
- package/lib/i18n.js +169 -0
- package/lib/icon.d.ts +56 -0
- package/lib/icon.js +173 -0
- package/lib/image.d.ts +51 -0
- package/lib/image.js +149 -0
- package/lib/index.js +1 -0
- package/lib/input.d.ts +86 -0
- package/lib/input.js +172 -0
- package/lib/label.d.ts +54 -0
- package/lib/label.js +86 -0
- package/lib/layout.d.ts +77 -0
- package/lib/layout.js +261 -0
- package/lib/link.d.ts +46 -0
- package/lib/link.js +55 -0
- package/lib/listview.d.ts +173 -0
- package/lib/listview.js +532 -0
- package/lib/md5.d.ts +56 -0
- package/lib/md5.js +397 -0
- package/lib/menu.d.ts +122 -0
- package/lib/menu.js +276 -0
- package/lib/messagebox.d.ts +64 -0
- package/lib/messagebox.js +141 -0
- package/lib/panel.d.ts +42 -0
- package/lib/panel.js +61 -0
- package/lib/popup.d.ts +71 -0
- package/lib/popup.js +373 -0
- package/lib/property_editor.d.ts +67 -0
- package/lib/property_editor.js +247 -0
- package/lib/radiobtn.d.ts +68 -0
- package/lib/radiobtn.js +131 -0
- package/lib/rating.d.ts +49 -0
- package/lib/rating.js +93 -0
- package/lib/request.d.ts +48 -0
- package/lib/request.js +220 -0
- package/lib/router.d.ts +13 -0
- package/lib/router.js +27 -0
- package/lib/settings.d.ts +33 -0
- package/lib/settings.js +63 -0
- package/lib/sidebarview.d.ts +44 -0
- package/lib/sidebarview.js +73 -0
- package/lib/smartedit.d.ts +103 -0
- package/lib/smartedit.js +381 -0
- package/lib/spreadsheet.d.ts +214 -0
- package/lib/spreadsheet.js +1073 -0
- package/lib/styles.d.ts +81 -0
- package/lib/styles.js +262 -0
- package/lib/svgcomponent.d.ts +165 -0
- package/lib/svgcomponent.js +350 -0
- package/lib/tabbar.d.ts +41 -0
- package/lib/tabbar.js +66 -0
- package/lib/tabview.d.ts +45 -0
- package/lib/tabview.js +79 -0
- package/lib/textarea.d.ts +59 -0
- package/lib/textarea.js +119 -0
- package/lib/textedit.d.ts +118 -0
- package/lib/textedit.js +406 -0
- package/lib/texthiliter.d.ts +56 -0
- package/lib/texthiliter.js +219 -0
- package/lib/toaster.d.ts +38 -0
- package/lib/toaster.js +58 -0
- package/lib/tools.d.ts +382 -0
- package/lib/tools.js +1096 -0
- package/lib/tooltips.d.ts +42 -0
- package/lib/tooltips.js +148 -0
- package/lib/treeview.d.ts +128 -0
- package/lib/treeview.js +490 -0
- package/lib/x4_events.d.ts +253 -0
- package/lib/x4_events.js +363 -0
- package/package.json +21 -0
- package/src/README.md +2 -0
- package/src/application.ts +191 -0
- package/src/base64.ts +162 -0
- package/src/base_component.ts +118 -0
- package/src/button.ts +327 -0
- package/src/calendar.ts +312 -0
- package/src/canvas.ts +501 -0
- package/src/cardview.ts +220 -0
- package/src/checkbox.ts +178 -0
- package/src/color.ts +748 -0
- package/src/colorpicker.ts +1618 -0
- package/src/combobox.ts +348 -0
- package/src/component.ts +2330 -0
- package/src/datastore.ts +1318 -0
- package/src/dialog.ts +631 -0
- package/src/dom_events.ts +297 -0
- package/src/drag_manager.ts +168 -0
- package/src/drawtext.ts +342 -0
- package/src/fileupload.ts +208 -0
- package/src/form.ts +362 -0
- package/src/formatters.ts +96 -0
- package/src/gridview.ts +1051 -0
- package/src/hosts/electron.ts +161 -0
- package/src/hosts/host.ts +100 -0
- package/src/hosts/nwjs.ts +141 -0
- package/src/hosts/nwjs_types.ts +339 -0
- package/src/i18n.ts +205 -0
- package/src/icon.ts +237 -0
- package/src/image.ts +198 -0
- package/src/input.ts +236 -0
- package/src/label.ts +124 -0
- package/src/layout.ts +366 -0
- package/src/link.ts +82 -0
- package/src/listview.ts +749 -0
- package/src/md5.ts +432 -0
- package/src/menu.ts +394 -0
- package/src/messagebox.ts +199 -0
- package/src/panel.ts +81 -0
- package/src/popup.ts +488 -0
- package/src/property_editor.ts +333 -0
- package/src/radiobtn.ts +190 -0
- package/src/rating.ts +131 -0
- package/src/request.ts +296 -0
- package/src/router.ts +43 -0
- package/src/settings.ts +75 -0
- package/src/sidebarview.ts +97 -0
- package/src/smartedit.ts +532 -0
- package/src/spreadsheet.ts +1423 -0
- package/src/styles.ts +332 -0
- package/src/svgcomponent.ts +440 -0
- package/src/tabbar.ts +105 -0
- package/src/tabview.ts +106 -0
- package/src/textarea.ts +183 -0
- package/src/textedit.ts +535 -0
- package/src/texthiliter.ts +284 -0
- package/src/toaster.ts +76 -0
- package/src/tools.ts +1391 -0
- package/src/tooltips.ts +185 -0
- package/src/treeview.ts +670 -0
- package/src/x4.less +1940 -0
- package/src/x4_events.ts +558 -0
- package/tsconfig.json +14 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ___ ___ __
|
|
3
|
+
* \ \_/ / / _
|
|
4
|
+
* \ / /_| |_
|
|
5
|
+
* / _ \____ _|
|
|
6
|
+
* /__/ \__\ |_|
|
|
7
|
+
*
|
|
8
|
+
* @file spreadsheet.ts
|
|
9
|
+
* @author Etienne Cochard
|
|
10
|
+
* @license
|
|
11
|
+
* Copyright (c) 2019-2021 R-libre ingenierie
|
|
12
|
+
*
|
|
13
|
+
* This program is free software; you can redistribute it and/or modify
|
|
14
|
+
* it under the terms of the GNU General Public License as published by
|
|
15
|
+
* the Free Software Foundation; either version 3 of the License, or
|
|
16
|
+
* (at your option) any later version.
|
|
17
|
+
*
|
|
18
|
+
* This program is distributed in the hope that it will be useful,
|
|
19
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
20
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
21
|
+
* GNU General Public License for more details.
|
|
22
|
+
*
|
|
23
|
+
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
24
|
+
**/
|
|
25
|
+
import { Component, EvDblClick, ContainerEventMap, ContainerProps } from './component';
|
|
26
|
+
import { InputProps } from './input';
|
|
27
|
+
import { VLayout } from './layout';
|
|
28
|
+
import * as Formatters from './formatters';
|
|
29
|
+
import { EvContextMenu, EvChange, EvSelectionChange, EventCallback } from './x4_events';
|
|
30
|
+
export interface EditorFactory {
|
|
31
|
+
(props: InputProps, row: number, col: number): Component;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
export interface ColProp {
|
|
37
|
+
title: string;
|
|
38
|
+
width: number;
|
|
39
|
+
formatter?: string;
|
|
40
|
+
align?: string;
|
|
41
|
+
cls?: string;
|
|
42
|
+
min_width?: number;
|
|
43
|
+
renderer?: Formatters.FormatFunc;
|
|
44
|
+
createEditor?: EditorFactory;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
*
|
|
48
|
+
*/
|
|
49
|
+
export interface SpreadsheetEventSet extends ContainerEventMap {
|
|
50
|
+
change?: EvChange;
|
|
51
|
+
dblClick?: EvDblClick;
|
|
52
|
+
selectionChange?: EvSelectionChange;
|
|
53
|
+
contextMenu?: EvContextMenu;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
*/
|
|
58
|
+
export interface SpreadsheetProps extends ContainerProps {
|
|
59
|
+
columns: ColProp[];
|
|
60
|
+
maxrows?: number;
|
|
61
|
+
autoedit?: boolean;
|
|
62
|
+
change?: EventCallback<EvChange>;
|
|
63
|
+
dblClick?: EventCallback<EvDblClick>;
|
|
64
|
+
selectionChange?: EventCallback<EvSelectionChange>;
|
|
65
|
+
contextMenu?: EventCallback<EvContextMenu>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
*/
|
|
70
|
+
export declare class Spreadsheet extends VLayout<SpreadsheetProps, SpreadsheetEventSet> {
|
|
71
|
+
private m_columns;
|
|
72
|
+
private m_row_limit;
|
|
73
|
+
private m_cells_data;
|
|
74
|
+
private m_rows_data;
|
|
75
|
+
protected m_view: Component;
|
|
76
|
+
protected m_container: Component;
|
|
77
|
+
protected m_header: Component;
|
|
78
|
+
private m_itemHeight;
|
|
79
|
+
private m_topIndex;
|
|
80
|
+
private m_visible_cells;
|
|
81
|
+
private m_row_count;
|
|
82
|
+
private m_selection;
|
|
83
|
+
private m_editor;
|
|
84
|
+
private m_autoedit;
|
|
85
|
+
private m_lockupdate;
|
|
86
|
+
private m_auto_row_count;
|
|
87
|
+
private m_recycler;
|
|
88
|
+
private m_used_cells;
|
|
89
|
+
constructor(props: SpreadsheetProps);
|
|
90
|
+
componentCreated(): void;
|
|
91
|
+
setColWidth(col: number, width: number): void;
|
|
92
|
+
getColWidth(col: number): number;
|
|
93
|
+
setColTitle(col: number, title: string): void;
|
|
94
|
+
reset(columns: ColProp[]): void;
|
|
95
|
+
/**
|
|
96
|
+
* insert a row
|
|
97
|
+
* @param before row number before wich insert the new row
|
|
98
|
+
*/
|
|
99
|
+
insertRow(before: number): void;
|
|
100
|
+
/**
|
|
101
|
+
* remove a row
|
|
102
|
+
* @param rowtodel row number to remove
|
|
103
|
+
*/
|
|
104
|
+
deleteRow(rowtodel: number): void;
|
|
105
|
+
/**
|
|
106
|
+
* insert a new column
|
|
107
|
+
* @param before column index before to insert the new column or <0 to append
|
|
108
|
+
*/
|
|
109
|
+
insertCol(before: number, column: ColProp): void;
|
|
110
|
+
/**
|
|
111
|
+
* remove a column
|
|
112
|
+
* @param coltodel
|
|
113
|
+
*/
|
|
114
|
+
deleteCol(coltodel: number): void;
|
|
115
|
+
/**
|
|
116
|
+
*
|
|
117
|
+
* @param row
|
|
118
|
+
* @param col
|
|
119
|
+
*/
|
|
120
|
+
private _getCellData;
|
|
121
|
+
private _focus;
|
|
122
|
+
private _ctxMenu;
|
|
123
|
+
/** @ignore */
|
|
124
|
+
render(): void;
|
|
125
|
+
/**
|
|
126
|
+
*
|
|
127
|
+
*/
|
|
128
|
+
private _on_col_resize;
|
|
129
|
+
/**
|
|
130
|
+
* compute misc dimensions
|
|
131
|
+
* - item height
|
|
132
|
+
* - scroll width
|
|
133
|
+
*/
|
|
134
|
+
private _computeItemHeight;
|
|
135
|
+
/**
|
|
136
|
+
* compute columns widths
|
|
137
|
+
* use col.width for fixed size columns
|
|
138
|
+
* if col.width < 0 that mean that this is a proportion of the remaining space
|
|
139
|
+
*/
|
|
140
|
+
private _calcColWidths;
|
|
141
|
+
/**
|
|
142
|
+
* create a cell (component)
|
|
143
|
+
* and append it to the parent view
|
|
144
|
+
* if a cell was reviously recyled, use it
|
|
145
|
+
*/
|
|
146
|
+
private _createCell;
|
|
147
|
+
/**
|
|
148
|
+
* build cells of the spreadsheet
|
|
149
|
+
* cells are recycled when scrolling,
|
|
150
|
+
* only visibles cells exists
|
|
151
|
+
*/
|
|
152
|
+
private _buildItems;
|
|
153
|
+
/** @ignore */
|
|
154
|
+
private _itemClick;
|
|
155
|
+
private _itemDblClick;
|
|
156
|
+
/**
|
|
157
|
+
*
|
|
158
|
+
* @param rowIdx
|
|
159
|
+
* @param colIdx
|
|
160
|
+
* @param scrollIntoView
|
|
161
|
+
*/
|
|
162
|
+
protected _selectItem(rowIdx: number, colIdx: number, scrollIntoView?: boolean): void;
|
|
163
|
+
private _scrollIntoView;
|
|
164
|
+
/**
|
|
165
|
+
*
|
|
166
|
+
* @param row
|
|
167
|
+
* @param col
|
|
168
|
+
*/
|
|
169
|
+
private _findItem;
|
|
170
|
+
/**
|
|
171
|
+
*
|
|
172
|
+
*/
|
|
173
|
+
private _updateScroll;
|
|
174
|
+
/**
|
|
175
|
+
*
|
|
176
|
+
* @param event
|
|
177
|
+
* @param t
|
|
178
|
+
*/
|
|
179
|
+
private _moveSel;
|
|
180
|
+
private _handleKey;
|
|
181
|
+
private _keyPress;
|
|
182
|
+
/**
|
|
183
|
+
* return the selection
|
|
184
|
+
* { row, col }
|
|
185
|
+
*/
|
|
186
|
+
getSelection(): {
|
|
187
|
+
row: number;
|
|
188
|
+
col: number;
|
|
189
|
+
};
|
|
190
|
+
select(row: number, col: number, scrollIntoView?: boolean): void;
|
|
191
|
+
/**
|
|
192
|
+
* return the row count
|
|
193
|
+
*/
|
|
194
|
+
rowCount(): number;
|
|
195
|
+
/**
|
|
196
|
+
* return the maximum row index filled with something
|
|
197
|
+
*/
|
|
198
|
+
getMaxRowCount(): number;
|
|
199
|
+
getColCount(): number;
|
|
200
|
+
setRowStyle(row: number, cls: string): void;
|
|
201
|
+
getRowStyle(row: number): string;
|
|
202
|
+
setCellStyle(row: number, col: number, cls: string): void;
|
|
203
|
+
getCellText(row: number, col: number): string;
|
|
204
|
+
getCellNumber(row: number, col: number): number;
|
|
205
|
+
clearRow(row: number): void;
|
|
206
|
+
clearCell(row: number, col: number): void;
|
|
207
|
+
editCurCell(forceText?: string): void;
|
|
208
|
+
editCell(row: number, col: number, forcedText?: string): void;
|
|
209
|
+
_setupEditor(): void;
|
|
210
|
+
killEditor(save: boolean): void;
|
|
211
|
+
clearData(): void;
|
|
212
|
+
setCellText(row: number, col: number, value: string): void;
|
|
213
|
+
lockUpdate(start: boolean): void;
|
|
214
|
+
}
|