@qooxdoo/framework 7.0.0-beta → 7.0.0-beta.4

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 (224) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/Manifest.json +11 -8
  3. package/bin/deploy/qx +0 -0
  4. package/lib/compiler/compile-info.json +86 -96
  5. package/lib/compiler/index.js +35547 -47284
  6. package/{source/class/qx/tool/compiler/targets → lib/resource/qx/tool/cli/templates}/TypeScriptWriter-base_declaration.txt +0 -0
  7. package/lib/resource/qx/tool/cli/templates/loader/loader-browser.tmpl.js +8 -2
  8. package/lib/resource/qx/tool/cli/templates/loader/loader-node.tmpl.js +24 -11
  9. package/lib/resource/qx/tool/cli/templates/loader/loader-rhino.tmpl.js +9 -2
  10. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css +1 -1
  11. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -44
  12. package/lib/resource/qx/tool/cli/templates/template_vars.js +1 -1
  13. package/lib/resource/qx/tool/loadsass.js +13 -0
  14. package/lib/resource/qx/tool/schema/Manifest-1-0-0.json +1 -2
  15. package/lib/resource/qx/tool/schema/Manifest-2-0-0.json +1 -2
  16. package/lib/resource/qx/tool/schema/compile-1-0-0.json +19 -9
  17. package/lib/resource/qx/tool/website/sass/qooxdoo.css +1 -1
  18. package/lib/resource/qx/tool/website/sass/qooxdoo.css.map +1 -9
  19. package/package.json +14 -14
  20. package/source/class/qx/Annotation.js +2 -2
  21. package/source/class/qx/Class.js +20 -4
  22. package/source/class/qx/Interface.js +6 -0
  23. package/source/class/qx/Promise.js +32 -2
  24. package/source/class/qx/bom/Element.js +1 -0
  25. package/source/class/qx/bom/Font.js +17 -2
  26. package/source/class/qx/bom/Iframe.js +10 -5
  27. package/source/class/qx/bom/Label.js +2 -1
  28. package/source/class/qx/bom/Template.js +2 -0
  29. package/source/class/qx/bom/client/Browser.js +11 -2
  30. package/source/class/qx/bom/client/OperatingSystem.js +16 -0
  31. package/source/class/qx/bom/element/Decoration.js +8 -5
  32. package/source/class/qx/bom/element/Dimension.js +46 -0
  33. package/source/class/qx/bom/webfonts/WebFont.js +10 -0
  34. package/source/class/qx/core/BaseInit.js +9 -3
  35. package/source/class/qx/core/Environment.js +1 -0
  36. package/source/class/qx/core/Property.js +2 -2
  37. package/source/class/qx/data/SingleValueBinding.js +6 -3
  38. package/source/class/qx/data/controller/CheckedList.js +18 -9
  39. package/source/class/qx/data/controller/List.js +8 -0
  40. package/source/class/qx/dev/unit/Sinon.js +1 -1
  41. package/source/class/qx/event/Utils.js +1 -1
  42. package/source/class/qx/event/handler/DragDrop.js +1 -1
  43. package/source/class/qx/event/handler/Gesture.js +3 -1
  44. package/source/class/qx/event/handler/Mouse.js +61 -22
  45. package/source/class/qx/event/handler/Video.js +111 -0
  46. package/source/class/qx/html/Element.js +47 -32
  47. package/source/class/qx/html/Image.js +2 -2
  48. package/source/class/qx/html/Node.js +34 -4
  49. package/source/class/qx/lang/Json.js +1 -0
  50. package/source/class/qx/lang/String.js +53 -1
  51. package/source/class/qx/test/Annotation.js +2 -1
  52. package/source/class/qx/test/Promise.js +5 -3
  53. package/source/class/qx/test/bom/Font.js +10 -1
  54. package/source/class/qx/test/core/Property.js +5 -3
  55. package/source/class/qx/test/html/Element.js +3 -3
  56. package/source/class/qx/test/lang/String.js +28 -0
  57. package/source/class/qx/test/type/BaseString.js +7 -0
  58. package/source/class/qx/test/ui/embed/Iframe.js +1 -0
  59. package/source/class/qx/test/ui/form/ComboBox.js +0 -42
  60. package/source/class/qx/test/ui/virtual/performance/AbstractLayerTest.js +6 -2
  61. package/source/class/qx/theme/manager/Decoration.js +0 -0
  62. package/source/class/qx/theme/manager/Font.js +11 -0
  63. package/source/class/qx/theme/tangible/Appearance.js +10 -0
  64. package/source/class/qx/theme/tangible/ColorDark.js +0 -0
  65. package/source/class/qx/theme/tangible/Decoration.js +6 -0
  66. package/source/class/qx/tool/cli/Cli.js +5 -3
  67. package/source/class/qx/tool/cli/Watch.js +52 -0
  68. package/source/class/qx/tool/cli/api/AbstractApi.js +1 -1
  69. package/source/class/qx/tool/cli/api/CompilerApi.js +16 -6
  70. package/source/class/qx/tool/cli/api/LibraryApi.js +1 -1
  71. package/source/class/qx/tool/cli/commands/Command.js +7 -0
  72. package/source/class/qx/tool/cli/commands/Compile.js +28 -9
  73. package/source/class/qx/tool/cli/commands/Lint.js +30 -11
  74. package/source/class/qx/tool/cli/commands/Package.js +1 -2
  75. package/source/class/qx/tool/cli/commands/Run.js +2 -25
  76. package/source/class/qx/tool/cli/commands/Serve.js +9 -0
  77. package/source/class/qx/tool/cli/commands/package/Publish.js +19 -10
  78. package/source/class/qx/tool/compiler/Analyser.js +22 -23
  79. package/source/class/qx/tool/compiler/ClassFile.js +3 -2
  80. package/source/class/qx/tool/compiler/Console.js +17 -1
  81. package/source/class/qx/tool/compiler/Preprocess.js +1 -1
  82. package/source/class/qx/tool/compiler/app/Application.js +4 -2
  83. package/source/class/qx/tool/compiler/app/Cldr.js +1 -1
  84. package/source/class/qx/tool/compiler/app/Library.js +82 -88
  85. package/source/class/qx/tool/compiler/app/Part.js +1 -1
  86. package/source/class/qx/tool/compiler/app/Translation.js +1 -1
  87. package/source/class/qx/tool/compiler/app/WebFont.js +5 -4
  88. package/source/class/qx/tool/compiler/jsdoc/ChildControlParser.js +1 -1
  89. package/source/class/qx/tool/compiler/jsdoc/CommandParser.js +1 -1
  90. package/source/class/qx/tool/compiler/jsdoc/ParamParser.js +1 -1
  91. package/source/class/qx/tool/compiler/jsdoc/Parser.js +1 -1
  92. package/source/class/qx/tool/compiler/jsdoc/ReturnParser.js +1 -1
  93. package/source/class/qx/tool/compiler/jsdoc/ThrowsParser.js +1 -1
  94. package/source/class/qx/tool/compiler/makers/AbstractAppMaker.js +1 -1
  95. package/source/class/qx/tool/compiler/makers/AppMaker.js +14 -14
  96. package/source/class/qx/tool/compiler/makers/Maker.js +1 -1
  97. package/source/class/qx/tool/compiler/resources/AbstractMatcher.js +1 -1
  98. package/source/class/qx/tool/compiler/resources/Asset.js +2 -2
  99. package/source/class/qx/tool/compiler/resources/ImageLoader.js +3 -2
  100. package/source/class/qx/tool/compiler/resources/Manager.js +5 -5
  101. package/source/class/qx/tool/compiler/resources/MetaLoader.js +1 -1
  102. package/source/class/qx/tool/compiler/resources/ResourceConverter.js +1 -1
  103. package/source/class/qx/tool/compiler/resources/ResourceLoader.js +1 -1
  104. package/source/class/qx/tool/compiler/resources/ScssConverter.js +9 -3
  105. package/source/class/qx/tool/compiler/resources/ScssFile.js +13 -12
  106. package/source/class/qx/tool/compiler/resources/ScssIncludeConverter.js +1 -1
  107. package/source/class/qx/tool/compiler/targets/BuildTarget.js +1 -1
  108. package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +1 -1
  109. package/source/class/qx/tool/compiler/targets/SourceTarget.js +1 -1
  110. package/source/class/qx/tool/compiler/targets/Target.js +70 -32
  111. package/source/class/qx/tool/compiler/targets/TypeScriptWriter.js +3 -4
  112. package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +22 -0
  113. package/source/class/qx/tool/compiler/targets/meta/ApplicationMeta.js +30 -0
  114. package/source/class/qx/tool/compiler/targets/meta/BootJs.js +22 -0
  115. package/source/class/qx/tool/compiler/targets/meta/Javascript.js +22 -0
  116. package/source/class/qx/tool/compiler/targets/meta/Package.js +37 -2
  117. package/source/class/qx/tool/compiler/targets/meta/PackageJavascript.js +22 -0
  118. package/source/class/qx/tool/compiler/targets/meta/Part.js +22 -0
  119. package/source/class/qx/tool/compiler/targets/meta/PolyfillJs.js +29 -7
  120. package/source/class/qx/tool/compiler/targets/meta/Uglify.js +23 -1
  121. package/source/class/qx/tool/config/Abstract.js +3 -3
  122. package/source/class/qx/tool/config/Utils.js +10 -1
  123. package/source/class/qx/tool/utils/IndexedArray.js +1 -1
  124. package/source/class/qx/tool/utils/Json.js +2 -2
  125. package/source/class/qx/tool/utils/LogManager.js +1 -1
  126. package/source/class/qx/tool/utils/Logger.js +1 -1
  127. package/source/class/qx/tool/utils/Promisify.js +1 -1
  128. package/source/class/qx/tool/utils/Utils.js +118 -1
  129. package/source/class/qx/tool/utils/Values.js +1 -1
  130. package/source/class/qx/tool/utils/Website.js +23 -18
  131. package/source/class/qx/tool/utils/files/FindFiles.js +1 -1
  132. package/source/class/qx/tool/utils/files/Utils.js +1 -1
  133. package/source/class/qx/tool/utils/json/Parser.js +1 -1
  134. package/source/class/qx/tool/utils/json/Stringify.js +1 -1
  135. package/source/class/qx/tool/utils/json/Tokenizer.js +1 -1
  136. package/source/class/qx/tool/utils/json/Writer.js +1 -1
  137. package/source/class/qx/type/BaseString.js +2 -1
  138. package/source/class/qx/ui/basic/Image.js +15 -7
  139. package/source/class/qx/ui/basic/Label.js +3 -1
  140. package/source/class/qx/ui/container/SlideBar.js +3 -0
  141. package/source/class/qx/ui/control/DateChooser.js +20 -1
  142. package/source/class/qx/ui/core/scroll/NativeScrollBar.js +3 -0
  143. package/source/class/qx/ui/core/scroll/ScrollBar.js +3 -0
  144. package/source/class/qx/ui/form/AbstractSelectBox.js +38 -6
  145. package/source/class/qx/ui/form/Button.js +3 -0
  146. package/source/class/qx/ui/form/CheckBox.js +25 -1
  147. package/source/class/qx/ui/form/CheckedList.js +2 -1
  148. package/source/class/qx/ui/form/ComboBox.js +36 -27
  149. package/source/class/qx/ui/form/List.js +3 -0
  150. package/source/class/qx/ui/form/MenuButton.js +24 -2
  151. package/source/class/qx/ui/form/RadioButton.js +7 -0
  152. package/source/class/qx/ui/form/RadioButtonGroup.js +3 -0
  153. package/source/class/qx/ui/form/RadioGroup.js +19 -0
  154. package/source/class/qx/ui/form/SelectBox.js +23 -1
  155. package/source/class/qx/ui/form/Slider.js +15 -0
  156. package/source/class/qx/ui/form/SplitButton.js +3 -0
  157. package/source/class/qx/ui/form/ToggleButton.js +8 -0
  158. package/source/class/qx/ui/menu/AbstractButton.js +24 -0
  159. package/source/class/qx/ui/menu/Button.js +3 -0
  160. package/source/class/qx/ui/menu/CheckBox.js +8 -0
  161. package/source/class/qx/ui/menu/Manager.js +2 -0
  162. package/source/class/qx/ui/menu/Menu.js +63 -1
  163. package/source/class/qx/ui/menu/RadioButton.js +10 -1
  164. package/source/class/qx/ui/menubar/Button.js +0 -27
  165. package/source/class/qx/ui/menubar/MenuBar.js +12 -0
  166. package/source/class/qx/ui/splitpane/Blocker.js +3 -0
  167. package/source/class/qx/ui/splitpane/HLayout.js +2 -2
  168. package/source/class/qx/ui/splitpane/Pane.js +4 -1
  169. package/source/class/qx/ui/splitpane/VLayout.js +2 -2
  170. package/source/class/qx/ui/table/Table.js +24 -2
  171. package/source/class/qx/ui/table/cellrenderer/Abstract.js +3 -1
  172. package/source/class/qx/ui/table/cellrenderer/AbstractImage.js +7 -3
  173. package/source/class/qx/ui/table/headerrenderer/HeaderCell.js +3 -0
  174. package/source/class/qx/ui/table/pane/Header.js +3 -0
  175. package/source/class/qx/ui/table/pane/Scroller.js +3 -7
  176. package/source/class/qx/ui/table/rowrenderer/Default.js +1 -1
  177. package/source/class/qx/ui/tabview/Page.js +26 -0
  178. package/source/class/qx/ui/tabview/TabView.js +3 -0
  179. package/source/class/qx/ui/toolbar/Button.js +2 -27
  180. package/source/class/qx/ui/toolbar/CheckBox.js +0 -27
  181. package/source/class/qx/ui/toolbar/RadioButton.js +21 -0
  182. package/source/class/qx/ui/toolbar/SplitButton.js +0 -28
  183. package/source/class/qx/ui/toolbar/ToolBar.js +3 -0
  184. package/source/class/qx/util/ColorUtil.js +2 -1
  185. package/source/class/qx/util/ResourceManager.js +16 -7
  186. package/source/class/qx/util/format/DateFormat.js +9 -0
  187. package/source/class/qxWeb.js +8 -4
  188. package/source/resource/qx/decoration/Indigo/font/JosefinSlab-SemiBold.ttf +0 -0
  189. package/source/resource/qx/decoration/Indigo/font/SIL Open Font License 1.1.txt +0 -0
  190. package/source/resource/qx/iconfont/MaterialIcons/fetch-fonts.sh +0 -0
  191. package/source/resource/qx/mobile/scss/common/_gradients.scss +3 -1
  192. package/source/resource/qx/mobile/scss/theme/indigo/_styles.scss +1 -1
  193. package/source/resource/qx/mobile/scss/ui/_carousel.scss +2 -2
  194. package/source/resource/qx/mobile/scss/ui/_checkbox.scss +3 -3
  195. package/source/resource/qx/mobile/scss/ui/_collapsible.scss +2 -2
  196. package/source/resource/qx/mobile/scss/ui/_picker.scss +4 -4
  197. package/source/resource/qx/mobile/scss/ui/_radiobutton.scss +4 -4
  198. package/source/resource/qx/mobile/scss/ui/_slider.scss +7 -7
  199. package/source/resource/qx/scss/_gradients.scss +3 -1
  200. package/source/resource/qx/scss/_mixins.scss +4 -2
  201. package/source/resource/qx/tool/bin/build-devtools +0 -0
  202. package/source/resource/qx/tool/bin/build-website +0 -0
  203. package/source/resource/qx/tool/bin/download-assets +0 -0
  204. package/source/resource/qx/tool/cli/templates/TypeScriptWriter-base_declaration.txt +13 -0
  205. package/source/resource/qx/tool/cli/templates/loader/loader-browser.tmpl.js +8 -2
  206. package/source/resource/qx/tool/cli/templates/loader/loader-node.tmpl.js +24 -11
  207. package/source/resource/qx/tool/cli/templates/loader/loader-rhino.tmpl.js +9 -2
  208. package/source/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/scss/_styles.scss +1 -1
  209. package/source/resource/qx/tool/cli/templates/template_vars.js +1 -1
  210. package/source/resource/qx/tool/loadsass.js +13 -0
  211. package/source/resource/qx/tool/schema/Manifest-1-0-0.json +1 -2
  212. package/source/resource/qx/tool/schema/Manifest-2-0-0.json +1 -2
  213. package/source/resource/qx/tool/schema/compile-1-0-0.json +19 -9
  214. package/source/resource/qx/website/scss/ui/_carousel.scss +2 -2
  215. package/lib/resource/qx/tool/website/.gitignore +0 -2
  216. package/source/class/qx/io/request/auth/.gitignore +0 -0
  217. package/source/class/qx/test/bom/client/.gitignore +0 -0
  218. package/source/class/qx/test/ui/control/.gitignore +0 -0
  219. package/source/class/qx/tool/compiler/Version.js +0 -20
  220. package/source/resource/qx/decoration/Modern/treevirtual/.gitignore +0 -0
  221. package/source/resource/qx/mobile/css/.gitignore +0 -3
  222. package/source/resource/qx/tool/website/.gitignore +0 -2
  223. package/source/resource/qx/website/.gitignore +0 -1
  224. package/source/resource/qx/website/scss/.gitignore +0 -1
