jpf 4.1.26 → 4.1.28

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 (181) hide show
  1. package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.d.ts +15 -0
  2. package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.js +127 -0
  3. package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.js.map +1 -0
  4. package/dist/controls/codeMirror/JsonEditor/JsonEditor.d.ts +15 -0
  5. package/dist/controls/codeMirror/JsonEditor/JsonEditor.js +111 -0
  6. package/dist/controls/codeMirror/JsonEditor/JsonEditor.js.map +1 -0
  7. package/dist/controls/codeMirror/index.d.ts +2 -0
  8. package/dist/controls/codeMirror/index.js +3 -0
  9. package/dist/controls/codeMirror/index.js.map +1 -0
  10. package/dist/controls/custom/Content/Content.d.ts +16 -0
  11. package/dist/controls/custom/Content/Content.js +45 -0
  12. package/dist/controls/custom/Content/Content.js.map +1 -0
  13. package/dist/controls/custom/FileSelector/FileSelector.d.ts +17 -0
  14. package/dist/controls/custom/FileSelector/FileSelector.js +54 -0
  15. package/dist/controls/custom/FileSelector/FileSelector.js.map +1 -0
  16. package/dist/controls/custom/LabeledControl/LabeledControl.d.ts +14 -0
  17. package/dist/controls/custom/LabeledControl/LabeledControl.js +32 -0
  18. package/dist/controls/custom/LabeledControl/LabeledControl.js.map +1 -0
  19. package/dist/controls/custom/ListItem/ListItem.d.ts +30 -0
  20. package/dist/controls/custom/ListItem/ListItem.js +61 -0
  21. package/dist/controls/custom/ListItem/ListItem.js.map +1 -0
  22. package/dist/controls/custom/index.d.ts +4 -0
  23. package/dist/controls/custom/index.js +5 -0
  24. package/dist/controls/custom/index.js.map +1 -0
  25. package/dist/controls/html/Button/Button.d.ts +15 -0
  26. package/dist/controls/html/Button/Button.js +48 -0
  27. package/dist/controls/html/Button/Button.js.map +1 -0
  28. package/dist/controls/html/Div/Div.d.ts +12 -0
  29. package/dist/controls/html/Div/Div.js +17 -0
  30. package/dist/controls/html/Div/Div.js.map +1 -0
  31. package/dist/controls/html/Image/Image.d.ts +7 -0
  32. package/dist/controls/html/Image/Image.js +16 -0
  33. package/dist/controls/html/Image/Image.js.map +1 -0
  34. package/dist/controls/html/Input/Input.d.ts +43 -0
  35. package/dist/controls/html/Input/Input.js +179 -0
  36. package/dist/controls/html/Input/Input.js.map +1 -0
  37. package/dist/controls/html/Select/Select.d.ts +29 -0
  38. package/dist/controls/html/Select/Select.js +126 -0
  39. package/dist/controls/html/Select/Select.js.map +1 -0
  40. package/dist/controls/html/Span/Span.d.ts +7 -0
  41. package/dist/controls/html/Span/Span.js +16 -0
  42. package/dist/controls/html/Span/Span.js.map +1 -0
  43. package/dist/controls/html/index.d.ts +6 -0
  44. package/dist/controls/html/index.js +7 -0
  45. package/dist/controls/html/index.js.map +1 -0
  46. package/dist/controls/index.d.ts +12 -0
  47. package/dist/controls/index.js +13 -0
  48. package/dist/controls/index.js.map +1 -0
  49. package/dist/controls/jsonViewAwesome/index.d.ts +1 -0
  50. package/dist/controls/jsonViewAwesome/index.js +2 -0
  51. package/dist/controls/jsonViewAwesome/index.js.map +1 -0
  52. package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.d.ts +27 -0
  53. package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.js +72 -0
  54. package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.js.map +1 -0
  55. package/dist/controls/kendo/Culture/Culture.d.ts +1 -0
  56. package/dist/controls/kendo/Culture/Culture.js +26 -0
  57. package/dist/controls/kendo/Culture/Culture.js.map +1 -0
  58. package/dist/controls/kendo/DataSource/DataSource.d.ts +4 -0
  59. package/dist/controls/kendo/DataSource/DataSource.js +2 -0
  60. package/dist/controls/kendo/DataSource/DataSource.js.map +1 -0
  61. package/dist/controls/kendo/Dialog/Dialog.d.ts +13 -0
  62. package/dist/controls/kendo/Dialog/Dialog.js +46 -0
  63. package/dist/controls/kendo/Dialog/Dialog.js.map +1 -0
  64. package/dist/controls/kendo/Editor/Editor.d.ts +18 -0
  65. package/dist/controls/kendo/Editor/Editor.js +113 -0
  66. package/dist/controls/kendo/Editor/Editor.js.map +1 -0
  67. package/dist/controls/kendo/Grid/Grid.d.ts +52 -0
  68. package/dist/controls/kendo/Grid/Grid.js +246 -0
  69. package/dist/controls/kendo/Grid/Grid.js.map +1 -0
  70. package/dist/controls/kendo/Menu/Menu.d.ts +14 -0
  71. package/dist/controls/kendo/Menu/Menu.js +86 -0
  72. package/dist/controls/kendo/Menu/Menu.js.map +1 -0
  73. package/dist/controls/kendo/ObservableObject/ObservableObject.d.ts +5 -0
  74. package/dist/controls/kendo/ObservableObject/ObservableObject.js +35 -0
  75. package/dist/controls/kendo/ObservableObject/ObservableObject.js.map +1 -0
  76. package/dist/controls/kendo/Tree/Tree.d.ts +16 -0
  77. package/dist/controls/kendo/Tree/Tree.js +104 -0
  78. package/dist/controls/kendo/Tree/Tree.js.map +1 -0
  79. package/dist/controls/kendo/index.d.ts +8 -0
  80. package/dist/controls/kendo/index.js +9 -0
  81. package/dist/controls/kendo/index.js.map +1 -0
  82. package/dist/controls/leaflet/LabelControl/LabelControl.d.ts +11 -0
  83. package/dist/controls/leaflet/LabelControl/LabelControl.js +31 -0
  84. package/dist/controls/leaflet/LabelControl/LabelControl.js.map +1 -0
  85. package/dist/controls/leaflet/Map/Map.d.ts +46 -0
  86. package/dist/controls/leaflet/Map/Map.js +122 -0
  87. package/dist/controls/leaflet/Map/Map.js.map +1 -0
  88. package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.d.ts +7 -0
  89. package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.js +11 -0
  90. package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.js.map +1 -0
  91. package/dist/controls/leaflet/PointerEvent/PointerEvent.d.ts +2 -0
  92. package/dist/controls/leaflet/PointerEvent/PointerEvent.js +8 -0
  93. package/dist/controls/leaflet/PointerEvent/PointerEvent.js.map +1 -0
  94. package/dist/controls/leaflet/index.d.ts +4 -0
  95. package/dist/controls/leaflet/index.js +5 -0
  96. package/dist/controls/leaflet/index.js.map +1 -0
  97. package/dist/framework/View.d.ts +32 -0
  98. package/dist/framework/View.js +98 -0
  99. package/dist/framework/View.js.map +1 -0
  100. package/dist/framework/ViewModel.d.ts +54 -0
  101. package/dist/framework/ViewModel.js +364 -0
  102. package/dist/framework/ViewModel.js.map +1 -0
  103. package/dist/framework/attributes.d.ts +45 -0
  104. package/dist/framework/attributes.js +2 -0
  105. package/dist/framework/attributes.js.map +1 -0
  106. package/dist/framework/event.d.ts +73 -0
  107. package/dist/framework/event.js +26 -0
  108. package/dist/framework/event.js.map +1 -0
  109. package/dist/framework/observable.d.ts +12 -0
  110. package/dist/framework/observable.js +59 -0
  111. package/dist/framework/observable.js.map +1 -0
  112. package/dist/framework/style.d.ts +658 -0
  113. package/dist/framework/style.js +154 -0
  114. package/dist/framework/style.js.map +1 -0
  115. package/dist/framework/types.d.ts +85 -0
  116. package/dist/framework/types.js +2 -0
  117. package/dist/framework/types.js.map +1 -0
  118. package/dist/framework/userAgent.d.ts +31 -0
  119. package/dist/framework/userAgent.js +47 -0
  120. package/dist/framework/userAgent.js.map +1 -0
  121. package/dist/index.d.ts +12 -0
  122. package/dist/index.js +13 -0
  123. package/dist/index.js.map +1 -0
  124. package/dist/utilities/blob/blob.d.ts +1 -0
  125. package/dist/utilities/blob/blob.js +18 -0
  126. package/dist/utilities/blob/blob.js.map +1 -0
  127. package/dist/utilities/cookie/cookie.d.ts +3 -0
  128. package/dist/utilities/cookie/cookie.js +27 -0
  129. package/dist/utilities/cookie/cookie.js.map +1 -0
  130. package/dist/utilities/dataReaderTable/dataReaderTable.d.ts +9 -0
  131. package/dist/utilities/dataReaderTable/dataReaderTable.js +24 -0
  132. package/dist/utilities/dataReaderTable/dataReaderTable.js.map +1 -0
  133. package/dist/utilities/fetch/fetch.d.ts +8 -0
  134. package/dist/utilities/fetch/fetch.js +138 -0
  135. package/dist/utilities/fetch/fetch.js.map +1 -0
  136. package/dist/utilities/float/float.d.ts +1 -0
  137. package/dist/utilities/float/float.js +4 -0
  138. package/dist/utilities/float/float.js.map +1 -0
  139. package/dist/utilities/formData/formData.d.ts +1 -0
  140. package/dist/utilities/formData/formData.js +12 -0
  141. package/dist/utilities/formData/formData.js.map +1 -0
  142. package/dist/utilities/html/html.d.ts +1 -0
  143. package/dist/utilities/html/html.js +8 -0
  144. package/dist/utilities/html/html.js.map +1 -0
  145. package/dist/utilities/htmlElement/htmlElement.d.ts +1 -0
  146. package/dist/utilities/htmlElement/htmlElement.js +17 -0
  147. package/dist/utilities/htmlElement/htmlElement.js.map +1 -0
  148. package/dist/utilities/image/image.d.ts +1 -0
  149. package/dist/utilities/image/image.js +2 -0
  150. package/dist/utilities/image/image.js.map +1 -0
  151. package/dist/utilities/index.d.ts +36 -0
  152. package/dist/utilities/index.js +37 -0
  153. package/dist/utilities/index.js.map +1 -0
  154. package/dist/utilities/integer/integer.d.ts +3 -0
  155. package/dist/utilities/integer/integer.js +28 -0
  156. package/dist/utilities/integer/integer.js.map +1 -0
  157. package/dist/utilities/key/key.d.ts +2 -0
  158. package/dist/utilities/key/key.js +7 -0
  159. package/dist/utilities/key/key.js.map +1 -0
  160. package/dist/utilities/navigator/navigator.d.ts +1 -0
  161. package/dist/utilities/navigator/navigator.js +9 -0
  162. package/dist/utilities/navigator/navigator.js.map +1 -0
  163. package/dist/utilities/notification/notification.d.ts +5 -0
  164. package/dist/utilities/notification/notification.js +67 -0
  165. package/dist/utilities/notification/notification.js.map +1 -0
  166. package/dist/utilities/querystring/querystring.d.ts +4 -0
  167. package/dist/utilities/querystring/querystring.js +38 -0
  168. package/dist/utilities/querystring/querystring.js.map +1 -0
  169. package/dist/utilities/router/router.d.ts +18 -0
  170. package/dist/utilities/router/router.js +63 -0
  171. package/dist/utilities/router/router.js.map +1 -0
  172. package/dist/utilities/stylesheet/stylesheet.d.ts +2 -0
  173. package/dist/utilities/stylesheet/stylesheet.js +48 -0
  174. package/dist/utilities/stylesheet/stylesheet.js.map +1 -0
  175. package/dist/utilities/uniqueId/uniqueId.d.ts +1 -0
  176. package/dist/utilities/uniqueId/uniqueId.js +5 -0
  177. package/dist/utilities/uniqueId/uniqueId.js.map +1 -0
  178. package/dist/utilities/webSocket/webSocket.d.ts +1 -0
  179. package/dist/utilities/webSocket/webSocket.js +55 -0
  180. package/dist/utilities/webSocket/webSocket.js.map +1 -0
  181. package/package.json +1 -1
