jpf 3.0.19 → 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.
Files changed (55) hide show
  1. package/dist/View.d.ts +29 -0
  2. package/dist/View.js +96 -0
  3. package/dist/View.js.map +1 -0
  4. package/dist/ViewModel.d.ts +61 -0
  5. package/dist/ViewModel.js +404 -0
  6. package/dist/ViewModel.js.map +1 -0
  7. package/dist/attributes.d.ts +37 -0
  8. package/dist/attributes.js +3 -0
  9. package/dist/attributes.js.map +1 -0
  10. package/dist/event.d.ts +59 -0
  11. package/dist/event.js +29 -0
  12. package/dist/event.js.map +1 -0
  13. package/dist/examples/example-01.d.ts +1 -0
  14. package/dist/examples/example-01.js +43 -0
  15. package/dist/examples/example-01.js.map +1 -0
  16. package/dist/index.d.ts +3 -2
  17. package/dist/index.js +17 -8
  18. package/dist/index.js.map +1 -1
  19. package/dist/src/View.d.ts +29 -0
  20. package/dist/src/View.js +96 -0
  21. package/dist/src/View.js.map +1 -0
  22. package/dist/src/ViewModel.d.ts +61 -0
  23. package/dist/src/ViewModel.js +404 -0
  24. package/dist/src/ViewModel.js.map +1 -0
  25. package/dist/src/attributes.d.ts +37 -0
  26. package/dist/src/attributes.js +3 -0
  27. package/dist/src/attributes.js.map +1 -0
  28. package/dist/src/event.d.ts +59 -0
  29. package/dist/src/event.js +29 -0
  30. package/dist/src/event.js.map +1 -0
  31. package/dist/src/index.d.ts +7 -0
  32. package/dist/src/index.js +22 -0
  33. package/dist/src/index.js.map +1 -0
  34. package/dist/src/style.d.ts +658 -0
  35. package/dist/src/style.js +158 -0
  36. package/dist/src/style.js.map +1 -0
  37. package/dist/src/types.d.ts +85 -0
  38. package/dist/src/types.js +3 -0
  39. package/dist/src/types.js.map +1 -0
  40. package/dist/src/userAgent.d.ts +31 -0
  41. package/dist/src/userAgent.js +50 -0
  42. package/dist/src/userAgent.js.map +1 -0
  43. package/dist/style.d.ts +330 -329
  44. package/dist/style.js +9 -0
  45. package/dist/style.js.map +1 -1
  46. package/dist/types.d.ts +1 -3
  47. package/dist/userAgent.js +7 -9
  48. package/dist/userAgent.js.map +1 -1
  49. package/package.json +13 -9
  50. package/dist/eventListener.d.ts +0 -30
  51. package/dist/eventListener.js +0 -12
  52. package/dist/eventListener.js.map +0 -1
  53. package/dist/uiElement.d.ts +0 -89
  54. package/dist/uiElement.js +0 -634
  55. package/dist/uiElement.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ export declare const mouseEvents: {
2
+ contextmenu: boolean;
3
+ mousedown: boolean;
4
+ mouseenter: boolean;
5
+ mouseleave: boolean;
6
+ mousemove: boolean;
7
+ mouseout: boolean;
8
+ mouseover: boolean;
9
+ mouseup: boolean;
10
+ };
11
+ export declare const touchEvents: {
12
+ touchcancel: boolean;
13
+ touchend: boolean;
14
+ touchmove: boolean;
15
+ touchstart: boolean;
16
+ longtap: boolean;
17
+ swipeleft: boolean;
18
+ swiperight: boolean;
19
+ swipeup: boolean;
20
+ swipedown: boolean;
21
+ };
22
+ export declare function isGlobalEvent(event: keyof UiElementEventMap): boolean;
23
+ export interface UiElementEventMap extends HTMLElementEventMap {
24
+ "tap": Event;
25
+ "dbltap": Event;
26
+ "longtap": Event;
27
+ "swipeleft": Event;
28
+ "swiperight": Event;
29
+ "swipeup": Event;
30
+ "swipedown": Event;
31
+ "textInput": Event;
32
+ }
33
+ interface IMouseEventListener extends IEventListener {
34
+ listener: (event: MouseEvent) => void;
35
+ }
36
+ interface IFocusEventListener extends IEventListener {
37
+ listener: (event: FocusEvent) => void;
38
+ }
39
+ export interface IGenericEventListener extends IEventListener {
40
+ listener: (event: Event) => void;
41
+ }
42
+ interface IEventListener {
43
+ options?: IEventListenerOptions;
44
+ }
45
+ export interface EventListeners {
46
+ click?: IMouseEventListener;
47
+ focusout?: IFocusEventListener;
48
+ }
49
+ declare type EventKey = "Enter" | "ArrowDown" | "ArrowUp" | "ArrowLeft" | "ArrowRight";
50
+ export interface IEventListenerOptions extends AddEventListenerOptions {
51
+ eventKey?: EventKey;
52
+ altKey?: boolean;
53
+ shiftKey?: boolean;
54
+ ctrlKey?: boolean;
55
+ mouseLeft?: boolean;
56
+ mouseMiddle?: boolean;
57
+ mouseRight?: boolean;
58
+ }
59
+ export {};
package/dist/event.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isGlobalEvent = exports.touchEvents = exports.mouseEvents = void 0;
4
+ exports.mouseEvents = {
5
+ contextmenu: true,
6
+ mousedown: true,
7
+ mouseenter: true,
8
+ mouseleave: true,
9
+ mousemove: true,
10
+ mouseout: true,
11
+ mouseover: true,
12
+ mouseup: true
13
+ };
14
+ exports.touchEvents = {
15
+ touchcancel: true,
16
+ touchend: true,
17
+ touchmove: true,
18
+ touchstart: true,
19
+ longtap: true,
20
+ swipeleft: true,
21
+ swiperight: true,
22
+ swipeup: true,
23
+ swipedown: true
24
+ };
25
+ function isGlobalEvent(event) {
26
+ return !(exports.mouseEvents[event] || exports.touchEvents[event]);
27
+ }
28
+ exports.isGlobalEvent = isGlobalEvent;
29
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG;IACvB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,IAAI;CAChB,CAAC;AAEW,QAAA,WAAW,GAAG;IACvB,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;CAClB,CAAC;AAEF,SAAgB,aAAa,CAAC,KAA8B;IACxD,OAAO,CAAC,CAAC,mBAAW,CAAC,KAAK,CAAC,IAAI,mBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC;AAFD,sCAEC"}
@@ -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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as Types from "./types";
2
- export * from "./eventListener";
3
- export * from "./uiElement";
2
+ export * from "./attributes";
3
+ export * from "./event";
4
+ export * from "./View";
4
5
  export * from "./style";
