@qooxdoo/framework 7.0.0-beta.6 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1555) hide show
  1. package/CHANGELOG.md +0 -6
  2. package/Manifest.json +2 -2
  3. package/README.md +3 -1
  4. package/lib/compiler/compile-info.json +57 -55
  5. package/lib/compiler/index.js +6272 -4273
  6. package/lib/resource/qx/tool/cli/templates/skeleton/mobile/source/theme/custom/css/custom.css.map +1 -1
  7. package/lib/resource/qx/tool/loadsass.js +16 -15
  8. package/lib/resource/qx/tool/schema/compile-1-0-0.json +13 -13
  9. package/lib/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
  10. package/lib/resource/qx/tool/website/build/assets/buttons.js +391 -1
  11. package/lib/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
  12. package/lib/resource/qx/tool/website/build/assets/jquery.js +5452 -3
  13. package/lib/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
  14. package/lib/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
  15. package/lib/resource/qx/tool/website/build/scripts/serve.js +87 -66
  16. package/lib/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
  17. package/lib/resource/qx/tool/website/src/assets/buttons.js +391 -1
  18. package/lib/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
  19. package/lib/resource/qx/tool/website/src/assets/jquery.js +5452 -3
  20. package/lib/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
  21. package/lib/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
  22. package/lib/resource/qx/tool/website/src/scripts/serve.js +87 -66
  23. package/npm-shrinkwrap.json +7293 -0
  24. package/package.json +6 -4
  25. package/source/class/q.js +4 -2
  26. package/source/class/qx/Annotation.js +48 -57
  27. package/source/class/qx/Bootstrap.js +206 -207
  28. package/source/class/qx/Class.js +602 -504
  29. package/source/class/qx/Interface.js +169 -137
  30. package/source/class/qx/Mixin.js +162 -120
  31. package/source/class/qx/Part.js +48 -77
  32. package/source/class/qx/Promise.js +5891 -4655
  33. package/source/class/qx/Theme.js +200 -134
  34. package/source/class/qx/__init__.js +8 -8
  35. package/source/class/qx/application/AbstractGui.js +20 -32
  36. package/source/class/qx/application/Basic.js +9 -18
  37. package/source/class/qx/application/IApplication.js +6 -10
  38. package/source/class/qx/application/Inline.js +4 -7
  39. package/source/class/qx/application/Mobile.js +22 -45
  40. package/source/class/qx/application/Native.js +8 -19
  41. package/source/class/qx/application/Routing.js +88 -114
  42. package/source/class/qx/application/Standalone.js +4 -9
  43. package/source/class/qx/application/__init__.js +1 -1
  44. package/source/class/qx/bom/AnimationFrame.js +26 -25
  45. package/source/class/qx/bom/Blocker.js +92 -100
  46. package/source/class/qx/bom/Cookie.js +18 -22
  47. package/source/class/qx/bom/Document.js +24 -31
  48. package/source/class/qx/bom/Element.js +65 -51
  49. package/source/class/qx/bom/Event.js +68 -78
  50. package/source/class/qx/bom/FileReader.js +110 -115
  51. package/source/class/qx/bom/Font.js +82 -122
  52. package/source/class/qx/bom/FullScreen.js +32 -41
  53. package/source/class/qx/bom/GeoLocation.js +39 -44
  54. package/source/class/qx/bom/HashHistory.js +58 -64
  55. package/source/class/qx/bom/History.js +61 -89
  56. package/source/class/qx/bom/Html.js +75 -71
  57. package/source/class/qx/bom/IdleCallback.js +20 -23
  58. package/source/class/qx/bom/Iframe.js +37 -69
  59. package/source/class/qx/bom/IframeHistory.js +83 -88
  60. package/source/class/qx/bom/Input.js +50 -66
  61. package/source/class/qx/bom/Label.js +65 -86
  62. package/source/class/qx/bom/Lifecycle.js +7 -9
  63. package/source/class/qx/bom/MediaQuery.js +324 -307
  64. package/source/class/qx/bom/NativeHistory.js +51 -46
  65. package/source/class/qx/bom/Notification.js +41 -47
  66. package/source/class/qx/bom/PageVisibility.js +19 -25
  67. package/source/class/qx/bom/Range.js +20 -30
  68. package/source/class/qx/bom/Selection.js +163 -172
  69. package/source/class/qx/bom/Selector.js +2401 -2181
  70. package/source/class/qx/bom/Shortcut.js +103 -129
  71. package/source/class/qx/bom/Storage.js +9 -8
  72. package/source/class/qx/bom/String.js +285 -290
  73. package/source/class/qx/bom/Style.js +30 -31
  74. package/source/class/qx/bom/Stylesheet.js +36 -60
  75. package/source/class/qx/bom/Template.js +730 -657
  76. package/source/class/qx/bom/Viewport.js +40 -46
  77. package/source/class/qx/bom/Vml.js +43 -28
  78. package/source/class/qx/bom/WebWorker.js +61 -50
  79. package/source/class/qx/bom/Window.js +88 -105
  80. package/source/class/qx/bom/__init__.js +11 -11
  81. package/source/class/qx/bom/client/Browser.js +45 -47
  82. package/source/class/qx/bom/client/Css.js +85 -85
  83. package/source/class/qx/bom/client/CssAnimation.js +41 -49
  84. package/source/class/qx/bom/client/CssTransform.js +21 -29
  85. package/source/class/qx/bom/client/CssTransition.js +9 -12
  86. package/source/class/qx/bom/client/Device.js +45 -45
  87. package/source/class/qx/bom/client/EcmaScript.js +153 -96
  88. package/source/class/qx/bom/client/Engine.js +38 -35
  89. package/source/class/qx/bom/client/Event.js +75 -63
  90. package/source/class/qx/bom/client/Html.js +97 -97
  91. package/source/class/qx/bom/client/Idle.js +4 -6
  92. package/source/class/qx/bom/client/Locale.js +15 -15
  93. package/source/class/qx/bom/client/OperatingSystem.js +89 -106
  94. package/source/class/qx/bom/client/Pdfjs.js +1364 -1067
  95. package/source/class/qx/bom/client/PhoneGap.js +6 -9
  96. package/source/class/qx/bom/client/Plugin.js +93 -97
  97. package/source/class/qx/bom/client/Runtime.js +14 -12
  98. package/source/class/qx/bom/client/Scroll.js +20 -16
  99. package/source/class/qx/bom/client/Stylesheet.js +44 -32
  100. package/source/class/qx/bom/client/Transport.js +38 -41
  101. package/source/class/qx/bom/client/Xml.js +39 -41
  102. package/source/class/qx/bom/client/__init__.js +4 -4
  103. package/source/class/qx/bom/element/Animation.js +15 -12
  104. package/source/class/qx/bom/element/AnimationCss.js +95 -64
  105. package/source/class/qx/bom/element/AnimationHandle.js +22 -29
  106. package/source/class/qx/bom/element/AnimationJs.js +94 -71
  107. package/source/class/qx/bom/element/Attribute.js +119 -134
  108. package/source/class/qx/bom/element/Background.js +35 -35
  109. package/source/class/qx/bom/element/BoxSizing.js +43 -44
  110. package/source/class/qx/bom/element/Class.js +50 -72
  111. package/source/class/qx/bom/element/Clip.js +36 -60
  112. package/source/class/qx/bom/element/Cursor.js +13 -20
  113. package/source/class/qx/bom/element/Dataset.js +33 -31
  114. package/source/class/qx/bom/element/Decoration.js +178 -168
  115. package/source/class/qx/bom/element/Dimension.js +78 -60
  116. package/source/class/qx/bom/element/Location.js +87 -94
  117. package/source/class/qx/bom/element/Opacity.js +42 -44
  118. package/source/class/qx/bom/element/Scroll.js +78 -88
  119. package/source/class/qx/bom/element/Style.js +61 -101
  120. package/source/class/qx/bom/element/Transform.js +38 -56
  121. package/source/class/qx/bom/element/__init__.js +4 -4
  122. package/source/class/qx/bom/media/Abstract.js +136 -143
  123. package/source/class/qx/bom/media/Audio.js +7 -12
  124. package/source/class/qx/bom/media/Video.js +15 -27
  125. package/source/class/qx/bom/request/IRequest.js +18 -21
  126. package/source/class/qx/bom/request/Jsonp.js +34 -39
  127. package/source/class/qx/bom/request/Script.js +94 -90
  128. package/source/class/qx/bom/request/SimpleXhr.js +111 -79
  129. package/source/class/qx/bom/request/Xhr.js +196 -143
  130. package/source/class/qx/bom/request/__init__.js +1 -1
  131. package/source/class/qx/bom/rest/Resource.js +269 -203
  132. package/source/class/qx/bom/storage/Memory.js +18 -29
  133. package/source/class/qx/bom/storage/UserData.js +28 -35
  134. package/source/class/qx/bom/storage/Web.js +19 -30
  135. package/source/class/qx/bom/webfonts/Manager.js +199 -130
  136. package/source/class/qx/bom/webfonts/Validator.js +84 -118
  137. package/source/class/qx/bom/webfonts/WebFont.js +24 -28
  138. package/source/class/qx/bom/webfonts/__init__.js +1 -1
  139. package/source/class/qx/core/Aspect.js +15 -22
  140. package/source/class/qx/core/Assert.js +391 -333
  141. package/source/class/qx/core/AssertionError.js +6 -15
  142. package/source/class/qx/core/BaseInit.js +25 -28
  143. package/source/class/qx/core/Environment.js +72 -86
  144. package/source/class/qx/core/GlobalError.js +12 -20
  145. package/source/class/qx/core/IDisposable.js +6 -9
  146. package/source/class/qx/core/Id.js +25 -15
  147. package/source/class/qx/core/Init.js +20 -20
  148. package/source/class/qx/core/MAssert.js +54 -97
  149. package/source/class/qx/core/MBindTo.js +10 -14
  150. package/source/class/qx/core/MEvent.js +76 -65
  151. package/source/class/qx/core/MLogging.js +9 -18
  152. package/source/class/qx/core/MObjectId.js +104 -65
  153. package/source/class/qx/core/MProperty.js +18 -34
  154. package/source/class/qx/core/Object.js +93 -122
  155. package/source/class/qx/core/ObjectRegistry.js +58 -81
  156. package/source/class/qx/core/Property.js +974 -780
  157. package/source/class/qx/core/ValidationError.js +3 -4
  158. package/source/class/qx/core/WindowError.js +13 -24
  159. package/source/class/qx/core/Wrapper.js +8 -9
  160. package/source/class/qx/data/Array.js +178 -191
  161. package/source/class/qx/data/Conversion.js +11 -18
  162. package/source/class/qx/data/IListData.js +11 -20
  163. package/source/class/qx/data/MBinding.js +31 -26
  164. package/source/class/qx/data/SingleValueBinding.js +491 -225
  165. package/source/class/qx/data/__init__.js +1 -1
  166. package/source/class/qx/data/controller/CheckedList.js +82 -54
  167. package/source/class/qx/data/controller/Form.js +81 -69
  168. package/source/class/qx/data/controller/IControllerDelegate.js +7 -12
  169. package/source/class/qx/data/controller/ISelection.js +6 -10
  170. package/source/class/qx/data/controller/List.js +151 -167
  171. package/source/class/qx/data/controller/MSelection.js +53 -72
  172. package/source/class/qx/data/controller/Object.js +106 -77
  173. package/source/class/qx/data/controller/Tree.js +164 -142
  174. package/source/class/qx/data/controller/__init__.js +1 -1
  175. package/source/class/qx/data/controller/website/List.js +34 -43
  176. package/source/class/qx/data/controller/website/__init__.js +2 -2
  177. package/source/class/qx/data/marshal/IMarshaler.js +4 -7
  178. package/source/class/qx/data/marshal/IMarshalerDelegate.js +10 -18
  179. package/source/class/qx/data/marshal/Json.js +112 -85
  180. package/source/class/qx/data/marshal/MEventBubbling.js +44 -42
  181. package/source/class/qx/data/marshal/__init__.js +1 -1
  182. package/source/class/qx/data/store/IStoreDelegate.js +6 -9
  183. package/source/class/qx/data/store/Json.js +71 -85
  184. package/source/class/qx/data/store/Jsonp.js +19 -25
  185. package/source/class/qx/data/store/Offline.js +21 -29
  186. package/source/class/qx/data/store/Rest.js +25 -23
  187. package/source/class/qx/data/store/__init__.js +1 -1
  188. package/source/class/qx/dev/Debug.js +105 -124
  189. package/source/class/qx/dev/FakeServer.js +68 -65
  190. package/source/class/qx/dev/ObjectSummary.js +33 -39
  191. package/source/class/qx/dev/Profile.js +62 -63
  192. package/source/class/qx/dev/StackTrace.js +64 -70
  193. package/source/class/qx/dev/Tokenizer.js +114 -126
  194. package/source/class/qx/dev/unit/AbstractTestSuite.js +17 -31
  195. package/source/class/qx/dev/unit/AsyncWrapper.js +22 -26
  196. package/source/class/qx/dev/unit/JsUnitTestResult.js +9 -21
  197. package/source/class/qx/dev/unit/MMeasure.js +46 -37
  198. package/source/class/qx/dev/unit/MMock.js +236 -240
  199. package/source/class/qx/dev/unit/MRequirements.js +53 -79
  200. package/source/class/qx/dev/unit/MRequirementsBasic.js +24 -19
  201. package/source/class/qx/dev/unit/MTestLoader.js +52 -57
  202. package/source/class/qx/dev/unit/MeasurementResult.js +18 -22
  203. package/source/class/qx/dev/unit/RequirementError.js +8 -17
  204. package/source/class/qx/dev/unit/Sinon.js +18826 -4613
  205. package/source/class/qx/dev/unit/TestCase.js +40 -51
  206. package/source/class/qx/dev/unit/TestClass.js +22 -23
  207. package/source/class/qx/dev/unit/TestFunction.js +28 -48
  208. package/source/class/qx/dev/unit/TestLoader.js +11 -14
  209. package/source/class/qx/dev/unit/TestLoaderBasic.js +3 -6
  210. package/source/class/qx/dev/unit/TestLoaderInline.js +8 -14
  211. package/source/class/qx/dev/unit/TestLoaderMobile.js +8 -14
  212. package/source/class/qx/dev/unit/TestLoaderNative.js +7 -13
  213. package/source/class/qx/dev/unit/TestResult.js +140 -118
  214. package/source/class/qx/dev/unit/TestSuite.js +46 -55
  215. package/source/class/qx/dom/Element.js +29 -74
  216. package/source/class/qx/dom/Hierarchy.js +60 -95
  217. package/source/class/qx/dom/Node.js +54 -81
  218. package/source/class/qx/dom/__init__.js +9 -9
  219. package/source/class/qx/event/AcceleratingTimer.js +28 -46
  220. package/source/class/qx/event/Emitter.js +54 -49
  221. package/source/class/qx/event/GlobalError.js +22 -38
  222. package/source/class/qx/event/IEventDispatcher.js +4 -9
  223. package/source/class/qx/event/IEventHandler.js +7 -13
  224. package/source/class/qx/event/Idle.js +32 -47
  225. package/source/class/qx/event/Manager.js +222 -237
  226. package/source/class/qx/event/Messaging.js +55 -48
  227. package/source/class/qx/event/Pool.js +5 -8
  228. package/source/class/qx/event/Registration.js +128 -118
  229. package/source/class/qx/event/Timer.js +50 -96
  230. package/source/class/qx/event/Utils.js +41 -28
  231. package/source/class/qx/event/dispatch/AbstractBubbling.js +133 -93
  232. package/source/class/qx/event/dispatch/Direct.js +46 -51
  233. package/source/class/qx/event/dispatch/DomBubbling.js +8 -15
  234. package/source/class/qx/event/dispatch/MouseCapture.js +74 -91
  235. package/source/class/qx/event/handler/Appear.js +40 -77
  236. package/source/class/qx/event/handler/Application.js +100 -126
  237. package/source/class/qx/event/handler/Capture.js +15 -37
  238. package/source/class/qx/event/handler/DragDrop.js +342 -228
  239. package/source/class/qx/event/handler/Element.js +45 -72
  240. package/source/class/qx/event/handler/ElementResize.js +35 -70
  241. package/source/class/qx/event/handler/Focus.js +908 -637
  242. package/source/class/qx/event/handler/Gesture.js +144 -93
  243. package/source/class/qx/event/handler/GestureCore.js +214 -163
  244. package/source/class/qx/event/handler/Iframe.js +21 -35
  245. package/source/class/qx/event/handler/Input.js +332 -209
  246. package/source/class/qx/event/handler/Keyboard.js +325 -270
  247. package/source/class/qx/event/handler/Mouse.js +212 -173
  248. package/source/class/qx/event/handler/Object.js +13 -31
  249. package/source/class/qx/event/handler/Offline.js +52 -67
  250. package/source/class/qx/event/handler/Orientation.js +56 -62
  251. package/source/class/qx/event/handler/OrientationCore.js +33 -43
  252. package/source/class/qx/event/handler/Pointer.js +84 -72
  253. package/source/class/qx/event/handler/PointerCore.js +183 -105
  254. package/source/class/qx/event/handler/Touch.js +43 -59
  255. package/source/class/qx/event/handler/TouchCore.js +159 -120
  256. package/source/class/qx/event/handler/Transition.js +91 -100
  257. package/source/class/qx/event/handler/UserAction.js +18 -42
  258. package/source/class/qx/event/handler/Video.js +12 -12
  259. package/source/class/qx/event/handler/Window.js +53 -69
  260. package/source/class/qx/event/message/Bus.js +109 -128
  261. package/source/class/qx/event/message/Message.js +14 -29
  262. package/source/class/qx/event/type/Data.js +11 -22
  263. package/source/class/qx/event/type/Dom.js +37 -52
  264. package/source/class/qx/event/type/Drag.js +37 -56
  265. package/source/class/qx/event/type/Event.js +80 -104
  266. package/source/class/qx/event/type/Focus.js +5 -8
  267. package/source/class/qx/event/type/GeoPosition.js +32 -41
  268. package/source/class/qx/event/type/KeyInput.js +9 -19
  269. package/source/class/qx/event/type/KeySequence.js +10 -21
  270. package/source/class/qx/event/type/Mouse.js +69 -72
  271. package/source/class/qx/event/type/MouseWheel.js +5 -9
  272. package/source/class/qx/event/type/Native.js +16 -27
  273. package/source/class/qx/event/type/Orientation.js +18 -30
  274. package/source/class/qx/event/type/Pinch.js +21 -27
  275. package/source/class/qx/event/type/Pointer.js +38 -41
  276. package/source/class/qx/event/type/Rest.js +7 -10
  277. package/source/class/qx/event/type/Roll.js +49 -58
  278. package/source/class/qx/event/type/Rotate.js +21 -27
  279. package/source/class/qx/event/type/Swipe.js +75 -86
  280. package/source/class/qx/event/type/Tap.js +2 -4
  281. package/source/class/qx/event/type/Touch.js +262 -286
  282. package/source/class/qx/event/type/Track.js +23 -28
  283. package/source/class/qx/event/type/dom/Custom.js +24 -20
  284. package/source/class/qx/event/type/dom/Pointer.js +86 -60
  285. package/source/class/qx/event/util/Keyboard.js +94 -106
  286. package/source/class/qx/html/Blocker.js +17 -18
  287. package/source/class/qx/html/Canvas.js +13 -29
  288. package/source/class/qx/html/Element.js +372 -497
  289. package/source/class/qx/html/Factory.js +31 -26
  290. package/source/class/qx/html/Iframe.js +35 -69
  291. package/source/class/qx/html/Image.js +43 -55
  292. package/source/class/qx/html/Input.js +44 -57
  293. package/source/class/qx/html/Jsx.js +49 -41
  294. package/source/class/qx/html/JsxRef.js +3 -5
  295. package/source/class/qx/html/Label.js +20 -32
  296. package/source/class/qx/html/Node.js +362 -422
  297. package/source/class/qx/html/Root.js +7 -16
  298. package/source/class/qx/html/Text.js +34 -27
  299. package/source/class/qx/io/ImageLoader.js +66 -90
  300. package/source/class/qx/io/PartLoader.js +17 -30
  301. package/source/class/qx/io/exception/Cancel.js +4 -5
  302. package/source/class/qx/io/exception/Exception.js +4 -5
  303. package/source/class/qx/io/exception/Protocol.js +2 -3
  304. package/source/class/qx/io/exception/Transport.js +13 -14
  305. package/source/class/qx/io/graphql/Client.js +22 -12
  306. package/source/class/qx/io/graphql/protocol/Message.js +3 -3
  307. package/source/class/qx/io/graphql/protocol/Request.js +8 -10
  308. package/source/class/qx/io/graphql/protocol/Response.js +7 -5
  309. package/source/class/qx/io/jsonrpc/Client.js +70 -38
  310. package/source/class/qx/io/jsonrpc/__init__.js +1 -1
  311. package/source/class/qx/io/jsonrpc/protocol/Batch.js +14 -8
  312. package/source/class/qx/io/jsonrpc/protocol/Error.js +11 -9
  313. package/source/class/qx/io/jsonrpc/protocol/Message.js +3 -3
  314. package/source/class/qx/io/jsonrpc/protocol/Notification.js +8 -6
  315. package/source/class/qx/io/jsonrpc/protocol/Parser.js +33 -9
  316. package/source/class/qx/io/jsonrpc/protocol/Request.js +8 -7
  317. package/source/class/qx/io/jsonrpc/protocol/Result.js +7 -6
  318. package/source/class/qx/io/part/ClosurePart.js +16 -35
  319. package/source/class/qx/io/part/Package.js +35 -63
  320. package/source/class/qx/io/part/Part.js +29 -53
  321. package/source/class/qx/io/part/__init__.js +4 -4
  322. package/source/class/qx/io/request/AbstractRequest.js +268 -201
  323. package/source/class/qx/io/request/Jsonp.js +16 -19
  324. package/source/class/qx/io/request/Xhr.js +38 -37
  325. package/source/class/qx/io/request/__init__.js +1 -1
  326. package/source/class/qx/io/request/authentication/Basic.js +7 -13
  327. package/source/class/qx/io/request/authentication/Bearer.js +7 -13
  328. package/source/class/qx/io/request/authentication/IAuthentication.js +3 -6
  329. package/source/class/qx/io/request/authentication/__init__.js +1 -1
  330. package/source/class/qx/io/rest/Resource.js +122 -90
  331. package/source/class/qx/io/transport/AbstractClient.js +31 -10
  332. package/source/class/qx/io/transport/AbstractTransport.js +7 -8
  333. package/source/class/qx/io/transport/Fetch.js +8 -5
  334. package/source/class/qx/io/transport/ITransport.js +4 -2
  335. package/source/class/qx/io/transport/PostMessage.js +1 -2
  336. package/source/class/qx/io/transport/Websocket.js +5 -5
  337. package/source/class/qx/io/transport/Xhr.js +17 -18
  338. package/source/class/qx/lang/Array.js +133 -170
  339. package/source/class/qx/lang/Function.js +101 -104
  340. package/source/class/qx/lang/Json.js +1041 -774
  341. package/source/class/qx/lang/Number.js +11 -16
  342. package/source/class/qx/lang/Object.js +129 -100
  343. package/source/class/qx/lang/String.js +86 -94
  344. package/source/class/qx/lang/Type.js +44 -65
  345. package/source/class/qx/lang/normalize/Array.js +39 -49
  346. package/source/class/qx/lang/normalize/Date.js +50 -32
  347. package/source/class/qx/lang/normalize/Error.js +4 -7
  348. package/source/class/qx/lang/normalize/Function.js +11 -19
  349. package/source/class/qx/lang/normalize/Number.js +3 -5
  350. package/source/class/qx/lang/normalize/Object.js +17 -18
  351. package/source/class/qx/lang/normalize/String.js +39 -40
  352. package/source/class/qx/locale/Date.js +175 -178
  353. package/source/class/qx/locale/Key.js +13 -11
  354. package/source/class/qx/locale/LocalizedString.js +18 -15
  355. package/source/class/qx/locale/MTranslation.js +22 -23
  356. package/source/class/qx/locale/Manager.js +62 -100
  357. package/source/class/qx/locale/Number.js +20 -12
  358. package/source/class/qx/locale/String.js +26 -15
  359. package/source/class/qx/log/Logger.js +128 -180
  360. package/source/class/qx/log/__init__.js +3 -3
  361. package/source/class/qx/log/appender/Console.js +100 -111
  362. package/source/class/qx/log/appender/Element.js +25 -39
  363. package/source/class/qx/log/appender/Formatter.js +117 -66
  364. package/source/class/qx/log/appender/Native.js +4 -10
  365. package/source/class/qx/log/appender/NodeConsole.js +20 -28
  366. package/source/class/qx/log/appender/PhoneGap.js +5 -13
  367. package/source/class/qx/log/appender/RhinoConsole.js +12 -23
  368. package/source/class/qx/log/appender/RhinoFile.js +19 -26
  369. package/source/class/qx/log/appender/RingBuffer.js +10 -19
  370. package/source/class/qx/log/appender/Util.js +11 -9
  371. package/source/class/qx/module/Animation.js +73 -63
  372. package/source/class/qx/module/Attribute.js +27 -46
  373. package/source/class/qx/module/Blocker.js +33 -41
  374. package/source/class/qx/module/Cookie.js +6 -10
  375. package/source/class/qx/module/Css.js +82 -97
  376. package/source/class/qx/module/Dataset.js +12 -24
  377. package/source/class/qx/module/Environment.js +4 -6
  378. package/source/class/qx/module/Event.js +124 -127
  379. package/source/class/qx/module/Io.js +5 -9
  380. package/source/class/qx/module/Manipulating.js +98 -117
  381. package/source/class/qx/module/MatchMedia.js +50 -24
  382. package/source/class/qx/module/Messaging.js +6 -10
  383. package/source/class/qx/module/Placeholder.js +54 -44
  384. package/source/class/qx/module/Placement.js +33 -33
  385. package/source/class/qx/module/Rest.js +3 -4
  386. package/source/class/qx/module/Storage.js +34 -48
  387. package/source/class/qx/module/Template.js +6 -9
  388. package/source/class/qx/module/TextSelection.js +13 -21
  389. package/source/class/qx/module/Transform.js +28 -45
  390. package/source/class/qx/module/Traversing.js +160 -154
  391. package/source/class/qx/module/__init__.js +1 -1
  392. package/source/class/qx/module/dev/FakeServer.js +19 -25
  393. package/source/class/qx/module/event/GestureHandler.js +25 -13
  394. package/source/class/qx/module/event/Keyboard.js +42 -31
  395. package/source/class/qx/module/event/Mouse.js +48 -46
  396. package/source/class/qx/module/event/Native.js +18 -30
  397. package/source/class/qx/module/event/Orientation.js +11 -18
  398. package/source/class/qx/module/event/OrientationHandler.js +19 -17
  399. package/source/class/qx/module/event/Pinch.js +13 -14
  400. package/source/class/qx/module/event/Pointer.js +22 -22
  401. package/source/class/qx/module/event/PointerHandler.js +14 -11
  402. package/source/class/qx/module/event/Rotate.js +13 -14
  403. package/source/class/qx/module/event/Swipe.js +18 -24
  404. package/source/class/qx/module/event/Tap.js +25 -25
  405. package/source/class/qx/module/event/Touch.js +4 -7
  406. package/source/class/qx/module/event/TouchHandler.js +16 -16
  407. package/source/class/qx/module/event/Track.js +13 -14
  408. package/source/class/qx/module/util/Array.js +30 -41
  409. package/source/class/qx/module/util/Function.js +1 -2
  410. package/source/class/qx/module/util/Object.js +8 -11
  411. package/source/class/qx/module/util/String.js +10 -18
  412. package/source/class/qx/module/util/Type.js +3 -4
  413. package/source/class/qx/test/Annotation.js +195 -89
  414. package/source/class/qx/test/Bootstrap.js +98 -124
  415. package/source/class/qx/test/Browser.js +8 -11
  416. package/source/class/qx/test/Class.js +164 -198
  417. package/source/class/qx/test/Dom.js +10 -28
  418. package/source/class/qx/test/EditDistance.js +16 -16
  419. package/source/class/qx/test/Interface.js +380 -383
  420. package/source/class/qx/test/MAppearance.js +10 -14
  421. package/source/class/qx/test/MDecoration.js +1 -3
  422. package/source/class/qx/test/Mixin.js +449 -173
  423. package/source/class/qx/test/Promise.js +422 -333
  424. package/source/class/qx/test/Theme.js +204 -179
  425. package/source/class/qx/test/Xml.js +155 -84
  426. package/source/class/qx/test/application/Routing.js +45 -44
  427. package/source/class/qx/test/bom/AnimationFrame.js +23 -21
  428. package/source/class/qx/test/bom/Attribute.js +66 -47
  429. package/source/class/qx/test/bom/Basic.js +52 -27
  430. package/source/class/qx/test/bom/Blocker.js +100 -70
  431. package/source/class/qx/test/bom/Class.js +19 -34
  432. package/source/class/qx/test/bom/Cookie.js +49 -28
  433. package/source/class/qx/test/bom/Dataset.js +12 -24
  434. package/source/class/qx/test/bom/Element.js +55 -47
  435. package/source/class/qx/test/bom/Event.js +68 -45
  436. package/source/class/qx/test/bom/FileReader.js +6 -12
  437. package/source/class/qx/test/bom/Font.js +256 -118
  438. package/source/class/qx/test/bom/GeoLocation.js +82 -64
  439. package/source/class/qx/test/bom/History.js +63 -84
  440. package/source/class/qx/test/bom/IdleCallback.js +51 -38
  441. package/source/class/qx/test/bom/Iframe.js +14 -18
  442. package/source/class/qx/test/bom/Label.js +74 -105
  443. package/source/class/qx/test/bom/Location.js +70 -99
  444. package/source/class/qx/test/bom/PageVisibility.js +13 -16
  445. package/source/class/qx/test/bom/Selector.js +16 -16
  446. package/source/class/qx/test/bom/String.js +19 -15
  447. package/source/class/qx/test/bom/Stylesheet.js +39 -48
  448. package/source/class/qx/test/bom/Template.js +49 -57
  449. package/source/class/qx/test/bom/Viewport.js +7 -11
  450. package/source/class/qx/test/bom/WebWorker.js +49 -37
  451. package/source/class/qx/test/bom/Window.js +6 -12
  452. package/source/class/qx/test/bom/client/Css.js +26 -19
  453. package/source/class/qx/test/bom/client/Device.js +29 -18
  454. package/source/class/qx/test/bom/client/OperatingSystem.js +17 -20
  455. package/source/class/qx/test/bom/client/Pdfjs.js +15 -13
  456. package/source/class/qx/test/bom/element/AnimationHandle.js +20 -17
  457. package/source/class/qx/test/bom/element/AnimationJs.js +48 -31
  458. package/source/class/qx/test/bom/element/Background.js +93 -46
  459. package/source/class/qx/test/bom/element/BoxSizing.js +66 -61
  460. package/source/class/qx/test/bom/element/Class.js +33 -58
  461. package/source/class/qx/test/bom/element/Dimension.js +58 -37
  462. package/source/class/qx/test/bom/element/Style.js +87 -83
  463. package/source/class/qx/test/bom/element/Transform.js +209 -86
  464. package/source/class/qx/test/bom/media/Audio.js +18 -14
  465. package/source/class/qx/test/bom/media/MediaTestCase.js +61 -66
  466. package/source/class/qx/test/bom/media/Video.js +39 -28
  467. package/source/class/qx/test/bom/request/Jsonp.js +60 -57
  468. package/source/class/qx/test/bom/request/Script.js +150 -138
  469. package/source/class/qx/test/bom/request/SimpleXhr.js +206 -134
  470. package/source/class/qx/test/bom/request/Xhr.js +179 -132
  471. package/source/class/qx/test/bom/request/XhrWithRemote.js +206 -160
  472. package/source/class/qx/test/bom/rest/Resource.js +345 -281
  473. package/source/class/qx/test/bom/rest/ResourceWithRemote.js +74 -57
  474. package/source/class/qx/test/bom/storage/Local.js +3 -4
  475. package/source/class/qx/test/bom/storage/Session.js +3 -4
  476. package/source/class/qx/test/bom/storage/WebStorageTestCase.js +28 -27
  477. package/source/class/qx/test/bom/webfonts/Abstract.js +8 -10
  478. package/source/class/qx/test/bom/webfonts/Manager.js +127 -80
  479. package/source/class/qx/test/bom/webfonts/Validator.js +36 -30
  480. package/source/class/qx/test/compiler/ClassFile.js +29 -11
  481. package/source/class/qx/test/compiler/jsdoc/Parser.js +122 -96
  482. package/source/class/qx/test/core/Assert.js +151 -86
  483. package/source/class/qx/test/core/Environment.js +162 -123
  484. package/source/class/qx/test/core/EventEmitterDummy.js +7 -8
  485. package/source/class/qx/test/core/InheritanceDummy.js +23 -33
  486. package/source/class/qx/test/core/MemoryManagement.js +13 -5
  487. package/source/class/qx/test/core/Object.js +106 -112
  488. package/source/class/qx/test/core/ObjectId.js +7 -6
  489. package/source/class/qx/test/core/Property.js +483 -387
  490. package/source/class/qx/test/core/PropertyHelper.js +49 -64
  491. package/source/class/qx/test/core/Target.js +9 -13
  492. package/source/class/qx/test/core/Validation.js +409 -136
  493. package/source/class/qx/test/data/DataArray.js +1059 -394
  494. package/source/class/qx/test/data/DataArrayWithChangeBubble.js +315 -172
  495. package/source/class/qx/test/data/__init__.js +4 -4
  496. package/source/class/qx/test/data/controller/Form.js +141 -99
  497. package/source/class/qx/test/data/controller/FormWithArrayAndModel.js +66 -51
  498. package/source/class/qx/test/data/controller/List.js +644 -336
  499. package/source/class/qx/test/data/controller/ListReverse.js +64 -63
  500. package/source/class/qx/test/data/controller/ListWithObjects.js +305 -149
  501. package/source/class/qx/test/data/controller/Object.js +252 -94
  502. package/source/class/qx/test/data/controller/Tree.js +1219 -383
  503. package/source/class/qx/test/data/controller/__init__.js +4 -4
  504. package/source/class/qx/test/data/marshal/Json.js +832 -447
  505. package/source/class/qx/test/data/marshal/__init__.js +4 -4
  506. package/source/class/qx/test/data/singlevalue/Array.js +383 -144
  507. package/source/class/qx/test/data/singlevalue/Deep.js +361 -175
  508. package/source/class/qx/test/data/singlevalue/Resolve.js +51 -29
  509. package/source/class/qx/test/data/singlevalue/Simple.js +530 -208
  510. package/source/class/qx/test/data/singlevalue/TextFieldDummy.js +32 -28
  511. package/source/class/qx/test/data/singlevalue/__init__.js +4 -4
  512. package/source/class/qx/test/data/store/Json.js +574 -313
  513. package/source/class/qx/test/data/store/Jsonp.js +103 -77
  514. package/source/class/qx/test/data/store/Offline.js +127 -110
  515. package/source/class/qx/test/data/store/Rest.js +58 -52
  516. package/source/class/qx/test/data/store/RestWithRemote.js +36 -30
  517. package/source/class/qx/test/data/store/__init__.js +4 -4
  518. package/source/class/qx/test/dev/Debug.js +9 -13
  519. package/source/class/qx/test/dev/StackTrace.js +51 -42
  520. package/source/class/qx/test/dev/unit/Requirements.js +36 -49
  521. package/source/class/qx/test/dev/unit/Sinon.js +85 -73
  522. package/source/class/qx/test/dev/unit/TestCase.js +12 -17
  523. package/source/class/qx/test/dom/Element.js +17 -12
  524. package/source/class/qx/test/dom/Hierarchy.js +53 -38
  525. package/source/class/qx/test/dom/Node.js +97 -43
  526. package/source/class/qx/test/event/Bubbling.js +258 -88
  527. package/source/class/qx/test/event/Emitter.js +38 -39
  528. package/source/class/qx/test/event/GlobalError.js +59 -87
  529. package/source/class/qx/test/event/GlobalEventMonitors.js +22 -25
  530. package/source/class/qx/test/event/Messaging.js +66 -49
  531. package/source/class/qx/test/event/MockBubblingHandler.js +10 -15
  532. package/source/class/qx/test/event/MockHandler.js +14 -33
  533. package/source/class/qx/test/event/Registration.js +38 -32
  534. package/source/class/qx/test/event/Timer.js +61 -39
  535. package/source/class/qx/test/event/Utils.js +164 -123
  536. package/source/class/qx/test/event/dispatch/MouseCapture.js +61 -51
  537. package/source/class/qx/test/event/dispatch/MouseEventOnDocument.js +22 -23
  538. package/source/class/qx/test/event/dispatch/TestingHandler.js +8 -10
  539. package/source/class/qx/test/event/dispatch/TestingWindow.js +9 -13
  540. package/source/class/qx/test/event/dispatch/__init__.js +4 -4
  541. package/source/class/qx/test/event/handler/Offline.js +7 -8
  542. package/source/class/qx/test/event/message/Bus.js +112 -72
  543. package/source/class/qx/test/event/message/__init__.js +4 -4
  544. package/source/class/qx/test/event/type/Dom.js +12 -11
  545. package/source/class/qx/test/event/type/Event.js +7 -16
  546. package/source/class/qx/test/event/type/Mouse.js +12 -11
  547. package/source/class/qx/test/event/type/Native.js +12 -11
  548. package/source/class/qx/test/event/type/__init__.js +4 -4
  549. package/source/class/qx/test/event/util/Keyboard.js +4 -3
  550. package/source/class/qx/test/html/Element.js +538 -239
  551. package/source/class/qx/test/html/Iframe.js +85 -73
  552. package/source/class/qx/test/html/jsx/TestJsx.js +15 -4
  553. package/source/class/qx/test/html/jsx/TestJsxBrowser.js +37 -19
  554. package/source/class/qx/test/html/jsx/TestWidget.js +26 -26
  555. package/source/class/qx/test/io/ImageLoader.js +256 -160
  556. package/source/class/qx/test/io/MAssert.js +7 -7
  557. package/source/class/qx/test/io/MRemoteTest.js +9 -11
  558. package/source/class/qx/test/io/__init__.js +4 -4
  559. package/source/class/qx/test/io/graphql/Client.js +135 -114
  560. package/source/class/qx/test/io/graphql/ClientFetch.js +4 -4
  561. package/source/class/qx/test/io/graphql/Request.js +12 -13
  562. package/source/class/qx/test/io/jsonrpc/Client.js +135 -69
  563. package/source/class/qx/test/io/jsonrpc/Protocol.js +42 -14
  564. package/source/class/qx/test/io/request/Jsonp.js +23 -20
  565. package/source/class/qx/test/io/request/JsonpWithRemote.js +25 -22
  566. package/source/class/qx/test/io/request/MRequest.js +137 -114
  567. package/source/class/qx/test/io/request/Xhr.js +367 -209
  568. package/source/class/qx/test/io/request/XhrWithRemote.js +133 -100
  569. package/source/class/qx/test/io/rest/Resource.js +325 -270
  570. package/source/class/qx/test/io/rest/ResourceWithRemote.js +75 -58
  571. package/source/class/qx/test/io/transport/PostMessage.js +5 -5
  572. package/source/class/qx/test/io/transport/Websocket.js +9 -8
  573. package/source/class/qx/test/lang/Array.js +79 -105
  574. package/source/class/qx/test/lang/Function.js +64 -53
  575. package/source/class/qx/test/lang/Json.js +51 -79
  576. package/source/class/qx/test/lang/Number.js +4 -6
  577. package/source/class/qx/test/lang/Object.js +143 -133
  578. package/source/class/qx/test/lang/String.js +151 -95
  579. package/source/class/qx/test/lang/Type.js +34 -44
  580. package/source/class/qx/test/lang/Webkit.js +8 -13
  581. package/source/class/qx/test/lang/normalize/Array.js +121 -68
  582. package/source/class/qx/test/lang/normalize/Date.js +232 -49
  583. package/source/class/qx/test/lang/normalize/Error.js +5 -8
  584. package/source/class/qx/test/lang/normalize/Function.js +7 -13
  585. package/source/class/qx/test/lang/normalize/Object.js +22 -29
  586. package/source/class/qx/test/lang/normalize/String.js +19 -28
  587. package/source/class/qx/test/locale/Date.js +91 -43
  588. package/source/class/qx/test/locale/Locale.js +52 -32
  589. package/source/class/qx/test/locale/LocalizedString.js +12 -12
  590. package/source/class/qx/test/log/DeprecationMethodOverriding.js +52 -31
  591. package/source/class/qx/test/log/Filters.js +6 -3
  592. package/source/class/qx/test/log/Formatter.js +13 -7
  593. package/source/class/qx/test/log/Logger.js +19 -29
  594. package/source/class/qx/test/log/RingBuffer.js +14 -25
  595. package/source/class/qx/test/log/__init__.js +4 -4
  596. package/source/class/qx/test/log/fixture/ClassA.js +22 -22
  597. package/source/class/qx/test/log/fixture/ClassB1.js +7 -9
  598. package/source/class/qx/test/log/fixture/ClassB2.js +5 -7
  599. package/source/class/qx/test/log/fixture/ClassC1.js +5 -7
  600. package/source/class/qx/test/log/fixture/ClassC2.js +7 -9
  601. package/source/class/qx/test/mobile/LocaleSwitch.js +29 -36
  602. package/source/class/qx/test/mobile/MobileTestCase.js +39 -49
  603. package/source/class/qx/test/mobile/basic/Atom.js +129 -53
  604. package/source/class/qx/test/mobile/basic/Image.js +41 -31
  605. package/source/class/qx/test/mobile/basic/Label.js +6 -10
  606. package/source/class/qx/test/mobile/container/Carousel.js +41 -45
  607. package/source/class/qx/test/mobile/container/Composite.js +48 -65
  608. package/source/class/qx/test/mobile/container/Drawer.js +42 -29
  609. package/source/class/qx/test/mobile/container/Navigation.js +14 -20
  610. package/source/class/qx/test/mobile/container/Scroll.js +23 -19
  611. package/source/class/qx/test/mobile/core/Widget.js +150 -86
  612. package/source/class/qx/test/mobile/dialog/Menu.js +47 -26
  613. package/source/class/qx/test/mobile/dialog/Popup.js +30 -19
  614. package/source/class/qx/test/mobile/embed/Html.js +5 -8
  615. package/source/class/qx/test/mobile/form/Button.js +15 -13
  616. package/source/class/qx/test/mobile/form/CheckBox.js +21 -17
  617. package/source/class/qx/test/mobile/form/Form.js +37 -24
  618. package/source/class/qx/test/mobile/form/Group.js +5 -9
  619. package/source/class/qx/test/mobile/form/Label.js +11 -13
  620. package/source/class/qx/test/mobile/form/NumberField.js +49 -45
  621. package/source/class/qx/test/mobile/form/RadioButton.js +30 -19
  622. package/source/class/qx/test/mobile/form/SelectBox.js +39 -25
  623. package/source/class/qx/test/mobile/form/SingleRenderer.js +31 -27
  624. package/source/class/qx/test/mobile/form/Slider.js +55 -35
  625. package/source/class/qx/test/mobile/form/TextArea.js +34 -24
  626. package/source/class/qx/test/mobile/form/TextField.js +34 -24
  627. package/source/class/qx/test/mobile/form/ToggleButton.js +10 -14
  628. package/source/class/qx/test/mobile/layout/Card.js +21 -17
  629. package/source/class/qx/test/mobile/layout/HBox.js +25 -20
  630. package/source/class/qx/test/mobile/layout/VBox.js +25 -21
  631. package/source/class/qx/test/mobile/list/List.js +114 -83
  632. package/source/class/qx/test/mobile/navigationbar/NavigationBar.js +5 -9
  633. package/source/class/qx/test/mobile/page/Manager.js +7 -13
  634. package/source/class/qx/test/mobile/page/NavigationPage.js +7 -17
  635. package/source/class/qx/test/mobile/page/Page.js +101 -68
  636. package/source/class/qx/test/mobile/tabbar/TabBar.js +11 -21
  637. package/source/class/qx/test/mobile/toolbar/Toolbar.js +16 -16
  638. package/source/class/qx/test/performance/BaseCall.js +31 -36
  639. package/source/class/qx/test/performance/Event.js +60 -53
  640. package/source/class/qx/test/performance/Object.js +16 -22
  641. package/source/class/qx/test/performance/Property.js +20 -22
  642. package/source/class/qx/test/performance/data/Marshaling.js +25 -30
  643. package/source/class/qx/test/performance/decorator/AbstractDecorator.js +22 -34
  644. package/source/class/qx/test/performance/decorator/Background.js +4 -6
  645. package/source/class/qx/test/performance/decorator/BackgroundScale.js +6 -8
  646. package/source/class/qx/test/performance/decorator/Single.js +4 -6
  647. package/source/class/qx/test/performance/element/Element.js +50 -67
  648. package/source/class/qx/test/performance/widget/AbstractWidget.js +31 -44
  649. package/source/class/qx/test/performance/widget/Button.js +5 -7
  650. package/source/class/qx/test/performance/widget/Label.js +5 -7
  651. package/source/class/qx/test/performance/widget/RichLabel.js +6 -8
  652. package/source/class/qx/test/performance/widget/Widget.js +5 -7
  653. package/source/class/qx/test/performance/widget/WidgetWithDecorator.js +7 -9
  654. package/source/class/qx/test/performance/widget/WidgetWithSingle.js +9 -11
  655. package/source/class/qx/test/renderer/Color.js +22 -49
  656. package/source/class/qx/test/testclasses/BaseClassBoth.js +11 -8
  657. package/source/class/qx/test/testclasses/BaseClassIncluded.js +5 -6
  658. package/source/class/qx/test/testclasses/BaseClassPatched.js +15 -8
  659. package/source/class/qx/test/testclasses/DerivedClassBoth.js +7 -7
  660. package/source/class/qx/test/testclasses/DerivedClassIncluded.js +7 -7
  661. package/source/class/qx/test/testclasses/DerivedClassPatched.js +7 -7
  662. package/source/class/qx/test/testclasses/MMixinOne.js +4 -4
  663. package/source/class/qx/test/testclasses/MMixinTwo.js +2 -2
  664. package/source/class/qx/test/testclasses/RootClass.js +8 -8
  665. package/source/class/qx/test/theme/__init__.js +4 -4
  666. package/source/class/qx/test/theme/manager/Color.js +52 -66
  667. package/source/class/qx/test/theme/manager/Decoration.js +177 -154
  668. package/source/class/qx/test/theme/manager/Font.js +68 -39
  669. package/source/class/qx/test/theme/manager/Icon.js +46 -43
  670. package/source/class/qx/test/theme/manager/Meta.js +121 -110
  671. package/source/class/qx/test/theme/manager/__init__.js +4 -4
  672. package/source/class/qx/test/theme/manager/mock/Appearance.js +17 -23
  673. package/source/class/qx/test/theme/manager/mock/Color.js +7 -9
  674. package/source/class/qx/test/theme/manager/mock/Decoration.js +7 -10
  675. package/source/class/qx/test/theme/manager/mock/Font.js +6 -10
  676. package/source/class/qx/test/theme/simple/Appearance.js +268 -210
  677. package/source/class/qx/test/tool/utils/Utils.js +10 -8
  678. package/source/class/qx/test/toolchain/PrivateOptimization.js +20 -13
  679. package/source/class/qx/test/toolchain/TestRunner.js +12 -12
  680. package/source/class/qx/test/toolchain/VariantOptimization.js +37 -26
  681. package/source/class/qx/test/toolchain/__init__.js +4 -4
  682. package/source/class/qx/test/type/Array.js +8 -12
  683. package/source/class/qx/test/type/BaseArray.js +58 -78
  684. package/source/class/qx/test/type/BaseString.js +27 -65
  685. package/source/class/qx/test/type/__init__.js +4 -4
  686. package/source/class/qx/test/ui/BackgroundColor.js +20 -21
  687. package/source/class/qx/test/ui/ChildrenHandling.js +136 -81
  688. package/source/class/qx/test/ui/Destroy.js +310 -248
  689. package/source/class/qx/test/ui/Focus.js +40 -87
  690. package/source/class/qx/test/ui/Insets.js +14 -18
  691. package/source/class/qx/test/ui/LayoutTestCase.js +99 -92
  692. package/source/class/qx/test/ui/LocaleSwitch.js +37 -41
  693. package/source/class/qx/test/ui/RadioItems.js +11 -22
  694. package/source/class/qx/test/ui/Widget.js +13 -17
  695. package/source/class/qx/test/ui/Window.js +26 -39
  696. package/source/class/qx/test/ui/basic/Atom.js +37 -25
  697. package/source/class/qx/test/ui/basic/Image.js +179 -138
  698. package/source/class/qx/test/ui/basic/Label.js +147 -65
  699. package/source/class/qx/test/ui/basic/__init__.js +4 -4
  700. package/source/class/qx/test/ui/command/Command.js +105 -69
  701. package/source/class/qx/test/ui/command/Group.js +24 -21
  702. package/source/class/qx/test/ui/command/GroupManager.js +7 -12
  703. package/source/class/qx/test/ui/container/Stack.js +26 -36
  704. package/source/class/qx/test/ui/core/AbstractScrollArea.js +84 -67
  705. package/source/class/qx/test/ui/core/Appearance.js +53 -54
  706. package/source/class/qx/test/ui/core/Blocker.js +80 -44
  707. package/source/class/qx/test/ui/core/DragDropScrolling.js +69 -55
  708. package/source/class/qx/test/ui/core/Placement.js +22 -34
  709. package/source/class/qx/test/ui/core/Queues.js +28 -39
  710. package/source/class/qx/test/ui/core/SizeHint.js +32 -76
  711. package/source/class/qx/test/ui/core/SizeHintX.js +8 -15
  712. package/source/class/qx/test/ui/core/SizeHintY.js +8 -15
  713. package/source/class/qx/test/ui/core/Spacer.js +11 -18
  714. package/source/class/qx/test/ui/core/Widget.js +117 -112
  715. package/source/class/qx/test/ui/core/__init__.js +4 -4
  716. package/source/class/qx/test/ui/decoration/LinearGradient.js +18 -14
  717. package/source/class/qx/test/ui/embed/Iframe.js +69 -65
  718. package/source/class/qx/test/ui/embed/__init__.js +4 -4
  719. package/source/class/qx/test/ui/form/AbstractSelectBox.js +11 -16
  720. package/source/class/qx/test/ui/form/AbstractVirtualBox.js +12 -19
  721. package/source/class/qx/test/ui/form/BooleanFormat.js +40 -25
  722. package/source/class/qx/test/ui/form/Color.js +29 -19
  723. package/source/class/qx/test/ui/form/ComboBox.js +39 -25
  724. package/source/class/qx/test/ui/form/Date.js +34 -21
  725. package/source/class/qx/test/ui/form/DateField.js +16 -19
  726. package/source/class/qx/test/ui/form/Executable.js +98 -68
  727. package/source/class/qx/test/ui/form/Field.js +65 -54
  728. package/source/class/qx/test/ui/form/Form.js +211 -123
  729. package/source/class/qx/test/ui/form/FormManager.js +72 -100
  730. package/source/class/qx/test/ui/form/FormValidator.js +549 -399
  731. package/source/class/qx/test/ui/form/Label.js +87 -65
  732. package/source/class/qx/test/ui/form/List.js +19 -19
  733. package/source/class/qx/test/ui/form/MenuButton.js +26 -20
  734. package/source/class/qx/test/ui/form/ModelProperty.js +40 -36
  735. package/source/class/qx/test/ui/form/ModelSelection.js +39 -84
  736. package/source/class/qx/test/ui/form/NumberFormat.js +30 -19
  737. package/source/class/qx/test/ui/form/Placeholder.js +147 -87
  738. package/source/class/qx/test/ui/form/RadioButtonGroup.js +31 -26
  739. package/source/class/qx/test/ui/form/RadioGroup.js +58 -54
  740. package/source/class/qx/test/ui/form/Range.js +63 -28
  741. package/source/class/qx/test/ui/form/Renderer.js +39 -33
  742. package/source/class/qx/test/ui/form/Resetter.js +21 -35
  743. package/source/class/qx/test/ui/form/Slider.js +37 -21
  744. package/source/class/qx/test/ui/form/Spinner.js +9 -5
  745. package/source/class/qx/test/ui/form/SplitButton.js +7 -11
  746. package/source/class/qx/test/ui/form/StringFormat.js +60 -30
  747. package/source/class/qx/test/ui/form/TextArea.js +59 -41
  748. package/source/class/qx/test/ui/form/TextField.js +14 -16
  749. package/source/class/qx/test/ui/form/ToggleButton.js +20 -24
  750. package/source/class/qx/test/ui/form/VirtualSelectBox.js +66 -40
  751. package/source/class/qx/test/ui/form/__init__.js +4 -4
  752. package/source/class/qx/test/ui/form/virtual/VirtualComboBox.js +58 -60
  753. package/source/class/qx/test/ui/form/virtual/VirtualDropDownList.js +120 -110
  754. package/source/class/qx/test/ui/form/virtual/VirtualSelectBox.js +43 -27
  755. package/source/class/qx/test/ui/groupbox/CheckGroupBox.js +13 -18
  756. package/source/class/qx/test/ui/indicator/ProgressBar.js +73 -48
  757. package/source/class/qx/test/ui/layout/Box.js +23 -22
  758. package/source/class/qx/test/ui/layout/Flow.js +233 -153
  759. package/source/class/qx/test/ui/layout/Grid.js +88 -101
  760. package/source/class/qx/test/ui/layout/LayoutItem.js +57 -83
  761. package/source/class/qx/test/ui/layout/LayoutRoot.js +7 -11
  762. package/source/class/qx/test/ui/layout/Util.js +30 -31
  763. package/source/class/qx/test/ui/layout/__init__.js +4 -4
  764. package/source/class/qx/test/ui/list/AbstractListTest.js +13 -21
  765. package/source/class/qx/test/ui/list/Group.js +191 -114
  766. package/source/class/qx/test/ui/list/List.js +189 -132
  767. package/source/class/qx/test/ui/list/MAssert.js +14 -9
  768. package/source/class/qx/test/ui/list/ObjectGroup.js +131 -109
  769. package/source/class/qx/test/ui/list/core/MultiSelection.js +58 -44
  770. package/source/class/qx/test/ui/list/core/SingleSelection.js +43 -43
  771. package/source/class/qx/test/ui/list/fixture/GroupMock.js +6 -9
  772. package/source/class/qx/test/ui/list/fixture/ItemMock.js +9 -13
  773. package/source/class/qx/test/ui/root/Inline.js +22 -20
  774. package/source/class/qx/test/ui/selection/AbstractMultiSelectonTest.js +188 -105
  775. package/source/class/qx/test/ui/selection/AbstractSingleSelectonTest.js +173 -125
  776. package/source/class/qx/test/ui/selection/ListMultiSelection.js +19 -21
  777. package/source/class/qx/test/ui/selection/ListSingleSelection.js +19 -21
  778. package/source/class/qx/test/ui/selection/RadioGroup.js +41 -29
  779. package/source/class/qx/test/ui/selection/SelectBox.js +11 -17
  780. package/source/class/qx/test/ui/selection/Stack.js +22 -27
  781. package/source/class/qx/test/ui/selection/TabView.js +35 -26
  782. package/source/class/qx/test/ui/selection/TreeMultiSelection.js +14 -19
  783. package/source/class/qx/test/ui/selection/TreeSingleSelection.js +20 -24
  784. package/source/class/qx/test/ui/selection/__init__.js +4 -4
  785. package/source/class/qx/test/ui/table/Dispose.js +46 -46
  786. package/source/class/qx/test/ui/table/Table.js +74 -69
  787. package/source/class/qx/test/ui/table/__init__.js +4 -4
  788. package/source/class/qx/test/ui/table/celleditor/AbstractField.js +14 -28
  789. package/source/class/qx/test/ui/table/celleditor/ComboBox.js +11 -18
  790. package/source/class/qx/test/ui/table/celleditor/PasswordField.js +6 -10
  791. package/source/class/qx/test/ui/table/celleditor/SelectBox.js +16 -32
  792. package/source/class/qx/test/ui/table/celleditor/TextField.js +6 -9
  793. package/source/class/qx/test/ui/table/celleditor/__init__.js +4 -4
  794. package/source/class/qx/test/ui/table/columnmodel/Basic.js +130 -129
  795. package/source/class/qx/test/ui/table/model/Filtered.js +51 -36
  796. package/source/class/qx/test/ui/table/model/Simple.js +43 -45
  797. package/source/class/qx/test/ui/table/selection/Model.js +70 -22
  798. package/source/class/qx/test/ui/toolbar/OverflowHandling.js +145 -123
  799. package/source/class/qx/test/ui/toolbar/ToolBar.js +20 -30
  800. package/source/class/qx/test/ui/tree/Tree.js +63 -42
  801. package/source/class/qx/test/ui/tree/TreeFolder.js +44 -46
  802. package/source/class/qx/test/ui/tree/virtual/AbstractTreeTest.js +61 -96
  803. package/source/class/qx/test/ui/tree/virtual/MultiSelection.js +68 -39
  804. package/source/class/qx/test/ui/tree/virtual/OneSelection.js +82 -42
  805. package/source/class/qx/test/ui/tree/virtual/OpenCloseController.js +80 -101
  806. package/source/class/qx/test/ui/tree/virtual/SingleSelection.js +40 -32
  807. package/source/class/qx/test/ui/tree/virtual/Sorting.js +46 -47
  808. package/source/class/qx/test/ui/tree/virtual/Tree.js +267 -191
  809. package/source/class/qx/test/ui/tree/virtual/TreeItem.js +60 -63
  810. package/source/class/qx/test/ui/tree/virtual/UtilTest.js +65 -50
  811. package/source/class/qx/test/ui/tree/virtual/WidgetProvider.js +127 -132
  812. package/source/class/qx/test/ui/virtual/Axis.js +210 -193
  813. package/source/class/qx/test/ui/virtual/Pane.js +287 -190
  814. package/source/class/qx/test/ui/virtual/PaneUpdate.js +71 -77
  815. package/source/class/qx/test/ui/virtual/PointerEventMock.js +10 -13
  816. package/source/class/qx/test/ui/virtual/Scroller.js +29 -39
  817. package/source/class/qx/test/ui/virtual/__init__.js +4 -4
  818. package/source/class/qx/test/ui/virtual/cell/WidgetCell.js +39 -40
  819. package/source/class/qx/test/ui/virtual/layer/CellSpanManager.js +157 -127
  820. package/source/class/qx/test/ui/virtual/layer/Column.js +6 -10
  821. package/source/class/qx/test/ui/virtual/layer/GridLines.js +6 -10
  822. package/source/class/qx/test/ui/virtual/layer/GridLinesHorizontal.js +6 -9
  823. package/source/class/qx/test/ui/virtual/layer/GridLinesVertical.js +6 -9
  824. package/source/class/qx/test/ui/virtual/layer/HtmlCell.js +12 -19
  825. package/source/class/qx/test/ui/virtual/layer/HtmlCellSpan.js +13 -21
  826. package/source/class/qx/test/ui/virtual/layer/LayerMock.js +31 -43
  827. package/source/class/qx/test/ui/virtual/layer/LayerSimple.js +26 -26
  828. package/source/class/qx/test/ui/virtual/layer/LayerTestCase.js +52 -50
  829. package/source/class/qx/test/ui/virtual/layer/Row.js +6 -10
  830. package/source/class/qx/test/ui/virtual/layer/WidgetCell.js +45 -52
  831. package/source/class/qx/test/ui/virtual/layer/WidgetCellSpan.js +71 -48
  832. package/source/class/qx/test/ui/virtual/layer/__init__.js +4 -4
  833. package/source/class/qx/test/ui/virtual/performance/AbstractLayerTest.js +84 -68
  834. package/source/class/qx/test/ui/virtual/performance/DomCell.js +6 -9
  835. package/source/class/qx/test/ui/virtual/performance/DomPoolCell.js +6 -9
  836. package/source/class/qx/test/ui/virtual/performance/HtmlDivCell.js +7 -11
  837. package/source/class/qx/test/ui/virtual/performance/HtmlDivRelative.js +6 -9
  838. package/source/class/qx/test/ui/virtual/performance/HtmlTableCell.js +8 -13
  839. package/source/class/qx/test/ui/virtual/performance/HtmlTableCellNaive.js +8 -13
  840. package/source/class/qx/test/ui/virtual/performance/HtmlTableCssCell.js +8 -19
  841. package/source/class/qx/test/ui/virtual/performance/WidgetCell.js +10 -15
  842. package/source/class/qx/test/ui/virtual/performance/__init__.js +4 -4
  843. package/source/class/qx/test/ui/virtual/performance/layer/DomCell.js +24 -18
  844. package/source/class/qx/test/ui/virtual/performance/layer/DomPoolCell.js +28 -26
  845. package/source/class/qx/test/ui/virtual/performance/layer/HtmlDivRelative.js +13 -17
  846. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCell.js +29 -28
  847. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCellNaive.js +22 -24
  848. package/source/class/qx/test/ui/virtual/performance/layer/HtmlTableCssCell.js +32 -47
  849. package/source/class/qx/test/ui/virtual/performance/layer/__init__.js +4 -4
  850. package/source/class/qx/test/ui/window/Desktop.js +21 -12
  851. package/source/class/qx/test/util/Base64.js +10 -13
  852. package/source/class/qx/test/util/ColorUtil.js +121 -54
  853. package/source/class/qx/test/util/DateFormat.js +582 -351
  854. package/source/class/qx/test/util/DateMock.js +16 -19
  855. package/source/class/qx/test/util/DeferredCall.js +12 -13
  856. package/source/class/qx/test/util/Delegate.js +28 -26
  857. package/source/class/qx/test/util/DisposeUtil.js +32 -14
  858. package/source/class/qx/test/util/DynamicScriptLoader.js +99 -64
  859. package/source/class/qx/test/util/Fsm.js +16 -18
  860. package/source/class/qx/test/util/Function.js +23 -19
  861. package/source/class/qx/test/util/LibraryManager.js +15 -22
  862. package/source/class/qx/test/util/NumberFormat.js +53 -64
  863. package/source/class/qx/test/util/PropertyUtil.js +35 -35
  864. package/source/class/qx/test/util/Request.js +26 -18
  865. package/source/class/qx/test/util/ResourceManager.js +50 -35
  866. package/source/class/qx/test/util/ResponseParser.js +45 -35
  867. package/source/class/qx/test/util/RingBuffer.js +15 -28
  868. package/source/class/qx/test/util/Serializer.js +210 -153
  869. package/source/class/qx/test/util/StringBuilder.js +7 -13
  870. package/source/class/qx/test/util/StringSplit.js +114 -69
  871. package/source/class/qx/test/util/Uri.js +74 -78
  872. package/source/class/qx/test/util/Validate.js +95 -64
  873. package/source/class/qx/test/util/placement/BestFitAxis.js +17 -26
  874. package/source/class/qx/test/util/placement/DirectAxis.js +8 -11
  875. package/source/class/qx/test/util/placement/KeepAlignAxis.js +17 -26
  876. package/source/class/qx/test/util/placement/Placement.js +607 -244
  877. package/source/class/qx/test/util/placement/__init__.js +4 -4
  878. package/source/class/qx/theme/Classic.js +9 -11
  879. package/source/class/qx/theme/Indigo.js +9 -11
  880. package/source/class/qx/theme/Modern.js +9 -11
  881. package/source/class/qx/theme/Simple.js +9 -11
  882. package/source/class/qx/theme/TangibleDark.js +1 -1
  883. package/source/class/qx/theme/TangibleLight.js +1 -1
  884. package/source/class/qx/theme/__init__.js +4 -4
  885. package/source/class/qx/theme/classic/Appearance.js +995 -1336
  886. package/source/class/qx/theme/classic/Color.js +83 -83
  887. package/source/class/qx/theme/classic/Decoration.js +318 -299
  888. package/source/class/qx/theme/classic/Font.js +38 -25
  889. package/source/class/qx/theme/icon/Oxygen.js +4 -5
  890. package/source/class/qx/theme/icon/Tango.js +4 -5
  891. package/source/class/qx/theme/indigo/Appearance.js +66 -85
  892. package/source/class/qx/theme/indigo/Color.js +65 -66
  893. package/source/class/qx/theme/indigo/Decoration.js +31 -45
  894. package/source/class/qx/theme/indigo/Font.js +20 -29
  895. package/source/class/qx/theme/manager/Appearance.js +58 -91
  896. package/source/class/qx/theme/manager/Color.js +20 -41
  897. package/source/class/qx/theme/manager/Decoration.js +72 -100
  898. package/source/class/qx/theme/manager/Font.js +51 -67
  899. package/source/class/qx/theme/manager/Icon.js +13 -27
  900. package/source/class/qx/theme/manager/Meta.js +27 -44
  901. package/source/class/qx/theme/modern/Appearance.js +1049 -1440
  902. package/source/class/qx/theme/modern/Color.js +155 -166
  903. package/source/class/qx/theme/modern/Decoration.js +471 -598
  904. package/source/class/qx/theme/modern/Font.js +59 -52
  905. package/source/class/qx/theme/simple/Appearance.js +936 -1207
  906. package/source/class/qx/theme/simple/Color.js +62 -62
  907. package/source/class/qx/theme/simple/Decoration.js +456 -678
  908. package/source/class/qx/theme/simple/Font.js +18 -25
  909. package/source/class/qx/theme/simple/Image.js +49 -52
  910. package/source/class/qx/theme/tangible/Appearance.js +1575 -1743
  911. package/source/class/qx/theme/tangible/ColorDark.js +5 -5
  912. package/source/class/qx/theme/tangible/ColorEngine.js +38 -35
  913. package/source/class/qx/theme/tangible/ColorLight.js +7 -7
  914. package/source/class/qx/theme/tangible/Decoration.js +1108 -1300
  915. package/source/class/qx/theme/tangible/Font.js +66 -70
  916. package/source/class/qx/theme/tangible/Image.js +44 -48
  917. package/source/class/qx/tool/cli/Application.js +5 -5
  918. package/source/class/qx/tool/cli/Cli.js +103 -52
  919. package/source/class/qx/tool/cli/ConfigDb.js +18 -15
  920. package/source/class/qx/tool/cli/LibraryApplication.js +1 -1
  921. package/source/class/qx/tool/cli/Watch.js +174 -102
  922. package/source/class/qx/tool/cli/api/AbstractApi.js +17 -18
  923. package/source/class/qx/tool/cli/api/CompilerApi.js +15 -8
  924. package/source/class/qx/tool/cli/api/LibraryApi.js +4 -6
  925. package/source/class/qx/tool/cli/api/Test.js +12 -9
  926. package/source/class/qx/tool/cli/commands/Add.js +12 -15
  927. package/source/class/qx/tool/cli/commands/Clean.js +10 -9
  928. package/source/class/qx/tool/cli/commands/Command.js +18 -13
  929. package/source/class/qx/tool/cli/commands/Compile.js +630 -264
  930. package/source/class/qx/tool/cli/commands/Config.js +75 -42
  931. package/source/class/qx/tool/cli/commands/Create.js +108 -59
  932. package/source/class/qx/tool/cli/commands/Deploy.js +138 -86
  933. package/source/class/qx/tool/cli/commands/Es6ify.js +118 -0
  934. package/source/class/qx/tool/cli/commands/Lint.js +75 -34
  935. package/source/class/qx/tool/cli/commands/Migrate.js +13 -7
  936. package/source/class/qx/tool/cli/commands/Package.js +67 -45
  937. package/source/class/qx/tool/cli/commands/Pkg.js +21 -18
  938. package/source/class/qx/tool/cli/commands/Run.js +57 -37
  939. package/source/class/qx/tool/cli/commands/Serve.js +62 -37
  940. package/source/class/qx/tool/cli/commands/Test.js +40 -18
  941. package/source/class/qx/tool/cli/commands/add/Class.js +66 -28
  942. package/source/class/qx/tool/cli/commands/add/Script.js +54 -27
  943. package/source/class/qx/tool/cli/commands/package/Install.js +265 -103
  944. package/source/class/qx/tool/cli/commands/package/List.js +199 -75
  945. package/source/class/qx/tool/cli/commands/package/Migrate.js +7 -3
  946. package/source/class/qx/tool/cli/commands/package/Publish.js +209 -117
  947. package/source/class/qx/tool/cli/commands/package/Remove.js +40 -17
  948. package/source/class/qx/tool/cli/commands/package/Update.js +115 -48
  949. package/source/class/qx/tool/cli/commands/package/Upgrade.js +41 -20
  950. package/source/class/qx/tool/compiler/Analyser.js +427 -222
  951. package/source/class/qx/tool/compiler/ClassFile.js +831 -401
  952. package/source/class/qx/tool/compiler/Console.js +136 -87
  953. package/source/class/qx/tool/compiler/Es6ify.js +404 -0
  954. package/source/class/qx/tool/compiler/Preprocess.js +28 -25
  955. package/source/class/qx/tool/compiler/app/Application.js +149 -72
  956. package/source/class/qx/tool/compiler/app/Cldr.js +506 -106
  957. package/source/class/qx/tool/compiler/app/Library.js +62 -27
  958. package/source/class/qx/tool/compiler/app/Part.js +10 -12
  959. package/source/class/qx/tool/compiler/app/Translation.js +189 -162
  960. package/source/class/qx/tool/compiler/app/WebFont.js +215 -161
  961. package/source/class/qx/tool/compiler/jsdoc/ChildControlParser.js +3 -3
  962. package/source/class/qx/tool/compiler/jsdoc/CommandParser.js +8 -9
  963. package/source/class/qx/tool/compiler/jsdoc/ParamParser.js +7 -6
  964. package/source/class/qx/tool/compiler/jsdoc/Parser.js +27 -18
  965. package/source/class/qx/tool/compiler/jsdoc/ReturnParser.js +3 -3
  966. package/source/class/qx/tool/compiler/jsdoc/ThrowsParser.js +4 -4
  967. package/source/class/qx/tool/compiler/makers/AbstractAppMaker.js +5 -6
  968. package/source/class/qx/tool/compiler/makers/AppMaker.js +38 -18
  969. package/source/class/qx/tool/compiler/makers/Maker.js +29 -21
  970. package/source/class/qx/tool/compiler/resources/AbstractMatcher.js +8 -8
  971. package/source/class/qx/tool/compiler/resources/Asset.js +123 -61
  972. package/source/class/qx/tool/compiler/resources/ImageLoader.js +18 -8
  973. package/source/class/qx/tool/compiler/resources/Manager.js +156 -93
  974. package/source/class/qx/tool/compiler/resources/MetaLoader.js +5 -3
  975. package/source/class/qx/tool/compiler/resources/ResourceConverter.js +8 -8
  976. package/source/class/qx/tool/compiler/resources/ResourceLoader.js +8 -9
  977. package/source/class/qx/tool/compiler/resources/ScssConverter.js +54 -18
  978. package/source/class/qx/tool/compiler/resources/ScssFile.js +157 -80
  979. package/source/class/qx/tool/compiler/resources/ScssIncludeConverter.js +3 -3
  980. package/source/class/qx/tool/compiler/targets/BuildTarget.js +23 -13
  981. package/source/class/qx/tool/compiler/targets/SourceCodeCopier.js +29 -9
  982. package/source/class/qx/tool/compiler/targets/SourceTarget.js +2 -2
  983. package/source/class/qx/tool/compiler/targets/Target.js +292 -188
  984. package/source/class/qx/tool/compiler/targets/TypeScriptWriter.js +163 -103
  985. package/source/class/qx/tool/compiler/targets/meta/AbstractJavascriptMeta.js +48 -23
  986. package/source/class/qx/tool/compiler/targets/meta/ApplicationMeta.js +75 -62
  987. package/source/class/qx/tool/compiler/targets/meta/BootJs.js +49 -29
  988. package/source/class/qx/tool/compiler/targets/meta/Javascript.js +6 -7
  989. package/source/class/qx/tool/compiler/targets/meta/Package.js +54 -51
  990. package/source/class/qx/tool/compiler/targets/meta/PackageJavascript.js +41 -21
  991. package/source/class/qx/tool/compiler/targets/meta/Part.js +9 -10
  992. package/source/class/qx/tool/compiler/targets/meta/PolyfillJs.js +10 -5
  993. package/source/class/qx/tool/compiler/targets/meta/Uglify.js +35 -23
  994. package/source/class/qx/tool/config/Abstract.js +61 -25
  995. package/source/class/qx/tool/config/Compile.js +3 -2
  996. package/source/class/qx/tool/config/Lockfile.js +3 -2
  997. package/source/class/qx/tool/config/Manifest.js +3 -2
  998. package/source/class/qx/tool/config/Registry.js +4 -3
  999. package/source/class/qx/tool/config/Utils.js +88 -37
  1000. package/source/class/qx/tool/migration/BaseMigration.js +67 -25
  1001. package/source/class/qx/tool/migration/M6_0_0.js +96 -46
  1002. package/source/class/qx/tool/migration/M7_0_0.js +12 -6
  1003. package/source/class/qx/tool/migration/Runner.js +28 -14
  1004. package/source/class/qx/tool/utils/IndexedArray.js +15 -18
  1005. package/source/class/qx/tool/utils/Json.js +35 -14
  1006. package/source/class/qx/tool/utils/LogManager.js +50 -26
  1007. package/source/class/qx/tool/utils/Logger.js +11 -12
  1008. package/source/class/qx/tool/utils/Promisify.js +45 -49
  1009. package/source/class/qx/tool/utils/Utils.js +63 -48
  1010. package/source/class/qx/tool/utils/Values.js +4 -7
  1011. package/source/class/qx/tool/utils/Website.js +82 -29
  1012. package/source/class/qx/tool/utils/files/FindFiles.js +37 -33
  1013. package/source/class/qx/tool/utils/files/Utils.js +74 -54
  1014. package/source/class/qx/tool/utils/json/Parser.js +163 -54
  1015. package/source/class/qx/tool/utils/json/Stringify.js +87 -72
  1016. package/source/class/qx/tool/utils/json/Tokenizer.js +64 -39
  1017. package/source/class/qx/tool/utils/json/Writer.js +20 -21
  1018. package/source/class/qx/type/Array.js +19 -41
  1019. package/source/class/qx/type/BaseArray.js +136 -151
  1020. package/source/class/qx/type/BaseError.js +17 -34
  1021. package/source/class/qx/type/BaseString.js +104 -121
  1022. package/source/class/qx/type/__init__.js +3 -3
  1023. package/source/class/qx/ui/basic/Atom.js +75 -109
  1024. package/source/class/qx/ui/basic/Image.js +283 -319
  1025. package/source/class/qx/ui/basic/Label.js +161 -208
  1026. package/source/class/qx/ui/command/Command.js +51 -86
  1027. package/source/class/qx/ui/command/Group.js +43 -50
  1028. package/source/class/qx/ui/command/GroupManager.js +50 -53
  1029. package/source/class/qx/ui/container/Composite.js +15 -29
  1030. package/source/class/qx/ui/container/Resizer.js +7 -11
  1031. package/source/class/qx/ui/container/Scroll.js +10 -21
  1032. package/source/class/qx/ui/container/SlideBar.js +76 -119
  1033. package/source/class/qx/ui/container/Stack.js +27 -54
  1034. package/source/class/qx/ui/control/ColorPopup.js +109 -130
  1035. package/source/class/qx/ui/control/ColorSelector.js +334 -301
  1036. package/source/class/qx/ui/control/DateChooser.js +143 -177
  1037. package/source/class/qx/ui/core/Blocker.js +91 -127
  1038. package/source/class/qx/ui/core/ColumnData.js +16 -34
  1039. package/source/class/qx/ui/core/DragDropCursor.js +17 -30
  1040. package/source/class/qx/ui/core/DragDropScrolling.js +8 -14
  1041. package/source/class/qx/ui/core/EventHandler.js +108 -132
  1042. package/source/class/qx/ui/core/FocusHandler.js +78 -127
  1043. package/source/class/qx/ui/core/IMultiSelection.js +5 -9
  1044. package/source/class/qx/ui/core/ISingleSelection.js +10 -16
  1045. package/source/class/qx/ui/core/ISingleSelectionProvider.js +4 -6
  1046. package/source/class/qx/ui/core/LayoutItem.js +190 -306
  1047. package/source/class/qx/ui/core/MBlocker.js +22 -38
  1048. package/source/class/qx/ui/core/MChildrenHandling.js +14 -29
  1049. package/source/class/qx/ui/core/MContentPadding.js +50 -69
  1050. package/source/class/qx/ui/core/MDragDropScrolling.js +82 -80
  1051. package/source/class/qx/ui/core/MExecutable.js +27 -52
  1052. package/source/class/qx/ui/core/MLayoutHandling.js +6 -14
  1053. package/source/class/qx/ui/core/MMovable.js +64 -80
  1054. package/source/class/qx/ui/core/MMultiSelectionHandling.js +68 -87
  1055. package/source/class/qx/ui/core/MNativeOverflow.js +16 -26
  1056. package/source/class/qx/ui/core/MPlacement.js +171 -170
  1057. package/source/class/qx/ui/core/MRemoteChildrenHandling.js +14 -27
  1058. package/source/class/qx/ui/core/MRemoteLayoutHandling.js +4 -7
  1059. package/source/class/qx/ui/core/MResizable.js +142 -175
  1060. package/source/class/qx/ui/core/MSingleSelectionHandling.js +40 -45
  1061. package/source/class/qx/ui/core/SingleSelectionManager.js +41 -60
  1062. package/source/class/qx/ui/core/Spacer.js +12 -22
  1063. package/source/class/qx/ui/core/Widget.js +628 -983
  1064. package/source/class/qx/ui/core/queue/Appearance.js +15 -24
  1065. package/source/class/qx/ui/core/queue/Dispose.js +7 -16
  1066. package/source/class/qx/ui/core/queue/Layout.js +44 -71
  1067. package/source/class/qx/ui/core/queue/Manager.js +140 -133
  1068. package/source/class/qx/ui/core/queue/Visibility.js +21 -39
  1069. package/source/class/qx/ui/core/queue/Widget.js +15 -26
  1070. package/source/class/qx/ui/core/scroll/AbstractScrollArea.js +124 -162
  1071. package/source/class/qx/ui/core/scroll/IScrollBar.js +13 -24
  1072. package/source/class/qx/ui/core/scroll/MRoll.js +14 -19
  1073. package/source/class/qx/ui/core/scroll/MScrollBarFactory.js +3 -6
  1074. package/source/class/qx/ui/core/scroll/MWheelHandling.js +10 -12
  1075. package/source/class/qx/ui/core/scroll/NativeScrollBar.js +101 -125
  1076. package/source/class/qx/ui/core/scroll/ScrollBar.js +86 -130
  1077. package/source/class/qx/ui/core/scroll/ScrollPane.js +95 -134
  1078. package/source/class/qx/ui/core/scroll/ScrollSlider.js +13 -19
  1079. package/source/class/qx/ui/core/scroll/__init__.js +4 -4
  1080. package/source/class/qx/ui/core/selection/Abstract.js +255 -456
  1081. package/source/class/qx/ui/core/selection/ScrollArea.js +35 -73
  1082. package/source/class/qx/ui/core/selection/Widget.js +57 -120
  1083. package/source/class/qx/ui/decoration/Abstract.js +11 -20
  1084. package/source/class/qx/ui/decoration/Decorator.js +56 -55
  1085. package/source/class/qx/ui/decoration/IDecorator.js +5 -11
  1086. package/source/class/qx/ui/decoration/MBackgroundColor.js +13 -20
  1087. package/source/class/qx/ui/decoration/MBackgroundImage.js +82 -77
  1088. package/source/class/qx/ui/decoration/MBorderImage.js +72 -94
  1089. package/source/class/qx/ui/decoration/MBorderRadius.js +35 -38
  1090. package/source/class/qx/ui/decoration/MBoxShadow.js +61 -55
  1091. package/source/class/qx/ui/decoration/MDoubleBorder.js +157 -155
  1092. package/source/class/qx/ui/decoration/MLinearBackgroundGradient.js +169 -89
  1093. package/source/class/qx/ui/decoration/MSingleBorder.js +138 -124
  1094. package/source/class/qx/ui/decoration/MTransition.js +46 -42
  1095. package/source/class/qx/ui/decoration/__init__.js +2 -2
  1096. package/source/class/qx/ui/embed/AbstractIframe.js +37 -55
  1097. package/source/class/qx/ui/embed/Canvas.js +34 -66
  1098. package/source/class/qx/ui/embed/Html.js +46 -70
  1099. package/source/class/qx/ui/embed/Iframe.js +178 -158
  1100. package/source/class/qx/ui/embed/ThemedIframe.js +91 -135
  1101. package/source/class/qx/ui/form/AbstractField.js +262 -303
  1102. package/source/class/qx/ui/form/AbstractSelectBox.js +65 -87
  1103. package/source/class/qx/ui/form/Button.js +35 -73
  1104. package/source/class/qx/ui/form/CheckBox.js +26 -48
  1105. package/source/class/qx/ui/form/CheckedList.js +41 -25
  1106. package/source/class/qx/ui/form/CheckedSelectBox.js +97 -62
  1107. package/source/class/qx/ui/form/ComboBox.js +93 -121
  1108. package/source/class/qx/ui/form/DateField.js +140 -181
  1109. package/source/class/qx/ui/form/Form.js +50 -69
  1110. package/source/class/qx/ui/form/HoverButton.js +37 -54
  1111. package/source/class/qx/ui/form/IArrayForm.js +8 -16
  1112. package/source/class/qx/ui/form/IBooleanForm.js +8 -16
  1113. package/source/class/qx/ui/form/IColorForm.js +8 -16
  1114. package/source/class/qx/ui/form/IDateForm.js +8 -16
  1115. package/source/class/qx/ui/form/IExecutable.js +7 -14
  1116. package/source/class/qx/ui/form/IField.js +7 -14
  1117. package/source/class/qx/ui/form/IForm.js +17 -32
  1118. package/source/class/qx/ui/form/IListItem.js +1 -4
  1119. package/source/class/qx/ui/form/IModel.js +7 -15
  1120. package/source/class/qx/ui/form/IModelForm.js +8 -16
  1121. package/source/class/qx/ui/form/IModelSelection.js +4 -8
  1122. package/source/class/qx/ui/form/INumberForm.js +8 -15
  1123. package/source/class/qx/ui/form/IRadioItem.js +8 -17
  1124. package/source/class/qx/ui/form/IRange.js +10 -20
  1125. package/source/class/qx/ui/form/IStringForm.js +8 -16
  1126. package/source/class/qx/ui/form/List.js +82 -122
  1127. package/source/class/qx/ui/form/ListItem.js +21 -38
  1128. package/source/class/qx/ui/form/MForm.js +35 -41
  1129. package/source/class/qx/ui/form/MModelProperty.js +9 -14
  1130. package/source/class/qx/ui/form/MModelSelection.js +30 -32
  1131. package/source/class/qx/ui/form/MenuButton.js +44 -75
  1132. package/source/class/qx/ui/form/PasswordField.js +4 -6
  1133. package/source/class/qx/ui/form/RadioButton.js +36 -72
  1134. package/source/class/qx/ui/form/RadioButtonGroup.js +67 -82
  1135. package/source/class/qx/ui/form/RadioGroup.js +92 -127
  1136. package/source/class/qx/ui/form/RepeatButton.js +57 -106
  1137. package/source/class/qx/ui/form/Resetter.js +19 -29
  1138. package/source/class/qx/ui/form/SelectBox.js +56 -104
  1139. package/source/class/qx/ui/form/Slider.js +202 -269
  1140. package/source/class/qx/ui/form/Spinner.js +173 -217
  1141. package/source/class/qx/ui/form/SplitButton.js +73 -115
  1142. package/source/class/qx/ui/form/Tag.js +7 -8
  1143. package/source/class/qx/ui/form/TextArea.js +147 -153
  1144. package/source/class/qx/ui/form/TextField.js +37 -46
  1145. package/source/class/qx/ui/form/ToggleButton.js +54 -90
  1146. package/source/class/qx/ui/form/VirtualComboBox.js +73 -113
  1147. package/source/class/qx/ui/form/VirtualSelectBox.js +264 -274
  1148. package/source/class/qx/ui/form/core/AbstractVirtualBox.js +117 -157
  1149. package/source/class/qx/ui/form/core/VirtualDropDownList.js +101 -144
  1150. package/source/class/qx/ui/form/renderer/AbstractRenderer.js +48 -55
  1151. package/source/class/qx/ui/form/renderer/Double.js +25 -34
  1152. package/source/class/qx/ui/form/renderer/IFormRenderer.js +4 -8
  1153. package/source/class/qx/ui/form/renderer/Single.js +25 -35
  1154. package/source/class/qx/ui/form/renderer/SinglePlaceholder.js +12 -11
  1155. package/source/class/qx/ui/form/renderer/__init__.js +5 -5
  1156. package/source/class/qx/ui/form/validation/AsyncValidator.js +13 -19
  1157. package/source/class/qx/ui/form/validation/Manager.js +74 -108
  1158. package/source/class/qx/ui/form/validation/__init__.js +6 -6
  1159. package/source/class/qx/ui/groupbox/CheckGroupBox.js +30 -47
  1160. package/source/class/qx/ui/groupbox/GroupBox.js +36 -75
  1161. package/source/class/qx/ui/groupbox/RadioGroupBox.js +29 -59
  1162. package/source/class/qx/ui/groupbox/__init__.js +3 -3
  1163. package/source/class/qx/ui/indicator/ProgressBar.js +29 -46
  1164. package/source/class/qx/ui/layout/Abstract.js +28 -53
  1165. package/source/class/qx/ui/layout/Atom.js +95 -111
  1166. package/source/class/qx/ui/layout/Basic.js +29 -30
  1167. package/source/class/qx/ui/layout/Canvas.js +62 -99
  1168. package/source/class/qx/ui/layout/Dock.js +266 -250
  1169. package/source/class/qx/ui/layout/Flow.js +50 -76
  1170. package/source/class/qx/ui/layout/Grid.js +268 -343
  1171. package/source/class/qx/ui/layout/Grow.js +26 -32
  1172. package/source/class/qx/ui/layout/HBox.js +137 -153
  1173. package/source/class/qx/ui/layout/LineSizeIterator.js +19 -28
  1174. package/source/class/qx/ui/layout/Util.js +91 -120
  1175. package/source/class/qx/ui/layout/VBox.js +125 -147
  1176. package/source/class/qx/ui/list/List.js +148 -262
  1177. package/source/class/qx/ui/list/core/IListDelegate.js +13 -26
  1178. package/source/class/qx/ui/list/core/MWidgetController.js +51 -78
  1179. package/source/class/qx/ui/list/provider/IListProvider.js +15 -28
  1180. package/source/class/qx/ui/list/provider/WidgetProvider.js +52 -84
  1181. package/source/class/qx/ui/menu/AbstractButton.js +118 -127
  1182. package/source/class/qx/ui/menu/Button.js +11 -25
  1183. package/source/class/qx/ui/menu/ButtonLayout.js +49 -37
  1184. package/source/class/qx/ui/menu/CheckBox.js +21 -46
  1185. package/source/class/qx/ui/menu/Layout.js +45 -51
  1186. package/source/class/qx/ui/menu/Manager.js +131 -209
  1187. package/source/class/qx/ui/menu/Menu.js +164 -259
  1188. package/source/class/qx/ui/menu/MenuSlideBar.js +13 -20
  1189. package/source/class/qx/ui/menu/RadioButton.js +29 -51
  1190. package/source/class/qx/ui/menu/Separator.js +9 -16
  1191. package/source/class/qx/ui/menubar/Button.js +23 -41
  1192. package/source/class/qx/ui/menubar/MenuBar.js +9 -13
  1193. package/source/class/qx/ui/mobile/__init__.js +5 -5
  1194. package/source/class/qx/ui/mobile/basic/Atom.js +79 -101
  1195. package/source/class/qx/ui/mobile/basic/Image.js +80 -86
  1196. package/source/class/qx/ui/mobile/basic/Label.js +38 -54
  1197. package/source/class/qx/ui/mobile/container/Carousel.js +281 -188
  1198. package/source/class/qx/ui/mobile/container/Collapsible.js +57 -77
  1199. package/source/class/qx/ui/mobile/container/Composite.js +9 -13
  1200. package/source/class/qx/ui/mobile/container/Drawer.js +167 -164
  1201. package/source/class/qx/ui/mobile/container/INavigation.js +6 -10
  1202. package/source/class/qx/ui/mobile/container/IScrollDelegate.js +4 -6
  1203. package/source/class/qx/ui/mobile/container/MIScroll.js +108 -100
  1204. package/source/class/qx/ui/mobile/container/MNativeScroll.js +118 -102
  1205. package/source/class/qx/ui/mobile/container/MScrollHandling.js +8 -7
  1206. package/source/class/qx/ui/mobile/container/Navigation.js +46 -65
  1207. package/source/class/qx/ui/mobile/container/Scroll.js +140 -151
  1208. package/source/class/qx/ui/mobile/control/Picker.js +125 -112
  1209. package/source/class/qx/ui/mobile/core/Blocker.js +62 -71
  1210. package/source/class/qx/ui/mobile/core/DomUpdatedHandler.js +24 -60
  1211. package/source/class/qx/ui/mobile/core/EventHandler.js +158 -138
  1212. package/source/class/qx/ui/mobile/core/MChildrenHandling.js +14 -30
  1213. package/source/class/qx/ui/mobile/core/MLayoutHandling.js +6 -14
  1214. package/source/class/qx/ui/mobile/core/MResize.js +16 -30
  1215. package/source/class/qx/ui/mobile/core/Root.js +90 -80
  1216. package/source/class/qx/ui/mobile/core/Widget.js +351 -479
  1217. package/source/class/qx/ui/mobile/dialog/BusyIndicator.js +31 -46
  1218. package/source/class/qx/ui/mobile/dialog/Manager.js +127 -89
  1219. package/source/class/qx/ui/mobile/dialog/Menu.js +111 -122
  1220. package/source/class/qx/ui/mobile/dialog/Popup.js +202 -194
  1221. package/source/class/qx/ui/mobile/embed/Canvas.js +12 -25
  1222. package/source/class/qx/ui/mobile/embed/Html.js +13 -27
  1223. package/source/class/qx/ui/mobile/form/Button.js +12 -18
  1224. package/source/class/qx/ui/mobile/form/CheckBox.js +20 -35
  1225. package/source/class/qx/ui/mobile/form/Form.js +31 -51
  1226. package/source/class/qx/ui/mobile/form/Group.js +18 -30
  1227. package/source/class/qx/ui/mobile/form/Input.js +30 -35
  1228. package/source/class/qx/ui/mobile/form/Label.js +76 -79
  1229. package/source/class/qx/ui/mobile/form/MState.js +20 -27
  1230. package/source/class/qx/ui/mobile/form/MText.js +27 -47
  1231. package/source/class/qx/ui/mobile/form/MValue.js +66 -94
  1232. package/source/class/qx/ui/mobile/form/NumberField.js +30 -47
  1233. package/source/class/qx/ui/mobile/form/PasswordField.js +8 -14
  1234. package/source/class/qx/ui/mobile/form/RadioButton.js +25 -46
  1235. package/source/class/qx/ui/mobile/form/RadioGroup.js +2 -4
  1236. package/source/class/qx/ui/mobile/form/Row.js +14 -29
  1237. package/source/class/qx/ui/mobile/form/SelectBox.js +77 -104
  1238. package/source/class/qx/ui/mobile/form/Slider.js +116 -144
  1239. package/source/class/qx/ui/mobile/form/TextArea.js +26 -39
  1240. package/source/class/qx/ui/mobile/form/TextField.js +18 -28
  1241. package/source/class/qx/ui/mobile/form/Title.js +11 -19
  1242. package/source/class/qx/ui/mobile/form/ToggleButton.js +35 -58
  1243. package/source/class/qx/ui/mobile/form/__init__.js +1 -1
  1244. package/source/class/qx/ui/mobile/form/renderer/AbstractRenderer.js +24 -31
  1245. package/source/class/qx/ui/mobile/form/renderer/Single.js +59 -85
  1246. package/source/class/qx/ui/mobile/form/renderer/SinglePlaceholder.js +8 -16
  1247. package/source/class/qx/ui/mobile/layout/Abstract.js +48 -85
  1248. package/source/class/qx/ui/mobile/layout/AbstractBox.js +93 -125
  1249. package/source/class/qx/ui/mobile/layout/Card.js +133 -116
  1250. package/source/class/qx/ui/mobile/layout/CardAnimation.js +95 -72
  1251. package/source/class/qx/ui/mobile/layout/HBox.js +9 -12
  1252. package/source/class/qx/ui/mobile/layout/VBox.js +9 -12
  1253. package/source/class/qx/ui/mobile/list/IListDelegate.js +5 -9
  1254. package/source/class/qx/ui/mobile/list/List.js +172 -183
  1255. package/source/class/qx/ui/mobile/list/provider/Provider.js +58 -65
  1256. package/source/class/qx/ui/mobile/list/renderer/Abstract.js +54 -82
  1257. package/source/class/qx/ui/mobile/list/renderer/Default.js +39 -55
  1258. package/source/class/qx/ui/mobile/list/renderer/group/Abstract.js +20 -33
  1259. package/source/class/qx/ui/mobile/list/renderer/group/Default.js +29 -45
  1260. package/source/class/qx/ui/mobile/navigationbar/BackButton.js +11 -15
  1261. package/source/class/qx/ui/mobile/navigationbar/Button.js +11 -15
  1262. package/source/class/qx/ui/mobile/navigationbar/NavigationBar.js +23 -29
  1263. package/source/class/qx/ui/mobile/navigationbar/Title.js +12 -20
  1264. package/source/class/qx/ui/mobile/page/Manager.js +195 -169
  1265. package/source/class/qx/ui/mobile/page/NavigationPage.js +132 -196
  1266. package/source/class/qx/ui/mobile/page/Page.js +109 -148
  1267. package/source/class/qx/ui/mobile/tabbar/TabBar.js +41 -62
  1268. package/source/class/qx/ui/mobile/tabbar/TabButton.js +19 -28
  1269. package/source/class/qx/ui/mobile/toolbar/Button.js +7 -11
  1270. package/source/class/qx/ui/mobile/toolbar/Separator.js +11 -15
  1271. package/source/class/qx/ui/mobile/toolbar/ToolBar.js +30 -39
  1272. package/source/class/qx/ui/popup/Manager.js +41 -53
  1273. package/source/class/qx/ui/popup/Popup.js +22 -47
  1274. package/source/class/qx/ui/popup/__init__.js +32 -32
  1275. package/source/class/qx/ui/progressive/Progressive.js +96 -137
  1276. package/source/class/qx/ui/progressive/State.js +12 -19
  1277. package/source/class/qx/ui/progressive/headfoot/Abstract.js +10 -15
  1278. package/source/class/qx/ui/progressive/headfoot/Null.js +4 -7
  1279. package/source/class/qx/ui/progressive/headfoot/Progress.js +67 -69
  1280. package/source/class/qx/ui/progressive/headfoot/TableHeading.js +42 -54
  1281. package/source/class/qx/ui/progressive/model/Abstract.js +8 -15
  1282. package/source/class/qx/ui/progressive/model/Default.js +17 -29
  1283. package/source/class/qx/ui/progressive/renderer/Abstract.js +6 -11
  1284. package/source/class/qx/ui/progressive/renderer/FunctionCaller.js +4 -7
  1285. package/source/class/qx/ui/progressive/renderer/table/Row.js +215 -242
  1286. package/source/class/qx/ui/progressive/renderer/table/Widths.js +32 -47
  1287. package/source/class/qx/ui/progressive/renderer/table/cell/Abstract.js +17 -24
  1288. package/source/class/qx/ui/progressive/renderer/table/cell/Boolean.js +68 -79
  1289. package/source/class/qx/ui/progressive/renderer/table/cell/Conditional.js +146 -199
  1290. package/source/class/qx/ui/progressive/renderer/table/cell/Default.js +14 -32
  1291. package/source/class/qx/ui/progressive/renderer/table/cell/Html.js +2 -3
  1292. package/source/class/qx/ui/progressive/renderer/table/cell/Icon.js +38 -53
  1293. package/source/class/qx/ui/progressive/renderer/table/cell/Image.js +20 -42
  1294. package/source/class/qx/ui/progressive/renderer/table/cell/String.js +6 -12
  1295. package/source/class/qx/ui/progressive/structure/Abstract.js +14 -26
  1296. package/source/class/qx/ui/progressive/structure/Default.js +20 -40
  1297. package/source/class/qx/ui/root/Abstract.js +73 -90
  1298. package/source/class/qx/ui/root/Application.js +57 -61
  1299. package/source/class/qx/ui/root/Inline.js +78 -64
  1300. package/source/class/qx/ui/root/Page.js +25 -46
  1301. package/source/class/qx/ui/splitpane/Blocker.js +20 -30
  1302. package/source/class/qx/ui/splitpane/HLayout.js +53 -49
  1303. package/source/class/qx/ui/splitpane/Pane.js +112 -150
  1304. package/source/class/qx/ui/splitpane/Slider.js +9 -15
  1305. package/source/class/qx/ui/splitpane/Splitter.js +27 -46
  1306. package/source/class/qx/ui/splitpane/VLayout.js +53 -49
  1307. package/source/class/qx/ui/style/Stylesheet.js +12 -19
  1308. package/source/class/qx/ui/table/ICellEditorFactory.js +4 -8
  1309. package/source/class/qx/ui/table/ICellRenderer.js +3 -7
  1310. package/source/class/qx/ui/table/IColumnMenuButton.js +6 -11
  1311. package/source/class/qx/ui/table/IColumnMenuItem.js +5 -8
  1312. package/source/class/qx/ui/table/IHeaderRenderer.js +4 -8
  1313. package/source/class/qx/ui/table/IRowRenderer.js +6 -12
  1314. package/source/class/qx/ui/table/ITableModel.js +23 -41
  1315. package/source/class/qx/ui/table/MTableContextMenu.js +25 -28
  1316. package/source/class/qx/ui/table/Table.js +556 -748
  1317. package/source/class/qx/ui/table/celleditor/AbstractField.js +16 -26
  1318. package/source/class/qx/ui/table/celleditor/CheckBox.js +15 -16
  1319. package/source/class/qx/ui/table/celleditor/ComboBox.js +24 -34
  1320. package/source/class/qx/ui/table/celleditor/Dynamic.js +25 -32
  1321. package/source/class/qx/ui/table/celleditor/PasswordField.js +4 -8
  1322. package/source/class/qx/ui/table/celleditor/SelectBox.js +29 -38
  1323. package/source/class/qx/ui/table/celleditor/TextField.js +9 -14
  1324. package/source/class/qx/ui/table/cellrenderer/Abstract.js +78 -73
  1325. package/source/class/qx/ui/table/cellrenderer/AbstractImage.js +65 -84
  1326. package/source/class/qx/ui/table/cellrenderer/Boolean.js +36 -50
  1327. package/source/class/qx/ui/table/cellrenderer/Conditional.js +74 -63
  1328. package/source/class/qx/ui/table/cellrenderer/Date.js +12 -22
  1329. package/source/class/qx/ui/table/cellrenderer/Debug.js +9 -9
  1330. package/source/class/qx/ui/table/cellrenderer/Default.js +30 -52
  1331. package/source/class/qx/ui/table/cellrenderer/Dynamic.js +13 -24
  1332. package/source/class/qx/ui/table/cellrenderer/Html.js +6 -8
  1333. package/source/class/qx/ui/table/cellrenderer/Image.js +13 -26
  1334. package/source/class/qx/ui/table/cellrenderer/Number.js +13 -24
  1335. package/source/class/qx/ui/table/cellrenderer/Password.js +8 -11
  1336. package/source/class/qx/ui/table/cellrenderer/Replace.js +27 -42
  1337. package/source/class/qx/ui/table/cellrenderer/String.js +5 -7
  1338. package/source/class/qx/ui/table/columnmenu/Button.js +19 -29
  1339. package/source/class/qx/ui/table/columnmenu/MenuItem.js +11 -19
  1340. package/source/class/qx/ui/table/columnmenu/__init__.js +4 -4
  1341. package/source/class/qx/ui/table/columnmenu/grid/__init__.js +4 -4
  1342. package/source/class/qx/ui/table/columnmenu/simple/__init__.js +4 -4
  1343. package/source/class/qx/ui/table/columnmodel/Basic.js +193 -215
  1344. package/source/class/qx/ui/table/columnmodel/Resize.js +65 -111
  1345. package/source/class/qx/ui/table/columnmodel/resizebehavior/Abstract.js +17 -24
  1346. package/source/class/qx/ui/table/columnmodel/resizebehavior/Default.js +66 -117
  1347. package/source/class/qx/ui/table/headerrenderer/Default.js +25 -46
  1348. package/source/class/qx/ui/table/headerrenderer/HeaderCell.js +36 -51
  1349. package/source/class/qx/ui/table/headerrenderer/Icon.js +11 -27
  1350. package/source/class/qx/ui/table/model/Abstract.js +52 -62
  1351. package/source/class/qx/ui/table/model/Filtered.js +121 -153
  1352. package/source/class/qx/ui/table/model/Remote.js +166 -271
  1353. package/source/class/qx/ui/table/model/Simple.js +225 -252
  1354. package/source/class/qx/ui/table/pane/CellEvent.js +25 -32
  1355. package/source/class/qx/ui/table/pane/Clipper.js +8 -12
  1356. package/source/class/qx/ui/table/pane/FocusIndicator.js +42 -48
  1357. package/source/class/qx/ui/table/pane/Header.js +45 -86
  1358. package/source/class/qx/ui/table/pane/Model.js +73 -96
  1359. package/source/class/qx/ui/table/pane/Pane.js +132 -190
  1360. package/source/class/qx/ui/table/pane/Scroller.js +542 -659
  1361. package/source/class/qx/ui/table/rowrenderer/Default.js +75 -86
  1362. package/source/class/qx/ui/table/selection/Manager.js +23 -57
  1363. package/source/class/qx/ui/table/selection/Model.js +89 -179
  1364. package/source/class/qx/ui/tabview/Page.js +48 -79
  1365. package/source/class/qx/ui/tabview/TabButton.js +45 -72
  1366. package/source/class/qx/ui/tabview/TabView.js +94 -141
  1367. package/source/class/qx/ui/toolbar/Button.js +13 -18
  1368. package/source/class/qx/ui/toolbar/CheckBox.js +13 -17
  1369. package/source/class/qx/ui/toolbar/MenuButton.js +18 -34
  1370. package/source/class/qx/ui/toolbar/Part.js +42 -64
  1371. package/source/class/qx/ui/toolbar/PartContainer.js +19 -28
  1372. package/source/class/qx/ui/toolbar/RadioButton.js +12 -19
  1373. package/source/class/qx/ui/toolbar/Separator.js +15 -25
  1374. package/source/class/qx/ui/toolbar/SplitButton.js +19 -28
  1375. package/source/class/qx/ui/toolbar/ToolBar.js +182 -232
  1376. package/source/class/qx/ui/tooltip/Manager.js +125 -123
  1377. package/source/class/qx/ui/tooltip/ToolTip.js +49 -79
  1378. package/source/class/qx/ui/tooltip/__init__.js +23 -23
  1379. package/source/class/qx/ui/tree/Tree.js +95 -148
  1380. package/source/class/qx/ui/tree/TreeFile.js +8 -15
  1381. package/source/class/qx/ui/tree/TreeFolder.js +8 -15
  1382. package/source/class/qx/ui/tree/VirtualTree.js +207 -333
  1383. package/source/class/qx/ui/tree/VirtualTreeItem.js +30 -45
  1384. package/source/class/qx/ui/tree/__init__.js +50 -50
  1385. package/source/class/qx/ui/tree/core/AbstractItem.js +98 -152
  1386. package/source/class/qx/ui/tree/core/AbstractTreeItem.js +83 -137
  1387. package/source/class/qx/ui/tree/core/FolderOpenButton.js +15 -34
  1388. package/source/class/qx/ui/tree/core/IVirtualTree.js +13 -33
  1389. package/source/class/qx/ui/tree/core/IVirtualTreeDelegate.js +9 -16
  1390. package/source/class/qx/ui/tree/core/MWidgetController.js +58 -69
  1391. package/source/class/qx/ui/tree/core/OpenCloseController.js +29 -35
  1392. package/source/class/qx/ui/tree/core/Util.js +12 -16
  1393. package/source/class/qx/ui/tree/provider/IVirtualTreeProvider.js +10 -23
  1394. package/source/class/qx/ui/tree/provider/WidgetProvider.js +39 -67
  1395. package/source/class/qx/ui/tree/selection/SelectionManager.js +27 -41
  1396. package/source/class/qx/ui/treevirtual/DefaultDataCellRenderer.js +2 -3
  1397. package/source/class/qx/ui/treevirtual/MFamily.js +26 -63
  1398. package/source/class/qx/ui/treevirtual/MNode.js +43 -103
  1399. package/source/class/qx/ui/treevirtual/MTreePrimitive.js +41 -52
  1400. package/source/class/qx/ui/treevirtual/SelectionManager.js +44 -58
  1401. package/source/class/qx/ui/treevirtual/SimpleTreeDataCellRenderer.js +172 -229
  1402. package/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js +256 -367
  1403. package/source/class/qx/ui/treevirtual/SimpleTreeDataRowRenderer.js +8 -18
  1404. package/source/class/qx/ui/treevirtual/TreeVirtual.js +155 -250
  1405. package/source/class/qx/ui/treevirtual/celleditor/NodeEditor.js +10 -16
  1406. package/source/class/qx/ui/treevirtual/pane/Scroller.js +14 -11
  1407. package/source/class/qx/ui/virtual/__init__.js +4 -4
  1408. package/source/class/qx/ui/virtual/behavior/Prefetch.js +71 -86
  1409. package/source/class/qx/ui/virtual/cell/Abstract.js +18 -27
  1410. package/source/class/qx/ui/virtual/cell/AbstractImage.js +42 -51
  1411. package/source/class/qx/ui/virtual/cell/AbstractWidget.js +25 -49
  1412. package/source/class/qx/ui/virtual/cell/Boolean.js +31 -44
  1413. package/source/class/qx/ui/virtual/cell/Cell.js +143 -183
  1414. package/source/class/qx/ui/virtual/cell/CellStylesheet.js +31 -38
  1415. package/source/class/qx/ui/virtual/cell/Date.js +15 -24
  1416. package/source/class/qx/ui/virtual/cell/Html.js +9 -20
  1417. package/source/class/qx/ui/virtual/cell/ICell.js +4 -6
  1418. package/source/class/qx/ui/virtual/cell/IWidgetCell.js +7 -12
  1419. package/source/class/qx/ui/virtual/cell/IWidgetCellDelegate.js +4 -6
  1420. package/source/class/qx/ui/virtual/cell/Image.js +8 -14
  1421. package/source/class/qx/ui/virtual/cell/Number.js +14 -23
  1422. package/source/class/qx/ui/virtual/cell/String.js +11 -20
  1423. package/source/class/qx/ui/virtual/cell/WidgetCell.js +13 -16
  1424. package/source/class/qx/ui/virtual/cell/__init__.js +4 -4
  1425. package/source/class/qx/ui/virtual/core/Axis.js +75 -103
  1426. package/source/class/qx/ui/virtual/core/CellEvent.js +23 -31
  1427. package/source/class/qx/ui/virtual/core/IHtmlCellProvider.js +4 -6
  1428. package/source/class/qx/ui/virtual/core/ILayer.js +5 -15
  1429. package/source/class/qx/ui/virtual/core/IWidgetCellProvider.js +5 -7
  1430. package/source/class/qx/ui/virtual/core/Pane.js +199 -242
  1431. package/source/class/qx/ui/virtual/core/Scroller.js +25 -43
  1432. package/source/class/qx/ui/virtual/layer/Abstract.js +44 -83
  1433. package/source/class/qx/ui/virtual/layer/AbstractBackground.js +47 -68
  1434. package/source/class/qx/ui/virtual/layer/CellSpanManager.js +74 -96
  1435. package/source/class/qx/ui/virtual/layer/Column.js +26 -36
  1436. package/source/class/qx/ui/virtual/layer/GridLines.js +43 -70
  1437. package/source/class/qx/ui/virtual/layer/HtmlCell.js +34 -32
  1438. package/source/class/qx/ui/virtual/layer/HtmlCellSpan.js +54 -56
  1439. package/source/class/qx/ui/virtual/layer/Row.js +28 -36
  1440. package/source/class/qx/ui/virtual/layer/WidgetCell.js +87 -123
  1441. package/source/class/qx/ui/virtual/layer/WidgetCellSpan.js +123 -124
  1442. package/source/class/qx/ui/virtual/selection/Abstract.js +26 -54
  1443. package/source/class/qx/ui/virtual/selection/CellLines.js +11 -21
  1444. package/source/class/qx/ui/virtual/selection/CellRectangle.js +45 -73
  1445. package/source/class/qx/ui/virtual/selection/Column.js +16 -35
  1446. package/source/class/qx/ui/virtual/selection/ISelectionDelegate.js +5 -9
  1447. package/source/class/qx/ui/virtual/selection/MModel.js +84 -122
  1448. package/source/class/qx/ui/virtual/selection/Row.js +29 -61
  1449. package/source/class/qx/ui/website/Accordion.js +39 -42
  1450. package/source/class/qx/ui/website/Button.js +17 -25
  1451. package/source/class/qx/ui/website/Calendar.js +243 -172
  1452. package/source/class/qx/ui/website/Carousel.js +169 -155
  1453. package/source/class/qx/ui/website/DatePicker.js +99 -85
  1454. package/source/class/qx/ui/website/Rating.js +35 -53
  1455. package/source/class/qx/ui/website/Slider.js +174 -153
  1456. package/source/class/qx/ui/website/Table.js +482 -456
  1457. package/source/class/qx/ui/website/Tabs.js +225 -180
  1458. package/source/class/qx/ui/website/Widget.js +39 -52
  1459. package/source/class/qx/ui/window/Desktop.js +14 -12
  1460. package/source/class/qx/ui/window/IDesktop.js +8 -10
  1461. package/source/class/qx/ui/window/IWindowManager.js +7 -9
  1462. package/source/class/qx/ui/window/MDesktop.js +34 -62
  1463. package/source/class/qx/ui/window/Manager.js +31 -57
  1464. package/source/class/qx/ui/window/Window.js +250 -351
  1465. package/source/class/qx/util/AliasManager.js +23 -42
  1466. package/source/class/qx/util/Animation.js +248 -191
  1467. package/source/class/qx/util/Base64.js +144 -89
  1468. package/source/class/qx/util/ColorUtil.js +253 -287
  1469. package/source/class/qx/util/DeferredCall.js +21 -30
  1470. package/source/class/qx/util/DeferredCallManager.js +23 -44
  1471. package/source/class/qx/util/Delegate.js +4 -10
  1472. package/source/class/qx/util/DisposeUtil.js +76 -70
  1473. package/source/class/qx/util/DynamicScriptLoader.js +83 -66
  1474. package/source/class/qx/util/EditDistance.js +64 -58
  1475. package/source/class/qx/util/ExtendedColor.js +157 -163
  1476. package/source/class/qx/util/Function.js +8 -8
  1477. package/source/class/qx/util/LibraryManager.js +11 -18
  1478. package/source/class/qx/util/OOUtil.js +17 -36
  1479. package/source/class/qx/util/ObjectPool.js +19 -45
  1480. package/source/class/qx/util/Permutation.js +9 -16
  1481. package/source/class/qx/util/PropertyUtil.js +58 -70
  1482. package/source/class/qx/util/Request.js +27 -16
  1483. package/source/class/qx/util/ResourceManager.js +103 -104
  1484. package/source/class/qx/util/ResponseParser.js +14 -21
  1485. package/source/class/qx/util/RingBuffer.js +46 -48
  1486. package/source/class/qx/util/Serializer.js +103 -68
  1487. package/source/class/qx/util/StringBuilder.js +11 -22
  1488. package/source/class/qx/util/StringEscape.js +15 -29
  1489. package/source/class/qx/util/StringSplit.js +18 -21
  1490. package/source/class/qx/util/TimerManager.js +61 -70
  1491. package/source/class/qx/util/Uri.js +42 -30
  1492. package/source/class/qx/util/Uuid.js +50 -35
  1493. package/source/class/qx/util/Validate.js +88 -73
  1494. package/source/class/qx/util/ValueManager.js +17 -29
  1495. package/source/class/qx/util/Wheel.js +22 -16
  1496. package/source/class/qx/util/format/DateFormat.js +822 -759
  1497. package/source/class/qx/util/format/IFormat.js +4 -8
  1498. package/source/class/qx/util/format/NumberFormat.js +84 -91
  1499. package/source/class/qx/util/fsm/FiniteStateMachine.js +323 -382
  1500. package/source/class/qx/util/fsm/State.js +210 -249
  1501. package/source/class/qx/util/fsm/Transition.js +138 -160
  1502. package/source/class/qx/util/placement/AbstractAxis.js +12 -14
  1503. package/source/class/qx/util/placement/BestFitAxis.js +5 -8
  1504. package/source/class/qx/util/placement/DirectAxis.js +5 -7
  1505. package/source/class/qx/util/placement/KeepAlignAxis.js +8 -14
  1506. package/source/class/qx/util/placement/Placement.js +39 -56
  1507. package/source/class/qx/util/placement/__init__.js +4 -4
  1508. package/source/class/qx/xml/Document.js +21 -34
  1509. package/source/class/qx/xml/Element.js +90 -73
  1510. package/source/class/qx/xml/String.js +15 -21
  1511. package/source/class/qxWeb.js +102 -69
  1512. package/source/resource/qx/mobile/js/iscroll.js +1328 -982
  1513. package/source/resource/qx/mobile/js/iscroll.min.js +1081 -1
  1514. package/source/resource/qx/test/dynamicscriptloader/first.js +1 -1
  1515. package/source/resource/qx/test/dynamicscriptloader/second.js +1 -1
  1516. package/source/resource/qx/test/dynamicscriptloader/third.js +1 -1
  1517. package/source/resource/qx/test/script.js +1 -1
  1518. package/source/resource/qx/test/webworker.js +2 -2
  1519. package/source/resource/qx/tool/loadsass.js +16 -15
  1520. package/source/resource/qx/tool/schema/compile-1-0-0.json +13 -13
  1521. package/source/resource/qx/tool/website/build/assets/bluebird.min.js +4593 -9
  1522. package/source/resource/qx/tool/website/build/assets/buttons.js +391 -1
  1523. package/source/resource/qx/tool/website/build/assets/fontawesome-all.js +8963 -1
  1524. package/source/resource/qx/tool/website/build/assets/jquery.js +5452 -3
  1525. package/source/resource/qx/tool/website/build/diagnostics/dependson.js +31 -31
  1526. package/source/resource/qx/tool/website/build/diagnostics/requiredby.js +32 -36
  1527. package/source/resource/qx/tool/website/build/scripts/serve.js +87 -66
  1528. package/source/resource/qx/tool/website/src/assets/bluebird.min.js +4593 -9
  1529. package/source/resource/qx/tool/website/src/assets/buttons.js +391 -1
  1530. package/source/resource/qx/tool/website/src/assets/fontawesome-all.js +8963 -1
  1531. package/source/resource/qx/tool/website/src/assets/jquery.js +5452 -3
  1532. package/source/resource/qx/tool/website/src/diagnostics/dependson.js +31 -31
  1533. package/source/resource/qx/tool/website/src/diagnostics/requiredby.js +32 -36
  1534. package/source/resource/qx/tool/website/src/scripts/serve.js +87 -66
  1535. package/lib/resource/qx/static/blank.gif +0 -0
  1536. package/source/class/qx/io/remote/Exchange.js +0 -1063
  1537. package/source/class/qx/io/remote/Request.js +0 -1021
  1538. package/source/class/qx/io/remote/RequestQueue.js +0 -521
  1539. package/source/class/qx/io/remote/Response.js +0 -137
  1540. package/source/class/qx/io/remote/Rpc.js +0 -1075
  1541. package/source/class/qx/io/remote/RpcError.js +0 -198
  1542. package/source/class/qx/io/remote/__init__.js +0 -88
  1543. package/source/class/qx/io/remote/transport/Abstract.js +0 -513
  1544. package/source/class/qx/io/remote/transport/Iframe.js +0 -652
  1545. package/source/class/qx/io/remote/transport/Script.js +0 -475
  1546. package/source/class/qx/io/remote/transport/XmlHttp.js +0 -1019
  1547. package/source/class/qx/io/remote/transport/__init__.js +0 -3
  1548. package/source/class/qx/test/io/remote/AbstractRequest.js +0 -150
  1549. package/source/class/qx/test/io/remote/RequestIframe.js +0 -105
  1550. package/source/class/qx/test/io/remote/RequestXhr.js +0 -151
  1551. package/source/class/qx/test/io/remote/Rpc.js +0 -205
  1552. package/source/class/qx/test/io/remote/__init__.js +0 -4
  1553. package/source/class/qx/test/io/remote/transport/Iframe.js +0 -67
  1554. package/source/class/qx/test/io/remote/transport/XmlHttp.js +0 -133
  1555. package/source/class/qx/test/io/remote/transport/__init__.js +0 -4
