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.
- package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.d.ts +15 -0
- package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.js +127 -0
- package/dist/controls/codeMirror/HtmlEditor/HtmlEditor.js.map +1 -0
- package/dist/controls/codeMirror/JsonEditor/JsonEditor.d.ts +15 -0
- package/dist/controls/codeMirror/JsonEditor/JsonEditor.js +111 -0
- package/dist/controls/codeMirror/JsonEditor/JsonEditor.js.map +1 -0
- package/dist/controls/codeMirror/index.d.ts +2 -0
- package/dist/controls/codeMirror/index.js +3 -0
- package/dist/controls/codeMirror/index.js.map +1 -0
- package/dist/controls/custom/Content/Content.d.ts +16 -0
- package/dist/controls/custom/Content/Content.js +45 -0
- package/dist/controls/custom/Content/Content.js.map +1 -0
- package/dist/controls/custom/FileSelector/FileSelector.d.ts +17 -0
- package/dist/controls/custom/FileSelector/FileSelector.js +54 -0
- package/dist/controls/custom/FileSelector/FileSelector.js.map +1 -0
- package/dist/controls/custom/LabeledControl/LabeledControl.d.ts +14 -0
- package/dist/controls/custom/LabeledControl/LabeledControl.js +32 -0
- package/dist/controls/custom/LabeledControl/LabeledControl.js.map +1 -0
- package/dist/controls/custom/ListItem/ListItem.d.ts +30 -0
- package/dist/controls/custom/ListItem/ListItem.js +61 -0
- package/dist/controls/custom/ListItem/ListItem.js.map +1 -0
- package/dist/controls/custom/index.d.ts +4 -0
- package/dist/controls/custom/index.js +5 -0
- package/dist/controls/custom/index.js.map +1 -0
- package/dist/controls/html/Button/Button.d.ts +15 -0
- package/dist/controls/html/Button/Button.js +48 -0
- package/dist/controls/html/Button/Button.js.map +1 -0
- package/dist/controls/html/Div/Div.d.ts +12 -0
- package/dist/controls/html/Div/Div.js +17 -0
- package/dist/controls/html/Div/Div.js.map +1 -0
- package/dist/controls/html/Image/Image.d.ts +7 -0
- package/dist/controls/html/Image/Image.js +16 -0
- package/dist/controls/html/Image/Image.js.map +1 -0
- package/dist/controls/html/Input/Input.d.ts +43 -0
- package/dist/controls/html/Input/Input.js +179 -0
- package/dist/controls/html/Input/Input.js.map +1 -0
- package/dist/controls/html/Select/Select.d.ts +29 -0
- package/dist/controls/html/Select/Select.js +126 -0
- package/dist/controls/html/Select/Select.js.map +1 -0
- package/dist/controls/html/Span/Span.d.ts +7 -0
- package/dist/controls/html/Span/Span.js +16 -0
- package/dist/controls/html/Span/Span.js.map +1 -0
- package/dist/controls/html/index.d.ts +6 -0
- package/dist/controls/html/index.js +7 -0
- package/dist/controls/html/index.js.map +1 -0
- package/dist/controls/index.d.ts +12 -0
- package/dist/controls/index.js +13 -0
- package/dist/controls/index.js.map +1 -0
- package/dist/controls/jsonViewAwesome/index.d.ts +1 -0
- package/dist/controls/jsonViewAwesome/index.js +2 -0
- package/dist/controls/jsonViewAwesome/index.js.map +1 -0
- package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.d.ts +27 -0
- package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.js +72 -0
- package/dist/controls/jsonViewAwesome/jsonFormatter/JsonFormatter.js.map +1 -0
- package/dist/controls/kendo/Culture/Culture.d.ts +1 -0
- package/dist/controls/kendo/Culture/Culture.js +26 -0
- package/dist/controls/kendo/Culture/Culture.js.map +1 -0
- package/dist/controls/kendo/DataSource/DataSource.d.ts +4 -0
- package/dist/controls/kendo/DataSource/DataSource.js +2 -0
- package/dist/controls/kendo/DataSource/DataSource.js.map +1 -0
- package/dist/controls/kendo/Dialog/Dialog.d.ts +13 -0
- package/dist/controls/kendo/Dialog/Dialog.js +46 -0
- package/dist/controls/kendo/Dialog/Dialog.js.map +1 -0
- package/dist/controls/kendo/Editor/Editor.d.ts +18 -0
- package/dist/controls/kendo/Editor/Editor.js +113 -0
- package/dist/controls/kendo/Editor/Editor.js.map +1 -0
- package/dist/controls/kendo/Grid/Grid.d.ts +52 -0
- package/dist/controls/kendo/Grid/Grid.js +246 -0
- package/dist/controls/kendo/Grid/Grid.js.map +1 -0
- package/dist/controls/kendo/Menu/Menu.d.ts +14 -0
- package/dist/controls/kendo/Menu/Menu.js +86 -0
- package/dist/controls/kendo/Menu/Menu.js.map +1 -0
- package/dist/controls/kendo/ObservableObject/ObservableObject.d.ts +5 -0
- package/dist/controls/kendo/ObservableObject/ObservableObject.js +35 -0
- package/dist/controls/kendo/ObservableObject/ObservableObject.js.map +1 -0
- package/dist/controls/kendo/Tree/Tree.d.ts +16 -0
- package/dist/controls/kendo/Tree/Tree.js +104 -0
- package/dist/controls/kendo/Tree/Tree.js.map +1 -0
- package/dist/controls/kendo/index.d.ts +8 -0
- package/dist/controls/kendo/index.js +9 -0
- package/dist/controls/kendo/index.js.map +1 -0
- package/dist/controls/leaflet/LabelControl/LabelControl.d.ts +11 -0
- package/dist/controls/leaflet/LabelControl/LabelControl.js +31 -0
- package/dist/controls/leaflet/LabelControl/LabelControl.js.map +1 -0
- package/dist/controls/leaflet/Map/Map.d.ts +46 -0
- package/dist/controls/leaflet/Map/Map.js +122 -0
- package/dist/controls/leaflet/Map/Map.js.map +1 -0
- package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.d.ts +7 -0
- package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.js +11 -0
- package/dist/controls/leaflet/OpenStreetMapTileLayer/OpenStreetMapTileLayer.js.map +1 -0
- package/dist/controls/leaflet/PointerEvent/PointerEvent.d.ts +2 -0
- package/dist/controls/leaflet/PointerEvent/PointerEvent.js +8 -0
- package/dist/controls/leaflet/PointerEvent/PointerEvent.js.map +1 -0
- package/dist/controls/leaflet/index.d.ts +4 -0
- package/dist/controls/leaflet/index.js +5 -0
- package/dist/controls/leaflet/index.js.map +1 -0
- package/dist/framework/View.d.ts +32 -0
- package/dist/framework/View.js +98 -0
- package/dist/framework/View.js.map +1 -0
- package/dist/framework/ViewModel.d.ts +54 -0
- package/dist/framework/ViewModel.js +364 -0
- package/dist/framework/ViewModel.js.map +1 -0
- package/dist/framework/attributes.d.ts +45 -0
- package/dist/framework/attributes.js +2 -0
- package/dist/framework/attributes.js.map +1 -0
- package/dist/framework/event.d.ts +73 -0
- package/dist/framework/event.js +26 -0
- package/dist/framework/event.js.map +1 -0
- package/dist/framework/observable.d.ts +12 -0
- package/dist/framework/observable.js +59 -0
- package/dist/framework/observable.js.map +1 -0
- package/dist/framework/style.d.ts +658 -0
- package/dist/framework/style.js +154 -0
- package/dist/framework/style.js.map +1 -0
- package/dist/framework/types.d.ts +85 -0
- package/dist/framework/types.js +2 -0
- package/dist/framework/types.js.map +1 -0
- package/dist/framework/userAgent.d.ts +31 -0
- package/dist/framework/userAgent.js +47 -0
- package/dist/framework/userAgent.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/utilities/blob/blob.d.ts +1 -0
- package/dist/utilities/blob/blob.js +18 -0
- package/dist/utilities/blob/blob.js.map +1 -0
- package/dist/utilities/cookie/cookie.d.ts +3 -0
- package/dist/utilities/cookie/cookie.js +27 -0
- package/dist/utilities/cookie/cookie.js.map +1 -0
- package/dist/utilities/dataReaderTable/dataReaderTable.d.ts +9 -0
- package/dist/utilities/dataReaderTable/dataReaderTable.js +24 -0
- package/dist/utilities/dataReaderTable/dataReaderTable.js.map +1 -0
- package/dist/utilities/fetch/fetch.d.ts +8 -0
- package/dist/utilities/fetch/fetch.js +138 -0
- package/dist/utilities/fetch/fetch.js.map +1 -0
- package/dist/utilities/float/float.d.ts +1 -0
- package/dist/utilities/float/float.js +4 -0
- package/dist/utilities/float/float.js.map +1 -0
- package/dist/utilities/formData/formData.d.ts +1 -0
- package/dist/utilities/formData/formData.js +12 -0
- package/dist/utilities/formData/formData.js.map +1 -0
- package/dist/utilities/html/html.d.ts +1 -0
- package/dist/utilities/html/html.js +8 -0
- package/dist/utilities/html/html.js.map +1 -0
- package/dist/utilities/htmlElement/htmlElement.d.ts +1 -0
- package/dist/utilities/htmlElement/htmlElement.js +17 -0
- package/dist/utilities/htmlElement/htmlElement.js.map +1 -0
- package/dist/utilities/image/image.d.ts +1 -0
- package/dist/utilities/image/image.js +2 -0
- package/dist/utilities/image/image.js.map +1 -0
- package/dist/utilities/index.d.ts +36 -0
- package/dist/utilities/index.js +37 -0
- package/dist/utilities/index.js.map +1 -0
- package/dist/utilities/integer/integer.d.ts +3 -0
- package/dist/utilities/integer/integer.js +28 -0
- package/dist/utilities/integer/integer.js.map +1 -0
- package/dist/utilities/key/key.d.ts +2 -0
- package/dist/utilities/key/key.js +7 -0
- package/dist/utilities/key/key.js.map +1 -0
- package/dist/utilities/navigator/navigator.d.ts +1 -0
- package/dist/utilities/navigator/navigator.js +9 -0
- package/dist/utilities/navigator/navigator.js.map +1 -0
- package/dist/utilities/notification/notification.d.ts +5 -0
- package/dist/utilities/notification/notification.js +67 -0
- package/dist/utilities/notification/notification.js.map +1 -0
- package/dist/utilities/querystring/querystring.d.ts +4 -0
- package/dist/utilities/querystring/querystring.js +38 -0
- package/dist/utilities/querystring/querystring.js.map +1 -0
- package/dist/utilities/router/router.d.ts +18 -0
- package/dist/utilities/router/router.js +63 -0
- package/dist/utilities/router/router.js.map +1 -0
- package/dist/utilities/stylesheet/stylesheet.d.ts +2 -0
- package/dist/utilities/stylesheet/stylesheet.js +48 -0
- package/dist/utilities/stylesheet/stylesheet.js.map +1 -0
- package/dist/utilities/uniqueId/uniqueId.d.ts +1 -0
- package/dist/utilities/uniqueId/uniqueId.js +5 -0
- package/dist/utilities/uniqueId/uniqueId.js.map +1 -0
- package/dist/utilities/webSocket/webSocket.d.ts +1 -0
- package/dist/utilities/webSocket/webSocket.js +55 -0
- package/dist/utilities/webSocket/webSocket.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|