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.
Files changed (176) hide show
  1. package/lib/application.d.ts +95 -0
  2. package/lib/application.js +137 -0
  3. package/lib/base64.d.ts +31 -0
  4. package/lib/base64.js +135 -0
  5. package/lib/base_component.d.ts +64 -0
  6. package/lib/base_component.js +77 -0
  7. package/lib/button.d.ts +145 -0
  8. package/lib/button.js +235 -0
  9. package/lib/calendar.d.ts +77 -0
  10. package/lib/calendar.js +236 -0
  11. package/lib/canvas.d.ts +88 -0
  12. package/lib/canvas.js +354 -0
  13. package/lib/cardview.d.ts +83 -0
  14. package/lib/cardview.js +152 -0
  15. package/lib/checkbox.d.ts +72 -0
  16. package/lib/checkbox.js +126 -0
  17. package/lib/color.d.ts +144 -0
  18. package/lib/color.js +584 -0
  19. package/lib/colorpicker.d.ts +98 -0
  20. package/lib/colorpicker.js +1457 -0
  21. package/lib/combobox.d.ts +97 -0
  22. package/lib/combobox.js +246 -0
  23. package/lib/component.d.ts +572 -0
  24. package/lib/component.js +1712 -0
  25. package/lib/datastore.d.ts +392 -0
  26. package/lib/datastore.js +986 -0
  27. package/lib/dialog.d.ts +171 -0
  28. package/lib/dialog.js +468 -0
  29. package/lib/dom_events.d.ts +284 -0
  30. package/lib/dom_events.js +13 -0
  31. package/lib/drag_manager.d.ts +26 -0
  32. package/lib/drag_manager.js +118 -0
  33. package/lib/drawtext.d.ts +43 -0
  34. package/lib/drawtext.js +261 -0
  35. package/lib/fileupload.d.ts +60 -0
  36. package/lib/fileupload.js +158 -0
  37. package/lib/form.d.ts +122 -0
  38. package/lib/form.js +293 -0
  39. package/lib/formatters.d.ts +31 -0
  40. package/lib/formatters.js +75 -0
  41. package/lib/gridview.d.ts +171 -0
  42. package/lib/gridview.js +786 -0
  43. package/lib/hosts/host.d.ts +44 -0
  44. package/lib/hosts/host.js +69 -0
  45. package/lib/i18n.d.ts +67 -0
  46. package/lib/i18n.js +169 -0
  47. package/lib/icon.d.ts +56 -0
  48. package/lib/icon.js +173 -0
  49. package/lib/image.d.ts +51 -0
  50. package/lib/image.js +149 -0
  51. package/lib/index.js +1 -0
  52. package/lib/input.d.ts +86 -0
  53. package/lib/input.js +172 -0
  54. package/lib/label.d.ts +54 -0
  55. package/lib/label.js +86 -0
  56. package/lib/layout.d.ts +77 -0
  57. package/lib/layout.js +261 -0
  58. package/lib/link.d.ts +46 -0
  59. package/lib/link.js +55 -0
  60. package/lib/listview.d.ts +173 -0
  61. package/lib/listview.js +532 -0
  62. package/lib/md5.d.ts +56 -0
  63. package/lib/md5.js +397 -0
  64. package/lib/menu.d.ts +122 -0
  65. package/lib/menu.js +276 -0
  66. package/lib/messagebox.d.ts +64 -0
  67. package/lib/messagebox.js +141 -0
  68. package/lib/panel.d.ts +42 -0
  69. package/lib/panel.js +61 -0
  70. package/lib/popup.d.ts +71 -0
  71. package/lib/popup.js +373 -0
  72. package/lib/property_editor.d.ts +67 -0
  73. package/lib/property_editor.js +247 -0
  74. package/lib/radiobtn.d.ts +68 -0
  75. package/lib/radiobtn.js +131 -0
  76. package/lib/rating.d.ts +49 -0
  77. package/lib/rating.js +93 -0
  78. package/lib/request.d.ts +48 -0
  79. package/lib/request.js +220 -0
  80. package/lib/router.d.ts +13 -0
  81. package/lib/router.js +27 -0
  82. package/lib/settings.d.ts +33 -0
  83. package/lib/settings.js +63 -0
  84. package/lib/sidebarview.d.ts +44 -0
  85. package/lib/sidebarview.js +73 -0
  86. package/lib/smartedit.d.ts +103 -0
  87. package/lib/smartedit.js +381 -0
  88. package/lib/spreadsheet.d.ts +214 -0
  89. package/lib/spreadsheet.js +1073 -0
  90. package/lib/styles.d.ts +81 -0
  91. package/lib/styles.js +262 -0
  92. package/lib/svgcomponent.d.ts +165 -0
  93. package/lib/svgcomponent.js +350 -0
  94. package/lib/tabbar.d.ts +41 -0
  95. package/lib/tabbar.js +66 -0
  96. package/lib/tabview.d.ts +45 -0
  97. package/lib/tabview.js +79 -0
  98. package/lib/textarea.d.ts +59 -0
  99. package/lib/textarea.js +119 -0
  100. package/lib/textedit.d.ts +118 -0
  101. package/lib/textedit.js +406 -0
  102. package/lib/texthiliter.d.ts +56 -0
  103. package/lib/texthiliter.js +219 -0
  104. package/lib/toaster.d.ts +38 -0
  105. package/lib/toaster.js +58 -0
  106. package/lib/tools.d.ts +382 -0
  107. package/lib/tools.js +1096 -0
  108. package/lib/tooltips.d.ts +42 -0
  109. package/lib/tooltips.js +148 -0
  110. package/lib/treeview.d.ts +128 -0
  111. package/lib/treeview.js +490 -0
  112. package/lib/x4_events.d.ts +253 -0
  113. package/lib/x4_events.js +363 -0
  114. package/package.json +21 -0
  115. package/src/README.md +2 -0
  116. package/src/application.ts +191 -0
  117. package/src/base64.ts +162 -0
  118. package/src/base_component.ts +118 -0
  119. package/src/button.ts +327 -0
  120. package/src/calendar.ts +312 -0
  121. package/src/canvas.ts +501 -0
  122. package/src/cardview.ts +220 -0
  123. package/src/checkbox.ts +178 -0
  124. package/src/color.ts +748 -0
  125. package/src/colorpicker.ts +1618 -0
  126. package/src/combobox.ts +348 -0
  127. package/src/component.ts +2330 -0
  128. package/src/datastore.ts +1318 -0
  129. package/src/dialog.ts +631 -0
  130. package/src/dom_events.ts +297 -0
  131. package/src/drag_manager.ts +168 -0
  132. package/src/drawtext.ts +342 -0
  133. package/src/fileupload.ts +208 -0
  134. package/src/form.ts +362 -0
  135. package/src/formatters.ts +96 -0
  136. package/src/gridview.ts +1051 -0
  137. package/src/hosts/electron.ts +161 -0
  138. package/src/hosts/host.ts +100 -0
  139. package/src/hosts/nwjs.ts +141 -0
  140. package/src/hosts/nwjs_types.ts +339 -0
  141. package/src/i18n.ts +205 -0
  142. package/src/icon.ts +237 -0
  143. package/src/image.ts +198 -0
  144. package/src/input.ts +236 -0
  145. package/src/label.ts +124 -0
  146. package/src/layout.ts +366 -0
  147. package/src/link.ts +82 -0
  148. package/src/listview.ts +749 -0
  149. package/src/md5.ts +432 -0
  150. package/src/menu.ts +394 -0
  151. package/src/messagebox.ts +199 -0
  152. package/src/panel.ts +81 -0
  153. package/src/popup.ts +488 -0
  154. package/src/property_editor.ts +333 -0
  155. package/src/radiobtn.ts +190 -0
  156. package/src/rating.ts +131 -0
  157. package/src/request.ts +296 -0
  158. package/src/router.ts +43 -0
  159. package/src/settings.ts +75 -0
  160. package/src/sidebarview.ts +97 -0
  161. package/src/smartedit.ts +532 -0
  162. package/src/spreadsheet.ts +1423 -0
  163. package/src/styles.ts +332 -0
  164. package/src/svgcomponent.ts +440 -0
  165. package/src/tabbar.ts +105 -0
  166. package/src/tabview.ts +106 -0
  167. package/src/textarea.ts +183 -0
  168. package/src/textedit.ts +535 -0
  169. package/src/texthiliter.ts +284 -0
  170. package/src/toaster.ts +76 -0
  171. package/src/tools.ts +1391 -0
  172. package/src/tooltips.ts +185 -0
  173. package/src/treeview.ts +670 -0
  174. package/src/x4.less +1940 -0
  175. package/src/x4_events.ts +558 -0
  176. 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
+ }