jpf 5.0.3 → 5.0.6

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 (292) hide show
  1. package/dist/controls/codeMirror/Editor/Editor.d.ts +19 -0
  2. package/dist/controls/codeMirror/Editor/Editor.js +151 -0
  3. package/dist/controls/codeMirror/Editor/Editor.js.map +1 -0
  4. package/dist/controls/codeMirror/index.d.ts +1 -2
  5. package/dist/controls/codeMirror/index.js +1 -2
  6. package/dist/controls/codeMirror/index.js.map +1 -1
  7. package/dist/controls/custom/FileSelector/FileSelector.d.ts +18 -18
  8. package/dist/controls/custom/FileSelector/FileSelector.js +47 -46
  9. package/dist/controls/custom/FileSelector/FileSelector.js.map +1 -1
  10. package/dist/controls/custom/LabeledControl/LabeledControl.d.ts +15 -15
  11. package/dist/controls/custom/LabeledControl/LabeledControl.js +31 -36
  12. package/dist/controls/custom/LabeledControl/LabeledControl.js.map +1 -1
  13. package/dist/controls/custom/ListItem/ListItem.d.ts +37 -36
  14. package/dist/controls/custom/ListItem/ListItem.js +62 -62
  15. package/dist/controls/custom/ListItem/ListItem.js.map +1 -1
  16. package/dist/controls/custom/index.d.ts +3 -3
  17. package/dist/controls/custom/index.js +3 -3
  18. package/dist/controls/html/Button/Button.d.ts +16 -16
  19. package/dist/controls/html/Button/Button.js +47 -50
  20. package/dist/controls/html/Button/Button.js.map +1 -1
  21. package/dist/controls/html/Div/Div.d.ts +14 -14
  22. package/dist/controls/html/Div/Div.js +23 -24
  23. package/dist/controls/html/Div/Div.js.map +1 -1
  24. package/dist/controls/html/Image/Image.d.ts +16 -16
  25. package/dist/controls/html/Image/Image.js +29 -28
  26. package/dist/controls/html/Image/Image.js.map +1 -1
  27. package/dist/controls/html/Input/Input.d.ts +34 -34
  28. package/dist/controls/html/Input/Input.js +166 -170
  29. package/dist/controls/html/Input/Input.js.map +1 -1
  30. package/dist/controls/html/Select/Select.d.ts +30 -30
  31. package/dist/controls/html/Select/Select.js +109 -110
  32. package/dist/controls/html/Select/Select.js.map +1 -1
  33. package/dist/controls/html/Span/Span.d.ts +11 -11
  34. package/dist/controls/html/Span/Span.js +22 -22
  35. package/dist/controls/html/Span/Span.js.map +1 -1
  36. package/dist/controls/html/index.d.ts +6 -6
  37. package/dist/controls/html/index.js +6 -6
  38. package/dist/controls/index.d.ts +14 -14
  39. package/dist/controls/index.js +14 -14
  40. package/dist/controls/index.js.map +1 -1
  41. package/dist/controls/{jsonViewAwesome → jsonViewerAwesome}/index.d.ts +1 -1
  42. package/dist/controls/{jsonViewAwesome → jsonViewerAwesome}/index.js +1 -1
  43. package/dist/controls/jsonViewerAwesome/index.js.map +1 -0
  44. package/dist/controls/jsonViewerAwesome/jsonFormatter/JsonFormatter.d.ts +28 -0
  45. package/dist/controls/{jsonViewAwesome → jsonViewerAwesome}/jsonFormatter/JsonFormatter.js +65 -65
  46. package/dist/controls/jsonViewerAwesome/jsonFormatter/JsonFormatter.js.map +1 -0
  47. package/dist/controls/kendo/Chart/Chart.d.ts +19 -19
  48. package/dist/controls/kendo/Chart/Chart.js +62 -62
  49. package/dist/controls/kendo/Chart/Chart.js.map +1 -1
  50. package/dist/controls/kendo/Culture/Culture.d.ts +1 -1
  51. package/dist/controls/kendo/Culture/Culture.js +25 -25
  52. package/dist/controls/kendo/Culture/Culture.js.map +1 -1
  53. package/dist/controls/kendo/DataSource/DataSource.d.ts +4 -4
  54. package/dist/controls/kendo/DataSource/DataSource.js +1 -1
  55. package/dist/controls/kendo/Editor/Editor.d.ts +14 -19
  56. package/dist/controls/kendo/Editor/Editor.js +94 -104
  57. package/dist/controls/kendo/Editor/Editor.js.map +1 -1
  58. package/dist/controls/kendo/Grid/Grid.d.ts +54 -54
  59. package/dist/controls/kendo/Grid/Grid.js +201 -218
  60. package/dist/controls/kendo/Grid/Grid.js.map +1 -1
  61. package/dist/controls/kendo/Menu/Menu.d.ts +15 -15
  62. package/dist/controls/kendo/Menu/Menu.js +90 -90
  63. package/dist/controls/kendo/Menu/Menu.js.map +1 -1
  64. package/dist/controls/kendo/ObservableObject/ObservableObject.d.ts +0 -5
  65. package/dist/controls/kendo/ObservableObject/ObservableObject.js +0 -34
  66. package/dist/controls/kendo/ObservableObject/ObservableObject.js.map +1 -1
  67. package/dist/controls/kendo/Treeview/Treeview.d.ts +17 -0
  68. package/dist/controls/kendo/{Tree/Tree.js → Treeview/Treeview.js} +107 -107
  69. package/dist/controls/kendo/Treeview/Treeview.js.map +1 -0
  70. package/dist/controls/kendo/Window/Window.d.ts +14 -0
  71. package/dist/controls/kendo/{Dialog/Dialog.js → Window/Window.js} +49 -49
  72. package/dist/controls/kendo/Window/Window.js.map +1 -0
  73. package/dist/controls/kendo/index.d.ts +8 -9
  74. package/dist/controls/kendo/index.js +8 -9
  75. package/dist/controls/kendo/index.js.map +1 -1
  76. package/dist/controls/leaflet/LabelControl/LabelControl.d.ts +12 -12
  77. package/dist/controls/leaflet/LabelControl/LabelControl.js +33 -33
  78. package/dist/controls/leaflet/LabelControl/LabelControl.js.map +1 -1
  79. package/dist/controls/leaflet/Map/Map.d.ts +45 -45
  80. package/dist/controls/leaflet/Map/Map.js +116 -115
  81. package/dist/controls/leaflet/Map/Map.js.map +1 -1
  82. package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.d.ts +8 -8
  83. package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.js +13 -13
  84. package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.js.map +1 -1
  85. package/dist/controls/leaflet/PointerEvent/PointerEvent.d.ts +2 -2
  86. package/dist/controls/leaflet/PointerEvent/PointerEvent.js +7 -7
  87. package/dist/controls/leaflet/PointerEvent/PointerEvent.js.map +1 -1
  88. package/dist/controls/leaflet/index.d.ts +4 -4
  89. package/dist/controls/leaflet/index.js +4 -4
  90. package/dist/controls/svg/Circle/Circle.d.ts +12 -12
  91. package/dist/controls/svg/Circle/Circle.js +20 -20
  92. package/dist/controls/svg/Circle/Circle.js.map +1 -1
  93. package/dist/controls/svg/Ellipse/Ellipse.d.ts +13 -13
  94. package/dist/controls/svg/Ellipse/Ellipse.js +21 -21
  95. package/dist/controls/svg/Ellipse/Ellipse.js.map +1 -1
  96. package/dist/controls/svg/ForeignObject/ForeignObject.d.ts +15 -14
  97. package/dist/controls/svg/ForeignObject/ForeignObject.js +21 -22
  98. package/dist/controls/svg/ForeignObject/ForeignObject.js.map +1 -1
  99. package/dist/controls/svg/Group/Group.d.ts +15 -14
  100. package/dist/controls/svg/Group/Group.js +21 -22
  101. package/dist/controls/svg/Group/Group.js.map +1 -1
  102. package/dist/controls/svg/Line/Line.d.ts +13 -13
  103. package/dist/controls/svg/Line/Line.js +21 -21
  104. package/dist/controls/svg/Line/Line.js.map +1 -1
  105. package/dist/controls/svg/Pattern/Pattern.d.ts +22 -22
  106. package/dist/controls/svg/Pattern/Pattern.js +22 -23
  107. package/dist/controls/svg/Pattern/Pattern.js.map +1 -1
  108. package/dist/controls/svg/Polygon/Polygon.d.ts +11 -11
  109. package/dist/controls/svg/Polygon/Polygon.js +20 -20
  110. package/dist/controls/svg/Polygon/Polygon.js.map +1 -1
  111. package/dist/controls/svg/Polyline/Polyline.d.ts +11 -11
  112. package/dist/controls/svg/Polyline/Polyline.js +19 -19
  113. package/dist/controls/svg/Polyline/Polyline.js.map +1 -1
  114. package/dist/controls/svg/Rectangle/Rectangle.d.ts +13 -13
  115. package/dist/controls/svg/Rectangle/Rectangle.js +21 -21
  116. package/dist/controls/svg/Rectangle/Rectangle.js.map +1 -1
  117. package/dist/controls/svg/Svg/Svg.d.ts +17 -17
  118. package/dist/controls/svg/Svg/Svg.js +23 -24
  119. package/dist/controls/svg/Svg/Svg.js.map +1 -1
  120. package/dist/controls/svg/Text/Text.d.ts +14 -14
  121. package/dist/controls/svg/Text/Text.js +22 -22
  122. package/dist/controls/svg/Text/Text.js.map +1 -1
  123. package/dist/controls/svg/Title/Title.d.ts +10 -10
  124. package/dist/controls/svg/Title/Title.js +16 -16
  125. package/dist/controls/svg/Title/Title.js.map +1 -1
  126. package/dist/controls/svg/index.d.ts +13 -13
  127. package/dist/controls/svg/index.js +13 -13
  128. package/dist/controls/svg/svg.d.ts +6 -6
  129. package/dist/controls/svg/svg.js +12 -12
  130. package/dist/controls/svg/svg.js.map +1 -1
  131. package/dist/framework/attributes.d.ts +90 -90
  132. package/dist/framework/attributes.js +1 -1
  133. package/dist/framework/{View.d.ts → element.d.ts} +61 -62
  134. package/dist/framework/{View.js → element.js} +157 -150
  135. package/dist/framework/element.js.map +1 -0
  136. package/dist/framework/event.d.ts +80 -80
  137. package/dist/framework/event.js +25 -25
  138. package/dist/framework/event.js.map +1 -1
  139. package/dist/framework/observable.d.ts +37 -12
  140. package/dist/framework/observable.js +66 -58
  141. package/dist/framework/observable.js.map +1 -1
  142. package/dist/framework/properties.d.ts +40 -0
  143. package/dist/framework/{ViewModel.js → properties.js} +303 -312
  144. package/dist/framework/properties.js.map +1 -0
  145. package/dist/framework/root.d.ts +9 -0
  146. package/dist/framework/root.js +38 -0
  147. package/dist/framework/root.js.map +1 -0
  148. package/dist/framework/style.d.ts +657 -658
  149. package/dist/framework/style.js +146 -153
  150. package/dist/framework/style.js.map +1 -1
  151. package/dist/framework/types.d.ts +87 -87
  152. package/dist/framework/types.js +1 -1
  153. package/dist/index.d.ts +12 -12
  154. package/dist/index.js +12 -12
  155. package/dist/index.js.map +1 -1
  156. package/dist/utilities/blob/blob.d.ts +1 -1
  157. package/dist/utilities/blob/blob.js +17 -17
  158. package/dist/utilities/blob/blob.js.map +1 -1
  159. package/dist/utilities/contextMenu/contextMenu.d.ts +2 -0
  160. package/dist/utilities/contextMenu/contextMenu.js +11 -0
  161. package/dist/utilities/contextMenu/contextMenu.js.map +1 -0
  162. package/dist/utilities/cookie/cookie.d.ts +3 -3
  163. package/dist/utilities/cookie/cookie.js +26 -26
  164. package/dist/utilities/cookie/cookie.js.map +1 -1
  165. package/dist/utilities/dataReaderTable/dataReaderTable.d.ts +9 -9
  166. package/dist/utilities/dataReaderTable/dataReaderTable.js +23 -23
  167. package/dist/utilities/dataReaderTable/dataReaderTable.js.map +1 -1
  168. package/dist/utilities/fetch/fetch.d.ts +7 -8
  169. package/dist/utilities/fetch/fetch.js +139 -137
  170. package/dist/utilities/fetch/fetch.js.map +1 -1
  171. package/dist/utilities/float/float.d.ts +1 -1
  172. package/dist/utilities/float/float.js +3 -3
  173. package/dist/utilities/formData/formData.d.ts +1 -1
  174. package/dist/utilities/formData/formData.js +11 -11
  175. package/dist/utilities/formData/formData.js.map +1 -1
  176. package/dist/utilities/formatting/formatting.d.ts +4 -0
  177. package/dist/utilities/formatting/formatting.js +26 -0
  178. package/dist/utilities/formatting/formatting.js.map +1 -0
  179. package/dist/utilities/htmlElement/htmlElement.d.ts +1 -1
  180. package/dist/utilities/htmlElement/htmlElement.js +16 -16
  181. package/dist/utilities/htmlElement/htmlElement.js.map +1 -1
  182. package/dist/utilities/image/image.d.ts +1 -1
  183. package/dist/utilities/image/image.js +1 -1
  184. package/dist/utilities/index.d.ts +40 -36
  185. package/dist/utilities/index.js +40 -36
  186. package/dist/utilities/index.js.map +1 -1
  187. package/dist/utilities/integer/integer.d.ts +3 -3
  188. package/dist/utilities/integer/integer.js +27 -27
  189. package/dist/utilities/integer/integer.js.map +1 -1
  190. package/dist/utilities/key/key.d.ts +2 -2
  191. package/dist/utilities/key/key.js +6 -6
  192. package/dist/utilities/navigator/navigator.d.ts +1 -1
  193. package/dist/utilities/navigator/navigator.js +8 -8
  194. package/dist/utilities/navigator/navigator.js.map +1 -1
  195. package/dist/utilities/notification/notification.d.ts +5 -5
  196. package/dist/utilities/notification/notification.js +66 -66
  197. package/dist/utilities/notification/notification.js.map +1 -1
  198. package/dist/utilities/querystring/querystring.d.ts +6 -6
  199. package/dist/utilities/querystring/querystring.js +53 -53
  200. package/dist/utilities/querystring/querystring.js.map +1 -1
  201. package/dist/utilities/router/router.d.ts +19 -19
  202. package/dist/utilities/router/router.js +80 -80
  203. package/dist/utilities/router/router.js.map +1 -1
  204. package/dist/utilities/stylesheet/stylesheet.d.ts +2 -2
  205. package/dist/utilities/stylesheet/stylesheet.js +47 -47
  206. package/dist/utilities/stylesheet/stylesheet.js.map +1 -1
  207. package/dist/utilities/uniqueId/uniqueId.d.ts +1 -1
  208. package/dist/utilities/uniqueId/uniqueId.js +4 -4
  209. package/dist/{framework → utilities/userAgent}/userAgent.d.ts +31 -31
  210. package/dist/{framework → utilities/userAgent}/userAgent.js +46 -46
  211. package/dist/utilities/userAgent/userAgent.js.map +1 -0
  212. package/dist/utilities/webSocket/webSocket.d.ts +1 -1
  213. package/dist/utilities/webSocket/webSocket.js +54 -54
  214. package/dist/utilities/webSocket/webSocket.js.map +1 -1
  215. package/package.json +15 -11
  216. package/src/controls/codeMirror/Editor/Editor.ts +207 -0
  217. package/src/controls/codeMirror/index.ts +1 -2
  218. package/src/controls/custom/FileSelector/FileSelector.ts +30 -28
  219. package/src/controls/custom/LabeledControl/LabeledControl.ts +32 -36
  220. package/src/controls/custom/ListItem/ListItem.ts +36 -36
  221. package/src/controls/html/Button/Button.ts +36 -29
  222. package/src/controls/html/Div/Div.ts +20 -21
  223. package/src/controls/html/Image/Image.ts +22 -20
  224. package/src/controls/html/Input/Input.ts +59 -61
  225. package/src/controls/html/Select/Select.ts +37 -39
  226. package/src/controls/html/Span/Span.ts +14 -14
  227. package/src/controls/index.ts +2 -2
  228. package/src/controls/{jsonViewAwesome → jsonViewerAwesome}/jsonFormatter/JsonFormatter.ts +23 -23
  229. package/src/controls/kendo/Chart/Chart.ts +34 -34
  230. package/src/controls/kendo/DataSource/DataSource.ts +1 -1
  231. package/src/controls/kendo/Editor/Editor.ts +58 -68
  232. package/src/controls/kendo/Grid/Grid.ts +77 -80
  233. package/src/controls/kendo/Menu/Menu.ts +22 -22
  234. package/src/controls/kendo/ObservableObject/ObservableObject.ts +45 -45
  235. package/src/controls/kendo/{Tree/Tree.ts → Treeview/Treeview.ts} +15 -15
  236. package/src/controls/kendo/{Dialog/Dialog.ts → Window/Window.ts} +21 -19
  237. package/src/controls/kendo/index.ts +3 -3
  238. package/src/controls/leaflet/LabelControl/LabelControl.ts +10 -10
  239. package/src/controls/leaflet/Map/Map.ts +41 -38
  240. package/src/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.ts +3 -3
  241. package/src/controls/svg/Circle/Circle.ts +14 -14
  242. package/src/controls/svg/Ellipse/Ellipse.ts +15 -15
  243. package/src/controls/svg/ForeignObject/ForeignObject.ts +19 -20
  244. package/src/controls/svg/Group/Group.ts +19 -19
  245. package/src/controls/svg/Line/Line.ts +15 -15
  246. package/src/controls/svg/Pattern/Pattern.ts +25 -25
  247. package/src/controls/svg/Polygon/Polygon.ts +13 -13
  248. package/src/controls/svg/Polyline/Polyline.ts +13 -13
  249. package/src/controls/svg/Rectangle/Rectangle.ts +15 -15
  250. package/src/controls/svg/Svg/Svg.ts +19 -19
  251. package/src/controls/svg/Text/Text.ts +16 -16
  252. package/src/controls/svg/Title/Title.ts +12 -12
  253. package/src/controls/svg/svg.ts +4 -4
  254. package/src/framework/attributes.ts +46 -46
  255. package/src/framework/{View.ts → element.ts} +52 -39
  256. package/src/framework/event.ts +7 -7
  257. package/src/framework/observable.ts +94 -60
  258. package/src/framework/properties.ts +393 -0
  259. package/src/framework/root.ts +45 -0
  260. package/src/framework/style.ts +330 -340
  261. package/src/index.ts +4 -4
  262. package/src/utilities/contextMenu/contextMenu.ts +16 -0
  263. package/src/utilities/fetch/fetch.ts +16 -14
  264. package/src/utilities/formatting/formatting.ts +29 -0
  265. package/src/utilities/index.ts +7 -3
  266. package/src/utilities/router/router.ts +3 -3
  267. package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.d.ts +0 -16
  268. package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.js +0 -120
  269. package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.js.map +0 -1
  270. package/dist/controls/codeMirror/JsonEditor/JsonEditor.d.ts +0 -16
  271. package/dist/controls/codeMirror/JsonEditor/JsonEditor.js +0 -104
  272. package/dist/controls/codeMirror/JsonEditor/JsonEditor.js.map +0 -1
  273. package/dist/controls/jsonViewAwesome/index.js.map +0 -1
  274. package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.d.ts +0 -28
  275. package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.js.map +0 -1
  276. package/dist/controls/kendo/Dialog/Dialog.d.ts +0 -14
  277. package/dist/controls/kendo/Dialog/Dialog.js.map +0 -1
  278. package/dist/controls/kendo/Tree/Tree.d.ts +0 -17
  279. package/dist/controls/kendo/Tree/Tree.js.map +0 -1
  280. package/dist/framework/View.js.map +0 -1
  281. package/dist/framework/ViewModel.d.ts +0 -42
  282. package/dist/framework/ViewModel.js.map +0 -1
  283. package/dist/framework/userAgent.js.map +0 -1
  284. package/dist/utilities/html/html.d.ts +0 -1
  285. package/dist/utilities/html/html.js +0 -8
  286. package/dist/utilities/html/html.js.map +0 -1
  287. package/src/controls/codeMirror/HtmlEditor/HtmlEditor.ts +0 -153
  288. package/src/controls/codeMirror/JsonEditor/JsonEditor.ts +0 -136
  289. package/src/framework/ViewModel.ts +0 -528
  290. package/src/utilities/html/html.ts +0 -8
  291. /package/src/controls/{jsonViewAwesome → jsonViewerAwesome}/index.ts +0 -0
  292. /package/src/{framework → utilities/userAgent}/userAgent.ts +0 -0
