x4js 1.5.0 → 1.5.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 (309) hide show
  1. package/lib/README.md +19 -0
  2. package/lib/changelog.txt +5 -0
  3. package/lib/cjs/application.js +6 -6
  4. package/lib/cjs/icon.js +5 -0
  5. package/lib/cjs/md5.js +7 -7
  6. package/lib/cjs/tools.js +8 -5
  7. package/lib/cjs/version.js +1 -1
  8. package/lib/esm/icon.js +5 -0
  9. package/lib/esm/tools.js +8 -5
  10. package/lib/esm/version.js +1 -1
  11. package/lib/license.md +21 -0
  12. package/lib/{ts_src → src}/MIT-license.md +0 -0
  13. package/lib/{ts_src → src}/action.ts +0 -0
  14. package/lib/{ts_src → src}/alpha.jpg +0 -0
  15. package/lib/{ts_src → src}/application.ts +0 -0
  16. package/lib/{ts_src → src}/autocomplete.ts +0 -0
  17. package/lib/{ts_src → src}/base64.ts +0 -0
  18. package/lib/{ts_src → src}/base_component.ts +0 -0
  19. package/lib/{ts_src → src}/button.ts +0 -0
  20. package/lib/{ts_src → src}/calendar.ts +0 -0
  21. package/lib/{ts_src → src}/canvas.ts +0 -0
  22. package/lib/{ts_src → src}/cardview.ts +0 -0
  23. package/lib/{ts_src → src}/checkbox.ts +0 -0
  24. package/lib/{ts_src → src}/color.ts +0 -0
  25. package/lib/{ts_src → src}/colorpicker.ts +0 -0
  26. package/lib/{ts_src → src}/combobox.ts +0 -0
  27. package/lib/{ts_src → src}/component.ts +0 -0
  28. package/lib/{ts_src → src}/datastore.ts +0 -0
  29. package/lib/{ts_src → src}/dialog.ts +0 -0
  30. package/lib/{ts_src → src}/dom_events.ts +0 -0
  31. package/lib/{ts_src → src}/drag_manager.ts +0 -0
  32. package/lib/{ts_src → src}/drawtext.ts +0 -0
  33. package/lib/{ts_src → src}/fileupload.ts +0 -0
  34. package/lib/{ts_src → src}/form.ts +0 -0
  35. package/lib/{ts_src → src}/formatters.ts +0 -0
  36. package/lib/{ts_src → src}/gridview.ts +0 -0
  37. package/lib/{ts_src → src}/i18n.ts +0 -0
  38. package/lib/{ts_src → src}/icon.ts +6 -0
  39. package/lib/{ts_src → src}/image.ts +0 -0
  40. package/lib/{ts_src → src}/index.ts +0 -0
  41. package/lib/{ts_src → src}/input.ts +0 -0
  42. package/lib/{ts_src → src}/label.ts +0 -0
  43. package/lib/{ts_src → src}/layout.ts +0 -0
  44. package/lib/{ts_src → src}/link.ts +0 -0
  45. package/lib/{ts_src → src}/listview.ts +0 -0
  46. package/lib/{ts_src → src}/md5.ts +0 -0
  47. package/lib/{ts_src → src}/menu.ts +0 -0
  48. package/lib/{ts_src → src}/messagebox.ts +0 -0
  49. package/lib/{ts_src → src}/panel.ts +0 -0
  50. package/lib/{ts_src → src}/popup.ts +0 -0
  51. package/lib/{ts_src → src}/property_editor.ts +0 -0
  52. package/lib/{ts_src → src}/radiobtn.ts +0 -0
  53. package/lib/{ts_src → src}/rating.ts +0 -0
  54. package/lib/{ts_src → src}/request.ts +0 -0
  55. package/lib/{ts_src → src}/router.ts +0 -0
  56. package/lib/{ts_src → src}/settings.ts +0 -0
  57. package/lib/{ts_src → src}/sidebarview.ts +0 -0
  58. package/lib/{ts_src → src}/spreadsheet.ts +0 -0
  59. package/lib/{ts_src → src}/styles.ts +0 -0
  60. package/lib/{ts_src → src}/svgcomponent.ts +0 -0
  61. package/lib/{ts_src → src}/tabbar.ts +0 -0
  62. package/lib/{ts_src → src}/tabview.ts +0 -0
  63. package/lib/{ts_src → src}/textarea.ts +0 -0
  64. package/lib/{ts_src → src}/textedit.ts +0 -0
  65. package/lib/{ts_src → src}/toaster.ts +0 -0
  66. package/lib/{ts_src → src}/tools.ts +12 -7
  67. package/lib/{ts_src → src}/tooltips.ts +0 -0
  68. package/lib/{ts_src → src}/treeview.ts +0 -0
  69. package/lib/{ts_src → src}/version.ts +1 -1
  70. package/lib/{ts_src → src}/x4.less +5 -3
  71. package/lib/{ts_src → src}/x4dom.ts +0 -0
  72. package/lib/{ts_src → src}/x4events.ts +0 -0
  73. package/lib/{ts_src → src}/x4react.ts +0 -0
  74. package/lib/styles/x4.css +5 -3
  75. package/lib/styles/x4.less +5 -3
  76. package/lib/{cjs → types}/action.d.ts +0 -0
  77. package/lib/{cjs → types}/application.d.ts +0 -0
  78. package/lib/{cjs → types}/autocomplete.d.ts +0 -0
  79. package/lib/{cjs → types}/base_component.d.ts +0 -0
  80. package/lib/{cjs/types → types}/button.d.ts +1 -1
  81. package/lib/{cjs → types}/calendar.d.ts +0 -0
  82. package/lib/{cjs → types}/canvas.d.ts +1 -1
  83. package/lib/{cjs/types → types}/cardview.d.ts +1 -1
  84. package/lib/{cjs → types}/checkbox.d.ts +0 -0
  85. package/lib/{cjs → types}/color.d.ts +0 -0
  86. package/lib/{cjs → types}/colorpicker.d.ts +0 -0
  87. package/lib/{cjs → types}/combobox.d.ts +0 -0
  88. package/lib/{cjs → types}/component.d.ts +6 -6
  89. package/lib/{cjs/types → types}/datastore.d.ts +5 -5
  90. package/lib/{cjs/types → types}/dialog.d.ts +1 -1
  91. package/lib/{cjs → types}/dom_events.d.ts +0 -0
  92. package/lib/{esm → types}/drag_manager.d.ts +2 -2
  93. package/lib/{cjs → types}/drawtext.d.ts +0 -0
  94. package/lib/{cjs → types}/fileupload.d.ts +0 -0
  95. package/lib/{cjs → types}/form.d.ts +2 -2
  96. package/lib/{cjs → types}/formatters.d.ts +1 -1
  97. package/lib/{cjs → types}/gridview.d.ts +4 -4
  98. package/lib/{cjs → types}/i18n.d.ts +0 -0
  99. package/lib/{cjs → types}/icon.d.ts +1 -1
  100. package/lib/{cjs → types}/image.d.ts +0 -0
  101. package/lib/{cjs → types}/index.d.ts +0 -0
  102. package/lib/{cjs/types → types}/input.d.ts +1 -1
  103. package/lib/{cjs → types}/label.d.ts +0 -0
  104. package/lib/{cjs → types}/layout.d.ts +0 -0
  105. package/lib/{cjs → types}/link.d.ts +0 -0
  106. package/lib/{cjs → types}/listview.d.ts +0 -0
  107. package/lib/{cjs → types}/md5.d.ts +0 -0
  108. package/lib/{esm → types}/menu.d.ts +1 -1
  109. package/lib/{cjs → types}/messagebox.d.ts +0 -0
  110. package/lib/{cjs → types}/panel.d.ts +0 -0
  111. package/lib/{cjs → types}/popup.d.ts +0 -0
  112. package/lib/{esm → types}/property_editor.d.ts +1 -1
  113. package/lib/{cjs → types}/radiobtn.d.ts +0 -0
  114. package/lib/{cjs → types}/rating.d.ts +0 -0
  115. package/lib/{cjs → types}/request.d.ts +0 -0
  116. package/lib/{cjs/types → types}/router.d.ts +1 -1
  117. package/lib/{cjs → types}/settings.d.ts +0 -0
  118. package/lib/{cjs → types}/sidebarview.d.ts +0 -0
  119. package/lib/{cjs → types}/spreadsheet.d.ts +0 -0
  120. package/lib/{cjs → types}/styles.d.ts +0 -0
  121. package/lib/{cjs → types}/svgcomponent.d.ts +0 -0
  122. package/lib/{cjs → types}/tabbar.d.ts +0 -0
  123. package/lib/{cjs → types}/tabview.d.ts +0 -0
  124. package/lib/{cjs → types}/textarea.d.ts +0 -0
  125. package/lib/{esm → types}/textedit.d.ts +1 -1
  126. package/lib/{cjs → types}/toaster.d.ts +0 -0
  127. package/lib/{cjs → types}/tools.d.ts +1 -1
  128. package/lib/{esm → types}/tooltips.d.ts +1 -1
  129. package/lib/{cjs → types}/treeview.d.ts +0 -0
  130. package/lib/{esm/types → types}/version.d.ts +1 -1
  131. package/lib/{cjs/types → types}/x4dom.d.ts +0 -0
  132. package/lib/{cjs/types → types}/x4events.d.ts +2 -2
  133. package/lib/{cjs/types → types}/x4react.d.ts +0 -0
  134. package/lib/x4.css +1780 -0
  135. package/package.json +11 -12
  136. package/lib/cjs/button.d.ts +0 -151
  137. package/lib/cjs/cardview.d.ts +0 -87
  138. package/lib/cjs/datastore.d.ts +0 -396
  139. package/lib/cjs/dialog.d.ts +0 -175
  140. package/lib/cjs/drag_manager.d.ts +0 -54
  141. package/lib/cjs/input.d.ts +0 -91
  142. package/lib/cjs/menu.d.ts +0 -130
  143. package/lib/cjs/property_editor.d.ts +0 -71
  144. package/lib/cjs/router.d.ts +0 -42
  145. package/lib/cjs/textedit.d.ts +0 -123
  146. package/lib/cjs/tooltips.d.ts +0 -46
  147. package/lib/cjs/types/action.d.ts +0 -57
  148. package/lib/cjs/types/application.d.ts +0 -104
  149. package/lib/cjs/types/autocomplete.d.ts +0 -58
  150. package/lib/cjs/types/base_component.d.ts +0 -88
  151. package/lib/cjs/types/calendar.d.ts +0 -81
  152. package/lib/cjs/types/canvas.d.ts +0 -92
  153. package/lib/cjs/types/checkbox.d.ts +0 -77
  154. package/lib/cjs/types/color.d.ts +0 -148
  155. package/lib/cjs/types/colorpicker.d.ts +0 -107
  156. package/lib/cjs/types/combobox.d.ts +0 -101
  157. package/lib/cjs/types/component.d.ts +0 -601
  158. package/lib/cjs/types/dom_events.d.ts +0 -302
  159. package/lib/cjs/types/drag_manager.d.ts +0 -54
  160. package/lib/cjs/types/drawtext.d.ts +0 -48
  161. package/lib/cjs/types/fileupload.d.ts +0 -64
  162. package/lib/cjs/types/form.d.ts +0 -126
  163. package/lib/cjs/types/formatters.d.ts +0 -35
  164. package/lib/cjs/types/gridview.d.ts +0 -175
  165. package/lib/cjs/types/i18n.d.ts +0 -73
  166. package/lib/cjs/types/icon.d.ts +0 -64
  167. package/lib/cjs/types/image.d.ts +0 -55
  168. package/lib/cjs/types/index.d.ts +0 -83
  169. package/lib/cjs/types/label.d.ts +0 -58
  170. package/lib/cjs/types/layout.d.ts +0 -87
  171. package/lib/cjs/types/link.d.ts +0 -50
  172. package/lib/cjs/types/listview.d.ts +0 -178
  173. package/lib/cjs/types/md5.d.ts +0 -61
  174. package/lib/cjs/types/menu.d.ts +0 -130
  175. package/lib/cjs/types/messagebox.d.ts +0 -68
  176. package/lib/cjs/types/panel.d.ts +0 -47
  177. package/lib/cjs/types/popup.d.ts +0 -75
  178. package/lib/cjs/types/property_editor.d.ts +0 -71
  179. package/lib/cjs/types/radiobtn.d.ts +0 -72
  180. package/lib/cjs/types/rating.d.ts +0 -53
  181. package/lib/cjs/types/request.d.ts +0 -52
  182. package/lib/cjs/types/settings.d.ts +0 -37
  183. package/lib/cjs/types/sidebarview.d.ts +0 -49
  184. package/lib/cjs/types/spreadsheet.d.ts +0 -218
  185. package/lib/cjs/types/styles.d.ts +0 -85
  186. package/lib/cjs/types/svgcomponent.d.ts +0 -191
  187. package/lib/cjs/types/tabbar.d.ts +0 -58
  188. package/lib/cjs/types/tabview.d.ts +0 -49
  189. package/lib/cjs/types/textarea.d.ts +0 -63
  190. package/lib/cjs/types/textedit.d.ts +0 -123
  191. package/lib/cjs/types/toaster.d.ts +0 -42
  192. package/lib/cjs/types/tools.d.ts +0 -394
  193. package/lib/cjs/types/tooltips.d.ts +0 -46
  194. package/lib/cjs/types/treeview.d.ts +0 -132
  195. package/lib/cjs/types/version.d.ts +0 -29
  196. package/lib/cjs/version.d.ts +0 -29
  197. package/lib/cjs/x4dom.d.ts +0 -49
  198. package/lib/cjs/x4events.d.ts +0 -269
  199. package/lib/cjs/x4react.d.ts +0 -41
  200. package/lib/esm/action.d.ts +0 -57
  201. package/lib/esm/application.d.ts +0 -104
  202. package/lib/esm/autocomplete.d.ts +0 -58
  203. package/lib/esm/base_component.d.ts +0 -88
  204. package/lib/esm/button.d.ts +0 -151
  205. package/lib/esm/calendar.d.ts +0 -81
  206. package/lib/esm/canvas.d.ts +0 -92
  207. package/lib/esm/cardview.d.ts +0 -87
  208. package/lib/esm/checkbox.d.ts +0 -77
  209. package/lib/esm/color.d.ts +0 -148
  210. package/lib/esm/colorpicker.d.ts +0 -107
  211. package/lib/esm/combobox.d.ts +0 -101
  212. package/lib/esm/component.d.ts +0 -601
  213. package/lib/esm/datastore.d.ts +0 -396
  214. package/lib/esm/dialog.d.ts +0 -175
  215. package/lib/esm/dom_events.d.ts +0 -302
  216. package/lib/esm/drawtext.d.ts +0 -48
  217. package/lib/esm/fileupload.d.ts +0 -64
  218. package/lib/esm/form.d.ts +0 -126
  219. package/lib/esm/formatters.d.ts +0 -35
  220. package/lib/esm/gridview.d.ts +0 -175
  221. package/lib/esm/i18n.d.ts +0 -73
  222. package/lib/esm/icon.d.ts +0 -64
  223. package/lib/esm/image.d.ts +0 -55
  224. package/lib/esm/index.d.ts +0 -83
  225. package/lib/esm/input.d.ts +0 -91
  226. package/lib/esm/label.d.ts +0 -58
  227. package/lib/esm/layout.d.ts +0 -87
  228. package/lib/esm/link.d.ts +0 -50
  229. package/lib/esm/listview.d.ts +0 -178
  230. package/lib/esm/md5.d.ts +0 -61
  231. package/lib/esm/messagebox.d.ts +0 -68
  232. package/lib/esm/panel.d.ts +0 -47
  233. package/lib/esm/popup.d.ts +0 -75
  234. package/lib/esm/radiobtn.d.ts +0 -72
  235. package/lib/esm/rating.d.ts +0 -53
  236. package/lib/esm/request.d.ts +0 -52
  237. package/lib/esm/router.d.ts +0 -42
  238. package/lib/esm/settings.d.ts +0 -37
  239. package/lib/esm/sidebarview.d.ts +0 -49
  240. package/lib/esm/spreadsheet.d.ts +0 -218
  241. package/lib/esm/styles.d.ts +0 -85
  242. package/lib/esm/svgcomponent.d.ts +0 -191
  243. package/lib/esm/tabbar.d.ts +0 -58
  244. package/lib/esm/tabview.d.ts +0 -49
  245. package/lib/esm/textarea.d.ts +0 -63
  246. package/lib/esm/toaster.d.ts +0 -42
  247. package/lib/esm/tools.d.ts +0 -394
  248. package/lib/esm/treeview.d.ts +0 -132
  249. package/lib/esm/types/action.d.ts +0 -57
  250. package/lib/esm/types/application.d.ts +0 -104
  251. package/lib/esm/types/autocomplete.d.ts +0 -58
  252. package/lib/esm/types/base_component.d.ts +0 -88
  253. package/lib/esm/types/button.d.ts +0 -151
  254. package/lib/esm/types/calendar.d.ts +0 -81
  255. package/lib/esm/types/canvas.d.ts +0 -92
  256. package/lib/esm/types/cardview.d.ts +0 -87
  257. package/lib/esm/types/checkbox.d.ts +0 -77
  258. package/lib/esm/types/color.d.ts +0 -148
  259. package/lib/esm/types/colorpicker.d.ts +0 -107
  260. package/lib/esm/types/combobox.d.ts +0 -101
  261. package/lib/esm/types/component.d.ts +0 -601
  262. package/lib/esm/types/datastore.d.ts +0 -396
  263. package/lib/esm/types/dialog.d.ts +0 -175
  264. package/lib/esm/types/dom_events.d.ts +0 -302
  265. package/lib/esm/types/drag_manager.d.ts +0 -54
  266. package/lib/esm/types/drawtext.d.ts +0 -48
  267. package/lib/esm/types/fileupload.d.ts +0 -64
  268. package/lib/esm/types/form.d.ts +0 -126
  269. package/lib/esm/types/formatters.d.ts +0 -35
  270. package/lib/esm/types/gridview.d.ts +0 -175
  271. package/lib/esm/types/i18n.d.ts +0 -73
  272. package/lib/esm/types/icon.d.ts +0 -64
  273. package/lib/esm/types/image.d.ts +0 -55
  274. package/lib/esm/types/index.d.ts +0 -83
  275. package/lib/esm/types/input.d.ts +0 -91
  276. package/lib/esm/types/label.d.ts +0 -58
  277. package/lib/esm/types/layout.d.ts +0 -87
  278. package/lib/esm/types/link.d.ts +0 -50
  279. package/lib/esm/types/listview.d.ts +0 -178
  280. package/lib/esm/types/md5.d.ts +0 -61
  281. package/lib/esm/types/menu.d.ts +0 -130
  282. package/lib/esm/types/messagebox.d.ts +0 -68
  283. package/lib/esm/types/panel.d.ts +0 -47
  284. package/lib/esm/types/popup.d.ts +0 -75
  285. package/lib/esm/types/property_editor.d.ts +0 -71
  286. package/lib/esm/types/radiobtn.d.ts +0 -72
  287. package/lib/esm/types/rating.d.ts +0 -53
  288. package/lib/esm/types/request.d.ts +0 -52
  289. package/lib/esm/types/router.d.ts +0 -42
  290. package/lib/esm/types/settings.d.ts +0 -37
  291. package/lib/esm/types/sidebarview.d.ts +0 -49
  292. package/lib/esm/types/spreadsheet.d.ts +0 -218
  293. package/lib/esm/types/styles.d.ts +0 -85
  294. package/lib/esm/types/svgcomponent.d.ts +0 -191
  295. package/lib/esm/types/tabbar.d.ts +0 -58
  296. package/lib/esm/types/tabview.d.ts +0 -49
  297. package/lib/esm/types/textarea.d.ts +0 -63
  298. package/lib/esm/types/textedit.d.ts +0 -123
  299. package/lib/esm/types/toaster.d.ts +0 -42
  300. package/lib/esm/types/tools.d.ts +0 -394
  301. package/lib/esm/types/tooltips.d.ts +0 -46
  302. package/lib/esm/types/treeview.d.ts +0 -132
  303. package/lib/esm/types/x4dom.d.ts +0 -49
  304. package/lib/esm/types/x4events.d.ts +0 -269
  305. package/lib/esm/types/x4react.d.ts +0 -41
  306. package/lib/esm/version.d.ts +0 -29
  307. package/lib/esm/x4dom.d.ts +0 -49
  308. package/lib/esm/x4events.d.ts +0 -269
  309. package/lib/esm/x4react.d.ts +0 -41
