@qooxdoo/framework 7.7.1 → 7.8.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 (68) hide show
  1. package/Manifest.json +1 -1
  2. package/lib/compiler/compile-info.json +69 -69
  3. package/lib/compiler/index.js +542 -380
  4. package/lib/resource/qx/tool/schema/compile-1-0-0.json +13 -0
  5. package/package.json +2 -2
  6. package/source/class/qx/Class.js +1 -1
  7. package/source/class/qx/Mixin.js +7 -5
  8. package/source/class/qx/bom/Input.js +24 -13
  9. package/source/class/qx/bom/Label.js +82 -2
  10. package/source/class/qx/bom/webfonts/WebFont.js +1 -0
  11. package/source/class/qx/core/Environment.js +82 -1
  12. package/source/class/qx/data/controller/List.js +50 -21
  13. package/source/class/qx/data/controller/MSelection.js +45 -12
  14. package/source/class/qx/dev/unit/AsyncWrapper.js +8 -0
  15. package/source/class/qx/event/Manager.js +163 -124
  16. package/source/class/qx/io/ImageLoader.js +6 -3
  17. package/source/class/qx/io/exception/Transport.js +1 -0
  18. package/source/class/qx/io/jsonrpc/Client.js +64 -8
  19. package/source/class/qx/io/jsonrpc/protocol/Request.js +10 -6
  20. package/source/class/qx/lang/Function.js +5 -1
  21. package/source/class/qx/test/Mixin.js +260 -0
  22. package/source/class/qx/test/bom/client/Pdfjs.js +4 -0
  23. package/source/class/qx/test/bom/element/AnimationJs.js +3 -0
  24. package/source/class/qx/test/bom/element/Style.js +1 -0
  25. package/source/class/qx/test/bom/media/MediaTestCase.js +6 -0
  26. package/source/class/qx/test/core/Environment.js +44 -0
  27. package/source/class/qx/test/io/MAssert.js +94 -0
  28. package/source/class/qx/test/io/TestMAssert.js +47 -0
  29. package/source/class/qx/test/io/jsonrpc/Client.js +79 -19
  30. package/source/class/qx/test/io/jsonrpc/PostMessageClient.js +152 -0
  31. package/source/class/qx/test/io/jsonrpc/Protocol.js +1 -5
  32. package/source/class/qx/test/ui/embed/Iframe.js +1 -1
  33. package/source/class/qx/test/ui/form/TextArea.js +4 -0
  34. package/source/class/qx/test/util/DeferredCall.js +6 -0
  35. package/source/class/qx/test/util/Function.js +2 -2
  36. package/source/class/qx/tool/cli/api/Test.js +22 -0
  37. package/source/class/qx/tool/cli/commands/Compile.js +17 -7
  38. package/source/class/qx/tool/cli/commands/Test.js +7 -1
  39. package/source/class/qx/tool/compiler/Analyser.js +7 -0
  40. package/source/class/qx/tool/compiler/ClassFile.js +12 -6
  41. package/source/class/qx/tool/compiler/MetaExtraction.js +0 -5
  42. package/source/class/qx/tool/compiler/targets/Target.js +2 -2
  43. package/source/class/qx/tool/compiler/targets/meta/Browserify.js +8 -2
  44. package/source/class/qx/ui/basic/Image.js +72 -8
  45. package/source/class/qx/ui/basic/Label.js +4 -6
  46. package/source/class/qx/ui/control/DateChooser.js +4 -6
  47. package/source/class/qx/ui/core/Blocker.js +4 -6
  48. package/source/class/qx/ui/core/LayoutItem.js +4 -6
  49. package/source/class/qx/ui/core/MPlacement.js +11 -0
  50. package/source/class/qx/ui/core/Widget.js +7 -5
  51. package/source/class/qx/ui/form/AbstractField.js +14 -16
  52. package/source/class/qx/ui/form/IListItem.js +48 -1
  53. package/source/class/qx/ui/form/List.js +11 -6
  54. package/source/class/qx/ui/form/MForm.js +4 -6
  55. package/source/class/qx/ui/form/Spinner.js +4 -6
  56. package/source/class/qx/ui/form/renderer/AbstractRenderer.js +4 -6
  57. package/source/class/qx/ui/menu/AbstractButton.js +7 -11
  58. package/source/class/qx/ui/mobile/basic/Label.js +4 -6
  59. package/source/class/qx/ui/mobile/form/Label.js +4 -6
  60. package/source/class/qx/ui/mobile/list/List.js +4 -6
  61. package/source/class/qx/ui/progressive/renderer/table/Row.js +35 -7
  62. package/source/class/qx/ui/progressive/renderer/table/cell/Boolean.js +4 -6
  63. package/source/class/qx/ui/table/Table.js +12 -6
  64. package/source/class/qx/ui/table/cellrenderer/Abstract.js +4 -6
  65. package/source/class/qx/ui/table/cellrenderer/Boolean.js +4 -6
  66. package/source/class/qx/ui/table/pane/Scroller.js +35 -0
  67. package/source/class/qx/ui/table/rowrenderer/Default.js +4 -6
  68. package/source/resource/qx/tool/schema/compile-1-0-0.json +13 -0
