jpf-mobx 1.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 (299) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +21 -0
  3. package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.d.ts +0 -0
  4. package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.js +1 -0
  5. package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.js.map +1 -0
  6. package/dist/controls/codeMirror/JsonEditor/JsonEditor.d.ts +0 -0
  7. package/dist/controls/codeMirror/JsonEditor/JsonEditor.js +1 -0
  8. package/dist/controls/codeMirror/JsonEditor/JsonEditor.js.map +1 -0
  9. package/dist/controls/codeMirror/index.d.ts +0 -0
  10. package/dist/controls/codeMirror/index.js +1 -0
  11. package/dist/controls/codeMirror/index.js.map +1 -0
  12. package/dist/controls/custom/FileSelector/FileSelector.d.ts +0 -0
  13. package/dist/controls/custom/FileSelector/FileSelector.js +1 -0
  14. package/dist/controls/custom/FileSelector/FileSelector.js.map +1 -0
  15. package/dist/controls/custom/LabeledControl/LabeledControl.d.ts +15 -0
  16. package/dist/controls/custom/LabeledControl/LabeledControl.js +37 -0
  17. package/dist/controls/custom/LabeledControl/LabeledControl.js.map +1 -0
  18. package/dist/controls/custom/ListItem/ListItem.d.ts +0 -0
  19. package/dist/controls/custom/ListItem/ListItem.js +1 -0
  20. package/dist/controls/custom/ListItem/ListItem.js.map +1 -0
  21. package/dist/controls/custom/index.d.ts +1 -0
  22. package/dist/controls/custom/index.js +2 -0
  23. package/dist/controls/custom/index.js.map +1 -0
  24. package/dist/controls/html/Button/Button.d.ts +0 -0
  25. package/dist/controls/html/Button/Button.js +1 -0
  26. package/dist/controls/html/Button/Button.js.map +1 -0
  27. package/dist/controls/html/Div/Div.d.ts +14 -0
  28. package/dist/controls/html/Div/Div.js +25 -0
  29. package/dist/controls/html/Div/Div.js.map +1 -0
  30. package/dist/controls/html/Image/Image.d.ts +16 -0
  31. package/dist/controls/html/Image/Image.js +29 -0
  32. package/dist/controls/html/Image/Image.js.map +1 -0
  33. package/dist/controls/html/Input/Input.d.ts +0 -0
  34. package/dist/controls/html/Input/Input.js +1 -0
  35. package/dist/controls/html/Input/Input.js.map +1 -0
  36. package/dist/controls/html/Select/Select.d.ts +0 -0
  37. package/dist/controls/html/Select/Select.js +1 -0
  38. package/dist/controls/html/Select/Select.js.map +1 -0
  39. package/dist/controls/html/Span/Span.d.ts +11 -0
  40. package/dist/controls/html/Span/Span.js +23 -0
  41. package/dist/controls/html/Span/Span.js.map +1 -0
  42. package/dist/controls/html/index.d.ts +3 -0
  43. package/dist/controls/html/index.js +4 -0
  44. package/dist/controls/html/index.js.map +1 -0
  45. package/dist/controls/index.d.ts +6 -0
  46. package/dist/controls/index.js +7 -0
  47. package/dist/controls/index.js.map +1 -0
  48. package/dist/controls/jsonViewAwesome/index.d.ts +0 -0
  49. package/dist/controls/jsonViewAwesome/index.js +1 -0
  50. package/dist/controls/jsonViewAwesome/index.js.map +1 -0
  51. package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.d.ts +0 -0
  52. package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.js +1 -0
  53. package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.js.map +1 -0
  54. package/dist/controls/kendo/Chart/Chart.d.ts +0 -0
  55. package/dist/controls/kendo/Chart/Chart.js +1 -0
  56. package/dist/controls/kendo/Chart/Chart.js.map +1 -0
  57. package/dist/controls/kendo/Culture/Culture.d.ts +1 -0
  58. package/dist/controls/kendo/Culture/Culture.js +26 -0
  59. package/dist/controls/kendo/Culture/Culture.js.map +1 -0
  60. package/dist/controls/kendo/DataSource/DataSource.d.ts +4 -0
  61. package/dist/controls/kendo/DataSource/DataSource.js +2 -0
  62. package/dist/controls/kendo/DataSource/DataSource.js.map +1 -0
  63. package/dist/controls/kendo/Dialog/Dialog.d.ts +0 -0
  64. package/dist/controls/kendo/Dialog/Dialog.js +1 -0
  65. package/dist/controls/kendo/Dialog/Dialog.js.map +1 -0
  66. package/dist/controls/kendo/Editor/Editor.d.ts +0 -0
  67. package/dist/controls/kendo/Editor/Editor.js +1 -0
  68. package/dist/controls/kendo/Editor/Editor.js.map +1 -0
  69. package/dist/controls/kendo/Grid/Grid.d.ts +0 -0
  70. package/dist/controls/kendo/Grid/Grid.js +1 -0
  71. package/dist/controls/kendo/Grid/Grid.js.map +1 -0
  72. package/dist/controls/kendo/Menu/Menu.d.ts +0 -0
  73. package/dist/controls/kendo/Menu/Menu.js +1 -0
  74. package/dist/controls/kendo/Menu/Menu.js.map +1 -0
  75. package/dist/controls/kendo/ObservableObject/ObservableObject.d.ts +0 -0
  76. package/dist/controls/kendo/ObservableObject/ObservableObject.js +1 -0
  77. package/dist/controls/kendo/ObservableObject/ObservableObject.js.map +1 -0
  78. package/dist/controls/kendo/Tree/Tree.d.ts +0 -0
  79. package/dist/controls/kendo/Tree/Tree.js +1 -0
  80. package/dist/controls/kendo/Tree/Tree.js.map +1 -0
  81. package/dist/controls/kendo/index.d.ts +0 -0
  82. package/dist/controls/kendo/index.js +1 -0
  83. package/dist/controls/kendo/index.js.map +1 -0
  84. package/dist/controls/leaflet/LabelControl/LabelControl.d.ts +12 -0
  85. package/dist/controls/leaflet/LabelControl/LabelControl.js +34 -0
  86. package/dist/controls/leaflet/LabelControl/LabelControl.js.map +1 -0
  87. package/dist/controls/leaflet/Map/Map.d.ts +0 -0
  88. package/dist/controls/leaflet/Map/Map.js +1 -0
  89. package/dist/controls/leaflet/Map/Map.js.map +1 -0
  90. package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.d.ts +8 -0
  91. package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.js +14 -0
  92. package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.js.map +1 -0
  93. package/dist/controls/leaflet/PointerEvent/PointerEvent.d.ts +2 -0
  94. package/dist/controls/leaflet/PointerEvent/PointerEvent.js +8 -0
  95. package/dist/controls/leaflet/PointerEvent/PointerEvent.js.map +1 -0
  96. package/dist/controls/leaflet/index.d.ts +3 -0
  97. package/dist/controls/leaflet/index.js +4 -0
  98. package/dist/controls/leaflet/index.js.map +1 -0
  99. package/dist/controls/svg/Circle/Circle.d.ts +0 -0
  100. package/dist/controls/svg/Circle/Circle.js +1 -0
  101. package/dist/controls/svg/Circle/Circle.js.map +1 -0
  102. package/dist/controls/svg/Ellipse/Ellipse.d.ts +0 -0
  103. package/dist/controls/svg/Ellipse/Ellipse.js +1 -0
  104. package/dist/controls/svg/Ellipse/Ellipse.js.map +1 -0
  105. package/dist/controls/svg/ForeignObject/ForeignObject.d.ts +0 -0
  106. package/dist/controls/svg/ForeignObject/ForeignObject.js +1 -0
  107. package/dist/controls/svg/ForeignObject/ForeignObject.js.map +1 -0
  108. package/dist/controls/svg/Group/Group.d.ts +0 -0
  109. package/dist/controls/svg/Group/Group.js +1 -0
  110. package/dist/controls/svg/Group/Group.js.map +1 -0
  111. package/dist/controls/svg/Line/Line.d.ts +0 -0
  112. package/dist/controls/svg/Line/Line.js +1 -0
  113. package/dist/controls/svg/Line/Line.js.map +1 -0
  114. package/dist/controls/svg/Pattern/Pattern.d.ts +0 -0
  115. package/dist/controls/svg/Pattern/Pattern.js +1 -0
  116. package/dist/controls/svg/Pattern/Pattern.js.map +1 -0
  117. package/dist/controls/svg/Polygon/Polygon.d.ts +0 -0
  118. package/dist/controls/svg/Polygon/Polygon.js +1 -0
  119. package/dist/controls/svg/Polygon/Polygon.js.map +1 -0
  120. package/dist/controls/svg/Polyline/Polyline.d.ts +0 -0
  121. package/dist/controls/svg/Polyline/Polyline.js +1 -0
  122. package/dist/controls/svg/Polyline/Polyline.js.map +1 -0
  123. package/dist/controls/svg/Rectangle/Rectangle.d.ts +0 -0
  124. package/dist/controls/svg/Rectangle/Rectangle.js +1 -0
  125. package/dist/controls/svg/Rectangle/Rectangle.js.map +1 -0
  126. package/dist/controls/svg/Svg/Svg.d.ts +0 -0
  127. package/dist/controls/svg/Svg/Svg.js +1 -0
  128. package/dist/controls/svg/Svg/Svg.js.map +1 -0
  129. package/dist/controls/svg/Text/Text.d.ts +0 -0
  130. package/dist/controls/svg/Text/Text.js +1 -0
  131. package/dist/controls/svg/Text/Text.js.map +1 -0
  132. package/dist/controls/svg/Title/Title.d.ts +0 -0
  133. package/dist/controls/svg/Title/Title.js +1 -0
  134. package/dist/controls/svg/Title/Title.js.map +1 -0
  135. package/dist/controls/svg/index.d.ts +0 -0
  136. package/dist/controls/svg/index.js +1 -0
  137. package/dist/controls/svg/index.js.map +1 -0
  138. package/dist/controls/svg/svg.d.ts +0 -0
  139. package/dist/controls/svg/svg.js +1 -0
  140. package/dist/controls/svg/svg.js.map +1 -0
  141. package/dist/framework/View.d.ts +62 -0
  142. package/dist/framework/View.js +148 -0
  143. package/dist/framework/View.js.map +1 -0
  144. package/dist/framework/ViewModel.d.ts +42 -0
  145. package/dist/framework/ViewModel.js +287 -0
  146. package/dist/framework/ViewModel.js.map +1 -0
  147. package/dist/framework/attributes.d.ts +90 -0
  148. package/dist/framework/attributes.js +2 -0
  149. package/dist/framework/attributes.js.map +1 -0
  150. package/dist/framework/event.d.ts +80 -0
  151. package/dist/framework/event.js +26 -0
  152. package/dist/framework/event.js.map +1 -0
  153. package/dist/framework/observable.d.ts +9 -0
  154. package/dist/framework/observable.js +24 -0
  155. package/dist/framework/observable.js.map +1 -0
  156. package/dist/framework/style.d.ts +658 -0
  157. package/dist/framework/style.js +154 -0
  158. package/dist/framework/style.js.map +1 -0
  159. package/dist/framework/types.d.ts +87 -0
  160. package/dist/framework/types.js +2 -0
  161. package/dist/framework/types.js.map +1 -0
  162. package/dist/framework/userAgent.d.ts +31 -0
  163. package/dist/framework/userAgent.js +47 -0
  164. package/dist/framework/userAgent.js.map +1 -0
  165. package/dist/index.d.ts +12 -0
  166. package/dist/index.js +13 -0
  167. package/dist/index.js.map +1 -0
  168. package/dist/utilities/blob/blob.d.ts +1 -0
  169. package/dist/utilities/blob/blob.js +18 -0
  170. package/dist/utilities/blob/blob.js.map +1 -0
  171. package/dist/utilities/cookie/cookie.d.ts +3 -0
  172. package/dist/utilities/cookie/cookie.js +27 -0
  173. package/dist/utilities/cookie/cookie.js.map +1 -0
  174. package/dist/utilities/dataReaderTable/dataReaderTable.d.ts +9 -0
  175. package/dist/utilities/dataReaderTable/dataReaderTable.js +24 -0
  176. package/dist/utilities/dataReaderTable/dataReaderTable.js.map +1 -0
  177. package/dist/utilities/fetch/fetch.d.ts +8 -0
  178. package/dist/utilities/fetch/fetch.js +138 -0
  179. package/dist/utilities/fetch/fetch.js.map +1 -0
  180. package/dist/utilities/float/float.d.ts +1 -0
  181. package/dist/utilities/float/float.js +4 -0
  182. package/dist/utilities/float/float.js.map +1 -0
  183. package/dist/utilities/formData/formData.d.ts +1 -0
  184. package/dist/utilities/formData/formData.js +12 -0
  185. package/dist/utilities/formData/formData.js.map +1 -0
  186. package/dist/utilities/html/html.d.ts +1 -0
  187. package/dist/utilities/html/html.js +8 -0
  188. package/dist/utilities/html/html.js.map +1 -0
  189. package/dist/utilities/htmlElement/htmlElement.d.ts +1 -0
  190. package/dist/utilities/htmlElement/htmlElement.js +17 -0
  191. package/dist/utilities/htmlElement/htmlElement.js.map +1 -0
  192. package/dist/utilities/image/image.d.ts +1 -0
  193. package/dist/utilities/image/image.js +2 -0
  194. package/dist/utilities/image/image.js.map +1 -0
  195. package/dist/utilities/index.d.ts +36 -0
  196. package/dist/utilities/index.js +37 -0
  197. package/dist/utilities/index.js.map +1 -0
  198. package/dist/utilities/integer/integer.d.ts +3 -0
  199. package/dist/utilities/integer/integer.js +28 -0
  200. package/dist/utilities/integer/integer.js.map +1 -0
  201. package/dist/utilities/key/key.d.ts +2 -0
  202. package/dist/utilities/key/key.js +7 -0
  203. package/dist/utilities/key/key.js.map +1 -0
  204. package/dist/utilities/navigator/navigator.d.ts +1 -0
  205. package/dist/utilities/navigator/navigator.js +9 -0
  206. package/dist/utilities/navigator/navigator.js.map +1 -0
  207. package/dist/utilities/notification/notification.d.ts +5 -0
  208. package/dist/utilities/notification/notification.js +67 -0
  209. package/dist/utilities/notification/notification.js.map +1 -0
  210. package/dist/utilities/querystring/querystring.d.ts +6 -0
  211. package/dist/utilities/querystring/querystring.js +54 -0
  212. package/dist/utilities/querystring/querystring.js.map +1 -0
  213. package/dist/utilities/router/router.d.ts +19 -0
  214. package/dist/utilities/router/router.js +81 -0
  215. package/dist/utilities/router/router.js.map +1 -0
  216. package/dist/utilities/stylesheet/stylesheet.d.ts +2 -0
  217. package/dist/utilities/stylesheet/stylesheet.js +48 -0
  218. package/dist/utilities/stylesheet/stylesheet.js.map +1 -0
  219. package/dist/utilities/uniqueId/uniqueId.d.ts +1 -0
  220. package/dist/utilities/uniqueId/uniqueId.js +5 -0
  221. package/dist/utilities/uniqueId/uniqueId.js.map +1 -0
  222. package/dist/utilities/webSocket/webSocket.d.ts +1 -0
  223. package/dist/utilities/webSocket/webSocket.js +55 -0
  224. package/dist/utilities/webSocket/webSocket.js.map +1 -0
  225. package/package.json +62 -0
  226. package/src/controls/codeMirror/HtmlEditor/HtmlEditor.ts +153 -0
  227. package/src/controls/codeMirror/JsonEditor/JsonEditor.ts +136 -0
  228. package/src/controls/codeMirror/index.ts +2 -0
  229. package/src/controls/custom/FileSelector/FileSelector.ts +74 -0
  230. package/src/controls/custom/LabeledControl/LabeledControl.ts +58 -0
  231. package/src/controls/custom/ListItem/ListItem.ts +99 -0
  232. package/src/controls/custom/index.ts +3 -0
  233. package/src/controls/html/Button/Button.ts +70 -0
  234. package/src/controls/html/Div/Div.ts +41 -0
  235. package/src/controls/html/Image/Image.ts +46 -0
  236. package/src/controls/html/Input/Input.ts +228 -0
  237. package/src/controls/html/Select/Select.ts +146 -0
  238. package/src/controls/html/Span/Span.ts +38 -0
  239. package/src/controls/html/index.ts +6 -0
  240. package/src/controls/index.ts +15 -0
  241. package/src/controls/jsonViewAwesome/index.ts +1 -0
  242. package/src/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.ts +91 -0
  243. package/src/controls/kendo/Chart/Chart.ts +97 -0
  244. package/src/controls/kendo/Culture/Culture.ts +32 -0
  245. package/src/controls/kendo/DataSource/DataSource.ts +4 -0
  246. package/src/controls/kendo/Dialog/Dialog.ts +64 -0
  247. package/src/controls/kendo/Editor/Editor.ts +142 -0
  248. package/src/controls/kendo/Grid/Grid.ts +291 -0
  249. package/src/controls/kendo/Menu/Menu.ts +125 -0
  250. package/src/controls/kendo/ObservableObject/ObservableObject.ts +45 -0
  251. package/src/controls/kendo/Tree/Tree.ts +147 -0
  252. package/src/controls/kendo/index.ts +9 -0
  253. package/src/controls/leaflet/LabelControl/LabelControl.ts +42 -0
  254. package/src/controls/leaflet/Map/Map.ts +180 -0
  255. package/src/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.ts +19 -0
  256. package/src/controls/leaflet/PointerEvent/PointerEvent.ts +9 -0
  257. package/src/controls/leaflet/index.ts +4 -0
  258. package/src/controls/svg/Circle/Circle.ts +34 -0
  259. package/src/controls/svg/Ellipse/Ellipse.ts +36 -0
  260. package/src/controls/svg/ForeignObject/ForeignObject.ts +38 -0
  261. package/src/controls/svg/Group/Group.ts +38 -0
  262. package/src/controls/svg/Line/Line.ts +36 -0
  263. package/src/controls/svg/Pattern/Pattern.ts +49 -0
  264. package/src/controls/svg/Polygon/Polygon.ts +31 -0
  265. package/src/controls/svg/Polyline/Polyline.ts +31 -0
  266. package/src/controls/svg/Rectangle/Rectangle.ts +36 -0
  267. package/src/controls/svg/Svg/Svg.ts +43 -0
  268. package/src/controls/svg/Text/Text.ts +38 -0
  269. package/src/controls/svg/Title/Title.ts +28 -0
  270. package/src/controls/svg/index.ts +13 -0
  271. package/src/controls/svg/svg.ts +20 -0
  272. package/src/framework/View.ts +226 -0
  273. package/src/framework/ViewModel.ts +478 -0
  274. package/src/framework/attributes.ts +92 -0
  275. package/src/framework/event.ts +98 -0
  276. package/src/framework/observable.ts +40 -0
  277. package/src/framework/style.ts +3271 -0
  278. package/src/framework/types.ts +277 -0
  279. package/src/framework/userAgent.ts +51 -0
  280. package/src/index.ts +14 -0
  281. package/src/utilities/blob/blob.ts +19 -0
  282. package/src/utilities/cookie/cookie.ts +28 -0
  283. package/src/utilities/dataReaderTable/dataReaderTable.ts +34 -0
  284. package/src/utilities/fetch/fetch.ts +179 -0
  285. package/src/utilities/float/float.ts +3 -0
  286. package/src/utilities/formData/formData.ts +12 -0
  287. package/src/utilities/html/html.ts +8 -0
  288. package/src/utilities/htmlElement/htmlElement.ts +15 -0
  289. package/src/utilities/image/image.ts +1 -0
  290. package/src/utilities/index.ts +37 -0
  291. package/src/utilities/integer/integer.ts +31 -0
  292. package/src/utilities/key/key.ts +7 -0
  293. package/src/utilities/navigator/navigator.ts +7 -0
  294. package/src/utilities/notification/notification.ts +88 -0
  295. package/src/utilities/querystring/querystring.ts +61 -0
  296. package/src/utilities/router/router.ts +124 -0
  297. package/src/utilities/stylesheet/stylesheet.ts +58 -0
  298. package/src/utilities/uniqueId/uniqueId.ts +5 -0
  299. package/src/utilities/webSocket/webSocket.ts +72 -0