package/lib/README.md ADDED
@@ -0,0 +1,19 @@
1
+ # x4js framework
2
+
3
+ This is the x4 framework repository.
4
+
5
+ X4 is a full typescript framework to develop Web or Desktop applications.
6
+ Included more than 50 controls like grids, charts, etc. Everything needed to push the limits of your creativity.
7
+ If these components are not enough, you can create your in few lines.
8
+
9
+ ## Home page
10
+ see [home](https://x4js.org)
11
+
12
+
13
+ ## Documentation
14
+ see [documentation](https://x4js.org/doc/)
15
+
16
+ ## API
17
+ see [API](https://x4js.org/api/)
18
+
19
+
@@ -0,0 +1,5 @@
1
+ 2022/12/05 : 1.5.1 --------------------------------------------------------
2
+ icon.ts - now accepts direct <svg>..</svg> in argument (var or other)
3
+
4
+ 2022/11/24 : 1.5.0 --------------------------------------------------------
5
+ tools.js - crc32 optimization
@@ -54,6 +54,12 @@ const _x4_touch_time = Symbol();
54
54
  * }
55
55
  */
56
56
  class Application extends base_component_1.BaseComponent {
57
+ /**
58
+ * the application singleton
59
+ */
60
+ static instance() {
61
+ return Application.self;
62
+ }
57
63
  constructor(props) {
58
64
  var _a, _b, _c;
59
65
  console.assert(Application.self === null, 'application is a singleton');
@@ -76,12 +82,6 @@ class Application extends base_component_1.BaseComponent {
76
82
  this.ApplicationCreated();
77
83
  }
78
84
  }
79
- /**
80
- * the application singleton
81
- */
82
- static instance() {
83
- return Application.self;
84
- }
85
85
  ApplicationCreated() {
86
86
  this.setTitle('');
87
87
  }
package/lib/cjs/icon.js CHANGED
@@ -154,6 +154,11 @@ class Icon extends component_1.Component {
154
154
  }
155
155
  match_var = reVar.exec(icon);
156
156
  }
157
+ // <svg ...>
158
+ if (icon.startsWith('<svg')) {
159
+ this._setSVG('data:image/svg+xml;utf8,' + icon);
160
+ return;
161
+ }
157
162
  // svg( <svg-filename> ) -> svg( "mysvgfile.svg" )
158
163
  // <svg-filename>.svg -> "mysvgfile.svg"
159
164
  const reSvg = /\s*svg\s*\(\s*(.+)\s*\)\s*/gi;
package/lib/cjs/md5.js CHANGED
@@ -57,13 +57,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
57
57
  THE SOFTWARE.
58
58
  */
59
59
  class Md5 {
60
- constructor() {
61
- this._state = new Int32Array(4);
62
- this._buffer = new ArrayBuffer(68);
63
- this._buffer8 = new Uint8Array(this._buffer, 0, 68);
64
- this._buffer32 = new Uint32Array(this._buffer, 0, 17);
65
- this.start();
66
- }
67
60
  static hashStr(str, raw = false) {
68
61
  return this.onePassHasher
69
62
  .start()
@@ -237,6 +230,13 @@ class Md5 {
237
230
  x[2] = c + x[2] | 0;
238
231
  x[3] = d + x[3] | 0;
239
232
  }
233
+ constructor() {
234
+ this._state = new Int32Array(4);
235
+ this._buffer = new ArrayBuffer(68);
236
+ this._buffer8 = new Uint8Array(this._buffer, 0, 68);
237
+ this._buffer32 = new Uint32Array(this._buffer, 0, 17);
238
+ this.start();
239
+ }
240
240
  start() {
241
241
  this._dataLength = 0;
242
242
  this._bufferLength = 0;
package/lib/cjs/tools.js CHANGED
@@ -980,13 +980,16 @@ exports.Clipboard = Clipboard;
980
980
  */
981
981
  function crc32(str) {
982
982
  let crc = ~0;
983
- for (let i = 0, l = str.length; i < l; i++) {
984
- crc = (crc >>> 8) ^ crc32tab[(crc ^ str.charCodeAt(i)) & 0xff];
983
+ let buf = Buffer.from(str);
984
+ let i = 0, l = buf.length;
985
+ while (i < l) {
986
+ crc = (crc >>> 8) ^ crc32tab[(crc ^ buf[i]) & 0xff];
987
+ i++;
985
988
  }
986
- return Math.abs(crc ^ -1);
989
+ return (crc ^ -1) >>> 0;
987
990
  }
988
991
  exports.crc32 = crc32;
989
- var crc32tab = [
992
+ var crc32tab = new Int32Array([
990
993
  0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
991
994
  0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
992
995
  0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
@@ -1051,7 +1054,7 @@ var crc32tab = [
1051
1054
  0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
1052
1055
  0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
1053
1056
  0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
1054
- ];
1057
+ ]);
1055
1058
  // :: MIXINS ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1056
1059
  /**
1057
1060
  * taken from this excellent article:
@@ -29,4 +29,4 @@
29
29
  **/
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  exports.x4js_version = void 0;
32
- exports.x4js_version = "1.4";
32
+ exports.x4js_version = "1.5.2";
package/lib/esm/icon.js CHANGED
@@ -144,6 +144,11 @@ export class Icon extends Component {
144
144
  }
145
145
  match_var = reVar.exec(icon);
146
146
  }
147
+ // <svg ...>
148
+ if (icon.startsWith('<svg')) {
149
+ this._setSVG('data:image/svg+xml;utf8,' + icon);
150
+ return;
151
+ }
147
152
  // svg( <svg-filename> ) -> svg( "mysvgfile.svg" )
148
153
  // <svg-filename>.svg -> "mysvgfile.svg"
149
154
  const reSvg = /\s*svg\s*\(\s*(.+)\s*\)\s*/gi;
package/lib/esm/tools.js CHANGED
@@ -945,12 +945,15 @@ export class Clipboard {
945
945
  */
946
946
  export function crc32(str) {
947
947
  let crc = ~0;
948
- for (let i = 0, l = str.length; i < l; i++) {
949
- crc = (crc >>> 8) ^ crc32tab[(crc ^ str.charCodeAt(i)) & 0xff];
948
+ let buf = Buffer.from(str);
949
+ let i = 0, l = buf.length;
950
+ while (i < l) {
951
+ crc = (crc >>> 8) ^ crc32tab[(crc ^ buf[i]) & 0xff];
952
+ i++;
950
953
  }
951
- return Math.abs(crc ^ -1);
954
+ return (crc ^ -1) >>> 0;
952
955
  }
953
- var crc32tab = [
956
+ var crc32tab = new Int32Array([
954
957
  0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
955
958
  0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
956
959
  0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
@@ -1015,7 +1018,7 @@ var crc32tab = [
1015
1018
  0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
1016
1019
  0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
1017
1020
  0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
1018
- ];
1021
+ ]);
1019
1022
  // :: MIXINS ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
1020
1023
  /**
1021
1024
  * taken from this excellent article:
@@ -26,4 +26,4 @@
26
26
  * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
27
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
28
  **/
29
- export const x4js_version = "1.4";
29
+ export const x4js_version = "1.5.2";
package/lib/license.md ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2022 R-Libre ingénierie
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -186,6 +186,12 @@ export class Icon extends Component<IconProps>
186
186
 
187
187
  match_var = reVar.exec( icon );
188
188
  }
189
+
190
+ // <svg ...>
191
+ if( icon.startsWith('<svg') ) {
192
+ this._setSVG( 'data:image/svg+xml;utf8,'+icon);
193
+ return;
194
+ }
189
195
 
190
196
  // svg( <svg-filename> ) -> svg( "mysvgfile.svg" )
191
197
  // <svg-filename>.svg -> "mysvgfile.svg"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1208,15 +1208,20 @@ export class Clipboard {
1208
1208
  */
1209
1209
 
1210
1210
  export function crc32(str) {
1211
-
1212
1211
  let crc = ~0;
1213
- for (let i = 0, l = str.length; i < l; i++) {
1214
- crc = (crc >>> 8) ^ crc32tab[(crc ^ str.charCodeAt(i)) & 0xff];
1215
- }
1216
- return Math.abs(crc ^ -1);
1212
+ let buf = Buffer.from( str );
1213
+
1214
+ let i = 0,
1215
+ l = buf.length;
1216
+ while( i<l ) {
1217
+ crc = (crc >>> 8) ^ crc32tab[(crc ^ buf[i]) & 0xff];
1218
+ i++;
1219
+ }
1220
+
1221
+ return (crc ^ -1)>>>0;
1217
1222
  }
1218
1223
 
1219
- var crc32tab = [
1224
+ var crc32tab = new Int32Array([
1220
1225
  0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
1221
1226
  0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
1222
1227
  0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
@@ -1281,7 +1286,7 @@ var crc32tab = [
1281
1286
  0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
1282
1287
  0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
1283
1288
  0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
1284
- ];
1289
+ ]);
1285
1290
 
1286
1291
 
1287
1292
  // :: MIXINS ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
File without changes
File without changes
@@ -27,4 +27,4 @@
27
27
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
28
  **/
29
29
 
30
- export const x4js_version = "1.4";
30
+ export const x4js_version = "1.5.2";
@@ -407,6 +407,7 @@ textarea {
407
407
  display: flex;
408
408
  flex-direction: row;
409
409
  align-items: center;
410
+ gap: 4px;
410
411
  outline: none;
411
412
  cursor: pointer;
412
413
  font-family: var( --x4-font );
@@ -426,8 +427,8 @@ textarea {
426
427
  }
427
428
 
428
429
  .x-svg-icon {
429
- width: 100%;
430
- height: 100%;
430
+ width: 1rem;
431
+ height: 1rem;
431
432
  margin: 0;
432
433
  }
433
434
 
@@ -585,6 +586,7 @@ textarea {
585
586
  border-bottom: 1px solid transparent;
586
587
  margin-top: 1px; // hack alignement label / edit
587
588
  line-height: 1.3em;
589
+ width: 24px; // fix min-content
588
590
 
589
591
  &::placeholder {
590
592
  color: var( --gray-800 );
@@ -613,7 +615,7 @@ textarea {
613
615
  border: none;
614
616
 
615
617
  margin: 0;
616
- padding: 0;
618
+ padding: 4px;
617
619
  height: 2em;
618
620
  margin-top: 1px;
619
621
 
File without changes
File without changes
File without changes
package/lib/styles/x4.css CHANGED
@@ -320,6 +320,7 @@ textarea::selection {
320
320
  display: flex;
321
321
  flex-direction: row;
322
322
  align-items: center;
323
+ gap: 4px;
323
324
  outline: none;
324
325
  cursor: pointer;
325
326
  font-family: var(--x4-font);
@@ -336,8 +337,8 @@ textarea::selection {
336
337
  color: inherit;
337
338
  }
338
339
  .x-base-button .x-svg-icon {
339
- width: 100%;
340
- height: 100%;
340
+ width: 1rem;
341
+ height: 1rem;
341
342
  margin: 0;
342
343
  }
343
344
  .x-base-button:focus {
@@ -471,6 +472,7 @@ textarea::selection {
471
472
  border-bottom: 1px solid transparent;
472
473
  margin-top: 1px;
473
474
  line-height: 1.3em;
475
+ width: 24px;
474
476
  }
475
477
  .x-text-edit input::placeholder,
476
478
  .x-combo-box input::placeholder,
@@ -502,7 +504,7 @@ textarea::selection {
502
504
  color: var(--gray-900);
503
505
  border: none;
504
506
  margin: 0;
505
- padding: 0;
507
+ padding: 4px;
506
508
  height: 2em;
507
509
  margin-top: 1px;
508
510
  }
@@ -407,6 +407,7 @@ textarea {
407
407
  display: flex;
408
408
  flex-direction: row;
409
409
  align-items: center;
410
+ gap: 4px;
410
411
  outline: none;
411
412
  cursor: pointer;
412
413
  font-family: var( --x4-font );
@@ -426,8 +427,8 @@ textarea {
426
427
  }
427
428
 
428
429
  .x-svg-icon {
429
- width: 100%;
430
- height: 100%;
430
+ width: 1rem;
431
+ height: 1rem;
431
432
  margin: 0;
432
433
  }
433
434
 
@@ -585,6 +586,7 @@ textarea {
585
586
  border-bottom: 1px solid transparent;
586
587
  margin-top: 1px; // hack alignement label / edit
587
588
  line-height: 1.3em;
589
+ width: 24px; // fix min-content
588
590
 
589
591
  &::placeholder {
590
592
  color: var( --gray-800 );
@@ -613,7 +615,7 @@ textarea {
613
615
  border: none;
614
616
 
615
617
  margin: 0;
616
- padding: 0;
618
+ padding: 4px;
617
619
  height: 2em;
618
620
  margin-top: 1px;
619
621
 
File without changes
File without changes
File without changes
File without changes
@@ -37,7 +37,7 @@ import { MenuItem, MenuOrSep } from './menu';
37
37
  interface ButtonEventMap extends CEventMap {
38
38
  click: EvClick;
39
39
  }
40
- declare type MenuCallBack = () => MenuOrSep[];
40
+ type MenuCallBack = () => MenuOrSep[];
41
41
  /**
42
42
  * Button properties
43
43
  */
File without changes
@@ -54,7 +54,7 @@ export interface CanvasPainter extends CanvasRenderingContext2D {
54
54
  setFontSize(fs: number): void;
55
55
  circle(x: number, y: number, radius: number): void;
56
56
  }
57
- declare type PaintHandler = (ctx: CanvasPainter) => any;
57
+ type PaintHandler = (ctx: CanvasPainter) => any;
58
58
  /**
59
59
  *
60
60
  */
@@ -29,7 +29,7 @@
29
29
  import { Component, CProps, CEventMap } from './component';
30
30
  import { EvChange } from './x4events';
31
31
  import { IconID } from './icon';
32
- export declare type PageOrCallback = Component | (() => Component);
32
+ export type PageOrCallback = Component | (() => Component);
33
33
  export interface ICardViewItem {
34
34
  icon?: IconID;
35
35
  name: string;
File without changes
File without changes
File without changes
File without changes
@@ -84,9 +84,9 @@ export declare const _x4_unitless: {
84
84
  /**
85
85
  *
86
86
  */
87
- export declare type VoidCallback = () => void;
88
- export declare type ComponentOrString = Component | string | HtmlString;
89
- export declare type ComponentContent = ComponentOrString | ComponentOrString[];
87
+ export type VoidCallback = () => void;
88
+ export type ComponentOrString = Component | string | HtmlString;
89
+ export type ComponentContent = ComponentOrString | ComponentOrString[];
90
90
  interface IMap<T> {
91
91
  [key: string]: T;
92
92
  }
@@ -501,7 +501,7 @@ export declare class Space extends Component {
501
501
  /**
502
502
  * sizable separator
503
503
  */
504
- declare type SizeMode = null | 'minimize' | 'maximize' | 'restore';
504
+ type SizeMode = null | 'minimize' | 'maximize' | 'restore';
505
505
  export interface EvSize extends BasicEvent {
506
506
  readonly size: Size;
507
507
  readonly mode: SizeMode;
@@ -530,7 +530,7 @@ export declare class Separator extends Component<SeparatorProps, SeparatorEventM
530
530
  /**
531
531
  * properties
532
532
  */
533
- declare type SizerOverlaySens = 'left' | 'top' | 'right' | 'bottom' | 'topleft' | 'topright' | 'bottomleft' | 'bottomright';
533
+ type SizerOverlaySens = 'left' | 'top' | 'right' | 'bottom' | 'topleft' | 'topright' | 'bottomleft' | 'bottomright';
534
534
  export interface EvOverlayResize extends BasicEvent {
535
535
  ui_event: UIEvent;
536
536
  sens: SizerOverlaySens;
@@ -598,4 +598,4 @@ export declare class Container<P extends ContainerProps = ContainerProps, E exte
598
598
  /** @ignore this function is binded */
599
599
  private _handleKeydown;
600
600
  }
601
- export declare type ComponentConstructor<T> = new (props: CProps) => T;
601
+ export type ComponentConstructor<T> = new (props: CProps) => T;
@@ -28,10 +28,10 @@
28
28
  **/
29
29
  import { BasicEvent, EvChange, EventSource, EventMap } from './x4events';
30
30
  import { BaseComponent, BaseComponentEventMap, BaseComponentProps } from './base_component';
31
- export declare type ChangeCallback = (type: string, id?: any) => void;
32
- export declare type CalcCallback = () => string;
33
- export declare type FieldType = 'string' | 'int' | 'float' | 'date' | 'bool' | 'array' | 'object' | 'any' | 'calc';
34
- export declare type DataIndex = Uint32Array;
31
+ export type ChangeCallback = (type: string, id?: any) => void;
32
+ export type CalcCallback = () => string;
33
+ export type FieldType = 'string' | 'int' | 'float' | 'date' | 'bool' | 'array' | 'object' | 'any' | 'calc';
34
+ export type DataIndex = Uint32Array;
35
35
  interface EvDataChange extends BasicEvent {
36
36
  type: string;
37
37
  id: any;
@@ -328,7 +328,7 @@ interface DataViewProps extends BaseComponentProps<DataViewEventMap> {
328
328
  filter?: FilterInfo;
329
329
  order?: string | SortProp[] | SortProp;
330
330
  }
331
- export declare type FilterFunc = (rec: Record) => boolean;
331
+ export type FilterFunc = (rec: Record) => boolean;
332
332
  export interface FilterInfo {
333
333
  op: '<' | '<=' | '=' | '>=' | '>' | '<>' | 'empty-result' | FilterFunc;
334
334
  field?: string;
@@ -51,7 +51,7 @@ export interface DialogBoxEventMap extends PopupEventMap {
51
51
  close: EvClose;
52
52
  btnClick: EvBtnClick;
53
53
  }
54
- export declare type InitFormCallback = () => Form;
54
+ export type InitFormCallback = () => Form;
55
55
  export interface DialogProps<E extends DialogBoxEventMap = DialogBoxEventMap> extends PopupProps<E> {
56
56
  title?: string;
57
57
  icon?: IconID;