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
package/dist/uiElement.js DELETED
@@ -1,634 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- require("tocca");
4
- var ko = require("knockout");
5
- var style_1 = require("./style");
6
- var eventListener_1 = require("./eventListener");
7
- var userAgent_1 = require("./userAgent");
8
- var uiElementPropertyName = "uiElement";
9
- var mouseEvents = {
10
- contextmenu: true,
11
- mousedown: true,
12
- mouseenter: true,
13
- mouseleave: true,
14
- mousemove: true,
15
- mouseout: true,
16
- mouseover: true,
17
- mouseup: true
18
- };
19
- var touchEvents = {
20
- touchcancel: true,
21
- touchend: true,
22
- touchmove: true,
23
- touchstart: true,
24
- longtap: true,
25
- swipeleft: true,
26
- swiperight: true,
27
- swipeup: true,
28
- swipedown: true
29
- };
30
- function isGlobalEvent(event) {
31
- return !(mouseEvents[event] || touchEvents[event]);
32
- }
33
- exports.settings = {
34
- tapDelay: 300
35
- };
36
- var observerOptions = {
37
- childList: true,
38
- subtree: true
39
- };
40
- var mutationObserver = new MutationObserver(function (mutationRecords) {
41
- mutationRecords.forEach(function (mutationRecord) {
42
- if (mutationRecord.removedNodes) {
43
- mutationRecord.removedNodes.forEach(function (removedNode) {
44
- var uiElement = removedNode[uiElementPropertyName];
45
- if (uiElement && uiElement.disposeOnDomRemoval && uiElement.dispose) {
46
- uiElement.dispose();
47
- }
48
- });
49
- }
50
- });
51
- });
52
- mutationObserver.observe(document.body, observerOptions);
53
- function setObserverOptions(options) {
54
- observerOptions = options;
55
- }
56
- exports.setObserverOptions = setObserverOptions;
57
- function isNotNullOrUndefined(value) {
58
- return !(value === null || typeof value === "undefined");
59
- }
60
- var UiElement = (function () {
61
- function UiElement(tagName, elementType, options) {
62
- var _this = this;
63
- this._attributes = {};
64
- this._classes = {};
65
- this._style = {};
66
- this._userSelectable = true;
67
- this._addControlToDataDictionary = false;
68
- this._children = new Array();
69
- this._knockoutSubscriptions = Array();
70
- this._styleDisplayVisible = "";
71
- this._visible = true;
72
- this.diposeOnDomRemoval = false;
73
- this.dispose = function () {
74
- _this.remove();
75
- if (_this._children) {
76
- _this._children.forEach(function (child) {
77
- child.dispose();
78
- });
79
- }
80
- _this._knockoutSubscriptions.forEach(function (subscription) {
81
- subscription.dispose();
82
- });
83
- };
84
- this._tagName = tagName;
85
- this._elementType = elementType || "UiElement";
86
- this.options = options || {};
87
- if (options) {
88
- if (isNotNullOrUndefined(options.id)) {
89
- this.setAttribute("id", options.id);
90
- }
91
- if (options.elementType) {
92
- this._elementType = ko.unwrap(options.elementType);
93
- if (ko.isObservable(options.elementType)) {
94
- this.addSubscription(options.elementType, function () {
95
- _this.setElementType(elementType);
96
- });
97
- }
98
- }
99
- if (options.classNames) {
100
- this.setClasses(ko.unwrap(options.classNames), true);
101
- if (ko.isObservable(options.classNames)) {
102
- this.addSubscription(options.classNames, function (classNames) {
103
- _this.setClasses(classNames, true);
104
- });
105
- }
106
- }
107
- if (options.attributes) {
108
- this._setAttributes(ko.unwrap(options.attributes));
109
- if (ko.isObservable(options.attributes)) {
110
- this.addSubscription(options.attributes, function (attributes) {
111
- _this._setAttributes(attributes);
112
- });
113
- }
114
- }
115
- if (options.eventListeners) {
116
- this._eventListeners = options.eventListeners;
117
- }
118
- if (options.style) {
119
- var _loop_1 = function (styleProperty) {
120
- var styleValue = options.style[styleProperty];
121
- this_1._style[styleProperty] = ko.unwrap(styleValue);
122
- if (ko.isObservable(styleValue)) {
123
- this_1.addSubscription(styleValue, function (newValue) {
124
- var _a;
125
- _this.setStyle((_a = {}, _a[styleProperty] = newValue, _a));
126
- });
127
- }
128
- };
129
- var this_1 = this;
130
- for (var _i = 0, _a = Object.keys(options.style); _i < _a.length; _i++) {
131
- var styleProperty = _a[_i];
132
- _loop_1(styleProperty);
133
- }
134
- }
135
- if (options.userSelectable === false) {
136
- this._userSelectable = false;
137
- }
138
- if (isNotNullOrUndefined(options.innerHtml)) {
139
- this.setInnerHtml(ko.unwrap(options.innerHtml));
140
- if (ko.isObservable(options.innerHtml)) {
141
- this.addSubscription(options.innerHtml, function (innerHtml) {
142
- _this.setInnerHtml(innerHtml);
143
- });
144
- }
145
- }
146
- if (isNotNullOrUndefined(options.innerText)) {
147
- this.setInnerText(ko.unwrap(options.innerText));
148
- if (ko.isObservable(options.innerText)) {
149
- this.addSubscription(options.innerText, function (newValue) {
150
- _this.setInnerText(newValue);
151
- });
152
- }
153
- }
154
- if (options.addControlToDataDictionary) {
155
- this._addControlToDataDictionary = true;
156
- }
157
- if (options.children) {
158
- this._children = ko.unwrap(options.children);
159
- if (ko.isObservable(options.children)) {
160
- this.addSubscription(options.children, function (newChildren) {
161
- _this.setChildren(newChildren);
162
- });
163
- }
164
- }
165
- if (options.dispose) {
166
- var dispose = this.dispose;
167
- this.dispose = function () {
168
- dispose();
169
- options.dispose();
170
- };
171
- }
172
- if (options.refresh) {
173
- this.refresh = options.refresh;
174
- }
175
- var visible = ko.unwrap(options.visible);
176
- if (visible === false) {
177
- this._visible = false;
178
- }
179
- if (ko.isObservable(options.visible)) {
180
- this.addSubscription(options.visible, function (newValue) {
181
- _this.setVisibility(newValue);
182
- });
183
- }
184
- }
185
- }
186
- UiElement.prototype._addEventListenerToElement = function (type, listener, options) {
187
- if (!type) {
188
- throw new Error("type is mandatory");
189
- }
190
- if (!listener) {
191
- throw new Error("listener is mandatory");
192
- }
193
- if (!options) {
194
- options = {};
195
- }
196
- if (!options.passive) {
197
- options.passive = false;
198
- }
199
- if (!options.once) {
200
- options.once = false;
201
- }
202
- if (this.element.addEventListener) {
203
- this.element.addEventListener(type, function (event) {
204
- listener(event);
205
- }, {
206
- passive: options.passive,
207
- once: options.once
208
- });
209
- }
210
- else if (this.element.attachEvent) {
211
- this.element.attachEvent(type, function (event) {
212
- listener(event);
213
- });
214
- }
215
- else {
216
- throw "Your browser does not support 'addEventListener'";
217
- }
218
- };
219
- UiElement.prototype._setAttributes = function (attributes) {
220
- var _this = this;
221
- var existingAttributeNames = Object.keys(this._attributes);
222
- this._attributes = {};
223
- attributes.forEach(function (attribute) {
224
- _this._attributes[attribute.name] = ko.unwrap(attribute.value);
225
- if (ko.isObservable(attribute.value)) {
226
- _this.addSubscription(attribute.value, function (newValue) {
227
- _this.setAttribute(attribute.name, newValue);
228
- });
229
- }
230
- });
231
- if (existingAttributeNames) {
232
- existingAttributeNames.forEach(function (existingAttributeName) {
233
- if (!_this._attributes[existingAttributeName]) {
234
- _this.removeAttribute(existingAttributeName);
235
- }
236
- });
237
- }
238
- };
239
- UiElement.prototype.build = function () {
240
- var _this = this;
241
- if (this._elementType) {
242
- this.setAttribute("elementtype", this._elementType);
243
- }
244
- var display = this.getStyleValue("display");
245
- if (display && display !== "none") {
246
- this._styleDisplayVisible = display;
247
- }
248
- this.setVisibility(this._visible);
249
- ko.applyBindingsToNode(this.element, {
250
- style: this._style,
251
- attr: this._attributes
252
- });
253
- if (isNotNullOrUndefined(this._innerHtml)) {
254
- this.element.innerHTML = this._innerHtml;
255
- }
256
- if (isNotNullOrUndefined(this._innerText)) {
257
- this.element.innerText = this._innerText;
258
- }
259
- this.element.className = Object.keys(this._classes).join(" ");
260
- if (this._userSelectable === false) {
261
- this._addEventListenerToElement("selectstart", function () { return false; }, { passive: true });
262
- this.element.style.userSelect = "none";
263
- }
264
- if (this._children) {
265
- this._children.forEach(function (child) {
266
- _this.element.appendChild(child.render());
267
- });
268
- }
269
- if (this._addControlToDataDictionary) {
270
- if (!this.element.data) {
271
- this.element.data = {};
272
- }
273
- this.element.data.uiElement = this;
274
- }
275
- };
276
- UiElement.prototype.render = function () {
277
- var _this = this;
278
- if (this.element) {
279
- this.remove();
280
- }
281
- if (typeof this.build === "function") {
282
- this.element = document.createElement(this._tagName);
283
- this.build();
284
- var clickEventListeners_1 = new Array();
285
- var doubleClickEventListeners_1 = new Array();
286
- if (this._eventListeners) {
287
- var eventListeners = this._eventListeners;
288
- eventListeners.forEach(function (eventListener) {
289
- if (eventListener.type === "click") {
290
- clickEventListeners_1.push(eventListener);
291
- return;
292
- }
293
- if (eventListener.type === "dblclick") {
294
- doubleClickEventListeners_1.push(eventListener);
295
- return;
296
- }
297
- if (eventListener.type === "dragstart") {
298
- _this.setAttribute("draggable", "true");
299
- }
300
- if (isGlobalEvent(eventListener.type)) {
301
- _this._addEventListenerToElement(eventListener.type, function (event) {
302
- if (eventListener.options) {
303
- var options = eventListener.options;
304
- var keyEvent = event;
305
- if (options.altKey && !keyEvent.altKey) {
306
- return;
307
- }
308
- if (options.shiftKey && !keyEvent.shiftKey) {
309
- return;
310
- }
311
- if (options.ctrlKey && !keyEvent.ctrlKey) {
312
- return;
313
- }
314
- if (options.eventKey && options.eventKey !== keyEvent.key) {
315
- return;
316
- }
317
- }
318
- eventListener.listener.call(_this, event);
319
- }, eventListener.options);
320
- }
321
- else if (mouseEvents[eventListener.type] && userAgent_1.userAgent.device.supportsMouseEvents) {
322
- _this._addEventListenerToElement(eventListener.type, eventListener.listener, eventListener.options);
323
- }
324
- else if (touchEvents[eventListener.type] && userAgent_1.userAgent.device.supportsTouchEvents) {
325
- _this._addEventListenerToElement(eventListener.type, eventListener.listener, eventListener.options);
326
- }
327
- });
328
- clickEventListeners_1.forEach(function (clickEventListener) {
329
- if (userAgent_1.userAgent.device.supportsTouchEvents) {
330
- _this._addEventListenerToElement("tap", clickEventListener.listener, clickEventListener.options);
331
- }
332
- if (userAgent_1.userAgent.device.supportsMouseEvents) {
333
- _this._addEventListenerToElement(clickEventListener.type, clickEventListener.listener, clickEventListener.options);
334
- }
335
- });
336
- doubleClickEventListeners_1.forEach(function (doubleClickEventListener) {
337
- if (userAgent_1.userAgent.device.supportsTouchEvents) {
338
- _this._addEventListenerToElement("dbltap", doubleClickEventListener.listener, doubleClickEventListener.options);
339
- }
340
- if (userAgent_1.userAgent.device.supportsMouseEvents) {
341
- _this._addEventListenerToElement(doubleClickEventListener.type, doubleClickEventListener.listener, doubleClickEventListener.options);
342
- }
343
- });
344
- }
345
- return this.element;
346
- }
347
- throw "The build method of this UiElement has not been defined";
348
- };
349
- UiElement.prototype.refresh = function () { };
350
- UiElement.prototype.remove = function () {
351
- if (this.element) {
352
- if (this.element.remove) {
353
- this.element.remove();
354
- }
355
- else {
356
- if (this.element.parentElement) {
357
- this.element.parentElement.removeChild(this.element);
358
- }
359
- }
360
- this.element = null;
361
- }
362
- };
363
- UiElement.prototype.handleMessage = function (message) {
364
- console.log(JSON.stringify(message));
365
- };
366
- UiElement.prototype.getElement = function () {
367
- return this.element;
368
- };
369
- UiElement.prototype.focus = function (options) {
370
- if (this.element) {
371
- this.element.focus(options);
372
- }
373
- };
374
- UiElement.prototype.focusPreviousSibling = function (options) {
375
- if (this.element && this.element.previousElementSibling && this.element.nextSibling instanceof HTMLElement) {
376
- this.element.nextSibling.focus(options);
377
- }
378
- };
379
- UiElement.prototype.focusNextSibling = function (options) {
380
- if (this.element && this.element.previousElementSibling && this.element.nextSibling instanceof HTMLElement) {
381
- this.element.nextSibling.focus(options);
382
- }
383
- };
384
- UiElement.prototype.setElementType = function (elementType) {
385
- this._elementType = elementType;
386
- this.setAttribute("elementType", elementType);
387
- };
388
- UiElement.prototype.setClasses = function (classNames, replace) {
389
- var _this = this;
390
- if (replace) {
391
- this._classes = {};
392
- }
393
- if (classNames) {
394
- classNames.forEach(function (className) {
395
- _this._classes[className] = true;
396
- });
397
- }
398
- if (this.element) {
399
- this.element.className = Object.keys(this._classes).join(" ");
400
- }
401
- };
402
- UiElement.prototype.removeClasses = function (classNames) {
403
- var _this = this;
404
- if (classNames) {
405
- classNames.forEach(function (className) {
406
- if (_this._classes[className]) {
407
- delete _this._classes[className];
408
- }
409
- if (_this.element) {
410
- _this.element.classList.remove(className);
411
- }
412
- });
413
- }
414
- };
415
- UiElement.prototype.setInnerHtml = function (innerHtml) {
416
- if (isNotNullOrUndefined(innerHtml)) {
417
- this.setInnerText(null);
418
- }
419
- this._innerHtml = innerHtml;
420
- if (this.element) {
421
- this.element.innerHTML = innerHtml;
422
- }
423
- };
424
- UiElement.prototype.setInnerText = function (innerText) {
425
- if (isNotNullOrUndefined(innerText)) {
426
- this.setInnerHtml(null);
427
- }
428
- this._innerText = innerText;
429
- if (this.element) {
430
- this.element.innerText = innerText;
431
- }
432
- };
433
- UiElement.prototype.setAttribute = function (name, value) {
434
- this._attributes[name] = value;
435
- if (this.element) {
436
- this.element.setAttribute(name, value);
437
- }
438
- };
439
- UiElement.prototype.removeAttribute = function (attributeName) {
440
- if (this._attributes[attributeName]) {
441
- delete this._attributes[attributeName];
442
- }
443
- if (this.element) {
444
- this.element.removeAttribute(attributeName);
445
- }
446
- };
447
- UiElement.prototype.getAttribute = function (attributeName) {
448
- if (this.element) {
449
- return this.element.getAttribute(attributeName);
450
- }
451
- else {
452
- return this._attributes[attributeName];
453
- }
454
- };
455
- UiElement.prototype.getStyle = function () {
456
- var _this = this;
457
- var cssProperties = [];
458
- for (var _i = 0; _i < arguments.length; _i++) {
459
- cssProperties[_i] = arguments[_i];
460
- }
461
- if (!cssProperties || cssProperties.length === 0) {
462
- return this._style;
463
- }
464
- var style = {};
465
- if (cssProperties) {
466
- cssProperties.forEach(function (cssProperty) {
467
- if (_this._style[cssProperty]) {
468
- style[cssProperty] = _this._style[cssProperty];
469
- }
470
- else if (_this.element) {
471
- style[cssProperty] = _this.element.style[cssProperty];
472
- }
473
- });
474
- }
475
- return style;
476
- };
477
- UiElement.prototype.getStyleValue = function (cssProperty) {
478
- if (this._style[cssProperty]) {
479
- return this._style[cssProperty];
480
- }
481
- else if (this.element) {
482
- return this.element.style[cssProperty];
483
- }
484
- return null;
485
- };
486
- UiElement.prototype.setStyle = function (newStyle, overwriteExisting) {
487
- var _this = this;
488
- if (newStyle) {
489
- Object.keys(newStyle).forEach(function (key) {
490
- if (_this._style.hasOwnProperty(key)) {
491
- if (!overwriteExisting) {
492
- return;
493
- }
494
- }
495
- var newValue = newStyle[key];
496
- _this._style[key] = newValue;
497
- if (_this.element) {
498
- if (newValue === null || newValue === undefined) {
499
- if (userAgent_1.userAgent.browser.isInternetExplorer) {
500
- _this.element.style[key] = style_1.defaultStyle[key];
501
- }
502
- else {
503
- _this.element.style[key] = null;
504
- }
505
- }
506
- else {
507
- _this.element.style[key] = newValue;
508
- }
509
- }
510
- });
511
- }
512
- };
513
- UiElement.prototype.setStyleNonStandard = function (name, value, overwriteExisting) {
514
- var _a;
515
- this.setStyle((_a = {}, _a[name] = value, _a), overwriteExisting);
516
- };
517
- UiElement.prototype.deleteStyle = function (style) {
518
- var _this = this;
519
- var styles;
520
- if (style instanceof Array) {
521
- styles = style;
522
- }
523
- else if (style instanceof Object) {
524
- styles = Object.keys(style);
525
- }
526
- else {
527
- styles = [style];
528
- }
529
- styles.forEach(function (cssProperty) {
530
- if (_this._style && _this._style.hasOwnProperty(cssProperty)) {
531
- delete _this._style[cssProperty];
532
- }
533
- if (_this.element) {
534
- _this.element.style[cssProperty] = undefined;
535
- }
536
- });
537
- };
538
- UiElement.prototype.setVisibility = function (visible) {
539
- this._visible = visible;
540
- if (this.element) {
541
- if (visible) {
542
- this.element.style.display = this._styleDisplayVisible;
543
- }
544
- else {
545
- this.element.style.display = "none";
546
- }
547
- }
548
- };
549
- UiElement.prototype.addSubscription = function (observable, callback) {
550
- this._knockoutSubscriptions.push(observable.subscribe(callback));
551
- };
552
- UiElement.prototype.dispatchEvent = function (type) {
553
- if (this.element) {
554
- return this.element.dispatchEvent(new Event(type));
555
- }
556
- return false;
557
- };
558
- UiElement.prototype.addEventListener = function (type, listener, options) {
559
- if (!this._eventListeners) {
560
- this._eventListeners = new Array();
561
- }
562
- this._eventListeners.push(new eventListener_1.EventListener(type, listener, options));
563
- };
564
- UiElement.prototype.getChildren = function () {
565
- return this._children;
566
- };
567
- UiElement.prototype.setChildren = function (children, replace) {
568
- var _a;
569
- if (replace === void 0) { replace = true; }
570
- if (!children) {
571
- children = [];
572
- }
573
- if (replace) {
574
- this._children = children;
575
- if (this.element) {
576
- while (this.element.firstChild) {
577
- this.element.removeChild(this.element.firstChild);
578
- }
579
- }
580
- }
581
- else {
582
- (_a = this._children).push.apply(_a, children);
583
- }
584
- if (this.element) {
585
- if (children.length > 0) {
586
- var documentFragment_1 = document.createDocumentFragment();
587
- children.forEach(function (child) {
588
- documentFragment_1.appendChild(child.render());
589
- });
590
- this.element.appendChild(documentFragment_1);
591
- }
592
- }
593
- };
594
- UiElement.prototype.addChild = function (newChild, referenceChild) {
595
- if (referenceChild) {
596
- var index = this._children.indexOf(referenceChild);
597
- if (index > -1) {
598
- this._children.splice(index, 0, newChild);
599
- if (this.element && referenceChild.getElement()) {
600
- this.element.insertBefore(newChild.render(), referenceChild.getElement());
601
- }
602
- }
603
- }
604
- else {
605
- this._children.push(newChild);
606
- if (this.element) {
607
- this.element.appendChild(newChild.render());
608
- }
609
- }
610
- };
611
- UiElement.prototype.removeChild = function (element) {
612
- var index = this._children.indexOf(element);
613
- if (index > -1) {
614
- this._children.splice(index, 1);
615
- if (this.element) {
616
- this.element.removeChild(this.element.children[index]);
617
- }
618
- }
619
- };
620
- UiElement.prototype.empty = function () {
621
- this._innerText = null;
622
- this._innerHtml = null;
623
- this._children = [];
624
- if (this.element) {
625
- this.element.innerHTML = "";
626
- while (this.element.firstChild) {
627
- this.element.removeChild(this.element.firstChild);
628
- }
629
- }
630
- };
631
- return UiElement;
632
- }());
633
- exports.UiElement = UiElement;
634
- //# sourceMappingURL=uiElement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"uiElement.js","sourceRoot":"","sources":["../src/uiElement.ts"],"names":[],"mappings":"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"}