jpf 4.0.1 → 4.0.3

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 (134) hide show
  1. package/dist/View.d.ts +5 -2
  2. package/dist/View.js +5 -0
  3. package/dist/View.js.map +1 -1
  4. package/dist/ViewModel.d.ts +6 -12
  5. package/dist/ViewModel.js +47 -64
  6. package/dist/ViewModel.js.map +1 -1
  7. package/dist/attributes.d.ts +8 -0
  8. package/dist/controls/JsonFormatter/Json.d.ts +27 -0
  9. package/dist/controls/JsonFormatter/Json.js +72 -0
  10. package/dist/controls/JsonFormatter/Json.js.map +1 -0
  11. package/dist/controls/codeMirror/HtmlEditor.d.ts +15 -0
  12. package/dist/controls/codeMirror/HtmlEditor.js +127 -0
  13. package/dist/controls/codeMirror/HtmlEditor.js.map +1 -0
  14. package/dist/controls/codeMirror/JsonEditor.d.ts +15 -0
  15. package/dist/controls/codeMirror/JsonEditor.js +111 -0
  16. package/dist/controls/codeMirror/JsonEditor.js.map +1 -0
  17. package/dist/controls/html/Button.d.ts +15 -0
  18. package/dist/controls/html/Button.js +48 -0
  19. package/dist/controls/html/Button.js.map +1 -0
  20. package/dist/controls/html/Div.d.ts +10 -0
  21. package/dist/controls/html/Div.js +17 -0
  22. package/dist/controls/html/Div.js.map +1 -0
  23. package/dist/controls/html/Image.d.ts +7 -0
  24. package/dist/controls/html/Image.js +16 -0
  25. package/dist/controls/html/Image.js.map +1 -0
  26. package/dist/controls/html/Input.d.ts +43 -0
  27. package/dist/controls/html/Input.js +179 -0
  28. package/dist/controls/html/Input.js.map +1 -0
  29. package/dist/controls/html/Select.d.ts +27 -0
  30. package/dist/controls/html/Select.js +116 -0
  31. package/dist/controls/html/Select.js.map +1 -0
  32. package/dist/controls/html/Span.d.ts +7 -0
  33. package/dist/controls/html/Span.js +16 -0
  34. package/dist/controls/html/Span.js.map +1 -0
  35. package/dist/controls/kendo/Culture.d.ts +1 -0
  36. package/dist/controls/kendo/Culture.js +26 -0
  37. package/dist/controls/kendo/Culture.js.map +1 -0
  38. package/dist/controls/kendo/DataSource.d.ts +4 -0
  39. package/dist/controls/kendo/DataSource.js +2 -0
  40. package/dist/controls/kendo/DataSource.js.map +1 -0
  41. package/dist/controls/kendo/Editor.d.ts +18 -0
  42. package/dist/controls/kendo/Editor.js +113 -0
  43. package/dist/controls/kendo/Editor.js.map +1 -0
  44. package/dist/controls/kendo/Grid.d.ts +50 -0
  45. package/dist/controls/kendo/Grid.js +214 -0
  46. package/dist/controls/kendo/Grid.js.map +1 -0
  47. package/dist/controls/kendo/Menu.d.ts +14 -0
  48. package/dist/controls/kendo/Menu.js +86 -0
  49. package/dist/controls/kendo/Menu.js.map +1 -0
  50. package/dist/controls/kendo/Tree.d.ts +16 -0
  51. package/dist/controls/kendo/Tree.js +104 -0
  52. package/dist/controls/kendo/Tree.js.map +1 -0
  53. package/dist/controls/user/Content.d.ts +16 -0
  54. package/dist/controls/user/Content.js +45 -0
  55. package/dist/controls/user/Content.js.map +1 -0
  56. package/dist/controls/user/FileSelector.d.ts +17 -0
  57. package/dist/controls/user/FileSelector.js +54 -0
  58. package/dist/controls/user/FileSelector.js.map +1 -0
  59. package/dist/controls/user/LabeledControl.d.ts +14 -0
  60. package/dist/controls/user/LabeledControl.js +32 -0
  61. package/dist/controls/user/LabeledControl.js.map +1 -0
  62. package/dist/controls/user/ListItem.d.ts +30 -0
  63. package/dist/controls/user/ListItem.js +61 -0
  64. package/dist/controls/user/ListItem.js.map +1 -0
  65. package/dist/event.d.ts +17 -3
  66. package/dist/event.js +1 -0
  67. package/dist/event.js.map +1 -1
  68. package/dist/{src → framework}/View.d.ts +5 -2
  69. package/dist/{src → framework}/View.js +24 -22
  70. package/dist/framework/View.js.map +1 -0
  71. package/dist/{src → framework}/ViewModel.d.ts +5 -12
  72. package/dist/{src → framework}/ViewModel.js +75 -115
  73. package/dist/framework/ViewModel.js.map +1 -0
  74. package/dist/{src → framework}/attributes.d.ts +8 -0
  75. package/dist/framework/attributes.js +2 -0
  76. package/dist/{src → framework}/attributes.js.map +1 -1
  77. package/dist/{src → framework}/event.d.ts +19 -5
  78. package/dist/framework/event.js +26 -0
  79. package/dist/framework/event.js.map +1 -0
  80. package/dist/framework/observable.d.ts +12 -0
  81. package/dist/framework/observable.js +59 -0
  82. package/dist/framework/observable.js.map +1 -0
  83. package/dist/{src → framework}/style.d.ts +0 -0
  84. package/dist/{src → framework}/style.js +3 -7
  85. package/dist/framework/style.js.map +1 -0
  86. package/dist/framework/types.d.ts +85 -0
  87. package/dist/framework/types.js +2 -0
  88. package/dist/{src → framework}/types.js.map +1 -1
  89. package/dist/{src → framework}/userAgent.d.ts +0 -0
  90. package/dist/{src → framework}/userAgent.js +3 -6
  91. package/dist/framework/userAgent.js.map +1 -0
  92. package/dist/index.d.ts +9 -6
  93. package/dist/index.js +9 -21
  94. package/dist/index.js.map +1 -1
  95. package/dist/observable.d.ts +12 -0
  96. package/dist/observable.js +65 -0
  97. package/dist/observable.js.map +1 -0
  98. package/dist/style.js +2 -2
  99. package/dist/style.js.map +1 -1
  100. package/dist/userAgent.js.map +1 -1
  101. package/dist/utilities/blob.d.ts +2 -0
  102. package/dist/utilities/blob.js +19 -0
  103. package/dist/utilities/blob.js.map +1 -0
  104. package/dist/utilities/common.d.ts +17 -0
  105. package/dist/utilities/common.js +193 -0
  106. package/dist/utilities/common.js.map +1 -0
  107. package/dist/utilities/fetch.d.ts +5 -0
  108. package/dist/utilities/fetch.js +110 -0
  109. package/dist/utilities/fetch.js.map +1 -0
  110. package/dist/utilities/notification.d.ts +5 -0
  111. package/dist/utilities/notification.js +67 -0
  112. package/dist/utilities/notification.js.map +1 -0
  113. package/dist/utilities/router.d.ts +20 -0
  114. package/dist/utilities/router.js +63 -0
  115. package/dist/utilities/router.js.map +1 -0
  116. package/dist/utilities/webSocket.d.ts +1 -0
  117. package/dist/utilities/webSocket.js +53 -0
  118. package/dist/utilities/webSocket.js.map +1 -0
  119. package/package.json +13 -6
  120. package/dist/examples/example-01.d.ts +0 -1
  121. package/dist/examples/example-01.js +0 -43
  122. package/dist/examples/example-01.js.map +0 -1
  123. package/dist/src/View.js.map +0 -1
  124. package/dist/src/ViewModel.js.map +0 -1
  125. package/dist/src/attributes.js +0 -3
  126. package/dist/src/event.js +0 -29
  127. package/dist/src/event.js.map +0 -1
  128. package/dist/src/index.d.ts +0 -7
  129. package/dist/src/index.js +0 -22
  130. package/dist/src/index.js.map +0 -1
  131. package/dist/src/style.js.map +0 -1
  132. package/dist/src/types.d.ts +0 -85
  133. package/dist/src/types.js +0 -3
  134. package/dist/src/userAgent.js.map +0 -1
