x4js 1.4.53 → 1.5.1

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 (187) hide show
  1. package/lib/cjs/action.d.ts +57 -0
  2. package/lib/cjs/application.d.ts +104 -0
  3. package/lib/cjs/application.js +6 -6
  4. package/lib/cjs/autocomplete.d.ts +58 -0
  5. package/lib/cjs/base_component.d.ts +88 -0
  6. package/lib/cjs/button.d.ts +151 -0
  7. package/lib/cjs/calendar.d.ts +81 -0
  8. package/lib/cjs/canvas.d.ts +92 -0
  9. package/lib/cjs/cardview.d.ts +87 -0
  10. package/lib/cjs/checkbox.d.ts +77 -0
  11. package/lib/cjs/color.d.ts +148 -0
  12. package/lib/cjs/colorpicker.d.ts +107 -0
  13. package/lib/cjs/combobox.d.ts +101 -0
  14. package/lib/cjs/component.d.ts +601 -0
  15. package/lib/cjs/datastore.d.ts +396 -0
  16. package/lib/cjs/dialog.d.ts +175 -0
  17. package/lib/cjs/dom_events.d.ts +302 -0
  18. package/lib/cjs/drag_manager.d.ts +54 -0
  19. package/lib/cjs/drawtext.d.ts +48 -0
  20. package/lib/cjs/fileupload.d.ts +64 -0
  21. package/lib/cjs/form.d.ts +126 -0
  22. package/lib/cjs/formatters.d.ts +35 -0
  23. package/lib/cjs/gridview.d.ts +175 -0
  24. package/lib/cjs/i18n.d.ts +73 -0
  25. package/lib/cjs/icon.d.ts +64 -0
  26. package/lib/cjs/icon.js +5 -0
  27. package/lib/cjs/image.d.ts +55 -0
  28. package/lib/cjs/index.d.ts +83 -0
  29. package/lib/cjs/input.d.ts +91 -0
  30. package/lib/cjs/label.d.ts +58 -0
  31. package/lib/cjs/layout.d.ts +87 -0
  32. package/lib/cjs/link.d.ts +50 -0
  33. package/lib/cjs/listview.d.ts +178 -0
  34. package/lib/cjs/md5.d.ts +61 -0
  35. package/lib/cjs/md5.js +7 -7
  36. package/lib/cjs/menu.d.ts +130 -0
  37. package/lib/cjs/messagebox.d.ts +68 -0
  38. package/lib/cjs/panel.d.ts +47 -0
  39. package/lib/cjs/popup.d.ts +75 -0
  40. package/lib/cjs/property_editor.d.ts +71 -0
  41. package/lib/cjs/radiobtn.d.ts +72 -0
  42. package/lib/cjs/rating.d.ts +53 -0
  43. package/lib/cjs/request.d.ts +52 -0
  44. package/lib/cjs/router.d.ts +42 -0
  45. package/lib/cjs/settings.d.ts +37 -0
  46. package/lib/cjs/sidebarview.d.ts +49 -0
  47. package/lib/cjs/spreadsheet.d.ts +218 -0
  48. package/lib/cjs/styles.d.ts +85 -0
  49. package/lib/cjs/svgcomponent.d.ts +191 -0
  50. package/lib/cjs/tabbar.d.ts +58 -0
  51. package/lib/cjs/tabview.d.ts +49 -0
  52. package/lib/cjs/textarea.d.ts +63 -0
  53. package/lib/cjs/textedit.d.ts +123 -0
  54. package/lib/cjs/toaster.d.ts +42 -0
  55. package/lib/cjs/tools.d.ts +394 -0
  56. package/lib/cjs/tools.js +8 -5
  57. package/lib/cjs/tooltips.d.ts +46 -0
  58. package/lib/cjs/treeview.d.ts +132 -0
  59. package/lib/cjs/version.d.ts +29 -0
  60. package/lib/cjs/x4dom.d.ts +49 -0
  61. package/lib/cjs/x4events.d.ts +269 -0
  62. package/lib/cjs/x4react.d.ts +41 -0
  63. package/lib/esm/action.d.ts +57 -0
  64. package/lib/esm/application.d.ts +104 -0
  65. package/lib/esm/autocomplete.d.ts +58 -0
  66. package/lib/esm/base_component.d.ts +88 -0
  67. package/lib/esm/button.d.ts +151 -0
  68. package/lib/esm/calendar.d.ts +81 -0
  69. package/lib/esm/canvas.d.ts +92 -0
  70. package/lib/esm/cardview.d.ts +87 -0
  71. package/lib/esm/checkbox.d.ts +77 -0
  72. package/lib/esm/color.d.ts +148 -0
  73. package/lib/esm/colorpicker.d.ts +107 -0
  74. package/lib/esm/combobox.d.ts +101 -0
  75. package/lib/esm/component.d.ts +601 -0
  76. package/lib/esm/datastore.d.ts +396 -0
  77. package/lib/esm/dialog.d.ts +175 -0
  78. package/lib/esm/dom_events.d.ts +302 -0
  79. package/lib/esm/drag_manager.d.ts +54 -0
  80. package/lib/esm/drawtext.d.ts +48 -0
  81. package/lib/esm/fileupload.d.ts +64 -0
  82. package/lib/esm/form.d.ts +126 -0
  83. package/lib/esm/formatters.d.ts +35 -0
  84. package/lib/esm/gridview.d.ts +175 -0
  85. package/lib/esm/i18n.d.ts +73 -0
  86. package/lib/esm/icon.d.ts +64 -0
  87. package/lib/esm/icon.js +5 -0
  88. package/lib/esm/image.d.ts +55 -0
  89. package/lib/esm/index.d.ts +83 -0
  90. package/lib/esm/input.d.ts +91 -0
  91. package/lib/esm/label.d.ts +58 -0
  92. package/lib/esm/layout.d.ts +87 -0
  93. package/lib/esm/link.d.ts +50 -0
  94. package/lib/esm/listview.d.ts +178 -0
  95. package/lib/esm/md5.d.ts +61 -0
  96. package/lib/esm/menu.d.ts +130 -0
  97. package/lib/esm/messagebox.d.ts +68 -0
  98. package/lib/esm/panel.d.ts +47 -0
  99. package/lib/esm/popup.d.ts +75 -0
  100. package/lib/esm/property_editor.d.ts +71 -0
  101. package/lib/esm/radiobtn.d.ts +72 -0
  102. package/lib/esm/rating.d.ts +53 -0
  103. package/lib/esm/request.d.ts +52 -0
  104. package/lib/esm/router.d.ts +42 -0
  105. package/lib/esm/settings.d.ts +37 -0
  106. package/lib/esm/sidebarview.d.ts +49 -0
  107. package/lib/esm/spreadsheet.d.ts +218 -0
  108. package/lib/esm/styles.d.ts +85 -0
  109. package/lib/esm/svgcomponent.d.ts +191 -0
  110. package/lib/esm/tabbar.d.ts +58 -0
  111. package/lib/esm/tabview.d.ts +49 -0
  112. package/lib/esm/textarea.d.ts +63 -0
  113. package/lib/esm/textedit.d.ts +123 -0
  114. package/lib/esm/toaster.d.ts +42 -0
  115. package/lib/esm/tools.d.ts +394 -0
  116. package/lib/esm/tools.js +8 -5
  117. package/lib/esm/tooltips.d.ts +46 -0
  118. package/lib/esm/treeview.d.ts +132 -0
  119. package/lib/esm/version.d.ts +29 -0
  120. package/lib/esm/x4dom.d.ts +49 -0
  121. package/lib/esm/x4events.d.ts +269 -0
  122. package/lib/esm/x4react.d.ts +41 -0
  123. package/lib/styles/x4.css +5 -3
  124. package/lib/styles/x4.less +5 -3
  125. package/lib/ts_src/MIT-license.md +14 -0
  126. package/lib/ts_src/action.ts +88 -0
  127. package/lib/ts_src/alpha.jpg +0 -0
  128. package/lib/ts_src/application.ts +251 -0
  129. package/lib/ts_src/autocomplete.ts +197 -0
  130. package/lib/ts_src/base64.ts +166 -0
  131. package/lib/ts_src/base_component.ts +152 -0
  132. package/lib/ts_src/button.ts +355 -0
  133. package/lib/ts_src/calendar.ts +322 -0
  134. package/lib/ts_src/canvas.ts +505 -0
  135. package/lib/ts_src/cardview.ts +227 -0
  136. package/lib/ts_src/checkbox.ts +187 -0
  137. package/lib/ts_src/color.ts +752 -0
  138. package/lib/ts_src/colorpicker.ts +1639 -0
  139. package/lib/ts_src/combobox.ts +362 -0
  140. package/lib/ts_src/component.ts +2329 -0
  141. package/lib/ts_src/datastore.ts +1322 -0
  142. package/lib/ts_src/dialog.ts +656 -0
  143. package/lib/ts_src/dom_events.ts +315 -0
  144. package/lib/ts_src/drag_manager.ts +199 -0
  145. package/lib/ts_src/drawtext.ts +355 -0
  146. package/lib/ts_src/fileupload.ts +213 -0
  147. package/lib/ts_src/form.ts +366 -0
  148. package/lib/ts_src/formatters.ts +105 -0
  149. package/lib/ts_src/gridview.ts +1185 -0
  150. package/lib/ts_src/i18n.ts +346 -0
  151. package/lib/ts_src/icon.ts +335 -0
  152. package/lib/ts_src/image.ts +204 -0
  153. package/lib/ts_src/index.ts +88 -0
  154. package/lib/ts_src/input.ts +249 -0
  155. package/lib/ts_src/label.ts +128 -0
  156. package/lib/ts_src/layout.ts +430 -0
  157. package/lib/ts_src/link.ts +86 -0
  158. package/lib/ts_src/listview.ts +762 -0
  159. package/lib/ts_src/md5.ts +438 -0
  160. package/lib/ts_src/menu.ts +425 -0
  161. package/lib/ts_src/messagebox.ts +203 -0
  162. package/lib/ts_src/panel.ts +86 -0
  163. package/lib/ts_src/popup.ts +494 -0
  164. package/lib/ts_src/property_editor.ts +337 -0
  165. package/lib/ts_src/radiobtn.ts +196 -0
  166. package/lib/ts_src/rating.ts +135 -0
  167. package/lib/ts_src/request.ts +300 -0
  168. package/lib/ts_src/router.ts +185 -0
  169. package/lib/ts_src/settings.ts +77 -0
  170. package/lib/ts_src/sidebarview.ts +103 -0
  171. package/lib/ts_src/spreadsheet.ts +1442 -0
  172. package/lib/ts_src/styles.ts +343 -0
  173. package/lib/ts_src/svgcomponent.ts +537 -0
  174. package/lib/ts_src/tabbar.ts +151 -0
  175. package/lib/ts_src/tabview.ts +110 -0
  176. package/lib/ts_src/textarea.ts +187 -0
  177. package/lib/ts_src/textedit.ts +544 -0
  178. package/lib/ts_src/toaster.ts +80 -0
  179. package/lib/ts_src/tools.ts +1473 -0
  180. package/lib/ts_src/tooltips.ts +191 -0
  181. package/lib/ts_src/treeview.ts +675 -0
  182. package/lib/ts_src/version.ts +30 -0
  183. package/lib/ts_src/x4.less +2238 -0
  184. package/lib/ts_src/x4dom.ts +57 -0
  185. package/lib/ts_src/x4events.ts +585 -0
  186. package/lib/ts_src/x4react.ts +90 -0
  187. package/package.json +3 -2