@@ -0,0 +1,291 @@
1
+ //import * as kendo from "@progress/kendo-ui/js/kendo.grid.js";
2
+ //import { View, registerView } from "../../../framework/View";
3
+ //import { Properties, ViewModel, extendProperties } from "../../../framework/ViewModel";
4
+ //import { ObservableArrayProperty, ObservableProperty } from "../../../framework/observable";
5
+ //import { unwrap, utils, Subscribable, isSubscribable } from "knockout";
6
+ //import { ChangedItem } from "../DataSource/DataSource";
7
+ //import { knockoutObservableToKendoObservableArray, getUnderlyingObject } from "../ObservableObject/ObservableObject";
8
+
9
+ //export interface GridProperties<TItem> extends Properties {
10
+ // items?: Array<TItem> | Subscribable<Array<TItem>>;
11
+ // idProperty?: keyof TItem;
12
+ // columns?: Array<kendo.ui.GridColumn>;
13
+ // pageSize?: number;
14
+ // sortable?: boolean | kendo.ui.GridSortable;
15
+ // scrollable?: kendo.ui.GridScrollable;
16
+ // editable?: kendo.ui.GridEditable;
17
+ // filterable?: boolean | kendo.ui.GridFilterable | Subscribable<boolean | kendo.ui.GridFilterable>;
18
+ // toolbar?: string | Array<string>;
19
+ // selectable?: boolean | string;
20
+ // selectedItem?: TItem | Subscribable<TItem>;
21
+ // selectedItems?: Array<TItem> | Subscribable<Array<TItem>>;
22
+ // onDataSourceChange?: (items: Array<ChangedItem>, dataSource: kendo.data.DataSource) => void;
23
+ // onDataSourceAdd?: (items: Array<ChangedItem>, dataSource: kendo.data.DataSource) => void;
24
+ // onDataSourceRemove?: (items: Array<ChangedItem>, dataSource: kendo.data.DataSource) => void;
25
+ // onGridChange?: (selectedItems: Array<any>, grid: kendo.ui.Grid) => void;
26
+ // onRowContextMenu?: (event: PointerEvent, dataItem: any) => void;
27
+ //}
28
+
29
+ //export class GridView<TItem = any> extends View<GridProperties<TItem>> {
30
+ // constructor(properties: GridProperties<TItem>) {
31
+ // super(
32
+ // {
33
+ // tagName: "div",
34
+ // properties: extendProperties(
35
+ // {
36
+ // viewType: "KendoGrid"
37
+ // },
38
+ // properties
39
+ // )
40
+ // }
41
+ // );
42
+ // }
43
+
44
+ // private grid: kendo.ui.Grid;
45
+ // private dataSource: kendo.data.DataSource;
46
+
47
+ // private getItemById(id) {
48
+ // if (this.properties.idProperty) {
49
+ // const items = this.dataSource.data() as any as Array<any>;
50
+ // return utils.arrayFirst(items, (item) => { return item[this.properties.idProperty] === id });
51
+ // }
52
+
53
+ // throw "Can only getItem when idProperty is set";
54
+ // }
55
+
56
+ // build(): void {
57
+ // super.build();
58
+
59
+ // const viewModel = this.properties;
60
+
61
+ // this.dataSource = new kendo.data.DataSource({
62
+ // data: knockoutObservableToKendoObservableArray(viewModel.items),
63
+ // pageSize: this.properties.pageSize || 30,
64
+ // change: (event: kendo.data.DataSourceChangeEvent) => {
65
+ // var items = event.items as Array<ChangedItem>;
66
+ // switch (event.action) {
67
+ // case "itemchange":
68
+ // if (viewModel.onDataSourceChange) {
69
+ // viewModel.onDataSourceChange(items, event.sender);
70
+ // }
71
+ // break;
72
+
73
+ // case "add":
74
+ // if (viewModel.onDataSourceAdd) {
75
+ // viewModel.onDataSourceAdd(items, event.sender);
76
+ // }
77
+ // break;
78
+
79
+ // case "remove":
80
+ // if (viewModel.onDataSourceRemove) {
81
+ // viewModel.onDataSourceRemove(items, event.sender);
82
+ // }
83
+ // break;
84
+ // }
85
+ // }
86
+ // });
87
+
88
+ // this.grid = new kendo.ui.Grid(this.element, {
89
+ // dataSource: this.dataSource,
90
+ // columns: this.properties.columns,
91
+ // toolbar: this.properties.toolbar,
92
+ // scrollable: this.properties.scrollable,
93
+ // sortable: this.properties.sortable,
94
+ // editable: this.properties.editable,
95
+ // filterable: unwrap(this.properties.filterable),
96
+ // change: (event: kendo.ui.GridChangeEvent) => {
97
+ // if (this.properties.selectedItem) {
98
+ // const selectedItem = getSelectedDataItem(event.sender);
99
+ // const observableProperty = this.properties.selectedItem as ObservableProperty;
100
+ // if (observableProperty.set) {
101
+ // observableProperty.set(selectedItem);
102
+ // }
103
+ // }
104
+ // if (this.properties.selectedItems) {
105
+ // const selectedItems = getSelectedDataItems<TItem>(event.sender);
106
+ // const observableArrayProperty = this.properties.selectedItems as ObservableArrayProperty<TItem>;
107
+ // if (observableArrayProperty.set) {
108
+ // observableArrayProperty.set(selectedItems);
109
+ // }
110
+ // }
111
+
112
+ // if (this.properties.onGridChange) {
113
+ // this.properties.onGridChange(getSelectedDataItems<TItem>(event.sender), event.sender);
114
+ // }
115
+ // },
116
+ // selectable: this.properties.selectable
117
+ // });
118
+
119
+ // if (viewModel.onRowContextMenu) {
120
+ // this.grid.table.contextmenu((event: PointerEvent) => {
121
+ // event.preventDefault();
122
+ // var target = event.target;
123
+ // var row: HTMLTableRowElement;
124
+
125
+ // if (target instanceof HTMLElement) {
126
+ // switch (target.tagName.toLowerCase()) {
127
+ // case "td":
128
+ // row = target.parentElement as HTMLTableRowElement;
129
+ // break;
130
+
131
+ // case "tr":
132
+ // row = target as HTMLTableRowElement;
133
+ // break;
134
+ // }
135
+ // }
136
+
137
+ // if (row) {
138
+ // let dataItem = this.grid.dataItem(row);
139
+ // if (dataItem) {
140
+ // const underlyingObject = getUnderlyingObject(dataItem);
141
+ // if (underlyingObject) {
142
+ // dataItem = underlyingObject as any;
143
+ // }
144
+ // setTimeout(() => {
145
+ // viewModel.onRowContextMenu(event, dataItem);
146
+ // });
147
+
148
+ // };
149
+ // }
150
+ // });
151
+ // }
152
+ // if (isSubscribable(viewModel.items)) {
153
+ // this.subscriptions.push(
154
+ // viewModel.items.subscribe((items) => {
155
+ // if (items) {
156
+ // this.dataSource.data(new kendo.data.ObservableArray(knockoutObservableToKendoObservableArray(items)));
157
+ // } else {
158
+ // this.dataSource.data([]);
159
+ // }
160
+ // })
161
+ // );
162
+ // }
163
+ // if (isSubscribable(viewModel.filterable)) {
164
+ // this.subscriptions.push(
165
+ // viewModel.filterable.subscribe((filterable) => {
166
+ // this.grid.setOptions({ filterable: filterable });
167
+ // })
168
+ // );
169
+ // }
170
+
171
+ // if (isSubscribable(viewModel.selectedItem)) {
172
+ // this.subscriptions.push(
173
+ // viewModel.selectedItem.subscribe((selectedItem: TItem) => {
174
+ // if (selectedItem && viewModel.idProperty) {
175
+ // setTimeout(
176
+ // () => {
177
+ // const id = selectedItem[viewModel.idProperty];
178
+ // const item = this.getItemById(id);
179
+ // //Remove previous selected row
180
+ // this.grid.tbody.find("tr.k-state-selected").removeClass("k-state-selected");
181
+ // //Add the selected class to the newly selected row
182
+ // this.grid.tbody.find("tr[data-uid='" + item.uid + "']").addClass("k-state-selected");
183
+ // },
184
+ // 10
185
+ // );
186
+ // } else {
187
+ // this.grid.select();
188
+ // }
189
+ // })
190
+ // );
191
+ // }
192
+
193
+ // if (isSubscribable(viewModel.selectedItems)) {
194
+ // this.subscriptions.push(
195
+ // viewModel.selectedItems.subscribe((selectedItems: Array<TItem>) => {
196
+ // if (selectedItems && selectedItems.length > 0 && viewModel.idProperty) {
197
+ // setTimeout(
198
+ // () => {
199
+ // //Remove all previous selected rows
200
+ // this.grid.tbody.find("tr.k-state-selected").removeClass("k-state-selected");
201
+ // for (let index = 0; index < selectedItems.length; index++) {
202
+ // const selectedItem = selectedItems[index];
203
+ // const id = selectedItem[viewModel.idProperty];
204
+ // const item = this.getItemById(id);
205
+
206
+ // //Add the selected class to the newly selected row
207
+ // this.grid.tbody.find("tr[data-uid='" + item.uid + "']").addClass("k-state-selected");
208
+ // }
209
+ // },
210
+ // 10
211
+ // );
212
+ // } else {
213
+ // this.grid.select();
214
+ // }
215
+ // })
216
+ // );
217
+ // }
218
+
219
+ // //Force the grid to repaint to show the scrollbar properly
220
+ // setTimeout(() => {
221
+ // this.grid.resize(true);
222
+ // }, 5);
223
+ // }
224
+ //}
225
+
226
+ //export function gridView<TItem>(properties: GridProperties<TItem>) {
227
+ // return new GridView(properties);
228
+ //}
229
+
230
+ //export function getSelectedDataItem<TDataItem>(grid: kendo.ui.Grid): TDataItem {
231
+ // const selection = grid.select() as any as Array<any>;
232
+ // if (selection.length === 1) {
233
+ // const dataItem = grid.dataItem(selection[0]);
234
+ // const underlyingObject = getUnderlyingObject(dataItem);
235
+ // if (underlyingObject) {
236
+ // return underlyingObject as any as TDataItem;
237
+ // }
238
+ // return dataItem.toJSON() as TDataItem;
239
+ // }
240
+
241
+ // return null;
242
+ //}
243
+
244
+ //export function getSelectedDataItems<TItem>(grid: kendo.ui.Grid): Array<TItem> {
245
+ // const selection = grid.select() as any as Array<any>;
246
+ // const selectedDataItems = new Array();
247
+ // if (selection && selection.length > 0) {
248
+ // for (let index = 0; index < selection.length; index++) {
249
+ // const dataItem = grid.dataItem(selection[index]);
250
+ // const underlyingObject = getUnderlyingObject(dataItem);
251
+ // if (underlyingObject) {
252
+ // selectedDataItems.push(underlyingObject);
253
+ // } else {
254
+ // selectedDataItems.push(dataItem.toJSON());
255
+ // }
256
+ // }
257
+ // }
258
+
259
+ // return selectedDataItems;
260
+ //}
261
+
262
+ //export class GridViewModel<TItem = any> extends ViewModel implements GridProperties<TItem>
263
+ //{
264
+ // constructor(properties: GridProperties<TItem>) {
265
+ // super();
266
+ // this.setProperties(this, properties);
267
+ // }
268
+
269
+ // items?: Array<TItem> | Subscribable<Array<TItem>>;
270
+ // idProperty?: keyof TItem;
271
+ // columns?: Array<kendo.ui.GridColumn>;
272
+ // pageSize?: number;
273
+ // sortable?: boolean | kendo.ui.GridSortable;
274
+ // scrollable?: kendo.ui.GridScrollable;
275
+ // editable?: kendo.ui.GridEditable;
276
+ // filterable?: boolean | kendo.ui.GridFilterable | Subscribable<boolean | kendo.ui.GridFilterable>;
277
+ // toolbar?: string | Array<string>;
278
+ // selectable?: boolean | string;
279
+ // selectedItem?: TItem | Subscribable<TItem>;
280
+ // selectedItems?: Array<TItem> | Subscribable<Array<TItem>>;
281
+ // onDataSourceChange?: (items: Array<ChangedItem>, dataSource: kendo.data.DataSource) => void;
282
+ // onDataSourceAdd?: (items: Array<ChangedItem>, dataSource: kendo.data.DataSource) => void;
283
+ // onDataSourceRemove?: (items: Array<ChangedItem>, dataSource: kendo.data.DataSource) => void;
284
+ // onGridChange?: (selectedItems: Array<any>, grid: kendo.ui.Grid) => void;
285
+ // onRowContextMenu?: (event: PointerEvent, dataItem: any) => void;
286
+ //}
287
+
288
+ //registerView(
289
+ // GridViewModel,
290
+ // GridView
291
+ //);
@@ -0,0 +1,125 @@
1
+ //import * as kendo from "@progress/kendo-ui/js/kendo.menu.js";
2
+ //import { isObservable, unwrap, Subscribable } from "knockout";
3
+ //import { View, render } from "../../../framework/View";
4
+ //import { ViewModel, Properties, applyBindings as applyViewModelToElement, extendProperties } from "../../../framework/ViewModel";
5
+ //import { HierarchicalListItemProperties , HierarchicalListItemViewModel} from "../../custom/ListItem/ListItem";
6
+ //const getContent = "getContent";
7
+
8
+ //export interface MenuProperties extends Properties {
9
+ // items?: Array<HierarchicalListItemProperties| HierarchicalListItemViewModel > | Subscribable<Array<HierarchicalListItemProperties| HierarchicalListItemViewModel>>;
10
+ //}
11
+
12
+ //export class MenuView extends View<MenuProperties> {
13
+ // constructor(properties: MenuProperties) {
14
+ // super(
15
+ // {
16
+ // tagName: "div",
17
+ // properties: extendProperties(
18
+ // {
19
+ // classNames: ["Menu"],
20
+ // viewType: "KendoMenu"
21
+ // },
22
+ // properties
23
+ // )
24
+ // }
25
+ // );
26
+ // }
27
+
28
+ // private menu: kendo.ui.Menu;
29
+ // private dataSource: kendo.data.HierarchicalDataSource;
30
+
31
+ // build(): void {
32
+ // super.build();
33
+
34
+ // const viewModel = this.properties;
35
+
36
+ // this.dataSource = new kendo.data.HierarchicalDataSource({});
37
+ // this.menu = new kendo.ui.Menu(this.element, {
38
+ // dataTextField: "text",
39
+ // dataSource: this.dataSource
40
+ // });
41
+
42
+ // this.menu.bind(
43
+ // "dataBound",
44
+ // (event) => {
45
+ // //Find all menuitems that needs to be post rendered.
46
+ // event.sender.wrapper.find(".k-menu-item[postrender]").each((index, element: HTMLElement) => {
47
+ // const uid = element.getAttribute("data-uid");
48
+ // const hierarchicalListItemViewModel = this.dataSource.getByUid(uid) as any as HierarchicalListItemProperties;
49
+ // if (hierarchicalListItemViewModel) {
50
+ // applyViewModelToElement(hierarchicalListItemViewModel, element, this.subscriptions);
51
+
52
+
53
+ // if (hierarchicalListItemViewModel[getContent]) {
54
+ // const content = hierarchicalListItemViewModel[getContent]();
55
+ // if (content instanceof ViewModel) {
56
+ // const firstChild = element.firstElementChild as HTMLElement;
57
+ // firstChild.style.padding = "0";
58
+ // firstChild.innerHTML = "";
59
+ // firstChild.appendChild(render(content));
60
+ // }
61
+ // }
62
+ // }
63
+ // element.removeAttribute("postrender");
64
+ // });
65
+ // }
66
+ // );
67
+
68
+ // this.buildItems(unwrap(viewModel.items));
69
+ // if (isObservable(viewModel.items)) {
70
+ // this.subscriptions.push(
71
+ // viewModel.items.subscribe((items) => {
72
+ // this.buildItems(items);
73
+ // })
74
+ // );
75
+ // }
76
+ // }
77
+
78
+ // private buildItems(listItems: Array<HierarchicalListItemProperties| HierarchicalListItemViewModel>) {
79
+ // const itemDictionary: { [id: string]: HierarchicalListItemProperties } = {};
80
+ // const topLevelItems = new Array<HierarchicalListItemProperties>();
81
+
82
+ // if (listItems) {
83
+ // //Add all visible menuItems to a dictionary
84
+ // listItems.forEach((listItem) => {
85
+ // if (listItem as any instanceof ViewModel) {
86
+ // listItem["attr"] = { postrender: true };
87
+ // }
88
+
89
+ // if (typeof listItem.text !== "string") {
90
+ // var content = listItem.text;
91
+ // listItem[getContent] = () => { return content };
92
+ // listItem.text = "<post>";
93
+ // }
94
+ // if (unwrap(listItem.visible) !== false) {
95
+ // itemDictionary[listItem.id] = listItem;
96
+ // }
97
+ // });
98
+
99
+ // //Add all the children to their parent
100
+ // Object.keys(itemDictionary).forEach((key) => {
101
+ // const menuItem = itemDictionary[key];
102
+
103
+ // if (menuItem.parentId) {
104
+ // //Add the menuItem to its parent
105
+ // const parent = itemDictionary[menuItem.parentId];
106
+ // if (parent) {
107
+ // if (!parent.items) {
108
+ // parent.items = [];
109
+ // }
110
+ // parent.items.push(itemDictionary[menuItem.id]);
111
+ // }
112
+ // } else {
113
+ // //Add the menuItem to the top level items
114
+ // topLevelItems.push(itemDictionary[menuItem.id]);
115
+ // }
116
+ // });
117
+ // }
118
+
119
+ // this.dataSource.data(topLevelItems);
120
+ // }
121
+ //}
122
+
123
+ //export function menuView(properties: MenuProperties) {
124
+ // return new MenuView(properties);
125
+ //}
@@ -0,0 +1,45 @@
1
+ //import { Subscribable, isObservable, unwrap } from "knockout";
2
+ //import * as kendo from "@progress/kendo-ui/js/kendo.data.js";
3
+
4
+ //var getUnderlyingObjectFunctionName = "getUnderlyingObject";
5
+
6
+ //export function knockoutObservableToKendoObservable(object: object): kendo.data.ObservableObject {
7
+ // var observableObject = new kendo.data.ObservableObject();
8
+ // observableObject[getUnderlyingObjectFunctionName] = () => {
9
+ // return object;
10
+ // }
11
+ // Object.keys(object).forEach((key: string) => {
12
+ // var value = object[key];
13
+
14
+ // observableObject[key] = unwrap(value);
15
+
16
+ // if (isObservable(value)) {
17
+ // value.subscribe(
18
+ // (newValue) => {
19
+ // observableObject.set(key, newValue);
20
+ // }
21
+ // );
22
+ // }
23
+ // });
24
+
25
+ // return observableObject;
26
+ //}
27
+
28
+ //export function getUnderlyingObject(observableObject: kendo.data.ObservableObject): object {
29
+ // if (observableObject[getUnderlyingObjectFunctionName]) {
30
+ // return observableObject[getUnderlyingObjectFunctionName]();
31
+ // }
32
+ // return null;
33
+ //}
34
+
35
+ //export function knockoutObservableToKendoObservableArray(array: Array<any> | Subscribable<Array<any>>): Array<kendo.data.ObservableObject> {
36
+
37
+ // var observableObjects = new Array<kendo.data.ObservableObject>();
38
+ // if (array) {
39
+ // unwrap(array).forEach((object) => {
40
+ // observableObjects.push(knockoutObservableToKendoObservable(object));
41
+ // });
42
+ // }
43
+
44
+ // return observableObjects;
45
+ //}
@@ -0,0 +1,147 @@
1
+ //import * as kendo from "@progress/kendo-ui/js/kendo.treeview.js";
2
+ //import { isObservable, unwrap, Subscribable } from "knockout";
3
+ //import { View, render } from "../../../framework/View";
4
+ //import { ViewModel, Properties, applyBindings as applyViewModelToElement, extendProperties } from "../../../framework/ViewModel";
5
+ //import { HierarchicalListItemProperties } from "../../custom/ListItem/ListItem";
6
+ //const getContent = "getContent";
7
+
8
+ //export interface TreeProperties extends Properties {
9
+ // items?: Array<HierarchicalListItemProperties> | Subscribable<Array<HierarchicalListItemProperties>>;
10
+ // selectedItem?: HierarchicalListItemProperties | Subscribable<HierarchicalListItemProperties>;
11
+ // select?: (dataItem: any) => void;
12
+ //}
13
+
14
+ //export class TreeView extends View<TreeProperties> {
15
+ // constructor(properties: TreeProperties) {
16
+ // super(
17
+ // {
18
+ // tagName: "div",
19
+ // properties: extendProperties(
20
+ // {
21
+ // viewType: "KendoTree"
22
+ // },
23
+ // properties
24
+ // )
25
+ // }
26
+ // );
27
+ // }
28
+
29
+ // private treeView: kendo.ui.TreeView;
30
+ // private dataSource: kendo.data.HierarchicalDataSource;
31
+
32
+ // build(): void {
33
+ // super.build();
34
+
35
+ // const viewModel = this.properties;
36
+
37
+ // this.dataSource = new kendo.data.HierarchicalDataSource({
38
+ // sort: { field: "order", dir: "asc" }
39
+ // });
40
+
41
+ // this.treeView = new kendo.ui.TreeView(this.element, {
42
+ // dataSource: this.dataSource
43
+ // });
44
+
45
+ // this.treeView.element.removeAttr("tabindex");
46
+
47
+ // if (this.properties.select) {
48
+ // this.treeView.bind(
49
+ // "select",
50
+ // (event: kendo.ui.TreeViewSelectEvent) => {
51
+ // const uid = event.node.getAttribute("data-uid");
52
+ // const dataItem = this.dataSource.getByUid(uid);
53
+ // this.properties.select(dataItem);
54
+ // }
55
+ // );
56
+ // }
57
+ // this.treeView.bind(
58
+ // "dataBound",
59
+ // (event) => {
60
+ // //Find all menuitems that needs to be post rendered.
61
+ // var selectedItem = unwrap(viewModel.selectedItem);
62
+ // if (selectedItem) {
63
+ // event.sender.wrapper.find(".k-item").each((index, element: HTMLElement) => {
64
+ // const uid = element.getAttribute("data-uid");
65
+ // const hierarchicalListItemViewModel = this.dataSource.getByUid(uid) as any as HierarchicalListItemProperties;
66
+ // if (hierarchicalListItemViewModel.id === selectedItem.id) {
67
+ // event.sender.select(element);
68
+ // }
69
+ // });
70
+ // }
71
+
72
+ // event.sender.wrapper.find(".k-item[postrender]").each((index, element: HTMLElement) => {
73
+ // const uid = element.getAttribute("data-uid");
74
+ // const hierarchicalListItemViewModel = this.dataSource.getByUid(uid) as any as HierarchicalListItemProperties;
75
+ // if (hierarchicalListItemViewModel) {
76
+ // applyViewModelToElement(hierarchicalListItemViewModel, element, this.subscriptions);
77
+
78
+ // if (hierarchicalListItemViewModel[getContent]) {
79
+ // const content = hierarchicalListItemViewModel[getContent]();
80
+ // if (content instanceof ViewModel) {
81
+ // const firstChild = element.firstElementChild as HTMLElement;
82
+ // firstChild.style.padding = "0";
83
+ // firstChild.innerHTML = "";
84
+ // firstChild.appendChild(render(content));
85
+ // }
86
+ // }
87
+ // }
88
+ // element.removeAttribute("postrender");
89
+ // });
90
+ // }
91
+ // );
92
+
93
+ // this.buildItems(unwrap(viewModel.items));
94
+ // if (isObservable(viewModel.items)) {
95
+ // this.subscriptions.push(
96
+ // viewModel.items.subscribe((items) => {
97
+ // this.buildItems(items);
98
+ // })
99
+ // );
100
+ // }
101
+ // }
102
+
103
+ // private buildItems(listItems: Array<HierarchicalListItemProperties>) {
104
+ // const itemDictionary: { [id: string]: HierarchicalListItemProperties } = {};
105
+ // const topLevelItems = new Array<HierarchicalListItemProperties>();
106
+
107
+ // if (listItems) {
108
+ // //Add all visible menuItems to a dictionary
109
+ // listItems.forEach((listItem) => {
110
+ // listItem["attr"] = { postrender: true };
111
+ // if (typeof listItem.text !== "string") {
112
+ // var content = listItem.text;
113
+ // listItem[getContent] = () => { return content };
114
+ // listItem.text = "<post>";
115
+ // }
116
+ // if (unwrap(listItem.visible) !== false) {
117
+ // itemDictionary[listItem.id] = listItem;
118
+ // }
119
+ // });
120
+
121
+ // //Add all the children to their parent
122
+ // Object.keys(itemDictionary).forEach((key) => {
123
+ // const menuItem = itemDictionary[key];
124
+
125
+ // if (menuItem.parentId) {
126
+ // //Add the menuItem to its parent
127
+ // const parent = itemDictionary[menuItem.parentId];
128
+ // if (parent) {
129
+ // if (!parent.items) {
130
+ // parent.items = [];
131
+ // }
132
+ // parent.items.push(itemDictionary[menuItem.id]);
133
+ // }
134
+ // } else {
135
+ // //Add the menuItem to the top level items
136
+ // topLevelItems.push(itemDictionary[menuItem.id]);
137
+ // }
138
+ // });
139
+ // }
140
+
141
+ // this.dataSource.data(topLevelItems);
142
+ // }
143
+ //}
144
+
145
+ //export function treeView(properties: TreeProperties) {
146
+ // return new TreeView(properties);
147
+ //}
@@ -0,0 +1,9 @@
1
+ //export * from "./Chart/Chart";
2
+ //export * from "./Culture/Culture";
3
+ //export * from "./DataSource/DataSource";
4
+ //export * from "./Dialog/Dialog";
5
+ //export * from "./Editor/Editor";
6
+ //export * from "./Grid/Grid";
7
+ //export * from "./Menu/Menu";
8
+ //export * from "./ObservableObject/ObservableObject";
9
+ //export * from "./Tree/Tree";
@@ -0,0 +1,42 @@
1
+ import * as leaflet from "leaflet";
2
+ import { IView, getView } from "../../../framework/View";
3
+ import { ViewModel } from "../../../framework/ViewModel";
4
+
5
+ export interface LeafletLabelControlOptions extends leaflet.ControlOptions {
6
+ content: string | IView | ViewModel
7
+ }
8
+
9
+ export class LeafletLabelControl extends leaflet.Control {
10
+ constructor(options: LeafletLabelControlOptions) {
11
+ super(options);
12
+
13
+ this.content = options.content;
14
+ }
15
+
16
+ private readonly content: string | IView | ViewModel;
17
+
18
+ onAdd(map: leaflet.Map): HTMLElement {
19
+ const div = document.createElement("div");
20
+
21
+ let view;
22
+ if (this.content instanceof ViewModel) {
23
+ view = getView(this.content);
24
+ if (view) {
25
+ div.appendChild(view.render());
26
+ }
27
+ } else if (typeof this.content === "string") {
28
+ div.innerText = this.content;
29
+ } else {
30
+ view = this.content as IView;
31
+ if (view.render) {
32
+ div.appendChild(view.render());
33
+ }
34
+ }
35
+
36
+ return div;
37
+ }
38
+ }
39
+
40
+ export function leafletLabelControl(options: LeafletLabelControlOptions) {
41
+ return new LeafletLabelControl(options);
42
+ }