5
6
  export { userAgent } from "./userAgent";
6
7
  export { Types };
package/dist/index.js CHANGED
@@ -1,13 +1,22 @@
1
1
  "use strict";
2
- function __export(m) {
3
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
- }
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
5
12
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var Types = require("./types");
13
+ exports.Types = exports.userAgent = void 0;
14
+ const Types = require("./types");
7
15
  exports.Types = Types;
8
- __export(require("./eventListener"));
9
- __export(require("./uiElement"));
10
- __export(require("./style"));
16
+ __exportStar(require("./attributes"), exports);
17
+ __exportStar(require("./event"), exports);
18
+ __exportStar(require("./View"), exports);
19
+ __exportStar(require("./style"), exports);
11
20
  var userAgent_1 = require("./userAgent");
12
- exports.userAgent = userAgent_1.userAgent;
21
+ Object.defineProperty(exports, "userAgent", { enumerable: true, get: function () { return userAgent_1.userAgent; } });
13
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,+BAAgC;AAMvB,sBAAK;AAJd,qCAAgC;AAChC,iCAA4B;AAC5B,6BAAwB;AACxB,yCAAwC;AAA/B,gCAAA,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,iCAAgC;AAOvB,sBAAK;AALd,+CAA6B;AAC7B,0CAAwB;AACxB,yCAAuB;AACvB,0CAAwB;AACxB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA"}
@@ -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;
@@ -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;