jpf 4.1.26 → 4.1.27

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 +20 -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,98 @@
1
+ import "tocca";
2
+ import { unwrap, isObservable } from "knockout";
3
+ import { applyViewModelToElement } from "./ViewModel";
4
+ export class View {
5
+ constructor(options) {
6
+ this.tagName = options.tagName;
7
+ this.viewModel = options.viewModel;
8
+ this.optionsChildren = options.children;
9
+ this.children = unwrap(options.children);
10
+ }
11
+ tagName;
12
+ optionsChildren;
13
+ children = new Array();
14
+ buildChildren() {
15
+ if (this.element && this.children && this.children.length > 0) {
16
+ const documentFragment = document.createDocumentFragment();
17
+ this.children.forEach((childView) => {
18
+ documentFragment.appendChild(childView.render());
19
+ });
20
+ this.element.appendChild(documentFragment);
21
+ }
22
+ }
23
+ element;
24
+ viewModel;
25
+ build() {
26
+ applyViewModelToElement(this.viewModel, this.element);
27
+ if (this.children) {
28
+ this.buildChildren();
29
+ }
30
+ if (isObservable(this.optionsChildren)) {
31
+ this.optionsChildren.subscribe((children) => {
32
+ this.setChildren(...children);
33
+ });
34
+ }
35
+ }
36
+ remove() {
37
+ if (this.element) {
38
+ if (this.element.remove) {
39
+ this.element.remove();
40
+ }
41
+ else {
42
+ if (this.element.parentElement) {
43
+ this.element.parentElement.removeChild(this.element);
44
+ }
45
+ }
46
+ this.element = null;
47
+ }
48
+ }
49
+ addChild(child) {
50
+ this.children.push(child);
51
+ this.buildChildren();
52
+ return this;
53
+ }
54
+ setChildren(...children) {
55
+ this.empty();
56
+ this.children = children;
57
+ this.buildChildren();
58
+ return this;
59
+ }
60
+ empty() {
61
+ this.children = [];
62
+ if (this.element) {
63
+ this.element.innerHTML = "";
64
+ while (this.element.firstChild) {
65
+ this.element.removeChild(this.element.firstChild);
66
+ }
67
+ }
68
+ }
69
+ render() {
70
+ if (this.element) {
71
+ this.remove();
72
+ }
73
+ if (typeof this.build === "function") {
74
+ this.element = document.createElement(this.tagName);
75
+ this.build();
76
+ return this.element;
77
+ }
78
+ throw "The build method of this UiElement has not been defined";
79
+ }
80
+ }
81
+ export var viewDictionary = new Map();
82
+ export function registerView(viewModel, resolver) {
83
+ viewDictionary.set(viewModel.prototype.constructor, resolver);
84
+ }
85
+ export function getView(viewModel) {
86
+ const view = viewDictionary.get(viewModel.constructor);
87
+ if (view.prototype) {
88
+ return new view(viewModel);
89
+ }
90
+ if (typeof view === "function") {
91
+ return view(viewModel);
92
+ }
93
+ throw "View resolver for '" + viewModel.constructor.name + " could not be found";
94
+ }
95
+ export function render(viewModel) {
96
+ return getView(viewModel).render();
97
+ }
98
+ //# sourceMappingURL=View.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"View.js","sourceRoot":"","sources":["../../src/framework/View.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { Subscribable } from "knockout";
2
+ import { CssProperty } from "./types";
3
+ import { EventListeners, IGenericEventListener, IMouseEventListener, MouseEventListeners } from "./event";
4
+ import { Attributes, AttributesSubscribable } from "./attributes";
5
+ import { Style, StyleSubscribable } from "./style";
6
+ export declare function isNullOrUndefined(value: any): boolean;
7
+ export interface ViewModelOptions {
8
+ attributes?: Attributes | AttributesSubscribable;
9
+ classNames?: Array<string> | Subscribable<Array<string>>;
10
+ style?: Style | StyleSubscribable;
11
+ visible?: boolean | Subscribable<boolean>;
12
+ disabled?: boolean | Subscribable<boolean>;
13
+ innerHtml?: string | Subscribable<string>;
14
+ innerText?: string | Subscribable<string>;
15
+ addViewModelToDataObject?: boolean;
16
+ userSelectable?: boolean;
17
+ dispose?: () => void;
18
+ refresh?: () => void;
19
+ eventListeners?: EventListeners;
20
+ viewType?: string;
21
+ focus?: () => void;
22
+ }
23
+ export declare class ViewModel implements ViewModelOptions {
24
+ constructor(options?: ViewModelOptions);
25
+ readonly classNames: string[] | Subscribable<Array<string>>;
26
+ readonly attributes: Attributes | AttributesSubscribable;
27
+ readonly style: Style | StyleSubscribable;
28
+ readonly visible: boolean | Subscribable<boolean>;
29
+ readonly disabled: boolean | Subscribable<boolean>;
30
+ readonly innerHtml: string | Subscribable<string>;
31
+ readonly innerText: string | Subscribable<string>;
32
+ readonly addViewModelToDataObject: boolean;
33
+ readonly userSelectable: boolean;
34
+ readonly dispose: () => void;
35
+ readonly refresh: () => void;
36
+ readonly eventListeners: EventListeners;
37
+ readonly viewType: string;
38
+ protected getStyle(...cssProperties: Array<CssProperty>): Style;
39
+ protected getStyleValue(cssProperty: CssProperty): any;
40
+ addMouseEventListener(event: keyof MouseEventListeners, mouseEventListener: IMouseEventListener): void;
41
+ addEventListener(event: keyof EventListeners, genericEventListener: IGenericEventListener): void;
42
+ setClasses(classNames: string[], replace: boolean): void;
43
+ setAttributes(attributes: Attributes): void;
44
+ setStyle(style: Style): void;
45
+ setVisible(visible: boolean): void;
46
+ setDisabled(disabled: boolean): void;
47
+ setInnerHtml(innerHtml: string): void;
48
+ setInnerText(innerText: string): void;
49
+ removeClasses(classNames: string[]): void;
50
+ focus(): void;
51
+ handleWebSocketMessage: (message: any) => void;
52
+ }
53
+ export declare function extendViewModel<TResult = ViewModelOptions, TTarget = ViewModelOptions, TSource = ViewModelOptions>(target: TTarget, source: TSource): TResult;
54
+ export declare function applyViewModelToElement(viewModel: ViewModelOptions, element: HTMLElement): void;
@@ -0,0 +1,364 @@
1
+ import { unwrap, isSubscribable } from "knockout";
2
+ import { userAgent } from "./userAgent";
3
+ import { mouseEvents, touchEvents, isGlobalEvent } from "./event";
4
+ import { defaultStyle } from "./style";
5
+ import { extend } from "jquery";
6
+ export function isNullOrUndefined(value) {
7
+ return value === null || typeof value === "undefined";
8
+ }
9
+ export class ViewModel {
10
+ constructor(options) {
11
+ options = options || {};
12
+ this.classNames = options.classNames;
13
+ this.attributes = options.attributes || {};
14
+ this.style = options.style || {};
15
+ if (options.hasOwnProperty("visible")) {
16
+ this.visible = options.visible;
17
+ }
18
+ if (options.hasOwnProperty("disabled")) {
19
+ this.disabled = options.disabled;
20
+ }
21
+ this.innerHtml = options.innerHtml;
22
+ this.innerText = options.innerText;
23
+ this.addViewModelToDataObject = options.addViewModelToDataObject;
24
+ this.userSelectable = options.userSelectable;
25
+ this.dispose = options.dispose;
26
+ this.refresh = options.refresh;
27
+ this.eventListeners = options.eventListeners || {};
28
+ this.viewType = options.viewType;
29
+ }
30
+ classNames;
31
+ attributes;
32
+ style;
33
+ visible = true;
34
+ disabled = false;
35
+ innerHtml;
36
+ innerText;
37
+ addViewModelToDataObject = false;
38
+ userSelectable;
39
+ dispose;
40
+ refresh;
41
+ eventListeners;
42
+ viewType;
43
+ getStyle(...cssProperties) {
44
+ if (cssProperties && this.style) {
45
+ const style = {};
46
+ cssProperties.forEach((cssProperty) => {
47
+ style[cssProperty] = this.style[cssProperty];
48
+ });
49
+ return style;
50
+ }
51
+ return null;
52
+ }
53
+ getStyleValue(cssProperty) {
54
+ if (this.style) {
55
+ return unwrap(this.style[cssProperty]);
56
+ }
57
+ return null;
58
+ }
59
+ addMouseEventListener(event, mouseEventListener) {
60
+ if (!this.eventListeners[event]) {
61
+ this.eventListeners[event] = mouseEventListener;
62
+ }
63
+ }
64
+ addEventListener(event, genericEventListener) {
65
+ if (!this.eventListeners[event]) {
66
+ this.eventListeners[event] = genericEventListener;
67
+ }
68
+ }
69
+ setClasses(classNames, replace) {
70
+ if (isSubscribable(this.classNames)) {
71
+ var currentClassNames = unwrap(this.classNames);
72
+ if (replace) {
73
+ currentClassNames = new Array();
74
+ }
75
+ if (classNames) {
76
+ classNames.forEach((className) => {
77
+ currentClassNames.push(className);
78
+ });
79
+ }
80
+ this.classNames(currentClassNames);
81
+ }
82
+ }
83
+ setAttributes(attributes) {
84
+ if (attributes) {
85
+ Object.keys(attributes).forEach((key) => {
86
+ let newValue = attributes[key];
87
+ if (newValue === null || newValue === undefined) {
88
+ newValue = null;
89
+ }
90
+ if (isSubscribable(this.attributes[key])) {
91
+ this.attributes[key](unwrap(newValue));
92
+ }
93
+ else {
94
+ this.attributes[key] = newValue;
95
+ }
96
+ });
97
+ }
98
+ }
99
+ setStyle(style) {
100
+ if (style) {
101
+ Object.keys(style).forEach((key) => {
102
+ let newValue = style[key];
103
+ if (newValue === null || newValue === undefined) {
104
+ if (userAgent.browser.isInternetExplorer) {
105
+ newValue = defaultStyle[key];
106
+ }
107
+ else {
108
+ newValue = null;
109
+ }
110
+ }
111
+ if (isSubscribable(this.style[key])) {
112
+ this.style[key](unwrap(newValue));
113
+ }
114
+ else {
115
+ this.style[key] = newValue;
116
+ }
117
+ });
118
+ }
119
+ }
120
+ setVisible(visible) {
121
+ if (isSubscribable(this.visible)) {
122
+ this.visible(visible);
123
+ }
124
+ }
125
+ setDisabled(disabled) {
126
+ if (isSubscribable(this.disabled)) {
127
+ this.disabled(disabled);
128
+ }
129
+ }
130
+ setInnerHtml(innerHtml) {
131
+ if (isSubscribable(this.innerHtml)) {
132
+ this.innerHtml(innerHtml);
133
+ }
134
+ }
135
+ setInnerText(innerText) {
136
+ if (isSubscribable(this.innerText)) {
137
+ this.innerText(innerText);
138
+ }
139
+ }
140
+ removeClasses(classNames) {
141
+ if (isSubscribable(this.classNames)) {
142
+ const currentClassNames = unwrap(this.classNames);
143
+ for (let i = 0; i < currentClassNames.length; i++) {
144
+ if (classNames.includes(currentClassNames[i])) {
145
+ currentClassNames.splice(i, 1);
146
+ }
147
+ }
148
+ this.classNames(currentClassNames);
149
+ }
150
+ }
151
+ focus() {
152
+ }
153
+ handleWebSocketMessage;
154
+ }
155
+ export function extendViewModel(target, source) {
156
+ return extend(true, target, source);
157
+ }
158
+ export function applyViewModelToElement(viewModel, element) {
159
+ element.setAttribute("viewtype", viewModel.viewType || "View");
160
+ if (viewModel.classNames) {
161
+ applyClassesToElement(unwrap(viewModel.classNames), true, element);
162
+ if (isSubscribable(viewModel.classNames)) {
163
+ viewModel.classNames.subscribe((classNames) => {
164
+ applyClassesToElement(classNames, true, element);
165
+ });
166
+ }
167
+ }
168
+ if (viewModel.attributes) {
169
+ Object.keys(viewModel.attributes).forEach((key) => {
170
+ var value = viewModel.attributes[key];
171
+ applyAttributeToElement(key, unwrap(value), element);
172
+ if (isSubscribable(value)) {
173
+ value.subscribe((newValue) => {
174
+ applyAttributeToElement(key, newValue, element);
175
+ });
176
+ }
177
+ });
178
+ }
179
+ if (viewModel.style) {
180
+ Object.keys(viewModel.style).forEach((key) => {
181
+ const style = viewModel.style[key];
182
+ element.style[key] = unwrap(style);
183
+ if (isSubscribable(style)) {
184
+ style.subscribe((newStyle) => {
185
+ element.style[key] = newStyle;
186
+ });
187
+ }
188
+ });
189
+ }
190
+ if (!isNullOrUndefined(viewModel.innerHtml)) {
191
+ element.innerHTML = unwrap(viewModel.innerHtml);
192
+ if (isSubscribable(viewModel.innerHtml)) {
193
+ viewModel.innerHtml.subscribe((innerHtml) => {
194
+ element.innerHTML = innerHtml;
195
+ });
196
+ }
197
+ }
198
+ if (!isNullOrUndefined(viewModel.innerText)) {
199
+ element.innerText = unwrap(viewModel.innerText);
200
+ if (isSubscribable(viewModel.innerText)) {
201
+ viewModel.innerText.subscribe((innerText) => {
202
+ element.innerText = innerText;
203
+ });
204
+ }
205
+ }
206
+ if (viewModel.userSelectable === false) {
207
+ applyEventListenerToElement("selectstart", () => { return false; }, { passive: true }, element);
208
+ element.style.userSelect = "none";
209
+ }
210
+ if (viewModel.addViewModelToDataObject) {
211
+ if (!element["data"]) {
212
+ element["data"] = {};
213
+ }
214
+ element["data"].viewModel = viewModel;
215
+ }
216
+ if (viewModel.eventListeners) {
217
+ applyEventListenersToElement(viewModel, element);
218
+ }
219
+ applyVisibilityToElement(unwrap(viewModel.visible), element);
220
+ if (isSubscribable(viewModel.visible)) {
221
+ viewModel.visible.subscribe((visible) => {
222
+ applyVisibilityToElement(visible, element);
223
+ });
224
+ }
225
+ applyDisabledToElement(unwrap(viewModel.disabled), element);
226
+ if (isSubscribable(viewModel.disabled)) {
227
+ viewModel.disabled.subscribe((disabled) => {
228
+ applyDisabledToElement(disabled, element);
229
+ });
230
+ }
231
+ viewModel.focus = () => {
232
+ element.focus();
233
+ };
234
+ }
235
+ function applyVisibilityToElement(visible, element) {
236
+ if (visible === false) {
237
+ element.classList.add("hidden");
238
+ }
239
+ else {
240
+ element.classList.remove("hidden");
241
+ }
242
+ }
243
+ function applyDisabledToElement(disabled, element) {
244
+ if (disabled) {
245
+ element.setAttribute("disabled", "disabled");
246
+ }
247
+ else {
248
+ element.removeAttribute("disabled");
249
+ }
250
+ }
251
+ function applyEventListenersToElement(viewModel, element) {
252
+ const clickEventListeners = new Array();
253
+ const doubleClickEventListeners = new Array();
254
+ Object.entries(viewModel.eventListeners).forEach((entry) => {
255
+ var eventName = entry[0];
256
+ var eventListener = entry[1];
257
+ if (eventName === "click") {
258
+ clickEventListeners.push(eventListener);
259
+ return;
260
+ }
261
+ if (eventName === "dblclick") {
262
+ doubleClickEventListeners.push(eventListener);
263
+ return;
264
+ }
265
+ if (eventName === "dragstart") {
266
+ element.setAttribute("draggable", "true");
267
+ }
268
+ if (isGlobalEvent(eventName)) {
269
+ applyEventListenerToElement(eventName, (event) => {
270
+ if (eventListener.options) {
271
+ const options = eventListener.options;
272
+ const keyEvent = event;
273
+ if (options.altKey && !keyEvent.altKey) {
274
+ return;
275
+ }
276
+ if (options.shiftKey && !keyEvent.shiftKey) {
277
+ return;
278
+ }
279
+ if (options.ctrlKey && !keyEvent.ctrlKey) {
280
+ return;
281
+ }
282
+ if (options.eventKey && options.eventKey !== keyEvent.key) {
283
+ return;
284
+ }
285
+ }
286
+ eventListener.listener.call(viewModel, event);
287
+ }, eventListener.options, element);
288
+ }
289
+ else if (mouseEvents[eventName] && userAgent.device.supportsMouseEvents) {
290
+ applyEventListenerToElement(eventName, eventListener.listener, eventListener.options, element);
291
+ }
292
+ else if (touchEvents[eventName] && userAgent.device.supportsTouchEvents) {
293
+ applyEventListenerToElement(eventName, eventListener.listener, eventListener.options, element);
294
+ }
295
+ });
296
+ clickEventListeners.forEach((clickEventListener) => {
297
+ if (userAgent.device.supportsTouchEvents) {
298
+ applyEventListenerToElement("tap", clickEventListener.listener, clickEventListener.options, element);
299
+ }
300
+ if (userAgent.device.supportsMouseEvents) {
301
+ applyEventListenerToElement("click", clickEventListener.listener, clickEventListener.options, element);
302
+ }
303
+ });
304
+ doubleClickEventListeners.forEach((doubleClickEventListener) => {
305
+ if (userAgent.device.supportsTouchEvents) {
306
+ applyEventListenerToElement("dbltap", doubleClickEventListener.listener, doubleClickEventListener.options, element);
307
+ }
308
+ if (userAgent.device.supportsMouseEvents) {
309
+ applyEventListenerToElement("dblclick", doubleClickEventListener.listener, doubleClickEventListener.options, element);
310
+ }
311
+ });
312
+ }
313
+ function applyEventListenerToElement(type, listener, options, element) {
314
+ if (!type) {
315
+ throw new Error("type is mandatory");
316
+ }
317
+ if (!listener) {
318
+ throw new Error("listener is mandatory");
319
+ }
320
+ if (!options) {
321
+ options = {};
322
+ }
323
+ if (!options.passive) {
324
+ options.passive = false;
325
+ }
326
+ if (!options.once) {
327
+ options.once = false;
328
+ }
329
+ if (element.addEventListener) {
330
+ element.addEventListener(type, (event) => {
331
+ listener(event);
332
+ }, {
333
+ passive: options.passive,
334
+ once: options.once
335
+ });
336
+ }
337
+ else if (element["attachEvent"]) {
338
+ element["attachEvent"](type, (event) => {
339
+ listener(event);
340
+ });
341
+ }
342
+ else {
343
+ throw "Your browser does not support 'addEventListener'";
344
+ }
345
+ }
346
+ function applyClassesToElement(classNames, replace, element) {
347
+ if (replace) {
348
+ element.className = "";
349
+ }
350
+ if (classNames) {
351
+ classNames.forEach((className) => {
352
+ element.classList.add(className);
353
+ });
354
+ }
355
+ }
356
+ function applyAttributeToElement(name, value, element) {
357
+ if (isNullOrUndefined(value)) {
358
+ element.removeAttribute(name);
359
+ }
360
+ else {
361
+ element.setAttribute(name, value);
362
+ }
363
+ }
364
+ //# sourceMappingURL=ViewModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewModel.js","sourceRoot":"","sources":["../../src/framework/ViewModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAgB,cAAc,EAAE,MAAM,UAAU,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAA6H,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7L,OAAO,EAA4B,YAAY,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,UAAU,iBAAiB,CAAC,KAAK;IACnC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,WAAW,CAAC;AAC1D,CAAC;AAmBD,MAAM,OAAO,SAAS;IAClB,YAAmB,OAA0B;QACzC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAExB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;YACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;SAClC;QACD,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;YACpC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;SACpC;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrC,CAAC;IAEQ,UAAU,CAAyC;IACnD,UAAU,CAAsC;IAChD,KAAK,CAA4B;IACjC,OAAO,GAAoC,IAAI,CAAC;IAChD,QAAQ,GAAoC,KAAK,CAAC;IAClD,SAAS,CAAgC;IACzC,SAAS,CAAgC;IACzC,wBAAwB,GAAY,KAAK,CAAC;IAC1C,cAAc,CAAU;IACxB,OAAO,CAAa;IACpB,OAAO,CAAa;IACpB,cAAc,CAAiB;IAC/B,QAAQ,CAAS;IAEhB,QAAQ,CAAC,GAAG,aAAiC;QACnD,IAAI,aAAa,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,MAAM,KAAK,GAAU,EAAE,CAAC;YACxB,aAAa,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;gBAClC,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAU,CAAC;YAC1D,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAa,CAAC;IACzB,CAAC;IACS,aAAa,CAAC,WAAwB;QAC5C,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qBAAqB,CAAC,KAAgC,EAAE,kBAAuC;QAC3F,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC;SACnD;IACL,CAAC;IAED,gBAAgB,CAAC,KAA2B,EAAE,oBAA2C;QACrF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC;SACrD;IACL,CAAC;IAED,UAAU,CAAC,UAAoB,EAAE,OAAgB;QAC7C,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACjC,IAAI,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,OAAO,EAAE;gBACT,iBAAiB,GAAG,IAAI,KAAK,EAAU,CAAC;aAC3C;YAED,IAAI,UAAU,EAAE;gBACZ,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC7B,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;aACN;YAED,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;SACtC;IACL,CAAC;IACD,aAAa,CAAC,UAAsB;QAChC,IAAI,UAAU,EAAE;YACZ,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpC,IAAI,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC7C,QAAQ,GAAG,IAAI,CAAC;iBACnB;gBAED,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;oBACtC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAC1C;qBAAM;oBACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;iBACnC;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,QAAQ,CAAC,KAAY;QACjB,IAAI,KAAK,EAAE;YACP,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;gBACvC,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC7C,IAAI,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE;wBAGtC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;qBAChC;yBAAM;wBACH,QAAQ,GAAG,IAAI,CAAC;qBACnB;iBACJ;gBAED,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;oBACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;iBACrC;qBAAM;oBACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;iBAC9B;YACL,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IACD,UAAU,CAAC,OAAgB;QACvB,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACzB;IACL,CAAC;IACD,WAAW,CAAC,QAAiB;QACzB,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;SAC3B;IACL,CAAC;IACD,YAAY,CAAC,SAAiB;QAC1B,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAC7B;IACL,CAAC;IACD,YAAY,CAAC,SAAiB;QAC1B,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SAC7B;IACL,CAAC;IAED,aAAa,CAAC,UAAoB;QAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACjC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC3C,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAClC;aACJ;YACD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;SACtC;IACL,CAAC;IAED,KAAK;IAEL,CAAC;IAED,sBAAsB,CAAyB;CAClD;AAKD,MAAM,UAAU,eAAe,CAAqF,MAAe,EAAE,MAAe;IAChJ,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAmB,CAAC;AAC1D,CAAC;AAGD,MAAM,UAAU,uBAAuB,CAAC,SAA2B,EAAE,OAAoB;IACrF,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IAE/D,IAAI,SAAS,CAAC,UAAU,EAAE;QACtB,qBAAqB,CAAC,MAAM,CAAW,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE7E,IAAI,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;YACtC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAyB,EAAE,EAAE;gBACzD,qBAAqB,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;SACN;KACJ;IAED,IAAI,SAAS,CAAC,UAAU,EAAE;QACtB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9C,IAAI,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACtC,uBAAuB,CAAC,GAAuB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;YACzE,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;gBACvB,KAAK,CAAC,SAAS,CAAC,CAAC,QAAgB,EAAE,EAAE;oBACjC,uBAAuB,CAAC,GAAuB,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;KACN;IAED,IAAI,SAAS,CAAC,KAAK,EAAE;QACjB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACzC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;gBACvB,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACzB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;gBAClC,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;KACN;IAED,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;QACzC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACrC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,SAAiB,EAAE,EAAE;gBAChD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAClC,CAAC,CAAC,CAAC;SACN;KACJ;IAED,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;QACzC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACrC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,SAAiB,EAAE,EAAE;gBAChD,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAClC,CAAC,CAAC,CAAC;SACN;KACJ;IAGD,IAAI,SAAS,CAAC,cAAc,KAAK,KAAK,EAAE;QACpC,2BAA2B,CAAC,aAAa,EAAE,GAAG,EAAE,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAChG,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;KACrC;IAED,IAAI,SAAS,CAAC,wBAAwB,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAClB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SACxB;QACD,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;KACzC;IAED,IAAI,SAAS,CAAC,cAAc,EAAE;QAC1B,4BAA4B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KACpD;IAED,wBAAwB,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACnC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;KACN;IAED,sBAAsB,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;QACpC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;YACtC,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;KACN;IAED,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC,CAAA;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAgB,EAAE,OAAoB;IACpE,IAAI,OAAO,KAAK,KAAK,EAAE;QACnB,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KACnC;SAAM;QACH,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KACtC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAiB,EAAE,OAAoB;IACnE,IAAI,QAAQ,EAAE;QACV,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;KAChD;SAAM;QACH,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;KACvC;AACL,CAAC;AAED,SAAS,4BAA4B,CAAC,SAA2B,EAAE,OAAoB;IAEnF,MAAM,mBAAmB,GAAG,IAAI,KAAK,EAAyB,CAAC;IAC/D,MAAM,yBAAyB,GAAG,IAAI,KAAK,EAAyB,CAAC;IAErE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvD,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAA4B,CAAC;QACpD,IAAI,aAAa,GAAG,KAAK,CAAC,CAAC,CAA0B,CAAC;QAEtD,IAAI,SAAS,KAAK,OAAO,EAAE;YACvB,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,OAAO;SACV;QACD,IAAI,SAAS,KAAK,UAAU,EAAE;YAC1B,yBAAyB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9C,OAAO;SACV;QAED,IAAI,SAAS,KAAK,WAAW,EAAE;YAC3B,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;SAC7C;QAED,IAAI,aAAa,CAAC,SAAS,CAAC,EAAE;YAC1B,2BAA2B,CACvB,SAAS,EACT,CAAC,KAAY,EAAE,EAAE;gBACb,IAAI,aAAa,CAAC,OAAO,EAAE;oBACvB,MAAM,OAAO,GAAG,aAAa,CAAC,OAAgC,CAAC;oBAC/D,MAAM,QAAQ,GAAG,KAAsB,CAAC;oBACxC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;wBACpC,OAAO;qBACV;oBACD,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;wBACxC,OAAO;qBACV;oBACD,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;wBACtC,OAAO;qBACV;oBACD,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE;wBACvD,OAAO;qBACV;iBACJ;gBAED,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC,EACD,aAAa,CAAC,OAAO,EACrB,OAAO,CACV,CAAC;SACL;aACI,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE;YACrE,2BAA2B,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAClG;aACI,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE;YACrE,2BAA2B,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAClG;IACL,CAAC,CAAC,CAAC;IAEH,mBAAmB,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,EAAE;QAC/C,IAAI,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE;YAEtC,2BAA2B,CAAC,KAAK,EAAE,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACxG;QACD,IAAI,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE;YACtC,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SAC1G;IACL,CAAC,CAAC,CAAC;IAEH,yBAAyB,CAAC,OAAO,CAAC,CAAC,wBAAwB,EAAE,EAAE;QAC3D,IAAI,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE;YAEtC,2BAA2B,CAAC,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACvH;QACD,IAAI,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE;YACtC,2BAA2B,CAAC,UAAU,EAAE,wBAAwB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACzH;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,2BAA2B,CAAC,IAA6B,EAAE,QAA6B,EAAE,OAA8B,EAAE,OAAoB;IACnJ,IAAI,CAAC,IAAI,EAAE;QACP,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACxC;IACD,IAAI,CAAC,QAAQ,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAC5C;IACD,IAAI,CAAC,OAAO,EAAE;QACV,OAAO,GAAG,EAAE,CAAC;KAChB;IACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QAClB,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;KAC3B;IACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;QACf,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;KACxB;IAED,IAAI,OAAO,CAAC,gBAAgB,EAAE;QAC1B,OAAO,CAAC,gBAAgB,CACpB,IAAI,EACJ,CAAC,KAAK,EAAE,EAAE;YACN,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,EACD;YACI,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC,CAAC;KACV;SAAM,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;QAC/B,OAAO,CAAC,aAAa,CAAC,CAClB,IAAI,EACJ,CAAC,KAAK,EAAE,EAAE;YACN,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CACJ,CAAC;KACL;SAAM;QACH,MAAM,kDAAkD,CAAC;KAC5D;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAoB,EAAE,OAAgB,EAAE,OAAoB;IAEvF,IAAI,OAAO,EAAE;QACT,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;KAC1B;IAGD,IAAI,UAAU,EAAE;QACZ,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC7B,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;KACN;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAsB,EAAE,KAAa,EAAE,OAAoB;IACxF,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE;QAC1B,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KACjC;SAAM;QACH,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACrC;AACL,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { Subscribable } from "knockout";
2
+ export interface Attributes {
3
+ alt?: string;
4
+ disabled?: string;
5
+ href?: string;
6
+ target?: string;
7
+ id?: string;
8
+ src?: string;
9
+ title?: string;
10
+ class?: string;
11
+ tabindex?: number;
12
+ draggable?: string;
13
+ placeholder?: string;
14
+ for?: string;
15
+ type?: string;
16
+ value?: string;
17
+ view?: string;
18
+ checked?: string;
19
+ enctype?: string;
20
+ name?: string;
21
+ multiple?: boolean;
22
+ ["aria-label"]?: string;
23
+ }
24
+ export interface AttributesSubscribable {
25
+ alt?: string | Subscribable<string>;
26
+ disabled?: string | Subscribable<string>;
27
+ href?: string | Subscribable<string>;
28
+ target?: string | Subscribable<string>;
29
+ id?: string | Subscribable<string>;
30
+ src?: string | Subscribable<string>;
31
+ title?: string | Subscribable<string>;
32
+ class?: string | Subscribable<string>;
33
+ tabindex?: number | Subscribable<number>;
34
+ draggable?: string | Subscribable<string>;
35
+ placeholder?: string | Subscribable<string>;
36
+ for?: string | Subscribable<string>;
37
+ type?: string | Subscribable<string>;
38
+ value?: string | Subscribable<string>;
39
+ view?: string | Subscribable<string>;
40
+ checked?: string | Subscribable<string>;
41
+ enctype?: string | Subscribable<string>;
42
+ name?: string | Subscribable<string>;
43
+ multiple?: boolean | Subscribable<boolean>;
44
+ ["aria-label"]?: string | Subscribable<string>;
45
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/framework/attributes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,73 @@
1
+ export declare const mouseEvents: {
2
+ click: boolean;
3
+ contextmenu: boolean;
4
+ mousedown: boolean;
5
+ mouseenter: boolean;
6
+ mouseleave: boolean;
7
+ mousemove: boolean;
8
+ mouseout: boolean;
9
+ mouseover: boolean;
10
+ mouseup: boolean;
11
+ };
12
+ export declare const touchEvents: {
13
+ touchcancel: boolean;
14
+ touchend: boolean;
15
+ touchmove: boolean;
16
+ touchstart: boolean;
17
+ longtap: boolean;
18
+ swipeleft: boolean;
19
+ swiperight: boolean;
20
+ swipeup: boolean;
21
+ swipedown: boolean;
22
+ };
23
+ export type MouseE = "click" | "contextmenu";
24
+ export declare function isGlobalEvent(event: keyof UiElementEventMap): boolean;
25
+ export interface UiElementEventMap extends HTMLElementEventMap {
26
+ "tap": Event;
27
+ "dbltap": Event;
28
+ "longtap": Event;
29
+ "swipeleft": Event;
30
+ "swiperight": Event;
31
+ "swipeup": Event;
32
+ "swipedown": Event;
33
+ "textInput": Event;
34
+ }
35
+ export interface IMouseEventListener extends IEventListener {
36
+ listener: (event: MouseEvent) => void;
37
+ }
38
+ export interface IFocusEventListener extends IEventListener {
39
+ listener: (event: FocusEvent) => void;
40
+ }
41
+ export interface IContextMenuEventListener extends IEventListener {
42
+ listener: (event: PointerEvent) => void;
43
+ }
44
+ export interface IGenericEventListener extends IEventListener {
45
+ listener: (event: Event) => void;
46
+ }
47
+ export interface IEventListener {
48
+ options?: IEventListenerOptions;
49
+ }
50
+ export interface MouseEventListeners {
51
+ click?: IMouseEventListener;
52
+ }
53
+ export interface FocusEventListeners {
54
+ focusout?: IFocusEventListener;
55
+ }
56
+ export interface ContextMenuEventListeners {
57
+ contextMenu?: IContextMenuEventListener;
58
+ }
59
+ export interface EventListeners extends MouseEventListeners, FocusEventListeners, ContextMenuEventListeners {
60
+ change?: IGenericEventListener;
61
+ load?: IGenericEventListener;
62
+ }
63
+ type EventKey = "Enter" | "ArrowDown" | "ArrowUp" | "ArrowLeft" | "ArrowRight";
64
+ export interface IEventListenerOptions extends AddEventListenerOptions {
65
+ eventKey?: EventKey;
66
+ altKey?: boolean;
67
+ shiftKey?: boolean;
68
+ ctrlKey?: boolean;
69
+ mouseLeft?: boolean;
70
+ mouseMiddle?: boolean;
71
+ mouseRight?: boolean;
72
+ }
73
+ export {};