@@ -17,75 +17,122 @@
17
17
  ************************************************************************ */
18
18
 
19
19
  /* ************************************************************************
20
- ************************************************************************ */
20
+ ************************************************************************ */
21
21
  /**
22
22
  *
23
23
  * @asset(qx/static/blank.gif)
24
24
  */
25
25
 
26
- qx.Class.define("qx.test.bom.element.Background",
27
- {
28
- extend : qx.dev.unit.TestCase,
26
+ qx.Class.define("qx.test.bom.element.Background", {
27
+ extend: qx.dev.unit.TestCase,
29
28
 
30
- members :
31
- {
32
- setUp : function()
33
- {
29
+ members: {
30
+ setUp() {
34
31
  this.__divElement = document.createElement("div");
35
32
  document.body.appendChild(this.__divElement);
36
33
 
37
- this.__backgroundUrlBase64 = "data:image/gif;base64,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";
34
+ this.__backgroundUrlBase64 =
35
+ "data:image/gif;base64,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";
38
36
  },
39
37
 
40
-
41
- tearDown : function()
42
- {
38
+ tearDown() {
43
39
  document.body.removeChild(this.__divElement);
44
40
  this.__divElement = null;
45
41
  },
46
42
 
47
-
48
- testGetStyles : function()
49
- {
50
- var styles = qx.bom.element.Background.getStyles("foo/bar/baz.gif", "no-repeat", null, null);
51
-
52
- this.assertKeyInMap("backgroundImage", styles, "Key 'backgroundImage' is not present!");
53
- this.assertKeyInMap("backgroundPosition", styles, "Key 'backgroundPosition' is not present!");
43
+ testGetStyles() {
44
+ var styles = qx.bom.element.Background.getStyles(
45
+ "foo/bar/baz.gif",
46
+ "no-repeat",
47
+ null,
48
+ null
49
+ );
50
+
51
+ this.assertKeyInMap(
52
+ "backgroundImage",
53
+ styles,
54
+ "Key 'backgroundImage' is not present!"
55
+ );
56
+
57
+ this.assertKeyInMap(
58
+ "backgroundPosition",
59
+ styles,
60
+ "Key 'backgroundPosition' is not present!"
61
+ );
54
62
 
55
63
  // check for "url(IMAGE-URL)" to be sure that "'" chars are used
56
64
  // for normal images. Image names with spaces will then also work
57
- this.assertEquals("url('foo/bar/baz.gif')", styles.backgroundImage, "Do always use \"'\" for image urls!"); },
58
-
59
-
60
- testGetStylesBase64 : function()
61
- {
62
- var styles = qx.bom.element.Background.getStyles(this.__backgroundUrlBase64, "no-repeat", null, null);
63
-
64
- this.assertKeyInMap("backgroundImage", styles, "Key 'backgroundImage' is not present!");
65
- this.assertKeyInMap("backgroundPosition", styles, "Key 'backgroundPosition' is not present!");
66
-
67
- this.assertEquals("url('" + this.__backgroundUrlBase64 + "')", styles['backgroundImage'], "Wrong value for base64 encoded background image!");
65
+ this.assertEquals(
66
+ "url('foo/bar/baz.gif')",
67
+ styles.backgroundImage,
68
+ 'Do always use "\'" for image urls!'
69
+ );
68
70
  },
69
71
 
70
-
71
- testCompile : function()
72
- {
73
- var cssString = qx.bom.element.Background.compile("foo/bar/baz", "no-repeat", null, null);
74
-
75
- var expected = "background-image:url('foo/bar/baz');background-position:0 0;" +
76
- "background-repeat:no-repeat;";
77
- this.assertEquals(expected, cssString, "Compiled CSS string is not valid!");
72
+ testGetStylesBase64() {
73
+ var styles = qx.bom.element.Background.getStyles(
74
+ this.__backgroundUrlBase64,
75
+ "no-repeat",
76
+ null,
77
+ null
78
+ );
79
+
80
+ this.assertKeyInMap(
81
+ "backgroundImage",
82
+ styles,
83
+ "Key 'backgroundImage' is not present!"
84
+ );
85
+
86
+ this.assertKeyInMap(
87
+ "backgroundPosition",
88
+ styles,
89
+ "Key 'backgroundPosition' is not present!"
90
+ );
91
+
92
+ this.assertEquals(
93
+ "url('" + this.__backgroundUrlBase64 + "')",
94
+ styles["backgroundImage"],
95
+ "Wrong value for base64 encoded background image!"
96
+ );
78
97
  },
79
98
 
99
+ testCompile() {
100
+ var cssString = qx.bom.element.Background.compile(
101
+ "foo/bar/baz",
102
+ "no-repeat",
103
+ null,
104
+ null
105
+ );
106
+
107
+ var expected =
108
+ "background-image:url('foo/bar/baz');background-position:0 0;" +
109
+ "background-repeat:no-repeat;";
110
+ this.assertEquals(
111
+ expected,
112
+ cssString,
113
+ "Compiled CSS string is not valid!"
114
+ );
115
+ },
80
116
 
81
- testCompileBase64 : function()
82
- {
83
- var cssStringBase64 = qx.bom.element.Background.compile(this.__backgroundUrlBase64, "no-repeat", null, null);
84
-
85
- var expected = "background-image:url('" + this.__backgroundUrlBase64 + "');" +
86
- "background-position:0 0;background-repeat:no-repeat;";
87
-
88
- this.assertEquals(expected, cssStringBase64, "Compiled CSS string for base64 image is not valid!");
117
+ testCompileBase64() {
118
+ var cssStringBase64 = qx.bom.element.Background.compile(
119
+ this.__backgroundUrlBase64,
120
+ "no-repeat",
121
+ null,
122
+ null
123
+ );
124
+
125
+ var expected =
126
+ "background-image:url('" +
127
+ this.__backgroundUrlBase64 +
128
+ "');" +
129
+ "background-position:0 0;background-repeat:no-repeat;";
130
+
131
+ this.assertEquals(
132
+ expected,
133
+ cssStringBase64,
134
+ "Compiled CSS string for base64 image is not valid!"
135
+ );
89
136
  }
90
137
  }
91
138
  });
@@ -16,70 +16,75 @@
16
16
 
17
17
  ************************************************************************ */
18
18
 
19
- qx.Class.define("qx.test.bom.element.BoxSizing",
20
- {
21
- extend: qx.dev.unit.TestCase,
22
-
23
- include: [qx.dev.unit.MRequirements],
24
- construct: function () {
25
- this.base(arguments);
26
- this.__support = {
27
- mshtml: ["border-box", "content-box"],
28
- opera: ["border-box", "content-box"],
29
- gecko: ["border-box", "content-box"],
30
- webkit: ["border-box", "content-box"]
31
- };
19
+ qx.Class.define("qx.test.bom.element.BoxSizing", {
20
+ extend: qx.dev.unit.TestCase,
21
+
22
+ include: [qx.dev.unit.MRequirements],
23
+ construct() {
24
+ super();
25
+ this.__support = {
26
+ mshtml: ["border-box", "content-box"],
27
+ opera: ["border-box", "content-box"],
28
+ gecko: ["border-box", "content-box"],
29
+ webkit: ["border-box", "content-box"]
30
+ };
31
+ },
32
+
33
+ members: {
34
+ __support: null,
35
+ __el: null,
36
+
37
+ setUp() {
38
+ this.__el = document.createElement("div");
39
+ document.body.appendChild(this.__el);
32
40
  },
33
41
 
34
- members:
35
- {
36
- __support: null,
37
- __el: null,
38
-
39
- setUp: function () {
40
- this.__el = document.createElement("div");
41
- document.body.appendChild(this.__el);
42
- },
43
-
44
- tearDown: function () {
45
- document.body.removeChild(this.__el);
46
- delete this.__el;
47
- },
48
-
49
- hasBoxsizing: function () {
50
- return !!qx.core.Environment.get("css.boxsizing");
51
- },
52
-
53
- testGet: function () {
54
- this.require(["boxsizing"]);
55
-
56
- var supported = this.__support[qx.core.Environment.get("engine.name")] || [];
57
- this.assertInArray(qx.bom.element.BoxSizing.get(this.__el), supported);
58
- },
59
-
60
- testSet: function () {
61
- this.require(["boxsizing"]);
62
-
63
- var allValues = this.__support["gecko"];
64
- var supported = this.__support[qx.core.Environment.get("engine.name")] || [];
65
- for (var i = 0, l = allValues.length; i < l; i++) {
66
- qx.bom.element.BoxSizing.set(this.__el, allValues[i]);
67
- if (supported.includes(allValues[i])) {
68
- this.assertEquals(supported[i], qx.bom.element.BoxSizing.get(this.__el),
69
- "supported boxSizing value was not applied!");
70
- }
71
- else {
72
- this.assertNotEquals(supported[i], qx.bom.element.BoxSizing.get(this.__el),
73
- "boxSizing value was unexpectedly applied, maybe browser support has changed?");
74
- }
75
- }
76
- },
42
+ tearDown() {
43
+ document.body.removeChild(this.__el);
44
+ delete this.__el;
45
+ },
46
+
47
+ hasBoxsizing() {
48
+ return !!qx.core.Environment.get("css.boxsizing");
49
+ },
50
+
51
+ testGet() {
52
+ this.require(["boxsizing"]);
77
53
 
78
- testCompile: function () {
79
- this.require(["boxsizing"]);
54
+ var supported =
55
+ this.__support[qx.core.Environment.get("engine.name")] || [];
56
+ this.assertInArray(qx.bom.element.BoxSizing.get(this.__el), supported);
57
+ },
80
58
 
81
- var css = qx.bom.element.BoxSizing.compile("border-box");
82
- this.assertMatch(css, /box-sizing/);
59
+ testSet() {
60
+ this.require(["boxsizing"]);
61
+
62
+ var allValues = this.__support["gecko"];
63
+ var supported =
64
+ this.__support[qx.core.Environment.get("engine.name")] || [];
65
+ for (var i = 0, l = allValues.length; i < l; i++) {
66
+ qx.bom.element.BoxSizing.set(this.__el, allValues[i]);
67
+ if (supported.includes(allValues[i])) {
68
+ this.assertEquals(
69
+ supported[i],
70
+ qx.bom.element.BoxSizing.get(this.__el),
71
+ "supported boxSizing value was not applied!"
72
+ );
73
+ } else {
74
+ this.assertNotEquals(
75
+ supported[i],
76
+ qx.bom.element.BoxSizing.get(this.__el),
77
+ "boxSizing value was unexpectedly applied, maybe browser support has changed?"
78
+ );
79
+ }
83
80
  }
81
+ },
82
+
83
+ testCompile() {
84
+ this.require(["boxsizing"]);
85
+
86
+ var css = qx.bom.element.BoxSizing.compile("border-box");
87
+ this.assertMatch(css, /box-sizing/);
84
88
  }
85
- });
89
+ }
90
+ });
@@ -16,15 +16,11 @@
16
16
 
17
17
  ************************************************************************ */
18
18
 
19
- qx.Class.define("qx.test.bom.element.Class",
20
- {
21
- extend : qx.dev.unit.TestCase,
19
+ qx.Class.define("qx.test.bom.element.Class", {
20
+ extend: qx.dev.unit.TestCase,
22
21
 
23
- members :
24
- {
25
-
26
- setUp : function()
27
- {
22
+ members: {
23
+ setUp() {
28
24
  var div = document.createElement("div");
29
25
  div.id = "el";
30
26
 
@@ -32,20 +28,16 @@ qx.Class.define("qx.test.bom.element.Class",
32
28
  document.body.appendChild(div);
33
29
  },
34
30
 
35
-
36
- tearDown : function()
37
- {
31
+ tearDown() {
38
32
  document.body.removeChild(this._el);
39
33
  this._el = null;
40
34
  },
41
35
 
42
-
43
- "test: get should return the className for svg element" : function()
44
- {
45
- if(document.createElementNS){
46
- var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
47
- svg.setAttribute('id','svgEl');
48
- svg.setAttribute('class','svgclassname');
36
+ "test: get should return the className for svg element"() {
37
+ if (document.createElementNS) {
38
+ var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
39
+ svg.setAttribute("id", "svgEl");
40
+ svg.setAttribute("class", "svgclassname");
49
41
  document.body.appendChild(svg);
50
42
  var Class = qx.bom.element.Class;
51
43
  this.assertEquals("svgclassname", Class.get(svg));
@@ -53,48 +45,41 @@ qx.Class.define("qx.test.bom.element.Class",
53
45
  }
54
46
  },
55
47
 
56
- "test: get on new element should return empty string" : function()
57
- {
48
+ "test: get on new element should return empty string"() {
58
49
  var Class = qx.bom.element.Class;
59
50
  this.assertEquals("", Class.get(this._el));
60
51
  },
61
52
 
62
-
63
- "test: get should return the className" : function()
64
- {
53
+ "test: get should return the className"() {
65
54
  var Class = qx.bom.element.Class;
66
55
  this._el.className = "juhu kinners";
67
56
  this.assertEquals("juhu kinners", Class.get(this._el));
68
57
  },
69
58
 
70
-
71
- "test: add() on new element should set the class name" : function()
72
- {
59
+ "test: add() on new element should set the class name"() {
73
60
  var Class = qx.bom.element.Class;
74
61
  this.assertEquals("juhu", Class.add(this._el, "juhu"));
75
62
  this.assertEquals("juhu", Class.get(this._el));
76
63
  },
77
64
 
78
-
79
- "test: add() on element with class should not set it again" : function()
80
- {
65
+ "test: add() on element with class should not set it again"() {
81
66
  var Class = qx.bom.element.Class;
82
67
  Class.add(this._el, "juhu");
83
68
  Class.add(this._el, "juhu");
84
69
  this.assertEquals("juhu", Class.get(this._el));
85
70
  },
86
71
 
87
-
88
- "test: addClasses() on new element should set multiple classes" : function()
89
- {
72
+ "test: addClasses() on new element should set multiple classes"() {
90
73
  var Class = qx.bom.element.Class;
91
- this.assertEquals("juhu kinners", Class.addClasses(this._el, ["juhu", "kinners"]));
74
+ this.assertEquals(
75
+ "juhu kinners",
76
+ Class.addClasses(this._el, ["juhu", "kinners"])
77
+ );
78
+
92
79
  this.assertEquals("juhu kinners", Class.get(this._el));
93
80
  },
94
81
 
95
-
96
- "test: addClasses() should ignore class names, which are already set" : function()
97
- {
82
+ "test: addClasses() should ignore class names, which are already set"() {
98
83
  var Class = qx.bom.element.Class;
99
84
  Class.addClasses(this._el, ["juhu", "kinners"]);
100
85
  Class.addClasses(this._el, ["juhu"]);
@@ -102,9 +87,7 @@ qx.Class.define("qx.test.bom.element.Class",
102
87
  this.assertEquals("juhu kinners", Class.get(this._el));
103
88
  },
104
89
 
105
-
106
- "test: has()" : function()
107
- {
90
+ "test: has()"() {
108
91
  var Class = qx.bom.element.Class;
109
92
 
110
93
  this.assertFalse(Class.has(this._el, "juhu"));
@@ -115,18 +98,14 @@ qx.Class.define("qx.test.bom.element.Class",
115
98
  this.assertFalse(Class.has(this._el, "foo"));
116
99
  },
117
100
 
118
-
119
- "test: remove() non existing class should be ignored" : function()
120
- {
101
+ "test: remove() non existing class should be ignored"() {
121
102
  var Class = qx.bom.element.Class;
122
103
  this.assertEquals("", Class.get(this._el));
123
104
  this.assertEquals("juhu", Class.remove(this._el, "juhu"));
124
105
  this.assertEquals("", Class.get(this._el));
125
106
  },
126
107
 
127
-
128
- "test: remove() existing classes" : function()
129
- {
108
+ "test: remove() existing classes"() {
130
109
  var Class = qx.bom.element.Class;
131
110
  Class.addClasses(this._el, ["juhu", "kinners"]);
132
111
  this.assertEquals("juhu", Class.remove(this._el, "juhu"));
@@ -135,18 +114,18 @@ qx.Class.define("qx.test.bom.element.Class",
135
114
  this.assertEquals("", Class.get(this._el));
136
115
  },
137
116
 
138
-
139
- "test: removeClasses() to remove several classes at once" : function()
140
- {
117
+ "test: removeClasses() to remove several classes at once"() {
141
118
  var Class = qx.bom.element.Class;
142
119
  Class.addClasses(this._el, ["a", "juhu", "b", "kinners", "c"]);
143
- this.assertEquals("a b c", Class.removeClasses(this._el, ["kinners", "juhu"]));
120
+ this.assertEquals(
121
+ "a b c",
122
+ Class.removeClasses(this._el, ["kinners", "juhu"])
123
+ );
124
+
144
125
  this.assertEquals("a b c", Class.get(this._el));
145
126
  },
146
127
 
147
-
148
- "test: replace()" : function()
149
- {
128
+ "test: replace()"() {
150
129
  var Class = qx.bom.element.Class;
151
130
  Class.addClasses(this._el, ["juhu", "kinners"]);
152
131
  this.assertEquals("foo", Class.replace(this._el, "juhu", "foo"));
@@ -168,17 +147,13 @@ qx.Class.define("qx.test.bom.element.Class",
168
147
  this.assertFalse(Class.has(this._el, "baz"));
169
148
  },
170
149
 
171
-
172
- "test: toggle() non existing class should add it" : function()
173
- {
150
+ "test: toggle() non existing class should add it"() {
174
151
  var Class = qx.bom.element.Class;
175
152
  this.assertEquals("juhu", Class.toggle(this._el, "juhu"));
176
153
  this.assertEquals("juhu", Class.get(this._el));
177
154
  },
178
155
 
179
-
180
- "test: toggle() existing class name should remove it" : function()
181
- {
156
+ "test: toggle() existing class name should remove it"() {
182
157
  var Class = qx.bom.element.Class;
183
158
  Class.addClasses(this._el, ["juhu", "kinners"]);
184
159
  this.assertEquals("juhu", Class.toggle(this._el, "juhu"));