@@ -1,17 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.applyViewModelToElement = exports.extendViewModel = exports.ViewModel = void 0;
4
- const knockout_1 = require("knockout");
5
- const extend = require("extend");
6
- const userAgent_1 = require("./userAgent");
7
- const event_1 = require("./event");
8
- const style_1 = require("./style");
9
- class ViewModel {
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
10
  constructor(options) {
11
- this.visible = true;
12
- this.disabled = false;
13
- this.addViewModelToDataObject = false;
14
- this.eventListeners = {};
15
11
  options = options || {};
16
12
  this.classNames = options.classNames;
17
13
  this.attributes = options.attributes || {};
@@ -28,9 +24,22 @@ class ViewModel {
28
24
  this.userSelectable = options.userSelectable;
29
25
  this.dispose = options.dispose;
30
26
  this.refresh = options.refresh;
31
- this.eventListeners = options.eventListeners;
27
+ this.eventListeners = options.eventListeners || {};
32
28
  this.viewType = options.viewType;
33
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;
34
43
  getStyle(...cssProperties) {
35
44
  if (cssProperties && this.style) {
36
45
  const style = {};
@@ -43,13 +52,23 @@ class ViewModel {
43
52
  }
44
53
  getStyleValue(cssProperty) {
45
54
  if (this.style) {
46
- return (0, knockout_1.unwrap)(this.style[cssProperty]);
55
+ return unwrap(this.style[cssProperty]);
47
56
  }
48
57
  return null;
49
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
+ }
50
69
  setClasses(classNames, replace) {
51
- if ((0, knockout_1.isSubscribable)(this.classNames)) {
52
- var currentClassNames = (0, knockout_1.unwrap)(this.classNames);
70
+ if (isSubscribable(this.classNames)) {
71
+ var currentClassNames = unwrap(this.classNames);
53
72
  if (replace) {
54
73
  currentClassNames = new Array();
55
74
  }
@@ -68,8 +87,8 @@ class ViewModel {
68
87
  if (newValue === null || newValue === undefined) {
69
88
  newValue = null;
70
89
  }
71
- if ((0, knockout_1.isSubscribable)(this.attributes[key])) {
72
- this.attributes[key]((0, knockout_1.unwrap)(newValue));
90
+ if (isSubscribable(this.attributes[key])) {
91
+ this.attributes[key](unwrap(newValue));
73
92
  }
74
93
  else {
75
94
  this.attributes[key] = newValue;
@@ -82,15 +101,15 @@ class ViewModel {
82
101
  Object.keys(style).forEach((key) => {
83
102
  let newValue = style[key];
84
103
  if (newValue === null || newValue === undefined) {
85
- if (userAgent_1.userAgent.browser.isInternetExplorer) {
86
- newValue = style_1.defaultStyle[key];
104
+ if (userAgent.browser.isInternetExplorer) {
105
+ newValue = defaultStyle[key];
87
106
  }
88
107
  else {
89
108
  newValue = null;
90
109
  }
91
110
  }
92
- if ((0, knockout_1.isSubscribable)(this.style[key])) {
93
- this.style[key]((0, knockout_1.unwrap)(newValue));
111
+ if (isSubscribable(this.style[key])) {
112
+ this.style[key](unwrap(newValue));
94
113
  }
95
114
  else {
96
115
  this.style[key] = newValue;
@@ -99,28 +118,28 @@ class ViewModel {
99
118
  }
100
119
  }
101
120
  setVisible(visible) {
102
- if ((0, knockout_1.isSubscribable)(this.visible)) {
121
+ if (isSubscribable(this.visible)) {
103
122
  this.visible(visible);
104
123
  }
105
124
  }
106
125
  setDisabled(disabled) {
107
- if ((0, knockout_1.isSubscribable)(this.disabled)) {
126
+ if (isSubscribable(this.disabled)) {
108
127
  this.disabled(disabled);
109
128
  }
110
129
  }
111
130
  setInnerHtml(innerHtml) {
112
- if ((0, knockout_1.isSubscribable)(this.innerHtml)) {
131
+ if (isSubscribable(this.innerHtml)) {
113
132
  this.innerHtml(innerHtml);
114
133
  }
115
134
  }
116
135
  setInnerText(innerText) {
117
- if ((0, knockout_1.isSubscribable)(this.innerText)) {
136
+ if (isSubscribable(this.innerText)) {
118
137
  this.innerText(innerText);
119
138
  }
120
139
  }
121
140
  removeClasses(classNames) {
122
- if ((0, knockout_1.isSubscribable)(this.classNames)) {
123
- const currentClassNames = (0, knockout_1.unwrap)(this.classNames);
141
+ if (isSubscribable(this.classNames)) {
142
+ const currentClassNames = unwrap(this.classNames);
124
143
  for (let i = 0; i < currentClassNames.length; i++) {
125
144
  if (classNames.includes(currentClassNames[i])) {
126
145
  currentClassNames.splice(i, 1);
@@ -131,74 +150,16 @@ class ViewModel {
131
150
  }
132
151
  focus() {
133
152
  }
134
- setObservableProperty(property, value) {
135
- const settableProperty = property;
136
- if (settableProperty._set) {
137
- settableProperty._set(value);
138
- }
139
- }
140
- createObservableProperty(value, setter, notifyAlways) {
141
- let internalProperty;
142
- if ((0, knockout_1.isObservable)(value)) {
143
- internalProperty = value;
144
- }
145
- else {
146
- internalProperty = (0, knockout_1.observable)(value);
147
- }
148
- if (notifyAlways) {
149
- internalProperty.extend({ notify: "always" });
150
- }
151
- const computed = (0, knockout_1.pureComputed)({ read: internalProperty }).extend({ notify: "always" });
152
- const privateSettable = computed;
153
- privateSettable._set = (value) => {
154
- internalProperty(value);
155
- };
156
- const observableProperty = computed;
157
- if (setter) {
158
- observableProperty.set = setter;
159
- }
160
- else {
161
- observableProperty.set = (value) => {
162
- internalProperty(value);
163
- };
164
- }
165
- return observableProperty;
166
- }
167
- createObservableArrayProperty(items, setter) {
168
- let internalProperty;
169
- if ((0, knockout_1.isObservable)(items)) {
170
- internalProperty = items;
171
- }
172
- else {
173
- internalProperty = (0, knockout_1.observableArray)(items);
174
- }
175
- const computed = (0, knockout_1.pureComputed)({ read: internalProperty }).extend({ notify: "always" });
176
- const privateSettable = computed;
177
- privateSettable._set = (value) => {
178
- internalProperty(value);
179
- };
180
- const observableArrayProperty = computed;
181
- if (setter) {
182
- observableArrayProperty.set = setter;
183
- }
184
- else {
185
- observableArrayProperty.set = (value) => {
186
- internalProperty(value);
187
- };
188
- }
189
- return observableArrayProperty;
190
- }
153
+ handleWebSocketMessage;
191
154
  }
192
- exports.ViewModel = ViewModel;
193
- function extendViewModel(target, source) {
155
+ export function extendViewModel(target, source) {
194
156
  return extend(true, target, source);
195
157
  }
196
- exports.extendViewModel = extendViewModel;
197
- function applyViewModelToElement(viewModel, element) {
158
+ export function applyViewModelToElement(viewModel, element) {
198
159
  element.setAttribute("viewtype", viewModel.viewType || "View");
199
160
  if (viewModel.classNames) {
200
- applyClassesToElement((0, knockout_1.unwrap)(viewModel.classNames), true, element);
201
- if ((0, knockout_1.isSubscribable)(viewModel.classNames)) {
161
+ applyClassesToElement(unwrap(viewModel.classNames), true, element);
162
+ if (isSubscribable(viewModel.classNames)) {
202
163
  viewModel.classNames.subscribe((classNames) => {
203
164
  applyClassesToElement(classNames, true, element);
204
165
  });
@@ -207,8 +168,8 @@ function applyViewModelToElement(viewModel, element) {
207
168
  if (viewModel.attributes) {
208
169
  Object.keys(viewModel.attributes).forEach((key) => {
209
170
  var value = viewModel.attributes[key];
210
- applyAttributeToElement(key, (0, knockout_1.unwrap)(value), element);
211
- if ((0, knockout_1.isSubscribable)(value)) {
171
+ applyAttributeToElement(key, unwrap(value), element);
172
+ if (isSubscribable(value)) {
212
173
  value.subscribe((newValue) => {
213
174
  applyAttributeToElement(key, newValue, element);
214
175
  });
@@ -218,25 +179,25 @@ function applyViewModelToElement(viewModel, element) {
218
179
  if (viewModel.style) {
219
180
  Object.keys(viewModel.style).forEach((key) => {
220
181
  const style = viewModel.style[key];
221
- element.style[key] = (0, knockout_1.unwrap)(style);
222
- if ((0, knockout_1.isSubscribable)(style)) {
182
+ element.style[key] = unwrap(style);
183
+ if (isSubscribable(style)) {
223
184
  style.subscribe((newStyle) => {
224
185
  element.style[key] = newStyle;
225
186
  });
226
187
  }
227
188
  });
228
189
  }
229
- if (!!viewModel.innerHtml) {
230
- element.innerHTML = (0, knockout_1.unwrap)(viewModel.innerHtml);
231
- if ((0, knockout_1.isSubscribable)(viewModel.innerHtml)) {
190
+ if (!isNullOrUndefined(viewModel.innerHtml)) {
191
+ element.innerHTML = unwrap(viewModel.innerHtml);
192
+ if (isSubscribable(viewModel.innerHtml)) {
232
193
  viewModel.innerHtml.subscribe((innerHtml) => {
233
194
  element.innerHTML = innerHtml;
234
195
  });
235
196
  }
236
197
  }
237
- if (!!viewModel.innerText) {
238
- element.innerText = (0, knockout_1.unwrap)(viewModel.innerText);
239
- if ((0, knockout_1.isSubscribable)(viewModel.innerText)) {
198
+ if (!isNullOrUndefined(viewModel.innerText)) {
199
+ element.innerText = unwrap(viewModel.innerText);
200
+ if (isSubscribable(viewModel.innerText)) {
240
201
  viewModel.innerText.subscribe((innerText) => {
241
202
  element.innerText = innerText;
242
203
  });
@@ -255,14 +216,14 @@ function applyViewModelToElement(viewModel, element) {
255
216
  if (viewModel.eventListeners) {
256
217
  applyEventListenersToElement(viewModel, element);
257
218
  }
258
- applyVisibilityToElement((0, knockout_1.unwrap)(viewModel.visible), element);
259
- if ((0, knockout_1.isSubscribable)(viewModel.visible)) {
219
+ applyVisibilityToElement(unwrap(viewModel.visible), element);
220
+ if (isSubscribable(viewModel.visible)) {
260
221
  viewModel.visible.subscribe((visible) => {
261
222
  applyVisibilityToElement(visible, element);
262
223
  });
263
224
  }
264
- applyDisabledToElement((0, knockout_1.unwrap)(viewModel.disabled), element);
265
- if ((0, knockout_1.isSubscribable)(viewModel.disabled)) {
225
+ applyDisabledToElement(unwrap(viewModel.disabled), element);
226
+ if (isSubscribable(viewModel.disabled)) {
266
227
  viewModel.disabled.subscribe((disabled) => {
267
228
  applyDisabledToElement(disabled, element);
268
229
  });
@@ -271,7 +232,6 @@ function applyViewModelToElement(viewModel, element) {
271
232
  element.focus();
272
233
  };
273
234
  }
274
- exports.applyViewModelToElement = applyViewModelToElement;
275
235
  function applyVisibilityToElement(visible, element) {
276
236
  if (visible === false) {
277
237
  element.classList.add("hidden");
@@ -305,7 +265,7 @@ function applyEventListenersToElement(viewModel, element) {
305
265
  if (eventName === "dragstart") {
306
266
  element.setAttribute("draggable", "true");
307
267
  }
308
- if ((0, event_1.isGlobalEvent)(eventName)) {
268
+ if (isGlobalEvent(eventName)) {
309
269
  applyEventListenerToElement(eventName, (event) => {
310
270
  if (eventListener.options) {
311
271
  const options = eventListener.options;
@@ -326,26 +286,26 @@ function applyEventListenersToElement(viewModel, element) {
326
286
  eventListener.listener.call(viewModel, event);
327
287
  }, eventListener.options, element);
328
288
  }
329
- else if (event_1.mouseEvents[eventName] && userAgent_1.userAgent.device.supportsMouseEvents) {
289
+ else if (mouseEvents[eventName] && userAgent.device.supportsMouseEvents) {
330
290
  applyEventListenerToElement(eventName, eventListener.listener, eventListener.options, element);
331
291
  }
332
- else if (event_1.touchEvents[eventName] && userAgent_1.userAgent.device.supportsTouchEvents) {
292
+ else if (touchEvents[eventName] && userAgent.device.supportsTouchEvents) {
333
293
  applyEventListenerToElement(eventName, eventListener.listener, eventListener.options, element);
334
294
  }
335
295
  });
336
296
  clickEventListeners.forEach((clickEventListener) => {
337
- if (userAgent_1.userAgent.device.supportsTouchEvents) {
297
+ if (userAgent.device.supportsTouchEvents) {
338
298
  applyEventListenerToElement("tap", clickEventListener.listener, clickEventListener.options, element);
339
299
  }
340
- if (userAgent_1.userAgent.device.supportsMouseEvents) {
300
+ if (userAgent.device.supportsMouseEvents) {
341
301
  applyEventListenerToElement("click", clickEventListener.listener, clickEventListener.options, element);
342
302
  }
343
303
  });
344
304
  doubleClickEventListeners.forEach((doubleClickEventListener) => {
345
- if (userAgent_1.userAgent.device.supportsTouchEvents) {
305
+ if (userAgent.device.supportsTouchEvents) {
346
306
  applyEventListenerToElement("dbltap", doubleClickEventListener.listener, doubleClickEventListener.options, element);
347
307
  }
348
- if (userAgent_1.userAgent.device.supportsMouseEvents) {
308
+ if (userAgent.device.supportsMouseEvents) {
349
309
  applyEventListenerToElement("dblclick", doubleClickEventListener.listener, doubleClickEventListener.options, element);
350
310
  }
351
311
  });
@@ -394,7 +354,7 @@ function applyClassesToElement(classNames, replace, element) {
394
354
  }
395
355
  }
396
356
  function applyAttributeToElement(name, value, element) {
397
- if (value === null || value === undefined) {
357
+ if (isNullOrUndefined(value)) {
398
358
  element.removeAttribute(name);
399
359
  }
400
360
  else {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewModel.js","sourceRoot":"","sources":["../../src/framework/ViewModel.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,10 @@ export interface Attributes {
16
16
  value?: string;
17
17
  view?: string;
18
18
  checked?: string;
19
+ enctype?: string;
20
+ name?: string;
21
+ multiple?: boolean;
22
+ ["aria-label"]?: string;
19
23
  }
20
24
  export interface AttributesSubscribable {
21
25
  alt?: string | Subscribable<string>;
@@ -34,4 +38,8 @@ export interface AttributesSubscribable {
34
38
  value?: string | Subscribable<string>;
35
39
  view?: string | Subscribable<string>;
36
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>;
37
45
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=attributes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/attributes.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/framework/attributes.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  export declare const mouseEvents: {
2
+ click: boolean;
2
3
  contextmenu: boolean;
3
4
  mousedown: boolean;
4
5
  mouseenter: boolean;
@@ -19,6 +20,7 @@ export declare const touchEvents: {
19
20
  swipeup: boolean;
20
21
  swipedown: boolean;
21
22
  };
23
+ export type MouseE = "click" | "contextmenu";
22
24
  export declare function isGlobalEvent(event: keyof UiElementEventMap): boolean;
23
25
  export interface UiElementEventMap extends HTMLElementEventMap {
24
26
  "tap": Event;
@@ -30,23 +32,35 @@ export interface UiElementEventMap extends HTMLElementEventMap {
30
32
  "swipedown": Event;
31
33
  "textInput": Event;
32
34
  }
33
- interface IMouseEventListener extends IEventListener {
35
+ export interface IMouseEventListener extends IEventListener {
34
36
  listener: (event: MouseEvent) => void;
35
37
  }
36
- interface IFocusEventListener extends IEventListener {
38
+ export interface IFocusEventListener extends IEventListener {
37
39
  listener: (event: FocusEvent) => void;
38
40
  }
41
+ export interface IContextMenuEventListener extends IEventListener {
42
+ listener: (event: PointerEvent) => void;
43
+ }
39
44
  export interface IGenericEventListener extends IEventListener {
40
45
  listener: (event: Event) => void;
41
46
  }
42
- interface IEventListener {
47
+ export interface IEventListener {
43
48
  options?: IEventListenerOptions;
44
49
  }
45
- export interface EventListeners {
50
+ export interface MouseEventListeners {
46
51
  click?: IMouseEventListener;
52
+ }
53
+ export interface FocusEventListeners {
47
54
  focusout?: IFocusEventListener;
48
55
  }
49
- declare type EventKey = "Enter" | "ArrowDown" | "ArrowUp" | "ArrowLeft" | "ArrowRight";
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";
50
64
  export interface IEventListenerOptions extends AddEventListenerOptions {
51
65
  eventKey?: EventKey;
52
66
  altKey?: boolean;
@@ -0,0 +1,26 @@
1
+ export const mouseEvents = {
2
+ click: true,
3
+ contextmenu: true,
4
+ mousedown: true,
5
+ mouseenter: true,
6
+ mouseleave: true,
7
+ mousemove: true,
8
+ mouseout: true,
9
+ mouseover: true,
10
+ mouseup: true
11
+ };
12
+ export const touchEvents = {
13
+ touchcancel: true,
14
+ touchend: true,
15
+ touchmove: true,
16
+ touchstart: true,
17
+ longtap: true,
18
+ swipeleft: true,
19
+ swiperight: true,
20
+ swipeup: true,
21
+ swipedown: true
22
+ };
23
+ export function isGlobalEvent(event) {
24
+ return !(mouseEvents[event] || touchEvents[event]);
25
+ }
26
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/framework/event.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,KAAK,EAAE,IAAI;IACX,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;AAEF,MAAM,CAAC,MAAM,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;AAIF,MAAM,UAAU,aAAa,CAAC,KAA8B;IACxD,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { Subscribable, ObservableArray, Observable } from "knockout";
2
+ export interface ObservableProperty<TValue = any, TSetter = TValue> extends Subscribable<TValue> {
3
+ (): TValue;
4
+ set: (value: TSetter, triggerSetter?: boolean) => void;
5
+ }
6
+ export declare function isObservableProperty<T = any>(instance: any): instance is ObservableProperty<T>;
7
+ export declare function observableProperty<TValue, TSetter = TValue>(value?: TValue | Observable<TValue>, setter?: (value: TSetter, internalProperty: Observable<TValue>) => void, notifyAlways?: boolean): ObservableProperty<TValue, TSetter>;
8
+ export interface ObservableArrayProperty<TItem = any, TSetter = Array<TItem>> extends ObservableArray<TItem> {
9
+ set: (items: TSetter, triggerSetter?: boolean) => void;
10
+ map<TResult>(callbackfn: (value: TItem, index: number, array: TItem[]) => TResult, thisArg?: any): TResult[];
11
+ }
12
+ export declare function observableArrayProperty<TItem, TSetter = Array<TItem>>(items?: Array<TItem> | ObservableArray<TItem>, setter?: (items: TSetter, internalProperty: ObservableArray<TItem>) => void): ObservableArrayProperty<TItem, TSetter>;
@@ -0,0 +1,59 @@
1
+ import { isObservable, observable, observableArray, pureComputed } from "knockout";
2
+ export function isObservableProperty(instance) {
3
+ return instance && !!instance.set;
4
+ }
5
+ export function observableProperty(value, setter, notifyAlways = false) {
6
+ let internalProperty;
7
+ if (value === undefined) {
8
+ value = null;
9
+ }
10
+ if (isObservable(value)) {
11
+ internalProperty = value;
12
+ }
13
+ else {
14
+ internalProperty = observable(value);
15
+ }
16
+ if (notifyAlways) {
17
+ internalProperty.extend({ notify: "always" });
18
+ }
19
+ const computed = pureComputed({ read: internalProperty }).extend({ notify: "always" });
20
+ computed.set = (newValue, triggerSetter = true) => {
21
+ if (setter && triggerSetter) {
22
+ setter(newValue, internalProperty);
23
+ }
24
+ else {
25
+ internalProperty(newValue);
26
+ }
27
+ };
28
+ return computed;
29
+ }
30
+ export function observableArrayProperty(items, setter) {
31
+ let internalProperty;
32
+ if (!items) {
33
+ items = [];
34
+ }
35
+ if (isObservable(items)) {
36
+ internalProperty = items;
37
+ }
38
+ else {
39
+ internalProperty = observableArray(items);
40
+ }
41
+ const computed = pureComputed({ read: internalProperty }).extend({ notify: "always" });
42
+ computed.set = (value, triggerSetter = true) => {
43
+ if (setter && triggerSetter) {
44
+ setter(value, internalProperty);
45
+ }
46
+ else {
47
+ internalProperty(value);
48
+ }
49
+ };
50
+ computed.push = (...itemsToPush) => {
51
+ internalProperty.push(...itemsToPush);
52
+ return itemsToPush.length;
53
+ };
54
+ computed.map = (callBack, thisArg) => {
55
+ return internalProperty().map(callBack, thisArg);
56
+ };
57
+ return computed;
58
+ }
59
+ //# sourceMappingURL=observable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observable.js","sourceRoot":"","sources":["../../src/framework/observable.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAO9H,MAAM,UAAU,oBAAoB,CAAU,QAAa;IACvD,OAAO,QAAQ,IAAI,CAAC,CAAE,QAAkC,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAA2B,KAAmC,EAAE,MAAuE,EAAE,eAAwB,KAAK;IACpM,IAAI,gBAAoC,CAAC;IACzC,IAAI,KAAK,KAAK,SAAS,EAAE;QACrB,KAAK,GAAG,IAAI,CAAC;KAChB;IACD,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;QACrB,gBAAgB,GAAG,KAAK,CAAC;KAC5B;SAAM;QACH,gBAAgB,GAAG,UAAU,CAAS,KAAK,CAAC,CAAC;KAChD;IAED,IAAI,YAAY,EAAE;QACd,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;KACjD;IAGD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAA+C,CAAC;IAErI,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAa,EAAE,gBAAyB,IAAI,EAAE,EAAE;QAC5D,IAAI,MAAM,IAAI,aAAa,EAAE;YACzB,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;SACtC;aAAM;YACH,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SAC9B;IACL,CAAC,CAAC;IAEF,OAAO,QAAQ,CAAC;AACpB,CAAC;AAOD,MAAM,UAAU,uBAAuB,CAAgC,KAA6C,EAAE,MAA2E;IAE7L,IAAI,gBAAwC,CAAC;IAC7C,IAAI,CAAC,KAAK,EAAE;QACR,KAAK,GAAG,EAAE,CAAC;KACd;IACD,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;QACrB,gBAAgB,GAAG,KAAK,CAAC;KAC5B;SAAM;QACH,gBAAgB,GAAG,eAAe,CAAQ,KAAK,CAAC,CAAC;KACpD;IAGD,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAmD,CAAC;IAEzI,QAAQ,CAAC,GAAG,GAAG,CAAC,KAAU,EAAE,gBAAyB,IAAI,EAAE,EAAE;QACzD,IAAI,MAAM,IAAI,aAAa,EAAE;YACzB,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;SACnC;aAAM;YACH,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC3B;IACL,CAAC,CAAC;IAEF,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,WAAW,EAAE,EAAE;QAC/B,gBAAgB,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACtC,OAAO,WAAW,CAAC,MAAM,CAAC;IAC9B,CAAC,CAAA;IAED,QAAQ,CAAC,GAAG,GAAG,CAAC,QAA8D,EAAE,OAAa,EAAE,EAAE;QAE7F,OAAO,gBAAgB,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC,CAAA;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC"}
File without changes
@@ -1,15 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defaultStyle = exports.extendStyle = void 0;
4
- const extend = require("extend");
5
- function extendStyle(target, source) {
1
+ import { extend } from "jquery";
2
+ export function extendStyle(target, source) {
6
3
  if (source) {
7
4
  return extend(true, target, source);
8
5
  }
9
6
  return target;
10
7
  }
11
- exports.extendStyle = extendStyle;
12
- exports.defaultStyle = {
8
+ export const defaultStyle = {
13
9
  animation: "none",
14
10
  animationDelay: 0,
15
11
  animationDirection: "normal",
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../src/framework/style.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,MAAM,UAAU,WAAW,CAAC,MAAa,EAAE,MAAa;IAEpD,IAAI,MAAM,EAAE;QACR,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;KAChD;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AA2iGD,MAAM,CAAC,MAAM,YAAY,GAAU;IAC/B,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,CAAC;IACjB,kBAAkB,EAAE,QAAQ;IAC5B,iBAAiB,EAAE,GAAG;IACtB,iBAAiB,EAAE,MAAM;IACzB,uBAAuB,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM;IACrB,kBAAkB,EAAE,SAAS;IAC7B,uBAAuB,EAAE,MAAM;IAC/B,kBAAkB,EAAE,SAAS;IAC7B,UAAU,EAAE,CAAC;IACb,oBAAoB,EAAE,QAAQ;IAC9B,cAAc,EAAE,YAAY;IAC5B,eAAe,EAAE,aAAa;IAC9B,eAAe,EAAE,MAAM;IACvB,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,KAAK;IACzB,gBAAgB,EAAE,QAAQ;IAC1B,cAAc,EAAE,WAAW;IAC3B,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,CAAC;IACf,iBAAiB,EAAE,SAAS;IAC5B,sBAAsB,EAAE,CAAC;IACzB,uBAAuB,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM;IACzB,iBAAiB,EAAE,QAAQ;IAC3B,cAAc,EAAE,UAAU;IAC1B,iBAAiB,EAAE,MAAM;IACzB,UAAU,EAAE,CAAC;IACb,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,QAAQ;IACzB,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;IACd,gBAAgB,EAAE,SAAS;IAC3B,gBAAgB,EAAE,MAAM;IACxB,gBAAgB,EAAE,QAAQ;IAC1B,aAAa,EAAE,CAAC;IAChB,SAAS,EAAE,CAAC;IACZ,cAAc,EAAE,SAAS;IACzB,mBAAmB,EAAE,CAAC;IACtB,oBAAoB,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM;IACtB,cAAc,EAAE,QAAQ;IACxB,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,SAAS;IACrB,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,0BAA0B;IACtC,eAAe,EAAE,cAAc;IAC/B,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,MAAM;IACvB,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,MAAM;IACnB,OAAO,EAAE,QAAQ;IACjB,gBAAgB,EAAE,MAAM;IACxB,YAAY,EAAE,MAAM;IACpB,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,QAAQ;IACjB,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,SAAS;IACrB,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,MAAM;IACtB,iBAAiB,EAAE,SAAS;IAC5B,aAAa,EAAE,MAAM;IACrB,MAAM,EAAE,CAAC;IACT,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,QAAQ;IACtB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,MAAM;IACtB,eAAe,EAAE,MAAM;IACvB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,iBAAiB,EAAE,SAAS;IAC5B,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,MAAM;IACnB,SAAS,EAAE,SAAS;IACpB,aAAa,EAAE,MAAM;IACrB,cAAc,EAAE,MAAM;IACtB,mBAAmB,EAAE,SAAS;IAC9B,kBAAkB,EAAE,MAAM;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,MAAM;IACrB,GAAG,EAAE,MAAM;IACX,SAAS,EAAE,MAAM;IACjB,cAAc,EAAE,MAAM;IACtB,UAAU,EAAE,MAAM;IAClB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,MAAM;IAC1B,wBAAwB,EAAE,MAAM;IAChC,WAAW,EAAE,QAAQ;IACrB,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,QAAQ;IACpB,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,MAAM;CACjB,CAAA"}