jpf 4.0.0 → 4.0.1
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/View.d.ts +2 -2
- package/dist/View.js.map +1 -1
- package/dist/ViewModel.d.ts +1 -1
- package/dist/examples/example-01.d.ts +1 -0
- package/dist/examples/example-01.js +43 -0
- package/dist/examples/example-01.js.map +1 -0
- package/dist/src/View.d.ts +29 -0
- package/dist/src/View.js +96 -0
- package/dist/src/View.js.map +1 -0
- package/dist/src/ViewModel.d.ts +61 -0
- package/dist/src/ViewModel.js +404 -0
- package/dist/src/ViewModel.js.map +1 -0
- package/dist/src/attributes.d.ts +37 -0
- package/dist/src/attributes.js +3 -0
- package/dist/src/attributes.js.map +1 -0
- package/dist/src/event.d.ts +59 -0
- package/dist/src/event.js +29 -0
- package/dist/src/event.js.map +1 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.js +22 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/style.d.ts +658 -0
- package/dist/src/style.js +158 -0
- package/dist/src/style.js.map +1 -0
- package/dist/src/types.d.ts +85 -0
- package/dist/src/types.js +3 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/userAgent.d.ts +31 -0
- package/dist/src/userAgent.js +50 -0
- package/dist/src/userAgent.js.map +1 -0
- package/package.json +1 -1
package/dist/View.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ export interface ViewOptions<TViewModel> {
|
|
|
9
9
|
viewModel?: TViewModel;
|
|
10
10
|
children?: Array<IView> | ObservableArray<IView> | Computed<Array<IView>>;
|
|
11
11
|
}
|
|
12
|
-
export declare
|
|
13
|
-
|
|
12
|
+
export declare class View<TViewModel extends ViewModelOptions = ViewModelOptions> implements IView {
|
|
13
|
+
constructor(options: ViewOptions<TViewModel>, designTimeOptions?: ViewModelOptions);
|
|
14
14
|
private readonly tagName;
|
|
15
15
|
private readonly optionsChildren;
|
|
16
16
|
private children;
|
package/dist/View.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"View.js","sourceRoot":"","sources":["../src/View.ts"],"names":[],"mappings":";;;AAAA,iBAAe;AACf,uCAA2E;AAC3E,2CAAoG;AAapG,
|
|
1
|
+
{"version":3,"file":"View.js","sourceRoot":"","sources":["../src/View.ts"],"names":[],"mappings":"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"}
|
package/dist/ViewModel.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ import { EventListeners } from "./event";
|
|
|
4
4
|
import { Attributes, AttributesSubscribable } from "./attributes";
|
|
5
5
|
import { Style, StyleSubscribable } from "./style";
|
|
6
6
|
export interface ViewModelOptions {
|
|
7
|
-
classNames?: Array<string> | Subscribable<Array<string>>;
|
|
8
7
|
attributes?: Attributes | AttributesSubscribable;
|
|
8
|
+
classNames?: Array<string> | Subscribable<Array<string>>;
|
|
9
9
|
style?: Style | StyleSubscribable;
|
|
10
10
|
visible?: boolean | Subscribable<boolean>;
|
|
11
11
|
disabled?: boolean | Subscribable<boolean>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const ViewModel_1 = require("../src/ViewModel");
|
|
4
|
+
const View_1 = require("../src/View");
|
|
5
|
+
const knockout_1 = require("knockout");
|
|
6
|
+
var innerHtml = (0, knockout_1.observable)("Hello world!");
|
|
7
|
+
var borderColor = (0, knockout_1.observable)();
|
|
8
|
+
var title = (0, knockout_1.observable)("my tooltip");
|
|
9
|
+
var classNames = (0, knockout_1.observableArray)();
|
|
10
|
+
var viewModel = new ViewModel_1.ViewModel({
|
|
11
|
+
innerHtml: innerHtml,
|
|
12
|
+
attributes: {
|
|
13
|
+
id: "1",
|
|
14
|
+
title: title
|
|
15
|
+
},
|
|
16
|
+
classNames: classNames,
|
|
17
|
+
style: {
|
|
18
|
+
width: "300px",
|
|
19
|
+
height: "30px",
|
|
20
|
+
backgroundColor: "green",
|
|
21
|
+
borderColor: borderColor
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var view = new View_1.View({
|
|
25
|
+
tagName: "div",
|
|
26
|
+
viewModel: viewModel
|
|
27
|
+
}, {
|
|
28
|
+
eventListeners: {
|
|
29
|
+
click: {
|
|
30
|
+
listener: () => {
|
|
31
|
+
innerHtml("Hello world updated");
|
|
32
|
+
borderColor("1px solid red");
|
|
33
|
+
title("my tooltip updated");
|
|
34
|
+
classNames(["classname1", "className2"]);
|
|
35
|
+
},
|
|
36
|
+
options: {
|
|
37
|
+
shiftKey: true
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
document.body.appendChild(view.render());
|
|
43
|
+
//# sourceMappingURL=example-01.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example-01.js","sourceRoot":"","sources":["../../examples/example-01.ts"],"names":[],"mappings":";;AAAA,gDAA6C;AAC7C,sCAAmC;AACnC,uCAAuD;AAGvD,IAAI,SAAS,GAAG,IAAA,qBAAU,EAAS,cAAc,CAAC,CAAC;AACnD,IAAI,WAAW,GAAG,IAAA,qBAAU,GAAU,CAAC;AACvC,IAAI,KAAK,GAAG,IAAA,qBAAU,EAAS,YAAY,CAAC,CAAC;AAC7C,IAAI,UAAU,GAAG,IAAA,0BAAe,GAAU,CAAC;AAG3C,IAAI,SAAS,GAAG,IAAI,qBAAS,CAAC;IAC1B,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE;QACR,EAAE,EAAE,GAAG;QACP,KAAK,EAAE,KAAK;KAEf;IACD,UAAU,EAAE,UAAU;IACtB,KAAK,EAAE;QACH,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,MAAM;QACd,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,WAAW;KAC3B;CACJ,CAAC,CAAC;AAEH,IAAI,IAAI,GAAG,IAAI,WAAI,CACf;IACI,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,SAAS;CACvB,EACD;IACI,cAAc,EAAE;QACZ,KAAK,EAAE;YAEH,QAAQ,EAAE,GAAG,EAAE;gBACX,SAAS,CAAC,qBAAqB,CAAC,CAAC;gBACjC,WAAW,CAAC,eAAe,CAAC,CAAC;gBAC7B,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAC5B,UAAU,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO,EAAE;gBACL,QAAQ,EAAE,IAAI;aACjB;SACJ;KACJ;CACJ,CAAC,CAAC;AAIP,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import "tocca";
|
|
2
|
+
import { ObservableArray, Computed } from "knockout";
|
|
3
|
+
import { ViewModelOptions, ViewModel } from "./ViewModel";
|
|
4
|
+
export interface IView {
|
|
5
|
+
render(): HTMLElement;
|
|
6
|
+
}
|
|
7
|
+
export interface ViewOptions<TViewModel> {
|
|
8
|
+
tagName: string;
|
|
9
|
+
viewModel?: TViewModel;
|
|
10
|
+
children?: Array<IView> | ObservableArray<IView> | Computed<Array<IView>>;
|
|
11
|
+
}
|
|
12
|
+
export declare class View<TViewModel extends ViewModelOptions = ViewModelOptions> implements IView {
|
|
13
|
+
constructor(options: ViewOptions<TViewModel>, designTimeOptions?: ViewModelOptions);
|
|
14
|
+
private readonly tagName;
|
|
15
|
+
private readonly optionsChildren;
|
|
16
|
+
private children;
|
|
17
|
+
private buildChildren;
|
|
18
|
+
protected element: HTMLElement;
|
|
19
|
+
protected readonly viewModel: TViewModel;
|
|
20
|
+
protected build(): void;
|
|
21
|
+
protected remove(): void;
|
|
22
|
+
protected setChildren(...children: Array<IView>): View<TViewModel>;
|
|
23
|
+
protected empty(): void;
|
|
24
|
+
render(): HTMLElement;
|
|
25
|
+
}
|
|
26
|
+
export declare var viewDictionary: Map<any, any>;
|
|
27
|
+
export declare function registerView(viewModel: any, resolver: any): void;
|
|
28
|
+
export declare function getView(viewModel: ViewModel): View;
|
|
29
|
+
export declare function render(viewModel: ViewModel): HTMLElement;
|
package/dist/src/View.js
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.render = exports.getView = exports.registerView = exports.viewDictionary = exports.View = void 0;
|
|
4
|
+
require("tocca");
|
|
5
|
+
const knockout_1 = require("knockout");
|
|
6
|
+
const ViewModel_1 = require("./ViewModel");
|
|
7
|
+
class View {
|
|
8
|
+
constructor(options, designTimeOptions) {
|
|
9
|
+
this.children = new Array();
|
|
10
|
+
this.tagName = options.tagName;
|
|
11
|
+
this.viewModel = (0, ViewModel_1.extendViewModel)(options.viewModel, designTimeOptions);
|
|
12
|
+
this.optionsChildren = options.children;
|
|
13
|
+
this.children = (0, knockout_1.unwrap)(options.children);
|
|
14
|
+
}
|
|
15
|
+
buildChildren() {
|
|
16
|
+
if (this.element && this.children && this.children.length > 0) {
|
|
17
|
+
const documentFragment = document.createDocumentFragment();
|
|
18
|
+
this.children.forEach((childView) => {
|
|
19
|
+
documentFragment.appendChild(childView.render());
|
|
20
|
+
});
|
|
21
|
+
this.element.appendChild(documentFragment);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
build() {
|
|
25
|
+
(0, ViewModel_1.applyViewModelToElement)(this.viewModel, this.element);
|
|
26
|
+
if (this.children) {
|
|
27
|
+
this.buildChildren();
|
|
28
|
+
}
|
|
29
|
+
if ((0, knockout_1.isObservable)(this.optionsChildren)) {
|
|
30
|
+
this.optionsChildren.subscribe((children) => {
|
|
31
|
+
this.setChildren(...children);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
remove() {
|
|
36
|
+
if (this.element) {
|
|
37
|
+
if (this.element.remove) {
|
|
38
|
+
this.element.remove();
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
if (this.element.parentElement) {
|
|
42
|
+
this.element.parentElement.removeChild(this.element);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
this.element = null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
setChildren(...children) {
|
|
49
|
+
this.empty();
|
|
50
|
+
this.children = children;
|
|
51
|
+
this.buildChildren();
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
empty() {
|
|
55
|
+
this.children = [];
|
|
56
|
+
if (this.element) {
|
|
57
|
+
this.element.innerHTML = "";
|
|
58
|
+
while (this.element.firstChild) {
|
|
59
|
+
this.element.removeChild(this.element.firstChild);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
render() {
|
|
64
|
+
if (this.element) {
|
|
65
|
+
this.remove();
|
|
66
|
+
}
|
|
67
|
+
if (typeof this.build === "function") {
|
|
68
|
+
this.element = document.createElement(this.tagName);
|
|
69
|
+
this.build();
|
|
70
|
+
return this.element;
|
|
71
|
+
}
|
|
72
|
+
throw "The build method of this UiElement has not been defined";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.View = View;
|
|
76
|
+
exports.viewDictionary = new Map();
|
|
77
|
+
function registerView(viewModel, resolver) {
|
|
78
|
+
exports.viewDictionary.set(viewModel.prototype.constructor, resolver);
|
|
79
|
+
}
|
|
80
|
+
exports.registerView = registerView;
|
|
81
|
+
function getView(viewModel) {
|
|
82
|
+
const view = exports.viewDictionary.get(viewModel.constructor);
|
|
83
|
+
if (view.prototype) {
|
|
84
|
+
return new view(viewModel);
|
|
85
|
+
}
|
|
86
|
+
if (typeof view === "function") {
|
|
87
|
+
return view(viewModel);
|
|
88
|
+
}
|
|
89
|
+
throw "View resolver for '" + viewModel.constructor.name + " could not be found";
|
|
90
|
+
}
|
|
91
|
+
exports.getView = getView;
|
|
92
|
+
function render(viewModel) {
|
|
93
|
+
return getView(viewModel).render();
|
|
94
|
+
}
|
|
95
|
+
exports.render = render;
|
|
96
|
+
//# sourceMappingURL=View.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"View.js","sourceRoot":"","sources":["../../src/View.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Subscribable, ObservableArray, Observable } from "knockout";
|
|
2
|
+
import { CssProperty } from "./types";
|
|
3
|
+
import { EventListeners } from "./event";
|
|
4
|
+
import { Attributes, AttributesSubscribable } from "./attributes";
|
|
5
|
+
import { Style, StyleSubscribable } from "./style";
|
|
6
|
+
export interface ViewModelOptions {
|
|
7
|
+
attributes?: Attributes | AttributesSubscribable;
|
|
8
|
+
classNames?: Array<string> | Subscribable<Array<string>>;
|
|
9
|
+
style?: Style | StyleSubscribable;
|
|
10
|
+
visible?: boolean | Subscribable<boolean>;
|
|
11
|
+
disabled?: boolean | Subscribable<boolean>;
|
|
12
|
+
innerHtml?: string | Subscribable<string>;
|
|
13
|
+
innerText?: string | Subscribable<string>;
|
|
14
|
+
addViewModelToDataObject?: boolean;
|
|
15
|
+
userSelectable?: boolean;
|
|
16
|
+
dispose?: () => void;
|
|
17
|
+
refresh?: () => void;
|
|
18
|
+
eventListeners?: EventListeners;
|
|
19
|
+
viewType?: string;
|
|
20
|
+
focus?: () => void;
|
|
21
|
+
}
|
|
22
|
+
export interface IObservableProperty<TValue, TSetter = TValue> extends Subscribable<TValue> {
|
|
23
|
+
(): TValue;
|
|
24
|
+
set: (value: TSetter) => void;
|
|
25
|
+
}
|
|
26
|
+
export interface IObservableArrayProperty<TItem, TSetter> extends ObservableArray<TItem> {
|
|
27
|
+
set: (items: Array<TSetter>) => void;
|
|
28
|
+
}
|
|
29
|
+
export declare class ViewModel implements ViewModelOptions {
|
|
30
|
+
constructor(options?: ViewModelOptions);
|
|
31
|
+
readonly classNames: string[] | Subscribable<Array<string>>;
|
|
32
|
+
readonly attributes: Attributes | AttributesSubscribable;
|
|
33
|
+
readonly style: Style | StyleSubscribable;
|
|
34
|
+
readonly visible: boolean | Subscribable<boolean>;
|
|
35
|
+
readonly disabled: boolean | Subscribable<boolean>;
|
|
36
|
+
readonly innerHtml: string | Subscribable<string>;
|
|
37
|
+
readonly innerText: string | Subscribable<string>;
|
|
38
|
+
readonly addViewModelToDataObject: boolean;
|
|
39
|
+
readonly userSelectable: boolean;
|
|
40
|
+
readonly dispose: () => void;
|
|
41
|
+
readonly refresh: () => void;
|
|
42
|
+
readonly eventListeners: EventListeners;
|
|
43
|
+
readonly viewType: string;
|
|
44
|
+
protected getStyle(...cssProperties: Array<CssProperty>): Style;
|
|
45
|
+
protected getStyleValue(cssProperty: CssProperty): any;
|
|
46
|
+
setClasses(classNames: string[], replace: boolean): void;
|
|
47
|
+
setAttributes(attributes: Attributes): void;
|
|
48
|
+
setStyle(style: Style): void;
|
|
49
|
+
setVisible(visible: boolean): void;
|
|
50
|
+
setDisabled(disabled: boolean): void;
|
|
51
|
+
setInnerHtml(innerHtml: string): void;
|
|
52
|
+
setInnerText(innerText: string): void;
|
|
53
|
+
removeClasses(classNames: string[]): void;
|
|
54
|
+
focus(): void;
|
|
55
|
+
handleWebSocketMessage: (message: any) => void;
|
|
56
|
+
protected setObservableProperty(property: any, value: any): void;
|
|
57
|
+
protected createObservableProperty<TValue, TSetter = TValue>(value?: TValue | Observable<TValue>, setter?: (value: TSetter) => void, notifyAlways?: boolean): IObservableProperty<TValue, TSetter>;
|
|
58
|
+
protected createObservableArrayProperty<TItem, TSetter = TItem>(items?: Array<TItem> | ObservableArray<TItem>, setter?: (items: Array<TSetter>) => void): IObservableArrayProperty<TItem, TSetter>;
|
|
59
|
+
}
|
|
60
|
+
export declare function extendViewModel<TResult = ViewModelOptions, TTarget = ViewModelOptions, TSource = ViewModelOptions>(target: TTarget, source: TSource): TResult;
|
|
61
|
+
export declare function applyViewModelToElement(viewModel: ViewModelOptions, element: HTMLElement): void;
|