@@ -0,0 +1,71 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file propertyeditor.ts
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
29
+ import { CEventMap, Component, CProps } from './component';
30
+ import { EvChange, EventCallback } from './x4events';
31
+ import { InputProps } from './input';
32
+ import { Spreadsheet } from './spreadsheet';
33
+ import { Record } from './datastore';
34
+ export interface SaveCallback {
35
+ (id: any, record: any[]): void;
36
+ }
37
+ export type IPropertyField = {
38
+ id: any;
39
+ title: string;
40
+ type: Function | "string" | 'number' | 'boolean' | 'choice' | 'password' | 'button' | 'color';
41
+ value?: any;
42
+ data?: any;
43
+ editorProps?: InputProps;
44
+ readOnly?: boolean;
45
+ };
46
+ interface PropertyEditorEventMap extends CEventMap {
47
+ change: EvChange;
48
+ }
49
+ export interface PropertyEditorProps extends CProps<PropertyEditorEventMap> {
50
+ fields: IPropertyField[];
51
+ labelWidth?: number;
52
+ record?: Record;
53
+ change: EventCallback<EvChange>;
54
+ }
55
+ export declare class PropertyEditor extends Component<PropertyEditorProps, PropertyEditorEventMap> {
56
+ m_fields: IPropertyField[];
57
+ m_record: Record;
58
+ m_sheet: Spreadsheet;
59
+ m_label_w: number;
60
+ constructor(props: PropertyEditorProps);
61
+ render(props: PropertyEditorProps): void;
62
+ setFields(fields: IPropertyField[]): void;
63
+ setRecord(record: Record): void;
64
+ private _updateProperties;
65
+ private _cellChange;
66
+ _renderCell(text: any, rec: any): any;
67
+ _editCell(props: any, row: number, col: number): Component<CProps<CEventMap>, CEventMap>;
68
+ private _choicesFromArray;
69
+ private _choicesFromStore;
70
+ }
71
+ export {};
@@ -0,0 +1,72 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file radiobtn.ts
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
29
+ import { Component, CProps, CEventMap } from './component';
30
+ import { EvChange, EventCallback } from './x4events';
31
+ import { IconID } from './icon';
32
+ import { Input } from './input';
33
+ interface RadioBtnEventMap extends CEventMap {
34
+ change?: EvChange;
35
+ }
36
+ export interface RadioBtnProps extends CProps {
37
+ group: string;
38
+ value: string;
39
+ tabIndex?: number | boolean;
40
+ name?: string;
41
+ icon?: IconID;
42
+ text?: string;
43
+ checked?: boolean;
44
+ labelWidth?: number | 'flex';
45
+ align?: 'left' | 'right';
46
+ change?: EventCallback<EvChange>;
47
+ }
48
+ /**
49
+ * Standard RadioBtn
50
+ */
51
+ export declare class RadioBtn extends Component<RadioBtnProps, RadioBtnEventMap> {
52
+ protected m_ui_input: Input;
53
+ constructor(props: RadioBtnProps);
54
+ /** @ignore */
55
+ render(props: RadioBtnProps): void;
56
+ /**
57
+ * check state changed
58
+ */
59
+ private _change;
60
+ /**
61
+ * @return the checked value
62
+ */
63
+ get check(): boolean;
64
+ /**
65
+ * change the checked value
66
+ * @param {boolean} ck new checked value
67
+ */
68
+ set check(ck: boolean);
69
+ get text(): string | import("./tools").HtmlString;
70
+ set text(text: string | import("./tools").HtmlString);
71
+ }
72
+ export {};
@@ -0,0 +1,53 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file rating.ts
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
29
+ import { CProps, ContainerEventMap } from './component';
30
+ import { HLayout } from './layout';
31
+ import { EvChange, EventCallback } from './x4events';
32
+ interface RatingEventMap extends ContainerEventMap {
33
+ change: EvChange;
34
+ }
35
+ export interface RatingProps extends CProps<RatingEventMap> {
36
+ steps?: number;
37
+ value?: number;
38
+ shape?: string;
39
+ name?: string;
40
+ change?: EventCallback<EvChange>;
41
+ }
42
+ export declare class Rating extends HLayout<RatingProps, RatingEventMap> {
43
+ private m_els;
44
+ private m_input;
45
+ constructor(props: RatingProps);
46
+ render(props: RatingProps): void;
47
+ getValue(): number;
48
+ set value(v: number);
49
+ set steps(n: number);
50
+ set shape(shape: string);
51
+ private _onclick;
52
+ }
53
+ export {};
@@ -0,0 +1,52 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file request.ts
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
29
+ export interface RequestProps {
30
+ url: string;
31
+ method?: 'GET' | 'POST';
32
+ headers?: string[];
33
+ params?: any;
34
+ timeout?: number;
35
+ responseType?: 'text' | 'json' | 'arraybuffer';
36
+ userData?: any;
37
+ success: (data: any, userData: any) => void;
38
+ failure?: (status: number, statusText: string, userData: any) => void;
39
+ progress?: (length: number, total: number, display: string) => void;
40
+ }
41
+ export declare function ajaxRequest(cfg: RequestProps): Function;
42
+ interface AjaxRequestInit extends Omit<RequestInit, 'body'> {
43
+ body?: BodyInit | null | object;
44
+ noGenX?: boolean;
45
+ }
46
+ export declare function ajaxAsJSON(url: string, init?: AjaxRequestInit): Promise<any>;
47
+ export declare function ajaxAsText(url: string, init?: AjaxRequestInit): Promise<any>;
48
+ /**
49
+ * use encodeURIComponent for elements in url
50
+ */
51
+ export declare function ajax(url: string, init?: AjaxRequestInit, type?: string): Promise<Response>;
52
+ export {};
@@ -0,0 +1,42 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file router.ts
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
29
+ import { EventSource, EvError, EventMap } from "./x4events";
30
+ type RouteHandler = (params: any, path: string) => void;
31
+ interface RouterEventMap extends EventMap {
32
+ error: EvError;
33
+ }
34
+ export declare class Router extends EventSource<RouterEventMap> {
35
+ private routes;
36
+ constructor();
37
+ get(uri: string | RegExp, handler: RouteHandler): void;
38
+ init(): void;
39
+ navigate(uri: string, notify?: boolean): void;
40
+ private _find;
41
+ }
42
+ export {};
@@ -0,0 +1,37 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file local_storage.ts
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
29
+ export declare class Settings {
30
+ private m_data;
31
+ private m_name;
32
+ constructor(name?: string);
33
+ set(name: string, value: any): void;
34
+ get(name: string, defValue?: any): any;
35
+ private _save;
36
+ private _load;
37
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file sidebarview.ts
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
29
+ import { Component } from './component';
30
+ import { VLayout } from './layout';
31
+ import { CardView, CardViewProps, ICardViewItem } from './cardview';
32
+ export interface SideBarItem extends ICardViewItem {
33
+ }
34
+ export interface SideBarProps extends CardViewProps {
35
+ bar_sizable?: boolean;
36
+ bar_width?: number;
37
+ }
38
+ /**
39
+ *
40
+ */
41
+ export declare class SideBarView extends CardView<SideBarProps> {
42
+ m_sidebar: VLayout;
43
+ m_content: Component;
44
+ constructor(props: SideBarProps);
45
+ /** @ignore */
46
+ render(): void;
47
+ protected _prepareSelector(card: ICardViewItem): Component;
48
+ protected _preparePage(page: Component): void;
49
+ }
@@ -0,0 +1,218 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file spreadsheet.ts
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
29
+ import { Component, EvDblClick, ContainerEventMap, ContainerProps } from './component';
30
+ import { InputProps } from './input';
31
+ import { VLayout } from './layout';
32
+ import * as Formatters from './formatters';
33
+ import { EvContextMenu, EvChange, EvSelectionChange, EventCallback } from './x4events';
34
+ export interface EditorFactory {
35
+ (props: InputProps, row: number, col: number): Component;
36
+ }
37
+ /**
38
+ *
39
+ */
40
+ export interface ColProp {
41
+ title: string;
42
+ width: number;
43
+ formatter?: string;
44
+ align?: string;
45
+ cls?: string;
46
+ min_width?: number;
47
+ renderer?: Formatters.FormatFunc;
48
+ createEditor?: EditorFactory;
49
+ }
50
+ /**
51
+ *
52
+ */
53
+ export interface SpreadsheetEventSet extends ContainerEventMap {
54
+ change?: EvChange;
55
+ dblClick?: EvDblClick;
56
+ selectionChange?: EvSelectionChange;
57
+ contextMenu?: EvContextMenu;
58
+ }
59
+ /**
60
+ *
61
+ */
62
+ export interface SpreadsheetProps extends ContainerProps {
63
+ columns: ColProp[];
64
+ maxrows?: number;
65
+ autoedit?: boolean;
66
+ change?: EventCallback<EvChange>;
67
+ dblClick?: EventCallback<EvDblClick>;
68
+ selectionChange?: EventCallback<EvSelectionChange>;
69
+ contextMenu?: EventCallback<EvContextMenu>;
70
+ }
71
+ /**
72
+ *
73
+ */
74
+ export declare class Spreadsheet extends VLayout<SpreadsheetProps, SpreadsheetEventSet> {
75
+ private m_columns;
76
+ private m_row_limit;
77
+ private m_cells_data;
78
+ private m_rows_data;
79
+ protected m_view: Component;
80
+ protected m_container: Component;
81
+ protected m_header: Component;
82
+ private m_itemHeight;
83
+ private m_topIndex;
84
+ private m_visible_cells;
85
+ private m_row_count;
86
+ private m_selection;
87
+ private m_editor;
88
+ private m_autoedit;
89
+ private m_lockupdate;
90
+ private m_auto_row_count;
91
+ private m_recycler;
92
+ private m_used_cells;
93
+ constructor(props: SpreadsheetProps);
94
+ componentCreated(): void;
95
+ setColWidth(col: number, width: number): void;
96
+ getColWidth(col: number): number;
97
+ setColTitle(col: number, title: string): void;
98
+ reset(columns: ColProp[]): void;
99
+ /**
100
+ * insert a row
101
+ * @param before row number before wich insert the new row
102
+ */
103
+ insertRow(before: number): void;
104
+ /**
105
+ * remove a row
106
+ * @param rowtodel row number to remove
107
+ */
108
+ deleteRow(rowtodel: number): void;
109
+ /**
110
+ * insert a new column
111
+ * @param before column index before to insert the new column or <0 to append
112
+ */
113
+ insertCol(before: number, column: ColProp): void;
114
+ /**
115
+ * remove a column
116
+ * @param coltodel
117
+ */
118
+ deleteCol(coltodel: number): void;
119
+ /**
120
+ *
121
+ * @param row
122
+ * @param col
123
+ */
124
+ private _getCellData;
125
+ private _focus;
126
+ private _ctxMenu;
127
+ /** @ignore */
128
+ render(): void;
129
+ /**
130
+ *
131
+ */
132
+ private _on_col_resize;
133
+ /**
134
+ * compute misc dimensions
135
+ * - item height
136
+ * - scroll width
137
+ */
138
+ private _computeItemHeight;
139
+ /**
140
+ * compute columns widths
141
+ * use col.width for fixed size columns
142
+ * if col.width < 0 that mean that this is a proportion of the remaining space
143
+ */
144
+ private _calcColWidths;
145
+ /**
146
+ * create a cell (component)
147
+ * and append it to the parent view
148
+ * if a cell was reviously recyled, use it
149
+ */
150
+ private _createCell;
151
+ /**
152
+ * build cells of the spreadsheet
153
+ * cells are recycled when scrolling,
154
+ * only visibles cells exists
155
+ */
156
+ private _buildItems;
157
+ /** @ignore */
158
+ private _itemClick;
159
+ private _itemDblClick;
160
+ /**
161
+ *
162
+ * @param rowIdx
163
+ * @param colIdx
164
+ * @param scrollIntoView
165
+ */
166
+ protected _selectItem(rowIdx: number, colIdx: number, scrollIntoView?: boolean): void;
167
+ private _scrollIntoView;
168
+ /**
169
+ *
170
+ * @param row
171
+ * @param col
172
+ */
173
+ private _findItem;
174
+ /**
175
+ *
176
+ */
177
+ private _updateScroll;
178
+ /**
179
+ *
180
+ * @param event
181
+ * @param t
182
+ */
183
+ private _moveSel;
184
+ private _handleKey;
185
+ private _keyPress;
186
+ /**
187
+ * return the selection
188
+ * { row, col }
189
+ */
190
+ getSelection(): {
191
+ row: number;
192
+ col: number;
193
+ };
194
+ select(row: number, col: number, scrollIntoView?: boolean): void;
195
+ /**
196
+ * return the row count
197
+ */
198
+ rowCount(): number;
199
+ /**
200
+ * return the maximum row index filled with something
201
+ */
202
+ getMaxRowCount(): number;
203
+ getColCount(): number;
204
+ setRowStyle(row: number, cls: string): void;
205
+ getRowStyle(row: number): string;
206
+ setCellStyle(row: number, col: number, cls: string): void;
207
+ getCellText(row: number, col: number): string;
208
+ getCellNumber(row: number, col: number): number;
209
+ clearRow(row: number): void;
210
+ clearCell(row: number, col: number): void;
211
+ editCurCell(forceText?: string): void;
212
+ editCell(row: number, col: number, forcedText?: string): void;
213
+ _setupEditor(): void;
214
+ killEditor(save: boolean): void;
215
+ clearData(): void;
216
+ setCellText(row: number, col: number, value: string): void;
217
+ lockUpdate(start: boolean): void;
218
+ }
@@ -0,0 +1,85 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \_/ / / _
4
+ * \ / /_| |_
5
+ * / _ \____ _|
6
+ * /__/ \__\ |_|
7
+ *
8
+ * @file styles.ts
9
+ * @author Etienne Cochard
10
+ *
11
+ * Copyright (c) 2019-2022 R-libre ingenierie
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ * of this software and associated documentation files (the "Software"), to deal
15
+ * in the Software without restriction, including without limitation the rights
16
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
17
+ * of the Software, and to permit persons to whom the Software is furnished to do so,
18
+ * subject to the following conditions:
19
+ * The above copyright notice and this permission notice shall be included in all copies
20
+ * or substantial portions of the Software.
21
+ *
22
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
23
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
24
+ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
25
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ **/
29
+ /**
30
+ * -- [ @STYLESHEET ] -----------------------------------------------------------------
31
+ */
32
+ export declare class Stylesheet {
33
+ private m_sheet;
34
+ private m_rules;
35
+ constructor();
36
+ /**
37
+ * add a new rule to the style sheet
38
+ * @param {string} name - internal rule name
39
+ * @param {string} definition - css definition of the rule
40
+ * @example
41
+ * setRule('xbody', "body { background-color: #ff0000; }" );
42
+ */
43
+ setRule(name: string, definition: any): void;
44
+ /**
45
+ * return the style variable value
46
+ * @param name - variable name
47
+ * @example
48
+ * ```
49
+ * let color = Component.getCss( ).getVar( 'button-color' );
50
+ * ```
51
+ */
52
+ static getVar(name: string): any;
53
+ static guid: number;
54
+ static doc_style: CSSStyleDeclaration;
55
+ }
56
+ /**
57
+ * -- [ @CSSPARSER ] -----------------------------------------------------------------
58
+ *
59
+ * adaptation of jss-for-node-js
60
+ */
61
+ export declare class CSSParser {
62
+ private result;
63
+ parse(css: any): string;
64
+ static mk_string(rules: any): string;
65
+ private parse_json;
66
+ private makePropertyName;
67
+ private makeSelectorName;
68
+ addProperty(scope: string, property: string, value: any): void;
69
+ }
70
+ export declare class ComputedStyle {
71
+ m_style: CSSStyleDeclaration;
72
+ constructor(style: CSSStyleDeclaration);
73
+ /**
74
+ * return the raw value
75
+ */
76
+ value(name: string): string;
77
+ /**
78
+ * return the interpreted value
79
+ */
80
+ parse(name: string): number;
81
+ /**
82
+ *
83
+ */
84
+ get style(): CSSStyleDeclaration;
85
+ }