@qooxdoo/framework 7.1.1 → 7.2.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.
Files changed (100) hide show
  1. package/Manifest.json +1 -1
  2. package/lib/compiler/compile-info.json +83 -83
  3. package/lib/compiler/index.js +279 -274
  4. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
  5. package/npm-shrinkwrap.json +235 -11095
  6. package/package.json +6 -6
  7. package/source/class/qx/Interface.js +13 -15
  8. package/source/class/qx/dev/unit/MTestLoader.js +25 -33
  9. package/source/class/qx/dev/unit/TestResult.js +9 -13
  10. package/source/class/qx/html/Element.js +1 -1
  11. package/source/class/qx/html/Node.js +0 -1
  12. package/source/class/qx/io/request/AbstractRequest.js +42 -66
  13. package/source/class/qx/test/Interface.js +70 -6
  14. package/source/class/qx/test/Mixin.js +20 -17
  15. package/source/class/qx/test/Promise.js +67 -91
  16. package/source/class/qx/test/bom/History.js +11 -19
  17. package/source/class/qx/test/bom/WebWorker.js +7 -15
  18. package/source/class/qx/test/bom/media/MediaTestCase.js +10 -18
  19. package/source/class/qx/test/bom/media/Video.js +10 -18
  20. package/source/class/qx/test/bom/rest/Resource.js +3 -7
  21. package/source/class/qx/test/bom/rest/ResourceWithRemote.js +40 -56
  22. package/source/class/qx/test/bom/webfonts/Validator.js +12 -20
  23. package/source/class/qx/test/core/Object.js +3 -7
  24. package/source/class/qx/test/data/controller/List.js +18 -22
  25. package/source/class/qx/test/data/marshal/Json.js +10 -14
  26. package/source/class/qx/test/data/store/Json.js +337 -428
  27. package/source/class/qx/test/data/store/Jsonp.js +46 -66
  28. package/source/class/qx/test/data/store/RestWithRemote.js +10 -18
  29. package/source/class/qx/test/html/Element.js +4 -8
  30. package/source/class/qx/test/html/Iframe.js +48 -60
  31. package/source/class/qx/test/io/jsonrpc/Client.js +1 -1
  32. package/source/class/qx/test/io/request/JsonpWithRemote.js +6 -10
  33. package/source/class/qx/test/io/request/MRequest.js +13 -25
  34. package/source/class/qx/test/io/request/Xhr.js +5 -9
  35. package/source/class/qx/test/io/request/XhrWithRemote.js +50 -78
  36. package/source/class/qx/test/io/rest/Resource.js +3 -7
  37. package/source/class/qx/test/io/rest/ResourceWithRemote.js +41 -57
  38. package/source/class/qx/test/mobile/basic/Image.js +16 -24
  39. package/source/class/qx/test/mobile/container/Navigation.js +3 -7
  40. package/source/class/qx/test/mobile/container/Scroll.js +8 -12
  41. package/source/class/qx/test/mobile/page/Page.js +24 -44
  42. package/source/class/qx/test/performance/Property.js +2 -2
  43. package/source/class/qx/test/ui/basic/Image.js +32 -52
  44. package/source/class/qx/test/ui/core/Blocker.js +6 -14
  45. package/source/class/qx/test/ui/embed/Iframe.js +13 -21
  46. package/source/class/qx/test/ui/form/FileSelectorButton.js +32 -0
  47. package/source/class/qx/test/ui/form/FormValidator.js +147 -211
  48. package/source/class/qx/test/ui/form/Label.js +8 -16
  49. package/source/class/qx/test/ui/root/Inline.js +9 -13
  50. package/source/class/qx/test/ui/table/Table.js +6 -14
  51. package/source/class/qx/test/ui/toolbar/OverflowHandling.js +18 -30
  52. package/source/class/qx/test/ui/virtual/Pane.js +3 -7
  53. package/source/class/qx/test/util/DynamicScriptLoader.js +23 -42
  54. package/source/class/qx/theme/tangible/Appearance.js +22 -3
  55. package/source/class/qx/tool/cli/Watch.js +3 -7
  56. package/source/class/qx/tool/cli/api/AbstractApi.js +1 -1
  57. package/source/class/qx/tool/cli/api/CompilerApi.js +3 -7
  58. package/source/class/qx/tool/cli/commands/Compile.js +3 -3
  59. package/source/class/qx/tool/cli/commands/Lint.js +8 -5
  60. package/source/class/qx/tool/compiler/ClassFile.js +22 -12
  61. package/source/class/qx/tool/compiler/Es6ify.js +7 -3
  62. package/source/class/qx/tool/compiler/TargetError.js +3 -4
  63. package/source/class/qx/tool/compiler/app/Application.js +3 -3
  64. package/source/class/qx/tool/compiler/app/WebFont.js +8 -6
  65. package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +1 -1
  66. package/source/class/qx/tool/compiler/targets/Target.js +2 -1
  67. package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +1 -1
  68. package/source/class/qx/tool/compiler/targets/meta/Browserify.js +77 -83
  69. package/source/class/qx/tool/compiler/targets/meta/Uglify.js +11 -3
  70. package/source/class/qx/tool/utils/Website.js +2 -2
  71. package/source/class/qx/ui/basic/Label.js +13 -17
  72. package/source/class/qx/ui/core/MPlacement.js +13 -21
  73. package/source/class/qx/ui/core/Widget.js +2 -3
  74. package/source/class/qx/ui/core/scroll/NativeScrollBar.js +3 -7
  75. package/source/class/qx/ui/core/scroll/ScrollBar.js +3 -7
  76. package/source/class/qx/ui/embed/Iframe.js +40 -50
  77. package/source/class/qx/ui/form/AbstractField.js +8 -12
  78. package/source/class/qx/ui/form/ComboBox.js +7 -15
  79. package/source/class/qx/ui/form/DateField.js +9 -18
  80. package/source/class/qx/ui/form/FileSelectorButton.js +157 -0
  81. package/source/class/qx/ui/form/Spinner.js +7 -15
  82. package/source/class/qx/ui/form/TextArea.js +3 -7
  83. package/source/class/qx/ui/form/VirtualComboBox.js +8 -16
  84. package/source/class/qx/ui/form/VirtualSelectBox.js +21 -37
  85. package/source/class/qx/ui/layout/Canvas.js +2 -2
  86. package/source/class/qx/ui/mobile/container/MIScroll.js +3 -7
  87. package/source/class/qx/ui/progressive/headfoot/Progress.js +22 -34
  88. package/source/class/qx/ui/progressive/renderer/table/Row.js +1 -1
  89. package/source/class/qx/ui/splitpane/Pane.js +14 -22
  90. package/source/class/qx/ui/table/MTableContextMenu.js +63 -71
  91. package/source/class/qx/ui/table/Table.js +3 -7
  92. package/source/class/qx/ui/table/model/Abstract.js +5 -2
  93. package/source/class/qx/ui/table/pane/Scroller.js +8 -12
  94. package/source/class/qx/ui/toolbar/FileSelectorButton.js +57 -0
  95. package/source/class/qx/ui/toolbar/Part.js +3 -7
  96. package/source/class/qx/ui/tree/VirtualTree.js +5 -9
  97. package/source/class/qx/ui/treevirtual/MNode.js +5 -3
  98. package/source/class/qx/ui/treevirtual/TreeVirtual.js +3 -7
  99. package/source/class/qx/ui/virtual/core/Pane.js +30 -42
  100. package/source/class/qx/util/DynamicScriptLoader.js +31 -43
