x4js 2.0.13 → 2.0.15

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 (260) hide show
  1. package/.vscode/launch.json +14 -0
  2. package/README.md +5 -0
  3. package/{lib/src/demo → demo}/main.scss +3 -1
  4. package/{lib/src/demo/main.tsx → demo/main.ts} +37 -36
  5. package/demo/package.json +26 -0
  6. package/demo/scss.d.ts +4 -0
  7. package/demo/svg.d.ts +1 -0
  8. package/demo/tsconfig.json +14 -0
  9. package/lib/README.txt +5 -0
  10. package/lib/cjs/x4.css +1 -1
  11. package/lib/cjs/x4.js +2 -1
  12. package/lib/esm/x4.css +1 -1
  13. package/lib/esm/x4.mjs +2 -1
  14. package/lib/src/components/boxes/boxes.module.scss +17 -0
  15. package/lib/src/components/boxes/boxes.ts +258 -17
  16. package/lib/src/components/breadcrumb/breadcrumb.scss +56 -28
  17. package/lib/src/components/breadcrumb/breadcrumb.ts +93 -84
  18. package/lib/src/components/btngroup/btngroup.module.scss +12 -0
  19. package/lib/src/components/btngroup/btngroup.ts +41 -8
  20. package/lib/src/components/button/button.module.scss +23 -5
  21. package/lib/src/components/button/button.ts +72 -4
  22. package/lib/src/components/canvas/canvas.module.scss +25 -0
  23. package/lib/src/components/canvas/canvas.ts +189 -0
  24. package/lib/src/components/canvas/canvas_ex.ts +276 -0
  25. package/lib/src/components/checkbox/checkbox.ts +18 -4
  26. package/lib/src/components/combobox/combobox.module.scss +24 -15
  27. package/lib/src/components/combobox/combobox.ts +107 -24
  28. package/lib/src/components/components.ts +7 -0
  29. package/lib/src/components/dialog/dialog.module.scss +40 -7
  30. package/lib/src/components/dialog/dialog.ts +166 -31
  31. package/lib/src/components/filedrop/cloud-arrow-up.svg +1 -0
  32. package/lib/src/components/filedrop/filedrop.module.scss +70 -0
  33. package/lib/src/components/filedrop/filedrop.ts +131 -0
  34. package/lib/src/components/form/form.module.scss +4 -0
  35. package/lib/src/components/form/form.ts +137 -6
  36. package/lib/src/components/gridview/arrow-down-light.svg +1 -0
  37. package/lib/src/components/gridview/arrow-up-light.svg +1 -0
  38. package/lib/src/components/gridview/gridview.module.scss +324 -0
  39. package/lib/src/components/gridview/gridview.ts +1175 -0
  40. package/lib/src/components/icon/icon.module.scss +2 -1
  41. package/lib/src/components/icon/icon.ts +4 -3
  42. package/lib/src/components/image/image.module.scss +8 -1
  43. package/lib/src/components/image/image.ts +105 -6
  44. package/lib/src/components/input/input.module.scss +8 -3
  45. package/lib/src/components/input/input.ts +178 -31
  46. package/lib/src/components/keyboard/arrow-up.svg +1 -0
  47. package/lib/src/components/keyboard/delete-left.svg +1 -0
  48. package/lib/src/components/keyboard/eye-slash.svg +1 -0
  49. package/lib/src/components/keyboard/keyboard.module.scss +134 -0
  50. package/lib/src/components/keyboard/keyboard.ts +526 -0
  51. package/lib/src/components/label/label.module.scss +22 -4
  52. package/lib/src/components/label/label.ts +33 -0
  53. package/lib/src/components/link/link.ts +81 -78
  54. package/lib/src/components/listbox/listbox.module.scss +61 -3
  55. package/lib/src/components/listbox/listbox.ts +164 -56
  56. package/lib/src/components/menu/menu.module.scss +10 -1
  57. package/lib/src/components/menu/menu.ts +6 -3
  58. package/lib/src/components/messages/messages.module.scss +44 -0
  59. package/lib/src/components/messages/messages.ts +164 -18
  60. package/lib/src/components/messages/pen-field.svg +1 -0
  61. package/lib/src/components/normalize.scss +5 -0
  62. package/lib/src/components/notification/notification.module.scss +4 -2
  63. package/lib/src/components/notification/notification.ts +2 -4
  64. package/lib/src/components/panel/panel.module.scss +12 -0
  65. package/lib/src/components/popup/popup.module.scss +10 -2
  66. package/lib/src/components/popup/popup.ts +141 -95
  67. package/lib/src/components/propgrid/folder-closed.svg +1 -0
  68. package/lib/src/components/propgrid/folder-open.svg +1 -0
  69. package/lib/src/components/propgrid/progrid.module.scss +112 -0
  70. package/lib/src/components/propgrid/propgrid.ts +288 -0
  71. package/lib/src/components/propgrid/updown.svg +4 -0
  72. package/lib/src/components/radio/radio.module.scss +147 -0
  73. package/lib/src/components/radio/radio.svg +4 -0
  74. package/lib/src/components/radio/radio.ts +142 -0
  75. package/lib/src/components/select/select.module.scss +9 -0
  76. package/lib/src/components/select/select.ts +134 -0
  77. package/lib/src/components/shared.scss +47 -0
  78. package/lib/src/components/sizers/sizer.ts +10 -2
  79. package/lib/src/components/slider/slider.module.scss +77 -30
  80. package/lib/src/components/slider/slider.ts +72 -22
  81. package/lib/src/components/tabs/tabs.module.scss +1 -2
  82. package/lib/src/components/tabs/tabs.ts +49 -12
  83. package/lib/src/components/textarea/textarea.module.scss +6 -2
  84. package/lib/src/components/textarea/textarea.ts +73 -8
  85. package/lib/src/components/textedit/textedit.module.scss +3 -1
  86. package/lib/src/components/textedit/textedit.ts +47 -15
  87. package/lib/src/components/themes.scss +7 -0
  88. package/lib/src/components/tickline/tickline.module.scss +26 -0
  89. package/lib/src/components/tickline/tickline.ts +82 -0
  90. package/lib/src/components/tooltips/comments-question.svg +1 -0
  91. package/lib/src/components/tooltips/tooltips.scss +30 -9
  92. package/lib/src/components/tooltips/tooltips.ts +10 -5
  93. package/lib/src/components/treeview/treeview.module.scss +129 -60
  94. package/lib/src/components/treeview/treeview.ts +47 -12
  95. package/lib/src/components/viewport/viewport.module.scss +7 -0
  96. package/lib/src/core/component.ts +113 -40
  97. package/lib/src/core/core_application.ts +223 -2
  98. package/lib/src/core/core_colors.ts +2 -2
  99. package/lib/src/{components/grid/datastore.ts → core/core_data.ts} +264 -252
  100. package/lib/src/core/core_dragdrop.ts +3 -3
  101. package/lib/src/core/core_element.ts +18 -1
  102. package/lib/src/core/core_events.ts +28 -0
  103. package/lib/src/core/core_i18n.ts +19 -3
  104. package/lib/src/core/core_react.ts +79 -0
  105. package/lib/src/core/core_router.ts +25 -9
  106. package/lib/src/core/core_state.ts +62 -0
  107. package/lib/src/core/core_styles.ts +5 -5
  108. package/lib/src/core/core_svg.ts +174 -12
  109. package/lib/src/core/core_tools.ts +305 -87
  110. package/lib/src/x4tsx.d.ts +25 -0
  111. package/lib/styles/x4.css +1 -1
  112. package/lib/types/x4js.d.ts +828 -119
  113. package/package.json +4 -4
  114. package/scripts/build.mjs +378 -0
  115. package/scripts/prepack.mjs +346 -0
  116. package/src/components/base.scss +25 -0
  117. package/src/components/boxes/boxes.module.scss +54 -0
  118. package/src/components/boxes/boxes.ts +370 -0
  119. package/src/components/breadcrumb/breadcrumb.scss +56 -0
  120. package/src/components/breadcrumb/breadcrumb.ts +93 -0
  121. package/src/components/breadcrumb/chevron-right.svg +1 -0
  122. package/src/components/btngroup/btngroup.module.scss +41 -0
  123. package/src/components/btngroup/btngroup.ts +153 -0
  124. package/src/components/button/button.module.scss +173 -0
  125. package/src/components/button/button.ts +185 -0
  126. package/src/components/calendar/calendar-check-sharp-light.svg +1 -0
  127. package/src/components/calendar/calendar.module.scss +163 -0
  128. package/src/components/calendar/calendar.ts +327 -0
  129. package/src/components/calendar/chevron-left-sharp-light.svg +1 -0
  130. package/src/components/calendar/chevron-right-sharp-light.svg +1 -0
  131. package/src/components/canvas/canvas.module.scss +25 -0
  132. package/src/components/canvas/canvas.ts +189 -0
  133. package/src/components/canvas/canvas_ex.ts +276 -0
  134. package/src/components/checkbox/check.svg +4 -0
  135. package/src/components/checkbox/checkbox.module.scss +142 -0
  136. package/src/components/checkbox/checkbox.ts +140 -0
  137. package/src/components/colorinput/colorinput.module.scss +65 -0
  138. package/src/components/colorinput/colorinput.ts +91 -0
  139. package/src/components/colorinput/crosshairs-simple-sharp-light.svg +1 -0
  140. package/src/components/colorpicker/colorpicker.module.scss +133 -0
  141. package/src/components/colorpicker/colorpicker.ts +482 -0
  142. package/src/components/combobox/combobox.module.scss +133 -0
  143. package/src/components/combobox/combobox.ts +275 -0
  144. package/src/components/combobox/updown.svg +4 -0
  145. package/src/components/components.ts +41 -0
  146. package/src/components/dialog/dialog.module.scss +104 -0
  147. package/src/components/dialog/dialog.ts +229 -0
  148. package/src/components/dialog/xmark-sharp-light.svg +1 -0
  149. package/src/components/filedrop/cloud-arrow-up.svg +1 -0
  150. package/src/components/filedrop/filedrop.module.scss +70 -0
  151. package/src/components/filedrop/filedrop.ts +131 -0
  152. package/src/components/form/form.module.scss +38 -0
  153. package/src/components/form/form.ts +172 -0
  154. package/src/components/gridview/arrow-down-light.svg +1 -0
  155. package/src/components/gridview/arrow-up-light.svg +1 -0
  156. package/src/components/gridview/gridview.module.scss +324 -0
  157. package/src/components/gridview/gridview.ts +1175 -0
  158. package/src/components/header/header.module.scss +40 -0
  159. package/src/components/header/header.ts +130 -0
  160. package/src/components/icon/icon.module.scss +31 -0
  161. package/src/components/icon/icon.ts +137 -0
  162. package/src/components/image/image.module.scss +28 -0
  163. package/src/components/image/image.ts +168 -0
  164. package/src/components/input/input.module.scss +74 -0
  165. package/src/components/input/input.ts +422 -0
  166. package/src/components/keyboard/arrow-up.svg +1 -0
  167. package/src/components/keyboard/delete-left.svg +1 -0
  168. package/src/components/keyboard/eye-slash.svg +1 -0
  169. package/src/components/keyboard/keyboard.module.scss +134 -0
  170. package/src/components/keyboard/keyboard.ts +526 -0
  171. package/src/components/label/label.module.scss +76 -0
  172. package/src/components/label/label.ts +97 -0
  173. package/src/components/link/link.ts +81 -0
  174. package/src/components/listbox/listbox.module.scss +161 -0
  175. package/src/components/listbox/listbox.ts +539 -0
  176. package/src/components/menu/caret-right-solid.svg +1 -0
  177. package/src/components/menu/menu.module.scss +117 -0
  178. package/src/components/menu/menu.ts +174 -0
  179. package/src/components/messages/circle-exclamation.svg +1 -0
  180. package/src/components/messages/messages.module.scss +92 -0
  181. package/src/components/messages/messages.ts +215 -0
  182. package/src/components/messages/pen-field.svg +1 -0
  183. package/src/components/normalize.scss +391 -0
  184. package/src/components/notification/circle-check-solid.svg +1 -0
  185. package/src/components/notification/circle-exclamation-solid.svg +1 -0
  186. package/src/components/notification/circle-notch-light.svg +1 -0
  187. package/src/components/notification/notification.module.scss +84 -0
  188. package/src/components/notification/notification.ts +107 -0
  189. package/src/components/notification/xmark-sharp-light.svg +1 -0
  190. package/src/components/panel/panel.module.scss +60 -0
  191. package/src/components/panel/panel.ts +58 -0
  192. package/src/components/popup/popup.module.scss +51 -0
  193. package/src/components/popup/popup.ts +442 -0
  194. package/src/components/progress/progress.module.scss +57 -0
  195. package/src/components/progress/progress.ts +44 -0
  196. package/src/components/propgrid/folder-closed.svg +1 -0
  197. package/src/components/propgrid/folder-open.svg +1 -0
  198. package/src/components/propgrid/progrid.module.scss +112 -0
  199. package/src/components/propgrid/propgrid.ts +288 -0
  200. package/src/components/propgrid/updown.svg +4 -0
  201. package/src/components/radio/radio.module.scss +147 -0
  202. package/src/components/radio/radio.svg +4 -0
  203. package/src/components/radio/radio.ts +142 -0
  204. package/src/components/rating/rating.module.scss +23 -0
  205. package/src/components/rating/rating.ts +131 -0
  206. package/src/components/rating/star-sharp-light.svg +1 -0
  207. package/src/components/rating/star-sharp-solid.svg +1 -0
  208. package/src/components/select/select.module.scss +9 -0
  209. package/src/components/select/select.ts +134 -0
  210. package/src/components/shared.scss +137 -0
  211. package/src/components/sizers/sizer.module.scss +90 -0
  212. package/src/components/sizers/sizer.ts +132 -0
  213. package/src/components/slider/slider.module.scss +118 -0
  214. package/src/components/slider/slider.ts +198 -0
  215. package/src/components/switch/switch.module.scss +127 -0
  216. package/src/components/switch/switch.ts +62 -0
  217. package/src/components/tabs/tabs.module.scss +45 -0
  218. package/src/components/tabs/tabs.ts +205 -0
  219. package/src/components/textarea/textarea.module.scss +63 -0
  220. package/src/components/textarea/textarea.ts +125 -0
  221. package/src/components/textedit/textedit.module.scss +116 -0
  222. package/src/components/textedit/textedit.ts +115 -0
  223. package/src/components/themes.scss +88 -0
  224. package/src/components/tickline/tickline.module.scss +26 -0
  225. package/src/components/tickline/tickline.ts +82 -0
  226. package/src/components/tooltips/circle-info-sharp-light.svg +1 -0
  227. package/src/components/tooltips/comments-question.svg +1 -0
  228. package/src/components/tooltips/tooltips.scss +72 -0
  229. package/src/components/tooltips/tooltips.ts +109 -0
  230. package/src/components/treeview/chevron-down-light.svg +1 -0
  231. package/src/components/treeview/treeview.module.scss +185 -0
  232. package/src/components/treeview/treeview.ts +445 -0
  233. package/src/components/viewport/viewport.module.scss +32 -0
  234. package/src/components/viewport/viewport.ts +41 -0
  235. package/src/core/component.ts +1075 -0
  236. package/src/core/core_application.ts +265 -0
  237. package/src/core/core_colors.ts +250 -0
  238. package/src/core/core_data.ts +1310 -0
  239. package/src/core/core_dom.ts +471 -0
  240. package/src/core/core_dragdrop.ts +201 -0
  241. package/src/core/core_element.ts +115 -0
  242. package/src/core/core_events.ts +177 -0
  243. package/src/core/core_i18n.ts +393 -0
  244. package/src/core/core_react.ts +79 -0
  245. package/src/core/core_router.ts +237 -0
  246. package/src/core/core_state.ts +62 -0
  247. package/src/core/core_styles.ts +214 -0
  248. package/src/core/core_svg.ts +712 -0
  249. package/src/core/core_tools.ts +906 -0
  250. package/src/types/scss.d.ts +4 -0
  251. package/src/types/svg.d.ts +1 -0
  252. package/src/types/x4react.d.ts +9 -0
  253. package/src/x4.scss +19 -0
  254. package/src/x4tsx.d.ts +25 -0
  255. package/tsconfig.json +14 -0
  256. package/lib/src/components/grid/gridview.ts +0 -1108
  257. package/lib/src/components/grid/memdb.ts +0 -325
  258. /package/{lib/src/demo → demo}/assets/house-light.svg +0 -0
  259. /package/{lib/src/demo → demo}/assets/radio.svg +0 -0
  260. /package/{lib/src/demo → demo}/index.html +0 -0