@@ -125,8 +125,8 @@ if (typeof global !== "undefined") {
125
125
  "qx.promise.warnings": true,
126
126
  "qx.promise.longStackTraces": true,
127
127
  "qx.compiler": true,
128
- "qx.compiler.version": "7.7.1",
129
- "qx.version": null,
128
+ "qx.compiler.version": "7.8.0",
129
+ "qx.version": "7.8.0",
130
130
  "qx.compiler.targetType": "source",
131
131
  "qx.compiler.outputDir": "compiled/node/build/",
132
132
  "qx.target.privateArtifacts": false,
@@ -147,7 +147,7 @@ if (typeof global !== "undefined") {
147
147
  "qx"
148
148
  ].forEach(ns => qx.$$libraries[ns] = {
149
149
  sourceUri: qx.$$appRoot + ".",
150
- resourceUri: qx.$$appRoot + "../resource/"
150
+ resourceUri: qx.$$appRoot + "../resource"
151
151
  });
152
152
 
153
153
  var isDebug = qx.$$environment["qx.debugLoader"];
@@ -3105,7 +3105,8 @@ try {
3105
3105
  "qx.promise.warnings": true,
3106
3106
  "qx.promise.longStackTraces": true,
3107
3107
  "qx.command.bindEnabled": false,
3108
- "qx.headless": false
3108
+ "qx.headless": false,
3109
+ "qx.environment.allowRuntimeMutations": false
3109
3110
  },
3110
3111
  /**
3111
3112
  * The default accessor for the checks. It returns the value the current
@@ -3368,6 +3369,71 @@ try {
3368
3369
  getAsyncChecks() {
3369
3370
  return this._asyncChecks;
3370
3371
  },
3372
+ // mutation of environment settings at runtime
3373
+
3374
+ /**
3375
+ * Sets the environment setting for the given key to the given value. This deletes any check function
3376
+ * associated with this key.
3377
+ *
3378
+ * This method is only available if "qx.environment.allowRuntimeMutations" is set to true.
3379
+ *
3380
+ * @param key {String} The key of the environment setting to set.
3381
+ * @param value {var} The value to set the environment setting to. Must be a scalar value.
3382
+ */
3383
+ set: qx.Bootstrap.getEnvironmentSetting("qx.environment.allowRuntimeMutations") ? function (key, value) {
3384
+ if (key === undefined) {
3385
+ throw new TypeError("Key must be provided to set an environment setting.");
3386
+ }
3387
+ if (this.__P_66_3 === undefined) {
3388
+ qx.Bootstrap.warn("Modifying environment settings at runtime is enabled. This is a security risk and should not be done in production code.");
3389
+ this.__P_66_3 = Object.assign({}, this.__P_66_0);
3390
+ this.__P_66_4 = Object.assign({}, this._checks);
3391
+ }
3392
+ this.__P_66_0[key] = value;
3393
+ delete this._checks[key];
3394
+ delete this._checksMap[key];
3395
+ } : undefined,
3396
+ /**
3397
+ * Removes the environment setting for the given key, and any check function associated with it.
3398
+ * This method is only available if "qx.environment.allowRuntimeMutations" is set to true.
3399
+ *
3400
+ * @param key {String} The key of the environment setting to remove.
3401
+ */
3402
+ remove: qx.Bootstrap.getEnvironmentSetting("qx.environment.allowRuntimeMutations") ? function (key) {
3403
+ if (key === undefined) {
3404
+ throw new TypeError("Key must be provided to remove an environment setting.");
3405
+ }
3406
+ if (this.__P_66_3 === undefined || this.__P_66_3[key] === undefined) {
3407
+ throw new TypeError(`Environment setting "${key}" does not exist.`);
3408
+ }
3409
+ delete this.__P_66_0[key];
3410
+ delete this._checks[key];
3411
+ delete this._checksMap[key];
3412
+ } : undefined,
3413
+ /**
3414
+ * Resets the environment settings to their original values. If a key is provided, only that key is reset.
3415
+ * This method is only available if "qx.environment.allowRuntimeMutations" is set to true.
3416
+ *
3417
+ * @param key {String?} The key of the environment setting to reset. If not provided, all settings are reset.
3418
+ */
3419
+ reset: qx.Bootstrap.getEnvironmentSetting("qx.environment.allowRuntimeMutations") ? function (key) {
3420
+ if (this.__P_66_3 === undefined) {
3421
+ // no backup available, nothing to reset
3422
+ return;
3423
+ }
3424
+ if (key !== undefined && this.__P_66_3[key] === undefined) {
3425
+ throw new TypeError(`Environment setting "${key}" does not exist.`);
3426
+ }
3427
+ if (key === undefined) {
3428
+ // reset all keys
3429
+ this.__P_66_0 = Object.assign({}, this.__P_66_3);
3430
+ this._checks = Object.assign({}, this.__P_66_4);
3431
+ return;
3432
+ }
3433
+ // only reset the particular key
3434
+ this.__P_66_0[key] = this.__P_66_3[key];
3435
+ this._checks[key] = this.__P_66_4[key];
3436
+ } : undefined,
3371
3437
  /**
3372
3438
  * Initializer for the default values of the framework settings.
3373
3439
  */
@@ -3384,7 +3450,7 @@ try {
3384
3450
  /**
3385
3451
  * Import checks from global qx.$$environment into the Environment class.
3386
3452
  */
3387
- __P_66_3() {
3453
+ __P_66_5() {
3388
3454
  // import the environment map
3389
3455
  if (qx && qx.$$environment) {
3390
3456
  for (var key in qx.$$environment) {
@@ -3397,7 +3463,7 @@ try {
3397
3463
  * Checks the URL for environment settings and imports these into the
3398
3464
  * Environment class.
3399
3465
  */
3400
- __P_66_4() {
3466
+ __P_66_6() {
3401
3467
  if (window.document && window.document.location) {
3402
3468
  var urlChecks = window.document.location.search.slice(1).split("&");
3403
3469
  for (var i = 0; i < urlChecks.length; i++) {
@@ -3436,11 +3502,21 @@ try {
3436
3502
  // create default values for the environment class
3437
3503
  statics._initDefaultQxValues();
3438
3504
  // load the checks from the generator
3439
- statics.__P_66_3();
3505
+ statics.__P_66_5();
3440
3506
  // load the checks from the url
3441
3507
  if (statics.get("qx.allowUrlSettings") === true) {
3442
- statics.__P_66_4();
3508
+ statics.__P_66_6();
3443
3509
  }
3510
+ },
3511
+ environment: {
3512
+ /**
3513
+ * By setting this key to true, the environment variables can be mutated at runtime, using the {@link #set} method,
3514
+ * which is otherwise not available. This is only useful for testing and debugging purposes. We strongly advise
3515
+ * against enabling this in production code. You have been warned.
3516
+ * Note: This enviroment key declaration is only for documentation purposes and is not used during bootstrapping, so
3517
+ * changing the value here will have no effect.
3518
+ */
3519
+ "qx.environment.allowRuntimeMutations": false
3444
3520
  }
3445
3521
  });
3446
3522
  qx.core.Environment.$$dbClassInfo = $$dbClassInfo;
@@ -5130,16 +5206,18 @@ try {
5130
5206
  break;
5131
5207
  }
5132
5208
  }
5209
+
5133
5210
  // Try looking in the class itself
5134
5211
  if (!fn && mixedInAt.prototype[methodName]) {
5135
- fn = mixedInAt.prototype[methodName].base;
5136
- // if fn.self is set fn is an overloaded mixin method from
5137
- // another mixin. In this case fn.base contains the original
5138
- // class method.
5139
- if (fn && fn.self) {
5212
+ fn = mixedInAt.prototype[methodName];
5213
+ for (let i = 0; i < mixedInAt.$$flatIncludes.length; i++) {
5214
+ if (!mixedInAt.$$flatIncludes[i].$$members[methodName]) {
5215
+ continue;
5216
+ }
5140
5217
  fn = fn.base;
5141
5218
  }
5142
5219
  }
5220
+
5143
5221
  // Try looking in the superclass
5144
5222
  if (!fn && mixedInAt.superclass) {
5145
5223
  fn = mixedInAt.superclass.prototype[methodName];
@@ -8501,7 +8579,7 @@ try {
8501
8579
  // Validate keys
8502
8580
  var allowed = config.type === "static" ? this.__P_142_11 : this.__P_142_10;
8503
8581
  for (var key in config) {
8504
- if (!allowed[key]) {
8582
+ if (!(key in allowed)) {
8505
8583
  throw new Error('The configuration key "' + key + '" in class "' + name + '" is not allowed!');
8506
8584
  }
8507
8585
  if (config[key] == null) {
@@ -12189,7 +12267,7 @@ try {
12189
12267
  }
12190
12268
 
12191
12269
  // Registry for event listeners
12192
- this.__P_174_3 = {};
12270
+ this.__P_174_3 = new Map();
12193
12271
 
12194
12272
  // The handler and dispatcher instances
12195
12273
  this.__P_174_4 = {};
@@ -12362,23 +12440,69 @@ try {
12362
12440
  */
12363
12441
  getListeners(target, type, capture) {
12364
12442
  var targetKey = target.$$hash || qx.core.ObjectRegistry.toHashCode(target);
12365
- var targetMap = this.__P_174_3[targetKey];
12443
+ var targetMap = this.__P_174_3.get(targetKey);
12366
12444
  if (!targetMap) {
12367
12445
  return null;
12368
12446
  }
12369
12447
  var entryKey = type + (capture ? "|capture" : "|bubble");
12370
- var entryList = targetMap[entryKey];
12371
- return entryList ? entryList.concat() : null;
12448
+ var entryMap = targetMap.get(entryKey);
12449
+ if (entryMap && entryMap.size > 0) {
12450
+ var listeners = [...entryMap.values()];
12451
+ return new Proxy(listeners, {
12452
+ deleteProperty(target, property) {
12453
+ if (property !== "length") {
12454
+ var listener = target[property];
12455
+ entryMap.delete(listener.unique);
12456
+ }
12457
+ delete target[property];
12458
+ return true;
12459
+ },
12460
+ set(target, property, value, receiver) {
12461
+ if (property !== "length") {
12462
+ if (!value.unique) {
12463
+ throw new Error("Cannot store a listener without a unique id. Use addListener()");
12464
+ }
12465
+ entryMap[value.unique] = value;
12466
+ }
12467
+ target[property] = value;
12468
+ return true;
12469
+ }
12470
+ });
12471
+ }
12472
+ return null;
12372
12473
  },
12373
12474
  /**
12374
12475
  * Returns all registered listeners.
12375
12476
  *
12376
12477
  * @internal
12377
12478
  *
12378
- * @return {Map} All registered listeners. The key is the hash code form an object.
12479
+ * @return {Object} All registered listeners. The key is the hash code for an object.
12379
12480
  */
12380
12481
  getAllListeners() {
12381
- return this.__P_174_3;
12482
+ return Object.fromEntries(this.__P_174_3.entries().map(([targetKey, targetMap]) => [targetKey, Object.fromEntries(targetMap.entries().map(([entryKey, entryMap]) => {
12483
+ var listeners = [...entryMap.values()];
12484
+ var proxy = new Proxy(listeners, {
12485
+ deleteProperty(target, property) {
12486
+ if (property !== "length") {
12487
+ var listener = target[property];
12488
+ entryMap.delete(listener.unique);
12489
+ }
12490
+ delete target[property];
12491
+ return true;
12492
+ },
12493
+ set(target, property, value, receiver) {
12494
+ if (property !== "length") {
12495
+ if (!value.unique) {
12496
+ throw new Error("Cannot store a listener without a unique id. Use addListener()");
12497
+ }
12498
+ entryMap[value.unique] = value;
12499
+ }
12500
+ target[property] = value;
12501
+ return true;
12502
+ }
12503
+ });
12504
+ return [entryKey, proxy];
12505
+ }))]));
12382
12506
  },
12383
12507
  /**
12384
12508
  * Returns a serialized array of all events attached on the given target.
@@ -12389,24 +12513,20 @@ try {
12389
12513
  */
12390
12514
  serializeListeners(target) {
12391
12515
  var targetKey = target.$$hash || qx.core.ObjectRegistry.toHashCode(target);
12392
- var targetMap = this.__P_174_3[targetKey];
12516
+ var targetMap = this.__P_174_3.get(targetKey);
12393
12517
  var result = [];
12394
12518
  if (targetMap) {
12395
- var indexOf, type, capture, entryList, entry;
12396
- for (var entryKey in targetMap) {
12519
+ var indexOf, type, capture;
12520
+ for (const [entryKey, entryMap] of targetMap) {
12397
12521
  indexOf = entryKey.indexOf("|");
12398
12522
  type = entryKey.substring(0, indexOf);
12399
- capture = entryKey.charAt(indexOf + 1) == "c";
12400
- entryList = targetMap[entryKey];
12401
- for (var i = 0, l = entryList.length; i < l; i++) {
12402
- entry = entryList[i];
12403
- result.push({
12404
- self: entry.context,
12405
- handler: entry.handler,
12406
- type: type,
12407
- capture: capture
12408
- });
12409
- }
12523
+ capture = entryKey.charAt(indexOf + 1) === "c";
12524
+ result = result.concat([...entryMap.values().map(entry => ({
12525
+ self: entry.context,
12526
+ handler: entry.handler,
12527
+ type: type,
12528
+ capture: capture
12529
+ }))]);
12410
12530
  }
12411
12531
  }
12412
12532
  return result;
@@ -12426,14 +12546,14 @@ try {
12426
12546
  */
12427
12547
  toggleAttachedEvents(target, enable) {
12428
12548
  var targetKey = target.$$hash || qx.core.ObjectRegistry.toHashCode(target);
12429
- var targetMap = this.__P_174_3[targetKey];
12549
+ var targetMap = this.__P_174_3.get(targetKey);
12430
12550
  if (targetMap) {
12431
- var indexOf, type, capture, entryList;
12432
- for (var entryKey in targetMap) {
12551
+ var indexOf, type, capture;
12552
+ for (const entryKey of targetMap.keys()) {
12433
12553
  indexOf = entryKey.indexOf("|");
12434
12554
  type = entryKey.substring(0, indexOf);
12435
12555
  capture = entryKey.charCodeAt(indexOf + 1) === 99; // checking for character "c".
12436
- entryList = targetMap[entryKey];
12556
+
12437
12557
  if (enable) {
12438
12558
  this.__P_174_12(target, type, capture);
12439
12559
  } else {
@@ -12454,13 +12574,13 @@ try {
12454
12574
  */
12455
12575
  hasListener(target, type, capture) {
12456
12576
  var targetKey = target.$$hash || qx.core.ObjectRegistry.toHashCode(target);
12457
- var targetMap = this.__P_174_3[targetKey];
12577
+ var targetMap = this.__P_174_3.get(targetKey);
12458
12578
  if (!targetMap) {
12459
12579
  return false;
12460
12580
  }
12461
12581
  var entryKey = type + (capture ? "|capture" : "|bubble");
12462
- var entryList = targetMap[entryKey];
12463
- return !!(entryList && entryList.length > 0);
12582
+ var entryMap = targetMap.get(entryKey);
12583
+ return Boolean(entryMap && entryMap.size > 0);
12464
12584
  },
12465
12585
  /**
12466
12586
  * Imports a list of event listeners at once. This only
@@ -12479,26 +12599,32 @@ try {
12479
12599
  */
12480
12600
  importListeners(target, list) {
12481
12601
  var targetKey = target.$$hash || qx.core.ObjectRegistry.toHashCode(target);
12482
- var targetMap = this.__P_174_3[targetKey] = {};
12483
- var clazz = qx.event.Manager;
12602
+ var targetMap = this.__P_174_3.get(targetKey);
12603
+ if (!targetMap) {
12604
+ targetMap = new Map();
12605
+ this.__P_174_3.set(targetKey, targetMap);
12606
+ }
12484
12607
  for (var listKey in list) {
12485
12608
  var item = list[listKey];
12486
12609
  var entryKey = item.type + (item.capture ? "|capture" : "|bubble");
12487
- var entryList = targetMap[entryKey];
12488
- if (!entryList) {
12489
- entryList = targetMap[entryKey] = [];
12490
-
12610
+ var entryMap = targetMap.get(entryKey);
12611
+ if (!entryMap) {
12612
+ entryMap = new Map();
12613
+ targetMap.set(entryKey, entryMap);
12614
+ }
12615
+ if (entryMap.size === 0) {
12491
12616
  // This is the first event listener for this type and target
12492
12617
  // Inform the event handler about the new event
12493
12618
  // they perform the event registration at DOM level if needed
12494
12619
  this.__P_174_12(target, item.type, item.capture);
12495
12620
  }
12496
12621
 
12497
- // Append listener to list
12498
- entryList.push({
12622
+ // Add listener to map
12623
+ var unique = item.unique || qx.event.Manager.getNextUniqueId();
12624
+ entryMap.set(unique, {
12499
12625
  handler: item.listener,
12500
12626
  context: item.self,
12501
- unique: item.unique || clazz.__P_174_9++ + ""
12627
+ unique: unique
12502
12628
  });
12503
12629
  }
12504
12630
  },
@@ -12524,37 +12650,37 @@ try {
12524
12650
  */
12525
12651
  addListener(target, type, listener, self, capture) {
12526
12652
  var targetKey = target.$$hash || qx.core.ObjectRegistry.toHashCode(target);
12527
- var targetMap = this.__P_174_3[targetKey];
12653
+ var targetMap = this.__P_174_3.get(targetKey);
12528
12654
  if (!targetMap) {
12529
- targetMap = this.__P_174_3[targetKey] = {};
12655
+ targetMap = new Map();
12656
+ this.__P_174_3.set(targetKey, targetMap);
12530
12657
  }
12531
12658
  var entryKey = type + (capture ? "|capture" : "|bubble");
12532
- var entryList = targetMap[entryKey];
12533
- if (!entryList) {
12534
- entryList = targetMap[entryKey] = [];
12535
- }
12536
-
12537
- // This is the first event listener for this type and target
12538
- // Inform the event handler about the new event
12539
- // they perform the event registration at DOM level if needed
12540
- if (entryList.length === 0) {
12659
+ var entryMap = targetMap.get(entryKey);
12660
+ if (!entryMap) {
12661
+ entryMap = new Map();
12662
+ targetMap.set(entryKey, entryMap);
12663
+ }
12664
+ if (entryMap.size === 0) {
12665
+ // This is the first event listener for this type and target
12666
+ // Inform the event handler about the new event
12667
+ // they perform the event registration at DOM level if needed
12541
12668
  this.__P_174_12(target, type, capture);
12542
12669
  }
12543
12670
 
12544
- // Append listener to list
12545
- var unique = qx.event.Manager.__P_174_9++ + "";
12546
- var entry = {
12671
+ // Add listener to map
12672
+ var unique = qx.event.Manager.getNextUniqueId();
12673
+ entryMap.set(unique, {
12547
12674
  handler: listener,
12548
12675
  context: self,
12549
12676
  unique: unique
12550
- };
12551
- entryList.push(entry);
12677
+ });
12552
12678
  return entryKey + "|" + unique;
12553
12679
  },
12554
12680
  /**
12555
12681
  * Get the event handler class matching the given event target and type
12556
12682
  *
12557
- * @param target {var} The event target
12683
+ * @param target {Object} The event target
12558
12684
  * @param type {String} The event type
12559
12685
  * @return {qx.event.IEventHandler|null} The best matching event handler or
12560
12686
  * <code>null</code>.
@@ -12659,28 +12785,25 @@ try {
12659
12785
  */
12660
12786
  removeListener(target, type, listener, self, capture) {
12661
12787
  var targetKey = target.$$hash || qx.core.ObjectRegistry.toHashCode(target);
12662
- var targetMap = this.__P_174_3[targetKey];
12788
+ var targetMap = this.__P_174_3.get(targetKey);
12663
12789
  if (!targetMap) {
12664
12790
  return false;
12665
12791
  }
12666
12792
  var entryKey = type + (capture ? "|capture" : "|bubble");
12667
- var entryList = targetMap[entryKey];
12668
- if (!entryList) {
12793
+ var entryMap = targetMap.get(entryKey);
12794
+ if (!entryMap) {
12669
12795
  return false;
12670
12796
  }
12671
- var entry;
12672
- for (var i = 0, l = entryList.length; i < l; i++) {
12673
- entry = entryList[i];
12674
- if (entry.handler === listener && entry.context === self) {
12675
- qx.lang.Array.removeAt(entryList, i);
12676
- this.__P_174_14(entry.unique);
12677
- if (entryList.length == 0) {
12678
- this.__P_174_13(target, type, capture);
12679
- }
12680
- return true;
12797
+ var deleted = false;
12798
+ for (const [entryKey, entry] of entryMap.entries().filter(([eK, e]) => e.handler === listener && e.context === self)) {
12799
+ deleted = true;
12800
+ entryMap.delete(entryKey);
12801
+ this.__P_174_14(entryKey);
12802
+ if (entryMap.size === 0) {
12803
+ this.__P_174_13(target, type, capture);
12681
12804
  }
12682
12805
  }
12683
- return false;
12806
+ return deleted;
12684
12807
  },
12685
12808
  /**
12686
12809
  * Removes an event listener from an event target by an ID returned by
@@ -12693,29 +12816,26 @@ try {
12693
12816
  removeListenerById(target, id) {
12694
12817
  var split = id.split("|");
12695
12818
  var type = split[0];
12696
- var capture = split[1].charCodeAt(0) == 99; // detect leading "c"
12819
+ var capture = split[1].charCodeAt(0) === 99; // detect leading "c"
12697
12820
  var unique = split[2];
12698
12821
  var targetKey = target.$$hash || qx.core.ObjectRegistry.toHashCode(target);
12699
- var targetMap = this.__P_174_3[targetKey];
12822
+ var targetMap = this.__P_174_3.get(targetKey);
12700
12823
  if (!targetMap) {
12701
12824
  return false;
12702
12825
  }
12703
12826
  var entryKey = type + (capture ? "|capture" : "|bubble");
12704
- var entryList = targetMap[entryKey];
12705
- if (!entryList) {
12827
+ var entryMap = targetMap.get(entryKey);
12828
+ if (!entryMap) {
12706
12829
  return false;
12707
12830
  }
12708
- var entry;
12709
- for (var i = 0, l = entryList.length; i < l; i++) {
12710
- entry = entryList[i];
12711
- if (entry.unique === unique) {
12712
- qx.lang.Array.removeAt(entryList, i);
12713
- this.__P_174_14(entry.unique);
12714
- if (entryList.length == 0) {
12715
- this.__P_174_13(target, type, capture);
12716
- }
12717
- return true;
12831
+ var entry = entryMap.get(unique);
12832
+ if (entry) {
12833
+ entryMap.delete(unique);
12834
+ this.__P_174_14(entry.unique);
12835
+ if (entryMap.size === 0) {
12836
+ this.__P_174_13(target, type, capture);
12718
12837
  }
12838
+ return true;
12719
12839
  }
12720
12840
  return false;
12721
12841
  },
@@ -12727,26 +12847,27 @@ try {
12727
12847
  */
12728
12848
  removeAllListeners(target) {
12729
12849
  var targetKey = target.$$hash || qx.core.ObjectRegistry.toHashCode(target);
12730
- var targetMap = this.__P_174_3[targetKey];
12850
+ var targetMap = this.__P_174_3.get(targetKey);
12731
12851
  if (!targetMap) {
12732
12852
  return false;
12733
12853
  }
12734
12854
 
12735
12855
  // Deregister from event handlers
12736
12856
  var split, type, capture;
12737
- for (var entryKey in targetMap) {
12738
- if (targetMap[entryKey].length > 0) {
12857
+ for (const [entryKey, entryMap] of targetMap) {
12858
+ if (entryMap && entryMap.size > 0) {
12739
12859
  // This is quite expensive, see bug #1283
12740
12860
  split = entryKey.split("|");
12741
- targetMap[entryKey].forEach(function (entry) {
12742
- this.__P_174_14(entry.unique);
12743
- }, this);
12861
+ for (const uniqueKey of entryMap.keys()) {
12862
+ this.__P_174_14(uniqueKey);
12863
+ }
12864
+ entryMap.clear();
12744
12865
  type = split[0];
12745
12866
  capture = split[1] === "capture";
12746
12867
  this.__P_174_13(target, type, capture);
12747
12868
  }
12748
12869
  }
12749
- delete this.__P_174_3[targetKey];
12870
+ this.__P_174_3.delete(targetKey);
12750
12871
  return true;
12751
12872
  },
12752
12873
  /**
@@ -12759,7 +12880,7 @@ try {
12759
12880
  * @internal
12760
12881
  */
12761
12882
  deleteAllListeners(targetKey) {
12762
- delete this.__P_174_3[targetKey];
12883
+ this.__P_174_3.delete(targetKey);
12763
12884
  },
12764
12885
  /**
12765
12886
  * This method is called each time the an event listener for one of the
@@ -12875,7 +12996,7 @@ try {
12875
12996
  /**
12876
12997
  * Add event to blacklist.
12877
12998
  *
12878
- * @param uid {number} unique event id
12999
+ * @param uid {String} unique event id
12879
13000
  */
12880
13001
  __P_174_14(uid) {
12881
13002
  if (this.__P_174_8 === null) {
@@ -12887,7 +13008,7 @@ try {
12887
13008
  /**
12888
13009
  * Check if the event with the given id has been removed and is therefore blacklisted for event handling
12889
13010
  *
12890
- * @param uid {number} unique event id
13011
+ * @param uid {String} unique event id
12891
13012
  * @return {boolean}
12892
13013
  */
12893
13014
  isBlacklisted(uid) {
@@ -13961,7 +14082,7 @@ try {
13961
14082
  if (!(options.self || options.args || options.delay != null || options.periodical != null || options.attempt || options.always)) {
13962
14083
  return func;
13963
14084
  }
13964
- return function (event) {
14085
+ let result = function (event) {
13965
14086
  // Convert (and copy) incoming arguments
13966
14087
  var args = qx.lang.Array.fromArguments(arguments);
13967
14088
 
@@ -13992,6 +14113,7 @@ try {
13992
14113
  return func.apply(options.self || this, args);
13993
14114
  }
13994
14115
  };
14116
+ return result;
13995
14117
  },
13996
14118
  /**
13997
14119
  * Returns a function whose "this" is altered.
@@ -32836,7 +32958,7 @@ Version: v${await qx.tool.config.Utils.getQxVersion()}
32836
32958
  * @return {String}
32837
32959
  */
32838
32960
  getCompilerVersion() {
32839
- return "7.7.1";
32961
+ return "7.8.0";
32840
32962
  },
32841
32963
  /**
32842
32964
  * Returns the qooxdoo version used in the application in the current or given
@@ -40915,6 +41037,19 @@ Version: v${await qx.tool.config.Utils.getQxVersion()}
40915
41037
  }
40916
41038
  };
40917
41039
  qx.Bootstrap.executePendingDefers($$dbClassInfo);
41040
+ /* ************************************************************************
41041
+
41042
+ qooxdoo - the new era of web development
41043
+
41044
+ http://qooxdoo.org
41045
+
41046
+ Copyright:
41047
+ 2020 Henner Kollmann
41048
+
41049
+ License:
41050
+ MIT: https://opensource.org/licenses/MIT
41051
+ See the LICENSE file in the project"s top-level directory for details.
41052
+ ************************************************************************ */
40918
41053
  /**
40919
41054
  * This is used to add an test case for qx test
40920
41055
  */
@@ -40960,6 +41095,14 @@ Version: v${await qx.tool.config.Utils.getQxVersion()}
40960
41095
  nullable: false,
40961
41096
  init: true
40962
41097
  },
41098
+ /**
41099
+ * If this special test fails exit process
41100
+ */
41101
+ failFast: {
41102
+ check: "Boolean",
41103
+ nullable: false,
41104
+ init: false
41105
+ },
40963
41106
  /**
40964
41107
  * The test function called by qx test
40965
41108
  *
@@ -41772,9 +41915,6 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
41772
41915
  await scanImpl(dir);
41773
41916
  }
41774
41917
  for (let filename of classFiles) {
41775
- if (this.argv.verbose) {
41776
- qx.tool.compiler.Console.info(`Processing ${filename} ...`);
41777
- }
41778
41918
  await metaDb.addFile(filename, !!this.argv.clean);
41779
41919
  }
41780
41920
  await metaDb.reparseAll();
@@ -42185,6 +42325,14 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
42185
42325
  if (data.environment) {
42186
42326
  maker.setEnvironment(data.environment);
42187
42327
  }
42328
+
42329
+ /*
42330
+ Libraries have to be added first because there is qx library
42331
+ which includes a framework version
42332
+ */
42333
+ for (let library of librariesArray) {
42334
+ maker.getAnalyser().addLibrary(library);
42335
+ }
42188
42336
  let targetEnvironment = {
42189
42337
  "qx.version": maker.getAnalyser().getQooxdooVersion(),
42190
42338
  "qx.compiler.targetType": target.getType(),
@@ -42221,6 +42369,10 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
42221
42369
  babelConfig.options = babelConfig.options || {};
42222
42370
  qx.lang.Object.mergeWith(babelConfig.options, targetConfig.babelOptions || {});
42223
42371
  maker.getAnalyser().setBabelConfig(babelConfig);
42372
+ let browserifyConfig = qx.lang.Object.clone(data.browserify || {}, true);
42373
+ browserifyConfig.options = browserifyConfig.options || {};
42374
+ qx.lang.Object.mergeWith(browserifyConfig.options, targetConfig.browserifyOptions || {});
42375
+ maker.getAnalyser().setBrowserifyConfig(browserifyConfig);
42224
42376
  var addCreatedAt = targetConfig["addCreatedAt"] || t.argv["addCreatedAt"];
42225
42377
  if (addCreatedAt) {
42226
42378
  maker.getAnalyser().setAddCreatedAt(true);
@@ -42229,9 +42381,6 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
42229
42381
  if (verboseCreatedAt) {
42230
42382
  maker.getAnalyser().setVerboseCreatedAt(true);
42231
42383
  }
42232
- for (let library of librariesArray) {
42233
- maker.getAnalyser().addLibrary(library);
42234
- }
42235
42384
  let allApplicationTypes = {};
42236
42385
  appConfigs.forEach(appConfig => {
42237
42386
  var app = appConfig.app = new qx.tool.compiler.app.Application(appConfig["class"]);
@@ -42894,8 +43043,8 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
42894
43043
  var appRootDir = this.getApplicationRoot(application);
42895
43044
  let mapTo = this.getPathMapping(path.join(appRootDir, this.getOutputDir(), "transpiled/"));
42896
43045
  appMeta.setSourceUri(mapTo ? mapTo : targetUri + "transpiled/");
42897
- mapTo = this.getPathMapping(path.join(appRootDir, this.getOutputDir(), "resource/"));
42898
- appMeta.setResourceUri(mapTo ? mapTo : targetUri + "resource/");
43046
+ mapTo = this.getPathMapping(path.join(appRootDir, this.getOutputDir(), "resource"));
43047
+ appMeta.setResourceUri(mapTo ? mapTo : targetUri + "resource");
42899
43048
  const requiredLibs = application.getRequiredLibraries();
42900
43049
  await qx.tool.utils.Utils.makeDirs(appRootDir);
42901
43050
  appMeta.setEnvironment({
@@ -48155,9 +48304,9 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
48155
48304
  },
48156
48305
  CallExpression(path) {
48157
48306
  const name = collapseMemberExpression(path.node.callee);
48158
- if ((name === "qx.core.Environment.select" || name === "qx.core.Environment.get") && types.isLiteral(path.node.arguments[0])) {
48307
+ const env = t.__P_21_0.getEnvironment();
48308
+ if (env["qx.environment.allowRuntimeMutations"] !== true && (name === "qx.core.Environment.select" || name === "qx.core.Environment.get") && types.isLiteral(path.node.arguments[0])) {
48159
48309
  const arg = path.node.arguments[0];
48160
- const env = t.__P_21_0.getEnvironment();
48161
48310
  const envValue = env[arg.value];
48162
48311
  if (envValue !== undefined) {
48163
48312
  if (name === "qx.core.Environment.get") {
@@ -48485,8 +48634,9 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
48485
48634
  t.__P_21_29 = true;
48486
48635
  t.__P_21_24 = true;
48487
48636
  }
48488
- t.__P_21_26.functionName = FUNCTION_NAMES[keyName] || keyName;
48489
- if (FUNCTION_NAMES[keyName] !== undefined) {
48637
+ var isSpecialFunctionName = Object.keys(FUNCTION_NAMES).includes(keyName);
48638
+ t.__P_21_26.functionName = isSpecialFunctionName ? FUNCTION_NAMES[keyName] : keyName;
48639
+ if (isSpecialFunctionName) {
48490
48640
  makeMeta(keyName, null, functionNode);
48491
48641
  }
48492
48642
  enterFunction(path, functionNode);
@@ -48526,7 +48676,8 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
48526
48676
  }
48527
48677
  var keyName = getKeyName(prop.key);
48528
48678
  checkValidTopLevel(path);
48529
- if (FUNCTION_NAMES[keyName] !== undefined) {
48679
+ var isSpecialFunctionName = Object.keys(FUNCTION_NAMES).includes(keyName);
48680
+ if (isSpecialFunctionName) {
48530
48681
  let val = path.node.value;
48531
48682
  val.leadingComments = (path.node.leadingComments || []).concat(val.leadingComments || []);
48532
48683
  handleTopLevelMethods(path, keyName, val);
@@ -50818,6 +50969,7 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
50818
50969
  "require": true
50819
50970
  },
50820
50971
  "qx.tool.utils.files.Utils": {},
50972
+ "qx.lang.Object": {},
50821
50973
  "qx.tool.compiler.Console": {}
50822
50974
  }
50823
50975
  };
@@ -50961,12 +51113,15 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
50961
51113
  // Make them equivalent.
50962
51114
  builtins.process = builtins._process;
50963
51115
  return new Promise((resolve, reject) => {
50964
- let b = browserify([], {
51116
+ var _this$getAppMeta$getA;
51117
+ const options = {
50965
51118
  builtins: builtins,
50966
51119
  ignoreMissing: true,
50967
51120
  insertGlobals: true,
50968
51121
  detectGlobals: true
50969
- });
51122
+ };
51123
+ qx.lang.Object.mergeWith(options, ((_this$getAppMeta$getA = this.getAppMeta().getAnalyser().getBrowserifyConfig()) === null || _this$getAppMeta$getA === void 0 ? void 0 : _this$getAppMeta$getA.options) || {}, false);
51124
+ let b = browserify([], options);
50970
51125
  b._mdeps.on("missing", (id, parent) => {
50971
51126
  let message = [];
50972
51127
  message.push(`ERROR: could not locate require()d module: "${id}"`);
@@ -51795,11 +51950,6 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
51795
51950
  }
51796
51951
  const babelCore = require("@babel/core");
51797
51952
  let src = await fs.promises.readFile(classFilename, "utf8");
51798
- let babelConfig = {
51799
- options: {
51800
- modules: false
51801
- }
51802
- };
51803
51953
  let plugins = [require("@babel/plugin-syntax-jsx"), this.__P_25_1()];
51804
51954
  var config = {
51805
51955
  ast: true,
@@ -53145,6 +53295,12 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
53145
53295
  nullable: true,
53146
53296
  check: "Object"
53147
53297
  },
53298
+ /** configuration of browserify */
53299
+ browserifyConfig: {
53300
+ init: null,
53301
+ nullable: true,
53302
+ check: "Object"
53303
+ },
53148
53304
  /** list of global ignores */
53149
53305
  ignores: {
53150
53306
  init: [],
@@ -59257,7 +59413,7 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
59257
59413
  let exitCode = evt.getData();
59258
59414
  // overwrite error code only in case of errors
59259
59415
  if (exitCode !== 0 && argv.failFast) {
59260
- process.exit(exitCode);
59416
+ process.exit(Math.min(255, exitCode));
59261
59417
  }
59262
59418
  });
59263
59419
  },
@@ -59304,6 +59460,9 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
59304
59460
  }
59305
59461
  // overwrite error code only in case of errors
59306
59462
  if (exitCode !== 0) {
59463
+ if (test.getFailFast()) {
59464
+ this.argv.failFast = true;
59465
+ }
59307
59466
  this.setExitCode(exitCode);
59308
59467
  }
59309
59468
  });
@@ -59331,6 +59490,9 @@ Framework: v${await this.getQxVersion()} in ${await this.getQxPath()}`);
59331
59490
  });
59332
59491
  this.addListener("afterStart", async () => {
59333
59492
  qx.tool.compiler.Console.info(`Running unit tests`);
59493
+ if (this.argv.verbose) {
59494
+ console.log(this.argv);
59495
+ }
59334
59496
  await this.fireDataEventAsync("runTests", this);
59335
59497
  if (this.getCompilerApi() && typeof this.getCompilerApi().beforeTests == "function") {
59336
59498
  await this.getCompilerApi().beforeTests(this);
@@ -66933,6 +67095,12 @@ qx.$$packageData['0'] = {
66933
67095
  "gif",
66934
67096
  "qx"
66935
67097
  ],
67098
+ "qx/decoration/Simple/arrows/down.gif": [
67099
+ 7,
67100
+ 4,
67101
+ "gif",
67102
+ "qx"
67103
+ ],
66936
67104
  "qx/decoration/Simple/arrows/forward.gif": [
66937
67105
  8,
66938
67106
  7,
@@ -66963,15 +67131,15 @@ qx.$$packageData['0'] = {
66963
67131
  "gif",
66964
67132
  "qx"
66965
67133
  ],
66966
- "qx/decoration/Simple/arrows/down.gif": [
66967
- 7,
67134
+ "qx/decoration/Simple/arrows/right.gif": [
66968
67135
  4,
67136
+ 7,
66969
67137
  "gif",
66970
67138
  "qx"
66971
67139
  ],
66972
- "qx/decoration/Simple/arrows/right.gif": [
66973
- 4,
67140
+ "qx/decoration/Simple/arrows/up-invert.gif": [
66974
67141
  7,
67142
+ 4,
66975
67143
  "gif",
66976
67144
  "qx"
66977
67145
  ],
@@ -66981,12 +67149,6 @@ qx.$$packageData['0'] = {
66981
67149
  "gif",
66982
67150
  "qx"
66983
67151
  ],
66984
- "qx/decoration/Simple/arrows/up-invert.gif": [
66985
- 7,
66986
- 4,
66987
- "gif",
66988
- "qx"
66989
- ],
66990
67152
  "qx/decoration/Simple/arrows/up.gif": [
66991
67153
  7,
66992
67154
  4,
@@ -67017,30 +67179,6 @@ qx.$$packageData['0'] = {
67017
67179
  "png",
67018
67180
  "qx"
67019
67181
  ],
67020
- "qx/decoration/Simple/cursors/alias.gif": [
67021
- 19,
67022
- 15,
67023
- "gif",
67024
- "qx"
67025
- ],
67026
- "qx/decoration/Simple/cursors/copy.gif": [
67027
- 19,
67028
- 15,
67029
- "gif",
67030
- "qx"
67031
- ],
67032
- "qx/decoration/Simple/cursors/move.gif": [
67033
- 13,
67034
- 9,
67035
- "gif",
67036
- "qx"
67037
- ],
67038
- "qx/decoration/Simple/cursors/nodrop.gif": [
67039
- 20,
67040
- 20,
67041
- "gif",
67042
- "qx"
67043
- ],
67044
67182
  "qx/decoration/Simple/colorselector/brightness-field.png": [
67045
67183
  19,
67046
67184
  256,
@@ -67053,18 +67191,18 @@ qx.$$packageData['0'] = {
67053
67191
  "gif",
67054
67192
  "qx"
67055
67193
  ],
67056
- "qx/decoration/Simple/colorselector/huesaturation-handle.gif": [
67057
- 11,
67058
- 11,
67059
- "gif",
67060
- "qx"
67061
- ],
67062
67194
  "qx/decoration/Simple/colorselector/huesaturation-field.jpg": [
67063
67195
  256,
67064
67196
  256,
67065
67197
  "jpg",
67066
67198
  "qx"
67067
67199
  ],
67200
+ "qx/decoration/Simple/colorselector/huesaturation-handle.gif": [
67201
+ 11,
67202
+ 11,
67203
+ "gif",
67204
+ "qx"
67205
+ ],
67068
67206
  "qx/decoration/Simple/menu/checkbox-invert.gif": [
67069
67207
  16,
67070
67208
  7,
@@ -67101,79 +67239,85 @@ qx.$$packageData['0'] = {
67101
67239
  "png",
67102
67240
  "qx"
67103
67241
  ],
67104
- "qx/decoration/Simple/table/ascending-invert.png": [
67105
- 10,
67242
+ "qx/decoration/Simple/tabview/close.gif": [
67106
67243
  10,
67107
- "png",
67244
+ 9,
67245
+ "gif",
67108
67246
  "qx"
67109
67247
  ],
67110
- "qx/decoration/Simple/table/ascending.png": [
67111
- 10,
67112
- 10,
67113
- "png",
67248
+ "qx/decoration/Simple/tree/minus.gif": [
67249
+ 19,
67250
+ 16,
67251
+ "gif",
67114
67252
  "qx"
67115
67253
  ],
67116
- "qx/decoration/Simple/table/boolean-true.png": [
67117
- 11,
67118
- 11,
67119
- "png",
67254
+ "qx/decoration/Simple/tree/plus.gif": [
67255
+ 19,
67256
+ 16,
67257
+ "gif",
67120
67258
  "qx"
67121
67259
  ],
67122
- "qx/decoration/Simple/table/boolean-false.png": [
67123
- 11,
67124
- 11,
67125
- "png",
67260
+ "qx/decoration/Simple/window/close-white.gif": [
67261
+ 10,
67262
+ 9,
67263
+ "gif",
67126
67264
  "qx"
67127
67265
  ],
67128
- "qx/decoration/Simple/table/descending-invert.png": [
67129
- 10,
67266
+ "qx/decoration/Simple/window/close.gif": [
67130
67267
  10,
67131
- "png",
67268
+ 9,
67269
+ "gif",
67132
67270
  "qx"
67133
67271
  ],
67134
- "qx/decoration/Simple/table/descending.png": [
67135
- 10,
67136
- 10,
67137
- "png",
67272
+ "qx/decoration/Simple/window/maximize-white.gif": [
67273
+ 9,
67274
+ 9,
67275
+ "gif",
67138
67276
  "qx"
67139
67277
  ],
67140
- "qx/decoration/Simple/table/select-column-order.png": [
67141
- 10,
67278
+ "qx/decoration/Simple/window/maximize.gif": [
67142
67279
  9,
67143
- "png",
67280
+ 9,
67281
+ "gif",
67144
67282
  "qx"
67145
67283
  ],
67146
- "qx/decoration/Simple/tabview/close.gif": [
67147
- 10,
67284
+ "qx/decoration/Simple/window/minimize-white.gif": [
67285
+ 9,
67148
67286
  9,
67149
67287
  "gif",
67150
67288
  "qx"
67151
67289
  ],
67152
- "qx/decoration/Simple/tree/minus.gif": [
67153
- 19,
67154
- 16,
67290
+ "qx/decoration/Simple/window/minimize.gif": [
67291
+ 9,
67292
+ 9,
67155
67293
  "gif",
67156
67294
  "qx"
67157
67295
  ],
67158
- "qx/decoration/Simple/tree/plus.gif": [
67159
- 19,
67160
- 16,
67296
+ "qx/decoration/Simple/window/restore-white.gif": [
67297
+ 8,
67298
+ 9,
67161
67299
  "gif",
67162
67300
  "qx"
67163
67301
  ],
67164
- "qx/decoration/Simple/treevirtual/cross_minus.gif": [
67302
+ "qx/decoration/Simple/window/restore.gif": [
67303
+ 8,
67304
+ 9,
67305
+ "gif",
67306
+ "qx"
67307
+ ],
67308
+ "qx/decoration/Simple/treevirtual/cross.gif": [
67165
67309
  19,
67166
67310
  16,
67167
67311
  "gif",
67168
67312
  "qx"
67169
67313
  ],
67170
- "qx/decoration/Simple/treevirtual/cross_plus.gif": [
67314
+ "qx/decoration/Simple/treevirtual/cross_minus.gif": [
67171
67315
  19,
67172
67316
  16,
67173
67317
  "gif",
67174
67318
  "qx"
67175
67319
  ],
67176
- "qx/decoration/Simple/treevirtual/end.gif": [
67320
+ "qx/decoration/Simple/treevirtual/cross_plus.gif": [
67177
67321
  19,
67178
67322
  16,
67179
67323
  "gif",
@@ -67185,7 +67329,7 @@ qx.$$packageData['0'] = {
67185
67329
  "gif",
67186
67330
  "qx"
67187
67331
  ],
67188
- "qx/decoration/Simple/treevirtual/cross.gif": [
67332
+ "qx/decoration/Simple/treevirtual/end.gif": [
67189
67333
  19,
67190
67334
  16,
67191
67335
  "gif",
@@ -67209,76 +67353,94 @@ qx.$$packageData['0'] = {
67209
67353
  "gif",
67210
67354
  "qx"
67211
67355
  ],
67212
- "qx/decoration/Simple/treevirtual/start.gif": [
67356
+ "qx/decoration/Simple/treevirtual/only_plus.gif": [
67213
67357
  19,
67214
67358
  16,
67215
67359
  "gif",
67216
67360
  "qx"
67217
67361
  ],
67218
- "qx/decoration/Simple/treevirtual/only_plus.gif": [
67362
+ "qx/decoration/Simple/treevirtual/start.gif": [
67219
67363
  19,
67220
67364
  16,
67221
67365
  "gif",
67222
67366
  "qx"
67223
67367
  ],
67224
- "qx/decoration/Simple/treevirtual/start_minus.gif": [
67368
+ "qx/decoration/Simple/treevirtual/start_plus.gif": [
67225
67369
  19,
67226
67370
  16,
67227
67371
  "gif",
67228
67372
  "qx"
67229
67373
  ],
67230
- "qx/decoration/Simple/treevirtual/start_plus.gif": [
67374
+ "qx/decoration/Simple/treevirtual/start_minus.gif": [
67231
67375
  19,
67232
67376
  16,
67233
67377
  "gif",
67234
67378
  "qx"
67235
67379
  ],
67236
- "qx/decoration/Simple/window/close-white.gif": [
67237
- 10,
67238
- 9,
67380
+ "qx/decoration/Simple/cursors/alias.gif": [
67381
+ 19,
67382
+ 15,
67239
67383
  "gif",
67240
67384
  "qx"
67241
67385
  ],
67242
- "qx/decoration/Simple/window/close.gif": [
67243
- 10,
67244
- 9,
67386
+ "qx/decoration/Simple/cursors/copy.gif": [
67387
+ 19,
67388
+ 15,
67245
67389
  "gif",
67246
67390
  "qx"
67247
67391
  ],
67248
- "qx/decoration/Simple/window/maximize-white.gif": [
67249
- 9,
67392
+ "qx/decoration/Simple/cursors/move.gif": [
67393
+ 13,
67250
67394
  9,
67251
67395
  "gif",
67252
67396
  "qx"
67253
67397
  ],
67254
- "qx/decoration/Simple/window/maximize.gif": [
67255
- 9,
67256
- 9,
67398
+ "qx/decoration/Simple/cursors/nodrop.gif": [
67399
+ 20,
67400
+ 20,
67257
67401
  "gif",
67258
67402
  "qx"
67259
67403
  ],
67260
- "qx/decoration/Simple/window/minimize-white.gif": [
67261
- 9,
67262
- 9,
67263
- "gif",
67404
+ "qx/decoration/Simple/table/ascending-invert.png": [
67405
+ 10,
67406
+ 10,
67407
+ "png",
67264
67408
  "qx"
67265
67409
  ],
67266
- "qx/decoration/Simple/window/minimize.gif": [
67267
- 9,
67268
- 9,
67269
- "gif",
67410
+ "qx/decoration/Simple/table/ascending.png": [
67411
+ 10,
67412
+ 10,
67413
+ "png",
67270
67414
  "qx"
67271
67415
  ],
67272
- "qx/decoration/Simple/window/restore-white.gif": [
67273
- 8,
67274
- 9,
67275
- "gif",
67416
+ "qx/decoration/Simple/table/boolean-false.png": [
67417
+ 11,
67418
+ 11,
67419
+ "png",
67276
67420
  "qx"
67277
67421
  ],
67278
- "qx/decoration/Simple/window/restore.gif": [
67279
- 8,
67422
+ "qx/decoration/Simple/table/boolean-true.png": [
67423
+ 11,
67424
+ 11,
67425
+ "png",
67426
+ "qx"
67427
+ ],
67428
+ "qx/decoration/Simple/table/descending-invert.png": [
67429
+ 10,
67430
+ 10,
67431
+ "png",
67432
+ "qx"
67433
+ ],
67434
+ "qx/decoration/Simple/table/descending.png": [
67435
+ 10,
67436
+ 10,
67437
+ "png",
67438
+ "qx"
67439
+ ],
67440
+ "qx/decoration/Simple/table/select-column-order.png": [
67441
+ 10,
67280
67442
  9,
67281
- "gif",
67443
+ "png",
67282
67444
  "qx"
67283
67445
  ],
67284
67446
  "qx/static/blank.png": [
@@ -67359,6 +67521,12 @@ qx.$$packageData['0'] = {
67359
67521
  "dot",
67360
67522
  "qx"
67361
67523
  ],
67524
+ "qx/tool/website/sass/qooxdoo.scss": [
67525
+ null,
67526
+ null,
67527
+ "scss",
67528
+ "qx"
67529
+ ],
67362
67530
  "qx/tool/website/build/404.html": [
67363
67531
  null,
67364
67532
  null,
@@ -67383,10 +67551,22 @@ qx.$$packageData['0'] = {
67383
67551
  "css",
67384
67552
  "qx"
67385
67553
  ],
67386
- "qx/tool/website/sass/qooxdoo.scss": [
67554
+ "qx/tool/website/src/404.html": [
67387
67555
  null,
67388
67556
  null,
67389
- "scss",
67557
+ "html",
67558
+ "qx"
67559
+ ],
67560
+ "qx/tool/website/src/about.md": [
67561
+ null,
67562
+ null,
67563
+ "md",
67564
+ "qx"
67565
+ ],
67566
+ "qx/tool/website/src/index.html": [
67567
+ null,
67568
+ null,
67569
+ "html",
67390
67570
  "qx"
67391
67571
  ],
67392
67572
  "qx/tool/website/partials/footer.html": [
@@ -67401,13 +67581,13 @@ qx.$$packageData['0'] = {
67401
67581
  "html",
67402
67582
  "qx"
67403
67583
  ],
67404
- "qx/tool/website/partials/icon-github.html": [
67584
+ "qx/tool/website/partials/header.html": [
67405
67585
  null,
67406
67586
  null,
67407
67587
  "html",
67408
67588
  "qx"
67409
67589
  ],
67410
- "qx/tool/website/partials/header.html": [
67590
+ "qx/tool/website/partials/icon-github.html": [
67411
67591
  null,
67412
67592
  null,
67413
67593
  "html",
@@ -67431,24 +67611,6 @@ qx.$$packageData['0'] = {
67431
67611
  "svg",
67432
67612
  "qx"
67433
67613
  ],
67434
- "qx/tool/website/src/404.html": [
67435
- null,
67436
- null,
67437
- "html",
67438
- "qx"
67439
- ],
67440
- "qx/tool/website/src/about.md": [
67441
- null,
67442
- null,
67443
- "md",
67444
- "qx"
67445
- ],
67446
- "qx/tool/website/src/index.html": [
67447
- null,
67448
- null,
67449
- "html",
67450
- "qx"
67451
- ],
67452
67614
  "qx/tool/cli/templates/class/default.tmpl.js": [
67453
67615
  null,
67454
67616
  null,
@@ -67467,13 +67629,13 @@ qx.$$packageData['0'] = {
67467
67629
  "js",
67468
67630
  "qx"
67469
67631
  ],
67470
- "qx/tool/cli/templates/class/singleton.tmpl.js": [
67632
+ "qx/tool/cli/templates/class/mixin.tmpl.js": [
67471
67633
  null,
67472
67634
  null,
67473
67635
  "js",
67474
67636
  "qx"
67475
67637
  ],
67476
- "qx/tool/cli/templates/class/mixin.tmpl.js": [
67638
+ "qx/tool/cli/templates/class/singleton.tmpl.js": [
67477
67639
  null,
67478
67640
  null,
67479
67641
  "js",
@@ -67545,30 +67707,24 @@ qx.$$packageData['0'] = {
67545
67707
  "js",
67546
67708
  "qx"
67547
67709
  ],
67548
- "qx/tool/website/build/assets/jquery.js": [
67549
- null,
67550
- null,
67551
- "js",
67552
- "qx"
67553
- ],
67554
67710
  "qx/tool/website/build/assets/logo.svg": [
67555
67711
  512,
67556
67712
  145,
67557
67713
  "svg",
67558
67714
  "qx"
67559
67715
  ],
67716
+ "qx/tool/website/build/assets/jquery.js": [
67717
+ null,
67718
+ null,
67719
+ "js",
67720
+ "qx"
67721
+ ],
67560
67722
  "qx/tool/website/build/assets/qx-api.png": [
67561
67723
  1144,
67562
67724
  640,
67563
67725
  "png",
67564
67726
  "qx"
67565
67727
  ],
67566
- "qx/tool/website/build/assets/qx-ide.png": [
67567
- 3183,
67568
- 1752,
67569
- "png",
67570
- "qx"
67571
- ],
67572
67728
  "qx/tool/website/build/assets/qx-oo.png": [
67573
67729
  870,
67574
67730
  502,
@@ -67581,6 +67737,12 @@ qx.$$packageData['0'] = {
67581
67737
  "svg",
67582
67738
  "qx"
67583
67739
  ],
67740
+ "qx/tool/website/build/assets/qx-ide.png": [
67741
+ 3183,
67742
+ 1752,
67743
+ "png",
67744
+ "qx"
67745
+ ],
67584
67746
  "qx/tool/website/build/diagnostics/dependson.html": [
67585
67747
  null,
67586
67748
  null,
@@ -67611,30 +67773,6 @@ qx.$$packageData['0'] = {
67611
67773
  "js",
67612
67774
  "qx"
67613
67775
  ],
67614
- "qx/tool/website/src/diagnostics/dependson.html": [
67615
- null,
67616
- null,
67617
- "html",
67618
- "qx"
67619
- ],
67620
- "qx/tool/website/src/diagnostics/dependson.js": [
67621
- null,
67622
- null,
67623
- "js",
67624
- "qx"
67625
- ],
67626
- "qx/tool/website/src/diagnostics/requiredby.html": [
67627
- null,
67628
- null,
67629
- "html",
67630
- "qx"
67631
- ],
67632
- "qx/tool/website/src/diagnostics/requiredby.js": [
67633
- null,
67634
- null,
67635
- "js",
67636
- "qx"
67637
- ],
67638
67776
  "qx/tool/website/src/assets/abel.css": [
67639
67777
  null,
67640
67778
  null,
@@ -67653,22 +67791,16 @@ qx.$$packageData['0'] = {
67653
67791
  "css",
67654
67792
  "qx"
67655
67793
  ],
67656
- "qx/tool/website/src/assets/bootstrap.min.css.map": [
67657
- null,
67658
- null,
67659
- "map",
67660
- "qx"
67661
- ],
67662
67794
  "qx/tool/website/src/assets/bootstrap.min.css": [
67663
67795
  null,
67664
67796
  null,
67665
67797
  "css",
67666
67798
  "qx"
67667
67799
  ],
67668
- "qx/tool/website/src/assets/buttons.js": [
67800
+ "qx/tool/website/src/assets/bootstrap.min.css.map": [
67669
67801
  null,
67670
67802
  null,
67671
- "js",
67803
+ "map",
67672
67804
  "qx"
67673
67805
  ],
67674
67806
  "qx/tool/website/src/assets/favicon.png": [
@@ -67677,6 +67809,12 @@ qx.$$packageData['0'] = {
67677
67809
  "png",
67678
67810
  "qx"
67679
67811
  ],
67812
+ "qx/tool/website/src/assets/buttons.js": [
67813
+ null,
67814
+ null,
67815
+ "js",
67816
+ "qx"
67817
+ ],
67680
67818
  "qx/tool/website/src/assets/fontawesome-all.js": [
67681
67819
  null,
67682
67820
  null,
@@ -67719,31 +67857,37 @@ qx.$$packageData['0'] = {
67719
67857
  "svg",
67720
67858
  "qx"
67721
67859
  ],
67722
- "qx/tool/website/src/scripts/serve.js": [
67860
+ "qx/tool/website/src/diagnostics/dependson.html": [
67861
+ null,
67862
+ null,
67863
+ "html",
67864
+ "qx"
67865
+ ],
67866
+ "qx/tool/website/src/diagnostics/dependson.js": [
67723
67867
  null,
67724
67868
  null,
67725
67869
  "js",
67726
67870
  "qx"
67727
67871
  ],
67728
- "qx/tool/cli/templates/skeleton/desktop/.gitignore.tmpl": [
67872
+ "qx/tool/website/src/diagnostics/requiredby.html": [
67729
67873
  null,
67730
67874
  null,
67731
- "tmpl",
67875
+ "html",
67732
67876
  "qx"
67733
67877
  ],
67734
- "qx/tool/cli/templates/skeleton/desktop/compile.tmpl.json": [
67878
+ "qx/tool/website/src/diagnostics/requiredby.js": [
67735
67879
  null,
67736
67880
  null,
67737
- "json",
67881
+ "js",
67738
67882
  "qx"
67739
67883
  ],
67740
- "qx/tool/cli/templates/skeleton/desktop/readme.tmpl.md": [
67884
+ "qx/tool/website/src/scripts/serve.js": [
67741
67885
  null,
67742
67886
  null,
67743
- "md",
67887
+ "js",
67744
67888
  "qx"
67745
67889
  ],
67746
- "qx/tool/cli/templates/skeleton/desktop/Manifest.tmpl.json": [
67890
+ "qx/tool/cli/templates/skeleton/mobile/compile.tmpl.json": [
67747
67891
  null,
67748
67892
  null,
67749
67893
  "json",
@@ -67755,7 +67899,7 @@ qx.$$packageData['0'] = {
67755
67899
  "tmpl",
67756
67900
  "qx"
67757
67901
  ],
67758
- "qx/tool/cli/templates/skeleton/mobile/compile.tmpl.json": [
67902
+ "qx/tool/cli/templates/skeleton/mobile/Manifest.tmpl.json": [
67759
67903
  null,
67760
67904
  null,
67761
67905
  "json",
@@ -67767,25 +67911,37 @@ qx.$$packageData['0'] = {
67767
67911
  "md",
67768
67912
  "qx"
67769
67913
  ],
67770
- "qx/tool/cli/templates/skeleton/mobile/Manifest.tmpl.json": [
67914
+ "qx/tool/cli/templates/skeleton/desktop/compile.tmpl.json": [
67771
67915
  null,
67772
67916
  null,
67773
67917
  "json",
67774
67918
  "qx"
67775
67919
  ],
67776
- "qx/tool/cli/templates/skeleton/package/.gitignore.tmpl": [
67920
+ "qx/tool/cli/templates/skeleton/desktop/Manifest.tmpl.json": [
67921
+ null,
67922
+ null,
67923
+ "json",
67924
+ "qx"
67925
+ ],
67926
+ "qx/tool/cli/templates/skeleton/desktop/.gitignore.tmpl": [
67777
67927
  null,
67778
67928
  null,
67779
67929
  "tmpl",
67780
67930
  "qx"
67781
67931
  ],
67782
- "qx/tool/cli/templates/skeleton/package/compile.tmpl.json": [
67932
+ "qx/tool/cli/templates/skeleton/desktop/readme.tmpl.md": [
67783
67933
  null,
67784
67934
  null,
67785
- "json",
67935
+ "md",
67786
67936
  "qx"
67787
67937
  ],
67788
- "qx/tool/cli/templates/skeleton/package/Manifest.tmpl.json": [
67938
+ "qx/tool/cli/templates/skeleton/package/.gitignore.tmpl": [
67939
+ null,
67940
+ null,
67941
+ "tmpl",
67942
+ "qx"
67943
+ ],
67944
+ "qx/tool/cli/templates/skeleton/package/compile.tmpl.json": [
67789
67945
  null,
67790
67946
  null,
67791
67947
  "json",
@@ -67797,19 +67953,25 @@ qx.$$packageData['0'] = {
67797
67953
  "md",
67798
67954
  "qx"
67799
67955
  ],
67956
+ "qx/tool/cli/templates/skeleton/package/Manifest.tmpl.json": [
67957
+ null,
67958
+ null,
67959
+ "json",
67960
+ "qx"
67961
+ ],
67800
67962
  "qx/tool/cli/templates/skeleton/server/.gitignore.tmpl": [
67801
67963
  null,
67802
67964
  null,
67803
67965
  "tmpl",
67804
67966
  "qx"
67805
67967
  ],
67806
- "qx/tool/cli/templates/skeleton/server/compile.tmpl.json": [
67968
+ "qx/tool/cli/templates/skeleton/server/Manifest.tmpl.json": [
67807
67969
  null,
67808
67970
  null,
67809
67971
  "json",
67810
67972
  "qx"
67811
67973
  ],
67812
- "qx/tool/cli/templates/skeleton/server/Manifest.tmpl.json": [
67974
+ "qx/tool/cli/templates/skeleton/server/compile.tmpl.json": [
67813
67975
  null,
67814
67976
  null,
67815
67977
  "json",
@@ -67821,37 +67983,37 @@ qx.$$packageData['0'] = {
67821
67983
  "txt",
67822
67984
  "qx"
67823
67985
  ],
67824
- "qx/tool/cli/templates/skeleton/desktop/source/boot/index.tmpl.html": [
67986
+ "qx/tool/cli/templates/skeleton/mobile/source/boot/nojs.tmpl.html": [
67825
67987
  null,
67826
67988
  null,
67827
67989
  "html",
67828
67990
  "qx"
67829
67991
  ],
67830
- "qx/tool/cli/templates/skeleton/desktop/source/boot/nojs.tmpl.html": [
67992
+ "qx/tool/cli/templates/skeleton/mobile/source/boot/index.tmpl.html": [
67831
67993
  null,
67832
67994
  null,
67833
67995
  "html",
67834
67996
  "qx"
67835
67997
  ],
67836
- "qx/tool/cli/templates/skeleton/mobile/source/boot/index.tmpl.html": [
67998
+ "qx/tool/cli/templates/skeleton/mobile/source/translation/readme.txt": [
67837
67999
  null,
67838
68000
  null,
67839
- "html",
68001
+ "txt",
67840
68002
  "qx"
67841
68003
  ],
67842
- "qx/tool/cli/templates/skeleton/mobile/source/boot/nojs.tmpl.html": [
68004
+ "qx/tool/cli/templates/skeleton/desktop/source/boot/index.tmpl.html": [
67843
68005
  null,
67844
68006
  null,
67845
68007
  "html",
67846
68008
  "qx"
67847
68009
  ],
67848
- "qx/tool/cli/templates/skeleton/desktop/source/translation/readme.txt": [
68010
+ "qx/tool/cli/templates/skeleton/desktop/source/boot/nojs.tmpl.html": [
67849
68011
  null,
67850
68012
  null,
67851
- "txt",
68013
+ "html",
67852
68014
  "qx"
67853
68015
  ],
67854
- "qx/tool/cli/templates/skeleton/mobile/source/translation/readme.txt": [
68016
+ "qx/tool/cli/templates/skeleton/desktop/source/translation/readme.txt": [
67855
68017
  null,
67856
68018
  null,
67857
68019
  "txt",
@@ -67869,175 +68031,181 @@ qx.$$packageData['0'] = {
67869
68031
  "txt",
67870
68032
  "qx"
67871
68033
  ],
67872
- "qx/tool/cli/templates/skeleton/desktop/source/class/custom/Application.tmpl.js": [
68034
+ "qx/tool/cli/templates/skeleton/mobile/source/class/custom/Application.tmpl.js": [
67873
68035
  null,
67874
68036
  null,
67875
68037
  "js",
67876
68038
  "qx"
67877
68039
  ],
67878
- "qx/tool/cli/templates/skeleton/desktop/source/class/custom/__init__.tmpl.js": [
68040
+ "qx/tool/cli/templates/skeleton/mobile/source/class/custom/__init__.tmpl.js": [
67879
68041
  null,
67880
68042
  null,
67881
68043
  "js",
67882
68044
  "qx"
67883
68045
  ],
67884
- "qx/tool/cli/templates/skeleton/desktop/source/resource/custom/app.png": [
68046
+ "qx/tool/cli/templates/skeleton/mobile/source/resource/custom/app.png": [
67885
68047
  180,
67886
68048
  180,
67887
68049
  "png",
67888
68050
  "qx"
67889
68051
  ],
67890
- "qx/tool/cli/templates/skeleton/desktop/source/resource/custom/favicon.png": [
68052
+ "qx/tool/cli/templates/skeleton/mobile/source/resource/custom/favicon.png": [
67891
68053
  32,
67892
68054
  32,
67893
68055
  "png",
67894
68056
  "qx"
67895
68057
  ],
67896
- "qx/tool/cli/templates/skeleton/desktop/source/resource/custom/js_256x256.png": [
68058
+ "qx/tool/cli/templates/skeleton/mobile/source/resource/custom/js_256x256.png": [
67897
68059
  256,
67898
68060
  256,
67899
68061
  "png",
67900
68062
  "qx"
67901
68063
  ],
67902
- "qx/tool/cli/templates/skeleton/desktop/source/resource/custom/test.png": [
67903
- 32,
67904
- 32,
67905
- "png",
68064
+ "qx/tool/cli/templates/skeleton/desktop/source/class/custom/Application.tmpl.js": [
68065
+ null,
68066
+ null,
68067
+ "js",
67906
68068
  "qx"
67907
68069
  ],
67908
- "qx/tool/cli/templates/skeleton/mobile/source/resource/custom/app.png": [
68070
+ "qx/tool/cli/templates/skeleton/desktop/source/class/custom/__init__.tmpl.js": [
68071
+ null,
68072
+ null,
68073
+ "js",
68074
+ "qx"
68075
+ ],
68076
+ "qx/tool/cli/templates/skeleton/desktop/source/resource/custom/app.png": [
67909
68077
  180,
67910
68078
  180,
67911
68079
  "png",
67912
68080
  "qx"
67913
68081
  ],
67914
- "qx/tool/cli/templates/skeleton/mobile/source/resource/custom/favicon.png": [
68082
+ "qx/tool/cli/templates/skeleton/desktop/source/resource/custom/favicon.png": [
67915
68083
  32,
67916
68084
  32,
67917
68085
  "png",
67918
68086
  "qx"
67919
68087
  ],
67920
- "qx/tool/cli/templates/skeleton/mobile/source/resource/custom/js_256x256.png": [
68088
+ "qx/tool/cli/templates/skeleton/desktop/source/resource/custom/js_256x256.png": [
67921
68089
  256,
67922
68090
  256,
67923
68091
  "png",
67924
68092
  "qx"
67925
68093
  ],
67926
- "qx/tool/cli/templates/skeleton/mobile/source/class/custom/Application.tmpl.js": [
67927
- null,
67928
- null,
67929
- "js",
68094
+ "qx/tool/cli/templates/skeleton/desktop/source/resource/custom/test.png": [
68095
+ 32,
68096
+ 32,
68097
+ "png",
67930
68098
  "qx"
67931
68099
  ],
67932
- "qx/tool/cli/templates/skeleton/mobile/source/class/custom/__init__.tmpl.js": [
67933
- null,
67934
- null,
67935
- "js",
68100
+ "qx/tool/cli/templates/skeleton/package/source/resource/custom/test.png": [
68101
+ 32,
68102
+ 32,
68103
+ "png",
67936
68104
  "qx"
67937
68105
  ],
67938
- "qx/tool/cli/templates/skeleton/package/source/class/custom/Button.tmpl.js": [
68106
+ "qx/tool/cli/templates/skeleton/server/source/class/custom/Application.tmpl.js": [
67939
68107
  null,
67940
68108
  null,
67941
68109
  "js",
67942
68110
  "qx"
67943
68111
  ],
67944
- "qx/tool/cli/templates/skeleton/package/source/class/custom/__init__.tmpl.js": [
68112
+ "qx/tool/cli/templates/skeleton/server/source/class/custom/__init__.tmpl.js": [
67945
68113
  null,
67946
68114
  null,
67947
68115
  "js",
67948
68116
  "qx"
67949
68117
  ],
67950
- "qx/tool/cli/templates/skeleton/package/source/resource/custom/test.png": [
67951
- 32,
67952
- 32,
67953
- "png",
67954
- "qx"
67955
- ],
67956
68118
  "qx/tool/cli/templates/skeleton/server/source/resource/custom/.gitignore.tmpl": [
67957
68119
  null,
67958
68120
  null,
67959
68121
  "tmpl",
67960
68122
  "qx"
67961
68123
  ],
67962
- "qx/tool/cli/templates/skeleton/server/source/class/custom/Application.tmpl.js": [
68124
+ "qx/tool/cli/templates/skeleton/package/source/class/custom/Button.tmpl.js": [
67963
68125
  null,
67964
68126
  null,
67965
68127
  "js",
67966
68128
  "qx"
67967
68129
  ],
67968
- "qx/tool/cli/templates/skeleton/server/source/class/custom/__init__.tmpl.js": [
68130
+ "qx/tool/cli/templates/skeleton/package/source/class/custom/__init__.tmpl.js": [
67969
68131
  null,
67970
68132
  null,
67971
68133
  "js",
67972
68134
  "qx"
67973
68135
  ],
67974
- "qx/tool/cli/templates/skeleton/desktop/source/class/custom/test/DemoTest.tmpl.js": [
68136
+ "qx/tool/cli/templates/skeleton/mobile/source/class/custom/page/Overview.tmpl.js": [
67975
68137
  null,
67976
68138
  null,
67977
68139
  "js",
67978
68140
  "qx"
67979
68141
  ],
67980
- "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Appearance.tmpl.js": [
68142
+ "qx/tool/cli/templates/skeleton/mobile/source/class/custom/page/Login.tmpl.js": [
67981
68143
  null,
67982
68144
  null,
67983
68145
  "js",
67984
68146
  "qx"
67985
68147
  ],
67986
- "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Font.tmpl.js": [
68148
+ "qx/tool/cli/templates/skeleton/mobile/source/class/custom/page/__init__.tmpl.js": [
67987
68149
  null,
67988
68150
  null,
67989
68151
  "js",
67990
68152
  "qx"
67991
68153
  ],
67992
- "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Color.tmpl.js": [
68154
+ "qx/tool/cli/templates/skeleton/mobile/source/theme/custom/scss/custom.scss": [
67993
68155
  null,
67994
68156
  null,
67995
- "js",
68157
+ "scss",
67996
68158
  "qx"
67997
68159
  ],
67998
- "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Decoration.tmpl.js": [
68160
+ "qx/tool/cli/templates/skeleton/mobile/source/theme/custom/scss/_styles.scss": [
67999
68161
  null,
68000
68162
  null,
68001
- "js",
68163
+ "scss",
68002
68164
  "qx"
68003
68165
  ],
68004
- "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Theme.tmpl.js": [
68166
+ "qx/tool/cli/templates/skeleton/mobile/source/resource/custom/css/.gitignore.tmpl": [
68167
+ null,
68168
+ null,
68169
+ "tmpl",
68170
+ "qx"
68171
+ ],
68172
+ "qx/tool/cli/templates/skeleton/desktop/source/class/custom/test/DemoTest.tmpl.js": [
68005
68173
  null,
68006
68174
  null,
68007
68175
  "js",
68008
68176
  "qx"
68009
68177
  ],
68010
- "qx/tool/cli/templates/skeleton/mobile/source/resource/custom/css/.gitignore.tmpl": [
68178
+ "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Appearance.tmpl.js": [
68011
68179
  null,
68012
68180
  null,
68013
- "tmpl",
68181
+ "js",
68014
68182
  "qx"
68015
68183
  ],
68016
- "qx/tool/cli/templates/skeleton/mobile/source/theme/custom/scss/custom.scss": [
68184
+ "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Color.tmpl.js": [
68017
68185
  null,
68018
68186
  null,
68019
- "scss",
68187
+ "js",
68020
68188
  "qx"
68021
68189
  ],
68022
- "qx/tool/cli/templates/skeleton/mobile/source/theme/custom/scss/_styles.scss": [
68190
+ "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Decoration.tmpl.js": [
68023
68191
  null,
68024
68192
  null,
68025
- "scss",
68193
+ "js",
68026
68194
  "qx"
68027
68195
  ],
68028
- "qx/tool/cli/templates/skeleton/mobile/source/class/custom/page/Login.tmpl.js": [
68196
+ "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Theme.tmpl.js": [
68029
68197
  null,
68030
68198
  null,
68031
68199
  "js",
68032
68200
  "qx"
68033
68201
  ],
68034
- "qx/tool/cli/templates/skeleton/mobile/source/class/custom/page/__init__.tmpl.js": [
68202
+ "qx/tool/cli/templates/skeleton/desktop/source/class/custom/theme/Font.tmpl.js": [
68035
68203
  null,
68036
68204
  null,
68037
68205
  "js",
68038
68206
  "qx"
68039
68207
  ],
68040
- "qx/tool/cli/templates/skeleton/mobile/source/class/custom/page/Overview.tmpl.js": [
68208
+ "qx/tool/cli/templates/skeleton/server/source/class/custom/test/DemoTest.tmpl.js": [
68041
68209
  null,
68042
68210
  null,
68043
68211
  "js",
@@ -68085,12 +68253,6 @@ qx.$$packageData['0'] = {
68085
68253
  "js",
68086
68254
  "qx"
68087
68255
  ],
68088
- "qx/tool/cli/templates/skeleton/server/source/class/custom/test/DemoTest.tmpl.js": [
68089
- null,
68090
- null,
68091
- "js",
68092
- "qx"
68093
- ],
68094
68256
  "qx/tool/cli/templates/skeleton/package/source/class/custom/resource/custom/test.png": [
68095
68257
  32,
68096
68258
  32,