@@ -48,15 +48,11 @@ qx.Class.define("qx.test.io.rest.ResourceWithRemote", {
48
48
  res = this.res;
49
49
 
50
50
  res.map("get", "GET", url);
51
- res.addListener(
52
- "getSuccess",
53
- function (e) {
54
- this.resume(function () {
55
- this.assertEquals("SAMPLE", e.getData());
56
- }, this);
57
- },
58
- this
59
- );
51
+ res.addListener("getSuccess", e => {
52
+ this.resume(function () {
53
+ this.assertEquals("SAMPLE", e.getData());
54
+ }, this);
55
+ });
60
56
 
61
57
  res.get();
62
58
  this.wait();
@@ -69,16 +65,12 @@ qx.Class.define("qx.test.io.rest.ResourceWithRemote", {
69
65
  res = this.res;
70
66
 
71
67
  res.map("get", "GET", url);
72
- res.addListener(
73
- "error",
74
- function (e) {
75
- this.resume(function () {
76
- this.assertEquals("statusError", e.getPhase());
77
- this.assertEquals("get", e.getAction());
78
- }, this);
79
- },
80
- this
81
- );
68
+ res.addListener("error", e => {
69
+ this.resume(function () {
70
+ this.assertEquals("statusError", e.getPhase());
71
+ this.assertEquals("get", e.getAction());
72
+ }, this);
73
+ });
82
74
 
83
75
  res.get();
84
76
  this.wait();
@@ -96,27 +88,23 @@ qx.Class.define("qx.test.io.rest.ResourceWithRemote", {
96
88
 
97
89
  // Response headers must contain explicit cache control for this
98
90
  // to work in IE
99
- res.addListener(
100
- "getSuccess",
101
- function (e) {
102
- var response = e.getData();
103
- count++;
104
-
105
- this.assert(response.length === 32, "Response must be MD5");
106
- this.assertNotEquals(
107
- previousResponse,
108
- response,
109
- "Response must be different from previous"
110
- );
111
-
112
- previousResponse = response;
113
-
114
- if (count >= 10) {
115
- this.resume();
116
- }
117
- },
118
- this
119
- );
91
+ res.addListener("getSuccess", e => {
92
+ var response = e.getData();
93
+ count++;
94
+
95
+ this.assert(response.length === 32, "Response must be MD5");
96
+ this.assertNotEquals(
97
+ previousResponse,
98
+ response,
99
+ "Response must be different from previous"
100
+ );
101
+
102
+ previousResponse = response;
103
+
104
+ if (count >= 10) {
105
+ this.resume();
106
+ }
107
+ });
120
108
 
121
109
  res.poll("get", 100);
122
110
  this.wait();
@@ -130,23 +118,19 @@ qx.Class.define("qx.test.io.rest.ResourceWithRemote", {
130
118
  responses = [];
131
119
 
132
120
  res.map("get", "GET", url);
133
- res.addListener(
134
- "getSuccess",
135
- function (e) {
136
- var response = e.getData();
137
- responses.push(response);
138
-
139
- if (++count >= 5) {
140
- this.resume(function () {
141
- this.assert(
142
- parseFloat(responses[4]) > parseFloat(responses[0]),
143
- "Must increase"
144
- );
145
- }, this);
146
- }
147
- },
148
- this
149
- );
121
+ res.addListener("getSuccess", e => {
122
+ var response = e.getData();
123
+ responses.push(response);
124
+
125
+ if (++count >= 5) {
126
+ this.resume(function () {
127
+ this.assert(
128
+ parseFloat(responses[4]) > parseFloat(responses[0]),
129
+ "Must increase"
130
+ );
131
+ }, this);
132
+ }
133
+ });
150
134
 
151
135
  res.longPoll("get");
152
136
  this.wait();
@@ -37,19 +37,15 @@ qx.Class.define("qx.test.mobile.basic.Image", {
37
37
  "qx/icon/Tango/48/places/folder.png"
38
38
  );
39
39
 
40
- image.addListener(
41
- "loaded",
42
- function () {
43
- this.resume(function () {
44
- // use a timeout to dispose the image because it needs to
45
- // end its processing after the event has been fired.
46
- window.setTimeout(function () {
47
- image.destroy();
48
- });
40
+ image.addListener("loaded", () => {
41
+ this.resume(function () {
42
+ // use a timeout to dispose the image because it needs to
43
+ // end its processing after the event has been fired.
44
+ window.setTimeout(function () {
45
+ image.destroy();
49
46
  });
50
- },
51
- this
52
- );
47
+ });
48
+ });
53
49
 
54
50
  this.getRoot().add(image);
55
51
  this.wait();
@@ -62,19 +58,15 @@ qx.Class.define("qx.test.mobile.basic.Image", {
62
58
 
63
59
  this.getRoot().add(image);
64
60
 
65
- image.addListener(
66
- "loadingFailed",
67
- function () {
68
- this.resume(function () {
69
- // use a timeout to dispose the image because it needs to
70
- // end its processing after the event has been fired.
71
- window.setTimeout(function () {
72
- image.destroy();
73
- });
61
+ image.addListener("loadingFailed", () => {
62
+ this.resume(function () {
63
+ // use a timeout to dispose the image because it needs to
64
+ // end its processing after the event has been fired.
65
+ window.setTimeout(function () {
66
+ image.destroy();
74
67
  });
75
- },
76
- this
77
- );
68
+ });
69
+ });
78
70
 
79
71
  this.wait();
80
72
  }
@@ -54,13 +54,9 @@ qx.Class.define("qx.test.mobile.container.Navigation", {
54
54
  var container = new qx.ui.mobile.container.Navigation();
55
55
  var updateEventFired = false;
56
56
 
57
- container.addListener(
58
- "update",
59
- function () {
60
- updateEventFired = true;
61
- },
62
- this
63
- );
57
+ container.addListener("update", () => {
58
+ updateEventFired = true;
59
+ });
64
60
 
65
61
  var page1 = new qx.ui.mobile.page.NavigationPage();
66
62
  var page2 = new qx.ui.mobile.page.NavigationPage();
@@ -34,18 +34,14 @@ qx.Class.define("qx.test.mobile.container.Scroll", {
34
34
  "hidden"
35
35
  );
36
36
 
37
- scrollContainer.addListener(
38
- "waypoint",
39
- function (wayPoint) {
40
- var wayPointData = wayPoint.getData();
41
- this.resume(function () {
42
- this.assertEquals("x", wayPointData.axis);
43
- this.assertEquals(0, wayPointData.index);
44
- this.assertEquals("left", wayPointData.direction);
45
- }, this);
46
- },
47
- this
48
- );
37
+ scrollContainer.addListener("waypoint", wayPoint => {
38
+ var wayPointData = wayPoint.getData();
39
+ this.resume(function () {
40
+ this.assertEquals("x", wayPointData.axis);
41
+ this.assertEquals(0, wayPointData.index);
42
+ this.assertEquals("left", wayPointData.direction);
43
+ }, this);
44
+ });
49
45
 
50
46
  var content = new qx.ui.mobile.core.Widget();
51
47
  qxWeb(content.getContainerElement()).setStyles({
@@ -28,39 +28,27 @@ qx.Class.define("qx.test.mobile.page.Page", {
28
28
  var page = new qx.ui.mobile.page.Page();
29
29
  this.getRoot().add(page);
30
30
 
31
- page.addListener(
32
- "initialize",
33
- function () {
34
- this.assertFalse(
35
- startEvent,
36
- "Start event is fired before initialize event was fired!"
37
- );
31
+ page.addListener("initialize", () => {
32
+ this.assertFalse(
33
+ startEvent,
34
+ "Start event is fired before initialize event was fired!"
35
+ );
38
36
 
39
- initializedEvent = true;
40
- },
41
- this
42
- );
37
+ initializedEvent = true;
38
+ });
43
39
 
44
- page.addListener(
45
- "start",
46
- function () {
47
- this.assertTrue(
48
- initializedEvent,
49
- "Start event is fired before initialize event was fired!"
50
- );
40
+ page.addListener("start", () => {
41
+ this.assertTrue(
42
+ initializedEvent,
43
+ "Start event is fired before initialize event was fired!"
44
+ );
51
45
 
52
- startEvent = true;
53
- },
54
- this
55
- );
46
+ startEvent = true;
47
+ });
56
48
 
57
- page.addListener(
58
- "stop",
59
- function () {
60
- stopEvent = true;
61
- },
62
- this
63
- );
49
+ page.addListener("stop", () => {
50
+ stopEvent = true;
51
+ });
64
52
 
65
53
  page.show();
66
54
 
@@ -108,22 +96,14 @@ qx.Class.define("qx.test.mobile.page.Page", {
108
96
  var eventFiredOnPage = false;
109
97
 
110
98
  var application = qx.core.Init.getApplication();
111
- var id = application.addListener(
112
- "back",
113
- function (evt) {
114
- eventFiredOnApplication = true;
115
- evt.preventDefault();
116
- },
117
- this
118
- );
99
+ var id = application.addListener("back", evt => {
100
+ eventFiredOnApplication = true;
101
+ evt.preventDefault();
102
+ });
119
103
 
120
- page.addListener(
121
- "back",
122
- function () {
123
- eventFiredOnPage = true;
124
- },
125
- this
126
- );
104
+ page.addListener("back", () => {
105
+ eventFiredOnPage = true;
106
+ });
127
107
 
128
108
  page.back();
129
109
 
@@ -19,7 +19,7 @@ qx.Class.define("qx.test.performance.Property", {
19
19
  });
20
20
 
21
21
  var obj = new Clazz();
22
- obj.addListener("changeAlpha", function () {}, this);
22
+ obj.addListener("changeAlpha", () => {});
23
23
  var self = this;
24
24
  this.measure(
25
25
  "property set",
@@ -56,7 +56,7 @@ qx.Class.define("qx.test.performance.Property", {
56
56
  });
57
57
 
58
58
  var obj = new Clazz();
59
- obj.addListener("changeAlpha", function () {}, this);
59
+ obj.addListener("changeAlpha", () => {});
60
60
  var self = this;
61
61
  this.measure(
62
62
  "property set",
@@ -184,19 +184,15 @@ qx.Class.define("qx.test.ui.basic.Image", {
184
184
  testFailedEvent() {
185
185
  var image = new qx.ui.basic.Image("affe.xyz" + Math.random());
186
186
  this.addAutoDispose(image);
187
- image.addListener(
188
- "loadingFailed",
189
- function () {
190
- this.resume(function () {
191
- // use a timeout to dispose the image because it needs to
192
- // end its processing after the event has been fired.
193
- window.setTimeout(function () {
194
- image.destroy();
195
- });
187
+ image.addListener("loadingFailed", () => {
188
+ this.resume(function () {
189
+ // use a timeout to dispose the image because it needs to
190
+ // end its processing after the event has been fired.
191
+ window.setTimeout(function () {
192
+ image.destroy();
196
193
  });
197
- },
198
- this
199
- );
194
+ });
195
+ });
200
196
 
201
197
  this.wait();
202
198
  },
@@ -211,19 +207,15 @@ qx.Class.define("qx.test.ui.basic.Image", {
211
207
 
212
208
  var image = new qx.ui.basic.Image(source);
213
209
  this.addAutoDispose(image);
214
- image.addListener(
215
- "loaded",
216
- function () {
217
- this.resume(function () {
218
- // use a timeout to dispose the image because it needs to
219
- // end its processing after the event has been fired.
220
- window.setTimeout(function () {
221
- image.destroy();
222
- });
210
+ image.addListener("loaded", () => {
211
+ this.resume(function () {
212
+ // use a timeout to dispose the image because it needs to
213
+ // end its processing after the event has been fired.
214
+ window.setTimeout(function () {
215
+ image.destroy();
223
216
  });
224
- },
225
- this
226
- );
217
+ });
218
+ });
227
219
 
228
220
  this.wait(1000);
229
221
  },
@@ -302,14 +294,10 @@ qx.Class.define("qx.test.ui.basic.Image", {
302
294
  image.setSource(source);
303
295
 
304
296
  // load second time
305
- image.addListenerOnce(
306
- "loaded",
307
- function () {
308
- image.resetSource();
309
- image.setSource(source);
310
- },
311
- this
312
- );
297
+ image.addListenerOnce("loaded", () => {
298
+ image.resetSource();
299
+ image.setSource(source);
300
+ });
313
301
 
314
302
  this.wait(
315
303
  500,
@@ -336,14 +324,10 @@ qx.Class.define("qx.test.ui.basic.Image", {
336
324
  image.setSource(source);
337
325
 
338
326
  // load second time
339
- image.addListenerOnce(
340
- "loaded",
341
- function () {
342
- image.resetSource();
343
- image.setSource(source);
344
- },
345
- this
346
- );
327
+ image.addListenerOnce("loaded", () => {
328
+ image.resetSource();
329
+ image.setSource(source);
330
+ });
347
331
 
348
332
  this.wait(
349
333
  500,
@@ -381,18 +365,14 @@ qx.Class.define("qx.test.ui.basic.Image", {
381
365
  image.setSource(source);
382
366
 
383
367
  // load second time
384
- image.addListenerOnce(
385
- "loaded",
386
- function () {
387
- image.resetSource();
388
- image.setSource(source);
389
-
390
- // load thrice
391
- image.resetSource();
392
- image.setSource(source);
393
- },
394
- this
395
- );
368
+ image.addListenerOnce("loaded", () => {
369
+ image.resetSource();
370
+ image.setSource(source);
371
+
372
+ // load thrice
373
+ image.resetSource();
374
+ image.setSource(source);
375
+ });
396
376
 
397
377
  this.wait(
398
378
  500,
@@ -106,21 +106,13 @@ qx.Class.define("qx.test.ui.core.Blocker", {
106
106
  this.__blockedEventFired = false;
107
107
  this.__unblockedEventFired = false;
108
108
 
109
- this.__blocker.addListenerOnce(
110
- "blocked",
111
- function (e) {
112
- this.__blockedEventFired = true;
113
- },
114
- this
115
- );
109
+ this.__blocker.addListenerOnce("blocked", e => {
110
+ this.__blockedEventFired = true;
111
+ });
116
112
 
117
- this.__blocker.addListenerOnce(
118
- "unblocked",
119
- function (e) {
120
- this.__unblockedEventFired = true;
121
- },
122
- this
123
- );
113
+ this.__blocker.addListenerOnce("unblocked", e => {
114
+ this.__unblockedEventFired = true;
115
+ });
124
116
 
125
117
  this.__blocker.block();
126
118
  this.__blocker.unblock();
@@ -57,18 +57,14 @@ qx.Class.define("qx.test.ui.embed.Iframe", {
57
57
  this.__iframe.setSource(src);
58
58
  qx.ui.core.queue.Manager.flush();
59
59
 
60
- this.__iframe.addListenerOnce(
61
- "load",
62
- function () {
63
- this.resume(function () {
64
- this.assertEquals(
65
- this.__iframe.getSource(),
66
- this.__iframe.getWindow().location.href
67
- );
68
- });
69
- },
70
- this
71
- );
60
+ this.__iframe.addListenerOnce("load", () => {
61
+ this.resume(function () {
62
+ this.assertEquals(
63
+ this.__iframe.getSource(),
64
+ this.__iframe.getWindow().location.href
65
+ );
66
+ });
67
+ });
72
68
 
73
69
  this.wait(10000);
74
70
  },
@@ -76,15 +72,11 @@ qx.Class.define("qx.test.ui.embed.Iframe", {
76
72
  testGetWindow() {
77
73
  this.getRoot().add(this.__iframe);
78
74
 
79
- this.__iframe.addListener(
80
- "load",
81
- function () {
82
- this.resume(function () {
83
- this.assertNotNull(this.__iframe.getWindow());
84
- }, this);
85
- },
86
- this
87
- );
75
+ this.__iframe.addListener("load", () => {
76
+ this.resume(function () {
77
+ this.assertNotNull(this.__iframe.getWindow());
78
+ }, this);
79
+ });
88
80
 
89
81
  var src = qx.util.ResourceManager.getInstance().toUri(
90
82
  "qx/static/blank.html"
@@ -0,0 +1,32 @@
1
+ /* ************************************************************************
2
+
3
+ qooxdoo
4
+
5
+ http://qooxdoo.org
6
+
7
+ Copyright:
8
+ 2021 OETIKER+PARTNER AG
9
+
10
+ License:
11
+ MIT: https://opensource.org/licenses/MIT
12
+ See the LICENSE file in the project's top-level directory for details.
13
+
14
+ Authors:
15
+ * Tobias Oetiker (oetiker)
16
+
17
+ ************************************************************************ */
18
+
19
+ qx.Class.define("qx.test.ui.form.FileSelectorButon", {
20
+ extend: qx.test.ui.LayoutTestCase,
21
+
22
+ include: [qx.dev.unit.MRequirements, qx.dev.unit.MMock],
23
+
24
+ members: {
25
+ testInstantiation() {
26
+ let uploadField = new qx.ui.form.FileSelectorButton("Select a File");
27
+ this.getRoot().add(uploadField);
28
+ this.flush();
29
+ uploadField.destroy();
30
+ }
31
+ }
32
+ });