@@ -1,90 +1,90 @@
1
- import { Subscribable } from "knockout";
2
- import { PreserveAspectRatio } from "./types";
3
- export interface Attributes {
4
- alt?: string;
5
- disabled?: string;
6
- href?: string;
7
- target?: string;
8
- id?: string;
9
- src?: string;
10
- title?: string;
11
- class?: string;
12
- tabindex?: number;
13
- draggable?: string;
14
- placeholder?: string;
15
- for?: string;
16
- type?: string;
17
- value?: string;
18
- view?: string;
19
- checked?: string;
20
- enctype?: string;
21
- name?: string;
22
- multiple?: boolean;
23
- ["aria-label"]?: string;
24
- cx?: number | string;
25
- cy?: number | string;
26
- r?: number | string;
27
- rx?: number | string;
28
- ry?: number | string;
29
- x?: number | string;
30
- x1?: number | string;
31
- x2?: number | string;
32
- y?: number | string;
33
- y1?: number | string;
34
- y2?: number | string;
35
- width?: number | string;
36
- height?: number | string;
37
- patternUnits?: string;
38
- patternTransform?: string;
39
- points?: string;
40
- viewBox?: string;
41
- dx?: number | string;
42
- dy?: number | string;
43
- rotate?: string;
44
- preserveAspectRatio?: PreserveAspectRatio;
45
- xmlns?: string;
46
- }
47
- export interface AttributesSubscribable {
48
- alt?: string | Subscribable<string>;
49
- disabled?: string | Subscribable<string>;
50
- href?: string | Subscribable<string>;
51
- target?: string | Subscribable<string>;
52
- id?: string | Subscribable<string>;
53
- src?: string | Subscribable<string>;
54
- title?: string | Subscribable<string>;
55
- class?: string | Subscribable<string>;
56
- tabindex?: number | Subscribable<number>;
57
- draggable?: string | Subscribable<string>;
58
- placeholder?: string | Subscribable<string>;
59
- for?: string | Subscribable<string>;
60
- type?: string | Subscribable<string>;
61
- value?: string | Subscribable<string>;
62
- view?: string | Subscribable<string>;
63
- checked?: string | Subscribable<string>;
64
- enctype?: string | Subscribable<string>;
65
- name?: string | Subscribable<string>;
66
- multiple?: boolean | Subscribable<boolean>;
67
- ["aria-label"]?: string | Subscribable<string>;
68
- cx?: number | string | Subscribable<number | string>;
69
- cy?: number | string | Subscribable<number | string>;
70
- r?: number | string | Subscribable<number | string>;
71
- rx?: number | string | Subscribable<number | string>;
72
- ry?: number | string | Subscribable<number | string>;
73
- x?: number | string | Subscribable<number | string>;
74
- x1?: number | string | Subscribable<number | string>;
75
- x2?: number | string | Subscribable<number | string>;
76
- y?: number | string | Subscribable<number | string>;
77
- y1?: number | string | Subscribable<number | string>;
78
- y2?: number | string | Subscribable<number | string>;
79
- width?: number | string | Subscribable<number | string>;
80
- height?: number | string | Subscribable<number | string>;
81
- patternUnits?: string | Subscribable<string>;
82
- patternTransform?: string | Subscribable<string>;
83
- points?: string | Subscribable<string>;
84
- viewBox?: string | Subscribable<string>;
85
- dx?: number | string | Subscribable<number | string>;
86
- dy?: number | string | Subscribable<number | string>;
87
- rotate?: string | Subscribable<string>;
88
- preserveAspectRatio?: PreserveAspectRatio | Subscribable<PreserveAspectRatio>;
89
- xmlns?: string | Subscribable<string>;
90
- }
1
+ import { PreserveAspectRatio } from "./types";
2
+ import { ISubscribable } from "./observable";
3
+ export interface IAttributes {
4
+ alt?: string;
5
+ disabled?: string;
6
+ href?: string;
7
+ target?: string;
8
+ id?: string;
9
+ src?: string;
10
+ title?: string;
11
+ class?: string;
12
+ tabindex?: number;
13
+ draggable?: string;
14
+ placeholder?: string;
15
+ for?: string;
16
+ type?: string;
17
+ value?: string;
18
+ view?: string;
19
+ checked?: string;
20
+ enctype?: string;
21
+ name?: string;
22
+ multiple?: boolean;
23
+ ["aria-label"]?: string;
24
+ cx?: number | string;
25
+ cy?: number | string;
26
+ r?: number | string;
27
+ rx?: number | string;
28
+ ry?: number | string;
29
+ x?: number | string;
30
+ x1?: number | string;
31
+ x2?: number | string;
32
+ y?: number | string;
33
+ y1?: number | string;
34
+ y2?: number | string;
35
+ width?: number | string;
36
+ height?: number | string;
37
+ patternUnits?: string;
38
+ patternTransform?: string;
39
+ points?: string;
40
+ viewBox?: string;
41
+ dx?: number | string;
42
+ dy?: number | string;
43
+ rotate?: string;
44
+ preserveAspectRatio?: PreserveAspectRatio;
45
+ xmlns?: string;
46
+ }
47
+ export interface IAttributesSubscribable {
48
+ alt?: string | ISubscribable<string>;
49
+ disabled?: string | ISubscribable<string>;
50
+ href?: string | ISubscribable<string>;
51
+ target?: string | ISubscribable<string>;
52
+ id?: string | ISubscribable<string>;
53
+ src?: string | ISubscribable<string>;
54
+ title?: string | ISubscribable<string>;
55
+ class?: string | ISubscribable<string>;
56
+ tabindex?: number | ISubscribable<number>;
57
+ draggable?: string | ISubscribable<string>;
58
+ placeholder?: string | ISubscribable<string>;
59
+ for?: string | ISubscribable<string>;
60
+ type?: string | ISubscribable<string>;
61
+ value?: string | ISubscribable<string>;
62
+ view?: string | ISubscribable<string>;
63
+ checked?: string | ISubscribable<string>;
64
+ enctype?: string | ISubscribable<string>;
65
+ name?: string | ISubscribable<string>;
66
+ multiple?: boolean | ISubscribable<boolean>;
67
+ ["aria-label"]?: string | ISubscribable<string>;
68
+ cx?: number | string | ISubscribable<number | string>;
69
+ cy?: number | string | ISubscribable<number | string>;
70
+ r?: number | string | ISubscribable<number | string>;
71
+ rx?: number | string | ISubscribable<number | string>;
72
+ ry?: number | string | ISubscribable<number | string>;
73
+ x?: number | string | ISubscribable<number | string>;
74
+ x1?: number | string | ISubscribable<number | string>;
75
+ x2?: number | string | ISubscribable<number | string>;
76
+ y?: number | string | ISubscribable<number | string>;
77
+ y1?: number | string | ISubscribable<number | string>;
78
+ y2?: number | string | ISubscribable<number | string>;
79
+ width?: number | string | ISubscribable<number | string>;
80
+ height?: number | string | ISubscribable<number | string>;
81
+ patternUnits?: string | ISubscribable<string>;
82
+ patternTransform?: string | ISubscribable<string>;
83
+ points?: string | ISubscribable<string>;
84
+ viewBox?: string | ISubscribable<string>;
85
+ dx?: number | string | ISubscribable<number | string>;
86
+ dy?: number | string | ISubscribable<number | string>;
87
+ rotate?: string | ISubscribable<string>;
88
+ preserveAspectRatio?: PreserveAspectRatio | ISubscribable<PreserveAspectRatio>;
89
+ xmlns?: string | ISubscribable<string>;
90
+ }
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=attributes.js.map
@@ -1,62 +1,61 @@
1
- import "tocca";
2
- import { Subscribable, Subscription } from "knockout";
3
- import { ViewModel } from "./ViewModel";
4
- declare const htmlTags: {
5
- a: boolean;
6
- div: boolean;
7
- img: boolean;
8
- pre: boolean;
9
- form: boolean;
10
- span: boolean;
11
- input: boolean;
12
- button: boolean;
13
- select: boolean;
14
- textarea: boolean;
15
- };
16
- declare const svgTags: {
17
- g: boolean;
18
- svg: boolean;
19
- rect: boolean;
20
- text: boolean;
21
- line: boolean;
22
- title: boolean;
23
- circle: boolean;
24
- pattern: boolean;
25
- ellipse: boolean;
26
- polygon: boolean;
27
- polyline: boolean;
28
- foreignObject: boolean;
29
- };
30
- type TagName = keyof typeof htmlTags | keyof typeof svgTags;
31
- export interface IView {
32
- render(): HTMLElement;
33
- dispose(): void;
34
- }
35
- export interface ViewOptions<TProperties> {
36
- tagName: TagName;
37
- properties?: TProperties;
38
- children?: Array<IView> | Subscribable<Array<IView>>;
39
- }
40
- export declare class View<TProperties = any> implements IView {
41
- constructor(properties: ViewOptions<TProperties>);
42
- private readonly tagName;
43
- private readonly optionsChildren;
44
- private children;
45
- private buildChildren;
46
- protected element: HTMLElement;
47
- protected readonly properties: TProperties;
48
- protected readonly subscriptions: Subscription[];
49
- protected build(): void;
50
- protected remove(): void;
51
- protected addChild(child: IView): View<TProperties>;
52
- protected setChildren(...children: Array<IView>): View<TProperties>;
53
- protected empty(): void;
54
- render(): HTMLElement;
55
- dispose(): void;
56
- focus(options?: FocusOptions): void;
57
- }
58
- export declare var viewDictionary: Map<any, any>;
59
- export declare function registerView(viewModel: any, resolver: any): void;
60
- export declare function getView(viewModel: ViewModel): View;
61
- export declare function render(viewModel: ViewModel): HTMLElement;
62
- export {};
1
+ import "tocca";
2
+ import { ISubscription, ISubscribable } from "./observable";
3
+ import { Properties } from "./properties";
4
+ declare const htmlTags: {
5
+ a: boolean;
6
+ div: boolean;
7
+ img: boolean;
8
+ pre: boolean;
9
+ form: boolean;
10
+ span: boolean;
11
+ input: boolean;
12
+ button: boolean;
13
+ select: boolean;
14
+ textarea: boolean;
15
+ };
16
+ declare const svgTags: {
17
+ g: boolean;
18
+ svg: boolean;
19
+ rect: boolean;
20
+ text: boolean;
21
+ line: boolean;
22
+ title: boolean;
23
+ circle: boolean;
24
+ pattern: boolean;
25
+ ellipse: boolean;
26
+ polygon: boolean;
27
+ polyline: boolean;
28
+ foreignObject: boolean;
29
+ };
30
+ type TagName = keyof typeof htmlTags | keyof typeof svgTags;
31
+ export interface IElement {
32
+ render(): HTMLElement;
33
+ unmount(): void;
34
+ }
35
+ export interface IElementOptions<TProperties> {
36
+ tagName: TagName;
37
+ properties?: TProperties;
38
+ }
39
+ export declare class Element<TProperties = any> implements IElement {
40
+ constructor(options: IElementOptions<TProperties>, children?: Array<IElement> | ISubscribable<Array<IElement>>);
41
+ private readonly tagName;
42
+ private readonly optionsChildren;
43
+ private children;
44
+ private buildChildren;
45
+ protected element: HTMLElement;
46
+ protected readonly properties: TProperties;
47
+ protected readonly subscriptions: ISubscription[];
48
+ protected build(): void;
49
+ protected remove(): void;
50
+ protected addChild(child: IElement): Element<TProperties>;
51
+ protected setChildren(...children: Array<IElement>): Element<TProperties>;
52
+ protected empty(): void;
53
+ render(): HTMLElement;
54
+ unmount(): void;
55
+ focus(options?: FocusOptions): void;
56
+ }
57
+ export declare function element<TProperties>(options: IElementOptions<TProperties>, children?: Array<IElement> | ISubscribable<Array<IElement>>): Element<TProperties>;
58
+ export declare function registerElement(constructor: Function, element: any): void;
59
+ export declare function getElement(properties: Properties): Element;
60
+ export declare function render(properties: Properties): HTMLElement;
61
+ export {};
@@ -1,150 +1,157 @@
1
- import "tocca";
2
- import { unwrap, isSubscribable } from "knockout";
3
- import { applyBindings as applyViewModelToElement } from "./ViewModel";
4
- const htmlTags = {
5
- a: true,
6
- div: true,
7
- img: true,
8
- pre: true,
9
- form: true,
10
- span: true,
11
- input: true,
12
- button: true,
13
- select: true,
14
- textarea: true
15
- };
16
- const svgTags = {
17
- g: true,
18
- svg: true,
19
- rect: true,
20
- text: true,
21
- line: true,
22
- title: true,
23
- circle: true,
24
- pattern: true,
25
- ellipse: true,
26
- polygon: true,
27
- polyline: true,
28
- foreignObject: true
29
- };
30
- const svgNamespace = "http://www.w3.org/2000/svg";
31
- export class View {
32
- constructor(properties) {
33
- this.tagName = properties.tagName;
34
- this.properties = properties.properties;
35
- this.optionsChildren = properties.children;
36
- this.children = unwrap(properties.children);
37
- }
38
- tagName;
39
- optionsChildren;
40
- children = new Array();
41
- buildChildren() {
42
- if (this.element && this.children && this.children.length > 0) {
43
- const documentFragment = document.createDocumentFragment();
44
- this.children.forEach((childView) => {
45
- documentFragment.appendChild(childView.render());
46
- });
47
- this.element.appendChild(documentFragment);
48
- }
49
- }
50
- element;
51
- properties;
52
- subscriptions = new Array();
53
- build() {
54
- applyViewModelToElement(this.properties, this.element, this.subscriptions);
55
- if (this.children) {
56
- this.buildChildren();
57
- }
58
- if (isSubscribable(this.optionsChildren)) {
59
- this.subscriptions.push(this.optionsChildren.subscribe((children) => {
60
- this.setChildren(...children);
61
- }));
62
- }
63
- }
64
- remove() {
65
- if (this.element) {
66
- if (this.element.remove) {
67
- this.element.remove();
68
- }
69
- else {
70
- if (this.element.parentElement) {
71
- this.element.parentElement.removeChild(this.element);
72
- }
73
- }
74
- this.element = null;
75
- }
76
- }
77
- addChild(child) {
78
- this.children.push(child);
79
- this.buildChildren();
80
- return this;
81
- }
82
- setChildren(...children) {
83
- this.empty();
84
- this.children = children;
85
- this.buildChildren();
86
- return this;
87
- }
88
- empty() {
89
- this.children = [];
90
- if (this.element) {
91
- this.element.innerHTML = "";
92
- while (this.element.firstChild) {
93
- this.element.removeChild(this.element.firstChild);
94
- }
95
- }
96
- }
97
- render() {
98
- if (this.element) {
99
- this.remove();
100
- }
101
- if (typeof this.build === "function") {
102
- if (svgTags.hasOwnProperty(this.tagName)) {
103
- this.element = document.createElementNS(svgNamespace, this.tagName);
104
- }
105
- else {
106
- this.element = document.createElement(this.tagName);
107
- }
108
- this.build();
109
- return this.element;
110
- }
111
- throw "The build method of this UiElement has not been defined";
112
- }
113
- dispose() {
114
- for (let subscription of this.subscriptions) {
115
- subscription.dispose();
116
- }
117
- for (let child of this.children) {
118
- child.dispose();
119
- }
120
- }
121
- focus(options) {
122
- if (this.element) {
123
- this.element.focus(options);
124
- }
125
- }
126
- }
127
- export var viewDictionary = new Map();
128
- export function registerView(viewModel, resolver) {
129
- viewDictionary.set(viewModel.prototype.constructor, resolver);
130
- }
131
- export function getView(viewModel) {
132
- if (viewModel && viewModel.constructor) {
133
- const view = viewDictionary.get(viewModel.constructor);
134
- if (view.prototype) {
135
- return new view(viewModel);
136
- }
137
- if (typeof view === "function") {
138
- return view(viewModel);
139
- }
140
- }
141
- return null;
142
- }
143
- export function render(viewModel) {
144
- const view = getView(viewModel);
145
- if (view && view.render) {
146
- return view.render();
147
- }
148
- return null;
149
- }
150
- //# sourceMappingURL=View.js.map
1
+ import "tocca";
2
+ import { unwrap, isSubscribable } from "./observable";
3
+ import { applyBindings } from "./properties";
4
+ const htmlTags = {
5
+ a: true,
6
+ div: true,
7
+ img: true,
8
+ pre: true,
9
+ form: true,
10
+ span: true,
11
+ input: true,
12
+ button: true,
13
+ select: true,
14
+ textarea: true
15
+ };
16
+ const svgTags = {
17
+ g: true,
18
+ svg: true,
19
+ rect: true,
20
+ text: true,
21
+ line: true,
22
+ title: true,
23
+ circle: true,
24
+ pattern: true,
25
+ ellipse: true,
26
+ polygon: true,
27
+ polyline: true,
28
+ foreignObject: true
29
+ };
30
+ const svgNamespace = "http://www.w3.org/2000/svg";
31
+ export class Element {
32
+ constructor(options, children) {
33
+ this.tagName = options.tagName;
34
+ this.properties = options.properties;
35
+ this.optionsChildren = children;
36
+ this.children = unwrap(children);
37
+ }
38
+ tagName;
39
+ optionsChildren;
40
+ children = new Array();
41
+ buildChildren() {
42
+ if (this.element && this.children && this.children.length > 0) {
43
+ const documentFragment = document.createDocumentFragment();
44
+ for (let child of this.children) {
45
+ this.element.appendChild(child.render());
46
+ }
47
+ this.element.appendChild(documentFragment);
48
+ }
49
+ }
50
+ element;
51
+ properties;
52
+ subscriptions = new Array();
53
+ build() {
54
+ applyBindings(this.properties, this.element, this.subscriptions);
55
+ if (this.children) {
56
+ this.buildChildren();
57
+ }
58
+ if (isSubscribable(this.optionsChildren)) {
59
+ this.subscriptions.push(this.optionsChildren.subscribe((children) => {
60
+ this.setChildren(...children);
61
+ }));
62
+ }
63
+ }
64
+ remove() {
65
+ if (this.element) {
66
+ if (this.element.remove) {
67
+ this.element.remove();
68
+ }
69
+ else {
70
+ if (this.element.parentElement) {
71
+ this.element.parentElement.removeChild(this.element);
72
+ }
73
+ }
74
+ this.element = null;
75
+ }
76
+ }
77
+ addChild(child) {
78
+ this.children.push(child);
79
+ this.buildChildren();
80
+ return this;
81
+ }
82
+ setChildren(...children) {
83
+ this.empty();
84
+ this.children = children;
85
+ this.buildChildren();
86
+ return this;
87
+ }
88
+ empty() {
89
+ this.children = [];
90
+ if (this.element) {
91
+ this.element.innerHTML = "";
92
+ while (this.element.firstChild) {
93
+ this.element.removeChild(this.element.firstChild);
94
+ }
95
+ }
96
+ }
97
+ render() {
98
+ if (this.element) {
99
+ this.remove();
100
+ }
101
+ if (typeof this.build === "function") {
102
+ if (svgTags.hasOwnProperty(this.tagName)) {
103
+ this.element = document.createElementNS(svgNamespace, this.tagName);
104
+ }
105
+ else {
106
+ this.element = document.createElement(this.tagName);
107
+ }
108
+ this.build();
109
+ return this.element;
110
+ }
111
+ throw "The build method of this UiElement has not been defined";
112
+ }
113
+ unmount() {
114
+ const properties = this.properties;
115
+ console.log("Unmount element " + properties.elementType);
116
+ if (this.children) {
117
+ for (let child of this.children) {
118
+ child.unmount();
119
+ }
120
+ }
121
+ for (let subscription of this.subscriptions) {
122
+ subscription.dispose();
123
+ }
124
+ }
125
+ focus(options) {
126
+ if (this.element) {
127
+ this.element.focus(options);
128
+ }
129
+ }
130
+ }
131
+ export function element(options, children) {
132
+ return new Element(options, children);
133
+ }
134
+ var elementDictionary = new Map();
135
+ export function registerElement(constructor, element) {
136
+ elementDictionary.set(constructor, element);
137
+ }
138
+ export function getElement(properties) {
139
+ if (properties && properties.constructor) {
140
+ const element = elementDictionary.get(properties.constructor);
141
+ if (element.prototype) {
142
+ return new element(properties);
143
+ }
144
+ if (typeof element === "function") {
145
+ return element(properties);
146
+ }
147
+ }
148
+ return null;
149
+ }
150
+ export function render(properties) {
151
+ const view = getElement(properties);
152
+ if (view && view.render) {
153
+ return view.render();
154
+ }
155
+ return null;
156
+ }
157
+ //# sourceMappingURL=element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../src/framework/element.ts"],"names":[],"mappings":"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"}