@@ -19,32 +19,12 @@
19
19
 
20
20
  /**
21
21
  * The normal toolbar button. Like a normal {@link qx.ui.form.Button}
22
- * but with a style matching the toolbar and without keyboard support.
22
+ * but with a style matching the toolbar.
23
23
  */
24
24
  qx.Class.define("qx.ui.toolbar.Button",
25
25
  {
26
26
  extend : qx.ui.form.Button,
27
27
 
28
-
29
-
30
- /*
31
- *****************************************************************************
32
- CONSTRUCTOR
33
- *****************************************************************************
34
- */
35
-
36
- construct : function(label, icon, command)
37
- {
38
- this.base(arguments, label, icon, command);
39
-
40
- // Toolbar buttons should not support the keyboard events
41
- this.removeListener("keydown", this._onKeyDown);
42
- this.removeListener("keyup", this._onKeyUp);
43
- },
44
-
45
-
46
-
47
-
48
28
  /*
49
29
  *****************************************************************************
50
30
  PROPERTIES
@@ -64,12 +44,6 @@ qx.Class.define("qx.ui.toolbar.Button",
64
44
  refine : true,
65
45
  init : "inherit"
66
46
  },
67
-
68
- focusable :
69
- {
70
- refine : true,
71
- init : false
72
- }
73
47
  },
74
48
 
75
49
  members : {
@@ -84,3 +58,4 @@ qx.Class.define("qx.ui.toolbar.Button",
84
58
  }
85
59
  }
86
60
  });
61
+
@@ -24,27 +24,6 @@ qx.Class.define("qx.ui.toolbar.CheckBox",
24
24
  {
25
25
  extend : qx.ui.form.ToggleButton,
26
26
 
27
-
28
-
29
-
30
- /*
31
- *****************************************************************************
32
- CONSTRUCTOR
33
- *****************************************************************************
34
- */
35
-
36
- construct : function(label, icon)
37
- {
38
- this.base(arguments, label, icon);
39
-
40
- // Toolbar buttons should not support the keyboard events
41
- this.removeListener("keydown", this._onKeyDown);
42
- this.removeListener("keyup", this._onKeyUp);
43
- },
44
-
45
-
46
-
47
-
48
27
  /*
49
28
  *****************************************************************************
50
29
  PROPERTIES
@@ -64,12 +43,6 @@ qx.Class.define("qx.ui.toolbar.CheckBox",
64
43
  refine : true,
65
44
  init : "inherit"
66
45
  },
67
-
68
- focusable :
69
- {
70
- refine : true,
71
- init : false
72
- }
73
46
  },
74
47
 
75
48
  members : {
@@ -29,7 +29,23 @@ qx.Class.define("qx.ui.toolbar.RadioButton",
29
29
  include : [qx.ui.form.MModelProperty],
30
30
  implement : [qx.ui.form.IModel, qx.ui.form.IRadioItem],
31
31
 
32
+ /*
33
+ *****************************************************************************
34
+ CONSTRUCTOR
35
+ *****************************************************************************
36
+ */
32
37
 
38
+ construct : function(label, icon)
39
+ {
40
+ this.base(arguments, label, icon);
41
+
42
+ // ARIA attrs
43
+ // Important: (Grouped) radio btns should be children of a div with role 'radiogroup'
44
+ const contentEl = this.getContentElement();
45
+ contentEl.setAttribute("role", "radio");
46
+ contentEl.setAttribute("aria-checked", false);
47
+ contentEl.removeAttribute("aria-pressed");
48
+ },
33
49
 
34
50
 
35
51
  /*
@@ -51,6 +67,11 @@ qx.Class.define("qx.ui.toolbar.RadioButton",
51
67
  {
52
68
  this.base(arguments, value, old);
53
69
 
70
+ // ARIA attrs
71
+ const contentEl = this.getContentElement();
72
+ contentEl.removeAttribute("aria-pressed");
73
+ contentEl.setAttribute("aria-checked", Boolean(value));
74
+
54
75
  if (value)
55
76
  {
56
77
  var grp = this.getGroup();
@@ -28,26 +28,6 @@ qx.Class.define("qx.ui.toolbar.SplitButton",
28
28
  {
29
29
  extend : qx.ui.form.SplitButton,
30
30
 
31
-
32
-
33
- /*
34
- *****************************************************************************
35
- CONSTRUCTOR
36
- *****************************************************************************
37
- */
38
-
39
- construct : function(label, icon, menu, command)
40
- {
41
- this.base(arguments, label, icon, menu, command);
42
-
43
- // Toolbar buttons should not support the keyboard events
44
- this.removeListener("keydown", this._onKeyDown);
45
- this.removeListener("keyup", this._onKeyUp);
46
- },
47
-
48
-
49
-
50
-
51
31
  /*
52
32
  *****************************************************************************
53
33
  PROPERTIES
@@ -62,14 +42,6 @@ qx.Class.define("qx.ui.toolbar.SplitButton",
62
42
  refine : true,
63
43
  init : "toolbar-splitbutton"
64
44
  },
65
-
66
-
67
- // overridden
68
- focusable :
69
- {
70
- refine : true,
71
- init : false
72
- }
73
45
  },
74
46
 
75
47
 
@@ -48,6 +48,9 @@ qx.Class.define("qx.ui.toolbar.ToolBar",
48
48
  {
49
49
  this.base(arguments);
50
50
 
51
+ // ARIA attrs
52
+ this.getContentElement().setAttribute("role", "toolbar");
53
+
51
54
  // add needed layout
52
55
  this._setLayout(new qx.ui.layout.HBox());
53
56
 
@@ -943,8 +943,9 @@ qx.Bootstrap.define("qx.util.ColorUtil",
943
943
  * @return {String} colour string
944
944
  */
945
945
  chooseContrastingColor : function(rgb, threshold, dark, light) {
946
- if (typeof rgb == "string")
946
+ if (typeof rgb == "string") {
947
947
  rgb = qx.util.ColorUtil.stringToRgb(rgb);
948
+ }
948
949
  var r = rgb[0];
949
950
  var g = rgb[1];
950
951
  var b = rgb[2];
@@ -336,7 +336,10 @@ qx.Class.define("qx.util.ResourceManager",
336
336
  /**
337
337
  * Returns the correct char code, ignoring scale postfix.
338
338
  *
339
- * @param source {String} resource id of the image, e.g. @FontAwesome/heart or @MaterialIcons/home/16
339
+ * The resource ID can be a ligature name (eg `@FontAwesome/heart` or `@MaterialIcons/home/16`),
340
+ * or a hex character code (eg `@FontAwesome/f004` or `@FontAwesome/f004/16`)
341
+ *
342
+ * @param source {String} resource id of the image
340
343
  * @returns charCode of the glyph
341
344
  */
342
345
  fromFontUriToCharCode : function (source)
@@ -347,16 +350,22 @@ qx.Class.define("qx.util.ResourceManager",
347
350
  fontSource = sparts[0] + "/" + sparts[1];
348
351
  }
349
352
  var resource = this.getData(fontSource);
350
- var charCode;
353
+ var charCode = null;
351
354
  if (resource) {
352
355
  charCode = resource[2];
353
- }
354
- else {
355
- charCode = parseInt(qx.theme.manager.Font.getInstance().resolve(source.match(/@([^/]+)\/(.*)$/)[2]), 16);
356
- if (qx.core.Environment.get("qx.debug")) {
357
- qx.core.Assert.assertNumber(charCode, "Font source: " + source +" needs either a glyph name or the unicode number in hex");
356
+
357
+ } else {
358
+ let hexString = source.match(/@([^/]+)\/(.*)$/)[2];
359
+ if (hexString) {
360
+ charCode = parseInt(hexString, 16);
361
+ if (isNaN(charCode)) {
362
+ charCode = null;
363
+ }
358
364
  }
359
365
  }
366
+ if (!charCode) {
367
+ throw new Error(`Cannot determine charCode from source: ${source}`);
368
+ }
360
369
  return charCode;
361
370
  }
362
371
  },
@@ -425,6 +425,15 @@ qx.Class.define("qx.util.format.DateFormat",
425
425
  return locale;
426
426
  },
427
427
 
428
+ /**
429
+ * Returns the original format string
430
+ *
431
+ * @return {String}
432
+ */
433
+ getFormatString() {
434
+ return this.__format;
435
+ },
436
+
428
437
  /**
429
438
  * Formats a date.
430
439
  *
@@ -36,6 +36,8 @@
36
36
  * @ignore(q)
37
37
  *
38
38
  * @group (Core)
39
+ *
40
+ * @asset(qx/iconfont/MaterialIcons/*)
39
41
  */
40
42
  qx.Bootstrap.define("qxWeb", {
41
43
  extend : qx.type.BaseArray,
@@ -149,8 +151,9 @@ qx.Bootstrap.define("qxWeb", {
149
151
  $attachAll : function(clazz, staticsNamespace) {
150
152
  // members
151
153
  for (var name in clazz.members) {
152
- if (name.indexOf("$") !== 0 && name.indexOf("_") !== 0)
153
- qxWeb.prototype[name] = clazz.members[name];
154
+ if (name.indexOf("$") !== 0 && name.indexOf("_") !== 0) {
155
+ qxWeb.prototype[name] = clazz.members[name];
156
+ }
154
157
  }
155
158
 
156
159
  // statics
@@ -164,8 +167,9 @@ qx.Bootstrap.define("qxWeb", {
164
167
 
165
168
  for (var name in clazz.statics) {
166
169
  if (name.indexOf("$") !== 0 && name.indexOf("_") !== 0 && name !== "name" && name !== "basename" &&
167
- name !== "classname" && name !== "toString" && name !== name.toUpperCase())
168
- destination[name] = clazz.statics[name];
170
+ name !== "classname" && name !== "toString" && name !== name.toUpperCase()) {
171
+ destination[name] = clazz.statics[name];
172
+ }
169
173
  }
170
174
  },
171
175
 
@@ -6,6 +6,8 @@
6
6
  * If the first value is a color (or "transparent"), the mixin creates a plain colored background with it.
7
7
  * If multiple values are passed, the background mixins attempts to create a linear gradient through "linear-gradient" mixin.
8
8
  */
9
+ @use "sass:math";
10
+
9
11
  @mixin background($values) {
10
12
  @if (length($values) == 1) {
11
13
  background-color: $values;
@@ -97,7 +99,7 @@
97
99
  $next: nth($values, $i + 1);
98
100
 
99
101
  // If no position is passed inside color-stop, it calculates the position in percent.
100
- $pos: ($i - 1)*(1/($last - 1));
102
+ $pos: ($i - 1)*math.div(1, $last - 1);
101
103
 
102
104
  // Separator between color-stops.
103
105
  $separator: "";
@@ -145,7 +145,7 @@ $menu-item-selected-background: lighten($highlight-color, 20%), $highlight-colo
145
145
 
146
146
  $navigationbar-height: rem(40);
147
147
  $navigationbar-background: $color-2,$color-1;
148
- $navigationbar-text-size: $navigationbar-height/2;
148
+ $navigationbar-text-size: $navigationbar-height*0.5;
149
149
  $navigationbar-text-color: $background-color;
150
150
  $navigationbar-padding: rem(4);
151
151
  $navigationbar-font-weight: bold;
@@ -30,7 +30,7 @@
30
30
  transition: transform 2s;
31
31
 
32
32
  position:absolute;
33
- bottom: $carousel-pagination-size/2;
33
+ bottom: $carousel-pagination-size*0.5;
34
34
  height: $carousel-pagination-size;
35
35
  line-height: 0;
36
36
  width: auto;
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  .carousel-pagination-label + .carousel-pagination-label {
41
- margin-left: $carousel-pagination-size/2;
41
+ margin-left: $carousel-pagination-size*0.5;
42
42
  }
43
43
 
44
44
  .carousel-pagination-label {
@@ -33,14 +33,14 @@
33
33
  position: absolute;
34
34
  left:50%;
35
35
  top:50%;
36
- margin-left: -1*($checkbox-tick-size/2) - ($checkbox-tick-width/2);
37
- margin-top: -1*($checkbox-tick-size/2) - ($checkbox-tick-width/2);
36
+ margin-left: -1*($checkbox-tick-size*0.5) - ($checkbox-tick-width*0.5);
37
+ margin-top: -1*($checkbox-tick-size*0.5) - ($checkbox-tick-width*0.5);
38
38
 
39
39
  display:block;
40
40
  opacity: 0;
41
41
  content:"";
42
42
  width: $checkbox-tick-size;
43
- height: $checkbox-tick-size/2;
43
+ height: $checkbox-tick-size*0.5;
44
44
  background: transparent;
45
45
 
46
46
  border: $checkbox-tick-width solid $checkbox-tick-color;
@@ -53,7 +53,7 @@
53
53
  position: absolute;
54
54
  top: 50%;
55
55
  right: $collapsible-header-padding;
56
- margin-top:-1*($collapsible-arrow-size)/2;
56
+ margin-top:-1*($collapsible-arrow-size)*0.5;
57
57
  display:block;
58
58
  content: "";
59
59
  }
@@ -68,7 +68,7 @@
68
68
  position: absolute;
69
69
  top: 50%;
70
70
  right: $collapsible-header-padding;
71
- margin-top:-1*($collapsible-arrow-size)/2;
71
+ margin-top:-1*($collapsible-arrow-size)*0.5;
72
72
  display:block;
73
73
  content: "";
74
74
  }
@@ -109,7 +109,7 @@
109
109
  @include transition(all no-ease);
110
110
 
111
111
  position:relative;
112
- top: -($picker-height/2);
112
+ top: -($picker-height*0.5);
113
113
 
114
114
  padding-top: $picker-height;
115
115
  padding-bottom: $picker-height;
@@ -131,7 +131,7 @@
131
131
  padding-left: rem(5);
132
132
  padding-right: rem(5);
133
133
 
134
- top: -$picker-label-height / 2;
134
+ top: -$picker-label-height * 0.5;
135
135
  }
136
136
 
137
137
  .picker-container {
@@ -178,11 +178,11 @@
178
178
  width:100%;
179
179
  z-index:1001;
180
180
 
181
- top: $picker-height/2;
181
+ top: $picker-height*0.5;
182
182
  left: 0px;
183
183
 
184
184
  height: $picker-label-height;
185
- margin-top: -($picker-label-height/2) - ($picker-highlight-border-width);
185
+ margin-top: -($picker-label-height*0.5) - ($picker-highlight-border-width);
186
186
 
187
187
  border-top: $picker-highlight-border-width solid $picker-highlight-color;
188
188
  border-bottom: $picker-highlight-border-width solid $picker-highlight-color;
@@ -34,13 +34,13 @@
34
34
 
35
35
  z-index: 1;
36
36
 
37
- width: $radiobutton-size/2;
38
- height: $radiobutton-size/2;
37
+ width: $radiobutton-size*0.5;
38
+ height: $radiobutton-size*0.5;
39
39
 
40
40
  top: 50%;
41
41
  left: 50%;
42
- margin-top: -1*$radiobutton-size/4;
43
- margin-left: -1*$radiobutton-size/4;
42
+ margin-top: -1*$radiobutton-size*0.25;
43
+ margin-left: -1*$radiobutton-size*0.25;
44
44
 
45
45
  background: $radiobutton-dot-color;
46
46
  }
@@ -5,14 +5,14 @@
5
5
  .slider {
6
6
  @include border-radius($slider-border-radius);
7
7
  @include background($slider-background);
8
- @include transform(translate3d(0,($slider-knob-height/2),0));
8
+ @include transform(translate3d(0,($slider-knob-height*0.5),0));
9
9
  @include touch-action(none);
10
10
 
11
11
  overflow: visible;
12
12
 
13
13
  margin-bottom: $slider-knob-height;
14
- margin-left: ($slider-knob-width/2);
15
- margin-right: ($slider-knob-width/2);
14
+ margin-left: ($slider-knob-width*0.5);
15
+ margin-right: ($slider-knob-width*0.5);
16
16
 
17
17
  border: rem(1) solid $slider-border-color;
18
18
  }
@@ -22,8 +22,8 @@
22
22
  content: "";
23
23
  height: $slider-knob-height;
24
24
  position: absolute;
25
- top: -($slider-knob-height/2) + ($slider-height/2);
26
- left: -($slider-knob-width/2);
25
+ top: -($slider-knob-height*0.5) + ($slider-height*0.5);
26
+ left: -($slider-knob-width*0.5);
27
27
  padding-right: ($slider-knob-width);
28
28
  display: block;
29
29
  width: 100%;
@@ -62,8 +62,8 @@
62
62
  text-overflow: ellipsis;
63
63
  font-weight:normal;
64
64
 
65
- top: -($slider-knob-height/2) + ($slider-height/2) - rem(1);
66
- right: -1*$slider-knob-width/2;
65
+ top: -($slider-knob-height*0.5) + ($slider-height*0.5) - rem(1);
66
+ right: -1*$slider-knob-width*0.5;
67
67
  }
68
68
 
69
69
  .slider.percent > div:after {
@@ -6,6 +6,8 @@
6
6
  * If the first value is a color (or "transparent"), the mixin creates a plain colored background with it.
7
7
  * If multiple values are passed, the background mixins attempts to create a linear gradient through "linear-gradient" mixin.
8
8
  */
9
+ @use "sass:math";
10
+
9
11
  @mixin background($values) {
10
12
  @if (length($values) == 1) {
11
13
  background-color: $values;
@@ -97,7 +99,7 @@
97
99
  $next: nth($values, $i + 1);
98
100
 
99
101
  // If no position is passed inside color-stop, it calculates the position in percent.
100
- $pos: ($i - 1)*(1/($last - 1));
102
+ $pos: ($i - 1)*math.div(1, $last - 1);
101
103
 
102
104
  // Separator between color-stops.
103
105
  $separator: "";
@@ -1,3 +1,5 @@
1
+ @use "sass:math";
2
+
1
3
  @function rem($value, $factor: 1.0) {
2
4
  @if ($value != 0 and $value != auto) {
3
5
  @if (unitless($value)) {
@@ -5,10 +7,10 @@
5
7
  }
6
8
 
7
9
  @if (unit($factor) == "%") {
8
- $factor: $factor / ($factor * 0 + 1) / 100;
10
+ $factor: math.div($factor, $factor * 0 + 1) * 0.01;
9
11
  }
10
12
 
11
- $value: $factor*($value/16px) * 1rem;
13
+ $value: $factor*math.div($value, 16px) * 1rem;
12
14
  }
13
15
 
14
16
  @return $value;
File without changes
File without changes
File without changes
@@ -0,0 +1,13 @@
1
+
2
+ interface IMap {
3
+ [key:string] : any;
4
+ }
5
+
6
+ declare class ErrorImpl implements Error {
7
+ name: string;
8
+ message:string
9
+ }
10
+
11
+ declare module qx.registry {
12
+ function registerMainMethod(fn:(app: qx.application.Standalone)=>void):void;
13
+ }
@@ -194,10 +194,16 @@ qx.$$loader = {
194
194
  qx.$$loader.applicationHandlerReady = true;
195
195
  }
196
196
  }
197
- if (qx.$$loader.splashscreen)
197
+ if (qx.Class.$$brokenClassDefinitions) {
198
+ console.error("**************\n" +
199
+ "One or more class definitions did not load properly - please see error messages above for details.\n" +
200
+ "It is probable that your application will have unexpected errors. Please fix the class problems above before continuing.\n" +
201
+ "**************");
202
+ } else if (qx.$$loader.splashscreen) {
198
203
  qx.$$loader.splashscreen.loadComplete(done);
199
- else
204
+ } else {
200
205
  done();
206
+ }
201
207
  },
202
208
 
203
209
  /*
@@ -1,9 +1,11 @@
1
- (function(){
1
+ (function(){
2
2
 
3
3
  var path = require("path");
4
-
5
- if (typeof window === "undefined")
4
+
5
+ if (typeof window === "undefined")
6
6
  window = this;
7
+ window.addEventListener = function() {};
8
+ window.removeEventListener = function() {};
7
9
  window.dispatchEvent = function() {};
8
10
 
9
11
  if (!window.navigator) window.navigator = {};
@@ -14,12 +16,12 @@
14
16
  if (!window.navigator.cpuClass) window.navigator.cpuClass = "";
15
17
 
16
18
  // Node suppresses output to the "real" console when calling console.debug, it's only shown
17
- // in the debugger
19
+ // in the debugger
18
20
  console.debug = function() {
19
21
  var args = [].slice.apply(arguments);
20
22
  console.log.apply(this, args);
21
23
  };
22
-
24
+
23
25
  var JSDOM = null;
24
26
  try {
25
27
  JSDOM = require("jsdom").JSDOM;
@@ -36,6 +38,9 @@
36
38
  } else {
37
39
  window.document = document = {
38
40
  readyState: "ready",
41
+ currentScript: {
42
+ src: new (require('url').URL)('file:' + __filename).href
43
+ },
39
44
  createEvent: function() {
40
45
  return {
41
46
  initCustomEvent: function() {}
@@ -55,14 +60,14 @@
55
60
  if (!this.qxloadPrefixUrl)
56
61
  qxloadPrefixUrl = "";
57
62
 
58
- if (!window.qx)
63
+ if (!window.qx)
59
64
  window.qx = {};
60
-
65
+
61
66
  if (!qx.$$appRoot) {
62
67
  qx.$$appRoot = __dirname + path.sep;
63
68
  }
64
69
 
65
- if (!window.qxvariants)
70
+ if (!window.qxvariants)
66
71
  qxvariants = {};
67
72
 
68
73
  qx.$$start = new Date();
@@ -146,7 +151,7 @@
146
151
 
147
152
  var allScripts = l.decodeUris(l.urisBefore, "resourceUri");
148
153
  t.loadScriptList(allScripts);
149
-
154
+
150
155
  l.parts[l.boot].forEach(function(pkg) {
151
156
  t.loadScriptList(l.decodeUris(l.packages[pkg].uris));
152
157
  });
@@ -160,6 +165,7 @@
160
165
 
161
166
  loadScriptList: function(list) {
162
167
  list.forEach(function(uri) {
168
+ uri = uri.replace(/\?.*$/, '');
163
169
  var f = loaderMethod(uri);
164
170
  if (typeof f === "function") {
165
171
  var s = f.name === ""?path.basename(uri, ".js"):f.name;
@@ -172,8 +178,15 @@
172
178
  qx.Bootstrap.executePendingDefers();
173
179
  qx.$$loader.delayDefer = false;
174
180
  qx.$$loader.scriptLoaded = true;
175
- qx.core.BaseInit.ready();
176
- qx.$$loader.applicationHandlerReady = true;
181
+ if (qx.Class.$$brokenClassDefinitions) {
182
+ console.error("**************");
183
+ console.error("One or more class definitions did not load properly - please see error messages above for details.");
184
+ console.error("It is probable that your application will have unexpected errors. Please fix the class problems above before continuing.");
185
+ console.error("**************");
186
+ } else {
187
+ qx.core.BaseInit.ready();
188
+ qx.$$loader.applicationHandlerReady = true;
189
+ }
177
190
  },
178
191
 
179
192
  importPackageData : function(dataMap, callback) {
@@ -156,8 +156,15 @@
156
156
  qx.Bootstrap.executePendingDefers();
157
157
  qx.$$loader.delayDefer = false;
158
158
  qx.$$loader.scriptLoaded = true;
159
- qx.core.BaseInit.ready();
160
- qx.$$loader.applicationHandlerReady = true;
159
+ if (qx.Class.$$brokenClassDefinitions) {
160
+ console.error("**************");
161
+ console.error("One or more class definitions did not load properly - please see error messages above for details.");
162
+ console.error("It is probable that your application will have unexpected errors. Please fix the class problems above before continuing.");
163
+ console.error("**************");
164
+ } else {
165
+ qx.core.BaseInit.ready();
166
+ qx.$$loader.applicationHandlerReady = true;
167
+ }
161
168
  },
162
169
 
163
170
  importPackageData : function(dataMap, callback) {
@@ -145,7 +145,7 @@ $menu-item-selected-background: lighten($highlight-color, 20%), $highlight-colo
145
145
 
146
146
  $navigationbar-height: rem(40);
147
147
  $navigationbar-background: $color-2,$color-1;
148
- $navigationbar-text-size: $navigationbar-height/2;
148
+ $navigationbar-text-size: $navigationbar-height*0.5;
149
149
  $navigationbar-text-color: $background-color;
150
150
  $navigationbar-padding: rem(4);
151
151
  $navigationbar-font-weight: bold;