jpf 3.0.21 → 4.0.0

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