@@ -0,0 +1,15 @@
1
+ import { View } from "../../../framework/View";
2
+ import { ViewModelOptions, ViewModel } from "../../../framework/ViewModel";
3
+ import { ObservableProperty } from "../../../framework/observable";
4
+ export interface HtmlEditorViewModelOptions extends ViewModelOptions {
5
+ value?: string | ObservableProperty<string>;
6
+ }
7
+ export declare class HtmlEditorViewModel extends ViewModel implements HtmlEditorViewModelOptions {
8
+ constructor(options: HtmlEditorViewModelOptions);
9
+ readonly value: ObservableProperty<string>;
10
+ }
11
+ export declare class HtmlEditorView extends View<HtmlEditorViewModelOptions> {
12
+ constructor(viewModel: HtmlEditorViewModelOptions);
13
+ private editor;
14
+ build(): void;
15
+ }
@@ -0,0 +1,127 @@
1
+ import { View, registerView } from "../../../framework/View";
2
+ import { ViewModel, extendViewModel } from "../../../framework/ViewModel";
3
+ import { unwrap, isObservable } from "knockout";
4
+ import { isObservableProperty, observableProperty } from "../../../framework/observable";
5
+ import { EditorView, basicSetup } from "codemirror";
6
+ import { EditorState } from "@codemirror/state";
7
+ import { keymap } from "@codemirror/view";
8
+ import { html } from "@codemirror/lang-html";
9
+ import { indentWithTab } from "@codemirror/commands";
10
+ import { foldAll } from "@codemirror/language";
11
+ import { ButtonView } from "../../html/Button/Button";
12
+ import { prettifyHtml } from "../../../utilities/html/html";
13
+ import { DivView } from "../../html/Div/Div";
14
+ export class HtmlEditorViewModel extends ViewModel {
15
+ constructor(options) {
16
+ super(options);
17
+ if (options) {
18
+ if (isObservableProperty(options.value)) {
19
+ this.value = options.value;
20
+ }
21
+ else {
22
+ this.value = observableProperty(options.value);
23
+ }
24
+ if (!options.eventListeners) {
25
+ options.eventListeners = {};
26
+ }
27
+ }
28
+ }
29
+ value;
30
+ }
31
+ export class HtmlEditorView extends View {
32
+ constructor(viewModel) {
33
+ super({
34
+ tagName: "div",
35
+ viewModel: extendViewModel({
36
+ viewType: "HtmlEditor",
37
+ attributes: {
38
+ tabindex: 1
39
+ },
40
+ style: {
41
+ display: "flex",
42
+ flexDirection: "column",
43
+ border: "1px solid #a3d0e4"
44
+ }
45
+ }, viewModel)
46
+ });
47
+ }
48
+ editor;
49
+ build() {
50
+ super.build();
51
+ const viewModel = this.viewModel;
52
+ const foldAllButton = new ButtonView({
53
+ content: "Collapse all",
54
+ style: {
55
+ margin: "3px"
56
+ },
57
+ eventListeners: {
58
+ click: {
59
+ listener: () => {
60
+ foldAll(this.editor);
61
+ }
62
+ }
63
+ }
64
+ });
65
+ const formatButton = new ButtonView({
66
+ content: "Format",
67
+ style: {
68
+ margin: "3px"
69
+ },
70
+ eventListeners: {
71
+ click: {
72
+ listener: () => {
73
+ var formattedHtml = prettifyHtml(this.editor.state.doc.toString());
74
+ this.editor.dispatch({ changes: { from: 0, to: this.editor.state.doc.length, insert: formattedHtml } });
75
+ }
76
+ }
77
+ }
78
+ });
79
+ const saveButton = new ButtonView({
80
+ content: "Save",
81
+ style: {
82
+ margin: "3px"
83
+ },
84
+ eventListeners: {
85
+ click: {
86
+ listener: () => {
87
+ if (isObservableProperty(viewModel.value)) {
88
+ viewModel.value.set(this.editor.state.doc.toString());
89
+ }
90
+ }
91
+ }
92
+ }
93
+ });
94
+ const buttons = new DivView({
95
+ style: {
96
+ display: "flex"
97
+ },
98
+ children: [
99
+ foldAllButton,
100
+ formatButton,
101
+ saveButton
102
+ ]
103
+ });
104
+ this.element.appendChild(buttons.render());
105
+ const state = EditorState.create({
106
+ extensions: [
107
+ basicSetup,
108
+ html(),
109
+ EditorView.lineWrapping,
110
+ keymap.of([indentWithTab])
111
+ ]
112
+ });
113
+ this.editor = new EditorView({
114
+ state: state,
115
+ parent: this.element,
116
+ });
117
+ this.editor.dom.style.overflow = "auto";
118
+ this.editor.dispatch({ changes: { from: 0, to: this.editor.state.doc.length, insert: unwrap(viewModel.value) } });
119
+ if (isObservable(viewModel.value)) {
120
+ viewModel.value.subscribe((html) => {
121
+ this.editor.dispatch({ changes: { from: 0, to: this.editor.state.doc.length, insert: html } });
122
+ });
123
+ }
124
+ }
125
+ }
126
+ registerView(HtmlEditorViewModel, HtmlEditorView);
127
+ //# sourceMappingURL=HtmlEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HtmlEditor.js","sourceRoot":"","sources":["../../../../src/controls/codeMirror/HtmlEditor/HtmlEditor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { View } from "../../../framework/View";
2
+ import { ViewModelOptions, ViewModel } from "../../../framework/ViewModel";
3
+ import { ObservableProperty } from "../../../framework/observable";
4
+ export interface JsonEditorViewModelOptions extends ViewModelOptions {
5
+ value?: string | ObservableProperty<string>;
6
+ }
7
+ export declare class JsonEditorViewModel extends ViewModel implements JsonEditorViewModelOptions {
8
+ constructor(options: JsonEditorViewModelOptions);
9
+ readonly value: ObservableProperty<string>;
10
+ }
11
+ export declare class JsonEditorView extends View<JsonEditorViewModelOptions> {
12
+ constructor(viewModel: JsonEditorViewModelOptions);
13
+ private editor;
14
+ build(): void;
15
+ }
@@ -0,0 +1,111 @@
1
+ import { View, registerView } from "../../../framework/View";
2
+ import { ViewModel, extendViewModel } from "../../../framework/ViewModel";
3
+ import { unwrap, isObservable } from "knockout";
4
+ import { isObservableProperty, observableProperty } from "../../../framework/observable";
5
+ import { EditorView, basicSetup } from "codemirror";
6
+ import { EditorState } from "@codemirror/state";
7
+ import { keymap } from "@codemirror/view";
8
+ import { json } from "@codemirror/lang-json";
9
+ import { indentWithTab } from "@codemirror/commands";
10
+ import { foldAll } from "@codemirror/language";
11
+ import { ButtonView } from "../../html/Button/Button";
12
+ import { DivView } from "../../html/Div/Div";
13
+ export class JsonEditorViewModel extends ViewModel {
14
+ constructor(options) {
15
+ super(options);
16
+ if (options) {
17
+ if (isObservableProperty(options.value)) {
18
+ this.value = options.value;
19
+ }
20
+ else {
21
+ this.value = observableProperty(options.value);
22
+ }
23
+ if (!options.eventListeners) {
24
+ options.eventListeners = {};
25
+ }
26
+ }
27
+ }
28
+ value;
29
+ }
30
+ export class JsonEditorView extends View {
31
+ constructor(viewModel) {
32
+ super({
33
+ tagName: "div",
34
+ viewModel: extendViewModel({
35
+ viewType: "JsonEditor",
36
+ attributes: {
37
+ tabindex: 1
38
+ },
39
+ style: {
40
+ display: "flex",
41
+ flexDirection: "column",
42
+ border: "1px solid #a3d0e4"
43
+ }
44
+ }, viewModel)
45
+ });
46
+ }
47
+ editor;
48
+ build() {
49
+ super.build();
50
+ const viewModel = this.viewModel;
51
+ const foldAllButton = new ButtonView({
52
+ content: "Collapse all",
53
+ style: {
54
+ margin: "3px"
55
+ },
56
+ eventListeners: {
57
+ click: {
58
+ listener: () => {
59
+ foldAll(this.editor);
60
+ }
61
+ }
62
+ }
63
+ });
64
+ const saveButton = new ButtonView({
65
+ content: "Save",
66
+ style: {
67
+ margin: "3px"
68
+ },
69
+ eventListeners: {
70
+ click: {
71
+ listener: () => {
72
+ if (isObservableProperty(viewModel.value)) {
73
+ viewModel.value.set(this.editor.state.doc.toString());
74
+ }
75
+ }
76
+ }
77
+ }
78
+ });
79
+ const buttons = new DivView({
80
+ style: {
81
+ display: "flex"
82
+ },
83
+ children: [
84
+ foldAllButton,
85
+ saveButton
86
+ ]
87
+ });
88
+ this.element.appendChild(buttons.render());
89
+ const state = EditorState.create({
90
+ extensions: [
91
+ basicSetup,
92
+ json(),
93
+ EditorView.lineWrapping,
94
+ keymap.of([indentWithTab])
95
+ ]
96
+ });
97
+ this.editor = new EditorView({
98
+ state: state,
99
+ parent: this.element,
100
+ });
101
+ this.editor.dom.style.overflow = "auto";
102
+ this.editor.dispatch({ changes: { from: 0, to: this.editor.state.doc.length, insert: unwrap(viewModel.value) } });
103
+ if (isObservable(viewModel.value)) {
104
+ viewModel.value.subscribe((html) => {
105
+ this.editor.dispatch({ changes: { from: 0, to: this.editor.state.doc.length, insert: html } });
106
+ });
107
+ }
108
+ }
109
+ }
110
+ registerView(JsonEditorViewModel, JsonEditorView);
111
+ //# sourceMappingURL=JsonEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonEditor.js","sourceRoot":"","sources":["../../../../src/controls/codeMirror/JsonEditor/JsonEditor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./HtmlEditor/HtmlEditor";
2
+ export * from "./JsonEditor/JsonEditor";
@@ -0,0 +1,3 @@
1
+ export * from "./HtmlEditor/HtmlEditor";
2
+ export * from "./JsonEditor/JsonEditor";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/controls/codeMirror/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { ViewModelOptions, ViewModel } from "../../../framework/ViewModel";
2
+ import { ObservableProperty } from "../../../framework/observable";
3
+ import { View } from "../../../framework/View";
4
+ export interface ContentViewModelOptions extends ViewModelOptions {
5
+ content?: ViewModel;
6
+ }
7
+ export declare class ContentViewModel extends ViewModel {
8
+ constructor(options?: ContentViewModelOptions);
9
+ readonly content: ObservableProperty<ViewModel>;
10
+ handleWebSocketMessage: (message: any) => void;
11
+ }
12
+ export declare class ContentView extends View<ContentViewModel> {
13
+ constructor(viewModel: ContentViewModel);
14
+ build(): void;
15
+ private setContent;
16
+ }
@@ -0,0 +1,45 @@
1
+ import { unwrap } from "knockout";
2
+ import { ViewModel, extendViewModel } from "../../../framework/ViewModel";
3
+ import { observableProperty } from "../../../framework/observable";
4
+ import { View, getView, registerView } from "../../../framework/View";
5
+ export class ContentViewModel extends ViewModel {
6
+ constructor(options) {
7
+ super(options);
8
+ options = options || {};
9
+ this.content = observableProperty(options.content);
10
+ }
11
+ content;
12
+ handleWebSocketMessage = (message) => {
13
+ const content = this.content();
14
+ if (content.handleWebSocketMessage) {
15
+ content.handleWebSocketMessage(message);
16
+ }
17
+ };
18
+ }
19
+ export class ContentView extends View {
20
+ constructor(viewModel) {
21
+ super({
22
+ tagName: "div",
23
+ viewModel: extendViewModel({
24
+ viewType: "Content"
25
+ }, viewModel)
26
+ });
27
+ }
28
+ build() {
29
+ super.build();
30
+ this.setContent(unwrap(this.viewModel.content));
31
+ this.viewModel.content.subscribe((content) => {
32
+ this.setContent(content);
33
+ });
34
+ }
35
+ setContent(content) {
36
+ if (content) {
37
+ this.setChildren(getView(content));
38
+ }
39
+ else {
40
+ this.empty();
41
+ }
42
+ }
43
+ }
44
+ registerView(ContentViewModel, ContentView);
45
+ //# sourceMappingURL=Content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Content.js","sourceRoot":"","sources":["../../../../src/controls/custom/Content/Content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAoB,SAAS,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAsB,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMtE,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC3C,YAAY,OAAiC;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;QAEvB,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAY,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAEQ,OAAO,CAAgC;IAEhD,sBAAsB,GAAG,CAAC,OAAO,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,sBAAsB,EAAE;YAChC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;SAC3C;IACL,CAAC,CAAA;CACJ;AAED,MAAM,OAAO,WAAY,SAAQ,IAAsB;IACnD,YAAY,SAA2B;QACnC,KAAK,CACD;YACI,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,eAAe,CACtB;gBACI,QAAQ,EAAE,SAAS;aACtB,EACD,SAAS,CACZ;SACJ,CACJ,CAAC;IACN,CAAC;IAED,KAAK;QACD,KAAK,CAAC,KAAK,EAAE,CAAC;QAGd,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAqB,CAAC,CAAC;QAGpE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,UAAU,CAAC,OAAkB;QACjC,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;SACtC;aAAM;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;IACL,CAAC;CACJ;AAED,YAAY,CACR,gBAAgB,EAChB,WAAW,CACd,CAAA"}
@@ -0,0 +1,17 @@
1
+ import { ViewModel, ViewModelOptions } from "../../../framework/ViewModel";
2
+ import { View } from "../../../framework/View";
3
+ import { ButtonViewModelOptions } from "../../html/Button/Button";
4
+ import { InputViewModelOptions } from "../../html/Input/Input";
5
+ export interface InputFileViewModelOptions extends ViewModelOptions {
6
+ button?: ButtonViewModelOptions;
7
+ inputFile: InputViewModelOptions<FileList>;
8
+ }
9
+ export declare class FileSelectorViewModel extends ViewModel {
10
+ constructor(options?: InputFileViewModelOptions);
11
+ readonly button: ButtonViewModelOptions;
12
+ readonly inputFile: InputViewModelOptions<FileList>;
13
+ }
14
+ export declare class FileSelectorView extends View<FileSelectorViewModel> {
15
+ constructor(viewModel: FileSelectorViewModel);
16
+ protected build(): void;
17
+ }
@@ -0,0 +1,54 @@
1
+ import { ViewModel, extendViewModel } from "../../../framework/ViewModel";
2
+ import { View, registerView } from "../../../framework/View";
3
+ import { ButtonView } from "../../html/Button/Button";
4
+ import { InputView } from "../../html/Input/Input";
5
+ export class FileSelectorViewModel extends ViewModel {
6
+ constructor(options) {
7
+ super(options);
8
+ if (options) {
9
+ this.button = options.button;
10
+ options.inputFile.type = "file";
11
+ if (options.button) {
12
+ if (!options.inputFile.style) {
13
+ options.inputFile.style = {};
14
+ }
15
+ options.inputFile.style.display = "none";
16
+ }
17
+ this.inputFile = options.inputFile;
18
+ }
19
+ }
20
+ button;
21
+ inputFile;
22
+ }
23
+ export class FileSelectorView extends View {
24
+ constructor(viewModel) {
25
+ super({
26
+ tagName: "div",
27
+ viewModel: extendViewModel({
28
+ viewType: "FileSelector"
29
+ }, viewModel)
30
+ });
31
+ }
32
+ build() {
33
+ super.build();
34
+ const viewModel = this.viewModel;
35
+ var fileInput = new InputView(viewModel.inputFile).render();
36
+ this.element.appendChild(fileInput);
37
+ if (viewModel.button) {
38
+ const button = new ButtonView(extendViewModel(viewModel.button, {
39
+ eventListeners: {
40
+ click: {
41
+ listener: () => {
42
+ var mouseEvent = document.createEvent("MouseEvent");
43
+ mouseEvent.initEvent("click", false, false);
44
+ fileInput.dispatchEvent(mouseEvent);
45
+ }
46
+ }
47
+ }
48
+ })).render();
49
+ this.element.appendChild(button);
50
+ }
51
+ }
52
+ }
53
+ registerView(FileSelectorViewModel, FileSelectorView);
54
+ //# sourceMappingURL=FileSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSelector.js","sourceRoot":"","sources":["../../../../src/controls/custom/FileSelector/FileSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAA0B,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAyB,MAAM,wBAAwB,CAAC;AAO1E,MAAM,OAAO,qBAAsB,SAAQ,SAAS;IAChD,YAAY,OAAmC;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;YAEhC,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE;oBAC1B,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;iBAChC;gBACD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;aAC5C;YAED,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;SACtC;IACL,CAAC;IAEQ,MAAM,CAAyB;IAC/B,SAAS,CAAkC;CACvD;AAED,MAAM,OAAO,gBAAiB,SAAQ,IAA2B;IAC7D,YAAY,SAAgC;QACxC,KAAK,CACD;YACI,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,eAAe,CACtB;gBACI,QAAQ,EAAE,cAAc;aAC3B,EACD,SAAS,CACZ;SACJ,CACJ,CAAC;IACN,CAAC;IAES,KAAK;QACX,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC;QAE5D,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpC,IAAI,SAAS,CAAC,MAAM,EAAE;YAClB,MAAM,MAAM,GAAG,IAAI,UAAU,CACzB,eAAe,CACX,SAAS,CAAC,MAAM,EAChB;gBACI,cAAc,EAAE;oBACZ,KAAK,EAAE;wBACH,QAAQ,EAAE,GAAG,EAAE;4BACX,IAAI,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;4BACpD,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;4BAC5C,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;wBACxC,CAAC;qBACJ;iBACJ;aACJ,CACJ,CACJ,CAAC,MAAM,EAAE,CAAC;YAEX,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SACpC;IACL,CAAC;CACJ;AAED,YAAY,CACR,qBAAqB,EACrB,gBAAgB,CACnB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ViewModel, ViewModelOptions } from "../../../framework/ViewModel";
2
+ import { View, IView } from "../../../framework/View";
3
+ export interface LabeledViewModelOptions extends ViewModelOptions {
4
+ labelOptions: ViewModelOptions;
5
+ view: IView;
6
+ }
7
+ export declare class LabeledControlViewModel extends ViewModel implements LabeledViewModelOptions {
8
+ constructor(options: LabeledViewModelOptions);
9
+ labelOptions: ViewModelOptions;
10
+ view: IView;
11
+ }
12
+ export declare class LabeledControlView extends View<LabeledViewModelOptions> {
13
+ constructor(viewModel: LabeledViewModelOptions);
14
+ }
@@ -0,0 +1,32 @@
1
+ import { ViewModel, extendViewModel } from "../../../framework/ViewModel";
2
+ import { View } from "../../../framework/View";
3
+ import { DivView } from "../../html/Div/Div";
4
+ export class LabeledControlViewModel extends ViewModel {
5
+ constructor(options) {
6
+ super(options);
7
+ }
8
+ labelOptions;
9
+ view;
10
+ }
11
+ export class LabeledControlView extends View {
12
+ constructor(viewModel) {
13
+ super({
14
+ tagName: "div",
15
+ viewModel: extendViewModel({
16
+ viewType: "LabeledControl",
17
+ style: {
18
+ display: "flex",
19
+ alignItems: "center"
20
+ },
21
+ classNames: ["o-labled-control"]
22
+ }, viewModel),
23
+ children: [
24
+ new DivView(extendViewModel(viewModel.labelOptions, {
25
+ viewType: "Label"
26
+ })),
27
+ viewModel.view
28
+ ]
29
+ });
30
+ }
31
+ }
32
+ //# sourceMappingURL=LabeledControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LabeledControl.js","sourceRoot":"","sources":["../../../../src/controls/custom/LabeledControl/LabeledControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,IAAI,EAAS,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAO7C,MAAM,OAAO,uBAAwB,SAAQ,SAAS;IAClD,YAAY,OAAgC;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,YAAY,CAAmB;IAC/B,IAAI,CAAQ;CACf;AAED,MAAM,OAAO,kBAAmB,SAAQ,IAA6B;IACjE,YAAY,SAAkC;QAC1C,KAAK,CACD;YACI,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,eAAe,CACtB;gBACI,QAAQ,EAAE,gBAAgB;gBAC1B,KAAK,EAAE;oBACH,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;iBACvB;gBACD,UAAU,EAAE,CAAC,kBAAkB,CAAC;aACnC,EACD,SAAS,CACZ;YACD,QAAQ,EAAE;gBACN,IAAI,OAAO,CACP,eAAe,CACX,SAAS,CAAC,YAAY,EACtB;oBACI,QAAQ,EAAE,OAAO;iBACpB,CACJ,CACJ;gBACD,SAAS,CAAC,IAAI;aACjB;SACJ,CACJ,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,30 @@
1
+ import { View } from "../../../framework/View";
2
+ import { ViewModel, ViewModelOptions } from "../../../framework/ViewModel";
3
+ export interface ListItemViewModelOptions extends ViewModelOptions {
4
+ id: number | string;
5
+ text?: string | ViewModel;
6
+ select?: () => void;
7
+ order?: number | string;
8
+ }
9
+ export declare class ListItemViewModel extends ViewModel implements ListItemViewModelOptions {
10
+ constructor(options: ListItemViewModelOptions);
11
+ readonly id: number | string;
12
+ text: string | ViewModel;
13
+ readonly select: () => void;
14
+ order: number | string;
15
+ }
16
+ export interface HierarchicalListItemViewModelOptions extends ListItemViewModelOptions {
17
+ parentId?: number | string;
18
+ expanded?: boolean;
19
+ }
20
+ export declare class HierarchicalListItemViewModel extends ListItemViewModel implements HierarchicalListItemViewModelOptions {
21
+ constructor(options: HierarchicalListItemViewModelOptions);
22
+ readonly parentId: number | string;
23
+ readonly expanded: boolean;
24
+ items: Array<HierarchicalListItemViewModel>;
25
+ }
26
+ export declare class ListItemView extends View<ListItemViewModel> {
27
+ constructor(viewModel: ListItemViewModel);
28
+ build(): void;
29
+ private setContent;
30
+ }
@@ -0,0 +1,61 @@
1
+ import { isObservable, unwrap } from "knockout";
2
+ import { View, getView, registerView } from "../../../framework/View";
3
+ import { ViewModel, extendViewModel } from "../../../framework/ViewModel";
4
+ export class ListItemViewModel extends ViewModel {
5
+ constructor(options) {
6
+ super(options);
7
+ if (options) {
8
+ this.id = options.id;
9
+ this.text = options.text;
10
+ this.select = options.select;
11
+ this.order = options.order;
12
+ }
13
+ }
14
+ id;
15
+ text;
16
+ select;
17
+ order;
18
+ }
19
+ export class HierarchicalListItemViewModel extends ListItemViewModel {
20
+ constructor(options) {
21
+ super(options);
22
+ this.parentId = options.parentId;
23
+ this.expanded = options.expanded;
24
+ }
25
+ parentId;
26
+ expanded;
27
+ items;
28
+ }
29
+ export class ListItemView extends View {
30
+ constructor(viewModel) {
31
+ super({
32
+ tagName: "div",
33
+ viewModel: extendViewModel({
34
+ viewType: "ListItem"
35
+ }, viewModel)
36
+ });
37
+ }
38
+ build() {
39
+ super.build();
40
+ const viewModel = this.viewModel;
41
+ if (isObservable(viewModel.text)) {
42
+ this.setContent(unwrap(viewModel.text));
43
+ viewModel.text.subscribe((content) => {
44
+ this.setContent(content);
45
+ });
46
+ }
47
+ else {
48
+ this.setContent(viewModel.text);
49
+ }
50
+ }
51
+ setContent(content) {
52
+ if (typeof content === "string") {
53
+ this.element.innerHTML = content;
54
+ }
55
+ else if (content instanceof ViewModel) {
56
+ this.setChildren(getView(content));
57
+ }
58
+ }
59
+ }
60
+ registerView(ListItemViewModel, ListItemView);
61
+ //# sourceMappingURL=ListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../../../src/controls/custom/ListItem/ListItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAoB,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAY5F,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC5C,YAAY,OAAiC;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAEzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;SAC9B;IACL,CAAC;IAEQ,EAAE,CAAkB;IAC7B,IAAI,CAAqB;IAChB,MAAM,CAAa;IAC5B,KAAK,CAAkB;CAC1B;AAOD,MAAM,OAAO,6BAA8B,SAAQ,iBAAiB;IAChE,YAAY,OAA6C;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrC,CAAC;IAEQ,QAAQ,CAAkB;IAC1B,QAAQ,CAAU;IAC3B,KAAK,CAAuC;CAC/C;AAED,MAAM,OAAO,YAAa,SAAQ,IAAuB;IACrD,YAAY,SAA4B;QACpC,KAAK,CACD;YACI,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,eAAe,CACtB;gBACI,QAAQ,EAAE,UAAU;aACvB,EACD,SAAS,CACZ;SACJ,CACJ,CAAC;IACN,CAAC;IAED,KAAK;QACD,KAAK,CAAC,KAAK,EAAE,CAAC;QAEd,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,IAAI,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;gBACjC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;SACN;aAAM;YACH,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACnC;IACL,CAAC;IAEO,UAAU,CAAC,OAA2B;QAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;SACpC;aAAM,IAAI,OAAO,YAAY,SAAS,EAAE;YACrC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;SACtC;IACL,CAAC;CACJ;AAED,YAAY,CACR,iBAAiB,EACjB,YAAY,CACf,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from "./Content/Content";
2
+ export * from "./FileSelector/FileSelector";
3
+ export * from "./LabeledControl/LabeledControl";
4
+ export * from "./ListItem/ListItem";
@@ -0,0 +1,5 @@
1
+ export * from "./Content/Content";
2
+ export * from "./FileSelector/FileSelector";
3
+ export * from "./LabeledControl/LabeledControl";
4
+ export * from "./ListItem/ListItem";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/controls/custom/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Subscribable } from "knockout";
2
+ import { ViewModel, ViewModelOptions } from "../../../framework/ViewModel";
3
+ import { View } from "../../../framework/View";
4
+ export interface ButtonViewModelOptions extends ViewModelOptions {
5
+ content?: string | ViewModel | Subscribable<string | ViewModel>;
6
+ }
7
+ export declare class ButtonViewModel extends ViewModel implements ButtonViewModelOptions {
8
+ constructor(options: ButtonViewModelOptions);
9
+ readonly content: string | ViewModel | Subscribable<string | ViewModel>;
10
+ }
11
+ export declare class ButtonView extends View<ButtonViewModelOptions> {
12
+ constructor(viewModel: ButtonViewModelOptions);
13
+ build(): void;
14
+ private buildContent;
15
+ }