@@ -0,0 +1,346 @@
1
+ #!/usr/bin/env node
2
+
3
+ import * as fs from 'node:fs';
4
+ import * as path from "node:path"
5
+ import chalk from "chalk"
6
+ import * as ts from 'typescript';
7
+
8
+ import { execSync } from "node:child_process";
9
+
10
+ function readJSON(fname) {
11
+ let cpath = process.cwd();
12
+
13
+ // check here
14
+ let pth = path.join(cpath, fname);
15
+
16
+ if (fs.existsSync(pth)) {
17
+ const raw = fs.readFileSync(pth, "utf-8");
18
+ return JSON.parse(raw);
19
+ }
20
+
21
+ throw new Error(`cannot find ${fname}`);
22
+ }
23
+
24
+ function readPackage() {
25
+ return readJSON("package.json");
26
+ }
27
+
28
+
29
+
30
+
31
+ class DTSGenerator {
32
+
33
+ output = null;
34
+
35
+ emit( lvl, code ) {
36
+ this.output.write( '\t'.repeat(lvl)+code );
37
+ }
38
+
39
+ /**
40
+ *
41
+ */
42
+
43
+ genMethodSig(node, source, ctor) {
44
+
45
+ const name = ctor ? "constructor" : (node.name ? node.name.getText(source) : 'new');
46
+
47
+ const typeParameters = node.typeParameters
48
+ ? `<${node.typeParameters.map(param => param.getText(source)).join(', ')}>`
49
+ : '';
50
+
51
+ const parameters = node.parameters?.map(param => {
52
+ const paramName = param.name.getText(source);
53
+ const paramType = param.type ? param.type.getText(source) : 'any';
54
+ return `${paramName}: ${paramType}`;
55
+ }).join(', ');
56
+
57
+ const returnType = ctor ? '' : `: ${node.type ? node.type.getText(source) : 'void'}`;
58
+
59
+ this.emit( 2, `${name}${typeParameters}( ${parameters} )${returnType};\n` );
60
+ }
61
+
62
+ /**
63
+ *
64
+ */
65
+
66
+ genPropSig( node, source ) {
67
+ const name = node.name ? node.name.getText(source) : 'unknown';
68
+ const type = node.type ? node.type.getText(source) : 'any';
69
+ const isOptional = node.questionToken ? '?' : '';
70
+ this.emit( 2, `${name}${isOptional}: ${type};\n` );
71
+ }
72
+
73
+ /**
74
+ *
75
+ */
76
+
77
+ genClassSig(node, source) {
78
+
79
+ const cname = node.name.getText(source);
80
+ const modifiers = node.modifiers ? node.modifiers.map(mod => mod.getText(source)).join(' ') : '';
81
+
82
+ const heritage = node.heritageClauses ? node.heritageClauses.map(clause => {
83
+ const typeText = clause.types.map(type => type.getText(source)).join(', ');
84
+ return clause.token === ts.SyntaxKind.ExtendsKeyword ? `extends ${typeText}` : `implements ${typeText}`;
85
+ }).join(' ') : '';
86
+
87
+ const typeParameters = node.typeParameters ? `<${node.typeParameters.map(param => param.getText(source)).join(', ')}>` : '';
88
+
89
+ this.emit( 1, `${modifiers} class ${cname}${typeParameters} ${heritage} {\n` );
90
+
91
+ ts.forEachChild(node, (x) => {
92
+
93
+ if (ts.isPropertyDeclaration(x)) {
94
+ const name = x.name ? x.name.getText(source) : 'unknown';
95
+ const type = x.type ? x.type.getText(source) : 'any';
96
+ const isOptional = x.questionToken ? '?' : '';
97
+ this.emit( 2, `${name}${isOptional}: ${type};\n` );
98
+ }
99
+ else if (ts.isMethodDeclaration(x)) {
100
+ this.genMethodSig(x, source, false);
101
+ }
102
+ else if (ts.isConstructorDeclaration(x)) {
103
+ this.genMethodSig(x, source, true);
104
+ }
105
+ else if (ts.isPropertySignature(x)) {
106
+ this.genPropSig( x, source );
107
+ }
108
+ else {
109
+ //debugger;
110
+ }
111
+ });
112
+
113
+ this.emit( 1, "}\n\n" );
114
+ }
115
+
116
+ /**
117
+ *
118
+ */
119
+
120
+ genInterfaceSig(node, source) {
121
+ const name = node.name.getText(source);
122
+ const modifiers = node.modifiers ? node.modifiers.map(mod => mod.getText(source)).join(' ') + ' ' : '';
123
+ const heritage = node.heritageClauses ? node.heritageClauses.map(clause => {
124
+ const typeText = clause.types.map(type => type.getText(source)).join(', ');
125
+ return clause.token === ts.SyntaxKind.ExtendsKeyword ? `extends ${typeText}` : `implements ${typeText}`;
126
+ }).join(' ') : '';
127
+
128
+ const typeParameters = this.genTypeParams( node.typeParameters, source );
129
+
130
+ this.emit( 1, `${modifiers}interface ${name}${typeParameters} ${heritage} {\n` );
131
+
132
+ ts.forEachChild(node, (x) => {
133
+
134
+ if (ts.isPropertySignature(x)) {
135
+ const name = x.name ? x.name.getText(source) : 'unknown';
136
+ const type = x.type ? x.type.getText(source) : 'any';
137
+ const isOptional = x.questionToken ? '?' : '';
138
+ this.emit( 2, `${name}${isOptional}: ${type};\n` );
139
+ }
140
+ else if (ts.isMethodSignature(x)) {
141
+ this.genMethodSig(x, source, false);
142
+ }
143
+ });
144
+
145
+ this.emit( 1, "}\n\n" );
146
+ }
147
+
148
+ /**
149
+ *
150
+ */
151
+
152
+ genTypeParams( node, source ) {
153
+ return node ? `<${node.map(param => param.getText(source)).join(', ')}>` : '';
154
+ }
155
+
156
+ /**
157
+ *
158
+ */
159
+
160
+ genTypeDefinition(node, source) {
161
+ const typeName = node.name.getText(source);
162
+ const params = this.genTypeParams( node.typeParameters, source );
163
+
164
+ // pb if complex types
165
+ //const typeDefinition = node.type ? node.type.getText(source) : '';
166
+
167
+ this.emit( 1, `type ${typeName}${params} = ` );
168
+
169
+ if (ts.isTypeLiteralNode(node.type)) {
170
+ this.emit( 0, `{\n` );
171
+
172
+ node.type.members.forEach( member => {
173
+ if( ts.isMethodSignature(member) || ts.isConstructSignatureDeclaration(member) ) {
174
+ this.genMethodSig( member, source );
175
+ }
176
+ else if( ts.isPropertySignature(member) ) {
177
+ this.genPropSig( member, source );
178
+ }
179
+ });
180
+
181
+ this.emit( 1, `}\n\n` );
182
+ }
183
+ else if ( ts.isUnionTypeNode(node.type) || ts.isIntersectionTypeNode(node.type) ) {
184
+ const operator = ts.isUnionTypeNode(node.type) ? ' | ' : ' & ';
185
+ const typeDefinition = node.type.types.map(t => t.getText(source)).join(operator);
186
+ this.emit( 0, `${typeDefinition};\n\n` );
187
+ }
188
+ else if (ts.isArrayTypeNode(node.type)) {
189
+ // Gérer les tableaux
190
+ const typeDefinition = `${node.type.elementType.getText(source)}[]`;
191
+ debugger;
192
+ this.emit( 0, `${typeDefinition};\n\n` );
193
+ }
194
+ else {
195
+ // Pour les autres types (primitifs, tuples, etc.)
196
+ const typeDefinition = node.type.getText(source);
197
+ this.emit( 0, `${typeDefinition};\n\n` );
198
+ }
199
+
200
+
201
+ }
202
+
203
+ /**
204
+ *
205
+ */
206
+
207
+ genEnumDefinition(node,source) {
208
+
209
+ const ename = node.name.getText(source);
210
+
211
+ this.emit( 1, `enum ${ename} {\n`);
212
+
213
+ node.members.forEach( member => {
214
+ const memberName = member.name.getText(source);
215
+ const memberValue = member.initializer ? ` = ${member.initializer.getText(source)}` : '';
216
+ this.emit( 2, `${memberName}${memberValue},\n` );
217
+ });
218
+
219
+ // Assembler la définition complète
220
+ this.emit( 1, `}\n\n`);
221
+ }
222
+
223
+ /**
224
+ *
225
+ */
226
+
227
+ visitNode(node, source) {
228
+ if (ts.isInterfaceDeclaration(node)) {
229
+ this.genInterfaceSig(node, source);
230
+ }
231
+ else if (ts.isClassDeclaration(node)) {
232
+ this.genClassSig(node, source);
233
+ }
234
+ else if (ts.isTypeAliasDeclaration(node)) {
235
+ this.genTypeDefinition(node, source );
236
+ }
237
+ else if (ts.isEnumDeclaration(node)) {
238
+ this.genEnumDefinition(node, source );
239
+ }
240
+ else {
241
+ ts.forEachChild(node, (x) => this.visitNode(x, source));
242
+ }
243
+ }
244
+
245
+ /**
246
+ * rz=eally quick and dirty dts generator
247
+ */
248
+
249
+ async build( output_path ) {
250
+
251
+ this.output = fs.createWriteStream(output_path, {});
252
+
253
+ this.emit( 0, `/** \n`);
254
+ this.emit( 0, ` * ___ ___ __\n`);
255
+ this.emit( 0, ` * \\ \\/ / / _\n`);
256
+ this.emit( 0, ` * \\ / /_| |_\n`);
257
+ this.emit( 0, ` * / \\____ _| \n`);
258
+ this.emit( 0, ` * /__/\\__\\ |_|\n`);
259
+ this.emit( 0, ` * \n`);
260
+ this.emit( 0, ` * @author Etienne Cochard \n`);
261
+ this.emit( 0, ` * @copyright (c) 2024 R-libre ingenierie\n`);
262
+ this.emit( 0, ` *\n`);
263
+ this.emit( 0, ` * Use of this source code is governed by an MIT-style license \n`);
264
+ this.emit( 0, ` * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.\n`);
265
+ this.emit( 0, ` *\n` );
266
+ this.emit( 0, ` * AUTOGENERATED CODE, DO NOT MODIFY\n` );
267
+ this.emit( 0, ` * generated on ${new Date().toDateString()}\n` );
268
+ this.emit( 0, ` */\n\n\n` );
269
+
270
+ this.emit( 0, "declare module 'x4js' {\n\n");
271
+
272
+ const inputFiles = ["src/x4.ts", "src/custom.d.ts"];
273
+ const compilerOptions = readJSON("tsconfig.json");
274
+
275
+ compilerOptions.declaration = true;
276
+
277
+ const host = ts.createCompilerHost(compilerOptions);
278
+ const program = ts.createProgram(inputFiles, compilerOptions, host);
279
+
280
+ const cwd = process.cwd().replaceAll("\\", "/");
281
+ const mod_path = cwd + "/node_modules";
282
+
283
+ program.getSourceFiles().forEach((sourceFile) => {
284
+
285
+ let pth = sourceFile.fileName;
286
+ if (pth.startsWith(mod_path)) {
287
+ return;
288
+ }
289
+ else if( !pth.startsWith(cwd) ) {
290
+ return;
291
+ }
292
+
293
+ pth = pth.substring(cwd.length);
294
+
295
+ this.emit(1,`// ---------------------------------------\n` );
296
+ this.emit(1,`// from ${pth}\n\n`);
297
+
298
+ this.visitNode(sourceFile, sourceFile);
299
+ });
300
+
301
+ this.emit(0,"}\n\n");
302
+ }
303
+ }
304
+
305
+
306
+ async function main() {
307
+
308
+ const pkg = readPackage();
309
+
310
+ console.log(chalk.yellow("-- prepack ------------------------"))
311
+
312
+ fs.mkdirSync('lib/src', { recursive: true });
313
+ fs.mkdirSync('lib/styles', { recursive: true });
314
+ fs.mkdirSync('lib/types', { recursive: true });
315
+
316
+ console.log(chalk.green("building esm..."));
317
+ execSync("node scripts/build.mjs --release --outdir=lib/esm");
318
+
319
+ console.log(chalk.green("building cjs..."));
320
+ execSync("node scripts/build.mjs --release --cjs --outdir=lib/cjs");
321
+
322
+ console.log(chalk.green("creating .d.ts..."));
323
+
324
+ const generator = new DTSGenerator( );
325
+ await generator.build( "lib/types/x4js.d.ts" );
326
+
327
+ console.log(chalk.green("copying dependencies..."));
328
+
329
+ fs.cpSync('lib/esm/x4.css', 'lib/styles/x4.css');
330
+ fs.renameSync('lib/esm/x4.js', 'lib/esm/x4.mjs');
331
+
332
+ fs.cpSync('src/', 'lib/src/', { recursive: true });
333
+ fs.cpSync('README.md', 'lib/README.txt');
334
+
335
+ console.log(chalk.yellow("-----------------------------------"))
336
+ }
337
+
338
+ main( );
339
+
340
+ //(async function tt( ) {
341
+ //const generator = new DTSGenerator( );
342
+ // await generator.build( "output.d.ts" );
343
+ //})( );
344
+
345
+
346
+
@@ -0,0 +1,25 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \/ / / _
4
+ * \ / /_| |_
5
+ * / \____ _|
6
+ * /__/\__\ |_|
7
+ *
8
+ * @file base.scss
9
+ * @author Etienne Cochard
10
+ *
11
+ * @copyright (c) 2024 R-libre ingenierie
12
+ *
13
+ * Use of this source code is governed by an MIT-style license
14
+ * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
+ **/
16
+
17
+ @use "./shared.scss";
18
+
19
+ .x4box {
20
+ @extend .box;
21
+ }
22
+
23
+ .x4flex {
24
+ @extend .flex;
25
+ }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * ___ ___ __
3
+ * \ \/ / / _
4
+ * \ / /_| |_
5
+ * / \____ _|
6
+ * /__/\__\ |_|
7
+ *
8
+ * @file boxes.module.scss
9
+ * @author Etienne Cochard
10
+ *
11
+ * @copyright (c) 2024 R-libre ingenierie
12
+ *
13
+ * Use of this source code is governed by an MIT-style license
14
+ * that can be found in the LICENSE file or at https://opensource.org/licenses/MIT.
15
+ **/
16
+
17
+ @use "../shared.scss";
18
+
19
+ .x4hbox {
20
+ @extend .hbox;
21
+ &.align-start {
22
+ align-items: start;
23
+ }
24
+ }
25
+
26
+ .x4vbox {
27
+ @extend .vbox;
28
+ }
29
+
30
+ .x4stackbox {
31
+ display: flex;
32
+
33
+ &>* {
34
+ @extend .fit;
35
+ position: relative !important;
36
+ }
37
+
38
+ &>*:not(.selected) {
39
+ display: none;
40
+ }
41
+ }
42
+
43
+ .x4gridbox {
44
+ display: grid;
45
+ }
46
+
47
+ .x4masonrybox {
48
+ display: grid;
49
+ grid-gap: 10px;
50
+ grid-template-columns: repeat(auto-fill, minmax(250px,1fr));
51
+ grid-auto-rows: 10px;
52
+
53
+ overflow: hidden;
54
+ }